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

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 (210) hide show
  1. package/README.md +7 -0
  2. package/assets/images/chromeDevtools/LICENSE +27 -0
  3. package/assets/images/chromeDevtools/align-content-center-icon.svg +70 -0
  4. package/assets/images/chromeDevtools/align-content-flex-end-icon.svg +1 -0
  5. package/assets/images/chromeDevtools/align-content-flex-start-icon.svg +66 -0
  6. package/assets/images/chromeDevtools/align-content-space-around-icon.svg +1 -0
  7. package/assets/images/chromeDevtools/align-content-space-between-icon.svg +1 -0
  8. package/assets/images/chromeDevtools/align-content-space-evenly-icon.svg +1 -0
  9. package/assets/images/chromeDevtools/align-content-stretch-icon.svg +53 -0
  10. package/assets/images/chromeDevtools/align-items-baseline-icon.svg +1 -0
  11. package/assets/images/chromeDevtools/align-items-center-icon.svg +1 -0
  12. package/assets/images/chromeDevtools/align-items-end-icon.svg +1 -0
  13. package/assets/images/chromeDevtools/align-items-flex-end-icon.svg +1 -0
  14. package/assets/images/chromeDevtools/align-items-flex-start-icon.svg +57 -0
  15. package/assets/images/chromeDevtools/align-items-start-icon.svg +57 -0
  16. package/assets/images/chromeDevtools/align-items-stretch-icon.svg +1 -0
  17. package/assets/images/chromeDevtools/align-self-center-icon.svg +1 -0
  18. package/assets/images/chromeDevtools/align-self-flex-end-icon.svg +1 -0
  19. package/assets/images/chromeDevtools/align-self-flex-start-icon.svg +57 -0
  20. package/assets/images/chromeDevtools/align-self-stretch-icon.svg +1 -0
  21. package/assets/images/chromeDevtools/baseline-icon.svg +1 -0
  22. package/assets/images/chromeDevtools/flex-direction-column-icon.svg +1 -0
  23. package/assets/images/chromeDevtools/flex-direction-icon.svg +1 -0
  24. package/assets/images/chromeDevtools/flex-direction-row-icon.svg +1 -0
  25. package/assets/images/chromeDevtools/flex-nowrap-icon.svg +5 -0
  26. package/assets/images/chromeDevtools/flex-wrap-icon.svg +8 -0
  27. package/assets/images/chromeDevtools/info.txt +2 -0
  28. package/assets/images/chromeDevtools/justify-content-center-icon.svg +1 -0
  29. package/assets/images/chromeDevtools/justify-content-end-icon.svg +71 -0
  30. package/assets/images/chromeDevtools/justify-content-flex-end-icon.svg +71 -0
  31. package/assets/images/chromeDevtools/justify-content-flex-start-icon.svg +1 -0
  32. package/assets/images/chromeDevtools/justify-content-space-around-icon.svg +1 -0
  33. package/assets/images/chromeDevtools/justify-content-space-between-icon.svg +1 -0
  34. package/assets/images/chromeDevtools/justify-content-space-evenly-icon.svg +1 -0
  35. package/assets/images/chromeDevtools/justify-content-start-icon.svg +1 -0
  36. package/assets/images/chromeDevtools/justify-items-center-icon.svg +1 -0
  37. package/assets/images/chromeDevtools/justify-items-end-icon.svg +57 -0
  38. package/assets/images/chromeDevtools/justify-items-start-icon.svg +1 -0
  39. package/assets/images/chromeDevtools/justify-items-stretch-icon.svg +1 -0
  40. package/dist/commandHandling/CommandType.d.ts +1 -0
  41. package/dist/commandHandling/CommandType.js +1 -0
  42. package/dist/elements/controls/DesignerTabControl.js +94 -86
  43. package/dist/elements/controls/ImageButtonListSelector copy.d.ts +17 -0
  44. package/dist/elements/controls/ImageButtonListSelector copy.js +82 -0
  45. package/dist/elements/controls/ImageButtonListSelector.d.ts +17 -0
  46. package/dist/elements/controls/ImageButtonListSelector.js +81 -0
  47. package/dist/elements/controls/ThicknessEditor.d.ts +17 -0
  48. package/dist/elements/controls/ThicknessEditor.js +80 -0
  49. package/dist/elements/documentContainer.js +20 -13
  50. package/dist/elements/helper/CssAttributeParser.js +3 -3
  51. package/dist/elements/helper/CssCombiner.js +1 -1
  52. package/dist/elements/helper/IndentedTextWriter.js +3 -5
  53. package/dist/elements/helper/Screenshot.js +4 -0
  54. package/dist/elements/helper/contextMenu/ContextMenuHelper.js +59 -53
  55. package/dist/elements/helper/w3color.js +15 -17
  56. package/dist/elements/item/DesignItem.js +21 -15
  57. package/dist/elements/services/BaseServiceContainer.js +1 -3
  58. package/dist/elements/services/DefaultServiceBootstrap.js +2 -0
  59. package/dist/elements/services/GlobalContext.js +8 -6
  60. package/dist/elements/services/InstanceServiceContainer.js +1 -4
  61. package/dist/elements/services/ServiceContainer.d.ts +3 -0
  62. package/dist/elements/services/ServiceContainer.js +11 -10
  63. package/dist/elements/services/bindingsService/BaseCustomWebcomponentBindingsService.js +1 -1
  64. package/dist/elements/services/bindingsService/SpecialTagsBindingService.js +5 -5
  65. package/dist/elements/services/contentService/ContentService.js +2 -1
  66. package/dist/elements/services/copyPasteService/CopyPasteService.d.ts +8 -0
  67. package/dist/elements/services/copyPasteService/CopyPasteService.js +12 -0
  68. package/dist/elements/services/copyPasteService/ICopyPasteService copy.d.ts +0 -0
  69. package/dist/elements/services/copyPasteService/ICopyPasteService copy.js +1 -0
  70. package/dist/elements/services/copyPasteService/ICopyPasteService.d.ts +7 -0
  71. package/dist/elements/services/copyPasteService/ICopyPasteService.js +1 -0
  72. package/dist/elements/services/elementsService/JsonFileElementsService.js +14 -10
  73. package/dist/elements/services/elementsService/PreDefinedElementsService.js +6 -4
  74. package/dist/elements/services/htmlParserService/NodeHtmlParserService.js +2 -1
  75. package/dist/elements/services/htmlWriterService/IHtmlWriterOptions.js +3 -0
  76. package/dist/elements/services/placementService/DefaultPlacementService.d.ts +3 -4
  77. package/dist/elements/services/placementService/DefaultPlacementService.js +10 -10
  78. package/dist/elements/services/placementService/FlexBoxPlacementService.d.ts +3 -4
  79. package/dist/elements/services/placementService/FlexBoxPlacementService.js +3 -3
  80. package/dist/elements/services/placementService/GridPlacementService.d.ts +3 -4
  81. package/dist/elements/services/placementService/GridPlacementService.js +3 -3
  82. package/dist/elements/services/placementService/IPlacementService.d.ts +3 -4
  83. package/dist/elements/services/popupService/PopupService.js +3 -1
  84. package/dist/elements/services/propertiesService/DefaultEditorTypesService.js +10 -0
  85. package/dist/elements/services/propertiesService/propertyEditors/BasePropertyEditor.js +4 -1
  86. package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor copy.d.ts +8 -0
  87. package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor copy.js +40 -0
  88. package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor.d.ts +8 -0
  89. package/dist/elements/services/propertiesService/propertyEditors/ImageButtonListPropertyEditor.js +40 -0
  90. package/dist/elements/services/propertiesService/propertyEditors/JsonPropertyEditor.js +7 -6
  91. package/dist/elements/services/propertiesService/propertyEditors/JsonPropertyPopupEditor.js +6 -6
  92. package/dist/elements/services/propertiesService/propertyEditors/TextPropertyEditor.js +1 -2
  93. package/dist/elements/services/propertiesService/propertyEditors/ThicknessPropertyEditor.d.ts +8 -0
  94. package/dist/elements/services/propertiesService/propertyEditors/ThicknessPropertyEditor.js +14 -0
  95. package/dist/elements/services/propertiesService/services/AttributesPropertiesService.js +1 -3
  96. package/dist/elements/services/propertiesService/services/BaseCustomWebComponentPropertiesService.js +1 -4
  97. package/dist/elements/services/propertiesService/services/CommonPropertiesService.js +21 -23
  98. package/dist/elements/services/propertiesService/services/CssPropertiesService.d.ts +3 -2
  99. package/dist/elements/services/propertiesService/services/CssPropertiesService.js +194 -184
  100. package/dist/elements/services/propertiesService/services/ListPropertiesService.js +2 -2
  101. package/dist/elements/services/propertiesService/services/Lit2PropertiesService.js +1 -4
  102. package/dist/elements/services/propertiesService/services/LitElementPropertiesService.js +1 -4
  103. package/dist/elements/services/propertiesService/services/NativeElementsPropertiesService.js +72 -75
  104. package/dist/elements/services/propertiesService/services/PolymerPropertiesService.js +1 -4
  105. package/dist/elements/services/propertiesService/services/UnkownElementPropertiesService.js +1 -3
  106. package/dist/elements/services/selectionService/SelectionService.js +3 -4
  107. package/dist/elements/services/undoService/ChangeGroup.js +6 -2
  108. package/dist/elements/services/undoService/UndoService.js +3 -5
  109. package/dist/elements/services/undoService/transactionItems/AttributeChangeAction.js +5 -0
  110. package/dist/elements/services/undoService/transactionItems/CssStyleChangeAction.js +5 -0
  111. package/dist/elements/services/undoService/transactionItems/DeleteAction.js +5 -0
  112. package/dist/elements/services/undoService/transactionItems/InsertAction.js +4 -0
  113. package/dist/elements/services/undoService/transactionItems/MoveElementInDomAction.js +7 -0
  114. package/dist/elements/services/undoService/transactionItems/PropertyChangeAction.js +5 -0
  115. package/dist/elements/widgets/bindableObjectsBrowser/bindable-objects-browser.js +27 -24
  116. package/dist/elements/widgets/bindings/BindingsEditor.js +6 -6
  117. package/dist/elements/widgets/codeView/code-view-ace.js +12 -7
  118. package/dist/elements/widgets/codeView/code-view-code-mirror.js +18 -13
  119. package/dist/elements/widgets/codeView/code-view-monaco.js +16 -11
  120. package/dist/elements/widgets/demoView/demoView.js +24 -22
  121. package/dist/elements/widgets/designerView/DesignContext.js +1 -3
  122. package/dist/elements/widgets/designerView/IDesignerCanvas.d.ts +2 -2
  123. package/dist/elements/widgets/designerView/Snaplines.js +8 -5
  124. package/dist/elements/widgets/designerView/designerCanvas.d.ts +5 -4
  125. package/dist/elements/widgets/designerView/designerCanvas.js +131 -113
  126. package/dist/elements/widgets/designerView/designerView.d.ts +1 -0
  127. package/dist/elements/widgets/designerView/designerView.js +117 -81
  128. package/dist/elements/widgets/designerView/extensions/AbstractExtension.js +5 -1
  129. package/dist/elements/widgets/designerView/extensions/AltToEnterContainerExtension.js +2 -0
  130. package/dist/elements/widgets/designerView/extensions/AltToEnterContainerExtensionProvider.js +4 -6
  131. package/dist/elements/widgets/designerView/extensions/CanvasExtension copy.d.ts +10 -0
  132. package/dist/elements/widgets/designerView/extensions/CanvasExtension copy.js +29 -0
  133. package/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider copy.d.ts +10 -0
  134. package/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider copy.js +15 -0
  135. package/dist/elements/widgets/designerView/extensions/CanvasExtensionProvider.js +3 -5
  136. package/dist/elements/widgets/designerView/extensions/EditText/EditTextExtension.js +11 -8
  137. package/dist/elements/widgets/designerView/extensions/ExtensionManager.js +1 -0
  138. package/dist/elements/widgets/designerView/extensions/GrayOutExtension.js +1 -0
  139. package/dist/elements/widgets/designerView/extensions/GrayOutExtensionProvider.js +3 -5
  140. package/dist/elements/widgets/designerView/extensions/GridExtensionProvider.js +5 -7
  141. package/dist/elements/widgets/designerView/extensions/InvisibleDivExtension.js +1 -0
  142. package/dist/elements/widgets/designerView/extensions/InvisibleDivExtensionProvider.js +3 -5
  143. package/dist/elements/widgets/designerView/extensions/MouseOverExtension.js +1 -0
  144. package/dist/elements/widgets/designerView/extensions/MouseOverExtensionProvider.js +3 -5
  145. package/dist/elements/widgets/designerView/extensions/PathExtension.js +4 -0
  146. package/dist/elements/widgets/designerView/extensions/PermamentCursorExtension.d.ts +10 -0
  147. package/dist/elements/widgets/designerView/extensions/PermamentCursorExtension.js +29 -0
  148. package/dist/elements/widgets/designerView/extensions/PermamentCursorExtensionProvider copy.d.ts +10 -0
  149. package/dist/elements/widgets/designerView/extensions/PermamentCursorExtensionProvider copy.js +15 -0
  150. package/dist/elements/widgets/designerView/extensions/PermamentCursorExtensionProvider.d.ts +10 -0
  151. package/dist/elements/widgets/designerView/extensions/PermamentCursorExtensionProvider.js +15 -0
  152. package/dist/elements/widgets/designerView/extensions/PositionExtension.js +4 -0
  153. package/dist/elements/widgets/designerView/extensions/PrimarySelectionDefaultExtension.js +2 -0
  154. package/dist/elements/widgets/designerView/extensions/ResizeExtension.js +14 -4
  155. package/dist/elements/widgets/designerView/extensions/ResizeExtensionProvider.js +1 -0
  156. package/dist/elements/widgets/designerView/extensions/RotateExtensionProvider.js +3 -5
  157. package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtension.js +1 -0
  158. package/dist/elements/widgets/designerView/extensions/SelectionDefaultExtensionProvider.js +3 -5
  159. package/dist/elements/widgets/designerView/extensions/TransformOriginExtension.js +3 -0
  160. package/dist/elements/widgets/designerView/extensions/TransformOriginExtensionProvider.js +3 -5
  161. package/dist/elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.js +1 -3
  162. package/dist/elements/widgets/designerView/extensions/pointerExtensions/AbstractDesignerPointerExtension.d.ts +22 -0
  163. package/dist/elements/widgets/designerView/extensions/pointerExtensions/AbstractDesignerPointerExtension.js +82 -0
  164. package/dist/elements/widgets/designerView/extensions/pointerExtensions/AbstractExtension.d.ts +22 -0
  165. package/dist/elements/widgets/designerView/extensions/pointerExtensions/AbstractExtension.js +78 -0
  166. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorRectangleExtension.d.ts +7 -0
  167. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorRectangleExtension.js +20 -0
  168. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorRectanglePointerExtension copy.d.ts +7 -0
  169. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorRectanglePointerExtension copy.js +20 -0
  170. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorRectanglePointerExtension.d.ts +7 -0
  171. package/dist/elements/widgets/designerView/extensions/pointerExtensions/CursorRectanglePointerExtension.js +20 -0
  172. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerExtension.d.ts +5 -0
  173. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerExtension.js +1 -0
  174. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerExtensionProvider.d.ts +9 -0
  175. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerExtensionProvider.js +1 -0
  176. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtension.d.ts +5 -0
  177. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtension.js +1 -0
  178. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtensionProvider.d.ts +9 -0
  179. package/dist/elements/widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtensionProvider.js +1 -0
  180. package/dist/elements/widgets/designerView/extensions/pointerExtensions/RulerExtension.d.ts +7 -0
  181. package/dist/elements/widgets/designerView/extensions/pointerExtensions/RulerExtension.js +20 -0
  182. package/dist/elements/widgets/designerView/extensions/pointerExtensions/RulerPointerExtension.d.ts +7 -0
  183. package/dist/elements/widgets/designerView/extensions/pointerExtensions/RulerPointerExtension.js +20 -0
  184. package/dist/elements/widgets/designerView/overlay/EditTextOverlay.js +3 -3
  185. package/dist/elements/widgets/designerView/overlayLayerView.js +28 -24
  186. package/dist/elements/widgets/designerView/tools/DrawElementTool.js +5 -1
  187. package/dist/elements/widgets/designerView/tools/DrawPathTool.d.ts +0 -1
  188. package/dist/elements/widgets/designerView/tools/DrawPathTool.js +4 -3
  189. package/dist/elements/widgets/designerView/tools/MagicWandSelectorTool.d.ts +0 -1
  190. package/dist/elements/widgets/designerView/tools/MagicWandSelectorTool.js +4 -5
  191. package/dist/elements/widgets/designerView/tools/PanTool.js +1 -3
  192. package/dist/elements/widgets/designerView/tools/PickColorTool.js +1 -3
  193. package/dist/elements/widgets/designerView/tools/PointerTool.d.ts +2 -1
  194. package/dist/elements/widgets/designerView/tools/PointerTool.js +75 -63
  195. package/dist/elements/widgets/designerView/tools/RectangleSelectorTool.js +10 -9
  196. package/dist/elements/widgets/designerView/tools/TextTool.js +1 -1
  197. package/dist/elements/widgets/designerView/tools/ZoomTool.js +1 -3
  198. package/dist/elements/widgets/miniatureView/html-2-canvas-miniature-view.js +5 -4
  199. package/dist/elements/widgets/paletteView/paletteElements.js +45 -45
  200. package/dist/elements/widgets/paletteView/paletteTreeView.js +53 -51
  201. package/dist/elements/widgets/paletteView/paletteView.js +9 -8
  202. package/dist/elements/widgets/propertyGrid/PropertyGrid.js +37 -18
  203. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.js +14 -10
  204. package/dist/elements/widgets/treeView/treeView.js +102 -96
  205. package/dist/elements/widgets/treeView/treeViewExtended.js +72 -70
  206. package/dist/index.d.ts +2 -1
  207. package/dist/index.js +1 -0
  208. package/dist/interfaces/IDesignerMousePoint.d.ts +2 -0
  209. package/package.json +1 -1
  210. package/tsconfig.json +1 -1
@@ -3,9 +3,17 @@ import { PaletteElements } from './paletteElements';
3
3
  import { DesignerTabControl } from '../../controls/DesignerTabControl';
4
4
  import { BaseCustomWebComponentLazyAppend, css } from '@node-projects/base-custom-webcomponent';
5
5
  export class PaletteView extends BaseCustomWebComponentLazyAppend {
6
+ selected = 'native';
7
+ _designerTabControl;
8
+ static style = css `
9
+ :host {
10
+ display: flex;
11
+ flex-direction: column;
12
+ flex: 1;
13
+ height: 100%;
14
+ }`;
6
15
  constructor() {
7
16
  super();
8
- this.selected = 'native';
9
17
  this._designerTabControl = new DesignerTabControl();
10
18
  this._designerTabControl.selectedIndex = 0;
11
19
  this.shadowRoot.appendChild(this._designerTabControl);
@@ -20,11 +28,4 @@ export class PaletteView extends BaseCustomWebComponentLazyAppend {
20
28
  }
21
29
  }
22
30
  }
23
- PaletteView.style = css `
24
- :host {
25
- display: flex;
26
- flex-direction: column;
27
- flex: 1;
28
- height: 100%;
29
- }`;
30
31
  customElements.define('node-projects-palette-view', PaletteView);
@@ -5,6 +5,30 @@ import { CssPropertiesService } from '../../services/propertiesService/services/
5
5
  import { CommonPropertiesService } from '../../services/propertiesService/services/CommonPropertiesService';
6
6
  import { AttributesPropertiesService } from '../../services/propertiesService/services/AttributesPropertiesService';
7
7
  export class PropertyGrid extends BaseCustomWebComponentLazyAppend {
8
+ _serviceContainer;
9
+ _designerTabControl;
10
+ _selectedItems;
11
+ _propertyGridPropertyLists;
12
+ _itemsObserver;
13
+ static style = css `
14
+ :host {
15
+ display: block;
16
+ height: 100%;
17
+ user-select: none;
18
+ }
19
+ iron-pages {
20
+ overflow: hidden;
21
+ height: 250px;
22
+ background: var(--medium-grey, #2f3545);
23
+ color: white;
24
+ }
25
+ button:hover {
26
+ box-shadow: inset 0 3px 0 var(--light-grey);
27
+ }
28
+ button:focus {
29
+ box-shadow: inset 0 3px 0 var(--highlight-pink, #e91e63);
30
+ }
31
+ `;
8
32
  constructor() {
9
33
  super();
10
34
  this._designerTabControl = new DesignerTabControl();
@@ -40,6 +64,12 @@ export class PropertyGrid extends BaseCustomWebComponentLazyAppend {
40
64
  this._designerTabControl.appendChild(attributeEditorAttributeList);
41
65
  this._propertyGridPropertyLists.push(attributeEditorAttributeList);
42
66
  attributeEditorAttributeList = new PropertyGridPropertyList(value);
67
+ attributeEditorAttributeList.setPropertiesService(new CssPropertiesService("set-styles"));
68
+ attributeEditorAttributeList.createElements(null);
69
+ attributeEditorAttributeList.title = "set-styles";
70
+ this._designerTabControl.appendChild(attributeEditorAttributeList);
71
+ this._propertyGridPropertyLists.push(attributeEditorAttributeList);
72
+ attributeEditorAttributeList = new PropertyGridPropertyList(value);
43
73
  attributeEditorAttributeList.setPropertiesService(new CssPropertiesService("styles"));
44
74
  attributeEditorAttributeList.createElements(null);
45
75
  attributeEditorAttributeList.title = "styles";
@@ -57,6 +87,12 @@ export class PropertyGrid extends BaseCustomWebComponentLazyAppend {
57
87
  attributeEditorAttributeList.title = "grid";
58
88
  this._designerTabControl.appendChild(attributeEditorAttributeList);
59
89
  this._propertyGridPropertyLists.push(attributeEditorAttributeList);
90
+ attributeEditorAttributeList = new PropertyGridPropertyList(value);
91
+ attributeEditorAttributeList.setPropertiesService(new CssPropertiesService("flex"));
92
+ attributeEditorAttributeList.createElements(null);
93
+ attributeEditorAttributeList.title = "flex";
94
+ this._designerTabControl.appendChild(attributeEditorAttributeList);
95
+ this._propertyGridPropertyLists.push(attributeEditorAttributeList);
60
96
  this._designerTabControl.selectedIndex = 0;
61
97
  }
62
98
  get serviceContainer() {
@@ -72,6 +108,7 @@ export class PropertyGrid extends BaseCustomWebComponentLazyAppend {
72
108
  this._propertyGridPropertyLists[0].setPropertiesService(propService);
73
109
  this._propertyGridPropertyLists[0].createElements(this.selectedItems[0]);
74
110
  this._propertyGridPropertyLists[1].createElements(this.selectedItems[0]);
111
+ this._propertyGridPropertyLists[3].createElements(this.selectedItems[0]);
75
112
  }
76
113
  for (const a of this._propertyGridPropertyLists) {
77
114
  a.designItemsChanged(items);
@@ -103,22 +140,4 @@ export class PropertyGrid extends BaseCustomWebComponentLazyAppend {
103
140
  this._itemsObserver.observe(this._selectedItems[0].element, { attributes: true, childList: false, characterData: false });
104
141
  }
105
142
  }
106
- PropertyGrid.style = css `
107
- :host {
108
- display: block;
109
- height: 100%;
110
- }
111
- iron-pages {
112
- overflow: hidden;
113
- height: 250px;
114
- background: var(--medium-grey, #2f3545);
115
- color: white;
116
- }
117
- button:hover {
118
- box-shadow: inset 0 3px 0 var(--light-grey);
119
- }
120
- button:focus {
121
- box-shadow: inset 0 3px 0 var(--highlight-pink, #e91e63);
122
- }
123
- `;
124
143
  customElements.define('node-projects-property-grid', PropertyGrid);
@@ -2,14 +2,11 @@ import { BaseCustomWebComponentLazyAppend, css, DomHelper } from '@node-projects
2
2
  import { ContextMenuHelper } from '../../helper/contextMenu/ContextMenuHelper';
3
3
  import { ValueType } from '../../services/propertiesService/ValueType';
4
4
  export class PropertyGridPropertyList extends BaseCustomWebComponentLazyAppend {
5
- constructor(serviceContainer) {
6
- super();
7
- this._propertyMap = new Map();
8
- this._serviceContainer = serviceContainer;
9
- this._div = document.createElement("div");
10
- this._div.className = "content-wrapper";
11
- this.shadowRoot.appendChild(this._div);
12
- }
5
+ _div;
6
+ _propertyMap = new Map();
7
+ _serviceContainer;
8
+ _propertiesService;
9
+ _designItems;
13
10
  static get style() {
14
11
  return css `
15
12
  :host{
@@ -21,9 +18,9 @@ export class PropertyGridPropertyList extends BaseCustomWebComponentLazyAppend {
21
18
  .content-wrapper {
22
19
  padding: .5em;
23
20
  display: grid;
24
- grid-template-columns: 11px auto 1fr;
21
+ grid-template-columns: 11px auto minmax(80px, 1fr);
25
22
  align-items: center;
26
- grid-auto-rows: 24px;
23
+ grid-auto-rows: minmax(24px, auto);
27
24
  align-items: center;
28
25
  }
29
26
  label, input, select {
@@ -79,6 +76,13 @@ export class PropertyGridPropertyList extends BaseCustomWebComponentLazyAppend {
79
76
  }
80
77
  `;
81
78
  }
79
+ constructor(serviceContainer) {
80
+ super();
81
+ this._serviceContainer = serviceContainer;
82
+ this._div = document.createElement("div");
83
+ this._div.className = "content-wrapper";
84
+ this.shadowRoot.appendChild(this._div);
85
+ }
82
86
  setPropertiesService(propertiesService) {
83
87
  this._propertiesService = propertiesService;
84
88
  DomHelper.removeAllChildnodes(this._div);
@@ -1,6 +1,108 @@
1
1
  import { BaseCustomWebComponentLazyAppend, css } from '@node-projects/base-custom-webcomponent';
2
2
  import { DesignItem } from '../../item/DesignItem';
3
3
  export class TreeView extends BaseCustomWebComponentLazyAppend {
4
+ _items;
5
+ _index;
6
+ _previouslySelected;
7
+ _treeDiv;
8
+ _mapElementTreeitem;
9
+ _rootItem;
10
+ //TODO, buuton so key events can be transfered to designer Cnvas (so you can move controls with keys)
11
+ static style = css `
12
+ :host {
13
+ --horz-margin: 20px;
14
+ --vert-margin: 0px;
15
+ --horz-shift: calc(var(--horz-margin) / 2); /* typically */
16
+ --vert-shift: 12px;
17
+
18
+ display: inline-block;
19
+ position: relative;
20
+ width: 100%;
21
+ height: 100%;
22
+ background: var(--dark-grey, #232733);
23
+ overflow-y: auto;
24
+ }
25
+ button {
26
+ border: none;
27
+ font-size: 13px;
28
+ display: block;
29
+ padding: 4px 0;
30
+ cursor: pointer;
31
+ width: 100%;
32
+ text-align: left;
33
+ display: inline-block;
34
+ margin: 0;
35
+ background: var(--dark-grey, #232733);
36
+ position: relative;
37
+ color: white;
38
+ }
39
+ button:hover, button:focus {
40
+ background: var(--light-grey, #383f52);
41
+ }
42
+ span {
43
+ margin: 4px;
44
+ }
45
+ .id {
46
+ font-style: italic;
47
+ color: var(--highlight-pink, #e91e63);
48
+ }
49
+ .selected {
50
+ background: var(--light-grey, #383f52);
51
+ outline: none;
52
+ }
53
+
54
+ li, ul {
55
+ margin: 0;
56
+ padding: 0;
57
+ }
58
+ .tree ul {
59
+ margin-left: var(--horz-margin);
60
+ }
61
+ .tree li {
62
+ list-style-type: none;
63
+ margin-top: var(--vert-margin);
64
+ margin-bottom: var(--vert-margin);
65
+ position: relative;
66
+ }
67
+
68
+ /* up connector */
69
+ .tree li::before {
70
+ content: "";
71
+ position: absolute;
72
+ top: calc(0px - var(--vert-margin));
73
+ left: calc(var(--horz-shift) - var(--horz-margin));
74
+ width: calc(var(--horz-margin) - var(--horz-shift));
75
+ height: calc(var(--vert-shift) + var(--vert-margin));
76
+ border-left: 1px solid #ccc;
77
+ border-bottom: 1px solid #ccc;
78
+ border-radius: 0;
79
+ }
80
+
81
+ /* down connector */
82
+ .tree li::after {
83
+ position: absolute;
84
+ content: "";
85
+ top: var(--vert-shift);
86
+ left: calc(var(--horz-shift) - var(--horz-margin));
87
+ width: calc(var(--horz-margin) - var(--horz-shift));
88
+ height: calc(100% - var(--vert-shift));
89
+ border-left: 1px solid #ccc;
90
+ border-top: 1px solid #ccc;
91
+ border-radius: 0;
92
+ }
93
+
94
+ /* do not draw: up connector of first root item */
95
+ ul.tree>li:first-child::before { display:none; }
96
+
97
+ /* do not draw: down connector of last item */
98
+ .tree li:last-child::after { display:none; }
99
+
100
+ /* draw rounded: down connector of first root item */
101
+ ul.tree>li:first-child::after { border-radius: 5px 0 0 0; }
102
+
103
+ /* draw rounded: up connector of last item */
104
+ .tree li:last-child:before { border-radius: 0 0 0 5px; }
105
+ `;
4
106
  constructor() {
5
107
  super();
6
108
  this._treeDiv = document.createElement('div');
@@ -122,100 +224,4 @@ export class TreeView extends BaseCustomWebComponentLazyAppend {
122
224
  }
123
225
  }
124
226
  }
125
- //TODO, buuton so key events can be transfered to designer Cnvas (so you can move controls with keys)
126
- TreeView.style = css `
127
- :host {
128
- --horz-margin: 20px;
129
- --vert-margin: 0px;
130
- --horz-shift: calc(var(--horz-margin) / 2); /* typically */
131
- --vert-shift: 12px;
132
-
133
- display: inline-block;
134
- position: relative;
135
- width: 100%;
136
- height: 100%;
137
- background: var(--dark-grey, #232733);
138
- overflow-y: auto;
139
- }
140
- button {
141
- border: none;
142
- font-size: 13px;
143
- display: block;
144
- padding: 4px 0;
145
- cursor: pointer;
146
- width: 100%;
147
- text-align: left;
148
- display: inline-block;
149
- margin: 0;
150
- background: var(--dark-grey, #232733);
151
- position: relative;
152
- color: white;
153
- }
154
- button:hover, button:focus {
155
- background: var(--light-grey, #383f52);
156
- }
157
- span {
158
- margin: 4px;
159
- }
160
- .id {
161
- font-style: italic;
162
- color: var(--highlight-pink, #e91e63);
163
- }
164
- .selected {
165
- background: var(--light-grey, #383f52);
166
- outline: none;
167
- }
168
-
169
- li, ul {
170
- margin: 0;
171
- padding: 0;
172
- }
173
- .tree ul {
174
- margin-left: var(--horz-margin);
175
- }
176
- .tree li {
177
- list-style-type: none;
178
- margin-top: var(--vert-margin);
179
- margin-bottom: var(--vert-margin);
180
- position: relative;
181
- }
182
-
183
- /* up connector */
184
- .tree li::before {
185
- content: "";
186
- position: absolute;
187
- top: calc(0px - var(--vert-margin));
188
- left: calc(var(--horz-shift) - var(--horz-margin));
189
- width: calc(var(--horz-margin) - var(--horz-shift));
190
- height: calc(var(--vert-shift) + var(--vert-margin));
191
- border-left: 1px solid #ccc;
192
- border-bottom: 1px solid #ccc;
193
- border-radius: 0;
194
- }
195
-
196
- /* down connector */
197
- .tree li::after {
198
- position: absolute;
199
- content: "";
200
- top: var(--vert-shift);
201
- left: calc(var(--horz-shift) - var(--horz-margin));
202
- width: calc(var(--horz-margin) - var(--horz-shift));
203
- height: calc(100% - var(--vert-shift));
204
- border-left: 1px solid #ccc;
205
- border-top: 1px solid #ccc;
206
- border-radius: 0;
207
- }
208
-
209
- /* do not draw: up connector of first root item */
210
- ul.tree>li:first-child::before { display:none; }
211
-
212
- /* do not draw: down connector of last item */
213
- .tree li:last-child::after { display:none; }
214
-
215
- /* draw rounded: down connector of first root item */
216
- ul.tree>li:first-child::after { border-radius: 5px 0 0 0; }
217
-
218
- /* draw rounded: up connector of last item */
219
- .tree li:last-child:before { border-radius: 0 0 0 5px; }
220
- `;
221
227
  customElements.define('node-projects-tree-view', TreeView);
@@ -2,6 +2,77 @@ import { css, html, BaseCustomWebComponentConstructorAppend } from '@node-projec
2
2
  import { NodeType } from '../../item/NodeType';
3
3
  import { assetsPath } from '../../../Constants';
4
4
  export class TreeViewExtended extends BaseCustomWebComponentConstructorAppend {
5
+ _treeDiv;
6
+ _tree;
7
+ _filter;
8
+ static style = css `
9
+ * {
10
+ touch-action: none;
11
+ }
12
+
13
+ span.drag-source {
14
+ border: 1px solid grey;
15
+ border-radius: 3px;
16
+ padding: 2px;
17
+ background-color: silver;
18
+ }
19
+
20
+ span.fancytree-node.fancytree-drag-source {
21
+ outline: 1px dotted grey;
22
+ }
23
+ span.fancytree-node.fancytree-drop-accept {
24
+ outline: 1px dotted green;
25
+ }
26
+ span.fancytree-node.fancytree-drop-reject {
27
+ outline: 1px dotted red;
28
+ }
29
+ #tree ul {
30
+ border: none;
31
+ }
32
+ #tree ul:focus {
33
+ outline: none;
34
+ }
35
+ span.fancytree-title {
36
+ align-items: center;
37
+ flex-direction: row;
38
+ display: inline-flex;
39
+ }
40
+ td {
41
+ white-space: nowrap;
42
+ }
43
+ td:nth-child(n+2) {
44
+ text-align: center;
45
+ }
46
+ td > img {
47
+ vertical-align: middle;
48
+ }
49
+
50
+ table.fancytree-ext-table tbody tr.fancytree-selected {
51
+ background-color: #bebebe;
52
+ }
53
+ `;
54
+ static template = html `
55
+ <div style="height: 100%;">
56
+ <input id="input" style="width: 100%; height:21px;" placeholder="Filter..." autocomplete="off">
57
+ <div style="height: calc(100% - 23px); overflow: auto;">
58
+ <table id="treetable" style="min-width: 100%;">
59
+ <colgroup>
60
+ <col width="*">
61
+ <col width="25px">
62
+ <col width="25px">
63
+ <col width="25px">
64
+ </colgroup>
65
+ <thead style="display: none;">
66
+ <tr>
67
+ <th></th>
68
+ <th></th>
69
+ <th></th>
70
+ <th></th>
71
+ </tr>
72
+ </thead>
73
+ </table>
74
+ </div>
75
+ </div>`;
5
76
  constructor() {
6
77
  super();
7
78
  let externalCss = document.createElement('style');
@@ -260,7 +331,6 @@ export class TreeViewExtended extends BaseCustomWebComponentConstructorAppend {
260
331
  this._tree.getRootNode().updateCounters();
261
332
  }
262
333
  _getChildren(item, currentNode) {
263
- var _a;
264
334
  if (currentNode == null) {
265
335
  currentNode = this._tree.getRootNode();
266
336
  }
@@ -271,7 +341,7 @@ export class TreeViewExtended extends BaseCustomWebComponentConstructorAppend {
271
341
  ref: item
272
342
  });
273
343
  for (let i of item.children()) {
274
- if (i.nodeType !== NodeType.TextNode || ((_a = i.content) === null || _a === void 0 ? void 0 : _a.trim())) {
344
+ if (i.nodeType !== NodeType.TextNode || i.content?.trim()) {
275
345
  this._getChildren(i, newNode);
276
346
  }
277
347
  }
@@ -290,72 +360,4 @@ export class TreeViewExtended extends BaseCustomWebComponentConstructorAppend {
290
360
  }
291
361
  }
292
362
  }
293
- TreeViewExtended.style = css `
294
- * {
295
- touch-action: none;
296
- }
297
-
298
- span.drag-source {
299
- border: 1px solid grey;
300
- border-radius: 3px;
301
- padding: 2px;
302
- background-color: silver;
303
- }
304
-
305
- span.fancytree-node.fancytree-drag-source {
306
- outline: 1px dotted grey;
307
- }
308
- span.fancytree-node.fancytree-drop-accept {
309
- outline: 1px dotted green;
310
- }
311
- span.fancytree-node.fancytree-drop-reject {
312
- outline: 1px dotted red;
313
- }
314
- #tree ul {
315
- border: none;
316
- }
317
- #tree ul:focus {
318
- outline: none;
319
- }
320
- span.fancytree-title {
321
- align-items: center;
322
- flex-direction: row;
323
- display: inline-flex;
324
- }
325
- td {
326
- white-space: nowrap;
327
- }
328
- td:nth-child(n+2) {
329
- text-align: center;
330
- }
331
- td > img {
332
- vertical-align: middle;
333
- }
334
-
335
- table.fancytree-ext-table tbody tr.fancytree-selected {
336
- background-color: #bebebe;
337
- }
338
- `;
339
- TreeViewExtended.template = html `
340
- <div style="height: 100%;">
341
- <input id="input" style="width: 100%; height:21px;" placeholder="Filter..." autocomplete="off">
342
- <div style="height: calc(100% - 23px); overflow: auto;">
343
- <table id="treetable" style="min-width: 100%;">
344
- <colgroup>
345
- <col width="*">
346
- <col width="25px">
347
- <col width="25px">
348
- <col width="25px">
349
- </colgroup>
350
- <thead style="display: none;">
351
- <tr>
352
- <th></th>
353
- <th></th>
354
- <th></th>
355
- <th></th>
356
- </tr>
357
- </thead>
358
- </table>
359
- </div>
360
- </div>`;
361
363
  customElements.define('node-projects-tree-view-extended', TreeViewExtended);
package/dist/index.d.ts CHANGED
@@ -30,6 +30,8 @@ export type { IElementAtPointService } from "./elements/services/elementAtPointS
30
30
  export * from "./elements/services/contentService/ContentService.js";
31
31
  export type { IContentChanged } from "./elements/services/contentService/IContentChanged.js";
32
32
  export type { IContentService } from "./elements/services/contentService/IContentService.js";
33
+ export * from "./elements/services/copyPasteService/CopyPasteService.js";
34
+ export type { ICopyPasteService } from "./elements/services/copyPasteService/ICopyPasteService.js";
33
35
  export * from "./elements/services/dragDropService/DragDropService.js";
34
36
  export type { IDragDropService } from "./elements/services/dragDropService/IDragDropService.js";
35
37
  export type { IElementDefinition } from "./elements/services/elementsService/IElementDefinition.js";
@@ -148,7 +150,6 @@ export * from "./elements/documentContainer.js";
148
150
  export * from "./enums/EventNames.js";
149
151
  export * from "./enums/PointerActionType.js";
150
152
  export type { IActivateable } from "./interfaces/IActivateable.js";
151
- export type { IDesignerMousePoint } from "./interfaces/IDesignerMousePoint.js";
152
153
  export type { IDisposable } from "./interfaces/IDisposable.js";
153
154
  export type { IPoint } from "./interfaces/IPoint.js";
154
155
  export type { IRect } from "./interfaces/IRect.js";
package/dist/index.js CHANGED
@@ -20,6 +20,7 @@ export * from "./elements/services/placementService/GridPlacementService.js";
20
20
  export * from "./elements/services/placementService/SnaplinesProviderService.js";
21
21
  export * from "./elements/services/elementAtPointService/ElementAtPointService.js";
22
22
  export * from "./elements/services/contentService/ContentService.js";
23
+ export * from "./elements/services/copyPasteService/CopyPasteService.js";
23
24
  export * from "./elements/services/dragDropService/DragDropService.js";
24
25
  export * from "./elements/services/elementsService/JsonFileElementsService.js";
25
26
  export * from "./elements/services/htmlWriterService/HtmlWriterService.js";
@@ -6,4 +6,6 @@ export interface IDesignerMousePoint {
6
6
  offsetInControlX: number;
7
7
  offsetInControlY: number;
8
8
  zoom?: number;
9
+ normalizedX?: number;
10
+ normalizedY?: number;
9
11
  }
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.32",
4
+ "version": "0.0.36",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "",
package/tsconfig.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  /* Basic Options */
4
- "target": "ES2017", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
4
+ "target": "esnext", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
5
5
  "module": "esnext", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
6
6
  // "lib": [], /* Specify library files to be included in the compilation. */
7
7
  "allowJs": true, /* Allow javascript files to be compiled. */