@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
@@ -19,10 +19,6 @@ import '../../define/ui/ui-icon-button.js';
19
19
  * @fires change - When the UI should notify the hosting application about the change.
20
20
  */
21
21
  export class AmfParameters extends EventTarget {
22
- parametersValue;
23
- nilValues;
24
- target;
25
- globalCache;
26
22
  /**
27
23
  * @param target The element that initializes this class.
28
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AmfParameters.js","sourceRoot":"","sources":["../../../src/amf/lib/AmfParameters.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit';\nimport { ApiSchemaValues, AmfNamespace, ApiDefinitions, AmfShapes, EventUtils } from '@api-client/core/build/browser.js';\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { classMap } from 'lit/directives/class-map.js';\nimport * as InputCache from './InputCache.js';\nimport { readLabelValue } from './Utils.js';\nimport type { OperationParameter, ShapeTemplateOptions, ParameterRenderOptions } from '../types.js';\nimport type { SupportedInputTypes } from '../../types/input.js';\nimport type Checkbox from '../../ui/input/CheckboxElement.js';\nimport Input from '../../ui/input/Input.js';\nimport type { UiDropdownListSelection } from '../../ui/list/UiDropdownList.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-text-field.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-checkbox.js';\nimport '../../define/ui/ui-icon-button.js';\n\nexport interface AmfParametersInit {\n globalCache?: boolean;\n}\n\n/**\n * A class that works with UI editor that capture user input for AMF parameters.\n * \n * @fires paramchange - When a parameter value change. The detail object is the key value of changed parameter.\n * @fires render - When the UI should re-render.\n * @fires change - When the UI should notify the hosting application about the change.\n */\nexport class AmfParameters extends EventTarget {\n parametersValue: OperationParameter[];\n\n nilValues: string[];\n\n target: HTMLElement;\n\n globalCache: boolean;\n\n /**\n * @param target The element that initializes this class.\n */\n constructor(target: HTMLElement, init: AmfParametersInit = {}) {\n super();\n const { globalCache = false } = init;\n this.globalCache = globalCache;\n this.target = target;\n this.parametersValue = [];\n this.nilValues = [];\n\n this.addArrayValueHandler = this.addArrayValueHandler.bind(this);\n this.paramChangeHandler = this.paramChangeHandler.bind(this);\n this.booleanHandler = this.booleanHandler.bind(this);\n this.deleteParamHandler = this.deleteParamHandler.bind(this);\n this.enumSelectionHandler = this.enumSelectionHandler.bind(this);\n this.nilHandler = this.nilHandler.bind(this);\n this.customParamChangeHandler = this.customParamChangeHandler.bind(this);\n }\n\n protected paramChanged(key: string): void {\n this.dispatchEvent(new CustomEvent('paramchange', { detail: key }));\n }\n\n protected notifyUpdate(): void {\n this.dispatchEvent(new Event('render'));\n }\n\n protected notifyChange(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n /**\n * Clears previously set values in the cache storage.\n */\n clearCache(): void {\n const { parametersValue = [], target, globalCache } = this;\n parametersValue.forEach((param) => {\n InputCache.remove(target, param.paramId, globalCache)\n });\n }\n\n addArrayValueHandler(e: Event): void {\n const button = e.target as HTMLElement;\n const { id } = button.dataset;\n if (!id) {\n return;\n }\n const { target, globalCache } = this;\n if (!InputCache.has(target, id, globalCache)) {\n InputCache.set(target, id, [], globalCache);\n }\n const items = InputCache.get(target, id, globalCache) as unknown[];\n items.push(undefined);\n this.notifyUpdate();\n this.paramChanged(id);\n }\n\n /**\n * Reads the value to be set on an input.\n * \n * @param parameter\n * @param schema\n * @param isArray Whether the value should be read for an array.\n * @returns The value to set on the input. Note, it is not cast to the type.\n */\n readInputValue(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, isArray = false): unknown {\n const { target, globalCache } = this;\n const { id } = parameter;\n if (InputCache.has(target, id, globalCache)) {\n return InputCache.get(target, id, globalCache);\n }\n let result;\n if (parameter.required) {\n const opts = { fromExamples: true };\n if (isArray) {\n result = ApiSchemaValues.readInputValues(parameter, schema, opts);\n } else {\n result = ApiSchemaValues.readInputValue(parameter, schema, opts);\n }\n if (result !== undefined) {\n InputCache.set(target, id, result, globalCache);\n }\n }\n return result;\n }\n\n protected paramChangeHandler(e: Event): void {\n const input = e.target as Input;\n const { value, dataset } = input;\n const { domainId, isArray, index } = dataset;\n if (!domainId) {\n return;\n }\n const param = this.parametersValue.find(p => p.paramId === domainId);\n if (!param) {\n return;\n }\n // sets cached value of the input.\n const typed = ApiSchemaValues.parseUserInput(value, param.schema as AmfShapes.IShapeUnion);\n InputCache.set(this.target, domainId, typed, this.globalCache, isArray === 'true', index ? Number(index) : undefined);\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n protected booleanHandler(e: Event): void {\n const input = e.target as Checkbox;\n const { checked, dataset } = input;\n const { domainId, isArray, index } = dataset;\n if (!domainId) {\n return;\n }\n const param = this.parametersValue.find(p => p.paramId === domainId);\n if (!param) {\n return;\n }\n InputCache.set(this.target, domainId, checked, this.globalCache, isArray === 'true', index ? Number(index) : undefined);\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n /**\n * A handler for the remove param button click.\n */\n protected deleteParamHandler(e: Event): void {\n const button = e.currentTarget as HTMLElement;\n const { dataset } = button;\n const { domainId, index, deleteParam } = dataset;\n if (!domainId) {\n return;\n }\n let forceUpdate = false;\n if (deleteParam === 'true') {\n const pIndex = this.parametersValue.findIndex(p => p.paramId === domainId);\n this.parametersValue.splice(pIndex, 1);\n forceUpdate = true;\n }\n if (InputCache.has(this.target, domainId, this.globalCache)) {\n InputCache.remove(this.target, domainId, this.globalCache, index ? Number(index) : undefined);\n forceUpdate = true;\n }\n if (forceUpdate) {\n this.notifyUpdate();\n this.notifyChange();\n this.paramChanged(domainId);\n }\n }\n\n protected enumSelectionHandler(e: CustomEvent<UiDropdownListSelection>): void {\n const { item } = e.detail;\n const dropDown = e.target as HTMLElement;\n\n const { domainId, isArray, index } = dropDown.dataset;\n const { value } = item.dataset;\n if (!domainId) {\n return;\n }\n const param = this.parametersValue.find(p => p.paramId === domainId);\n if (!param) {\n return;\n }\n const enumValues = ((param.schema as AmfShapes.IShapeUnion).values as AmfShapes.IApiScalarNode[]);\n if (!enumValues) {\n return;\n }\n const typed = ApiSchemaValues.parseUserInput(value, param.schema as AmfShapes.IShapeUnion);\n InputCache.set(this.target, domainId, typed, this.globalCache, isArray === 'true', index ? Number(index) : undefined);\n this.notifyChange();\n this.paramChanged(domainId);\n this.notifyUpdate();\n }\n\n /**\n * Handler for the nil value toggle.\n */\n protected nilHandler(e: Event): void {\n const button = e.target as Checkbox;\n const { checked, dataset } = button;\n const { domainId } = dataset;\n if (!domainId) {\n return;\n }\n const list = this.nilValues;\n const has = list.includes(domainId);\n if (checked && !has) {\n list.push(domainId);\n this.notifyUpdate();\n } else if (!checked && has) {\n const index = list.indexOf(domainId);\n list.splice(index, 1);\n this.notifyUpdate();\n }\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n /**\n * @param param The parameter to render.\n * @param opts Render options\n * @returns The template for the request parameter form control.\n */\n parameterTemplate(param: OperationParameter, opts: ParameterRenderOptions = {}): TemplateResult | string {\n const { schema, parameter, source } = param;\n if (source === 'custom') {\n return this.customParamTemplate(param);\n }\n if (!schema) {\n return '';\n }\n return this.parameterSchemaTemplate(parameter, schema, opts);\n }\n\n /**\n * @param parameter\n * @param schema\n * @param opts Internal Process options\n * @returns The template for the request parameter form control.\n */\n parameterSchemaTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IShapeUnion, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n const { types } = schema;\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape)) {\n return this.scalarShapeTemplate(parameter, schema as AmfShapes.IApiScalarShape, opts);\n }\n if (types.includes(AmfNamespace.w3.shacl.NodeShape)) {\n return this.nodeShapeTemplate();\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.UnionShape)) {\n return this.unionShapeTemplate(parameter, schema as AmfShapes.IApiUnionShape);\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.FileShape)) {\n return this.fileShapeTemplate();\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.SchemaShape)) {\n return this.schemaShapeTemplate();\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.ArrayShape) || types.includes(AmfNamespace.aml.vocabularies.shapes.MatrixShape)) {\n return this.arrayShapeTemplate(parameter, schema as AmfShapes.IApiArrayShape);\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.TupleShape)) {\n return this.tupleShapeTemplate(parameter, schema as AmfShapes.IApiTupleShape);\n }\n return this.anyShapeTemplate(parameter, schema as AmfShapes.IApiAnyShape);\n }\n\n /**\n * @param parameter\n * @param schema\n * @param opts\n * @returns The template for the schema parameter.\n */\n scalarShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n const { readOnly, values, dataType = 'text' } = schema;\n if (readOnly) {\n return '';\n }\n if (values && values.length) {\n return this.enumTemplate(parameter, schema, opts);\n }\n const inputType = ApiSchemaValues.readInputType(dataType);\n if (inputType === 'boolean') {\n return this.booleanTemplate(parameter, schema, opts);\n }\n return this.textInputTemplate(parameter, schema, inputType, opts);\n }\n\n /**\n * Corrects the `http://www.w3.org/2001/XMLSchema#dateTime` schema with the `date-time` or `rfc3339` formats\n * to remove the last `.ZZZ` part which is not recognizable by the `<input>` element.\n */\n protected correctDateTimeParameter(schema: AmfShapes.IApiScalarShape, value: unknown): string | unknown {\n if (!value) {\n return value;\n }\n if (schema.dataType === AmfNamespace.w3.xmlSchema.dateTime) {\n if (['date-time', 'rfc3339'].includes(schema.format || '')) {\n return String(value).replace(/(\\.\\d\\d\\d)Z/, '$1');\n }\n }\n return value;\n }\n\n /**\n * @param parameter\n * @param schema\n * @param type The input type.\n * @param opts\n * @returns A template for an input form item for the given type and schema\n */\n textInputTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, type?: SupportedInputTypes, opts: ShapeTemplateOptions = {}): TemplateResult {\n const { id, binding, } = parameter;\n const { pattern, minimum, minLength, maxLength, maximum, multipleOf } = schema;\n let required = false;\n if (typeof opts.required === 'boolean') {\n required = opts.required;\n } else {\n required = parameter.required || false;\n }\n const label = readLabelValue(parameter, schema);\n const { allowEmptyValue, } = parameter;\n let notifyValueChange = false;\n let value;\n if (opts.arrayItem) {\n value = opts.value || '';\n } else {\n value = this.readInputValue(parameter, schema);\n notifyValueChange = true;\n }\n if (value) {\n value = ApiSchemaValues.parseScalarInput(value, schema);\n value = this.correctDateTimeParameter(schema, value);\n }\n if (notifyValueChange && value !== undefined && value !== '') {\n const typed = ApiSchemaValues.parseUserInput(value, schema);\n InputCache.set(this.target, id, typed, this.globalCache);\n this.paramChanged(id);\n }\n let step: number | undefined;\n if (['time', 'datetime-local'].includes(type || '')) {\n step = 1;\n } else if (typeof multipleOf !== 'undefined') {\n step = Number(multipleOf);\n }\n const title = parameter.description || schema.description;\n const nillable = this.nilValues;\n const nillDisabled = !!opts.nillable && nillable.includes(id);\n const classes = {\n 'form-item': true,\n required,\n optional: !required,\n };\n const finalValue = value === undefined ? '' : String(value);\n return html`\n <div class=\"${classMap(classes)}\">\n <ui-text-field\n data-domain-id=\"${id}\"\n data-is-array=\"${ifDefined(opts.arrayItem)}\"\n data-index=\"${ifDefined(opts.index)}\"\n data-binding=\"${ifDefined(binding)}\"\n name=\"${parameter.name || schema.name || ''}\" \n class=\"form-input\"\n ?required=\"${required && !allowEmptyValue}\"\n .value=\"${finalValue}\"\n pattern=\"${ifDefined(pattern)}\"\n min=\"${ifDefined(minimum)}\"\n minLength=\"${ifDefined(minLength)}\"\n max=\"${ifDefined(maximum)}\"\n maxLength=\"${ifDefined(maxLength)}\"\n step=\"${ifDefined(step)}\"\n type=\"${ifDefined(type)}\"\n title=\"${ifDefined(title)}\"\n @change=\"${this.paramChangeHandler}\"\n ?disabled=\"${nillDisabled}\"\n label=\"${label}\"\n ></ui-text-field>\n ${opts.nillable ? this.nillInputTemplate(parameter) : ''}\n ${opts.arrayItem ? this.deleteParamTemplate(id, opts.index) : ''}\n </div>\n `;\n }\n\n /**\n * @param paramId The ApiDefinitions.IApiParameter id.\n * @param arrayIndex When this is an array item, the index on the array.\n * @returns The template for the param remove button. \n */\n deleteParamTemplate(paramId: string, arrayIndex?: number): TemplateResult {\n const title = 'Removes this parameter.';\n return html`\n <ui-icon-button \n title=\"${title}\" \n data-domain-id=\"${paramId}\"\n data-index=\"${ifDefined(arrayIndex)}\"\n data-delete-param=\"true\"\n @click=\"${this.deleteParamHandler}\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n /**\n * @param parameter\n * @param schema\n * @param opts\n * @returns The template for the enum input.\n */\n enumTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n let required = false;\n if (typeof opts.required === 'boolean') {\n required = opts.required;\n } else {\n required = parameter.required || false;\n }\n const label = readLabelValue(parameter, schema);\n const enumValues = (schema.values || []) as AmfShapes.IApiScalarNode[];\n const selectedValue = this.readInputValue(parameter, schema);\n const selected = enumValues.findIndex(i => i.value === selectedValue);\n const { id, binding } = parameter;\n const title = parameter.description || schema.description;\n const nillable = this.nilValues;\n const nillDisabled = !!opts.nillable && nillable.includes(id);\n const classes = {\n 'form-item': true,\n required,\n optional: !required,\n };\n\n const item = enumValues[selected];\n const finalValue = item ? (item.value || '') : '';\n return html`\n <div class=\"${classMap(classes)}\">\n <ui-dropdown-list\n class=\"param-selector\"\n closeOnOutsideClick\n matchTriggerWidth\n @select=\"${this.enumSelectionHandler}\"\n data-binding=\"${ifDefined(binding)}\"\n data-domain-id=\"${id}\"\n data-is-array=\"${ifDefined(opts.arrayItem)}\"\n \n >\n <ui-text-field \n class=\"dropdown-trigger\" \n label=\"${label}\" \n readOnly \n ?required=\"${required}\"\n .value=\"${finalValue || ''}\" \n @select=\"${EventUtils.cancelEvent}\"\n name=\"${parameter.name || schema.name || ''}\"\n ?disabled=\"${nillDisabled}\"\n title=\"${ifDefined(title)}\"\n >\n <ui-icon icon=\"arrowDropDown\" role=\"presentation\" slot=\"suffix\"></ui-icon>\n </ui-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\" selector=\"[data-value]\" selectActive>\n ${enumValues.map((value) => this.renderEnumItem(value))}\n </ui-list>\n </ui-dropdown-list>\n ${opts.nillable ? this.nillInputTemplate(parameter) : ''}\n </div>\n `;\n }\n\n protected renderEnumItem(item: AmfShapes.IApiScalarNode): TemplateResult {\n const { dataType, value } = item;\n return html`\n <ui-list-item role=\"menuitem\" data-type=\"${ifDefined(dataType)}\" data-value=\"${ifDefined(value)}\">${value}</ui-list-item>\n `;\n }\n\n /**\n * @returns The template for the checkbox input.\n */\n booleanTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n const label = readLabelValue(parameter, schema);\n const { id } = parameter;\n let value: boolean;\n if (opts.arrayItem) {\n value = opts.value as boolean || false;\n } else {\n value = this.readInputValue(parameter, schema) as boolean;\n }\n const title = parameter.description || schema.description;\n const nillable = this.nilValues;\n const nillDisabled = !!opts.nillable && nillable.includes(id);\n const classes = {\n 'form-item': true,\n required: parameter.required || false,\n optional: !parameter.required,\n };\n // note, don't mark a checkbox as required. A checkbox also produces `false` value\n // which should be passed to the transport. The request data processor should take care of\n // producing the right output.\n return html`\n <div class=\"${classMap(classes)}\">\n <label class=\"label-large\">\n <ui-checkbox \n class=\"boolean-param\"\n name=\"${parameter.name || schema.name || ''}\"\n data-binding=\"${ifDefined(parameter.binding)}\"\n .checked=\"${value}\"\n title=\"${ifDefined(title)}\"\n data-domain-id=\"${id}\"\n data-is-array=\"${ifDefined(opts.arrayItem)}\"\n ?disabled=\"${nillDisabled}\"\n @change=\"${this.booleanHandler}\"\n aria-label=\"${label}\"\n ></ui-checkbox>\n ${label}\n </label>\n ${opts.nillable ? this.nillInputTemplate(parameter) : ''}\n </div>\n `;\n }\n\n /**\n * @returns The template for the nil checkbox input.\n */\n nillInputTemplate(parameter: ApiDefinitions.IApiParameter): TemplateResult | string {\n return html`\n <label class=\"label-large\">\n <ui-checkbox\n class=\"nil-option\"\n data-domain-id=\"${parameter.id}\"\n data-binding=\"${ifDefined(parameter.binding)}\"\n title=\"Makes the property nillable (e.g. inserts null into the schema)\"\n @change=\"${this.nilHandler}\"\n aria-label=\"Nil\"\n ></ui-checkbox>\n Nil\n </label>\n `;\n }\n\n /**\n * or now we do not support union shapes. There's no way to learn how to serialize\n * the Node shape to a string.\n * @returns {TemplateResult|string} The template for the node shape.\n */\n nodeShapeTemplate(): TemplateResult | string {\n return '';\n }\n\n /**\n * @returns The template for the union shape.\n */\n unionShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiUnionShape): TemplateResult | string {\n const { anyOf } = schema;\n if (!anyOf || !anyOf.length) {\n return '';\n }\n const nil = anyOf.find(shape => shape.types.includes(AmfNamespace.aml.vocabularies.shapes.NilShape));\n if (nil && anyOf.length === 2) {\n // this is a case where a scalar is marked as nillable instead of not required\n // (which for some reason is a common practice among RAML developers).\n const scalar = anyOf.find(shape => shape !== nil) as AmfShapes.IShapeUnion;\n return this.parameterSchemaTemplate(parameter, scalar, {\n nillable: true,\n });\n }\n const hasComplex = anyOf.some(i => !i.types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape));\n const hasScalar = anyOf.some(i => i.types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape));\n if (hasComplex && !hasScalar) {\n // We quit here as this is the same problem as with the Node shape - unclear how to serialize the types\n return '';\n }\n // at this point only scalars are possible. For that we render a regular text field \n // and while serializing the values we figure out what type it should be giving the \n // value provided and available types in the union.\n let opts: ShapeTemplateOptions | undefined;\n if (nil) {\n opts = { nillable: true };\n }\n return this.textInputTemplate(parameter, schema, 'text', opts);\n }\n\n /**\n * This situation makes not sense as there's no mechanism to describe how to \n * put a file into a path, query, or headers.\n * @returns The template for the file shape.\n */\n fileShapeTemplate(): TemplateResult | string {\n return '';\n }\n\n /**\n * For now we do not support union shapes. There's no way to learn how to serialize\n * the Schema shape to a string.\n * @returns The template for the schema shape.\n */\n schemaShapeTemplate(): TemplateResult | string {\n return '';\n }\n\n /**\n * @returns The template for the array shape.\n */\n arrayShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiArrayShape): TemplateResult | string {\n const { items } = schema;\n if (!items) {\n return '';\n }\n const { id } = parameter;\n const label = readLabelValue(parameter, schema);\n const values = (this.readInputValue(parameter, schema, true)) as unknown[];\n const options = { arrayItem: true, };\n const inputs = (values || []).map((value, index) => this.parameterSchemaTemplate(parameter, items, { ...options, value, index }));\n const classes = {\n 'array-form-item': true,\n required: !!parameter.required,\n optional: !parameter.required,\n };\n return html`\n <div class=\"${classMap(classes)}\" data-param-id=\"${id}\" data-param-label=\"${label}\">\n <div class=\"array-title\"><span class=\"label\">${label}</span></div>\n ${inputs}\n ${this.addArrayItemTemplate(id)}\n </div>\n `;\n }\n\n /**\n * @returns The template for the tuple shape.\n */\n tupleShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiTupleShape): TemplateResult | string {\n const { items } = schema;\n if (!items) {\n return '';\n }\n // TODO: not sure how to process this value...\n return '';\n }\n\n /**\n * @returns The template for the Any shape.\n */\n anyShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiAnyShape): TemplateResult | string {\n return this.textInputTemplate(parameter, schema, 'text');\n }\n\n /**\n * @param id The id of the parameter to add the value to.\n * @returns The template for the adding an array item button\n */\n addArrayItemTemplate(id: string): TemplateResult | string {\n return html`\n <ui-button type=\"tonal\" data-id=\"${id}\" @click=\"${this.addArrayValueHandler}\">Add new value</ui-button>\n `;\n }\n\n /**\n * Handler for a custom parameter input change.\n */\n protected customParamChangeHandler(e: Event): void {\n const input = e.target as Input;\n const { value, name, dataset } = input;\n const { domainId } = dataset;\n if (!domainId || !['paramName', 'paramValue'].includes(name || '')) {\n return;\n }\n if (name === 'paramName') {\n const param = this.parametersValue.find(item => item.paramId === domainId);\n if (!param) {\n return;\n }\n param.parameter.name = value;\n } else {\n InputCache.set(this.target as HTMLElement, domainId, value, this.globalCache);\n }\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n /**\n * @param param The parameter to render\n * @returns The template for a custom parameter\n */\n protected customParamTemplate(param: OperationParameter): TemplateResult {\n const value = InputCache.get(this.target as HTMLElement, param.paramId, this.globalCache) as string;\n const classes = {\n 'form-item': true,\n 'custom-item': true,\n };\n let nameLabel;\n let nameTitle;\n let valueLabel;\n let valueTitle;\n if (param.binding === 'query') {\n nameLabel = 'Query parameter'\n nameTitle = 'The name of this query parameter';\n valueLabel = 'Parameter value';\n valueTitle = 'The value of this query parameter';\n } else if (param.binding === 'header') {\n nameLabel = 'Header name'\n nameTitle = 'The name of this header';\n valueLabel = 'Header value';\n valueTitle = 'The value of this header';\n } else {\n nameLabel = 'Parameter name'\n nameTitle = 'The name of the parameter';\n valueLabel = 'Parameter value';\n valueTitle = 'The value of the parameter';\n }\n return html`\n <div class=\"${classMap(classes)}\">\n <ui-text-field \n data-domain-id=\"${param.paramId}\"\n data-binding=\"${param.binding}\"\n class=\"form-input custom-name\"\n .value=\"${param.parameter.name || ''}\"\n title=\"${nameTitle}\"\n name=\"paramName\"\n @change=\"${this.customParamChangeHandler}\"\n noFloating\n label=\"${nameLabel}\"\n ></ui-text-field>\n <ui-text-field \n data-domain-id=\"${param.paramId}\"\n data-binding=\"${param.binding}\"\n class=\"form-input custom-value\"\n .value=\"${value}\"\n title=\"${valueTitle}\"\n name=\"paramValue\"\n @change=\"${this.customParamChangeHandler}\"\n noFloating\n label=\"${valueLabel}\"\n ></ui-text-field>\n ${this.deleteParamTemplate(param.paramId)}\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"AmfParameters.js","sourceRoot":"","sources":["../../../src/amf/lib/AmfParameters.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit';\nimport { ApiSchemaValues, AmfNamespace, ApiDefinitions, AmfShapes, EventUtils } from '@api-client/core/build/browser.js';\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { classMap } from 'lit/directives/class-map.js';\nimport * as InputCache from './InputCache.js';\nimport { readLabelValue } from './Utils.js';\nimport type { OperationParameter, ShapeTemplateOptions, ParameterRenderOptions } from '../types.js';\nimport type { SupportedInputTypes } from '../../types/input.js';\nimport type Checkbox from '../../ui/input/CheckboxElement.js';\nimport Input from '../../ui/input/Input.js';\nimport type { UiDropdownListSelection } from '../../ui/list/UiDropdownList.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-text-field.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-checkbox.js';\nimport '../../define/ui/ui-icon-button.js';\n\nexport interface AmfParametersInit {\n globalCache?: boolean;\n}\n\n/**\n * A class that works with UI editor that capture user input for AMF parameters.\n * \n * @fires paramchange - When a parameter value change. The detail object is the key value of changed parameter.\n * @fires render - When the UI should re-render.\n * @fires change - When the UI should notify the hosting application about the change.\n */\nexport class AmfParameters extends EventTarget {\n parametersValue: OperationParameter[];\n\n nilValues: string[];\n\n target: HTMLElement;\n\n globalCache: boolean;\n\n /**\n * @param target The element that initializes this class.\n */\n constructor(target: HTMLElement, init: AmfParametersInit = {}) {\n super();\n const { globalCache = false } = init;\n this.globalCache = globalCache;\n this.target = target;\n this.parametersValue = [];\n this.nilValues = [];\n\n this.addArrayValueHandler = this.addArrayValueHandler.bind(this);\n this.paramChangeHandler = this.paramChangeHandler.bind(this);\n this.booleanHandler = this.booleanHandler.bind(this);\n this.deleteParamHandler = this.deleteParamHandler.bind(this);\n this.enumSelectionHandler = this.enumSelectionHandler.bind(this);\n this.nilHandler = this.nilHandler.bind(this);\n this.customParamChangeHandler = this.customParamChangeHandler.bind(this);\n }\n\n protected paramChanged(key: string): void {\n this.dispatchEvent(new CustomEvent('paramchange', { detail: key }));\n }\n\n protected notifyUpdate(): void {\n this.dispatchEvent(new Event('render'));\n }\n\n protected notifyChange(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n /**\n * Clears previously set values in the cache storage.\n */\n clearCache(): void {\n const { parametersValue = [], target, globalCache } = this;\n parametersValue.forEach((param) => {\n InputCache.remove(target, param.paramId, globalCache)\n });\n }\n\n addArrayValueHandler(e: Event): void {\n const button = e.target as HTMLElement;\n const { id } = button.dataset;\n if (!id) {\n return;\n }\n const { target, globalCache } = this;\n if (!InputCache.has(target, id, globalCache)) {\n InputCache.set(target, id, [], globalCache);\n }\n const items = InputCache.get(target, id, globalCache) as unknown[];\n items.push(undefined);\n this.notifyUpdate();\n this.paramChanged(id);\n }\n\n /**\n * Reads the value to be set on an input.\n * \n * @param parameter\n * @param schema\n * @param isArray Whether the value should be read for an array.\n * @returns The value to set on the input. Note, it is not cast to the type.\n */\n readInputValue(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, isArray = false): unknown {\n const { target, globalCache } = this;\n const { id } = parameter;\n if (InputCache.has(target, id, globalCache)) {\n return InputCache.get(target, id, globalCache);\n }\n let result;\n if (parameter.required) {\n const opts = { fromExamples: true };\n if (isArray) {\n result = ApiSchemaValues.readInputValues(parameter, schema, opts);\n } else {\n result = ApiSchemaValues.readInputValue(parameter, schema, opts);\n }\n if (result !== undefined) {\n InputCache.set(target, id, result, globalCache);\n }\n }\n return result;\n }\n\n protected paramChangeHandler(e: Event): void {\n const input = e.target as Input;\n const { value, dataset } = input;\n const { domainId, isArray, index } = dataset;\n if (!domainId) {\n return;\n }\n const param = this.parametersValue.find(p => p.paramId === domainId);\n if (!param) {\n return;\n }\n // sets cached value of the input.\n const typed = ApiSchemaValues.parseUserInput(value, param.schema as AmfShapes.IShapeUnion);\n InputCache.set(this.target, domainId, typed, this.globalCache, isArray === 'true', index ? Number(index) : undefined);\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n protected booleanHandler(e: Event): void {\n const input = e.target as Checkbox;\n const { checked, dataset } = input;\n const { domainId, isArray, index } = dataset;\n if (!domainId) {\n return;\n }\n const param = this.parametersValue.find(p => p.paramId === domainId);\n if (!param) {\n return;\n }\n InputCache.set(this.target, domainId, checked, this.globalCache, isArray === 'true', index ? Number(index) : undefined);\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n /**\n * A handler for the remove param button click.\n */\n protected deleteParamHandler(e: Event): void {\n const button = e.currentTarget as HTMLElement;\n const { dataset } = button;\n const { domainId, index, deleteParam } = dataset;\n if (!domainId) {\n return;\n }\n let forceUpdate = false;\n if (deleteParam === 'true') {\n const pIndex = this.parametersValue.findIndex(p => p.paramId === domainId);\n this.parametersValue.splice(pIndex, 1);\n forceUpdate = true;\n }\n if (InputCache.has(this.target, domainId, this.globalCache)) {\n InputCache.remove(this.target, domainId, this.globalCache, index ? Number(index) : undefined);\n forceUpdate = true;\n }\n if (forceUpdate) {\n this.notifyUpdate();\n this.notifyChange();\n this.paramChanged(domainId);\n }\n }\n\n protected enumSelectionHandler(e: CustomEvent<UiDropdownListSelection>): void {\n const { item } = e.detail;\n const dropDown = e.target as HTMLElement;\n\n const { domainId, isArray, index } = dropDown.dataset;\n const { value } = item.dataset;\n if (!domainId) {\n return;\n }\n const param = this.parametersValue.find(p => p.paramId === domainId);\n if (!param) {\n return;\n }\n const enumValues = ((param.schema as AmfShapes.IShapeUnion).values as AmfShapes.IApiScalarNode[]);\n if (!enumValues) {\n return;\n }\n const typed = ApiSchemaValues.parseUserInput(value, param.schema as AmfShapes.IShapeUnion);\n InputCache.set(this.target, domainId, typed, this.globalCache, isArray === 'true', index ? Number(index) : undefined);\n this.notifyChange();\n this.paramChanged(domainId);\n this.notifyUpdate();\n }\n\n /**\n * Handler for the nil value toggle.\n */\n protected nilHandler(e: Event): void {\n const button = e.target as Checkbox;\n const { checked, dataset } = button;\n const { domainId } = dataset;\n if (!domainId) {\n return;\n }\n const list = this.nilValues;\n const has = list.includes(domainId);\n if (checked && !has) {\n list.push(domainId);\n this.notifyUpdate();\n } else if (!checked && has) {\n const index = list.indexOf(domainId);\n list.splice(index, 1);\n this.notifyUpdate();\n }\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n /**\n * @param param The parameter to render.\n * @param opts Render options\n * @returns The template for the request parameter form control.\n */\n parameterTemplate(param: OperationParameter, opts: ParameterRenderOptions = {}): TemplateResult | string {\n const { schema, parameter, source } = param;\n if (source === 'custom') {\n return this.customParamTemplate(param);\n }\n if (!schema) {\n return '';\n }\n return this.parameterSchemaTemplate(parameter, schema, opts);\n }\n\n /**\n * @param parameter\n * @param schema\n * @param opts Internal Process options\n * @returns The template for the request parameter form control.\n */\n parameterSchemaTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IShapeUnion, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n const { types } = schema;\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape)) {\n return this.scalarShapeTemplate(parameter, schema as AmfShapes.IApiScalarShape, opts);\n }\n if (types.includes(AmfNamespace.w3.shacl.NodeShape)) {\n return this.nodeShapeTemplate();\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.UnionShape)) {\n return this.unionShapeTemplate(parameter, schema as AmfShapes.IApiUnionShape);\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.FileShape)) {\n return this.fileShapeTemplate();\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.SchemaShape)) {\n return this.schemaShapeTemplate();\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.ArrayShape) || types.includes(AmfNamespace.aml.vocabularies.shapes.MatrixShape)) {\n return this.arrayShapeTemplate(parameter, schema as AmfShapes.IApiArrayShape);\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.TupleShape)) {\n return this.tupleShapeTemplate(parameter, schema as AmfShapes.IApiTupleShape);\n }\n return this.anyShapeTemplate(parameter, schema as AmfShapes.IApiAnyShape);\n }\n\n /**\n * @param parameter\n * @param schema\n * @param opts\n * @returns The template for the schema parameter.\n */\n scalarShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n const { readOnly, values, dataType = 'text' } = schema;\n if (readOnly) {\n return '';\n }\n if (values && values.length) {\n return this.enumTemplate(parameter, schema, opts);\n }\n const inputType = ApiSchemaValues.readInputType(dataType);\n if (inputType === 'boolean') {\n return this.booleanTemplate(parameter, schema, opts);\n }\n return this.textInputTemplate(parameter, schema, inputType, opts);\n }\n\n /**\n * Corrects the `http://www.w3.org/2001/XMLSchema#dateTime` schema with the `date-time` or `rfc3339` formats\n * to remove the last `.ZZZ` part which is not recognizable by the `<input>` element.\n */\n protected correctDateTimeParameter(schema: AmfShapes.IApiScalarShape, value: unknown): string | unknown {\n if (!value) {\n return value;\n }\n if (schema.dataType === AmfNamespace.w3.xmlSchema.dateTime) {\n if (['date-time', 'rfc3339'].includes(schema.format || '')) {\n return String(value).replace(/(\\.\\d\\d\\d)Z/, '$1');\n }\n }\n return value;\n }\n\n /**\n * @param parameter\n * @param schema\n * @param type The input type.\n * @param opts\n * @returns A template for an input form item for the given type and schema\n */\n textInputTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, type?: SupportedInputTypes, opts: ShapeTemplateOptions = {}): TemplateResult {\n const { id, binding, } = parameter;\n const { pattern, minimum, minLength, maxLength, maximum, multipleOf } = schema;\n let required = false;\n if (typeof opts.required === 'boolean') {\n required = opts.required;\n } else {\n required = parameter.required || false;\n }\n const label = readLabelValue(parameter, schema);\n const { allowEmptyValue, } = parameter;\n let notifyValueChange = false;\n let value;\n if (opts.arrayItem) {\n value = opts.value || '';\n } else {\n value = this.readInputValue(parameter, schema);\n notifyValueChange = true;\n }\n if (value) {\n value = ApiSchemaValues.parseScalarInput(value, schema);\n value = this.correctDateTimeParameter(schema, value);\n }\n if (notifyValueChange && value !== undefined && value !== '') {\n const typed = ApiSchemaValues.parseUserInput(value, schema);\n InputCache.set(this.target, id, typed, this.globalCache);\n this.paramChanged(id);\n }\n let step: number | undefined;\n if (['time', 'datetime-local'].includes(type || '')) {\n step = 1;\n } else if (typeof multipleOf !== 'undefined') {\n step = Number(multipleOf);\n }\n const title = parameter.description || schema.description;\n const nillable = this.nilValues;\n const nillDisabled = !!opts.nillable && nillable.includes(id);\n const classes = {\n 'form-item': true,\n required,\n optional: !required,\n };\n const finalValue = value === undefined ? '' : String(value);\n return html`\n <div class=\"${classMap(classes)}\">\n <ui-text-field\n data-domain-id=\"${id}\"\n data-is-array=\"${ifDefined(opts.arrayItem)}\"\n data-index=\"${ifDefined(opts.index)}\"\n data-binding=\"${ifDefined(binding)}\"\n name=\"${parameter.name || schema.name || ''}\" \n class=\"form-input\"\n ?required=\"${required && !allowEmptyValue}\"\n .value=\"${finalValue}\"\n pattern=\"${ifDefined(pattern)}\"\n min=\"${ifDefined(minimum)}\"\n minLength=\"${ifDefined(minLength)}\"\n max=\"${ifDefined(maximum)}\"\n maxLength=\"${ifDefined(maxLength)}\"\n step=\"${ifDefined(step)}\"\n type=\"${ifDefined(type)}\"\n title=\"${ifDefined(title)}\"\n @change=\"${this.paramChangeHandler}\"\n ?disabled=\"${nillDisabled}\"\n label=\"${label}\"\n ></ui-text-field>\n ${opts.nillable ? this.nillInputTemplate(parameter) : ''}\n ${opts.arrayItem ? this.deleteParamTemplate(id, opts.index) : ''}\n </div>\n `;\n }\n\n /**\n * @param paramId The ApiDefinitions.IApiParameter id.\n * @param arrayIndex When this is an array item, the index on the array.\n * @returns The template for the param remove button. \n */\n deleteParamTemplate(paramId: string, arrayIndex?: number): TemplateResult {\n const title = 'Removes this parameter.';\n return html`\n <ui-icon-button \n title=\"${title}\" \n data-domain-id=\"${paramId}\"\n data-index=\"${ifDefined(arrayIndex)}\"\n data-delete-param=\"true\"\n @click=\"${this.deleteParamHandler}\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n /**\n * @param parameter\n * @param schema\n * @param opts\n * @returns The template for the enum input.\n */\n enumTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n let required = false;\n if (typeof opts.required === 'boolean') {\n required = opts.required;\n } else {\n required = parameter.required || false;\n }\n const label = readLabelValue(parameter, schema);\n const enumValues = (schema.values || []) as AmfShapes.IApiScalarNode[];\n const selectedValue = this.readInputValue(parameter, schema);\n const selected = enumValues.findIndex(i => i.value === selectedValue);\n const { id, binding } = parameter;\n const title = parameter.description || schema.description;\n const nillable = this.nilValues;\n const nillDisabled = !!opts.nillable && nillable.includes(id);\n const classes = {\n 'form-item': true,\n required,\n optional: !required,\n };\n\n const item = enumValues[selected];\n const finalValue = item ? (item.value || '') : '';\n return html`\n <div class=\"${classMap(classes)}\">\n <ui-dropdown-list\n class=\"param-selector\"\n closeOnOutsideClick\n matchTriggerWidth\n @select=\"${this.enumSelectionHandler}\"\n data-binding=\"${ifDefined(binding)}\"\n data-domain-id=\"${id}\"\n data-is-array=\"${ifDefined(opts.arrayItem)}\"\n \n >\n <ui-text-field \n class=\"dropdown-trigger\" \n label=\"${label}\" \n readOnly \n ?required=\"${required}\"\n .value=\"${finalValue || ''}\" \n @select=\"${EventUtils.cancelEvent}\"\n name=\"${parameter.name || schema.name || ''}\"\n ?disabled=\"${nillDisabled}\"\n title=\"${ifDefined(title)}\"\n >\n <ui-icon icon=\"arrowDropDown\" role=\"presentation\" slot=\"suffix\"></ui-icon>\n </ui-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\" selector=\"[data-value]\" selectActive>\n ${enumValues.map((value) => this.renderEnumItem(value))}\n </ui-list>\n </ui-dropdown-list>\n ${opts.nillable ? this.nillInputTemplate(parameter) : ''}\n </div>\n `;\n }\n\n protected renderEnumItem(item: AmfShapes.IApiScalarNode): TemplateResult {\n const { dataType, value } = item;\n return html`\n <ui-list-item role=\"menuitem\" data-type=\"${ifDefined(dataType)}\" data-value=\"${ifDefined(value)}\">${value}</ui-list-item>\n `;\n }\n\n /**\n * @returns The template for the checkbox input.\n */\n booleanTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n const label = readLabelValue(parameter, schema);\n const { id } = parameter;\n let value: boolean;\n if (opts.arrayItem) {\n value = opts.value as boolean || false;\n } else {\n value = this.readInputValue(parameter, schema) as boolean;\n }\n const title = parameter.description || schema.description;\n const nillable = this.nilValues;\n const nillDisabled = !!opts.nillable && nillable.includes(id);\n const classes = {\n 'form-item': true,\n required: parameter.required || false,\n optional: !parameter.required,\n };\n // note, don't mark a checkbox as required. A checkbox also produces `false` value\n // which should be passed to the transport. The request data processor should take care of\n // producing the right output.\n return html`\n <div class=\"${classMap(classes)}\">\n <label class=\"label-large\">\n <ui-checkbox \n class=\"boolean-param\"\n name=\"${parameter.name || schema.name || ''}\"\n data-binding=\"${ifDefined(parameter.binding)}\"\n .checked=\"${value}\"\n title=\"${ifDefined(title)}\"\n data-domain-id=\"${id}\"\n data-is-array=\"${ifDefined(opts.arrayItem)}\"\n ?disabled=\"${nillDisabled}\"\n @change=\"${this.booleanHandler}\"\n aria-label=\"${label}\"\n ></ui-checkbox>\n ${label}\n </label>\n ${opts.nillable ? this.nillInputTemplate(parameter) : ''}\n </div>\n `;\n }\n\n /**\n * @returns The template for the nil checkbox input.\n */\n nillInputTemplate(parameter: ApiDefinitions.IApiParameter): TemplateResult | string {\n return html`\n <label class=\"label-large\">\n <ui-checkbox\n class=\"nil-option\"\n data-domain-id=\"${parameter.id}\"\n data-binding=\"${ifDefined(parameter.binding)}\"\n title=\"Makes the property nillable (e.g. inserts null into the schema)\"\n @change=\"${this.nilHandler}\"\n aria-label=\"Nil\"\n ></ui-checkbox>\n Nil\n </label>\n `;\n }\n\n /**\n * or now we do not support union shapes. There's no way to learn how to serialize\n * the Node shape to a string.\n * @returns {TemplateResult|string} The template for the node shape.\n */\n nodeShapeTemplate(): TemplateResult | string {\n return '';\n }\n\n /**\n * @returns The template for the union shape.\n */\n unionShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiUnionShape): TemplateResult | string {\n const { anyOf } = schema;\n if (!anyOf || !anyOf.length) {\n return '';\n }\n const nil = anyOf.find(shape => shape.types.includes(AmfNamespace.aml.vocabularies.shapes.NilShape));\n if (nil && anyOf.length === 2) {\n // this is a case where a scalar is marked as nillable instead of not required\n // (which for some reason is a common practice among RAML developers).\n const scalar = anyOf.find(shape => shape !== nil) as AmfShapes.IShapeUnion;\n return this.parameterSchemaTemplate(parameter, scalar, {\n nillable: true,\n });\n }\n const hasComplex = anyOf.some(i => !i.types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape));\n const hasScalar = anyOf.some(i => i.types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape));\n if (hasComplex && !hasScalar) {\n // We quit here as this is the same problem as with the Node shape - unclear how to serialize the types\n return '';\n }\n // at this point only scalars are possible. For that we render a regular text field \n // and while serializing the values we figure out what type it should be giving the \n // value provided and available types in the union.\n let opts: ShapeTemplateOptions | undefined;\n if (nil) {\n opts = { nillable: true };\n }\n return this.textInputTemplate(parameter, schema, 'text', opts);\n }\n\n /**\n * This situation makes not sense as there's no mechanism to describe how to \n * put a file into a path, query, or headers.\n * @returns The template for the file shape.\n */\n fileShapeTemplate(): TemplateResult | string {\n return '';\n }\n\n /**\n * For now we do not support union shapes. There's no way to learn how to serialize\n * the Schema shape to a string.\n * @returns The template for the schema shape.\n */\n schemaShapeTemplate(): TemplateResult | string {\n return '';\n }\n\n /**\n * @returns The template for the array shape.\n */\n arrayShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiArrayShape): TemplateResult | string {\n const { items } = schema;\n if (!items) {\n return '';\n }\n const { id } = parameter;\n const label = readLabelValue(parameter, schema);\n const values = (this.readInputValue(parameter, schema, true)) as unknown[];\n const options = { arrayItem: true, };\n const inputs = (values || []).map((value, index) => this.parameterSchemaTemplate(parameter, items, { ...options, value, index }));\n const classes = {\n 'array-form-item': true,\n required: !!parameter.required,\n optional: !parameter.required,\n };\n return html`\n <div class=\"${classMap(classes)}\" data-param-id=\"${id}\" data-param-label=\"${label}\">\n <div class=\"array-title\"><span class=\"label\">${label}</span></div>\n ${inputs}\n ${this.addArrayItemTemplate(id)}\n </div>\n `;\n }\n\n /**\n * @returns The template for the tuple shape.\n */\n tupleShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiTupleShape): TemplateResult | string {\n const { items } = schema;\n if (!items) {\n return '';\n }\n // TODO: not sure how to process this value...\n return '';\n }\n\n /**\n * @returns The template for the Any shape.\n */\n anyShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiAnyShape): TemplateResult | string {\n return this.textInputTemplate(parameter, schema, 'text');\n }\n\n /**\n * @param id The id of the parameter to add the value to.\n * @returns The template for the adding an array item button\n */\n addArrayItemTemplate(id: string): TemplateResult | string {\n return html`\n <ui-button type=\"tonal\" data-id=\"${id}\" @click=\"${this.addArrayValueHandler}\">Add new value</ui-button>\n `;\n }\n\n /**\n * Handler for a custom parameter input change.\n */\n protected customParamChangeHandler(e: Event): void {\n const input = e.target as Input;\n const { value, name, dataset } = input;\n const { domainId } = dataset;\n if (!domainId || !['paramName', 'paramValue'].includes(name || '')) {\n return;\n }\n if (name === 'paramName') {\n const param = this.parametersValue.find(item => item.paramId === domainId);\n if (!param) {\n return;\n }\n param.parameter.name = value;\n } else {\n InputCache.set(this.target as HTMLElement, domainId, value, this.globalCache);\n }\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n /**\n * @param param The parameter to render\n * @returns The template for a custom parameter\n */\n protected customParamTemplate(param: OperationParameter): TemplateResult {\n const value = InputCache.get(this.target as HTMLElement, param.paramId, this.globalCache) as string;\n const classes = {\n 'form-item': true,\n 'custom-item': true,\n };\n let nameLabel;\n let nameTitle;\n let valueLabel;\n let valueTitle;\n if (param.binding === 'query') {\n nameLabel = 'Query parameter'\n nameTitle = 'The name of this query parameter';\n valueLabel = 'Parameter value';\n valueTitle = 'The value of this query parameter';\n } else if (param.binding === 'header') {\n nameLabel = 'Header name'\n nameTitle = 'The name of this header';\n valueLabel = 'Header value';\n valueTitle = 'The value of this header';\n } else {\n nameLabel = 'Parameter name'\n nameTitle = 'The name of the parameter';\n valueLabel = 'Parameter value';\n valueTitle = 'The value of the parameter';\n }\n return html`\n <div class=\"${classMap(classes)}\">\n <ui-text-field \n data-domain-id=\"${param.paramId}\"\n data-binding=\"${param.binding}\"\n class=\"form-input custom-name\"\n .value=\"${param.parameter.name || ''}\"\n title=\"${nameTitle}\"\n name=\"paramName\"\n @change=\"${this.customParamChangeHandler}\"\n noFloating\n label=\"${nameLabel}\"\n ></ui-text-field>\n <ui-text-field \n data-domain-id=\"${param.paramId}\"\n data-binding=\"${param.binding}\"\n class=\"form-input custom-value\"\n .value=\"${value}\"\n title=\"${valueTitle}\"\n name=\"paramValue\"\n @change=\"${this.customParamChangeHandler}\"\n noFloating\n label=\"${valueLabel}\"\n ></ui-text-field>\n ${this.deleteParamTemplate(param.paramId)}\n </div>\n `;\n }\n}\n"]}
@@ -7,8 +7,6 @@
7
7
  * a tree structure with indentation
8
8
  */
9
9
  export class EndpointsTree {
10
- result;
11
- indents;
12
10
  constructor() {
13
11
  this.result = [];
14
12
  this.indents = {};
@@ -1 +1 @@
1
- {"version":3,"file":"EndpointsTree.js","sourceRoot":"","sources":["../../../../src/amf/lib/navigation-layout/EndpointsTree.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable no-continue */\n/* eslint-disable no-plusplus */\n/* eslint-disable class-methods-use-this */\n\nimport { ApiEndpointsTreeItem, ApiEndPointListItem } from \"../../types.js\";\n\nexport interface CommonRootInfo {\n index: number;\n item: ApiEndpointsTreeItem;\n common: string;\n}\n\n/**\n * A class that transforms the list of endpoints and methods into\n * a tree structure with indentation\n */\nexport class EndpointsTree {\n result: ApiEndpointsTreeItem[];\n\n indents: Record<string, number>;\n\n constructor() {\n this.result = [];\n this.indents = {};\n }\n\n /**\n * @param list Sorted list of endpoints.\n */\n create(list: ApiEndPointListItem[]): ApiEndpointsTreeItem[] {\n if (!Array.isArray(list) || !list.length) {\n return [];\n }\n const { result, indents } = this;\n let prev: ApiEndpointsTreeItem | undefined;\n for (let i = 0, len = list.length; i < len; i++) {\n const item = ({ ...list[i], indent: 0, label: '' }) as ApiEndpointsTreeItem;\n const { path } = item;\n const parts = path.split('/');\n const hasParts = parts.length > 1 && !(parts.length === 2 && !parts[0]);\n if (i === 0) {\n if (hasParts) {\n const parent: ApiEndpointsTreeItem = {\n indent: 0,\n path: parts.slice(0, parts.length - 1).join('/'),\n label: undefined,\n operations: [],\n hasChildren: true,\n };\n parent.label = parent.path;\n prev = parent;\n indents[parent.path] = item.indent;\n result.push(parent);\n } else {\n prev = item;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item));\n continue;\n }\n }\n if (!prev) {\n continue;\n }\n // this is similar to the next block but is faster when the previous item is parent.\n if (path.startsWith(prev.path || '')) {\n item.indent = prev.indent + 1;\n prev.hasChildren = true;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item, prev.path));\n prev = item;\n continue;\n }\n const upPath = this.findParentEndpoint(parts);\n if (upPath) {\n item.indent = indents[upPath] + 1;\n const parent = result.find((p) => p.path === upPath) as ApiEndpointsTreeItem;\n parent.hasChildren = true;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item, upPath));\n } else {\n if (hasParts) {\n const info = this.findCommonRootInfo(parts);\n if (info) {\n // this is an abstract item, it's not actually an endpoint\n const parent: ApiEndpointsTreeItem = {\n indent: info.item.indent,\n path: info.common,\n label: info.common,\n operations: [],\n hasChildren: true,\n };\n this.postInsertParent(parent);\n indents[parent.path] = parent.indent;\n result.splice(info.index, 0, parent);\n item.indent = parent.indent + 1;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item, parent.path));\n continue;\n }\n }\n item.indent = 0;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item));\n }\n prev = item;\n }\n return result;\n }\n\n /**\n * @param parts Path parts of the currently evaluated endpoint\n */\n findParentEndpoint(parts: string[]): string | undefined {\n const { indents } = this;\n const list = Array.from(parts);\n const compare = Object.keys(indents).reverse();\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const path = list.join('/');\n if (!path) {\n break;\n }\n const upPath = compare.find((candidate) => path.startsWith(candidate));\n if (upPath) {\n return upPath;\n }\n list.pop();\n if (!list.length) {\n break;\n }\n }\n return undefined;\n }\n\n /**\n * @param {string[]} parts Path parts of the currently evaluated endpoint\n */\n findCommonRootInfo(parts: string[]): CommonRootInfo|undefined {\n const { result } = this;\n const list = Array.from(parts);\n // eslint-disable-next-line no-constant-condition\n while (true) {\n list.pop();\n if (!list.length) {\n break;\n }\n const path = list.join('/');\n if (!path) {\n break;\n }\n const index = result.findIndex((candidate) => candidate.path.startsWith(path));\n if (index !== -1) {\n return {\n index,\n item: result[index],\n common: path,\n };\n }\n }\n return undefined;\n }\n\n prepareLabel(item: ApiEndpointsTreeItem, prevPath?: string): ApiEndpointsTreeItem {\n const { name, path, indent } = item;\n item.label = path;\n if (name) {\n item.label = name;\n } else if (indent > 0 && prevPath) {\n let label = item.label.replace(prevPath, '');\n if (label.startsWith('-')) {\n label = label.substring(1);\n }\n item.label = label\n item.hasShortPath = true;\n if (!item.label.startsWith('/')) {\n item.label = `/${item.label}`;\n }\n }\n return item;\n }\n\n /**\n * Updates paths and indentation of children after inserting a new (abstract) parent.\n */\n postInsertParent(parent: ApiEndpointsTreeItem): void {\n const { result } = this;\n result.forEach((item) => {\n const { path } = item;\n if (path.startsWith(parent.path)) {\n item.indent += 1;\n item.label = (item.label || '').replace(parent.path, '');\n }\n });\n }\n}\n"]}
1
+ {"version":3,"file":"EndpointsTree.js","sourceRoot":"","sources":["../../../../src/amf/lib/navigation-layout/EndpointsTree.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable no-continue */\n/* eslint-disable no-plusplus */\n/* eslint-disable class-methods-use-this */\n\nimport { ApiEndpointsTreeItem, ApiEndPointListItem } from \"../../types.js\";\n\nexport interface CommonRootInfo {\n index: number;\n item: ApiEndpointsTreeItem;\n common: string;\n}\n\n/**\n * A class that transforms the list of endpoints and methods into\n * a tree structure with indentation\n */\nexport class EndpointsTree {\n result: ApiEndpointsTreeItem[];\n\n indents: Record<string, number>;\n\n constructor() {\n this.result = [];\n this.indents = {};\n }\n\n /**\n * @param list Sorted list of endpoints.\n */\n create(list: ApiEndPointListItem[]): ApiEndpointsTreeItem[] {\n if (!Array.isArray(list) || !list.length) {\n return [];\n }\n const { result, indents } = this;\n let prev: ApiEndpointsTreeItem | undefined;\n for (let i = 0, len = list.length; i < len; i++) {\n const item = ({ ...list[i], indent: 0, label: '' }) as ApiEndpointsTreeItem;\n const { path } = item;\n const parts = path.split('/');\n const hasParts = parts.length > 1 && !(parts.length === 2 && !parts[0]);\n if (i === 0) {\n if (hasParts) {\n const parent: ApiEndpointsTreeItem = {\n indent: 0,\n path: parts.slice(0, parts.length - 1).join('/'),\n label: undefined,\n operations: [],\n hasChildren: true,\n };\n parent.label = parent.path;\n prev = parent;\n indents[parent.path] = item.indent;\n result.push(parent);\n } else {\n prev = item;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item));\n continue;\n }\n }\n if (!prev) {\n continue;\n }\n // this is similar to the next block but is faster when the previous item is parent.\n if (path.startsWith(prev.path || '')) {\n item.indent = prev.indent + 1;\n prev.hasChildren = true;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item, prev.path));\n prev = item;\n continue;\n }\n const upPath = this.findParentEndpoint(parts);\n if (upPath) {\n item.indent = indents[upPath] + 1;\n const parent = result.find((p) => p.path === upPath) as ApiEndpointsTreeItem;\n parent.hasChildren = true;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item, upPath));\n } else {\n if (hasParts) {\n const info = this.findCommonRootInfo(parts);\n if (info) {\n // this is an abstract item, it's not actually an endpoint\n const parent: ApiEndpointsTreeItem = {\n indent: info.item.indent,\n path: info.common,\n label: info.common,\n operations: [],\n hasChildren: true,\n };\n this.postInsertParent(parent);\n indents[parent.path] = parent.indent;\n result.splice(info.index, 0, parent);\n item.indent = parent.indent + 1;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item, parent.path));\n continue;\n }\n }\n item.indent = 0;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item));\n }\n prev = item;\n }\n return result;\n }\n\n /**\n * @param parts Path parts of the currently evaluated endpoint\n */\n findParentEndpoint(parts: string[]): string | undefined {\n const { indents } = this;\n const list = Array.from(parts);\n const compare = Object.keys(indents).reverse();\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const path = list.join('/');\n if (!path) {\n break;\n }\n const upPath = compare.find((candidate) => path.startsWith(candidate));\n if (upPath) {\n return upPath;\n }\n list.pop();\n if (!list.length) {\n break;\n }\n }\n return undefined;\n }\n\n /**\n * @param {string[]} parts Path parts of the currently evaluated endpoint\n */\n findCommonRootInfo(parts: string[]): CommonRootInfo|undefined {\n const { result } = this;\n const list = Array.from(parts);\n // eslint-disable-next-line no-constant-condition\n while (true) {\n list.pop();\n if (!list.length) {\n break;\n }\n const path = list.join('/');\n if (!path) {\n break;\n }\n const index = result.findIndex((candidate) => candidate.path.startsWith(path));\n if (index !== -1) {\n return {\n index,\n item: result[index],\n common: path,\n };\n }\n }\n return undefined;\n }\n\n prepareLabel(item: ApiEndpointsTreeItem, prevPath?: string): ApiEndpointsTreeItem {\n const { name, path, indent } = item;\n item.label = path;\n if (name) {\n item.label = name;\n } else if (indent > 0 && prevPath) {\n let label = item.label.replace(prevPath, '');\n if (label.startsWith('-')) {\n label = label.substring(1);\n }\n item.label = label\n item.hasShortPath = true;\n if (!item.label.startsWith('/')) {\n item.label = `/${item.label}`;\n }\n }\n return item;\n }\n\n /**\n * Updates paths and indentation of children after inserting a new (abstract) parent.\n */\n postInsertParent(parent: ApiEndpointsTreeItem): void {\n const { result } = this;\n result.forEach((item) => {\n const { path } = item;\n if (path.startsWith(parent.path)) {\n item.indent += 1;\n item.label = (item.label || '').replace(parent.path, '');\n }\n });\n }\n}\n"]}
@@ -7,8 +7,6 @@
7
7
  * This is consistent with the legacy API navigation element sorting.
8
8
  */
9
9
  export class NaturalTree {
10
- result;
11
- basePaths;
12
10
  constructor() {
13
11
  this.result = [];
14
12
  this.basePaths = [];
@@ -1 +1 @@
1
- {"version":3,"file":"NaturalTree.js","sourceRoot":"","sources":["../../../../src/amf/lib/navigation-layout/NaturalTree.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable class-methods-use-this */\n/* eslint-disable no-plusplus */\n\nimport { ApiEndpointsTreeItem, ApiEndPointWithOperationsListItem } from \"../../types.js\";\n\n/**\n * A class that transforms the list of endpoints and methods into\n * a \"natural\" tree structure with indentation.\n * This is consistent with the legacy API navigation element sorting.\n */\nexport class NaturalTree {\n result: ApiEndpointsTreeItem[];\n\n basePaths: string[];\n\n constructor() {\n this.result = [];\n this.basePaths = [];\n }\n\n /**\n * @param list The list of endpoints as they appear in the API.\n */\n create(list: ApiEndPointWithOperationsListItem[]): ApiEndpointsTreeItem[] {\n list.forEach((item) => this.appendEndpointItem(item));\n return this.result;\n }\n\n appendEndpointItem(item: ApiEndPointWithOperationsListItem): void {\n const { path, name, id, operations, } = item;\n const result: ApiEndpointsTreeItem = ({\n path,\n label: name,\n name,\n id,\n indent: 0,\n operations,\n hasChildren: false,\n hasShortPath: false,\n });\n\n let tmpPath = path;\n if (tmpPath[0] === '/') {\n tmpPath = tmpPath.substring(1);\n }\n const parts = tmpPath.split('/');\n let indent = 0;\n this.basePaths.push(path);\n\n if (parts.length > 1 /* && !this.renderFullPaths */) {\n const lowerParts = parts.slice(0, parts.length - 1);\n if (lowerParts.length) {\n for (let i = lowerParts.length - 1; i >= 0; i--) {\n const currentPath = `/${lowerParts.slice(0, i + 1).join('/')}`;\n const previousBasePathItem = this.basePaths[this.basePaths.length - 2];\n if (previousBasePathItem && (previousBasePathItem === currentPath || previousBasePathItem.startsWith(`${currentPath}/`))) {\n indent++;\n }\n }\n }\n }\n if (!result.label) {\n if (indent > 0) {\n try {\n result.label = this.computePathName(path, parts, indent);\n } catch (_) {\n result.label = path;\n }\n } else {\n result.label = path;\n }\n }\n result.indent = indent;\n this.result.push(result);\n }\n\n /**\n * Computes label for an endpoint when name is missing and the endpoint\n * is indented, hence name should be truncated.\n * @param currentPath Endpoint's path\n * @param parts Path parts\n * @param indent Endpoint indentation\n */\n computePathName(currentPath: string, parts: string[], indent: number): string {\n const { basePaths } = this;\n let path = '';\n \n const latestBasePath = basePaths[basePaths.length - 1];\n for (let i = 0, len = parts.length - 1; i < len; i++) {\n path += `/${parts[i]}`;\n if (!latestBasePath || latestBasePath.indexOf(`${path}/`) !== -1) {\n indent--;\n }\n if (indent === 0) {\n break;\n }\n }\n return currentPath.replace(path, '');\n }\n}\n"]}
1
+ {"version":3,"file":"NaturalTree.js","sourceRoot":"","sources":["../../../../src/amf/lib/navigation-layout/NaturalTree.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable class-methods-use-this */\n/* eslint-disable no-plusplus */\n\nimport { ApiEndpointsTreeItem, ApiEndPointWithOperationsListItem } from \"../../types.js\";\n\n/**\n * A class that transforms the list of endpoints and methods into\n * a \"natural\" tree structure with indentation.\n * This is consistent with the legacy API navigation element sorting.\n */\nexport class NaturalTree {\n result: ApiEndpointsTreeItem[];\n\n basePaths: string[];\n\n constructor() {\n this.result = [];\n this.basePaths = [];\n }\n\n /**\n * @param list The list of endpoints as they appear in the API.\n */\n create(list: ApiEndPointWithOperationsListItem[]): ApiEndpointsTreeItem[] {\n list.forEach((item) => this.appendEndpointItem(item));\n return this.result;\n }\n\n appendEndpointItem(item: ApiEndPointWithOperationsListItem): void {\n const { path, name, id, operations, } = item;\n const result: ApiEndpointsTreeItem = ({\n path,\n label: name,\n name,\n id,\n indent: 0,\n operations,\n hasChildren: false,\n hasShortPath: false,\n });\n\n let tmpPath = path;\n if (tmpPath[0] === '/') {\n tmpPath = tmpPath.substring(1);\n }\n const parts = tmpPath.split('/');\n let indent = 0;\n this.basePaths.push(path);\n\n if (parts.length > 1 /* && !this.renderFullPaths */) {\n const lowerParts = parts.slice(0, parts.length - 1);\n if (lowerParts.length) {\n for (let i = lowerParts.length - 1; i >= 0; i--) {\n const currentPath = `/${lowerParts.slice(0, i + 1).join('/')}`;\n const previousBasePathItem = this.basePaths[this.basePaths.length - 2];\n if (previousBasePathItem && (previousBasePathItem === currentPath || previousBasePathItem.startsWith(`${currentPath}/`))) {\n indent++;\n }\n }\n }\n }\n if (!result.label) {\n if (indent > 0) {\n try {\n result.label = this.computePathName(path, parts, indent);\n } catch (_) {\n result.label = path;\n }\n } else {\n result.label = path;\n }\n }\n result.indent = indent;\n this.result.push(result);\n }\n\n /**\n * Computes label for an endpoint when name is missing and the endpoint\n * is indented, hence name should be truncated.\n * @param currentPath Endpoint's path\n * @param parts Path parts\n * @param indent Endpoint indentation\n */\n computePathName(currentPath: string, parts: string[], indent: number): string {\n const { basePaths } = this;\n let path = '';\n \n const latestBasePath = basePaths[basePaths.length - 1];\n for (let i = 0, len = parts.length - 1; i < len; i++) {\n path += `/${parts[i]}`;\n if (!latestBasePath || latestBasePath.indexOf(`${path}/`) !== -1) {\n indent--;\n }\n if (indent === 0) {\n break;\n }\n }\n return currentPath.replace(path, '');\n }\n}\n"]}
@@ -8,8 +8,6 @@ import { AmfStore } from './AmfStore.js';
8
8
  * with the store (like HTTP or WS).
9
9
  */
10
10
  export class AmfGraphStore {
11
- apis;
12
- target;
13
11
  /**
14
12
  * @param target The event target to dispatch the events on.
15
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AmfGraphStore.js","sourceRoot":"","sources":["../../../src/amf/store/AmfGraphStore.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAkB,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACxB,IAAI,CAAwB;IAE5B,MAAM,CAAc;IAEpB;;OAEG;IACH,YAAY,SAAsB,MAAM;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,CAAC,KAAuC;QAC/C,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,OAAe,EAAE,GAAG,IAAW;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;SAC/C;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAa,CAAC;QAC/C,MAAM,QAAQ,GAAG,OAAyB,CAAC;QAC3C,IAAI,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,UAAU,EAAE;YAC5C,MAAM,IAAI,KAAK,CAAC,eAAe,OAAO,sCAAsC,CAAC,CAAC;SAC/E;QACD,OAAQ,QAAQ,CAAC,QAAQ,CAAsC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3E,CAAC;CACF","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AmfDefinitions, uuidV4 } from '@api-client/core/build/browser.js';\nimport { AmfStore } from './AmfStore.js';\n\n/**\n * The AMF graph store that hosts multiple instances of the AMF graph model.\n * \n * Note, all methods are asynchronous so this class can be extended to support async communication\n * with the store (like HTTP or WS).\n */\nexport class AmfGraphStore {\n apis: Map<string, AmfStore>;\n\n target: EventTarget;\n\n /**\n * @param target The event target to dispatch the events on.\n */\n constructor(target: EventTarget = window) {\n this.apis = new Map();\n this.target = target;\n }\n\n /**\n * Creates a new store object.\n * @param graph The graph model to use to initialize the store.\n * @returns The store id to be used to reference when querying the store.\n */\n async add(graph: AmfDefinitions.IAmfDomainElement): Promise<string> {\n const id = uuidV4();\n const instance = new AmfStore(this.target, graph);\n this.apis.set(id, instance);\n return id;\n }\n\n /**\n * Removes all APIs from the store.\n */\n async clear(): Promise<void> {\n this.apis.clear();\n }\n\n /**\n * Removes a specific API from the store.\n * @param id The graph store identifier generated when calling `add()`.\n */\n async delete(id: string): Promise<void> {\n this.apis.delete(id);\n }\n\n /**\n * Proxies a read command to the store.\n * @param id The graph store identifier generated when calling `add()`.\n * @param command The command (method name) to call on the store.\n * @param args The list of command arguments.\n */\n async read(id: string, command: string, ...args: any[]): Promise<any> {\n if (!this.apis.has(id)) {\n throw new Error(`No graph defined for ${id}`);\n }\n const instance = this.apis.get(id) as AmfStore;\n const typedCmd = command as keyof AmfStore;\n if (typeof instance[typedCmd] !== 'function') {\n throw new Error(`The command ${command} is not callable on the graph store.`);\n }\n return (instance[typedCmd] as (...opts: any[]) => Promise<any>)(...args);\n }\n}\n"]}
1
+ {"version":3,"file":"AmfGraphStore.js","sourceRoot":"","sources":["../../../src/amf/store/AmfGraphStore.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAkB,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IAKxB;;OAEG;IACH,YAAY,SAAsB,MAAM;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,CAAC,KAAuC;QAC/C,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,OAAe,EAAE,GAAG,IAAW;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;SAC/C;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAa,CAAC;QAC/C,MAAM,QAAQ,GAAG,OAAyB,CAAC;QAC3C,IAAI,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,UAAU,EAAE;YAC5C,MAAM,IAAI,KAAK,CAAC,eAAe,OAAO,sCAAsC,CAAC,CAAC;SAC/E;QACD,OAAQ,QAAQ,CAAC,QAAQ,CAAsC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3E,CAAC;CACF","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AmfDefinitions, uuidV4 } from '@api-client/core/build/browser.js';\nimport { AmfStore } from './AmfStore.js';\n\n/**\n * The AMF graph store that hosts multiple instances of the AMF graph model.\n * \n * Note, all methods are asynchronous so this class can be extended to support async communication\n * with the store (like HTTP or WS).\n */\nexport class AmfGraphStore {\n apis: Map<string, AmfStore>;\n\n target: EventTarget;\n\n /**\n * @param target The event target to dispatch the events on.\n */\n constructor(target: EventTarget = window) {\n this.apis = new Map();\n this.target = target;\n }\n\n /**\n * Creates a new store object.\n * @param graph The graph model to use to initialize the store.\n * @returns The store id to be used to reference when querying the store.\n */\n async add(graph: AmfDefinitions.IAmfDomainElement): Promise<string> {\n const id = uuidV4();\n const instance = new AmfStore(this.target, graph);\n this.apis.set(id, instance);\n return id;\n }\n\n /**\n * Removes all APIs from the store.\n */\n async clear(): Promise<void> {\n this.apis.clear();\n }\n\n /**\n * Removes a specific API from the store.\n * @param id The graph store identifier generated when calling `add()`.\n */\n async delete(id: string): Promise<void> {\n this.apis.delete(id);\n }\n\n /**\n * Proxies a read command to the store.\n * @param id The graph store identifier generated when calling `add()`.\n * @param command The command (method name) to call on the store.\n * @param args The list of command arguments.\n */\n async read(id: string, command: string, ...args: any[]): Promise<any> {\n if (!this.apis.has(id)) {\n throw new Error(`No graph defined for ${id}`);\n }\n const instance = this.apis.get(id) as AmfStore;\n const typedCmd = command as keyof AmfStore;\n if (typeof instance[typedCmd] !== 'function') {\n throw new Error(`The command ${command} is not callable on the graph store.`);\n }\n return (instance[typedCmd] as (...opts: any[]) => Promise<any>)(...args);\n }\n}\n"]}
@@ -7,13 +7,6 @@ import { AmfSerializer } from '@api-client/core/build/browser.js';
7
7
  * An abstract base class for the store implementation that works with API Components.
8
8
  */
9
9
  export class AmfStore {
10
- /**
11
- * For future use.
12
- * Indicates that the store is read only.
13
- */
14
- readonly;
15
- target;
16
- serializer;
17
10
  /**
18
11
  * @param target The event target to dispatch the events on.
19
12
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AmfStore.js","sourceRoot":"","sources":["../../../src/amf/store/AmfStore.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable default-param-last */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable no-unused-vars */\n/* eslint-disable class-methods-use-this */\nimport { AmfDefinitions, AmfSerializer, ApiDefinitions, AmfShapes, ServersQueryOptions } from '@api-client/core/build/browser.js';\nimport { DocumentMeta, ApiEndPointWithOperationsListItem, ApiSecuritySchemeListItem, ApiNodeShapeListItem } from '../types.js';\n\n/**\n * An abstract base class for the store implementation that works with API Components.\n */\nexport class AmfStore {\n /** \n * For future use.\n * Indicates that the store is read only.\n */\n readonly: boolean;\n\n target: EventTarget;\n\n serializer: AmfSerializer;\n\n /**\n * @param target The event target to dispatch the events on.\n */\n constructor(target: EventTarget = window, graph?: AmfDefinitions.IAmfDocument) {\n this.readonly = true;\n this.target = target;\n let amf = graph;\n if (Array.isArray(graph)) {\n [amf] = graph;\n }\n /** \n * The API serializer\n */\n this.serializer = new AmfSerializer(amf);\n }\n\n /**\n * @returns The list of domain types for the currently loaded document.\n */\n getDocumentTypes(): string[] {\n throw new Error('Not implemented');\n }\n\n /**\n * Gathers information about the loaded document.\n * This is mainly used by the `api-documentation` element to decide which documentation to render.\n */\n async documentMeta(): Promise<DocumentMeta> {\n throw new Error('Not implemented');\n }\n\n /**\n * @returns API summary for the summary view.\n */\n async apiSummary(): Promise<ApiDefinitions.IApiSummary | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * @returns Currently loaded API's protocols\n */\n async apiProtocols(): Promise<string[] | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * @returns Currently loaded API's version\n */\n async apiVersion(): Promise<string | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads an endpoint by its id.\n * @param id The domain id of the endpoint.\n */\n async getEndpoint(id: string): Promise<ApiDefinitions.IApiEndPoint | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads an endpoint by its path.\n * @param path The path value of the endpoint or channel name.\n */\n async getEndpointByPath(path: string): Promise<ApiDefinitions.IApiEndPoint | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Lists all endpoints with operations included into the result.\n */\n async listEndpointsWithOperations(): Promise<ApiEndPointWithOperationsListItem[]> {\n throw new Error('Not implemented');\n }\n\n /**\n * Queries for the list of servers for method, if defined, or endpoint, if defined, or root level \n * @param query Server query options\n * @returns The list of servers for given query.\n */\n async queryServers(query?: ServersQueryOptions): Promise<ApiDefinitions.IApiServer[]> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads the operation model.\n * @param operationId The domain id of the operation to read.\n * @param endpointId Optional endpoint id. When not set it searches through all endpoints.\n */\n async getOperation(operationId: string, endpointId?: string): Promise<ApiDefinitions.IApiOperation | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Finds an endpoint that has the operation.\n * @param id Method name or the domain id of the operation to find\n */\n async getOperationParent(id: string): Promise<ApiDefinitions.IApiEndPoint | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Lists the documentation definitions for the API.\n */\n async listDocumentations(): Promise<ApiDefinitions.IApiDocumentation[] | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads the documentation object from the store.\n * @param id The domain id of the documentation object\n * @returns The read documentation.\n */\n async getDocumentation(id: string): Promise<ApiDefinitions.IApiDocumentation | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads the SecurityScheme object from the graph.\n * @param id The domain id of the SecurityScheme\n */\n async getSecurityScheme(id: string): Promise<ApiDefinitions.IApiSecurityScheme | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads the SecurityRequirement object from the graph.\n * @param id The domain id of the SecurityRequirement\n */\n async getSecurityRequirement(id: string): Promise<ApiDefinitions.IApiSecurityRequirement | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Lists the security definitions for the API.\n */\n async listSecurity(): Promise<ApiSecuritySchemeListItem[]> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads the Request object from the graph.\n * @param id The domain id of the Request\n */\n async getRequest(id: string): Promise<ApiDefinitions.IApiRequest | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads the response data from the graph.\n * @param id The domain id of the response.\n */\n async getResponse(id: string): Promise<ApiDefinitions.IApiResponse | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads Payload data from the graph\n * @param id The domain id of the payload\n */\n async getPayload(id: string): Promise<ApiDefinitions.IApiPayload | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Lists the type (schema) definitions for the API.\n */\n async listTypes(): Promise<ApiNodeShapeListItem[]> {\n throw new Error(`Not implemented`);\n }\n\n /**\n * @param id The domain id of the API type (schema).\n */\n async getType(id: string): Promise<AmfShapes.IShapeUnion | undefined> {\n throw new Error('Not implemented');\n }\n}\n"]}
1
+ {"version":3,"file":"AmfStore.js","sourceRoot":"","sources":["../../../src/amf/store/AmfStore.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable default-param-last */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable no-unused-vars */\n/* eslint-disable class-methods-use-this */\nimport { AmfDefinitions, AmfSerializer, ApiDefinitions, AmfShapes, ServersQueryOptions } from '@api-client/core/build/browser.js';\nimport { DocumentMeta, ApiEndPointWithOperationsListItem, ApiSecuritySchemeListItem, ApiNodeShapeListItem } from '../types.js';\n\n/**\n * An abstract base class for the store implementation that works with API Components.\n */\nexport class AmfStore {\n /** \n * For future use.\n * Indicates that the store is read only.\n */\n readonly: boolean;\n\n target: EventTarget;\n\n serializer: AmfSerializer;\n\n /**\n * @param target The event target to dispatch the events on.\n */\n constructor(target: EventTarget = window, graph?: AmfDefinitions.IAmfDocument) {\n this.readonly = true;\n this.target = target;\n let amf = graph;\n if (Array.isArray(graph)) {\n [amf] = graph;\n }\n /** \n * The API serializer\n */\n this.serializer = new AmfSerializer(amf);\n }\n\n /**\n * @returns The list of domain types for the currently loaded document.\n */\n getDocumentTypes(): string[] {\n throw new Error('Not implemented');\n }\n\n /**\n * Gathers information about the loaded document.\n * This is mainly used by the `api-documentation` element to decide which documentation to render.\n */\n async documentMeta(): Promise<DocumentMeta> {\n throw new Error('Not implemented');\n }\n\n /**\n * @returns API summary for the summary view.\n */\n async apiSummary(): Promise<ApiDefinitions.IApiSummary | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * @returns Currently loaded API's protocols\n */\n async apiProtocols(): Promise<string[] | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * @returns Currently loaded API's version\n */\n async apiVersion(): Promise<string | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads an endpoint by its id.\n * @param id The domain id of the endpoint.\n */\n async getEndpoint(id: string): Promise<ApiDefinitions.IApiEndPoint | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads an endpoint by its path.\n * @param path The path value of the endpoint or channel name.\n */\n async getEndpointByPath(path: string): Promise<ApiDefinitions.IApiEndPoint | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Lists all endpoints with operations included into the result.\n */\n async listEndpointsWithOperations(): Promise<ApiEndPointWithOperationsListItem[]> {\n throw new Error('Not implemented');\n }\n\n /**\n * Queries for the list of servers for method, if defined, or endpoint, if defined, or root level \n * @param query Server query options\n * @returns The list of servers for given query.\n */\n async queryServers(query?: ServersQueryOptions): Promise<ApiDefinitions.IApiServer[]> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads the operation model.\n * @param operationId The domain id of the operation to read.\n * @param endpointId Optional endpoint id. When not set it searches through all endpoints.\n */\n async getOperation(operationId: string, endpointId?: string): Promise<ApiDefinitions.IApiOperation | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Finds an endpoint that has the operation.\n * @param id Method name or the domain id of the operation to find\n */\n async getOperationParent(id: string): Promise<ApiDefinitions.IApiEndPoint | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Lists the documentation definitions for the API.\n */\n async listDocumentations(): Promise<ApiDefinitions.IApiDocumentation[] | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads the documentation object from the store.\n * @param id The domain id of the documentation object\n * @returns The read documentation.\n */\n async getDocumentation(id: string): Promise<ApiDefinitions.IApiDocumentation | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads the SecurityScheme object from the graph.\n * @param id The domain id of the SecurityScheme\n */\n async getSecurityScheme(id: string): Promise<ApiDefinitions.IApiSecurityScheme | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads the SecurityRequirement object from the graph.\n * @param id The domain id of the SecurityRequirement\n */\n async getSecurityRequirement(id: string): Promise<ApiDefinitions.IApiSecurityRequirement | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Lists the security definitions for the API.\n */\n async listSecurity(): Promise<ApiSecuritySchemeListItem[]> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads the Request object from the graph.\n * @param id The domain id of the Request\n */\n async getRequest(id: string): Promise<ApiDefinitions.IApiRequest | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads the response data from the graph.\n * @param id The domain id of the response.\n */\n async getResponse(id: string): Promise<ApiDefinitions.IApiResponse | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Reads Payload data from the graph\n * @param id The domain id of the payload\n */\n async getPayload(id: string): Promise<ApiDefinitions.IApiPayload | undefined> {\n throw new Error('Not implemented');\n }\n\n /**\n * Lists the type (schema) definitions for the API.\n */\n async listTypes(): Promise<ApiNodeShapeListItem[]> {\n throw new Error(`Not implemented`);\n }\n\n /**\n * @param id The domain id of the API type (schema).\n */\n async getType(id: string): Promise<AmfShapes.IShapeUnion | undefined> {\n throw new Error('Not implemented');\n }\n}\n"]}
@@ -3,7 +3,10 @@ import { EventTypes } from "../../events/EventTypes.js";
3
3
  import { StoreBroadcast } from "../../http-client/store/StoreBroadcast.js";
4
4
  import { PlatformBindings } from "./PlatformBindings.js";
5
5
  export class HttpClientStoreBindings extends PlatformBindings {
6
- urlHistoryChannel = new BroadcastChannel(StoreBroadcast.urlHistory);
6
+ constructor() {
7
+ super(...arguments);
8
+ this.urlHistoryChannel = new BroadcastChannel(StoreBroadcast.urlHistory);
9
+ }
7
10
  async initialize() {
8
11
  const target = document.body;
9
12
  target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.add, this.addUrlHistoryHandler.bind(this));
@@ -1 +1 @@
1
- {"version":3,"file":"HttpClientStoreBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/HttpClientStoreBindings.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport { \n BroadcastCreatedEvent,\n BroadcastEvent,\n ContextDeleteEvent, \n ContextQueryEvent, ContextReadBulkEvent, \n ContextReadEvent, ContextUpdateEvent, \n IRequestUiMeta, \n IUrl\n} from \"@api-client/core/build/browser.js\";\nimport { Events } from \"../../events/Events.js\";\nimport { EventTypes } from \"../../events/EventTypes.js\";\nimport { StoreBroadcast } from \"../../http-client/store/StoreBroadcast.js\";\nimport { PlatformBindings } from \"./PlatformBindings.js\";\nimport { ProjectUi } from \"../../http-client/store/stores/ProjectUi.js\";\nimport { UrlHistory } from \"../../http-client/store/stores/UrlHistory.js\";\nimport { WsHistory } from \"../../http-client/store/stores/WsHistory.js\";\nimport { IRequestUiInsertDetail } from \"../../events/HttpClientEvents.js\";\n\nexport abstract class HttpClientStoreBindings extends PlatformBindings {\n urlHistoryChannel = new BroadcastChannel(StoreBroadcast.urlHistory);\n \n abstract initializeStore(): Promise<void>;\n \n abstract wsHistory: WsHistory;\n \n abstract urlHistory: UrlHistory;\n\n abstract projectUi: ProjectUi;\n \n async initialize(): Promise<void> {\n const target = document.body;\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.add, this.addUrlHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.query, this.queryUrlHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.delete, this.deleteUrlHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.clear, this.clearUrlHistoryHandler.bind(this));\n\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.add, this.addWsHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.query, this.queryWsHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.delete, this.deleteWsHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.clear, this.clearWsHistoryHandler.bind(this));\n\n // Request UI\n window.addEventListener(EventTypes.HttpProject.Ui.delete, this.deleteProjectUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.set, this.setHttpRequestUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.get, this.getHttpRequestUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.getBulk, this.getBulkHttpRequestUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.delete, this.deleteHttpRequestUiHandler.bind(this) as EventListener);\n\n this.urlHistoryChannel.addEventListener('message', this.handleUrlHistoryBroadcast.bind(this));\n }\n\n protected handleUrlHistoryBroadcast(e: MessageEvent): void {\n const event = e.data as BroadcastEvent;\n switch (event.operation) {\n case 'created': this.handleUrlHistoryCreated((event as BroadcastCreatedEvent).data as IUrl); break;\n case 'deleted': this.handleUrlHistoryDeleted(event.key); break;\n case 'cleared': this.handleUrlHistoryCleared(); break;\n default:\n }\n }\n\n protected handleUrlHistoryCreated(entity: IUrl): void {\n Events.HttpClient.Model.UrlHistory.State.add(entity);\n }\n\n protected handleUrlHistoryDeleted(url: string): void {\n Events.HttpClient.Model.UrlHistory.State.delete(url);\n }\n\n protected handleUrlHistoryCleared(): void {\n Events.HttpClient.Model.UrlHistory.State.clear();\n }\n\n protected addUrlHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.urlHistory.add(e.detail.url);\n }\n\n protected queryUrlHistoryHandler(event: Event): void {\n const e = event as ContextQueryEvent<IUrl>;\n e.preventDefault();\n e.detail.result = this.urlHistory.query(e.detail.term);\n }\n\n protected deleteUrlHistoryHandler(event: Event): void {\n const e = event as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.urlHistory.delete(e.detail.key);\n }\n\n protected clearUrlHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.urlHistory.clear();\n }\n\n protected addWsHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.wsHistory.add(e.detail.url);\n }\n\n protected queryWsHistoryHandler(event: Event): void {\n const e = event as ContextQueryEvent<IUrl>;\n e.preventDefault();\n e.detail.result = this.wsHistory.query(e.detail.term);\n }\n\n protected deleteWsHistoryHandler(event: Event): void {\n const e = event as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.wsHistory.delete(e.detail.key);\n }\n\n protected clearWsHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.wsHistory.clear();\n }\n\n protected deleteProjectUiHandler(e: ContextDeleteEvent): void {\n e.preventDefault();\n const { key } = e.detail;\n e.detail.result = this.projectUi.clear(key);\n }\n\n protected setHttpRequestUiHandler(e: ContextUpdateEvent<IRequestUiInsertDetail, IRequestUiMeta>): void {\n e.preventDefault();\n const { item } = e.detail;\n e.detail.result = this.projectUi.set(item.pid, item.id, item.meta);\n }\n\n protected getHttpRequestUiHandler(e: ContextReadEvent<IRequestUiMeta>): void {\n e.preventDefault();\n const { key, parent } = e.detail;\n e.detail.result = this.projectUi.get(parent as string, key);\n }\n\n protected getBulkHttpRequestUiHandler(e: ContextReadBulkEvent<IRequestUiMeta | undefined>): void {\n e.preventDefault();\n const { keys, parent } = e.detail;\n e.detail.result = this.projectUi.getBulk(parent as string, keys);\n }\n\n protected deleteHttpRequestUiHandler(e: ContextDeleteEvent): void {\n e.preventDefault();\n const { key, parent } = e.detail;\n e.detail.result = this.projectUi.delete(parent as string, key);\n }\n}\n"]}
1
+ {"version":3,"file":"HttpClientStoreBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/HttpClientStoreBindings.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport { \n BroadcastCreatedEvent,\n BroadcastEvent,\n ContextDeleteEvent, \n ContextQueryEvent, ContextReadBulkEvent, \n ContextReadEvent, ContextUpdateEvent, \n IRequestUiMeta, \n IUrl\n} from \"@api-client/core/build/browser.js\";\nimport { Events } from \"../../events/Events.js\";\nimport { EventTypes } from \"../../events/EventTypes.js\";\nimport { StoreBroadcast } from \"../../http-client/store/StoreBroadcast.js\";\nimport { PlatformBindings } from \"./PlatformBindings.js\";\nimport { ProjectUi } from \"../../http-client/store/stores/ProjectUi.js\";\nimport { UrlHistory } from \"../../http-client/store/stores/UrlHistory.js\";\nimport { WsHistory } from \"../../http-client/store/stores/WsHistory.js\";\nimport { IRequestUiInsertDetail } from \"../../events/HttpClientEvents.js\";\n\nexport abstract class HttpClientStoreBindings extends PlatformBindings {\n urlHistoryChannel = new BroadcastChannel(StoreBroadcast.urlHistory);\n \n abstract initializeStore(): Promise<void>;\n \n abstract wsHistory: WsHistory;\n \n abstract urlHistory: UrlHistory;\n\n abstract projectUi: ProjectUi;\n \n async initialize(): Promise<void> {\n const target = document.body;\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.add, this.addUrlHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.query, this.queryUrlHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.delete, this.deleteUrlHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.clear, this.clearUrlHistoryHandler.bind(this));\n\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.add, this.addWsHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.query, this.queryWsHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.delete, this.deleteWsHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.clear, this.clearWsHistoryHandler.bind(this));\n\n // Request UI\n window.addEventListener(EventTypes.HttpProject.Ui.delete, this.deleteProjectUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.set, this.setHttpRequestUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.get, this.getHttpRequestUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.getBulk, this.getBulkHttpRequestUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.delete, this.deleteHttpRequestUiHandler.bind(this) as EventListener);\n\n this.urlHistoryChannel.addEventListener('message', this.handleUrlHistoryBroadcast.bind(this));\n }\n\n protected handleUrlHistoryBroadcast(e: MessageEvent): void {\n const event = e.data as BroadcastEvent;\n switch (event.operation) {\n case 'created': this.handleUrlHistoryCreated((event as BroadcastCreatedEvent).data as IUrl); break;\n case 'deleted': this.handleUrlHistoryDeleted(event.key); break;\n case 'cleared': this.handleUrlHistoryCleared(); break;\n default:\n }\n }\n\n protected handleUrlHistoryCreated(entity: IUrl): void {\n Events.HttpClient.Model.UrlHistory.State.add(entity);\n }\n\n protected handleUrlHistoryDeleted(url: string): void {\n Events.HttpClient.Model.UrlHistory.State.delete(url);\n }\n\n protected handleUrlHistoryCleared(): void {\n Events.HttpClient.Model.UrlHistory.State.clear();\n }\n\n protected addUrlHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.urlHistory.add(e.detail.url);\n }\n\n protected queryUrlHistoryHandler(event: Event): void {\n const e = event as ContextQueryEvent<IUrl>;\n e.preventDefault();\n e.detail.result = this.urlHistory.query(e.detail.term);\n }\n\n protected deleteUrlHistoryHandler(event: Event): void {\n const e = event as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.urlHistory.delete(e.detail.key);\n }\n\n protected clearUrlHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.urlHistory.clear();\n }\n\n protected addWsHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.wsHistory.add(e.detail.url);\n }\n\n protected queryWsHistoryHandler(event: Event): void {\n const e = event as ContextQueryEvent<IUrl>;\n e.preventDefault();\n e.detail.result = this.wsHistory.query(e.detail.term);\n }\n\n protected deleteWsHistoryHandler(event: Event): void {\n const e = event as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.wsHistory.delete(e.detail.key);\n }\n\n protected clearWsHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.wsHistory.clear();\n }\n\n protected deleteProjectUiHandler(e: ContextDeleteEvent): void {\n e.preventDefault();\n const { key } = e.detail;\n e.detail.result = this.projectUi.clear(key);\n }\n\n protected setHttpRequestUiHandler(e: ContextUpdateEvent<IRequestUiInsertDetail, IRequestUiMeta>): void {\n e.preventDefault();\n const { item } = e.detail;\n e.detail.result = this.projectUi.set(item.pid, item.id, item.meta);\n }\n\n protected getHttpRequestUiHandler(e: ContextReadEvent<IRequestUiMeta>): void {\n e.preventDefault();\n const { key, parent } = e.detail;\n e.detail.result = this.projectUi.get(parent as string, key);\n }\n\n protected getBulkHttpRequestUiHandler(e: ContextReadBulkEvent<IRequestUiMeta | undefined>): void {\n e.preventDefault();\n const { keys, parent } = e.detail;\n e.detail.result = this.projectUi.getBulk(parent as string, keys);\n }\n\n protected deleteHttpRequestUiHandler(e: ContextDeleteEvent): void {\n e.preventDefault();\n const { key, parent } = e.detail;\n e.detail.result = this.projectUi.delete(parent as string, key);\n }\n}\n"]}
@@ -35,17 +35,13 @@ import { Events } from '../../events/Events.js';
35
35
  * The IO thread extends the `IoThread` class which has the defined the communication logic.
36
36
  */
37
37
  export class PlatformBindings {
38
- /**
39
- * Used with the queue as the identifier of the request.
40
- * USe the `getId()` to read a unique request id.
41
- */
42
- id = 0;
43
- queue = [];
44
- /**
45
- * The application id that initialized this binding.
46
- */
47
- app;
48
38
  constructor(app) {
39
+ /**
40
+ * Used with the queue as the identifier of the request.
41
+ * USe the `getId()` to read a unique request id.
42
+ */
43
+ this.id = 0;
44
+ this.queue = [];
49
45
  this.app = app;
50
46
  }
51
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/PlatformBindings.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { ApiError, IApiError, IApplication } from '@api-client/core/build/browser.js';\nimport { Events } from '../../events/Events.js';\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/**\n * A command sent from the client to a IO thread.\n */\nexport interface IoCommand {\n kind: 'IO#Command',\n id: number;\n fn: string;\n args: any[];\n}\n\n/**\n * An event dispatched from the IO thread to the clients.\n */\nexport interface IoEvent {\n kind: 'IO#Event',\n id: number;\n type: 'error' | 'result'; \n message?: string; \n result?: any;\n}\n\n/**\n * A special kind of an event from the IO thread to the clients that asks to notify the client\n * using the events system.\n */\nexport interface IoNotification {\n kind: 'IO#Notification',\n path: string;\n args: any[];\n}\n\n/**\n * Events queue on the client side.\n * This is used when communication with the IO thread via Promises is impossible and event based.\n * The client wraps the execution into a promise and pushes this schema into the queue.\n * When the event is dispatched by the IO thread it resolves/rejects cached promise.\n */\nexport interface QueueItem {\n id: number;\n resolve: (value: any) => void;\n reject: (reason?: Error) => void;\n // helpful for debugging\n fn: string;\n args: unknown[];\n}\n\n/**\n * A base class for all platform bindings.\n * \n * Platform bindings is the way how the application runs a platform specific logic.\n * \n * For example, it implements how the application stores the state or implements file picker / file saver.\n * Depending on the platform (Electron, web, Chrome, more?) it uses different set of bindings\n * defined in the target application. This creates a framework for the bindings to exist.\n * \n * The IO thread can be any process that is separated from the browser tab context.\n * Can be a WebWorker, ServiceWorker, of an API call to a server.\n * When communication with the binding is not possible via the Promise API\n * this system should be used to communicate with the background page.\n * \n * ```typescript \n * class MyBinding extends ParentBaseBinding {\n * channel: BroadcastChannel;\n * constructor() {\n * super();\n * this.channel = new BroadcastChannel('my-channel');\n * }\n * \n * doStuff(arg: any): Promise<any> {\n * return this.invoke('doStuff', 'own argument', arg);\n * }\n * }\n * ```\n * \n * This assumes that the IO thread has the `doStuff` function implemented.\n * The IO thread extends the `IoThread` class which has the defined the communication logic.\n */\nexport abstract class PlatformBindings {\n /**\n * Used with the queue as the identifier of the request.\n * USe the `getId()` to read a unique request id.\n */\n private id = 0;\n\n protected queue: QueueItem[] = [];\n\n /**\n * The application id that initialized this binding.\n */\n app: IApplication;\n\n constructor(app: IApplication) {\n this.app = app;\n }\n\n /**\n * Initializes the bindings.\n */\n abstract initialize(): Promise<void>;\n\n /**\n * @returns A unique for the current session id.\n */\n protected getId(): number {\n this.id += 1;\n return this.id;\n }\n\n /**\n * This method to be implemented by child classes that uses the events system to communicate with the \n * IO thread. The argument is the prepared command message ready to be sent to the IO thread.\n * Specific implementation of the communication channel is left to the child class.\n * \n * @param cmd The command to send to the IO thread.\n */\n protected sendIoCommand(cmd: IoCommand): void {\n // \n }\n\n /**\n * Invokes a function in the IO thread.\n * \n * @param fn The function name to invoke (or an identifier understood by the IO thread)\n * @param args The function arguments to pass.\n * @returns A promise that should be returned to the client's application logic. \n * The promise is resolved when the IO thread sends an event with the same identifier generated with this call.\n */\n protected invoke(fn: string, ...args: any[]): Promise<any> {\n return new Promise((resolve, reject) => {\n const id = this.getId();\n const item = {\n resolve, reject, id, fn, args,\n };\n this.queue.push(item);\n const cmd: IoCommand = {\n id,\n fn,\n args,\n kind: 'IO#Command',\n };\n this.sendIoCommand(cmd);\n });\n }\n\n /**\n * To be called by the child class when the IO thread send an event.\n * It recognizes the type of the message sent by the IO thread an performs the requested operation.\n * \n * @param message The message sent by the IO thread.\n */\n protected handleIoMessage(message: IoCommand | IoEvent | IoNotification): void {\n if (!message.kind) {\n // eslint-disable-next-line no-console\n console.warn('Invalid message received on the app-config-channel.', message);\n return;\n }\n if (message.kind === 'IO#Command') {\n // message sent by self.\n return;\n }\n if (message.kind === 'IO#Notification') {\n this.notify(message);\n } else if (message.kind === 'IO#Event') {\n this.resolve(message);\n }\n }\n\n /**\n * Resolves a pending promise stored in the `queue`.\n * \n * @param event The IO thread event\n */\n protected resolve(event: IoEvent): void {\n const { id, type, message, result } = event;\n if (typeof id !== 'number') {\n // eslint-disable-next-line no-console\n console.warn(`Unknown event from the IO thread. Id is not a number.`, event);\n return;\n }\n const index = this.queue.findIndex(i => i.id === id);\n if (index < 0) {\n // this might be used by another tab.\n return;\n }\n const info = this.queue[index];\n this.queue.splice(index, 1);\n\n if (type === 'result') {\n info.resolve(result);\n } else if (type === 'error') {\n const apiErr = result as IApiError | undefined;\n if (apiErr && apiErr.code) {\n info.reject(new ApiError(apiErr));\n } else {\n info.reject(new Error(message));\n }\n } else {\n // eslint-disable-next-line no-console\n console.warn(`Unknown event from the IO thread`, event);\n }\n }\n\n /**\n * Notifies this tab about something using the `Events` definition.\n * \n * This expects that the event has the path to the event function, for example `Events.Config.Environment.State.created`.\n * \n * @param event The IO thread event\n */\n protected notify(event: IoNotification): void {\n const { path, args } = event;\n const parts = path.split('.');\n let current = Events as unknown;\n if (parts[0] === 'Events') {\n parts.shift();\n }\n for (const part of parts) {\n // @ts-ignore\n if (!current[part]) {\n // eslint-disable-next-line no-console\n console.warn(`Invalid notification path`, path);\n return\n }\n // @ts-ignore\n current = current[part];\n }\n (current as Function)(...args);\n }\n}\n"]}
1
+ {"version":3,"file":"PlatformBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/PlatformBindings.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { ApiError, IApiError, IApplication } from '@api-client/core/build/browser.js';\nimport { Events } from '../../events/Events.js';\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/**\n * A command sent from the client to a IO thread.\n */\nexport interface IoCommand {\n kind: 'IO#Command',\n id: number;\n fn: string;\n args: any[];\n}\n\n/**\n * An event dispatched from the IO thread to the clients.\n */\nexport interface IoEvent {\n kind: 'IO#Event',\n id: number;\n type: 'error' | 'result'; \n message?: string; \n result?: any;\n}\n\n/**\n * A special kind of an event from the IO thread to the clients that asks to notify the client\n * using the events system.\n */\nexport interface IoNotification {\n kind: 'IO#Notification',\n path: string;\n args: any[];\n}\n\n/**\n * Events queue on the client side.\n * This is used when communication with the IO thread via Promises is impossible and event based.\n * The client wraps the execution into a promise and pushes this schema into the queue.\n * When the event is dispatched by the IO thread it resolves/rejects cached promise.\n */\nexport interface QueueItem {\n id: number;\n resolve: (value: any) => void;\n reject: (reason?: Error) => void;\n // helpful for debugging\n fn: string;\n args: unknown[];\n}\n\n/**\n * A base class for all platform bindings.\n * \n * Platform bindings is the way how the application runs a platform specific logic.\n * \n * For example, it implements how the application stores the state or implements file picker / file saver.\n * Depending on the platform (Electron, web, Chrome, more?) it uses different set of bindings\n * defined in the target application. This creates a framework for the bindings to exist.\n * \n * The IO thread can be any process that is separated from the browser tab context.\n * Can be a WebWorker, ServiceWorker, of an API call to a server.\n * When communication with the binding is not possible via the Promise API\n * this system should be used to communicate with the background page.\n * \n * ```typescript \n * class MyBinding extends ParentBaseBinding {\n * channel: BroadcastChannel;\n * constructor() {\n * super();\n * this.channel = new BroadcastChannel('my-channel');\n * }\n * \n * doStuff(arg: any): Promise<any> {\n * return this.invoke('doStuff', 'own argument', arg);\n * }\n * }\n * ```\n * \n * This assumes that the IO thread has the `doStuff` function implemented.\n * The IO thread extends the `IoThread` class which has the defined the communication logic.\n */\nexport abstract class PlatformBindings {\n /**\n * Used with the queue as the identifier of the request.\n * USe the `getId()` to read a unique request id.\n */\n private id = 0;\n\n protected queue: QueueItem[] = [];\n\n /**\n * The application id that initialized this binding.\n */\n app: IApplication;\n\n constructor(app: IApplication) {\n this.app = app;\n }\n\n /**\n * Initializes the bindings.\n */\n abstract initialize(): Promise<void>;\n\n /**\n * @returns A unique for the current session id.\n */\n protected getId(): number {\n this.id += 1;\n return this.id;\n }\n\n /**\n * This method to be implemented by child classes that uses the events system to communicate with the \n * IO thread. The argument is the prepared command message ready to be sent to the IO thread.\n * Specific implementation of the communication channel is left to the child class.\n * \n * @param cmd The command to send to the IO thread.\n */\n protected sendIoCommand(cmd: IoCommand): void {\n // \n }\n\n /**\n * Invokes a function in the IO thread.\n * \n * @param fn The function name to invoke (or an identifier understood by the IO thread)\n * @param args The function arguments to pass.\n * @returns A promise that should be returned to the client's application logic. \n * The promise is resolved when the IO thread sends an event with the same identifier generated with this call.\n */\n protected invoke(fn: string, ...args: any[]): Promise<any> {\n return new Promise((resolve, reject) => {\n const id = this.getId();\n const item = {\n resolve, reject, id, fn, args,\n };\n this.queue.push(item);\n const cmd: IoCommand = {\n id,\n fn,\n args,\n kind: 'IO#Command',\n };\n this.sendIoCommand(cmd);\n });\n }\n\n /**\n * To be called by the child class when the IO thread send an event.\n * It recognizes the type of the message sent by the IO thread an performs the requested operation.\n * \n * @param message The message sent by the IO thread.\n */\n protected handleIoMessage(message: IoCommand | IoEvent | IoNotification): void {\n if (!message.kind) {\n // eslint-disable-next-line no-console\n console.warn('Invalid message received on the app-config-channel.', message);\n return;\n }\n if (message.kind === 'IO#Command') {\n // message sent by self.\n return;\n }\n if (message.kind === 'IO#Notification') {\n this.notify(message);\n } else if (message.kind === 'IO#Event') {\n this.resolve(message);\n }\n }\n\n /**\n * Resolves a pending promise stored in the `queue`.\n * \n * @param event The IO thread event\n */\n protected resolve(event: IoEvent): void {\n const { id, type, message, result } = event;\n if (typeof id !== 'number') {\n // eslint-disable-next-line no-console\n console.warn(`Unknown event from the IO thread. Id is not a number.`, event);\n return;\n }\n const index = this.queue.findIndex(i => i.id === id);\n if (index < 0) {\n // this might be used by another tab.\n return;\n }\n const info = this.queue[index];\n this.queue.splice(index, 1);\n\n if (type === 'result') {\n info.resolve(result);\n } else if (type === 'error') {\n const apiErr = result as IApiError | undefined;\n if (apiErr && apiErr.code) {\n info.reject(new ApiError(apiErr));\n } else {\n info.reject(new Error(message));\n }\n } else {\n // eslint-disable-next-line no-console\n console.warn(`Unknown event from the IO thread`, event);\n }\n }\n\n /**\n * Notifies this tab about something using the `Events` definition.\n * \n * This expects that the event has the path to the event function, for example `Events.Config.Environment.State.created`.\n * \n * @param event The IO thread event\n */\n protected notify(event: IoNotification): void {\n const { path, args } = event;\n const parts = path.split('.');\n let current = Events as unknown;\n if (parts[0] === 'Events') {\n parts.shift();\n }\n for (const part of parts) {\n // @ts-ignore\n if (!current[part]) {\n // eslint-disable-next-line no-console\n console.warn(`Invalid notification path`, path);\n return\n }\n // @ts-ignore\n current = current[part];\n }\n (current as Function)(...args);\n }\n}\n"]}