@node-projects/web-component-designer 0.0.140 → 0.0.142
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/dist/elements/services/InstanceServiceContainer.d.ts +1 -0
- package/dist/elements/services/InstanceServiceContainer.js +1 -0
- package/dist/elements/services/ServiceContainer.js +2 -2
- package/dist/elements/widgets/codeView/code-view-monaco copy.d.ts +25 -0
- package/dist/elements/widgets/codeView/code-view-monaco copy.js +119 -0
- package/dist/elements/widgets/codeView/code-view-simple.d.ts +23 -0
- package/dist/elements/widgets/codeView/code-view-simple.js +55 -0
- package/dist/elements/widgets/designerView/designerCanvas.js +3 -1
- package/dist/elements/widgets/designerView/extensions/InvisibleDivExtension.js +1 -6
- package/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@ interface InstanceServiceNameMap {
|
|
|
12
12
|
export declare class InstanceServiceContainer extends BaseServiceContainer<InstanceServiceNameMap> {
|
|
13
13
|
designContext: IDesignContext;
|
|
14
14
|
readonly designerCanvas: IDesignerCanvas;
|
|
15
|
+
designer: any;
|
|
15
16
|
constructor(designerCanvas: IDesignerCanvas);
|
|
16
17
|
get undoService(): IUndoService;
|
|
17
18
|
get selectionService(): ISelectionService;
|
|
@@ -3,6 +3,7 @@ import { DesignContext } from '../widgets/designerView/DesignContext';
|
|
|
3
3
|
export class InstanceServiceContainer extends BaseServiceContainer {
|
|
4
4
|
designContext = new DesignContext();
|
|
5
5
|
designerCanvas;
|
|
6
|
+
designer; //usable to assign designer from outside
|
|
6
7
|
constructor(designerCanvas) {
|
|
7
8
|
super();
|
|
8
9
|
this.designerCanvas = designerCanvas;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { BaseServiceContainer } from './BaseServiceContainer';
|
|
2
|
-
import { CodeViewMonaco } from "../widgets/codeView/code-view-monaco";
|
|
3
2
|
import { DemoView } from '../widgets/demoView/demoView';
|
|
4
3
|
import { GlobalContext } from './GlobalContext';
|
|
4
|
+
import { CodeViewSimple } from "../widgets/codeView/code-view-simple";
|
|
5
5
|
export class ServiceContainer extends BaseServiceContainer {
|
|
6
6
|
config = {
|
|
7
|
-
codeViewWidget:
|
|
7
|
+
codeViewWidget: CodeViewSimple,
|
|
8
8
|
demoViewWidget: DemoView
|
|
9
9
|
};
|
|
10
10
|
designerExtensions = new Map();
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BaseCustomWebComponentLazyAppend, TypedEvent } from '@node-projects/base-custom-webcomponent';
|
|
2
|
+
import { ICodeView } from "./ICodeView";
|
|
3
|
+
import { IActivateable } from '../../../interfaces/IActivateable';
|
|
4
|
+
import { IStringPosition } from '../../services/htmlWriterService/IStringPosition';
|
|
5
|
+
import { IUiCommandHandler } from '../../../commandHandling/IUiCommandHandler';
|
|
6
|
+
import { IUiCommand } from '../../../commandHandling/IUiCommand';
|
|
7
|
+
export declare class CodeViewMonaco extends BaseCustomWebComponentLazyAppend implements ICodeView, IActivateable, IUiCommandHandler {
|
|
8
|
+
dispose(): void;
|
|
9
|
+
canvasElement: HTMLElement;
|
|
10
|
+
elementsToPackages: Map<string, string>;
|
|
11
|
+
code: string;
|
|
12
|
+
onTextChanged: TypedEvent<string>;
|
|
13
|
+
private _monacoEditor;
|
|
14
|
+
private _editor;
|
|
15
|
+
static readonly style: CSSStyleSheet;
|
|
16
|
+
static readonly template: HTMLTemplateElement;
|
|
17
|
+
executeCommand(command: IUiCommand): void;
|
|
18
|
+
canExecuteCommand(command: IUiCommand): boolean;
|
|
19
|
+
ready(): Promise<void>;
|
|
20
|
+
focusEditor(): void;
|
|
21
|
+
activated(): void;
|
|
22
|
+
update(code: any): void;
|
|
23
|
+
getText(): string;
|
|
24
|
+
setSelection(position: IStringPosition): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { BaseCustomWebComponentLazyAppend, css, html, TypedEvent } from '@node-projects/base-custom-webcomponent';
|
|
2
|
+
import { CommandType } from '../../../commandHandling/CommandType';
|
|
3
|
+
export class CodeViewMonaco extends BaseCustomWebComponentLazyAppend {
|
|
4
|
+
dispose() {
|
|
5
|
+
this._monacoEditor.dispose();
|
|
6
|
+
}
|
|
7
|
+
canvasElement;
|
|
8
|
+
elementsToPackages;
|
|
9
|
+
code;
|
|
10
|
+
onTextChanged = new TypedEvent();
|
|
11
|
+
_monacoEditor;
|
|
12
|
+
_editor;
|
|
13
|
+
static style = css `
|
|
14
|
+
:host {
|
|
15
|
+
display: block;
|
|
16
|
+
height: 100%;
|
|
17
|
+
width: 100%;
|
|
18
|
+
}
|
|
19
|
+
`;
|
|
20
|
+
static template = html `
|
|
21
|
+
<div id="container" style="width: 100%; height: 100%; position: absolute;"></div>
|
|
22
|
+
`;
|
|
23
|
+
executeCommand(command) {
|
|
24
|
+
switch (command.type) {
|
|
25
|
+
case CommandType.undo:
|
|
26
|
+
this._monacoEditor.trigger('source', 'undo', null);
|
|
27
|
+
break;
|
|
28
|
+
case CommandType.redo:
|
|
29
|
+
this._monacoEditor.trigger('source', 'redo', null);
|
|
30
|
+
break;
|
|
31
|
+
case CommandType.copy:
|
|
32
|
+
this._monacoEditor.trigger('source', 'editor.action.clipboardCopyAction', null);
|
|
33
|
+
break;
|
|
34
|
+
case CommandType.paste:
|
|
35
|
+
this._monacoEditor.trigger('source', 'editor.action.clipboardPasteAction', null);
|
|
36
|
+
break;
|
|
37
|
+
case CommandType.cut:
|
|
38
|
+
break;
|
|
39
|
+
case CommandType.delete:
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
canExecuteCommand(command) {
|
|
44
|
+
switch (command.type) {
|
|
45
|
+
case CommandType.undo:
|
|
46
|
+
case CommandType.redo:
|
|
47
|
+
case CommandType.copy:
|
|
48
|
+
case CommandType.paste:
|
|
49
|
+
case CommandType.cut:
|
|
50
|
+
case CommandType.delete:
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
async ready() {
|
|
56
|
+
let style;
|
|
57
|
+
//@ts-ignore
|
|
58
|
+
if (window.importShim)
|
|
59
|
+
//@ts-ignore
|
|
60
|
+
style = await importShim("monaco-editor/min/vs/editor/editor.main.css", { assert: { type: 'css' } });
|
|
61
|
+
else
|
|
62
|
+
//@ts-ignore
|
|
63
|
+
style = await import("monaco-editor/min/vs/editor/editor.main.css", { assert: { type: 'css' } });
|
|
64
|
+
this.shadowRoot.adoptedStyleSheets = [style.default, this.constructor.style];
|
|
65
|
+
this._editor = this._getDomElement('container');
|
|
66
|
+
//@ts-ignore
|
|
67
|
+
require.config({ paths: { 'vs': 'node_modules/monaco-editor/min/vs' } });
|
|
68
|
+
//@ts-ignore
|
|
69
|
+
require(['vs/editor/editor.main'], () => {
|
|
70
|
+
//@ts-ignore
|
|
71
|
+
this._monacoEditor = monaco.editor.create(this._editor, {
|
|
72
|
+
automaticLayout: true,
|
|
73
|
+
value: this.code,
|
|
74
|
+
language: 'html',
|
|
75
|
+
minimap: {
|
|
76
|
+
size: 'fill'
|
|
77
|
+
},
|
|
78
|
+
fixedOverflowWidgets: true
|
|
79
|
+
});
|
|
80
|
+
this._monacoEditor.layout();
|
|
81
|
+
let changeContentListener = this._monacoEditor.getModel().onDidChangeContent(e => {
|
|
82
|
+
this.onTextChanged.emit(this._monacoEditor.getValue());
|
|
83
|
+
});
|
|
84
|
+
this._monacoEditor.onDidChangeModel(e => {
|
|
85
|
+
changeContentListener.dispose();
|
|
86
|
+
changeContentListener = this._monacoEditor.getModel().onDidChangeContent(e => {
|
|
87
|
+
this.onTextChanged.emit(this._monacoEditor.getValue());
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
focusEditor() {
|
|
93
|
+
requestAnimationFrame(() => {
|
|
94
|
+
this.focus();
|
|
95
|
+
this._monacoEditor.focus();
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
activated() {
|
|
99
|
+
if (this._monacoEditor)
|
|
100
|
+
this._monacoEditor.layout();
|
|
101
|
+
}
|
|
102
|
+
update(code) {
|
|
103
|
+
this.code = code;
|
|
104
|
+
if (this._monacoEditor) {
|
|
105
|
+
this._monacoEditor.setValue(code);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
getText() {
|
|
109
|
+
return this._monacoEditor.getValue();
|
|
110
|
+
}
|
|
111
|
+
setSelection(position) {
|
|
112
|
+
let model = this._monacoEditor.getModel();
|
|
113
|
+
let point1 = model.getPositionAt(position.start);
|
|
114
|
+
let point2 = model.getPositionAt(position.start + position.length);
|
|
115
|
+
this._monacoEditor.setSelection({ startLineNumber: point1.lineNumber, startColumn: point1.column, endLineNumber: point2.lineNumber, endColumn: point2.column });
|
|
116
|
+
setTimeout(() => this._monacoEditor.revealLine(point1.lineNumber), 20);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
customElements.define('node-projects-code-view-monaco', CodeViewMonaco);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BaseCustomWebComponentConstructorAppend, TypedEvent } from '@node-projects/base-custom-webcomponent';
|
|
2
|
+
import { ICodeView } from "./ICodeView";
|
|
3
|
+
import { IActivateable } from '../../../interfaces/IActivateable';
|
|
4
|
+
import { IStringPosition } from '../../services/htmlWriterService/IStringPosition';
|
|
5
|
+
import { IUiCommandHandler } from '../../../commandHandling/IUiCommandHandler';
|
|
6
|
+
import { IUiCommand } from '../../../commandHandling/IUiCommand';
|
|
7
|
+
export declare class CodeViewSimple extends BaseCustomWebComponentConstructorAppend implements ICodeView, IActivateable, IUiCommandHandler {
|
|
8
|
+
dispose(): void;
|
|
9
|
+
canvasElement: HTMLElement;
|
|
10
|
+
elementsToPackages: Map<string, string>;
|
|
11
|
+
onTextChanged: TypedEvent<string>;
|
|
12
|
+
private _text;
|
|
13
|
+
static readonly style: CSSStyleSheet;
|
|
14
|
+
static readonly template: HTMLTemplateElement;
|
|
15
|
+
executeCommand(command: IUiCommand): void;
|
|
16
|
+
canExecuteCommand(command: IUiCommand): boolean;
|
|
17
|
+
ready(): Promise<void>;
|
|
18
|
+
focusEditor(): void;
|
|
19
|
+
activated(): void;
|
|
20
|
+
update(code: any): void;
|
|
21
|
+
getText(): string;
|
|
22
|
+
setSelection(position: IStringPosition): void;
|
|
23
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { BaseCustomWebComponentConstructorAppend, css, html, TypedEvent } from '@node-projects/base-custom-webcomponent';
|
|
2
|
+
export class CodeViewSimple extends BaseCustomWebComponentConstructorAppend {
|
|
3
|
+
dispose() {
|
|
4
|
+
}
|
|
5
|
+
canvasElement;
|
|
6
|
+
elementsToPackages;
|
|
7
|
+
onTextChanged = new TypedEvent();
|
|
8
|
+
_text;
|
|
9
|
+
static style = css `
|
|
10
|
+
:host {
|
|
11
|
+
display: block;
|
|
12
|
+
height: 100%;
|
|
13
|
+
width: 100%;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
textarea {
|
|
17
|
+
height: 100%;
|
|
18
|
+
width: 100%;
|
|
19
|
+
resize: none;
|
|
20
|
+
white-space: nowrap;
|
|
21
|
+
box-sizing: border-box;
|
|
22
|
+
}
|
|
23
|
+
`;
|
|
24
|
+
static template = html `
|
|
25
|
+
<div id="container" style="width: 100%; height: 100%; position: absolute;">
|
|
26
|
+
<textarea id="text"></textarea>
|
|
27
|
+
</div>
|
|
28
|
+
`;
|
|
29
|
+
executeCommand(command) {
|
|
30
|
+
}
|
|
31
|
+
canExecuteCommand(command) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
async ready() {
|
|
35
|
+
this._text = this._getDomElement('text');
|
|
36
|
+
}
|
|
37
|
+
focusEditor() {
|
|
38
|
+
requestAnimationFrame(() => {
|
|
39
|
+
this.focus();
|
|
40
|
+
this._text.focus();
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
activated() {
|
|
44
|
+
}
|
|
45
|
+
update(code) {
|
|
46
|
+
this._text.value = code;
|
|
47
|
+
}
|
|
48
|
+
getText() {
|
|
49
|
+
return this._text.value;
|
|
50
|
+
}
|
|
51
|
+
setSelection(position) {
|
|
52
|
+
this._text.setSelectionRange(position.start, position.start + position.length);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
customElements.define('node-projects-code-view-simple', CodeViewSimple);
|
|
@@ -465,8 +465,10 @@ export class DesignerCanvas extends BaseCustomWebComponentLazyAppend {
|
|
|
465
465
|
this._updateTransform();
|
|
466
466
|
this._fillCalculationrects();
|
|
467
467
|
this.onZoomFactorChanged.emit(this._zoomFactor);
|
|
468
|
-
if (refreshExtensions)
|
|
468
|
+
if (refreshExtensions) {
|
|
469
469
|
this.extensionManager.refreshAllAppliedExtentions();
|
|
470
|
+
setTimeout(() => this.extensionManager.refreshAllAppliedExtentions(), 200);
|
|
471
|
+
}
|
|
470
472
|
}
|
|
471
473
|
_updateTransform() {
|
|
472
474
|
this._scaleFactor = this._zoomFactor;
|
|
@@ -10,12 +10,7 @@ export class InvisibleDivExtension extends AbstractExtension {
|
|
|
10
10
|
}
|
|
11
11
|
refresh() {
|
|
12
12
|
const itemRect = this.designerCanvas.getNormalizedElementCoordinates(this.extendedItem.element);
|
|
13
|
-
|
|
14
|
-
const left = Number.parseFloat(computedStyle.marginLeft.replace('px', ''));
|
|
15
|
-
const top = Number.parseFloat(computedStyle.marginTop.replace('px', ''));
|
|
16
|
-
const right = Number.parseFloat(computedStyle.marginRight.replace('px', ''));
|
|
17
|
-
const bottom = Number.parseFloat(computedStyle.marginBottom.replace('px', ''));
|
|
18
|
-
this._rect = this._drawRect(itemRect.x - left, itemRect.y - top, left + itemRect.width + right, top + itemRect.height + bottom, 'svg-invisible-div', this._rect, OverlayLayer.Background);
|
|
13
|
+
this._rect = this._drawRect(itemRect.x, itemRect.y, itemRect.width, itemRect.height, 'svg-invisible-div', this._rect, OverlayLayer.Background);
|
|
19
14
|
}
|
|
20
15
|
dispose() {
|
|
21
16
|
this._removeAllOverlays();
|
|
@@ -93,7 +93,7 @@ export class PropertyGridPropertyList extends BaseCustomWebComponentLazyAppend {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
createElements(designItem) {
|
|
96
|
-
if (this._propertiesService.listNeedsRefresh(designItem) || this._propertyMap.size == 0) {
|
|
96
|
+
if (this._propertiesService && (this._propertiesService.listNeedsRefresh(designItem)) || this._propertyMap.size == 0) {
|
|
97
97
|
DomHelper.removeAllChildnodes(this._div);
|
|
98
98
|
this._propertyMap.clear();
|
|
99
99
|
if (this._propertiesService) {
|
package/dist/index.d.ts
CHANGED
|
@@ -215,6 +215,7 @@ export type { ICodeView } from "./elements/widgets/codeView/ICodeView.js";
|
|
|
215
215
|
export * from "./elements/widgets/codeView/code-view-monaco.js";
|
|
216
216
|
export * from "./elements/widgets/codeView/code-view-ace.js";
|
|
217
217
|
export * from "./elements/widgets/codeView/code-view-code-mirror.js";
|
|
218
|
+
export * from "./elements/widgets/codeView/code-view-simple.js";
|
|
218
219
|
export * from "./elements/documentContainer.js";
|
|
219
220
|
export * from "./enums/EventNames.js";
|
|
220
221
|
export * from "./enums/PointerActionType.js";
|
package/dist/index.js
CHANGED
|
@@ -167,6 +167,7 @@ export * from "./elements/widgets/treeView/treeViewExtended.js";
|
|
|
167
167
|
export * from "./elements/widgets/codeView/code-view-monaco.js";
|
|
168
168
|
export * from "./elements/widgets/codeView/code-view-ace.js";
|
|
169
169
|
export * from "./elements/widgets/codeView/code-view-code-mirror.js";
|
|
170
|
+
export * from "./elements/widgets/codeView/code-view-simple.js";
|
|
170
171
|
export * from "./elements/documentContainer.js";
|
|
171
172
|
export * from "./enums/EventNames.js";
|
|
172
173
|
export * from "./enums/PointerActionType.js";
|