@node-projects/web-component-designer 0.0.28 → 0.0.32

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 (64) hide show
  1. package/debug.log +8 -0
  2. package/dist/elements/controls/DesignerTabControl.d.ts +5 -1
  3. package/dist/elements/controls/DesignerTabControl.js +86 -8
  4. package/dist/elements/helper/CssCombiner.d.ts +1 -2
  5. package/dist/elements/helper/CssPropertiesList.d.ts +0 -0
  6. package/dist/elements/helper/CssPropertiesList.js +1 -0
  7. package/dist/elements/item/Binding.d.ts +14 -0
  8. package/dist/elements/item/Binding.js +4 -0
  9. package/dist/elements/item/BindingMode.d.ts +4 -0
  10. package/dist/elements/item/BindingMode.js +5 -0
  11. package/dist/elements/item/BindingTarget.d.ts +8 -0
  12. package/dist/elements/item/BindingTarget.js +9 -0
  13. package/dist/elements/item/DesignItem.d.ts +4 -7
  14. package/dist/elements/item/DesignItem.js +0 -15
  15. package/dist/elements/item/IBinding copy.d.ts +14 -0
  16. package/dist/elements/item/IBinding copy.js +1 -0
  17. package/dist/elements/item/IBinding.d.ts +15 -0
  18. package/dist/elements/item/IBinding.js +1 -0
  19. package/dist/elements/item/IDesignItem.d.ts +4 -5
  20. package/dist/elements/services/DefaultServiceBootstrap.js +0 -3
  21. package/dist/elements/services/bindingsService/BaseCustomWebcomponentBindingsService.d.ts +8 -0
  22. package/dist/elements/services/bindingsService/BaseCustomWebcomponentBindingsService.js +69 -0
  23. package/dist/elements/services/bindingsService/BaseCustomeWebcomponentBindingsService copy.d.ts +9 -0
  24. package/dist/elements/services/bindingsService/BaseCustomeWebcomponentBindingsService copy.js +31 -0
  25. package/dist/elements/services/bindingsService/BaseCustomeWebcomponentBindingsService.d.ts +1 -1
  26. package/dist/elements/services/bindingsService/BaseCustomeWebcomponentBindingsService.js +1 -1
  27. package/dist/elements/services/bindingsService/IBindingService.d.ts +3 -6
  28. package/dist/elements/services/bindingsService/PolymerBindingsService copy.d.ts +9 -0
  29. package/dist/elements/services/bindingsService/PolymerBindingsService copy.js +31 -0
  30. package/dist/elements/services/bindingsService/SpecialTagsBindingService.d.ts +14 -0
  31. package/dist/elements/services/bindingsService/SpecialTagsBindingService.js +40 -0
  32. package/dist/elements/services/bindingsService/VueBindingsService.d.ts +0 -0
  33. package/dist/elements/services/bindingsService/VueBindingsService.js +7 -0
  34. package/dist/elements/services/htmlParserService/NodeHtmlParserService.d.ts +2 -0
  35. package/dist/elements/services/htmlParserService/NodeHtmlParserService.js +3 -2
  36. package/dist/elements/services/htmlParserService/NodeHtmlParserService.ts.BASE.d.ts +9 -0
  37. package/dist/elements/services/htmlParserService/NodeHtmlParserService.ts.BASE.js +100 -0
  38. package/dist/elements/services/htmlParserService/NodeHtmlParserService.ts.LOCAL.d.ts +11 -0
  39. package/dist/elements/services/htmlParserService/NodeHtmlParserService.ts.LOCAL.js +84 -0
  40. package/dist/elements/services/htmlParserService/NodeHtmlParserService.ts.REMOTE.d.ts +9 -0
  41. package/dist/elements/services/htmlParserService/NodeHtmlParserService.ts.REMOTE.js +83 -0
  42. package/dist/elements/services/propertiesService/services/CommonPropertiesService copy.d.ts +16 -0
  43. package/dist/elements/services/propertiesService/services/CommonPropertiesService copy.js +94 -0
  44. package/dist/elements/services/propertiesService/services/CommonPropertiesService.d.ts +1 -1
  45. package/dist/elements/services/propertiesService/services/CssPropertiesService.d.ts +1 -1
  46. package/dist/elements/services/propertiesService/services/CssPropertiesService.js +9 -1
  47. package/dist/elements/services/propertiesService/services/UnkownElementPropertiesService.d.ts +1 -1
  48. package/dist/elements/services/undoService/transactionItems/AttributeChangeAction.d.ts +1 -1
  49. package/dist/elements/widgets/designerView/designerCanvas.js +5 -1
  50. package/dist/elements/widgets/designerView/designerView copy.d.ts +82 -0
  51. package/dist/elements/widgets/designerView/designerView copy.js +671 -0
  52. package/dist/elements/widgets/designerView/designerView.js +1 -0
  53. package/dist/elements/widgets/designerView/extensions/EditText/EditTextCkEditorExtension.d.ts +14 -0
  54. package/dist/elements/widgets/designerView/extensions/EditText/EditTextCkEditorExtension.js +42 -0
  55. package/dist/elements/widgets/designerView/extensions/EditText/EditTextCkEditorExtensionProvider.d.ts +9 -0
  56. package/dist/elements/widgets/designerView/extensions/EditText/EditTextCkEditorExtensionProvider.js +9 -0
  57. package/dist/elements/widgets/designerView/extensions/EditText/EditTextTinyMceExtension.d.ts +27 -0
  58. package/dist/elements/widgets/designerView/extensions/EditText/EditTextTinyMceExtension.js +61 -0
  59. package/dist/elements/widgets/designerView/extensions/EditText/EditTextTinyMceExtensionProvider.d.ts +9 -0
  60. package/dist/elements/widgets/designerView/extensions/EditText/EditTextTinyMceExtensionProvider.js +9 -0
  61. package/dist/elements/widgets/designerView/extensions/PositionExtension.js +12 -4
  62. package/dist/index.d.ts +4 -0
  63. package/dist/index.js +2 -0
  64. package/package.json +6 -7
@@ -8,6 +8,7 @@ export class DesignerView extends BaseCustomWebComponentConstructorAppend {
8
8
  const outer = this._getDomElement('outer');
9
9
  this._designerCanvas = new DesignerCanvas();
10
10
  this._designerCanvas.id = "canvas";
11
+ this._designerCanvas.appendChild(document.createElement("slot"));
11
12
  outer.insertAdjacentElement('afterbegin', this._designerCanvas);
12
13
  this._zoomInput = this._getDomElement('zoomInput');
13
14
  this._zoomInput.onchange = () => { this._designerCanvas.zoomFactor = parseFloat(this._zoomInput.value) / 100; };
@@ -0,0 +1,14 @@
1
+ import { IDesignItem } from "../../../../item/IDesignItem.js";
2
+ import { IDesignerView } from "../../IDesignerView.js";
3
+ import { AbstractExtension } from "../AbstractExtension.js";
4
+ import { IExtensionManager } from "../IExtensionManger.js";
5
+ export declare class EditTextCkEditorExtension extends AbstractExtension {
6
+ private _contentEditedBound;
7
+ private _blurBound;
8
+ constructor(extensionManager: IExtensionManager, designerView: IDesignerView, extendedItem: IDesignItem);
9
+ extend(): void;
10
+ refresh(): void;
11
+ dispose(): void;
12
+ _contentEdited(): void;
13
+ _blur(): void;
14
+ }
@@ -0,0 +1,42 @@
1
+ import { AbstractExtension } from "../AbstractExtension.js";
2
+ import { ExtensionType } from "../ExtensionType.js";
3
+ export class EditTextCkEditorExtension extends AbstractExtension {
4
+ constructor(extensionManager, designerView, extendedItem) {
5
+ super(extensionManager, designerView, extendedItem);
6
+ this._contentEditedBound = this._contentEdited.bind(this);
7
+ this._blurBound = this._blur.bind(this);
8
+ }
9
+ extend() {
10
+ //todo -> check what to do with extensions, do not loose edit on mouse click,...
11
+ //maybe use a html edit framework
12
+ this.extendedItem.instanceServiceContainer.selectionService.clearSelectedElements();
13
+ //this.extensionManager.removeExtension(this.extendedItem, ExtensionType.PrimarySelection);
14
+ //this.extensionManager.removeExtension(this.extendedItem, ExtensionType.Selection);
15
+ this.extendedItem.element.addEventListener('input', this._contentEditedBound);
16
+ this.extendedItem.element.addEventListener('blur', this._blurBound);
17
+ this.extendedItem.element.focus();
18
+ this.designerView.eatEvents = this.extendedItem.element;
19
+ //@ts-ignore
20
+ BalloonEditor
21
+ .create(this.extendedItem.element)
22
+ .catch(error => {
23
+ console.error(error);
24
+ });
25
+ }
26
+ refresh() {
27
+ this.dispose();
28
+ }
29
+ dispose() {
30
+ this.extendedItem.element.removeEventListener('input', this._contentEditedBound);
31
+ this.extendedItem.element.removeEventListener('blur', this._blurBound);
32
+ //this.designerView.disableKeyboardEvents = false;
33
+ }
34
+ _contentEdited() {
35
+ //todo -> save???
36
+ //this.extendedItem.content = this.extendedItem.element.innerHTML;
37
+ //console.log(this.extendedItem.element.innerHTML)
38
+ }
39
+ _blur() {
40
+ this.extensionManager.removeExtension(this.extendedItem, ExtensionType.Doubleclick);
41
+ }
42
+ }
@@ -0,0 +1,9 @@
1
+ import { IDesignerExtensionProvider } from "../IDesignerExtensionProvider";
2
+ import { IDesignItem } from "../../../../item/IDesignItem";
3
+ import { IDesignerView } from "../../IDesignerView";
4
+ import { IDesignerExtension } from "../IDesignerExtension";
5
+ import { IExtensionManager } from "../IExtensionManger";
6
+ export declare class EditTextCkEditorExtensionProvider implements IDesignerExtensionProvider {
7
+ shouldExtend(extensionManager: IExtensionManager, designerView: IDesignerView, designItem: IDesignItem): boolean;
8
+ getExtension(extensionManager: IExtensionManager, designerView: IDesignerView, designItem: IDesignItem): IDesignerExtension;
9
+ }
@@ -0,0 +1,9 @@
1
+ import { EditTextCkEditorExtension } from "./EditTextCkEditorExtension.js";
2
+ export class EditTextCkEditorExtensionProvider {
3
+ shouldExtend(extensionManager, designerView, designItem) {
4
+ return true;
5
+ }
6
+ getExtension(extensionManager, designerView, designItem) {
7
+ return new EditTextCkEditorExtension(extensionManager, designerView, designItem);
8
+ }
9
+ }
@@ -0,0 +1,27 @@
1
+ import { IDesignItem } from "../../../../item/IDesignItem";
2
+ import { IDesignerView } from "../../IDesignerView";
3
+ import { AbstractExtension } from '../AbstractExtension';
4
+ import { IExtensionManager } from "../IExtensionManger";
5
+ export declare class EditTextTinyMceExtension extends AbstractExtension {
6
+ private _contentEditedBound;
7
+ private _blurBound;
8
+ constructor(extensionManager: IExtensionManager, designerView: IDesignerView, extendedItem: IDesignItem);
9
+ tinyMceConfig: {
10
+ target: any;
11
+ menubar: boolean;
12
+ inline: boolean;
13
+ plugins: string[];
14
+ toolbar: string[];
15
+ valid_elements: string;
16
+ valid_styles: {
17
+ '*': string;
18
+ };
19
+ powerpaste_word_import: string;
20
+ powerpaste_html_import: string;
21
+ };
22
+ extend(): void;
23
+ refresh(): void;
24
+ dispose(): void;
25
+ _contentEdited(): void;
26
+ _blur(): void;
27
+ }
@@ -0,0 +1,61 @@
1
+ import { AbstractExtension } from '../AbstractExtension';
2
+ import { ExtensionType } from "../ExtensionType.js";
3
+ export class EditTextTinyMceExtension extends AbstractExtension {
4
+ constructor(extensionManager, designerView, extendedItem) {
5
+ super(extensionManager, designerView, extendedItem);
6
+ this.tinyMceConfig = {
7
+ target: null,
8
+ menubar: false,
9
+ inline: true,
10
+ plugins: [
11
+ 'link',
12
+ 'lists',
13
+ 'powerpaste',
14
+ 'autolink',
15
+ 'tinymcespellchecker'
16
+ ],
17
+ toolbar: [
18
+ 'undo redo | bold italic underline | fontselect fontsizeselect',
19
+ 'forecolor backcolor | alignleft aligncenter alignright alignfull | numlist bullist outdent indent'
20
+ ],
21
+ valid_elements: 'p[style],strong,em,span[style],a[href],ul,ol,li',
22
+ valid_styles: {
23
+ '*': 'font-size,font-family,color,text-decoration,text-align'
24
+ },
25
+ powerpaste_word_import: 'clean',
26
+ powerpaste_html_import: 'clean',
27
+ };
28
+ this._contentEditedBound = this._contentEdited.bind(this);
29
+ this._blurBound = this._blur.bind(this);
30
+ }
31
+ extend() {
32
+ //todo -> check what to do with extensions, do not loose edit on mouse click,...
33
+ //maybe use a html edit framework
34
+ this.extendedItem.instanceServiceContainer.selectionService.clearSelectedElements();
35
+ //this.extensionManager.removeExtension(this.extendedItem, ExtensionType.PrimarySelection);
36
+ //this.extensionManager.removeExtension(this.extendedItem, ExtensionType.Selection);
37
+ this.extendedItem.element.addEventListener('input', this._contentEditedBound);
38
+ this.extendedItem.element.addEventListener('blur', this._blurBound);
39
+ this.extendedItem.element.focus();
40
+ this.designerView.eatEvents = this.extendedItem.element;
41
+ this.tinyMceConfig.target = this.extendedItem.element;
42
+ //@ts-ignore
43
+ tinymce.init(this.tinyMceConfig);
44
+ }
45
+ refresh() {
46
+ this.dispose();
47
+ }
48
+ dispose() {
49
+ this.extendedItem.element.removeEventListener('input', this._contentEditedBound);
50
+ this.extendedItem.element.removeEventListener('blur', this._blurBound);
51
+ //this.designerView.disableKeyboardEvents = false;
52
+ }
53
+ _contentEdited() {
54
+ //todo -> save???
55
+ //this.extendedItem.content = this.extendedItem.element.innerHTML;
56
+ //console.log(this.extendedItem.element.innerHTML)
57
+ }
58
+ _blur() {
59
+ this.extensionManager.removeExtension(this.extendedItem, ExtensionType.Doubleclick);
60
+ }
61
+ }
@@ -0,0 +1,9 @@
1
+ import { IDesignerExtensionProvider } from "../IDesignerExtensionProvider";
2
+ import { IDesignItem } from "../../../../item/IDesignItem";
3
+ import { IDesignerView } from "../../IDesignerView";
4
+ import { IDesignerExtension } from "../IDesignerExtension";
5
+ import { IExtensionManager } from "../IExtensionManger";
6
+ export declare class EditTextTinyMceExtensionProvider implements IDesignerExtensionProvider {
7
+ shouldExtend(extensionManager: IExtensionManager, designerView: IDesignerView, designItem: IDesignItem): boolean;
8
+ getExtension(extensionManager: IExtensionManager, designerView: IDesignerView, designItem: IDesignItem): IDesignerExtension;
9
+ }
@@ -0,0 +1,9 @@
1
+ import { EditTextTinyMceExtension } from "./EditTextTinyMceExtension.js";
2
+ export class EditTextTinyMceExtensionProvider {
3
+ shouldExtend(extensionManager, designerView, designItem) {
4
+ return true;
5
+ }
6
+ getExtension(extensionManager, designerView, designItem) {
7
+ return new EditTextTinyMceExtension(extensionManager, designerView, designItem);
8
+ }
9
+ }
@@ -11,10 +11,18 @@ export class PositionExtension extends AbstractExtension {
11
11
  let itemRect = this.extendedItem.element.getBoundingClientRect();
12
12
  const xOffset = itemRect.x - this.designerView.containerBoundingRect.x;
13
13
  const yOffset = itemRect.y - this.designerView.containerBoundingRect.y;
14
- const left = Number.parseFloat(computedStyle.left.replace('px', ''));
15
- const top = Number.parseFloat(computedStyle.top.replace('px', ''));
16
- const right = Number.parseFloat(computedStyle.right.replace('px', ''));
17
- const bottom = Number.parseFloat(computedStyle.bottom.replace('px', ''));
14
+ let left = Number.parseFloat(computedStyle.left.replace('px', ''));
15
+ if (isNaN(left))
16
+ left = 0;
17
+ let top = Number.parseFloat(computedStyle.top.replace('px', ''));
18
+ if (isNaN(top))
19
+ top = 0;
20
+ let right = Number.parseFloat(computedStyle.right.replace('px', ''));
21
+ if (isNaN(right))
22
+ right = 0;
23
+ let bottom = Number.parseFloat(computedStyle.bottom.replace('px', ''));
24
+ if (isNaN(bottom))
25
+ bottom = 0;
18
26
  let tx = 0;
19
27
  let ty = 0;
20
28
  if (computedStyle.transform !== 'none') {
package/dist/index.d.ts CHANGED
@@ -16,6 +16,9 @@ export type { IDesignItem } from "./elements/item/IDesignItem.js";
16
16
  export * from "./elements/services/bindableObjectsService/BindableObjectType.js";
17
17
  export type { IBindableObject } from "./elements/services/bindableObjectsService/IBindableObject.js";
18
18
  export type { IBindableObjectsService } from "./elements/services/bindableObjectsService/IBindableObjectsService.js";
19
+ export type { IBindingService } from "./elements/services/bindingsService/IBindingService.js";
20
+ export * from "./elements/services/bindingsService/BaseCustomWebcomponentBindingsService.js";
21
+ export * from "./elements/services/bindingsService/SpecialTagsBindingService.js";
19
22
  export * from "./elements/services/placementService/DefaultPlacementService.js";
20
23
  export * from "./elements/services/placementService/FlexBoxPlacementService.js";
21
24
  export * from "./elements/services/placementService/GridPlacementService.js";
@@ -78,6 +81,7 @@ export * from "./elements/services/ServiceContainer.js";
78
81
  export * from "./elements/widgets/propertyGrid/PropertyGrid.js";
79
82
  export * from "./elements/widgets/propertyGrid/PropertyGridPropertyList.js";
80
83
  export type { IDesignerCanvas } from "./elements/widgets/designerView/IDesignerCanvas.js";
84
+ export type { IPlacementView } from "./elements/widgets/designerView/IPlacementView.js";
81
85
  export * from "./elements/widgets/designerView/designerView.js";
82
86
  export * from "./elements/widgets/designerView/overlayLayerView.js";
83
87
  export * from "./elements/widgets/designerView/defaultConfiguredDesignerView.js";
package/dist/index.js CHANGED
@@ -12,6 +12,8 @@ export * from "./elements/helper/contextMenu/ContextMenuHelper.js";
12
12
  export * from "./elements/helper/Helper.js";
13
13
  export * from "./elements/item/DesignItem.js";
14
14
  export * from "./elements/services/bindableObjectsService/BindableObjectType.js";
15
+ export * from "./elements/services/bindingsService/BaseCustomWebcomponentBindingsService.js";
16
+ export * from "./elements/services/bindingsService/SpecialTagsBindingService.js";
15
17
  export * from "./elements/services/placementService/DefaultPlacementService.js";
16
18
  export * from "./elements/services/placementService/FlexBoxPlacementService.js";
17
19
  export * from "./elements/services/placementService/GridPlacementService.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.28",
4
+ "version": "0.0.32",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "",
@@ -11,26 +11,25 @@
11
11
  "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js"
12
12
  },
13
13
  "dependencies": {
14
- "@node-projects/base-custom-webcomponent": "^0.1.7",
14
+ "@node-projects/base-custom-webcomponent": "^0.2.0",
15
15
  "construct-style-sheets-polyfill": "^3.0.4"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@node-projects/lean-he-esm": "^3.3.0",
19
- "@node-projects/node-html-parser-esm": "^2.3.0",
19
+ "@node-projects/node-html-parser-esm": "^2.4.1",
20
20
  "@types/codemirror": "^5.60.5",
21
21
  "@types/jquery": "^3.5.8",
22
22
  "@types/jquery.fancytree": "0.0.7",
23
23
  "ace-builds": "^1.4.13",
24
- "codemirror": "^5.63.3",
24
+ "codemirror": "^5.64.0",
25
25
  "esprima-next": "^5.7.0",
26
26
  "html2canvas": "*",
27
27
  "jest": "^27.3.1",
28
28
  "jquery": "^3.6.0",
29
29
  "jquery.fancytree": "^2.38.0",
30
- "monaco-editor": "^0.29.1",
31
- "node-html-parser": "^5.0.0",
30
+ "monaco-editor": "^0.30.1",
32
31
  "ts-jest": "^27.0.7",
33
- "typescript": "^4.4.4",
32
+ "typescript": "^4.5.2",
34
33
  "typescript-lit-html-plugin": "^0.9.0"
35
34
  },
36
35
  "repository": {