@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,313 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
- import VizWorkspaceElement from '../elements/VizWorkspaceElement.js'
3
- import { getRelativeClickPoint, getObjectBoundingClientRect, getWorkspaceClick } from './PositionUtils.js'
4
-
5
- const mousePortioningValue = Symbol('mousePortioningValue')
6
- const setupMousePositioning = Symbol('setupMousePositioning')
7
- const disableMousePositioning = Symbol('disableMousePositioning')
8
- const mouseMoveHandler = Symbol('mouseMoveHandler')
9
- const mousePositionAnchor = Symbol('mousePositionAnchor')
10
- const workspacePositioningValue = Symbol('workspacePositioningValue')
11
- const setupWorkspacePositioning = Symbol('setupWorkspacePositioning')
12
- const disableWorkspacePositioning = Symbol('disableWorkspacePositioning')
13
- const mutationHandler = Symbol('mutationHandler')
14
- const mutationObserver = Symbol('mutationObserver')
15
- const observeItems = Symbol('observeItems')
16
- const processAddedNodes = Symbol('processAddedNodes')
17
- const processRemovedNodes = Symbol('processRemovedNodes')
18
- const updateVisualizationItem = Symbol('updateVisualizationItem')
19
- const positionedElements = Symbol('positionedElements')
20
- const scrollHandler = Symbol('scrollHandler')
21
- const scrollTimeout = Symbol('scrollTimeout')
22
- const onScroll = Symbol('onScroll')
23
- const createPositioningInfoElement = Symbol('createPositioningInfoElement')
24
- const ensurePositioningInfoElement = Symbol('ensurePositioningInfoElement')
25
- const updatePositioningInfoElement = Symbol('updatePositioningInfoElement')
26
-
27
- let elementIndex = 0
28
-
29
- const ignoredElements = ['viz-association']
30
-
31
- /**
32
- * Debugging helpers for the visualization workspace.
33
- */
34
- export class WorkspaceDebugging {
35
- [mousePortioningValue] = false
36
-
37
- /**
38
- * @return Whether a mouse position value is rendered in the workspace
39
- */
40
- get mousePositioning(): boolean {
41
- return this[mousePortioningValue]
42
- }
43
-
44
- /**
45
- * @param value Whether a mouse position value is rendered in the workspace
46
- */
47
- set mousePositioning(value: boolean) {
48
- const old = this[mousePortioningValue]
49
- if (old === value) {
50
- return
51
- }
52
- this[mousePortioningValue] = value
53
- if (value) {
54
- this[setupMousePositioning]()
55
- } else {
56
- this[disableMousePositioning]()
57
- }
58
- }
59
-
60
- [workspacePositioningValue] = false
61
-
62
- /**
63
- * @return Whether the position of each visualized element is rendered in the workspace
64
- */
65
- get workspacePositioning(): boolean {
66
- return this[workspacePositioningValue]
67
- }
68
-
69
- set workspacePositioning(value: boolean) {
70
- const old = this[workspacePositioningValue]
71
- if (old === value) {
72
- return
73
- }
74
- this[workspacePositioningValue] = old
75
- if (value) {
76
- this[setupWorkspacePositioning]()
77
- } else {
78
- this[disableWorkspacePositioning]()
79
- }
80
- }
81
-
82
- [positionedElements] = new WeakMap<HTMLElement, string>();
83
-
84
- [mousePositionAnchor]?: HTMLDivElement;
85
-
86
- [mutationObserver]?: MutationObserver
87
-
88
- constructor(public workspace: VizWorkspaceElement) {
89
- this[mouseMoveHandler] = this[mouseMoveHandler].bind(this)
90
- this[mutationHandler] = this[mutationHandler].bind(this)
91
- this[scrollHandler] = this[scrollHandler].bind(this)
92
- }
93
-
94
- [setupMousePositioning](): void {
95
- this.workspace.addEventListener('mousemove', this[mouseMoveHandler])
96
- }
97
-
98
- [disableMousePositioning](): void {
99
- this.workspace.removeEventListener('mousemove', this[mouseMoveHandler])
100
- if (this[mousePositionAnchor]) {
101
- this.workspace.shadowRoot!.removeChild(this[mousePositionAnchor]!)
102
- this[mousePositionAnchor] = undefined
103
- }
104
- }
105
-
106
- /**
107
- * Redraws the position anchor
108
- */
109
- [mouseMoveHandler](e: MouseEvent): void {
110
- const { clientX, clientY } = e
111
- const rPos = getRelativeClickPoint(clientX, clientY, this.workspace)
112
- const pos = getWorkspaceClick(clientX, clientY, this.workspace)
113
- if (!this[mousePositionAnchor]) {
114
- const a = document.createElement('div')
115
- a.style.position = 'absolute'
116
- a.style.backgroundColor = 'rgb(253 216 53 / 54%)'
117
- a.style.padding = '4px 8px'
118
- a.style.pointerEvents = 'none'
119
- this.workspace.shadowRoot!.appendChild(a)
120
- this[mousePositionAnchor] = a
121
- }
122
- this[mousePositionAnchor]!.style.left = `${pos.x + 8}px`
123
- this[mousePositionAnchor]!.style.top = `${pos.y}px`
124
- this[mousePositionAnchor]!.innerText = `${Math.round(rPos.x)} x ${Math.round(rPos.y)}`
125
- }
126
-
127
- [setupWorkspacePositioning](): void {
128
- this[mutationObserver] = this[observeItems]()
129
- this.workspace.addEventListener('scroll', this[scrollHandler])
130
- this.workspace.addEventListener('zoomchange', this[scrollHandler])
131
- const nodes = this.workspace.querySelectorAll('*')
132
- this[processAddedNodes](nodes)
133
- }
134
-
135
- [disableWorkspacePositioning](): void {
136
- this.workspace.removeEventListener('scroll', this[scrollHandler])
137
- this.workspace.removeEventListener('zoomchange', this[scrollHandler])
138
- if (this[mutationObserver]) {
139
- this[mutationObserver]!.disconnect()
140
- this[mutationObserver] = undefined
141
- }
142
- const nodes = this.workspace.shadowRoot!.querySelectorAll('.debug-viz-positioning')
143
- nodes.forEach((node) => {
144
- node.parentNode!.removeChild(node)
145
- })
146
- this[positionedElements] = new WeakMap()
147
- }
148
-
149
- /**
150
- * Observe items change in the element's light DOM
151
- * @return The observer handler
152
- */
153
- [observeItems](): MutationObserver {
154
- const config = { attributes: true, childList: true, subtree: true }
155
- const observer = new MutationObserver(this[mutationHandler])
156
- observer.observe(this.workspace, config)
157
- return observer
158
- }
159
-
160
- /**
161
- * Processes mutations in the workspace and manages selection state.
162
- * @param mutationsList List of mutations.
163
- */
164
- [mutationHandler](mutationsList: MutationRecord[]): void {
165
- for (const mutation of mutationsList) {
166
- if (mutation.type === 'childList') {
167
- this[processAddedNodes](mutation.addedNodes)
168
- this[processRemovedNodes](mutation.removedNodes)
169
- } else if (mutation.type === 'attributes') {
170
- const { target } = mutation
171
- this[updateVisualizationItem](target)
172
- }
173
- }
174
- }
175
-
176
- /**
177
- * Processes added to the canvas elements.
178
- * @param nodes The list of added nodes
179
- */
180
- [processAddedNodes](nodes: NodeList): void {
181
- nodes.forEach((node) => this[updateVisualizationItem](node))
182
- }
183
-
184
- isVisualizedObject(element: Element): boolean {
185
- const { localName } = element
186
- if (localName.startsWith('viz-')) {
187
- return true
188
- }
189
- return element.hasAttribute('data-key')
190
- }
191
-
192
- /**
193
- * Processes removed from the canvas elements.
194
- * @param nodes The list of removed nodes
195
- */
196
- [processRemovedNodes](nodes: NodeList): void {
197
- nodes.forEach((node) => {
198
- if (node.nodeType !== Node.ELEMENT_NODE) {
199
- return
200
- }
201
- const typed = node as HTMLElement
202
- if (!this.isVisualizedObject(typed)) {
203
- return
204
- }
205
- if (this[positionedElements].has(typed)) {
206
- const id = this[positionedElements].get(typed)
207
- this[positionedElements].delete(typed)
208
- const label = this.workspace.shadowRoot!.querySelector(`#${id}`) as HTMLDivElement
209
- if (label) {
210
- label.parentNode!.removeChild(label)
211
- }
212
- }
213
- this[processRemovedNodes](typed.childNodes)
214
- })
215
- }
216
-
217
- [updateVisualizationItem](node: Node): void {
218
- if (node.nodeType !== Node.ELEMENT_NODE) {
219
- return
220
- }
221
- const typed = node as HTMLElement
222
- const { localName } = typed
223
- if (!this.isVisualizedObject(typed) || ignoredElements.includes(localName)) {
224
- return
225
- }
226
- const rect = typed.getBoundingClientRect()
227
- const { width, height } = rect
228
- if (!width || !height) {
229
- // don't need them
230
- return
231
- }
232
- this[ensurePositioningInfoElement](typed)
233
- this[updatePositioningInfoElement](typed, rect)
234
- }
235
-
236
- /**
237
- * Ensures that element that is positioned relative to each visualized item exists.
238
- */
239
- [ensurePositioningInfoElement](targetElement: HTMLElement): void {
240
- if (!this[positionedElements].has(targetElement)) {
241
- const label = this[createPositioningInfoElement](targetElement)
242
- this.workspace.shadowRoot!.appendChild(label)
243
- this[positionedElements].set(targetElement, label.id)
244
- }
245
- }
246
-
247
- /**
248
- * Creates an element that is positioned relative to each visualized item.
249
- * @param {HTMLElement} targetElement
250
- * @returns {HTMLDivElement}
251
- */
252
- [createPositioningInfoElement](targetElement: HTMLElement): HTMLDivElement {
253
- const label = document.createElement('div')
254
- label.style.position = 'absolute'
255
- label.style.backgroundColor = 'rgb(253 216 53 / 54%)'
256
- label.style.padding = '4px 8px'
257
- label.style.pointerEvents = 'none'
258
- label.id = `debug-position${elementIndex++}`
259
- label.classList.add('debug-viz-positioning')
260
- label.dataset.target = targetElement.getAttribute('data-key')!
261
- return label
262
- }
263
-
264
- /**
265
- * Updates the position of the visualized element position label
266
- * @param {HTMLElement} targetElement
267
- * @param {DOMRect} rect
268
- */
269
- [updatePositioningInfoElement](targetElement: HTMLElement, rect: DOMRect): void {
270
- const { x, y } = rect
271
- const rPos = getRelativeClickPoint(x, y, this.workspace)
272
- const pos = getWorkspaceClick(x, y, this.workspace)
273
- const sizedRect = getObjectBoundingClientRect(targetElement, this.workspace)
274
-
275
- const id = this[positionedElements].get(targetElement)
276
- const label = this.workspace.shadowRoot!.querySelector(`#${id}`) as HTMLDivElement
277
- label.style.left = `${pos.x + 8}px`
278
- label.style.top = `${pos.y + rect.height}px`
279
- const position = `(x,y) ${Math.round(rPos.x)} x ${Math.round(rPos.y)}`
280
- const realSize = `(w,h) ${Math.round(sizedRect.width)} x ${Math.round(sizedRect.height)}`
281
- const scaledSize = `(sw,sh) ${Math.round(rect.width)} x ${Math.round(rect.height)}`
282
- label.innerText = `${position}\n${realSize}\n${scaledSize}`
283
- }
284
-
285
- [scrollTimeout]?: number;
286
-
287
- /**
288
- * Updates the labels on each visualized item after the workspace scroll
289
- */
290
- [scrollHandler](): void {
291
- if (this[scrollTimeout]) {
292
- clearTimeout(this[scrollTimeout])
293
- }
294
- this[scrollTimeout] = setTimeout(() => {
295
- this[scrollTimeout] = undefined
296
- this[onScroll]()
297
- }, 1) as unknown as number
298
- }
299
-
300
- /**
301
- * Updates the labels on each visualized item after the workspace scroll
302
- */
303
- [onScroll](): void {
304
- const nodes = Array.from(this.workspace.shadowRoot!.querySelectorAll('.debug-viz-positioning')) as HTMLDivElement[]
305
- nodes.forEach((node) => {
306
- const { target } = node.dataset
307
- const item = this.workspace.querySelector(`[data-key="${target}"]`)
308
- if (item) {
309
- this[updateVisualizationItem](item)
310
- }
311
- })
312
- }
313
- }