@node-projects/web-component-designer 0.0.79 → 0.0.83

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 (85) hide show
  1. package/.github/FUNDING.yml +1 -0
  2. package/dist/elements/helper/PathDataPolyfill.d.ts +11 -10
  3. package/dist/elements/helper/PathDataPolyfill.js +36 -1
  4. package/dist/elements/services/DefaultServiceBootstrap.js +9 -3
  5. package/dist/elements/services/htmlWriterService/AbstractHtmlWriterService.d.ts +10 -0
  6. package/dist/elements/services/htmlWriterService/AbstractHtmlWriterService.js +62 -0
  7. package/dist/elements/services/htmlWriterService/FormatingHtmlWriterService.d.ts +5 -5
  8. package/dist/elements/services/htmlWriterService/FormatingHtmlWriterService.js +4 -4
  9. package/dist/elements/services/htmlWriterService/HtmlWriterService copy.d.ts +4 -14
  10. package/dist/elements/services/htmlWriterService/HtmlWriterService copy.js +100 -100
  11. package/dist/elements/services/htmlWriterService/HtmlWriterService.d.ts +6 -6
  12. package/dist/elements/services/htmlWriterService/HtmlWriterService.js +6 -33
  13. package/dist/elements/services/htmlWriterService/IHtmlWriterOptions.d.ts +2 -0
  14. package/dist/elements/services/htmlWriterService/IHtmlWriterOptions.js +5 -3
  15. package/dist/elements/services/manifestParsers/WebcomponentManifestParserService.js +3 -1
  16. package/dist/elements/widgets/codeView/code-view-ace.js +1 -1
  17. package/dist/elements/widgets/codeView/code-view-code-mirror.js +1 -1
  18. package/dist/elements/widgets/designerView/DomConverter.d.ts +3 -3
  19. package/dist/elements/widgets/designerView/DomConverter.js +7 -4
  20. package/dist/elements/widgets/designerView/designerCanvas.d.ts +2 -0
  21. package/dist/elements/widgets/designerView/designerCanvas.js +11 -4
  22. package/dist/elements/widgets/designerView/designerView.js +25 -7
  23. package/dist/elements/widgets/designerView/extensions/ExtensionManager.d.ts +5 -4
  24. package/dist/elements/widgets/designerView/extensions/ExtensionManager.js +41 -15
  25. package/dist/elements/widgets/designerView/extensions/IExtensionManger.d.ts +2 -2
  26. package/dist/elements/widgets/designerView/extensions/IframeExtension.d.ts +11 -0
  27. package/dist/elements/widgets/designerView/extensions/IframeExtension.js +46 -0
  28. package/dist/elements/widgets/designerView/extensions/IframeExtensionProvider.d.ts +9 -0
  29. package/dist/elements/widgets/designerView/extensions/IframeExtensionProvider.js +9 -0
  30. package/dist/elements/widgets/designerView/extensions/InvisibleDivExtension.d.ts +1 -1
  31. package/dist/elements/widgets/designerView/extensions/InvisibleDivExtension.js +2 -2
  32. package/dist/elements/widgets/designerView/extensions/InvisibleDivExtensionProvider.d.ts +2 -2
  33. package/dist/elements/widgets/designerView/extensions/InvisibleDivExtensionProvider.js +3 -3
  34. package/dist/elements/widgets/designerView/extensions/PathExtension.d.ts +2 -1
  35. package/dist/elements/widgets/designerView/extensions/PathExtension.js +139 -12
  36. package/dist/elements/widgets/designerView/extensions/ResizeExtension.js +11 -3
  37. package/dist/elements/widgets/designerView/extensions/ResizeExtensionProvider.js +2 -1
  38. package/dist/elements/widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.js +0 -1
  39. package/dist/elements/widgets/designerView/extensions/contextMenu/PathContextMenu.d.ts +8 -0
  40. package/dist/elements/widgets/designerView/extensions/contextMenu/PathContextMenu.js +31 -0
  41. package/dist/elements/widgets/designerView/extensions/contextMenu/RectContextMenu.d.ts +8 -0
  42. package/dist/elements/widgets/designerView/extensions/contextMenu/RectContextMenu.js +34 -0
  43. package/dist/elements/widgets/designerView/tools/DrawElementTool.d.ts +1 -0
  44. package/dist/elements/widgets/designerView/tools/DrawElementTool.js +1 -0
  45. package/dist/elements/widgets/designerView/tools/DrawEllipsisTool.d.ts +1 -0
  46. package/dist/elements/widgets/designerView/tools/DrawEllipsisTool.js +2 -0
  47. package/dist/elements/widgets/designerView/tools/DrawLineTool.d.ts +1 -0
  48. package/dist/elements/widgets/designerView/tools/DrawLineTool.js +2 -0
  49. package/dist/elements/widgets/designerView/tools/DrawPathTool.d.ts +1 -1
  50. package/dist/elements/widgets/designerView/tools/DrawPathTool.js +18 -9
  51. package/dist/elements/widgets/designerView/tools/DrawRectTool.d.ts +1 -0
  52. package/dist/elements/widgets/designerView/tools/DrawRectTool.js +2 -0
  53. package/dist/elements/widgets/designerView/tools/ITool.d.ts +1 -0
  54. package/dist/elements/widgets/designerView/tools/MagicWandSelectorTool.d.ts +1 -0
  55. package/dist/elements/widgets/designerView/tools/MagicWandSelectorTool.js +1 -0
  56. package/dist/elements/widgets/designerView/tools/PanTool.d.ts +1 -0
  57. package/dist/elements/widgets/designerView/tools/PanTool.js +1 -0
  58. package/dist/elements/widgets/designerView/tools/PickColorTool.d.ts +1 -0
  59. package/dist/elements/widgets/designerView/tools/PickColorTool.js +1 -0
  60. package/dist/elements/widgets/designerView/tools/PointerTool.d.ts +1 -0
  61. package/dist/elements/widgets/designerView/tools/PointerTool.js +1 -0
  62. package/dist/elements/widgets/designerView/tools/RectangleSelectorTool.d.ts +1 -0
  63. package/dist/elements/widgets/designerView/tools/RectangleSelectorTool.js +1 -0
  64. package/dist/elements/widgets/designerView/tools/TextTool.d.ts +1 -0
  65. package/dist/elements/widgets/designerView/tools/TextTool.js +1 -0
  66. package/dist/elements/widgets/designerView/tools/ZoomTool.d.ts +1 -0
  67. package/dist/elements/widgets/designerView/tools/ZoomTool.js +1 -0
  68. package/dist/elements/widgets/treeView/treeViewExtended.js +1 -0
  69. package/dist/index.d.ts +2 -0
  70. package/dist/index.js +2 -0
  71. package/package.json +9 -9
  72. package/dist/elements/services/htmlWriterService/FormatingHtmlWriterService copy.d.ts +0 -22
  73. package/dist/elements/services/htmlWriterService/FormatingHtmlWriterService copy.js +0 -125
  74. package/dist/elements/services/htmlWriterService/LitElementWriterService.d.ts +0 -14
  75. package/dist/elements/services/htmlWriterService/LitElementWriterService.js +0 -123
  76. package/dist/elements/services/htmlWriterService/SimpleHtmlWriterService copy.d.ts +0 -22
  77. package/dist/elements/services/htmlWriterService/SimpleHtmlWriterService copy.js +0 -125
  78. package/dist/elements/services/initializationService/IIntializationService copy.d.ts +0 -4
  79. package/dist/elements/services/initializationService/IIntializationService copy.js +0 -1
  80. package/dist/elements/services/manifestLoaders/WebcomponentManifestParserService.d.ts +0 -26
  81. package/dist/elements/services/manifestLoaders/WebcomponentManifestParserService.js +0 -69
  82. package/dist/elements/services/webcomponentManifestParserService/WebcomponentManifestParserService.1.d.ts +0 -0
  83. package/dist/elements/services/webcomponentManifestParserService/WebcomponentManifestParserService.1.js +0 -1
  84. package/dist/elements/services/webcomponentManifestParserService/webcomponentManifestParserService.d.ts +0 -26
  85. package/dist/elements/services/webcomponentManifestParserService/webcomponentManifestParserService.js +0 -69
@@ -76,6 +76,7 @@ export class RectangleSelectorTool {
76
76
  break;
77
77
  }
78
78
  }
79
+ keyboardEventHandler(designerCanvas, event, currentElement) { }
79
80
  dispose() {
80
81
  }
81
82
  }
@@ -8,4 +8,5 @@ export declare class TextTool implements ITool {
8
8
  readonly cursor = "text";
9
9
  private _text;
10
10
  pointerEventHandler(designerCanvas: IDesignerCanvas, event: PointerEvent, currentElement: Element): void;
11
+ keyboardEventHandler(designerCanvas: IDesignerCanvas, event: KeyboardEvent, currentElement: Element): void;
11
12
  }
@@ -30,4 +30,5 @@ export class TextTool {
30
30
  break;
31
31
  }
32
32
  }
33
+ keyboardEventHandler(designerCanvas, event, currentElement) { }
33
34
  }
@@ -5,5 +5,6 @@ export declare class ZoomTool implements ITool {
5
5
  readonly cursor: string;
6
6
  activated(serviceContainer: ServiceContainer): void;
7
7
  pointerEventHandler(designerCanvas: IDesignerCanvas, event: PointerEvent, currentElement: Element): void;
8
+ keyboardEventHandler(designerCanvas: IDesignerCanvas, event: KeyboardEvent, currentElement: Element): void;
8
9
  dispose(): void;
9
10
  }
@@ -4,6 +4,7 @@ export class ZoomTool {
4
4
  }
5
5
  pointerEventHandler(designerCanvas, event, currentElement) {
6
6
  }
7
+ keyboardEventHandler(designerCanvas, event, currentElement) { }
7
8
  dispose() {
8
9
  }
9
10
  }
@@ -59,6 +59,7 @@ export class TreeViewExtended extends BaseCustomWebComponentConstructorAppend {
59
59
  background: #ffffffc9;
60
60
  width: 70px;
61
61
  justify-content: flex-end;
62
+ background: white;
62
63
  }
63
64
 
64
65
  table.fancytree-ext-table tbody tr.fancytree-selected {
package/dist/index.d.ts CHANGED
@@ -45,6 +45,7 @@ export * from "./elements/services/elementsService/JsonFileElementsService.js";
45
45
  export * from "./elements/services/elementsService/PreDefinedElementsService.js";
46
46
  export type { IHtmlWriterService } from "./elements/services/htmlWriterService/IHtmlWriterService.js";
47
47
  export type { IHtmlWriterOptions } from "./elements/services/htmlWriterService/IHtmlWriterOptions.js";
48
+ export * from "./elements/services/htmlWriterService/AbstractHtmlWriterService.js";
48
49
  export * from "./elements/services/htmlWriterService/FormatingHtmlWriterService.js";
49
50
  export * from "./elements/services/htmlWriterService/HtmlWriterService.js";
50
51
  export * from "./elements/services/htmlWriterService/LitTsElementWriterService.js";
@@ -179,3 +180,4 @@ export type { IPoint } from "./interfaces/IPoint.js";
179
180
  export type { IRect } from "./interfaces/IRect.js";
180
181
  export type { ISize } from "./interfaces/ISize.js";
181
182
  export type { ICommandHandler } from "./interfaces/ICommandHandler.js";
183
+ export * from './Constants.js';
package/dist/index.js CHANGED
@@ -26,6 +26,7 @@ export * from "./elements/services/demoProviderService/DemoProviderService.js";
26
26
  export * from "./elements/services/dragDropService/DragDropService.js";
27
27
  export * from "./elements/services/elementsService/JsonFileElementsService.js";
28
28
  export * from "./elements/services/elementsService/PreDefinedElementsService.js";
29
+ export * from "./elements/services/htmlWriterService/AbstractHtmlWriterService.js";
29
30
  export * from "./elements/services/htmlWriterService/FormatingHtmlWriterService.js";
30
31
  export * from "./elements/services/htmlWriterService/HtmlWriterService.js";
31
32
  export * from "./elements/services/htmlWriterService/LitTsElementWriterService.js";
@@ -128,3 +129,4 @@ export * from "./elements/widgets/codeView/code-view-code-mirror.js";
128
129
  export * from "./elements/documentContainer.js";
129
130
  export * from "./enums/EventNames.js";
130
131
  export * from "./enums/PointerActionType.js";
132
+ export * from './Constants.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.79",
4
+ "version": "0.0.83",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "",
@@ -13,26 +13,26 @@
13
13
  "prepublishOnly": "npm run build"
14
14
  },
15
15
  "dependencies": {
16
- "@node-projects/base-custom-webcomponent": "^0.4.1",
17
- "construct-style-sheets-polyfill": "^3.0.5"
16
+ "@node-projects/base-custom-webcomponent": "^0.5.0",
17
+ "construct-style-sheets-polyfill": "^3.1.0"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@node-projects/lean-he-esm": "^3.3.0",
21
21
  "@node-projects/node-html-parser-esm": "^2.4.1",
22
22
  "@types/codemirror": "^5.60.5",
23
- "@types/jquery": "^3.5.11",
23
+ "@types/jquery": "^3.5.13",
24
24
  "@types/jquery.fancytree": "0.0.7",
25
- "ace-builds": "^1.4.13",
26
- "codemirror": "^5.65.0",
25
+ "ace-builds": "^1.4.14",
26
+ "codemirror": "^5.65.1",
27
27
  "custom-elements-manifest": "^1.0.0",
28
28
  "esprima-next": "^5.8.1",
29
29
  "html2canvas": "*",
30
30
  "jest": "^27.4.7",
31
31
  "jquery": "^3.6.0",
32
- "jquery.fancytree": "^2.38.0",
32
+ "jquery.fancytree": "^2.38.1",
33
33
  "monaco-editor": "^0.31.1",
34
- "ts-jest": "^27.1.2",
35
- "typescript": "^4.5.4",
34
+ "ts-jest": "^27.1.3",
35
+ "typescript": "^4.5.5",
36
36
  "typescript-lit-html-plugin": "^0.9.0"
37
37
  },
38
38
  "repository": {
@@ -1,22 +0,0 @@
1
- import { IDesignItem } from '../../item/IDesignItem';
2
- import { IHtmlWriterService } from './IHtmlWriterService';
3
- import { IHtmlWriterOptions } from './IHtmlWriterOptions';
4
- import { IndentedTextWriter } from '../../helper/IndentedTextWriter';
5
- import { IStringPosition } from './IStringPosition';
6
- declare enum ElementContainerType {
7
- block = 0,
8
- complex = 1
9
- }
10
- export declare class FormatingHtmlWriterService implements IHtmlWriterService {
11
- private writeAttributes;
12
- private writeStyles;
13
- private _writeTextNode;
14
- private _writeCommentNode;
15
- private _writeElementNode;
16
- private _writeDesignItemList;
17
- private _writeNewlineAndIntend;
18
- private _writeInternal;
19
- getContainerType(element: HTMLElement): ElementContainerType;
20
- write(indentedTextWriter: IndentedTextWriter, designItems: IDesignItem[], rootContainerKeepInline: boolean, options: IHtmlWriterOptions, designItemsAssignmentList?: Map<IDesignItem, IStringPosition>): void;
21
- }
22
- export {};
@@ -1,125 +0,0 @@
1
- import { DomConverter } from '../../widgets/designerView/DomConverter';
2
- import { CssCombiner } from '../../helper/CssCombiner';
3
- import { NodeType } from '../../item/NodeType';
4
- import { PropertiesHelper } from '../propertiesService/services/PropertiesHelper';
5
- import { ElementDisplayType, getElementDisplaytype } from '../../helper/ElementHelper.js';
6
- var ElementContainerType;
7
- (function (ElementContainerType) {
8
- ElementContainerType[ElementContainerType["block"] = 0] = "block";
9
- ElementContainerType[ElementContainerType["complex"] = 1] = "complex";
10
- })(ElementContainerType || (ElementContainerType = {}));
11
- const defaultDisplayNoneContainerDisplayType = ElementContainerType.complex;
12
- export class FormatingHtmlWriterService {
13
- writeAttributes(writeContext, designItem) {
14
- if (designItem.hasAttributes) {
15
- for (const a of designItem.attributes) {
16
- writeContext.indentedTextWriter.write(' ');
17
- if (typeof a[1] === 'string') {
18
- if (a[1] === "")
19
- writeContext.indentedTextWriter.write(a[0]);
20
- else
21
- writeContext.indentedTextWriter.write(a[0] + '="' + DomConverter.normalizeAttributeValue(a[1]) + '"');
22
- }
23
- else if (!a[1])
24
- writeContext.indentedTextWriter.write(a[0]);
25
- else {
26
- }
27
- }
28
- }
29
- }
30
- writeStyles(writeContext, designItem) {
31
- if (designItem.hasStyles) {
32
- writeContext.indentedTextWriter.write(' style="');
33
- let styles = designItem.styles;
34
- if (writeContext.options.compressCssToShorthandProperties)
35
- styles = CssCombiner.combine(styles);
36
- for (const s of styles) {
37
- if (s[0]) {
38
- writeContext.indentedTextWriter.write(PropertiesHelper.camelToDashCase(s[0]) + ':' + DomConverter.normalizeAttributeValue(s[1]) + ';');
39
- }
40
- }
41
- writeContext.indentedTextWriter.write('"');
42
- }
43
- }
44
- _writeTextNode(writeContext, designItem) {
45
- writeContext.lastElementDisplayType = ElementDisplayType.inline;
46
- let content = DomConverter.normalizeContentValue(designItem.content).trim();
47
- if (content) {
48
- writeContext.indentedTextWriter.write(content);
49
- }
50
- }
51
- _writeCommentNode(writeContext, designItem) {
52
- writeContext.indentedTextWriter.write('<!--' + designItem.content + '-->');
53
- }
54
- _writeElementNode(writeContext, designItem) {
55
- const currentElementDisplayType = getElementDisplaytype(designItem.element);
56
- writeContext.lastElementDisplayType = currentElementDisplayType;
57
- writeContext.indentedTextWriter.write('<' + designItem.name);
58
- this.writeAttributes(writeContext, designItem);
59
- this.writeStyles(writeContext, designItem);
60
- writeContext.indentedTextWriter.write('>');
61
- if (designItem.hasChildren) {
62
- const children = designItem.children();
63
- const contentSingleTextNode = designItem.childCount === 1 && designItem.firstChild.nodeType === NodeType.TextNode;
64
- if (contentSingleTextNode) {
65
- this._writeInternal(writeContext, designItem.firstChild);
66
- }
67
- else {
68
- let previousContainerDisplayType = writeContext.containerDisplayType;
69
- writeContext.containerDisplayType = this.getContainerType(designItem.element);
70
- writeContext.indentedTextWriter.levelRaise();
71
- this._writeDesignItemList(currentElementDisplayType, writeContext, children);
72
- writeContext.indentedTextWriter.levelShrink();
73
- writeContext.containerDisplayType = previousContainerDisplayType;
74
- }
75
- }
76
- else if (designItem.hasContent) {
77
- writeContext.indentedTextWriter.write(DomConverter.normalizeContentValue(designItem.content));
78
- }
79
- if (!DomConverter.IsSelfClosingElement(designItem.name)) {
80
- //write newline & intend ???
81
- writeContext.indentedTextWriter.write('</' + designItem.name + '>');
82
- if (currentElementDisplayType !== ElementDisplayType.none) {
83
- writeContext.lastElementDisplayType = currentElementDisplayType;
84
- }
85
- }
86
- }
87
- _writeDesignItemList(currentElementDisplayType, writeContext, children) {
88
- for (const c of children) {
89
- if (writeContext.lastElementDisplayType == null) {
90
- //first entry, do nothing
91
- }
92
- else if (writeContext.containerDisplayType === ElementContainerType.complex)
93
- this._writeNewlineAndIntend(writeContext);
94
- else if (writeContext.lastElementDisplayType !== ElementDisplayType.inline || currentElementDisplayType !== ElementDisplayType.inline)
95
- this._writeNewlineAndIntend(writeContext);
96
- this._writeInternal(writeContext, c);
97
- }
98
- }
99
- _writeNewlineAndIntend(writeContext) {
100
- writeContext.indentedTextWriter.writeNewline();
101
- writeContext.indentedTextWriter.writeIndent();
102
- }
103
- _writeInternal(writeContext, designItem) {
104
- const start = writeContext.indentedTextWriter.position;
105
- if (designItem.nodeType === NodeType.TextNode)
106
- this._writeTextNode(writeContext, designItem);
107
- else if (designItem.nodeType === NodeType.Comment)
108
- this._writeCommentNode(writeContext, designItem);
109
- else if (designItem.nodeType === NodeType.Element)
110
- this._writeElementNode(writeContext, designItem);
111
- if (writeContext.designItemsAssignmentList) {
112
- writeContext.designItemsAssignmentList.set(designItem, { start: start, length: writeContext.indentedTextWriter.position - start - 1 });
113
- }
114
- }
115
- getContainerType(element) {
116
- const display = window.getComputedStyle(element).display;
117
- if (display === 'block' || display === "inline-block" || display == '')
118
- return ElementContainerType.block;
119
- return ElementContainerType.complex;
120
- }
121
- write(indentedTextWriter, designItems, rootContainerKeepInline, options, designItemsAssignmentList) {
122
- const context = { indentedTextWriter, options, lastElementDisplayType: null, containerDisplayType: ElementContainerType.block, designItemsAssignmentList };
123
- this._writeDesignItemList(ElementDisplayType.inline, context, designItems);
124
- }
125
- }
@@ -1,14 +0,0 @@
1
- import { IDesignItem } from '../../item/IDesignItem';
2
- import { IHtmlWriterService } from './IHtmlWriterService';
3
- import { IHtmlWriterOptions } from './IHtmlWriterOptions';
4
- import { IndentedTextWriter } from '../../helper/IndentedTextWriter';
5
- import { IStringPosition } from './IStringPosition';
6
- export declare class LitTsElementWriterService implements IHtmlWriterService {
7
- static head: string;
8
- static footer: string;
9
- canWrite(designItem: IDesignItem): boolean;
10
- private _conditionalyWriteIndent;
11
- private _conditionalyWriteNewline;
12
- write(indentedTextWriter: IndentedTextWriter, designItem: IDesignItem, options: IHtmlWriterOptions, designItemsAssignmentList?: Map<IDesignItem, IStringPosition>): void;
13
- private writeTextNode;
14
- }
@@ -1,123 +0,0 @@
1
- import { DomConverter } from '../../widgets/designerView/DomConverter';
2
- import { CssCombiner } from '../../helper/CssCombiner';
3
- import { NodeType } from '../../item/NodeType';
4
- import { PropertiesHelper } from '../propertiesService/services/PropertiesHelper';
5
- import { isInline } from '../../helper/ElementHelper.js';
6
- //todo :
7
- //write style...
8
- //needs InternalBindinsgStorrageService -> keeps bindings
9
- export class LitTsElementWriterService {
10
- static head = `import { LitElement, html } from "lit-element";
11
-
12
- class $$className extends LitElement {
13
- render() {
14
- return html\``;
15
- static footer = `\`;
16
- }
17
- }
18
-
19
- export default $$className;
20
-
21
- declare global {
22
- interface HTMLElementTagNameMap {
23
- '$$elementName': $$className;
24
- }
25
- }`;
26
- canWrite(designItem) {
27
- return true;
28
- }
29
- _conditionalyWriteIndent(indentedTextWriter, designItem) {
30
- if ((designItem.element instanceof HTMLElement && !isInline(designItem.element)) ||
31
- (designItem.element.previousElementSibling instanceof HTMLElement && !isInline(designItem.element.previousElementSibling)))
32
- indentedTextWriter.writeIndent();
33
- }
34
- _conditionalyWriteNewline(indentedTextWriter, designItem) {
35
- if ((designItem.element instanceof HTMLElement && !isInline(designItem.element)) ||
36
- (designItem.element.nextElementSibling instanceof HTMLElement && !isInline(designItem.element.nextElementSibling)))
37
- indentedTextWriter.writeNewline();
38
- }
39
- write(indentedTextWriter, designItem, options, designItemsAssignmentList) {
40
- let start = indentedTextWriter.position;
41
- if (designItem.nodeType == NodeType.TextNode) {
42
- this._conditionalyWriteIndent(indentedTextWriter, designItem);
43
- this.writeTextNode(indentedTextWriter, designItem, true);
44
- }
45
- else if (designItem.nodeType == NodeType.Comment) {
46
- this._conditionalyWriteIndent(indentedTextWriter, designItem);
47
- indentedTextWriter.write('<!--' + designItem.content + '-->');
48
- this._conditionalyWriteNewline(indentedTextWriter, designItem);
49
- }
50
- else {
51
- this._conditionalyWriteIndent(indentedTextWriter, designItem);
52
- indentedTextWriter.write('<' + designItem.name);
53
- if (designItem.hasAttributes) {
54
- for (const a of designItem.attributes) {
55
- indentedTextWriter.write(' ');
56
- if (typeof a[1] === 'string') {
57
- if (a[1] === "")
58
- indentedTextWriter.write(a[0]);
59
- else
60
- indentedTextWriter.write(a[0] + '="' + DomConverter.normalizeAttributeValue(a[1]) + '"');
61
- }
62
- else if (!a[1])
63
- indentedTextWriter.write(a[0]);
64
- else {
65
- //TODO: writing of bindings
66
- }
67
- }
68
- }
69
- if (designItem.hasStyles) {
70
- indentedTextWriter.write(' style="');
71
- let styles = designItem.styles;
72
- if (options.compressCssToShorthandProperties)
73
- styles = CssCombiner.combine(styles);
74
- for (const s of styles) {
75
- if (s[0]) {
76
- indentedTextWriter.write(PropertiesHelper.camelToDashCase(s[0]) + ':' + DomConverter.normalizeAttributeValue(s[1]) + ';');
77
- }
78
- }
79
- indentedTextWriter.write('"');
80
- }
81
- indentedTextWriter.write('>');
82
- if (designItem.hasChildren) {
83
- const children = designItem.children();
84
- const singleTextNode = designItem.childCount === 1 && designItem.firstChild.nodeType === NodeType.TextNode;
85
- if (singleTextNode) {
86
- this.writeTextNode(indentedTextWriter, designItem, false);
87
- }
88
- else {
89
- indentedTextWriter.writeNewline();
90
- indentedTextWriter.levelRaise();
91
- for (const c of children) {
92
- c.serviceContainer.forSomeServicesTillResult('htmlWriterService', (s) => {
93
- if (s.canWrite(c)) {
94
- s.write(indentedTextWriter, c, options, designItemsAssignmentList);
95
- }
96
- });
97
- }
98
- indentedTextWriter.levelShrink();
99
- indentedTextWriter.writeIndent();
100
- }
101
- }
102
- else if (designItem.hasContent) {
103
- indentedTextWriter.write(DomConverter.normalizeContentValue(designItem.content));
104
- }
105
- if (!DomConverter.IsSelfClosingElement(designItem.name))
106
- indentedTextWriter.write('</' + designItem.name + '>');
107
- this._conditionalyWriteNewline(indentedTextWriter, designItem);
108
- }
109
- if (designItemsAssignmentList) {
110
- designItemsAssignmentList.set(designItem, { start: start, length: indentedTextWriter.position - start - 1 });
111
- }
112
- }
113
- writeTextNode(indentedTextWriter, designItem, indentAndNewline) {
114
- let content = DomConverter.normalizeContentValue(designItem.content).trim();
115
- if (content) {
116
- if (indentAndNewline)
117
- this._conditionalyWriteIndent(indentedTextWriter, designItem);
118
- indentedTextWriter.write(content);
119
- if (indentAndNewline)
120
- this._conditionalyWriteNewline(indentedTextWriter, designItem);
121
- }
122
- }
123
- }
@@ -1,22 +0,0 @@
1
- import { IDesignItem } from '../../item/IDesignItem';
2
- import { IHtmlWriterService } from './IHtmlWriterService';
3
- import { IHtmlWriterOptions } from './IHtmlWriterOptions';
4
- import { IndentedTextWriter } from '../../helper/IndentedTextWriter';
5
- import { IStringPosition } from './IStringPosition';
6
- declare enum ElementContainerType {
7
- block = 0,
8
- complex = 1
9
- }
10
- export declare class FormatingHtmlWriterService implements IHtmlWriterService {
11
- private writeAttributes;
12
- private writeStyles;
13
- private _writeTextNode;
14
- private _writeCommentNode;
15
- private _writeElementNode;
16
- private _writeDesignItemList;
17
- private _writeNewlineAndIntend;
18
- private _writeInternal;
19
- getContainerType(element: HTMLElement): ElementContainerType;
20
- write(indentedTextWriter: IndentedTextWriter, designItems: IDesignItem[], rootContainerKeepInline: boolean, options: IHtmlWriterOptions, designItemsAssignmentList?: Map<IDesignItem, IStringPosition>): void;
21
- }
22
- export {};
@@ -1,125 +0,0 @@
1
- import { DomConverter } from '../../widgets/designerView/DomConverter';
2
- import { CssCombiner } from '../../helper/CssCombiner';
3
- import { NodeType } from '../../item/NodeType';
4
- import { PropertiesHelper } from '../propertiesService/services/PropertiesHelper';
5
- import { ElementDisplayType, getElementDisplaytype } from '../../helper/ElementHelper.js';
6
- var ElementContainerType;
7
- (function (ElementContainerType) {
8
- ElementContainerType[ElementContainerType["block"] = 0] = "block";
9
- ElementContainerType[ElementContainerType["complex"] = 1] = "complex";
10
- })(ElementContainerType || (ElementContainerType = {}));
11
- const defaultDisplayNoneContainerDisplayType = ElementContainerType.complex;
12
- export class FormatingHtmlWriterService {
13
- writeAttributes(writeContext, designItem) {
14
- if (designItem.hasAttributes) {
15
- for (const a of designItem.attributes) {
16
- writeContext.indentedTextWriter.write(' ');
17
- if (typeof a[1] === 'string') {
18
- if (a[1] === "")
19
- writeContext.indentedTextWriter.write(a[0]);
20
- else
21
- writeContext.indentedTextWriter.write(a[0] + '="' + DomConverter.normalizeAttributeValue(a[1]) + '"');
22
- }
23
- else if (!a[1])
24
- writeContext.indentedTextWriter.write(a[0]);
25
- else {
26
- }
27
- }
28
- }
29
- }
30
- writeStyles(writeContext, designItem) {
31
- if (designItem.hasStyles) {
32
- writeContext.indentedTextWriter.write(' style="');
33
- let styles = designItem.styles;
34
- if (writeContext.options.compressCssToShorthandProperties)
35
- styles = CssCombiner.combine(styles);
36
- for (const s of styles) {
37
- if (s[0]) {
38
- writeContext.indentedTextWriter.write(PropertiesHelper.camelToDashCase(s[0]) + ':' + DomConverter.normalizeAttributeValue(s[1]) + ';');
39
- }
40
- }
41
- writeContext.indentedTextWriter.write('"');
42
- }
43
- }
44
- _writeTextNode(writeContext, designItem) {
45
- writeContext.lastElementDisplayType = ElementDisplayType.inline;
46
- let content = DomConverter.normalizeContentValue(designItem.content).trim();
47
- if (content) {
48
- writeContext.indentedTextWriter.write(content);
49
- }
50
- }
51
- _writeCommentNode(writeContext, designItem) {
52
- writeContext.indentedTextWriter.write('<!--' + designItem.content + '-->');
53
- }
54
- _writeElementNode(writeContext, designItem) {
55
- const currentElementDisplayType = getElementDisplaytype(designItem.element);
56
- writeContext.lastElementDisplayType = currentElementDisplayType;
57
- writeContext.indentedTextWriter.write('<' + designItem.name);
58
- this.writeAttributes(writeContext, designItem);
59
- this.writeStyles(writeContext, designItem);
60
- writeContext.indentedTextWriter.write('>');
61
- if (designItem.hasChildren) {
62
- const children = designItem.children();
63
- const contentSingleTextNode = designItem.childCount === 1 && designItem.firstChild.nodeType === NodeType.TextNode;
64
- if (contentSingleTextNode) {
65
- this._writeInternal(writeContext, designItem.firstChild);
66
- }
67
- else {
68
- let previousContainerDisplayType = writeContext.containerDisplayType;
69
- writeContext.containerDisplayType = this.getContainerType(designItem.element);
70
- writeContext.indentedTextWriter.levelRaise();
71
- this._writeDesignItemList(currentElementDisplayType, writeContext, children);
72
- writeContext.indentedTextWriter.levelShrink();
73
- writeContext.containerDisplayType = previousContainerDisplayType;
74
- }
75
- }
76
- else if (designItem.hasContent) {
77
- writeContext.indentedTextWriter.write(DomConverter.normalizeContentValue(designItem.content));
78
- }
79
- if (!DomConverter.IsSelfClosingElement(designItem.name)) {
80
- //write newline & intend ???
81
- writeContext.indentedTextWriter.write('</' + designItem.name + '>');
82
- if (currentElementDisplayType !== ElementDisplayType.none) {
83
- writeContext.lastElementDisplayType = currentElementDisplayType;
84
- }
85
- }
86
- }
87
- _writeDesignItemList(currentElementDisplayType, writeContext, children) {
88
- for (const c of children) {
89
- if (writeContext.lastElementDisplayType == null) {
90
- //first entry, do nothing
91
- }
92
- else if (writeContext.containerDisplayType === ElementContainerType.complex)
93
- this._writeNewlineAndIntend(writeContext);
94
- else if (writeContext.lastElementDisplayType !== ElementDisplayType.inline || currentElementDisplayType !== ElementDisplayType.inline)
95
- this._writeNewlineAndIntend(writeContext);
96
- this._writeInternal(writeContext, c);
97
- }
98
- }
99
- _writeNewlineAndIntend(writeContext) {
100
- writeContext.indentedTextWriter.writeNewline();
101
- writeContext.indentedTextWriter.writeIndent();
102
- }
103
- _writeInternal(writeContext, designItem) {
104
- const start = writeContext.indentedTextWriter.position;
105
- if (designItem.nodeType === NodeType.TextNode)
106
- this._writeTextNode(writeContext, designItem);
107
- else if (designItem.nodeType === NodeType.Comment)
108
- this._writeCommentNode(writeContext, designItem);
109
- else if (designItem.nodeType === NodeType.Element)
110
- this._writeElementNode(writeContext, designItem);
111
- if (writeContext.designItemsAssignmentList) {
112
- writeContext.designItemsAssignmentList.set(designItem, { start: start, length: writeContext.indentedTextWriter.position - start - 1 });
113
- }
114
- }
115
- getContainerType(element) {
116
- const display = window.getComputedStyle(element).display;
117
- if (display === 'block' || display === "inline-block" || display == '')
118
- return ElementContainerType.block;
119
- return ElementContainerType.complex;
120
- }
121
- write(indentedTextWriter, designItems, rootContainerKeepInline, options, designItemsAssignmentList) {
122
- const context = { indentedTextWriter, options, lastElementDisplayType: null, containerDisplayType: ElementContainerType.block, designItemsAssignmentList };
123
- this._writeDesignItemList(ElementDisplayType.inline, context, designItems);
124
- }
125
- }
@@ -1,4 +0,0 @@
1
- import { IDesignItem } from '../../item/IDesignItem';
2
- export interface IIntializationService {
3
- init(designItem: IDesignItem): void;
4
- }
@@ -1,26 +0,0 @@
1
- import { IDesignItem } from "../../..";
2
- import { BindingTarget } from "../../item/BindingTarget";
3
- import { IElementDefinition } from "../elementsService/IElementDefinition";
4
- import { IElementsService } from "../elementsService/IElementsService";
5
- import { IPropertiesService } from "../propertiesService/IPropertiesService";
6
- import { IProperty } from "../propertiesService/IProperty";
7
- import { ValueType } from "../propertiesService/ValueType";
8
- export declare class WebcomponentManifestParserService implements IElementsService, IPropertiesService {
9
- private _name;
10
- get name(): string;
11
- private _packageData;
12
- private _elementList;
13
- private _resolveStored;
14
- private _rejectStored;
15
- constructor(name: string, file: string);
16
- getElements(): Promise<IElementDefinition[]>;
17
- isHandledElement(designItem: IDesignItem): boolean;
18
- getProperties(designItem: IDesignItem): IProperty[];
19
- getProperty(designItem: IDesignItem, name: string): IProperty;
20
- getPropertyTarget(designItem: IDesignItem, property: IProperty): BindingTarget;
21
- setValue(designItems: IDesignItem[], property: IProperty, value: any): void;
22
- clearValue(designItems: IDesignItem[], property: IProperty): void;
23
- isSet(designItems: IDesignItem[], property: IProperty): ValueType;
24
- getValue(designItems: IDesignItem[], property: IProperty): void;
25
- getUnsetValue(designItems: IDesignItem[], property: IProperty): void;
26
- }