@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.
- package/assets/images/layout/ColorPickerTool.svg +21 -0
- package/assets/images/layout/DrawEllipTool.svg +13 -0
- package/assets/images/layout/DrawLineTool.svg +13 -0
- package/assets/images/layout/DrawPathTool.svg +32 -0
- package/assets/images/layout/DrawRectTool.svg +28 -0
- package/assets/images/layout/MagicWandTool.svg +14 -0
- package/assets/images/layout/PointerTool.svg +10 -0
- package/assets/images/layout/SelectRectTool.svg +9 -0
- package/assets/images/layout/TextBoxTool.svg +8 -0
- package/assets/images/layout/TextTool.svg +7 -0
- package/assets/images/layout/ZoomTool.svg +16 -0
- package/dist/Constants.d.ts +1 -1
- package/dist/Constants.js +3 -1
- package/dist/elements/services/DefaultServiceBootstrap.js +10 -0
- package/dist/elements/services/GlobalContext.d.ts +4 -1
- package/dist/elements/services/GlobalContext.js +8 -3
- package/dist/elements/services/ServiceContainer.d.ts +2 -0
- package/dist/elements/services/ServiceContainer.js +1 -0
- package/dist/elements/widgets/designerView/Snaplines.js +1 -1
- package/dist/elements/widgets/designerView/designerCanvas.js +3 -1
- package/dist/elements/widgets/designerView/designerView.d.ts +2 -0
- package/dist/elements/widgets/designerView/designerView.js +19 -2
- package/dist/elements/widgets/designerView/extensions/contextMenu/SelectAllChildrenContextMenu.d.ts +8 -0
- package/dist/elements/widgets/designerView/extensions/contextMenu/SelectAllChildrenContextMenu.js +12 -0
- package/dist/elements/widgets/designerView/toolBar/DrawElementTool.d.ts +19 -0
- package/dist/elements/widgets/designerView/toolBar/DrawElementTool.js +79 -0
- package/dist/elements/widgets/designerView/toolBar/DrawEllipsisTool.d.ts +16 -0
- package/dist/elements/widgets/designerView/toolBar/DrawEllipsisTool.js +94 -0
- package/dist/elements/widgets/designerView/toolBar/DrawLineTool.d.ts +14 -0
- package/dist/elements/widgets/designerView/toolBar/DrawLineTool.js +79 -0
- package/dist/elements/widgets/designerView/toolBar/DrawPathTool.d.ts +20 -0
- package/dist/elements/widgets/designerView/toolBar/DrawPathTool.js +128 -0
- package/dist/elements/widgets/designerView/toolBar/DrawRectTool.d.ts +19 -0
- package/dist/elements/widgets/designerView/toolBar/DrawRectTool.js +109 -0
- package/dist/elements/widgets/designerView/toolBar/ITool.d.ts +9 -0
- package/dist/elements/widgets/designerView/toolBar/ITool.js +1 -0
- package/dist/elements/widgets/designerView/toolBar/MagicWandSelectorTool.d.ts +12 -0
- package/dist/elements/widgets/designerView/toolBar/MagicWandSelectorTool.js +64 -0
- package/dist/elements/widgets/designerView/toolBar/NamedTools.d.ts +15 -0
- package/dist/elements/widgets/designerView/toolBar/NamedTools.js +16 -0
- package/dist/elements/widgets/designerView/toolBar/PanTool.d.ts +10 -0
- package/dist/elements/widgets/designerView/toolBar/PanTool.js +26 -0
- package/dist/elements/widgets/designerView/toolBar/PickColorTool.d.ts +10 -0
- package/dist/elements/widgets/designerView/toolBar/PickColorTool.js +20 -0
- package/dist/elements/widgets/designerView/toolBar/PointerTool.d.ts +24 -0
- package/dist/elements/widgets/designerView/toolBar/PointerTool.js +283 -0
- package/dist/elements/widgets/designerView/toolBar/RectangleSelectorTool.d.ts +12 -0
- package/dist/elements/widgets/designerView/toolBar/RectangleSelectorTool.js +84 -0
- package/dist/elements/widgets/designerView/toolBar/TextTool.d.ts +11 -0
- package/dist/elements/widgets/designerView/toolBar/TextTool.js +33 -0
- package/dist/elements/widgets/designerView/toolBar/ZoomTool.d.ts +17 -0
- package/dist/elements/widgets/designerView/toolBar/ZoomTool.js +79 -0
- package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolRenderer.d.ts +5 -0
- package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolRenderer.js +19 -0
- package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolbarPopup.d.ts +8 -0
- package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolbarPopup.js +41 -0
- package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolbarPopupToolSelect.d.ts +9 -0
- package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolbarPopupToolSelect.js +42 -0
- package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolsButtons.d.ts +36 -0
- package/dist/elements/widgets/designerView/toolBar/designerToolbarGenerics/designerToolsButtons.js +96 -0
- package/dist/elements/widgets/designerView/toolBar/designerToolbarPopups/DrawToolPopup.d.ts +5 -0
- package/dist/elements/widgets/designerView/toolBar/designerToolbarPopups/DrawToolPopup.js +21 -0
- package/dist/elements/widgets/designerView/toolBar/designerToolbarPopups/SelectorToolsPopup.d.ts +8 -0
- package/dist/elements/widgets/designerView/toolBar/designerToolbarPopups/SelectorToolsPopup.js +23 -0
- package/dist/elements/widgets/designerView/toolBar/designerToolsDock.d.ts +24 -0
- package/dist/elements/widgets/designerView/toolBar/designerToolsDock.js +115 -0
- package/dist/elements/widgets/designerView/tools/NamedTools.d.ts +2 -1
- package/dist/elements/widgets/designerView/tools/NamedTools.js +1 -0
- package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolRenderer.d.ts +5 -0
- package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolRenderer.js +19 -0
- package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolbarPopup.d.ts +8 -0
- package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolbarPopup.js +41 -0
- package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolbarPopupToolSelect.d.ts +9 -0
- package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolbarPopupToolSelect.js +42 -0
- package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolsButtons.d.ts +36 -0
- package/dist/elements/widgets/designerView/tools/designerToolbarGenerics/designerToolsButtons.js +87 -0
- package/dist/elements/widgets/designerView/tools/designerToolbarPopups/DrawToolPopup copy.d.ts +8 -0
- package/dist/elements/widgets/designerView/tools/designerToolbarPopups/DrawToolPopup copy.js +25 -0
- package/dist/elements/widgets/designerView/tools/designerToolbarPopups/DrawToolPopup.d.ts +5 -0
- package/dist/elements/widgets/designerView/tools/designerToolbarPopups/DrawToolPopup.js +21 -0
- package/dist/elements/widgets/designerView/tools/designerToolbarPopups/SelectorToolsPopup.d.ts +8 -0
- package/dist/elements/widgets/designerView/tools/designerToolbarPopups/SelectorToolsPopup.js +23 -0
- package/dist/elements/widgets/designerView/tools/designerToolsDock.d.ts +24 -0
- package/dist/elements/widgets/designerView/tools/designerToolsDock.js +115 -0
- package/dist/elements/widgets/designerView/tools/toolBar/AbstractDesignerToolbarButton.d.ts +5 -0
- package/dist/elements/widgets/designerView/tools/toolBar/AbstractDesignerToolbarButton.js +5 -0
- package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbar.d.ts +16 -0
- package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbar.js +68 -0
- package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbarButton.d.ts +19 -0
- package/dist/elements/widgets/designerView/tools/toolBar/DesignerToolbarButton.js +62 -0
- package/dist/elements/widgets/designerView/tools/toolBar/IDesignViewConfigButtonsProvider.d.ts +5 -0
- package/dist/elements/widgets/designerView/tools/toolBar/IDesignViewConfigButtonsProvider.js +1 -0
- package/dist/elements/widgets/designerView/tools/toolBar/IDesignViewToolbarButtonProvider.d.ts +4 -0
- package/dist/elements/widgets/designerView/tools/toolBar/IDesignViewToolbarButtonProvider.js +1 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/DrawToolButtonProvider.d.ts +5 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/DrawToolButtonProvider.js +16 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/PointerToolButtonProvider copy.d.ts +5 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/PointerToolButtonProvider copy.js +7 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/PointerToolButtonProvider.d.ts +5 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/PointerToolButtonProvider.js +7 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/SelectorToolButtonProvider copy.d.ts +5 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/SelectorToolButtonProvider copy.js +10 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/SelectorToolButtonProvider.d.ts +5 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/SelectorToolButtonProvider.js +10 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/SeperatorToolProvider.d.ts +7 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/SeperatorToolProvider.js +11 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/TextToolButtonProvider.d.ts +5 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/TextToolButtonProvider.js +7 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/ZoomToolButtonProvider.d.ts +5 -0
- package/dist/elements/widgets/designerView/tools/toolBar/buttons/ZoomToolButtonProvider.js +7 -0
- package/dist/elements/widgets/designerView/tools/toolBar/designerToolsDock.d.ts +24 -0
- package/dist/elements/widgets/designerView/tools/toolBar/designerToolsDock.js +115 -0
- package/dist/elements/widgets/designerView/tools/toolBar/popups/DrawToolPopup.d.ts +6 -0
- package/dist/elements/widgets/designerView/tools/toolBar/popups/DrawToolPopup.js +50 -0
- package/dist/elements/widgets/designerView/tools/toolBar/popups/SelectorToolsPopup.d.ts +7 -0
- package/dist/elements/widgets/designerView/tools/toolBar/popups/SelectorToolsPopup.js +23 -0
- package/dist/elements/widgets/designerView/tools/toolBar/popups/designerToolbarPopup.d.ts +8 -0
- package/dist/elements/widgets/designerView/tools/toolBar/popups/designerToolbarPopup.js +41 -0
- package/dist/elements/widgets/treeView/treeViewExtended.js +6 -4
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- 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
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
34
|
-
"ts-jest": "^27.1.
|
|
35
|
-
"typescript": "^4.6.
|
|
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
|
+
}
|