@node-projects/web-component-designer 0.0.46 → 0.0.50

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 (45) 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 +7 -3
  7. package/dist/elements/item/IDesignItem.d.ts +3 -1
  8. package/dist/elements/services/contentService/IContentChanged.d.ts +3 -3
  9. package/dist/elements/services/htmlWriterService/HtmlWriterService.js +1 -6
  10. package/dist/elements/services/placementService/DefaultPlacementService.js +6 -0
  11. package/dist/elements/services/placementService/GridPlacementService.js +52 -1
  12. package/dist/elements/services/undoService/transactionItems/CssStyleChangeAction.d.ts +2 -2
  13. package/dist/elements/services/undoService/transactionItems/DeleteAction.js +2 -0
  14. package/dist/elements/services/undoService/transactionItems/InsertAction.js +2 -0
  15. package/dist/elements/services/undoService/transactionItems/MoveElementInDomAction.js +2 -0
  16. package/dist/elements/widgets/designerView/DomConverter.d.ts +1 -1
  17. package/dist/elements/widgets/designerView/DomConverter.js +2 -0
  18. package/dist/elements/widgets/designerView/IDesignerCanvas.d.ts +2 -0
  19. package/dist/elements/widgets/designerView/designerCanvas.d.ts +2 -1
  20. package/dist/elements/widgets/designerView/designerCanvas.js +3 -2
  21. package/dist/elements/widgets/designerView/extensions/GridExtension.js +11 -97
  22. package/dist/elements/widgets/designerView/extensions/TransformOriginExtension.js +2 -2
  23. package/dist/elements/widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.d.ts +2 -2
  24. package/dist/elements/widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.js +1 -1
  25. package/dist/elements/widgets/designerView/extensions/contextMenu/IContextMenuExtension.d.ts +2 -1
  26. package/dist/elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.d.ts +2 -2
  27. package/dist/elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.js +4 -3
  28. package/dist/elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.d.ts +2 -2
  29. package/dist/elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.js +1 -1
  30. package/dist/elements/widgets/designerView/extensions/contextMenu/ZMoveContextMenu.d.ts +2 -2
  31. package/dist/elements/widgets/designerView/extensions/contextMenu/ZMoveContextMenu.js +1 -1
  32. package/dist/elements/widgets/designerView/tools/PointerTool.js +4 -2
  33. package/dist/elements/widgets/propertyGrid/PropertyGrid copy.d.ts +17 -0
  34. package/dist/elements/widgets/propertyGrid/PropertyGrid copy.js +143 -0
  35. package/dist/elements/widgets/propertyGrid/PropertyGrid.d.ts +4 -0
  36. package/dist/elements/widgets/propertyGrid/PropertyGrid.js +10 -15
  37. package/dist/elements/widgets/propertyGrid/PropertyGridWithHeader.d.ts +15 -0
  38. package/dist/elements/widgets/propertyGrid/PropertyGridWithHeader.js +86 -0
  39. package/dist/elements/widgets/treeView/treeView.d.ts +5 -0
  40. package/dist/elements/widgets/treeView/treeView.js +15 -0
  41. package/dist/elements/widgets/treeView/treeViewExtended.d.ts +7 -0
  42. package/dist/elements/widgets/treeView/treeViewExtended.js +56 -37
  43. package/dist/index.d.ts +2 -1
  44. package/dist/index.js +1 -0
  45. package/package.json +1 -1
@@ -1,10 +1,14 @@
1
1
  import { css, html, BaseCustomWebComponentConstructorAppend } from '@node-projects/base-custom-webcomponent';
2
2
  import { NodeType } from '../../item/NodeType';
3
3
  import { assetsPath } from '../../../Constants';
4
+ import { ContextMenuHelper } from '../../helper/contextMenu/ContextMenuHelper.js';
4
5
  export class TreeViewExtended extends BaseCustomWebComponentConstructorAppend {
5
6
  _treeDiv;
6
7
  _tree;
7
8
  _filter;
9
+ _instanceServiceContainer;
10
+ _selectionChangedHandler;
11
+ _contentChangedHandler;
8
12
  static style = css `
9
13
  * {
10
14
  touch-action: none;
@@ -39,14 +43,24 @@ export class TreeViewExtended extends BaseCustomWebComponentConstructorAppend {
39
43
  }
40
44
  td {
41
45
  white-space: nowrap;
42
- }
43
- td:nth-child(n+2) {
44
- text-align: center;
46
+ display: flex;
45
47
  }
46
48
  td > img {
47
49
  vertical-align: middle;
48
50
  }
49
51
 
52
+ .cmd {
53
+ display: flex;
54
+ position: sticky;
55
+ right: 0;
56
+ padding-right: 4px;
57
+ align-items: center;
58
+ gap: 2px;
59
+ background: #ffffffc9;
60
+ width: 70px;
61
+ justify-content: flex-end;
62
+ }
63
+
50
64
  table.fancytree-ext-table tbody tr.fancytree-selected {
51
65
  background-color: #bebebe;
52
66
  }
@@ -58,16 +72,16 @@ export class TreeViewExtended extends BaseCustomWebComponentConstructorAppend {
58
72
  <table id="treetable" style="min-width: 100%;">
59
73
  <colgroup>
60
74
  <col width="*">
75
+ <!--<col width="25px">
61
76
  <col width="25px">
62
- <col width="25px">
63
- <col width="25px">
77
+ <col width="25px">-->
64
78
  </colgroup>
65
79
  <thead style="display: none;">
66
80
  <tr>
67
81
  <th></th>
82
+ <!--<th></th>
68
83
  <th></th>
69
- <th></th>
70
- <th></th>
84
+ <th></th>-->
71
85
  </tr>
72
86
  </thead>
73
87
  </table>
@@ -122,6 +136,17 @@ export class TreeViewExtended extends BaseCustomWebComponentConstructorAppend {
122
136
  designItem.hideAtRunTime = !designItem.hideAtRunTime;
123
137
  this._showHideAtRunTimeState(img, designItem);
124
138
  }
139
+ showDesignItemContextMenu(designItem, event) {
140
+ event.preventDefault();
141
+ const mnuItems = [];
142
+ for (let cme of designItem.serviceContainer.designerContextMenuExtensions) {
143
+ if (cme.shouldProvideContextmenu(event, designItem.instanceServiceContainer.designerCanvas, designItem, 'treeView')) {
144
+ mnuItems.push(...cme.provideContextMenuItems(event, designItem.instanceServiceContainer.designerCanvas, designItem));
145
+ }
146
+ }
147
+ let ctxMnu = ContextMenuHelper.showContextMenu(null, event, null, mnuItems);
148
+ return ctxMnu;
149
+ }
125
150
  async ready() {
126
151
  //this._treeDiv.classList.add('fancytree-connectors');
127
152
  $(this._treeDiv).fancytree({
@@ -142,46 +167,28 @@ export class TreeViewExtended extends BaseCustomWebComponentConstructorAppend {
142
167
  },
143
168
  createNode: (event, data) => {
144
169
  let node = data.node;
145
- if (node.tr.children[1]) {
170
+ if (node.tr.children[0]) {
146
171
  let designItem = node.data.ref;
147
- if (designItem.nodeType === NodeType.Element && designItem !== designItem.instanceServiceContainer.contentService.rootDesignItem) {
148
- /*
149
- let toolTipImg: HTMLImageElement;
150
- (<HTMLElement>node.tr.children[0]).onmouseenter = (e) => {
151
- toolTipImg = document.createElement("img");
152
- Screenshot.takeScreenshot(designItem.element).then(x => { if (toolTipImg) toolTipImg.src = x; });
153
- toolTipImg.style.position = 'absolute';
154
- let r = node.tr.children[0].getBoundingClientRect();
155
- toolTipImg.style.left = (e.x + 5 - r.left) + 'px';
156
- toolTipImg.style.top = (e.y + 5 - r.top) + 'px';
157
- (<HTMLElement>node.tr.children[0]).appendChild(toolTipImg);
158
- }
159
- (<HTMLElement>node.tr.children[0]).onmousemove = (e) => {
160
- if (toolTipImg) {
161
- let r = node.tr.children[0].getBoundingClientRect();
162
- toolTipImg.style.left = (e.x + 5 - r.left) + 'px';
163
- toolTipImg.style.top = (e.y + 5 - r.top) + 'px';
164
- }
165
- }
166
- (<HTMLElement>node.tr.children[0]).onmouseout = (e) => {
167
- if (toolTipImg) {
168
- toolTipImg.parentNode?.removeChild(toolTipImg);
169
- toolTipImg = null;
170
- }
171
- }
172
- */
172
+ if (designItem && designItem.nodeType === NodeType.Element && designItem !== designItem.instanceServiceContainer.contentService.rootDesignItem) {
173
+ node.tr.oncontextmenu = (e) => this.showDesignItemContextMenu(designItem, e);
174
+ let d = document.createElement("div");
175
+ d.className = "cmd";
173
176
  let img = document.createElement('img');
174
177
  this._showHideAtDesignTimeState(img, designItem);
175
178
  img.onclick = () => this._switchHideAtDesignTimeState(img, designItem);
176
- node.tr.children[1].appendChild(img);
179
+ img.title = 'hide in designer';
180
+ d.appendChild(img);
177
181
  let imgL = document.createElement('img');
178
182
  this._showLockAtDesignTimeState(imgL, designItem);
179
183
  imgL.onclick = () => this._switchLockAtDesignTimeState(imgL, designItem);
180
- node.tr.children[2].appendChild(imgL);
184
+ imgL.title = 'lock';
185
+ d.appendChild(imgL);
181
186
  let imgH = document.createElement('img');
182
187
  this._showHideAtRunTimeState(imgH, designItem);
183
188
  imgH.onclick = () => this._switchHideAtRunTimeState(imgH, designItem);
184
- node.tr.children[3].appendChild(imgH);
189
+ imgH.title = 'hide at runtime';
190
+ d.appendChild(imgH);
191
+ node.tr.children[0].appendChild(d);
185
192
  }
186
193
  }
187
194
  },
@@ -318,6 +325,18 @@ export class TreeViewExtended extends BaseCustomWebComponentConstructorAppend {
318
325
  this._recomputeTree(rootItem);
319
326
  }
320
327
  }
328
+ set instanceServiceContainer(value) {
329
+ this._instanceServiceContainer = value;
330
+ this._selectionChangedHandler?.dispose();
331
+ this._selectionChangedHandler = this._instanceServiceContainer.selectionService.onSelectionChanged.on(e => {
332
+ this.selectionChanged(e);
333
+ });
334
+ this._contentChangedHandler?.dispose();
335
+ this._contentChangedHandler = this._instanceServiceContainer.contentService.onContentChanged.on(e => {
336
+ this.createTree(value.contentService.rootDesignItem);
337
+ });
338
+ this.createTree(value.contentService.rootDesignItem);
339
+ }
321
340
  selectionChanged(event) {
322
341
  if (event.selectedElements.length > 0) {
323
342
  this._highlight(event.selectedElements);
package/dist/index.d.ts CHANGED
@@ -84,6 +84,7 @@ export type { IServiceContainer } from "./elements/services/IServiceContainer.js
84
84
  export * from "./elements/services/ServiceContainer.js";
85
85
  export * from "./elements/widgets/propertyGrid/PropertyGrid.js";
86
86
  export * from "./elements/widgets/propertyGrid/PropertyGridPropertyList.js";
87
+ export * from "./elements/widgets/propertyGrid/PropertyGridWithHeader.js";
87
88
  export type { IDesignerCanvas } from "./elements/widgets/designerView/IDesignerCanvas.js";
88
89
  export type { IPlacementView } from "./elements/widgets/designerView/IPlacementView.js";
89
90
  export * from "./elements/widgets/designerView/designerView.js";
@@ -132,7 +133,7 @@ export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtens
132
133
  export * from "./elements/widgets/designerView/extensions/SelectionDefaultExtensionProvider.js";
133
134
  export * from "./elements/widgets/designerView/extensions/TransformOriginExtension.js";
134
135
  export * from "./elements/widgets/designerView/extensions/TransformOriginExtensionProvider.js";
135
- export type { IContextMenuExtension } from "./elements/widgets/designerView/extensions/contextMenu/IContextMenuExtension.js";
136
+ export type { IContextMenuExtension, ContextmenuInitiator } from "./elements/widgets/designerView/extensions/contextMenu/IContextMenuExtension.js";
136
137
  export * from "./elements/widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.js";
137
138
  export * from "./elements/widgets/designerView/extensions/contextMenu/ItemsBelowContextMenu.js";
138
139
  export * from "./elements/widgets/designerView/extensions/contextMenu/MultipleItemsSelectedContextMenu.js";
package/dist/index.js CHANGED
@@ -53,6 +53,7 @@ export * from "./elements/services/InstanceServiceContainer.js";
53
53
  export * from "./elements/services/ServiceContainer.js";
54
54
  export * from "./elements/widgets/propertyGrid/PropertyGrid.js";
55
55
  export * from "./elements/widgets/propertyGrid/PropertyGridPropertyList.js";
56
+ export * from "./elements/widgets/propertyGrid/PropertyGridWithHeader.js";
56
57
  export * from "./elements/widgets/designerView/designerView.js";
57
58
  export * from "./elements/widgets/designerView/overlayLayerView.js";
58
59
  export * from "./elements/widgets/designerView/defaultConfiguredDesignerView.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.46",
4
+ "version": "0.0.50",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "",