@node-projects/web-component-designer 0.0.94 → 0.0.97

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 (122) hide show
  1. package/assets/images/layout/ColorPickerTool.svg +21 -0
  2. package/assets/images/layout/DrawEllipTool.svg +13 -0
  3. package/assets/images/layout/DrawLineTool.svg +13 -0
  4. package/assets/images/layout/DrawPathTool.svg +32 -0
  5. package/assets/images/layout/DrawRectTool.svg +28 -0
  6. package/assets/images/layout/MagicWandTool.svg +14 -0
  7. package/assets/images/layout/PointerTool.svg +10 -0
  8. package/assets/images/layout/SelectRectTool.svg +9 -0
  9. package/assets/images/layout/TextBoxTool.svg +8 -0
  10. package/assets/images/layout/TextTool.svg +7 -0
  11. package/assets/images/layout/ZoomTool.svg +16 -0
  12. package/dist/Constants.d.ts +1 -1
  13. package/dist/Constants.js +3 -1
  14. package/dist/elements/services/DefaultServiceBootstrap.js +10 -0
  15. package/dist/elements/services/GlobalContext.d.ts +4 -1
  16. package/dist/elements/services/GlobalContext.js +8 -3
  17. package/dist/elements/services/ServiceContainer.d.ts +2 -0
  18. package/dist/elements/services/ServiceContainer.js +1 -0
  19. package/dist/elements/widgets/designerView/Snaplines.js +1 -1
  20. package/dist/elements/widgets/designerView/designerCanvas.js +3 -1
  21. package/dist/elements/widgets/designerView/designerView.d.ts +2 -0
  22. package/dist/elements/widgets/designerView/designerView.js +19 -2
  23. package/dist/elements/widgets/designerView/extensions/contextMenu/SelectAllChildrenContextMenu.d.ts +8 -0
  24. package/dist/elements/widgets/designerView/extensions/contextMenu/SelectAllChildrenContextMenu.js +12 -0
  25. package/dist/elements/widgets/designerView/toolBar/DrawElementTool.d.ts +19 -0
  26. package/dist/elements/widgets/designerView/toolBar/DrawElementTool.js +79 -0
  27. package/dist/elements/widgets/designerView/toolBar/DrawEllipsisTool.d.ts +16 -0
  28. package/dist/elements/widgets/designerView/toolBar/DrawEllipsisTool.js +94 -0
  29. package/dist/elements/widgets/designerView/toolBar/DrawLineTool.d.ts +14 -0
  30. package/dist/elements/widgets/designerView/toolBar/DrawLineTool.js +79 -0
  31. package/dist/elements/widgets/designerView/toolBar/DrawPathTool.d.ts +20 -0
  32. package/dist/elements/widgets/designerView/toolBar/DrawPathTool.js +128 -0
  33. package/dist/elements/widgets/designerView/toolBar/DrawRectTool.d.ts +19 -0
  34. package/dist/elements/widgets/designerView/toolBar/DrawRectTool.js +109 -0
  35. package/dist/elements/widgets/designerView/toolBar/ITool.d.ts +9 -0
  36. package/dist/elements/widgets/designerView/toolBar/ITool.js +1 -0
  37. package/dist/elements/widgets/designerView/toolBar/MagicWandSelectorTool.d.ts +12 -0
  38. package/dist/elements/widgets/designerView/toolBar/MagicWandSelectorTool.js +64 -0
  39. package/dist/elements/widgets/designerView/toolBar/NamedTools.d.ts +15 -0
  40. package/dist/elements/widgets/designerView/toolBar/NamedTools.js +16 -0
  41. package/dist/elements/widgets/designerView/toolBar/PanTool.d.ts +10 -0
  42. package/dist/elements/widgets/designerView/toolBar/PanTool.js +26 -0
  43. package/dist/elements/widgets/designerView/toolBar/PickColorTool.d.ts +10 -0
  44. package/dist/elements/widgets/designerView/toolBar/PickColorTool.js +20 -0
  45. package/dist/elements/widgets/designerView/toolBar/PointerTool.d.ts +24 -0
  46. package/dist/elements/widgets/designerView/toolBar/PointerTool.js +283 -0
  47. package/dist/elements/widgets/designerView/toolBar/RectangleSelectorTool.d.ts +12 -0
  48. package/dist/elements/widgets/designerView/toolBar/RectangleSelectorTool.js +84 -0
  49. package/dist/elements/widgets/designerView/toolBar/TextTool.d.ts +11 -0
  50. package/dist/elements/widgets/designerView/toolBar/TextTool.js +33 -0
  51. package/dist/elements/widgets/designerView/toolBar/ZoomTool.d.ts +17 -0
  52. package/dist/elements/widgets/designerView/toolBar/ZoomTool.js +79 -0
  53. package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolRenderer.d.ts +5 -0
  54. package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolRenderer.js +19 -0
  55. package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolbarPopup.d.ts +8 -0
  56. package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolbarPopup.js +41 -0
  57. package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolbarPopupToolSelect.d.ts +9 -0
  58. package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolbarPopupToolSelect.js +42 -0
  59. package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolsButtons.d.ts +36 -0
  60. package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolsButtons.js +96 -0
  61. package/dist/elements/widgets/designerView/toolBar/designerToolbarPopups/DrawToolPopup.d.ts +5 -0
  62. package/dist/elements/widgets/designerView/toolBar/designerToolbarPopups/DrawToolPopup.js +21 -0
  63. package/dist/elements/widgets/designerView/toolBar/designerToolbarPopups/SelectorToolsPopup.d.ts +8 -0
  64. package/dist/elements/widgets/designerView/toolBar/designerToolbarPopups/SelectorToolsPopup.js +23 -0
  65. package/dist/elements/widgets/designerView/toolBar/designerToolsDock.d.ts +24 -0
  66. package/dist/elements/widgets/designerView/toolBar/designerToolsDock.js +115 -0
  67. package/dist/elements/widgets/designerView/tools/NamedTools.d.ts +2 -1
  68. package/dist/elements/widgets/designerView/tools/NamedTools.js +1 -0
  69. package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolRenderer.d.ts +5 -0
  70. package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolRenderer.js +19 -0
  71. package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolbarPopup.d.ts +8 -0
  72. package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolbarPopup.js +41 -0
  73. package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolbarPopupToolSelect.d.ts +9 -0
  74. package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolbarPopupToolSelect.js +42 -0
  75. package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolsButtons.d.ts +36 -0
  76. package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolsButtons.js +87 -0
  77. package/dist/elements/widgets/designerView/tools/designerToolbarPopups/DrawToolPopup copy.d.ts +8 -0
  78. package/dist/elements/widgets/designerView/tools/designerToolbarPopups/DrawToolPopup copy.js +25 -0
  79. package/dist/elements/widgets/designerView/tools/designerToolbarPopups/DrawToolPopup.d.ts +5 -0
  80. package/dist/elements/widgets/designerView/tools/designerToolbarPopups/DrawToolPopup.js +21 -0
  81. package/dist/elements/widgets/designerView/tools/designerToolbarPopups/SelectorToolsPopup.d.ts +8 -0
  82. package/dist/elements/widgets/designerView/tools/designerToolbarPopups/SelectorToolsPopup.js +23 -0
  83. package/dist/elements/widgets/designerView/tools/designerToolsDock.d.ts +24 -0
  84. package/dist/elements/widgets/designerView/tools/designerToolsDock.js +115 -0
  85. package/dist/elements/widgets/designerView/tools/toolBar/AbstractDesignerToolbarButton.d.ts +5 -0
  86. package/dist/elements/widgets/designerView/tools/toolBar/AbstractDesignerToolbarButton.js +5 -0
  87. package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbar.d.ts +16 -0
  88. package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbar.js +68 -0
  89. package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbarButton.d.ts +19 -0
  90. package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbarButton.js +62 -0
  91. package/dist/elements/widgets/designerView/tools/toolBar/IDesignViewConfigButtonsProvider.d.ts +5 -0
  92. package/dist/elements/widgets/designerView/tools/toolBar/IDesignViewConfigButtonsProvider.js +1 -0
  93. package/dist/elements/widgets/designerView/tools/toolBar/IDesignViewToolbarButtonProvider.d.ts +4 -0
  94. package/dist/elements/widgets/designerView/tools/toolBar/IDesignViewToolbarButtonProvider.js +1 -0
  95. package/dist/elements/widgets/designerView/tools/toolBar/buttons/DrawToolButtonProvider.d.ts +5 -0
  96. package/dist/elements/widgets/designerView/tools/toolBar/buttons/DrawToolButtonProvider.js +16 -0
  97. package/dist/elements/widgets/designerView/tools/toolBar/buttons/PointerToolButtonProvider copy.d.ts +5 -0
  98. package/dist/elements/widgets/designerView/tools/toolBar/buttons/PointerToolButtonProvider copy.js +7 -0
  99. package/dist/elements/widgets/designerView/tools/toolBar/buttons/PointerToolButtonProvider.d.ts +5 -0
  100. package/dist/elements/widgets/designerView/tools/toolBar/buttons/PointerToolButtonProvider.js +7 -0
  101. package/dist/elements/widgets/designerView/tools/toolBar/buttons/SelectorToolButtonProvider copy.d.ts +5 -0
  102. package/dist/elements/widgets/designerView/tools/toolBar/buttons/SelectorToolButtonProvider copy.js +10 -0
  103. package/dist/elements/widgets/designerView/tools/toolBar/buttons/SelectorToolButtonProvider.d.ts +5 -0
  104. package/dist/elements/widgets/designerView/tools/toolBar/buttons/SelectorToolButtonProvider.js +10 -0
  105. package/dist/elements/widgets/designerView/tools/toolBar/buttons/SeperatorToolProvider.d.ts +7 -0
  106. package/dist/elements/widgets/designerView/tools/toolBar/buttons/SeperatorToolProvider.js +11 -0
  107. package/dist/elements/widgets/designerView/tools/toolBar/buttons/TextToolButtonProvider.d.ts +5 -0
  108. package/dist/elements/widgets/designerView/tools/toolBar/buttons/TextToolButtonProvider.js +7 -0
  109. package/dist/elements/widgets/designerView/tools/toolBar/buttons/ZoomToolButtonProvider.d.ts +5 -0
  110. package/dist/elements/widgets/designerView/tools/toolBar/buttons/ZoomToolButtonProvider.js +7 -0
  111. package/dist/elements/widgets/designerView/tools/toolBar/designerToolsDock.d.ts +24 -0
  112. package/dist/elements/widgets/designerView/tools/toolBar/designerToolsDock.js +115 -0
  113. package/dist/elements/widgets/designerView/tools/toolBar/popups/DrawToolPopup.d.ts +6 -0
  114. package/dist/elements/widgets/designerView/tools/toolBar/popups/DrawToolPopup.js +50 -0
  115. package/dist/elements/widgets/designerView/tools/toolBar/popups/SelectorToolsPopup.d.ts +7 -0
  116. package/dist/elements/widgets/designerView/tools/toolBar/popups/SelectorToolsPopup.js +23 -0
  117. package/dist/elements/widgets/designerView/tools/toolBar/popups/designerToolbarPopup.d.ts +8 -0
  118. package/dist/elements/widgets/designerView/tools/toolBar/popups/designerToolbarPopup.js +41 -0
  119. package/dist/elements/widgets/treeView/treeViewExtended.js +6 -4
  120. package/dist/index.d.ts +2 -0
  121. package/dist/index.js +2 -0
  122. package/package.json +42 -42
@@ -0,0 +1,5 @@
1
+ import { IDesignerCanvas } from "../../../IDesignerCanvas.js";
2
+ import { IDesignViewToolbarButtonProvider } from "../IDesignViewToolbarButtonProvider.js";
3
+ export declare class TextToolButtonProvider implements IDesignViewToolbarButtonProvider {
4
+ provideButton(designerCanvas: IDesignerCanvas): HTMLElement;
5
+ }
@@ -0,0 +1,7 @@
1
+ import { DesignerToolbarButton } from '../DesignerToolbarButton.js';
2
+ import { assetsPath } from "../../../../../../Constants.js";
3
+ export class TextToolButtonProvider {
4
+ provideButton(designerCanvas) {
5
+ return new DesignerToolbarButton(designerCanvas, { 'Text': { icon: assetsPath + 'images/layout/TextTool.svg' } });
6
+ }
7
+ }
@@ -0,0 +1,5 @@
1
+ import { IDesignerCanvas } from "../../../IDesignerCanvas.js";
2
+ import { IDesignViewToolbarButtonProvider } from "../IDesignViewToolbarButtonProvider.js";
3
+ export declare class ZoomToolButtonProvider implements IDesignViewToolbarButtonProvider {
4
+ provideButton(designerCanvas: IDesignerCanvas): HTMLElement;
5
+ }
@@ -0,0 +1,7 @@
1
+ import { DesignerToolbarButton } from '../DesignerToolbarButton.js';
2
+ import { assetsPath } from "../../../../../../Constants.js";
3
+ export class ZoomToolButtonProvider {
4
+ provideButton(designerCanvas) {
5
+ return new DesignerToolbarButton(designerCanvas, { 'Zoom': { icon: assetsPath + 'images/layout/ZoomTool.svg' } });
6
+ }
7
+ }
@@ -0,0 +1,24 @@
1
+ import { BaseCustomWebComponentConstructorAppend } from "@node-projects/base-custom-webcomponent";
2
+ import { ServiceContainer } from "../../../../services/ServiceContainer.js";
3
+ import { DesignerView } from "../../designerView.js";
4
+ import "../designerToolbarGenerics/designerToolsButtons.js";
5
+ import "../designerToolbarPopups/DrawToolPopup.js";
6
+ import "../designerToolbarPopups/SelectorToolsPopup.js";
7
+ export declare class DesignerToolbar extends BaseCustomWebComponentConstructorAppend {
8
+ static readonly style: CSSStyleSheet;
9
+ static readonly template: HTMLTemplateElement;
10
+ private _designerView;
11
+ private _toolButtonsElem;
12
+ private _toolPopupElems;
13
+ private _serviceContainer;
14
+ private _prevSelected;
15
+ ready(): Promise<void>;
16
+ initialize(serviceContainer: ServiceContainer, designerView: DesignerView): void;
17
+ private _registerPopups;
18
+ private _toolButtonActivated;
19
+ private _activatePopup;
20
+ private _popupToolSelected;
21
+ private _isPopupScenario;
22
+ private _resetPreviousElements;
23
+ private _hideAllPopups;
24
+ }
@@ -0,0 +1,115 @@
1
+ import { BaseCustomWebComponentConstructorAppend, css, html } from "@node-projects/base-custom-webcomponent";
2
+ import { CommandType } from "../../../../../commandHandling/CommandType.js";
3
+ import { DesignerToolRenderer } from "../designerToolbarGenerics/designerToolRenderer.js";
4
+ import "../designerToolbarGenerics/designerToolsButtons.js";
5
+ import "../designerToolbarPopups/DrawToolPopup.js";
6
+ import "../designerToolbarPopups/SelectorToolsPopup.js";
7
+ export class DesignerToolbar extends BaseCustomWebComponentConstructorAppend {
8
+ static style = css `
9
+ node-projects-designer-tools-buttons {
10
+ height: 100%;
11
+ width: 100%;
12
+ }
13
+
14
+ #popups {
15
+ position: absolute;
16
+ top: calc(0px + 10px);
17
+ height: 100%;
18
+ left: calc(24px + 4px + 10px);
19
+ }
20
+
21
+ #popups > * {
22
+ display: none;
23
+ }
24
+
25
+ #popups > *[opened] {
26
+ display: block;
27
+ }`;
28
+ static template = html `
29
+ <node-projects-designer-tools-buttons id="tool-buttons"></node-projects-designer-tools-buttons>
30
+ <div id="popups">
31
+ <node-projects-designer-popup-drawtool popup="draw" class="popup" title="Drawtools" tabindex="-1"></node-projects-designer-popup-drawtool>
32
+ <node-projects-designer-popup-selector popup="selector" class="popup" title="Selectors" tabindex="-1"></node-projects-designer-popup-selector>
33
+ </div>`;
34
+ _designerView;
35
+ _toolButtonsElem;
36
+ _toolPopupElems;
37
+ _serviceContainer;
38
+ _prevSelected = [];
39
+ async ready() {
40
+ this._toolButtonsElem = this._getDomElement("tool-buttons");
41
+ this._toolButtonsElem.toolActivated.on((toolActivated => {
42
+ this._toolButtonActivated(toolActivated[0], toolActivated[1]);
43
+ }));
44
+ this._registerPopups();
45
+ let categories = [];
46
+ await this._waitForChildrenReady();
47
+ //TODO: warum macht das nicht alles die tools buttons liste selbst????
48
+ let tools = [];
49
+ for (let tool of this._toolButtonsElem.toolCollection) {
50
+ if (!categories.includes(tool.category)) {
51
+ tools.push(DesignerToolRenderer.createToolFromObject(tool));
52
+ categories.push(tool.category);
53
+ }
54
+ }
55
+ this._toolButtonsElem.setToolsExternal(tools);
56
+ }
57
+ initialize(serviceContainer, designerView) {
58
+ this._serviceContainer = serviceContainer;
59
+ this._serviceContainer.globalContext.onToolChanged.on((e) => {
60
+ let command_name;
61
+ let found = false;
62
+ this._serviceContainer.designerTools.forEach((tool, key) => {
63
+ if (tool === e.newValue && !found) {
64
+ command_name = key;
65
+ found = true;
66
+ this._toolButtonsElem.externalToolChange(command_name);
67
+ }
68
+ });
69
+ });
70
+ this._designerView = designerView;
71
+ }
72
+ _registerPopups() {
73
+ let popups = this._getDomElement("popups");
74
+ this._toolPopupElems = [...popups.querySelectorAll('.popup')];
75
+ //DrawToolPopup
76
+ let drawToolPopup = popups.querySelectorAll("node-projects-designer-popup-drawtool")[0];
77
+ drawToolPopup.toolActivated.on((toolArg) => this._popupToolSelected(drawToolPopup, toolArg));
78
+ }
79
+ _toolButtonActivated(tool, external) {
80
+ this._hideAllPopups();
81
+ this._prevSelected[1] = this._prevSelected[0];
82
+ this._prevSelected[0] = tool;
83
+ if (!external) {
84
+ if (this._isPopupScenario()) {
85
+ this._resetPreviousElements();
86
+ this._activatePopup(tool.category);
87
+ }
88
+ }
89
+ this._toolButtonsElem.markToolAsSelected(tool.command_parameter);
90
+ let command = {
91
+ type: CommandType.setTool,
92
+ parameter: tool.command_parameter,
93
+ };
94
+ this._designerView.executeCommand(command);
95
+ }
96
+ _activatePopup(category) {
97
+ this._toolPopupElems.find(x => x.getAttribute("popup") == category)?.setAttribute("opened", "");
98
+ }
99
+ _popupToolSelected(popup, tool) {
100
+ }
101
+ _isPopupScenario() {
102
+ return JSON.stringify(this._prevSelected[1]) === JSON.stringify(this._prevSelected[0]);
103
+ }
104
+ _resetPreviousElements() {
105
+ for (let i = 0; i < this._prevSelected.length; i++) {
106
+ this._prevSelected[i] = null;
107
+ }
108
+ }
109
+ _hideAllPopups() {
110
+ for (let popup of this._toolPopupElems) {
111
+ popup.removeAttribute("opened");
112
+ }
113
+ }
114
+ }
115
+ customElements.define('node-projects-designer-toolbar', DesignerToolbar);
@@ -0,0 +1,6 @@
1
+ import { BaseCustomWebComponentConstructorAppend } from '@node-projects/base-custom-webcomponent';
2
+ export declare class DrawToolPopup extends BaseCustomWebComponentConstructorAppend {
3
+ static style: CSSStyleSheet;
4
+ static template: HTMLTemplateElement;
5
+ constructor();
6
+ }
@@ -0,0 +1,50 @@
1
+ import { html, BaseCustomWebComponentConstructorAppend, css } from '@node-projects/base-custom-webcomponent';
2
+ import { assetsPath } from "../../../../../../Constants.js";
3
+ export class DrawToolPopup extends BaseCustomWebComponentConstructorAppend {
4
+ static style = css `
5
+ .container {
6
+ width: 150px;
7
+ min-height: 200px;
8
+ color: white;
9
+ background-color: rgb(64, 64, 64);
10
+ border: 1px solid black;
11
+ }
12
+ header {
13
+ text-align: center;
14
+ }
15
+ .tool {
16
+ height: 32px;
17
+ width: 32px;
18
+ background-color: rgb(255, 255, 255);
19
+ background-size: 65%;
20
+ background-repeat: no-repeat;
21
+ background-position: center center;
22
+ flex-shrink: 0;
23
+ border-bottom: 1px solid black;
24
+ }
25
+ .tools {
26
+ display: flex;
27
+ flex-wrap: wrap;
28
+ }`;
29
+ static template = html `
30
+ <div class="container">
31
+ <header><h2 id="title" style="margin: 0;">Draw</h2></header>
32
+ <main id="content-area">
33
+ <div class="tools">
34
+ <div class="tool" data-command="setTool" data-command-parameter="DrawLine" title="Draw Line" style="background-image: url('${assetsPath}images/layout/DrawLineTool.svg');"></div>
35
+ <div class="tool" data-command="setTool" data-command-parameter="DrawPath" title="Pointer Tool" style="background-image: url('${assetsPath}images/layout/DrawPathTool.svg');"></div>
36
+ <div class="tool" data-command="setTool" data-command-parameter="DrawRect" title="Draw Rectangle" style="background-image: url('${assetsPath}images/layout/DrawRectTool.svg');"></div>
37
+ <div class="tool" data-command="setTool" data-command-parameter="DrawEllipsis" title="Draw Ellipsis" style="background-image: url('${assetsPath}images/layout/DrawEllipTool.svg');"></div>
38
+ <div class="tool" data-command="setTool" data-command-parameter="PickColor" title="Pick Color" style="background-image: url('${assetsPath}images/layout/ColorPickerTool.svg');"></div>
39
+ </div>
40
+ </main>
41
+ </div>`;
42
+ constructor() {
43
+ super();
44
+ for (let e of [...this.shadowRoot.querySelectorAll("div.tool")]) {
45
+ let div = e;
46
+ div.onclick = () => this.getRootNode().host.setTool(div.dataset['commandParameter']);
47
+ }
48
+ }
49
+ }
50
+ customElements.define('node-projects-designer-drawtool-popup', DrawToolPopup);
@@ -0,0 +1,7 @@
1
+ import { TypedEvent } from "@node-projects/base-custom-webcomponent";
2
+ import { DesignerToolbarPopup } from "./designerToolbarPopup";
3
+ export declare class SelectorToolsPopup extends DesignerToolbarPopup {
4
+ private readonly templateToolSelect;
5
+ readonly toolActivated: TypedEvent<ToolPopupCategoryCollection>;
6
+ ready(): void;
7
+ }
@@ -0,0 +1,23 @@
1
+ import { html, TypedEvent } from "@node-projects/base-custom-webcomponent";
2
+ import { assetsPath } from "../../../../../../Constants";
3
+ import { DesignerToolbarPopup } from "./designerToolbarPopup";
4
+ import { DesignerToolbarPopupToolSelect } from "../../designerToolbarGenerics/designerToolbarPopupToolSelect";
5
+ export class SelectorToolsPopup extends DesignerToolbarPopup {
6
+ templateToolSelect = html `
7
+ <div class="tool" data-command="setTool" popup="selector" data-command-parameter="RectangleSelector" title="Rectangle Selector" style="background-image: url('${assetsPath}images/layout/SelectRectTool.svg');"></div>
8
+ <div class="tool" data-command="setTool" data-command-parameter="MagicWandSelector" title="Magic Wand Selector" style="background-image: url('${assetsPath}images/layout/MagicWandTool.svg');"></div>
9
+ `;
10
+ toolActivated = new TypedEvent();
11
+ ready() {
12
+ this._setTitle(this.getAttribute("title"));
13
+ let toolSelect = new DesignerToolbarPopupToolSelect();
14
+ toolSelect.insertToolContent(this.templateToolSelect);
15
+ toolSelect.toolActivated.on((toolArg) => {
16
+ this.toolActivated.emit(toolArg);
17
+ });
18
+ let content = [];
19
+ content.push(toolSelect);
20
+ this._setContent(content);
21
+ }
22
+ }
23
+ customElements.define('node-projects-designer-popup-selector', SelectorToolsPopup);
@@ -0,0 +1,8 @@
1
+ import { BaseCustomWebComponentConstructorAppend } from "@node-projects/base-custom-webcomponent";
2
+ export declare abstract class DesignerToolbarPopup extends BaseCustomWebComponentConstructorAppend {
3
+ static readonly style: CSSStyleSheet;
4
+ static readonly template: HTMLTemplateElement;
5
+ ready(): void;
6
+ protected _setTitle(title: string): void;
7
+ protected _setContent(elements: HTMLElement[]): void;
8
+ }
@@ -0,0 +1,41 @@
1
+ import { BaseCustomWebComponentConstructorAppend, css, html } from "@node-projects/base-custom-webcomponent";
2
+ export class DesignerToolbarPopup extends BaseCustomWebComponentConstructorAppend {
3
+ static style = css `
4
+ .container {
5
+ width: 150px;
6
+ min-height: 200px;
7
+ color: white;
8
+ background-color: rgb(64, 64, 64);
9
+ border: 1px solid black;
10
+ }
11
+
12
+ header {
13
+ text-align: center;
14
+ }
15
+
16
+ * {
17
+ pointer-events: auto;
18
+ }
19
+ `;
20
+ static template = html `
21
+ <div class="container">
22
+ <header><h2 id="title" style="margin: 0;"></h2></header>
23
+ <main id="content-area"></main>
24
+ </div>
25
+ `;
26
+ //TODO: remove this class,
27
+ // i think the popups need no base, okay if they need one the should at least be normal elmeents
28
+ // and also the expicit popup should set the size, not the base class. maybe one needs to be bigger, one smaller...
29
+ ready() {
30
+ this._setTitle(this.getAttribute("title"));
31
+ }
32
+ _setTitle(title) {
33
+ this._getDomElement("title").innerHTML = title;
34
+ }
35
+ _setContent(elements) {
36
+ let contentArea = this._getDomElement("content-area");
37
+ for (let elem of elements) {
38
+ contentArea.appendChild(elem);
39
+ }
40
+ }
41
+ }
@@ -168,10 +168,12 @@ export class TreeViewExtended extends BaseCustomWebComponentConstructorAppend {
168
168
  checkboxColumnIdx: 0, // render the checkboxes into the 1st column
169
169
  },
170
170
  activate: (event, data) => {
171
- let node = data.node;
172
- let designItem = node.data.ref;
173
- if (designItem)
174
- designItem.instanceServiceContainer.selectionService.setSelectedElements([designItem]);
171
+ if (event.originalEvent) { // only for clicked items, not when elements selected via code.
172
+ let node = data.node;
173
+ let designItem = node.data.ref;
174
+ if (designItem)
175
+ designItem.instanceServiceContainer.selectionService.setSelectedElements([designItem]);
176
+ }
175
177
  },
176
178
  createNode: (event, data) => {
177
179
  let node = data.node;
package/dist/index.d.ts CHANGED
@@ -102,6 +102,7 @@ export * from "./elements/widgets/designerView/designerView.js";
102
102
  export * from "./elements/widgets/designerView/overlayLayerView.js";
103
103
  export * from "./elements/widgets/designerView/defaultConfiguredDesignerView.js";
104
104
  export type { ITool } from "./elements/widgets/designerView/tools/ITool.js";
105
+ export * from "./elements/widgets/designerView/tools/toolBar/DesignerToolbar.js";
105
106
  export * from "./elements/widgets/designerView/tools/NamedTools.js";
106
107
  export * from "./elements/widgets/designerView/tools/DrawElementTool.js";
107
108
  export * from "./elements/widgets/designerView/tools/DrawPathTool.js";
@@ -159,6 +160,7 @@ export * from "./elements/widgets/designerView/extensions/contextMenu/MultipleIt
159
160
  export * from "./elements/widgets/designerView/extensions/contextMenu/PathContextMenu.js";
160
161
  export * from "./elements/widgets/designerView/extensions/contextMenu/RectContextMenu.js";
161
162
  export * from "./elements/widgets/designerView/extensions/contextMenu/SeperatorContextMenu.js";
163
+ export * from "./elements/widgets/designerView/extensions/contextMenu/SelectAllChildrenContextMenu.js";
162
164
  export * from "./elements/widgets/designerView/extensions/contextMenu/ZMoveContextMenu.js";
163
165
  export * from "./elements/widgets/designerView/extensions/contextMenu/RotateLeftAndRightContextMenu.js";
164
166
  export * from "./elements/widgets/designerView/extensions/contextMenu/ZoomToElementContextMenu.js";
package/dist/index.js CHANGED
@@ -66,6 +66,7 @@ export * from "./elements/widgets/propertyGrid/PropertyGridWithHeader.js";
66
66
  export * from "./elements/widgets/designerView/designerView.js";
67
67
  export * from "./elements/widgets/designerView/overlayLayerView.js";
68
68
  export * from "./elements/widgets/designerView/defaultConfiguredDesignerView.js";
69
+ export * from "./elements/widgets/designerView/tools/toolBar/DesignerToolbar.js";
69
70
  export * from "./elements/widgets/designerView/tools/NamedTools.js";
70
71
  export * from "./elements/widgets/designerView/tools/DrawElementTool.js";
71
72
  export * from "./elements/widgets/designerView/tools/DrawPathTool.js";
@@ -119,6 +120,7 @@ export * from "./elements/widgets/designerView/extensions/contextMenu/MultipleIt
119
120
  export * from "./elements/widgets/designerView/extensions/contextMenu/PathContextMenu.js";
120
121
  export * from "./elements/widgets/designerView/extensions/contextMenu/RectContextMenu.js";
121
122
  export * from "./elements/widgets/designerView/extensions/contextMenu/SeperatorContextMenu.js";
123
+ export * from "./elements/widgets/designerView/extensions/contextMenu/SelectAllChildrenContextMenu.js";
122
124
  export * from "./elements/widgets/designerView/extensions/contextMenu/ZMoveContextMenu.js";
123
125
  export * from "./elements/widgets/designerView/extensions/contextMenu/RotateLeftAndRightContextMenu.js";
124
126
  export * from "./elements/widgets/designerView/extensions/contextMenu/ZoomToElementContextMenu.js";
package/package.json CHANGED
@@ -1,42 +1,42 @@
1
- {
2
- "description": "A UI designer for Polymer apps",
3
- "name": "@node-projects/web-component-designer",
4
- "version": "0.0.94",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "author": "",
8
- "license": "MIT",
9
- "scripts": {
10
- "tsc": "tsc",
11
- "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
12
- "build": "tsc",
13
- "prepublishOnly": "npm run build"
14
- },
15
- "dependencies": {
16
- "@node-projects/base-custom-webcomponent": "^0.9.0",
17
- "construct-style-sheets-polyfill": "^3.1.0"
18
- },
19
- "devDependencies": {
20
- "@node-projects/lean-he-esm": "^3.3.0",
21
- "@node-projects/node-html-parser-esm": "^2.4.1",
22
- "@papyrs/stylo": "^0.0.9",
23
- "@types/codemirror": "^5.60.5",
24
- "@types/jquery": "^3.5.14",
25
- "@types/jquery.fancytree": "0.0.7",
26
- "ace-builds": "^1.4.14",
27
- "codemirror": "^5.65.2",
28
- "esprima-next": "^5.8.1",
29
- "html2canvas": "*",
30
- "jest": "^27.5.1",
31
- "jquery": "^3.6.0",
32
- "jquery.fancytree": "^2.38.1",
33
- "monaco-editor": "^0.32.1",
34
- "ts-jest": "^27.1.3",
35
- "typescript": "^4.6.2",
36
- "typescript-lit-html-plugin": "^0.9.0"
37
- },
38
- "repository": {
39
- "type": "git",
40
- "url": "git+https://github.com/node-projects/web-component-designer.git"
41
- }
42
- }
1
+ {
2
+ "description": "A UI designer for Polymer apps",
3
+ "name": "@node-projects/web-component-designer",
4
+ "version": "0.0.97",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "author": "",
8
+ "license": "MIT",
9
+ "scripts": {
10
+ "tsc": "tsc",
11
+ "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
12
+ "build": "tsc",
13
+ "prepublishOnly": "npm run build"
14
+ },
15
+ "dependencies": {
16
+ "@node-projects/base-custom-webcomponent": "^0.9.1",
17
+ "construct-style-sheets-polyfill": "^3.1.0"
18
+ },
19
+ "devDependencies": {
20
+ "@node-projects/lean-he-esm": "^3.3.0",
21
+ "@node-projects/node-html-parser-esm": "^2.4.1",
22
+ "@papyrs/stylo": "^0.0.15",
23
+ "@types/codemirror": "^5.60.5",
24
+ "@types/jquery": "^3.5.14",
25
+ "@types/jquery.fancytree": "0.0.7",
26
+ "ace-builds": "^1.4.14",
27
+ "codemirror": "^5.65.3",
28
+ "esprima-next": "^5.8.1",
29
+ "html2canvas": "*",
30
+ "jest": "^27.5.1",
31
+ "jquery": "^3.6.0",
32
+ "jquery.fancytree": "^2.38.1",
33
+ "monaco-editor": "^0.33.0",
34
+ "ts-jest": "^27.1.4",
35
+ "typescript": "^4.6.3",
36
+ "typescript-lit-html-plugin": "^0.9.0"
37
+ },
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "git+https://github.com/node-projects/web-component-designer.git"
41
+ }
42
+ }