@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
@@ -1 +1 @@
1
- {"version":3,"file":"DataModelVisualizationElement.js","sourceRoot":"","sources":["../../../src/elements/schema-design/DataModelVisualizationElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataAssociation, DataEntity, DataModel, DataNamespace, DataProperty } from \"@api-client/core/build/browser.js\";\nimport { html, TemplateResult, nothing, CSSResult, css, PropertyValues } from \"lit\";\nimport { property, query, state } from \"lit/decorators.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport VizWorkspaceElement from \"../../visualization/elements/VizWorkspaceElement.js\";\nimport { DataModelLayout } from \"../../visualization/plugin/positioning/DataModelLayout.js\";\nimport '../../define/visualization/viz-workspace.js';\nimport '../../define/visualization/viz-association.js';\nimport '../../define/ui/ui-icon.js';\nimport { GroupSelection } from \"../../visualization/plugin/group-selection/GroupSelection.js\";\nimport { DragAndDropPlugin } from \"../../visualization/plugin/dnd/DragAndDropPlugin.js\";\n\ninterface VizModel {\n id?: string;\n entity: DataEntity;\n type: 'parent' | 'association' | 'internal' | 'external' | 'self';\n x?: number;\n y?: number;\n}\n\nexport default class DataModelVisualizationElement extends ApiElement {\n static override get styles(): CSSResult[] {\n return [\n css`\n :host {\n display: block;\n }\n\n viz-workspace {\n flex: 1;\n height: 100%;\n }\n\n [data-selectable][data-selected] {\n border: 2px var(--workspace-entity-selection-border-color) solid;\n background-color: var(--workspace-entity-selection-background-color, #fff);\n color: var(--workspace-entity-selection-color, unset);\n }\n\n [data-selectable][data-secondary-selected] {\n border: 2px var(--workspace-entity-secondary-selection-border-color) solid;\n background-color: var(--workspace-entity-secondary-selection-background-color, #fff);\n }\n\n .data-entity {\n border: 2px var(--workspace-entity-border-color, #9e9e9e) solid;\n border-radius: var(--workspace-entity-border-radius, 8px);\n background-color: var(--workspace-entity-background-color, #fff);\n min-width: 240px;\n box-shadow: var(--workspace-entity-box-shadow, none);\n }\n\n .title {\n display: flex;\n align-items: center;\n margin: 12px 20px;\n }\n\n .title .label {\n padding: 0;\n margin: 0;\n /* font-weight: 300; */\n /* font-size: 1.25rem; */\n margin-left: 8px;\n\n font-family: var(--md-sys-typescale-title-large-font-family-name);\n font-style: var(--md-sys-typescale-title-large-font-family-style);\n font-weight: var(--md-sys-typescale-title-large-font-weight);\n font-size: var(--md-sys-typescale-title-large-font-size);\n letter-spacing: var(--md-sys-typescale-title-large-tracking);\n line-height: var(--md-sys-typescale-title-large-height);\n text-transform: var(--md-sys-typescale-title-large-text-transform);\n text-decoration: var(--md-sys-typescale-title-large-text-decoration);\n }\n\n .properties {\n margin: 20px 0;\n padding: 0;\n list-style: none;\n }\n\n .property {\n padding: 0 20px;\n height: 36px;\n display: flex;\n align-items: center;\n\n font-family: var(--md-sys-typescale-label-medium-font-family-name);\n font-style: var(--md-sys-typescale-label-medium-font-family-style);\n font-weight: var(--md-sys-typescale-label-medium-font-weight);\n font-size: var(--md-sys-typescale-label-medium-font-size);\n letter-spacing: var(--md-sys-typescale-label-medium-tracking);\n line-height: var(--md-sys-typescale-label-medium-height);\n text-transform: var(--md-sys-typescale-label-medium-text-transform);\n text-decoration: var(--md-sys-typescale-label-medium-text-decoration);\n }\n\n .property.primary,\n .property.index {\n font-weight: 700;\n }\n\n .data-type {\n margin-left: auto;\n }\n `,\n ];\n }\n\n /**\n * The key of the entity to edit.\n */\n @property({ type: String, reflect: true }) key?: string;\n\n /**\n * The read data namespace.\n */\n @property({ type: Object }) root?: DataNamespace;\n\n /**\n * The computed entity when the key or root change.\n */\n @state() protected _model?: DataModel;\n\n @state() protected _data?: VizModel[];\n\n @query('viz-workspace') protected _workspace?: VizWorkspaceElement;\n\n protected groupSelectionPlugin?: GroupSelection;\n\n protected dndPlugin?: DragAndDropPlugin;\n\n override firstUpdated(cp: PropertyValues<this>): void {\n super.firstUpdated(cp);\n const node = this._workspace;\n if (!node) {\n return;\n }\n this.dndPlugin = new DragAndDropPlugin(node);\n this.dndPlugin.connect();\n this.groupSelectionPlugin = new GroupSelection(node);\n this.groupSelectionPlugin.connect();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.dndPlugin) {\n this.dndPlugin.connect();\n }\n if (this.groupSelectionPlugin) {\n this.groupSelectionPlugin.connect();\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this.dndPlugin) {\n this.dndPlugin.disconnect();\n }\n if (this.groupSelectionPlugin) {\n this.groupSelectionPlugin.disconnect();\n }\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('key')) {\n this._computeModel();\n }\n }\n\n /**\n * Reloads the generated view model, runs the auto layout, and updated the view.\n * Note, this is very expensive operation. It updates the view at least twice.\n * THe layout computation can be very complex.\n */\n async refresh(): Promise<void> {\n this._createVizData();\n await this.updateComplete;\n await this._runLayout();\n }\n\n /**\n * Computes the view value for the property.\n * This should be called before the update is complete so this won't trigger another update.\n */\n protected _computeModel(): void {\n const { root, key } = this;\n if (!root || !key) {\n this._model = undefined;\n return;\n }\n this._model = root.definitions.models.find(i => i.key === key);\n this.refresh();\n }\n\n protected async _runLayout(): Promise<void> {\n const { _workspace: workspace, _model: dm, _data: list } = this;\n if (!workspace || !dm || !list) {\n return;\n }\n const layout = new DataModelLayout(workspace);\n layout.nodeSeparation = 80;\n layout.rankSeparation = 80;\n\n const result = layout.layout(dm);\n if (!result) {\n return;\n }\n result.nodes.forEach((info) => {\n const item = list.find(i => i.entity.key === info.id);\n if (!item) {\n return;\n }\n item.x = info.node.x;\n item.y = info.node.y;\n });\n this.requestUpdate();\n await this.updateComplete;\n workspace.edges.recalculate();\n }\n\n protected _createVizData(): void {\n const { _model: dm, root } = this;\n if (!dm || !root) {\n this._data = undefined;\n return;\n }\n const result: VizModel[] = [];\n\n dm.entities.forEach((entity) => {\n result.push({ entity, type: 'internal' });\n\n entity.parents.forEach(id => {\n if (result.some(i => i.entity.key === id) || dm.entities.some(i => i.key === id)) {\n // don't add a parent that is already added.\n return;\n }\n const parent = root.definitions.entities.find(i => i.key === id);\n if (parent) {\n result.push({ entity: parent, type: 'parent' });\n }\n });\n\n entity.associations.forEach((assoc) => {\n if (!assoc.targets.length) {\n return;\n }\n const targets = assoc.getTargets();\n if (targets.length === 1) {\n // classic association\n const [target] = targets;\n if (result.some(i => i.entity.key === target.key) || dm.entities.some(i => i.key === target.key)) {\n return;\n }\n const isSelf = entity === target;\n result.push({ \n entity: target, \n type: isSelf ? 'self' : 'association',\n });\n } else {\n // TODO: Union layout.\n // console.log(targets);\n }\n });\n\n // entity.associations.forEach((assoc) => {\n // if (!assoc.target) {\n // // ignore associations without a target\n // return;\n // }\n // if (result.some(i => i.entity.key === assoc.target) || dm.entities.some(i => i.key === assoc.target)) {\n // return;\n // }\n // const target = assoc.getTarget();\n // if (target) {\n // const isSelf = entity === target;\n // result.push({ \n // entity: target, \n // type: isSelf ? 'self' : 'association',\n // });\n // }\n // });\n });\n\n this._data = result;\n }\n\n protected async _repositionHandler(e: CustomEvent): Promise<void> {\n const node = e.target as HTMLElement;\n const { key } = node.dataset;\n if (!key) {\n return;\n }\n const model = this._data?.find(i => i.entity.key === key);\n if (!model) {\n return;\n }\n const { dx, dy } = e.detail;\n const { x=0, y=0 } = model;\n model.x = x + dx;\n model.y = y + dy;\n this.requestUpdate();\n await this.updateComplete;\n this._workspace?.edges.recalculate();\n }\n\n protected override render(): TemplateResult {\n return html`\n <viz-workspace\n @positionchange=\"${this._repositionHandler}\"\n >${this._modelContents()}</viz-workspace>\n `;\n }\n\n protected _modelContents(): TemplateResult[] | typeof nothing {\n const { _data: list } = this;\n if (!list || !list.length) {\n return nothing;\n }\n return list.map(e => this._entityVisualization(e));\n }\n\n protected _entityVisualization(model: VizModel): TemplateResult {\n const { entity, x = 0, y = 0, type } = model;\n const { info, key, associations, parents } = entity;\n const styles = {\n transform: `translate(${x}px, ${y}px)`,\n };\n return html`\n <div class=\"data-entity\" data-key=\"${key}\" data-type=\"${type}\" data-selectable=\"true\" draggable=\"true\" style=\"${styleMap(styles)}\">\n <div class=\"content\">\n <div class=\"title\">\n <ui-icon icon=\"schemaEntity\"></ui-icon>\n <p class=\"label\">${info.renderLabel}</p>\n </div>\n ${this._propertiesListTemplate(entity)}\n </div>\n ${associations.map(assoc => this._associationTemplate(assoc))}\n ${parents.map(id => this._parentAssociationTemplate(id))}\n </div>\n `;\n }\n\n protected _propertiesListTemplate(entity: DataEntity): TemplateResult {\n const { properties } = entity;\n return html`\n <ul class=\"properties\">\n ${properties.map(p => this._propertyItemTemplate(p))}\n </ul>\n `;\n }\n\n protected _propertyItemTemplate(item: DataProperty): TemplateResult {\n const { key, info, type, deprecated = false, primary = false, index = false } = item;\n const classes = {\n property: true,\n deprecated,\n primary,\n index,\n };\n return html`\n <li data-key=\"${key}\" class=\"${classMap(classes)}\">\n <span class=\"label\">${info.renderLabel}</span>\n <span class=\"data-type\">${type}</span>\n </li>\n `;\n }\n\n protected _associationTemplate(item: DataAssociation): TemplateResult | typeof nothing {\n const { key, info, targets } = item;\n if (!targets.length) {\n return nothing;\n }\n if (targets.length === 1) {\n return html`<viz-association \n data-key=\"${key}\" \n data-target=\"${targets[0]}\"\n title=\"${info.renderLabel}\"\n data-selectable\n data-marker-start=\"association\"\n ></viz-association>`;\n }\n // TODO: Make union associations\n return nothing;\n }\n\n protected _parentAssociationTemplate(id: string): TemplateResult {\n return html`<viz-association \n data-key=\"child-${id}\" \n data-target=\"${ifDefined(id)}\"\n data-selectable\n data-marker-end=\"parent\"\n ></viz-association>`;\n }\n}\n"]}
1
+ {"version":3,"file":"DataModelVisualizationElement.js","sourceRoot":"","sources":["../../../src/elements/schema-design/DataModelVisualizationElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataAssociation, DataEntity, DataModel, DataNamespace, DataProperty } from \"@api-client/core/build/browser.js\";\nimport { html, TemplateResult, nothing, CSSResult, css, PropertyValues } from \"lit\";\nimport { property, query, state } from \"lit/decorators.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport VizWorkspaceElement from \"../../visualization/elements/VizWorkspaceElement.js\";\nimport { DataModelLayout } from \"../../visualization/plugin/positioning/DataModelLayout.js\";\nimport '../../define/visualization/viz-workspace.js';\nimport '../../define/visualization/viz-association.js';\nimport '../../define/ui/ui-icon.js';\nimport { GroupSelection } from \"../../visualization/plugin/group-selection/GroupSelection.js\";\nimport { DragAndDropPlugin } from \"../../visualization/plugin/dnd/DragAndDropPlugin.js\";\n\ninterface VizModel {\n id?: string;\n entity: DataEntity;\n type: 'parent' | 'association' | 'internal' | 'external' | 'self';\n x?: number;\n y?: number;\n}\n\nexport default class DataModelVisualizationElement extends ApiElement {\n static override get styles(): CSSResult[] {\n return [\n css`\n :host {\n display: block;\n }\n\n viz-workspace {\n flex: 1;\n height: 100%;\n }\n\n [data-selectable][data-selected] {\n border: 2px var(--workspace-entity-selection-border-color) solid;\n background-color: var(--workspace-entity-selection-background-color, #fff);\n color: var(--workspace-entity-selection-color, unset);\n }\n\n [data-selectable][data-secondary-selected] {\n border: 2px var(--workspace-entity-secondary-selection-border-color) solid;\n background-color: var(--workspace-entity-secondary-selection-background-color, #fff);\n }\n\n .data-entity {\n border: 2px var(--workspace-entity-border-color, #9e9e9e) solid;\n border-radius: var(--workspace-entity-border-radius, 8px);\n background-color: var(--workspace-entity-background-color, #fff);\n min-width: 240px;\n box-shadow: var(--workspace-entity-box-shadow, none);\n }\n\n .title {\n display: flex;\n align-items: center;\n margin: 12px 20px;\n }\n\n .title .label {\n padding: 0;\n margin: 0;\n /* font-weight: 300; */\n /* font-size: 1.25rem; */\n margin-left: 8px;\n\n font-family: var(--md-sys-typescale-title-large-font-family-name);\n font-style: var(--md-sys-typescale-title-large-font-family-style);\n font-weight: var(--md-sys-typescale-title-large-font-weight);\n font-size: var(--md-sys-typescale-title-large-font-size);\n letter-spacing: var(--md-sys-typescale-title-large-tracking);\n line-height: var(--md-sys-typescale-title-large-height);\n text-transform: var(--md-sys-typescale-title-large-text-transform);\n text-decoration: var(--md-sys-typescale-title-large-text-decoration);\n }\n\n .properties {\n margin: 20px 0;\n padding: 0;\n list-style: none;\n }\n\n .property {\n padding: 0 20px;\n height: 36px;\n display: flex;\n align-items: center;\n\n font-family: var(--md-sys-typescale-label-medium-font-family-name);\n font-style: var(--md-sys-typescale-label-medium-font-family-style);\n font-weight: var(--md-sys-typescale-label-medium-font-weight);\n font-size: var(--md-sys-typescale-label-medium-font-size);\n letter-spacing: var(--md-sys-typescale-label-medium-tracking);\n line-height: var(--md-sys-typescale-label-medium-height);\n text-transform: var(--md-sys-typescale-label-medium-text-transform);\n text-decoration: var(--md-sys-typescale-label-medium-text-decoration);\n }\n\n .property.primary,\n .property.index {\n font-weight: 700;\n }\n\n .data-type {\n margin-left: auto;\n }\n `,\n ];\n }\n\n /**\n * The key of the entity to edit.\n */\n @property({ type: String, reflect: true }) key?: string;\n\n /**\n * The read data namespace.\n */\n @property({ type: Object }) root?: DataNamespace;\n\n /**\n * The computed entity when the key or root change.\n */\n @state() protected _model?: DataModel;\n\n @state() protected _data?: VizModel[];\n\n @query('viz-workspace') protected _workspace?: VizWorkspaceElement;\n\n protected groupSelectionPlugin?: GroupSelection;\n\n protected dndPlugin?: DragAndDropPlugin;\n\n override firstUpdated(cp: PropertyValues<this>): void {\n super.firstUpdated(cp);\n const node = this._workspace;\n if (!node) {\n return;\n }\n this.dndPlugin = new DragAndDropPlugin(node);\n this.dndPlugin.connect();\n this.groupSelectionPlugin = new GroupSelection(node);\n this.groupSelectionPlugin.connect();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.dndPlugin) {\n this.dndPlugin.connect();\n }\n if (this.groupSelectionPlugin) {\n this.groupSelectionPlugin.connect();\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this.dndPlugin) {\n this.dndPlugin.disconnect();\n }\n if (this.groupSelectionPlugin) {\n this.groupSelectionPlugin.disconnect();\n }\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('key')) {\n this._computeModel();\n }\n }\n\n /**\n * Reloads the generated view model, runs the auto layout, and updated the view.\n * Note, this is very expensive operation. It updates the view at least twice.\n * THe layout computation can be very complex.\n */\n async refresh(): Promise<void> {\n this._createVizData();\n await this.updateComplete;\n await this._runLayout();\n }\n\n /**\n * Computes the view value for the property.\n * This should be called before the update is complete so this won't trigger another update.\n */\n protected _computeModel(): void {\n const { root, key } = this;\n if (!root || !key) {\n this._model = undefined;\n return;\n }\n this._model = root.definitions.models.find(i => i.key === key);\n this.refresh();\n }\n\n protected async _runLayout(): Promise<void> {\n const { _workspace: workspace, _model: dm, _data: list } = this;\n if (!workspace || !dm || !list) {\n return;\n }\n const layout = new DataModelLayout(workspace);\n layout.nodeSeparation = 80;\n layout.rankSeparation = 80;\n\n const result = layout.layout(dm);\n if (!result) {\n return;\n }\n result.nodes.forEach((info) => {\n const item = list.find(i => i.entity.key === info.id);\n if (!item) {\n return;\n }\n item.x = info.node.x;\n item.y = info.node.y;\n });\n this.requestUpdate();\n await this.updateComplete;\n workspace.edges.recalculate();\n }\n\n protected _createVizData(): void {\n const { _model: dm, root } = this;\n if (!dm || !root) {\n this._data = undefined;\n return;\n }\n const result: VizModel[] = [];\n\n dm.entities.forEach((entity) => {\n result.push({ entity, type: 'internal' });\n\n entity.parents.forEach(id => {\n if (result.some(i => i.entity.key === id) || dm.entities.some(i => i.key === id)) {\n // don't add a parent that is already added.\n return;\n }\n const parent = root.definitions.entities.find(i => i.key === id);\n if (parent) {\n result.push({ entity: parent, type: 'parent' });\n }\n });\n\n entity.associations.forEach((assoc) => {\n if (!assoc.targets.length) {\n return;\n }\n const targets = assoc.getTargets();\n if (targets.length === 1) {\n // classic association\n const [target] = targets;\n if (result.some(i => i.entity.key === target.key) || dm.entities.some(i => i.key === target.key)) {\n return;\n }\n const isSelf = entity === target;\n result.push({ \n entity: target, \n type: isSelf ? 'self' : 'association',\n });\n } else {\n // TODO: Union layout.\n // console.log(targets);\n }\n });\n\n // entity.associations.forEach((assoc) => {\n // if (!assoc.target) {\n // // ignore associations without a target\n // return;\n // }\n // if (result.some(i => i.entity.key === assoc.target) || dm.entities.some(i => i.key === assoc.target)) {\n // return;\n // }\n // const target = assoc.getTarget();\n // if (target) {\n // const isSelf = entity === target;\n // result.push({ \n // entity: target, \n // type: isSelf ? 'self' : 'association',\n // });\n // }\n // });\n });\n\n this._data = result;\n }\n\n protected async _repositionHandler(e: CustomEvent): Promise<void> {\n const node = e.target as HTMLElement;\n const { key } = node.dataset;\n if (!key) {\n return;\n }\n const model = this._data?.find(i => i.entity.key === key);\n if (!model) {\n return;\n }\n const { dx, dy } = e.detail;\n const { x=0, y=0 } = model;\n model.x = x + dx;\n model.y = y + dy;\n this.requestUpdate();\n await this.updateComplete;\n this._workspace?.edges.recalculate();\n }\n\n protected override render(): TemplateResult {\n return html`\n <viz-workspace\n @positionchange=\"${this._repositionHandler}\"\n >${this._modelContents()}</viz-workspace>\n `;\n }\n\n protected _modelContents(): TemplateResult[] | typeof nothing {\n const { _data: list } = this;\n if (!list || !list.length) {\n return nothing;\n }\n return list.map(e => this._entityVisualization(e));\n }\n\n protected _entityVisualization(model: VizModel): TemplateResult {\n const { entity, x = 0, y = 0, type } = model;\n const { info, key, associations, parents } = entity;\n const styles = {\n transform: `translate(${x}px, ${y}px)`,\n };\n return html`\n <div class=\"data-entity\" data-key=\"${key}\" data-type=\"${type}\" data-selectable=\"true\" draggable=\"true\" style=\"${styleMap(styles)}\">\n <div class=\"content\">\n <div class=\"title\">\n <ui-icon icon=\"schemaEntity\"></ui-icon>\n <p class=\"label\">${info.renderLabel}</p>\n </div>\n ${this._propertiesListTemplate(entity)}\n </div>\n ${associations.map(assoc => this._associationTemplate(assoc))}\n ${parents.map(id => this._parentAssociationTemplate(id))}\n </div>\n `;\n }\n\n protected _propertiesListTemplate(entity: DataEntity): TemplateResult {\n const { properties } = entity;\n return html`\n <ul class=\"properties\">\n ${properties.map(p => this._propertyItemTemplate(p))}\n </ul>\n `;\n }\n\n protected _propertyItemTemplate(item: DataProperty): TemplateResult {\n const { key, info, type, deprecated = false, primary = false, index = false } = item;\n const classes = {\n property: true,\n deprecated,\n primary,\n index,\n };\n return html`\n <li data-key=\"${key}\" class=\"${classMap(classes)}\">\n <span class=\"label\">${info.renderLabel}</span>\n <span class=\"data-type\">${type}</span>\n </li>\n `;\n }\n\n protected _associationTemplate(item: DataAssociation): TemplateResult | typeof nothing {\n const { key, info, targets } = item;\n if (!targets.length) {\n return nothing;\n }\n if (targets.length === 1) {\n return html`<viz-association \n data-key=\"${key}\" \n data-target=\"${targets[0]}\"\n title=\"${info.renderLabel}\"\n data-selectable\n data-marker-start=\"association\"\n ></viz-association>`;\n }\n // TODO: Make union associations\n return nothing;\n }\n\n protected _parentAssociationTemplate(id: string): TemplateResult {\n return html`<viz-association \n data-key=\"child-${id}\" \n data-target=\"${ifDefined(id)}\"\n data-selectable\n data-marker-end=\"parent\"\n ></viz-association>`;\n }\n}\n"]}
@@ -75,7 +75,6 @@ export default class DataSchemaDocument extends ApiElement {
75
75
  removeAssociation(key: string): void;
76
76
  addProperty(name?: string): void;
77
77
  removeProperty(key: string): void;
78
- protected _notifyChanged(): void;
79
78
  protected _addPropertyHandler(): void;
80
79
  protected _findParentKeyedElement(node: HTMLElement): HTMLElement | null;
81
80
  protected _removeHandler(e: Event): void;
@@ -1 +1 @@
1
- {"version":3,"file":"DataSchemaDocument.d.ts","sourceRoot":"","sources":["../../../src/elements/schema-design/DataSchemaDocument.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,SAAS,EAAQ,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAkB,MAAM,mCAAmC,CAAC;AAG7H,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAM1C,OAAO,8BAA8B,CAAC;AACtC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,4BAA4B,CAAC;AACpC,OAAO,6BAA6B,CAAC;AAYrC,KAAK,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAErD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,UAAU;IACxD,WAAoB,MAAM,IAAI,SAAS,EAAE,CAkDxC;IAED;;OAEG;IACyB,IAAI,CAAC,EAAE,aAAa,CAAC;IAEjD;;;OAGG;IACwC,GAAG,CAAC,EAAE,MAAM,CAAC;IAExD;;OAEG;IACM,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IAExC;;;OAGG;IACwC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAErE;;;;OAIG;IACyC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE1E;;;;;OAKG;IACyC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAE/D;;;OAGG;IACM,SAAS,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;cAEhC,UAAU,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAM7D;;;OAGG;IACH,SAAS,CAAC,aAAa,IAAI,IAAI;IAU/B;;;;;;;;OAQG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI;IAuBpE;;;;;OAKG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAUpC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAiBhC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAajC,SAAS,CAAC,cAAc,IAAI,IAAI;IAIhC,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAIrC,SAAS,CAAC,uBAAuB,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI;IAexE,SAAS,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAgBxC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAiBtC,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI;IAmBlD,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI;IAYnD,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI;IAmB9C,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI;IAa9C,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI;IAa1C;;OAEG;IACH,SAAS,CAAC,gBAAgB,IAAI,MAAM,EAAE;IAWtC,SAAS,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAMxC,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAUvD;;;;OAIG;IACH,SAAS,CAAC,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAWnD,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAK7E,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;cAc5B,MAAM,IAAI,cAAc,GAAG,OAAO,OAAO;IAmB5D,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc;IAU7D,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc;IAiBlE,SAAS,CAAC,mBAAmB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,cAAc;IAW9H,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,UAAM,GAAG,cAAc;IA8B/E;;;;;;;OAOG;IACH,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,UAAM,GAAG,cAAc;IAWrF;;;OAGG;IACH,SAAS,CAAC,0BAA0B,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,UAAM,GAAG,cAAc;IAiD3F;;;OAGG;IACH,SAAS,CAAC,yBAAyB,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,UAAM,GAAG,cAAc;IAqE1F;;OAEG;IACH,SAAS,CAAC,4BAA4B,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,UAAM,GAAG,cAAc;IA+B7F,SAAS,CAAC,8BAA8B,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc;IAc/E,SAAS,CAAC,wBAAwB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,GAAG,cAAc;IA0C1F;;;;;;;;;;OAUG;IACH,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc;IAiC3H,SAAS,CAAC,4BAA4B,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc;IAU5E;;;;;OAKG;IACH,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,OAAO,OAAO;IAoBrH;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,cAAc;IAgBhE;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc;IAenE,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,MAAM;IAYjH;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,OAAO;IAWtF,SAAS,CAAC,kBAAkB,IAAI,cAAc,GAAG,OAAO,OAAO;CAUhE"}
1
+ {"version":3,"file":"DataSchemaDocument.d.ts","sourceRoot":"","sources":["../../../src/elements/schema-design/DataSchemaDocument.ts"],"names":[],"mappings":"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"}
@@ -78,42 +78,6 @@ export default class DataSchemaDocument extends ApiElement {
78
78
  `,
79
79
  ];
80
80
  }
81
- /**
82
- * The read data namespace.
83
- */
84
- root;
85
- /**
86
- * The entity key to render the schema documentation for
87
- * @attribute
88
- */
89
- key;
90
- /**
91
- * The read data entity when the "selected" change.
92
- */
93
- _entity;
94
- /**
95
- * The key of the property being highlighted.
96
- * @attribute
97
- */
98
- selectedProperty;
99
- /**
100
- * When set it activates the drop zone in the properties list to drop an entity as an association.
101
- * This has no effect when `editable` is not set.
102
- * @attribute
103
- */
104
- associationDropZone;
105
- /**
106
- * Whether to render the view in the edit-ready model.
107
- * This mode allows to add new property, create an association, or remove those.
108
- * It does not allow to manipulate properties of association or properties.
109
- * @attribute
110
- */
111
- editable;
112
- /**
113
- * When dragging an entity over an existing association this is the key
114
- * of the association hovered.
115
- */
116
- _dropAssociationTarget;
117
81
  willUpdate(cp) {
118
82
  if (cp.has('key')) {
119
83
  this.computeEntity();
@@ -162,7 +126,7 @@ export default class DataSchemaDocument extends ApiElement {
162
126
  }
163
127
  }));
164
128
  }
165
- this._notifyChanged();
129
+ this.notifyChange();
166
130
  }
167
131
  /**
168
132
  * Removes an association from the entity.
@@ -176,7 +140,7 @@ export default class DataSchemaDocument extends ApiElement {
176
140
  return;
177
141
  }
178
142
  _entity.removeAssociation(key);
179
- this._notifyChanged();
143
+ this.notifyChange();
180
144
  this.requestUpdate();
181
145
  }
182
146
  addProperty(name) {
@@ -186,7 +150,7 @@ export default class DataSchemaDocument extends ApiElement {
186
150
  }
187
151
  const created = _entity.addNamedProperty(name || 'New property');
188
152
  this.selectedProperty = created.key;
189
- this._notifyChanged();
153
+ this.notifyChange();
190
154
  this.requestUpdate();
191
155
  this.dispatchEvent(new CustomEvent('edit', {
192
156
  detail: {
@@ -204,12 +168,9 @@ export default class DataSchemaDocument extends ApiElement {
204
168
  if (this.selectedProperty === key) {
205
169
  this.selectedProperty = undefined;
206
170
  }
207
- this._notifyChanged();
171
+ this.notifyChange();
208
172
  this.requestUpdate();
209
173
  }
210
- _notifyChanged() {
211
- this.dispatchEvent(new Event('change'));
212
- }
213
174
  _addPropertyHandler() {
214
175
  this.addProperty();
215
176
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DataSchemaDocument.js","sourceRoot":"","sources":["../../../src/elements/schema-design/DataSchemaDocument.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, CSSResult, html, TemplateResult, nothing, PropertyValues } from \"lit\";\nimport { DataAssociation, DataEntity, DataNamespace, DataProperty, DataEntityKind } from \"@api-client/core/build/browser.js\";\nimport { property, state } from \"lit/decorators.js\";\nimport { ClassInfo, classMap } from \"lit/directives/class-map.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport theme from '../theme.js';\nimport schemaCommon from './schemaCommon.js';\nimport EditorCommon from './CommonStyles.js';\nimport MarkdownStyles from '../highlight/MarkdownStyles.js';\nimport typography from \"../../styles/m3/typography.module.js\";\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-radio.js';\nimport RadioElement from \"../../ui/input/RadioElement.js\";\n\n/**\n * We keep the list of expanded attributes in a weak map\n * so the state is kept as long as the namespace is loaded and the DataEntity exists.\n * WeakMap allows to GC the DataEntity when it is removed from the namespace (and also release the values).\n */\nconst expandedState = new WeakMap<DataEntity, string[]>();\n\nconst selectedUnions = new Map<string, string>();\n\ntype UnionType = \"anyOf\" | \"allOf\" | \"oneOf\" | \"not\";\n\n/**\n * An element that renders a documentation view for a data entity.\n * \n * @fires edit - When a property is selected for editing. This is only possible when the `editable` property is set.\n * @fires change - When the entity has changed. This is only possible when the `editable` property is set.\n */\nexport default class DataSchemaDocument extends ApiElement {\n static override get styles(): CSSResult[] {\n return [\n theme,\n schemaCommon,\n MarkdownStyles,\n EditorCommon,\n typography,\n css`\n :host {\n display: block;\n }\n\n .entity-header {\n margin-bottom: 20px;\n }\n\n .entity-header .label {\n margin-bottom: 1em;\n }\n\n .no-info {\n margin: 12px 20px;\n }\n\n .add-property-section {\n margin-top: 20px;\n }\n\n .property-container.selected {\n background: var(--list-active-background);\n }\n\n .tree-view.drop-active {\n background: var(--association-drop-background, #e3f2fd);\n }\n\n .property-container.drag-over {\n background: var(--association-drop-background, #e3f2fd);\n }\n\n .drop-zone {\n position: absolute;\n inset: 0;\n height: unset;\n margin: 0;\n padding: 0;\n background: rgba(255,255,255,0.92);\n }\n `,\n ];\n }\n\n /**\n * The read data namespace.\n */\n @property({ type: Object }) root?: DataNamespace;\n\n /**\n * The entity key to render the schema documentation for\n * @attribute\n */\n @property({ type: String, reflect: true }) key?: string;\n\n /**\n * The read data entity when the \"selected\" change.\n */\n @state() protected _entity?: DataEntity;\n\n /**\n * The key of the property being highlighted.\n * @attribute\n */\n @property({ type: String, reflect: true }) selectedProperty?: string;\n\n /**\n * When set it activates the drop zone in the properties list to drop an entity as an association.\n * This has no effect when `editable` is not set.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) associationDropZone?: boolean;\n\n /**\n * Whether to render the view in the edit-ready model.\n * This mode allows to add new property, create an association, or remove those.\n * It does not allow to manipulate properties of association or properties.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) editable?: boolean;\n\n /**\n * When dragging an entity over an existing association this is the key\n * of the association hovered.\n */\n @state() protected _dropAssociationTarget?: string;\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('key')) {\n this.computeEntity();\n }\n }\n\n /**\n * Computes the view value for the property.\n * This should be called before the update is complete so this won't trigger another update.\n */\n protected computeEntity(): void {\n const { root, key } = this;\n if (!root || !key) {\n this._entity = undefined;\n return;\n }\n const entity = root.definitions.entities.find(i => i.key === key);\n this._entity = entity;\n }\n\n /**\n * Adds an entity with the given key as an association to this entity.\n * This does nothing when the view is not in the `editable` model.\n * \n * Note, we allow to create an association to self. Also note, an entity can have multiple associations to the same target.\n * \n * @param foreignKey The key of the target entity to add.\n * @param parentAssociation When set, it adds another target to an existing association.\n */\n addAssociation(foreignKey: string, parentAssociation?: string): void {\n const { _entity, editable } = this;\n if (!editable || !foreignKey || !_entity) {\n return;\n }\n if (parentAssociation) {\n const parent = _entity.associations.find(i => i.key === parentAssociation);\n if (!parent) {\n return;\n }\n parent.addTarget(foreignKey);\n } else {\n const created = _entity.addTargetAssociation(foreignKey);\n this.dispatchEvent(new CustomEvent('edit', {\n detail: {\n type: 'association',\n key: created.key,\n }\n }));\n }\n this._notifyChanged();\n }\n\n /**\n * Removes an association from the entity.\n * This does nothing when the view is not in the `editable` model.\n * \n * @param key The key of the association to remove.\n */\n removeAssociation(key: string): void {\n const { _entity, editable } = this;\n if (!editable || !key || !_entity) {\n return;\n }\n _entity.removeAssociation(key);\n this._notifyChanged();\n this.requestUpdate();\n }\n\n addProperty(name?: string): void {\n const { _entity, editable } = this;\n if (!_entity || !editable) {\n return;\n }\n const created = _entity.addNamedProperty(name || 'New property');\n this.selectedProperty = created.key;\n this._notifyChanged();\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent('edit', {\n detail: {\n type: 'property',\n key: created.key,\n }\n }));\n }\n\n removeProperty(key: string): void {\n const { _entity, editable } = this;\n if (!key || !_entity || !editable) {\n return;\n }\n _entity.removeProperty(key);\n if (this.selectedProperty === key) {\n this.selectedProperty = undefined;\n }\n this._notifyChanged();\n this.requestUpdate();\n }\n\n protected _notifyChanged(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n protected _addPropertyHandler(): void {\n this.addProperty();\n }\n\n protected _findParentKeyedElement(node: HTMLElement): HTMLElement | null {\n let target: HTMLElement | null = node;\n while (target) {\n if (target.nodeType !== Node.ELEMENT_NODE || !target.dataset) {\n target = target.parentElement;\n continue;\n }\n if (target.dataset.key) {\n return target;\n }\n target = target.parentElement;\n }\n return null;\n }\n\n protected _removeHandler(e: Event): void {\n const button = e.currentTarget as HTMLElement;\n const { type } = button.dataset;\n if (!type) {\n return;\n }\n const node = this._findParentKeyedElement(e.target as HTMLElement);\n if (node) {\n if (type === 'property') {\n this.removeProperty(node.dataset.key as string);\n } else if (type === 'association') {\n this.removeAssociation(node.dataset.key as string);\n }\n }\n }\n\n protected _editHandler(e: Event): void {\n const button = e.currentTarget as HTMLElement;\n const { type } = button.dataset;\n if (!type) {\n return;\n }\n const node = this._findParentKeyedElement(e.target as HTMLElement);\n if (node) {\n this.dispatchEvent(new CustomEvent('edit', {\n detail: {\n type,\n key: node.dataset.key as string,\n }\n }));\n }\n }\n\n protected _associationDragOver(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer) {\n return;\n }\n const dt = dataTransfer;\n if (!dt.types.includes(DataEntityKind.toLocaleLowerCase())) {\n return;\n }\n const node = e.currentTarget as HTMLElement;\n const { key } = node.dataset;\n if (key) {\n e.preventDefault();\n dt.effectAllowed = 'copy';\n dt.dropEffect = 'copy';\n this._dropAssociationTarget = key;\n }\n }\n\n protected _associationDragLeave(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer) {\n return;\n }\n const dt = dataTransfer;\n if (!dt.types.includes(DataEntityKind.toLocaleLowerCase())) {\n return;\n }\n this._dropAssociationTarget = undefined;\n }\n\n protected _associationDrop(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer) {\n return;\n }\n const dt = dataTransfer;\n if (!dt.types.includes(DataEntityKind.toLocaleLowerCase())) {\n return;\n }\n const { _dropAssociationTarget } = this;\n if (!_dropAssociationTarget) {\n return;\n }\n e.preventDefault();\n this._dropAssociationTarget = undefined; \n const key = dataTransfer.getData('text/key');\n this.addAssociation(key, _dropAssociationTarget);\n }\n\n protected _dragoverHandler(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n e.preventDefault();\n dataTransfer.dropEffect = \"copy\";\n dataTransfer.effectAllowed = \"copy\";\n }\n\n protected _dropHandler(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n e.preventDefault();\n const key = dataTransfer.getData('text/key');\n this.addAssociation(key);\n }\n\n /**\n * @returns the list of keys of properties that are expanded (children are rendered).\n */\n protected _getExpandedKeys(): string[] {\n const { _entity } = this;\n if (!_entity) {\n return [];\n }\n if (!expandedState.has(_entity)) {\n expandedState.set(_entity, []);\n }\n return expandedState.get(_entity) as string[];\n }\n\n protected _expandHandler(e: Event): void {\n const button = e.currentTarget as HTMLElement;\n const { id } = button.dataset;\n this._toggleExpandedProperty(id as string);\n }\n\n protected _expandKeydownHandler(e: KeyboardEvent): void {\n if (e.code !== 'Space') {\n return;\n }\n e.preventDefault();\n const button = e.currentTarget as HTMLElement;\n const { id } = button.dataset;\n this._toggleExpandedProperty(id as string);\n }\n\n /**\n * Toggles an \"expanded\" state for a property children.\n * \n * @param id Parent property id that has children to toggle visibility of.\n */\n protected _toggleExpandedProperty(id: string): void {\n const list = this._getExpandedKeys();\n const index = list.indexOf(id);\n if (index === -1) {\n list.push(id);\n } else {\n list.splice(index, 1);\n }\n this.requestUpdate();\n }\n\n protected _isRecursive(association: DataAssociation, target: string): boolean {\n const entity = association.getParent();\n return entity.hasClosedCycle(this.key as string, target);\n }\n\n protected _unionSelectedHandler(e: Event): void {\n const button = e.target as RadioElement;\n if (!button.checked) {\n return;\n }\n const value = button.value as string;\n const { association } = button.dataset;\n if (!association || !value) {\n return;\n }\n selectedUnions.set(association, value);\n this.requestUpdate();\n }\n\n protected override render(): TemplateResult | typeof nothing {\n const { _entity } = this;\n if (!_entity) {\n return nothing;\n }\n const treeClasses = {\n 'drop-active': !!this.associationDropZone && !this._dropAssociationTarget,\n 'tree-view': true,\n }\n return html`\n ${this._headerTemplate(_entity)}\n <div class=\"${classMap(treeClasses)}\" @dragover=\"${this._dragoverHandler}\" @drop=\"${this._dropHandler}\">\n ${this._propertiesTemplate(_entity.properties, _entity.associations)}\n ${this._parentsProperties(_entity.getComputedParents())}\n </div>\n ${this._addButtonTemplate()}\n `;\n }\n\n protected _headerTemplate(entity: DataEntity): TemplateResult {\n const label = entity.info.name || 'Unnamed data entity';\n return html`\n <div class=\"entity-header\">\n <div class=\"label title-large\">${label}</div>\n ${this._descriptionTemplate(entity)}\n </div>\n `;\n }\n\n protected _descriptionTemplate(entity: DataEntity): TemplateResult {\n const { description } = entity.info;\n if (description) {\n return html`\n <div class=\"description\">\n <marked-highlight sanitize .markdown=\"${description}\">\n <div slot=\"markdown-html\" class=\"markdown-body text-selectable\"></div>\n </marked-highlight>\n </div>`;\n }\n return html`\n <div class=\"description\">\n <span class=\"no-description body-medium\">No schema description provided.</span>\n </div>\n `;\n }\n\n protected _propertiesTemplate(properties: DataProperty[], associations: DataAssociation[], readonly?: boolean): TemplateResult {\n if (!properties.length && !associations.length) {\n // don't change the \"div\" to anything else. It's for the CSS to compute borders correctly.\n return html`<div class=\"no-properties\">This entity has no properties or associations.</div>`;\n }\n return html`\n ${properties.map(p => this._propertyTemplate(p, readonly))}\n ${associations.map(a => this._associationTemplate(a, readonly))}\n `;\n }\n\n protected _propertyTemplate(item: DataProperty, readonly=false): TemplateResult {\n const { info, type, key, required, multiple, index, primary } = item;\n const containerClasses = {\n 'property-container': true,\n selected: this.selectedProperty === item.key,\n };\n return html`\n <div class=\"${classMap(containerClasses)}\" data-key=\"${key}\">\n <div class=\"property-border\"></div>\n <div class=\"property-value\">\n <div class=\"property-headline\">\n <div class=\"property-decorator scalar\"><hr></div>\n ${this._paramNameTemplate(item)}\n <span class=\"headline-separator\"></span>\n <div class=\"param-type text-selectable\">${type || 'Any type'}</div>\n ${this._pillTemplate('Required', 'This property is required.', required)}\n ${this._pillTemplate('Multiple', 'Multiple instances of the value are possible.', multiple)}\n ${this._pillTemplate('Index', 'This property is a key which can be indexed.', index)}\n ${this._pillTemplate('Primary', 'This property is the primary key for this entity.', primary, 'primary')}\n </div>\n <div class=\"description-column\"> \n ${this._propertyDescriptionTemplate(info.description)}\n </div>\n <div class=\"details-column\"></div>\n </div>\n ${this._propertyListActions('property', readonly)}\n </div>\n `;\n }\n\n /**\n * A template for the data association list item view.\n * Depending on the number of targets of the association it renders the \"empty target\", single association, or a union association view.\n * \n * @param item The association item to render.\n * @param parent The parent entity of the association.\n * @param readonly Whether to render the view as \"read only\" (no edit controls). We do not show controls for properties inherited from parents.\n */\n protected _associationTemplate(item: DataAssociation, readonly=false): TemplateResult {\n const { targets=[] } = item;\n if (!targets.length) {\n return this._noTargetAssociationTemplate(item, readonly);\n }\n if (targets.length === 1) {\n return this._singleAssociationTemplate(item, readonly);\n }\n return this._unionAssociationTemplate(item, readonly);\n }\n\n /**\n * Renders the template for the an association that has one target. This is a classic association where a property \n * is associated with an object.\n */\n protected _singleAssociationTemplate(item: DataAssociation, readonly=false): TemplateResult {\n const { info, key, required, multiple } = item;\n const containerClasses = {\n 'property-container': true,\n selected: this.selectedProperty === key,\n 'drag-over': this._dropAssociationTarget === key,\n };\n const entity = item.getTargets()[0];\n const recursive = this._isRecursive(item, entity.key) // entity === this._entity || entity === parent;\n let targetLabel: string;\n if (entity) {\n targetLabel = entity.info.renderLabel;\n } else {\n targetLabel = 'Invalid target';\n }\n const list = this._getExpandedKeys();\n const expanded = !recursive && list.includes(key);\n return html`\n <div class=\"${classMap(containerClasses)}\" data-key=\"${key}\" @dragover=\"${this._associationDragOver}\" @dragleave=\"${this._associationDragLeave}\" @drop=\"${this._associationDrop}\">\n <div class=\"property-border\"></div>\n <div class=\"property-value\">\n <div class=\"property-headline\">\n <div class=\"property-decorator object\" tabindex=\"${recursive ? '-1' : '0'}\" data-id=\"${key}\" @click=\"${this._expandHandler}\" @keydown=\"${this._expandKeydownHandler}\">\n <hr>\n ${recursive ? '' : html`<ui-icon icon=\"chevronRight\" class=\"object-toggle-icon ${expanded ? 'opened' : ''}\"></ui-icon>`}\n </div>\n ${this._assocNameTemplate(item)}\n <span class=\"headline-separator\"></span>\n <div class=\"param-type text-selectable\">${multiple ? `Array of ${targetLabel}` : targetLabel}</div>\n ${this._pillTemplate('Recursive shape', 'This association is recursive.', recursive)}\n ${this._pillTemplate('Required', 'This property is required.', required)}\n ${this._pillTemplate('Multiple', 'Multiple instances of the value are possible.', multiple)}\n </div>\n <div class=\"description-column\"> \n ${this._propertyDescriptionTemplate(info.description)}\n </div>\n <div class=\"details-column\"></div>\n </div>\n ${this._propertyListActions('association', readonly)}\n </div>\n ${expanded ? html`\n <div class=\"shape-children\">\n <div class=\"property-border\"></div>\n ${this._associationPropertiesTemplate(item)}\n </div>\n ` : ''}\n `;\n }\n\n /**\n * Renders the template for the an association that has multiple targets. This association represents\n * an union of shapes. This means the property can be any, one of, or either of the union shapes.\n */\n protected _unionAssociationTemplate(item: DataAssociation, readonly=false): TemplateResult {\n const { info, key, required, multiple } = item;\n const containerClasses = {\n 'property-container': true,\n selected: this.selectedProperty === key,\n 'drag-over': this._dropAssociationTarget === key,\n };\n const entities = item.getTargets();\n const adapted = item.readAdapted();\n // The `anyOf` and `oneOf` renders the same as this is a selection of one of the schemas\n // The `allOf` renders properties for all shapes in the union.\n // The not can potentially be a scalar shape and we don't have a concept of that in this tool so probably we gonna skip that.\n let type: UnionType = 'anyOf';\n if (adapted) {\n if (adapted.schema && adapted.schema.unionType) {\n type = adapted.schema.unionType;\n }\n }\n let unionLabel = '';\n if (!entities.length) {\n // this will happen when all targets were removed from the namespace.\n unionLabel = 'invalid targets';\n } else if (type === 'anyOf') {\n const names = entities.map(i => i.info.renderLabel).join(' or ');\n unionLabel = `any of ${names}`;\n } else if (type === 'oneOf') {\n const names = entities.map(i => i.info.renderLabel).join(' or ');\n unionLabel = `one of ${names}`;\n } else {\n const names = entities.map(i => i.info.renderLabel).join(' and ');\n unionLabel = `all of ${names}`;\n }\n if (multiple) {\n unionLabel = `list of ${unionLabel}`;\n }\n const list = this._getExpandedKeys();\n const expanded = list.includes(key);\n return html`\n <div class=\"${classMap(containerClasses)}\" data-key=\"${key}\">\n <div class=\"property-border\"></div>\n <div class=\"property-value\">\n <div class=\"property-headline\">\n <div class=\"property-decorator object\" tabindex=\"0\" data-id=\"${key}\" @click=\"${this._expandHandler}\" @keydown=\"${this._expandKeydownHandler}\">\n <hr>\n <ui-icon icon=\"chevronRight\" class=\"object-toggle-icon ${expanded ? 'opened' : ''}\"></ui-icon>\n </div>\n ${this._assocNameTemplate(item)}\n <span class=\"headline-separator\"></span>\n <div class=\"param-type text-selectable\">${unionLabel}</div>\n ${this._pillTemplate('Required', 'This association is required.', required)}\n ${this._pillTemplate('Multiple', 'Multiple instances of the value are possible.', multiple)}\n ${this._pillTemplate('Union', 'This association is an union.', true)}\n </div>\n <div class=\"description-column\">\n ${this._propertyDescriptionTemplate(info.description)}\n </div>\n <div class=\"details-column\"></div>\n </div>\n ${this._propertyListActions('association', readonly)}\n </div>\n ${expanded ? html`\n <div class=\"shape-children\">\n <div class=\"property-border\"></div>\n ${this._unionPropertiesTemplate(item, type)}\n </div>\n ` : ''}\n `;\n }\n\n /**\n * Renders the template for an association that has no target set.\n */\n protected _noTargetAssociationTemplate(item: DataAssociation, readonly=false): TemplateResult {\n const { info, key, required, multiple } = item;\n const containerClasses = {\n 'property-container': true,\n selected: this.selectedProperty === key,\n 'drag-over': this._dropAssociationTarget === key,\n };\n return html`\n <div class=\"${classMap(containerClasses)}\" data-key=\"${key}\">\n <div class=\"property-border\"></div>\n <div class=\"property-value\">\n <div class=\"property-headline\">\n <div class=\"property-decorator object\">\n <hr>\n </div>\n ${this._assocNameTemplate(item)}\n <span class=\"headline-separator\"></span>\n ${this._pillTemplate('No target', 'This association has no target.', true)}\n ${this._pillTemplate('Required', 'This property is required.', required)}\n ${this._pillTemplate('Multiple', 'Multiple instances of the value are possible.', multiple)}\n </div>\n <div class=\"description-column\">\n ${this._propertyDescriptionTemplate(info.description)}\n </div>\n <div class=\"details-column\"></div>\n </div>\n ${this._propertyListActions('association', readonly)}\n </div>\n `;\n }\n\n protected _associationPropertiesTemplate(item: DataAssociation): TemplateResult {\n const entities = item.getTargets();\n if (!entities.length) {\n // don't change the \"div\" to anything else. It's for the CSS to compute borders correctly.\n return html`<div class=\"no-properties\">Invalid entry. The target entity does not exist.</div>`;\n }\n const [entity] = entities;\n return html`\n <div class=\"tree-view\">\n ${this._propertiesTemplate(entity.properties, entity.associations, true)}\n </div>\n `;\n }\n\n protected _unionPropertiesTemplate(item: DataAssociation, type: UnionType): TemplateResult {\n const entities = item.getTargets();\n if (!entities.length) {\n // don't change the \"div\" to anything else. It's for the CSS to compute borders correctly.\n return html`<div class=\"no-properties\">Invalid entry. The target entity does not exist.</div>`;\n }\n if (type === 'allOf') {\n let allProperties: DataProperty[] = [];\n let allAssociations: DataAssociation[] = [];\n entities.forEach((entity) => {\n const { associations, properties } = entity;\n allProperties = allProperties.concat(properties);\n allAssociations = allAssociations.concat(associations);\n });\n return html`\n <div class=\"tree-view\">\n ${this._unionSelector(item, type, entities)}\n ${this._propertiesTemplate(allProperties, allAssociations, true)}\n </div>`;\n }\n\n let selected = selectedUnions.get(item.key);\n if (!selected) {\n selected = entities[0].key;\n }\n const entity = entities.find(i => i.key === selected);\n if (!entity) {\n return html`\n <div class=\"tree-view\">\n ${this._unionSelector(item, type, entities, selected)}\n <p class=\"no-info\">Invalid selection. Entity not found.</p>\n </div>\n `;\n }\n return html`\n <div class=\"tree-view\">\n ${this._unionSelector(item, type, entities, selected)}\n ${this._propertiesTemplate(entity.properties, entity.associations, true)}\n </div>\n `;\n }\n\n /**\n * Depending on the union type, it renders the union type label and a selector of the union member.\n * \n * This template is intended to use when multiple targets in association were detected.\n * \n * @param item The association item\n * @param type The read from the adapted entity association type.\n * @param entities The list of association targets.\n * @param selected The key of the currently selected association target\n * @returns The template for the union selection in the list of properties.\n */\n protected _unionSelector(item: DataAssociation, type: UnionType, entities: DataEntity[], selected?: string): TemplateResult {\n let label: string;\n if (type === 'anyOf') {\n label = 'Any (one or more) of the following schemas';\n } else if (type === 'oneOf') {\n label = 'One of the following schemas';\n } else if (type === 'allOf') {\n label = 'All properties of union schemas';\n } else {\n label = 'Not matching the schema';\n }\n const renderSelection = ['anyOf', 'oneOf'].includes(type);\n return html`\n <div class=\"union-options\">\n <span class=\"label-large\">${label}</span>\n ${renderSelection ? html`\n ${entities.map((entity) => html`\n <label class=\"label-large\">\n <ui-radio\n class=\"union-toggle\" \n name=\"unionFor${item.key}\"\n data-association=\"${item.key}\"\n value=\"${entity.key}\"\n .checked=\"${selected === entity.key}\" \n @change=\"${this._unionSelectedHandler}\"\n ></ui-radio>\n ${entity.info.renderLabel}\n </label>`)}\n ` : nothing}\n </div>\n `;\n }\n\n protected _propertyDescriptionTemplate(description?: string): TemplateResult {\n return html`\n <div class=\"description\">\n <marked-highlight sanitize .markdown=\"${description || 'No description'}\">\n <div slot=\"markdown-html\" class=\"markdown-body text-selectable\"></div>\n </marked-highlight>\n </div>\n `;\n }\n\n /**\n * Adds the delete and edit buttons to the tree item.\n * This renders nothing when the property is readonly or the element is not `editable`.\n * \n * @param readonly Indicates the property is a readonly mode (e.g. belongs to an external entity.)\n */\n protected _propertyListActions(type: 'property' | 'association', readonly?: boolean): TemplateResult | typeof nothing {\n if (readonly || !this.editable) {\n return nothing;\n }\n const removeTitle = type === 'property' ? 'Remove this property' : 'Remove this association';\n const removeLabel = type === 'property' ? 'Remove property' : 'Remove association';\n const editTitle = type === 'property' ? 'Edit this property' : 'Edit this association';\n const editLabel = type === 'property' ? 'Edit property' : 'Edit association';\n return html`\n <div class=\"property-actions\">\n <ui-icon-button data-type=\"${type}\" aria-label=\"${removeLabel}\" title=\"${removeTitle}\" @click=\"${this._removeHandler}\">\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n <ui-icon-button data-type=\"${type}\" aria-label=\"${editLabel}\" title=\"${editTitle}\" @click=\"${this._editHandler}\">\n <ui-icon icon=\"edit\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n </div>\n `;\n }\n\n /**\n * A template for the display name of a property.\n * @param item The property to render the name filed for\n * @returns The template for the property name. \n */\n protected _paramNameTemplate(item: DataProperty): TemplateResult {\n const { info, required=false, deprecated=false } = item;\n const paramName = !info.displayName ? '' : info.name;\n const classes = {\n 'param-name': true,\n required,\n deprecated,\n };\n return html`\n <div class=\"${classMap(classes)}\">\n <span class=\"param-label text-selectable\">${info.renderLabel}</span>\n </div>\n ${paramName ? html`<span class=\"param-name-secondary text-selectable\" title=\"Schema property name\">${paramName}</span>` : ''}\n `;\n }\n\n /**\n * A template for the display name of an association.\n * @param item The property to render the name filed for\n * @returns The template for the property name. \n */\n protected _assocNameTemplate(item: DataAssociation): TemplateResult {\n const { info, required=false } = item;\n const paramName = !info.displayName ? '' : info.name;\n const classes = {\n 'param-name': true,\n required,\n };\n return html`\n <div class=\"${classMap(classes)}\">\n <span class=\"param-label text-selectable\">${info.renderLabel}</span>\n </div>\n ${paramName ? html`<span class=\"param-name-secondary text-selectable\" title=\"Schema property name\">${paramName}</span>` : ''}\n `;\n }\n\n protected _pillTemplate(label: string, title: string, test: unknown, className?: string): TemplateResult | string {\n if (!test) {\n return '';\n }\n const classes: ClassInfo = {\n pill: true,\n 'param-pill': true,\n [className || '']: !!className,\n };\n return html`<span class=\"${classMap(classes)}\" title=\"${title}\">${label}</span>`;\n }\n\n /**\n * Renders the template for the parents of the entity.\n * \n * @param parents The parents of the entity. This is an unordered list.\n */\n protected _parentsProperties(parents: DataEntity[]): TemplateResult[] | typeof nothing {\n if (!parents.length) {\n return nothing;\n }\n // don't change the \"div\" to anything else. It's for the CSS to compute borders correctly.\n return parents.map(p => html`\n <div class=\"inheritance-label text-selectable\">Properties inherited from <b>${p.info.name}</b>.</div>\n ${this._propertiesTemplate(p.properties, p.associations, true)}\n `);\n }\n\n protected _addButtonTemplate(): TemplateResult | typeof nothing {\n if (!this.editable) {\n return nothing;\n }\n return html`\n <div class=\"add-property-section\">\n <ui-button type=\"outlined\" @click=\"${this._addPropertyHandler}\">Add property</ui-button>\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"DataSchemaDocument.js","sourceRoot":"","sources":["../../../src/elements/schema-design/DataSchemaDocument.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, CSSResult, html, TemplateResult, nothing, PropertyValues } from \"lit\";\nimport { DataAssociation, DataEntity, DataNamespace, DataProperty, DataEntityKind } from \"@api-client/core/build/browser.js\";\nimport { property, state } from \"lit/decorators.js\";\nimport { ClassInfo, classMap } from \"lit/directives/class-map.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport theme from '../theme.js';\nimport schemaCommon from './schemaCommon.js';\nimport EditorCommon from './CommonStyles.js';\nimport MarkdownStyles from '../highlight/MarkdownStyles.js';\nimport typography from \"../../styles/m3/typography.module.js\";\nimport type RadioElement from \"../../ui/input/RadioElement.js\";\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-radio.js';\n\n/**\n * We keep the list of expanded attributes in a weak map\n * so the state is kept as long as the namespace is loaded and the DataEntity exists.\n * WeakMap allows to GC the DataEntity when it is removed from the namespace (and also release the values).\n */\nconst expandedState = new WeakMap<DataEntity, string[]>();\n\nconst selectedUnions = new Map<string, string>();\n\ntype UnionType = \"anyOf\" | \"allOf\" | \"oneOf\" | \"not\";\n\n/**\n * An element that renders a documentation view for a data entity.\n * \n * @fires edit - When a property is selected for editing. This is only possible when the `editable` property is set.\n * @fires change - When the entity has changed. This is only possible when the `editable` property is set.\n */\nexport default class DataSchemaDocument extends ApiElement {\n static override get styles(): CSSResult[] {\n return [\n theme,\n schemaCommon,\n MarkdownStyles,\n EditorCommon,\n typography,\n css`\n :host {\n display: block;\n }\n\n .entity-header {\n margin-bottom: 20px;\n }\n\n .entity-header .label {\n margin-bottom: 1em;\n }\n\n .no-info {\n margin: 12px 20px;\n }\n\n .add-property-section {\n margin-top: 20px;\n }\n\n .property-container.selected {\n background: var(--list-active-background);\n }\n\n .tree-view.drop-active {\n background: var(--association-drop-background, #e3f2fd);\n }\n\n .property-container.drag-over {\n background: var(--association-drop-background, #e3f2fd);\n }\n\n .drop-zone {\n position: absolute;\n inset: 0;\n height: unset;\n margin: 0;\n padding: 0;\n background: rgba(255,255,255,0.92);\n }\n `,\n ];\n }\n\n /**\n * The read data namespace.\n */\n @property({ type: Object }) root?: DataNamespace;\n\n /**\n * The entity key to render the schema documentation for\n * @attribute\n */\n @property({ type: String, reflect: true }) key?: string;\n\n /**\n * The read data entity when the \"selected\" change.\n */\n @state() protected _entity?: DataEntity;\n\n /**\n * The key of the property being highlighted.\n * @attribute\n */\n @property({ type: String, reflect: true }) selectedProperty?: string;\n\n /**\n * When set it activates the drop zone in the properties list to drop an entity as an association.\n * This has no effect when `editable` is not set.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) associationDropZone?: boolean;\n\n /**\n * Whether to render the view in the edit-ready model.\n * This mode allows to add new property, create an association, or remove those.\n * It does not allow to manipulate properties of association or properties.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) editable?: boolean;\n\n /**\n * When dragging an entity over an existing association this is the key\n * of the association hovered.\n */\n @state() protected _dropAssociationTarget?: string;\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('key')) {\n this.computeEntity();\n }\n }\n\n /**\n * Computes the view value for the property.\n * This should be called before the update is complete so this won't trigger another update.\n */\n protected computeEntity(): void {\n const { root, key } = this;\n if (!root || !key) {\n this._entity = undefined;\n return;\n }\n const entity = root.definitions.entities.find(i => i.key === key);\n this._entity = entity;\n }\n\n /**\n * Adds an entity with the given key as an association to this entity.\n * This does nothing when the view is not in the `editable` model.\n * \n * Note, we allow to create an association to self. Also note, an entity can have multiple associations to the same target.\n * \n * @param foreignKey The key of the target entity to add.\n * @param parentAssociation When set, it adds another target to an existing association.\n */\n addAssociation(foreignKey: string, parentAssociation?: string): void {\n const { _entity, editable } = this;\n if (!editable || !foreignKey || !_entity) {\n return;\n }\n if (parentAssociation) {\n const parent = _entity.associations.find(i => i.key === parentAssociation);\n if (!parent) {\n return;\n }\n parent.addTarget(foreignKey);\n } else {\n const created = _entity.addTargetAssociation(foreignKey);\n this.dispatchEvent(new CustomEvent('edit', {\n detail: {\n type: 'association',\n key: created.key,\n }\n }));\n }\n this.notifyChange();\n }\n\n /**\n * Removes an association from the entity.\n * This does nothing when the view is not in the `editable` model.\n * \n * @param key The key of the association to remove.\n */\n removeAssociation(key: string): void {\n const { _entity, editable } = this;\n if (!editable || !key || !_entity) {\n return;\n }\n _entity.removeAssociation(key);\n this.notifyChange();\n this.requestUpdate();\n }\n\n addProperty(name?: string): void {\n const { _entity, editable } = this;\n if (!_entity || !editable) {\n return;\n }\n const created = _entity.addNamedProperty(name || 'New property');\n this.selectedProperty = created.key;\n this.notifyChange();\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent('edit', {\n detail: {\n type: 'property',\n key: created.key,\n }\n }));\n }\n\n removeProperty(key: string): void {\n const { _entity, editable } = this;\n if (!key || !_entity || !editable) {\n return;\n }\n _entity.removeProperty(key);\n if (this.selectedProperty === key) {\n this.selectedProperty = undefined;\n }\n this.notifyChange();\n this.requestUpdate();\n }\n\n protected _addPropertyHandler(): void {\n this.addProperty();\n }\n\n protected _findParentKeyedElement(node: HTMLElement): HTMLElement | null {\n let target: HTMLElement | null = node;\n while (target) {\n if (target.nodeType !== Node.ELEMENT_NODE || !target.dataset) {\n target = target.parentElement;\n continue;\n }\n if (target.dataset.key) {\n return target;\n }\n target = target.parentElement;\n }\n return null;\n }\n\n protected _removeHandler(e: Event): void {\n const button = e.currentTarget as HTMLElement;\n const { type } = button.dataset;\n if (!type) {\n return;\n }\n const node = this._findParentKeyedElement(e.target as HTMLElement);\n if (node) {\n if (type === 'property') {\n this.removeProperty(node.dataset.key as string);\n } else if (type === 'association') {\n this.removeAssociation(node.dataset.key as string);\n }\n }\n }\n\n protected _editHandler(e: Event): void {\n const button = e.currentTarget as HTMLElement;\n const { type } = button.dataset;\n if (!type) {\n return;\n }\n const node = this._findParentKeyedElement(e.target as HTMLElement);\n if (node) {\n this.dispatchEvent(new CustomEvent('edit', {\n detail: {\n type,\n key: node.dataset.key as string,\n }\n }));\n }\n }\n\n protected _associationDragOver(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer) {\n return;\n }\n const dt = dataTransfer;\n if (!dt.types.includes(DataEntityKind.toLocaleLowerCase())) {\n return;\n }\n const node = e.currentTarget as HTMLElement;\n const { key } = node.dataset;\n if (key) {\n e.preventDefault();\n dt.effectAllowed = 'copy';\n dt.dropEffect = 'copy';\n this._dropAssociationTarget = key;\n }\n }\n\n protected _associationDragLeave(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer) {\n return;\n }\n const dt = dataTransfer;\n if (!dt.types.includes(DataEntityKind.toLocaleLowerCase())) {\n return;\n }\n this._dropAssociationTarget = undefined;\n }\n\n protected _associationDrop(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer) {\n return;\n }\n const dt = dataTransfer;\n if (!dt.types.includes(DataEntityKind.toLocaleLowerCase())) {\n return;\n }\n const { _dropAssociationTarget } = this;\n if (!_dropAssociationTarget) {\n return;\n }\n e.preventDefault();\n this._dropAssociationTarget = undefined; \n const key = dataTransfer.getData('text/key');\n this.addAssociation(key, _dropAssociationTarget);\n }\n\n protected _dragoverHandler(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n e.preventDefault();\n dataTransfer.dropEffect = \"copy\";\n dataTransfer.effectAllowed = \"copy\";\n }\n\n protected _dropHandler(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n e.preventDefault();\n const key = dataTransfer.getData('text/key');\n this.addAssociation(key);\n }\n\n /**\n * @returns the list of keys of properties that are expanded (children are rendered).\n */\n protected _getExpandedKeys(): string[] {\n const { _entity } = this;\n if (!_entity) {\n return [];\n }\n if (!expandedState.has(_entity)) {\n expandedState.set(_entity, []);\n }\n return expandedState.get(_entity) as string[];\n }\n\n protected _expandHandler(e: Event): void {\n const button = e.currentTarget as HTMLElement;\n const { id } = button.dataset;\n this._toggleExpandedProperty(id as string);\n }\n\n protected _expandKeydownHandler(e: KeyboardEvent): void {\n if (e.code !== 'Space') {\n return;\n }\n e.preventDefault();\n const button = e.currentTarget as HTMLElement;\n const { id } = button.dataset;\n this._toggleExpandedProperty(id as string);\n }\n\n /**\n * Toggles an \"expanded\" state for a property children.\n * \n * @param id Parent property id that has children to toggle visibility of.\n */\n protected _toggleExpandedProperty(id: string): void {\n const list = this._getExpandedKeys();\n const index = list.indexOf(id);\n if (index === -1) {\n list.push(id);\n } else {\n list.splice(index, 1);\n }\n this.requestUpdate();\n }\n\n protected _isRecursive(association: DataAssociation, target: string): boolean {\n const entity = association.getParent();\n return entity.hasClosedCycle(this.key as string, target);\n }\n\n protected _unionSelectedHandler(e: Event): void {\n const button = e.target as RadioElement;\n if (!button.checked) {\n return;\n }\n const value = button.value as string;\n const { association } = button.dataset;\n if (!association || !value) {\n return;\n }\n selectedUnions.set(association, value);\n this.requestUpdate();\n }\n\n protected override render(): TemplateResult | typeof nothing {\n const { _entity } = this;\n if (!_entity) {\n return nothing;\n }\n const treeClasses = {\n 'drop-active': !!this.associationDropZone && !this._dropAssociationTarget,\n 'tree-view': true,\n }\n return html`\n ${this._headerTemplate(_entity)}\n <div class=\"${classMap(treeClasses)}\" @dragover=\"${this._dragoverHandler}\" @drop=\"${this._dropHandler}\">\n ${this._propertiesTemplate(_entity.properties, _entity.associations)}\n ${this._parentsProperties(_entity.getComputedParents())}\n </div>\n ${this._addButtonTemplate()}\n `;\n }\n\n protected _headerTemplate(entity: DataEntity): TemplateResult {\n const label = entity.info.name || 'Unnamed data entity';\n return html`\n <div class=\"entity-header\">\n <div class=\"label title-large\">${label}</div>\n ${this._descriptionTemplate(entity)}\n </div>\n `;\n }\n\n protected _descriptionTemplate(entity: DataEntity): TemplateResult {\n const { description } = entity.info;\n if (description) {\n return html`\n <div class=\"description\">\n <marked-highlight sanitize .markdown=\"${description}\">\n <div slot=\"markdown-html\" class=\"markdown-body text-selectable\"></div>\n </marked-highlight>\n </div>`;\n }\n return html`\n <div class=\"description\">\n <span class=\"no-description body-medium\">No schema description provided.</span>\n </div>\n `;\n }\n\n protected _propertiesTemplate(properties: DataProperty[], associations: DataAssociation[], readonly?: boolean): TemplateResult {\n if (!properties.length && !associations.length) {\n // don't change the \"div\" to anything else. It's for the CSS to compute borders correctly.\n return html`<div class=\"no-properties\">This entity has no properties or associations.</div>`;\n }\n return html`\n ${properties.map(p => this._propertyTemplate(p, readonly))}\n ${associations.map(a => this._associationTemplate(a, readonly))}\n `;\n }\n\n protected _propertyTemplate(item: DataProperty, readonly=false): TemplateResult {\n const { info, type, key, required, multiple, index, primary } = item;\n const containerClasses = {\n 'property-container': true,\n selected: this.selectedProperty === item.key,\n };\n return html`\n <div class=\"${classMap(containerClasses)}\" data-key=\"${key}\">\n <div class=\"property-border\"></div>\n <div class=\"property-value\">\n <div class=\"property-headline\">\n <div class=\"property-decorator scalar\"><hr></div>\n ${this._paramNameTemplate(item)}\n <span class=\"headline-separator\"></span>\n <div class=\"param-type text-selectable\">${type || 'Any type'}</div>\n ${this._pillTemplate('Required', 'This property is required.', required)}\n ${this._pillTemplate('Multiple', 'Multiple instances of the value are possible.', multiple)}\n ${this._pillTemplate('Index', 'This property is a key which can be indexed.', index)}\n ${this._pillTemplate('Primary', 'This property is the primary key for this entity.', primary, 'primary')}\n </div>\n <div class=\"description-column\"> \n ${this._propertyDescriptionTemplate(info.description)}\n </div>\n <div class=\"details-column\"></div>\n </div>\n ${this._propertyListActions('property', readonly)}\n </div>\n `;\n }\n\n /**\n * A template for the data association list item view.\n * Depending on the number of targets of the association it renders the \"empty target\", single association, or a union association view.\n * \n * @param item The association item to render.\n * @param parent The parent entity of the association.\n * @param readonly Whether to render the view as \"read only\" (no edit controls). We do not show controls for properties inherited from parents.\n */\n protected _associationTemplate(item: DataAssociation, readonly=false): TemplateResult {\n const { targets=[] } = item;\n if (!targets.length) {\n return this._noTargetAssociationTemplate(item, readonly);\n }\n if (targets.length === 1) {\n return this._singleAssociationTemplate(item, readonly);\n }\n return this._unionAssociationTemplate(item, readonly);\n }\n\n /**\n * Renders the template for the an association that has one target. This is a classic association where a property \n * is associated with an object.\n */\n protected _singleAssociationTemplate(item: DataAssociation, readonly=false): TemplateResult {\n const { info, key, required, multiple } = item;\n const containerClasses = {\n 'property-container': true,\n selected: this.selectedProperty === key,\n 'drag-over': this._dropAssociationTarget === key,\n };\n const entity = item.getTargets()[0];\n const recursive = this._isRecursive(item, entity.key) // entity === this._entity || entity === parent;\n let targetLabel: string;\n if (entity) {\n targetLabel = entity.info.renderLabel;\n } else {\n targetLabel = 'Invalid target';\n }\n const list = this._getExpandedKeys();\n const expanded = !recursive && list.includes(key);\n return html`\n <div class=\"${classMap(containerClasses)}\" data-key=\"${key}\" @dragover=\"${this._associationDragOver}\" @dragleave=\"${this._associationDragLeave}\" @drop=\"${this._associationDrop}\">\n <div class=\"property-border\"></div>\n <div class=\"property-value\">\n <div class=\"property-headline\">\n <div class=\"property-decorator object\" tabindex=\"${recursive ? '-1' : '0'}\" data-id=\"${key}\" @click=\"${this._expandHandler}\" @keydown=\"${this._expandKeydownHandler}\">\n <hr>\n ${recursive ? '' : html`<ui-icon icon=\"chevronRight\" class=\"object-toggle-icon ${expanded ? 'opened' : ''}\"></ui-icon>`}\n </div>\n ${this._assocNameTemplate(item)}\n <span class=\"headline-separator\"></span>\n <div class=\"param-type text-selectable\">${multiple ? `Array of ${targetLabel}` : targetLabel}</div>\n ${this._pillTemplate('Recursive shape', 'This association is recursive.', recursive)}\n ${this._pillTemplate('Required', 'This property is required.', required)}\n ${this._pillTemplate('Multiple', 'Multiple instances of the value are possible.', multiple)}\n </div>\n <div class=\"description-column\"> \n ${this._propertyDescriptionTemplate(info.description)}\n </div>\n <div class=\"details-column\"></div>\n </div>\n ${this._propertyListActions('association', readonly)}\n </div>\n ${expanded ? html`\n <div class=\"shape-children\">\n <div class=\"property-border\"></div>\n ${this._associationPropertiesTemplate(item)}\n </div>\n ` : ''}\n `;\n }\n\n /**\n * Renders the template for the an association that has multiple targets. This association represents\n * an union of shapes. This means the property can be any, one of, or either of the union shapes.\n */\n protected _unionAssociationTemplate(item: DataAssociation, readonly=false): TemplateResult {\n const { info, key, required, multiple } = item;\n const containerClasses = {\n 'property-container': true,\n selected: this.selectedProperty === key,\n 'drag-over': this._dropAssociationTarget === key,\n };\n const entities = item.getTargets();\n const adapted = item.readAdapted();\n // The `anyOf` and `oneOf` renders the same as this is a selection of one of the schemas\n // The `allOf` renders properties for all shapes in the union.\n // The not can potentially be a scalar shape and we don't have a concept of that in this tool so probably we gonna skip that.\n let type: UnionType = 'anyOf';\n if (adapted) {\n if (adapted.schema && adapted.schema.unionType) {\n type = adapted.schema.unionType;\n }\n }\n let unionLabel = '';\n if (!entities.length) {\n // this will happen when all targets were removed from the namespace.\n unionLabel = 'invalid targets';\n } else if (type === 'anyOf') {\n const names = entities.map(i => i.info.renderLabel).join(' or ');\n unionLabel = `any of ${names}`;\n } else if (type === 'oneOf') {\n const names = entities.map(i => i.info.renderLabel).join(' or ');\n unionLabel = `one of ${names}`;\n } else {\n const names = entities.map(i => i.info.renderLabel).join(' and ');\n unionLabel = `all of ${names}`;\n }\n if (multiple) {\n unionLabel = `list of ${unionLabel}`;\n }\n const list = this._getExpandedKeys();\n const expanded = list.includes(key);\n return html`\n <div class=\"${classMap(containerClasses)}\" data-key=\"${key}\">\n <div class=\"property-border\"></div>\n <div class=\"property-value\">\n <div class=\"property-headline\">\n <div class=\"property-decorator object\" tabindex=\"0\" data-id=\"${key}\" @click=\"${this._expandHandler}\" @keydown=\"${this._expandKeydownHandler}\">\n <hr>\n <ui-icon icon=\"chevronRight\" class=\"object-toggle-icon ${expanded ? 'opened' : ''}\"></ui-icon>\n </div>\n ${this._assocNameTemplate(item)}\n <span class=\"headline-separator\"></span>\n <div class=\"param-type text-selectable\">${unionLabel}</div>\n ${this._pillTemplate('Required', 'This association is required.', required)}\n ${this._pillTemplate('Multiple', 'Multiple instances of the value are possible.', multiple)}\n ${this._pillTemplate('Union', 'This association is an union.', true)}\n </div>\n <div class=\"description-column\">\n ${this._propertyDescriptionTemplate(info.description)}\n </div>\n <div class=\"details-column\"></div>\n </div>\n ${this._propertyListActions('association', readonly)}\n </div>\n ${expanded ? html`\n <div class=\"shape-children\">\n <div class=\"property-border\"></div>\n ${this._unionPropertiesTemplate(item, type)}\n </div>\n ` : ''}\n `;\n }\n\n /**\n * Renders the template for an association that has no target set.\n */\n protected _noTargetAssociationTemplate(item: DataAssociation, readonly=false): TemplateResult {\n const { info, key, required, multiple } = item;\n const containerClasses = {\n 'property-container': true,\n selected: this.selectedProperty === key,\n 'drag-over': this._dropAssociationTarget === key,\n };\n return html`\n <div class=\"${classMap(containerClasses)}\" data-key=\"${key}\">\n <div class=\"property-border\"></div>\n <div class=\"property-value\">\n <div class=\"property-headline\">\n <div class=\"property-decorator object\">\n <hr>\n </div>\n ${this._assocNameTemplate(item)}\n <span class=\"headline-separator\"></span>\n ${this._pillTemplate('No target', 'This association has no target.', true)}\n ${this._pillTemplate('Required', 'This property is required.', required)}\n ${this._pillTemplate('Multiple', 'Multiple instances of the value are possible.', multiple)}\n </div>\n <div class=\"description-column\">\n ${this._propertyDescriptionTemplate(info.description)}\n </div>\n <div class=\"details-column\"></div>\n </div>\n ${this._propertyListActions('association', readonly)}\n </div>\n `;\n }\n\n protected _associationPropertiesTemplate(item: DataAssociation): TemplateResult {\n const entities = item.getTargets();\n if (!entities.length) {\n // don't change the \"div\" to anything else. It's for the CSS to compute borders correctly.\n return html`<div class=\"no-properties\">Invalid entry. The target entity does not exist.</div>`;\n }\n const [entity] = entities;\n return html`\n <div class=\"tree-view\">\n ${this._propertiesTemplate(entity.properties, entity.associations, true)}\n </div>\n `;\n }\n\n protected _unionPropertiesTemplate(item: DataAssociation, type: UnionType): TemplateResult {\n const entities = item.getTargets();\n if (!entities.length) {\n // don't change the \"div\" to anything else. It's for the CSS to compute borders correctly.\n return html`<div class=\"no-properties\">Invalid entry. The target entity does not exist.</div>`;\n }\n if (type === 'allOf') {\n let allProperties: DataProperty[] = [];\n let allAssociations: DataAssociation[] = [];\n entities.forEach((entity) => {\n const { associations, properties } = entity;\n allProperties = allProperties.concat(properties);\n allAssociations = allAssociations.concat(associations);\n });\n return html`\n <div class=\"tree-view\">\n ${this._unionSelector(item, type, entities)}\n ${this._propertiesTemplate(allProperties, allAssociations, true)}\n </div>`;\n }\n\n let selected = selectedUnions.get(item.key);\n if (!selected) {\n selected = entities[0].key;\n }\n const entity = entities.find(i => i.key === selected);\n if (!entity) {\n return html`\n <div class=\"tree-view\">\n ${this._unionSelector(item, type, entities, selected)}\n <p class=\"no-info\">Invalid selection. Entity not found.</p>\n </div>\n `;\n }\n return html`\n <div class=\"tree-view\">\n ${this._unionSelector(item, type, entities, selected)}\n ${this._propertiesTemplate(entity.properties, entity.associations, true)}\n </div>\n `;\n }\n\n /**\n * Depending on the union type, it renders the union type label and a selector of the union member.\n * \n * This template is intended to use when multiple targets in association were detected.\n * \n * @param item The association item\n * @param type The read from the adapted entity association type.\n * @param entities The list of association targets.\n * @param selected The key of the currently selected association target\n * @returns The template for the union selection in the list of properties.\n */\n protected _unionSelector(item: DataAssociation, type: UnionType, entities: DataEntity[], selected?: string): TemplateResult {\n let label: string;\n if (type === 'anyOf') {\n label = 'Any (one or more) of the following schemas';\n } else if (type === 'oneOf') {\n label = 'One of the following schemas';\n } else if (type === 'allOf') {\n label = 'All properties of union schemas';\n } else {\n label = 'Not matching the schema';\n }\n const renderSelection = ['anyOf', 'oneOf'].includes(type);\n return html`\n <div class=\"union-options\">\n <span class=\"label-large\">${label}</span>\n ${renderSelection ? html`\n ${entities.map((entity) => html`\n <label class=\"label-large\">\n <ui-radio\n class=\"union-toggle\" \n name=\"unionFor${item.key}\"\n data-association=\"${item.key}\"\n value=\"${entity.key}\"\n .checked=\"${selected === entity.key}\" \n @change=\"${this._unionSelectedHandler}\"\n ></ui-radio>\n ${entity.info.renderLabel}\n </label>`)}\n ` : nothing}\n </div>\n `;\n }\n\n protected _propertyDescriptionTemplate(description?: string): TemplateResult {\n return html`\n <div class=\"description\">\n <marked-highlight sanitize .markdown=\"${description || 'No description'}\">\n <div slot=\"markdown-html\" class=\"markdown-body text-selectable\"></div>\n </marked-highlight>\n </div>\n `;\n }\n\n /**\n * Adds the delete and edit buttons to the tree item.\n * This renders nothing when the property is readonly or the element is not `editable`.\n * \n * @param readonly Indicates the property is a readonly mode (e.g. belongs to an external entity.)\n */\n protected _propertyListActions(type: 'property' | 'association', readonly?: boolean): TemplateResult | typeof nothing {\n if (readonly || !this.editable) {\n return nothing;\n }\n const removeTitle = type === 'property' ? 'Remove this property' : 'Remove this association';\n const removeLabel = type === 'property' ? 'Remove property' : 'Remove association';\n const editTitle = type === 'property' ? 'Edit this property' : 'Edit this association';\n const editLabel = type === 'property' ? 'Edit property' : 'Edit association';\n return html`\n <div class=\"property-actions\">\n <ui-icon-button data-type=\"${type}\" aria-label=\"${removeLabel}\" title=\"${removeTitle}\" @click=\"${this._removeHandler}\">\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n <ui-icon-button data-type=\"${type}\" aria-label=\"${editLabel}\" title=\"${editTitle}\" @click=\"${this._editHandler}\">\n <ui-icon icon=\"edit\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n </div>\n `;\n }\n\n /**\n * A template for the display name of a property.\n * @param item The property to render the name filed for\n * @returns The template for the property name. \n */\n protected _paramNameTemplate(item: DataProperty): TemplateResult {\n const { info, required=false, deprecated=false } = item;\n const paramName = !info.displayName ? '' : info.name;\n const classes = {\n 'param-name': true,\n required,\n deprecated,\n };\n return html`\n <div class=\"${classMap(classes)}\">\n <span class=\"param-label text-selectable\">${info.renderLabel}</span>\n </div>\n ${paramName ? html`<span class=\"param-name-secondary text-selectable\" title=\"Schema property name\">${paramName}</span>` : ''}\n `;\n }\n\n /**\n * A template for the display name of an association.\n * @param item The property to render the name filed for\n * @returns The template for the property name. \n */\n protected _assocNameTemplate(item: DataAssociation): TemplateResult {\n const { info, required=false } = item;\n const paramName = !info.displayName ? '' : info.name;\n const classes = {\n 'param-name': true,\n required,\n };\n return html`\n <div class=\"${classMap(classes)}\">\n <span class=\"param-label text-selectable\">${info.renderLabel}</span>\n </div>\n ${paramName ? html`<span class=\"param-name-secondary text-selectable\" title=\"Schema property name\">${paramName}</span>` : ''}\n `;\n }\n\n protected _pillTemplate(label: string, title: string, test: unknown, className?: string): TemplateResult | string {\n if (!test) {\n return '';\n }\n const classes: ClassInfo = {\n pill: true,\n 'param-pill': true,\n [className || '']: !!className,\n };\n return html`<span class=\"${classMap(classes)}\" title=\"${title}\">${label}</span>`;\n }\n\n /**\n * Renders the template for the parents of the entity.\n * \n * @param parents The parents of the entity. This is an unordered list.\n */\n protected _parentsProperties(parents: DataEntity[]): TemplateResult[] | typeof nothing {\n if (!parents.length) {\n return nothing;\n }\n // don't change the \"div\" to anything else. It's for the CSS to compute borders correctly.\n return parents.map(p => html`\n <div class=\"inheritance-label text-selectable\">Properties inherited from <b>${p.info.name}</b>.</div>\n ${this._propertiesTemplate(p.properties, p.associations, true)}\n `);\n }\n\n protected _addButtonTemplate(): TemplateResult | typeof nothing {\n if (!this.editable) {\n return nothing;\n }\n return html`\n <div class=\"add-property-section\">\n <ui-button type=\"outlined\" @click=\"${this._addPropertyHandler}\">Add property</ui-button>\n </div>\n `;\n }\n}\n"]}
@@ -38,7 +38,6 @@ export default class EntityFormElement extends ApiElement {
38
38
  * @param parentKey The key of the parent to add.
39
39
  */
40
40
  addParent(parentKey: string): void;
41
- protected _notifyChanged(): void;
42
41
  /**
43
42
  * Computes the view value for the property.
44
43
  * This should be called before the update is complete so this won't trigger another update.
@@ -1 +1 @@
1
- {"version":3,"file":"EntityFormElement.d.ts","sourceRoot":"","sources":["../../../src/elements/schema-design/EntityFormElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,SAAS,EAAQ,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG3E,OAAO,EAAE,UAAU,EAAE,aAAa,EAAc,MAAM,mCAAmC,CAAC;AAC1F,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAM1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AACxC,OAAO,+BAA+B,CAAC;AACvC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,4BAA4B,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,UAAU;IACvD,WAAoB,MAAM,IAAI,SAAS,EAAE,CAoCxC;IAED;;;OAGG;IACwC,GAAG,CAAC,EAAE,MAAM,CAAC;IAExD;;OAEG;IACyB,IAAI,CAAC,EAAE,aAAa,CAAC;IAEjD;;;OAGG;IAC0B,cAAc,CAAC,EAAE,OAAO,CAAC;IAEtD;;OAEG;IACM,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;cAErB,UAAU,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAM7D;;;OAGG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAWlC,SAAS,CAAC,cAAc,IAAI,IAAI;IAIhC;;;OAGG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IAShC,SAAS,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAoB5C,SAAS,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAgBzC,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI;IAU9C,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI;IAgB1C,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAO9C;;;OAGG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;cAcZ,MAAM,IAAI,cAAc;IAyB3C,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc;IAQpE,SAAS,CAAC,uBAAuB,IAAI,cAAc;IAUnD,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc;IAO9D,SAAS,CAAC,yBAAyB,IAAI,cAAc;IAMrD,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,cAAc;IAQrE,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc;CAehE"}
1
+ {"version":3,"file":"EntityFormElement.d.ts","sourceRoot":"","sources":["../../../src/elements/schema-design/EntityFormElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,SAAS,EAAQ,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG3E,OAAO,EAAE,UAAU,EAAE,aAAa,EAAc,MAAM,mCAAmC,CAAC;AAC1F,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAM1C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,gCAAgC,CAAC;AACxC,OAAO,+BAA+B,CAAC;AACvC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,4BAA4B,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,UAAU;IACvD,WAAoB,MAAM,IAAI,SAAS,EAAE,CAoCxC;IAED;;;OAGG;IACwC,GAAG,CAAC,EAAE,MAAM,CAAC;IAExD;;OAEG;IACyB,IAAI,CAAC,EAAE,aAAa,CAAC;IAEjD;;;OAGG;IAC0B,cAAc,CAAC,EAAE,OAAO,CAAC;IAEtD;;OAEG;IACM,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;cAErB,UAAU,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAM7D;;;OAGG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAWlC;;;OAGG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;IAShC,SAAS,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAoB5C,SAAS,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAgBzC,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI;IAU9C,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI;IAgB1C,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAO9C;;;OAGG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;cAcZ,MAAM,IAAI,cAAc;IAyB3C,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc;IAQpE,SAAS,CAAC,uBAAuB,IAAI,cAAc;IAUnD,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc;IAO9D,SAAS,CAAC,yBAAyB,IAAI,cAAc;IAMrD,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,cAAc;IAQrE,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc;CAehE"}
@@ -56,24 +56,6 @@ export default class EntityFormElement extends ApiElement {
56
56
  `
57
57
  ];
58
58
  }
59
- /**
60
- * The key of the entity to edit.
61
- * @attribute
62
- */
63
- key;
64
- /**
65
- * The read data namespace.
66
- */
67
- root;
68
- /**
69
- * When set it activates the drop zone in the parents list to support drag and drop.
70
- * @attribute
71
- */
72
- parentDropZone;
73
- /**
74
- * The computed entity when the key or root change.
75
- */
76
- _entity;
77
59
  willUpdate(cp) {
78
60
  if (cp.has('key')) {
79
61
  this._computeEntity();
@@ -91,10 +73,7 @@ export default class EntityFormElement extends ApiElement {
91
73
  if (!_entity.parents.includes(parentKey)) {
92
74
  _entity.parents.push(parentKey);
93
75
  }
94
- this._notifyChanged();
95
- }
96
- _notifyChanged() {
97
- this.dispatchEvent(new Event('change'));
76
+ this.notifyChange();
98
77
  }
99
78
  /**
100
79
  * Computes the view value for the property.
@@ -122,7 +101,7 @@ export default class EntityFormElement extends ApiElement {
122
101
  return;
123
102
  }
124
103
  _entity.info[name] = value;
125
- this._notifyChanged();
104
+ this.notifyChange();
126
105
  if (name === 'name' || name === 'displayName') {
127
106
  this.dispatchEvent(new Event('namechange'));
128
107
  }
@@ -139,7 +118,7 @@ export default class EntityFormElement extends ApiElement {
139
118
  return;
140
119
  }
141
120
  _entity[name] = checked;
142
- this._notifyChanged();
121
+ this.notifyChange();
143
122
  this.requestUpdate();
144
123
  }
145
124
  _dragoverHandler(e) {
@@ -185,7 +164,7 @@ export default class EntityFormElement extends ApiElement {
185
164
  return;
186
165
  }
187
166
  _entity.parents.splice(index, 1);
188
- this._notifyChanged();
167
+ this.notifyChange();
189
168
  this.requestUpdate();
190
169
  }
191
170
  render() {