@api-client/ui 0.2.2 → 0.2.3

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 (170) hide show
  1. package/package.json +7 -2
  2. package/test/env.ts +15 -0
  3. package/test/tsconfig.json +1 -7
  4. package/web-test-runner.config.js +5 -1
  5. package/build/src/visualization/elements/VizAssociationElement.d.ts +0 -4
  6. package/build/src/visualization/elements/VizAssociationElement.d.ts.map +0 -1
  7. package/build/src/visualization/elements/VizAssociationElement.js +0 -4
  8. package/build/src/visualization/elements/VizAssociationElement.js.map +0 -1
  9. package/build/src/visualization/elements/VizWorkspaceElement.d.ts +0 -110
  10. package/build/src/visualization/elements/VizWorkspaceElement.d.ts.map +0 -1
  11. package/build/src/visualization/elements/VizWorkspaceElement.js +0 -321
  12. package/build/src/visualization/elements/VizWorkspaceElement.js.map +0 -1
  13. package/build/src/visualization/elements/WorkspaceStyles.d.ts +0 -3
  14. package/build/src/visualization/elements/WorkspaceStyles.d.ts.map +0 -1
  15. package/build/src/visualization/elements/WorkspaceStyles.js +0 -168
  16. package/build/src/visualization/elements/WorkspaceStyles.js.map +0 -1
  17. package/build/src/visualization/lib/AnchorFinder.d.ts +0 -64
  18. package/build/src/visualization/lib/AnchorFinder.d.ts.map +0 -1
  19. package/build/src/visualization/lib/AnchorFinder.js +0 -107
  20. package/build/src/visualization/lib/AnchorFinder.js.map +0 -1
  21. package/build/src/visualization/lib/AnchorUtils.d.ts +0 -10
  22. package/build/src/visualization/lib/AnchorUtils.d.ts.map +0 -1
  23. package/build/src/visualization/lib/AnchorUtils.js +0 -44
  24. package/build/src/visualization/lib/AnchorUtils.js.map +0 -1
  25. package/build/src/visualization/lib/AssociationAnchors.d.ts +0 -134
  26. package/build/src/visualization/lib/AssociationAnchors.d.ts.map +0 -1
  27. package/build/src/visualization/lib/AssociationAnchors.js +0 -351
  28. package/build/src/visualization/lib/AssociationAnchors.js.map +0 -1
  29. package/build/src/visualization/lib/LabelSketch.d.ts +0 -16
  30. package/build/src/visualization/lib/LabelSketch.d.ts.map +0 -1
  31. package/build/src/visualization/lib/LabelSketch.js +0 -53
  32. package/build/src/visualization/lib/LabelSketch.js.map +0 -1
  33. package/build/src/visualization/lib/LineSketch.d.ts +0 -26
  34. package/build/src/visualization/lib/LineSketch.d.ts.map +0 -1
  35. package/build/src/visualization/lib/LineSketch.js +0 -55
  36. package/build/src/visualization/lib/LineSketch.js.map +0 -1
  37. package/build/src/visualization/lib/Point.d.ts +0 -74
  38. package/build/src/visualization/lib/Point.d.ts.map +0 -1
  39. package/build/src/visualization/lib/Point.js +0 -121
  40. package/build/src/visualization/lib/Point.js.map +0 -1
  41. package/build/src/visualization/lib/PositionUtils.d.ts +0 -65
  42. package/build/src/visualization/lib/PositionUtils.d.ts.map +0 -1
  43. package/build/src/visualization/lib/PositionUtils.js +0 -205
  44. package/build/src/visualization/lib/PositionUtils.js.map +0 -1
  45. package/build/src/visualization/lib/SelectionManager.d.ts +0 -183
  46. package/build/src/visualization/lib/SelectionManager.d.ts.map +0 -1
  47. package/build/src/visualization/lib/SelectionManager.js +0 -481
  48. package/build/src/visualization/lib/SelectionManager.js.map +0 -1
  49. package/build/src/visualization/lib/ShapeArtist.d.ts +0 -45
  50. package/build/src/visualization/lib/ShapeArtist.d.ts.map +0 -1
  51. package/build/src/visualization/lib/ShapeArtist.js +0 -209
  52. package/build/src/visualization/lib/ShapeArtist.js.map +0 -1
  53. package/build/src/visualization/lib/SvgMarkers.d.ts +0 -14
  54. package/build/src/visualization/lib/SvgMarkers.d.ts.map +0 -1
  55. package/build/src/visualization/lib/SvgMarkers.js +0 -77
  56. package/build/src/visualization/lib/SvgMarkers.js.map +0 -1
  57. package/build/src/visualization/lib/TipSketch.d.ts +0 -26
  58. package/build/src/visualization/lib/TipSketch.d.ts.map +0 -1
  59. package/build/src/visualization/lib/TipSketch.js +0 -77
  60. package/build/src/visualization/lib/TipSketch.js.map +0 -1
  61. package/build/src/visualization/lib/TouchSupport.d.ts +0 -14
  62. package/build/src/visualization/lib/TouchSupport.d.ts.map +0 -1
  63. package/build/src/visualization/lib/TouchSupport.js +0 -55
  64. package/build/src/visualization/lib/TouchSupport.js.map +0 -1
  65. package/build/src/visualization/lib/Utils.d.ts +0 -25
  66. package/build/src/visualization/lib/Utils.d.ts.map +0 -1
  67. package/build/src/visualization/lib/Utils.js +0 -59
  68. package/build/src/visualization/lib/Utils.js.map +0 -1
  69. package/build/src/visualization/lib/VisualizationTypes.d.ts +0 -216
  70. package/build/src/visualization/lib/VisualizationTypes.d.ts.map +0 -1
  71. package/build/src/visualization/lib/VisualizationTypes.js +0 -3
  72. package/build/src/visualization/lib/VisualizationTypes.js.map +0 -1
  73. package/build/src/visualization/lib/WorkspaceAlignment.d.ts +0 -51
  74. package/build/src/visualization/lib/WorkspaceAlignment.d.ts.map +0 -1
  75. package/build/src/visualization/lib/WorkspaceAlignment.js +0 -243
  76. package/build/src/visualization/lib/WorkspaceAlignment.js.map +0 -1
  77. package/build/src/visualization/lib/WorkspaceDebugging.d.ts +0 -104
  78. package/build/src/visualization/lib/WorkspaceDebugging.d.ts.map +0 -1
  79. package/build/src/visualization/lib/WorkspaceDebugging.js +0 -286
  80. package/build/src/visualization/lib/WorkspaceDebugging.js.map +0 -1
  81. package/build/src/visualization/lib/WorkspaceEdges.d.ts +0 -293
  82. package/build/src/visualization/lib/WorkspaceEdges.d.ts.map +0 -1
  83. package/build/src/visualization/lib/WorkspaceEdges.js +0 -1073
  84. package/build/src/visualization/lib/WorkspaceEdges.js.map +0 -1
  85. package/build/src/visualization/lib/WorkspaceGestures.d.ts +0 -119
  86. package/build/src/visualization/lib/WorkspaceGestures.d.ts.map +0 -1
  87. package/build/src/visualization/lib/WorkspaceGestures.js +0 -376
  88. package/build/src/visualization/lib/WorkspaceGestures.js.map +0 -1
  89. package/build/src/visualization/lib/WorkspaceSizing.d.ts +0 -66
  90. package/build/src/visualization/lib/WorkspaceSizing.d.ts.map +0 -1
  91. package/build/src/visualization/lib/WorkspaceSizing.js +0 -168
  92. package/build/src/visualization/lib/WorkspaceSizing.js.map +0 -1
  93. package/build/src/visualization/lib/lines/RectilinearLine.d.ts +0 -114
  94. package/build/src/visualization/lib/lines/RectilinearLine.d.ts.map +0 -1
  95. package/build/src/visualization/lib/lines/RectilinearLine.js +0 -605
  96. package/build/src/visualization/lib/lines/RectilinearLine.js.map +0 -1
  97. package/build/src/visualization/lib/tips/RectilinearTip.d.ts +0 -26
  98. package/build/src/visualization/lib/tips/RectilinearTip.d.ts.map +0 -1
  99. package/build/src/visualization/lib/tips/RectilinearTip.js +0 -149
  100. package/build/src/visualization/lib/tips/RectilinearTip.js.map +0 -1
  101. package/build/src/visualization/lib/tips/TipArtist.d.ts +0 -22
  102. package/build/src/visualization/lib/tips/TipArtist.d.ts.map +0 -1
  103. package/build/src/visualization/lib/tips/TipArtist.js +0 -31
  104. package/build/src/visualization/lib/tips/TipArtist.js.map +0 -1
  105. package/build/src/visualization/lib/types.d.ts +0 -164
  106. package/build/src/visualization/lib/types.d.ts.map +0 -1
  107. package/build/src/visualization/lib/types.js +0 -2
  108. package/build/src/visualization/lib/types.js.map +0 -1
  109. package/build/src/visualization/plugin/dnd/DragAndDropPlugin.d.ts +0 -126
  110. package/build/src/visualization/plugin/dnd/DragAndDropPlugin.d.ts.map +0 -1
  111. package/build/src/visualization/plugin/dnd/DragAndDropPlugin.js +0 -260
  112. package/build/src/visualization/plugin/dnd/DragAndDropPlugin.js.map +0 -1
  113. package/build/src/visualization/plugin/group-selection/GroupSelection.d.ts +0 -93
  114. package/build/src/visualization/plugin/group-selection/GroupSelection.d.ts.map +0 -1
  115. package/build/src/visualization/plugin/group-selection/GroupSelection.js +0 -250
  116. package/build/src/visualization/plugin/group-selection/GroupSelection.js.map +0 -1
  117. package/build/src/visualization/plugin/positioning/DataModelLayout.d.ts +0 -10
  118. package/build/src/visualization/plugin/positioning/DataModelLayout.d.ts.map +0 -1
  119. package/build/src/visualization/plugin/positioning/DataModelLayout.js +0 -105
  120. package/build/src/visualization/plugin/positioning/DataModelLayout.js.map +0 -1
  121. package/build/src/visualization/plugin/positioning/WorkspaceLayout.d.ts +0 -93
  122. package/build/src/visualization/plugin/positioning/WorkspaceLayout.d.ts.map +0 -1
  123. package/build/src/visualization/plugin/positioning/WorkspaceLayout.js +0 -96
  124. package/build/src/visualization/plugin/positioning/WorkspaceLayout.js.map +0 -1
  125. package/build/src/visualization/viz-association.d.ts +0 -7
  126. package/build/src/visualization/viz-association.d.ts.map +0 -1
  127. package/build/src/visualization/viz-association.js +0 -3
  128. package/build/src/visualization/viz-association.js.map +0 -1
  129. package/build/src/visualization/viz-workspace.d.ts +0 -7
  130. package/build/src/visualization/viz-workspace.d.ts.map +0 -1
  131. package/build/src/visualization/viz-workspace.js +0 -3
  132. package/build/src/visualization/viz-workspace.js.map +0 -1
  133. package/src/visualization/elements/VizAssociationElement.ts +0 -3
  134. package/src/visualization/elements/VizWorkspaceElement.ts +0 -302
  135. package/src/visualization/elements/WorkspaceStyles.ts +0 -168
  136. package/src/visualization/lib/AnchorFinder.ts +0 -112
  137. package/src/visualization/lib/AnchorUtils.ts +0 -53
  138. package/src/visualization/lib/AssociationAnchors.ts +0 -418
  139. package/src/visualization/lib/LabelSketch.ts +0 -67
  140. package/src/visualization/lib/LineSketch.ts +0 -62
  141. package/src/visualization/lib/Point.ts +0 -134
  142. package/src/visualization/lib/PositionUtils.ts +0 -218
  143. package/src/visualization/lib/SelectionManager.ts +0 -513
  144. package/src/visualization/lib/ShapeArtist.ts +0 -222
  145. package/src/visualization/lib/SvgMarkers.ts +0 -80
  146. package/src/visualization/lib/TipSketch.ts +0 -91
  147. package/src/visualization/lib/TouchSupport.ts +0 -72
  148. package/src/visualization/lib/Utils.ts +0 -63
  149. package/src/visualization/lib/VisualizationTypes.ts +0 -232
  150. package/src/visualization/lib/WorkspaceAlignment.ts +0 -261
  151. package/src/visualization/lib/WorkspaceDebugging.ts +0 -313
  152. package/src/visualization/lib/WorkspaceEdges.ts +0 -1153
  153. package/src/visualization/lib/WorkspaceGestures.ts +0 -400
  154. package/src/visualization/lib/WorkspaceSizing.ts +0 -181
  155. package/src/visualization/lib/lines/RectilinearLine.ts +0 -589
  156. package/src/visualization/lib/tips/RectilinearTip.ts +0 -156
  157. package/src/visualization/lib/tips/TipArtist.ts +0 -34
  158. package/src/visualization/lib/types.ts +0 -173
  159. package/src/visualization/plugin/dnd/DragAndDropPlugin.ts +0 -294
  160. package/src/visualization/plugin/group-selection/GroupSelection.ts +0 -271
  161. package/src/visualization/plugin/positioning/DataModelLayout.ts +0 -114
  162. package/src/visualization/plugin/positioning/WorkspaceLayout.ts +0 -149
  163. package/src/visualization/viz-association.ts +0 -9
  164. package/src/visualization/viz-workspace.ts +0 -9
  165. package/test/env.d.ts +0 -9
  166. package/test/env.js +0 -7
  167. package/test/visualization/lib/AnchorFinder.test.ts +0 -313
  168. package/test/visualization/lib/AnchorUtils.test.ts +0 -178
  169. package/test/visualization/lib/PositionUtils.test.ts +0 -406
  170. package/test/visualization/lib/test-styles.css +0 -80
@@ -1,481 +0,0 @@
1
- export const clickHandler = Symbol('clickHandler');
2
- export const observeItems = Symbol('observeItems');
3
- export const mutationHandler = Symbol('mutationHandler');
4
- export const mutationObserver = Symbol('mutationObserver');
5
- export const processAddedNodes = Symbol('processAddedNodes');
6
- export const processRemovedNodes = Symbol('processRemovedNodes');
7
- export const processAttributeChanged = Symbol('processAttributeChanged');
8
- export const propagateSelection = Symbol('propagateSelection');
9
- export const selectAssociations = Symbol('selectAssociation');
10
- export const selectReverseAssociations = Symbol('selectReverseAssociations');
11
- export const propagateDeselection = Symbol('propagateDeselection');
12
- export const deselectAssociations = Symbol('deselectAssociations');
13
- export const deselectReverseAssociations = Symbol('deselectReverseAssociations');
14
- export const notifyChanged = Symbol('notifyChanged');
15
- export const selectedItemsValue = Symbol('selectedItemsValue');
16
- export const selectedIdsValue = Symbol('selectedIdsValue');
17
- /**
18
- * A class that takes care of selection in the visualization workspace.
19
- */
20
- export class SelectionManager {
21
- target;
22
- /**
23
- * The list of currently selected elements
24
- */
25
- [selectedItemsValue] = new Set();
26
- /**
27
- * The list of currently selected domain ids
28
- */
29
- [selectedIdsValue] = [];
30
- [mutationObserver];
31
- /**
32
- * @returns A set of currently selected items.
33
- */
34
- get selectedItems() {
35
- return this[selectedItemsValue];
36
- }
37
- /**
38
- * @returns A list of currently selected domain ids.
39
- */
40
- get selected() {
41
- return this[selectedIdsValue];
42
- }
43
- /**
44
- * @returns A list of all selectable items
45
- */
46
- get selectable() {
47
- const nodes = this.target.querySelectorAll('[data-selectable]');
48
- return Array.from(nodes);
49
- }
50
- constructor(target) {
51
- this.target = target;
52
- this[clickHandler] = this[clickHandler].bind(this);
53
- this[mutationHandler] = this[mutationHandler].bind(this);
54
- }
55
- /**
56
- * Initializes the library. Should be called when the workspace is ready to render content.
57
- */
58
- connect() {
59
- this.target.addEventListener('click', this[clickHandler]);
60
- this[mutationObserver] = this[observeItems]();
61
- }
62
- /**
63
- * Cleans up and removes listeners
64
- */
65
- disconnect() {
66
- const mo = this[mutationObserver];
67
- if (mo) {
68
- mo.disconnect();
69
- this[mutationObserver] = undefined;
70
- }
71
- this.target.removeEventListener('click', this[clickHandler]);
72
- }
73
- /**
74
- * Checks if given element is marked as selectable target
75
- * @param selectable The element to test for `selectable` or `data-selectable` attribute
76
- * @returns True if the element can be selected
77
- */
78
- isSelectable(selectable) {
79
- return selectable.hasAttribute('data-selectable');
80
- }
81
- /**
82
- * Checks if given element is marked as selected
83
- * @param selectable The element to test for `selected` or `data-selected` attribute
84
- * @returns True if the element is marked as selected
85
- */
86
- isSelected(selectable) {
87
- return selectable.hasAttribute('data-selected');
88
- }
89
- /**
90
- * Marks an element as selected
91
- * @param selectable The element to add the selected mark to.
92
- */
93
- setSelected(selectable) {
94
- selectable.setAttribute('data-selected', '');
95
- }
96
- /**
97
- * Marks an element as not selected
98
- * @param selectable The element to remove the selected mark from.
99
- */
100
- setUnselected(selectable) {
101
- selectable.removeAttribute('data-selected');
102
- }
103
- /**
104
- * Deselects all currently selected items.
105
- */
106
- selectAll() {
107
- this.selectable.forEach((node) => {
108
- if (!this.isSelected(node)) {
109
- this.setSelected(node);
110
- }
111
- });
112
- }
113
- /**
114
- * Deselects all currently selected items.
115
- */
116
- deselectAll() {
117
- this.selectable.forEach((node) => {
118
- if (this.isSelected(node)) {
119
- this.setUnselected(node);
120
- }
121
- });
122
- const ids = [...this[selectedIdsValue]];
123
- ids.forEach((info) => {
124
- const elm = this.getDomainTarget(info.id);
125
- if (!elm) {
126
- const index = this[selectedIdsValue].indexOf(info);
127
- this[selectedIdsValue].splice(index, 1);
128
- }
129
- else if (this.isSelected(elm)) {
130
- this.setUnselected(elm);
131
- }
132
- });
133
- }
134
- /**
135
- * Selects objects that are selectable by their `key`.
136
- *
137
- * The `addToSelection` argument is equivalent of calling `deselectAll()` and then `select(...)`.
138
- *
139
- * @param keys The list of domain ids of objects to select.
140
- * @param addToSelection If true it adds to the current selection rather than replacing it.
141
- */
142
- select(keys, addToSelection = false) {
143
- if (!addToSelection) {
144
- this.deselectAll();
145
- }
146
- keys.forEach((id) => {
147
- const node = this.getSelectableDomainTarget(id);
148
- if (!node) {
149
- return;
150
- }
151
- if (this.isSelectable(node) && !this.isSelected(node)) {
152
- this.setSelected(node);
153
- }
154
- });
155
- }
156
- /**
157
- * Removes objects from selection.
158
- *
159
- * @param keys The list of domain ids of objects to deselect.
160
- */
161
- deselect(keys) {
162
- keys.forEach((id) => {
163
- const node = this.getSelectableDomainTarget(id);
164
- if (!node) {
165
- return;
166
- }
167
- if (this.isSelectable(node) && this.isSelected(node)) {
168
- this.setUnselected(node);
169
- }
170
- });
171
- }
172
- /**
173
- * Synchronizes the selection state with the view
174
- */
175
- syncView() {
176
- const nodes = this.target.querySelectorAll(`[data-selectable][data-selected]`);
177
- if (this[selectedItemsValue].size !== nodes.length) {
178
- // eslint-disable-next-line no-console
179
- console.log('invalid selection', this[selectedItemsValue], nodes);
180
- }
181
- }
182
- /**
183
- * Reads the attribute value to get the `key` property.
184
- * @param selectable
185
- * @returns The domain id of the object or `null` when not found
186
- */
187
- readKey(selectable) {
188
- if (selectable.hasAttribute('data-key')) {
189
- return selectable.getAttribute('data-key');
190
- }
191
- return null;
192
- }
193
- /**
194
- * Finds a workspace element that has the domain id.
195
- * @param id Target domain id
196
- */
197
- getDomainTarget(id) {
198
- return this.target.querySelector(`[data-key="${id}"]`);
199
- }
200
- /**
201
- * Finds a workspace element that has the domain id and is selectable.
202
- * @param id Target domain id
203
- */
204
- getSelectableDomainTarget(id) {
205
- const node = this.target.querySelector(`[data-key="${id}"][data-selectable]`);
206
- return node;
207
- }
208
- // PRIVATE APIS
209
- [clickHandler](e) {
210
- const path = e.composedPath();
211
- const svg = this.target.associationSvg;
212
- if (path[0] !== svg && path.includes(svg)) {
213
- // Selection of the edges is managed by the workspace edges manager.
214
- return;
215
- }
216
- let selectableTarget;
217
- while (path.length > 0) {
218
- const tmp = path.shift();
219
- if (tmp.nodeType !== Node.ELEMENT_NODE) {
220
- continue;
221
- }
222
- const typed = tmp;
223
- if (this.isSelectable(typed)) {
224
- selectableTarget = typed;
225
- break;
226
- }
227
- }
228
- if (!selectableTarget) {
229
- this.deselectAll();
230
- return;
231
- }
232
- const isSelected = this.isSelected(selectableTarget);
233
- // note: if toggle mode is required then this should toggle the attribute
234
- if (isSelected) {
235
- if (e.shiftKey) {
236
- this.setUnselected(selectableTarget);
237
- }
238
- return;
239
- }
240
- if (!e.shiftKey) {
241
- this.deselectAll();
242
- }
243
- this.setSelected(selectableTarget);
244
- }
245
- /**
246
- * Observe items change in the element's light DOM
247
- * @returns The observer handler
248
- */
249
- [observeItems]() {
250
- const config = { attributes: true, childList: true, subtree: true };
251
- const observer = new MutationObserver(this[mutationHandler]);
252
- observer.observe(this.target, config);
253
- return observer;
254
- }
255
- /**
256
- * Processes mutations in the workspace and manages selection state.
257
- * @param mutationsList List of mutations.
258
- */
259
- [mutationHandler](mutationsList) {
260
- for (const mutation of mutationsList) {
261
- if (mutation.type === 'childList') {
262
- this[processAddedNodes](mutation.addedNodes);
263
- this[processRemovedNodes](mutation.removedNodes);
264
- }
265
- else if (mutation.type === 'attributes') {
266
- const { attributeName, target } = mutation;
267
- this[processAttributeChanged](target, attributeName);
268
- }
269
- }
270
- requestAnimationFrame(() => this.syncView());
271
- }
272
- /**
273
- * Processes added to the canvas elements.
274
- * @param nodes The list of added nodes
275
- */
276
- [processAddedNodes](nodes) {
277
- nodes.forEach((node) => {
278
- if (node.nodeType !== Node.ELEMENT_NODE) {
279
- return;
280
- }
281
- const typed = node;
282
- const children = typed.querySelectorAll('*');
283
- this[processAddedNodes](children);
284
- if (!this.isSelectable(typed)) {
285
- return;
286
- }
287
- if (this.isSelected(typed)) {
288
- this[propagateSelection](typed);
289
- }
290
- });
291
- }
292
- /**
293
- * Processes removed from the canvas elements.
294
- * @param nodes The list of removed nodes
295
- */
296
- [processRemovedNodes](nodes) {
297
- nodes.forEach((node) => {
298
- if (node.nodeType !== Node.ELEMENT_NODE) {
299
- return;
300
- }
301
- const typed = node;
302
- const children = typed.querySelectorAll('*');
303
- this[processRemovedNodes](children);
304
- // An item might not be selectable but it may have a secondary selection
305
- // through association.
306
- // if (!this.isSelectable(typed)) {
307
- // return;
308
- // }
309
- if (this.isSelected(typed)) {
310
- this[propagateDeselection](typed);
311
- }
312
- });
313
- }
314
- /**
315
- * Processes changed attribute on any element in the canvas
316
- * @param node Changed element
317
- * @param prop Changed property
318
- */
319
- [processAttributeChanged](node, prop) {
320
- if (!['data-selected'].includes(prop)) {
321
- return;
322
- }
323
- if (node.hasAttribute(prop)) {
324
- this[propagateSelection](node);
325
- }
326
- else {
327
- this[propagateDeselection](node);
328
- }
329
- }
330
- /**
331
- * Sets selection to the elements that are related to the `selectable` element.
332
- *
333
- * A related element is an element that is an association target to the `selectable`
334
- * ot the `selectable` has `parent` attribute.
335
- *
336
- * The related are not added to the `selectedItems` set and does not have `selected` attribute.
337
- * They are marked with `second-selected` attribute.
338
- */
339
- [propagateSelection](selectable) {
340
- if (this.selectedItems.has(selectable)) {
341
- return;
342
- }
343
- this.selectedItems.add(selectable);
344
- const id = this.readKey(selectable);
345
- if (!id) {
346
- this[notifyChanged]();
347
- return;
348
- }
349
- const selected = this[selectedIdsValue];
350
- const index = selected.findIndex((item) => item.id === id);
351
- if (index === -1) {
352
- selected.push({
353
- id,
354
- name: selectable.localName,
355
- node: selectable,
356
- });
357
- }
358
- this[selectAssociations](selectable);
359
- this[selectReverseAssociations](selectable);
360
- this[notifyChanged]();
361
- }
362
- /**
363
- * Marks `viz-association` and referenced targets of the `selectable` as a secondary selection.
364
- */
365
- [selectAssociations](selectable) {
366
- const nodes = selectable.querySelectorAll('viz-association');
367
- if (!nodes.length) {
368
- return;
369
- }
370
- Array.from(nodes).forEach((node) => {
371
- const target = node.getAttribute('data-target');
372
- if (!target) {
373
- return;
374
- }
375
- node.setAttribute('secondary-selected', '');
376
- const targetElement = this.getDomainTarget(target);
377
- if (targetElement) {
378
- targetElement.setAttribute('secondary-selected', '');
379
- }
380
- });
381
- }
382
- /**
383
- * Similar to `[selectAssociations]()` but it selects associations where
384
- * the `selectable` is the target.
385
- */
386
- [selectReverseAssociations](selectable) {
387
- const id = this.readKey(selectable);
388
- if (!id) {
389
- return;
390
- }
391
- const nodes = this.target.querySelectorAll(`viz-association[data-target="${id}"]`);
392
- if (!nodes.length) {
393
- return;
394
- }
395
- Array.from(nodes).forEach((node) => {
396
- const target = node.getAttribute('data-target');
397
- if (!target) {
398
- return;
399
- }
400
- node.setAttribute('secondary-selected', '');
401
- const targetElement = node.parentElement;
402
- if (targetElement) {
403
- targetElement.setAttribute('secondary-selected', '');
404
- }
405
- });
406
- }
407
- /**
408
- * Removes secondary selection from the elements that are related to the `selectable` element.
409
- *
410
- * A related element is an element that is an association target to the `selectable`
411
- * ot the `selectable` has `parent` attribute.
412
- */
413
- [propagateDeselection](selectable) {
414
- if (!this.selectedItems.has(selectable)) {
415
- return;
416
- }
417
- this.selectedItems.delete(selectable);
418
- const id = this.readKey(selectable);
419
- if (!id) {
420
- this[notifyChanged]();
421
- return;
422
- }
423
- const selected = this[selectedIdsValue];
424
- const index = selected.findIndex((item) => item.id === id);
425
- if (index !== -1) {
426
- this[selectedIdsValue].splice(index, 1);
427
- }
428
- this[deselectAssociations](selectable);
429
- this[deselectReverseAssociations](selectable);
430
- this[notifyChanged]();
431
- }
432
- /**
433
- * Removes secondary selection mark from `viz-association`
434
- */
435
- [deselectAssociations](selectable) {
436
- const nodes = selectable.querySelectorAll('viz-association');
437
- if (!nodes.length) {
438
- return;
439
- }
440
- Array.from(nodes).forEach((node) => {
441
- const target = node.getAttribute('data-target');
442
- if (!target) {
443
- return;
444
- }
445
- node.removeAttribute('secondary-selected');
446
- const targetElement = this.getDomainTarget(target);
447
- if (targetElement) {
448
- targetElement.removeAttribute('secondary-selected');
449
- }
450
- });
451
- }
452
- /**
453
- * Similar to `[selectAssociation]()` but it selects associations where
454
- * the `selectable` is the target.
455
- */
456
- [deselectReverseAssociations](selectable) {
457
- const id = this.readKey(selectable);
458
- if (!id) {
459
- return;
460
- }
461
- const nodes = this.target.querySelectorAll(`viz-association[data-target="${id}"]`);
462
- if (!nodes.length) {
463
- return;
464
- }
465
- Array.from(nodes).forEach((node) => {
466
- const target = node.getAttribute('data-target');
467
- if (!target) {
468
- return;
469
- }
470
- node.removeAttribute('secondary-selected');
471
- const targetElement = node.parentElement;
472
- if (targetElement) {
473
- targetElement.removeAttribute('secondary-selected');
474
- }
475
- });
476
- }
477
- [notifyChanged]() {
478
- this.target.dispatchEvent(new Event('selectedchange'));
479
- }
480
- }
481
- //# sourceMappingURL=SelectionManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectionManager.js","sourceRoot":"","sources":["../../../../src/visualization/lib/SelectionManager.ts"],"names":[],"mappings":"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","sourcesContent":["import VizWorkspaceElement from '../elements/VizWorkspaceElement.js'\nimport { ISelectedDomain } from './types.js'\n\nexport const clickHandler = Symbol('clickHandler')\nexport const observeItems = Symbol('observeItems')\nexport const mutationHandler = Symbol('mutationHandler')\nexport const mutationObserver = Symbol('mutationObserver')\nexport const processAddedNodes = Symbol('processAddedNodes')\nexport const processRemovedNodes = Symbol('processRemovedNodes')\nexport const processAttributeChanged = Symbol('processAttributeChanged')\nexport const propagateSelection = Symbol('propagateSelection')\nexport const selectAssociations = Symbol('selectAssociation')\nexport const selectReverseAssociations = Symbol('selectReverseAssociations')\nexport const propagateDeselection = Symbol('propagateDeselection')\nexport const deselectAssociations = Symbol('deselectAssociations')\nexport const deselectReverseAssociations = Symbol('deselectReverseAssociations')\nexport const notifyChanged = Symbol('notifyChanged')\nexport const selectedItemsValue = Symbol('selectedItemsValue')\nexport const selectedIdsValue = Symbol('selectedIdsValue')\n\n/**\n * A class that takes care of selection in the visualization workspace.\n */\nexport class SelectionManager {\n /**\n * The list of currently selected elements\n */\n [selectedItemsValue] = new Set<Element>();\n\n /**\n * The list of currently selected domain ids\n */\n [selectedIdsValue]: ISelectedDomain[] = [];\n\n [mutationObserver]?: MutationObserver\n\n /**\n * @returns A set of currently selected items.\n */\n get selectedItems(): Set<Element> {\n return this[selectedItemsValue]\n }\n\n /**\n * @returns A list of currently selected domain ids.\n */\n get selected(): ISelectedDomain[] {\n return this[selectedIdsValue]\n }\n\n /**\n * @returns A list of all selectable items\n */\n get selectable(): Element[] {\n const nodes = this.target.querySelectorAll('[data-selectable]')\n return Array.from(nodes) as Element[]\n }\n\n constructor(public target: VizWorkspaceElement) {\n this[clickHandler] = this[clickHandler].bind(this)\n this[mutationHandler] = this[mutationHandler].bind(this)\n }\n\n /**\n * Initializes the library. Should be called when the workspace is ready to render content.\n */\n connect(): void {\n this.target.addEventListener('click', this[clickHandler] as EventListener)\n this[mutationObserver] = this[observeItems]()\n }\n\n /**\n * Cleans up and removes listeners\n */\n disconnect(): void {\n const mo = this[mutationObserver]\n if (mo) {\n mo.disconnect()\n this[mutationObserver] = undefined\n }\n this.target.removeEventListener('click', this[clickHandler] as EventListener)\n }\n\n /**\n * Checks if given element is marked as selectable target\n * @param selectable The element to test for `selectable` or `data-selectable` attribute\n * @returns True if the element can be selected\n */\n isSelectable(selectable: Element): boolean {\n return selectable.hasAttribute('data-selectable')\n }\n\n /**\n * Checks if given element is marked as selected\n * @param selectable The element to test for `selected` or `data-selected` attribute\n * @returns True if the element is marked as selected\n */\n isSelected(selectable: Element): boolean {\n return selectable.hasAttribute('data-selected')\n }\n\n /**\n * Marks an element as selected\n * @param selectable The element to add the selected mark to.\n */\n setSelected(selectable: Element): void {\n selectable.setAttribute('data-selected', '')\n }\n\n /**\n * Marks an element as not selected\n * @param selectable The element to remove the selected mark from.\n */\n setUnselected(selectable: Element): void {\n selectable.removeAttribute('data-selected')\n }\n\n /**\n * Deselects all currently selected items.\n */\n selectAll(): void {\n this.selectable.forEach((node) => {\n if (!this.isSelected(node)) {\n this.setSelected(node)\n }\n })\n }\n\n /**\n * Deselects all currently selected items.\n */\n deselectAll(): void {\n this.selectable.forEach((node) => {\n if (this.isSelected(node)) {\n this.setUnselected(node)\n }\n })\n const ids = [...this[selectedIdsValue]]\n ids.forEach((info) => {\n const elm = this.getDomainTarget(info.id)\n if (!elm) {\n const index = this[selectedIdsValue].indexOf(info)\n this[selectedIdsValue].splice(index, 1)\n } else if (this.isSelected(elm)) {\n this.setUnselected(elm)\n }\n })\n }\n\n /**\n * Selects objects that are selectable by their `key`.\n *\n * The `addToSelection` argument is equivalent of calling `deselectAll()` and then `select(...)`.\n *\n * @param keys The list of domain ids of objects to select.\n * @param addToSelection If true it adds to the current selection rather than replacing it.\n */\n select(keys: string[], addToSelection = false): void {\n if (!addToSelection) {\n this.deselectAll()\n }\n keys.forEach((id) => {\n const node = this.getSelectableDomainTarget(id)\n if (!node) {\n return\n }\n if (this.isSelectable(node) && !this.isSelected(node)) {\n this.setSelected(node)\n }\n })\n }\n\n /**\n * Removes objects from selection.\n *\n * @param keys The list of domain ids of objects to deselect.\n */\n deselect(keys: string[]): void {\n keys.forEach((id) => {\n const node = this.getSelectableDomainTarget(id)\n if (!node) {\n return\n }\n if (this.isSelectable(node) && this.isSelected(node)) {\n this.setUnselected(node)\n }\n })\n }\n\n /**\n * Synchronizes the selection state with the view\n */\n syncView(): void {\n const nodes = this.target.querySelectorAll(`[data-selectable][data-selected]`)\n if (this[selectedItemsValue].size !== nodes.length) {\n // eslint-disable-next-line no-console\n console.log('invalid selection', this[selectedItemsValue], nodes)\n }\n }\n\n /**\n * Reads the attribute value to get the `key` property.\n * @param selectable\n * @returns The domain id of the object or `null` when not found\n */\n readKey(selectable: Element): string | null {\n if (selectable.hasAttribute('data-key')) {\n return selectable.getAttribute('data-key')\n }\n return null\n }\n\n /**\n * Finds a workspace element that has the domain id.\n * @param id Target domain id\n */\n getDomainTarget(id: string): Element | null {\n return this.target.querySelector(`[data-key=\"${id}\"]`)\n }\n\n /**\n * Finds a workspace element that has the domain id and is selectable.\n * @param id Target domain id\n */\n getSelectableDomainTarget(id: string): Element | null {\n const node = this.target.querySelector(`[data-key=\"${id}\"][data-selectable]`)\n return node\n }\n\n // PRIVATE APIS\n\n [clickHandler](e: PointerEvent): void {\n const path = e.composedPath()\n const svg = this.target.associationSvg\n if (path[0] !== svg && path.includes(svg)) {\n // Selection of the edges is managed by the workspace edges manager.\n return\n }\n let selectableTarget\n while (path.length > 0) {\n const tmp = path.shift() as Node\n if (tmp.nodeType !== Node.ELEMENT_NODE) {\n continue\n }\n const typed = tmp as Element\n if (this.isSelectable(typed)) {\n selectableTarget = typed\n break\n }\n }\n if (!selectableTarget) {\n this.deselectAll()\n return\n }\n const isSelected = this.isSelected(selectableTarget)\n // note: if toggle mode is required then this should toggle the attribute\n if (isSelected) {\n if (e.shiftKey) {\n this.setUnselected(selectableTarget)\n }\n return\n }\n if (!e.shiftKey) {\n this.deselectAll()\n }\n this.setSelected(selectableTarget)\n }\n\n /**\n * Observe items change in the element's light DOM\n * @returns The observer handler\n */\n [observeItems](): MutationObserver {\n const config = { attributes: true, childList: true, subtree: true }\n const observer = new MutationObserver(this[mutationHandler])\n observer.observe(this.target, config)\n return observer\n }\n\n /**\n * Processes mutations in the workspace and manages selection state.\n * @param mutationsList List of mutations.\n */\n [mutationHandler](mutationsList: MutationRecord[]): void {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList') {\n this[processAddedNodes](mutation.addedNodes)\n this[processRemovedNodes](mutation.removedNodes)\n } else if (mutation.type === 'attributes') {\n const { attributeName, target } = mutation\n this[processAttributeChanged](target as Element, attributeName as string)\n }\n }\n requestAnimationFrame(() => this.syncView())\n }\n\n /**\n * Processes added to the canvas elements.\n * @param nodes The list of added nodes\n */\n [processAddedNodes](nodes: NodeList): void {\n nodes.forEach((node) => {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return\n }\n const typed = node as Element\n const children = typed.querySelectorAll('*')\n this[processAddedNodes](children)\n if (!this.isSelectable(typed)) {\n return\n }\n if (this.isSelected(typed)) {\n this[propagateSelection](typed)\n }\n })\n }\n\n /**\n * Processes removed from the canvas elements.\n * @param nodes The list of removed nodes\n */\n [processRemovedNodes](nodes: NodeList): void {\n nodes.forEach((node) => {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return\n }\n const typed = node as Element\n const children = typed.querySelectorAll('*')\n this[processRemovedNodes](children)\n // An item might not be selectable but it may have a secondary selection\n // through association.\n // if (!this.isSelectable(typed)) {\n // return;\n // }\n if (this.isSelected(typed)) {\n this[propagateDeselection](typed)\n }\n })\n }\n\n /**\n * Processes changed attribute on any element in the canvas\n * @param node Changed element\n * @param prop Changed property\n */\n [processAttributeChanged](node: Element, prop: string): void {\n if (!['data-selected'].includes(prop)) {\n return\n }\n if (node.hasAttribute(prop)) {\n this[propagateSelection](node)\n } else {\n this[propagateDeselection](node)\n }\n }\n\n /**\n * Sets selection to the elements that are related to the `selectable` element.\n *\n * A related element is an element that is an association target to the `selectable`\n * ot the `selectable` has `parent` attribute.\n *\n * The related are not added to the `selectedItems` set and does not have `selected` attribute.\n * They are marked with `second-selected` attribute.\n */\n [propagateSelection](selectable: Element): void {\n if (this.selectedItems.has(selectable)) {\n return\n }\n this.selectedItems.add(selectable)\n const id = this.readKey(selectable)\n if (!id) {\n this[notifyChanged]()\n return\n }\n const selected = this[selectedIdsValue]\n const index = selected.findIndex((item) => item.id === id)\n if (index === -1) {\n selected.push({\n id,\n name: selectable.localName,\n node: selectable,\n })\n }\n this[selectAssociations](selectable)\n this[selectReverseAssociations](selectable)\n this[notifyChanged]()\n }\n\n /**\n * Marks `viz-association` and referenced targets of the `selectable` as a secondary selection.\n */\n [selectAssociations](selectable: Element): void {\n const nodes = selectable.querySelectorAll('viz-association')\n if (!nodes.length) {\n return\n }\n Array.from(nodes).forEach((node) => {\n const target = node.getAttribute('data-target')\n if (!target) {\n return\n }\n node.setAttribute('secondary-selected', '')\n const targetElement = this.getDomainTarget(target)\n if (targetElement) {\n targetElement.setAttribute('secondary-selected', '')\n }\n })\n }\n\n /**\n * Similar to `[selectAssociations]()` but it selects associations where\n * the `selectable` is the target.\n */\n [selectReverseAssociations](selectable: Element): void {\n const id = this.readKey(selectable)\n if (!id) {\n return\n }\n const nodes = this.target.querySelectorAll(`viz-association[data-target=\"${id}\"]`)\n if (!nodes.length) {\n return\n }\n Array.from(nodes).forEach((node) => {\n const target = node.getAttribute('data-target')\n if (!target) {\n return\n }\n node.setAttribute('secondary-selected', '')\n const targetElement = node.parentElement\n if (targetElement) {\n targetElement.setAttribute('secondary-selected', '')\n }\n })\n }\n\n /**\n * Removes secondary selection from the elements that are related to the `selectable` element.\n *\n * A related element is an element that is an association target to the `selectable`\n * ot the `selectable` has `parent` attribute.\n */\n [propagateDeselection](selectable: Element): void {\n if (!this.selectedItems.has(selectable)) {\n return\n }\n this.selectedItems.delete(selectable)\n const id = this.readKey(selectable)\n if (!id) {\n this[notifyChanged]()\n return\n }\n const selected = this[selectedIdsValue]\n const index = selected.findIndex((item) => item.id === id)\n if (index !== -1) {\n this[selectedIdsValue].splice(index, 1)\n }\n this[deselectAssociations](selectable)\n this[deselectReverseAssociations](selectable)\n this[notifyChanged]()\n }\n\n /**\n * Removes secondary selection mark from `viz-association`\n */\n [deselectAssociations](selectable: Element): void {\n const nodes = selectable.querySelectorAll('viz-association')\n if (!nodes.length) {\n return\n }\n Array.from(nodes).forEach((node) => {\n const target = node.getAttribute('data-target')\n if (!target) {\n return\n }\n node.removeAttribute('secondary-selected')\n const targetElement = this.getDomainTarget(target)\n if (targetElement) {\n targetElement.removeAttribute('secondary-selected')\n }\n })\n }\n\n /**\n * Similar to `[selectAssociation]()` but it selects associations where\n * the `selectable` is the target.\n */\n [deselectReverseAssociations](selectable: Element): void {\n const id = this.readKey(selectable)\n if (!id) {\n return\n }\n const nodes = this.target.querySelectorAll(`viz-association[data-target=\"${id}\"]`)\n if (!nodes.length) {\n return\n }\n Array.from(nodes).forEach((node) => {\n const target = node.getAttribute('data-target')\n if (!target) {\n return\n }\n node.removeAttribute('secondary-selected')\n const targetElement = node.parentElement\n if (targetElement) {\n targetElement.removeAttribute('secondary-selected')\n }\n })\n }\n\n [notifyChanged](): void {\n this.target.dispatchEvent(new Event('selectedchange'))\n }\n}\n"]}
@@ -1,45 +0,0 @@
1
- import { SVGTemplateResult } from 'lit';
2
- import { IEdgeDirections, IWorkspaceEdge } from './types.js';
3
- import { IAssociationLabelShape, AssociationShapeType, IAssociationTip } from './VisualizationTypes.js';
4
- import { Point } from './Point.js';
5
- /**
6
- * A class that builds templates for lines, tips, and labels.
7
- */
8
- export declare class ShapeArtist {
9
- /**
10
- * @param info The definition of the line to visualize
11
- * @param debug Whether debugging is enabled.
12
- * @return The template for an association line
13
- */
14
- static line(info: IWorkspaceEdge, debug?: boolean): SVGTemplateResult | string;
15
- /**
16
- * @param info The line to visualize
17
- * @param debug Whether debugging is enabled.
18
- * @returns The template for an association line
19
- */
20
- static rectilinearLine(info: IWorkspaceEdge, debug: boolean): SVGTemplateResult;
21
- /**
22
- * @param tip The parent line to visualize
23
- * @returns The template for the parent line tip
24
- */
25
- static edgeTipTemplate(tip: IAssociationTip): SVGTemplateResult;
26
- /**
27
- * @param id The key of the association.
28
- * @returns The template for the association drag handlers on the tips.
29
- */
30
- static associationDraggable(id: string, start: Point, end: Point, directions: IEdgeDirections): SVGTemplateResult;
31
- /**
32
- * @param parentId The association key
33
- * @returns The template for a text label for an association
34
- */
35
- static edgeLabelTemplate(label: IAssociationLabelShape, parentId: string): SVGTemplateResult | string;
36
- /**
37
- * Draws a debug control points positions for the given line type.
38
- * @param start The start of the line
39
- * @param end The end of the line
40
- * @param cp Control points on the line
41
- */
42
- static controlPointsDebugTemplate(type: AssociationShapeType, start: Point, end: Point, cp: Point[]): SVGTemplateResult | string;
43
- static rectilinearPathDebugTemplate(start: Point, end: Point, controlPoints: Point[]): SVGTemplateResult | string;
44
- }
45
- //# sourceMappingURL=ShapeArtist.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShapeArtist.d.ts","sourceRoot":"","sources":["../../../../src/visualization/lib/ShapeArtist.ts"],"names":[],"mappings":"AAEA,OAAO,EAAO,iBAAiB,EAAE,MAAM,KAAK,CAAA;AAI5C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EAEhB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC;;GAEG;AACH,qBAAa,WAAW;IACtB;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,UAAQ,GAAG,iBAAiB,GAAG,MAAM;IAU5E;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,iBAAiB;IAgD/E;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,GAAG,iBAAiB;IAyB/D;;;OAGG;IACH,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,GAAG,iBAAiB;IAwCjH;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,GAAG,MAAM;IAsBrG;;;;;OAKG;IACH,MAAM,CAAC,0BAA0B,CAC/B,IAAI,EAAE,oBAAoB,EAC1B,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,KAAK,EACV,EAAE,EAAE,KAAK,EAAE,GACV,iBAAiB,GAAG,MAAM;IAS7B,MAAM,CAAC,4BAA4B,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,iBAAiB,GAAG,MAAM;CAelH"}