@node-projects/web-component-designer 0.0.47 → 0.0.51

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 (120) hide show
  1. package/dist/elements/helper/GridHelper.d.ts +16 -0
  2. package/dist/elements/helper/GridHelper.js +107 -0
  3. package/dist/elements/helper/Helper.d.ts +3 -0
  4. package/dist/elements/helper/Helper.js +3 -0
  5. package/dist/elements/item/DesignItem.d.ts +4 -2
  6. package/dist/elements/item/DesignItem.js +6 -3
  7. package/dist/elements/item/IDesignItem.d.ts +4 -2
  8. package/dist/elements/services/htmlWriterService/HtmlWriterService.js +1 -6
  9. package/dist/elements/services/placementService/DefaultPlacementService.js +6 -0
  10. package/dist/elements/services/placementService/GridPlacementService.js +52 -1
  11. package/dist/elements/services/undoService/transactionItems/CssStyleChangeAction.d.ts +2 -2
  12. package/dist/elements/widgets/designerView/DomConverter.d.ts +1 -1
  13. package/dist/elements/widgets/designerView/DomConverter.js +2 -0
  14. package/dist/elements/widgets/designerView/IDesignerCanvas.d.ts +2 -0
  15. package/dist/elements/widgets/designerView/designerCanvas.d.ts +2 -1
  16. package/dist/elements/widgets/designerView/designerCanvas.js +2 -2
  17. package/dist/elements/widgets/designerView/extensions/GridExtension.js +11 -97
  18. package/dist/elements/widgets/designerView/extensions/TransformOriginExtension.js +2 -2
  19. package/dist/elements/widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.d.ts +2 -2
  20. package/dist/elements/widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.js +1 -1
  21. package/dist/elements/widgets/designerView/extensions/contextMenu/IContextMenuExtension.d.ts +2 -1
  22. package/dist/elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.d.ts +2 -2
  23. package/dist/elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.js +4 -3
  24. package/dist/elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.d.ts +2 -2
  25. package/dist/elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.js +1 -1
  26. package/dist/elements/widgets/designerView/extensions/contextMenu/ZMoveContextMenu.d.ts +2 -2
  27. package/dist/elements/widgets/designerView/extensions/contextMenu/ZMoveContextMenu.js +1 -1
  28. package/dist/elements/widgets/propertyGrid/PropertyGridWithHeader.js +2 -2
  29. package/dist/elements/widgets/treeView/treeViewExtended.d.ts +2 -0
  30. package/dist/elements/widgets/treeView/treeViewExtended.js +18 -1
  31. package/dist/index.d.ts +1 -1
  32. package/package.json +1 -1
  33. package/dist/elements/controls/ImageButtonListSelector copy.d.ts +0 -17
  34. package/dist/elements/controls/ImageButtonListSelector copy.js +0 -82
  35. package/dist/elements/controls/NumericInput.d.ts +0 -0
  36. package/dist/elements/controls/NumericInput.js +0 -1
  37. package/dist/elements/controls/ThicknessEditor copy.d.ts +0 -33
  38. package/dist/elements/controls/ThicknessEditor copy.js +0 -145
  39. package/dist/elements/helper/CssPropertiesList.d.ts +0 -0
  40. package/dist/elements/helper/CssPropertiesList.js +0 -1
  41. package/dist/elements/item/Binding.d.ts +0 -14
  42. package/dist/elements/item/Binding.js +0 -4
  43. package/dist/elements/item/IBinding copy.d.ts +0 -14
  44. package/dist/elements/item/IBinding copy.js +0 -1
  45. package/dist/elements/services/bindingsService/BaseCustomeWebcomponentBindingsService copy.d.ts +0 -9
  46. package/dist/elements/services/bindingsService/BaseCustomeWebcomponentBindingsService copy.js +0 -31
  47. package/dist/elements/services/bindingsService/BaseCustomeWebcomponentBindingsService.d.ts +0 -11
  48. package/dist/elements/services/bindingsService/BaseCustomeWebcomponentBindingsService.js +0 -34
  49. package/dist/elements/services/bindingsService/BindingMode.d.ts +0 -4
  50. package/dist/elements/services/bindingsService/BindingMode.js +0 -5
  51. package/dist/elements/services/bindingsService/BindingTarget.d.ts +0 -6
  52. package/dist/elements/services/bindingsService/BindingTarget.js +0 -7
  53. package/dist/elements/services/bindingsService/IBinding.d.ts +0 -14
  54. package/dist/elements/services/bindingsService/IBinding.js +0 -1
  55. package/dist/elements/services/bindingsService/PolymerBindingsService copy.d.ts +0 -9
  56. package/dist/elements/services/bindingsService/PolymerBindingsService copy.js +0 -31
  57. package/dist/elements/services/bindingsService/PolymerBindingsService.d.ts +0 -0
  58. package/dist/elements/services/bindingsService/PolymerBindingsService.js +0 -38
  59. package/dist/elements/services/copyPasteService/ICopyPasteService copy.d.ts +0 -0
  60. package/dist/elements/services/copyPasteService/ICopyPasteService copy.js +0 -1
  61. package/dist/elements/services/htmlParserService/NodeHtmlParserService.ts.BASE.d.ts +0 -9
  62. package/dist/elements/services/htmlParserService/NodeHtmlParserService.ts.BASE.js +0 -100
  63. package/dist/elements/services/htmlParserService/NodeHtmlParserService.ts.LOCAL.d.ts +0 -11
  64. package/dist/elements/services/htmlParserService/NodeHtmlParserService.ts.LOCAL.js +0 -84
  65. package/dist/elements/services/htmlParserService/NodeHtmlParserService.ts.REMOTE.d.ts +0 -9
  66. package/dist/elements/services/htmlParserService/NodeHtmlParserService.ts.REMOTE.js +0 -83
  67. package/dist/elements/services/modelCommandService/DefaultInstanceService.d.ts +0 -8
  68. package/dist/elements/services/modelCommandService/DefaultInstanceService.js +0 -14
  69. package/dist/elements/services/modelCommandService/IInstanceService.d.ts +0 -8
  70. package/dist/elements/services/modelCommandService/IInstanceService.js +0 -1
  71. package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor copy.d.ts +0 -8
  72. package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor copy.js +0 -40
  73. package/dist/elements/services/propertiesService/services/CommonPropertiesService copy.d.ts +0 -16
  74. package/dist/elements/services/propertiesService/services/CommonPropertiesService copy.js +0 -94
  75. package/dist/elements/widgets/designerView/IDesignerView.d.ts +0 -30
  76. package/dist/elements/widgets/designerView/IDesignerView.js +0 -1
  77. package/dist/elements/widgets/designerView/designerView copy.d.ts +0 -82
  78. package/dist/elements/widgets/designerView/designerView copy.js +0 -671
  79. package/dist/elements/widgets/designerView/extensions/AbstractExtension copy.d.ts +0 -22
  80. package/dist/elements/widgets/designerView/extensions/AbstractExtension copy.js +0 -52
  81. package/dist/elements/widgets/designerView/extensions/CanvasExtension copy.d.ts +0 -10
  82. package/dist/elements/widgets/designerView/extensions/CanvasExtension copy.js +0 -29
  83. package/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider copy.d.ts +0 -10
  84. package/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider copy.js +0 -15
  85. package/dist/elements/widgets/designerView/extensions/EditText/EditTextCkEditorExtension.d.ts +0 -14
  86. package/dist/elements/widgets/designerView/extensions/EditText/EditTextCkEditorExtension.js +0 -42
  87. package/dist/elements/widgets/designerView/extensions/EditText/EditTextCkEditorExtensionProvider.d.ts +0 -9
  88. package/dist/elements/widgets/designerView/extensions/EditText/EditTextCkEditorExtensionProvider.js +0 -9
  89. package/dist/elements/widgets/designerView/extensions/EditText/EditTextTinyMceExtension.d.ts +0 -27
  90. package/dist/elements/widgets/designerView/extensions/EditText/EditTextTinyMceExtension.js +0 -61
  91. package/dist/elements/widgets/designerView/extensions/EditText/EditTextTinyMceExtensionProvider.d.ts +0 -9
  92. package/dist/elements/widgets/designerView/extensions/EditText/EditTextTinyMceExtensionProvider.js +0 -9
  93. package/dist/elements/widgets/designerView/extensions/PermamentCursorExtension.d.ts +0 -10
  94. package/dist/elements/widgets/designerView/extensions/PermamentCursorExtension.js +0 -29
  95. package/dist/elements/widgets/designerView/extensions/PermamentCursorExtensionProvider copy.d.ts +0 -10
  96. package/dist/elements/widgets/designerView/extensions/PermamentCursorExtensionProvider copy.js +0 -15
  97. package/dist/elements/widgets/designerView/extensions/PermamentCursorExtensionProvider.d.ts +0 -10
  98. package/dist/elements/widgets/designerView/extensions/PermamentCursorExtensionProvider.js +0 -15
  99. package/dist/elements/widgets/designerView/extensions/pointerExtensions/AbstractExtension.d.ts +0 -22
  100. package/dist/elements/widgets/designerView/extensions/pointerExtensions/AbstractExtension.js +0 -78
  101. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtension copy.d.ts +0 -13
  102. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorLinePointerExtension copy.js +0 -27
  103. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorRectangleExtension.d.ts +0 -7
  104. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorRectangleExtension.js +0 -20
  105. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorRectanglePointerExtension copy.d.ts +0 -13
  106. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorRectanglePointerExtension copy.js +0 -27
  107. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorRectanglePointerExtension.d.ts +0 -7
  108. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorRectanglePointerExtension.js +0 -20
  109. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerExtension.d.ts +0 -5
  110. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerExtension.js +0 -1
  111. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerExtensionProvider.d.ts +0 -9
  112. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerExtensionProvider.js +0 -1
  113. package/dist/elements/widgets/designerView/extensions/pointerExtensions/RulerExtension.d.ts +0 -7
  114. package/dist/elements/widgets/designerView/extensions/pointerExtensions/RulerExtension.js +0 -20
  115. package/dist/elements/widgets/designerView/extensions/pointerExtensions/RulerPointerExtension.d.ts +0 -7
  116. package/dist/elements/widgets/designerView/extensions/pointerExtensions/RulerPointerExtension.js +0 -20
  117. package/dist/elements/widgets/propertyGrid/PropertyGrid copy.d.ts +0 -17
  118. package/dist/elements/widgets/propertyGrid/PropertyGrid copy.js +0 -143
  119. package/dist/interfaces/IDesignerMousePoint.d.ts +0 -11
  120. package/dist/interfaces/IDesignerMousePoint.js +0 -1
@@ -1,38 +0,0 @@
1
- "use strict";
2
- /*import { IndentedTextWriter } from "../../helper/IndentedTextWriter";
3
- import { IDesignItem } from "../../item/IDesignItem";
4
- import { DomConverter } from "../../widgets/designerView/DomConverter";
5
- import { IBinding } from "./IBinding";
6
- import { IBindingService } from "./IBindingService";
7
- import { BindingMode } from './BindingMode';
8
-
9
-
10
- export class PolymerBindingsService implements IBindingService {
11
- writeBindingMode: 'direct' = 'direct';
12
-
13
- parseBindings(designItem: IDesignItem) {
14
- for (let a of designItem.attributes.entries()) {
15
- if (typeof a[1] == 'string' && (a[1].startsWith("[[") || a[1].startsWith("{{"))) {
16
- let bnd: IBinding & { escapeAttribute?: boolean } = {};
17
- if (a[1].startsWith("[["))
18
- bnd.mode = BindingMode.oneWay;
19
- else
20
- bnd.mode = BindingMode.twoWay;
21
- bnd.invert = a[1][3] == '!';
22
- bnd.expression = a[1];
23
- let nm = a[0];
24
- if (nm.endsWith('$')) {
25
- bnd.escapeAttribute = true;
26
- nm = nm.slice(0, -1);
27
- designItem.attributes.delete(a[0]);
28
- }
29
- designItem.attributes.set(nm, bnd);
30
- }
31
- }
32
- }
33
-
34
- writeBinding(indentedTextWriter: IndentedTextWriter, designItem: IDesignItem, type: 'style' | 'attribute', keyValuePair: [key: string, value: IBinding]): boolean {
35
- indentedTextWriter.write(keyValuePair[0] + '="' + (keyValuePair[1].mode == BindingMode.oneWay ? '[[' : '{{') + DomConverter.normalizeAttributeValue(keyValuePair[1].expression) + (keyValuePair[1].mode == BindingMode.oneWay ? ']]' : ']]') + '"');
36
- return true;
37
- }
38
- }*/
@@ -1,9 +0,0 @@
1
- import { InstanceServiceContainer } from "../InstanceServiceContainer";
2
- import { ServiceContainer } from "../ServiceContainer";
3
- import { IHtmlParserService } from "./IHtmlParserService";
4
- import { IDesignItem } from '../../item/IDesignItem';
5
- export declare class NodeHtmlParserService implements IHtmlParserService {
6
- parse(html: string, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer): Promise<IDesignItem[]>;
7
- private _parseDiv;
8
- _createDesignItemsRecursive(item: any, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer, namespace: string): IDesignItem;
9
- }
@@ -1,100 +0,0 @@
1
- import { DesignItem } from '../../item/DesignItem';
2
- import { CssAttributeParser } from "../../helper/CssAttributeParser";
3
- import { newElementFromString } from "../../helper/ElementHelper";
4
- // Alternative Parser, cause when you use the Browser, it instanciates the CusomElements, and some Elemnts remove
5
- // attributes from their DOM, so you loose Data
6
- export class NodeHtmlParserService {
7
- constructor() {
8
- this._parseDiv = document.createElement("div");
9
- }
10
- async parse(html, serviceContainer, instanceServiceContainer) {
11
- //@ts-ignore
12
- let parser = await import('../../../../../node-html-parser-esm/dist/index.js');
13
- const parsed = parser.parse(html, { comment: true });
14
- let designItems = [];
15
- for (let p of parsed.childNodes) {
16
- let di = this._createDesignItemsRecursive(p, serviceContainer, instanceServiceContainer, null);
17
- if (di != null)
18
- designItems.push(di);
19
- else
20
- console.warn("NodeHtmlParserService - could not parse element", p);
21
- }
22
- return designItems;
23
- }
24
- _createDesignItemsRecursive(item, serviceContainer, instanceServiceContainer, namespace) {
25
- let designItem = null;
26
- if (item.nodeType == 1) {
27
- let element;
28
- if (!namespace)
29
- element = newElementFromString('<' + item.rawTagName + ' ' + item.rawAttrs + '></' + item.rawTagName + '>'); // some custom elements only parse attributes during constructor call
30
- if (!element) {
31
- if (namespace)
32
- element = document.createElementNS(namespace, item.rawTagName);
33
- else
34
- element = document.createElement(item.rawTagName);
35
- }
36
- designItem = new DesignItem(element, serviceContainer, instanceServiceContainer);
37
- let hideAtDesignTime = false;
38
- let hideAtRunTime = false;
39
- let lockAtDesignTime = false;
40
- let style = '';
41
- let attr = item.attributes;
42
- for (let a in attr) {
43
- let bnd;
44
- if (serviceContainer.bindingService) {
45
- bnd = serviceContainer.bindingService.parseBindingAttribute(a, attr[a]);
46
- }
47
- if (bnd) {
48
- designItem.setAttribute(a, bnd);
49
- }
50
- else if (a !== 'style') {
51
- designItem.setAttribute(a, attr[a]);
52
- if (a === 'node-projects-hide-at-design-time')
53
- hideAtDesignTime = true;
54
- else if (a === 'node-projects-hide-at-run-time')
55
- hideAtRunTime = true;
56
- else if (a === 'node-projects-lock-at-design-time')
57
- lockAtDesignTime = true;
58
- }
59
- else {
60
- style = attr[a];
61
- }
62
- }
63
- if ((element instanceof HTMLElement || element instanceof SVGElement) && style) {
64
- let styleParser = new CssAttributeParser();
65
- styleParser.parse(style);
66
- for (let s of styleParser.entries) {
67
- let bnd;
68
- if (serviceContainer.bindingService) {
69
- bnd = serviceContainer.bindingService.parseBindingAttribute(s.name, s.value);
70
- }
71
- if (bnd) {
72
- designItem.setStyle(s.name, bnd);
73
- }
74
- else {
75
- designItem.setStyle(s.name, s.value);
76
- }
77
- //designItem.styles.set(s.name, s.value);
78
- }
79
- }
80
- designItem.hideAtDesignTime = hideAtDesignTime;
81
- designItem.hideAtRunTime = hideAtRunTime;
82
- designItem.lockAtDesignTime = lockAtDesignTime;
83
- element.draggable = false; //even if it should be true, for better designer exp.
84
- for (let c of item.childNodes) {
85
- let di = this._createDesignItemsRecursive(c, serviceContainer, instanceServiceContainer, element instanceof SVGElement ? 'http://www.w3.org/2000/svg' : null);
86
- designItem.insertChild(di);
87
- }
88
- }
89
- else if (item.nodeType == 3) {
90
- this._parseDiv.innerHTML = item.rawText;
91
- let element = this._parseDiv.childNodes[0];
92
- designItem = new DesignItem(element, serviceContainer, instanceServiceContainer);
93
- }
94
- else if (item.nodeType == 8) {
95
- let element = document.createComment(item.rawText);
96
- designItem = new DesignItem(element, serviceContainer, instanceServiceContainer);
97
- }
98
- return designItem;
99
- }
100
- }
@@ -1,11 +0,0 @@
1
- import { InstanceServiceContainer } from "../InstanceServiceContainer";
2
- import { ServiceContainer } from "../ServiceContainer";
3
- import { IHtmlParserService } from "./IHtmlParserService";
4
- import { IDesignItem } from '../../item/IDesignItem';
5
- export declare class NodeHtmlParserService implements IHtmlParserService {
6
- private _parserUrl;
7
- constructor(parserUrl?: string);
8
- parse(html: string, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer): Promise<IDesignItem[]>;
9
- private _parseDiv;
10
- _createDesignItemsRecursive(item: any, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer, namespace: string): IDesignItem;
11
- }
@@ -1,84 +0,0 @@
1
- import { DesignItem } from '../../item/DesignItem';
2
- import { CssAttributeParser } from "../../helper/CssAttributeParser";
3
- import { newElementFromString } from "../../helper/ElementHelper";
4
- // Alternative Parser, cause when you use the Browser, it instanciates the CusomElements, and some Elemnts remove
5
- // attributes from their DOM, so you loose Data
6
- export class NodeHtmlParserService {
7
- constructor(parserUrl = '../../../../../node-html-parser-esm/dist/index.js') {
8
- this._parseDiv = document.createElement("div");
9
- this._parserUrl = parserUrl;
10
- }
11
- async parse(html, serviceContainer, instanceServiceContainer) {
12
- //@ts-ignore
13
- let parser = await import(this._parserUrl);
14
- const parsed = parser.parse(html, { comment: true });
15
- let designItems = [];
16
- for (let p of parsed.childNodes) {
17
- let di = this._createDesignItemsRecursive(p, serviceContainer, instanceServiceContainer, null);
18
- if (di != null)
19
- designItems.push(di);
20
- else
21
- console.warn("NodeHtmlParserService - could not parse element", p);
22
- }
23
- return designItems;
24
- }
25
- _createDesignItemsRecursive(item, serviceContainer, instanceServiceContainer, namespace) {
26
- let designItem = null;
27
- if (item.nodeType == 1) {
28
- let element;
29
- if (!namespace)
30
- element = newElementFromString('<' + item.rawTagName + ' ' + item.rawAttrs + '></' + item.rawTagName + '>'); // some custom elements only parse attributes during constructor call
31
- if (!element) {
32
- if (namespace)
33
- element = document.createElementNS(namespace, item.rawTagName);
34
- else
35
- element = document.createElement(item.rawTagName);
36
- }
37
- designItem = new DesignItem(element, serviceContainer, instanceServiceContainer);
38
- let hideAtDesignTime = false;
39
- let hideAtRunTime = false;
40
- let lockAtDesignTime = false;
41
- let style = '';
42
- let attr = item.attributes;
43
- for (let a in attr) {
44
- if (a !== 'style') {
45
- designItem.setAttribute(a, attr[a]);
46
- if (a === 'node-projects-hide-at-design-time')
47
- hideAtDesignTime = true;
48
- else if (a === 'node-projects-hide-at-run-time')
49
- hideAtRunTime = true;
50
- else if (a === 'node-projects-lock-at-design-time')
51
- lockAtDesignTime = true;
52
- }
53
- else {
54
- style = attr[a];
55
- }
56
- }
57
- if ((element instanceof HTMLElement || element instanceof SVGElement) && style) {
58
- let styleParser = new CssAttributeParser();
59
- styleParser.parse(style);
60
- for (let s of styleParser.entries) {
61
- designItem.setStyle(s.name, s.value);
62
- }
63
- }
64
- designItem.hideAtDesignTime = hideAtDesignTime;
65
- designItem.hideAtRunTime = hideAtRunTime;
66
- designItem.lockAtDesignTime = lockAtDesignTime;
67
- element.draggable = false; //even if it should be true, for better designer exp.
68
- for (let c of item.childNodes) {
69
- let di = this._createDesignItemsRecursive(c, serviceContainer, instanceServiceContainer, element instanceof SVGElement ? 'http://www.w3.org/2000/svg' : null);
70
- designItem.insertChild(di);
71
- }
72
- }
73
- else if (item.nodeType == 3) {
74
- this._parseDiv.innerHTML = item.rawText;
75
- let element = this._parseDiv.childNodes[0];
76
- designItem = new DesignItem(element, serviceContainer, instanceServiceContainer);
77
- }
78
- else if (item.nodeType == 8) {
79
- let element = document.createComment(item.rawText);
80
- designItem = new DesignItem(element, serviceContainer, instanceServiceContainer);
81
- }
82
- return designItem;
83
- }
84
- }
@@ -1,9 +0,0 @@
1
- import { InstanceServiceContainer } from "../InstanceServiceContainer";
2
- import { ServiceContainer } from "../ServiceContainer";
3
- import { IHtmlParserService } from "./IHtmlParserService";
4
- import { IDesignItem } from '../../item/IDesignItem';
5
- export declare class NodeHtmlParserService implements IHtmlParserService {
6
- parse(html: string, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer): Promise<IDesignItem[]>;
7
- private _parseDiv;
8
- _createDesignItemsRecursive(item: any, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer, namespace: string): IDesignItem;
9
- }
@@ -1,83 +0,0 @@
1
- import { DesignItem } from '../../item/DesignItem';
2
- import { CssAttributeParser } from "../../helper/CssAttributeParser";
3
- import { newElementFromString } from "../../helper/ElementHelper";
4
- // Alternative Parser, cause when you use the Browser, it instanciates the CusomElements, and some Elemnts remove
5
- // attributes from their DOM, so you loose Data
6
- export class NodeHtmlParserService {
7
- constructor() {
8
- this._parseDiv = document.createElement("div");
9
- }
10
- async parse(html, serviceContainer, instanceServiceContainer) {
11
- //@ts-ignore
12
- let parser = await import('../../../../../node-html-parser-esm/dist/index.js');
13
- const parsed = parser.parse(html, { comment: true });
14
- let designItems = [];
15
- for (let p of parsed.childNodes) {
16
- let di = this._createDesignItemsRecursive(p, serviceContainer, instanceServiceContainer, null);
17
- if (di != null)
18
- designItems.push(di);
19
- else
20
- console.warn("NodeHtmlParserService - could not parse element", p);
21
- }
22
- return designItems;
23
- }
24
- _createDesignItemsRecursive(item, serviceContainer, instanceServiceContainer, namespace) {
25
- let designItem = null;
26
- if (item.nodeType == 1) {
27
- let element;
28
- if (!namespace)
29
- element = newElementFromString('<' + item.rawTagName + ' ' + item.rawAttrs + '></' + item.rawTagName + '>'); // some custom elements only parse attributes during constructor call
30
- if (!element) {
31
- if (namespace)
32
- element = document.createElementNS(namespace, item.rawTagName);
33
- else
34
- element = document.createElement(item.rawTagName);
35
- }
36
- designItem = new DesignItem(element, serviceContainer, instanceServiceContainer);
37
- let hideAtDesignTime = false;
38
- let hideAtRunTime = false;
39
- let lockAtDesignTime = false;
40
- let style = '';
41
- let attr = item.attributes;
42
- for (let a in attr) {
43
- if (a !== 'style') {
44
- designItem.setAttribute(a, attr[a]);
45
- if (a === 'node-projects-hide-at-design-time')
46
- hideAtDesignTime = true;
47
- else if (a === 'node-projects-hide-at-run-time')
48
- hideAtRunTime = true;
49
- else if (a === 'node-projects-lock-at-design-time')
50
- lockAtDesignTime = true;
51
- }
52
- else {
53
- style = attr[a];
54
- }
55
- }
56
- if ((element instanceof HTMLElement || element instanceof SVGElement) && style) {
57
- let styleParser = new CssAttributeParser();
58
- styleParser.parse(style);
59
- for (let s of styleParser.entries) {
60
- designItem.setStyle(s.name, s.value);
61
- }
62
- }
63
- designItem.hideAtDesignTime = hideAtDesignTime;
64
- designItem.hideAtRunTime = hideAtRunTime;
65
- designItem.lockAtDesignTime = lockAtDesignTime;
66
- element.draggable = false; //even if it should be true, for better designer exp.
67
- for (let c of item.childNodes) {
68
- let di = this._createDesignItemsRecursive(c, serviceContainer, instanceServiceContainer, element instanceof SVGElement ? 'http://www.w3.org/2000/svg' : null);
69
- designItem.insertChild(di);
70
- }
71
- }
72
- else if (item.nodeType == 3) {
73
- this._parseDiv.innerHTML = item.rawText;
74
- let element = this._parseDiv.childNodes[0];
75
- designItem = new DesignItem(element, serviceContainer, instanceServiceContainer);
76
- }
77
- else if (item.nodeType == 8) {
78
- let element = document.createComment(item.rawText);
79
- designItem = new DesignItem(element, serviceContainer, instanceServiceContainer);
80
- }
81
- return designItem;
82
- }
83
- }
@@ -1,8 +0,0 @@
1
- import { IInstanceService } from './IInstanceService';
2
- import { IElementDefinition } from '../elementsService/IElementDefinition';
3
- import type { ServiceContainer } from '../ServiceContainer';
4
- import type { InstanceServiceContainer } from '../InstanceServiceContainer';
5
- import { IDesignItem } from '../../item/IDesignItem';
6
- export declare class DefaultInstanceService implements IInstanceService {
7
- getElement(definition: IElementDefinition, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer): Promise<IDesignItem>;
8
- }
@@ -1,14 +0,0 @@
1
- import { DesignItem } from '../../item/DesignItem';
2
- export class DefaultInstanceService {
3
- handleMoveCommand(command) {
4
- let sel = this.instanceServiceContainer.selectionService.primarySelection;
5
- if (command == CommandType.moveBackward)
6
- this.instanceServiceContainer.undoService.execute(new MoveElementInDomAction(sel, DesignItem.GetDesignItem(sel.element.previousElementSibling), 'beforebegin', DesignItem.GetDesignItem(sel.element.previousElementSibling), 'afterend'));
7
- else if (command == CommandType.moveForward)
8
- this.instanceServiceContainer.undoService.execute(new MoveElementInDomAction(sel, DesignItem.GetDesignItem(sel.element.nextElementSibling), 'afterend', DesignItem.GetDesignItem(sel.element.nextElementSibling), 'beforebegin'));
9
- else if (command == CommandType.moveToBack)
10
- this.instanceServiceContainer.undoService.execute(new MoveElementInDomAction(sel, DesignItem.GetDesignItem(sel.element.parentElement), 'afterbegin', DesignItem.GetDesignItem(sel.element.previousElementSibling), 'afterend'));
11
- else if (command == CommandType.moveToFront)
12
- this.instanceServiceContainer.undoService.execute(new MoveElementInDomAction(sel, DesignItem.GetDesignItem(sel.element.parentElement), 'beforeend', DesignItem.GetDesignItem(sel.element.nextElementSibling), 'beforebegin'));
13
- }
14
- }
@@ -1,8 +0,0 @@
1
- import { IService } from '../IService';
2
- import { IElementDefinition } from '../elementsService/IElementDefinition';
3
- import type { ServiceContainer } from '../ServiceContainer';
4
- import type { InstanceServiceContainer } from '../InstanceServiceContainer';
5
- import { IDesignItem } from '../../item/IDesignItem';
6
- export interface IInstanceService extends IService {
7
- getElement(definition: IElementDefinition, serviceContainer: ServiceContainer, instanceServiceContainer: InstanceServiceContainer): Promise<IDesignItem>;
8
- }
@@ -1,8 +0,0 @@
1
- import { IProperty } from "../IProperty";
2
- import { BasePropertyEditor } from './BasePropertyEditor';
3
- import { ValueType } from "../ValueType";
4
- import { ImageButtonListSelector } from "../../../controls/ImageButtonListSelector.js";
5
- export declare class ImageButtonListPropertyEditor extends BasePropertyEditor<ImageButtonListSelector> {
6
- constructor(property: IProperty);
7
- refreshValue(valueType: ValueType, value: any): void;
8
- }
@@ -1,40 +0,0 @@
1
- import { BasePropertyEditor } from './BasePropertyEditor';
2
- import { ImageButtonListSelector } from "../../../controls/ImageButtonListSelector.js";
3
- import { PropertiesHelper } from "../services/PropertiesHelper.js";
4
- import { assetsPath } from "../../../../Constants.js";
5
- export class ImageButtonListPropertyEditor extends BasePropertyEditor {
6
- constructor(property) {
7
- super(property);
8
- const selector = new ImageButtonListSelector();
9
- selector.property = property.name;
10
- selector.unsetValue = property.defaultValue;
11
- const propName = PropertiesHelper.camelToDashCase(property.name);
12
- if (property.type == 'enum') {
13
- for (let v of property.enumValues) {
14
- let button = document.createElement("button");
15
- button.dataset.value = v[1];
16
- let img = document.createElement("img");
17
- img.title = v[1];
18
- img.src = assetsPath + 'images/chromeDevtools/' + propName + '-' + v[1] + '-icon.svg';
19
- button.appendChild(img);
20
- selector.appendChild(button);
21
- }
22
- }
23
- else {
24
- for (let v of property.values) {
25
- let button = document.createElement("button");
26
- button.dataset.value = v;
27
- let img = document.createElement("img");
28
- img.title = v;
29
- img.src = assetsPath + 'images/chromeDevtools/' + propName + '-' + v + '-icon.svg';
30
- button.appendChild(img);
31
- selector.appendChild(button);
32
- }
33
- }
34
- selector.valueChanged.on((e) => this._valueChanged(e.newValue));
35
- this.element = selector;
36
- }
37
- refreshValue(valueType, value) {
38
- this.element.value = value;
39
- }
40
- }
@@ -1,16 +0,0 @@
1
- import { IPropertiesService } from "../IPropertiesService";
2
- import { IProperty } from '../IProperty';
3
- import { IDesignItem } from '../../../item/IDesignItem';
4
- import { ValueType } from "../ValueType";
5
- export declare class CommonPropertiesService implements IPropertiesService {
6
- private commonProperties;
7
- name: string;
8
- isHandledElement(designItem: IDesignItem): boolean;
9
- getProperty(designItem: IDesignItem, name: string): IProperty;
10
- getProperties(designItem: IDesignItem): IProperty[];
11
- setValue(designItems: IDesignItem[], property: IProperty, value: any): void;
12
- clearValue(designItems: IDesignItem[], property: IProperty): void;
13
- isSet(designItems: IDesignItem[], property: IProperty): ValueType;
14
- getValue(designItems: IDesignItem[], property: IProperty): string | boolean | import("../../bindingsService/IBinding").IBinding;
15
- getUnsetValue(designItems: IDesignItem[], property: IProperty): any;
16
- }
@@ -1,94 +0,0 @@
1
- import { ValueType } from "../ValueType";
2
- export class CommonPropertiesService {
3
- constructor() {
4
- //@ts-ignore
5
- this.commonProperties = [
6
- {
7
- name: "id",
8
- type: "string",
9
- service: this
10
- }, {
11
- name: "class",
12
- type: "string",
13
- service: this
14
- }, {
15
- name: "title",
16
- type: "string",
17
- service: this
18
- }, {
19
- name: "tabindex",
20
- type: "number",
21
- service: this
22
- }
23
- ];
24
- this.name = "common";
25
- }
26
- isHandledElement(designItem) {
27
- return true;
28
- }
29
- getProperty(designItem, name) {
30
- return this.commonProperties[name];
31
- }
32
- getProperties(designItem) {
33
- return this.commonProperties;
34
- }
35
- setValue(designItems, property, value) {
36
- for (let d of designItems) {
37
- if (property.type == 'boolean' && !value) {
38
- d.attributes.delete(property.name);
39
- d.element.removeAttribute(property.name);
40
- }
41
- else if (property.type == 'boolean' && value) {
42
- d.attributes.set(property.name, "");
43
- d.element.setAttribute(property.name, "");
44
- }
45
- else {
46
- d.attributes.set(property.name, value);
47
- d.element.setAttribute(property.name, value);
48
- }
49
- }
50
- }
51
- clearValue(designItems, property) {
52
- for (let d of designItems) {
53
- d.attributes.delete(property.name);
54
- d.element.removeAttribute(property.name);
55
- }
56
- }
57
- isSet(designItems, property) {
58
- let all = true;
59
- let some = false;
60
- if (designItems != null && designItems.length !== 0) {
61
- let attributeName = property.name;
62
- designItems.forEach((x) => {
63
- let has = x.attributes.has(attributeName);
64
- all = all && has;
65
- some = some || has;
66
- });
67
- }
68
- else
69
- return ValueType.none;
70
- return all ? ValueType.all : some ? ValueType.some : ValueType.none;
71
- }
72
- getValue(designItems, property) {
73
- if (designItems != null && designItems.length !== 0) {
74
- let attributeName = property.name;
75
- if (property.type == 'boolean')
76
- return designItems[0].attributes.has(attributeName);
77
- let lastValue = designItems[0].attributes.get(attributeName);
78
- /*
79
- for (const x of designItems) {
80
- let value = x.attributes.get(attributeName);
81
- if (value != lastValue) {
82
- lastValue = null;
83
- break;
84
- }
85
- }
86
- */
87
- return lastValue;
88
- }
89
- return null;
90
- }
91
- getUnsetValue(designItems, property) {
92
- return property.defaultValue;
93
- }
94
- }
@@ -1,30 +0,0 @@
1
- import { IDesignItem } from "../../item/IDesignItem";
2
- import { InstanceServiceContainer } from "../../services/InstanceServiceContainer";
3
- import { IStringPosition } from "../../services/htmlWriterService/IStringPosition";
4
- import { ServiceContainer } from "../../services/ServiceContainer";
5
- import { Snaplines } from "./Snaplines";
6
- import { IDesignerMousePoint } from "../../../interfaces/IDesignerMousePoint";
7
- import { IPlacementView } from './IPlacementView';
8
- import { IExtensionManager } from "./extensions/IExtensionManger";
9
- import { IUiCommandHandler } from "../../../commandHandling/IUiCommandHandler";
10
- import { IPoint } from "../../../interfaces/IPoint";
11
- import { OverlayLayerView } from "./overlayLayerView";
12
- export interface IDesignerView extends IPlacementView, IUiCommandHandler {
13
- readonly serviceContainer: ServiceContainer;
14
- readonly instanceServiceContainer: InstanceServiceContainer;
15
- readonly containerBoundingRect: DOMRect;
16
- readonly rootDesignItem: IDesignItem;
17
- readonly overlayLayer: OverlayLayerView;
18
- readonly extensionManager: IExtensionManager;
19
- readonly snapLines: Snaplines;
20
- readonly shadowRoot: ShadowRoot;
21
- readonly alignOnGrid: boolean;
22
- readonly alignOnSnap: boolean;
23
- eatEvents: Element;
24
- initialize(serviceContainer: ServiceContainer): any;
25
- getDesignerMousepoint(event: MouseEvent, target: Element, startPoint?: IDesignerMousePoint): IDesignerMousePoint;
26
- getElementAtPoint(point: IPoint, ignoreElementCallback?: (element: HTMLElement) => boolean): any;
27
- elementFromPoint(x: number, y: number): Element;
28
- getHTML(designItemsAssignmentList?: Map<IDesignItem, IStringPosition>): string;
29
- parseHTML(html: string): void;
30
- }
@@ -1 +0,0 @@
1
- export {};