@api-client/ui 0.2.2 → 0.2.4

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 (371) hide show
  1. package/.vscode/settings.json +3 -3
  2. package/build/src/elements/authorization/ui/ApiKeyAuthorization.d.ts +1 -1
  3. package/build/src/elements/authorization/ui/ApiKeyAuthorization.d.ts.map +1 -1
  4. package/build/src/elements/authorization/ui/ApiKeyAuthorization.js +7 -7
  5. package/build/src/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
  6. package/build/src/elements/authorization/ui/Authorization.styles.js +4 -4
  7. package/build/src/elements/authorization/ui/Authorization.styles.js.map +1 -1
  8. package/build/src/elements/authorization/ui/BasicAuthorization.d.ts +1 -1
  9. package/build/src/elements/authorization/ui/BasicAuthorization.d.ts.map +1 -1
  10. package/build/src/elements/authorization/ui/BasicAuthorization.js +5 -5
  11. package/build/src/elements/authorization/ui/BasicAuthorization.js.map +1 -1
  12. package/build/src/elements/authorization/ui/BearerAuthorization.d.ts +1 -1
  13. package/build/src/elements/authorization/ui/BearerAuthorization.d.ts.map +1 -1
  14. package/build/src/elements/authorization/ui/BearerAuthorization.js +3 -3
  15. package/build/src/elements/authorization/ui/BearerAuthorization.js.map +1 -1
  16. package/build/src/elements/authorization/ui/NtlmAuthorization.d.ts +1 -1
  17. package/build/src/elements/authorization/ui/NtlmAuthorization.d.ts.map +1 -1
  18. package/build/src/elements/authorization/ui/NtlmAuthorization.js +7 -7
  19. package/build/src/elements/authorization/ui/NtlmAuthorization.js.map +1 -1
  20. package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts +1 -1
  21. package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts.map +1 -1
  22. package/build/src/elements/authorization/ui/OAuth2Authorization.js +32 -27
  23. package/build/src/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
  24. package/build/src/elements/authorization/ui/OidcAuthorization.js +4 -4
  25. package/build/src/elements/authorization/ui/OidcAuthorization.js.map +1 -1
  26. package/build/src/elements/autocomplete/autocomplete-input.d.ts +10 -0
  27. package/build/src/elements/autocomplete/autocomplete-input.d.ts.map +1 -0
  28. package/build/src/{md/text-field/ui-text-field.js → elements/autocomplete/autocomplete-input.js} +9 -9
  29. package/build/src/elements/autocomplete/autocomplete-input.js.map +1 -0
  30. package/build/src/elements/autocomplete/internals/autocomplete.d.ts +209 -0
  31. package/build/src/elements/autocomplete/internals/autocomplete.d.ts.map +1 -0
  32. package/build/src/elements/autocomplete/internals/autocomplete.js +493 -0
  33. package/build/src/elements/autocomplete/internals/autocomplete.js.map +1 -0
  34. package/build/src/elements/autocomplete/internals/autocomplete.styles.d.ts +3 -0
  35. package/build/src/elements/autocomplete/internals/autocomplete.styles.d.ts.map +1 -0
  36. package/build/src/elements/autocomplete/internals/autocomplete.styles.js +25 -0
  37. package/build/src/elements/autocomplete/internals/autocomplete.styles.js.map +1 -0
  38. package/build/src/elements/dialog/internals/DeleteCookieAction.element.d.ts +1 -1
  39. package/build/src/elements/dialog/internals/DeleteCookieAction.element.d.ts.map +1 -1
  40. package/build/src/elements/dialog/internals/DeleteCookieAction.element.js +5 -5
  41. package/build/src/elements/dialog/internals/DeleteCookieAction.element.js.map +1 -1
  42. package/build/src/elements/dialog/internals/Rename.d.ts +1 -1
  43. package/build/src/elements/dialog/internals/Rename.d.ts.map +1 -1
  44. package/build/src/elements/dialog/internals/Rename.js +3 -3
  45. package/build/src/elements/dialog/internals/Rename.js.map +1 -1
  46. package/build/src/elements/dialog/internals/SetCookieAction.element.d.ts +1 -1
  47. package/build/src/elements/dialog/internals/SetCookieAction.element.d.ts.map +1 -1
  48. package/build/src/elements/dialog/internals/SetCookieAction.element.js +9 -9
  49. package/build/src/elements/dialog/internals/SetCookieAction.element.js.map +1 -1
  50. package/build/src/elements/environment/EnvironmentEditor.d.ts +1 -1
  51. package/build/src/elements/environment/EnvironmentEditor.d.ts.map +1 -1
  52. package/build/src/elements/environment/EnvironmentEditor.js +3 -3
  53. package/build/src/elements/environment/EnvironmentEditor.js.map +1 -1
  54. package/build/src/elements/environment/EnvironmentEditor.styles.js +1 -1
  55. package/build/src/elements/environment/EnvironmentEditor.styles.js.map +1 -1
  56. package/build/src/elements/environment/ServerEditor.d.ts +1 -1
  57. package/build/src/elements/environment/ServerEditor.d.ts.map +1 -1
  58. package/build/src/elements/environment/ServerEditor.js +7 -7
  59. package/build/src/elements/environment/ServerEditor.js.map +1 -1
  60. package/build/src/elements/environment/ServerEditor.styles.js +1 -1
  61. package/build/src/elements/environment/ServerEditor.styles.js.map +1 -1
  62. package/build/src/elements/http/BodyMultipartEditor.d.ts.map +1 -1
  63. package/build/src/elements/http/BodyMultipartEditor.js +4 -0
  64. package/build/src/elements/http/BodyMultipartEditor.js.map +1 -1
  65. package/build/src/elements/http/CertificateAdd.element.d.ts +1 -1
  66. package/build/src/elements/http/CertificateAdd.element.d.ts.map +1 -1
  67. package/build/src/elements/http/CertificateAdd.element.js +8 -8
  68. package/build/src/elements/http/CertificateAdd.element.js.map +1 -1
  69. package/build/src/elements/http/CertificateAdd.styles.js +1 -1
  70. package/build/src/elements/http/CertificateAdd.styles.js.map +1 -1
  71. package/build/src/elements/http/HttpAssertions.element.js +3 -3
  72. package/build/src/elements/http/HttpAssertions.element.js.map +1 -1
  73. package/build/src/elements/http/HttpFlows.element.js +3 -3
  74. package/build/src/elements/http/HttpFlows.element.js.map +1 -1
  75. package/build/src/elements/http/HttpFlowsUi.d.ts +1 -1
  76. package/build/src/elements/http/HttpFlowsUi.d.ts.map +1 -1
  77. package/build/src/elements/http/HttpFlowsUi.js +31 -31
  78. package/build/src/elements/http/HttpFlowsUi.js.map +1 -1
  79. package/build/src/elements/http/RequestConfigElement.d.ts +1 -1
  80. package/build/src/elements/http/RequestConfigElement.d.ts.map +1 -1
  81. package/build/src/elements/http/RequestConfigElement.js +7 -7
  82. package/build/src/elements/http/RequestConfigElement.js.map +1 -1
  83. package/build/src/elements/http/UrlParamsForm.d.ts +1 -1
  84. package/build/src/elements/http/UrlParamsForm.d.ts.map +1 -1
  85. package/build/src/elements/http/UrlParamsForm.js +1 -1
  86. package/build/src/elements/http/UrlParamsForm.js.map +1 -1
  87. package/build/src/elements/project/ProjectRunner.d.ts +1 -1
  88. package/build/src/elements/project/ProjectRunner.d.ts.map +1 -1
  89. package/build/src/elements/project/ProjectRunner.js +5 -5
  90. package/build/src/elements/project/ProjectRunner.js.map +1 -1
  91. package/build/src/md/input/Input.d.ts +0 -15
  92. package/build/src/md/input/Input.d.ts.map +1 -1
  93. package/build/src/md/input/Input.js +7 -42
  94. package/build/src/md/input/Input.js.map +1 -1
  95. package/build/src/md/list/internals/List.d.ts +7 -2
  96. package/build/src/md/list/internals/List.d.ts.map +1 -1
  97. package/build/src/md/list/internals/List.js +6 -0
  98. package/build/src/md/list/internals/List.js.map +1 -1
  99. package/build/src/md/list/internals/ListItem.styles.d.ts.map +1 -1
  100. package/build/src/md/list/internals/ListItem.styles.js +8 -0
  101. package/build/src/md/list/internals/ListItem.styles.js.map +1 -1
  102. package/build/src/md/listbox/internals/Listbox.d.ts +2 -2
  103. package/build/src/md/listbox/internals/Listbox.d.ts.map +1 -1
  104. package/build/src/md/listbox/internals/Listbox.js.map +1 -1
  105. package/build/src/md/text-area/internals/TextAreaElement.d.ts.map +1 -1
  106. package/build/src/md/text-area/internals/TextAreaElement.js +0 -5
  107. package/build/src/md/text-area/internals/TextAreaElement.js.map +1 -1
  108. package/build/src/md/text-area/ui-text-area.d.ts.map +1 -1
  109. package/build/src/md/text-area/ui-text-area.js +3 -2
  110. package/build/src/md/text-area/ui-text-area.js.map +1 -1
  111. package/build/src/md/text-field/internals/{TextFieldElement.d.ts → TextField.d.ts} +2 -2
  112. package/build/src/md/text-field/internals/TextField.d.ts.map +1 -0
  113. package/build/src/md/text-field/internals/{TextFieldElement.js → TextField.js} +2 -5
  114. package/build/src/md/text-field/internals/TextField.js.map +1 -0
  115. package/build/src/{visualization/elements/WorkspaceStyles.d.ts → md/text-field/internals/common.styles.d.ts} +1 -1
  116. package/build/src/md/text-field/internals/common.styles.d.ts.map +1 -0
  117. package/build/src/md/text-field/internals/{TextField.styles.js → common.styles.js} +8 -94
  118. package/build/src/md/text-field/internals/common.styles.js.map +1 -0
  119. package/build/src/md/text-field/internals/{TextField.styles.d.ts → filled.styles.d.ts} +1 -1
  120. package/build/src/md/text-field/internals/filled.styles.d.ts.map +1 -0
  121. package/build/src/md/text-field/internals/filled.styles.js +107 -0
  122. package/build/src/md/text-field/internals/filled.styles.js.map +1 -0
  123. package/build/src/md/text-field/internals/outlined.styles.d.ts +3 -0
  124. package/build/src/md/text-field/internals/outlined.styles.d.ts.map +1 -0
  125. package/build/src/md/text-field/internals/outlined.styles.js +43 -0
  126. package/build/src/md/text-field/internals/outlined.styles.js.map +1 -0
  127. package/build/src/md/text-field/ui-filled-text-field.d.ts +11 -0
  128. package/build/src/md/text-field/ui-filled-text-field.d.ts.map +1 -0
  129. package/build/src/md/text-field/ui-filled-text-field.js +28 -0
  130. package/build/src/md/text-field/ui-filled-text-field.js.map +1 -0
  131. package/build/src/md/text-field/ui-outlined-text-field.d.ts +11 -0
  132. package/build/src/md/text-field/ui-outlined-text-field.d.ts.map +1 -0
  133. package/build/src/md/text-field/ui-outlined-text-field.js +28 -0
  134. package/build/src/md/text-field/ui-outlined-text-field.js.map +1 -0
  135. package/build/src/types/input.d.ts +1 -1
  136. package/build/src/types/input.d.ts.map +1 -1
  137. package/build/src/types/input.js.map +1 -1
  138. package/demo/elements/authorization/oauth-authorize.html +4 -4
  139. package/demo/elements/authorization/oauth-authorize.ts +1 -1
  140. package/demo/elements/autocomplete/index.html +24 -0
  141. package/demo/elements/autocomplete/index.ts +123 -0
  142. package/demo/elements/http/body-editor.ts +3 -3
  143. package/demo/elements/index.html +15 -11
  144. package/demo/md/index.html +1 -1
  145. package/demo/md/inputs/input.html +10 -15
  146. package/demo/md/inputs/input.ts +389 -101
  147. package/demo/page.css +4 -0
  148. package/package.json +7 -2
  149. package/src/elements/authorization/ui/ApiKeyAuthorization.ts +7 -7
  150. package/src/elements/authorization/ui/Authorization.styles.ts +4 -4
  151. package/src/elements/authorization/ui/BasicAuthorization.ts +5 -5
  152. package/src/elements/authorization/ui/BearerAuthorization.ts +3 -3
  153. package/src/elements/authorization/ui/NtlmAuthorization.ts +7 -7
  154. package/src/elements/authorization/ui/OAuth2Authorization.ts +32 -27
  155. package/src/elements/authorization/ui/OidcAuthorization.ts +4 -4
  156. package/src/elements/autocomplete/autocomplete-input.ts +14 -0
  157. package/src/elements/autocomplete/internals/autocomplete.styles.ts +25 -0
  158. package/src/elements/autocomplete/internals/autocomplete.ts +490 -0
  159. package/src/elements/dialog/internals/DeleteCookieAction.element.ts +5 -5
  160. package/src/elements/dialog/internals/Rename.ts +3 -3
  161. package/src/elements/dialog/internals/SetCookieAction.element.ts +9 -9
  162. package/src/elements/environment/EnvironmentEditor.styles.ts +1 -1
  163. package/src/elements/environment/EnvironmentEditor.ts +3 -3
  164. package/src/elements/environment/ServerEditor.styles.ts +1 -1
  165. package/src/elements/environment/ServerEditor.ts +7 -7
  166. package/src/elements/http/BodyMultipartEditor.ts +4 -0
  167. package/src/elements/http/CertificateAdd.element.ts +8 -8
  168. package/src/elements/http/CertificateAdd.styles.ts +1 -1
  169. package/src/elements/http/HttpAssertions.element.ts +3 -3
  170. package/src/elements/http/HttpFlows.element.ts +3 -3
  171. package/src/elements/http/HttpFlowsUi.ts +31 -31
  172. package/src/elements/http/RequestConfigElement.ts +7 -7
  173. package/src/elements/http/UrlParamsForm.ts +1 -1
  174. package/src/elements/project/ProjectRunner.ts +5 -5
  175. package/src/md/input/Input.ts +6 -21
  176. package/src/md/list/internals/List.ts +14 -2
  177. package/src/md/list/internals/ListItem.styles.ts +8 -0
  178. package/src/md/listbox/internals/Listbox.ts +2 -2
  179. package/src/md/text-area/internals/TextAreaElement.ts +0 -5
  180. package/src/md/text-area/ui-text-area.ts +3 -2
  181. package/src/md/text-field/internals/{TextFieldElement.ts → TextField.ts} +1 -4
  182. package/src/md/text-field/internals/{TextField.styles.ts → common.styles.ts} +7 -93
  183. package/src/md/text-field/internals/filled.styles.ts +107 -0
  184. package/src/md/text-field/internals/outlined.styles.ts +43 -0
  185. package/src/md/text-field/ui-filled-text-field.ts +16 -0
  186. package/src/md/text-field/ui-outlined-text-field.ts +16 -0
  187. package/src/types/input.ts +0 -1
  188. package/test/elements/authorization/basic-method.test.ts +3 -3
  189. package/test/elements/authorization/bearer-method.test.ts +2 -2
  190. package/test/elements/authorization/ntlm-method.test.ts +4 -4
  191. package/test/elements/autocomplete/autocomplete-input.spec.ts +448 -0
  192. package/test/elements/http/BodyMultipartEditorElement.test.ts +15 -16
  193. package/test/elements/http/CertificateAdd.test.ts +11 -11
  194. package/test/elements/http/HttpAssertions.test.ts +9 -9
  195. package/test/elements/http/HttpFlows.test.ts +4 -4
  196. package/test/env.ts +15 -0
  197. package/test/tsconfig.json +1 -7
  198. package/web-test-runner.config.js +5 -1
  199. package/build/src/md/text-field/internals/TextField.styles.d.ts.map +0 -1
  200. package/build/src/md/text-field/internals/TextField.styles.js.map +0 -1
  201. package/build/src/md/text-field/internals/TextFieldElement.d.ts.map +0 -1
  202. package/build/src/md/text-field/internals/TextFieldElement.js.map +0 -1
  203. package/build/src/md/text-field/ui-text-field.d.ts +0 -11
  204. package/build/src/md/text-field/ui-text-field.d.ts.map +0 -1
  205. package/build/src/md/text-field/ui-text-field.js.map +0 -1
  206. package/build/src/visualization/elements/VizAssociationElement.d.ts +0 -4
  207. package/build/src/visualization/elements/VizAssociationElement.d.ts.map +0 -1
  208. package/build/src/visualization/elements/VizAssociationElement.js +0 -4
  209. package/build/src/visualization/elements/VizAssociationElement.js.map +0 -1
  210. package/build/src/visualization/elements/VizWorkspaceElement.d.ts +0 -110
  211. package/build/src/visualization/elements/VizWorkspaceElement.d.ts.map +0 -1
  212. package/build/src/visualization/elements/VizWorkspaceElement.js +0 -321
  213. package/build/src/visualization/elements/VizWorkspaceElement.js.map +0 -1
  214. package/build/src/visualization/elements/WorkspaceStyles.d.ts.map +0 -1
  215. package/build/src/visualization/elements/WorkspaceStyles.js +0 -168
  216. package/build/src/visualization/elements/WorkspaceStyles.js.map +0 -1
  217. package/build/src/visualization/lib/AnchorFinder.d.ts +0 -64
  218. package/build/src/visualization/lib/AnchorFinder.d.ts.map +0 -1
  219. package/build/src/visualization/lib/AnchorFinder.js +0 -107
  220. package/build/src/visualization/lib/AnchorFinder.js.map +0 -1
  221. package/build/src/visualization/lib/AnchorUtils.d.ts +0 -10
  222. package/build/src/visualization/lib/AnchorUtils.d.ts.map +0 -1
  223. package/build/src/visualization/lib/AnchorUtils.js +0 -44
  224. package/build/src/visualization/lib/AnchorUtils.js.map +0 -1
  225. package/build/src/visualization/lib/AssociationAnchors.d.ts +0 -134
  226. package/build/src/visualization/lib/AssociationAnchors.d.ts.map +0 -1
  227. package/build/src/visualization/lib/AssociationAnchors.js +0 -351
  228. package/build/src/visualization/lib/AssociationAnchors.js.map +0 -1
  229. package/build/src/visualization/lib/LabelSketch.d.ts +0 -16
  230. package/build/src/visualization/lib/LabelSketch.d.ts.map +0 -1
  231. package/build/src/visualization/lib/LabelSketch.js +0 -53
  232. package/build/src/visualization/lib/LabelSketch.js.map +0 -1
  233. package/build/src/visualization/lib/LineSketch.d.ts +0 -26
  234. package/build/src/visualization/lib/LineSketch.d.ts.map +0 -1
  235. package/build/src/visualization/lib/LineSketch.js +0 -55
  236. package/build/src/visualization/lib/LineSketch.js.map +0 -1
  237. package/build/src/visualization/lib/Point.d.ts +0 -74
  238. package/build/src/visualization/lib/Point.d.ts.map +0 -1
  239. package/build/src/visualization/lib/Point.js +0 -121
  240. package/build/src/visualization/lib/Point.js.map +0 -1
  241. package/build/src/visualization/lib/PositionUtils.d.ts +0 -65
  242. package/build/src/visualization/lib/PositionUtils.d.ts.map +0 -1
  243. package/build/src/visualization/lib/PositionUtils.js +0 -205
  244. package/build/src/visualization/lib/PositionUtils.js.map +0 -1
  245. package/build/src/visualization/lib/SelectionManager.d.ts +0 -183
  246. package/build/src/visualization/lib/SelectionManager.d.ts.map +0 -1
  247. package/build/src/visualization/lib/SelectionManager.js +0 -481
  248. package/build/src/visualization/lib/SelectionManager.js.map +0 -1
  249. package/build/src/visualization/lib/ShapeArtist.d.ts +0 -45
  250. package/build/src/visualization/lib/ShapeArtist.d.ts.map +0 -1
  251. package/build/src/visualization/lib/ShapeArtist.js +0 -209
  252. package/build/src/visualization/lib/ShapeArtist.js.map +0 -1
  253. package/build/src/visualization/lib/SvgMarkers.d.ts +0 -14
  254. package/build/src/visualization/lib/SvgMarkers.d.ts.map +0 -1
  255. package/build/src/visualization/lib/SvgMarkers.js +0 -77
  256. package/build/src/visualization/lib/SvgMarkers.js.map +0 -1
  257. package/build/src/visualization/lib/TipSketch.d.ts +0 -26
  258. package/build/src/visualization/lib/TipSketch.d.ts.map +0 -1
  259. package/build/src/visualization/lib/TipSketch.js +0 -77
  260. package/build/src/visualization/lib/TipSketch.js.map +0 -1
  261. package/build/src/visualization/lib/TouchSupport.d.ts +0 -14
  262. package/build/src/visualization/lib/TouchSupport.d.ts.map +0 -1
  263. package/build/src/visualization/lib/TouchSupport.js +0 -55
  264. package/build/src/visualization/lib/TouchSupport.js.map +0 -1
  265. package/build/src/visualization/lib/Utils.d.ts +0 -25
  266. package/build/src/visualization/lib/Utils.d.ts.map +0 -1
  267. package/build/src/visualization/lib/Utils.js +0 -59
  268. package/build/src/visualization/lib/Utils.js.map +0 -1
  269. package/build/src/visualization/lib/VisualizationTypes.d.ts +0 -216
  270. package/build/src/visualization/lib/VisualizationTypes.d.ts.map +0 -1
  271. package/build/src/visualization/lib/VisualizationTypes.js +0 -3
  272. package/build/src/visualization/lib/VisualizationTypes.js.map +0 -1
  273. package/build/src/visualization/lib/WorkspaceAlignment.d.ts +0 -51
  274. package/build/src/visualization/lib/WorkspaceAlignment.d.ts.map +0 -1
  275. package/build/src/visualization/lib/WorkspaceAlignment.js +0 -243
  276. package/build/src/visualization/lib/WorkspaceAlignment.js.map +0 -1
  277. package/build/src/visualization/lib/WorkspaceDebugging.d.ts +0 -104
  278. package/build/src/visualization/lib/WorkspaceDebugging.d.ts.map +0 -1
  279. package/build/src/visualization/lib/WorkspaceDebugging.js +0 -286
  280. package/build/src/visualization/lib/WorkspaceDebugging.js.map +0 -1
  281. package/build/src/visualization/lib/WorkspaceEdges.d.ts +0 -293
  282. package/build/src/visualization/lib/WorkspaceEdges.d.ts.map +0 -1
  283. package/build/src/visualization/lib/WorkspaceEdges.js +0 -1073
  284. package/build/src/visualization/lib/WorkspaceEdges.js.map +0 -1
  285. package/build/src/visualization/lib/WorkspaceGestures.d.ts +0 -119
  286. package/build/src/visualization/lib/WorkspaceGestures.d.ts.map +0 -1
  287. package/build/src/visualization/lib/WorkspaceGestures.js +0 -376
  288. package/build/src/visualization/lib/WorkspaceGestures.js.map +0 -1
  289. package/build/src/visualization/lib/WorkspaceSizing.d.ts +0 -66
  290. package/build/src/visualization/lib/WorkspaceSizing.d.ts.map +0 -1
  291. package/build/src/visualization/lib/WorkspaceSizing.js +0 -168
  292. package/build/src/visualization/lib/WorkspaceSizing.js.map +0 -1
  293. package/build/src/visualization/lib/lines/RectilinearLine.d.ts +0 -114
  294. package/build/src/visualization/lib/lines/RectilinearLine.d.ts.map +0 -1
  295. package/build/src/visualization/lib/lines/RectilinearLine.js +0 -605
  296. package/build/src/visualization/lib/lines/RectilinearLine.js.map +0 -1
  297. package/build/src/visualization/lib/tips/RectilinearTip.d.ts +0 -26
  298. package/build/src/visualization/lib/tips/RectilinearTip.d.ts.map +0 -1
  299. package/build/src/visualization/lib/tips/RectilinearTip.js +0 -149
  300. package/build/src/visualization/lib/tips/RectilinearTip.js.map +0 -1
  301. package/build/src/visualization/lib/tips/TipArtist.d.ts +0 -22
  302. package/build/src/visualization/lib/tips/TipArtist.d.ts.map +0 -1
  303. package/build/src/visualization/lib/tips/TipArtist.js +0 -31
  304. package/build/src/visualization/lib/tips/TipArtist.js.map +0 -1
  305. package/build/src/visualization/lib/types.d.ts +0 -164
  306. package/build/src/visualization/lib/types.d.ts.map +0 -1
  307. package/build/src/visualization/lib/types.js +0 -2
  308. package/build/src/visualization/lib/types.js.map +0 -1
  309. package/build/src/visualization/plugin/dnd/DragAndDropPlugin.d.ts +0 -126
  310. package/build/src/visualization/plugin/dnd/DragAndDropPlugin.d.ts.map +0 -1
  311. package/build/src/visualization/plugin/dnd/DragAndDropPlugin.js +0 -260
  312. package/build/src/visualization/plugin/dnd/DragAndDropPlugin.js.map +0 -1
  313. package/build/src/visualization/plugin/group-selection/GroupSelection.d.ts +0 -93
  314. package/build/src/visualization/plugin/group-selection/GroupSelection.d.ts.map +0 -1
  315. package/build/src/visualization/plugin/group-selection/GroupSelection.js +0 -250
  316. package/build/src/visualization/plugin/group-selection/GroupSelection.js.map +0 -1
  317. package/build/src/visualization/plugin/positioning/DataModelLayout.d.ts +0 -10
  318. package/build/src/visualization/plugin/positioning/DataModelLayout.d.ts.map +0 -1
  319. package/build/src/visualization/plugin/positioning/DataModelLayout.js +0 -105
  320. package/build/src/visualization/plugin/positioning/DataModelLayout.js.map +0 -1
  321. package/build/src/visualization/plugin/positioning/WorkspaceLayout.d.ts +0 -93
  322. package/build/src/visualization/plugin/positioning/WorkspaceLayout.d.ts.map +0 -1
  323. package/build/src/visualization/plugin/positioning/WorkspaceLayout.js +0 -96
  324. package/build/src/visualization/plugin/positioning/WorkspaceLayout.js.map +0 -1
  325. package/build/src/visualization/viz-association.d.ts +0 -7
  326. package/build/src/visualization/viz-association.d.ts.map +0 -1
  327. package/build/src/visualization/viz-association.js +0 -3
  328. package/build/src/visualization/viz-association.js.map +0 -1
  329. package/build/src/visualization/viz-workspace.d.ts +0 -7
  330. package/build/src/visualization/viz-workspace.d.ts.map +0 -1
  331. package/build/src/visualization/viz-workspace.js +0 -3
  332. package/build/src/visualization/viz-workspace.js.map +0 -1
  333. package/src/md/text-field/ui-text-field.ts +0 -15
  334. package/src/visualization/elements/VizAssociationElement.ts +0 -3
  335. package/src/visualization/elements/VizWorkspaceElement.ts +0 -302
  336. package/src/visualization/elements/WorkspaceStyles.ts +0 -168
  337. package/src/visualization/lib/AnchorFinder.ts +0 -112
  338. package/src/visualization/lib/AnchorUtils.ts +0 -53
  339. package/src/visualization/lib/AssociationAnchors.ts +0 -418
  340. package/src/visualization/lib/LabelSketch.ts +0 -67
  341. package/src/visualization/lib/LineSketch.ts +0 -62
  342. package/src/visualization/lib/Point.ts +0 -134
  343. package/src/visualization/lib/PositionUtils.ts +0 -218
  344. package/src/visualization/lib/SelectionManager.ts +0 -513
  345. package/src/visualization/lib/ShapeArtist.ts +0 -222
  346. package/src/visualization/lib/SvgMarkers.ts +0 -80
  347. package/src/visualization/lib/TipSketch.ts +0 -91
  348. package/src/visualization/lib/TouchSupport.ts +0 -72
  349. package/src/visualization/lib/Utils.ts +0 -63
  350. package/src/visualization/lib/VisualizationTypes.ts +0 -232
  351. package/src/visualization/lib/WorkspaceAlignment.ts +0 -261
  352. package/src/visualization/lib/WorkspaceDebugging.ts +0 -313
  353. package/src/visualization/lib/WorkspaceEdges.ts +0 -1153
  354. package/src/visualization/lib/WorkspaceGestures.ts +0 -400
  355. package/src/visualization/lib/WorkspaceSizing.ts +0 -181
  356. package/src/visualization/lib/lines/RectilinearLine.ts +0 -589
  357. package/src/visualization/lib/tips/RectilinearTip.ts +0 -156
  358. package/src/visualization/lib/tips/TipArtist.ts +0 -34
  359. package/src/visualization/lib/types.ts +0 -173
  360. package/src/visualization/plugin/dnd/DragAndDropPlugin.ts +0 -294
  361. package/src/visualization/plugin/group-selection/GroupSelection.ts +0 -271
  362. package/src/visualization/plugin/positioning/DataModelLayout.ts +0 -114
  363. package/src/visualization/plugin/positioning/WorkspaceLayout.ts +0 -149
  364. package/src/visualization/viz-association.ts +0 -9
  365. package/src/visualization/viz-workspace.ts +0 -9
  366. package/test/env.d.ts +0 -9
  367. package/test/env.js +0 -7
  368. package/test/visualization/lib/AnchorFinder.test.ts +0 -313
  369. package/test/visualization/lib/AnchorUtils.test.ts +0 -178
  370. package/test/visualization/lib/PositionUtils.test.ts +0 -406
  371. package/test/visualization/lib/test-styles.css +0 -80
@@ -1 +0,0 @@
1
- {"version":3,"file":"viz-workspace.d.ts","sourceRoot":"","sources":["../../../src/visualization/viz-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,mCAAmC,CAAA;AAIvD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,OAAO,CAAA;KACzB;CACF"}
@@ -1,3 +0,0 @@
1
- import Element from './elements/VizWorkspaceElement.js';
2
- window.customElements.define('viz-workspace', Element);
3
- //# sourceMappingURL=viz-workspace.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"viz-workspace.js","sourceRoot":"","sources":["../../../src/visualization/viz-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,mCAAmC,CAAA;AAEvD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAA","sourcesContent":["import Element from './elements/VizWorkspaceElement.js'\n\nwindow.customElements.define('viz-workspace', Element)\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'viz-workspace': Element\n }\n}\n"]}
@@ -1,15 +0,0 @@
1
- import type { CSSResultOrNative } from 'lit'
2
- import { customElement } from 'lit/decorators.js'
3
- import Element from './internals/TextFieldElement.js'
4
- import styles from './internals/TextField.styles.js'
5
-
6
- @customElement('ui-text-field')
7
- export class UiTextFieldElement extends Element {
8
- static override styles: CSSResultOrNative[] = [styles]
9
- }
10
-
11
- declare global {
12
- interface HTMLElementTagNameMap {
13
- 'ui-text-field': UiTextFieldElement
14
- }
15
- }
@@ -1,3 +0,0 @@
1
- import { LitElement } from 'lit'
2
-
3
- export default class VizAssociationElement extends LitElement {}
@@ -1,302 +0,0 @@
1
- import { CSSResult, html, LitElement, PropertyValues, svg, SVGTemplateResult, TemplateResult } from 'lit'
2
- import { property } from 'lit/decorators.js'
3
- import { styleMap } from 'lit/directives/style-map.js'
4
- import { AssociationAnchors } from '../lib/AssociationAnchors.js'
5
- import { SelectionManager } from '../lib/SelectionManager.js'
6
- import { ShapeArtist } from '../lib/ShapeArtist.js'
7
- import { WorkspaceEdges } from '../lib/WorkspaceEdges.js'
8
- import { WorkspaceGestures } from '../lib/WorkspaceGestures.js'
9
- import { WorkspaceSizing } from '../lib/WorkspaceSizing.js'
10
- import elementStyles from './WorkspaceStyles.js'
11
-
12
- const defaultCanvasWidth = 3840
13
- const defaultCanvasHeight = 2160
14
-
15
- export const canvasRef = Symbol('canvasRef')
16
- export const svgRef = Symbol('svgRef')
17
- export const attributeTypeEditHandler = Symbol('attributeTypeEditHandler')
18
- export const attributeTypeDropdownClosedHandler = Symbol('attributeTypeDropdownClosedHandler')
19
- export const attributeTypeSelectHandler = Symbol('attributeTypeSelectHandler')
20
- export const geometryChangeHandler = Symbol('geometryChangeHandler')
21
-
22
- export const notifyZoom = Symbol('notifyZoom')
23
- export const zoomTimeout = Symbol('zoomTimeout')
24
-
25
- /**
26
- * @fires positionchange
27
- */
28
- export default class VizWorkspaceElement extends LitElement {
29
- static override get styles(): CSSResult[] {
30
- return [elementStyles]
31
- }
32
-
33
- /**
34
- * The zoom level of the current visualization
35
- * @attribute
36
- */
37
- @property({ type: Number, reflect: true })
38
- accessor zoom = 0
39
-
40
- /**
41
- * Gets or sets the number of pixels that an element's content is scrolled horizontally.
42
- * Unlike regular HTML elements, this can be a negative value as it is possible to
43
- * scroll outside the working area.
44
- */
45
- override get scrollLeft(): number {
46
- const s = this.gestures
47
- return (s && s.left) || 0
48
- }
49
-
50
- /**
51
- * @param value The x-axis position value
52
- */
53
- override set scrollLeft(value: number) {
54
- this.gestures.left = value
55
- }
56
-
57
- /**
58
- * Gets or sets the number of pixels that an element's content is scrolled vertically.
59
- * Unlike regular HTML elements, this can be a negative value as it is possible to
60
- * scroll outside the working area.
61
- */
62
- override get scrollTop(): number {
63
- const s = this.gestures
64
- return (s && s.top) || 0
65
- }
66
-
67
- /**
68
- * @param value The y-axis position value
69
- */
70
- override set scrollTop(value: number) {
71
- this.gestures.top = value
72
- }
73
-
74
- [canvasRef]?: HTMLDivElement
75
-
76
- get canvas(): HTMLDivElement | null {
77
- if (!this[canvasRef]) {
78
- this[canvasRef] = this.shadowRoot?.querySelector('.canvas') as HTMLDivElement
79
- }
80
- return this[canvasRef] as HTMLDivElement
81
- }
82
-
83
- [svgRef]?: SVGElement
84
-
85
- get associationSvg(): SVGElement {
86
- if (!this[svgRef]) {
87
- this[svgRef] = this.shadowRoot?.querySelector('.association') as SVGElement
88
- }
89
- return this[svgRef] as SVGElement
90
- }
91
-
92
- /**
93
- * The width of the canvas element, in pixels
94
- */
95
- @property({ type: Number })
96
- accessor width = defaultCanvasWidth
97
-
98
- /**
99
- * The height of the canvas element, in pixels
100
- */
101
- @property({ type: Number })
102
- accessor height: number = defaultCanvasHeight
103
-
104
- /**
105
- * When set it instruct the visualization workspace to grow over the currently set `width` and `height`
106
- * when a new added item is placed outside the bounds of the workspace.
107
- */
108
- @property({ type: Boolean, reflect: true })
109
- accessor autoResize = false
110
-
111
- /**
112
- * Enables some limited debugging information.
113
- */
114
- @property({ type: Boolean, reflect: true }) accessor debug: boolean | undefined
115
-
116
- /**
117
- * The current scale of the visualization
118
- */
119
- @property({ type: Number }) accessor scale = 1;
120
-
121
- [zoomTimeout]?: number
122
-
123
- gestures = new WorkspaceGestures(this)
124
-
125
- selection = new SelectionManager(this)
126
-
127
- edges = new WorkspaceEdges(this)
128
-
129
- anchors = new AssociationAnchors(this)
130
-
131
- sizing = new WorkspaceSizing(this)
132
-
133
- constructor() {
134
- super()
135
- this.addEventListener('geometrychange', this[geometryChangeHandler].bind(this))
136
- }
137
-
138
- override connectedCallback(): void {
139
- super.connectedCallback()
140
- this.gestures.connect()
141
- this.selection.connect()
142
- this.edges.connect()
143
- this.anchors.connect()
144
- }
145
-
146
- override disconnectedCallback(): void {
147
- super.disconnectedCallback()
148
- this.gestures.disconnect()
149
- this.selection.disconnect()
150
- this.edges.disconnect()
151
- this.anchors.disconnect()
152
- }
153
-
154
- protected override firstUpdated(cp: PropertyValues<this>): void {
155
- super.firstUpdated(cp)
156
- const { top, left } = this.gestures
157
- if (top === null || left === null) {
158
- this.gestures.scrollTo(0, 0)
159
- // this.center();
160
- }
161
- this.edges.listenContent()
162
- }
163
-
164
- protected override willUpdate(cp: PropertyValues<this>): void {
165
- if (cp.has('autoResize')) {
166
- const value = cp.get('autoResize')
167
- if (value === true) {
168
- this.sizing.connect()
169
- } else if (this.sizing.connected) {
170
- this.sizing.disconnect()
171
- }
172
- }
173
- if (cp.has('zoom')) {
174
- this.gestures.updateScale()
175
- }
176
- }
177
-
178
- /**
179
- * Clears the state of the workspace.
180
- */
181
- clear(): void {
182
- this.edges.clear()
183
- this.selection.deselectAll()
184
- }
185
-
186
- /**
187
- * Centers the workspace.
188
- */
189
- center(): void {
190
- const { width: cWidth = defaultCanvasWidth, height: cHeight = defaultCanvasHeight } = this
191
- const { height, width } = this.getBoundingClientRect()
192
- const midWidth = cWidth / 2
193
- const midHeight = cHeight / 2
194
- const left = midWidth - width / 2
195
- const top = midHeight - height / 2
196
- this.gestures.left = -left
197
- this.gestures.top = -top
198
- }
199
-
200
- [notifyZoom](): void {
201
- if (this[zoomTimeout]) {
202
- clearTimeout(this[zoomTimeout])
203
- }
204
- this[zoomTimeout] = setTimeout(() => {
205
- this.dispatchEvent(new Event('zoomchange'))
206
- }, 1) as unknown as number
207
- }
208
-
209
- async [geometryChangeHandler](e: Event): Promise<void> {
210
- const source = e.target as HTMLElement
211
- await this.edges.update(source.dataset.key as string)
212
- }
213
-
214
- override scrollBy(options: ScrollToOptions): void
215
-
216
- override scrollBy(x: number, y: number): void
217
-
218
- /**
219
- * Scrolls the element by the given amount.
220
- * @param {ScrollToOptions|number} xCoordOrOptions The horizontal pixel value that you want to scroll by
221
- * or the scroll options. When passed value is the `ScrollToOptions` interface then
222
- * the second argument is ignored.
223
- * @param {number=} yCoord The vertical pixel value that you want to scroll by.
224
- */
225
- override scrollBy(xCoordOrOptions: ScrollToOptions | number, yCoord?: number | undefined): void {
226
- this.gestures.scrollBy(xCoordOrOptions, yCoord)
227
- }
228
-
229
- override scrollTo(options: ScrollToOptions): void
230
-
231
- override scrollTo(x: number, y: number): void
232
-
233
- /**
234
- * Scrolls to a particular set of coordinates inside the element.
235
- *
236
- * @param xCoordOrOptions The pixel along the horizontal axis of the element
237
- * that you want displayed in the upper left. When passed value is the `ScrollToOptions` interface then
238
- * the second argument is ignored.
239
- * @param yCoord The pixel along the vertical axis of the element that you want displayed in the upper left.
240
- */
241
- override scrollTo(xCoordOrOptions: ScrollToOptions | number, yCoord?: number): void {
242
- this.gestures.scrollTo(xCoordOrOptions, yCoord)
243
- }
244
-
245
- /**
246
- * Scrolls the view if the position defined by `x` and `y` arguments requires
247
- * the view to be moved.
248
- *
249
- * @param x The x coordinate of the point
250
- * @param y The y coordinate of the point
251
- * @returns true if the canvas was moved
252
- */
253
- scrollIfNeeded(x: number, y: number): boolean {
254
- return this.gestures.scrollIfNeeded(x, y)
255
- }
256
-
257
- override render(): TemplateResult {
258
- const { scale, scrollLeft, scrollTop } = this
259
- const styles = {
260
- transform: `scale(${scale}) translate(${scrollLeft}px, ${scrollTop}px)`,
261
- width: `${this.width}px`,
262
- height: `${this.height}px`,
263
- }
264
- return html`
265
- <div class="content canvas" style="${styleMap(styles)}">
266
- ${this.renderLinesTemplate()}
267
- <slot></slot>
268
- </div>
269
- `
270
- }
271
-
272
- /**
273
- * @return {SVGTemplateResult} The template for the associations
274
- */
275
- renderLinesTemplate(): SVGTemplateResult {
276
- const { debug } = this
277
- const { edges } = this.edges
278
- const primarySelected: (string | SVGTemplateResult)[] = []
279
- const secondarySelected: (string | SVGTemplateResult)[] = []
280
- const hovered: (string | SVGTemplateResult)[] = []
281
- const rest: (string | SVGTemplateResult)[] = []
282
- edges.forEach((item) => {
283
- const line = ShapeArtist.line(item, debug)
284
- const { shape } = item
285
- const { selection = {} } = shape
286
- if (selection.primary) {
287
- primarySelected.push(line)
288
- } else if (selection.secondary) {
289
- secondarySelected.push(line)
290
- } else if (selection.hover) {
291
- hovered.push(line)
292
- } else {
293
- rest.push(line)
294
- }
295
- })
296
- const edgesResult = primarySelected.concat(secondarySelected).concat(hovered).concat(rest).reverse()
297
- return svg`
298
- <svg width="100%" height="100%" class="association">
299
- ${edgesResult.length ? edgesResult : ''}
300
- </svg>`
301
- }
302
- }
@@ -1,168 +0,0 @@
1
- import { css } from 'lit'
2
-
3
- export default css`
4
- :host {
5
- display: block;
6
- position: relative;
7
- overflow: hidden;
8
- background-color: var(--workspace-background-color, #e5e5e5);
9
-
10
- --edge-line-color: var(--workspace-association-line-color, var(--md-ref-palette-neutral70));
11
- }
12
-
13
- :host ::slotted(*) {
14
- position: absolute;
15
- z-index: 2;
16
- }
17
-
18
- /* this chess board background was removed after a team meeting, May 2021. */
19
- /* :host {
20
- background-image:
21
- linear-gradient(to right, rgba(226, 226, 226, 0.85), rgba(226, 226, 226, 0.85)),
22
- linear-gradient(to right, black 50%, white 50%),
23
- linear-gradient(to bottom, black 50%, white 50%);
24
- background-blend-mode: normal, difference, normal;
25
- background-size: 1.5em 1.5em;
26
- } */
27
-
28
- .hidden {
29
- display: none;
30
- }
31
-
32
- .content {
33
- position: absolute;
34
- top: 0;
35
- left: 0;
36
- right: 0;
37
- bottom: 0;
38
- background-color: var(--workspace-content-background-color, #e5e5e5);
39
- /* background-color: transparent; */
40
- transform: scale(1) translate(0px, 0px);
41
- transform-origin: top left;
42
- border-radius: var(--workspace-content-border-radius, 12px);
43
- border: 1px var(--workspace-border-color, #c0c0c0) solid;
44
- box-shadow: var(--workspace-content-box-shadow, none);
45
- }
46
-
47
- .content ::slotted(.selected) {
48
- border: 1px var(--selection-color) solid;
49
- }
50
-
51
- .association {
52
- position: absolute;
53
- }
54
-
55
- .association polyline {
56
- stroke-width: 2px;
57
- fill: none;
58
- outline: none;
59
- }
60
-
61
- .association .association-line {
62
- fill: none;
63
- stroke: var(--edge-line-color);
64
- stroke-width: var(--workspace-association-line-width, 4px);
65
- }
66
-
67
- .association .association-line-area {
68
- fill: none;
69
- stroke: transparent;
70
- stroke-width: 28px;
71
- }
72
-
73
- .association-group.hovered .edge-tip.association,
74
- .association .association-line:hover,
75
- .association-group.hovered .association-line {
76
- --edge-line-color: var(--workspace-association-line-hover-color, var(--md-ref-palette-neutral60));
77
- }
78
-
79
- .association-group.selected .edge-tip.association,
80
- .association-group.selected .association-line {
81
- --edge-line-color: var(--workspace-association-line-selection-color, var(--md-ref-palette-primary60));
82
- }
83
-
84
- .selectedSecondary .edge-tip.association,
85
- .selectedSecondary .association-line {
86
- --edge-line-color: var(--workspace-association-line-secondary-selection-color, var(--md-ref-palette-primary70));
87
- }
88
-
89
- /* Edge tips */
90
- .edge-tip {
91
- fill: #607d8b;
92
- stroke: none;
93
- }
94
-
95
- .edge-tip.parent {
96
- fill: var(--md-ref-palette-tertiary60);
97
- }
98
-
99
- .edge-tip.parameter-in {
100
- fill: #ff9e91;
101
- }
102
-
103
- .edge-tip.parameter-out {
104
- fill: #fbc02d;
105
- }
106
-
107
- .edge-tip.association {
108
- stroke: var(--edge-line-color);
109
- stroke-width: 3px;
110
- }
111
-
112
- .parameter-in path {
113
- stroke: #ff9e91;
114
- }
115
-
116
- .parameter-out path {
117
- stroke: #fbc02d;
118
- }
119
-
120
- .edge-vertex {
121
- stroke: transparent;
122
- fill: transparent;
123
- }
124
-
125
- .selected .edge-vertex,
126
- .selectedSecondary .edge-vertex {
127
- stroke: var(--selection-color);
128
- stroke-width: 3px;
129
- }
130
-
131
- /* Edge label */
132
- .association-label {
133
- fill: var(--workspace-edge-label-color, #212121);
134
- font-size: 0.9rem;
135
- user-select: none;
136
- }
137
-
138
- .edge-name-input {
139
- border: 1px #757575 solid;
140
- padding: 4px 6px;
141
- font-size: 1rem;
142
- outline: none;
143
- background-color: var(--workspace-edge-input-background-color, #fff);
144
- color: var(--workspace-edge-input-color, initial);
145
- }
146
-
147
- .edge-name-input:focus {
148
- border-color: var(--primary-color);
149
- }
150
-
151
- .selection-zone {
152
- z-index: 100;
153
- position: absolute;
154
- width: 4px;
155
- height: 4px;
156
- border: 1px solid #2196f3;
157
- background-color: var(--workspace-selection-zone-background-color, rgb(3 169 244 / 0.54));
158
- }
159
-
160
- /* edges selection zones */
161
-
162
- .association-draggable {
163
- fill: white;
164
- stroke: #424242;
165
- stroke-width: 2;
166
- cursor: pointer;
167
- }
168
- `
@@ -1,112 +0,0 @@
1
- import { Point } from './Point.js'
2
- import { closetsPair } from './PositionUtils.js'
3
-
4
- export const anchorPadding = 40
5
-
6
- /**
7
- * Creates an array of pots that can be placed on the East side of a rectangular object.
8
- *
9
- * | ------ | o
10
- * | |
11
- * | | o
12
- * | |
13
- * | ------ | o
14
- *
15
- * @param rect The object DOMRect
16
- * @param padding The padding from the top/bottom
17
- */
18
- export function readEastAnchorPoints(rect: DOMRect, padding: number): Point[] {
19
- const { right, top, bottom, height } = rect
20
- const middle = height / 2
21
- const p1 = new Point(right, top + padding)
22
- const p2 = new Point(right, top + middle)
23
- const p3 = new Point(right, bottom - padding)
24
- return [p1, p2, p3]
25
- }
26
-
27
- /**
28
- * Creates an array of pots that can be placed on the West side of a rectangular object.
29
- *
30
- * o | ------ |
31
- * | |
32
- * o | |
33
- * | |
34
- * o | ------ |
35
- *
36
- * @param {DOMRect} rect The object DOMRect
37
- * @param {number} padding The padding from the top/bottom
38
- * @returns {Point[]}
39
- */
40
- export function readWestAnchorPoints(rect: DOMRect, padding: number): Point[] {
41
- const { left, top, bottom, height } = rect
42
- const middle = height / 2
43
- const p1 = new Point(left, top + padding)
44
- const p2 = new Point(left, top + middle)
45
- const p3 = new Point(left, bottom - padding)
46
- return [p1, p2, p3]
47
- }
48
-
49
- /**
50
- * Creates an array of pots that can be placed on the North side of a rectangular object.
51
- *
52
- * o o o
53
- * | ------- |
54
- * | |
55
- * | |
56
- * | |
57
- * | ------- |
58
- *
59
- * @param rect The object DOMRect
60
- * @param padding The padding from the left/right
61
- */
62
- export function readNorthAnchorPoints(rect: DOMRect, padding: number): Point[] {
63
- const { left, top, width, right } = rect
64
- const middle = width / 2
65
- const p1 = new Point(left + padding, top)
66
- const p2 = new Point(left + middle, top)
67
- const p3 = new Point(right - padding, top)
68
- return [p1, p2, p3]
69
- }
70
-
71
- /**
72
- * Creates an array of pots that can be placed on the South side of a rectangular object.
73
- *
74
- * | ------- |
75
- * | |
76
- * | |
77
- * | |
78
- * | ------- |
79
- * o o o
80
- *
81
- * @param rect The object DOMRect
82
- * @param padding The padding from the left/right
83
- */
84
- export function readSouthAnchorPoints(rect: DOMRect, padding: number): Point[] {
85
- const { left, bottom, width, right } = rect
86
- const middle = width / 2
87
- const p1 = new Point(left + padding, bottom)
88
- const p2 = new Point(left + middle, bottom)
89
- const p3 = new Point(right - padding, bottom)
90
- return [p1, p2, p3]
91
- }
92
-
93
- /**
94
- * Finds a pair of virtual (created on the shape based on the size) anchor points.
95
- *
96
- * @param padding The padding from the left/right/top/bottom
97
- */
98
- export function findClosestAnchors(source: DOMRect, target: DOMRect, padding: number): Point[] {
99
- const sources = [
100
- ...readEastAnchorPoints(source, padding),
101
- ...readWestAnchorPoints(source, padding),
102
- ...readNorthAnchorPoints(source, padding),
103
- ...readSouthAnchorPoints(source, padding),
104
- ]
105
- const targets = [
106
- ...readEastAnchorPoints(target, padding),
107
- ...readWestAnchorPoints(target, padding),
108
- ...readNorthAnchorPoints(target, padding),
109
- ...readSouthAnchorPoints(target, padding),
110
- ]
111
- return closetsPair(sources, targets) as Point[]
112
- }
@@ -1,53 +0,0 @@
1
- import VizWorkspaceElement from '../elements/VizWorkspaceElement.js'
2
- import { Point } from './Point.js'
3
- import { closetsPair, getRelativeClickPoint } from './PositionUtils.js'
4
- import { IWorkspaceEdge } from './types.js'
5
-
6
- /**
7
- * @param element The association anchor object
8
- * @returns The x,y position of the anchor.
9
- */
10
- export function anchorToPoint(element: HTMLElement, workspace: VizWorkspaceElement): Point {
11
- const box = element.getBoundingClientRect()
12
- let { x, y } = box
13
- const { dataset } = element
14
- if (dataset.verticalOffset) {
15
- const vo = Number(dataset.verticalOffset)
16
- if (!Number.isNaN(vo)) {
17
- y += vo
18
- }
19
- }
20
- if (dataset.horizontalOffset) {
21
- const ho = Number(dataset.horizontalOffset)
22
- if (!Number.isNaN(ho)) {
23
- x += ho
24
- }
25
- }
26
- return getRelativeClickPoint(x, y, workspace)
27
- }
28
-
29
- export function closestAnchors(
30
- elm1: HTMLElement,
31
- elm2: HTMLElement,
32
- workspace: VizWorkspaceElement,
33
- others: IWorkspaceEdge[] = []
34
- ): Point[] | null {
35
- const dom1 = elm1.shadowRoot || elm1
36
- const dom2 = elm2.shadowRoot || elm2
37
- const anchors1 = Array.from(dom1.querySelectorAll('[data-association-slot]')) as HTMLElement[]
38
- const anchors2 = Array.from(dom2.querySelectorAll('[data-association-slot]')) as HTMLElement[]
39
- if (!anchors1.length || !anchors2.length) {
40
- return null
41
- }
42
- const points1 = anchors1.map((item) => anchorToPoint(item, workspace))
43
- const points2 = anchors2.map((item) => anchorToPoint(item, workspace))
44
- const avoid1: Point[] = []
45
- const avoid2: Point[] = []
46
- others.forEach((i) => {
47
- avoid1.push(i.shape.line.startPoint)
48
- avoid2.push(i.shape.line.startPoint)
49
- avoid1.push(i.shape.line.endPoint)
50
- avoid2.push(i.shape.line.endPoint)
51
- })
52
- return closetsPair(points1, points2, avoid1, avoid2)
53
- }