@api-client/ui 0.0.3 → 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 (595) hide show
  1. package/demo/amf/api-annotation.html +1 -0
  2. package/demo/amf/api-channel.html +1 -0
  3. package/demo/amf/api-console.html +1 -0
  4. package/demo/amf/api-documentation-document.html +1 -0
  5. package/demo/amf/api-documentation.html +1 -0
  6. package/demo/amf/api-editor.html +1 -0
  7. package/demo/amf/api-navigation.html +1 -0
  8. package/demo/amf/api-operation.html +1 -0
  9. package/demo/amf/api-payload.html +1 -0
  10. package/demo/amf/api-request.html +1 -0
  11. package/demo/amf/api-resource.html +1 -0
  12. package/demo/amf/api-schema-documentation.html +1 -0
  13. package/demo/amf/api-security-documentation.html +1 -0
  14. package/demo/amf/api-server-picker.html +1 -0
  15. package/demo/amf/api-summary.html +1 -0
  16. package/demo/amf/bare-components.html +2 -0
  17. package/demo/amf/index.html +2 -0
  18. package/demo/amf/oauth-authorize.html +2 -0
  19. package/demo/amf/request-editor.html +1 -0
  20. package/demo/elements/authorization/api-key.html +1 -0
  21. package/demo/elements/authorization/basic.html +1 -0
  22. package/demo/elements/authorization/bearer.html +1 -0
  23. package/demo/elements/authorization/cc.html +1 -0
  24. package/demo/elements/authorization/index.html +2 -0
  25. package/demo/elements/authorization/ntlm.html +1 -0
  26. package/demo/elements/authorization/oauth-error.html +2 -0
  27. package/demo/elements/authorization/oauth-popup.html +2 -0
  28. package/demo/elements/authorization/oauth2.html +1 -0
  29. package/demo/elements/authorization/oidc.html +1 -0
  30. package/demo/elements/authorization/redirect.html +3 -1
  31. package/demo/elements/context-menu/basic.html +2 -1
  32. package/demo/elements/context-menu/custom-data.html +2 -1
  33. package/demo/elements/context-menu/enabled-state.html +2 -1
  34. package/demo/elements/context-menu/icons.html +2 -1
  35. package/demo/elements/context-menu/index.html +2 -0
  36. package/demo/elements/context-menu/nested.html +2 -1
  37. package/demo/elements/context-menu/no-execute.html +2 -1
  38. package/demo/elements/context-menu/radio-menu.html +2 -1
  39. package/demo/elements/context-menu/separators.html +2 -1
  40. package/demo/elements/environment/environment-editor.html +1 -0
  41. package/demo/elements/environment/index.html +1 -0
  42. package/demo/elements/environment/server-editor.html +1 -1
  43. package/demo/elements/environment/variables-editor.html +1 -1
  44. package/demo/elements/har/har-viewer.html +1 -0
  45. package/demo/elements/highlight/index.html +1 -0
  46. package/demo/elements/highlight/marked-highlight.html +1 -0
  47. package/demo/elements/highlight/prism-highlight.html +1 -0
  48. package/demo/elements/http/body-editor.html +1 -0
  49. package/demo/elements/http/headers.html +1 -0
  50. package/demo/elements/http/http-assertions.html +1 -0
  51. package/demo/elements/http/request-editor.html +1 -0
  52. package/demo/elements/http/request-log.html +1 -0
  53. package/demo/elements/http/url-editing.html +1 -0
  54. package/demo/elements/icons/index.html +1 -0
  55. package/demo/elements/project/project-run-report.html +1 -0
  56. package/demo/elements/project/request-editor.html +1 -0
  57. package/demo/elements/ui/buttons/api-button.html +2 -1
  58. package/demo/elements/ui/buttons/api-icon-button.html +2 -1
  59. package/demo/elements/ui/buttons/segmented-buttons.html +2 -1
  60. package/demo/elements/ui/chip/api-chip.html +2 -1
  61. package/demo/elements/ui/collapse/ui-collapse.html +2 -1
  62. package/demo/elements/ui/dialog/ui-dialog.html +2 -1
  63. package/demo/elements/ui/inputs/api-checkbox.html +2 -1
  64. package/demo/elements/ui/inputs/api-input.html +2 -1
  65. package/demo/elements/ui/inputs/api-radio.html +2 -1
  66. package/demo/elements/ui/inputs/api-switch.html +2 -1
  67. package/demo/elements/ui/list/dropdown-list.html +2 -1
  68. package/demo/elements/ui/list/list.html +2 -1
  69. package/demo/elements/ui/notification/snack.html +2 -1
  70. package/demo/elements/ui/progress/ui-progress.html +2 -1
  71. package/demo/elements/ui/tabs/tabs.html +2 -1
  72. package/dist/amf/lib/AmfParameters.js +0 -4
  73. package/dist/amf/lib/AmfParameters.js.map +1 -1
  74. package/dist/amf/lib/navigation-layout/EndpointsTree.js +0 -2
  75. package/dist/amf/lib/navigation-layout/EndpointsTree.js.map +1 -1
  76. package/dist/amf/lib/navigation-layout/NaturalTree.js +0 -2
  77. package/dist/amf/lib/navigation-layout/NaturalTree.js.map +1 -1
  78. package/dist/amf/store/AmfGraphStore.js +0 -2
  79. package/dist/amf/store/AmfGraphStore.js.map +1 -1
  80. package/dist/amf/store/AmfStore.js +0 -7
  81. package/dist/amf/store/AmfStore.js.map +1 -1
  82. package/dist/bindings/base/HttpClientStoreBindings.js +4 -1
  83. package/dist/bindings/base/HttpClientStoreBindings.js.map +1 -1
  84. package/dist/bindings/base/PlatformBindings.js +6 -10
  85. package/dist/bindings/base/PlatformBindings.js.map +1 -1
  86. package/dist/bindings/base/ProxyBindings.js +9 -6
  87. package/dist/bindings/base/ProxyBindings.js.map +1 -1
  88. package/dist/bindings/base/SharedWorkerThread.js +4 -1
  89. package/dist/bindings/base/SharedWorkerThread.js.map +1 -1
  90. package/dist/bindings/base/StoreBindings.js +162 -170
  91. package/dist/bindings/base/StoreBindings.js.map +1 -1
  92. package/dist/bindings/web/WebConfigurationBindings.js +22 -24
  93. package/dist/bindings/web/WebConfigurationBindings.js.map +1 -1
  94. package/dist/bindings/web/WebFileBindings.js +7 -4
  95. package/dist/bindings/web/WebFileBindings.js.map +1 -1
  96. package/dist/bindings/web/WebHttpClientStoreBindings.js +19 -21
  97. package/dist/bindings/web/WebHttpClientStoreBindings.js.map +1 -1
  98. package/dist/bindings/web/WebNavigationBindings.js +4 -1
  99. package/dist/bindings/web/WebNavigationBindings.js.map +1 -1
  100. package/dist/bindings/web/WebProxyBindings.js +5 -6
  101. package/dist/bindings/web/WebProxyBindings.js.map +1 -1
  102. package/dist/bindings/web/WebStoreBindings.js +39 -44
  103. package/dist/bindings/web/WebStoreBindings.js.map +1 -1
  104. package/dist/contextual-menu/ContextualMenu.js +10 -19
  105. package/dist/contextual-menu/ContextualMenu.js.map +1 -1
  106. package/dist/contextual-menu/ContextualMenuElement.js +4 -32
  107. package/dist/contextual-menu/ContextualMenuElement.js.map +1 -1
  108. package/dist/contextual-menu/MenuItem.js +0 -12
  109. package/dist/contextual-menu/MenuItem.js.map +1 -1
  110. package/dist/define/amf/api-annotation-document.js +1 -1
  111. package/dist/define/amf/api-annotation-document.js.map +1 -1
  112. package/dist/define/amf/api-authorization-editor.js +1 -1
  113. package/dist/define/amf/api-authorization-editor.js.map +1 -1
  114. package/dist/define/amf/api-channel-document.js +1 -1
  115. package/dist/define/amf/api-channel-document.js.map +1 -1
  116. package/dist/define/amf/api-documentation-document.js +1 -1
  117. package/dist/define/amf/api-documentation-document.js.map +1 -1
  118. package/dist/define/amf/api-documentation.js +1 -1
  119. package/dist/define/amf/api-documentation.js.map +1 -1
  120. package/dist/define/amf/api-navigation.js +1 -1
  121. package/dist/define/amf/api-navigation.js.map +1 -1
  122. package/dist/define/amf/api-operation-document.js +1 -1
  123. package/dist/define/amf/api-operation-document.js.map +1 -1
  124. package/dist/define/amf/api-parameter-document.js +1 -1
  125. package/dist/define/amf/api-parameter-document.js.map +1 -1
  126. package/dist/define/amf/api-parametrized-security-scheme.js +1 -1
  127. package/dist/define/amf/api-parametrized-security-scheme.js.map +1 -1
  128. package/dist/define/amf/api-payload-document.js +1 -1
  129. package/dist/define/amf/api-payload-document.js.map +1 -1
  130. package/dist/define/amf/api-request-document.js +1 -1
  131. package/dist/define/amf/api-request-document.js.map +1 -1
  132. package/dist/define/amf/api-request-editor.js +1 -1
  133. package/dist/define/amf/api-request-editor.js.map +1 -1
  134. package/dist/define/amf/api-request.js +1 -1
  135. package/dist/define/amf/api-request.js.map +1 -1
  136. package/dist/define/amf/api-resource-document.js +1 -1
  137. package/dist/define/amf/api-resource-document.js.map +1 -1
  138. package/dist/define/amf/api-response-document.js +1 -1
  139. package/dist/define/amf/api-response-document.js.map +1 -1
  140. package/dist/define/amf/api-schema-document.js +1 -1
  141. package/dist/define/amf/api-schema-document.js.map +1 -1
  142. package/dist/define/amf/api-security-document.js +1 -1
  143. package/dist/define/amf/api-security-document.js.map +1 -1
  144. package/dist/define/amf/api-security-requirement-document.js +1 -1
  145. package/dist/define/amf/api-security-requirement-document.js.map +1 -1
  146. package/dist/define/amf/api-server-picker.js +1 -1
  147. package/dist/define/amf/api-server-picker.js.map +1 -1
  148. package/dist/define/amf/api-summary.js +1 -1
  149. package/dist/define/amf/api-summary.js.map +1 -1
  150. package/dist/define/amf/authorization/amf-apikey-authorization.js +1 -1
  151. package/dist/define/amf/authorization/amf-apikey-authorization.js.map +1 -1
  152. package/dist/define/amf/authorization/amf-basic-authorization.js +1 -1
  153. package/dist/define/amf/authorization/amf-basic-authorization.js.map +1 -1
  154. package/dist/define/amf/authorization/amf-bearer-authorization.js +1 -1
  155. package/dist/define/amf/authorization/amf-bearer-authorization.js.map +1 -1
  156. package/dist/define/amf/authorization/amf-oauth2-authorization.js +1 -1
  157. package/dist/define/amf/authorization/amf-oauth2-authorization.js.map +1 -1
  158. package/dist/define/amf/authorization/amf-oidc-authorization.js +1 -1
  159. package/dist/define/amf/authorization/amf-oidc-authorization.js.map +1 -1
  160. package/dist/define/amf/authorization/amf-passthrough-authorization.js +1 -1
  161. package/dist/define/amf/authorization/amf-passthrough-authorization.js.map +1 -1
  162. package/dist/define/amf/authorization/amf-ramlcustom-authorization.js +1 -1
  163. package/dist/define/amf/authorization/amf-ramlcustom-authorization.js.map +1 -1
  164. package/dist/define/authorization/apikey-authorization.js +1 -1
  165. package/dist/define/authorization/apikey-authorization.js.map +1 -1
  166. package/dist/define/authorization/basic-authorization.js +1 -1
  167. package/dist/define/authorization/basic-authorization.js.map +1 -1
  168. package/dist/define/authorization/bearer-authorization.js +1 -1
  169. package/dist/define/authorization/bearer-authorization.js.map +1 -1
  170. package/dist/define/authorization/cc-authorization.js +1 -1
  171. package/dist/define/authorization/cc-authorization.js.map +1 -1
  172. package/dist/define/authorization/ntlm-authorization.js +1 -1
  173. package/dist/define/authorization/ntlm-authorization.js.map +1 -1
  174. package/dist/define/authorization/oauth2-authorization.js +1 -1
  175. package/dist/define/authorization/oauth2-authorization.js.map +1 -1
  176. package/dist/define/authorization/oidc-authorization.js +1 -1
  177. package/dist/define/authorization/oidc-authorization.js.map +1 -1
  178. package/dist/define/contextual-menu/contextual-menu.js +1 -1
  179. package/dist/define/contextual-menu/contextual-menu.js.map +1 -1
  180. package/dist/define/dialog/confirm-delete-dialog.js +1 -1
  181. package/dist/define/dialog/confirm-delete-dialog.js.map +1 -1
  182. package/dist/define/dialog/rename-dialog.js +1 -1
  183. package/dist/define/dialog/rename-dialog.js.map +1 -1
  184. package/dist/define/files/share-file.js +1 -1
  185. package/dist/define/files/share-file.js.map +1 -1
  186. package/dist/define/har/har-viewer.js +1 -1
  187. package/dist/define/har/har-viewer.js.map +1 -1
  188. package/dist/define/highlight/marked-highlight.js +1 -1
  189. package/dist/define/highlight/marked-highlight.js.map +1 -1
  190. package/dist/define/highlight/prism-highlight.js +1 -1
  191. package/dist/define/highlight/prism-highlight.js.map +1 -1
  192. package/dist/define/http/http-assertions.js +1 -1
  193. package/dist/define/http/http-assertions.js.map +1 -1
  194. package/dist/define/http/http-body-editor.js +1 -1
  195. package/dist/define/http/http-body-editor.js.map +1 -1
  196. package/dist/define/http/http-body-multipart-editor.js +1 -1
  197. package/dist/define/http/http-body-multipart-editor.js.map +1 -1
  198. package/dist/define/http/http-body-text-editor.js +1 -1
  199. package/dist/define/http/http-body-text-editor.js.map +1 -1
  200. package/dist/define/http/http-body-urlencoded-editor.js +1 -1
  201. package/dist/define/http/http-body-urlencoded-editor.js.map +1 -1
  202. package/dist/define/http/http-headers-form.js +1 -1
  203. package/dist/define/http/http-headers-form.js.map +1 -1
  204. package/dist/define/http/http-log-body.js +1 -1
  205. package/dist/define/http/http-log-body.js.map +1 -1
  206. package/dist/define/http/http-log-headers.js +1 -1
  207. package/dist/define/http/http-log-headers.js.map +1 -1
  208. package/dist/define/http/http-log-timings.js +1 -1
  209. package/dist/define/http/http-log-timings.js.map +1 -1
  210. package/dist/define/http/http-request-config.js +1 -1
  211. package/dist/define/http/http-request-config.js.map +1 -1
  212. package/dist/define/http/http-request-editor.js +1 -1
  213. package/dist/define/http/http-request-editor.js.map +1 -1
  214. package/dist/define/http/http-request-log.js +1 -1
  215. package/dist/define/http/http-request-log.js.map +1 -1
  216. package/dist/define/http/http-snippets.js +1 -1
  217. package/dist/define/http/http-snippets.js.map +1 -1
  218. package/dist/define/http/http-url-input.js +1 -1
  219. package/dist/define/http/http-url-input.js.map +1 -1
  220. package/dist/define/http/http-url-params-form.js +1 -1
  221. package/dist/define/http/http-url-params-form.js.map +1 -1
  222. package/dist/define/http-project/http-project-request-history.js +1 -1
  223. package/dist/define/http-project/http-project-request-history.js.map +1 -1
  224. package/dist/define/http-project/http-project-request.js +2 -2
  225. package/dist/define/http-project/http-project-request.js.map +1 -1
  226. package/dist/define/http-project/project-navigation.js +1 -1
  227. package/dist/define/http-project/project-navigation.js.map +1 -1
  228. package/dist/define/http-project/project-run-report.js +1 -1
  229. package/dist/define/http-project/project-run-report.js.map +1 -1
  230. package/dist/define/http-project/project-runner.js +2 -2
  231. package/dist/define/http-project/project-runner.js.map +1 -1
  232. package/dist/define/layout/split-view.js +1 -1
  233. package/dist/define/layout/split-view.js.map +1 -1
  234. package/dist/define/schema-design/schema-design-navigation.js +1 -1
  235. package/dist/define/schema-design/schema-design-navigation.js.map +1 -1
  236. package/dist/define/schema-design/schema-namespace-selector.js +1 -1
  237. package/dist/define/schema-design/schema-namespace-selector.js.map +1 -1
  238. package/dist/define/ui/ui-button.js +1 -1
  239. package/dist/define/ui/ui-button.js.map +1 -1
  240. package/dist/define/ui/ui-chip.js +1 -1
  241. package/dist/define/ui/ui-chip.js.map +1 -1
  242. package/dist/define/ui/ui-collapse.js +1 -1
  243. package/dist/define/ui/ui-collapse.js.map +1 -1
  244. package/dist/define/ui/ui-dialog.js +1 -1
  245. package/dist/define/ui/ui-dialog.js.map +1 -1
  246. package/dist/define/ui/ui-dropdown-list.js +1 -1
  247. package/dist/define/ui/ui-dropdown-list.js.map +1 -1
  248. package/dist/define/ui/ui-icon-button.js +1 -1
  249. package/dist/define/ui/ui-icon-button.js.map +1 -1
  250. package/dist/define/ui/ui-icon.js +1 -1
  251. package/dist/define/ui/ui-icon.js.map +1 -1
  252. package/dist/define/ui/ui-list-item.js +1 -1
  253. package/dist/define/ui/ui-list-item.js.map +1 -1
  254. package/dist/define/ui/ui-list.js +1 -1
  255. package/dist/define/ui/ui-list.js.map +1 -1
  256. package/dist/define/ui/ui-listbox.js +1 -1
  257. package/dist/define/ui/ui-listbox.js.map +1 -1
  258. package/dist/define/ui/ui-progress.js +1 -1
  259. package/dist/define/ui/ui-progress.js.map +1 -1
  260. package/dist/define/ui/ui-segmented-button-set.js +1 -1
  261. package/dist/define/ui/ui-segmented-button-set.js.map +1 -1
  262. package/dist/define/ui/ui-segmented-button.js +1 -1
  263. package/dist/define/ui/ui-segmented-button.js.map +1 -1
  264. package/dist/define/ui/ui-snackbar.js +1 -1
  265. package/dist/define/ui/ui-snackbar.js.map +1 -1
  266. package/dist/define/ui/ui-tab.js +1 -1
  267. package/dist/define/ui/ui-tab.js.map +1 -1
  268. package/dist/define/ui/ui-tabs.js +1 -1
  269. package/dist/define/ui/ui-tabs.js.map +1 -1
  270. package/dist/directives/data-attr.js +0 -1
  271. package/dist/directives/data-attr.js.map +1 -1
  272. package/dist/elements/ApiElement.js +0 -7
  273. package/dist/elements/ApiElement.js.map +1 -1
  274. package/dist/elements/amf/ApiAnnotationDocument.element.js +0 -2
  275. package/dist/elements/amf/ApiAnnotationDocument.element.js.map +1 -1
  276. package/dist/elements/amf/ApiAuthorizationEditor.element.js +0 -32
  277. package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
  278. package/dist/elements/amf/ApiDocumentation.element.js +0 -91
  279. package/dist/elements/amf/ApiDocumentation.element.js.map +1 -1
  280. package/dist/elements/amf/ApiDocumentationBase.js +0 -9
  281. package/dist/elements/amf/ApiDocumentationBase.js.map +1 -1
  282. package/dist/elements/amf/ApiDocumentationDocument.element.js +0 -1
  283. package/dist/elements/amf/ApiDocumentationDocument.element.js.map +1 -1
  284. package/dist/elements/amf/ApiNavigation.element.js +0 -97
  285. package/dist/elements/amf/ApiNavigation.element.js.map +1 -1
  286. package/dist/elements/amf/ApiOperationDocument.element.js +0 -76
  287. package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
  288. package/dist/elements/amf/ApiParameterDocument.element.js +0 -3
  289. package/dist/elements/amf/ApiParameterDocument.element.js.map +1 -1
  290. package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js +0 -1
  291. package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js.map +1 -1
  292. package/dist/elements/amf/ApiPayloadDocument.element.js +0 -1
  293. package/dist/elements/amf/ApiPayloadDocument.element.js.map +1 -1
  294. package/dist/elements/amf/ApiRequest.element.js +0 -78
  295. package/dist/elements/amf/ApiRequest.element.js.map +1 -1
  296. package/dist/elements/amf/ApiRequestDocument.element.js +0 -38
  297. package/dist/elements/amf/ApiRequestDocument.element.js.map +1 -1
  298. package/dist/elements/amf/ApiRequestEditor.element.js +0 -118
  299. package/dist/elements/amf/ApiRequestEditor.element.js.map +1 -1
  300. package/dist/elements/amf/ApiResourceDocument.element.js +0 -75
  301. package/dist/elements/amf/ApiResourceDocument.element.js.map +1 -1
  302. package/dist/elements/amf/ApiResponseDocument.element.js +0 -17
  303. package/dist/elements/amf/ApiResponseDocument.element.js.map +1 -1
  304. package/dist/elements/amf/ApiSchemaDocument.element.js +0 -28
  305. package/dist/elements/amf/ApiSchemaDocument.element.js.map +1 -1
  306. package/dist/elements/amf/ApiSecurityDocument.element.js +0 -28
  307. package/dist/elements/amf/ApiSecurityDocument.element.js.map +1 -1
  308. package/dist/elements/amf/ApiSecurityRequirementDocument.element.js +0 -1
  309. package/dist/elements/amf/ApiSecurityRequirementDocument.element.js.map +1 -1
  310. package/dist/elements/amf/ApiServerPicker.element.js +2 -65
  311. package/dist/elements/amf/ApiServerPicker.element.js.map +1 -1
  312. package/dist/elements/amf/ApiSummary.element.js +0 -26
  313. package/dist/elements/amf/ApiSummary.element.js.map +1 -1
  314. package/dist/elements/amf/authorization/AmfApiKey.js +0 -5
  315. package/dist/elements/amf/authorization/AmfApiKey.js.map +1 -1
  316. package/dist/elements/amf/authorization/AmfBasic.js +0 -4
  317. package/dist/elements/amf/authorization/AmfBasic.js.map +1 -1
  318. package/dist/elements/amf/authorization/AmfBearer.js +0 -4
  319. package/dist/elements/amf/authorization/AmfBearer.js.map +1 -1
  320. package/dist/elements/amf/authorization/AmfOauth2.js +0 -13
  321. package/dist/elements/amf/authorization/AmfOauth2.js.map +1 -1
  322. package/dist/elements/amf/authorization/AmfOidc.js +0 -4
  323. package/dist/elements/amf/authorization/AmfOidc.js.map +1 -1
  324. package/dist/elements/amf/authorization/AmfPassThrough.js +0 -6
  325. package/dist/elements/amf/authorization/AmfPassThrough.js.map +1 -1
  326. package/dist/elements/amf/authorization/AmfRamlCustom.js +0 -6
  327. package/dist/elements/amf/authorization/AmfRamlCustom.js.map +1 -1
  328. package/dist/elements/authorization/OAuth2Authorize.js +0 -14
  329. package/dist/elements/authorization/OAuth2Authorize.js.map +1 -1
  330. package/dist/elements/authorization/OidcAuthorize.js +0 -14
  331. package/dist/elements/authorization/OidcAuthorize.js.map +1 -1
  332. package/dist/elements/authorization/ui/ApiKeyAuthorization.js +0 -2
  333. package/dist/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
  334. package/dist/elements/authorization/ui/Authorization.js +18 -32
  335. package/dist/elements/authorization/ui/Authorization.js.map +1 -1
  336. package/dist/elements/authorization/ui/CcAuthorization.js +1 -3
  337. package/dist/elements/authorization/ui/CcAuthorization.js.map +1 -1
  338. package/dist/elements/authorization/ui/OAuth2Authorization.js +21 -50
  339. package/dist/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
  340. package/dist/elements/authorization/ui/OidcAuthorization.js +4 -6
  341. package/dist/elements/authorization/ui/OidcAuthorization.js.map +1 -1
  342. package/dist/elements/code/HttpSnippets.js +9 -8
  343. package/dist/elements/code/HttpSnippets.js.map +1 -1
  344. package/dist/elements/dialog/ConfirmDelete.js +0 -12
  345. package/dist/elements/dialog/ConfirmDelete.js.map +1 -1
  346. package/dist/elements/dialog/Rename.js +0 -6
  347. package/dist/elements/dialog/Rename.js.map +1 -1
  348. package/dist/elements/environment/EnvironmentEditor.js +8 -11
  349. package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
  350. package/dist/elements/environment/ServerEditor.js +7 -45
  351. package/dist/elements/environment/ServerEditor.js.map +1 -1
  352. package/dist/elements/environment/VariablesEditor.js +7 -12
  353. package/dist/elements/environment/VariablesEditor.js.map +1 -1
  354. package/dist/elements/files/ShareFile.js +19 -57
  355. package/dist/elements/files/ShareFile.js.map +1 -1
  356. package/dist/elements/har/HarViewer.js +6 -7
  357. package/dist/elements/har/HarViewer.js.map +1 -1
  358. package/dist/elements/highlight/MarkedHighlight.js +4 -56
  359. package/dist/elements/highlight/MarkedHighlight.js.map +1 -1
  360. package/dist/elements/highlight/PrismHighlight.js +9 -18
  361. package/dist/elements/highlight/PrismHighlight.js.map +1 -1
  362. package/dist/elements/highlight/PrismHighlighter.js +4 -6
  363. package/dist/elements/highlight/PrismHighlighter.js.map +1 -1
  364. package/dist/elements/http/BodyEditor.js +21 -33
  365. package/dist/elements/http/BodyEditor.js.map +1 -1
  366. package/dist/elements/http/BodyMultipartEditor.js +17 -18
  367. package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
  368. package/dist/elements/http/BodyTextEditor.js +2 -15
  369. package/dist/elements/http/BodyTextEditor.js.map +1 -1
  370. package/dist/elements/http/BodyUrlEncodedEditor.js +20 -21
  371. package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
  372. package/dist/elements/http/HeadersForm.js +16 -17
  373. package/dist/elements/http/HeadersForm.js.map +1 -1
  374. package/dist/elements/http/HttpAssertions.js +8 -6
  375. package/dist/elements/http/HttpAssertions.js.map +1 -1
  376. package/dist/elements/http/LogBody.js +10 -21
  377. package/dist/elements/http/LogBody.js.map +1 -1
  378. package/dist/elements/http/LogHeaders.js +4 -23
  379. package/dist/elements/http/LogHeaders.js.map +1 -1
  380. package/dist/elements/http/LogTimings.js +11 -13
  381. package/dist/elements/http/LogTimings.js.map +1 -1
  382. package/dist/elements/http/RequestConfigElement.js +7 -4
  383. package/dist/elements/http/RequestConfigElement.js.map +1 -1
  384. package/dist/elements/http/RequestEditor.js +54 -88
  385. package/dist/elements/http/RequestEditor.js.map +1 -1
  386. package/dist/elements/http/RequestLog.js +9 -14
  387. package/dist/elements/http/RequestLog.js.map +1 -1
  388. package/dist/elements/http/UrlInput.js +15 -25
  389. package/dist/elements/http/UrlInput.js.map +1 -1
  390. package/dist/elements/http/UrlParamsForm.js +16 -13
  391. package/dist/elements/http/UrlParamsForm.js.map +1 -1
  392. package/dist/elements/layout/LayoutManager.js +16 -24
  393. package/dist/elements/layout/LayoutManager.js.map +1 -1
  394. package/dist/elements/layout/LayoutPanelElement.js +17 -23
  395. package/dist/elements/layout/LayoutPanelElement.js.map +1 -1
  396. package/dist/elements/layout/SplitItem.js +4 -12
  397. package/dist/elements/layout/SplitItem.js.map +1 -1
  398. package/dist/elements/layout/SplitLayout.js +18 -24
  399. package/dist/elements/layout/SplitLayout.js.map +1 -1
  400. package/dist/elements/layout/SplitPanel.js +10 -16
  401. package/dist/elements/layout/SplitPanel.js.map +1 -1
  402. package/dist/elements/layout/SplitView.js +17 -26
  403. package/dist/elements/layout/SplitView.js.map +1 -1
  404. package/dist/elements/navigation/AppNavigationElement.js +8 -47
  405. package/dist/elements/navigation/AppNavigationElement.js.map +1 -1
  406. package/dist/elements/navigation/AppNavigationItemElement.js +19 -24
  407. package/dist/elements/navigation/AppNavigationItemElement.js.map +1 -1
  408. package/dist/elements/project/HttpProjectRequest.js +0 -38
  409. package/dist/elements/project/HttpProjectRequest.js.map +1 -1
  410. package/dist/elements/project/HttpProjectRequestHistory.js +9 -35
  411. package/dist/elements/project/HttpProjectRequestHistory.js.map +1 -1
  412. package/dist/elements/project/ProjectNavigation.js +0 -4
  413. package/dist/elements/project/ProjectNavigation.js.map +1 -1
  414. package/dist/elements/project/ProjectRunReport.js +4 -15
  415. package/dist/elements/project/ProjectRunReport.js.map +1 -1
  416. package/dist/elements/project/ProjectRunner.js +2 -47
  417. package/dist/elements/project/ProjectRunner.js.map +1 -1
  418. package/dist/elements/schema-design/AssociationFormElement.js +0 -13
  419. package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
  420. package/dist/elements/schema-design/DataEntityEditorElement.js +0 -22
  421. package/dist/elements/schema-design/DataEntityEditorElement.js.map +1 -1
  422. package/dist/elements/schema-design/DataModelVisualizationElement.js +0 -16
  423. package/dist/elements/schema-design/DataModelVisualizationElement.js.map +1 -1
  424. package/dist/elements/schema-design/DataSchemaDocument.js +0 -36
  425. package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
  426. package/dist/elements/schema-design/EntityFormElement.js +0 -18
  427. package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
  428. package/dist/elements/schema-design/PropertyFormElement.js +0 -12
  429. package/dist/elements/schema-design/PropertyFormElement.js.map +1 -1
  430. package/dist/elements/schema-design/SchemaDesignNavigation.js +0 -9
  431. package/dist/elements/schema-design/SchemaDesignNavigation.js.map +1 -1
  432. package/dist/elements/schema-design/SchemaNamespaceSelector.js +0 -9
  433. package/dist/elements/schema-design/SchemaNamespaceSelector.js.map +1 -1
  434. package/dist/elements/user/UserAvatarElement.js +0 -9
  435. package/dist/elements/user/UserAvatarElement.js.map +1 -1
  436. package/dist/events/http-client/models/CertificatesEvents.js +2 -2
  437. package/dist/events/http-client/models/CertificatesEvents.js.map +1 -1
  438. package/dist/http-client/idb/Base.js +5 -10
  439. package/dist/http-client/idb/Base.js.map +1 -1
  440. package/dist/http-client/idb/LegacyMockedStore.js +0 -1
  441. package/dist/http-client/idb/LegacyMockedStore.js.map +1 -1
  442. package/dist/http-client/idb/MockedStore.js +3 -1
  443. package/dist/http-client/idb/MockedStore.js.map +1 -1
  444. package/dist/http-client/store/DataImportProcessor.js +0 -3
  445. package/dist/http-client/store/DataImportProcessor.js.map +1 -1
  446. package/dist/http-client/store/HttpClientIdbDatabase.js +8 -7
  447. package/dist/http-client/store/HttpClientIdbDatabase.js.map +1 -1
  448. package/dist/http-client/store/IdbThread.js +23 -20
  449. package/dist/http-client/store/IdbThread.js.map +1 -1
  450. package/dist/http-client/store/idb/IdbProjectUi.js +4 -1
  451. package/dist/http-client/store/idb/IdbProjectUi.js.map +1 -1
  452. package/dist/http-client/store/idb/IdbStore.js +0 -2
  453. package/dist/http-client/store/idb/IdbStore.js.map +1 -1
  454. package/dist/http-client/store/idb/IdbUrlHistory.js +4 -1
  455. package/dist/http-client/store/idb/IdbUrlHistory.js.map +1 -1
  456. package/dist/http-client/store/idb/IdbWsHistory.js +4 -1
  457. package/dist/http-client/store/idb/IdbWsHistory.js.map +1 -1
  458. package/dist/lib/chart/HttpHistoryChart.js +7 -8
  459. package/dist/lib/chart/HttpHistoryChart.js.map +1 -1
  460. package/dist/mixins/FileDropMixin.js +0 -1
  461. package/dist/mixins/FileDropMixin.js.map +1 -1
  462. package/dist/mixins/RenderableMixin.js +11 -15
  463. package/dist/mixins/RenderableMixin.js.map +1 -1
  464. package/dist/pages/ApplicationScreen.js +34 -55
  465. package/dist/pages/ApplicationScreen.js.map +1 -1
  466. package/dist/pages/api-client/ApiClient.screen.js +11 -20
  467. package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
  468. package/dist/pages/api-client/Authenticate.screen.js +4 -6
  469. package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
  470. package/dist/pages/api-client/StoreConfig.screen.js +21 -37
  471. package/dist/pages/api-client/StoreConfig.screen.js.map +1 -1
  472. package/dist/pages/api-client/Telemetry.screen.js +1 -2
  473. package/dist/pages/api-client/Telemetry.screen.js.map +1 -1
  474. package/dist/pages/api-client/pages/Files.page.js +6 -27
  475. package/dist/pages/api-client/pages/Files.page.js.map +1 -1
  476. package/dist/pages/api-client/pages/Settings.page.js +2 -4
  477. package/dist/pages/api-client/pages/Settings.page.js.map +1 -1
  478. package/dist/pages/api-client/pages/Trash.page.js +2 -13
  479. package/dist/pages/api-client/pages/Trash.page.js.map +1 -1
  480. package/dist/pages/demo/DemoPage.d.ts.map +1 -1
  481. package/dist/pages/demo/DemoPage.js +25 -24
  482. package/dist/pages/demo/DemoPage.js.map +1 -1
  483. package/dist/pages/http-project/HttpProject.screen.js +25 -35
  484. package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
  485. package/dist/pages/schema-design/SchemaDesigner.screen.js +14 -27
  486. package/dist/pages/schema-design/SchemaDesigner.screen.js.map +1 -1
  487. package/dist/store/HttpStore.js +0 -3
  488. package/dist/store/HttpStore.js.map +1 -1
  489. package/dist/store/UserCache.js +5 -5
  490. package/dist/store/UserCache.js.map +1 -1
  491. package/dist/ui/UiElement.js +4 -5
  492. package/dist/ui/UiElement.js.map +1 -1
  493. package/dist/ui/button/SegmentedButton.js +9 -11
  494. package/dist/ui/button/SegmentedButton.js.map +1 -1
  495. package/dist/ui/button/SegmentedButtonsSet.js +6 -7
  496. package/dist/ui/button/SegmentedButtonsSet.js.map +1 -1
  497. package/dist/ui/button/UiButton.js +17 -39
  498. package/dist/ui/button/UiButton.js.map +1 -1
  499. package/dist/ui/button/UiIconButton.js +9 -35
  500. package/dist/ui/button/UiIconButton.js.map +1 -1
  501. package/dist/ui/chip/UiChip.js +9 -49
  502. package/dist/ui/chip/UiChip.js.map +1 -1
  503. package/dist/ui/collapse/UiCollapse.js +15 -20
  504. package/dist/ui/collapse/UiCollapse.js.map +1 -1
  505. package/dist/ui/controllers/ActionController.js +143 -144
  506. package/dist/ui/controllers/ActionController.js.map +1 -1
  507. package/dist/ui/controllers/RadioSelectionController.js +0 -1
  508. package/dist/ui/controllers/RadioSelectionController.js.map +1 -1
  509. package/dist/ui/date/DateTime.js +3 -3
  510. package/dist/ui/date/DateTime.js.map +1 -1
  511. package/dist/ui/dialog/UiDialog.d.ts +1 -1
  512. package/dist/ui/dialog/UiDialog.d.ts.map +1 -1
  513. package/dist/ui/dialog/UiDialog.js +19 -41
  514. package/dist/ui/dialog/UiDialog.js.map +1 -1
  515. package/dist/ui/effects/ripple.js +20 -18
  516. package/dist/ui/effects/ripple.js.map +1 -1
  517. package/dist/ui/effects/rippleDirective.js +6 -7
  518. package/dist/ui/effects/rippleDirective.js.map +1 -1
  519. package/dist/ui/icons/UiIcon.js +4 -3
  520. package/dist/ui/icons/UiIcon.js.map +1 -1
  521. package/dist/ui/input/CheckboxElement.js +12 -10
  522. package/dist/ui/input/CheckboxElement.js.map +1 -1
  523. package/dist/ui/input/CheckedElement.js +2 -13
  524. package/dist/ui/input/CheckedElement.js.map +1 -1
  525. package/dist/ui/input/Input.js +169 -234
  526. package/dist/ui/input/Input.js.map +1 -1
  527. package/dist/ui/input/RadioElement.js +13 -11
  528. package/dist/ui/input/RadioElement.js.map +1 -1
  529. package/dist/ui/input/SwitchElement.js +0 -18
  530. package/dist/ui/input/SwitchElement.js.map +1 -1
  531. package/dist/ui/input/TextAreaElement.js +0 -15
  532. package/dist/ui/input/TextAreaElement.js.map +1 -1
  533. package/dist/ui/list/DividerElement.js +5 -10
  534. package/dist/ui/list/DividerElement.js.map +1 -1
  535. package/dist/ui/list/UiDropdownList.js +7 -48
  536. package/dist/ui/list/UiDropdownList.js.map +1 -1
  537. package/dist/ui/list/UiList.js +3 -15
  538. package/dist/ui/list/UiList.js.map +1 -1
  539. package/dist/ui/list/UiListItem.js +4 -17
  540. package/dist/ui/list/UiListItem.js.map +1 -1
  541. package/dist/ui/list/UiListbox.js +0 -1
  542. package/dist/ui/list/UiListbox.js.map +1 -1
  543. package/dist/ui/notification/SnackNotifications.js +1 -2
  544. package/dist/ui/notification/SnackNotifications.js.map +1 -1
  545. package/dist/ui/notification/Snackbar.js +27 -51
  546. package/dist/ui/notification/Snackbar.js.map +1 -1
  547. package/dist/ui/progress/Range.js +24 -23
  548. package/dist/ui/progress/Range.js.map +1 -1
  549. package/dist/ui/progress/UiProgress.js +0 -11
  550. package/dist/ui/progress/UiProgress.js.map +1 -1
  551. package/dist/ui/table/DataTable.js +7 -12
  552. package/dist/ui/table/DataTable.js.map +1 -1
  553. package/dist/ui/tabs/UiTab.js +24 -25
  554. package/dist/ui/tabs/UiTab.js.map +1 -1
  555. package/dist/ui/tabs/UiTabs.js +21 -35
  556. package/dist/ui/tabs/UiTabs.js.map +1 -1
  557. package/dist/visualization/elements/VizWorkspaceElement.js +12 -21
  558. package/dist/visualization/elements/VizWorkspaceElement.js.map +1 -1
  559. package/dist/visualization/lib/AssociationAnchors.js +16 -28
  560. package/dist/visualization/lib/AssociationAnchors.js.map +1 -1
  561. package/dist/visualization/lib/Point.js +0 -2
  562. package/dist/visualization/lib/Point.js.map +1 -1
  563. package/dist/visualization/lib/SelectionManager.js +10 -11
  564. package/dist/visualization/lib/SelectionManager.js.map +1 -1
  565. package/dist/visualization/lib/WorkspaceAlignment.js +0 -1
  566. package/dist/visualization/lib/WorkspaceAlignment.js.map +1 -1
  567. package/dist/visualization/lib/WorkspaceDebugging.js +5 -8
  568. package/dist/visualization/lib/WorkspaceDebugging.js.map +1 -1
  569. package/dist/visualization/lib/WorkspaceEdges.js +17 -19
  570. package/dist/visualization/lib/WorkspaceEdges.js.map +1 -1
  571. package/dist/visualization/lib/WorkspaceGestures.js +0 -3
  572. package/dist/visualization/lib/WorkspaceGestures.js.map +1 -1
  573. package/dist/visualization/lib/WorkspaceSizing.js +4 -6
  574. package/dist/visualization/lib/WorkspaceSizing.js.map +1 -1
  575. package/dist/visualization/lib/lines/RectilinearLine.js +8 -34
  576. package/dist/visualization/lib/lines/RectilinearLine.js.map +1 -1
  577. package/dist/visualization/lib/tips/RectilinearTip.js +0 -1
  578. package/dist/visualization/lib/tips/RectilinearTip.js.map +1 -1
  579. package/dist/visualization/lib/tips/TipArtist.js +0 -3
  580. package/dist/visualization/lib/tips/TipArtist.js.map +1 -1
  581. package/dist/visualization/plugin/dnd/DragAndDropPlugin.js +3 -5
  582. package/dist/visualization/plugin/dnd/DragAndDropPlugin.js.map +1 -1
  583. package/dist/visualization/plugin/group-selection/GroupSelection.js +19 -19
  584. package/dist/visualization/plugin/group-selection/GroupSelection.js.map +1 -1
  585. package/dist/visualization/plugin/positioning/WorkspaceLayout.js +21 -38
  586. package/dist/visualization/plugin/positioning/WorkspaceLayout.js.map +1 -1
  587. package/package.json +3 -2
  588. package/src/pages/demo/DemoPage.ts +12 -11
  589. package/src/ui/dialog/UiDialog.ts +6 -4
  590. package/test/ui/dialog/UiDialog.test.ts +236 -0
  591. package/tsconfig.json +2 -2
  592. package/demo/themes/default.css +0 -0
  593. package/demo/themes/m3/theme.dark.css +0 -40
  594. package/demo/themes/m3/theme.light.css +0 -40
  595. package/demo/themes/m3/tokens.css +0 -291
@@ -25,18 +25,6 @@ import '../../define/http/http-snippets.js';
25
25
  * @fires tryit
26
26
  */
27
27
  export default class ApiOperationDocument extends ApiDocumentationBase {
28
- endpointValue;
29
- operationValue;
30
- serversValue;
31
- responsesValue;
32
- serverIdValue;
33
- baseUriValue;
34
- urlValue;
35
- versionValue;
36
- protocolsValue;
37
- snippetsPayloadValue;
38
- snippetsHeadersValue;
39
- snippetsParametersValue;
40
28
  /**
41
29
  * The id of the currently selected server to use to construct the URL.
42
30
  * If not set a first server in the API servers array is used.
@@ -146,70 +134,6 @@ export default class ApiOperationDocument extends ApiDocumentationBase {
146
134
  get version() {
147
135
  return this.versionValue;
148
136
  }
149
- /**
150
- * The domain id of the currently selected security to render.
151
- * This is only used when a multiple security schemes are applied to the operation.
152
- * @attribute
153
- */
154
- securityId;
155
- /**
156
- * When set it opens the response section
157
- * @attribute
158
- */
159
- responsesOpened;
160
- /**
161
- * When set it opens the security section
162
- * @attribute
163
- */
164
- securityOpened;
165
- /**
166
- * When set it opens the code snippets section
167
- * @attribute
168
- */
169
- snippetsOpened;
170
- /**
171
- * The selected status code in the responses section.
172
- * @attribute
173
- */
174
- selectedStatus;
175
- /**
176
- * Whether the callbacks section is opened.
177
- * @attribute
178
- */
179
- callbacksOpened;
180
- /**
181
- * When set it renders the "try it" button that dispatches the `tryit` event.
182
- * @attribute
183
- */
184
- tryItButton;
185
- /**
186
- * When set it renders the view optimised for asynchronous API operation.
187
- * @attribute
188
- */
189
- asyncApi;
190
- /**
191
- * When set it renders code examples section is the documentation
192
- * @attribute
193
- */
194
- renderCodeSnippets;
195
- /**
196
- * When set it renders security documentation when applicable
197
- * @attribute
198
- */
199
- showSecurity;
200
- /**
201
- * The currently rendered request panel mime type.
202
- * @attribute
203
- */
204
- requestMimeType;
205
- /**
206
- * Optional. The parent endpoint id. When set it uses this value to query for the endpoint
207
- * instead of querying for a parent through the operation id.
208
- * Also, when `endpoint` is set and the `endpointId` match then it ignores querying for
209
- * the endpoint.
210
- * @attribute
211
- */
212
- endpointId;
213
137
  async processGraph() {
214
138
  await this.queryEndpoint();
215
139
  await this.queryOperation();
@@ -1 +1 @@
1
- {"version":3,"file":"ApiOperationDocument.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiOperationDocument.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { AmfShapes, ApiDefinitions, ApiSchemaGenerator, ApiSchemaValues, AmfNamespace, IHttpRequest } from '@api-client/core/build/browser.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { QueryParameterProcessor } from '../../amf/lib/QueryParameterProcessor.js';\nimport { ApiDocumentationBase } from './ApiDocumentationBase.js';\nimport { Events } from '../../events/amf/Events.js';\nimport { joinTraitNames } from '../../amf/lib/Utils.js';\nimport * as UrlLib from '../../amf/lib/UrlUtils.js';\nimport { tablePropertyTemplate } from './SchemaCommonTemplates.js';\nimport ApiRequestDocumentElement from './ApiRequestDocument.element.js';\nimport { TabSelectionDetail } from '../../ui/tabs/UiTabs.js';\nimport '../../define/amf/api-request-document.js';\nimport '../../define/amf/api-response-document.js';\nimport '../../define/amf/api-security-requirement-document.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-tabs.js';\nimport '../../define/ui/ui-tab.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/http/http-snippets.js';\n\n/**\n * A web component that renders the documentation page for an API operation built from \n * the AMF graph model.\n * \n * @fires tryit\n */\nexport default class ApiOperationDocument extends ApiDocumentationBase {\n protected endpointValue?: ApiDefinitions.IApiEndPoint;\n\n protected operationValue?: ApiDefinitions.IApiOperation;\n\n protected serversValue?: ApiDefinitions.IApiServer[];\n\n protected responsesValue?: ApiDefinitions.IApiResponse[];\n\n protected serverIdValue?: string;\n\n protected baseUriValue?: string;\n\n protected urlValue?: string;\n\n protected versionValue?: string;\n\n protected protocolsValue?: string[];\n\n protected snippetsPayloadValue?: string;\n\n protected snippetsHeadersValue?: string;\n\n protected snippetsParametersValue?: string;\n\n /** \n * The id of the currently selected server to use to construct the URL.\n * If not set a first server in the API servers array is used.\n * @attribute\n */\n @property({ type: String, reflect: true })\n get serverId(): string | undefined {\n return this.serverIdValue;\n }\n\n set serverId(value: string | undefined) {\n const old = this.serverIdValue;\n if (old === value) {\n return;\n }\n this.serverIdValue = value;\n this.computeUrlValue();\n this.computeParametersValue();\n this.requestUpdate();\n }\n\n /**\n * The computed list of servers.\n */\n get servers(): ApiDefinitions.IApiServer[] | undefined {\n return this.serversValue;\n }\n\n /**\n * The current server in use.\n */\n get server(): ApiDefinitions.IApiServer | undefined {\n const servers = this.serversValue;\n const serverId = this.serverIdValue;\n let server;\n if (Array.isArray(servers) && servers.length) {\n if (serverId) {\n server = servers.find((item) => item.id === serverId);\n } else {\n [server] = servers;\n }\n }\n return server;\n }\n\n get operation(): ApiDefinitions.IApiOperation | undefined {\n return this.operationValue;\n }\n\n set operation(value) {\n const old = this.operationValue;\n if (old === value) {\n return;\n }\n this.operationValue = value;\n this.processGraph();\n }\n\n get endpoint(): ApiDefinitions.IApiEndPoint | undefined {\n return this.endpointValue;\n }\n\n set endpoint(value) {\n const old = this.endpointValue;\n if (old === value) {\n return;\n }\n this.endpointValue = value;\n this.computeUrlValue();\n this.computeParametersValue();\n this.requestUpdate();\n }\n\n /**\n * A property to set to override AMF's model base URI information.\n * When this property is set, the `endpointUri` property is recalculated.\n * @attribute\n */\n @property({ type: String })\n get baseUri(): string | undefined {\n return this.baseUriValue;\n }\n\n set baseUri(value) {\n const old = this.baseUriValue;\n if (old === value) {\n return;\n }\n this.baseUriValue = value;\n this.computeUrlValue();\n this.computeParametersValue();\n this.requestUpdate();\n }\n\n /**\n * The computed URI for the endpoint.\n */\n get endpointUri(): string | undefined {\n return this.urlValue;\n }\n\n get snippetsUri(): string {\n const base = this.urlValue || '';\n const query = this.snippetsParametersValue || '';\n return `${base}${query}`\n }\n\n /**\n * The computed list of responses for this operation.\n */\n get responses(): ApiDefinitions.IApiResponse[] | undefined {\n return this.responsesValue;\n }\n\n /**\n * The API's protocols.\n */\n get protocols(): string[] | undefined {\n return this.protocolsValue;\n }\n\n\n get version(): string | undefined {\n return this.versionValue;\n }\n\n /** \n * The domain id of the currently selected security to render.\n * This is only used when a multiple security schemes are applied to the operation.\n * @attribute\n */\n @property({ type: String, reflect: true }) securityId?: string;\n\n /** \n * When set it opens the response section\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) responsesOpened?: boolean;\n\n /** \n * When set it opens the security section\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) securityOpened?: boolean;\n\n /** \n * When set it opens the code snippets section\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) snippetsOpened?: boolean;\n\n /** \n * The selected status code in the responses section.\n * @attribute\n */\n @property({ type: String }) selectedStatus?: string;\n\n /** \n * Whether the callbacks section is opened.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) callbacksOpened?: boolean;\n\n /** \n * When set it renders the \"try it\" button that dispatches the `tryit` event.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) tryItButton?: boolean;\n\n /** \n * When set it renders the view optimised for asynchronous API operation.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) asyncApi?: boolean;\n\n /**\n * When set it renders code examples section is the documentation\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) renderCodeSnippets?: boolean;\n\n /**\n * When set it renders security documentation when applicable\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) showSecurity?: boolean;\n\n /** \n * The currently rendered request panel mime type.\n * @attribute\n */\n @property({ type: String }) requestMimeType?: string;\n\n /** \n * Optional. The parent endpoint id. When set it uses this value to query for the endpoint\n * instead of querying for a parent through the operation id.\n * Also, when `endpoint` is set and the `endpointId` match then it ignores querying for \n * the endpoint.\n * @attribute\n */\n @property({ type: String }) endpointId?: string;\n\n override async processGraph(): Promise<void> {\n await this.queryEndpoint();\n await this.queryOperation();\n await this.queryServers();\n await this.queryProtocols();\n await this.queryResponses();\n this.preselectResponse();\n this.preselectSecurity();\n this.computeUrlValue();\n this.computeParametersValue();\n this.computeSnippetsPayload();\n this.computeSnippetsHeaders();\n this.requestUpdate();\n await this.updateComplete;\n this.dispatchEvent(new Event('graphload'));\n }\n\n /**\n * Queries the store for the operation data, when needed.\n */\n async queryOperation(): Promise<void> {\n const { domainId } = this;\n if (!domainId) {\n // this.operationValue = undefined;\n return;\n }\n if (this.operationValue && this.operationValue.id === domainId) {\n // in case the operation model was provided via the property setter.\n return;\n }\n try {\n const endpointId = this.endpointValue && this.endpointValue.id;\n const info = await Events.Operation.get(this, domainId, endpointId);\n this.operationValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API operation data: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries the store for the endpoint data.\n */\n async queryEndpoint(): Promise<void> {\n const { domainId, endpointId } = this;\n if (!domainId) {\n // this.endpointValue = undefined;\n return;\n }\n if (this.endpointValue && this.endpointValue.id === endpointId) {\n // in case the endpoint model was provided via the property setter.\n return;\n }\n this.endpointValue = undefined;\n try {\n const info = await (endpointId ? Events.Endpoint.get(this, endpointId) : Events.Operation.getParent(this, domainId));\n this.endpointValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API endpoint data: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries for the current servers value.\n */\n async queryServers(): Promise<void> {\n const { domainId } = this;\n const endpointId = this.endpointValue && this.endpointValue.id;\n try {\n const info = await Events.Server.query(this, {\n endpointId,\n methodId: domainId,\n });\n this.serversValue = info;\n } catch (e) {\n const ex = e as Error;\n this.serversValue = undefined;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API servers: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries the API store for the API protocols list.\n */\n async queryProtocols(): Promise<void> {\n this.protocolsValue = undefined;\n try {\n const info = await Events.Api.protocols(this);\n this.protocolsValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API protocols list: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries the API store for the API version value.\n */\n async queryVersion(): Promise<void> {\n this.versionValue = undefined;\n try {\n const info = await Events.Api.version(this);\n this.versionValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API version value: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries for the responses data of the current operation.\n */\n async queryResponses(): Promise<void> {\n this.responsesValue = undefined;\n const { operation } = this;\n if (!operation) {\n return;\n }\n const { responses = [] } = operation;\n if (!responses.length) {\n return;\n }\n this.responsesValue = responses;\n }\n\n /**\n * Updates the `selectedStatus` if not selected or the current selection doesn't \n * exists in the current list of responses.\n */\n protected preselectResponse(): void {\n const responses = this.responsesValue;\n if (!Array.isArray(responses) || !responses.length) {\n return;\n }\n responses.sort((a, b) => {\n if (a.statusCode === b.statusCode) {\n return 0;\n }\n return Number(a.statusCode) > Number(b.statusCode) ? 1 : -1;\n });\n const { selectedStatus } = this;\n if (!selectedStatus) {\n this.selectedStatus = responses[0].statusCode;\n return;\n }\n const selected = responses.find((item) => item.statusCode === selectedStatus);\n if (selected) {\n return;\n }\n this.selectedStatus = responses[0].statusCode;\n }\n\n /**\n * Updates the `securityId` if not selected or the current selection doesn't \n * exists in the current list of security.\n */\n protected preselectSecurity(): void {\n const { operation, showSecurity: renderSecurity, securityId } = this;\n if (!renderSecurity || !operation || !Array.isArray(operation.security) || !operation.security.length) {\n return;\n }\n if (!securityId) {\n this.securityId = operation.security[0].id;\n return;\n }\n const selected = operation.security.find((item) => item.id === securityId);\n if (selected) {\n return;\n }\n this.securityId = operation.security[0].id;\n }\n\n /**\n * Computes the URL value for the current serves, selected server, and endpoint's path.\n */\n protected computeUrlValue(): void {\n if (this.asyncApi) {\n return;\n }\n const { protocols, version, server, baseUri } = this;\n const endpoint = this.endpointValue;\n const url = UrlLib.computeEndpointUri({ baseUri, server, endpoint, protocols, version, });\n this.urlValue = url;\n }\n\n /**\n * Computes query parameters for the code snippets.\n */\n protected computeParametersValue(): void {\n this.snippetsParametersValue = undefined;\n const { operation } = this;\n if (!operation) {\n return;\n }\n const { request } = operation;\n if (!request) {\n return;\n }\n const { queryParameters, queryString } = request;\n let params: ApiDefinitions.IApiParameter[] | undefined;\n if (Array.isArray(queryParameters) && queryParameters.length) {\n params = queryParameters;\n } else if (queryString) {\n const factory = new QueryParameterProcessor();\n const items = factory.collectOperationParameters(request.queryString as AmfShapes.IShapeUnion, 'query');\n if (Array.isArray(items) && items.length) {\n params = items.map(i => i.parameter);\n }\n }\n if (!params || !params.length) {\n return;\n }\n const qp: Record<string, string> = {}\n params.forEach((param) => {\n const { required, schema, paramName, name } = param;\n if (!required) {\n return;\n }\n const parameterName = paramName || name;\n if (!parameterName) {\n return;\n }\n const anySchema = schema as AmfShapes.IApiAnyShape;\n const { defaultValueStr, examples = [] } = anySchema;\n if (defaultValueStr) {\n qp[parameterName] = defaultValueStr;\n } else if (examples.length) {\n const exp = examples.find(e => e.value);\n if (exp && exp.value) {\n qp[parameterName] = exp.value;\n }\n } else {\n const value = ApiSchemaValues.generateDefaultValue(schema as AmfShapes.IApiScalarShape);\n if (value || value === false || value === 0 || value === null) {\n qp[parameterName] = value;\n }\n // if (typeof value === 'undefined') {\n // qp[parameterName] = '';\n // } else {\n // qp[parameterName] = value;\n // }\n }\n });\n const value = UrlLib.applyUrlParameters('', qp, true);\n this.snippetsParametersValue = value;\n }\n\n /**\n * Computes payload value for the code snippets.\n */\n protected computeSnippetsPayload(): void {\n this.snippetsPayloadValue = undefined\n if (this.asyncApi) {\n return;\n }\n const { operation, requestMimeType } = this;\n if (!operation || !requestMimeType) {\n return;\n }\n const { request } = operation;\n if (!request) {\n return;\n }\n const { payloads = [] } = request;\n if (!payloads.length) {\n return;\n }\n const payload = payloads.find(p => p.mediaType === requestMimeType);\n if (!payload) {\n return;\n }\n const { examples = [], schema } = payload;\n let examplesCopy = [...examples];\n const anySchema = schema as AmfShapes.IApiAnyShape;\n if (Array.isArray(anySchema.examples) && anySchema.examples.length) {\n examplesCopy = examplesCopy.concat(anySchema.examples);\n }\n examplesCopy = examplesCopy.filter((i) => !!i.value || !!i.structuredValue);\n let payloadValue;\n if (examplesCopy.length) {\n const example = examplesCopy.find(e => !!e.value);\n if (example) {\n payloadValue = this.evaluateExample(example, requestMimeType);\n }\n }\n if (!payloadValue) {\n payloadValue = ApiSchemaGenerator.asExample(schema as AmfShapes.IShapeUnion, requestMimeType, {\n renderExamples: true,\n renderOptional: true,\n });\n }\n if (payloadValue && payloadValue.renderValue) {\n this.snippetsPayloadValue = payloadValue.renderValue as string;\n }\n }\n\n /**\n * Computes headers value for the code snippets.\n */\n protected computeSnippetsHeaders(): void {\n this.snippetsHeadersValue = undefined;\n if (this.asyncApi) {\n return;\n }\n const { operation, requestMimeType } = this;\n if (!operation) {\n return;\n }\n const { request, method } = operation;\n if (!request) {\n return;\n }\n const { headers = [] } = request;\n const parts = [];\n let hasMime = false;\n headers.forEach((param) => {\n const { paramName, name, schema } = param;\n if (!schema || !schema.types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape)) {\n return;\n }\n const typedScalar = schema as AmfShapes.IApiScalarShape;\n let value = ApiSchemaValues.readInputValue(param, typedScalar, { fromExamples: true });\n if (Array.isArray(value)) {\n value = value.join(',');\n }\n if (typeof value !== 'undefined') {\n const headerName = paramName || name || '';\n if (headerName.toLowerCase() === 'content-type') {\n hasMime = true;\n }\n const header = `${paramName || name}: ${value}`;\n parts.push(header);\n }\n });\n if (!hasMime && requestMimeType && method !== 'get') {\n parts.push(`content-type: ${requestMimeType}`);\n }\n this.snippetsHeadersValue = parts.join('\\n');\n }\n\n /**\n * A handler for the status code tab selection.\n */\n protected handleStatusCode(e: CustomEvent<TabSelectionDetail>): void {\n const { item } = e.detail;\n const { status } = item.dataset;\n if (!status) {\n return;\n }\n this.selectedStatus = status;\n }\n\n /**\n * A handler for the status code tab selection.\n */\n protected handleSecuritySelection(e: CustomEvent<TabSelectionDetail>): void {\n const { item } = e.detail;\n const { id } = item.dataset;\n if (!id) {\n return;\n }\n this.securityId = id;\n }\n\n /**\n * A handler for the try it button click.\n * It dispatches the `tryit` custom event.\n */\n protected handleTryIt(): void {\n const { operation, asyncApi } = this;\n if (!operation || asyncApi) {\n return;\n }\n const { id } = operation;\n const detail = { id };\n const config = {\n bubbles: true,\n composed: true,\n detail,\n };\n this.dispatchEvent(new CustomEvent('tryit', config));\n }\n\n /**\n * A handler for the request panel mime type change.\n */\n protected handleRequestMimeChange(e: Event): void {\n const panel = e.target as ApiRequestDocumentElement;\n this.requestMimeType = panel.mimeType;\n this.computeSnippetsPayload();\n this.computeSnippetsHeaders();\n this.requestUpdate();\n }\n\n override render(): TemplateResult {\n const op = this.operationValue;\n if (!op) {\n return html``;\n }\n return html`\n ${this.renderTitle(op)}\n ${this.renderSummary(op)}\n ${this.renderUrl(op)}\n ${this.renderTraits(op)}\n ${this.renderDeprecated(op)}\n ${this.descriptionTemplate(op.description)}\n ${this.renderMetaData(op)}\n ${this.customDomainPropertiesTemplate(op.customDomainProperties)}\n ${this.renderRequestTemplate()}\n ${this.renderCallbacks(op)}\n ${this.renderSnippets(op)}\n ${this.renderResponse()}\n ${this.renderSecuritySection(op)}\n `;\n }\n\n /**\n * @returns The template for the Operation title.\n */\n protected renderTitle(operation: ApiDefinitions.IApiOperation): TemplateResult {\n const { name, method, deprecated } = operation;\n const label = name || method;\n const labelClasses = {\n label: true,\n 'text-selectable': true,\n deprecated,\n };\n const subTitle = this.asyncApi ? 'Async operation' : 'API operation';\n return html`\n <div class=\"operation-header\">\n <div class=\"operation-title\">\n <span class=\"${classMap(labelClasses)}\">${label}</span>\n ${this.renderTryIt()}\n </div>\n <p class=\"sub-header\">${subTitle}</p>\n </div>\n `;\n }\n\n /**\n * @returns The template for the Operation traits.\n */\n protected renderTraits(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { extends: traits } = operation;\n if (!traits || !traits.length) {\n return '';\n }\n const value = joinTraitNames(traits);\n return html`\n <section class=\"extensions\">\n <p>Mixes in <span class=\"trait-name text-selectable\">${value}</span>.</p>\n </section>`;\n }\n\n /**\n * @returns The template for the operation summary filed.\n */\n protected renderSummary(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { summary } = operation;\n if (!summary) {\n return '';\n }\n return html`\n <p class=\"summary text-selectable\">${summary}</p>\n `;\n }\n\n /**\n * @returns The template for the Operation meta information.\n */\n protected renderMetaData(operation: ApiDefinitions.IApiOperation): TemplateResult[] | string {\n const { operationId } = operation;\n const result = [];\n if (operationId) {\n result.push(tablePropertyTemplate('Operation ID', operationId, 'operation-id'));\n }\n if (result.length) {\n return result;\n }\n return '';\n }\n\n /**\n * @returns The template for the deprecated message.\n */\n protected renderDeprecated(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { deprecated } = operation;\n if (!deprecated) {\n return '';\n }\n return html`\n <div class=\"deprecated-message\">\n <ui-icon icon=\"warning\"></ui-icon>\n <span class=\"message text-selectable\">\n This operation is marked as deprecated.\n </span>\n </div>\n `;\n }\n\n /**\n * @returns The template for the operation's URL.\n */\n protected renderUrl(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n if (this.asyncApi) {\n return '';\n }\n const url = this.urlValue;\n const { method } = operation;\n return html`\n <div class=\"endpoint-url\">\n <div class=\"http-label\" data-method=\"${method}\">${method}</div>\n <div class=\"url-value text-selectable\">${url}</div>\n </div>\n `;\n }\n\n /**\n * @returns The template for the operation's request documentation element.\n */\n protected renderRequestTemplate(): TemplateResult | string {\n const { operation } = this;\n if (!operation) {\n return '';\n }\n const { server, endpoint } = this;\n return html`\n <api-request-document \n .domainId=\"${operation.request && operation.request.id}\" \n .request=\"${operation.request}\" \n .server=${server} \n .endpoint=${endpoint}\n @mimechange=\"${this.handleRequestMimeChange}\"\n ></api-request-document>\n `;\n }\n\n protected renderCallbacks(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { callbacks } = operation;\n if (!Array.isArray(callbacks) || !callbacks.length) {\n return '';\n }\n const content = callbacks.map(callback => this.renderCallback(callback));\n return this.paramsSectionTemplate('Callbacks', 'callbacksOpened', content);\n }\n\n /**\n * @returns The template for the operation's request documentation element.\n */\n protected renderCallback(callback: ApiDefinitions.IApiCallback): TemplateResult {\n const { name, endpoint } = callback;\n if (!endpoint) {\n return html``;\n }\n const { operations = [] } = endpoint;\n const [operation] = operations;\n if (!operation) {\n return html``;\n }\n return html`\n <div class=\"callback-section\">\n <div class=\"heading4 table-title\">${name}</div>\n <api-operation-document \n .domainId=\"${operation.id}\"\n .operation=\"${operation}\"\n .serverId=\"${this.serverId as string}\" \n .endpoint=\"${endpoint}\"\n data-domain-id=\"${operation.id}\"\n class=\"operation\"\n ></api-operation-document>\n </div>\n `;\n }\n\n protected renderResponse(): TemplateResult | string {\n const responses = this.responsesValue;\n if (!Array.isArray(responses) || !responses.length) {\n return '';\n }\n const content = html`\n ${this.renderResponseTabs(responses)}\n ${this.renderResponseContent(responses)}\n `;\n return this.paramsSectionTemplate('Responses', 'responsesOpened', content);\n }\n\n /**\n * @param responses The responses to render.\n * @returns The template for the responses selector.\n */\n protected renderResponseTabs(responses: ApiDefinitions.IApiResponse[]): TemplateResult | string {\n const { selectedStatus } = this;\n const filtered = responses.filter((item) => !!item.statusCode);\n if (!filtered.length) {\n return '';\n }\n return html`\n <div class=\"status-codes-selector\">\n <ui-tabs .selected=\"${selectedStatus}\" @select=\"${this.handleStatusCode}\" priority=\"secondary\" scrollable>\n ${filtered.map((item) => html`<ui-tab aria-controls=\"status${item.statusCode || 0}\" data-status=\"${item.statusCode || 0}\">${item.statusCode}</ui-tab>`)}\n </ui-tabs>\n </div>\n `;\n }\n\n /**\n * @param responses The responses to render.\n * @returns The template for the currently selected response.\n */\n protected renderResponseContent(responses: ApiDefinitions.IApiResponse[]): TemplateResult {\n const { selectedStatus } = this;\n const response = responses.find((item) => item.statusCode === selectedStatus);\n if (!response) {\n return html`<div class=\"empty-info\">Select a response to render the documentation.</div>`;\n }\n return html`\n <api-response-document \n .domainId=\"${response.id}\" \n .response=\"${response}\" \n class=\"method-response\"\n ></api-response-document>\n `;\n }\n\n /**\n * @returns The template for the security list section.\n */\n protected renderSecuritySection(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { showSecurity: renderSecurity, securityId } = this;\n if (!renderSecurity || !operation || !Array.isArray(operation.security) || !operation.security.length) {\n return '';\n }\n const { security } = operation;\n const content = [];\n if (security.length === 1) {\n content.push(this.renderSecurity(security[0]));\n } else if (securityId) {\n content.push(this.renderSecuritySelector(operation));\n const item = security.find(i => i.id === securityId);\n if (item) {\n content.push(this.renderSecurity(item));\n }\n }\n return this.paramsSectionTemplate('Security', 'securityOpened', content);\n }\n\n protected renderSecurity(security: ApiDefinitions.IApiSecurityRequirement): TemplateResult {\n return html`<api-security-requirement-document\n .domainId=\"${security.id}\" \n .securityRequirement=\"${security}\"\n id=\"security${security.id}\"\n\n ></api-security-requirement-document>`\n }\n\n\n protected renderSecuritySelector(operation: ApiDefinitions.IApiOperation): TemplateResult {\n const { securityId } = this;\n const { security } = operation;\n return html`\n <div class=\"security-selector\">\n <ui-tabs .selected=\"${securityId}\" @select=\"${this.handleSecuritySelection}\" scrollable selectedAttribute=\"data-id\">\n ${security.map((item) => this.renderSecurityTab(item))}\n </ui-tabs>\n </div>\n `;\n }\n\n\n protected renderSecurityTab(security: ApiDefinitions.IApiSecurityRequirement): TemplateResult {\n const { name, schemes = [], id } = security;\n let label = 'unknown';\n if (name) {\n label = name;\n } else if (schemes.length) {\n const parts = schemes.map(i => i.name).filter(i => !!i);\n if (parts.length) {\n label = parts.join('/');\n }\n }\n return html`<ui-tab data-id=\"${id}\" aria-controls=\"security${id}\" >${label}</ui-tab>`;\n }\n\n /**\n * @returns The template for the \"try it\" button.\n */\n protected renderTryIt(): TemplateResult | typeof nothing {\n if (!this.tryItButton) {\n return nothing;\n }\n return html`\n <ui-button class=\"action-button\"\n @click=\"${this.handleTryIt}\"\n type=\"filled\"\n >Try it</ui-button>\n `;\n }\n\n /**\n * @returns The template for the code snippets.\n */\n protected renderSnippets(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n if (!this.renderCodeSnippets || this.asyncApi) {\n return '';\n }\n const request: IHttpRequest = {\n url: this.snippetsUri || '',\n headers: this.snippetsHeadersValue,\n method: (operation.method || '').toUpperCase(),\n payload: this.snippetsPayloadValue,\n };\n const content = html`<http-snippets .request=\"${request}\"></http-snippets>`;\n return this.paramsSectionTemplate('Code snippets', 'snippetsOpened', content);\n }\n}\n"]}
1
+ {"version":3,"file":"ApiOperationDocument.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiOperationDocument.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { AmfShapes, ApiDefinitions, ApiSchemaGenerator, ApiSchemaValues, AmfNamespace, IHttpRequest } from '@api-client/core/build/browser.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { QueryParameterProcessor } from '../../amf/lib/QueryParameterProcessor.js';\nimport { ApiDocumentationBase } from './ApiDocumentationBase.js';\nimport { Events } from '../../events/amf/Events.js';\nimport { joinTraitNames } from '../../amf/lib/Utils.js';\nimport * as UrlLib from '../../amf/lib/UrlUtils.js';\nimport { tablePropertyTemplate } from './SchemaCommonTemplates.js';\nimport ApiRequestDocumentElement from './ApiRequestDocument.element.js';\nimport { TabSelectionDetail } from '../../ui/tabs/UiTabs.js';\nimport '../../define/amf/api-request-document.js';\nimport '../../define/amf/api-response-document.js';\nimport '../../define/amf/api-security-requirement-document.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-tabs.js';\nimport '../../define/ui/ui-tab.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/http/http-snippets.js';\n\n/**\n * A web component that renders the documentation page for an API operation built from \n * the AMF graph model.\n * \n * @fires tryit\n */\nexport default class ApiOperationDocument extends ApiDocumentationBase {\n protected endpointValue?: ApiDefinitions.IApiEndPoint;\n\n protected operationValue?: ApiDefinitions.IApiOperation;\n\n protected serversValue?: ApiDefinitions.IApiServer[];\n\n protected responsesValue?: ApiDefinitions.IApiResponse[];\n\n protected serverIdValue?: string;\n\n protected baseUriValue?: string;\n\n protected urlValue?: string;\n\n protected versionValue?: string;\n\n protected protocolsValue?: string[];\n\n protected snippetsPayloadValue?: string;\n\n protected snippetsHeadersValue?: string;\n\n protected snippetsParametersValue?: string;\n\n /** \n * The id of the currently selected server to use to construct the URL.\n * If not set a first server in the API servers array is used.\n * @attribute\n */\n @property({ type: String, reflect: true })\n get serverId(): string | undefined {\n return this.serverIdValue;\n }\n\n set serverId(value: string | undefined) {\n const old = this.serverIdValue;\n if (old === value) {\n return;\n }\n this.serverIdValue = value;\n this.computeUrlValue();\n this.computeParametersValue();\n this.requestUpdate();\n }\n\n /**\n * The computed list of servers.\n */\n get servers(): ApiDefinitions.IApiServer[] | undefined {\n return this.serversValue;\n }\n\n /**\n * The current server in use.\n */\n get server(): ApiDefinitions.IApiServer | undefined {\n const servers = this.serversValue;\n const serverId = this.serverIdValue;\n let server;\n if (Array.isArray(servers) && servers.length) {\n if (serverId) {\n server = servers.find((item) => item.id === serverId);\n } else {\n [server] = servers;\n }\n }\n return server;\n }\n\n get operation(): ApiDefinitions.IApiOperation | undefined {\n return this.operationValue;\n }\n\n set operation(value) {\n const old = this.operationValue;\n if (old === value) {\n return;\n }\n this.operationValue = value;\n this.processGraph();\n }\n\n get endpoint(): ApiDefinitions.IApiEndPoint | undefined {\n return this.endpointValue;\n }\n\n set endpoint(value) {\n const old = this.endpointValue;\n if (old === value) {\n return;\n }\n this.endpointValue = value;\n this.computeUrlValue();\n this.computeParametersValue();\n this.requestUpdate();\n }\n\n /**\n * A property to set to override AMF's model base URI information.\n * When this property is set, the `endpointUri` property is recalculated.\n * @attribute\n */\n @property({ type: String })\n get baseUri(): string | undefined {\n return this.baseUriValue;\n }\n\n set baseUri(value) {\n const old = this.baseUriValue;\n if (old === value) {\n return;\n }\n this.baseUriValue = value;\n this.computeUrlValue();\n this.computeParametersValue();\n this.requestUpdate();\n }\n\n /**\n * The computed URI for the endpoint.\n */\n get endpointUri(): string | undefined {\n return this.urlValue;\n }\n\n get snippetsUri(): string {\n const base = this.urlValue || '';\n const query = this.snippetsParametersValue || '';\n return `${base}${query}`\n }\n\n /**\n * The computed list of responses for this operation.\n */\n get responses(): ApiDefinitions.IApiResponse[] | undefined {\n return this.responsesValue;\n }\n\n /**\n * The API's protocols.\n */\n get protocols(): string[] | undefined {\n return this.protocolsValue;\n }\n\n\n get version(): string | undefined {\n return this.versionValue;\n }\n\n /** \n * The domain id of the currently selected security to render.\n * This is only used when a multiple security schemes are applied to the operation.\n * @attribute\n */\n @property({ type: String, reflect: true }) securityId?: string;\n\n /** \n * When set it opens the response section\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) responsesOpened?: boolean;\n\n /** \n * When set it opens the security section\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) securityOpened?: boolean;\n\n /** \n * When set it opens the code snippets section\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) snippetsOpened?: boolean;\n\n /** \n * The selected status code in the responses section.\n * @attribute\n */\n @property({ type: String }) selectedStatus?: string;\n\n /** \n * Whether the callbacks section is opened.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) callbacksOpened?: boolean;\n\n /** \n * When set it renders the \"try it\" button that dispatches the `tryit` event.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) tryItButton?: boolean;\n\n /** \n * When set it renders the view optimised for asynchronous API operation.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) asyncApi?: boolean;\n\n /**\n * When set it renders code examples section is the documentation\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) renderCodeSnippets?: boolean;\n\n /**\n * When set it renders security documentation when applicable\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) showSecurity?: boolean;\n\n /** \n * The currently rendered request panel mime type.\n * @attribute\n */\n @property({ type: String }) requestMimeType?: string;\n\n /** \n * Optional. The parent endpoint id. When set it uses this value to query for the endpoint\n * instead of querying for a parent through the operation id.\n * Also, when `endpoint` is set and the `endpointId` match then it ignores querying for \n * the endpoint.\n * @attribute\n */\n @property({ type: String }) endpointId?: string;\n\n override async processGraph(): Promise<void> {\n await this.queryEndpoint();\n await this.queryOperation();\n await this.queryServers();\n await this.queryProtocols();\n await this.queryResponses();\n this.preselectResponse();\n this.preselectSecurity();\n this.computeUrlValue();\n this.computeParametersValue();\n this.computeSnippetsPayload();\n this.computeSnippetsHeaders();\n this.requestUpdate();\n await this.updateComplete;\n this.dispatchEvent(new Event('graphload'));\n }\n\n /**\n * Queries the store for the operation data, when needed.\n */\n async queryOperation(): Promise<void> {\n const { domainId } = this;\n if (!domainId) {\n // this.operationValue = undefined;\n return;\n }\n if (this.operationValue && this.operationValue.id === domainId) {\n // in case the operation model was provided via the property setter.\n return;\n }\n try {\n const endpointId = this.endpointValue && this.endpointValue.id;\n const info = await Events.Operation.get(this, domainId, endpointId);\n this.operationValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API operation data: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries the store for the endpoint data.\n */\n async queryEndpoint(): Promise<void> {\n const { domainId, endpointId } = this;\n if (!domainId) {\n // this.endpointValue = undefined;\n return;\n }\n if (this.endpointValue && this.endpointValue.id === endpointId) {\n // in case the endpoint model was provided via the property setter.\n return;\n }\n this.endpointValue = undefined;\n try {\n const info = await (endpointId ? Events.Endpoint.get(this, endpointId) : Events.Operation.getParent(this, domainId));\n this.endpointValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API endpoint data: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries for the current servers value.\n */\n async queryServers(): Promise<void> {\n const { domainId } = this;\n const endpointId = this.endpointValue && this.endpointValue.id;\n try {\n const info = await Events.Server.query(this, {\n endpointId,\n methodId: domainId,\n });\n this.serversValue = info;\n } catch (e) {\n const ex = e as Error;\n this.serversValue = undefined;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API servers: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries the API store for the API protocols list.\n */\n async queryProtocols(): Promise<void> {\n this.protocolsValue = undefined;\n try {\n const info = await Events.Api.protocols(this);\n this.protocolsValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API protocols list: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries the API store for the API version value.\n */\n async queryVersion(): Promise<void> {\n this.versionValue = undefined;\n try {\n const info = await Events.Api.version(this);\n this.versionValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API version value: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Queries for the responses data of the current operation.\n */\n async queryResponses(): Promise<void> {\n this.responsesValue = undefined;\n const { operation } = this;\n if (!operation) {\n return;\n }\n const { responses = [] } = operation;\n if (!responses.length) {\n return;\n }\n this.responsesValue = responses;\n }\n\n /**\n * Updates the `selectedStatus` if not selected or the current selection doesn't \n * exists in the current list of responses.\n */\n protected preselectResponse(): void {\n const responses = this.responsesValue;\n if (!Array.isArray(responses) || !responses.length) {\n return;\n }\n responses.sort((a, b) => {\n if (a.statusCode === b.statusCode) {\n return 0;\n }\n return Number(a.statusCode) > Number(b.statusCode) ? 1 : -1;\n });\n const { selectedStatus } = this;\n if (!selectedStatus) {\n this.selectedStatus = responses[0].statusCode;\n return;\n }\n const selected = responses.find((item) => item.statusCode === selectedStatus);\n if (selected) {\n return;\n }\n this.selectedStatus = responses[0].statusCode;\n }\n\n /**\n * Updates the `securityId` if not selected or the current selection doesn't \n * exists in the current list of security.\n */\n protected preselectSecurity(): void {\n const { operation, showSecurity: renderSecurity, securityId } = this;\n if (!renderSecurity || !operation || !Array.isArray(operation.security) || !operation.security.length) {\n return;\n }\n if (!securityId) {\n this.securityId = operation.security[0].id;\n return;\n }\n const selected = operation.security.find((item) => item.id === securityId);\n if (selected) {\n return;\n }\n this.securityId = operation.security[0].id;\n }\n\n /**\n * Computes the URL value for the current serves, selected server, and endpoint's path.\n */\n protected computeUrlValue(): void {\n if (this.asyncApi) {\n return;\n }\n const { protocols, version, server, baseUri } = this;\n const endpoint = this.endpointValue;\n const url = UrlLib.computeEndpointUri({ baseUri, server, endpoint, protocols, version, });\n this.urlValue = url;\n }\n\n /**\n * Computes query parameters for the code snippets.\n */\n protected computeParametersValue(): void {\n this.snippetsParametersValue = undefined;\n const { operation } = this;\n if (!operation) {\n return;\n }\n const { request } = operation;\n if (!request) {\n return;\n }\n const { queryParameters, queryString } = request;\n let params: ApiDefinitions.IApiParameter[] | undefined;\n if (Array.isArray(queryParameters) && queryParameters.length) {\n params = queryParameters;\n } else if (queryString) {\n const factory = new QueryParameterProcessor();\n const items = factory.collectOperationParameters(request.queryString as AmfShapes.IShapeUnion, 'query');\n if (Array.isArray(items) && items.length) {\n params = items.map(i => i.parameter);\n }\n }\n if (!params || !params.length) {\n return;\n }\n const qp: Record<string, string> = {}\n params.forEach((param) => {\n const { required, schema, paramName, name } = param;\n if (!required) {\n return;\n }\n const parameterName = paramName || name;\n if (!parameterName) {\n return;\n }\n const anySchema = schema as AmfShapes.IApiAnyShape;\n const { defaultValueStr, examples = [] } = anySchema;\n if (defaultValueStr) {\n qp[parameterName] = defaultValueStr;\n } else if (examples.length) {\n const exp = examples.find(e => e.value);\n if (exp && exp.value) {\n qp[parameterName] = exp.value;\n }\n } else {\n const value = ApiSchemaValues.generateDefaultValue(schema as AmfShapes.IApiScalarShape);\n if (value || value === false || value === 0 || value === null) {\n qp[parameterName] = value;\n }\n // if (typeof value === 'undefined') {\n // qp[parameterName] = '';\n // } else {\n // qp[parameterName] = value;\n // }\n }\n });\n const value = UrlLib.applyUrlParameters('', qp, true);\n this.snippetsParametersValue = value;\n }\n\n /**\n * Computes payload value for the code snippets.\n */\n protected computeSnippetsPayload(): void {\n this.snippetsPayloadValue = undefined\n if (this.asyncApi) {\n return;\n }\n const { operation, requestMimeType } = this;\n if (!operation || !requestMimeType) {\n return;\n }\n const { request } = operation;\n if (!request) {\n return;\n }\n const { payloads = [] } = request;\n if (!payloads.length) {\n return;\n }\n const payload = payloads.find(p => p.mediaType === requestMimeType);\n if (!payload) {\n return;\n }\n const { examples = [], schema } = payload;\n let examplesCopy = [...examples];\n const anySchema = schema as AmfShapes.IApiAnyShape;\n if (Array.isArray(anySchema.examples) && anySchema.examples.length) {\n examplesCopy = examplesCopy.concat(anySchema.examples);\n }\n examplesCopy = examplesCopy.filter((i) => !!i.value || !!i.structuredValue);\n let payloadValue;\n if (examplesCopy.length) {\n const example = examplesCopy.find(e => !!e.value);\n if (example) {\n payloadValue = this.evaluateExample(example, requestMimeType);\n }\n }\n if (!payloadValue) {\n payloadValue = ApiSchemaGenerator.asExample(schema as AmfShapes.IShapeUnion, requestMimeType, {\n renderExamples: true,\n renderOptional: true,\n });\n }\n if (payloadValue && payloadValue.renderValue) {\n this.snippetsPayloadValue = payloadValue.renderValue as string;\n }\n }\n\n /**\n * Computes headers value for the code snippets.\n */\n protected computeSnippetsHeaders(): void {\n this.snippetsHeadersValue = undefined;\n if (this.asyncApi) {\n return;\n }\n const { operation, requestMimeType } = this;\n if (!operation) {\n return;\n }\n const { request, method } = operation;\n if (!request) {\n return;\n }\n const { headers = [] } = request;\n const parts = [];\n let hasMime = false;\n headers.forEach((param) => {\n const { paramName, name, schema } = param;\n if (!schema || !schema.types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape)) {\n return;\n }\n const typedScalar = schema as AmfShapes.IApiScalarShape;\n let value = ApiSchemaValues.readInputValue(param, typedScalar, { fromExamples: true });\n if (Array.isArray(value)) {\n value = value.join(',');\n }\n if (typeof value !== 'undefined') {\n const headerName = paramName || name || '';\n if (headerName.toLowerCase() === 'content-type') {\n hasMime = true;\n }\n const header = `${paramName || name}: ${value}`;\n parts.push(header);\n }\n });\n if (!hasMime && requestMimeType && method !== 'get') {\n parts.push(`content-type: ${requestMimeType}`);\n }\n this.snippetsHeadersValue = parts.join('\\n');\n }\n\n /**\n * A handler for the status code tab selection.\n */\n protected handleStatusCode(e: CustomEvent<TabSelectionDetail>): void {\n const { item } = e.detail;\n const { status } = item.dataset;\n if (!status) {\n return;\n }\n this.selectedStatus = status;\n }\n\n /**\n * A handler for the status code tab selection.\n */\n protected handleSecuritySelection(e: CustomEvent<TabSelectionDetail>): void {\n const { item } = e.detail;\n const { id } = item.dataset;\n if (!id) {\n return;\n }\n this.securityId = id;\n }\n\n /**\n * A handler for the try it button click.\n * It dispatches the `tryit` custom event.\n */\n protected handleTryIt(): void {\n const { operation, asyncApi } = this;\n if (!operation || asyncApi) {\n return;\n }\n const { id } = operation;\n const detail = { id };\n const config = {\n bubbles: true,\n composed: true,\n detail,\n };\n this.dispatchEvent(new CustomEvent('tryit', config));\n }\n\n /**\n * A handler for the request panel mime type change.\n */\n protected handleRequestMimeChange(e: Event): void {\n const panel = e.target as ApiRequestDocumentElement;\n this.requestMimeType = panel.mimeType;\n this.computeSnippetsPayload();\n this.computeSnippetsHeaders();\n this.requestUpdate();\n }\n\n override render(): TemplateResult {\n const op = this.operationValue;\n if (!op) {\n return html``;\n }\n return html`\n ${this.renderTitle(op)}\n ${this.renderSummary(op)}\n ${this.renderUrl(op)}\n ${this.renderTraits(op)}\n ${this.renderDeprecated(op)}\n ${this.descriptionTemplate(op.description)}\n ${this.renderMetaData(op)}\n ${this.customDomainPropertiesTemplate(op.customDomainProperties)}\n ${this.renderRequestTemplate()}\n ${this.renderCallbacks(op)}\n ${this.renderSnippets(op)}\n ${this.renderResponse()}\n ${this.renderSecuritySection(op)}\n `;\n }\n\n /**\n * @returns The template for the Operation title.\n */\n protected renderTitle(operation: ApiDefinitions.IApiOperation): TemplateResult {\n const { name, method, deprecated } = operation;\n const label = name || method;\n const labelClasses = {\n label: true,\n 'text-selectable': true,\n deprecated,\n };\n const subTitle = this.asyncApi ? 'Async operation' : 'API operation';\n return html`\n <div class=\"operation-header\">\n <div class=\"operation-title\">\n <span class=\"${classMap(labelClasses)}\">${label}</span>\n ${this.renderTryIt()}\n </div>\n <p class=\"sub-header\">${subTitle}</p>\n </div>\n `;\n }\n\n /**\n * @returns The template for the Operation traits.\n */\n protected renderTraits(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { extends: traits } = operation;\n if (!traits || !traits.length) {\n return '';\n }\n const value = joinTraitNames(traits);\n return html`\n <section class=\"extensions\">\n <p>Mixes in <span class=\"trait-name text-selectable\">${value}</span>.</p>\n </section>`;\n }\n\n /**\n * @returns The template for the operation summary filed.\n */\n protected renderSummary(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { summary } = operation;\n if (!summary) {\n return '';\n }\n return html`\n <p class=\"summary text-selectable\">${summary}</p>\n `;\n }\n\n /**\n * @returns The template for the Operation meta information.\n */\n protected renderMetaData(operation: ApiDefinitions.IApiOperation): TemplateResult[] | string {\n const { operationId } = operation;\n const result = [];\n if (operationId) {\n result.push(tablePropertyTemplate('Operation ID', operationId, 'operation-id'));\n }\n if (result.length) {\n return result;\n }\n return '';\n }\n\n /**\n * @returns The template for the deprecated message.\n */\n protected renderDeprecated(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { deprecated } = operation;\n if (!deprecated) {\n return '';\n }\n return html`\n <div class=\"deprecated-message\">\n <ui-icon icon=\"warning\"></ui-icon>\n <span class=\"message text-selectable\">\n This operation is marked as deprecated.\n </span>\n </div>\n `;\n }\n\n /**\n * @returns The template for the operation's URL.\n */\n protected renderUrl(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n if (this.asyncApi) {\n return '';\n }\n const url = this.urlValue;\n const { method } = operation;\n return html`\n <div class=\"endpoint-url\">\n <div class=\"http-label\" data-method=\"${method}\">${method}</div>\n <div class=\"url-value text-selectable\">${url}</div>\n </div>\n `;\n }\n\n /**\n * @returns The template for the operation's request documentation element.\n */\n protected renderRequestTemplate(): TemplateResult | string {\n const { operation } = this;\n if (!operation) {\n return '';\n }\n const { server, endpoint } = this;\n return html`\n <api-request-document \n .domainId=\"${operation.request && operation.request.id}\" \n .request=\"${operation.request}\" \n .server=${server} \n .endpoint=${endpoint}\n @mimechange=\"${this.handleRequestMimeChange}\"\n ></api-request-document>\n `;\n }\n\n protected renderCallbacks(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { callbacks } = operation;\n if (!Array.isArray(callbacks) || !callbacks.length) {\n return '';\n }\n const content = callbacks.map(callback => this.renderCallback(callback));\n return this.paramsSectionTemplate('Callbacks', 'callbacksOpened', content);\n }\n\n /**\n * @returns The template for the operation's request documentation element.\n */\n protected renderCallback(callback: ApiDefinitions.IApiCallback): TemplateResult {\n const { name, endpoint } = callback;\n if (!endpoint) {\n return html``;\n }\n const { operations = [] } = endpoint;\n const [operation] = operations;\n if (!operation) {\n return html``;\n }\n return html`\n <div class=\"callback-section\">\n <div class=\"heading4 table-title\">${name}</div>\n <api-operation-document \n .domainId=\"${operation.id}\"\n .operation=\"${operation}\"\n .serverId=\"${this.serverId as string}\" \n .endpoint=\"${endpoint}\"\n data-domain-id=\"${operation.id}\"\n class=\"operation\"\n ></api-operation-document>\n </div>\n `;\n }\n\n protected renderResponse(): TemplateResult | string {\n const responses = this.responsesValue;\n if (!Array.isArray(responses) || !responses.length) {\n return '';\n }\n const content = html`\n ${this.renderResponseTabs(responses)}\n ${this.renderResponseContent(responses)}\n `;\n return this.paramsSectionTemplate('Responses', 'responsesOpened', content);\n }\n\n /**\n * @param responses The responses to render.\n * @returns The template for the responses selector.\n */\n protected renderResponseTabs(responses: ApiDefinitions.IApiResponse[]): TemplateResult | string {\n const { selectedStatus } = this;\n const filtered = responses.filter((item) => !!item.statusCode);\n if (!filtered.length) {\n return '';\n }\n return html`\n <div class=\"status-codes-selector\">\n <ui-tabs .selected=\"${selectedStatus}\" @select=\"${this.handleStatusCode}\" priority=\"secondary\" scrollable>\n ${filtered.map((item) => html`<ui-tab aria-controls=\"status${item.statusCode || 0}\" data-status=\"${item.statusCode || 0}\">${item.statusCode}</ui-tab>`)}\n </ui-tabs>\n </div>\n `;\n }\n\n /**\n * @param responses The responses to render.\n * @returns The template for the currently selected response.\n */\n protected renderResponseContent(responses: ApiDefinitions.IApiResponse[]): TemplateResult {\n const { selectedStatus } = this;\n const response = responses.find((item) => item.statusCode === selectedStatus);\n if (!response) {\n return html`<div class=\"empty-info\">Select a response to render the documentation.</div>`;\n }\n return html`\n <api-response-document \n .domainId=\"${response.id}\" \n .response=\"${response}\" \n class=\"method-response\"\n ></api-response-document>\n `;\n }\n\n /**\n * @returns The template for the security list section.\n */\n protected renderSecuritySection(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n const { showSecurity: renderSecurity, securityId } = this;\n if (!renderSecurity || !operation || !Array.isArray(operation.security) || !operation.security.length) {\n return '';\n }\n const { security } = operation;\n const content = [];\n if (security.length === 1) {\n content.push(this.renderSecurity(security[0]));\n } else if (securityId) {\n content.push(this.renderSecuritySelector(operation));\n const item = security.find(i => i.id === securityId);\n if (item) {\n content.push(this.renderSecurity(item));\n }\n }\n return this.paramsSectionTemplate('Security', 'securityOpened', content);\n }\n\n protected renderSecurity(security: ApiDefinitions.IApiSecurityRequirement): TemplateResult {\n return html`<api-security-requirement-document\n .domainId=\"${security.id}\" \n .securityRequirement=\"${security}\"\n id=\"security${security.id}\"\n\n ></api-security-requirement-document>`\n }\n\n\n protected renderSecuritySelector(operation: ApiDefinitions.IApiOperation): TemplateResult {\n const { securityId } = this;\n const { security } = operation;\n return html`\n <div class=\"security-selector\">\n <ui-tabs .selected=\"${securityId}\" @select=\"${this.handleSecuritySelection}\" scrollable selectedAttribute=\"data-id\">\n ${security.map((item) => this.renderSecurityTab(item))}\n </ui-tabs>\n </div>\n `;\n }\n\n\n protected renderSecurityTab(security: ApiDefinitions.IApiSecurityRequirement): TemplateResult {\n const { name, schemes = [], id } = security;\n let label = 'unknown';\n if (name) {\n label = name;\n } else if (schemes.length) {\n const parts = schemes.map(i => i.name).filter(i => !!i);\n if (parts.length) {\n label = parts.join('/');\n }\n }\n return html`<ui-tab data-id=\"${id}\" aria-controls=\"security${id}\" >${label}</ui-tab>`;\n }\n\n /**\n * @returns The template for the \"try it\" button.\n */\n protected renderTryIt(): TemplateResult | typeof nothing {\n if (!this.tryItButton) {\n return nothing;\n }\n return html`\n <ui-button class=\"action-button\"\n @click=\"${this.handleTryIt}\"\n type=\"filled\"\n >Try it</ui-button>\n `;\n }\n\n /**\n * @returns The template for the code snippets.\n */\n protected renderSnippets(operation: ApiDefinitions.IApiOperation): TemplateResult | string {\n if (!this.renderCodeSnippets || this.asyncApi) {\n return '';\n }\n const request: IHttpRequest = {\n url: this.snippetsUri || '',\n headers: this.snippetsHeadersValue,\n method: (operation.method || '').toUpperCase(),\n payload: this.snippetsPayloadValue,\n };\n const content = html`<http-snippets .request=\"${request}\"></http-snippets>`;\n return this.paramsSectionTemplate('Code snippets', 'snippetsOpened', content);\n }\n}\n"]}
@@ -6,9 +6,6 @@ import { ApiDocumentationBase } from './ApiDocumentationBase.js';
6
6
  * A web component that renders the documentation for a single request / response parameter.
7
7
  */
8
8
  export default class ApiParameterDocument extends ApiDocumentationBase {
9
- parameterValue;
10
- schemaValue;
11
- typeLabelValue;
12
9
  get parameter() {
13
10
  return this.parameterValue;
14
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ApiParameterDocument.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiParameterDocument.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit';\nimport { AmfShapes, ApiDefinitions } from '@api-client/core/build/browser.js';\nimport { readPropertyTypeLabel } from '../../amf/lib/Utils.js';\nimport { paramNameTemplate, typeValueTemplate, detailsTemplate, pillTemplate } from './SchemaCommonTemplates.js';\nimport { ApiDocumentationBase } from './ApiDocumentationBase.js';\n\n/**\n * A web component that renders the documentation for a single request / response parameter.\n */\nexport default class ApiParameterDocument extends ApiDocumentationBase {\n protected parameterValue?: ApiDefinitions.IApiParameter;\n\n protected schemaValue?: AmfShapes.IShapeUnion;\n\n protected typeLabelValue?: string;\n\n get parameter(): ApiDefinitions.IApiParameter | undefined {\n return this.parameterValue;\n }\n\n set parameter(value) {\n const old = this.parameterValue;\n if (old === value) {\n return;\n }\n this.parameterValue = value;\n this.processGraph();\n }\n\n /**\n * Prepares the values to be rendered.\n */\n override async processGraph(): Promise<void> {\n const { parameter } = this;\n if (!parameter) {\n return;\n }\n await this.querySchema();\n this.computeParamType();\n this.requestUpdate();\n await this.updateComplete;\n }\n\n /**\n * Reads the schema from the parameter.\n */\n async querySchema(): Promise<void> {\n this.schemaValue = undefined;\n const param = this.parameterValue;\n if (!param || !param.schema) {\n return;\n }\n this.schemaValue = param.schema;\n }\n\n /**\n * Computes the schema type label value to render in the type view.\n */\n protected computeParamType(): void {\n const schema = this.schemaValue;\n if (!schema) {\n this.typeLabelValue = undefined;\n return;\n }\n const label = readPropertyTypeLabel(schema);\n this.typeLabelValue = label;\n }\n\n override render(): TemplateResult {\n const param = this.parameterValue;\n if (!param) {\n return html``;\n }\n const { name, required } = param;\n const type = this.typeLabelValue;\n const schema = this.schemaValue;\n return html`\n <div class=\"property-container simple\">\n <div class=\"name-column\">\n ${paramNameTemplate(name, required)}\n <span class=\"headline-separator\"></span>\n ${typeValueTemplate(type)}\n ${required ? pillTemplate('Required', 'This property is required.') : ''}\n </div>\n <div class=\"description-column\">\n ${this.descriptionTemplate()}\n </div>\n <div class=\"details-column\">\n ${detailsTemplate(schema)}\n </div>\n </div>\n `;\n }\n\n /**\n * @returns The template for the parameter description. \n */\n protected override descriptionTemplate(): TemplateResult | string {\n const schema = this.schemaValue;\n if (schema && schema.description) {\n return super.descriptionTemplate(schema.description);\n }\n const param = this.parameterValue;\n if (param && param.description) {\n return super.descriptionTemplate(param.description);\n }\n return '';\n }\n}\n"]}
1
+ {"version":3,"file":"ApiParameterDocument.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiParameterDocument.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit';\nimport { AmfShapes, ApiDefinitions } from '@api-client/core/build/browser.js';\nimport { readPropertyTypeLabel } from '../../amf/lib/Utils.js';\nimport { paramNameTemplate, typeValueTemplate, detailsTemplate, pillTemplate } from './SchemaCommonTemplates.js';\nimport { ApiDocumentationBase } from './ApiDocumentationBase.js';\n\n/**\n * A web component that renders the documentation for a single request / response parameter.\n */\nexport default class ApiParameterDocument extends ApiDocumentationBase {\n protected parameterValue?: ApiDefinitions.IApiParameter;\n\n protected schemaValue?: AmfShapes.IShapeUnion;\n\n protected typeLabelValue?: string;\n\n get parameter(): ApiDefinitions.IApiParameter | undefined {\n return this.parameterValue;\n }\n\n set parameter(value) {\n const old = this.parameterValue;\n if (old === value) {\n return;\n }\n this.parameterValue = value;\n this.processGraph();\n }\n\n /**\n * Prepares the values to be rendered.\n */\n override async processGraph(): Promise<void> {\n const { parameter } = this;\n if (!parameter) {\n return;\n }\n await this.querySchema();\n this.computeParamType();\n this.requestUpdate();\n await this.updateComplete;\n }\n\n /**\n * Reads the schema from the parameter.\n */\n async querySchema(): Promise<void> {\n this.schemaValue = undefined;\n const param = this.parameterValue;\n if (!param || !param.schema) {\n return;\n }\n this.schemaValue = param.schema;\n }\n\n /**\n * Computes the schema type label value to render in the type view.\n */\n protected computeParamType(): void {\n const schema = this.schemaValue;\n if (!schema) {\n this.typeLabelValue = undefined;\n return;\n }\n const label = readPropertyTypeLabel(schema);\n this.typeLabelValue = label;\n }\n\n override render(): TemplateResult {\n const param = this.parameterValue;\n if (!param) {\n return html``;\n }\n const { name, required } = param;\n const type = this.typeLabelValue;\n const schema = this.schemaValue;\n return html`\n <div class=\"property-container simple\">\n <div class=\"name-column\">\n ${paramNameTemplate(name, required)}\n <span class=\"headline-separator\"></span>\n ${typeValueTemplate(type)}\n ${required ? pillTemplate('Required', 'This property is required.') : ''}\n </div>\n <div class=\"description-column\">\n ${this.descriptionTemplate()}\n </div>\n <div class=\"details-column\">\n ${detailsTemplate(schema)}\n </div>\n </div>\n `;\n }\n\n /**\n * @returns The template for the parameter description. \n */\n protected override descriptionTemplate(): TemplateResult | string {\n const schema = this.schemaValue;\n if (schema && schema.description) {\n return super.descriptionTemplate(schema.description);\n }\n const param = this.parameterValue;\n if (param && param.description) {\n return super.descriptionTemplate(param.description);\n }\n return '';\n }\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  import { AmfNamespace } from '@api-client/core/build/browser.js';
2
2
  import ApiSecurityDocumentElement from "./ApiSecurityDocument.element.js";
3
3
  export default class ApiParametrizedSecurityScheme extends ApiSecurityDocumentElement {
4
- settingsValue;
5
4
  get settings() {
6
5
  return this.settingsValue;
7
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ApiParametrizedSecurityScheme.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiParametrizedSecurityScheme.element.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,0BAA0B,MAAM,kCAAkC,CAAC;AAE1E,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,0BAA0B;IACzE,aAAa,CAAuD;IAE9E,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,OAAO;SACR;QACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACM,gBAAgB,CAAC,MAAyC;QACjE,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,eAAe,EAAE;YACpB,OAAO,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SACvC;QACD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,EAAE,CAAC;SACX;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;QAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAErE,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YACzE,OAAO,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;SACpD;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE;YAChF,OAAO,IAAI,CAAC,6BAA6B,CAAC,cAAc,CAAC,CAAC;SAC3D;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YACzE,OAAO,IAAI,CAAC,sBAAsB,CAAC,cAA2D,CAAC,CAAC;SACjG;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACO,aAAa,CAAC,OAAiD,EAAE,MAAgD;QACzH,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAA8C,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACzD,OAAO;aACR;YACD,8DAA8D;YAC9D,MAAM,CAAC,GAAqD,CAAC,GAAI,OAAe,CAAC,GAAG,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF","sourcesContent":["import { TemplateResult } from 'lit';\nimport { ApiDefinitions, AmfNamespace } from '@api-client/core/build/browser.js';\nimport ApiSecurityDocumentElement from \"./ApiSecurityDocument.element.js\";\n\nexport default class ApiParametrizedSecurityScheme extends ApiSecurityDocumentElement {\n protected settingsValue: ApiDefinitions.IApiSecuritySettingsUnion | undefined;\n\n get settings(): ApiDefinitions.IApiSecuritySettingsUnion | undefined {\n return this.settingsValue;\n }\n\n set settings(value) {\n const old = this.settingsValue;\n if (old === value) {\n return;\n }\n this.settingsValue = value;\n this.requestUpdate();\n }\n\n /**\n * @returns The template for the security settings, when required.\n */\n override settingsTemplate(scheme: ApiDefinitions.IApiSecurityScheme): TemplateResult | string {\n const appliedSettings = this.settingsValue;\n if (!appliedSettings) {\n return super.settingsTemplate(scheme);\n }\n const { settings } = scheme;\n if (!settings) {\n return '';\n }\n const { types } = settings;\n const mergedSettings = this.mergeSettings(appliedSettings, settings);\n\n if (types.includes(AmfNamespace.aml.vocabularies.security.ApiKeySettings)) {\n return this.apiKeySettingsTemplate(mergedSettings);\n }\n if (types.includes(AmfNamespace.aml.vocabularies.security.OpenIdConnectSettings)) {\n return this.openIdConnectSettingsTemplate(mergedSettings);\n }\n if (types.includes(AmfNamespace.aml.vocabularies.security.OAuth2Settings)) {\n return this.oAuth2SettingsTemplate(mergedSettings as ApiDefinitions.IApiSecurityOAuth2Settings);\n }\n return '';\n }\n\n /**\n * @param applied The settings applied to the current object\n * @param scheme The settings defined in the scheme\n * @returns The merged settings to render.\n */\n protected mergeSettings(applied: ApiDefinitions.IApiSecuritySettingsUnion, scheme: ApiDefinitions.IApiSecuritySettingsUnion): ApiDefinitions.IApiSecuritySettingsUnion {\n const result = { ...scheme } as ApiDefinitions.IApiSecuritySettingsUnion;\n Object.keys(applied).forEach((key) => {\n if (['id', 'types', 'additionalProperties'].includes(key)) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result[key as keyof ApiDefinitions.IApiSecuritySettingsUnion] = (applied as any)[key];\n });\n return result;\n }\n}\n"]}
1
+ {"version":3,"file":"ApiParametrizedSecurityScheme.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiParametrizedSecurityScheme.element.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,0BAA0B,MAAM,kCAAkC,CAAC;AAE1E,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,0BAA0B;IAGnF,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,OAAO;SACR;QACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACM,gBAAgB,CAAC,MAAyC;QACjE,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,eAAe,EAAE;YACpB,OAAO,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;SACvC;QACD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,EAAE,CAAC;SACX;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC;QAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAErE,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YACzE,OAAO,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;SACpD;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE;YAChF,OAAO,IAAI,CAAC,6BAA6B,CAAC,cAAc,CAAC,CAAC;SAC3D;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YACzE,OAAO,IAAI,CAAC,sBAAsB,CAAC,cAA2D,CAAC,CAAC;SACjG;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;OAIG;IACO,aAAa,CAAC,OAAiD,EAAE,MAAgD;QACzH,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAA8C,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACzD,OAAO;aACR;YACD,8DAA8D;YAC9D,MAAM,CAAC,GAAqD,CAAC,GAAI,OAAe,CAAC,GAAG,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF","sourcesContent":["import { TemplateResult } from 'lit';\nimport { ApiDefinitions, AmfNamespace } from '@api-client/core/build/browser.js';\nimport ApiSecurityDocumentElement from \"./ApiSecurityDocument.element.js\";\n\nexport default class ApiParametrizedSecurityScheme extends ApiSecurityDocumentElement {\n protected settingsValue: ApiDefinitions.IApiSecuritySettingsUnion | undefined;\n\n get settings(): ApiDefinitions.IApiSecuritySettingsUnion | undefined {\n return this.settingsValue;\n }\n\n set settings(value) {\n const old = this.settingsValue;\n if (old === value) {\n return;\n }\n this.settingsValue = value;\n this.requestUpdate();\n }\n\n /**\n * @returns The template for the security settings, when required.\n */\n override settingsTemplate(scheme: ApiDefinitions.IApiSecurityScheme): TemplateResult | string {\n const appliedSettings = this.settingsValue;\n if (!appliedSettings) {\n return super.settingsTemplate(scheme);\n }\n const { settings } = scheme;\n if (!settings) {\n return '';\n }\n const { types } = settings;\n const mergedSettings = this.mergeSettings(appliedSettings, settings);\n\n if (types.includes(AmfNamespace.aml.vocabularies.security.ApiKeySettings)) {\n return this.apiKeySettingsTemplate(mergedSettings);\n }\n if (types.includes(AmfNamespace.aml.vocabularies.security.OpenIdConnectSettings)) {\n return this.openIdConnectSettingsTemplate(mergedSettings);\n }\n if (types.includes(AmfNamespace.aml.vocabularies.security.OAuth2Settings)) {\n return this.oAuth2SettingsTemplate(mergedSettings as ApiDefinitions.IApiSecurityOAuth2Settings);\n }\n return '';\n }\n\n /**\n * @param applied The settings applied to the current object\n * @param scheme The settings defined in the scheme\n * @returns The merged settings to render.\n */\n protected mergeSettings(applied: ApiDefinitions.IApiSecuritySettingsUnion, scheme: ApiDefinitions.IApiSecuritySettingsUnion): ApiDefinitions.IApiSecuritySettingsUnion {\n const result = { ...scheme } as ApiDefinitions.IApiSecuritySettingsUnion;\n Object.keys(applied).forEach((key) => {\n if (['id', 'types', 'additionalProperties'].includes(key)) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result[key as keyof ApiDefinitions.IApiSecuritySettingsUnion] = (applied as any)[key];\n });\n return result;\n }\n}\n"]}
@@ -5,7 +5,6 @@ import { ApiDocumentationBase } from './ApiDocumentationBase.js';
5
5
  import { Events } from '../../events/amf/Events.js';
6
6
  import '../../define/amf/api-schema-document.js';
7
7
  export default class ApiPayloadDocument extends ApiDocumentationBase {
8
- payloadValue;
9
8
  get payload() {
10
9
  return this.payloadValue;
11
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ApiPayloadDocument.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiPayloadDocument.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ApiDefinitions } from '@api-client/core/build/browser.js';\nimport { ApiDocumentationBase } from './ApiDocumentationBase.js';\nimport { Events } from '../../events/amf/Events.js';\nimport '../../define/amf/api-schema-document.js';\n\nexport default class ApiPayloadDocument extends ApiDocumentationBase {\n protected payloadValue: ApiDefinitions.IApiPayload | undefined\n\n @property({ type: Object })\n get payload(): ApiDefinitions.IApiPayload | undefined {\n return this.payloadValue;\n }\n\n set payload(value) {\n const old = this.payloadValue;\n if (old === value) {\n return;\n }\n this.payloadValue = value;\n this.processGraph();\n }\n\n /**\n * Queries the graph store for the API Payload data.\n */\n override async processGraph(): Promise<void> {\n await this.queryPayload();\n await this.processPayload();\n this.requestUpdate();\n await this.updateComplete;\n }\n\n /**\n * Queries the store for the payload data, when needed.\n * @returns {Promise<void>}\n */\n async queryPayload(): Promise<void> {\n const { domainId } = this;\n if (!domainId) {\n // this[requestValue] = undefined;\n return;\n }\n if (this.payloadValue && this.payloadValue.id === domainId) {\n // in case the request model was provided via the property setter.\n return;\n }\n try {\n const info = await Events.Payload.get(this, domainId);\n this.payloadValue = info;\n } catch (e) {\n this.payloadValue = undefined;\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API payload data: ${ex.message}`, this.localName);\n }\n }\n\n async processPayload(): Promise<void> {\n this.examplesValue = undefined;\n const { payload } = this;\n if (!payload) {\n return;\n }\n const { mediaType = '' } = payload;\n const { examples } = payload;\n if (Array.isArray(examples) && examples.length) {\n this.examplesValue = this.evaluateExamples(examples, mediaType);\n }\n }\n\n override render(): TemplateResult {\n const { payload } = this;\n if (!payload) {\n return html``;\n }\n return html`\n ${this.renderName(payload)}\n ${this.renderMediaType(payload)}\n ${this.examplesTemplate()}\n ${this.renderSchema(payload)}\n `;\n }\n\n /**\n * @returns The template for the payload mime type.\n */\n protected renderMediaType(payload: ApiDefinitions.IApiPayload): TemplateResult | typeof nothing {\n const { mediaType } = payload;\n if (!mediaType) {\n return nothing;\n }\n return html`\n <div class=\"media-type\">\n <label>Media type:</label>\n <span>${mediaType}</span>\n </div>\n `;\n }\n\n /**\n * @returns The template for the payload name\n */\n protected renderName(payload: ApiDefinitions.IApiPayload): TemplateResult | typeof nothing {\n const { name } = payload;\n if (!name) {\n return nothing;\n }\n return html`\n <div class=\"payload-name text-selectable\">${name}</div>\n `;\n }\n\n /**\n * @returns The template for the payload's schema\n */\n protected renderSchema(payload: ApiDefinitions.IApiPayload): TemplateResult {\n const { schema, mediaType } = payload;\n if (!schema) {\n return html`<div class=\"empty-info\">Schema is not defined for this payload.</div>`;\n }\n return html`\n <api-schema-document class=\"schema-renderer\" .schema=\"${schema}\" .mimeType=\"${mediaType}\" forceExamples schemaTitle></api-schema-document>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"ApiPayloadDocument.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiPayloadDocument.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ApiDefinitions } from '@api-client/core/build/browser.js';\nimport { ApiDocumentationBase } from './ApiDocumentationBase.js';\nimport { Events } from '../../events/amf/Events.js';\nimport '../../define/amf/api-schema-document.js';\n\nexport default class ApiPayloadDocument extends ApiDocumentationBase {\n protected payloadValue: ApiDefinitions.IApiPayload | undefined\n\n @property({ type: Object })\n get payload(): ApiDefinitions.IApiPayload | undefined {\n return this.payloadValue;\n }\n\n set payload(value) {\n const old = this.payloadValue;\n if (old === value) {\n return;\n }\n this.payloadValue = value;\n this.processGraph();\n }\n\n /**\n * Queries the graph store for the API Payload data.\n */\n override async processGraph(): Promise<void> {\n await this.queryPayload();\n await this.processPayload();\n this.requestUpdate();\n await this.updateComplete;\n }\n\n /**\n * Queries the store for the payload data, when needed.\n * @returns {Promise<void>}\n */\n async queryPayload(): Promise<void> {\n const { domainId } = this;\n if (!domainId) {\n // this[requestValue] = undefined;\n return;\n }\n if (this.payloadValue && this.payloadValue.id === domainId) {\n // in case the request model was provided via the property setter.\n return;\n }\n try {\n const info = await Events.Payload.get(this, domainId);\n this.payloadValue = info;\n } catch (e) {\n this.payloadValue = undefined;\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API payload data: ${ex.message}`, this.localName);\n }\n }\n\n async processPayload(): Promise<void> {\n this.examplesValue = undefined;\n const { payload } = this;\n if (!payload) {\n return;\n }\n const { mediaType = '' } = payload;\n const { examples } = payload;\n if (Array.isArray(examples) && examples.length) {\n this.examplesValue = this.evaluateExamples(examples, mediaType);\n }\n }\n\n override render(): TemplateResult {\n const { payload } = this;\n if (!payload) {\n return html``;\n }\n return html`\n ${this.renderName(payload)}\n ${this.renderMediaType(payload)}\n ${this.examplesTemplate()}\n ${this.renderSchema(payload)}\n `;\n }\n\n /**\n * @returns The template for the payload mime type.\n */\n protected renderMediaType(payload: ApiDefinitions.IApiPayload): TemplateResult | typeof nothing {\n const { mediaType } = payload;\n if (!mediaType) {\n return nothing;\n }\n return html`\n <div class=\"media-type\">\n <label>Media type:</label>\n <span>${mediaType}</span>\n </div>\n `;\n }\n\n /**\n * @returns The template for the payload name\n */\n protected renderName(payload: ApiDefinitions.IApiPayload): TemplateResult | typeof nothing {\n const { name } = payload;\n if (!name) {\n return nothing;\n }\n return html`\n <div class=\"payload-name text-selectable\">${name}</div>\n `;\n }\n\n /**\n * @returns The template for the payload's schema\n */\n protected renderSchema(payload: ApiDefinitions.IApiPayload): TemplateResult {\n const { schema, mediaType } = payload;\n if (!schema) {\n return html`<div class=\"empty-info\">Schema is not defined for this payload.</div>`;\n }\n return html`\n <api-schema-document class=\"schema-renderer\" .schema=\"${schema}\" .mimeType=\"${mediaType}\" forceExamples schemaTitle></api-schema-document>\n `;\n }\n}\n"]}
@@ -6,80 +6,6 @@ import ApiElement from '../ApiElement.js';
6
6
  import '../../define/amf/api-request-editor.js';
7
7
  import '../../define/http/http-request-log.js';
8
8
  export default class ApiRequest extends ApiElement {
9
- /**
10
- * By default application hosting the element must set `domainId`
11
- * property. When using `api-navigation` element
12
- * by setting this property the element listens for navigation events
13
- * and updates the state
14
- * @attribute
15
- */
16
- handleNavigationEvents;
17
- /**
18
- * When set it renders the URL input above the URL parameters.
19
- * @attribute
20
- */
21
- urlEditor;
22
- /**
23
- * When set it renders a label with the computed URL.
24
- * @attribute
25
- */
26
- urlLabel;
27
- /**
28
- * A base URI for the API. To be set if RAML spec is missing `baseUri`
29
- * declaration and this produces invalid URL input. This information
30
- * is passed to the URL editor that prefixes the URL with `baseUri` value
31
- * if passed URL is a relative URL.
32
- * @attribute
33
- */
34
- baseUri;
35
- /**
36
- * OAuth2 redirect URI.
37
- * This value **must** be set in order for OAuth 1/2 to work properly.
38
- * @attribute
39
- */
40
- redirectUri;
41
- /**
42
- * If set it computes `hasOptional` property and shows checkbox in the
43
- * form to show / hide optional properties.
44
- * @attribute
45
- */
46
- allowHideOptional;
47
- /**
48
- * When set, renders "add custom" item button.
49
- * If the element is to be used without AMF model this should always
50
- * be enabled. Otherwise users won't be able to add a parameter.
51
- * @attribute
52
- */
53
- allowCustom;
54
- /**
55
- * Holds the value of the currently selected server
56
- * Data type: URI
57
- * @attribute
58
- */
59
- serverValue;
60
- /**
61
- * Holds the type of the currently selected server
62
- * Values: `server` | `slot` | `custom`
63
- * @attribute
64
- */
65
- serverType;
66
- /**
67
- * Optional property to set
68
- * If true, the server selector is not rendered
69
- * @attribute
70
- */
71
- noServerSelector;
72
- /**
73
- * Optional property to set
74
- * If true, the server selector custom base URI option is rendered
75
- * @attribute
76
- */
77
- allowCustomBaseUri;
78
- /**
79
- * List of credentials source
80
- */
81
- credentialsSource;
82
- domainIdValue;
83
9
  /**
84
10
  * The domain id (AMF's id) of an API operation.
85
11
  */
@@ -96,10 +22,6 @@ export default class ApiRequest extends ApiElement {
96
22
  this.requestUpdate('domainId', old);
97
23
  this.domainIdChanged(value);
98
24
  }
99
- /**
100
- * The latest response for the current request.
101
- */
102
- response;
103
25
  constructor() {
104
26
  super();
105
27
  this.navigationHandler = this.navigationHandler.bind(this);
@@ -1 +1 @@
1
- {"version":3,"file":"ApiRequest.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiRequest.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { IRequest, IRequestLog } from '@api-client/core/build/browser.js';\nimport { EventTypes } from '../../events/amf/EventTypes.js';\nimport { ApiNavigationEvent } from '../../events/amf/NavigationEvents.js';\nimport { Oauth2Credentials } from '../authorization/types.js';\nimport ApiElement from '../ApiElement.js';\nimport '../../define/amf/api-request-editor.js';\nimport '../../define/http/http-request-log.js';\n\nexport default class ApiRequest extends ApiElement {\n /**\n * By default application hosting the element must set `domainId`\n * property. When using `api-navigation` element\n * by setting this property the element listens for navigation events\n * and updates the state\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) handleNavigationEvents?: boolean;\n\n /**\n * When set it renders the URL input above the URL parameters.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) urlEditor?: boolean;\n\n /**\n * When set it renders a label with the computed URL.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) urlLabel?: boolean;\n \n /**\n * A base URI for the API. To be set if RAML spec is missing `baseUri`\n * declaration and this produces invalid URL input. This information\n * is passed to the URL editor that prefixes the URL with `baseUri` value\n * if passed URL is a relative URL.\n * @attribute\n */\n @property({ type: String }) baseUri?: string;\n \n /**\n * OAuth2 redirect URI.\n * This value **must** be set in order for OAuth 1/2 to work properly.\n * @attribute\n */\n @property({ type: String }) redirectUri?: string;\n\n /**\n * If set it computes `hasOptional` property and shows checkbox in the\n * form to show / hide optional properties.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) allowHideOptional?: boolean;\n\n /**\n * When set, renders \"add custom\" item button.\n * If the element is to be used without AMF model this should always\n * be enabled. Otherwise users won't be able to add a parameter.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) allowCustom?: boolean;\n\n /**\n * Holds the value of the currently selected server\n * Data type: URI\n * @attribute\n */\n @property({ type: String }) serverValue?: string;\n\n /**\n * Holds the type of the currently selected server\n * Values: `server` | `slot` | `custom`\n * @attribute\n */\n @property({ type: String }) serverType?: string;\n\n /**\n * Optional property to set\n * If true, the server selector is not rendered\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) noServerSelector?: boolean;\n\n /**\n * Optional property to set\n * If true, the server selector custom base URI option is rendered\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) allowCustomBaseUri?: boolean;\n\n /**\n * List of credentials source\n */\n @property({ type: Array }) credentialsSource?: Oauth2Credentials[];\n\n protected domainIdValue?: string;\n\n /**\n * The domain id (AMF's id) of an API operation.\n */\n @property({ type: String }) \n get domainId(): string | undefined {\n return this.domainIdValue;\n }\n\n set domainId(value: string | undefined) {\n const old = this.domainIdValue;\n /* istanbul ignore if */\n if (old === value) {\n return;\n }\n this.domainIdValue = value;\n this.requestUpdate('domainId', old);\n this.domainIdChanged(value);\n }\n\n /**\n * The latest response for the current request.\n */\n @state() response?: IRequestLog;\n\n constructor() {\n super();\n this.navigationHandler = this.navigationHandler.bind(this);\n this.handleNavigationEvents = false;\n this.allowHideOptional = false;\n this.allowCustom = false;\n this.noServerSelector = false;\n this.allowCustomBaseUri = false;\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n const node = this.eventsTarget;\n node.addEventListener(EventTypes.Navigation.apiNavigate, this.navigationHandler as EventListener);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n const node = this.eventsTarget;\n node.removeEventListener(EventTypes.Navigation.apiNavigate, this.navigationHandler as EventListener);\n }\n\n /**\n * Serializes the state of the request editor into the `ApiConsoleRequest` object.\n * \n * Note this is the same object as the one passed to the detail of the api request event.\n */\n async serialize(): Promise<IRequest> {\n const { shadowRoot } = this;\n if (!shadowRoot) {\n throw new Error(`The component is not yet initialized.`);\n }\n const editor = shadowRoot.querySelector('api-request-editor');\n if (!editor) {\n throw new Error(`The request editor has been manually removed from the DOM.`);\n }\n return editor.serialize();\n }\n\n /**\n * Clears response panel when the `domainId` change.\n */\n protected domainIdChanged(id?: string): void {\n if (!id) {\n return;\n }\n this.clearResponse();\n }\n\n /**\n * Clears response panel.\n */\n clearResponse(): void {\n if (this.response) {\n this.response = undefined;\n }\n }\n\n /**\n * Handles navigation events and computes available servers.\n *\n * When `handleNavigationEvents` is set then it also manages the selection.\n */\n protected navigationHandler(e: ApiNavigationEvent): void {\n if (this.handleNavigationEvents) {\n const { domainId, domainType } = e.detail;\n this.domainId = domainType === 'operation' ? domainId : undefined;\n }\n }\n\n /**\n * Retargets the change event from the editor.\n */\n protected changeHandler(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n protected handleResponse(e: CustomEvent<IRequestLog>): void {\n this.response = e.detail;\n }\n\n override render(): TemplateResult {\n return html`${this.requestTemplate()}${this.responseTemplate()}`;\n }\n\n /**\n * @returns A template for the request panel\n */\n protected requestTemplate(): TemplateResult {\n const {\n redirectUri,\n domainId,\n urlEditor,\n urlLabel,\n baseUri,\n eventsTarget,\n allowHideOptional,\n allowCustom,\n serverValue,\n serverType,\n noServerSelector,\n allowCustomBaseUri,\n credentialsSource,\n } = this;\n\n return html`\n <api-request-editor\n .redirectUri=\"${redirectUri}\"\n .domainId=\"${domainId}\"\n ?urlEditor=\"${urlEditor}\"\n ?urlLabel=\"${urlLabel}\"\n .baseUri=\"${baseUri}\"\n .eventsTarget=\"${eventsTarget}\"\n ?allowHideOptional=\"${allowHideOptional}\"\n ?allowCustom=\"${allowCustom}\"\n .serverValue=\"${serverValue}\"\n .serverType=\"${serverType}\"\n ?noServerSelector=\"${noServerSelector}\"\n ?allowCustomBaseUri=\"${allowCustomBaseUri}\"\n .credentialsSource=\"${credentialsSource}\"\n @change=\"${this.changeHandler}\"\n @response=\"${this.handleResponse}\"\n >\n <slot name=\"custom-base-uri\" slot=\"custom-base-uri\"></slot>\n </api-request-editor>`;\n }\n\n /**\n * @returns A template for the response view\n */\n protected responseTemplate(): TemplateResult | typeof nothing {\n const { response } = this;\n if (!response) {\n return nothing;\n }\n return html`<http-request-log \n .httpLog=\"${response}\"\n ></http-request-log>`;\n }\n}\n"]}
1
+ {"version":3,"file":"ApiRequest.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiRequest.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, TemplateResult } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { IRequest, IRequestLog } from '@api-client/core/build/browser.js';\nimport { EventTypes } from '../../events/amf/EventTypes.js';\nimport { ApiNavigationEvent } from '../../events/amf/NavigationEvents.js';\nimport { Oauth2Credentials } from '../authorization/types.js';\nimport ApiElement from '../ApiElement.js';\nimport '../../define/amf/api-request-editor.js';\nimport '../../define/http/http-request-log.js';\n\nexport default class ApiRequest extends ApiElement {\n /**\n * By default application hosting the element must set `domainId`\n * property. When using `api-navigation` element\n * by setting this property the element listens for navigation events\n * and updates the state\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) handleNavigationEvents?: boolean;\n\n /**\n * When set it renders the URL input above the URL parameters.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) urlEditor?: boolean;\n\n /**\n * When set it renders a label with the computed URL.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) urlLabel?: boolean;\n \n /**\n * A base URI for the API. To be set if RAML spec is missing `baseUri`\n * declaration and this produces invalid URL input. This information\n * is passed to the URL editor that prefixes the URL with `baseUri` value\n * if passed URL is a relative URL.\n * @attribute\n */\n @property({ type: String }) baseUri?: string;\n \n /**\n * OAuth2 redirect URI.\n * This value **must** be set in order for OAuth 1/2 to work properly.\n * @attribute\n */\n @property({ type: String }) redirectUri?: string;\n\n /**\n * If set it computes `hasOptional` property and shows checkbox in the\n * form to show / hide optional properties.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) allowHideOptional?: boolean;\n\n /**\n * When set, renders \"add custom\" item button.\n * If the element is to be used without AMF model this should always\n * be enabled. Otherwise users won't be able to add a parameter.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) allowCustom?: boolean;\n\n /**\n * Holds the value of the currently selected server\n * Data type: URI\n * @attribute\n */\n @property({ type: String }) serverValue?: string;\n\n /**\n * Holds the type of the currently selected server\n * Values: `server` | `slot` | `custom`\n * @attribute\n */\n @property({ type: String }) serverType?: string;\n\n /**\n * Optional property to set\n * If true, the server selector is not rendered\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) noServerSelector?: boolean;\n\n /**\n * Optional property to set\n * If true, the server selector custom base URI option is rendered\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) allowCustomBaseUri?: boolean;\n\n /**\n * List of credentials source\n */\n @property({ type: Array }) credentialsSource?: Oauth2Credentials[];\n\n protected domainIdValue?: string;\n\n /**\n * The domain id (AMF's id) of an API operation.\n */\n @property({ type: String }) \n get domainId(): string | undefined {\n return this.domainIdValue;\n }\n\n set domainId(value: string | undefined) {\n const old = this.domainIdValue;\n /* istanbul ignore if */\n if (old === value) {\n return;\n }\n this.domainIdValue = value;\n this.requestUpdate('domainId', old);\n this.domainIdChanged(value);\n }\n\n /**\n * The latest response for the current request.\n */\n @state() response?: IRequestLog;\n\n constructor() {\n super();\n this.navigationHandler = this.navigationHandler.bind(this);\n this.handleNavigationEvents = false;\n this.allowHideOptional = false;\n this.allowCustom = false;\n this.noServerSelector = false;\n this.allowCustomBaseUri = false;\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n const node = this.eventsTarget;\n node.addEventListener(EventTypes.Navigation.apiNavigate, this.navigationHandler as EventListener);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n const node = this.eventsTarget;\n node.removeEventListener(EventTypes.Navigation.apiNavigate, this.navigationHandler as EventListener);\n }\n\n /**\n * Serializes the state of the request editor into the `ApiConsoleRequest` object.\n * \n * Note this is the same object as the one passed to the detail of the api request event.\n */\n async serialize(): Promise<IRequest> {\n const { shadowRoot } = this;\n if (!shadowRoot) {\n throw new Error(`The component is not yet initialized.`);\n }\n const editor = shadowRoot.querySelector('api-request-editor');\n if (!editor) {\n throw new Error(`The request editor has been manually removed from the DOM.`);\n }\n return editor.serialize();\n }\n\n /**\n * Clears response panel when the `domainId` change.\n */\n protected domainIdChanged(id?: string): void {\n if (!id) {\n return;\n }\n this.clearResponse();\n }\n\n /**\n * Clears response panel.\n */\n clearResponse(): void {\n if (this.response) {\n this.response = undefined;\n }\n }\n\n /**\n * Handles navigation events and computes available servers.\n *\n * When `handleNavigationEvents` is set then it also manages the selection.\n */\n protected navigationHandler(e: ApiNavigationEvent): void {\n if (this.handleNavigationEvents) {\n const { domainId, domainType } = e.detail;\n this.domainId = domainType === 'operation' ? domainId : undefined;\n }\n }\n\n /**\n * Retargets the change event from the editor.\n */\n protected changeHandler(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n protected handleResponse(e: CustomEvent<IRequestLog>): void {\n this.response = e.detail;\n }\n\n override render(): TemplateResult {\n return html`${this.requestTemplate()}${this.responseTemplate()}`;\n }\n\n /**\n * @returns A template for the request panel\n */\n protected requestTemplate(): TemplateResult {\n const {\n redirectUri,\n domainId,\n urlEditor,\n urlLabel,\n baseUri,\n eventsTarget,\n allowHideOptional,\n allowCustom,\n serverValue,\n serverType,\n noServerSelector,\n allowCustomBaseUri,\n credentialsSource,\n } = this;\n\n return html`\n <api-request-editor\n .redirectUri=\"${redirectUri}\"\n .domainId=\"${domainId}\"\n ?urlEditor=\"${urlEditor}\"\n ?urlLabel=\"${urlLabel}\"\n .baseUri=\"${baseUri}\"\n .eventsTarget=\"${eventsTarget}\"\n ?allowHideOptional=\"${allowHideOptional}\"\n ?allowCustom=\"${allowCustom}\"\n .serverValue=\"${serverValue}\"\n .serverType=\"${serverType}\"\n ?noServerSelector=\"${noServerSelector}\"\n ?allowCustomBaseUri=\"${allowCustomBaseUri}\"\n .credentialsSource=\"${credentialsSource}\"\n @change=\"${this.changeHandler}\"\n @response=\"${this.handleResponse}\"\n >\n <slot name=\"custom-base-uri\" slot=\"custom-base-uri\"></slot>\n </api-request-editor>`;\n }\n\n /**\n * @returns A template for the response view\n */\n protected responseTemplate(): TemplateResult | typeof nothing {\n const { response } = this;\n if (!response) {\n return nothing;\n }\n return html`<http-request-log \n .httpLog=\"${response}\"\n ></http-request-log>`;\n }\n}\n"]}