@api-client/ui 0.0.4 → 0.0.7

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 (756) hide show
  1. package/demo/elements/http/http-assertions.html +3 -0
  2. package/demo/elements/http/http-assertions.ts +1 -1
  3. package/demo/elements/http/http-flows.html +23 -0
  4. package/demo/elements/http/http-flows.ts +92 -0
  5. package/demo/elements/http/index.html +3 -0
  6. package/demo/pages/http-project/main.ts +5 -6
  7. package/dist/amf/lib/AmfParameters.js +0 -4
  8. package/dist/amf/lib/AmfParameters.js.map +1 -1
  9. package/dist/amf/lib/navigation-layout/EndpointsTree.js +0 -2
  10. package/dist/amf/lib/navigation-layout/EndpointsTree.js.map +1 -1
  11. package/dist/amf/lib/navigation-layout/NaturalTree.js +0 -2
  12. package/dist/amf/lib/navigation-layout/NaturalTree.js.map +1 -1
  13. package/dist/amf/store/AmfGraphStore.js +0 -2
  14. package/dist/amf/store/AmfGraphStore.js.map +1 -1
  15. package/dist/amf/store/AmfStore.js +0 -7
  16. package/dist/amf/store/AmfStore.js.map +1 -1
  17. package/dist/bindings/base/HttpClientStoreBindings.js +4 -1
  18. package/dist/bindings/base/HttpClientStoreBindings.js.map +1 -1
  19. package/dist/bindings/base/PlatformBindings.js +6 -10
  20. package/dist/bindings/base/PlatformBindings.js.map +1 -1
  21. package/dist/bindings/base/ProxyBindings.js +9 -6
  22. package/dist/bindings/base/ProxyBindings.js.map +1 -1
  23. package/dist/bindings/base/SharedWorkerThread.js +4 -1
  24. package/dist/bindings/base/SharedWorkerThread.js.map +1 -1
  25. package/dist/bindings/base/StoreBindings.js +162 -170
  26. package/dist/bindings/base/StoreBindings.js.map +1 -1
  27. package/dist/bindings/web/WebConfigurationBindings.js +22 -24
  28. package/dist/bindings/web/WebConfigurationBindings.js.map +1 -1
  29. package/dist/bindings/web/WebFileBindings.js +7 -4
  30. package/dist/bindings/web/WebFileBindings.js.map +1 -1
  31. package/dist/bindings/web/WebHttpClientStoreBindings.js +19 -21
  32. package/dist/bindings/web/WebHttpClientStoreBindings.js.map +1 -1
  33. package/dist/bindings/web/WebNavigationBindings.js +4 -1
  34. package/dist/bindings/web/WebNavigationBindings.js.map +1 -1
  35. package/dist/bindings/web/WebProxyBindings.js +5 -6
  36. package/dist/bindings/web/WebProxyBindings.js.map +1 -1
  37. package/dist/bindings/web/WebStoreBindings.js +39 -44
  38. package/dist/bindings/web/WebStoreBindings.js.map +1 -1
  39. package/dist/contextual-menu/ContextualMenu.js +10 -19
  40. package/dist/contextual-menu/ContextualMenu.js.map +1 -1
  41. package/dist/contextual-menu/ContextualMenuElement.js +4 -32
  42. package/dist/contextual-menu/ContextualMenuElement.js.map +1 -1
  43. package/dist/contextual-menu/MenuItem.js +0 -12
  44. package/dist/contextual-menu/MenuItem.js.map +1 -1
  45. package/dist/define/amf/api-annotation-document.js +1 -1
  46. package/dist/define/amf/api-annotation-document.js.map +1 -1
  47. package/dist/define/amf/api-authorization-editor.js +1 -1
  48. package/dist/define/amf/api-authorization-editor.js.map +1 -1
  49. package/dist/define/amf/api-channel-document.js +1 -1
  50. package/dist/define/amf/api-channel-document.js.map +1 -1
  51. package/dist/define/amf/api-documentation-document.js +1 -1
  52. package/dist/define/amf/api-documentation-document.js.map +1 -1
  53. package/dist/define/amf/api-documentation.js +1 -1
  54. package/dist/define/amf/api-documentation.js.map +1 -1
  55. package/dist/define/amf/api-navigation.js +1 -1
  56. package/dist/define/amf/api-navigation.js.map +1 -1
  57. package/dist/define/amf/api-operation-document.js +1 -1
  58. package/dist/define/amf/api-operation-document.js.map +1 -1
  59. package/dist/define/amf/api-parameter-document.js +1 -1
  60. package/dist/define/amf/api-parameter-document.js.map +1 -1
  61. package/dist/define/amf/api-parametrized-security-scheme.js +1 -1
  62. package/dist/define/amf/api-parametrized-security-scheme.js.map +1 -1
  63. package/dist/define/amf/api-payload-document.js +1 -1
  64. package/dist/define/amf/api-payload-document.js.map +1 -1
  65. package/dist/define/amf/api-request-document.js +1 -1
  66. package/dist/define/amf/api-request-document.js.map +1 -1
  67. package/dist/define/amf/api-request-editor.js +1 -1
  68. package/dist/define/amf/api-request-editor.js.map +1 -1
  69. package/dist/define/amf/api-request.js +1 -1
  70. package/dist/define/amf/api-request.js.map +1 -1
  71. package/dist/define/amf/api-resource-document.js +1 -1
  72. package/dist/define/amf/api-resource-document.js.map +1 -1
  73. package/dist/define/amf/api-response-document.js +1 -1
  74. package/dist/define/amf/api-response-document.js.map +1 -1
  75. package/dist/define/amf/api-schema-document.js +1 -1
  76. package/dist/define/amf/api-schema-document.js.map +1 -1
  77. package/dist/define/amf/api-security-document.js +1 -1
  78. package/dist/define/amf/api-security-document.js.map +1 -1
  79. package/dist/define/amf/api-security-requirement-document.js +1 -1
  80. package/dist/define/amf/api-security-requirement-document.js.map +1 -1
  81. package/dist/define/amf/api-server-picker.js +1 -1
  82. package/dist/define/amf/api-server-picker.js.map +1 -1
  83. package/dist/define/amf/api-summary.js +1 -1
  84. package/dist/define/amf/api-summary.js.map +1 -1
  85. package/dist/define/amf/authorization/amf-apikey-authorization.js +1 -1
  86. package/dist/define/amf/authorization/amf-apikey-authorization.js.map +1 -1
  87. package/dist/define/amf/authorization/amf-basic-authorization.js +1 -1
  88. package/dist/define/amf/authorization/amf-basic-authorization.js.map +1 -1
  89. package/dist/define/amf/authorization/amf-bearer-authorization.js +1 -1
  90. package/dist/define/amf/authorization/amf-bearer-authorization.js.map +1 -1
  91. package/dist/define/amf/authorization/amf-oauth2-authorization.js +1 -1
  92. package/dist/define/amf/authorization/amf-oauth2-authorization.js.map +1 -1
  93. package/dist/define/amf/authorization/amf-oidc-authorization.js +1 -1
  94. package/dist/define/amf/authorization/amf-oidc-authorization.js.map +1 -1
  95. package/dist/define/amf/authorization/amf-passthrough-authorization.js +1 -1
  96. package/dist/define/amf/authorization/amf-passthrough-authorization.js.map +1 -1
  97. package/dist/define/amf/authorization/amf-ramlcustom-authorization.js +1 -1
  98. package/dist/define/amf/authorization/amf-ramlcustom-authorization.js.map +1 -1
  99. package/dist/define/authorization/apikey-authorization.js +1 -1
  100. package/dist/define/authorization/apikey-authorization.js.map +1 -1
  101. package/dist/define/authorization/basic-authorization.js +1 -1
  102. package/dist/define/authorization/basic-authorization.js.map +1 -1
  103. package/dist/define/authorization/bearer-authorization.js +1 -1
  104. package/dist/define/authorization/bearer-authorization.js.map +1 -1
  105. package/dist/define/authorization/cc-authorization.js +1 -1
  106. package/dist/define/authorization/cc-authorization.js.map +1 -1
  107. package/dist/define/authorization/ntlm-authorization.js +1 -1
  108. package/dist/define/authorization/ntlm-authorization.js.map +1 -1
  109. package/dist/define/authorization/oauth2-authorization.js +1 -1
  110. package/dist/define/authorization/oauth2-authorization.js.map +1 -1
  111. package/dist/define/authorization/oidc-authorization.js +1 -1
  112. package/dist/define/authorization/oidc-authorization.js.map +1 -1
  113. package/dist/define/contextual-menu/contextual-menu.js +1 -1
  114. package/dist/define/contextual-menu/contextual-menu.js.map +1 -1
  115. package/dist/define/dialog/confirm-delete-dialog.js +1 -1
  116. package/dist/define/dialog/confirm-delete-dialog.js.map +1 -1
  117. package/dist/define/dialog/delete-cookie-action-dialog.d.ts +10 -0
  118. package/dist/define/dialog/delete-cookie-action-dialog.d.ts.map +1 -0
  119. package/dist/define/dialog/delete-cookie-action-dialog.js +14 -0
  120. package/dist/define/dialog/delete-cookie-action-dialog.js.map +1 -0
  121. package/dist/define/dialog/rename-dialog.js +1 -1
  122. package/dist/define/dialog/rename-dialog.js.map +1 -1
  123. package/dist/define/dialog/set-cookie-action-dialog.d.ts +10 -0
  124. package/dist/define/dialog/set-cookie-action-dialog.d.ts.map +1 -0
  125. package/dist/define/dialog/set-cookie-action-dialog.js +14 -0
  126. package/dist/define/dialog/set-cookie-action-dialog.js.map +1 -0
  127. package/dist/define/files/share-file.js +1 -1
  128. package/dist/define/files/share-file.js.map +1 -1
  129. package/dist/define/har/har-viewer.js +1 -1
  130. package/dist/define/har/har-viewer.js.map +1 -1
  131. package/dist/define/highlight/marked-highlight.js +1 -1
  132. package/dist/define/highlight/marked-highlight.js.map +1 -1
  133. package/dist/define/highlight/prism-highlight.js +1 -1
  134. package/dist/define/highlight/prism-highlight.js.map +1 -1
  135. package/dist/define/http/http-assertions.d.ts +1 -1
  136. package/dist/define/http/http-assertions.d.ts.map +1 -1
  137. package/dist/define/http/http-assertions.js +3 -3
  138. package/dist/define/http/http-assertions.js.map +1 -1
  139. package/dist/define/http/http-body-editor.js +1 -1
  140. package/dist/define/http/http-body-editor.js.map +1 -1
  141. package/dist/define/http/http-body-multipart-editor.js +1 -1
  142. package/dist/define/http/http-body-multipart-editor.js.map +1 -1
  143. package/dist/define/http/http-body-text-editor.js +1 -1
  144. package/dist/define/http/http-body-text-editor.js.map +1 -1
  145. package/dist/define/http/http-body-urlencoded-editor.js +1 -1
  146. package/dist/define/http/http-body-urlencoded-editor.js.map +1 -1
  147. package/dist/define/http/http-flows.d.ts +10 -0
  148. package/dist/define/http/http-flows.d.ts.map +1 -0
  149. package/dist/define/http/http-flows.js +13 -0
  150. package/dist/define/http/http-flows.js.map +1 -0
  151. package/dist/define/http/http-headers-form.js +1 -1
  152. package/dist/define/http/http-headers-form.js.map +1 -1
  153. package/dist/define/http/http-log-body.js +1 -1
  154. package/dist/define/http/http-log-body.js.map +1 -1
  155. package/dist/define/http/http-log-headers.js +1 -1
  156. package/dist/define/http/http-log-headers.js.map +1 -1
  157. package/dist/define/http/http-log-timings.js +1 -1
  158. package/dist/define/http/http-log-timings.js.map +1 -1
  159. package/dist/define/http/http-request-config.js +1 -1
  160. package/dist/define/http/http-request-config.js.map +1 -1
  161. package/dist/define/http/http-request-editor.js +1 -1
  162. package/dist/define/http/http-request-editor.js.map +1 -1
  163. package/dist/define/http/http-request-log.js +1 -1
  164. package/dist/define/http/http-request-log.js.map +1 -1
  165. package/dist/define/http/http-snippets.js +1 -1
  166. package/dist/define/http/http-snippets.js.map +1 -1
  167. package/dist/define/http/http-url-input.js +1 -1
  168. package/dist/define/http/http-url-input.js.map +1 -1
  169. package/dist/define/http/http-url-params-form.js +1 -1
  170. package/dist/define/http/http-url-params-form.js.map +1 -1
  171. package/dist/define/http-project/http-project-request-history.js +1 -1
  172. package/dist/define/http-project/http-project-request-history.js.map +1 -1
  173. package/dist/define/http-project/http-project-request.js +2 -2
  174. package/dist/define/http-project/http-project-request.js.map +1 -1
  175. package/dist/define/http-project/project-navigation.js +1 -1
  176. package/dist/define/http-project/project-navigation.js.map +1 -1
  177. package/dist/define/http-project/project-run-report.js +1 -1
  178. package/dist/define/http-project/project-run-report.js.map +1 -1
  179. package/dist/define/http-project/project-runner.js +2 -2
  180. package/dist/define/http-project/project-runner.js.map +1 -1
  181. package/dist/define/layout/split-view.js +1 -1
  182. package/dist/define/layout/split-view.js.map +1 -1
  183. package/dist/define/schema-design/schema-design-navigation.js +1 -1
  184. package/dist/define/schema-design/schema-design-navigation.js.map +1 -1
  185. package/dist/define/schema-design/schema-namespace-selector.js +1 -1
  186. package/dist/define/schema-design/schema-namespace-selector.js.map +1 -1
  187. package/dist/define/ui/ui-button.js +1 -1
  188. package/dist/define/ui/ui-button.js.map +1 -1
  189. package/dist/define/ui/ui-chip.js +1 -1
  190. package/dist/define/ui/ui-chip.js.map +1 -1
  191. package/dist/define/ui/ui-collapse.js +1 -1
  192. package/dist/define/ui/ui-collapse.js.map +1 -1
  193. package/dist/define/ui/ui-dialog.js +1 -1
  194. package/dist/define/ui/ui-dialog.js.map +1 -1
  195. package/dist/define/ui/ui-divider.d.ts +4 -1
  196. package/dist/define/ui/ui-divider.d.ts.map +1 -1
  197. package/dist/define/ui/ui-divider.js +11 -2
  198. package/dist/define/ui/ui-divider.js.map +1 -1
  199. package/dist/define/ui/ui-dropdown-list.js +1 -1
  200. package/dist/define/ui/ui-dropdown-list.js.map +1 -1
  201. package/dist/define/ui/ui-icon-button.js +1 -1
  202. package/dist/define/ui/ui-icon-button.js.map +1 -1
  203. package/dist/define/ui/ui-icon.js +1 -1
  204. package/dist/define/ui/ui-icon.js.map +1 -1
  205. package/dist/define/ui/ui-list-item.js +1 -1
  206. package/dist/define/ui/ui-list-item.js.map +1 -1
  207. package/dist/define/ui/ui-list.js +1 -1
  208. package/dist/define/ui/ui-list.js.map +1 -1
  209. package/dist/define/ui/ui-listbox.js +1 -1
  210. package/dist/define/ui/ui-listbox.js.map +1 -1
  211. package/dist/define/ui/ui-progress.js +1 -1
  212. package/dist/define/ui/ui-progress.js.map +1 -1
  213. package/dist/define/ui/ui-segmented-button-set.js +1 -1
  214. package/dist/define/ui/ui-segmented-button-set.js.map +1 -1
  215. package/dist/define/ui/ui-segmented-button.js +1 -1
  216. package/dist/define/ui/ui-segmented-button.js.map +1 -1
  217. package/dist/define/ui/ui-snackbar.js +1 -1
  218. package/dist/define/ui/ui-snackbar.js.map +1 -1
  219. package/dist/define/ui/ui-tab.js +1 -1
  220. package/dist/define/ui/ui-tab.js.map +1 -1
  221. package/dist/define/ui/ui-tabs.js +1 -1
  222. package/dist/define/ui/ui-tabs.js.map +1 -1
  223. package/dist/directives/data-attr.js +0 -1
  224. package/dist/directives/data-attr.js.map +1 -1
  225. package/dist/elements/ApiElement.d.ts +4 -0
  226. package/dist/elements/ApiElement.d.ts.map +1 -1
  227. package/dist/elements/ApiElement.js +6 -7
  228. package/dist/elements/ApiElement.js.map +1 -1
  229. package/dist/elements/amf/ApiAnnotationDocument.element.js +0 -2
  230. package/dist/elements/amf/ApiAnnotationDocument.element.js.map +1 -1
  231. package/dist/elements/amf/ApiAuthorizationEditor.element.js +1 -33
  232. package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
  233. package/dist/elements/amf/ApiDocumentation.element.js +0 -91
  234. package/dist/elements/amf/ApiDocumentation.element.js.map +1 -1
  235. package/dist/elements/amf/ApiDocumentationBase.js +0 -9
  236. package/dist/elements/amf/ApiDocumentationBase.js.map +1 -1
  237. package/dist/elements/amf/ApiDocumentationDocument.element.js +0 -1
  238. package/dist/elements/amf/ApiDocumentationDocument.element.js.map +1 -1
  239. package/dist/elements/amf/ApiNavigation.element.js +0 -97
  240. package/dist/elements/amf/ApiNavigation.element.js.map +1 -1
  241. package/dist/elements/amf/ApiOperationDocument.element.d.ts.map +1 -1
  242. package/dist/elements/amf/ApiOperationDocument.element.js +2 -77
  243. package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
  244. package/dist/elements/amf/ApiParameterDocument.element.js +0 -3
  245. package/dist/elements/amf/ApiParameterDocument.element.js.map +1 -1
  246. package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js +0 -1
  247. package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js.map +1 -1
  248. package/dist/elements/amf/ApiPayloadDocument.element.js +0 -1
  249. package/dist/elements/amf/ApiPayloadDocument.element.js.map +1 -1
  250. package/dist/elements/amf/ApiRequest.element.js +1 -79
  251. package/dist/elements/amf/ApiRequest.element.js.map +1 -1
  252. package/dist/elements/amf/ApiRequestDocument.element.js +0 -38
  253. package/dist/elements/amf/ApiRequestDocument.element.js.map +1 -1
  254. package/dist/elements/amf/ApiRequestEditor.element.d.ts +0 -1
  255. package/dist/elements/amf/ApiRequestEditor.element.d.ts.map +1 -1
  256. package/dist/elements/amf/ApiRequestEditor.element.js +0 -121
  257. package/dist/elements/amf/ApiRequestEditor.element.js.map +1 -1
  258. package/dist/elements/amf/ApiResourceDocument.element.js +0 -75
  259. package/dist/elements/amf/ApiResourceDocument.element.js.map +1 -1
  260. package/dist/elements/amf/ApiResponseDocument.element.js +0 -17
  261. package/dist/elements/amf/ApiResponseDocument.element.js.map +1 -1
  262. package/dist/elements/amf/ApiSchemaDocument.element.js +0 -28
  263. package/dist/elements/amf/ApiSchemaDocument.element.js.map +1 -1
  264. package/dist/elements/amf/ApiSecurityDocument.element.js +0 -28
  265. package/dist/elements/amf/ApiSecurityDocument.element.js.map +1 -1
  266. package/dist/elements/amf/ApiSecurityRequirementDocument.element.js +0 -1
  267. package/dist/elements/amf/ApiSecurityRequirementDocument.element.js.map +1 -1
  268. package/dist/elements/amf/ApiServerPicker.element.js +2 -65
  269. package/dist/elements/amf/ApiServerPicker.element.js.map +1 -1
  270. package/dist/elements/amf/ApiSummary.element.js +0 -26
  271. package/dist/elements/amf/ApiSummary.element.js.map +1 -1
  272. package/dist/elements/amf/authorization/AmfApiKey.js +0 -5
  273. package/dist/elements/amf/authorization/AmfApiKey.js.map +1 -1
  274. package/dist/elements/amf/authorization/AmfBasic.js +0 -4
  275. package/dist/elements/amf/authorization/AmfBasic.js.map +1 -1
  276. package/dist/elements/amf/authorization/AmfBearer.js +0 -4
  277. package/dist/elements/amf/authorization/AmfBearer.js.map +1 -1
  278. package/dist/elements/amf/authorization/AmfOauth2.js +0 -13
  279. package/dist/elements/amf/authorization/AmfOauth2.js.map +1 -1
  280. package/dist/elements/amf/authorization/AmfOidc.js +0 -4
  281. package/dist/elements/amf/authorization/AmfOidc.js.map +1 -1
  282. package/dist/elements/amf/authorization/AmfPassThrough.js +0 -6
  283. package/dist/elements/amf/authorization/AmfPassThrough.js.map +1 -1
  284. package/dist/elements/amf/authorization/AmfRamlCustom.js +0 -6
  285. package/dist/elements/amf/authorization/AmfRamlCustom.js.map +1 -1
  286. package/dist/elements/authorization/OAuth2Authorize.js +0 -14
  287. package/dist/elements/authorization/OAuth2Authorize.js.map +1 -1
  288. package/dist/elements/authorization/OidcAuthorize.js +0 -14
  289. package/dist/elements/authorization/OidcAuthorize.js.map +1 -1
  290. package/dist/elements/authorization/ui/ApiKeyAuthorization.js +0 -2
  291. package/dist/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
  292. package/dist/elements/authorization/ui/Authorization.d.ts +2 -1
  293. package/dist/elements/authorization/ui/Authorization.d.ts.map +1 -1
  294. package/dist/elements/authorization/ui/Authorization.js +18 -35
  295. package/dist/elements/authorization/ui/Authorization.js.map +1 -1
  296. package/dist/elements/authorization/ui/CcAuthorization.js +1 -3
  297. package/dist/elements/authorization/ui/CcAuthorization.js.map +1 -1
  298. package/dist/elements/authorization/ui/OAuth2Authorization.js +21 -50
  299. package/dist/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
  300. package/dist/elements/authorization/ui/OidcAuthorization.js +4 -6
  301. package/dist/elements/authorization/ui/OidcAuthorization.js.map +1 -1
  302. package/dist/elements/code/HttpSnippets.js +9 -8
  303. package/dist/elements/code/HttpSnippets.js.map +1 -1
  304. package/dist/elements/dialog/ConfirmDelete.js +0 -12
  305. package/dist/elements/dialog/ConfirmDelete.js.map +1 -1
  306. package/dist/elements/dialog/DeleteCookieAction.element.d.ts +20 -0
  307. package/dist/elements/dialog/DeleteCookieAction.element.d.ts.map +1 -0
  308. package/dist/elements/dialog/DeleteCookieAction.element.js +93 -0
  309. package/dist/elements/dialog/DeleteCookieAction.element.js.map +1 -0
  310. package/dist/elements/dialog/DeleteCookieAction.styles.d.ts +3 -0
  311. package/dist/elements/dialog/DeleteCookieAction.styles.d.ts.map +1 -0
  312. package/dist/elements/dialog/DeleteCookieAction.styles.js +13 -0
  313. package/dist/elements/dialog/DeleteCookieAction.styles.js.map +1 -0
  314. package/dist/elements/dialog/Rename.d.ts +7 -6
  315. package/dist/elements/dialog/Rename.d.ts.map +1 -1
  316. package/dist/elements/dialog/Rename.js +7 -12
  317. package/dist/elements/dialog/Rename.js.map +1 -1
  318. package/dist/elements/dialog/SetCookieAction.element.d.ts +22 -0
  319. package/dist/elements/dialog/SetCookieAction.element.d.ts.map +1 -0
  320. package/dist/elements/dialog/SetCookieAction.element.js +173 -0
  321. package/dist/elements/dialog/SetCookieAction.element.js.map +1 -0
  322. package/dist/elements/environment/EnvironmentEditor.d.ts +24 -3
  323. package/dist/elements/environment/EnvironmentEditor.d.ts.map +1 -1
  324. package/dist/elements/environment/EnvironmentEditor.js +73 -30
  325. package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
  326. package/dist/elements/environment/EnvironmentEditor.styles.d.ts.map +1 -1
  327. package/dist/elements/environment/EnvironmentEditor.styles.js +5 -0
  328. package/dist/elements/environment/EnvironmentEditor.styles.js.map +1 -1
  329. package/dist/elements/environment/ServerEditor.d.ts +3 -3
  330. package/dist/elements/environment/ServerEditor.d.ts.map +1 -1
  331. package/dist/elements/environment/ServerEditor.js +10 -51
  332. package/dist/elements/environment/ServerEditor.js.map +1 -1
  333. package/dist/elements/environment/VariablesEditor.d.ts +0 -1
  334. package/dist/elements/environment/VariablesEditor.d.ts.map +1 -1
  335. package/dist/elements/environment/VariablesEditor.js +10 -18
  336. package/dist/elements/environment/VariablesEditor.js.map +1 -1
  337. package/dist/elements/files/ShareFile.js +19 -57
  338. package/dist/elements/files/ShareFile.js.map +1 -1
  339. package/dist/elements/har/HarViewer.js +6 -7
  340. package/dist/elements/har/HarViewer.js.map +1 -1
  341. package/dist/elements/highlight/MarkedHighlight.js +4 -56
  342. package/dist/elements/highlight/MarkedHighlight.js.map +1 -1
  343. package/dist/elements/highlight/Prism.styles.d.ts.map +1 -1
  344. package/dist/elements/highlight/Prism.styles.js +12 -5
  345. package/dist/elements/highlight/Prism.styles.js.map +1 -1
  346. package/dist/elements/highlight/PrismHighlight.js +9 -18
  347. package/dist/elements/highlight/PrismHighlight.js.map +1 -1
  348. package/dist/elements/highlight/PrismHighlighter.js +4 -6
  349. package/dist/elements/highlight/PrismHighlighter.js.map +1 -1
  350. package/dist/elements/http/BodyEditor.d.ts +0 -4
  351. package/dist/elements/http/BodyEditor.d.ts.map +1 -1
  352. package/dist/elements/http/BodyEditor.js +31 -49
  353. package/dist/elements/http/BodyEditor.js.map +1 -1
  354. package/dist/elements/http/BodyMultipartEditor.d.ts +3 -16
  355. package/dist/elements/http/BodyMultipartEditor.d.ts.map +1 -1
  356. package/dist/elements/http/BodyMultipartEditor.js +20 -37
  357. package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
  358. package/dist/elements/http/BodyTextEditor.d.ts +0 -1
  359. package/dist/elements/http/BodyTextEditor.d.ts.map +1 -1
  360. package/dist/elements/http/BodyTextEditor.js +2 -18
  361. package/dist/elements/http/BodyTextEditor.js.map +1 -1
  362. package/dist/elements/http/BodyUrlEncodedEditor.d.ts +3 -3
  363. package/dist/elements/http/BodyUrlEncodedEditor.d.ts.map +1 -1
  364. package/dist/elements/http/BodyUrlEncodedEditor.js +23 -26
  365. package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
  366. package/dist/elements/http/HeadersForm.d.ts +0 -4
  367. package/dist/elements/http/HeadersForm.d.ts.map +1 -1
  368. package/dist/elements/http/HeadersForm.js +16 -23
  369. package/dist/elements/http/HeadersForm.js.map +1 -1
  370. package/dist/elements/http/HttpAssertions.element.d.ts +55 -0
  371. package/dist/elements/http/HttpAssertions.element.d.ts.map +1 -0
  372. package/dist/elements/http/HttpAssertions.element.js +264 -0
  373. package/dist/elements/http/HttpAssertions.element.js.map +1 -0
  374. package/dist/elements/http/HttpAssertions.styles.d.ts.map +1 -1
  375. package/dist/elements/http/HttpAssertions.styles.js +7 -156
  376. package/dist/elements/http/HttpAssertions.styles.js.map +1 -1
  377. package/dist/elements/http/HttpFlows.common.d.ts +3 -0
  378. package/dist/elements/http/HttpFlows.common.d.ts.map +1 -0
  379. package/dist/elements/http/HttpFlows.common.js +181 -0
  380. package/dist/elements/http/HttpFlows.common.js.map +1 -0
  381. package/dist/elements/http/HttpFlows.element.d.ts +97 -0
  382. package/dist/elements/http/HttpFlows.element.d.ts.map +1 -0
  383. package/dist/elements/http/HttpFlows.element.js +684 -0
  384. package/dist/elements/http/HttpFlows.element.js.map +1 -0
  385. package/dist/elements/http/HttpFlows.styles.d.ts +3 -0
  386. package/dist/elements/http/HttpFlows.styles.d.ts.map +1 -0
  387. package/dist/elements/http/HttpFlows.styles.js +28 -0
  388. package/dist/elements/http/HttpFlows.styles.js.map +1 -0
  389. package/dist/elements/http/HttpFlowsUi.d.ts +172 -0
  390. package/dist/elements/http/HttpFlowsUi.d.ts.map +1 -0
  391. package/dist/elements/http/HttpFlowsUi.js +1256 -0
  392. package/dist/elements/http/HttpFlowsUi.js.map +1 -0
  393. package/dist/elements/http/LogBody.js +10 -21
  394. package/dist/elements/http/LogBody.js.map +1 -1
  395. package/dist/elements/http/LogHeaders.js +4 -23
  396. package/dist/elements/http/LogHeaders.js.map +1 -1
  397. package/dist/elements/http/LogTimings.js +11 -13
  398. package/dist/elements/http/LogTimings.js.map +1 -1
  399. package/dist/elements/http/RequestConfigElement.d.ts +0 -1
  400. package/dist/elements/http/RequestConfigElement.d.ts.map +1 -1
  401. package/dist/elements/http/RequestConfigElement.js +15 -15
  402. package/dist/elements/http/RequestConfigElement.js.map +1 -1
  403. package/dist/elements/http/RequestEditor.d.ts +10 -10
  404. package/dist/elements/http/RequestEditor.d.ts.map +1 -1
  405. package/dist/elements/http/RequestEditor.js +116 -111
  406. package/dist/elements/http/RequestEditor.js.map +1 -1
  407. package/dist/elements/http/RequestLog.js +9 -14
  408. package/dist/elements/http/RequestLog.js.map +1 -1
  409. package/dist/elements/http/UrlInput.d.ts +3 -3
  410. package/dist/elements/http/UrlInput.d.ts.map +1 -1
  411. package/dist/elements/http/UrlInput.js +17 -27
  412. package/dist/elements/http/UrlInput.js.map +1 -1
  413. package/dist/elements/http/UrlParamsForm.d.ts +0 -1
  414. package/dist/elements/http/UrlParamsForm.d.ts.map +1 -1
  415. package/dist/elements/http/UrlParamsForm.js +16 -16
  416. package/dist/elements/http/UrlParamsForm.js.map +1 -1
  417. package/dist/elements/layout/LayoutManager.js +16 -24
  418. package/dist/elements/layout/LayoutManager.js.map +1 -1
  419. package/dist/elements/layout/LayoutPanelElement.js +17 -23
  420. package/dist/elements/layout/LayoutPanelElement.js.map +1 -1
  421. package/dist/elements/layout/SplitItem.js +4 -12
  422. package/dist/elements/layout/SplitItem.js.map +1 -1
  423. package/dist/elements/layout/SplitLayout.js +18 -24
  424. package/dist/elements/layout/SplitLayout.js.map +1 -1
  425. package/dist/elements/layout/SplitPanel.js +10 -16
  426. package/dist/elements/layout/SplitPanel.js.map +1 -1
  427. package/dist/elements/layout/SplitView.js +17 -26
  428. package/dist/elements/layout/SplitView.js.map +1 -1
  429. package/dist/elements/layout/SplitView.styles.d.ts.map +1 -1
  430. package/dist/elements/layout/SplitView.styles.js +1 -0
  431. package/dist/elements/layout/SplitView.styles.js.map +1 -1
  432. package/dist/elements/navigation/AppNavigationElement.js +8 -47
  433. package/dist/elements/navigation/AppNavigationElement.js.map +1 -1
  434. package/dist/elements/navigation/AppNavigationItem.styles.d.ts.map +1 -1
  435. package/dist/elements/navigation/AppNavigationItem.styles.js +2 -0
  436. package/dist/elements/navigation/AppNavigationItem.styles.js.map +1 -1
  437. package/dist/elements/navigation/AppNavigationItemElement.js +19 -24
  438. package/dist/elements/navigation/AppNavigationItemElement.js.map +1 -1
  439. package/dist/elements/project/HttpProjectRequest.d.ts +2 -1
  440. package/dist/elements/project/HttpProjectRequest.d.ts.map +1 -1
  441. package/dist/elements/project/HttpProjectRequest.js +14 -43
  442. package/dist/elements/project/HttpProjectRequest.js.map +1 -1
  443. package/dist/elements/project/HttpProjectRequestHistory.js +9 -35
  444. package/dist/elements/project/HttpProjectRequestHistory.js.map +1 -1
  445. package/dist/elements/project/ProjectNavigation.js +0 -4
  446. package/dist/elements/project/ProjectNavigation.js.map +1 -1
  447. package/dist/elements/project/ProjectRunReport.js +4 -15
  448. package/dist/elements/project/ProjectRunReport.js.map +1 -1
  449. package/dist/elements/project/ProjectRunner.d.ts +0 -1
  450. package/dist/elements/project/ProjectRunner.d.ts.map +1 -1
  451. package/dist/elements/project/ProjectRunner.js +3 -51
  452. package/dist/elements/project/ProjectRunner.js.map +1 -1
  453. package/dist/elements/schema-design/AssociationFormElement.d.ts +0 -1
  454. package/dist/elements/schema-design/AssociationFormElement.d.ts.map +1 -1
  455. package/dist/elements/schema-design/AssociationFormElement.js +2 -18
  456. package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
  457. package/dist/elements/schema-design/DataEntityEditorElement.d.ts +2 -2
  458. package/dist/elements/schema-design/DataEntityEditorElement.d.ts.map +1 -1
  459. package/dist/elements/schema-design/DataEntityEditorElement.js +5 -27
  460. package/dist/elements/schema-design/DataEntityEditorElement.js.map +1 -1
  461. package/dist/elements/schema-design/DataModelVisualizationElement.js +0 -16
  462. package/dist/elements/schema-design/DataModelVisualizationElement.js.map +1 -1
  463. package/dist/elements/schema-design/DataSchemaDocument.d.ts +0 -1
  464. package/dist/elements/schema-design/DataSchemaDocument.d.ts.map +1 -1
  465. package/dist/elements/schema-design/DataSchemaDocument.js +4 -43
  466. package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
  467. package/dist/elements/schema-design/EntityFormElement.d.ts +0 -1
  468. package/dist/elements/schema-design/EntityFormElement.d.ts.map +1 -1
  469. package/dist/elements/schema-design/EntityFormElement.js +4 -25
  470. package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
  471. package/dist/elements/schema-design/PropertyFormElement.d.ts +1 -2
  472. package/dist/elements/schema-design/PropertyFormElement.d.ts.map +1 -1
  473. package/dist/elements/schema-design/PropertyFormElement.js +8 -23
  474. package/dist/elements/schema-design/PropertyFormElement.js.map +1 -1
  475. package/dist/elements/schema-design/SchemaDesignNavigation.js +0 -9
  476. package/dist/elements/schema-design/SchemaDesignNavigation.js.map +1 -1
  477. package/dist/elements/schema-design/SchemaNamespaceSelector.js +0 -9
  478. package/dist/elements/schema-design/SchemaNamespaceSelector.js.map +1 -1
  479. package/dist/elements/user/UserAvatarElement.js +0 -9
  480. package/dist/elements/user/UserAvatarElement.js.map +1 -1
  481. package/dist/events/http-client/models/CertificatesEvents.js +2 -2
  482. package/dist/events/http-client/models/CertificatesEvents.js.map +1 -1
  483. package/dist/http-client/idb/Base.js +5 -10
  484. package/dist/http-client/idb/Base.js.map +1 -1
  485. package/dist/http-client/idb/LegacyMockedStore.js +0 -1
  486. package/dist/http-client/idb/LegacyMockedStore.js.map +1 -1
  487. package/dist/http-client/idb/MockedStore.js +3 -1
  488. package/dist/http-client/idb/MockedStore.js.map +1 -1
  489. package/dist/http-client/store/DataImportProcessor.js +0 -3
  490. package/dist/http-client/store/DataImportProcessor.js.map +1 -1
  491. package/dist/http-client/store/HttpClientIdbDatabase.js +8 -7
  492. package/dist/http-client/store/HttpClientIdbDatabase.js.map +1 -1
  493. package/dist/http-client/store/IdbThread.js +23 -20
  494. package/dist/http-client/store/IdbThread.js.map +1 -1
  495. package/dist/http-client/store/idb/IdbProjectUi.js +4 -1
  496. package/dist/http-client/store/idb/IdbProjectUi.js.map +1 -1
  497. package/dist/http-client/store/idb/IdbStore.js +0 -2
  498. package/dist/http-client/store/idb/IdbStore.js.map +1 -1
  499. package/dist/http-client/store/idb/IdbUrlHistory.js +4 -1
  500. package/dist/http-client/store/idb/IdbUrlHistory.js.map +1 -1
  501. package/dist/http-client/store/idb/IdbWsHistory.js +4 -1
  502. package/dist/http-client/store/idb/IdbWsHistory.js.map +1 -1
  503. package/dist/lib/chart/HttpHistoryChart.js +7 -8
  504. package/dist/lib/chart/HttpHistoryChart.js.map +1 -1
  505. package/dist/mixins/FileDropMixin.js +0 -1
  506. package/dist/mixins/FileDropMixin.js.map +1 -1
  507. package/dist/mixins/RenderableMixin.js +11 -15
  508. package/dist/mixins/RenderableMixin.js.map +1 -1
  509. package/dist/pages/ApplicationScreen.d.ts +1 -1
  510. package/dist/pages/ApplicationScreen.d.ts.map +1 -1
  511. package/dist/pages/ApplicationScreen.js +35 -56
  512. package/dist/pages/ApplicationScreen.js.map +1 -1
  513. package/dist/pages/api-client/ApiClient.screen.js +11 -20
  514. package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
  515. package/dist/pages/api-client/ApiClient.styles.d.ts.map +1 -1
  516. package/dist/pages/api-client/ApiClient.styles.js +22 -3
  517. package/dist/pages/api-client/ApiClient.styles.js.map +1 -1
  518. package/dist/pages/api-client/Authenticate.screen.d.ts +2 -0
  519. package/dist/pages/api-client/Authenticate.screen.d.ts.map +1 -1
  520. package/dist/pages/api-client/Authenticate.screen.js +23 -9
  521. package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
  522. package/dist/pages/api-client/StoreConfig.screen.d.ts.map +1 -1
  523. package/dist/pages/api-client/StoreConfig.screen.js +25 -39
  524. package/dist/pages/api-client/StoreConfig.screen.js.map +1 -1
  525. package/dist/pages/api-client/StoreConfig.styles.d.ts.map +1 -1
  526. package/dist/pages/api-client/StoreConfig.styles.js +5 -0
  527. package/dist/pages/api-client/StoreConfig.styles.js.map +1 -1
  528. package/dist/pages/api-client/Telemetry.screen.js +1 -2
  529. package/dist/pages/api-client/Telemetry.screen.js.map +1 -1
  530. package/dist/pages/api-client/pages/Files.page.d.ts +1 -0
  531. package/dist/pages/api-client/pages/Files.page.d.ts.map +1 -1
  532. package/dist/pages/api-client/pages/Files.page.js +8 -28
  533. package/dist/pages/api-client/pages/Files.page.js.map +1 -1
  534. package/dist/pages/api-client/pages/Settings.page.js +2 -4
  535. package/dist/pages/api-client/pages/Settings.page.js.map +1 -1
  536. package/dist/pages/api-client/pages/Trash.page.js +2 -13
  537. package/dist/pages/api-client/pages/Trash.page.js.map +1 -1
  538. package/dist/pages/demo/DemoPage.js +13 -13
  539. package/dist/pages/demo/DemoPage.js.map +1 -1
  540. package/dist/pages/http-project/HttpProject.screen.d.ts +0 -8
  541. package/dist/pages/http-project/HttpProject.screen.d.ts.map +1 -1
  542. package/dist/pages/http-project/HttpProject.screen.js +39 -50
  543. package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
  544. package/dist/pages/http-project/types.d.ts +8 -6
  545. package/dist/pages/http-project/types.d.ts.map +1 -1
  546. package/dist/pages/http-project/types.js.map +1 -1
  547. package/dist/pages/schema-design/SchemaDesigner.screen.js +14 -27
  548. package/dist/pages/schema-design/SchemaDesigner.screen.js.map +1 -1
  549. package/dist/store/HttpStore.js +0 -3
  550. package/dist/store/HttpStore.js.map +1 -1
  551. package/dist/store/UserCache.js +5 -5
  552. package/dist/store/UserCache.js.map +1 -1
  553. package/dist/styles/m3/surface.module.d.ts.map +1 -1
  554. package/dist/styles/m3/surface.module.js +11 -27
  555. package/dist/styles/m3/surface.module.js.map +1 -1
  556. package/dist/ui/UiElement.d.ts +4 -0
  557. package/dist/ui/UiElement.d.ts.map +1 -1
  558. package/dist/ui/UiElement.js +10 -5
  559. package/dist/ui/UiElement.js.map +1 -1
  560. package/dist/ui/button/SegmentedButton.js +9 -11
  561. package/dist/ui/button/SegmentedButton.js.map +1 -1
  562. package/dist/ui/button/SegmentedButton.styles.d.ts.map +1 -1
  563. package/dist/ui/button/SegmentedButton.styles.js +3 -1
  564. package/dist/ui/button/SegmentedButton.styles.js.map +1 -1
  565. package/dist/ui/button/SegmentedButtonsSet.js +6 -7
  566. package/dist/ui/button/SegmentedButtonsSet.js.map +1 -1
  567. package/dist/ui/button/UiButton.js +17 -39
  568. package/dist/ui/button/UiButton.js.map +1 -1
  569. package/dist/ui/button/UiIconButton.js +9 -35
  570. package/dist/ui/button/UiIconButton.js.map +1 -1
  571. package/dist/ui/chip/UiChip.js +9 -49
  572. package/dist/ui/chip/UiChip.js.map +1 -1
  573. package/dist/ui/collapse/UiCollapse.js +15 -20
  574. package/dist/ui/collapse/UiCollapse.js.map +1 -1
  575. package/dist/ui/controllers/ActionController.js +143 -144
  576. package/dist/ui/controllers/ActionController.js.map +1 -1
  577. package/dist/ui/controllers/RadioSelectionController.js +0 -1
  578. package/dist/ui/controllers/RadioSelectionController.js.map +1 -1
  579. package/dist/ui/date/DateTime.js +3 -3
  580. package/dist/ui/date/DateTime.js.map +1 -1
  581. package/dist/ui/dialog/UiDialog.d.ts +3 -0
  582. package/dist/ui/dialog/UiDialog.d.ts.map +1 -1
  583. package/dist/ui/dialog/UiDialog.js +17 -38
  584. package/dist/ui/dialog/UiDialog.js.map +1 -1
  585. package/dist/ui/effects/ripple.d.ts.map +1 -1
  586. package/dist/ui/effects/ripple.js +25 -19
  587. package/dist/ui/effects/ripple.js.map +1 -1
  588. package/dist/ui/effects/rippleDirective.js +6 -7
  589. package/dist/ui/effects/rippleDirective.js.map +1 -1
  590. package/dist/ui/icons/Icons.d.ts +3 -2
  591. package/dist/ui/icons/Icons.d.ts.map +1 -1
  592. package/dist/ui/icons/Icons.js +2 -1
  593. package/dist/ui/icons/Icons.js.map +1 -1
  594. package/dist/ui/icons/UiIcon.js +4 -3
  595. package/dist/ui/icons/UiIcon.js.map +1 -1
  596. package/dist/ui/input/CheckboxElement.js +12 -10
  597. package/dist/ui/input/CheckboxElement.js.map +1 -1
  598. package/dist/ui/input/CheckedElement.d.ts +1 -1
  599. package/dist/ui/input/CheckedElement.d.ts.map +1 -1
  600. package/dist/ui/input/CheckedElement.js +5 -16
  601. package/dist/ui/input/CheckedElement.js.map +1 -1
  602. package/dist/ui/input/Input.js +170 -235
  603. package/dist/ui/input/Input.js.map +1 -1
  604. package/dist/ui/input/RadioElement.js +13 -11
  605. package/dist/ui/input/RadioElement.js.map +1 -1
  606. package/dist/ui/input/SwitchElement.js +0 -18
  607. package/dist/ui/input/SwitchElement.js.map +1 -1
  608. package/dist/ui/input/TextAreaElement.js +0 -15
  609. package/dist/ui/input/TextAreaElement.js.map +1 -1
  610. package/dist/ui/list/{DividerElement.d.ts → UiDivider.element.d.ts} +6 -6
  611. package/dist/ui/list/UiDivider.element.d.ts.map +1 -0
  612. package/dist/ui/list/UiDivider.element.js +39 -0
  613. package/dist/ui/list/UiDivider.element.js.map +1 -0
  614. package/dist/ui/list/UiDivider.styles.d.ts +3 -0
  615. package/dist/ui/list/UiDivider.styles.d.ts.map +1 -0
  616. package/dist/ui/list/UiDivider.styles.js +49 -0
  617. package/dist/ui/list/UiDivider.styles.js.map +1 -0
  618. package/dist/ui/list/UiDropdownList.js +7 -48
  619. package/dist/ui/list/UiDropdownList.js.map +1 -1
  620. package/dist/ui/list/UiList.js +3 -15
  621. package/dist/ui/list/UiList.js.map +1 -1
  622. package/dist/ui/list/UiListItem.js +4 -17
  623. package/dist/ui/list/UiListItem.js.map +1 -1
  624. package/dist/ui/list/UiListbox.js +0 -1
  625. package/dist/ui/list/UiListbox.js.map +1 -1
  626. package/dist/ui/notification/SnackNotifications.js +1 -2
  627. package/dist/ui/notification/SnackNotifications.js.map +1 -1
  628. package/dist/ui/notification/Snackbar.js +27 -51
  629. package/dist/ui/notification/Snackbar.js.map +1 -1
  630. package/dist/ui/progress/Range.js +24 -23
  631. package/dist/ui/progress/Range.js.map +1 -1
  632. package/dist/ui/progress/UiProgress.js +0 -11
  633. package/dist/ui/progress/UiProgress.js.map +1 -1
  634. package/dist/ui/table/DataTable.js +7 -12
  635. package/dist/ui/table/DataTable.js.map +1 -1
  636. package/dist/ui/tabs/UiTab.js +24 -25
  637. package/dist/ui/tabs/UiTab.js.map +1 -1
  638. package/dist/ui/tabs/UiTabs.d.ts +13 -1
  639. package/dist/ui/tabs/UiTabs.d.ts.map +1 -1
  640. package/dist/ui/tabs/UiTabs.js +62 -47
  641. package/dist/ui/tabs/UiTabs.js.map +1 -1
  642. package/dist/visualization/elements/VizWorkspaceElement.js +12 -21
  643. package/dist/visualization/elements/VizWorkspaceElement.js.map +1 -1
  644. package/dist/visualization/lib/AssociationAnchors.js +16 -28
  645. package/dist/visualization/lib/AssociationAnchors.js.map +1 -1
  646. package/dist/visualization/lib/Point.js +0 -2
  647. package/dist/visualization/lib/Point.js.map +1 -1
  648. package/dist/visualization/lib/SelectionManager.js +10 -11
  649. package/dist/visualization/lib/SelectionManager.js.map +1 -1
  650. package/dist/visualization/lib/WorkspaceAlignment.js +0 -1
  651. package/dist/visualization/lib/WorkspaceAlignment.js.map +1 -1
  652. package/dist/visualization/lib/WorkspaceDebugging.js +5 -8
  653. package/dist/visualization/lib/WorkspaceDebugging.js.map +1 -1
  654. package/dist/visualization/lib/WorkspaceEdges.js +17 -19
  655. package/dist/visualization/lib/WorkspaceEdges.js.map +1 -1
  656. package/dist/visualization/lib/WorkspaceGestures.js +0 -3
  657. package/dist/visualization/lib/WorkspaceGestures.js.map +1 -1
  658. package/dist/visualization/lib/WorkspaceSizing.js +4 -6
  659. package/dist/visualization/lib/WorkspaceSizing.js.map +1 -1
  660. package/dist/visualization/lib/lines/RectilinearLine.js +8 -34
  661. package/dist/visualization/lib/lines/RectilinearLine.js.map +1 -1
  662. package/dist/visualization/lib/tips/RectilinearTip.js +0 -1
  663. package/dist/visualization/lib/tips/RectilinearTip.js.map +1 -1
  664. package/dist/visualization/lib/tips/TipArtist.js +0 -3
  665. package/dist/visualization/lib/tips/TipArtist.js.map +1 -1
  666. package/dist/visualization/plugin/dnd/DragAndDropPlugin.js +3 -5
  667. package/dist/visualization/plugin/dnd/DragAndDropPlugin.js.map +1 -1
  668. package/dist/visualization/plugin/group-selection/GroupSelection.js +19 -19
  669. package/dist/visualization/plugin/group-selection/GroupSelection.js.map +1 -1
  670. package/dist/visualization/plugin/positioning/WorkspaceLayout.js +21 -38
  671. package/dist/visualization/plugin/positioning/WorkspaceLayout.js.map +1 -1
  672. package/package.json +3 -2
  673. package/src/define/dialog/delete-cookie-action-dialog.ts +16 -0
  674. package/src/define/dialog/set-cookie-action-dialog.ts +16 -0
  675. package/src/define/http/http-assertions.ts +3 -3
  676. package/src/define/http/http-flows.ts +15 -0
  677. package/src/define/ui/ui-divider.ts +7 -2
  678. package/src/elements/ApiElement.ts +7 -0
  679. package/src/elements/amf/ApiAuthorizationEditor.element.ts +1 -1
  680. package/src/elements/amf/ApiOperationDocument.element.ts +2 -1
  681. package/src/elements/amf/ApiRequest.element.ts +1 -1
  682. package/src/elements/amf/ApiRequestEditor.element.ts +0 -4
  683. package/src/elements/authorization/ui/Authorization.ts +3 -5
  684. package/src/elements/dialog/DeleteCookieAction.element.ts +100 -0
  685. package/src/elements/dialog/DeleteCookieAction.styles.ts +14 -0
  686. package/src/elements/dialog/Rename.ts +8 -7
  687. package/src/elements/dialog/SetCookieAction.element.ts +183 -0
  688. package/src/elements/environment/EnvironmentEditor.styles.ts +5 -0
  689. package/src/elements/environment/EnvironmentEditor.ts +81 -22
  690. package/src/elements/environment/ServerEditor.ts +4 -8
  691. package/src/elements/environment/VariablesEditor.ts +3 -7
  692. package/src/elements/highlight/Prism.styles.ts +12 -5
  693. package/src/elements/http/BodyEditor.ts +10 -17
  694. package/src/elements/http/BodyMultipartEditor.ts +3 -20
  695. package/src/elements/http/BodyTextEditor.ts +0 -4
  696. package/src/elements/http/BodyUrlEncodedEditor.ts +5 -8
  697. package/src/elements/http/HeadersForm.ts +2 -9
  698. package/src/elements/http/HttpAssertions.element.ts +286 -0
  699. package/src/elements/http/HttpAssertions.styles.ts +7 -156
  700. package/src/elements/http/HttpFlows.common.ts +181 -0
  701. package/src/elements/http/HttpFlows.element.ts +722 -0
  702. package/src/elements/http/HttpFlows.styles.ts +29 -0
  703. package/src/elements/http/HttpFlowsUi.ts +1327 -0
  704. package/src/elements/http/RequestConfigElement.ts +10 -14
  705. package/src/elements/http/RequestEditor.ts +77 -35
  706. package/src/elements/http/UrlInput.ts +6 -6
  707. package/src/elements/http/UrlParamsForm.ts +2 -6
  708. package/src/elements/layout/SplitView.styles.ts +1 -0
  709. package/src/elements/navigation/AppNavigationItem.styles.ts +2 -0
  710. package/src/elements/project/HttpProjectRequest.ts +16 -5
  711. package/src/elements/project/ProjectRunner.ts +3 -7
  712. package/src/elements/schema-design/AssociationFormElement.ts +4 -8
  713. package/src/elements/schema-design/DataEntityEditorElement.ts +8 -8
  714. package/src/elements/schema-design/DataSchemaDocument.ts +5 -9
  715. package/src/elements/schema-design/EntityFormElement.ts +6 -10
  716. package/src/elements/schema-design/PropertyFormElement.ts +11 -15
  717. package/src/pages/ApplicationScreen.ts +1 -1
  718. package/src/pages/api-client/ApiClient.styles.ts +22 -3
  719. package/src/pages/api-client/Authenticate.screen.ts +19 -3
  720. package/src/pages/api-client/StoreConfig.screen.ts +4 -2
  721. package/src/pages/api-client/StoreConfig.styles.ts +5 -0
  722. package/src/pages/api-client/pages/Files.page.ts +2 -1
  723. package/src/pages/http-project/HttpProject.screen.ts +14 -26
  724. package/src/pages/http-project/types.ts +8 -6
  725. package/src/styles/m3/surface.module.ts +11 -27
  726. package/src/styles/m3/theme.css +36 -0
  727. package/src/styles/m3/tokens.css +11 -0
  728. package/src/ui/UiElement.ts +7 -0
  729. package/src/ui/button/SegmentedButton.styles.ts +3 -1
  730. package/src/ui/dialog/UiDialog.ts +3 -0
  731. package/src/ui/effects/ripple.ts +6 -1
  732. package/src/ui/icons/Icons.ts +3 -2
  733. package/src/ui/input/CheckedElement.ts +3 -3
  734. package/src/ui/input/Input.ts +1 -1
  735. package/src/ui/list/UiDivider.element.ts +41 -0
  736. package/src/ui/list/UiDivider.styles.ts +49 -0
  737. package/src/ui/tabs/UiTabs.ts +55 -13
  738. package/test/amf/authorization/OAuth2Method.test.ts +1 -1
  739. package/test/elements/http/HttpAssertions.test.ts +5 -6
  740. package/test/elements/http/HttpFlows.test.ts +485 -0
  741. package/tsconfig.json +2 -2
  742. package/dist/elements/http/HttpAssertions.d.ts +0 -114
  743. package/dist/elements/http/HttpAssertions.d.ts.map +0 -1
  744. package/dist/elements/http/HttpAssertions.js +0 -1144
  745. package/dist/elements/http/HttpAssertions.js.map +0 -1
  746. package/dist/elements/http/internals.d.ts +0 -150
  747. package/dist/elements/http/internals.d.ts.map +0 -1
  748. package/dist/elements/http/internals.js +0 -150
  749. package/dist/elements/http/internals.js.map +0 -1
  750. package/dist/ui/list/DividerElement.d.ts.map +0 -1
  751. package/dist/ui/list/DividerElement.js +0 -87
  752. package/dist/ui/list/DividerElement.js.map +0 -1
  753. package/src/elements/http/HttpAssertions.ts +0 -1187
  754. package/src/elements/http/internals.ts +0 -151
  755. package/src/http-client/docs/Files.md +0 -28
  756. package/src/ui/list/DividerElement.ts +0 -84
@@ -24,50 +24,52 @@ export function calcPercent(w, w0) {
24
24
  * @fires select - A non bubbling event when selection change through user interaction. The `event.detail` object contains the `item` and `index` properties. It also has the `select` property with the value of the `selectedAttribute` on the tab.
25
25
  */
26
26
  export default class UiTabs extends LitElement {
27
- items = [];
28
- activeItem = null;
29
- assignedElements;
30
- pointer;
31
- content;
32
- /**
33
- * The priority of the tabs.
34
- *
35
- * @default primary
36
- * @attribute
37
- */
38
- priority = 'primary';
39
- /**
40
- * If true, tabs are scrollable and the tab width is based on the label width.
41
- * @attribute
42
- */
43
- scrollable;
44
- /**
45
- * The value of the selected tab.
46
- * This is matched with the `aria-controls` of the tab.
47
- * @attribute
48
- */
49
- selected;
50
- /**
51
- * The attribute on the `ui-tab` that indicates which value for `selected`
52
- * corresponds to which tab.
53
- *
54
- * @default aria-controls
55
- * @attribute
56
- */
57
- selectedAttribute = `aria-controls`;
58
- pointerStyles;
59
- contentScroll;
60
- indicated = false;
61
- // constructor() {
62
- // super();
63
- // // this.addEventListener('keydown', this.handleKeydown.bind(this));
64
- // // this.addEventListener('click', this.handleClick.bind(this));
65
- // }
27
+ constructor() {
28
+ super();
29
+ this.items = [];
30
+ this.activeItem = null;
31
+ this.previousItem = null;
32
+ /**
33
+ * The priority of the tabs.
34
+ *
35
+ * @default primary
36
+ * @attribute
37
+ */
38
+ this.priority = 'primary';
39
+ /**
40
+ * The attribute on the `ui-tab` that indicates which value for `selected`
41
+ * corresponds to which tab.
42
+ *
43
+ * @default aria-controls
44
+ * @attribute
45
+ */
46
+ this.selectedAttribute = `aria-controls`;
47
+ this.indicated = false;
48
+ this.observer = new IntersectionObserver(this.intersectionCallback.bind(this), {
49
+ threshold: 1.0,
50
+ rootMargin: '0px',
51
+ });
52
+ }
53
+ willUpdate(cp) {
54
+ if (cp.has('isVisible')) {
55
+ this.handleVisibility();
56
+ }
57
+ super.willUpdate(cp);
58
+ }
66
59
  connectedCallback() {
67
60
  super.connectedCallback();
68
61
  if (!this.hasAttribute('role')) {
69
62
  this.setAttribute('role', 'tablist');
70
63
  }
64
+ this.observer.observe(this);
65
+ }
66
+ disconnectedCallback() {
67
+ super.disconnectedCallback();
68
+ this.observer.unobserve(this);
69
+ }
70
+ intersectionCallback(entries) {
71
+ const [entry] = entries;
72
+ this.isVisible = entry.isIntersecting;
71
73
  }
72
74
  async updateItems() {
73
75
  const elements = this.assignedElements || [];
@@ -114,6 +116,7 @@ export default class UiTabs extends LitElement {
114
116
  tab.highlight();
115
117
  return;
116
118
  }
119
+ this.previousItem = activeItem;
117
120
  if (activeItem) {
118
121
  this.deselectItem(activeItem);
119
122
  }
@@ -141,16 +144,13 @@ export default class UiTabs extends LitElement {
141
144
  }));
142
145
  }
143
146
  selectItem(tab, focus = false) {
144
- if (this.activeItem === tab) {
145
- return;
146
- }
147
+ this.activeItem = tab;
147
148
  if (this.hasAttribute('tabindex')) {
148
149
  this.removeAttribute('tabindex');
149
150
  }
150
151
  tab.setAttribute('aria-selected', 'true');
151
152
  tab.setAttribute('tabindex', '0');
152
153
  tab.selected = true;
153
- this.activeItem = tab;
154
154
  tab.priority = this.priority;
155
155
  tab.scrollIntoView({ inline: 'nearest', behavior: 'auto', block: 'nearest' });
156
156
  if (focus) {
@@ -163,8 +163,18 @@ export default class UiTabs extends LitElement {
163
163
  tab.selected = false;
164
164
  tab.indicated = false;
165
165
  }
166
+ handleVisibility() {
167
+ const { previousItem, activeItem } = this;
168
+ if (!activeItem) {
169
+ return;
170
+ }
171
+ this.positionPointer(activeItem, previousItem);
172
+ }
166
173
  async positionPointer(tab, old) {
167
- const { items, pointer } = this;
174
+ const { items, pointer, isVisible } = this;
175
+ if (!isVisible) {
176
+ return;
177
+ }
168
178
  const index = items.indexOf(tab);
169
179
  if (index < 0 || !pointer) {
170
180
  this.pointerStyles = undefined;
@@ -175,14 +185,17 @@ export default class UiTabs extends LitElement {
175
185
  tab.indicated = true;
176
186
  return;
177
187
  }
188
+ const isPrimary = this.priority === 'primary';
189
+ const final = isPrimary ? this.getPrimaryLeft(tab) : this.getSecondaryLeft(tab);
190
+ if (this.pointerStyles && this.pointerStyles.left === `${final}px`) {
191
+ return;
192
+ }
178
193
  // first position this indicator in the place of the old one.
179
194
  // update the view and then run the animation.
180
195
  this.indicated = true;
181
- const isPrimary = this.priority === 'primary';
182
196
  const left = isPrimary ? this.getPrimaryLeft(old) : this.getSecondaryLeft(old);
183
197
  this.pointerStyles = { left };
184
198
  await this.updateComplete;
185
- const final = isPrimary ? this.getPrimaryLeft(tab) : this.getSecondaryLeft(tab);
186
199
  const frames = isPrimary ? this.getPrimaryKeyframes(left, final) : this.getSecondaryKeyframes(left, final);
187
200
  if (this.moveAnimation) {
188
201
  this.moveAnimation.cancel();
@@ -206,7 +219,6 @@ export default class UiTabs extends LitElement {
206
219
  });
207
220
  this.moveAnimation = moveAnimation;
208
221
  }
209
- moveAnimation;
210
222
  getPrimaryLeft(tab) {
211
223
  const contentBox = this.content.getBoundingClientRect();
212
224
  const tabRect = tab.getBoundingClientRect();
@@ -451,4 +463,7 @@ __decorate([
451
463
  __decorate([
452
464
  state()
453
465
  ], UiTabs.prototype, "indicated", void 0);
466
+ __decorate([
467
+ state()
468
+ ], UiTabs.prototype, "isVisible", void 0);
454
469
  //# sourceMappingURL=UiTabs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiTabs.js","sourceRoot":"","sources":["../../../src/ui/tabs/UiTabs.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-cycle */\n/* eslint-disable no-param-reassign */\nimport { html, LitElement, nothing, TemplateResult } from \"lit\";\nimport { property, query, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { ClassInfo, classMap } from \"lit/directives/class-map.js\";\nimport { StyleInfo, styleMap } from \"lit/directives/style-map.js\";\nimport { Easing } from \"../motion/animation.js\";\nimport UiTab from \"./UiTab.js\";\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-icon.js';\n\nexport type TabsPriority = 'primary' | 'secondary';\n\nexport interface TabSelectionDetail {\n item: UiTab;\n index: number;\n select: string | null;\n}\n\n/**\n * Calculates value in percentages\n * @param w Element width\n * @param w0 Parent width\n * @return The percentage of element's width relative to parent.\n */\nexport function calcPercent(w: number, w0: number): number {\n return (100 * w) / w0;\n}\n\n/**\n * A container for tabs.\n * \n * @fires select - A non bubbling event when selection change through user interaction. The `event.detail` object contains the `item` and `index` properties. It also has the `select` property with the value of the `selectedAttribute` on the tab.\n */\nexport default class UiTabs extends LitElement {\n items: UiTab[] = [];\n\n activeItem: UiTab | null = null;\n\n @queryAssignedElements({ flatten: true }) protected assignedElements!: HTMLElement[] | null;\n\n @query('.pointer') protected pointer!: HTMLElement;\n\n @query('.content') protected content!: HTMLElement;\n\n /**\n * The priority of the tabs.\n * \n * @default primary\n * @attribute\n */\n @property({ type: String, reflect: true }) priority: TabsPriority = 'primary';\n\n /**\n * If true, tabs are scrollable and the tab width is based on the label width.\n * @attribute\n */\n @property({ type: Boolean }) scrollable?: boolean;\n\n /**\n * The value of the selected tab.\n * This is matched with the `aria-controls` of the tab.\n * @attribute\n */\n @property({ type: String }) selected?: string;\n\n /**\n * The attribute on the `ui-tab` that indicates which value for `selected` \n * corresponds to which tab. \n * \n * @default aria-controls\n * @attribute\n */\n @property({ type: String }) selectedAttribute = `aria-controls`;\n\n @state() protected pointerStyles?: StyleInfo;\n\n protected contentScroll?: number;\n\n @state() protected indicated = false;\n\n // constructor() {\n // super();\n\n // // this.addEventListener('keydown', this.handleKeydown.bind(this));\n // // this.addEventListener('click', this.handleClick.bind(this));\n // }\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'tablist');\n }\n }\n\n protected async updateItems(): Promise<void> {\n const elements = this.assignedElements || [];\n const items = elements.filter(this.isTabItem, this);\n this.items = items;\n if (this.activeItem && !items.includes(this.activeItem)) {\n this.activeItem = null;\n }\n await this.updateComplete;\n this.ensureSelection();\n }\n\n /** \n * @return Whether the given element is a list item element. \n */\n protected isTabItem(element: Element): element is UiTab {\n if (element.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n return element.localName === 'ui-tab';\n }\n\n protected isSelectable(element: UiTab): boolean {\n if (element.disabled) {\n return false;\n }\n if (element.hidden && element.hasAttribute('hidden')) {\n return false;\n }\n return true;\n }\n\n protected ensureSelection(): void {\n const { selected, selectedAttribute, activeItem, items } = this;\n if (!selectedAttribute) {\n return;\n }\n const item = items.find(i => i.getAttribute(selectedAttribute) === selected);\n if (item && item === activeItem) {\n return;\n }\n this.makeSelection(item);\n }\n\n protected makeSelection(tab?: UiTab, focus = false): void {\n const { activeItem } = this;\n if (activeItem === tab) {\n tab.highlight();\n return;\n }\n if (activeItem) {\n this.deselectItem(activeItem);\n }\n if (tab) {\n this.selectItem(tab, focus);\n this.positionPointer(tab, activeItem);\n if (this.activeItem) {\n // we set this here so we won't notify selection when initializing.\n this.notifySelect(tab);\n }\n }\n }\n\n notifySelect(item: UiTab): void {\n const index = this.items.indexOf(item);\n if (index === -1) {\n return;\n }\n const attrValue = item.getAttribute(this.selectedAttribute);\n this.dispatchEvent(new CustomEvent<TabSelectionDetail>('select', {\n detail: {\n item,\n index,\n select: attrValue,\n }\n }));\n }\n\n protected selectItem(tab: UiTab, focus = false): void {\n if (this.activeItem === tab) {\n return;\n }\n if (this.hasAttribute('tabindex')) {\n this.removeAttribute('tabindex');\n }\n tab.setAttribute('aria-selected', 'true');\n tab.setAttribute('tabindex', '0');\n tab.selected = true;\n this.activeItem = tab;\n tab.priority = this.priority;\n tab.scrollIntoView({ inline: 'nearest', behavior: 'auto', block: 'nearest' });\n if (focus) {\n tab.focus();\n }\n }\n\n protected deselectItem(tab: UiTab): void {\n tab.setAttribute('aria-selected', 'false');\n tab.setAttribute('tabindex', '-1');\n tab.selected = false;\n tab.indicated = false;\n }\n\n protected async positionPointer(tab: UiTab, old?: UiTab | null): Promise<void> {\n const { items, pointer } = this;\n const index = items.indexOf(tab);\n if (index < 0 || !pointer) {\n this.pointerStyles = undefined;\n return;\n }\n\n if (!old) {\n // no start animation, just show indicator.\n tab.indicated = true;\n return;\n }\n\n // first position this indicator in the place of the old one.\n // update the view and then run the animation.\n this.indicated = true;\n const isPrimary = this.priority === 'primary';\n const left = isPrimary ? this.getPrimaryLeft(old) : this.getSecondaryLeft(old);\n this.pointerStyles = { left };\n await this.updateComplete;\n const final = isPrimary ? this.getPrimaryLeft(tab) : this.getSecondaryLeft(tab);\n const frames = isPrimary ? this.getPrimaryKeyframes(left, final) : this.getSecondaryKeyframes(left, final);\n \n if (this.moveAnimation) {\n this.moveAnimation.cancel();\n }\n const moveAnimation = pointer.animate(frames, {\n duration: 360,\n iterations: 1,\n easing: Easing.DECELERATION,\n }\n );\n const finalStyles: StyleInfo = {\n left: `${final}px`,\n };\n moveAnimation.addEventListener('finish', () => {\n this.pointerStyles = finalStyles;\n this.moveAnimation = undefined;\n tab.indicated = true;\n this.indicated = false;\n });\n moveAnimation.addEventListener('cancel', () => {\n this.pointerStyles = finalStyles;\n });\n this.moveAnimation = moveAnimation;\n }\n\n protected moveAnimation?: Animation;\n\n protected getPrimaryLeft(tab: UiTab): string {\n const contentBox = this.content.getBoundingClientRect();\n const tabRect = tab.getBoundingClientRect();\n const leftFromParent = tabRect.x - contentBox.x;\n const offset = this.scrollable ? 48 : 0; // left button\n const left = leftFromParent + (tabRect.width / 2) - 20 + offset;\n return `${left}px`;\n }\n\n protected getSecondaryLeft(tab: UiTab): string {\n const contentBox = this.content.getBoundingClientRect();\n const tabRect = tab.getBoundingClientRect();\n const offset = this.scrollable ? 48 : 0; // left button\n const leftFromParent = tabRect.x - contentBox.x + offset;\n return `${leftFromParent}px`;\n }\n\n protected getPrimaryKeyframes(start: string, final: string): Keyframe[] {\n return [\n {\n left: start,\n width: `40px`,\n },\n {\n width: `80px`,\n },\n {\n left: final,\n width: `40px`,\n }\n ];\n }\n\n protected getSecondaryKeyframes(start: string, final: string): Keyframe[] {\n return [\n {\n left: start,\n },\n {\n left: final,\n }\n ];\n }\n\n protected contentClickHandler(e: PointerEvent): void {\n this.activateFromEvent(e);\n }\n\n protected contentKeyDownHandler(e: KeyboardEvent): void {\n if (['Enter', 'Space'].includes(e.code)) {\n this.activateFromEvent(e);\n }\n }\n\n protected activateFromEvent(e: Event): void {\n const { items } = this;\n const path = e.composedPath();\n let item: UiTab | undefined;\n while (!item) {\n const next = path.shift() as UiTab;\n if (!next) {\n break;\n }\n if (items.includes(next)) {\n item = next;\n }\n }\n if (!item) {\n return;\n }\n this.makeSelection(item, true);\n }\n\n protected handleScrollLeft(): void {\n const { contentScroll = 0, content } = this;\n if (contentScroll === 0) {\n return;\n }\n let left = contentScroll - 80;\n if (left < 0) {\n left = 0;\n }\n this.contentScroll = left;\n content.scrollTo({\n behavior: 'smooth',\n left,\n });\n }\n\n protected handleScrollRight(): void {\n const { contentScroll = 0, content } = this;\n let left = contentScroll + 80;\n if (left + content.clientWidth > content.scrollWidth) {\n left = content.scrollWidth - content.clientWidth;\n }\n this.contentScroll = left;\n content.scrollTo({\n behavior: 'smooth',\n left,\n });\n }\n\n protected handleScroll(e: Event): void {\n const div = e.target as HTMLElement;\n this.contentScroll = div.scrollLeft;\n }\n\n protected handleKeyDown(e: KeyboardEvent): void {\n if (e.code === 'ArrowRight') {\n e.preventDefault();\n const tab = this.activeItem ? this.getNextItem(this.activeItem) : this.items[0];\n this.makeSelection(tab, true);\n } else if (e.code === 'ArrowLeft') {\n e.preventDefault();\n const tab = this.activeItem ? this.getPreviousItem(this.activeItem) : this.items[0];\n this.makeSelection(tab, true);\n }\n }\n\n getPreviousItem(item: UiTab): UiTab {\n const { items } = this;\n const curIndex = items.indexOf(item);\n if (curIndex < 0) {\n return item;\n }\n let i = curIndex;\n let result: HTMLElement | undefined;\n do {\n i--;\n if (i === curIndex) {\n // looped back from the end, no active element to find.\n return item;\n }\n const tmp = items[i];\n if (!tmp) {\n i = items.length;\n continue;\n }\n if (this.isSelectable(tmp)) {\n result = tmp;\n }\n } while (!result);\n return result as UiTab || item;\n }\n\n getNextItem(item: UiTab): UiTab {\n const { items } = this;\n const curIndex = items.indexOf(item);\n if (curIndex < 0) {\n return item;\n }\n let i = curIndex;\n let next: HTMLElement | undefined;\n do {\n i++;\n if (i === curIndex) {\n // looped back from the start, no active element to find.\n return item;\n }\n const tmp = items[i];\n if (!tmp) {\n i = -1;\n continue;\n }\n if (this.isSelectable(tmp)) {\n next = tmp;\n }\n } while (!next);\n return next as UiTab || item;\n }\n\n override render(): TemplateResult {\n const classes: ClassInfo = {\n surface: true,\n scrollable: !!this.scrollable,\n }\n return html`\n <div class=\"${classMap(classes)}\">\n ${this.renderLeftScrollControl()}\n <div class=\"content\" @scroll=\"${this.handleScroll}\" @keydown=\"${this.handleKeyDown}\">\n ${this.renderSlot()}\n </div>\n ${this.rightScrollControl()}\n ${this.renderIndicator()}\n <div class=\"divider\"></div>\n </div>\n `;\n }\n\n protected renderSlot(): TemplateResult {\n return html`<slot \n @slotchange=\"${this.updateItems}\" \n @click=\"${this.contentClickHandler}\" \n @keydown=\"${this.contentKeyDownHandler}\"></slot>`;\n }\n\n protected renderIndicator(): TemplateResult {\n const classes: ClassInfo = {\n indicator: true,\n indicated: this.indicated,\n primary: this.priority === 'primary',\n secondary: this.priority === 'secondary',\n }\n return html`\n <div class=\"${classMap(classes)}\">\n <span role=\"presentation\" class=\"pointer\" style=\"${styleMap(this.pointerStyles || {})}\"></span>\n </div>\n `;\n }\n\n protected renderLeftScrollControl(): TemplateResult | typeof nothing {\n if (!this.scrollable) {\n return nothing;\n }\n return html`\n <div class=\"scroll-control left\">\n <ui-icon-button aria-label=\"Scroll tabs left\" title=\"Scroll tabs left\" @click=\"${this.handleScrollLeft}\">\n <ui-icon icon=\"chevronLeft\"></ui-icon>\n </ui-icon-button>\n </div>`;\n }\n\n protected rightScrollControl(): TemplateResult | typeof nothing {\n if (!this.scrollable) {\n return nothing;\n }\n return html`<div class=\"scroll-control right\">\n <ui-icon-button aria-label=\"Scroll tabs right\" title=\"Scroll tabs right\" @click=\"${this.handleScrollRight}\">\n <ui-icon icon=\"chevronRight\"></ui-icon>\n </ui-icon-button>\n </div>`;\n }\n}\n"]}
1
+ {"version":3,"file":"UiTabs.js","sourceRoot":"","sources":["../../../src/ui/tabs/UiTabs.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-cycle */\n/* eslint-disable no-param-reassign */\nimport { html, LitElement, nothing, PropertyValues, TemplateResult } from \"lit\";\nimport { property, query, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { ClassInfo, classMap } from \"lit/directives/class-map.js\";\nimport { StyleInfo, styleMap } from \"lit/directives/style-map.js\";\nimport { Easing } from \"../motion/animation.js\";\nimport UiTab from \"./UiTab.js\";\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-icon.js';\n\nexport type TabsPriority = 'primary' | 'secondary';\n\nexport interface TabSelectionDetail {\n item: UiTab;\n index: number;\n select: string | null;\n}\n\n/**\n * Calculates value in percentages\n * @param w Element width\n * @param w0 Parent width\n * @return The percentage of element's width relative to parent.\n */\nexport function calcPercent(w: number, w0: number): number {\n return (100 * w) / w0;\n}\n\n/**\n * A container for tabs.\n * \n * @fires select - A non bubbling event when selection change through user interaction. The `event.detail` object contains the `item` and `index` properties. It also has the `select` property with the value of the `selectedAttribute` on the tab.\n */\nexport default class UiTabs extends LitElement {\n items: UiTab[] = [];\n\n activeItem: UiTab | null = null;\n\n previousItem: UiTab | null = null;\n\n @queryAssignedElements({ flatten: true }) protected assignedElements!: HTMLElement[] | null;\n\n @query('.pointer') protected pointer!: HTMLElement;\n\n @query('.content') protected content!: HTMLElement;\n\n /**\n * The priority of the tabs.\n * \n * @default primary\n * @attribute\n */\n @property({ type: String, reflect: true }) priority: TabsPriority = 'primary';\n\n /**\n * If true, tabs are scrollable and the tab width is based on the label width.\n * @attribute\n */\n @property({ type: Boolean }) scrollable?: boolean;\n\n /**\n * The value of the selected tab.\n * This is matched with the `aria-controls` of the tab.\n * @attribute\n */\n @property({ type: String }) selected?: string;\n\n /**\n * The attribute on the `ui-tab` that indicates which value for `selected` \n * corresponds to which tab. \n * \n * @default aria-controls\n * @attribute\n */\n @property({ type: String }) selectedAttribute = `aria-controls`;\n\n @state() protected pointerStyles?: StyleInfo;\n\n protected contentScroll?: number;\n\n @state() protected indicated = false;\n\n protected observer: IntersectionObserver;\n\n /**\n * This is set by the intersection observer. Once the tabs are in the view it turns to `true`.\n * This we can properly visualize selection.\n */\n @state() isVisible?: boolean;\n\n constructor() {\n super();\n\n this.observer = new IntersectionObserver(this.intersectionCallback.bind(this), {\n threshold: 1.0,\n rootMargin: '0px',\n });\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('isVisible')) {\n this.handleVisibility();\n }\n super.willUpdate(cp);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'tablist');\n }\n this.observer.observe(this);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.observer.unobserve(this);\n }\n\n protected intersectionCallback(entries: IntersectionObserverEntry[]): void {\n const [entry] = entries;\n this.isVisible = entry.isIntersecting;\n }\n\n protected async updateItems(): Promise<void> {\n const elements = this.assignedElements || [];\n const items = elements.filter(this.isTabItem, this);\n this.items = items;\n if (this.activeItem && !items.includes(this.activeItem)) {\n this.activeItem = null;\n }\n await this.updateComplete;\n this.ensureSelection();\n }\n\n /** \n * @return Whether the given element is a list item element. \n */\n protected isTabItem(element: Element): element is UiTab {\n if (element.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n return element.localName === 'ui-tab';\n }\n\n protected isSelectable(element: UiTab): boolean {\n if (element.disabled) {\n return false;\n }\n if (element.hidden && element.hasAttribute('hidden')) {\n return false;\n }\n return true;\n }\n\n protected ensureSelection(): void {\n const { selected, selectedAttribute, activeItem, items } = this;\n if (!selectedAttribute) {\n return;\n }\n const item = items.find(i => i.getAttribute(selectedAttribute) === selected);\n if (item && item === activeItem) {\n return;\n }\n this.makeSelection(item);\n }\n\n protected makeSelection(tab?: UiTab, focus = false): void {\n const { activeItem } = this;\n if (activeItem === tab) {\n tab.highlight();\n return;\n }\n this.previousItem = activeItem;\n if (activeItem) {\n this.deselectItem(activeItem);\n }\n if (tab) {\n this.selectItem(tab, focus);\n this.positionPointer(tab, activeItem);\n if (this.activeItem) {\n // we set this here so we won't notify selection when initializing.\n this.notifySelect(tab);\n }\n }\n }\n\n notifySelect(item: UiTab): void {\n const index = this.items.indexOf(item);\n if (index === -1) {\n return;\n }\n const attrValue = item.getAttribute(this.selectedAttribute);\n this.dispatchEvent(new CustomEvent<TabSelectionDetail>('select', {\n detail: {\n item,\n index,\n select: attrValue,\n }\n }));\n }\n\n protected selectItem(tab: UiTab, focus = false): void {\n this.activeItem = tab;\n if (this.hasAttribute('tabindex')) {\n this.removeAttribute('tabindex');\n }\n tab.setAttribute('aria-selected', 'true');\n tab.setAttribute('tabindex', '0');\n tab.selected = true;\n tab.priority = this.priority;\n tab.scrollIntoView({ inline: 'nearest', behavior: 'auto', block: 'nearest' });\n if (focus) {\n tab.focus();\n }\n }\n\n protected deselectItem(tab: UiTab): void {\n tab.setAttribute('aria-selected', 'false');\n tab.setAttribute('tabindex', '-1');\n tab.selected = false;\n tab.indicated = false;\n }\n\n protected handleVisibility(): void {\n const { previousItem, activeItem } = this;\n if (!activeItem) {\n return;\n }\n this.positionPointer(activeItem, previousItem);\n }\n\n protected async positionPointer(tab: UiTab, old?: UiTab | null): Promise<void> {\n const { items, pointer, isVisible } = this;\n if (!isVisible) {\n return;\n }\n const index = items.indexOf(tab);\n if (index < 0 || !pointer) {\n this.pointerStyles = undefined;\n return;\n }\n\n if (!old) {\n // no start animation, just show indicator.\n tab.indicated = true;\n return;\n }\n const isPrimary = this.priority === 'primary';\n const final = isPrimary ? this.getPrimaryLeft(tab) : this.getSecondaryLeft(tab);\n if (this.pointerStyles && this.pointerStyles.left === `${final}px`) {\n return;\n }\n\n // first position this indicator in the place of the old one.\n // update the view and then run the animation.\n this.indicated = true;\n const left = isPrimary ? this.getPrimaryLeft(old) : this.getSecondaryLeft(old);\n this.pointerStyles = { left };\n await this.updateComplete;\n const frames = isPrimary ? this.getPrimaryKeyframes(left, final) : this.getSecondaryKeyframes(left, final);\n \n if (this.moveAnimation) {\n this.moveAnimation.cancel();\n }\n const moveAnimation = pointer.animate(frames, {\n duration: 360,\n iterations: 1,\n easing: Easing.DECELERATION,\n }\n );\n const finalStyles: StyleInfo = {\n left: `${final}px`,\n };\n moveAnimation.addEventListener('finish', () => {\n this.pointerStyles = finalStyles;\n this.moveAnimation = undefined;\n tab.indicated = true;\n this.indicated = false;\n });\n moveAnimation.addEventListener('cancel', () => {\n this.pointerStyles = finalStyles;\n });\n this.moveAnimation = moveAnimation;\n }\n\n protected moveAnimation?: Animation;\n\n protected getPrimaryLeft(tab: UiTab): string {\n const contentBox = this.content.getBoundingClientRect();\n const tabRect = tab.getBoundingClientRect();\n const leftFromParent = tabRect.x - contentBox.x;\n const offset = this.scrollable ? 48 : 0; // left button\n const left = leftFromParent + (tabRect.width / 2) - 20 + offset;\n return `${left}px`;\n }\n\n protected getSecondaryLeft(tab: UiTab): string {\n const contentBox = this.content.getBoundingClientRect();\n const tabRect = tab.getBoundingClientRect();\n const offset = this.scrollable ? 48 : 0; // left button\n const leftFromParent = tabRect.x - contentBox.x + offset;\n return `${leftFromParent}px`;\n }\n\n protected getPrimaryKeyframes(start: string, final: string): Keyframe[] {\n return [\n {\n left: start,\n width: `40px`,\n },\n {\n width: `80px`,\n },\n {\n left: final,\n width: `40px`,\n }\n ];\n }\n\n protected getSecondaryKeyframes(start: string, final: string): Keyframe[] {\n return [\n {\n left: start,\n },\n {\n left: final,\n }\n ];\n }\n\n protected contentClickHandler(e: PointerEvent): void {\n this.activateFromEvent(e);\n }\n\n protected contentKeyDownHandler(e: KeyboardEvent): void {\n if (['Enter', 'Space'].includes(e.code)) {\n this.activateFromEvent(e);\n }\n }\n\n protected activateFromEvent(e: Event): void {\n const { items } = this;\n const path = e.composedPath();\n let item: UiTab | undefined;\n while (!item) {\n const next = path.shift() as UiTab;\n if (!next) {\n break;\n }\n if (items.includes(next)) {\n item = next;\n }\n }\n if (!item) {\n return;\n }\n this.makeSelection(item, true);\n }\n\n protected handleScrollLeft(): void {\n const { contentScroll = 0, content } = this;\n if (contentScroll === 0) {\n return;\n }\n let left = contentScroll - 80;\n if (left < 0) {\n left = 0;\n }\n this.contentScroll = left;\n content.scrollTo({\n behavior: 'smooth',\n left,\n });\n }\n\n protected handleScrollRight(): void {\n const { contentScroll = 0, content } = this;\n let left = contentScroll + 80;\n if (left + content.clientWidth > content.scrollWidth) {\n left = content.scrollWidth - content.clientWidth;\n }\n this.contentScroll = left;\n content.scrollTo({\n behavior: 'smooth',\n left,\n });\n }\n\n protected handleScroll(e: Event): void {\n const div = e.target as HTMLElement;\n this.contentScroll = div.scrollLeft;\n }\n\n protected handleKeyDown(e: KeyboardEvent): void {\n if (e.code === 'ArrowRight') {\n e.preventDefault();\n const tab = this.activeItem ? this.getNextItem(this.activeItem) : this.items[0];\n this.makeSelection(tab, true);\n } else if (e.code === 'ArrowLeft') {\n e.preventDefault();\n const tab = this.activeItem ? this.getPreviousItem(this.activeItem) : this.items[0];\n this.makeSelection(tab, true);\n }\n }\n\n getPreviousItem(item: UiTab): UiTab {\n const { items } = this;\n const curIndex = items.indexOf(item);\n if (curIndex < 0) {\n return item;\n }\n let i = curIndex;\n let result: HTMLElement | undefined;\n do {\n i--;\n if (i === curIndex) {\n // looped back from the end, no active element to find.\n return item;\n }\n const tmp = items[i];\n if (!tmp) {\n i = items.length;\n continue;\n }\n if (this.isSelectable(tmp)) {\n result = tmp;\n }\n } while (!result);\n return result as UiTab || item;\n }\n\n getNextItem(item: UiTab): UiTab {\n const { items } = this;\n const curIndex = items.indexOf(item);\n if (curIndex < 0) {\n return item;\n }\n let i = curIndex;\n let next: HTMLElement | undefined;\n do {\n i++;\n if (i === curIndex) {\n // looped back from the start, no active element to find.\n return item;\n }\n const tmp = items[i];\n if (!tmp) {\n i = -1;\n continue;\n }\n if (this.isSelectable(tmp)) {\n next = tmp;\n }\n } while (!next);\n return next as UiTab || item;\n }\n\n override render(): TemplateResult {\n const classes: ClassInfo = {\n surface: true,\n scrollable: !!this.scrollable,\n }\n return html`\n <div class=\"${classMap(classes)}\">\n ${this.renderLeftScrollControl()}\n <div class=\"content\" @scroll=\"${this.handleScroll}\" @keydown=\"${this.handleKeyDown}\">\n ${this.renderSlot()}\n </div>\n ${this.rightScrollControl()}\n ${this.renderIndicator()}\n <div class=\"divider\"></div>\n </div>\n `;\n }\n\n protected renderSlot(): TemplateResult {\n return html`<slot \n @slotchange=\"${this.updateItems}\" \n @click=\"${this.contentClickHandler}\" \n @keydown=\"${this.contentKeyDownHandler}\"></slot>`;\n }\n\n protected renderIndicator(): TemplateResult {\n const classes: ClassInfo = {\n indicator: true,\n indicated: this.indicated,\n primary: this.priority === 'primary',\n secondary: this.priority === 'secondary',\n }\n return html`\n <div class=\"${classMap(classes)}\">\n <span role=\"presentation\" class=\"pointer\" style=\"${styleMap(this.pointerStyles || {})}\"></span>\n </div>\n `;\n }\n\n protected renderLeftScrollControl(): TemplateResult | typeof nothing {\n if (!this.scrollable) {\n return nothing;\n }\n return html`\n <div class=\"scroll-control left\">\n <ui-icon-button aria-label=\"Scroll tabs left\" title=\"Scroll tabs left\" @click=\"${this.handleScrollLeft}\">\n <ui-icon icon=\"chevronLeft\"></ui-icon>\n </ui-icon-button>\n </div>`;\n }\n\n protected rightScrollControl(): TemplateResult | typeof nothing {\n if (!this.scrollable) {\n return nothing;\n }\n return html`<div class=\"scroll-control right\">\n <ui-icon-button aria-label=\"Scroll tabs right\" title=\"Scroll tabs right\" @click=\"${this.handleScrollRight}\">\n <ui-icon icon=\"chevronRight\"></ui-icon>\n </ui-icon-button>\n </div>`;\n }\n}\n"]}
@@ -1,3 +1,4 @@
1
+ var _a;
1
2
  import { __decorate } from "tslib";
2
3
  /* eslint-disable @typescript-eslint/no-unused-vars */
3
4
  /* eslint-disable class-methods-use-this */
@@ -32,7 +33,6 @@ export default class VizWorkspaceElement extends LitElement {
32
33
  static get styles() {
33
34
  return [elementStyles];
34
35
  }
35
- [zoomValue];
36
36
  /**
37
37
  * The zoom level of the current visualization
38
38
  * @attribute
@@ -83,21 +83,18 @@ export default class VizWorkspaceElement extends LitElement {
83
83
  set scrollTop(value) {
84
84
  this.gestures.top = value;
85
85
  }
86
- [canvasRef];
87
86
  get canvas() {
88
87
  if (!this[canvasRef]) {
89
88
  this[canvasRef] = this.shadowRoot?.querySelector('.canvas');
90
89
  }
91
90
  return this[canvasRef];
92
91
  }
93
- [svgRef];
94
92
  get associationSvg() {
95
93
  if (!this[svgRef]) {
96
94
  this[svgRef] = this.shadowRoot?.querySelector('.association');
97
95
  }
98
96
  return this[svgRef];
99
97
  }
100
- [widthValue];
101
98
  /**
102
99
  * The width of the canvas element, in pixels
103
100
  */
@@ -117,7 +114,6 @@ export default class VizWorkspaceElement extends LitElement {
117
114
  }
118
115
  this.requestUpdate('width', old);
119
116
  }
120
- [heightValue];
121
117
  /**
122
118
  * The height of the canvas element, in pixels
123
119
  */
@@ -137,7 +133,6 @@ export default class VizWorkspaceElement extends LitElement {
137
133
  }
138
134
  this.requestUpdate('height', old);
139
135
  }
140
- [autoResizeValue] = false;
141
136
  /**
142
137
  * When set it instruct the visualization workspace to grow over the currently set `width` and `height`
143
138
  * when a new added item is placed outside the bounds of the workspace.
@@ -159,22 +154,18 @@ export default class VizWorkspaceElement extends LitElement {
159
154
  this.sizing.disconnect();
160
155
  }
161
156
  }
162
- /**
163
- * Enables some limited debugging information.
164
- */
165
- debug;
166
- /**
167
- * The current scale of the visualization
168
- */
169
- scale = 1;
170
- [zoomTimeout];
171
- gestures = new WorkspaceGestures(this);
172
- selection = new SelectionManager(this);
173
- edges = new WorkspaceEdges(this);
174
- anchors = new AssociationAnchors(this);
175
- sizing = new WorkspaceSizing(this);
176
157
  constructor() {
177
158
  super();
159
+ this[_a] = false;
160
+ /**
161
+ * The current scale of the visualization
162
+ */
163
+ this.scale = 1;
164
+ this.gestures = new WorkspaceGestures(this);
165
+ this.selection = new SelectionManager(this);
166
+ this.edges = new WorkspaceEdges(this);
167
+ this.anchors = new AssociationAnchors(this);
168
+ this.sizing = new WorkspaceSizing(this);
178
169
  this.addEventListener('geometrychange', this[geometryChangeHandler].bind(this));
179
170
  }
180
171
  connectedCallback() {
@@ -220,7 +211,7 @@ export default class VizWorkspaceElement extends LitElement {
220
211
  this.gestures.left = -left;
221
212
  this.gestures.top = -top;
222
213
  }
223
- [notifyZoom]() {
214
+ [(_a = autoResizeValue, notifyZoom)]() {
224
215
  if (this[zoomTimeout]) {
225
216
  clearTimeout(this[zoomTimeout]);
226
217
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VizWorkspaceElement.js","sourceRoot":"","sources":["../../../src/visualization/elements/VizWorkspaceElement.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable class-methods-use-this */\nimport { CSSResult, html, LitElement, PropertyValueMap, PropertyValues, svg, SVGTemplateResult, TemplateResult } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\nimport { AssociationAnchors } from \"../lib/AssociationAnchors.js\";\nimport { SelectionManager } from \"../lib/SelectionManager.js\";\nimport { ShapeArtist } from \"../lib/ShapeArtist.js\";\nimport { WorkspaceEdges } from \"../lib/WorkspaceEdges.js\";\nimport { WorkspaceGestures } from \"../lib/WorkspaceGestures.js\";\nimport { WorkspaceSizing } from \"../lib/WorkspaceSizing.js\";\nimport elementStyles from './WorkspaceStyles.js';\n\nconst defaultCanvasWidth = 3840;\nconst defaultCanvasHeight = 2160;\n\nexport const canvasRef = Symbol('canvasRef');\nexport const svgRef = Symbol('svgRef');\nexport const attributeTypeEditHandler = Symbol('attributeTypeEditHandler');\nexport const attributeTypeDropdownClosedHandler = Symbol('attributeTypeDropdownClosedHandler');\nexport const attributeTypeSelectHandler = Symbol('attributeTypeSelectHandler');\nexport const geometryChangeHandler = Symbol('geometryChangeHandler');\nexport const widthValue = Symbol('widthValue');\nexport const heightValue = Symbol('heightValue');\nexport const autoResizeValue = Symbol('autoResizeValue');\nexport const zoomValue = Symbol('zoomValue');\nexport const notifyZoom = Symbol('notifyZoom');\nexport const zoomTimeout = Symbol('zoomTimeout');\n\n/**\n * @fires positionchange\n */\nexport default class VizWorkspaceElement extends LitElement {\n static override get styles(): CSSResult[] {\n return [elementStyles];\n }\n\n [zoomValue]?: number;\n\n /**\n * The zoom level of the current visualization\n * @attribute\n */\n @property({ type: Number, reflect: true })\n get zoom(): number {\n return this[zoomValue] || 0;\n }\n\n set zoom(value: number) {\n const localValue = Number(value);\n if (Number.isNaN(localValue)) {\n return;\n }\n const old = this[zoomValue];\n if (old === localValue) {\n return;\n }\n this[zoomValue] = localValue;\n this.gestures.updateScale();\n this.requestUpdate('zoom', old);\n }\n\n /**\n * Gets or sets the number of pixels that an element's content is scrolled horizontally.\n * Unlike regular HTML elements, this can be a negative value as it is possible to\n * scroll outside the working area.\n */\n @property({ type: Number })\n override get scrollLeft(): number {\n const s = this.gestures;\n return s && s.left || 0;\n }\n\n /**\n * @param value The x-axis position value\n */\n override set scrollLeft(value: number) {\n this.gestures.left = value;\n }\n\n /**\n * Gets or sets the number of pixels that an element's content is scrolled vertically.\n * Unlike regular HTML elements, this can be a negative value as it is possible to\n * scroll outside the working area.\n */\n @property({ type: Number })\n override get scrollTop(): number {\n const s = this.gestures;\n return s && s.top || 0;\n }\n\n /**\n * @param value The y-axis position value\n */\n override set scrollTop(value: number) {\n this.gestures.top = value;\n }\n\n [canvasRef]?: HTMLDivElement;\n\n get canvas(): HTMLDivElement | null {\n if (!this[canvasRef]) {\n this[canvasRef] = this.shadowRoot?.querySelector('.canvas') as HTMLDivElement;\n }\n return this[canvasRef] as HTMLDivElement;\n }\n\n [svgRef]?: SVGElement;\n\n get associationSvg(): SVGElement {\n if (!this[svgRef]) {\n this[svgRef] = this.shadowRoot?.querySelector('.association') as SVGElement;\n }\n return this[svgRef] as SVGElement;\n }\n\n [widthValue]?: number;\n\n /**\n * The width of the canvas element, in pixels\n */\n @property({ type: Number })\n get width(): number {\n return this[widthValue] || defaultCanvasWidth;\n }\n\n set width(value: number) {\n const old = this[widthValue];\n if (old === value) {\n return;\n }\n if (!value || Number.isNaN(value)) {\n this[widthValue] = undefined;\n } else {\n this[widthValue] = value;\n }\n this.requestUpdate('width', old);\n }\n\n [heightValue]?: number;\n\n /**\n * The height of the canvas element, in pixels\n */\n @property({ type: Number })\n get height(): number {\n return this[heightValue] || defaultCanvasHeight;\n }\n\n set height(value: number) {\n const old = this[heightValue];\n if (old === value) {\n return;\n }\n if (!value || Number.isNaN(value)) {\n this[heightValue] = undefined;\n } else {\n this[heightValue] = value;\n }\n this.requestUpdate('height', old);\n }\n\n [autoResizeValue] = false;\n\n /** \n * When set it instruct the visualization workspace to grow over the currently set `width` and `height` \n * when a new added item is placed outside the bounds of the workspace.\n */\n @property({ type: Number, reflect: true })\n get autoResize(): boolean {\n return this[autoResizeValue];\n }\n\n set autoResize(value: boolean) {\n const old = this[autoResizeValue];\n if (old === value) {\n return;\n }\n this[autoResizeValue] = value;\n this.requestUpdate('autoResize', old);\n if (value === true) {\n this.sizing.connect();\n } else if (this.sizing.connected) {\n this.sizing.disconnect();\n }\n }\n\n /** \n * Enables some limited debugging information.\n */\n @property({ type: Boolean, reflect: true }) debug?: boolean;\n\n /** \n * The current scale of the visualization\n */\n @property({ type: Number }) scale = 1;\n\n [zoomTimeout]?: number;\n\n gestures = new WorkspaceGestures(this);\n\n selection = new SelectionManager(this);\n\n edges = new WorkspaceEdges(this);\n\n anchors = new AssociationAnchors(this);\n\n sizing = new WorkspaceSizing(this);\n\n constructor() {\n super();\n this.addEventListener('geometrychange', this[geometryChangeHandler].bind(this));\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.gestures.connect();\n this.selection.connect();\n this.edges.connect();\n this.anchors.connect();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.gestures.disconnect();\n this.selection.disconnect();\n this.edges.disconnect();\n this.anchors.disconnect();\n }\n\n protected override firstUpdated(cp: PropertyValues<this>): void {\n super.firstUpdated(cp);\n const { top, left } = this.gestures;\n if (top === null || left === null) {\n this.gestures.scrollTo(0, 0);\n // this.center();\n }\n this.edges.listenContent();\n }\n\n /**\n * Clears the state of the workspace.\n */\n clear(): void {\n this.edges.clear();\n this.selection.deselectAll();\n }\n\n /**\n * Centers the workspace.\n */\n center(): void {\n const { width: cWidth = defaultCanvasWidth, height: cHeight = defaultCanvasHeight } = this;\n const { height, width } = this.getBoundingClientRect();\n const midWidth = cWidth / 2;\n const midHeight = cHeight / 2;\n const left = midWidth - width / 2;\n const top = midHeight - height / 2;\n this.gestures.left = -left;\n this.gestures.top = -top;\n }\n\n [notifyZoom](): void {\n if (this[zoomTimeout]) {\n clearTimeout(this[zoomTimeout]);\n }\n this[zoomTimeout] = setTimeout(() => {\n this.dispatchEvent(new Event('zoomchange'));\n }, 1) as unknown as number;\n }\n\n async [geometryChangeHandler](e: Event): Promise<void> {\n const source = e.target as HTMLElement;\n await this.edges.update(source.dataset.key as string);\n }\n\n override scrollBy(options: ScrollToOptions): void;\n\n override scrollBy(x: number, y: number): void;\n\n /**\n * Scrolls the element by the given amount.\n * @param {ScrollToOptions|number} xCoordOrOptions The horizontal pixel value that you want to scroll by\n * or the scroll options. When passed value is the `ScrollToOptions` interface then\n * the second argument is ignored.\n * @param {number=} yCoord The vertical pixel value that you want to scroll by.\n */\n override scrollBy(xCoordOrOptions: ScrollToOptions | number, yCoord?: number | undefined): void {\n this.gestures.scrollBy(xCoordOrOptions, yCoord);\n }\n\n override scrollTo(options: ScrollToOptions): void;\n\n override scrollTo(x: number, y: number): void;\n\n /**\n * Scrolls to a particular set of coordinates inside the element.\n *\n * @param xCoordOrOptions The pixel along the horizontal axis of the element\n * that you want displayed in the upper left. When passed value is the `ScrollToOptions` interface then\n * the second argument is ignored.\n * @param yCoord The pixel along the vertical axis of the element that you want displayed in the upper left.\n */\n override scrollTo(xCoordOrOptions: ScrollToOptions | number, yCoord?: number): void {\n this.gestures.scrollTo(xCoordOrOptions, yCoord);\n }\n\n /**\n * Scrolls the view if the position defined by `x` and `y` arguments requires\n * the view to be moved.\n *\n * @param x The x coordinate of the point\n * @param y The y coordinate of the point\n * @returns true if the canvas was moved\n */\n scrollIfNeeded(x: number, y: number): boolean {\n return this.gestures.scrollIfNeeded(x, y);\n }\n\n override render(): TemplateResult {\n const { scale, scrollLeft, scrollTop } = this;\n const styles = {\n transform: `scale(${scale}) translate(${scrollLeft}px, ${scrollTop}px)`,\n width: `${this.width}px`,\n height: `${this.height}px`,\n };\n return html`\n <div\n class=\"content canvas\"\n style=\"${styleMap(styles)}\"\n >\n ${this.renderLinesTemplate()}\n <slot></slot>\n </div>\n `;\n }\n\n /**\n * @return {SVGTemplateResult} The template for the associations\n */\n renderLinesTemplate(): SVGTemplateResult {\n const { debug } = this;\n const { edges } = this.edges;\n const primarySelected: (string | SVGTemplateResult)[] = [];\n const secondarySelected: (string | SVGTemplateResult)[] = [];\n const hovered: (string | SVGTemplateResult)[] = [];\n const rest: (string | SVGTemplateResult)[] = [];\n edges.forEach((item) => {\n const line = ShapeArtist.line(item, debug);\n const { shape } = item;\n const { selection = {} } = shape;\n if (selection.primary) {\n primarySelected.push(line);\n } else if (selection.secondary) {\n secondarySelected.push(line);\n } else if (selection.hover) {\n hovered.push(line);\n } else {\n rest.push(line);\n }\n });\n const edgesResult = primarySelected.concat(secondarySelected).concat(hovered).concat(rest).reverse();\n return svg`\n <svg width=\"100%\" height=\"100%\" class=\"association\">\n ${edgesResult.length ? edgesResult : ''}\n </svg>`;\n }\n}\n"]}
1
+ {"version":3,"file":"VizWorkspaceElement.js","sourceRoot":"","sources":["../../../src/visualization/elements/VizWorkspaceElement.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable class-methods-use-this */\nimport { CSSResult, html, LitElement, PropertyValueMap, PropertyValues, svg, SVGTemplateResult, TemplateResult } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\nimport { AssociationAnchors } from \"../lib/AssociationAnchors.js\";\nimport { SelectionManager } from \"../lib/SelectionManager.js\";\nimport { ShapeArtist } from \"../lib/ShapeArtist.js\";\nimport { WorkspaceEdges } from \"../lib/WorkspaceEdges.js\";\nimport { WorkspaceGestures } from \"../lib/WorkspaceGestures.js\";\nimport { WorkspaceSizing } from \"../lib/WorkspaceSizing.js\";\nimport elementStyles from './WorkspaceStyles.js';\n\nconst defaultCanvasWidth = 3840;\nconst defaultCanvasHeight = 2160;\n\nexport const canvasRef = Symbol('canvasRef');\nexport const svgRef = Symbol('svgRef');\nexport const attributeTypeEditHandler = Symbol('attributeTypeEditHandler');\nexport const attributeTypeDropdownClosedHandler = Symbol('attributeTypeDropdownClosedHandler');\nexport const attributeTypeSelectHandler = Symbol('attributeTypeSelectHandler');\nexport const geometryChangeHandler = Symbol('geometryChangeHandler');\nexport const widthValue = Symbol('widthValue');\nexport const heightValue = Symbol('heightValue');\nexport const autoResizeValue = Symbol('autoResizeValue');\nexport const zoomValue = Symbol('zoomValue');\nexport const notifyZoom = Symbol('notifyZoom');\nexport const zoomTimeout = Symbol('zoomTimeout');\n\n/**\n * @fires positionchange\n */\nexport default class VizWorkspaceElement extends LitElement {\n static override get styles(): CSSResult[] {\n return [elementStyles];\n }\n\n [zoomValue]?: number;\n\n /**\n * The zoom level of the current visualization\n * @attribute\n */\n @property({ type: Number, reflect: true })\n get zoom(): number {\n return this[zoomValue] || 0;\n }\n\n set zoom(value: number) {\n const localValue = Number(value);\n if (Number.isNaN(localValue)) {\n return;\n }\n const old = this[zoomValue];\n if (old === localValue) {\n return;\n }\n this[zoomValue] = localValue;\n this.gestures.updateScale();\n this.requestUpdate('zoom', old);\n }\n\n /**\n * Gets or sets the number of pixels that an element's content is scrolled horizontally.\n * Unlike regular HTML elements, this can be a negative value as it is possible to\n * scroll outside the working area.\n */\n @property({ type: Number })\n override get scrollLeft(): number {\n const s = this.gestures;\n return s && s.left || 0;\n }\n\n /**\n * @param value The x-axis position value\n */\n override set scrollLeft(value: number) {\n this.gestures.left = value;\n }\n\n /**\n * Gets or sets the number of pixels that an element's content is scrolled vertically.\n * Unlike regular HTML elements, this can be a negative value as it is possible to\n * scroll outside the working area.\n */\n @property({ type: Number })\n override get scrollTop(): number {\n const s = this.gestures;\n return s && s.top || 0;\n }\n\n /**\n * @param value The y-axis position value\n */\n override set scrollTop(value: number) {\n this.gestures.top = value;\n }\n\n [canvasRef]?: HTMLDivElement;\n\n get canvas(): HTMLDivElement | null {\n if (!this[canvasRef]) {\n this[canvasRef] = this.shadowRoot?.querySelector('.canvas') as HTMLDivElement;\n }\n return this[canvasRef] as HTMLDivElement;\n }\n\n [svgRef]?: SVGElement;\n\n get associationSvg(): SVGElement {\n if (!this[svgRef]) {\n this[svgRef] = this.shadowRoot?.querySelector('.association') as SVGElement;\n }\n return this[svgRef] as SVGElement;\n }\n\n [widthValue]?: number;\n\n /**\n * The width of the canvas element, in pixels\n */\n @property({ type: Number })\n get width(): number {\n return this[widthValue] || defaultCanvasWidth;\n }\n\n set width(value: number) {\n const old = this[widthValue];\n if (old === value) {\n return;\n }\n if (!value || Number.isNaN(value)) {\n this[widthValue] = undefined;\n } else {\n this[widthValue] = value;\n }\n this.requestUpdate('width', old);\n }\n\n [heightValue]?: number;\n\n /**\n * The height of the canvas element, in pixels\n */\n @property({ type: Number })\n get height(): number {\n return this[heightValue] || defaultCanvasHeight;\n }\n\n set height(value: number) {\n const old = this[heightValue];\n if (old === value) {\n return;\n }\n if (!value || Number.isNaN(value)) {\n this[heightValue] = undefined;\n } else {\n this[heightValue] = value;\n }\n this.requestUpdate('height', old);\n }\n\n [autoResizeValue] = false;\n\n /** \n * When set it instruct the visualization workspace to grow over the currently set `width` and `height` \n * when a new added item is placed outside the bounds of the workspace.\n */\n @property({ type: Number, reflect: true })\n get autoResize(): boolean {\n return this[autoResizeValue];\n }\n\n set autoResize(value: boolean) {\n const old = this[autoResizeValue];\n if (old === value) {\n return;\n }\n this[autoResizeValue] = value;\n this.requestUpdate('autoResize', old);\n if (value === true) {\n this.sizing.connect();\n } else if (this.sizing.connected) {\n this.sizing.disconnect();\n }\n }\n\n /** \n * Enables some limited debugging information.\n */\n @property({ type: Boolean, reflect: true }) debug?: boolean;\n\n /** \n * The current scale of the visualization\n */\n @property({ type: Number }) scale = 1;\n\n [zoomTimeout]?: number;\n\n gestures = new WorkspaceGestures(this);\n\n selection = new SelectionManager(this);\n\n edges = new WorkspaceEdges(this);\n\n anchors = new AssociationAnchors(this);\n\n sizing = new WorkspaceSizing(this);\n\n constructor() {\n super();\n this.addEventListener('geometrychange', this[geometryChangeHandler].bind(this));\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.gestures.connect();\n this.selection.connect();\n this.edges.connect();\n this.anchors.connect();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.gestures.disconnect();\n this.selection.disconnect();\n this.edges.disconnect();\n this.anchors.disconnect();\n }\n\n protected override firstUpdated(cp: PropertyValues<this>): void {\n super.firstUpdated(cp);\n const { top, left } = this.gestures;\n if (top === null || left === null) {\n this.gestures.scrollTo(0, 0);\n // this.center();\n }\n this.edges.listenContent();\n }\n\n /**\n * Clears the state of the workspace.\n */\n clear(): void {\n this.edges.clear();\n this.selection.deselectAll();\n }\n\n /**\n * Centers the workspace.\n */\n center(): void {\n const { width: cWidth = defaultCanvasWidth, height: cHeight = defaultCanvasHeight } = this;\n const { height, width } = this.getBoundingClientRect();\n const midWidth = cWidth / 2;\n const midHeight = cHeight / 2;\n const left = midWidth - width / 2;\n const top = midHeight - height / 2;\n this.gestures.left = -left;\n this.gestures.top = -top;\n }\n\n [notifyZoom](): void {\n if (this[zoomTimeout]) {\n clearTimeout(this[zoomTimeout]);\n }\n this[zoomTimeout] = setTimeout(() => {\n this.dispatchEvent(new Event('zoomchange'));\n }, 1) as unknown as number;\n }\n\n async [geometryChangeHandler](e: Event): Promise<void> {\n const source = e.target as HTMLElement;\n await this.edges.update(source.dataset.key as string);\n }\n\n override scrollBy(options: ScrollToOptions): void;\n\n override scrollBy(x: number, y: number): void;\n\n /**\n * Scrolls the element by the given amount.\n * @param {ScrollToOptions|number} xCoordOrOptions The horizontal pixel value that you want to scroll by\n * or the scroll options. When passed value is the `ScrollToOptions` interface then\n * the second argument is ignored.\n * @param {number=} yCoord The vertical pixel value that you want to scroll by.\n */\n override scrollBy(xCoordOrOptions: ScrollToOptions | number, yCoord?: number | undefined): void {\n this.gestures.scrollBy(xCoordOrOptions, yCoord);\n }\n\n override scrollTo(options: ScrollToOptions): void;\n\n override scrollTo(x: number, y: number): void;\n\n /**\n * Scrolls to a particular set of coordinates inside the element.\n *\n * @param xCoordOrOptions The pixel along the horizontal axis of the element\n * that you want displayed in the upper left. When passed value is the `ScrollToOptions` interface then\n * the second argument is ignored.\n * @param yCoord The pixel along the vertical axis of the element that you want displayed in the upper left.\n */\n override scrollTo(xCoordOrOptions: ScrollToOptions | number, yCoord?: number): void {\n this.gestures.scrollTo(xCoordOrOptions, yCoord);\n }\n\n /**\n * Scrolls the view if the position defined by `x` and `y` arguments requires\n * the view to be moved.\n *\n * @param x The x coordinate of the point\n * @param y The y coordinate of the point\n * @returns true if the canvas was moved\n */\n scrollIfNeeded(x: number, y: number): boolean {\n return this.gestures.scrollIfNeeded(x, y);\n }\n\n override render(): TemplateResult {\n const { scale, scrollLeft, scrollTop } = this;\n const styles = {\n transform: `scale(${scale}) translate(${scrollLeft}px, ${scrollTop}px)`,\n width: `${this.width}px`,\n height: `${this.height}px`,\n };\n return html`\n <div\n class=\"content canvas\"\n style=\"${styleMap(styles)}\"\n >\n ${this.renderLinesTemplate()}\n <slot></slot>\n </div>\n `;\n }\n\n /**\n * @return {SVGTemplateResult} The template for the associations\n */\n renderLinesTemplate(): SVGTemplateResult {\n const { debug } = this;\n const { edges } = this.edges;\n const primarySelected: (string | SVGTemplateResult)[] = [];\n const secondarySelected: (string | SVGTemplateResult)[] = [];\n const hovered: (string | SVGTemplateResult)[] = [];\n const rest: (string | SVGTemplateResult)[] = [];\n edges.forEach((item) => {\n const line = ShapeArtist.line(item, debug);\n const { shape } = item;\n const { selection = {} } = shape;\n if (selection.primary) {\n primarySelected.push(line);\n } else if (selection.secondary) {\n secondarySelected.push(line);\n } else if (selection.hover) {\n hovered.push(line);\n } else {\n rest.push(line);\n }\n });\n const edgesResult = primarySelected.concat(secondarySelected).concat(hovered).concat(rest).reverse();\n return svg`\n <svg width=\"100%\" height=\"100%\" class=\"association\">\n ${edgesResult.length ? edgesResult : ''}\n </svg>`;\n }\n}\n"]}
@@ -1,3 +1,4 @@
1
+ var _a;
1
2
  /* eslint-disable @typescript-eslint/no-unused-vars */
2
3
  /* eslint-disable class-methods-use-this */
3
4
  import { getRelativeClickPoint } from './PositionUtils.js';
@@ -19,35 +20,22 @@ export const keydownHandler = Symbol('keydownHandler');
19
20
  * After the user finish a DOM event is dispatched from the visualization workspace.
20
21
  */
21
22
  export class AssociationAnchors {
22
- workspace;
23
- [connectedValue] = false;
24
- /**
25
- * Whether a line is being constructed.
26
- */
27
- drawing = false;
28
- /**
29
- * A reference to the currently injected SVG element.
30
- */
31
- lineElement;
32
- /**
33
- * Whether an association position is being updated.
34
- * In such case it dispatches different event at the end.
35
- */
36
- updating = false;
37
- /**
38
- * The processor used to draw lines
39
- */
40
- lineProcessor = new LineSketch();
41
- /**
42
- * Set when a new association is being created
43
- */
44
- createInfo;
45
- /**
46
- * Set when an association update is performed
47
- */
48
- updateInfo;
49
23
  constructor(workspace) {
50
24
  this.workspace = workspace;
25
+ this[_a] = false;
26
+ /**
27
+ * Whether a line is being constructed.
28
+ */
29
+ this.drawing = false;
30
+ /**
31
+ * Whether an association position is being updated.
32
+ * In such case it dispatches different event at the end.
33
+ */
34
+ this.updating = false;
35
+ /**
36
+ * The processor used to draw lines
37
+ */
38
+ this.lineProcessor = new LineSketch();
51
39
  this.workspace = workspace;
52
40
  this[mouseDownHandler] = this[mouseDownHandler].bind(this);
53
41
  this[mouseMoveHandler] = this[mouseMoveHandler].bind(this);
@@ -85,7 +73,7 @@ export class AssociationAnchors {
85
73
  });
86
74
  return element;
87
75
  }
88
- [mouseDownHandler](e) {
76
+ [(_a = connectedValue, mouseDownHandler)](e) {
89
77
  if (e.button !== 0) {
90
78
  return;
91
79
  }