@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
@@ -1 +1 @@
1
- {"version":3,"file":"RequestEditor.js","sourceRoot":"","sources":["../../../src/elements/http/RequestEditor.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable class-methods-use-this */\nimport { html, TemplateResult, PropertyValues, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { \n Events as CoreEvents, DeserializedPayload,\n IOAuth2Authorization,\n IHttpRequest,\n HttpRequest,\n SecurityProcessor,\n IProperty,\n IRequestAuthorization,\n RequestAuthorization,\n PayloadSerializer,\n IRequestUiMeta,\n IHttpAssertion,\n RequestConfig,\n IRequestConfig,\n} from '@api-client/core/build/browser.js';\nimport { AuthorizationType } from '@api-client/core/build/src/models/Authorization.js';\nimport UrlInputEditorElement from './UrlInput.js';\nimport { EventTypes } from '../../events/EventTypes.js';\nimport { Events } from '../../events/Events.js';\nimport BodyEditor from './BodyEditor.js';\nimport ApiElement from '../ApiElement.js';\nimport { TabSelectionDetail } from '../../ui/tabs/UiTabs.js';\nimport UrlParamsForm from './UrlParamsForm.js';\nimport HeadersForm from './HeadersForm.js';\nimport { authTypeToLabel } from '../authorization/AuthLabels.js';\nimport { Authorization } from '../authorization/ui/Authorization.js';\nimport HttpAssertions from './HttpAssertions.js';\nimport RequestConfigElement from './RequestConfigElement.js';\nimport { UiDialogClosingReason } from '../../ui/dialog/UiDialog.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/http/http-url-input.js';\nimport '../../define/http/http-url-params-form.js';\nimport '../../define/http/http-headers-form.js';\nimport '../../define/http/http-snippets.js';\nimport '../../define/http/http-body-editor.js';\nimport '../../define/http/http-assertions.js';\nimport '../../define/http/http-request-config.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.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/ui/ui-dialog.js';\nimport '../../define/authorization/basic-authorization.js';\nimport '../../define/authorization/bearer-authorization.js';\nimport '../../define/authorization/ntlm-authorization.js';\nimport '../../define/authorization/apikey-authorization.js';\nimport '../../define/authorization/oauth2-authorization.js';\nimport '../../define/authorization/oidc-authorization.js';\nimport '../../define/authorization/cc-authorization.js';\n\nexport const HttpMethods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'CONNECT', 'OPTIONS', 'TRACE'];\nexport const NonPayloadMethods = ['GET', 'HEAD'];\n\nexport type SelectedTab = 'parameters' | 'headers' | 'payload' | 'authorization' | 'code-snippets' | 'assertions' | 'config';\n\nexport interface SendDetails {\n /**\n * The request object to send.\n */\n request: IHttpRequest;\n /**\n * Optional authorization configuration.\n */\n authorization: IRequestAuthorization[] | undefined;\n /**\n * The request options.\n */\n config: IRequestConfig | undefined;\n /**\n * HTTP tests to perform.\n */\n assertions: IHttpAssertion[] | undefined\n}\n\n/**\n * An element that renders an HTTP editor.\n * \n * @fires send - A custom event when the user requested to send the request. The detail object is the editor's request.\n * @fires abort - When the user requested to abort the ongoing request.\n * @fires authorizationchange - When authorization data change.\n * @fires uichange - When the UI model change.\n */\nexport default class RequestEditor extends ApiElement {\n /**\n * A promise set when reading payload from the `request` object.\n * It is resolved after the payload is read anf the `payload` property is set.\n */\n protected readingPayloadPromise = Promise.resolve();\n\n /**\n * A promise set when the payload is being written to the `request` object.\n * It is resolved after the `payload` is set on the request as a serializable object.\n */\n protected writingPayloadPromise = Promise.resolve();\n\n /**\n * A flag used to determine when the payload is being read for the synchronous code.\n */\n @state() readingPayload = false;\n\n /**\n * The base request object.\n */\n @property({ type: Object }) request: IHttpRequest = new HttpRequest().toJSON();\n\n /**\n * The request payload.\n * It can be just a string or an object with the payload data depending on the content type.\n */\n @state() payload?: DeserializedPayload;\n\n /** \n * The current content type value.\n */\n @state() contentType?: string;\n\n @property({ type: Array }) authorization?: IRequestAuthorization[];\n\n @property({ type: Array }) assertions?: IHttpAssertion[];\n\n /**\n * Redirect URL for the OAuth2 authorization.\n * If can be also set by dispatching `oauth2-redirect-url-changed`\n * with `value` property on the `detail` object.\n */\n @property({ type: String }) oauth2RedirectUri?: string;\n\n /**\n * When set the editor is in read only mode.\n */\n @property({ type: Boolean, reflect: true }) readOnly = false;\n\n /**\n * A value to be passed to the OAuth 2 `authorizationUri` property in case\n * if current configuration has no value.\n * This is to be used as a default value.\n */\n @property({ type: String, reflect: true }) oauth2AuthorizationUri?: string;\n\n /**\n * A value to be passed to the OAuth 2 `accessTokenUri` property in case\n * if current configuration has no value.\n * This is to be used as a default value.\n */\n @property({ type: String, reflect: true }) oauth2AccessTokenUri?: string;\n\n /**\n * When set it ignores all `content-*` headers when the request method is `GET`.\n * When not set or `false` it renders a warning message.\n */\n @property({ type: Boolean, reflect: true }) ignoreContentOnGet = false;\n\n /** \n * When set the `content-` headers warning dialog is rendered.\n */\n @property({ type: Boolean, reflect: true }) contentHeadersDialogOpened = false;\n\n /**\n * To be set when the request is being transported.\n */\n @property({ type: Boolean, reflect: true }) loading = false;\n\n /**\n * An index of currently opened tab.\n * @default 0\n */\n @property({ type: Number, reflect: true }) selectedTab: SelectedTab = 'parameters';\n\n /**\n * Optional instance of the `RequestUiMeta` to store the UI state.\n */\n @property({ type: Object }) ui?: IRequestUiMeta;\n\n /**\n * HTTP request configuration for the transport.\n */\n @property({ type: Object }) config = new RequestConfig().toJSON();\n\n /**\n * @returns True when the request cannot have the payload on the message.\n */\n get isPayload(): boolean {\n const { request } = this;\n if (!request || !request.method) {\n return false;\n }\n return !NonPayloadMethods.includes(request.method);\n }\n\n protected _awaitingOAuth2authorization = false;\n\n /**\n * This is set by the internal logic. When `ignoreContentOnGet` is set and the headers have `content-` headers\n * a dialog is rendered when trying to send the request. When the user chooses to ignore the warning this\n * flag makes sure that `send()` does not check headers.\n * \n * @todo(pawel): This should be done in the request logic module plugin.\n * Plugins can stop request indefinitely or cancel it.\n */\n ignoreValidationOnGet = false;\n\n @state() protected snippets?: IHttpRequest;\n\n constructor() {\n super();\n this.config.enabled = false;\n this.handleInternalSend = this.handleInternalSend.bind(this);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.eventsTarget.addEventListener(EventTypes.Http.Request.send, this.handleInternalSend);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.eventsTarget.addEventListener(EventTypes.Http.Request.send, this.handleInternalSend);\n }\n\n override firstUpdated(changedProperties: PropertyValues<this>): void {\n super.firstUpdated(changedProperties);\n this.computeSnippetsRequest();\n }\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n if (changedProperties.has('request')) {\n this.setupContentType();\n this.readingPayloadPromise = this.readPayload();\n }\n if (changedProperties.has('ui') && this.ui) {\n if (this.ui.selectedEditor) {\n this.selectedTab = this.ui.selectedEditor as SelectedTab;\n }\n }\n super.willUpdate(changedProperties);\n }\n\n protected setupContentType(request = this.request): void {\n if (!request) {\n this.contentType = undefined;\n return;\n }\n if (!request.headersModel) {\n this.contentType = undefined;\n return;\n }\n const item = request.headersModel.find(i => i.name.toLowerCase() === 'content-type');\n if (!item) {\n this.contentType = undefined;\n return;\n }\n this.contentType = item.value as string;\n this.setPayloadMimeOption(request, this.contentType);\n }\n\n protected async readPayload(): Promise<void> {\n const { request } = this;\n if (!request || !request.payload) {\n this.payload = undefined;\n return;\n }\n this.readingPayload = true;\n try {\n this.payload = await PayloadSerializer.deserialize(request.payload);\n } catch (e) {\n this.payload = undefined;\n } finally {\n this.readingPayload = false;\n }\n }\n\n /**\n * Validates state of the URL.\n * @return True if the URL has a structure that looks like\n * an URL which means scheme + something\n */\n validateUrl(): boolean {\n const { shadowRoot } = this;\n if (!shadowRoot) {\n return true;\n }\n const panel = shadowRoot.querySelector('http-url-input');\n if (!panel) {\n return true;\n }\n return panel.checkValidity();\n }\n\n /**\n * Checks if current request requires calling `authorize()` on the OAuth2 method.\n *\n * @return This returns `true` only for valid OAuth 2 method that has no access token.\n */\n requiresAuthorization(): boolean {\n const { authorization=[] } = this;\n const oauth = authorization.find((method) => method.enabled && method.type === 'oauth 2');\n if (!oauth) {\n return false;\n }\n const authMethod = this.shadowRoot?.querySelector('oauth2-authorization');\n if (!authMethod) {\n return false;\n }\n const cnf = oauth.config as IOAuth2Authorization;\n if (authMethod.checkValidity() && !cnf.accessToken) {\n return true;\n }\n return false;\n }\n\n /**\n * Validates headers for `Content-*` entries against current method.\n * @param request The request object\n * @return True if headers are invalid.\n */\n validateContentHeaders(request: IHttpRequest): boolean {\n const method = request.method || 'get';\n if (method.toLowerCase() !== 'get') {\n return false;\n }\n const any = !!request.headersModel && request.headersModel.some(i => i.name.toLowerCase().startsWith('content-'));\n if (any) {\n return true;\n }\n return false;\n }\n\n /**\n * Serializes the current values to the `IHttpRequest`\n */\n async serialize(): Promise<IHttpRequest> {\n if (!this.request) {\n const instance = new HttpRequest();\n return instance.toJSON();\n }\n await this.writingPayloadPromise;\n // make sure we copy everything.\n const instance = new HttpRequest(this.request);\n return instance.toJSON();\n }\n\n /**\n * Dispatches the send request event to the HTTP request engine.\n */\n async send(): Promise<void> {\n if (this.loading || !this.request) {\n return;\n }\n if (!this.validateUrl()) {\n return;\n }\n if (this.requiresAuthorization()) {\n const authMethod = this.shadowRoot?.querySelector('oauth2-authorization');\n if (authMethod) {\n authMethod.authorize();\n this._awaitingOAuth2authorization = true;\n }\n return;\n }\n const request = await this.serialize();\n // store the URL in the history\n await Events.HttpClient.Model.UrlHistory.add(request.url as string, this);\n if (!this.ignoreValidationOnGet && this.validateContentHeaders(request)) {\n this.contentHeadersDialogOpened = true;\n return;\n }\n this.ignoreValidationOnGet = false;\n this.notifySend(request);\n CoreEvents.Telemetry.event({\n category: 'Request editor',\n action: 'Send request',\n }, this);\n }\n\n protected notifySend(request: IHttpRequest): void {\n this.dispatchEvent(new CustomEvent<SendDetails>('send', {\n detail: {\n request,\n authorization: this.authorization,\n config: this.config,\n assertions: this.assertions,\n },\n }));\n }\n\n /**\n * If the request does not exist it creates one.\n * @returns The request object. \n */\n protected getRequest(): IHttpRequest {\n if (!this.request) {\n const instance = new HttpRequest();\n this.request = instance.toJSON();\n }\n return this.request;\n }\n\n /**\n * Aborts the request\n */\n abort(): void {\n this.dispatchEvent(new Event('abort'));\n }\n\n protected handleInternalSend(e: Event): void {\n e.stopPropagation();\n this.send();\n }\n\n protected handleVerbSelection(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined;\n if (!target) {\n return;\n }\n const { verb } = target.dataset;\n if (verb) {\n this.selectVerb(verb);\n }\n }\n\n /**\n * @param verb The HTTP verb (operation, method)\n */\n selectVerb(verb: string): void {\n const request = this.getRequest();\n request.method = verb;\n this.requestUpdate();\n this.notifyRequestChanged();\n this.notifyChanged('method', verb);\n if (!this.isPayload && this.selectedTab === 'payload') {\n this.selectedTab = 'headers';\n }\n CoreEvents.Telemetry.event({\n category: 'Request editor',\n action: 'Method selected',\n label: verb,\n }, this);\n this.computeSnippetsRequest();\n }\n\n /**\n * The handler for the URL editor change event\n */\n protected handlerUrlChange(e: Event): void {\n const panel = e.target as UrlInputEditorElement;\n const { value } = panel;\n this.selectUrl(value);\n }\n\n /**\n * Commits the change in the URL.\n * @param value The new URL value\n */\n selectUrl(value: string): void {\n const request = this.getRequest();\n request.url = value;\n this.requestUpdate();\n this.notifyRequestChanged();\n this.notifyChanged('url', value);\n this.computeSnippetsRequest();\n }\n\n protected handleTabSelect(e: CustomEvent): void {\n const info = e.detail as TabSelectionDetail;\n this.selectedTab = info.select as SelectedTab;\n if (this.ui) {\n this.ui.selectedEditor = this.selectedTab;\n this.notifyChanged('ui', this.ui);\n }\n CoreEvents.Telemetry.event({\n category: 'Request editor',\n action: 'Editor switched',\n label: this.selectedTab,\n }, this);\n }\n\n protected handleParamsChange(e: Event): void {\n const input = e.target as UrlParamsForm;\n this.selectUrl(input.value);\n }\n\n /**\n * The handler for the headers change event from the headers editor.\n */\n handleHeadersChange(e: Event): void {\n e.preventDefault();\n const editor = e.target as HeadersForm;\n const { model } = editor;\n this.selectHeaders(model);\n if (!this.ui) {\n return;\n }\n // const { value, source } = node;\n if (!this.ui.headers) {\n this.ui.headers = {};\n }\n // this.ui.headers.source = source;\n this.notifyChanged('ui', this.ui);\n }\n\n selectHeaders(model: IProperty[]): void {\n const request = this.getRequest();\n request.headersModel = model;\n const ct = model.find(h => h.name.toLowerCase() === 'content-type');\n this.contentType = ct && ct.value as string;\n this.setPayloadMimeOption(request, this.contentType);\n this.requestUpdate();\n this.notifyRequestChanged();\n this.computeSnippetsRequest();\n }\n\n /**\n * The handler for the body editor change event\n */\n protected handleBody(e: Event): void {\n e.preventDefault();\n const node = e.target as BodyEditor;\n const { value, model, selected, contentType } = node;\n this.writingPayloadPromise = this.updatePayload(value as DeserializedPayload, contentType);\n this.computeSnippetsRequest();\n if (!this.ui) {\n return;\n }\n if (!this.ui.body) {\n this.ui.body = {};\n }\n this.ui.body.model = model;\n this.ui.body.selected = selected;\n this.notifyChanged('ui', this.ui);\n }\n\n protected async updatePayload(value: DeserializedPayload, mime?: string): Promise<void> {\n const serialized = await PayloadSerializer.serialize(value);\n const request = this.getRequest();\n request.payload = serialized;\n this.setPayloadMimeOption(request, mime);\n this.payload = value;\n this.requestUpdate();\n this.notifyRequestChanged();\n this.notifyChanged('payload', value);\n }\n\n /**\n * When `mime` is set it creates the `payloadOptions` property with the mime.\n * @param request The request to set the mime type \n * @param mime the mime type value\n */\n protected setPayloadMimeOption(request: IHttpRequest | HttpRequest, mime?: string): void {\n if (mime) {\n if (!request.payloadOptions) {\n request.payloadOptions = {};\n }\n request.payloadOptions.mime = mime;\n }\n }\n\n protected handleAssertions(e: Event): void {\n e.preventDefault();\n const node = e.target as HttpAssertions;\n this.selectAssertions(node.model);\n }\n\n selectAssertions(assertions?: IHttpAssertion[]): void {\n this.assertions = assertions;\n this.notifyRequestChanged();\n }\n\n protected handleConfig(e: Event): void {\n const node = e.target as RequestConfigElement;\n this.selectRequestConfig(node.config);\n }\n\n selectRequestConfig(config: IRequestConfig): void {\n this.config = config;\n this.notifyRequestChanged();\n }\n\n /**\n * Called when a value on one of the editors change.\n * Dispatches non-bubbling `change` event.\n */\n protected notifyRequestChanged(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n /**\n * Called to notify listeners about a particular property change\n * \n * @param type The property that changed. The resulting event type is the combination of this value and the `change` suffix.\n * @param value The value of the changed property\n */\n protected notifyChanged(type: string, value: unknown): void {\n this.dispatchEvent(new CustomEvent(`${type}change`, {\n detail: {\n value\n }\n }));\n }\n\n protected handleContentWarningClose(e: CustomEvent<UiDialogClosingReason>): void {\n this.contentHeadersDialogOpened = false;\n if (e.detail.cancelled) {\n return;\n }\n this.ignoreValidationOnGet = true;\n this.send();\n }\n\n /**\n * When a request change this recomputes the values for code snippets.\n * These are different from the actual values in the request as\n * they contain authorization values applied to it.\n */\n protected async computeSnippetsRequest(): Promise<void> {\n const serialized = await this.serialize();\n const { authorization=[] } = this;\n SecurityProcessor.applyAuthorization(serialized, [ ...authorization ], { immutable: true });\n this.snippets = serialized;\n }\n\n /**\n * Adds a new authorization object to the request for the given type.\n * \n * @returns The created instance of the authorization.\n */\n addAuthorization(type: AuthorizationType): RequestAuthorization {\n const cnf = RequestAuthorization.fromTypedConfig(type, {}, false);\n cnf.enabled = true;\n if (!this.authorization) {\n this.authorization = [];\n }\n this.authorization.push(cnf.toJSON());\n this.notifyChanged('authorization', this.authorization);\n this.requestUpdate();\n return cnf;\n }\n\n /**\n * Updates authorization schema on the editor.\n * @param schema The new schema to replace the old one\n * @param isValid Whether the schema is valid.\n */\n updateAuthorization(schema: IRequestAuthorization, isValid: boolean): void {\n const { authorization } = this;\n if (!authorization) {\n return;\n }\n const index = authorization.findIndex(i => i.type === schema.type);\n if (index === -1) {\n return;\n }\n // eslint-disable-next-line no-param-reassign\n schema.valid = isValid;\n authorization[index] = schema;\n this.notifyChanged('authorization', this.authorization);\n }\n\n /**\n * Removes authorization schema from the editor.\n * @param type The authorization type to remove.\n */\n removeAuthorization(type: string): void {\n const { authorization } = this;\n if (!authorization) {\n return;\n }\n const index = authorization.findIndex(i => i.type === type);\n if (index === -1) {\n return;\n }\n authorization.splice(index, 1);\n this.notifyChanged('authorization', this.authorization);\n this.requestUpdate();\n }\n\n protected handleAuthAdd(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined;\n if (!target) {\n return;\n }\n const selected = target.dataset.type as AuthorizationType | undefined;\n if (!selected) {\n return;\n }\n this.addAuthorization(selected);\n }\n\n protected handleAuthChange(e: Event): void {\n const editor = e.target as Authorization;\n const { authorization } = editor;\n this.updateAuthorization(authorization as IRequestAuthorization, editor.checkValidity());\n }\n\n protected handleAuthDelete(e: Event): void {\n const editor = e.target as Authorization;\n const { authorization } = editor;\n if (!authorization) {\n return;\n }\n this.removeAuthorization(authorization.type)\n }\n\n protected override render(): TemplateResult {\n return html`\n ${this.renderUrlEditorArea()}\n <div class=\"surface2 editors\">\n ${this.renderTabs()}\n ${this.renderCurrentEditor()}\n </div>\n ${this.renderHeadersDialog()}\n `;\n }\n\n /**\n * @returns The template for the top line with method selector, URL, and options.\n */\n protected renderUrlEditorArea(): TemplateResult {\n return html`\n <div class=\"url-editor\">\n <div class=\"url-meta\">\n ${this.renderUrlMeta()}\n </div>\n ${this.renderSendButton()}\n </div>\n `;\n }\n\n protected renderUrlMeta(): TemplateResult {\n return html`\n ${this.renderHttpMethodSelector()}\n ${this.renderUrlEditor()}\n `;\n }\n\n /**\n * @returns The template for the HTTP method selector\n */\n protected renderHttpMethodSelector(): TemplateResult {\n const request = this.getRequest();\n const { method = 'GET' } = request;\n \n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleVerbSelection}\"\n class=\"verb-dropdown\"\n closeOnOutsideClick\n >\n <ui-button type=\"text\">\n ${method}\n <ui-icon icon=\"arrowDropDown\"></ui-icon>\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${this.renderHttpVerbOptions()}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n /**\n * @returns The templates for each supported HTTP methods\n */\n protected renderHttpVerbOptions(): TemplateResult[] {\n return HttpMethods.map((method) => html`\n <ui-list-item role=\"menuitem\" image=\"icon\" data-verb=\"${method}\">\n <div slot=\"start\" data-method=\"${method.toLocaleLowerCase()}\" class=\"http-label\"></div>\n ${method}\n </ui-list-item>\n `);\n }\n\n /**\n * @returns The template for the HTTP URL editor\n */\n protected renderUrlEditor(): TemplateResult {\n const request = this.getRequest();\n const { url='' } = request;\n const { eventsTarget } = this;\n return html`\n <div class=\"url-input\">\n <http-url-input\n .value=\"${url}\"\n .eventsTarget=\"${eventsTarget}\"\n @change=\"${this.handlerUrlChange}\"\n ></http-url-input>\n </div>\n `;\n }\n\n /**\n * @returns The template for the \"send\" or \"abort\" buttons.\n */\n protected renderSendButton(): TemplateResult | string {\n if (this.loading) {\n return html`\n <ui-button type=\"filled\" title=\"Abort the request\" class=\"send-button\" @click=\"${this.abort}\">Abort</ui-button>\n `;\n }\n return html`\n <ui-button type=\"filled\" title=\"Send the request\" class=\"send-button\" @click=\"${this.send}\">Send</ui-button>\n `;\n }\n\n /**\n * @returns The template for the request editor tabs\n */\n protected renderTabs(): TemplateResult {\n const { isPayload, selectedTab } = this;\n // ui && ui.selectedEditor ||\n const selected = selectedTab;\n return html`\n <ui-tabs\n .selected=\"${selected}\"\n @select=\"${this.handleTabSelect}\"\n class=\"editor-tabs\"\n >\n <ui-tab aria-controls=\"parameters\" id=\"parameters-tab\">Parameters</ui-tab>\n <ui-tab aria-controls=\"headers\" id=\"headers-tab\">Headers</ui-tab>\n <ui-tab ?hidden=\"${!isPayload}\" aria-controls=\"payload\" id=\"payload-tab\">Body</ui-tab>\n <ui-tab aria-controls=\"authorization\" id=\"authorization-tab\">Authorization</ui-tab>\n <ui-tab aria-controls=\"assertions\" id=\"assertions-tab\">Assertions</ui-tab>\n <ui-tab aria-controls=\"config\" id=\"config-tab\">Config</ui-tab>\n <ui-tab aria-controls=\"code-snippets\" id=\"code-snippets-tab\">Code snippets</ui-tab>\n </ui-tabs>`;\n }\n\n /**\n * @returns The template for the current editor\n */\n protected renderCurrentEditor(): TemplateResult {\n const { selectedTab, isPayload } = this;\n const parametersVisible = selectedTab === 'parameters';\n const headersVisible = selectedTab === 'headers';\n const bodyVisible = isPayload && selectedTab === 'payload';\n const authVisible = selectedTab === 'authorization';\n const codeVisible = selectedTab === 'code-snippets';\n const assertionsVisible = selectedTab === 'assertions';\n const configVisible = selectedTab === 'config';\n return html`\n <div class=\"panel\">\n ${this.renderParameters(parametersVisible)}\n ${this.renderHeaders(headersVisible)}\n ${this.renderBody(bodyVisible)}\n ${this.renderAuthorization(authVisible)}\n ${this.renderAssertions(assertionsVisible)}\n ${this.renderRequestConfig(configVisible)}\n ${this.renderSnippets(codeVisible)}\n </div>\n `;\n }\n\n protected renderParameters(visible: boolean): TemplateResult {\n const request = this.getRequest();\n const {\n eventsTarget,\n readOnly,\n } = this;\n return html`\n <http-url-params-form\n id=\"parameters\"\n aria-describedby=\"parameters-tab\"\n role=\"tabpanel\"\n ?hidden=\"${!visible}\"\n .value=\"${request.url || ''}\"\n .eventsTarget=\"${eventsTarget}\"\n ?readOnly=\"${readOnly}\"\n @change=\"${this.handleParamsChange}\"\n ></http-url-params-form>\n `;\n }\n\n /**\n * @param visible Whether the panel should not be hidden\n * @returns The template for the headers editor\n */\n protected renderHeaders(visible: boolean): TemplateResult {\n const request = this.getRequest();\n const {\n eventsTarget,\n readOnly,\n } = this;\n return html`\n <http-headers-form\n id=\"headers\"\n aria-describedby=\"headers-tab\"\n role=\"tabpanel\"\n .eventsTarget=\"${eventsTarget}\"\n .model=\"${request.headersModel || []}\"\n ?hidden=\"${!visible}\"\n @change=\"${this.handleHeadersChange}\"\n ?readonly=\"${readOnly}\"\n ></http-headers-form>`;\n }\n\n /**\n * @param visible Whether the panel should not be hidden\n * @returns The template for the body editor\n */\n protected renderBody(visible: boolean): TemplateResult {\n const {\n payload,\n readOnly,\n contentType,\n ui,\n readingPayload\n } = this;\n if (readingPayload) {\n return html`<p class=\"loading-body\" id=\"payload\">Preparing the editor...</p>`;\n }\n const body = ui && ui.body;\n const selected = body && body.selected as \"file\" | \"raw\" | \"urlEncode\" | \"multipart\";\n const model = body && body.model;\n \n return html`\n <http-body-editor\n id=\"payload\"\n aria-describedby=\"payload-tab\"\n role=\"tabpanel\"\n ?hidden=\"${!visible}\"\n ?readOnly=\"${readOnly}\"\n .contentType=\"${contentType}\"\n .model=\"${model}\"\n .value=\"${!model && payload || undefined}\"\n selected=\"${ifDefined(selected)}\"\n @change=\"${this.handleBody}\"\n @select=\"${this.handleBody}\"\n ></http-body-editor>\n `;\n }\n\n /**\n * @param visible Whether the panel should not be hidden\n * @returns The template for the authorization editor\n */\n protected renderAuthorization(visible: boolean): TemplateResult|string {\n const { authorization } = this;\n return html`\n <section ?hidden=\"${!visible}\" id=\"authorization\" aria-describedby=\"authorization-tab\" role=\"tabpanel\">\n ${this.renderAuthorizationActions(authorization)}\n ${this.renderAuthorizationList(authorization)}\n </section>\n `;\n }\n\n protected renderAuthorizationActions(current: IRequestAuthorization[] = []): TemplateResult {\n const all = ['basic', 'oauth 2', 'open id', 'bearer', 'api key', 'ntlm', 'client certificate'];\n const toRender: string[] = all.filter(type => !current.some(i => i.type === type));\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleAuthAdd}\"\n class=\"auth-dropdown\"\n closeOnOutsideClick\n >\n <ui-button \n type=\"tonal\" \n title=\"Add authorization option\" \n aria-label=\"Opens a menu to select authorization option\"\n ?disabled=\"${!toRender.length}\"\n >\n <ui-icon icon=\"arrowDropDown\" slot=\"icon\" role=\"presentation\"></ui-icon>\n Add\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${this.renderAuthorizationOptions(toRender)}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderAuthorizationOptions(available: string[]): TemplateResult {\n return html`\n ${available.map(type => html`\n <ui-list-item role=\"menuitem\" data-type=\"${type}\">\n ${authTypeToLabel(type)}\n </ui-list-item>\n `)}\n `;\n }\n\n protected renderAuthorizationList(authorization: IRequestAuthorization[] = []): TemplateResult[] {\n if (!Array.isArray(authorization) || !authorization.length) {\n return [this.renderEmptyAuthorization()];\n }\n return authorization.map((item, index) => {\n let content: TemplateResult | undefined;\n switch (item.type) {\n case 'basic': content = this.renderBasicAuthorization(item); break;\n case 'bearer': content = this.renderBearerAuthorization(item); break;\n case 'ntlm': content = this.renderNtlmAuthorization(item); break;\n case 'oauth 2': content = this.renderOauthAuthorization(item); break;\n case 'open id': content = this.renderOidcAuthorization(item); break;\n case 'client certificate': content = this.renderCCAuthorization(item); break;\n case 'api key': content = this.renderApiKeyAuthorization(item); break;\n default:\n }\n if (content) {\n const isLast = authorization.length === index + 1;\n return html`\n ${content}\n ${!isLast ? html`<ui-divider></ui-divider>` : ''}\n `;\n }\n return html``;\n });\n }\n\n protected renderEmptyAuthorization(): TemplateResult {\n return html``;\n }\n\n protected renderBasicAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <basic-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></basic-authorization>\n `;\n }\n\n protected renderBearerAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <bearer-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></bearer-authorization>\n `;\n }\n\n protected renderNtlmAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <ntlm-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></ntlm-authorization>\n `;\n }\n\n protected renderOauthAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <oauth2-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n .defaultRedirectUri=\"${this.oauth2RedirectUri}\"\n ></oauth2-authorization>\n `;\n }\n\n protected renderOidcAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <oidc-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n .defaultRedirectUri=\"${this.oauth2RedirectUri}\"\n ></oidc-authorization>\n `;\n }\n\n protected renderCCAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <cc-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></cc-authorization>\n `;\n }\n\n protected renderApiKeyAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <apikey-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></apikey-authorization>\n `;\n }\n\n protected renderAssertions(visible: boolean): TemplateResult | string {\n if (!visible) {\n return '';\n }\n const { assertions = [] } = this;\n return html`\n <http-assertions \n aria-label=\"Assertions\" \n aria-labelledby=\"assertions-tab\" \n id=\"assertions\" \n role=\"tabpanel\"\n .model=\"${assertions}\" \n @change=\"${this.handleAssertions}\"\n ></http-assertions>\n `;\n }\n\n protected renderRequestConfig(visible: boolean): TemplateResult | typeof nothing {\n if (!visible) {\n return nothing;\n }\n const { config } = this;\n return html`\n <http-request-config \n aria-label=\"Request options\" \n aria-labelledby=\"config-tab\" \n id=\"config\" \n role=\"tabpanel\"\n .config=\"${config}\"\n @change=\"${this.handleConfig}\"\n ></http-request-config>\n `;\n }\n\n /**\n * @param visible Whether the panel should be rendered\n * @returns The template for the Code snippets\n */\n protected renderSnippets(visible: boolean): TemplateResult|string {\n return html`\n <http-snippets \n ?hidden=\"${!visible}\"\n id=\"code-snippets\"\n aria-describedby=\"code-snippets-tab\"\n role=\"tabpanel\"\n .request=\"${this.snippets}\"\n ></http-snippets>`;\n }\n\n /**\n * @returns The template for the invalid content headers dialog\n */\n protected renderHeadersDialog(): TemplateResult|string {\n const { contentHeadersDialogOpened } = this;\n return html`\n <ui-dialog .open=\"${contentHeadersDialogOpened}\" @close=\"${this.handleContentWarningClose}\">\n <ui-icon slot=\"icon\" icon=\"warning\"></ui-icon>\n <span slot=\"title\">Headers are not valid</span>\n \n <div>\n <p>\n The <b>GET</b> request should not contain <b>content-*</b> headers. It may\n cause the server to behave unexpectedly.\n </p>\n <p><b>Do you want to continue?</b></p>\n </div>\n\n <ui-button type=\"text\" value=\"dismiss\" slot=\"button\">Cancel request</ui-button>\n <ui-button type=\"text\" value=\"confirm\" slot=\"button\">Continue</ui-button>\n </ui-dialog>`\n }\n}\n"]}
1
+ {"version":3,"file":"RequestEditor.js","sourceRoot":"","sources":["../../../src/elements/http/RequestEditor.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable class-methods-use-this */\nimport { html, TemplateResult, PropertyValues, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { \n Events as CoreEvents, DeserializedPayload,\n IOAuth2Authorization,\n IHttpRequest,\n HttpRequest,\n SecurityProcessor,\n IProperty,\n IRequestAuthorization,\n RequestAuthorization,\n PayloadSerializer,\n IRequestUiMeta,\n IHttpAssertion,\n RequestConfig,\n IRequestConfig,\n} from '@api-client/core/build/browser.js';\nimport { AuthorizationType } from '@api-client/core/build/src/models/Authorization.js';\nimport UrlInputEditorElement from './UrlInput.js';\nimport { EventTypes } from '../../events/EventTypes.js';\nimport { Events } from '../../events/Events.js';\nimport BodyEditor from './BodyEditor.js';\nimport ApiElement from '../ApiElement.js';\nimport { TabSelectionDetail } from '../../ui/tabs/UiTabs.js';\nimport UrlParamsForm from './UrlParamsForm.js';\nimport HeadersForm from './HeadersForm.js';\nimport { authTypeToLabel } from '../authorization/AuthLabels.js';\nimport { Authorization } from '../authorization/ui/Authorization.js';\nimport HttpAssertions from './HttpAssertions.js';\nimport RequestConfigElement from './RequestConfigElement.js';\nimport { UiDialogClosingReason } from '../../ui/dialog/UiDialog.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/http/http-url-input.js';\nimport '../../define/http/http-url-params-form.js';\nimport '../../define/http/http-headers-form.js';\nimport '../../define/http/http-snippets.js';\nimport '../../define/http/http-body-editor.js';\nimport '../../define/http/http-assertions.js';\nimport '../../define/http/http-request-config.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.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/ui/ui-dialog.js';\nimport '../../define/authorization/basic-authorization.js';\nimport '../../define/authorization/bearer-authorization.js';\nimport '../../define/authorization/ntlm-authorization.js';\nimport '../../define/authorization/apikey-authorization.js';\nimport '../../define/authorization/oauth2-authorization.js';\nimport '../../define/authorization/oidc-authorization.js';\nimport '../../define/authorization/cc-authorization.js';\n\nexport const HttpMethods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'CONNECT', 'OPTIONS', 'TRACE'];\nexport const NonPayloadMethods = ['GET', 'HEAD'];\n\nexport type SelectedTab = 'parameters' | 'headers' | 'payload' | 'authorization' | 'code-snippets' | 'assertions' | 'config';\n\nexport interface SendDetails {\n /**\n * The request object to send.\n */\n request: IHttpRequest;\n /**\n * Optional authorization configuration.\n */\n authorization: IRequestAuthorization[] | undefined;\n /**\n * The request options.\n */\n config: IRequestConfig | undefined;\n /**\n * HTTP tests to perform.\n */\n assertions: IHttpAssertion[] | undefined\n}\n\n/**\n * An element that renders an HTTP editor.\n * \n * @fires send - A custom event when the user requested to send the request. The detail object is the editor's request.\n * @fires abort - When the user requested to abort the ongoing request.\n * @fires authorizationchange - When authorization data change.\n * @fires uichange - When the UI model change.\n */\nexport default class RequestEditor extends ApiElement {\n /**\n * A promise set when reading payload from the `request` object.\n * It is resolved after the payload is read anf the `payload` property is set.\n */\n protected readingPayloadPromise = Promise.resolve();\n\n /**\n * A promise set when the payload is being written to the `request` object.\n * It is resolved after the `payload` is set on the request as a serializable object.\n */\n protected writingPayloadPromise = Promise.resolve();\n\n /**\n * A flag used to determine when the payload is being read for the synchronous code.\n */\n @state() readingPayload = false;\n\n /**\n * The base request object.\n */\n @property({ type: Object }) request: IHttpRequest = new HttpRequest().toJSON();\n\n /**\n * The request payload.\n * It can be just a string or an object with the payload data depending on the content type.\n */\n @state() payload?: DeserializedPayload;\n\n /** \n * The current content type value.\n */\n @state() contentType?: string;\n\n @property({ type: Array }) authorization?: IRequestAuthorization[];\n\n @property({ type: Array }) assertions?: IHttpAssertion[];\n\n /**\n * Redirect URL for the OAuth2 authorization.\n * If can be also set by dispatching `oauth2-redirect-url-changed`\n * with `value` property on the `detail` object.\n */\n @property({ type: String }) oauth2RedirectUri?: string;\n\n /**\n * When set the editor is in read only mode.\n */\n @property({ type: Boolean, reflect: true }) readOnly = false;\n\n /**\n * A value to be passed to the OAuth 2 `authorizationUri` property in case\n * if current configuration has no value.\n * This is to be used as a default value.\n */\n @property({ type: String, reflect: true }) oauth2AuthorizationUri?: string;\n\n /**\n * A value to be passed to the OAuth 2 `accessTokenUri` property in case\n * if current configuration has no value.\n * This is to be used as a default value.\n */\n @property({ type: String, reflect: true }) oauth2AccessTokenUri?: string;\n\n /**\n * When set it ignores all `content-*` headers when the request method is `GET`.\n * When not set or `false` it renders a warning message.\n */\n @property({ type: Boolean, reflect: true }) ignoreContentOnGet = false;\n\n /** \n * When set the `content-` headers warning dialog is rendered.\n */\n @property({ type: Boolean, reflect: true }) contentHeadersDialogOpened = false;\n\n /**\n * To be set when the request is being transported.\n */\n @property({ type: Boolean, reflect: true }) loading = false;\n\n /**\n * An index of currently opened tab.\n * @default 0\n */\n @property({ type: Number, reflect: true }) selectedTab: SelectedTab = 'parameters';\n\n /**\n * Optional instance of the `RequestUiMeta` to store the UI state.\n */\n @property({ type: Object }) ui?: IRequestUiMeta;\n\n /**\n * HTTP request configuration for the transport.\n */\n @property({ type: Object }) config = new RequestConfig().toJSON();\n\n /**\n * @returns True when the request cannot have the payload on the message.\n */\n get isPayload(): boolean {\n const { request } = this;\n if (!request || !request.method) {\n return false;\n }\n return !NonPayloadMethods.includes(request.method);\n }\n\n protected _awaitingOAuth2authorization = false;\n\n /**\n * This is set by the internal logic. When `ignoreContentOnGet` is set and the headers have `content-` headers\n * a dialog is rendered when trying to send the request. When the user chooses to ignore the warning this\n * flag makes sure that `send()` does not check headers.\n * \n * @todo(pawel): This should be done in the request logic module plugin.\n * Plugins can stop request indefinitely or cancel it.\n */\n ignoreValidationOnGet = false;\n\n @state() protected snippets?: IHttpRequest;\n\n constructor() {\n super();\n this.config.enabled = false;\n this.handleInternalSend = this.handleInternalSend.bind(this);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.eventsTarget.addEventListener(EventTypes.Http.Request.send, this.handleInternalSend);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.eventsTarget.addEventListener(EventTypes.Http.Request.send, this.handleInternalSend);\n }\n\n override firstUpdated(changedProperties: PropertyValues<this>): void {\n super.firstUpdated(changedProperties);\n this.computeSnippetsRequest();\n }\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n if (changedProperties.has('request')) {\n this.setupContentType();\n this.readingPayloadPromise = this.readPayload();\n }\n if (changedProperties.has('ui') && this.ui) {\n if (this.ui.selectedEditor) {\n this.selectedTab = this.ui.selectedEditor as SelectedTab;\n }\n }\n super.willUpdate(changedProperties);\n }\n\n protected setupContentType(request = this.request): void {\n if (!request) {\n this.contentType = undefined;\n return;\n }\n if (!request.headersModel) {\n this.contentType = undefined;\n return;\n }\n const item = request.headersModel.find(i => i.name.toLowerCase() === 'content-type');\n if (!item) {\n this.contentType = undefined;\n return;\n }\n this.contentType = item.value as string;\n this.setPayloadMimeOption(request, this.contentType);\n }\n\n protected async readPayload(): Promise<void> {\n const { request } = this;\n if (!request || !request.payload) {\n this.payload = undefined;\n return;\n }\n this.readingPayload = true;\n try {\n this.payload = await PayloadSerializer.deserialize(request.payload);\n } catch (e) {\n this.payload = undefined;\n } finally {\n this.readingPayload = false;\n }\n }\n\n /**\n * Validates state of the URL.\n * @return True if the URL has a structure that looks like\n * an URL which means scheme + something\n */\n validateUrl(): boolean {\n const { shadowRoot } = this;\n if (!shadowRoot) {\n return true;\n }\n const panel = shadowRoot.querySelector('http-url-input');\n if (!panel) {\n return true;\n }\n return panel.checkValidity();\n }\n\n /**\n * Checks if current request requires calling `authorize()` on the OAuth2 method.\n *\n * @return This returns `true` only for valid OAuth 2 method that has no access token.\n */\n requiresAuthorization(): boolean {\n const { authorization=[] } = this;\n const oauth = authorization.find((method) => method.enabled && method.type === 'oauth 2');\n if (!oauth) {\n return false;\n }\n const authMethod = this.shadowRoot?.querySelector('oauth2-authorization');\n if (!authMethod) {\n return false;\n }\n const cnf = oauth.config as IOAuth2Authorization;\n if (authMethod.checkValidity() && !cnf.accessToken) {\n return true;\n }\n return false;\n }\n\n /**\n * Validates headers for `Content-*` entries against current method.\n * @param request The request object\n * @return True if headers are invalid.\n */\n validateContentHeaders(request: IHttpRequest): boolean {\n const method = request.method || 'get';\n if (method.toLowerCase() !== 'get') {\n return false;\n }\n const any = !!request.headersModel && request.headersModel.some(i => i.name.toLowerCase().startsWith('content-'));\n if (any) {\n return true;\n }\n return false;\n }\n\n /**\n * Serializes the current values to the `IHttpRequest`\n */\n async serialize(): Promise<IHttpRequest> {\n if (!this.request) {\n const instance = new HttpRequest();\n return instance.toJSON();\n }\n await this.writingPayloadPromise;\n // make sure we copy everything.\n const instance = new HttpRequest(this.request);\n return instance.toJSON();\n }\n\n /**\n * Dispatches the send request event to the HTTP request engine.\n */\n async send(): Promise<void> {\n if (this.loading || !this.request) {\n return;\n }\n if (!this.validateUrl()) {\n return;\n }\n if (this.requiresAuthorization()) {\n const authMethod = this.shadowRoot?.querySelector('oauth2-authorization');\n if (authMethod) {\n authMethod.authorize();\n this._awaitingOAuth2authorization = true;\n }\n return;\n }\n const request = await this.serialize();\n // store the URL in the history\n await Events.HttpClient.Model.UrlHistory.add(request.url as string, this);\n if (!this.ignoreValidationOnGet && this.validateContentHeaders(request)) {\n this.contentHeadersDialogOpened = true;\n return;\n }\n this.ignoreValidationOnGet = false;\n this.notifySend(request);\n CoreEvents.Telemetry.event({\n category: 'Request editor',\n action: 'Send request',\n }, this);\n }\n\n protected notifySend(request: IHttpRequest): void {\n this.dispatchEvent(new CustomEvent<SendDetails>('send', {\n detail: {\n request,\n authorization: this.authorization,\n config: this.config,\n assertions: this.assertions,\n },\n }));\n }\n\n /**\n * If the request does not exist it creates one.\n * @returns The request object. \n */\n protected getRequest(): IHttpRequest {\n if (!this.request) {\n const instance = new HttpRequest();\n this.request = instance.toJSON();\n }\n return this.request;\n }\n\n /**\n * Aborts the request\n */\n abort(): void {\n this.dispatchEvent(new Event('abort'));\n }\n\n protected handleInternalSend(e: Event): void {\n e.stopPropagation();\n this.send();\n }\n\n protected handleVerbSelection(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined;\n if (!target) {\n return;\n }\n const { verb } = target.dataset;\n if (verb) {\n this.selectVerb(verb);\n }\n }\n\n /**\n * @param verb The HTTP verb (operation, method)\n */\n selectVerb(verb: string): void {\n const request = this.getRequest();\n request.method = verb;\n this.requestUpdate();\n this.notifyRequestChanged();\n this.notifyChanged('method', verb);\n if (!this.isPayload && this.selectedTab === 'payload') {\n this.selectedTab = 'headers';\n }\n CoreEvents.Telemetry.event({\n category: 'Request editor',\n action: 'Method selected',\n label: verb,\n }, this);\n this.computeSnippetsRequest();\n }\n\n /**\n * The handler for the URL editor change event\n */\n protected handlerUrlChange(e: Event): void {\n const panel = e.target as UrlInputEditorElement;\n const { value } = panel;\n this.selectUrl(value);\n }\n\n /**\n * Commits the change in the URL.\n * @param value The new URL value\n */\n selectUrl(value: string): void {\n const request = this.getRequest();\n request.url = value;\n this.requestUpdate();\n this.notifyRequestChanged();\n this.notifyChanged('url', value);\n this.computeSnippetsRequest();\n }\n\n protected handleTabSelect(e: CustomEvent): void {\n const info = e.detail as TabSelectionDetail;\n this.selectedTab = info.select as SelectedTab;\n if (this.ui) {\n this.ui.selectedEditor = this.selectedTab;\n this.notifyChanged('ui', this.ui);\n }\n CoreEvents.Telemetry.event({\n category: 'Request editor',\n action: 'Editor switched',\n label: this.selectedTab,\n }, this);\n }\n\n protected handleParamsChange(e: Event): void {\n const input = e.target as UrlParamsForm;\n this.selectUrl(input.value);\n }\n\n /**\n * The handler for the headers change event from the headers editor.\n */\n handleHeadersChange(e: Event): void {\n e.preventDefault();\n const editor = e.target as HeadersForm;\n const { model } = editor;\n this.selectHeaders(model);\n if (!this.ui) {\n return;\n }\n // const { value, source } = node;\n if (!this.ui.headers) {\n this.ui.headers = {};\n }\n // this.ui.headers.source = source;\n this.notifyChanged('ui', this.ui);\n }\n\n selectHeaders(model: IProperty[]): void {\n const request = this.getRequest();\n request.headersModel = model;\n const ct = model.find(h => h.name.toLowerCase() === 'content-type');\n this.contentType = ct && ct.value as string;\n this.setPayloadMimeOption(request, this.contentType);\n this.requestUpdate();\n this.notifyRequestChanged();\n this.computeSnippetsRequest();\n }\n\n /**\n * The handler for the body editor change event\n */\n protected handleBody(e: Event): void {\n e.preventDefault();\n const node = e.target as BodyEditor;\n const { value, model, selected, contentType } = node;\n this.writingPayloadPromise = this.updatePayload(value as DeserializedPayload, contentType);\n this.computeSnippetsRequest();\n if (!this.ui) {\n return;\n }\n if (!this.ui.body) {\n this.ui.body = {};\n }\n this.ui.body.model = model;\n this.ui.body.selected = selected;\n this.notifyChanged('ui', this.ui);\n }\n\n protected async updatePayload(value: DeserializedPayload, mime?: string): Promise<void> {\n const serialized = await PayloadSerializer.serialize(value);\n const request = this.getRequest();\n request.payload = serialized;\n this.setPayloadMimeOption(request, mime);\n this.payload = value;\n this.requestUpdate();\n this.notifyRequestChanged();\n this.notifyChanged('payload', value);\n }\n\n /**\n * When `mime` is set it creates the `payloadOptions` property with the mime.\n * @param request The request to set the mime type \n * @param mime the mime type value\n */\n protected setPayloadMimeOption(request: IHttpRequest | HttpRequest, mime?: string): void {\n if (mime) {\n if (!request.payloadOptions) {\n request.payloadOptions = {};\n }\n request.payloadOptions.mime = mime;\n }\n }\n\n protected handleAssertions(e: Event): void {\n e.preventDefault();\n const node = e.target as HttpAssertions;\n this.selectAssertions(node.model);\n }\n\n selectAssertions(assertions?: IHttpAssertion[]): void {\n this.assertions = assertions;\n this.notifyRequestChanged();\n }\n\n protected handleConfig(e: Event): void {\n const node = e.target as RequestConfigElement;\n this.selectRequestConfig(node.config);\n }\n\n selectRequestConfig(config: IRequestConfig): void {\n this.config = config;\n this.notifyRequestChanged();\n }\n\n /**\n * Called when a value on one of the editors change.\n * Dispatches non-bubbling `change` event.\n */\n protected notifyRequestChanged(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n /**\n * Called to notify listeners about a particular property change\n * \n * @param type The property that changed. The resulting event type is the combination of this value and the `change` suffix.\n * @param value The value of the changed property\n */\n protected notifyChanged(type: string, value: unknown): void {\n this.dispatchEvent(new CustomEvent(`${type}change`, {\n detail: {\n value\n }\n }));\n }\n\n protected handleContentWarningClose(e: CustomEvent<UiDialogClosingReason>): void {\n this.contentHeadersDialogOpened = false;\n if (e.detail.cancelled) {\n return;\n }\n this.ignoreValidationOnGet = true;\n this.send();\n }\n\n /**\n * When a request change this recomputes the values for code snippets.\n * These are different from the actual values in the request as\n * they contain authorization values applied to it.\n */\n protected async computeSnippetsRequest(): Promise<void> {\n const serialized = await this.serialize();\n const { authorization=[] } = this;\n SecurityProcessor.applyAuthorization(serialized, [ ...authorization ], { immutable: true });\n this.snippets = serialized;\n }\n\n /**\n * Adds a new authorization object to the request for the given type.\n * \n * @returns The created instance of the authorization.\n */\n addAuthorization(type: AuthorizationType): RequestAuthorization {\n const cnf = RequestAuthorization.fromTypedConfig(type, {}, false);\n cnf.enabled = true;\n if (!this.authorization) {\n this.authorization = [];\n }\n this.authorization.push(cnf.toJSON());\n this.notifyChanged('authorization', this.authorization);\n this.requestUpdate();\n return cnf;\n }\n\n /**\n * Updates authorization schema on the editor.\n * @param schema The new schema to replace the old one\n * @param isValid Whether the schema is valid.\n */\n updateAuthorization(schema: IRequestAuthorization, isValid: boolean): void {\n const { authorization } = this;\n if (!authorization) {\n return;\n }\n const index = authorization.findIndex(i => i.type === schema.type);\n if (index === -1) {\n return;\n }\n // eslint-disable-next-line no-param-reassign\n schema.valid = isValid;\n authorization[index] = schema;\n this.notifyChanged('authorization', this.authorization);\n }\n\n /**\n * Removes authorization schema from the editor.\n * @param type The authorization type to remove.\n */\n removeAuthorization(type: string): void {\n const { authorization } = this;\n if (!authorization) {\n return;\n }\n const index = authorization.findIndex(i => i.type === type);\n if (index === -1) {\n return;\n }\n authorization.splice(index, 1);\n this.notifyChanged('authorization', this.authorization);\n this.requestUpdate();\n }\n\n protected handleAuthAdd(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined;\n if (!target) {\n return;\n }\n const selected = target.dataset.type as AuthorizationType | undefined;\n if (!selected) {\n return;\n }\n this.addAuthorization(selected);\n }\n\n protected handleAuthChange(e: Event): void {\n const editor = e.target as Authorization;\n const { authorization } = editor;\n this.updateAuthorization(authorization as IRequestAuthorization, editor.checkValidity());\n }\n\n protected handleAuthDelete(e: Event): void {\n const editor = e.target as Authorization;\n const { authorization } = editor;\n if (!authorization) {\n return;\n }\n this.removeAuthorization(authorization.type)\n }\n\n protected override render(): TemplateResult {\n return html`\n ${this.renderUrlEditorArea()}\n <div class=\"surface2 editors\">\n ${this.renderTabs()}\n ${this.renderCurrentEditor()}\n </div>\n ${this.renderHeadersDialog()}\n `;\n }\n\n /**\n * @returns The template for the top line with method selector, URL, and options.\n */\n protected renderUrlEditorArea(): TemplateResult {\n return html`\n <div class=\"url-editor\">\n <div class=\"url-meta\">\n ${this.renderUrlMeta()}\n </div>\n ${this.renderSendButton()}\n </div>\n `;\n }\n\n protected renderUrlMeta(): TemplateResult {\n return html`\n ${this.renderHttpMethodSelector()}\n ${this.renderUrlEditor()}\n `;\n }\n\n /**\n * @returns The template for the HTTP method selector\n */\n protected renderHttpMethodSelector(): TemplateResult {\n const request = this.getRequest();\n const { method = 'GET' } = request;\n \n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleVerbSelection}\"\n class=\"verb-dropdown\"\n closeOnOutsideClick\n >\n <ui-button type=\"text\">\n ${method}\n <ui-icon icon=\"arrowDropDown\"></ui-icon>\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${this.renderHttpVerbOptions()}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n /**\n * @returns The templates for each supported HTTP methods\n */\n protected renderHttpVerbOptions(): TemplateResult[] {\n return HttpMethods.map((method) => html`\n <ui-list-item role=\"menuitem\" image=\"icon\" data-verb=\"${method}\">\n <div slot=\"start\" data-method=\"${method.toLocaleLowerCase()}\" class=\"http-label\"></div>\n ${method}\n </ui-list-item>\n `);\n }\n\n /**\n * @returns The template for the HTTP URL editor\n */\n protected renderUrlEditor(): TemplateResult {\n const request = this.getRequest();\n const { url='' } = request;\n const { eventsTarget } = this;\n return html`\n <div class=\"url-input\">\n <http-url-input\n .value=\"${url}\"\n .eventsTarget=\"${eventsTarget}\"\n @change=\"${this.handlerUrlChange}\"\n ></http-url-input>\n </div>\n `;\n }\n\n /**\n * @returns The template for the \"send\" or \"abort\" buttons.\n */\n protected renderSendButton(): TemplateResult | string {\n if (this.loading) {\n return html`\n <ui-button type=\"filled\" title=\"Abort the request\" class=\"send-button\" @click=\"${this.abort}\">Abort</ui-button>\n `;\n }\n return html`\n <ui-button type=\"filled\" title=\"Send the request\" class=\"send-button\" @click=\"${this.send}\">Send</ui-button>\n `;\n }\n\n /**\n * @returns The template for the request editor tabs\n */\n protected renderTabs(): TemplateResult {\n const { isPayload, selectedTab } = this;\n // ui && ui.selectedEditor ||\n const selected = selectedTab;\n return html`\n <ui-tabs\n .selected=\"${selected}\"\n @select=\"${this.handleTabSelect}\"\n class=\"editor-tabs\"\n >\n <ui-tab aria-controls=\"parameters\" id=\"parameters-tab\">Parameters</ui-tab>\n <ui-tab aria-controls=\"headers\" id=\"headers-tab\">Headers</ui-tab>\n <ui-tab ?hidden=\"${!isPayload}\" aria-controls=\"payload\" id=\"payload-tab\">Body</ui-tab>\n <ui-tab aria-controls=\"authorization\" id=\"authorization-tab\">Authorization</ui-tab>\n <ui-tab aria-controls=\"assertions\" id=\"assertions-tab\">Assertions</ui-tab>\n <ui-tab aria-controls=\"config\" id=\"config-tab\">Config</ui-tab>\n <ui-tab aria-controls=\"code-snippets\" id=\"code-snippets-tab\">Code snippets</ui-tab>\n </ui-tabs>`;\n }\n\n /**\n * @returns The template for the current editor\n */\n protected renderCurrentEditor(): TemplateResult {\n const { selectedTab, isPayload } = this;\n const parametersVisible = selectedTab === 'parameters';\n const headersVisible = selectedTab === 'headers';\n const bodyVisible = isPayload && selectedTab === 'payload';\n const authVisible = selectedTab === 'authorization';\n const codeVisible = selectedTab === 'code-snippets';\n const assertionsVisible = selectedTab === 'assertions';\n const configVisible = selectedTab === 'config';\n return html`\n <div class=\"panel\">\n ${this.renderParameters(parametersVisible)}\n ${this.renderHeaders(headersVisible)}\n ${this.renderBody(bodyVisible)}\n ${this.renderAuthorization(authVisible)}\n ${this.renderAssertions(assertionsVisible)}\n ${this.renderRequestConfig(configVisible)}\n ${this.renderSnippets(codeVisible)}\n </div>\n `;\n }\n\n protected renderParameters(visible: boolean): TemplateResult {\n const request = this.getRequest();\n const {\n eventsTarget,\n readOnly,\n } = this;\n return html`\n <http-url-params-form\n id=\"parameters\"\n aria-describedby=\"parameters-tab\"\n role=\"tabpanel\"\n ?hidden=\"${!visible}\"\n .value=\"${request.url || ''}\"\n .eventsTarget=\"${eventsTarget}\"\n ?readOnly=\"${readOnly}\"\n @change=\"${this.handleParamsChange}\"\n ></http-url-params-form>\n `;\n }\n\n /**\n * @param visible Whether the panel should not be hidden\n * @returns The template for the headers editor\n */\n protected renderHeaders(visible: boolean): TemplateResult {\n const request = this.getRequest();\n const {\n eventsTarget,\n readOnly,\n } = this;\n return html`\n <http-headers-form\n id=\"headers\"\n aria-describedby=\"headers-tab\"\n role=\"tabpanel\"\n .eventsTarget=\"${eventsTarget}\"\n .model=\"${request.headersModel || []}\"\n ?hidden=\"${!visible}\"\n @change=\"${this.handleHeadersChange}\"\n ?readonly=\"${readOnly}\"\n ></http-headers-form>`;\n }\n\n /**\n * @param visible Whether the panel should not be hidden\n * @returns The template for the body editor\n */\n protected renderBody(visible: boolean): TemplateResult {\n const {\n payload,\n readOnly,\n contentType,\n ui,\n readingPayload\n } = this;\n if (readingPayload) {\n return html`<p class=\"loading-body\" id=\"payload\">Preparing the editor...</p>`;\n }\n const body = ui && ui.body;\n const selected = body && body.selected as \"file\" | \"raw\" | \"urlEncode\" | \"multipart\";\n const model = body && body.model;\n \n return html`\n <http-body-editor\n id=\"payload\"\n aria-describedby=\"payload-tab\"\n role=\"tabpanel\"\n ?hidden=\"${!visible}\"\n ?readOnly=\"${readOnly}\"\n .contentType=\"${contentType}\"\n .model=\"${model}\"\n .value=\"${!model && payload || undefined}\"\n selected=\"${ifDefined(selected)}\"\n @change=\"${this.handleBody}\"\n @select=\"${this.handleBody}\"\n ></http-body-editor>\n `;\n }\n\n /**\n * @param visible Whether the panel should not be hidden\n * @returns The template for the authorization editor\n */\n protected renderAuthorization(visible: boolean): TemplateResult|string {\n const { authorization } = this;\n return html`\n <section ?hidden=\"${!visible}\" id=\"authorization\" aria-describedby=\"authorization-tab\" role=\"tabpanel\">\n ${this.renderAuthorizationActions(authorization)}\n ${this.renderAuthorizationList(authorization)}\n </section>\n `;\n }\n\n protected renderAuthorizationActions(current: IRequestAuthorization[] = []): TemplateResult {\n const all = ['basic', 'oauth 2', 'open id', 'bearer', 'api key', 'ntlm', 'client certificate'];\n const toRender: string[] = all.filter(type => !current.some(i => i.type === type));\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleAuthAdd}\"\n class=\"auth-dropdown\"\n closeOnOutsideClick\n >\n <ui-button \n type=\"tonal\" \n title=\"Add authorization option\" \n aria-label=\"Opens a menu to select authorization option\"\n ?disabled=\"${!toRender.length}\"\n >\n <ui-icon icon=\"arrowDropDown\" slot=\"icon\" role=\"presentation\"></ui-icon>\n Add\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${this.renderAuthorizationOptions(toRender)}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderAuthorizationOptions(available: string[]): TemplateResult {\n return html`\n ${available.map(type => html`\n <ui-list-item role=\"menuitem\" data-type=\"${type}\">\n ${authTypeToLabel(type)}\n </ui-list-item>\n `)}\n `;\n }\n\n protected renderAuthorizationList(authorization: IRequestAuthorization[] = []): TemplateResult[] {\n if (!Array.isArray(authorization) || !authorization.length) {\n return [this.renderEmptyAuthorization()];\n }\n return authorization.map((item, index) => {\n let content: TemplateResult | undefined;\n switch (item.type) {\n case 'basic': content = this.renderBasicAuthorization(item); break;\n case 'bearer': content = this.renderBearerAuthorization(item); break;\n case 'ntlm': content = this.renderNtlmAuthorization(item); break;\n case 'oauth 2': content = this.renderOauthAuthorization(item); break;\n case 'open id': content = this.renderOidcAuthorization(item); break;\n case 'client certificate': content = this.renderCCAuthorization(item); break;\n case 'api key': content = this.renderApiKeyAuthorization(item); break;\n default:\n }\n if (content) {\n const isLast = authorization.length === index + 1;\n return html`\n ${content}\n ${!isLast ? html`<ui-divider></ui-divider>` : ''}\n `;\n }\n return html``;\n });\n }\n\n protected renderEmptyAuthorization(): TemplateResult {\n return html``;\n }\n\n protected renderBasicAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <basic-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></basic-authorization>\n `;\n }\n\n protected renderBearerAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <bearer-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></bearer-authorization>\n `;\n }\n\n protected renderNtlmAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <ntlm-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></ntlm-authorization>\n `;\n }\n\n protected renderOauthAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <oauth2-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n .defaultRedirectUri=\"${this.oauth2RedirectUri}\"\n ></oauth2-authorization>\n `;\n }\n\n protected renderOidcAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <oidc-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n .defaultRedirectUri=\"${this.oauth2RedirectUri}\"\n ></oidc-authorization>\n `;\n }\n\n protected renderCCAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <cc-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></cc-authorization>\n `;\n }\n\n protected renderApiKeyAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <apikey-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></apikey-authorization>\n `;\n }\n\n protected renderAssertions(visible: boolean): TemplateResult | string {\n if (!visible) {\n return '';\n }\n const { assertions = [] } = this;\n return html`\n <http-assertions \n aria-label=\"Assertions\" \n aria-labelledby=\"assertions-tab\" \n id=\"assertions\" \n role=\"tabpanel\"\n .model=\"${assertions}\" \n @change=\"${this.handleAssertions}\"\n ></http-assertions>\n `;\n }\n\n protected renderRequestConfig(visible: boolean): TemplateResult | typeof nothing {\n if (!visible) {\n return nothing;\n }\n const { config } = this;\n return html`\n <http-request-config \n aria-label=\"Request options\" \n aria-labelledby=\"config-tab\" \n id=\"config\" \n role=\"tabpanel\"\n .config=\"${config}\"\n @change=\"${this.handleConfig}\"\n ></http-request-config>\n `;\n }\n\n /**\n * @param visible Whether the panel should be rendered\n * @returns The template for the Code snippets\n */\n protected renderSnippets(visible: boolean): TemplateResult|string {\n return html`\n <http-snippets \n ?hidden=\"${!visible}\"\n id=\"code-snippets\"\n aria-describedby=\"code-snippets-tab\"\n role=\"tabpanel\"\n .request=\"${this.snippets}\"\n ></http-snippets>`;\n }\n\n /**\n * @returns The template for the invalid content headers dialog\n */\n protected renderHeadersDialog(): TemplateResult|string {\n const { contentHeadersDialogOpened } = this;\n return html`\n <ui-dialog .open=\"${contentHeadersDialogOpened}\" @close=\"${this.handleContentWarningClose}\">\n <ui-icon slot=\"icon\" icon=\"warning\"></ui-icon>\n <span slot=\"title\">Headers are not valid</span>\n \n <div>\n <p>\n The <b>GET</b> request should not contain <b>content-*</b> headers. It may\n cause the server to behave unexpectedly.\n </p>\n <p><b>Do you want to continue?</b></p>\n </div>\n\n <ui-button type=\"text\" value=\"dismiss\" slot=\"button\">Cancel request</ui-button>\n <ui-button type=\"text\" value=\"confirm\" slot=\"button\">Continue</ui-button>\n </ui-dialog>`\n }\n}\n"]}
@@ -25,12 +25,15 @@ export var RequestLogView;
25
25
  * An element that renders the view for a core's `IRequestLog`.
26
26
  */
27
27
  export default class RequestLog extends ApiElement {
28
- httpLogInternal;
29
- /**
30
- * This property is set when the `httpLog` is set.
31
- * It always represent an instance of the `RequestLog` (or undefined) regardless of the input format.
32
- */
33
- effectiveLog;
28
+ constructor() {
29
+ super(...arguments);
30
+ /**
31
+ * Currently rendered view.
32
+ * @attribute
33
+ */
34
+ this.view = RequestLogView.headers;
35
+ this.isErrorResponse = false;
36
+ }
34
37
  /**
35
38
  * The request log to render. When not set it renders nothing.
36
39
  */
@@ -57,11 +60,6 @@ export default class RequestLog extends ApiElement {
57
60
  this.processPayload();
58
61
  this.requestUpdate();
59
62
  }
60
- /**
61
- * Currently rendered view.
62
- * @attribute
63
- */
64
- view = RequestLogView.headers;
65
63
  /**
66
64
  * Returns `true` when the request has a payload message.
67
65
  */
@@ -101,9 +99,6 @@ export default class RequestLog extends ApiElement {
101
99
  const { response } = effectiveLog;
102
100
  return !!response;
103
101
  }
104
- isErrorResponse = false;
105
- timingsData;
106
- redirectsData;
107
102
  /**
108
103
  * Reads the payload to the original format for both the request and the response.
109
104
  */
@@ -1 +1 @@
1
- {"version":3,"file":"RequestLog.js","sourceRoot":"","sources":["../../../src/elements/http/RequestLog.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable class-methods-use-this */\nimport { html, nothing, TemplateResult } from 'lit';\nimport { IRequestLog, RequestLog as CoreRequestLog, Headers, ErrorResponse, Response, RequestTime, ResponseRedirect, AssertionResult, AssertionError } from \"@api-client/core/build/browser.js\";\nimport { property, state } from \"lit/decorators.js\";\nimport { statusTemplate } from \"./HttpStatus.js\";\nimport ApiElement from '../ApiElement.js';\nimport { TabSelectionDetail } from '../../ui/tabs/UiTabs.js';\nimport '../../define/http/http-log-headers.js';\nimport '../../define/http/http-log-body.js';\nimport '../../define/http/http-log-timings.js';\nimport '../../define/ui/ui-tab.js';\nimport '../../define/ui/ui-tabs.js';\nimport '../../define/ui/ui-divider.js';\n\nexport enum RequestLogView {\n headers = 'headers',\n payload = 'payload',\n preview = 'preview',\n response = 'response',\n timings = 'timings',\n redirects = 'redirects',\n assertions = 'assertions',\n}\n\n/**\n * An element that renders the view for a core's `IRequestLog`.\n */\nexport default class RequestLog extends ApiElement {\n protected httpLogInternal?: IRequestLog | CoreRequestLog;\n\n /**\n * This property is set when the `httpLog` is set. \n * It always represent an instance of the `RequestLog` (or undefined) regardless of the input format.\n */\n protected effectiveLog?: CoreRequestLog;\n\n /**\n * The request log to render. When not set it renders nothing.\n */\n @property({ type: Object }) \n get httpLog(): IRequestLog | CoreRequestLog | undefined {\n return this.httpLogInternal;\n }\n\n set httpLog(value: IRequestLog | CoreRequestLog | undefined) {\n const old = this.httpLogInternal;\n if (old === value) {\n return;\n }\n this.httpLogInternal = value;\n if (value) {\n if (typeof (value as CoreRequestLog).toJSON === 'function') {\n this.effectiveLog = value as CoreRequestLog;\n } else {\n this.effectiveLog = new CoreRequestLog(value as IRequestLog);\n }\n } else {\n this.effectiveLog = undefined;\n }\n this.processPayload();\n this.requestUpdate();\n }\n\n /**\n * Currently rendered view.\n * @attribute\n */\n @property({ type: String }) view: RequestLogView = RequestLogView.headers;\n\n /**\n * Returns `true` when the request has a payload message.\n */\n get hasRequestPayload(): boolean {\n const { effectiveLog } = this;\n if (!effectiveLog) {\n return false;\n }\n const { request } = effectiveLog;\n if (!request) {\n return false;\n }\n if (['get', 'head'].includes(request.method.toLowerCase())) {\n return false;\n }\n return !!request.payload;\n }\n\n /**\n * Returns `true` when the response has a payload message.\n */\n get hasResponsePayload(): boolean {\n const { effectiveLog } = this;\n if (!effectiveLog) {\n return false;\n }\n const { response } = effectiveLog;\n if (!response) {\n return false;\n }\n return !!response.payload;\n }\n\n get hasResponse(): boolean {\n const { effectiveLog } = this;\n if (!effectiveLog) {\n return false;\n }\n const { response } = effectiveLog;\n return !!response;\n }\n\n @state() protected isErrorResponse = false;\n\n @state() protected timingsData?: RequestTime[];\n\n @state() protected redirectsData?: ResponseRedirect[];\n\n /**\n * Reads the payload to the original format for both the request and the response.\n */\n protected async processPayload(): Promise<void> {\n const { effectiveLog } = this;\n if (!effectiveLog) {\n this.isErrorResponse = false;\n this.timingsData = undefined;\n this.redirectsData = undefined;\n return;\n }\n const { response } = effectiveLog;\n if (!response) {\n this.isErrorResponse = false;\n this.timingsData = undefined;\n this.redirectsData = undefined;\n } else {\n this.isErrorResponse = ErrorResponse.isErrorResponse(response);\n // computes list of redirects.\n if (!this.isErrorResponse) {\n const r = response as Response;\n const timings: RequestTime[] = [];\n const redirects: ResponseRedirect[] = [];\n if (Array.isArray(effectiveLog.redirects)) {\n effectiveLog.redirects.forEach((rdr) => {\n redirects.push(rdr);\n if (rdr.timings) {\n timings.push(rdr.timings);\n }\n });\n }\n if (r.timings) {\n timings.push(r.timings);\n }\n this.timingsData = timings;\n this.redirectsData = redirects;\n }\n }\n }\n\n protected handleViewSelect(e: CustomEvent<TabSelectionDetail>): void {\n const key = e.detail.select as RequestLogView | undefined;\n if (!key) {\n return;\n }\n this.view = key;\n }\n\n protected override render(): TemplateResult {\n const { effectiveLog } = this;\n return html`\n ${this.renderTabs(effectiveLog)}\n ${this.renderContent(effectiveLog)}\n `;\n }\n\n protected renderTabs(effectiveLog?: CoreRequestLog): TemplateResult {\n const { view: selected='headers' } = this;\n return html`\n <ui-tabs .selected=\"${selected}\" @select=\"${this.handleViewSelect}\">\n <ui-tab aria-controls=\"headers\" id=\"headers-tab\" title=\"Request and response header\">Headers</ui-tab>\n <ui-tab ?hidden=\"${!this.hasRequestPayload}\" aria-controls=\"payload\" id=\"payload-tab\" title=\"Request payload set to server\">Payload</ui-tab>\n <ui-tab ?hidden=\"${!this.hasResponsePayload}\" aria-controls=\"preview\" id=\"preview-tab\" title=\"Formatted view of the response\">Preview</ui-tab>\n <ui-tab aria-controls=\"response\" id=\"response-tab\" title=\"Unformatted view of the response\">Response</ui-tab>\n <ui-tab aria-controls=\"timings\" id=\"timings-tab\" title=\"Request detailed timings\">Timings</ui-tab>\n <ui-tab aria-controls=\"redirects\" id=\"redirects-tab\" title=\"Detailed redirect information\">Redirects</ui-tab>\n <ui-tab aria-controls=\"assertions\" id=\"assertions-tab\" title=\"HTTP assertions result\">Assertions ${this.renderAssertionsBadge(effectiveLog)}</ui-tab>\n </ui-tabs>\n `;\n }\n\n protected renderAssertionsBadge(effectiveLog?: CoreRequestLog): TemplateResult | typeof nothing {\n if (!effectiveLog) {\n return nothing;\n }\n const { assertions = [] } = effectiveLog;\n const failed = assertions.filter(i => !i.ok);\n if (!failed.length) {\n return nothing;\n }\n return html`\n <span class=\"badge large-label tab\">${failed.length}</span>\n `;\n }\n\n protected renderContent(effectiveLog?: CoreRequestLog): TemplateResult {\n const { view = RequestLogView.headers } = this;\n if (!effectiveLog) {\n return html`<div class=\"empty-info\">No data available.</div>`;\n }\n let tpl: TemplateResult;\n switch (view) {\n case RequestLogView.payload: tpl = this.renderPayload(effectiveLog); break;\n case RequestLogView.preview: tpl = this.renderPreview(effectiveLog); break;\n case RequestLogView.response: tpl = this.renderResponse(effectiveLog); break;\n case RequestLogView.timings: tpl = this.renderTimings(); break;\n case RequestLogView.redirects: tpl = this.renderRedirects(); break;\n case RequestLogView.assertions: tpl = this.renderAssertions(effectiveLog); break;\n default:\n tpl = this.renderHeaders(effectiveLog);\n }\n return tpl;\n }\n\n /**\n * Renders basic information about the request:\n * - request method & URL\n * - request headers\n * - response headers\n */\n protected renderHeaders(info: CoreRequestLog): TemplateResult {\n return html`\n <http-log-headers .httpLog=\"${info}\" role=\"tabpanel\" aria-labelledby=\"headers-tab\" id=\"headers\"></http-log-headers>\n `;\n }\n\n /**\n * @returns The template for the \"raw\" response body view.\n */\n protected renderPayload(info: CoreRequestLog): TemplateResult {\n if (!info) {\n return html``;\n }\n const { request } = info;\n if (!request) {\n return this._noDataTemplate('payload-tab', 'payload');\n }\n const parser = new Headers(request.headers);\n const mime = parser.get('content-type');\n return html`\n <http-log-body .payload=\"${request.payload}\" .contentType=\"${mime}\" role=\"tabpanel\" aria-labelledby=\"payload-tab\" id=\"payload\"></http-log-body>\n `;\n }\n\n /**\n * @returns The template for the parsed response body view.\n */\n protected renderPreview(info: CoreRequestLog): TemplateResult {\n if (!info) {\n return html``;\n }\n const { response } = info;\n if (!response) {\n return html`<p aria-labelledby=\"preview-tab\" id=\"preview\" role=\"tabpanel\">No response data</p>`;\n }\n const parser = new Headers(response.headers);\n const mime = parser.get('content-type');\n return html`\n <http-log-body aria-labelledby=\"preview-tab\" id=\"preview\" .payload=\"${response.payload}\" .contentType=\"${mime}\" role=\"tabpanel\"></http-log-body>\n `;\n }\n\n protected renderResponse(info: CoreRequestLog): TemplateResult {\n if (!info) {\n return html``;\n }\n const { response } = info;\n if (!response) {\n return this._noDataTemplate('response-tab', 'response');\n }\n const parser = new Headers(response.headers);\n const mime = parser.get('content-type');\n return html`\n <http-log-body aria-labelledby=\"response-tab\" id=\"response\" .payload=\"${response.payload}\" .contentType=\"${mime}\" raw role=\"tabpanel\"></http-log-body>\n `;\n }\n\n protected renderTimings(): TemplateResult {\n const { timingsData } = this;\n if (!timingsData || !timingsData.length) {\n return this._noDataTemplate('timings-tab', 'timings');\n }\n return html`<http-log-timings aria-labelledby=\"timings-tab\" id=\"timings\" .timings=\"${timingsData}\" role=\"tabpanel\"></http-log-timings>`;\n }\n\n protected renderRedirects(): TemplateResult {\n const { redirectsData } = this;\n if (!redirectsData || !redirectsData.length) {\n return this._noDataTemplate('redirects-tab', 'redirects');\n }\n return html`\n <div role=\"tabpanel\" aria-labelledby=\"redirects-tab\" id=\"redirects\">\n ${redirectsData.map((item, index) => this.renderRedirect(item, index))}\n </div>\n `;\n }\n\n protected renderRedirect(item: ResponseRedirect, index: number): TemplateResult {\n const { url, response } = item;\n if (!response) {\n return html`\n <div class=\"status-row\">\n <div class=\"status-label text\">#<span>${index + 1}</span></div>\n <div class=\"redirect-value\">This redirect has no response data</div>\n </div>\n `;\n }\n const headers = new Headers(response.headers);\n const mime = headers.get('content-type');\n return html`\n <div class=\"status-row\">\n <div class=\"status-label text\">#<span>${index + 1}</span></div>\n <div class=\"redirect-value\">\n <div class=\"redirect-code\">\n ${statusTemplate(response.status, response.statusText)}\n </div>\n <div class=\"redirect-location\">\n <a href=\"${url}\" class=\"auto-link\">${url}</a>\n </div>\n ${this.renderHeadersRaw(headers)}\n ${response.payload ? html`<http-log-body .payload=\"${response.payload}\" .contentType=\"${mime}\" role=\"tabpanel\"></http-log-body>` : ''}\n </div>\n </div>\n `;\n }\n\n protected renderHeadersRaw(header: Headers): TemplateResult | string {\n const templates: TemplateResult[] = [];\n header.forEach((value, name) => {\n templates.push(html`\n <li>\n <span class=\"header-name\">${name}</span>\n <span class=\"header-value\">${value}</span>\n </li>\n `);\n });\n if (!templates.length) {\n return '';\n }\n return html`\n <ul class=\"headers\">\n ${templates}\n </ul>\n `;\n }\n\n protected _noDataTemplate(arialLabelledBy: string, id: string): TemplateResult {\n return html`\n <div class=\"no-data\" aria-labelledby=\"${arialLabelledBy}\" id=\"${id}\" role=\"tabpanel\">No data available.</div>\n `;\n }\n\n protected renderAssertions(info: CoreRequestLog): TemplateResult {\n if (!info) {\n return html``;\n }\n const { assertions } = info;\n if (!Array.isArray(assertions) || !assertions.length) {\n return html`<p aria-labelledby=\"assertions-tab\" id=\"assertions\" role=\"tabpanel\" class=\"no-data\">No assertions defined.</p>`;\n }\n return html`\n <section aria-label=\"Assertions\" aria-labelledby=\"assertions-tab\" id=\"assertions\" role=\"tabpanel\">\n ${assertions.map((item, index) => html`\n ${this.renderAssertion(item)}\n ${index + 1 === assertions.length ? '' : html`<ui-divider type=\"inset\"></ui-divider>`}\n `)}\n </section>\n `;\n }\n\n renderAssertion(item: AssertionResult): TemplateResult {\n const { description, ok, error } = item;\n if (!ok) {\n return this.renderFailedAssertion(description, error as AssertionError);\n }\n return this.renderOkAssertion(description);\n }\n\n renderOkAssertion(description: string): TemplateResult {\n return html`\n <div class=\"assertion success\">\n <ui-icon role=\"presentation\" icon=\"check\" class=\"assertion-icon primary-text\"></ui-icon>\n <span class=\"label-large\">${description}</span>\n </div>\n `;\n }\n\n renderFailedAssertion(description: string, error: AssertionError): TemplateResult {\n return html`\n <div class=\"assertion fail\">\n <ui-icon role=\"presentation\" icon=\"cancel\" class=\"assertion-icon error-text\"></ui-icon>\n <div class=\"fail-details\">\n <span class=\"label-large\">${description}</span>\n <span class=\"error-text body-large\">${error.message}</span>\n </div>\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"RequestLog.js","sourceRoot":"","sources":["../../../src/elements/http/RequestLog.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable class-methods-use-this */\nimport { html, nothing, TemplateResult } from 'lit';\nimport { IRequestLog, RequestLog as CoreRequestLog, Headers, ErrorResponse, Response, RequestTime, ResponseRedirect, AssertionResult, AssertionError } from \"@api-client/core/build/browser.js\";\nimport { property, state } from \"lit/decorators.js\";\nimport { statusTemplate } from \"./HttpStatus.js\";\nimport ApiElement from '../ApiElement.js';\nimport { TabSelectionDetail } from '../../ui/tabs/UiTabs.js';\nimport '../../define/http/http-log-headers.js';\nimport '../../define/http/http-log-body.js';\nimport '../../define/http/http-log-timings.js';\nimport '../../define/ui/ui-tab.js';\nimport '../../define/ui/ui-tabs.js';\nimport '../../define/ui/ui-divider.js';\n\nexport enum RequestLogView {\n headers = 'headers',\n payload = 'payload',\n preview = 'preview',\n response = 'response',\n timings = 'timings',\n redirects = 'redirects',\n assertions = 'assertions',\n}\n\n/**\n * An element that renders the view for a core's `IRequestLog`.\n */\nexport default class RequestLog extends ApiElement {\n protected httpLogInternal?: IRequestLog | CoreRequestLog;\n\n /**\n * This property is set when the `httpLog` is set. \n * It always represent an instance of the `RequestLog` (or undefined) regardless of the input format.\n */\n protected effectiveLog?: CoreRequestLog;\n\n /**\n * The request log to render. When not set it renders nothing.\n */\n @property({ type: Object }) \n get httpLog(): IRequestLog | CoreRequestLog | undefined {\n return this.httpLogInternal;\n }\n\n set httpLog(value: IRequestLog | CoreRequestLog | undefined) {\n const old = this.httpLogInternal;\n if (old === value) {\n return;\n }\n this.httpLogInternal = value;\n if (value) {\n if (typeof (value as CoreRequestLog).toJSON === 'function') {\n this.effectiveLog = value as CoreRequestLog;\n } else {\n this.effectiveLog = new CoreRequestLog(value as IRequestLog);\n }\n } else {\n this.effectiveLog = undefined;\n }\n this.processPayload();\n this.requestUpdate();\n }\n\n /**\n * Currently rendered view.\n * @attribute\n */\n @property({ type: String }) view: RequestLogView = RequestLogView.headers;\n\n /**\n * Returns `true` when the request has a payload message.\n */\n get hasRequestPayload(): boolean {\n const { effectiveLog } = this;\n if (!effectiveLog) {\n return false;\n }\n const { request } = effectiveLog;\n if (!request) {\n return false;\n }\n if (['get', 'head'].includes(request.method.toLowerCase())) {\n return false;\n }\n return !!request.payload;\n }\n\n /**\n * Returns `true` when the response has a payload message.\n */\n get hasResponsePayload(): boolean {\n const { effectiveLog } = this;\n if (!effectiveLog) {\n return false;\n }\n const { response } = effectiveLog;\n if (!response) {\n return false;\n }\n return !!response.payload;\n }\n\n get hasResponse(): boolean {\n const { effectiveLog } = this;\n if (!effectiveLog) {\n return false;\n }\n const { response } = effectiveLog;\n return !!response;\n }\n\n @state() protected isErrorResponse = false;\n\n @state() protected timingsData?: RequestTime[];\n\n @state() protected redirectsData?: ResponseRedirect[];\n\n /**\n * Reads the payload to the original format for both the request and the response.\n */\n protected async processPayload(): Promise<void> {\n const { effectiveLog } = this;\n if (!effectiveLog) {\n this.isErrorResponse = false;\n this.timingsData = undefined;\n this.redirectsData = undefined;\n return;\n }\n const { response } = effectiveLog;\n if (!response) {\n this.isErrorResponse = false;\n this.timingsData = undefined;\n this.redirectsData = undefined;\n } else {\n this.isErrorResponse = ErrorResponse.isErrorResponse(response);\n // computes list of redirects.\n if (!this.isErrorResponse) {\n const r = response as Response;\n const timings: RequestTime[] = [];\n const redirects: ResponseRedirect[] = [];\n if (Array.isArray(effectiveLog.redirects)) {\n effectiveLog.redirects.forEach((rdr) => {\n redirects.push(rdr);\n if (rdr.timings) {\n timings.push(rdr.timings);\n }\n });\n }\n if (r.timings) {\n timings.push(r.timings);\n }\n this.timingsData = timings;\n this.redirectsData = redirects;\n }\n }\n }\n\n protected handleViewSelect(e: CustomEvent<TabSelectionDetail>): void {\n const key = e.detail.select as RequestLogView | undefined;\n if (!key) {\n return;\n }\n this.view = key;\n }\n\n protected override render(): TemplateResult {\n const { effectiveLog } = this;\n return html`\n ${this.renderTabs(effectiveLog)}\n ${this.renderContent(effectiveLog)}\n `;\n }\n\n protected renderTabs(effectiveLog?: CoreRequestLog): TemplateResult {\n const { view: selected='headers' } = this;\n return html`\n <ui-tabs .selected=\"${selected}\" @select=\"${this.handleViewSelect}\">\n <ui-tab aria-controls=\"headers\" id=\"headers-tab\" title=\"Request and response header\">Headers</ui-tab>\n <ui-tab ?hidden=\"${!this.hasRequestPayload}\" aria-controls=\"payload\" id=\"payload-tab\" title=\"Request payload set to server\">Payload</ui-tab>\n <ui-tab ?hidden=\"${!this.hasResponsePayload}\" aria-controls=\"preview\" id=\"preview-tab\" title=\"Formatted view of the response\">Preview</ui-tab>\n <ui-tab aria-controls=\"response\" id=\"response-tab\" title=\"Unformatted view of the response\">Response</ui-tab>\n <ui-tab aria-controls=\"timings\" id=\"timings-tab\" title=\"Request detailed timings\">Timings</ui-tab>\n <ui-tab aria-controls=\"redirects\" id=\"redirects-tab\" title=\"Detailed redirect information\">Redirects</ui-tab>\n <ui-tab aria-controls=\"assertions\" id=\"assertions-tab\" title=\"HTTP assertions result\">Assertions ${this.renderAssertionsBadge(effectiveLog)}</ui-tab>\n </ui-tabs>\n `;\n }\n\n protected renderAssertionsBadge(effectiveLog?: CoreRequestLog): TemplateResult | typeof nothing {\n if (!effectiveLog) {\n return nothing;\n }\n const { assertions = [] } = effectiveLog;\n const failed = assertions.filter(i => !i.ok);\n if (!failed.length) {\n return nothing;\n }\n return html`\n <span class=\"badge large-label tab\">${failed.length}</span>\n `;\n }\n\n protected renderContent(effectiveLog?: CoreRequestLog): TemplateResult {\n const { view = RequestLogView.headers } = this;\n if (!effectiveLog) {\n return html`<div class=\"empty-info\">No data available.</div>`;\n }\n let tpl: TemplateResult;\n switch (view) {\n case RequestLogView.payload: tpl = this.renderPayload(effectiveLog); break;\n case RequestLogView.preview: tpl = this.renderPreview(effectiveLog); break;\n case RequestLogView.response: tpl = this.renderResponse(effectiveLog); break;\n case RequestLogView.timings: tpl = this.renderTimings(); break;\n case RequestLogView.redirects: tpl = this.renderRedirects(); break;\n case RequestLogView.assertions: tpl = this.renderAssertions(effectiveLog); break;\n default:\n tpl = this.renderHeaders(effectiveLog);\n }\n return tpl;\n }\n\n /**\n * Renders basic information about the request:\n * - request method & URL\n * - request headers\n * - response headers\n */\n protected renderHeaders(info: CoreRequestLog): TemplateResult {\n return html`\n <http-log-headers .httpLog=\"${info}\" role=\"tabpanel\" aria-labelledby=\"headers-tab\" id=\"headers\"></http-log-headers>\n `;\n }\n\n /**\n * @returns The template for the \"raw\" response body view.\n */\n protected renderPayload(info: CoreRequestLog): TemplateResult {\n if (!info) {\n return html``;\n }\n const { request } = info;\n if (!request) {\n return this._noDataTemplate('payload-tab', 'payload');\n }\n const parser = new Headers(request.headers);\n const mime = parser.get('content-type');\n return html`\n <http-log-body .payload=\"${request.payload}\" .contentType=\"${mime}\" role=\"tabpanel\" aria-labelledby=\"payload-tab\" id=\"payload\"></http-log-body>\n `;\n }\n\n /**\n * @returns The template for the parsed response body view.\n */\n protected renderPreview(info: CoreRequestLog): TemplateResult {\n if (!info) {\n return html``;\n }\n const { response } = info;\n if (!response) {\n return html`<p aria-labelledby=\"preview-tab\" id=\"preview\" role=\"tabpanel\">No response data</p>`;\n }\n const parser = new Headers(response.headers);\n const mime = parser.get('content-type');\n return html`\n <http-log-body aria-labelledby=\"preview-tab\" id=\"preview\" .payload=\"${response.payload}\" .contentType=\"${mime}\" role=\"tabpanel\"></http-log-body>\n `;\n }\n\n protected renderResponse(info: CoreRequestLog): TemplateResult {\n if (!info) {\n return html``;\n }\n const { response } = info;\n if (!response) {\n return this._noDataTemplate('response-tab', 'response');\n }\n const parser = new Headers(response.headers);\n const mime = parser.get('content-type');\n return html`\n <http-log-body aria-labelledby=\"response-tab\" id=\"response\" .payload=\"${response.payload}\" .contentType=\"${mime}\" raw role=\"tabpanel\"></http-log-body>\n `;\n }\n\n protected renderTimings(): TemplateResult {\n const { timingsData } = this;\n if (!timingsData || !timingsData.length) {\n return this._noDataTemplate('timings-tab', 'timings');\n }\n return html`<http-log-timings aria-labelledby=\"timings-tab\" id=\"timings\" .timings=\"${timingsData}\" role=\"tabpanel\"></http-log-timings>`;\n }\n\n protected renderRedirects(): TemplateResult {\n const { redirectsData } = this;\n if (!redirectsData || !redirectsData.length) {\n return this._noDataTemplate('redirects-tab', 'redirects');\n }\n return html`\n <div role=\"tabpanel\" aria-labelledby=\"redirects-tab\" id=\"redirects\">\n ${redirectsData.map((item, index) => this.renderRedirect(item, index))}\n </div>\n `;\n }\n\n protected renderRedirect(item: ResponseRedirect, index: number): TemplateResult {\n const { url, response } = item;\n if (!response) {\n return html`\n <div class=\"status-row\">\n <div class=\"status-label text\">#<span>${index + 1}</span></div>\n <div class=\"redirect-value\">This redirect has no response data</div>\n </div>\n `;\n }\n const headers = new Headers(response.headers);\n const mime = headers.get('content-type');\n return html`\n <div class=\"status-row\">\n <div class=\"status-label text\">#<span>${index + 1}</span></div>\n <div class=\"redirect-value\">\n <div class=\"redirect-code\">\n ${statusTemplate(response.status, response.statusText)}\n </div>\n <div class=\"redirect-location\">\n <a href=\"${url}\" class=\"auto-link\">${url}</a>\n </div>\n ${this.renderHeadersRaw(headers)}\n ${response.payload ? html`<http-log-body .payload=\"${response.payload}\" .contentType=\"${mime}\" role=\"tabpanel\"></http-log-body>` : ''}\n </div>\n </div>\n `;\n }\n\n protected renderHeadersRaw(header: Headers): TemplateResult | string {\n const templates: TemplateResult[] = [];\n header.forEach((value, name) => {\n templates.push(html`\n <li>\n <span class=\"header-name\">${name}</span>\n <span class=\"header-value\">${value}</span>\n </li>\n `);\n });\n if (!templates.length) {\n return '';\n }\n return html`\n <ul class=\"headers\">\n ${templates}\n </ul>\n `;\n }\n\n protected _noDataTemplate(arialLabelledBy: string, id: string): TemplateResult {\n return html`\n <div class=\"no-data\" aria-labelledby=\"${arialLabelledBy}\" id=\"${id}\" role=\"tabpanel\">No data available.</div>\n `;\n }\n\n protected renderAssertions(info: CoreRequestLog): TemplateResult {\n if (!info) {\n return html``;\n }\n const { assertions } = info;\n if (!Array.isArray(assertions) || !assertions.length) {\n return html`<p aria-labelledby=\"assertions-tab\" id=\"assertions\" role=\"tabpanel\" class=\"no-data\">No assertions defined.</p>`;\n }\n return html`\n <section aria-label=\"Assertions\" aria-labelledby=\"assertions-tab\" id=\"assertions\" role=\"tabpanel\">\n ${assertions.map((item, index) => html`\n ${this.renderAssertion(item)}\n ${index + 1 === assertions.length ? '' : html`<ui-divider type=\"inset\"></ui-divider>`}\n `)}\n </section>\n `;\n }\n\n renderAssertion(item: AssertionResult): TemplateResult {\n const { description, ok, error } = item;\n if (!ok) {\n return this.renderFailedAssertion(description, error as AssertionError);\n }\n return this.renderOkAssertion(description);\n }\n\n renderOkAssertion(description: string): TemplateResult {\n return html`\n <div class=\"assertion success\">\n <ui-icon role=\"presentation\" icon=\"check\" class=\"assertion-icon primary-text\"></ui-icon>\n <span class=\"label-large\">${description}</span>\n </div>\n `;\n }\n\n renderFailedAssertion(description: string, error: AssertionError): TemplateResult {\n return html`\n <div class=\"assertion fail\">\n <ui-icon role=\"presentation\" icon=\"cancel\" class=\"assertion-icon error-text\"></ui-icon>\n <div class=\"fail-details\">\n <span class=\"label-large\">${description}</span>\n <span class=\"error-text body-large\">${error.message}</span>\n </div>\n </div>\n `;\n }\n}\n"]}
@@ -44,33 +44,23 @@ const NAVIGATION_KEYS = {
44
44
  * @fires requestsend - A bubbling event when the user pressed Enter to send the request.
45
45
  */
46
46
  export default class UrlInput extends ApiElement {
47
- /**
48
- * The current URL value.
49
- * @attribute
50
- */
51
- value = 'http://';
52
- /**
53
- * When set the editor is in read only mode.
54
- * @attribute
55
- */
56
- readOnly = false;
57
- /**
58
- * Whether the URL suggestions are rendered.
59
- */
60
- suggestionsOpened = false;
61
- suggestions;
62
- renderedSuggestions;
63
- previousValue;
64
- isFocused = false;
65
- input;
66
- suggestionsContainer;
67
- suggestionsList;
68
- /**
69
- * Computed positioning styles for the suggestion box.
70
- */
71
- suggestionStyles;
72
47
  constructor() {
73
48
  super();
49
+ /**
50
+ * The current URL value.
51
+ * @attribute
52
+ */
53
+ this.value = 'http://';
54
+ /**
55
+ * When set the editor is in read only mode.
56
+ * @attribute
57
+ */
58
+ this.readOnly = false;
59
+ /**
60
+ * Whether the URL suggestions are rendered.
61
+ */
62
+ this.suggestionsOpened = false;
63
+ this.isFocused = false;
74
64
  this.handleUrlChange = this.handleUrlChange.bind(this);
75
65
  this.handleHistoryDeleted = this.handleHistoryDeleted.bind(this);
76
66
  this.handleHistoryClear = this.handleHistoryClear.bind(this);