@api-client/ui 0.0.4 → 0.0.5

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 (514) hide show
  1. package/dist/amf/lib/AmfParameters.js +0 -4
  2. package/dist/amf/lib/AmfParameters.js.map +1 -1
  3. package/dist/amf/lib/navigation-layout/EndpointsTree.js +0 -2
  4. package/dist/amf/lib/navigation-layout/EndpointsTree.js.map +1 -1
  5. package/dist/amf/lib/navigation-layout/NaturalTree.js +0 -2
  6. package/dist/amf/lib/navigation-layout/NaturalTree.js.map +1 -1
  7. package/dist/amf/store/AmfGraphStore.js +0 -2
  8. package/dist/amf/store/AmfGraphStore.js.map +1 -1
  9. package/dist/amf/store/AmfStore.js +0 -7
  10. package/dist/amf/store/AmfStore.js.map +1 -1
  11. package/dist/bindings/base/HttpClientStoreBindings.js +4 -1
  12. package/dist/bindings/base/HttpClientStoreBindings.js.map +1 -1
  13. package/dist/bindings/base/PlatformBindings.js +6 -10
  14. package/dist/bindings/base/PlatformBindings.js.map +1 -1
  15. package/dist/bindings/base/ProxyBindings.js +9 -6
  16. package/dist/bindings/base/ProxyBindings.js.map +1 -1
  17. package/dist/bindings/base/SharedWorkerThread.js +4 -1
  18. package/dist/bindings/base/SharedWorkerThread.js.map +1 -1
  19. package/dist/bindings/base/StoreBindings.js +162 -170
  20. package/dist/bindings/base/StoreBindings.js.map +1 -1
  21. package/dist/bindings/web/WebConfigurationBindings.js +22 -24
  22. package/dist/bindings/web/WebConfigurationBindings.js.map +1 -1
  23. package/dist/bindings/web/WebFileBindings.js +7 -4
  24. package/dist/bindings/web/WebFileBindings.js.map +1 -1
  25. package/dist/bindings/web/WebHttpClientStoreBindings.js +19 -21
  26. package/dist/bindings/web/WebHttpClientStoreBindings.js.map +1 -1
  27. package/dist/bindings/web/WebNavigationBindings.js +4 -1
  28. package/dist/bindings/web/WebNavigationBindings.js.map +1 -1
  29. package/dist/bindings/web/WebProxyBindings.js +5 -6
  30. package/dist/bindings/web/WebProxyBindings.js.map +1 -1
  31. package/dist/bindings/web/WebStoreBindings.js +39 -44
  32. package/dist/bindings/web/WebStoreBindings.js.map +1 -1
  33. package/dist/contextual-menu/ContextualMenu.js +10 -19
  34. package/dist/contextual-menu/ContextualMenu.js.map +1 -1
  35. package/dist/contextual-menu/ContextualMenuElement.js +4 -32
  36. package/dist/contextual-menu/ContextualMenuElement.js.map +1 -1
  37. package/dist/contextual-menu/MenuItem.js +0 -12
  38. package/dist/contextual-menu/MenuItem.js.map +1 -1
  39. package/dist/define/amf/api-annotation-document.js +1 -1
  40. package/dist/define/amf/api-annotation-document.js.map +1 -1
  41. package/dist/define/amf/api-authorization-editor.js +1 -1
  42. package/dist/define/amf/api-authorization-editor.js.map +1 -1
  43. package/dist/define/amf/api-channel-document.js +1 -1
  44. package/dist/define/amf/api-channel-document.js.map +1 -1
  45. package/dist/define/amf/api-documentation-document.js +1 -1
  46. package/dist/define/amf/api-documentation-document.js.map +1 -1
  47. package/dist/define/amf/api-documentation.js +1 -1
  48. package/dist/define/amf/api-documentation.js.map +1 -1
  49. package/dist/define/amf/api-navigation.js +1 -1
  50. package/dist/define/amf/api-navigation.js.map +1 -1
  51. package/dist/define/amf/api-operation-document.js +1 -1
  52. package/dist/define/amf/api-operation-document.js.map +1 -1
  53. package/dist/define/amf/api-parameter-document.js +1 -1
  54. package/dist/define/amf/api-parameter-document.js.map +1 -1
  55. package/dist/define/amf/api-parametrized-security-scheme.js +1 -1
  56. package/dist/define/amf/api-parametrized-security-scheme.js.map +1 -1
  57. package/dist/define/amf/api-payload-document.js +1 -1
  58. package/dist/define/amf/api-payload-document.js.map +1 -1
  59. package/dist/define/amf/api-request-document.js +1 -1
  60. package/dist/define/amf/api-request-document.js.map +1 -1
  61. package/dist/define/amf/api-request-editor.js +1 -1
  62. package/dist/define/amf/api-request-editor.js.map +1 -1
  63. package/dist/define/amf/api-request.js +1 -1
  64. package/dist/define/amf/api-request.js.map +1 -1
  65. package/dist/define/amf/api-resource-document.js +1 -1
  66. package/dist/define/amf/api-resource-document.js.map +1 -1
  67. package/dist/define/amf/api-response-document.js +1 -1
  68. package/dist/define/amf/api-response-document.js.map +1 -1
  69. package/dist/define/amf/api-schema-document.js +1 -1
  70. package/dist/define/amf/api-schema-document.js.map +1 -1
  71. package/dist/define/amf/api-security-document.js +1 -1
  72. package/dist/define/amf/api-security-document.js.map +1 -1
  73. package/dist/define/amf/api-security-requirement-document.js +1 -1
  74. package/dist/define/amf/api-security-requirement-document.js.map +1 -1
  75. package/dist/define/amf/api-server-picker.js +1 -1
  76. package/dist/define/amf/api-server-picker.js.map +1 -1
  77. package/dist/define/amf/api-summary.js +1 -1
  78. package/dist/define/amf/api-summary.js.map +1 -1
  79. package/dist/define/amf/authorization/amf-apikey-authorization.js +1 -1
  80. package/dist/define/amf/authorization/amf-apikey-authorization.js.map +1 -1
  81. package/dist/define/amf/authorization/amf-basic-authorization.js +1 -1
  82. package/dist/define/amf/authorization/amf-basic-authorization.js.map +1 -1
  83. package/dist/define/amf/authorization/amf-bearer-authorization.js +1 -1
  84. package/dist/define/amf/authorization/amf-bearer-authorization.js.map +1 -1
  85. package/dist/define/amf/authorization/amf-oauth2-authorization.js +1 -1
  86. package/dist/define/amf/authorization/amf-oauth2-authorization.js.map +1 -1
  87. package/dist/define/amf/authorization/amf-oidc-authorization.js +1 -1
  88. package/dist/define/amf/authorization/amf-oidc-authorization.js.map +1 -1
  89. package/dist/define/amf/authorization/amf-passthrough-authorization.js +1 -1
  90. package/dist/define/amf/authorization/amf-passthrough-authorization.js.map +1 -1
  91. package/dist/define/amf/authorization/amf-ramlcustom-authorization.js +1 -1
  92. package/dist/define/amf/authorization/amf-ramlcustom-authorization.js.map +1 -1
  93. package/dist/define/authorization/apikey-authorization.js +1 -1
  94. package/dist/define/authorization/apikey-authorization.js.map +1 -1
  95. package/dist/define/authorization/basic-authorization.js +1 -1
  96. package/dist/define/authorization/basic-authorization.js.map +1 -1
  97. package/dist/define/authorization/bearer-authorization.js +1 -1
  98. package/dist/define/authorization/bearer-authorization.js.map +1 -1
  99. package/dist/define/authorization/cc-authorization.js +1 -1
  100. package/dist/define/authorization/cc-authorization.js.map +1 -1
  101. package/dist/define/authorization/ntlm-authorization.js +1 -1
  102. package/dist/define/authorization/ntlm-authorization.js.map +1 -1
  103. package/dist/define/authorization/oauth2-authorization.js +1 -1
  104. package/dist/define/authorization/oauth2-authorization.js.map +1 -1
  105. package/dist/define/authorization/oidc-authorization.js +1 -1
  106. package/dist/define/authorization/oidc-authorization.js.map +1 -1
  107. package/dist/define/contextual-menu/contextual-menu.js +1 -1
  108. package/dist/define/contextual-menu/contextual-menu.js.map +1 -1
  109. package/dist/define/dialog/confirm-delete-dialog.js +1 -1
  110. package/dist/define/dialog/confirm-delete-dialog.js.map +1 -1
  111. package/dist/define/dialog/rename-dialog.js +1 -1
  112. package/dist/define/dialog/rename-dialog.js.map +1 -1
  113. package/dist/define/files/share-file.js +1 -1
  114. package/dist/define/files/share-file.js.map +1 -1
  115. package/dist/define/har/har-viewer.js +1 -1
  116. package/dist/define/har/har-viewer.js.map +1 -1
  117. package/dist/define/highlight/marked-highlight.js +1 -1
  118. package/dist/define/highlight/marked-highlight.js.map +1 -1
  119. package/dist/define/highlight/prism-highlight.js +1 -1
  120. package/dist/define/highlight/prism-highlight.js.map +1 -1
  121. package/dist/define/http/http-assertions.js +1 -1
  122. package/dist/define/http/http-assertions.js.map +1 -1
  123. package/dist/define/http/http-body-editor.js +1 -1
  124. package/dist/define/http/http-body-editor.js.map +1 -1
  125. package/dist/define/http/http-body-multipart-editor.js +1 -1
  126. package/dist/define/http/http-body-multipart-editor.js.map +1 -1
  127. package/dist/define/http/http-body-text-editor.js +1 -1
  128. package/dist/define/http/http-body-text-editor.js.map +1 -1
  129. package/dist/define/http/http-body-urlencoded-editor.js +1 -1
  130. package/dist/define/http/http-body-urlencoded-editor.js.map +1 -1
  131. package/dist/define/http/http-headers-form.js +1 -1
  132. package/dist/define/http/http-headers-form.js.map +1 -1
  133. package/dist/define/http/http-log-body.js +1 -1
  134. package/dist/define/http/http-log-body.js.map +1 -1
  135. package/dist/define/http/http-log-headers.js +1 -1
  136. package/dist/define/http/http-log-headers.js.map +1 -1
  137. package/dist/define/http/http-log-timings.js +1 -1
  138. package/dist/define/http/http-log-timings.js.map +1 -1
  139. package/dist/define/http/http-request-config.js +1 -1
  140. package/dist/define/http/http-request-config.js.map +1 -1
  141. package/dist/define/http/http-request-editor.js +1 -1
  142. package/dist/define/http/http-request-editor.js.map +1 -1
  143. package/dist/define/http/http-request-log.js +1 -1
  144. package/dist/define/http/http-request-log.js.map +1 -1
  145. package/dist/define/http/http-snippets.js +1 -1
  146. package/dist/define/http/http-snippets.js.map +1 -1
  147. package/dist/define/http/http-url-input.js +1 -1
  148. package/dist/define/http/http-url-input.js.map +1 -1
  149. package/dist/define/http/http-url-params-form.js +1 -1
  150. package/dist/define/http/http-url-params-form.js.map +1 -1
  151. package/dist/define/http-project/http-project-request-history.js +1 -1
  152. package/dist/define/http-project/http-project-request-history.js.map +1 -1
  153. package/dist/define/http-project/http-project-request.js +2 -2
  154. package/dist/define/http-project/http-project-request.js.map +1 -1
  155. package/dist/define/http-project/project-navigation.js +1 -1
  156. package/dist/define/http-project/project-navigation.js.map +1 -1
  157. package/dist/define/http-project/project-run-report.js +1 -1
  158. package/dist/define/http-project/project-run-report.js.map +1 -1
  159. package/dist/define/http-project/project-runner.js +2 -2
  160. package/dist/define/http-project/project-runner.js.map +1 -1
  161. package/dist/define/layout/split-view.js +1 -1
  162. package/dist/define/layout/split-view.js.map +1 -1
  163. package/dist/define/schema-design/schema-design-navigation.js +1 -1
  164. package/dist/define/schema-design/schema-design-navigation.js.map +1 -1
  165. package/dist/define/schema-design/schema-namespace-selector.js +1 -1
  166. package/dist/define/schema-design/schema-namespace-selector.js.map +1 -1
  167. package/dist/define/ui/ui-button.js +1 -1
  168. package/dist/define/ui/ui-button.js.map +1 -1
  169. package/dist/define/ui/ui-chip.js +1 -1
  170. package/dist/define/ui/ui-chip.js.map +1 -1
  171. package/dist/define/ui/ui-collapse.js +1 -1
  172. package/dist/define/ui/ui-collapse.js.map +1 -1
  173. package/dist/define/ui/ui-dialog.js +1 -1
  174. package/dist/define/ui/ui-dialog.js.map +1 -1
  175. package/dist/define/ui/ui-dropdown-list.js +1 -1
  176. package/dist/define/ui/ui-dropdown-list.js.map +1 -1
  177. package/dist/define/ui/ui-icon-button.js +1 -1
  178. package/dist/define/ui/ui-icon-button.js.map +1 -1
  179. package/dist/define/ui/ui-icon.js +1 -1
  180. package/dist/define/ui/ui-icon.js.map +1 -1
  181. package/dist/define/ui/ui-list-item.js +1 -1
  182. package/dist/define/ui/ui-list-item.js.map +1 -1
  183. package/dist/define/ui/ui-list.js +1 -1
  184. package/dist/define/ui/ui-list.js.map +1 -1
  185. package/dist/define/ui/ui-listbox.js +1 -1
  186. package/dist/define/ui/ui-listbox.js.map +1 -1
  187. package/dist/define/ui/ui-progress.js +1 -1
  188. package/dist/define/ui/ui-progress.js.map +1 -1
  189. package/dist/define/ui/ui-segmented-button-set.js +1 -1
  190. package/dist/define/ui/ui-segmented-button-set.js.map +1 -1
  191. package/dist/define/ui/ui-segmented-button.js +1 -1
  192. package/dist/define/ui/ui-segmented-button.js.map +1 -1
  193. package/dist/define/ui/ui-snackbar.js +1 -1
  194. package/dist/define/ui/ui-snackbar.js.map +1 -1
  195. package/dist/define/ui/ui-tab.js +1 -1
  196. package/dist/define/ui/ui-tab.js.map +1 -1
  197. package/dist/define/ui/ui-tabs.js +1 -1
  198. package/dist/define/ui/ui-tabs.js.map +1 -1
  199. package/dist/directives/data-attr.js +0 -1
  200. package/dist/directives/data-attr.js.map +1 -1
  201. package/dist/elements/ApiElement.js +0 -7
  202. package/dist/elements/ApiElement.js.map +1 -1
  203. package/dist/elements/amf/ApiAnnotationDocument.element.js +0 -2
  204. package/dist/elements/amf/ApiAnnotationDocument.element.js.map +1 -1
  205. package/dist/elements/amf/ApiAuthorizationEditor.element.js +0 -32
  206. package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
  207. package/dist/elements/amf/ApiDocumentation.element.js +0 -91
  208. package/dist/elements/amf/ApiDocumentation.element.js.map +1 -1
  209. package/dist/elements/amf/ApiDocumentationBase.js +0 -9
  210. package/dist/elements/amf/ApiDocumentationBase.js.map +1 -1
  211. package/dist/elements/amf/ApiDocumentationDocument.element.js +0 -1
  212. package/dist/elements/amf/ApiDocumentationDocument.element.js.map +1 -1
  213. package/dist/elements/amf/ApiNavigation.element.js +0 -97
  214. package/dist/elements/amf/ApiNavigation.element.js.map +1 -1
  215. package/dist/elements/amf/ApiOperationDocument.element.js +0 -76
  216. package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
  217. package/dist/elements/amf/ApiParameterDocument.element.js +0 -3
  218. package/dist/elements/amf/ApiParameterDocument.element.js.map +1 -1
  219. package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js +0 -1
  220. package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js.map +1 -1
  221. package/dist/elements/amf/ApiPayloadDocument.element.js +0 -1
  222. package/dist/elements/amf/ApiPayloadDocument.element.js.map +1 -1
  223. package/dist/elements/amf/ApiRequest.element.js +0 -78
  224. package/dist/elements/amf/ApiRequest.element.js.map +1 -1
  225. package/dist/elements/amf/ApiRequestDocument.element.js +0 -38
  226. package/dist/elements/amf/ApiRequestDocument.element.js.map +1 -1
  227. package/dist/elements/amf/ApiRequestEditor.element.js +0 -118
  228. package/dist/elements/amf/ApiRequestEditor.element.js.map +1 -1
  229. package/dist/elements/amf/ApiResourceDocument.element.js +0 -75
  230. package/dist/elements/amf/ApiResourceDocument.element.js.map +1 -1
  231. package/dist/elements/amf/ApiResponseDocument.element.js +0 -17
  232. package/dist/elements/amf/ApiResponseDocument.element.js.map +1 -1
  233. package/dist/elements/amf/ApiSchemaDocument.element.js +0 -28
  234. package/dist/elements/amf/ApiSchemaDocument.element.js.map +1 -1
  235. package/dist/elements/amf/ApiSecurityDocument.element.js +0 -28
  236. package/dist/elements/amf/ApiSecurityDocument.element.js.map +1 -1
  237. package/dist/elements/amf/ApiSecurityRequirementDocument.element.js +0 -1
  238. package/dist/elements/amf/ApiSecurityRequirementDocument.element.js.map +1 -1
  239. package/dist/elements/amf/ApiServerPicker.element.js +2 -65
  240. package/dist/elements/amf/ApiServerPicker.element.js.map +1 -1
  241. package/dist/elements/amf/ApiSummary.element.js +0 -26
  242. package/dist/elements/amf/ApiSummary.element.js.map +1 -1
  243. package/dist/elements/amf/authorization/AmfApiKey.js +0 -5
  244. package/dist/elements/amf/authorization/AmfApiKey.js.map +1 -1
  245. package/dist/elements/amf/authorization/AmfBasic.js +0 -4
  246. package/dist/elements/amf/authorization/AmfBasic.js.map +1 -1
  247. package/dist/elements/amf/authorization/AmfBearer.js +0 -4
  248. package/dist/elements/amf/authorization/AmfBearer.js.map +1 -1
  249. package/dist/elements/amf/authorization/AmfOauth2.js +0 -13
  250. package/dist/elements/amf/authorization/AmfOauth2.js.map +1 -1
  251. package/dist/elements/amf/authorization/AmfOidc.js +0 -4
  252. package/dist/elements/amf/authorization/AmfOidc.js.map +1 -1
  253. package/dist/elements/amf/authorization/AmfPassThrough.js +0 -6
  254. package/dist/elements/amf/authorization/AmfPassThrough.js.map +1 -1
  255. package/dist/elements/amf/authorization/AmfRamlCustom.js +0 -6
  256. package/dist/elements/amf/authorization/AmfRamlCustom.js.map +1 -1
  257. package/dist/elements/authorization/OAuth2Authorize.js +0 -14
  258. package/dist/elements/authorization/OAuth2Authorize.js.map +1 -1
  259. package/dist/elements/authorization/OidcAuthorize.js +0 -14
  260. package/dist/elements/authorization/OidcAuthorize.js.map +1 -1
  261. package/dist/elements/authorization/ui/ApiKeyAuthorization.js +0 -2
  262. package/dist/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
  263. package/dist/elements/authorization/ui/Authorization.js +18 -32
  264. package/dist/elements/authorization/ui/Authorization.js.map +1 -1
  265. package/dist/elements/authorization/ui/CcAuthorization.js +1 -3
  266. package/dist/elements/authorization/ui/CcAuthorization.js.map +1 -1
  267. package/dist/elements/authorization/ui/OAuth2Authorization.js +21 -50
  268. package/dist/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
  269. package/dist/elements/authorization/ui/OidcAuthorization.js +4 -6
  270. package/dist/elements/authorization/ui/OidcAuthorization.js.map +1 -1
  271. package/dist/elements/code/HttpSnippets.js +9 -8
  272. package/dist/elements/code/HttpSnippets.js.map +1 -1
  273. package/dist/elements/dialog/ConfirmDelete.js +0 -12
  274. package/dist/elements/dialog/ConfirmDelete.js.map +1 -1
  275. package/dist/elements/dialog/Rename.js +0 -6
  276. package/dist/elements/dialog/Rename.js.map +1 -1
  277. package/dist/elements/environment/EnvironmentEditor.js +8 -11
  278. package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
  279. package/dist/elements/environment/ServerEditor.js +7 -45
  280. package/dist/elements/environment/ServerEditor.js.map +1 -1
  281. package/dist/elements/environment/VariablesEditor.js +7 -12
  282. package/dist/elements/environment/VariablesEditor.js.map +1 -1
  283. package/dist/elements/files/ShareFile.js +19 -57
  284. package/dist/elements/files/ShareFile.js.map +1 -1
  285. package/dist/elements/har/HarViewer.js +6 -7
  286. package/dist/elements/har/HarViewer.js.map +1 -1
  287. package/dist/elements/highlight/MarkedHighlight.js +4 -56
  288. package/dist/elements/highlight/MarkedHighlight.js.map +1 -1
  289. package/dist/elements/highlight/PrismHighlight.js +9 -18
  290. package/dist/elements/highlight/PrismHighlight.js.map +1 -1
  291. package/dist/elements/highlight/PrismHighlighter.js +4 -6
  292. package/dist/elements/highlight/PrismHighlighter.js.map +1 -1
  293. package/dist/elements/http/BodyEditor.js +21 -33
  294. package/dist/elements/http/BodyEditor.js.map +1 -1
  295. package/dist/elements/http/BodyMultipartEditor.js +17 -18
  296. package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
  297. package/dist/elements/http/BodyTextEditor.js +2 -15
  298. package/dist/elements/http/BodyTextEditor.js.map +1 -1
  299. package/dist/elements/http/BodyUrlEncodedEditor.js +20 -21
  300. package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
  301. package/dist/elements/http/HeadersForm.js +16 -17
  302. package/dist/elements/http/HeadersForm.js.map +1 -1
  303. package/dist/elements/http/HttpAssertions.js +8 -6
  304. package/dist/elements/http/HttpAssertions.js.map +1 -1
  305. package/dist/elements/http/LogBody.js +10 -21
  306. package/dist/elements/http/LogBody.js.map +1 -1
  307. package/dist/elements/http/LogHeaders.js +4 -23
  308. package/dist/elements/http/LogHeaders.js.map +1 -1
  309. package/dist/elements/http/LogTimings.js +11 -13
  310. package/dist/elements/http/LogTimings.js.map +1 -1
  311. package/dist/elements/http/RequestConfigElement.js +7 -4
  312. package/dist/elements/http/RequestConfigElement.js.map +1 -1
  313. package/dist/elements/http/RequestEditor.js +54 -88
  314. package/dist/elements/http/RequestEditor.js.map +1 -1
  315. package/dist/elements/http/RequestLog.js +9 -14
  316. package/dist/elements/http/RequestLog.js.map +1 -1
  317. package/dist/elements/http/UrlInput.js +15 -25
  318. package/dist/elements/http/UrlInput.js.map +1 -1
  319. package/dist/elements/http/UrlParamsForm.js +16 -13
  320. package/dist/elements/http/UrlParamsForm.js.map +1 -1
  321. package/dist/elements/layout/LayoutManager.js +16 -24
  322. package/dist/elements/layout/LayoutManager.js.map +1 -1
  323. package/dist/elements/layout/LayoutPanelElement.js +17 -23
  324. package/dist/elements/layout/LayoutPanelElement.js.map +1 -1
  325. package/dist/elements/layout/SplitItem.js +4 -12
  326. package/dist/elements/layout/SplitItem.js.map +1 -1
  327. package/dist/elements/layout/SplitLayout.js +18 -24
  328. package/dist/elements/layout/SplitLayout.js.map +1 -1
  329. package/dist/elements/layout/SplitPanel.js +10 -16
  330. package/dist/elements/layout/SplitPanel.js.map +1 -1
  331. package/dist/elements/layout/SplitView.js +17 -26
  332. package/dist/elements/layout/SplitView.js.map +1 -1
  333. package/dist/elements/navigation/AppNavigationElement.js +8 -47
  334. package/dist/elements/navigation/AppNavigationElement.js.map +1 -1
  335. package/dist/elements/navigation/AppNavigationItemElement.js +19 -24
  336. package/dist/elements/navigation/AppNavigationItemElement.js.map +1 -1
  337. package/dist/elements/project/HttpProjectRequest.js +0 -38
  338. package/dist/elements/project/HttpProjectRequest.js.map +1 -1
  339. package/dist/elements/project/HttpProjectRequestHistory.js +9 -35
  340. package/dist/elements/project/HttpProjectRequestHistory.js.map +1 -1
  341. package/dist/elements/project/ProjectNavigation.js +0 -4
  342. package/dist/elements/project/ProjectNavigation.js.map +1 -1
  343. package/dist/elements/project/ProjectRunReport.js +4 -15
  344. package/dist/elements/project/ProjectRunReport.js.map +1 -1
  345. package/dist/elements/project/ProjectRunner.js +2 -47
  346. package/dist/elements/project/ProjectRunner.js.map +1 -1
  347. package/dist/elements/schema-design/AssociationFormElement.js +0 -13
  348. package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
  349. package/dist/elements/schema-design/DataEntityEditorElement.js +0 -22
  350. package/dist/elements/schema-design/DataEntityEditorElement.js.map +1 -1
  351. package/dist/elements/schema-design/DataModelVisualizationElement.js +0 -16
  352. package/dist/elements/schema-design/DataModelVisualizationElement.js.map +1 -1
  353. package/dist/elements/schema-design/DataSchemaDocument.js +0 -36
  354. package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
  355. package/dist/elements/schema-design/EntityFormElement.js +0 -18
  356. package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
  357. package/dist/elements/schema-design/PropertyFormElement.js +0 -12
  358. package/dist/elements/schema-design/PropertyFormElement.js.map +1 -1
  359. package/dist/elements/schema-design/SchemaDesignNavigation.js +0 -9
  360. package/dist/elements/schema-design/SchemaDesignNavigation.js.map +1 -1
  361. package/dist/elements/schema-design/SchemaNamespaceSelector.js +0 -9
  362. package/dist/elements/schema-design/SchemaNamespaceSelector.js.map +1 -1
  363. package/dist/elements/user/UserAvatarElement.js +0 -9
  364. package/dist/elements/user/UserAvatarElement.js.map +1 -1
  365. package/dist/events/http-client/models/CertificatesEvents.js +2 -2
  366. package/dist/events/http-client/models/CertificatesEvents.js.map +1 -1
  367. package/dist/http-client/idb/Base.js +5 -10
  368. package/dist/http-client/idb/Base.js.map +1 -1
  369. package/dist/http-client/idb/LegacyMockedStore.js +0 -1
  370. package/dist/http-client/idb/LegacyMockedStore.js.map +1 -1
  371. package/dist/http-client/idb/MockedStore.js +3 -1
  372. package/dist/http-client/idb/MockedStore.js.map +1 -1
  373. package/dist/http-client/store/DataImportProcessor.js +0 -3
  374. package/dist/http-client/store/DataImportProcessor.js.map +1 -1
  375. package/dist/http-client/store/HttpClientIdbDatabase.js +8 -7
  376. package/dist/http-client/store/HttpClientIdbDatabase.js.map +1 -1
  377. package/dist/http-client/store/IdbThread.js +23 -20
  378. package/dist/http-client/store/IdbThread.js.map +1 -1
  379. package/dist/http-client/store/idb/IdbProjectUi.js +4 -1
  380. package/dist/http-client/store/idb/IdbProjectUi.js.map +1 -1
  381. package/dist/http-client/store/idb/IdbStore.js +0 -2
  382. package/dist/http-client/store/idb/IdbStore.js.map +1 -1
  383. package/dist/http-client/store/idb/IdbUrlHistory.js +4 -1
  384. package/dist/http-client/store/idb/IdbUrlHistory.js.map +1 -1
  385. package/dist/http-client/store/idb/IdbWsHistory.js +4 -1
  386. package/dist/http-client/store/idb/IdbWsHistory.js.map +1 -1
  387. package/dist/lib/chart/HttpHistoryChart.js +7 -8
  388. package/dist/lib/chart/HttpHistoryChart.js.map +1 -1
  389. package/dist/mixins/FileDropMixin.js +0 -1
  390. package/dist/mixins/FileDropMixin.js.map +1 -1
  391. package/dist/mixins/RenderableMixin.js +11 -15
  392. package/dist/mixins/RenderableMixin.js.map +1 -1
  393. package/dist/pages/ApplicationScreen.js +34 -55
  394. package/dist/pages/ApplicationScreen.js.map +1 -1
  395. package/dist/pages/api-client/ApiClient.screen.js +11 -20
  396. package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
  397. package/dist/pages/api-client/Authenticate.screen.js +4 -6
  398. package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
  399. package/dist/pages/api-client/StoreConfig.screen.js +21 -37
  400. package/dist/pages/api-client/StoreConfig.screen.js.map +1 -1
  401. package/dist/pages/api-client/Telemetry.screen.js +1 -2
  402. package/dist/pages/api-client/Telemetry.screen.js.map +1 -1
  403. package/dist/pages/api-client/pages/Files.page.js +6 -27
  404. package/dist/pages/api-client/pages/Files.page.js.map +1 -1
  405. package/dist/pages/api-client/pages/Settings.page.js +2 -4
  406. package/dist/pages/api-client/pages/Settings.page.js.map +1 -1
  407. package/dist/pages/api-client/pages/Trash.page.js +2 -13
  408. package/dist/pages/api-client/pages/Trash.page.js.map +1 -1
  409. package/dist/pages/demo/DemoPage.js +13 -13
  410. package/dist/pages/demo/DemoPage.js.map +1 -1
  411. package/dist/pages/http-project/HttpProject.screen.js +25 -35
  412. package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
  413. package/dist/pages/schema-design/SchemaDesigner.screen.js +14 -27
  414. package/dist/pages/schema-design/SchemaDesigner.screen.js.map +1 -1
  415. package/dist/store/HttpStore.js +0 -3
  416. package/dist/store/HttpStore.js.map +1 -1
  417. package/dist/store/UserCache.js +5 -5
  418. package/dist/store/UserCache.js.map +1 -1
  419. package/dist/ui/UiElement.js +4 -5
  420. package/dist/ui/UiElement.js.map +1 -1
  421. package/dist/ui/button/SegmentedButton.js +9 -11
  422. package/dist/ui/button/SegmentedButton.js.map +1 -1
  423. package/dist/ui/button/SegmentedButtonsSet.js +6 -7
  424. package/dist/ui/button/SegmentedButtonsSet.js.map +1 -1
  425. package/dist/ui/button/UiButton.js +17 -39
  426. package/dist/ui/button/UiButton.js.map +1 -1
  427. package/dist/ui/button/UiIconButton.js +9 -35
  428. package/dist/ui/button/UiIconButton.js.map +1 -1
  429. package/dist/ui/chip/UiChip.js +9 -49
  430. package/dist/ui/chip/UiChip.js.map +1 -1
  431. package/dist/ui/collapse/UiCollapse.js +15 -20
  432. package/dist/ui/collapse/UiCollapse.js.map +1 -1
  433. package/dist/ui/controllers/ActionController.js +143 -144
  434. package/dist/ui/controllers/ActionController.js.map +1 -1
  435. package/dist/ui/controllers/RadioSelectionController.js +0 -1
  436. package/dist/ui/controllers/RadioSelectionController.js.map +1 -1
  437. package/dist/ui/date/DateTime.js +3 -3
  438. package/dist/ui/date/DateTime.js.map +1 -1
  439. package/dist/ui/dialog/UiDialog.js +14 -38
  440. package/dist/ui/dialog/UiDialog.js.map +1 -1
  441. package/dist/ui/effects/ripple.js +20 -18
  442. package/dist/ui/effects/ripple.js.map +1 -1
  443. package/dist/ui/effects/rippleDirective.js +6 -7
  444. package/dist/ui/effects/rippleDirective.js.map +1 -1
  445. package/dist/ui/icons/UiIcon.js +4 -3
  446. package/dist/ui/icons/UiIcon.js.map +1 -1
  447. package/dist/ui/input/CheckboxElement.js +12 -10
  448. package/dist/ui/input/CheckboxElement.js.map +1 -1
  449. package/dist/ui/input/CheckedElement.js +2 -13
  450. package/dist/ui/input/CheckedElement.js.map +1 -1
  451. package/dist/ui/input/Input.js +169 -234
  452. package/dist/ui/input/Input.js.map +1 -1
  453. package/dist/ui/input/RadioElement.js +13 -11
  454. package/dist/ui/input/RadioElement.js.map +1 -1
  455. package/dist/ui/input/SwitchElement.js +0 -18
  456. package/dist/ui/input/SwitchElement.js.map +1 -1
  457. package/dist/ui/input/TextAreaElement.js +0 -15
  458. package/dist/ui/input/TextAreaElement.js.map +1 -1
  459. package/dist/ui/list/DividerElement.js +5 -10
  460. package/dist/ui/list/DividerElement.js.map +1 -1
  461. package/dist/ui/list/UiDropdownList.js +7 -48
  462. package/dist/ui/list/UiDropdownList.js.map +1 -1
  463. package/dist/ui/list/UiList.js +3 -15
  464. package/dist/ui/list/UiList.js.map +1 -1
  465. package/dist/ui/list/UiListItem.js +4 -17
  466. package/dist/ui/list/UiListItem.js.map +1 -1
  467. package/dist/ui/list/UiListbox.js +0 -1
  468. package/dist/ui/list/UiListbox.js.map +1 -1
  469. package/dist/ui/notification/SnackNotifications.js +1 -2
  470. package/dist/ui/notification/SnackNotifications.js.map +1 -1
  471. package/dist/ui/notification/Snackbar.js +27 -51
  472. package/dist/ui/notification/Snackbar.js.map +1 -1
  473. package/dist/ui/progress/Range.js +24 -23
  474. package/dist/ui/progress/Range.js.map +1 -1
  475. package/dist/ui/progress/UiProgress.js +0 -11
  476. package/dist/ui/progress/UiProgress.js.map +1 -1
  477. package/dist/ui/table/DataTable.js +7 -12
  478. package/dist/ui/table/DataTable.js.map +1 -1
  479. package/dist/ui/tabs/UiTab.js +24 -25
  480. package/dist/ui/tabs/UiTab.js.map +1 -1
  481. package/dist/ui/tabs/UiTabs.js +21 -35
  482. package/dist/ui/tabs/UiTabs.js.map +1 -1
  483. package/dist/visualization/elements/VizWorkspaceElement.js +12 -21
  484. package/dist/visualization/elements/VizWorkspaceElement.js.map +1 -1
  485. package/dist/visualization/lib/AssociationAnchors.js +16 -28
  486. package/dist/visualization/lib/AssociationAnchors.js.map +1 -1
  487. package/dist/visualization/lib/Point.js +0 -2
  488. package/dist/visualization/lib/Point.js.map +1 -1
  489. package/dist/visualization/lib/SelectionManager.js +10 -11
  490. package/dist/visualization/lib/SelectionManager.js.map +1 -1
  491. package/dist/visualization/lib/WorkspaceAlignment.js +0 -1
  492. package/dist/visualization/lib/WorkspaceAlignment.js.map +1 -1
  493. package/dist/visualization/lib/WorkspaceDebugging.js +5 -8
  494. package/dist/visualization/lib/WorkspaceDebugging.js.map +1 -1
  495. package/dist/visualization/lib/WorkspaceEdges.js +17 -19
  496. package/dist/visualization/lib/WorkspaceEdges.js.map +1 -1
  497. package/dist/visualization/lib/WorkspaceGestures.js +0 -3
  498. package/dist/visualization/lib/WorkspaceGestures.js.map +1 -1
  499. package/dist/visualization/lib/WorkspaceSizing.js +4 -6
  500. package/dist/visualization/lib/WorkspaceSizing.js.map +1 -1
  501. package/dist/visualization/lib/lines/RectilinearLine.js +8 -34
  502. package/dist/visualization/lib/lines/RectilinearLine.js.map +1 -1
  503. package/dist/visualization/lib/tips/RectilinearTip.js +0 -1
  504. package/dist/visualization/lib/tips/RectilinearTip.js.map +1 -1
  505. package/dist/visualization/lib/tips/TipArtist.js +0 -3
  506. package/dist/visualization/lib/tips/TipArtist.js.map +1 -1
  507. package/dist/visualization/plugin/dnd/DragAndDropPlugin.js +3 -5
  508. package/dist/visualization/plugin/dnd/DragAndDropPlugin.js.map +1 -1
  509. package/dist/visualization/plugin/group-selection/GroupSelection.js +19 -19
  510. package/dist/visualization/plugin/group-selection/GroupSelection.js.map +1 -1
  511. package/dist/visualization/plugin/positioning/WorkspaceLayout.js +21 -38
  512. package/dist/visualization/plugin/positioning/WorkspaceLayout.js.map +1 -1
  513. package/package.json +3 -2
  514. package/tsconfig.json +2 -2
@@ -25,19 +25,6 @@ export default class AssociationFormElement extends ApiElement {
25
25
  `
26
26
  ];
27
27
  }
28
- /**
29
- * The key of the association to edit.
30
- * @attribute
31
- */
32
- key;
33
- /**
34
- * The read data namespace.
35
- */
36
- root;
37
- /**
38
- * The computed entity when the key or root change.
39
- */
40
- _association;
41
28
  willUpdate(cp) {
42
29
  if (cp.has('key')) {
43
30
  this._computeAssociation();
@@ -1 +1 @@
1
- {"version":3,"file":"AssociationFormElement.js","sourceRoot":"","sources":["../../../src/elements/schema-design/AssociationFormElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataAssociation, DataNamespace, EventUtils } from \"@api-client/core/build/browser.js\";\nimport { css, CSSResult, html, PropertyValues, TemplateResult } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { live } from \"lit/directives/live.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport EditorCommon from './CommonStyles.js';\nimport theme from '../theme.js';\nimport typography from \"../../styles/m3/typography.module.js\";\nimport Input from \"../../ui/input/Input.js\";\nimport CheckboxElement from \"../../ui/input/CheckboxElement.js\";\nimport '../../define/ui/ui-text-field.js';\nimport '../../define/ui/ui-checkbox.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-icon.js';\n\nexport default class AssociationFormElement extends ApiElement {\n static override get styles(): CSSResult[] {\n return [\n theme,\n EditorCommon,\n typography,\n css`\n :host {\n display: block;\n }\n `\n ]\n }\n \n /**\n * The key of the association to edit.\n * @attribute\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 _association?: DataAssociation;\n\n override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('key')) {\n this._computeAssociation();\n }\n }\n\n protected _notifyChanged(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n /**\n * Computes the view value for the association.\n * This should be called before the update is complete so this won't trigger another update.\n */\n protected _computeAssociation(): void {\n const { root, key } = this;\n if (!root || !key) {\n this._association = undefined;\n return;\n }\n this._association = root.definitions.associations.find(i => i.key === key);\n }\n\n protected _infoChangeHandler(e: Event): void {\n const { _association } = this;\n if (!_association) {\n return;\n }\n const node = e.target as Input;\n const { name, value } = node;\n if (!['name', 'description', 'displayName'].includes(name as string)) {\n return;\n }\n if (name === 'name' && !value) {\n return;\n }\n _association.info[name as 'name' | 'description' | 'displayName'] = value;\n this._notifyChanged();\n this.requestUpdate();\n }\n\n protected _checkedHandler(e: Event): void {\n const { _association } = this;\n if (!_association) {\n return;\n }\n const input = e.target as CheckboxElement;\n const name = input.name as 'multiple' | 'required';\n const { checked } = input;\n if (_association[name] === checked) {\n return;\n }\n _association[name] = checked;\n this._notifyChanged();\n this.requestUpdate();\n }\n\n protected override render(): TemplateResult {\n const { _association: item } = this;\n if (!item) {\n return html``;\n }\n const { info, multiple = false, required = false } = item;\n return html`\n <form name=\"data-association\" @submit=\"${EventUtils.cancelEvent}\" data-key=\"${item.key}\">\n <ui-text-field class=\"input\" name=\"name\" .value=\"${live(info.name || '')}\" label=\"Association name\" required @change=\"${this._infoChangeHandler}\"></ui-text-field>\n <ui-text-field class=\"input\" name=\"displayName\" .value=\"${live(info.displayName || '')}\" label=\"Display name (optional)\" @change=\"${this._infoChangeHandler}\"></ui-text-field>\n <ui-text-field class=\"input\" name=\"description\" .value=\"${live(info.description || '')}\" label=\"Association description (optional)\" @change=\"${this._infoChangeHandler}\"></ui-text-field>\n\n <div class=\"checkbox-group\">\n <label class=\"label-large\">\n <ui-checkbox name=\"required\" .checked=\"${required}\" title=\"Whether the association is required in the schema\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Required\n </label>\n <label class=\"label-large\">\n <ui-checkbox name=\"multiple\" .checked=\"${multiple}\" title=\"When set it declares this association as an array. Multiple instances of the value are permitted.\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Multiple\n </label>\n </div>\n </form>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"AssociationFormElement.js","sourceRoot":"","sources":["../../../src/elements/schema-design/AssociationFormElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataAssociation, DataNamespace, EventUtils } from \"@api-client/core/build/browser.js\";\nimport { css, CSSResult, html, PropertyValues, TemplateResult } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport { live } from \"lit/directives/live.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport EditorCommon from './CommonStyles.js';\nimport theme from '../theme.js';\nimport typography from \"../../styles/m3/typography.module.js\";\nimport Input from \"../../ui/input/Input.js\";\nimport CheckboxElement from \"../../ui/input/CheckboxElement.js\";\nimport '../../define/ui/ui-text-field.js';\nimport '../../define/ui/ui-checkbox.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-icon.js';\n\nexport default class AssociationFormElement extends ApiElement {\n static override get styles(): CSSResult[] {\n return [\n theme,\n EditorCommon,\n typography,\n css`\n :host {\n display: block;\n }\n `\n ]\n }\n \n /**\n * The key of the association to edit.\n * @attribute\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 _association?: DataAssociation;\n\n override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('key')) {\n this._computeAssociation();\n }\n }\n\n protected _notifyChanged(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n /**\n * Computes the view value for the association.\n * This should be called before the update is complete so this won't trigger another update.\n */\n protected _computeAssociation(): void {\n const { root, key } = this;\n if (!root || !key) {\n this._association = undefined;\n return;\n }\n this._association = root.definitions.associations.find(i => i.key === key);\n }\n\n protected _infoChangeHandler(e: Event): void {\n const { _association } = this;\n if (!_association) {\n return;\n }\n const node = e.target as Input;\n const { name, value } = node;\n if (!['name', 'description', 'displayName'].includes(name as string)) {\n return;\n }\n if (name === 'name' && !value) {\n return;\n }\n _association.info[name as 'name' | 'description' | 'displayName'] = value;\n this._notifyChanged();\n this.requestUpdate();\n }\n\n protected _checkedHandler(e: Event): void {\n const { _association } = this;\n if (!_association) {\n return;\n }\n const input = e.target as CheckboxElement;\n const name = input.name as 'multiple' | 'required';\n const { checked } = input;\n if (_association[name] === checked) {\n return;\n }\n _association[name] = checked;\n this._notifyChanged();\n this.requestUpdate();\n }\n\n protected override render(): TemplateResult {\n const { _association: item } = this;\n if (!item) {\n return html``;\n }\n const { info, multiple = false, required = false } = item;\n return html`\n <form name=\"data-association\" @submit=\"${EventUtils.cancelEvent}\" data-key=\"${item.key}\">\n <ui-text-field class=\"input\" name=\"name\" .value=\"${live(info.name || '')}\" label=\"Association name\" required @change=\"${this._infoChangeHandler}\"></ui-text-field>\n <ui-text-field class=\"input\" name=\"displayName\" .value=\"${live(info.displayName || '')}\" label=\"Display name (optional)\" @change=\"${this._infoChangeHandler}\"></ui-text-field>\n <ui-text-field class=\"input\" name=\"description\" .value=\"${live(info.description || '')}\" label=\"Association description (optional)\" @change=\"${this._infoChangeHandler}\"></ui-text-field>\n\n <div class=\"checkbox-group\">\n <label class=\"label-large\">\n <ui-checkbox name=\"required\" .checked=\"${required}\" title=\"Whether the association is required in the schema\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Required\n </label>\n <label class=\"label-large\">\n <ui-checkbox name=\"multiple\" .checked=\"${multiple}\" title=\"When set it declares this association as an array. Multiple instances of the value are permitted.\" @change=\"${this._checkedHandler}\"></ui-checkbox>\n Multiple\n </label>\n </div>\n </form>\n `;\n }\n}\n"]}
@@ -77,28 +77,6 @@ export default class DataEntityEditorElement extends ApiElement {
77
77
  `,
78
78
  ];
79
79
  }
80
- /**
81
- * The read data namespace.
82
- */
83
- root;
84
- /**
85
- * The selected entity.
86
- */
87
- selected;
88
- /**
89
- * The key of the selected property being edited.
90
- */
91
- selectedProperty;
92
- /**
93
- * The key of the selected association being edited.
94
- */
95
- selectedAssociation;
96
- _highlightEntityDropZone;
97
- _schemaExample;
98
- _schemaMime;
99
- _schemaMock;
100
- _schemaOpened;
101
- _schemaDoc;
102
80
  constructor() {
103
81
  super();
104
82
  this._schemaMime = 'application/json';
@@ -1 +1 @@
1
- {"version":3,"file":"DataEntityEditorElement.js","sourceRoot":"","sources":["../../../src/elements/schema-design/DataEntityEditorElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, CSSResult, html, PropertyValues, TemplateResult } from \"lit\";\nimport { property, query, state } from \"lit/decorators.js\";\nimport { DataEntityKind, DataNamespace } from \"@api-client/core/build/browser.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 DataSchemaDocument from \"./DataSchemaDocument.js\";\nimport RadioElement from \"../../ui/input/RadioElement.js\";\nimport CheckboxElement from \"../../ui/input/CheckboxElement.js\";\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-radio.js';\nimport '../../define/ui/ui-checkbox.js';\nimport '../../define/highlight/marked-highlight.js';\nimport '../../define/data/data-association-form.js';\nimport '../../define/data/data-property-form.js';\nimport '../../define/data/data-entity-form.js';\nimport '../../define/data/data-schema-document.js';\n\n/**\n * The DataEntity editor UI and logic.\n * \n * @fires change - When the entity has changed and the parent element / app should update the value in the store.\n * @fires namechange - When a name of the data entity has changed. This triggers a render in the navigation. This is fired after the `change` event.\n */\nexport default class DataEntityEditorElement 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 height: 100%;\n }\n\n .container {\n display: flex;\n flex-direction: row;\n height: inherit;\n flex: 1;\n }\n\n .structure {\n flex: 8;\n overflow: hidden;\n }\n\n .editor {\n flex: 4;\n background-color: var(--md-sys-color-surface);\n border-radius: var(--md-sys-shape-corner-small);\n box-shadow: var(--md-sys-elevation-1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n /* for the box shadow */\n margin: 4px; \n }\n\n .editor-form {\n overflow: auto;\n }\n\n .mime-options {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n }\n\n .schema-card {\n margin: 20px 20px 20px 0px;\n }\n `,\n ];\n }\n\n /**\n * The read data namespace.\n */\n @property({ type: Object }) root?: DataNamespace;\n\n /**\n * The selected entity.\n */\n @property({ type: String }) selected?: string;\n\n /**\n * The key of the selected property being edited.\n */\n @property({ type: String }) selectedProperty?: string;\n\n /**\n * The key of the selected association being edited.\n */\n @property({ type: String }) selectedAssociation?: string;\n\n @state() protected _highlightEntityDropZone?: boolean;\n\n @state() protected _schemaExample?: string | number | boolean | null;\n\n @state() protected _schemaMime: string;\n\n @state() protected _schemaMock: boolean;\n\n protected _schemaOpened?: boolean;\n\n @query('data-schema-document')\n protected _schemaDoc?: DataSchemaDocument;\n\n constructor() {\n super();\n this._schemaMime = 'application/json';\n this._schemaMock = true;\n this.addEventListener('dragenter', this._dragEnterHandler.bind(this));\n this.addEventListener('dragleave', this._dragLeaveHandler.bind(this));\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n super.willUpdate(cp);\n if (cp.has('selected')) {\n this._computeExampleSchemaIfNeeded();\n }\n }\n\n protected _notifyChanged(): void {\n this.dispatchEvent(new Event('change'));\n if (this._highlightEntityDropZone) {\n this._highlightEntityDropZone = false;\n }\n }\n\n protected _dragEnterHandler(e: DragEvent): void {\n const { dataTransfer: dt } = e;\n if (!dt) {\n return;\n }\n if (![...dt.types].includes(DataEntityKind.toLowerCase())) {\n return;\n }\n this._highlightEntityDropZone = true;\n this.selectedProperty = undefined;\n this.selectedAssociation = undefined;\n }\n\n protected _dragLeaveHandler(e: DragEvent): void {\n const { dataTransfer: dt } = e;\n if (!dt) {\n return;\n }\n if (![...dt.types].includes(DataEntityKind.toLowerCase())) {\n return;\n }\n this._highlightEntityDropZone = false;\n }\n\n protected _propertyChangeHandler(): void {\n this._notifyChanged();\n const { _schemaDoc } = this;\n if (_schemaDoc) {\n _schemaDoc.requestUpdate();\n }\n this._computeExampleSchemaIfNeeded();\n }\n\n protected _entityChangeHandler(): void {\n this._notifyChanged();\n const { _schemaDoc } = this;\n if (_schemaDoc) {\n _schemaDoc.requestUpdate();\n }\n this._computeExampleSchemaIfNeeded();\n }\n\n protected _schemaEntityChangeHandler(): void {\n this._notifyChanged();\n this.requestUpdate();\n this._computeExampleSchemaIfNeeded();\n }\n\n protected _schemaEntityEditHandler(e: CustomEvent): void {\n const { type, key } = e.detail;\n if (type === 'property') {\n this.selectedProperty = key;\n this.selectedAssociation = undefined;\n } else if (type === 'association') {\n this.selectedProperty = undefined;\n this.selectedAssociation = key;\n }\n this._computeExampleSchemaIfNeeded();\n }\n\n protected _entityNameHandler(): void {\n // just retarget\n this.dispatchEvent(new Event('namechange'));\n this._computeExampleSchemaIfNeeded();\n }\n\n protected _cancelEditor(): void {\n this.selectedProperty = undefined;\n this.selectedAssociation = undefined;\n }\n\n protected _computeExampleSchema(): void {\n const { selected, root } = this;\n const entity = root?.definitions.entities.find(i => i.key === selected);\n if (!entity) {\n this._schemaExample = undefined;\n return\n }\n this._schemaExample = entity.toExample(this._schemaMime, {\n renderMocked: this._schemaMock,\n renderExamples: true,\n renderOptional: true,\n });\n }\n\n protected _computeExampleSchemaIfNeeded(): void {\n if (this._schemaOpened) {\n this._computeExampleSchema();\n }\n }\n\n protected _schemaOpenHandler(e: Event): void {\n const details = e.target as HTMLDetailsElement;\n this._schemaOpened = details.open;\n if (details.open) {\n this._computeExampleSchema();\n }\n }\n\n protected _schemaMimeHandler(e: Event): void {\n const button = e.target as RadioElement;\n if (!button.checked) {\n return;\n }\n this._schemaMime = button.value as string;\n this._computeExampleSchemaIfNeeded();\n }\n\n protected _mockSchemaValuesHandler(e: Event): void {\n const input = e.target as CheckboxElement;\n const { checked } = input;\n this._schemaMock = checked;\n this._computeExampleSchema();\n }\n\n protected override render(): TemplateResult {\n return html`\n <div class=\"container\">\n ${this._structureTemplate()}\n ${this._editorTemplate()}\n </div>\n `;\n }\n\n protected _structureTemplate(): TemplateResult {\n return html`\n <div class=\"structure\">\n <data-schema-document\n .root=\"${this.root}\"\n .key=\"${this.selected}\"\n .selectedProperty=\"${this.selectedProperty || this.selectedAssociation}\"\n ?associationDropZone=\"${this._highlightEntityDropZone}\"\n editable\n @change=\"${this._schemaEntityChangeHandler}\"\n @edit=\"${this._schemaEntityEditHandler}\"\n ></data-schema-document>\n ${this.renderSchema()}\n </div>\n `;\n }\n\n protected _editorTemplate(): TemplateResult {\n const { selectedProperty, selectedAssociation } = this;\n let content: TemplateResult;\n if (selectedProperty) {\n content = this._propertyEditorTemplate(selectedProperty);\n } else if (selectedAssociation) {\n content = this._associationEditorTemplate(selectedAssociation);\n } else {\n content = this.renderEntityEditor();\n }\n return html`\n <div class=\"editor\">${content}</div>\n `;\n }\n\n protected _propertyEditorTemplate(id: string): TemplateResult {\n return html`\n <div class=\"editor-title title-large\">\n Data Property\n <ui-icon-button class=\"title-icon\" title=\"Close this editor\" @click=\"${this._cancelEditor}\">\n <ui-icon icon=\"close\"></ui-icon>\n </ui-icon-button>\n </div>\n <data-property-form \n .root=\"${this.root}\" \n .key=\"${id}\" \n @change=\"${this._propertyChangeHandler}\"\n class=\"editor-form\"\n ></data-property-form>\n `;\n }\n\n protected _associationEditorTemplate(id: string): TemplateResult {\n return html`\n <div class=\"editor-title title-large\">\n Data Association\n <ui-icon-button class=\"title-icon\" title=\"Close this editor\" @click=\"${this._cancelEditor}\">\n <ui-icon icon=\"close\"></ui-icon>\n </ui-icon-button>\n </div>\n <data-association-form\n .root=\"${this.root}\" \n .key=\"${id}\" \n @change=\"${this._propertyChangeHandler}\"\n class=\"editor-form\"\n ></data-association-form>\n `;\n }\n\n protected renderEntityEditor(): TemplateResult {\n return html`\n <div class=\"editor-title title-large\">Data Entity</div>\n <data-entity-form \n .root=\"${this.root}\" \n .key=\"${this.selected}\"\n ?parentDropZone=\"${this._highlightEntityDropZone}\"\n @change=\"${this._entityChangeHandler}\"\n @namechange=\"${this._entityNameHandler}\"\n class=\"editor-form\"\n ></data-entity-form>\n `;\n }\n\n protected renderSchema(): TemplateResult {\n return html`\n <details class=\"schema-card\" @toggle=\"${this._schemaOpenHandler}\">\n <summary class=\"title-medium\">Example</summary>\n <div class=\"example-content\">\n <div class=\"mime-options\">\n <span id=\"mimeLabel\" class=\"label-large\">Mime type:</span>\n <label class=\"label-large\">\n <ui-radio \n name=\"mimeValue\" \n value=\"application/json\" \n .checked=\"${this._schemaMime === 'application/json'}\" \n @change=\"${this._schemaMimeHandler}\"\n aria-describedby=\"mimeLabel\"\n ></ui-radio>\n application/json\n </label>\n <label class=\"label-large\">\n <ui-radio \n name=\"mimeValue\" \n value=\"application/xml\" \n .checked=\"${this._schemaMime === 'application/xml'}\" \n @change=\"${this._schemaMimeHandler}\"\n aria-describedby=\"mimeLabel\"\n ></ui-radio>\n application/xml\n </label>\n <label class=\"label-large\">\n <ui-checkbox\n .checked=\"${this._schemaMock}\" \n @change=\"${this._mockSchemaValuesHandler}\" \n title=\"Generates random values when examples are not defined.\"\n ></ui-checkbox>\n Mock values\n </label>\n </div>\n <pre class=\"code-value text-selectable\"><code>${this._schemaExample}</code></pre>\n </div>\n </details>`;\n }\n}\n"]}
1
+ {"version":3,"file":"DataEntityEditorElement.js","sourceRoot":"","sources":["../../../src/elements/schema-design/DataEntityEditorElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, CSSResult, html, PropertyValues, TemplateResult } from \"lit\";\nimport { property, query, state } from \"lit/decorators.js\";\nimport { DataEntityKind, DataNamespace } from \"@api-client/core/build/browser.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 DataSchemaDocument from \"./DataSchemaDocument.js\";\nimport RadioElement from \"../../ui/input/RadioElement.js\";\nimport CheckboxElement from \"../../ui/input/CheckboxElement.js\";\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-radio.js';\nimport '../../define/ui/ui-checkbox.js';\nimport '../../define/highlight/marked-highlight.js';\nimport '../../define/data/data-association-form.js';\nimport '../../define/data/data-property-form.js';\nimport '../../define/data/data-entity-form.js';\nimport '../../define/data/data-schema-document.js';\n\n/**\n * The DataEntity editor UI and logic.\n * \n * @fires change - When the entity has changed and the parent element / app should update the value in the store.\n * @fires namechange - When a name of the data entity has changed. This triggers a render in the navigation. This is fired after the `change` event.\n */\nexport default class DataEntityEditorElement 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 height: 100%;\n }\n\n .container {\n display: flex;\n flex-direction: row;\n height: inherit;\n flex: 1;\n }\n\n .structure {\n flex: 8;\n overflow: hidden;\n }\n\n .editor {\n flex: 4;\n background-color: var(--md-sys-color-surface);\n border-radius: var(--md-sys-shape-corner-small);\n box-shadow: var(--md-sys-elevation-1);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n /* for the box shadow */\n margin: 4px; \n }\n\n .editor-form {\n overflow: auto;\n }\n\n .mime-options {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n }\n\n .schema-card {\n margin: 20px 20px 20px 0px;\n }\n `,\n ];\n }\n\n /**\n * The read data namespace.\n */\n @property({ type: Object }) root?: DataNamespace;\n\n /**\n * The selected entity.\n */\n @property({ type: String }) selected?: string;\n\n /**\n * The key of the selected property being edited.\n */\n @property({ type: String }) selectedProperty?: string;\n\n /**\n * The key of the selected association being edited.\n */\n @property({ type: String }) selectedAssociation?: string;\n\n @state() protected _highlightEntityDropZone?: boolean;\n\n @state() protected _schemaExample?: string | number | boolean | null;\n\n @state() protected _schemaMime: string;\n\n @state() protected _schemaMock: boolean;\n\n protected _schemaOpened?: boolean;\n\n @query('data-schema-document')\n protected _schemaDoc?: DataSchemaDocument;\n\n constructor() {\n super();\n this._schemaMime = 'application/json';\n this._schemaMock = true;\n this.addEventListener('dragenter', this._dragEnterHandler.bind(this));\n this.addEventListener('dragleave', this._dragLeaveHandler.bind(this));\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n super.willUpdate(cp);\n if (cp.has('selected')) {\n this._computeExampleSchemaIfNeeded();\n }\n }\n\n protected _notifyChanged(): void {\n this.dispatchEvent(new Event('change'));\n if (this._highlightEntityDropZone) {\n this._highlightEntityDropZone = false;\n }\n }\n\n protected _dragEnterHandler(e: DragEvent): void {\n const { dataTransfer: dt } = e;\n if (!dt) {\n return;\n }\n if (![...dt.types].includes(DataEntityKind.toLowerCase())) {\n return;\n }\n this._highlightEntityDropZone = true;\n this.selectedProperty = undefined;\n this.selectedAssociation = undefined;\n }\n\n protected _dragLeaveHandler(e: DragEvent): void {\n const { dataTransfer: dt } = e;\n if (!dt) {\n return;\n }\n if (![...dt.types].includes(DataEntityKind.toLowerCase())) {\n return;\n }\n this._highlightEntityDropZone = false;\n }\n\n protected _propertyChangeHandler(): void {\n this._notifyChanged();\n const { _schemaDoc } = this;\n if (_schemaDoc) {\n _schemaDoc.requestUpdate();\n }\n this._computeExampleSchemaIfNeeded();\n }\n\n protected _entityChangeHandler(): void {\n this._notifyChanged();\n const { _schemaDoc } = this;\n if (_schemaDoc) {\n _schemaDoc.requestUpdate();\n }\n this._computeExampleSchemaIfNeeded();\n }\n\n protected _schemaEntityChangeHandler(): void {\n this._notifyChanged();\n this.requestUpdate();\n this._computeExampleSchemaIfNeeded();\n }\n\n protected _schemaEntityEditHandler(e: CustomEvent): void {\n const { type, key } = e.detail;\n if (type === 'property') {\n this.selectedProperty = key;\n this.selectedAssociation = undefined;\n } else if (type === 'association') {\n this.selectedProperty = undefined;\n this.selectedAssociation = key;\n }\n this._computeExampleSchemaIfNeeded();\n }\n\n protected _entityNameHandler(): void {\n // just retarget\n this.dispatchEvent(new Event('namechange'));\n this._computeExampleSchemaIfNeeded();\n }\n\n protected _cancelEditor(): void {\n this.selectedProperty = undefined;\n this.selectedAssociation = undefined;\n }\n\n protected _computeExampleSchema(): void {\n const { selected, root } = this;\n const entity = root?.definitions.entities.find(i => i.key === selected);\n if (!entity) {\n this._schemaExample = undefined;\n return\n }\n this._schemaExample = entity.toExample(this._schemaMime, {\n renderMocked: this._schemaMock,\n renderExamples: true,\n renderOptional: true,\n });\n }\n\n protected _computeExampleSchemaIfNeeded(): void {\n if (this._schemaOpened) {\n this._computeExampleSchema();\n }\n }\n\n protected _schemaOpenHandler(e: Event): void {\n const details = e.target as HTMLDetailsElement;\n this._schemaOpened = details.open;\n if (details.open) {\n this._computeExampleSchema();\n }\n }\n\n protected _schemaMimeHandler(e: Event): void {\n const button = e.target as RadioElement;\n if (!button.checked) {\n return;\n }\n this._schemaMime = button.value as string;\n this._computeExampleSchemaIfNeeded();\n }\n\n protected _mockSchemaValuesHandler(e: Event): void {\n const input = e.target as CheckboxElement;\n const { checked } = input;\n this._schemaMock = checked;\n this._computeExampleSchema();\n }\n\n protected override render(): TemplateResult {\n return html`\n <div class=\"container\">\n ${this._structureTemplate()}\n ${this._editorTemplate()}\n </div>\n `;\n }\n\n protected _structureTemplate(): TemplateResult {\n return html`\n <div class=\"structure\">\n <data-schema-document\n .root=\"${this.root}\"\n .key=\"${this.selected}\"\n .selectedProperty=\"${this.selectedProperty || this.selectedAssociation}\"\n ?associationDropZone=\"${this._highlightEntityDropZone}\"\n editable\n @change=\"${this._schemaEntityChangeHandler}\"\n @edit=\"${this._schemaEntityEditHandler}\"\n ></data-schema-document>\n ${this.renderSchema()}\n </div>\n `;\n }\n\n protected _editorTemplate(): TemplateResult {\n const { selectedProperty, selectedAssociation } = this;\n let content: TemplateResult;\n if (selectedProperty) {\n content = this._propertyEditorTemplate(selectedProperty);\n } else if (selectedAssociation) {\n content = this._associationEditorTemplate(selectedAssociation);\n } else {\n content = this.renderEntityEditor();\n }\n return html`\n <div class=\"editor\">${content}</div>\n `;\n }\n\n protected _propertyEditorTemplate(id: string): TemplateResult {\n return html`\n <div class=\"editor-title title-large\">\n Data Property\n <ui-icon-button class=\"title-icon\" title=\"Close this editor\" @click=\"${this._cancelEditor}\">\n <ui-icon icon=\"close\"></ui-icon>\n </ui-icon-button>\n </div>\n <data-property-form \n .root=\"${this.root}\" \n .key=\"${id}\" \n @change=\"${this._propertyChangeHandler}\"\n class=\"editor-form\"\n ></data-property-form>\n `;\n }\n\n protected _associationEditorTemplate(id: string): TemplateResult {\n return html`\n <div class=\"editor-title title-large\">\n Data Association\n <ui-icon-button class=\"title-icon\" title=\"Close this editor\" @click=\"${this._cancelEditor}\">\n <ui-icon icon=\"close\"></ui-icon>\n </ui-icon-button>\n </div>\n <data-association-form\n .root=\"${this.root}\" \n .key=\"${id}\" \n @change=\"${this._propertyChangeHandler}\"\n class=\"editor-form\"\n ></data-association-form>\n `;\n }\n\n protected renderEntityEditor(): TemplateResult {\n return html`\n <div class=\"editor-title title-large\">Data Entity</div>\n <data-entity-form \n .root=\"${this.root}\" \n .key=\"${this.selected}\"\n ?parentDropZone=\"${this._highlightEntityDropZone}\"\n @change=\"${this._entityChangeHandler}\"\n @namechange=\"${this._entityNameHandler}\"\n class=\"editor-form\"\n ></data-entity-form>\n `;\n }\n\n protected renderSchema(): TemplateResult {\n return html`\n <details class=\"schema-card\" @toggle=\"${this._schemaOpenHandler}\">\n <summary class=\"title-medium\">Example</summary>\n <div class=\"example-content\">\n <div class=\"mime-options\">\n <span id=\"mimeLabel\" class=\"label-large\">Mime type:</span>\n <label class=\"label-large\">\n <ui-radio \n name=\"mimeValue\" \n value=\"application/json\" \n .checked=\"${this._schemaMime === 'application/json'}\" \n @change=\"${this._schemaMimeHandler}\"\n aria-describedby=\"mimeLabel\"\n ></ui-radio>\n application/json\n </label>\n <label class=\"label-large\">\n <ui-radio \n name=\"mimeValue\" \n value=\"application/xml\" \n .checked=\"${this._schemaMime === 'application/xml'}\" \n @change=\"${this._schemaMimeHandler}\"\n aria-describedby=\"mimeLabel\"\n ></ui-radio>\n application/xml\n </label>\n <label class=\"label-large\">\n <ui-checkbox\n .checked=\"${this._schemaMock}\" \n @change=\"${this._mockSchemaValuesHandler}\" \n title=\"Generates random values when examples are not defined.\"\n ></ui-checkbox>\n Mock values\n </label>\n </div>\n <pre class=\"code-value text-selectable\"><code>${this._schemaExample}</code></pre>\n </div>\n </details>`;\n }\n}\n"]}
@@ -99,22 +99,6 @@ export default class DataModelVisualizationElement extends ApiElement {
99
99
  `,
100
100
  ];
101
101
  }
102
- /**
103
- * The key of the entity to edit.
104
- */
105
- key;
106
- /**
107
- * The read data namespace.
108
- */
109
- root;
110
- /**
111
- * The computed entity when the key or root change.
112
- */
113
- _model;
114
- _data;
115
- _workspace;
116
- groupSelectionPlugin;
117
- dndPlugin;
118
102
  firstUpdated(cp) {
119
103
  super.firstUpdated(cp);
120
104
  const node = this._workspace;
@@ -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"]}
@@ -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();