@node-projects/web-component-designer-visualization-addons 0.1.94 → 0.1.96

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.
@@ -1,5 +1,5 @@
1
1
  import { BaseCustomWebComponentConstructorAppend, css, html } from "@node-projects/base-custom-webcomponent";
2
- import { ContextMenu, PropertiesHelper } from "@node-projects/web-component-designer";
2
+ import { ContextMenu, copyTextToClipboard, getTextFromClipboard, PropertiesHelper } from "@node-projects/web-component-designer";
3
3
  import { ParameterEditor } from "./ParameterEditor.js";
4
4
  import { BlocklyScriptEditor } from "../blockly/BlocklyScriptEditor.js";
5
5
  import { SimpleScriptEditor } from "./SimpleScriptEditor.js";
@@ -209,8 +209,23 @@ export class EventAssignment extends BaseCustomWebComponentConstructorAppend {
209
209
  const evtType = this._getScriptType(eventItem);
210
210
  if (evtType == 'empty')
211
211
  this._showContextMenuAssignScript(e, eventItem, true);
212
- else if (evtType != 'none')
213
- ContextMenu.show([{ title: 'remove', action: () => { this.selectedItems[0].removeAttribute('@' + eventItem.name); this._bindingsRefresh(); } }], e);
212
+ else if (evtType != 'none') {
213
+ let ctxMenu = [
214
+ {
215
+ title: 'remove',
216
+ action: () => { this.selectedItems[0].removeAttribute('@' + eventItem.name); this._bindingsRefresh(); }
217
+ }, {
218
+ title: '-'
219
+ }, {
220
+ title: 'copy',
221
+ action: () => { copyTextToClipboard(this.selectedItems[0].getAttribute('@' + eventItem.name)); }
222
+ }, {
223
+ title: 'paste',
224
+ action: async () => { this.selectedItems[0].setAttribute('@' + eventItem.name, await getTextFromClipboard()); }
225
+ }
226
+ ];
227
+ ContextMenu.show(ctxMenu, e);
228
+ }
214
229
  else
215
230
  this._showContextMenuAssignScript(e, eventItem, true);
216
231
  }
@@ -259,6 +274,17 @@ export class EventAssignment extends BaseCustomWebComponentConstructorAppend {
259
274
  action: () => { this.selectedItems[0].removeAttribute('@' + eventItem.name); this._bindingsRefresh(); }
260
275
  });
261
276
  }
277
+ if (evtType != 'empty') {
278
+ ctxMenu.push({
279
+ title: '-'
280
+ }, {
281
+ title: 'copy',
282
+ action: () => { copyTextToClipboard(this.selectedItems[0].getAttribute('@' + eventItem.name)); }
283
+ }, {
284
+ title: 'paste',
285
+ action: async () => { this.selectedItems[0].setAttribute('@' + eventItem.name, await getTextFromClipboard()); }
286
+ });
287
+ }
262
288
  return ctxMenu;
263
289
  }
264
290
  async _showContextMenuAssignScript(event, eventItem, isCtxMenu) {
@@ -15,10 +15,10 @@ export class ScriptRefactorService {
15
15
  if (cp != null && typeof cp === 'object') {
16
16
  let mp = cp;
17
17
  if (mp.source === 'signal') {
18
- refactorings.push({ name: mp.name, itemType: 'signal', target: BindingTarget.event, targetName: a[0], service: this, designItem: d, type: 'script', sourceObject: script, display: c.type + '/' + p + '[signal]', refactor: newValue => mp.name = newValue });
18
+ refactorings.push({ name: mp.name, itemType: 'signal', target: BindingTarget.event, targetName: a[0], service: this, designItem: d, type: 'script', sourceObject: script, display: c.type + '/' + a[0].substring(1) + '/' + p + '[signal]', refactor: newValue => mp.name = newValue });
19
19
  }
20
20
  else if (mp.source === 'property') {
21
- refactorings.push({ name: mp.name, itemType: 'property', target: BindingTarget.event, targetName: a[0], service: this, designItem: d, type: 'script', sourceObject: script, display: c.type + '/' + p + '[property]', refactor: newValue => mp.name = newValue });
21
+ refactorings.push({ name: mp.name, itemType: 'property', target: BindingTarget.event, targetName: a[0], service: this, designItem: d, type: 'script', sourceObject: script, display: c.type + '/' + a[0].substring(1) + '/' + p + '[property]', refactor: newValue => mp.name = newValue });
22
22
  }
23
23
  else if (mp.source === 'complexString') {
24
24
  for (let m of mp.name.matchAll(/\{(.*?)\}/g)) {
@@ -31,10 +31,10 @@ export class ScriptRefactorService {
31
31
  prefix = '??';
32
32
  nm = nm.substring(1);
33
33
  }
34
- refactorings.push({ name: nm, itemType: 'property', target: BindingTarget.event, targetName: a[0], service: this, designItem: d, type: 'script', sourceObject: script, display: c.type + '/' + p + '[complexString]->property', refactor: newValue => mp.name = mp.name.replace(full, '{' + prefix + newValue + '}') });
34
+ refactorings.push({ name: nm, itemType: 'property', target: BindingTarget.event, targetName: a[0], service: this, designItem: d, type: 'script', sourceObject: script, display: c.type + '/' + a[0].substring(1) + '/' + p + '[complexString]->property', refactor: newValue => mp.name = mp.name.replace(full, '{' + prefix + newValue + '}') });
35
35
  }
36
36
  else {
37
- refactorings.push({ name: nm, itemType: 'signal', target: BindingTarget.event, targetName: a[0], service: this, designItem: d, type: 'script', sourceObject: script, display: c.type + '/' + p + '[complexString]->signal', refactor: newValue => mp.name = mp.name.replace(full, '{' + newValue + '}') });
37
+ refactorings.push({ name: nm, itemType: 'signal', target: BindingTarget.event, targetName: a[0], service: this, designItem: d, type: 'script', sourceObject: script, display: c.type + '/' + a[0].substring(1) + '/' + p + '[complexString]->signal', refactor: newValue => mp.name = mp.name.replace(full, '{' + newValue + '}') });
38
38
  }
39
39
  }
40
40
  }
@@ -43,55 +43,55 @@ export class ScriptRefactorService {
43
43
  switch (c.type) {
44
44
  case 'SetSignalValue':
45
45
  if (c.signal && typeof c.signal === 'string')
46
- refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
46
+ refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/' + a[0].substring(1) + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
47
47
  break;
48
48
  case 'ToggleSignalValue':
49
49
  if (c.signal && typeof c.signal === 'string')
50
- refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
50
+ refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/' + a[0].substring(1) + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
51
51
  break;
52
52
  case 'IncrementSignalValue':
53
53
  if (c.signal && typeof c.signal === 'string')
54
- refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
54
+ refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/' + a[0].substring(1) + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
55
55
  break;
56
56
  case 'DecrementSignalValue':
57
57
  if (c.signal && typeof c.signal === 'string')
58
- refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
58
+ refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/' + a[0].substring(1) + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
59
59
  break;
60
60
  case 'SetBitInSignal':
61
61
  if (c.signal && typeof c.signal === 'string')
62
- refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
62
+ refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/' + a[0].substring(1) + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
63
63
  break;
64
64
  case 'ClearBitInSignal':
65
65
  if (c.signal && typeof c.signal === 'string')
66
- refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
66
+ refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/' + a[0].substring(1) + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
67
67
  break;
68
68
  case 'ToggleBitInSignal':
69
69
  if (c.signal && typeof c.signal === 'string')
70
- refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
70
+ refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/' + a[0].substring(1) + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
71
71
  break;
72
72
  case 'OpenScreen':
73
73
  if (c.screen && typeof c.screen === 'string')
74
- refactorings.push({ name: c.screen, itemType: 'screen', target: BindingTarget.event, targetName: a[0], display: c.type + '/screen', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.screen = newValue });
74
+ refactorings.push({ name: c.screen, itemType: 'screen', target: BindingTarget.event, targetName: a[0], display: c.type + '/' + a[0].substring(1) + '/screen', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.screen = newValue });
75
75
  break;
76
76
  case 'OpenDialog':
77
77
  if (c.screen && typeof c.screen === 'string')
78
- refactorings.push({ name: c.screen, itemType: 'screen', target: BindingTarget.event, targetName: a[0], display: c.type + '/screen', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.screen = newValue });
78
+ refactorings.push({ name: c.screen, itemType: 'screen', target: BindingTarget.event, targetName: a[0], display: c.type + '/' + a[0].substring(1) + '/screen', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.screen = newValue });
79
79
  break;
80
80
  case 'CalculateSignalValue':
81
81
  if (c.targetSignal && typeof c.targetSignal === 'string')
82
- refactorings.push({ name: c.targetSignal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/targetSignal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.targetSignal = newValue });
82
+ refactorings.push({ name: c.targetSignal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/' + a[0].substring(1) + '/targetSignal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.targetSignal = newValue });
83
83
  break;
84
84
  case 'SubscribeSignal':
85
85
  if (c.signal && typeof c.signal === 'string')
86
- refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
86
+ refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/' + a[0].substring(1) + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
87
87
  break;
88
88
  case 'UnsubscribeSignal':
89
89
  if (c.signal && typeof c.signal === 'string')
90
- refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
90
+ refactorings.push({ name: c.signal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/' + a[0].substring(1) + '/signal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.signal = newValue });
91
91
  break;
92
92
  case 'ShowMessageBox':
93
93
  if (c.resultSignal && typeof c.resultSignal === 'string')
94
- refactorings.push({ name: c.resultSignal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/resultSignal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.resultSignal = newValue });
94
+ refactorings.push({ name: c.resultSignal, itemType: 'signal', target: BindingTarget.event, targetName: a[0], display: c.type + '/' + a[0].substring(1) + '/resultSignal', service: this, designItem: d, type: 'script', sourceObject: script, refactor: newValue => c.resultSignal = newValue });
95
95
  break;
96
96
  }
97
97
  }
@@ -101,7 +101,7 @@ export class ScriptRefactorService {
101
101
  if ('parameters' in script) {
102
102
  for (let p in script.parameters) {
103
103
  if (typeof script.parameters[p] === 'string') {
104
- refactorings.push({ name: script.parameters[p], itemType: 'parameter', target: BindingTarget.event, targetName: a[0], service: this, designItem: d, type: 'script', sourceObject: script, display: 'parameters/' + p, refactor: newValue => script.parameters[p] = newValue });
104
+ refactorings.push({ name: script.parameters[p], itemType: 'parameter', target: BindingTarget.event, targetName: a[0], service: this, designItem: d, type: 'script', sourceObject: script, display: a[0].substring(1) + '/parameters/' + p, refactor: newValue => script.parameters[p] = newValue });
105
105
  }
106
106
  }
107
107
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "description": "web-component-designer addon for visualizations",
3
3
  "name": "@node-projects/web-component-designer-visualization-addons",
4
- "version": "0.1.94",
4
+ "version": "0.1.96",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "author": "jochen.kuehner@gmx.de",