@node-projects/web-component-designer 0.0.142 → 0.0.144

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 (49) hide show
  1. package/README.md +10 -2
  2. package/dist/elements/helper/ArrangeHelper.d.ts +2 -2
  3. package/dist/elements/helper/ArrangeHelper.js +49 -23
  4. package/dist/elements/helper/ElementHelper.d.ts +1 -0
  5. package/dist/elements/helper/ElementHelper.js +3 -0
  6. package/dist/elements/services/htmlWriterService/HtmlWriterService.d.ts +1 -0
  7. package/dist/elements/services/htmlWriterService/HtmlWriterService.js +14 -8
  8. package/dist/elements/services/manifestParsers/WebcomponentManifestParserService.d.ts +3 -2
  9. package/dist/elements/services/manifestParsers/WebcomponentManifestParserService.js +5 -2
  10. package/dist/elements/services/modelCommandService/DefaultModelCommandService.js +6 -6
  11. package/dist/elements/services/propertiesService/services/AbstractPolymerLikePropertiesService.d.ts +8 -0
  12. package/dist/elements/services/propertiesService/services/AbstractPolymerLikePropertiesService.js +47 -0
  13. package/dist/elements/services/propertiesService/services/AbstractPropertiesService.d.ts +20 -0
  14. package/dist/elements/services/propertiesService/services/AbstractPropertiesService.js +162 -0
  15. package/dist/elements/services/propertiesService/services/BaseCustomWebComponentPropertiesService.d.ts +2 -2
  16. package/dist/elements/services/propertiesService/services/BaseCustomWebComponentPropertiesService.js +2 -2
  17. package/dist/elements/services/propertiesService/services/CommonPropertiesService.d.ts +2 -12
  18. package/dist/elements/services/propertiesService/services/CommonPropertiesService.js +3 -82
  19. package/dist/elements/services/propertiesService/services/CssPropertiesService.d.ts +2 -11
  20. package/dist/elements/services/propertiesService/services/CssPropertiesService.js +3 -72
  21. package/dist/elements/services/propertiesService/services/ListPropertiesService.d.ts +3 -2
  22. package/dist/elements/services/propertiesService/services/ListPropertiesService.js +5 -2
  23. package/dist/elements/services/propertiesService/services/Lit2PropertiesService.d.ts +2 -2
  24. package/dist/elements/services/propertiesService/services/Lit2PropertiesService.js +2 -2
  25. package/dist/elements/services/propertiesService/services/LitElementPropertiesService.d.ts +2 -2
  26. package/dist/elements/services/propertiesService/services/LitElementPropertiesService.js +2 -2
  27. package/dist/elements/services/propertiesService/services/NativeElementsPropertiesService.js +6 -0
  28. package/dist/elements/services/propertiesService/services/PolymerPropertiesService.d.ts +2 -2
  29. package/dist/elements/services/propertiesService/services/PolymerPropertiesService.js +2 -2
  30. package/dist/elements/services/propertiesService/services/UnkownElementPropertiesService.d.ts +4 -4
  31. package/dist/elements/services/propertiesService/services/UnkownElementPropertiesService.js +95 -50
  32. package/dist/elements/services/propertiesService/services/WebcomponentManifestPropertiesService.d.ts +3 -2
  33. package/dist/elements/services/propertiesService/services/WebcomponentManifestPropertiesService.js +5 -2
  34. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.d.ts +9 -2
  35. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.js +20 -4
  36. package/dist/elements/widgets/designerView/extensions/EditText/EditTextWithStyloExtension.d.ts +4 -1
  37. package/dist/elements/widgets/designerView/extensions/EditText/EditTextWithStyloExtension.js +10 -1
  38. package/dist/elements/widgets/designerView/extensions/ExtensionManager.d.ts +2 -1
  39. package/dist/elements/widgets/designerView/extensions/ExtensionManager.js +4 -0
  40. package/dist/elements/widgets/designerView/extensions/IExtensionManger.d.ts +2 -1
  41. package/dist/elements/widgets/designerView/tools/TextTool.d.ts +4 -1
  42. package/dist/elements/widgets/designerView/tools/TextTool.js +31 -15
  43. package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbar.d.ts +3 -0
  44. package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbar.js +18 -0
  45. package/dist/elements/widgets/designerView/tools/toolBar/popups/DrawToolPopup.js +54 -2
  46. package/dist/elements/widgets/paletteView/paletteView.js +1 -0
  47. package/dist/index.d.ts +1 -1
  48. package/dist/index.js +1 -1
  49. package/package.json +1 -1
@@ -3,8 +3,6 @@ import { AbstractExtension } from "../AbstractExtension.js";
3
3
  import { ExtensionType } from "../ExtensionType.js";
4
4
  import { OverlayLayer } from "../OverlayLayer.js";
5
5
  export class EditTextExtension extends AbstractExtension {
6
- _contentEditedBound;
7
- _blurBound;
8
6
  static template = html `
9
7
  <div style="height: 24px; display: flex;">
10
8
  <button data-command="bold" style="pointer-events: all; height: 24px; width: 24px; padding: 0; font-weight: 900;">b</button>
@@ -13,11 +11,16 @@ export class EditTextExtension extends AbstractExtension {
13
11
  <button data-command="strikeThrough" style="pointer-events: all; height: 24px; width: 24px; padding: 0;"><del>s</del></button>
14
12
  </div>
15
13
  `;
14
+ _contentEditedBound;
15
+ _blurBound;
16
16
  _blurTimeout;
17
+ _foreignObject;
18
+ _focusBound;
17
19
  constructor(extensionManager, designerView, extendedItem) {
18
20
  super(extensionManager, designerView, extendedItem);
19
21
  this._contentEditedBound = this._contentEdited.bind(this);
20
22
  this._blurBound = this._blur.bind(this);
23
+ this._focusBound = this._focus.bind(this);
21
24
  }
22
25
  extend() {
23
26
  //todo -> check what to do with extensions, do not loose edit on mouse click,...
@@ -27,13 +30,13 @@ export class EditTextExtension extends AbstractExtension {
27
30
  //this.extensionManager.removeExtension(this.extendedItem, ExtensionType.Selection);
28
31
  this.extendedItem.element.setAttribute('contenteditable', '');
29
32
  this.extendedItem.element.addEventListener('input', this._contentEditedBound);
30
- this.extendedItem.element.addEventListener('blur', this._blurBound);
31
33
  this.extendedItem.element.focus();
32
34
  this.designerCanvas.eatEvents = this.extendedItem.element;
33
35
  let itemRect = this.extendedItem.element.getBoundingClientRect();
34
36
  const elements = EditTextExtension.template.content.cloneNode(true);
35
37
  elements.querySelectorAll('button').forEach(x => x.onclick = () => this._formatSelection(x.dataset['command']));
36
- let foreignObject = document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject');
38
+ const foreignObject = document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject');
39
+ this._foreignObject = foreignObject;
37
40
  foreignObject.setAttribute('x', '' + (itemRect.x - this.designerCanvas.containerBoundingRect.x) / this.designerCanvas.scaleFactor);
38
41
  foreignObject.setAttribute('y', '' + ((itemRect.y - this.designerCanvas.containerBoundingRect.y) / this.designerCanvas.scaleFactor - 30));
39
42
  foreignObject.setAttribute('width', '96');
@@ -42,6 +45,8 @@ export class EditTextExtension extends AbstractExtension {
42
45
  this.overlayLayerView.addOverlay(foreignObject, OverlayLayer.Foregorund);
43
46
  this.overlays.push(foreignObject);
44
47
  this.designerCanvas.clickOverlay.style.pointerEvents = 'none';
48
+ this.extendedItem.element.addEventListener('blur', this._blurBound);
49
+ this.extendedItem.element.addEventListener('focus', this._focusBound);
45
50
  }
46
51
  refresh() {
47
52
  this.dispose();
@@ -55,6 +60,11 @@ export class EditTextExtension extends AbstractExtension {
55
60
  this.extendedItem.updateChildrenFromNodesChildren();
56
61
  this.designerCanvas.clickOverlay.style.pointerEvents = 'auto';
57
62
  }
63
+ handlesPointerEvent(designerCanvas, event, currentElement) {
64
+ let p = event.composedPath();
65
+ const stylo = this._foreignObject.querySelector('stylo-editor');
66
+ return p.indexOf(stylo) >= 0;
67
+ }
58
68
  _contentEdited() {
59
69
  //todo -> save???
60
70
  //this.extendedItem.content = this.extendedItem.element.innerHTML;
@@ -69,6 +79,12 @@ export class EditTextExtension extends AbstractExtension {
69
79
  }, 150);
70
80
  }
71
81
  }
82
+ _focus() {
83
+ if (this._blurTimeout) {
84
+ clearTimeout(this._blurTimeout);
85
+ this._blurTimeout = null;
86
+ }
87
+ }
72
88
  _formatSelection(type) {
73
89
  if (this._blurTimeout)
74
90
  clearTimeout(this._blurTimeout);
@@ -2,7 +2,8 @@ import { IDesignItem } from "../../../../item/IDesignItem";
2
2
  import { IDesignerCanvas } from "../../IDesignerCanvas";
3
3
  import { AbstractExtension } from "../AbstractExtension.js";
4
4
  import { IExtensionManager } from "../IExtensionManger";
5
- export declare class EditTextWithStyloExtension extends AbstractExtension {
5
+ import { handlesPointerEvent } from "./EditTextExtension";
6
+ export declare class EditTextWithStyloExtension extends AbstractExtension implements handlesPointerEvent {
6
7
  private _contentEditedBound;
7
8
  private _blurBound;
8
9
  private static template;
@@ -11,9 +12,11 @@ export declare class EditTextWithStyloExtension extends AbstractExtension {
11
12
  private _rect2;
12
13
  private _rect3;
13
14
  private _rect4;
15
+ private _foreignObject;
14
16
  constructor(extensionManager: IExtensionManager, designerView: IDesignerCanvas, extendedItem: IDesignItem);
15
17
  extend(): void;
16
18
  private _drawClickOverlayRects;
19
+ handlesPointerEvent(designerCanvas: IDesignerCanvas, event: PointerEvent, currentElement: Element): boolean;
17
20
  refresh(): void;
18
21
  dispose(): void;
19
22
  _clickOutside(e: any): void;
@@ -1,4 +1,5 @@
1
1
  import { html } from "@node-projects/base-custom-webcomponent";
2
+ import { TextTool } from "../../tools/TextTool";
2
3
  import { AbstractExtension } from "../AbstractExtension.js";
3
4
  import { ExtensionType } from "../ExtensionType.js";
4
5
  import { OverlayLayer } from "../OverlayLayer.js";
@@ -13,6 +14,7 @@ export class EditTextWithStyloExtension extends AbstractExtension {
13
14
  _rect2;
14
15
  _rect3;
15
16
  _rect4;
17
+ _foreignObject;
16
18
  constructor(extensionManager, designerView, extendedItem) {
17
19
  super(extensionManager, designerView, extendedItem);
18
20
  import('@papyrs/stylo/dist/esm/loader.js').then(d => d.defineCustomElements());
@@ -24,8 +26,10 @@ export class EditTextWithStyloExtension extends AbstractExtension {
24
26
  this.extendedItem.element.addEventListener('blur', this._blurBound);
25
27
  this.extendedItem.element.focus();
26
28
  this.designerCanvas.eatEvents = this.extendedItem.element;
29
+ this.designerCanvas.serviceContainer.globalContext.tool = new TextTool(true);
27
30
  const elements = EditTextWithStyloExtension.template.content.cloneNode(true);
28
- let foreignObject = document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject');
31
+ const foreignObject = document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject');
32
+ this._foreignObject = foreignObject;
29
33
  foreignObject.setAttribute('x', '0');
30
34
  foreignObject.setAttribute('y', '0');
31
35
  foreignObject.setAttribute('width', '100%');
@@ -58,6 +62,11 @@ export class EditTextWithStyloExtension extends AbstractExtension {
58
62
  this._rect3 = this._drawRect(normalized.x + normalized.width, 0, this.designerCanvas.containerBoundingRect.width, this.designerCanvas.containerBoundingRect.height, 'svg-transparent', this._rect3, OverlayLayer.Normal);
59
63
  this._rect4 = this._drawRect(0, normalized.y + normalized.height, this.designerCanvas.containerBoundingRect.width, this.designerCanvas.containerBoundingRect.height, 'svg-transparent', this._rect4, OverlayLayer.Normal);
60
64
  }
65
+ handlesPointerEvent(designerCanvas, event, currentElement) {
66
+ let p = event.composedPath();
67
+ const stylo = this._foreignObject.querySelector('stylo-editor');
68
+ return p.indexOf(stylo) >= 0;
69
+ }
61
70
  refresh() {
62
71
  this.dispose();
63
72
  }
@@ -2,13 +2,14 @@ import { IDesignItem } from "../../../item/IDesignItem";
2
2
  import { IDesignerCanvas } from "../IDesignerCanvas";
3
3
  import { ExtensionType } from './ExtensionType';
4
4
  import { IExtensionManager } from "./IExtensionManger";
5
+ import { IDesignerExtension } from "./IDesignerExtension";
5
6
  export declare class ExtensionManager implements IExtensionManager {
6
7
  designerCanvas: IDesignerCanvas;
7
8
  designItemsWithExtentions: Set<IDesignItem>;
8
9
  constructor(designerCanvas: IDesignerCanvas);
9
10
  private _contentChanged;
10
11
  private _selectedElementsChanged;
11
- applyExtension(designItem: IDesignItem, extensionType: ExtensionType, recursive?: boolean): void;
12
+ applyExtension(designItem: IDesignItem, extensionType: ExtensionType, recursive?: boolean): IDesignerExtension[];
12
13
  applyExtensions(designItems: IDesignItem[], extensionType: ExtensionType, recursive?: boolean): void;
13
14
  removeExtension(designItem: IDesignItem, extensionType?: ExtensionType): void;
14
15
  removeExtensions(designItems: IDesignItem[], extensionType?: ExtensionType): void;
@@ -47,6 +47,7 @@ export class ExtensionManager {
47
47
  applyExtension(designItem, extensionType, recursive = false) {
48
48
  if (designItem && designItem.nodeType == NodeType.Element) {
49
49
  const extProv = this.designerCanvas.serviceContainer.designerExtensions.get(extensionType);
50
+ let extensions = [];
50
51
  if (extProv) {
51
52
  for (let e of extProv) {
52
53
  if (e.shouldExtend(this, this.designerCanvas, designItem)) {
@@ -56,6 +57,7 @@ export class ExtensionManager {
56
57
  const ext = e.getExtension(this, this.designerCanvas, designItem);
57
58
  try {
58
59
  ext.extend();
60
+ extensions.push(ext);
59
61
  }
60
62
  catch (err) {
61
63
  console.error(err);
@@ -71,7 +73,9 @@ export class ExtensionManager {
71
73
  this.applyExtension(d, extensionType, recursive);
72
74
  }
73
75
  }
76
+ return extensions;
74
77
  }
78
+ return null;
75
79
  }
76
80
  applyExtensions(designItems, extensionType, recursive = false) {
77
81
  if (designItems) {
@@ -1,7 +1,8 @@
1
1
  import { IDesignItem } from "../../../item/IDesignItem";
2
2
  import { ExtensionType } from './ExtensionType';
3
+ import { IDesignerExtension } from "./IDesignerExtension";
3
4
  export interface IExtensionManager {
4
- applyExtension(designItem: IDesignItem, extensionType: ExtensionType, recursive?: boolean): any;
5
+ applyExtension(designItem: IDesignItem, extensionType: ExtensionType, recursive?: boolean): IDesignerExtension[];
5
6
  applyExtensions(designItems: IDesignItem[], extensionType: ExtensionType, recursive?: boolean): any;
6
7
  removeExtension(designItem: IDesignItem, extensionType?: ExtensionType): any;
7
8
  removeExtensions(designItems: IDesignItem[], extensionType?: ExtensionType): any;
@@ -2,10 +2,13 @@ import { ServiceContainer } from '../../../services/ServiceContainer.js';
2
2
  import { IDesignerCanvas } from '../IDesignerCanvas';
3
3
  import { ITool } from './ITool';
4
4
  export declare class TextTool implements ITool {
5
- constructor();
5
+ private _textEditExtensions;
6
+ constructor(editExistingText?: boolean);
6
7
  activated(serviceContainer: ServiceContainer): void;
7
8
  dispose(): void;
8
9
  readonly cursor = "text";
10
+ private _textCreated;
11
+ private _editExistingText;
9
12
  pointerEventHandler(designerCanvas: IDesignerCanvas, event: PointerEvent, currentElement: Element): void;
10
13
  keyboardEventHandler(designerCanvas: IDesignerCanvas, event: KeyboardEvent, currentElement: Element): void;
11
14
  }
@@ -3,31 +3,47 @@ import { DesignItem } from '../../../item/DesignItem.js';
3
3
  import { InsertAction } from '../../../services/undoService/transactionItems/InsertAction.js';
4
4
  import { ExtensionType } from '../extensions/ExtensionType.js';
5
5
  export class TextTool {
6
- constructor() {
6
+ _textEditExtensions;
7
+ constructor(editExistingText) {
8
+ if (editExistingText)
9
+ this._editExistingText = true;
7
10
  }
8
11
  activated(serviceContainer) {
12
+ this._textCreated = false;
9
13
  }
10
14
  dispose() {
11
15
  }
12
16
  cursor = 'text';
17
+ _textCreated = false;
18
+ _editExistingText = false;
13
19
  pointerEventHandler(designerCanvas, event, currentElement) {
14
20
  const currentPoint = designerCanvas.getNormalizedEventCoordinates(event);
15
21
  switch (event.type) {
16
22
  case EventNames.PointerDown:
17
- const span = document.createElement('span');
18
- const di = DesignItem.createDesignItemFromInstance(span, designerCanvas.serviceContainer, designerCanvas.instanceServiceContainer);
19
- di.setStyle('position', 'absolute');
20
- di.setStyle('left', currentPoint.x + 'px');
21
- di.setStyle('top', currentPoint.y + 'px');
22
- designerCanvas.instanceServiceContainer.undoService.execute(new InsertAction(designerCanvas.rootDesignItem, designerCanvas.rootDesignItem.childCount, di));
23
- //designerCanvas.serviceContainer.globalContext.finishedWithTool(this);
24
- //todo: we need to keep the tool active, cause the pointer tool eats the stylo events. Maybe we could also remove the eatEvents property
25
- //TODO - don't apply doubleclick extension (maybe it is not the doubleclick one) - apply edit text extesion directly
26
- //should we configure the editTextExtension anywhere??
27
- designerCanvas.extensionManager.applyExtension(di, ExtensionType.Doubleclick);
28
- setTimeout(() => {
29
- span.focus();
30
- }, 50);
23
+ if (!this._textCreated && !this._editExistingText) {
24
+ this._textCreated = true;
25
+ const span = document.createElement('span');
26
+ const di = DesignItem.createDesignItemFromInstance(span, designerCanvas.serviceContainer, designerCanvas.instanceServiceContainer);
27
+ di.setStyle('position', 'absolute');
28
+ di.setStyle('left', currentPoint.x + 'px');
29
+ di.setStyle('top', currentPoint.y + 'px');
30
+ designerCanvas.instanceServiceContainer.undoService.execute(new InsertAction(designerCanvas.rootDesignItem, designerCanvas.rootDesignItem.childCount, di));
31
+ //todo: Maybe we could also remove the eatEvents property
32
+ //TODO - don't apply doubleclick extension (maybe it is not the doubleclick one) - apply edit text extesion directly
33
+ //should we configure the editTextExtension anywhere??
34
+ this._textEditExtensions = designerCanvas.extensionManager.applyExtension(di, ExtensionType.Doubleclick);
35
+ setTimeout(() => { span.focus(); }, 50);
36
+ }
37
+ else {
38
+ for (let e of this._textEditExtensions) {
39
+ if (e.handlesPointerEvent) {
40
+ const ret = e.handlesPointerEvent(designerCanvas, event, currentElement);
41
+ if (!ret) {
42
+ designerCanvas.serviceContainer.globalContext.finishedWithTool(this);
43
+ }
44
+ }
45
+ }
46
+ }
31
47
  break;
32
48
  }
33
49
  }
@@ -13,4 +13,7 @@ export declare class DesignerToolbar extends BaseCustomWebComponentConstructorAp
13
13
  initialize(serviceContainer: ServiceContainer, designerView: DesignerView): void;
14
14
  showPopup(designerToolbarButton: DesignerToolbarButton): void;
15
15
  setTool(tool: string): void;
16
+ setStrokeColor(color: string): void;
17
+ setFillBrush(color: string): void;
18
+ setStrokeThickness(input: string): void;
16
19
  }
@@ -64,5 +64,23 @@ export class DesignerToolbar extends BaseCustomWebComponentConstructorAppend {
64
64
  }
65
65
  this._designerView.designerCanvas.executeCommand({ type: CommandType.setTool, parameter: tool });
66
66
  }
67
+ setStrokeColor(color) {
68
+ if (this._popupContainer.children.length) {
69
+ this._popupContainer.innerHTML = '';
70
+ }
71
+ this._designerView.designerCanvas.executeCommand({ type: CommandType.setStrokeColor, parameter: color });
72
+ }
73
+ setFillBrush(color) {
74
+ if (this._popupContainer.children.length) {
75
+ this._popupContainer.innerHTML = '';
76
+ }
77
+ this._designerView.designerCanvas.executeCommand({ type: CommandType.setFillBrush, parameter: color });
78
+ }
79
+ setStrokeThickness(input) {
80
+ if (this._popupContainer.children.length) {
81
+ this._popupContainer.innerHTML = '';
82
+ }
83
+ this._designerView.designerCanvas.executeCommand({ type: CommandType.setStrokeThickness, parameter: input });
84
+ }
67
85
  }
68
86
  customElements.define('node-projects-designer-toolbar', DesignerToolbar);
@@ -3,7 +3,7 @@ import { assetsPath } from "../../../../../../Constants.js";
3
3
  export class DrawToolPopup extends BaseCustomWebComponentConstructorAppend {
4
4
  static style = css `
5
5
  .container {
6
- width: 150px;
6
+ width: 220px;
7
7
  min-height: 200px;
8
8
  color: white;
9
9
  background-color: rgb(64, 64, 64);
@@ -25,7 +25,33 @@ export class DrawToolPopup extends BaseCustomWebComponentConstructorAppend {
25
25
  .tools {
26
26
  display: flex;
27
27
  flex-wrap: wrap;
28
- }`;
28
+ margin-bottom: 5px;
29
+ }
30
+ .inputs{
31
+ float: left;
32
+ margin-top: 5px;
33
+ align-items: center;
34
+ }
35
+ .input {
36
+ display: flex;
37
+ align-items: center;
38
+ margin-top: 5px;
39
+ }
40
+ .text {
41
+ margin-left: 5px;
42
+ font-size: 14px;
43
+ }
44
+ .strokecolor{
45
+ float: both;
46
+ }
47
+ .fillbrush{
48
+ float: both;
49
+ }
50
+ .strokethickness{
51
+ float: both;
52
+ }
53
+
54
+ `;
29
55
  static template = html `
30
56
  <div class="container">
31
57
  <header><h2 id="title" style="margin: 0;">Draw</h2></header>
@@ -37,6 +63,20 @@ export class DrawToolPopup extends BaseCustomWebComponentConstructorAppend {
37
63
  <div class="tool" data-command="setTool" data-command-parameter="DrawEllipsis" title="Draw Ellipsis" style="background-image: url('${assetsPath}images/layout/DrawEllipTool.svg');"></div>
38
64
  <div class="tool" data-command="setTool" data-command-parameter="PickColor" title="Pick Color" style="background-image: url('${assetsPath}images/layout/ColorPickerTool.svg');"></div>
39
65
  </div>
66
+ <div class="inputs">
67
+ <div class="input">
68
+ <input id="strokecolor" class="strokecolor" type="color" title="stroke color" value="#000000" style="padding: 0; width:31px; height:31px;">
69
+ <text class="text">Stroke Color</text>
70
+ </div>
71
+ <div class="input">
72
+ <input id="fillbrush" class="fillbrush" type="color" title="fill brush" value="#ffffff" style="padding: 0; width:31px; height:31px;">
73
+ <text class="text">Fill Brush</text>
74
+ </div>
75
+ <div class="input">
76
+ <input id="strokethickness" class="strokethickness" type="range" title="stroke thickness" min="1" max="20" value="3" style="padding: 0; width:80px; height:20px; margin-right: 5px;">
77
+ <text class="text">Stroke Thickness</text>
78
+ </div>
79
+ </div>
40
80
  </main>
41
81
  </div>`;
42
82
  constructor() {
@@ -45,6 +85,18 @@ export class DrawToolPopup extends BaseCustomWebComponentConstructorAppend {
45
85
  let div = e;
46
86
  div.onclick = () => this.getRootNode().host.setTool(div.dataset['commandParameter']);
47
87
  }
88
+ if (this.shadowRoot.querySelector("input.strokecolor")) {
89
+ let input = this._getDomElement("strokecolor");
90
+ input.onchange = () => this.getRootNode().host.setStrokeColor(input.value);
91
+ }
92
+ if (this.shadowRoot.querySelector("input.fillbrush")) {
93
+ let input = this._getDomElement("fillbrush");
94
+ input.onchange = () => this.getRootNode().host.setFillBrush(input.value);
95
+ }
96
+ if (this.shadowRoot.querySelector("input.strokethickness")) {
97
+ let input = this._getDomElement("strokethickness");
98
+ input.onchange = () => this.getRootNode().host.setStrokeThickness(input.value);
99
+ }
48
100
  }
49
101
  }
50
102
  customElements.define('node-projects-designer-drawtool-popup', DrawToolPopup);
@@ -32,6 +32,7 @@ export class PaletteView extends BaseCustomWebComponentLazyAppend {
32
32
  console.warn('Error loading elements', err);
33
33
  }
34
34
  }
35
+ this._designerTabControl.refreshItems();
35
36
  }
36
37
  }
37
38
  customElements.define('node-projects-palette-view', PaletteView);
package/dist/index.d.ts CHANGED
@@ -90,7 +90,7 @@ export * from "./elements/services/propertiesService/services/LitElementProperti
90
90
  export * from "./elements/services/propertiesService/services/NativeElementsPropertiesService.js";
91
91
  export * from "./elements/services/propertiesService/services/SVGElementsPropertiesService.js";
92
92
  export * from "./elements/services/propertiesService/services/PolymerPropertiesService.js";
93
- export * from "./elements/services/propertiesService/services/UnkownElementPropertiesService.js";
93
+ export * from "./elements/services/propertiesService/services/AbstractPropertiesService.js";
94
94
  export * from "./elements/services/propertiesService/services/WebcomponentManifestPropertiesService.js";
95
95
  export * from "./elements/services/propertiesService/services/AttributesPropertiesService.js";
96
96
  export * from "./elements/services/propertiesService/PropertyType.js";
package/dist/index.js CHANGED
@@ -61,7 +61,7 @@ export * from "./elements/services/propertiesService/services/LitElementProperti
61
61
  export * from "./elements/services/propertiesService/services/NativeElementsPropertiesService.js";
62
62
  export * from "./elements/services/propertiesService/services/SVGElementsPropertiesService.js";
63
63
  export * from "./elements/services/propertiesService/services/PolymerPropertiesService.js";
64
- export * from "./elements/services/propertiesService/services/UnkownElementPropertiesService.js";
64
+ export * from "./elements/services/propertiesService/services/AbstractPropertiesService.js";
65
65
  export * from "./elements/services/propertiesService/services/WebcomponentManifestPropertiesService.js";
66
66
  export * from "./elements/services/propertiesService/services/AttributesPropertiesService.js";
67
67
  export * from "./elements/services/propertiesService/PropertyType.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.142",
4
+ "version": "0.0.144",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "",