@api-client/ui 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/demo/elements/http/http-assertions.html +3 -0
  2. package/demo/elements/http/http-assertions.ts +1 -1
  3. package/demo/elements/http/http-flows.html +23 -0
  4. package/demo/elements/http/http-flows.ts +92 -0
  5. package/demo/elements/http/index.html +3 -0
  6. package/demo/pages/http-project/main.ts +5 -6
  7. package/dist/define/dialog/delete-cookie-action-dialog.d.ts +10 -0
  8. package/dist/define/dialog/delete-cookie-action-dialog.d.ts.map +1 -0
  9. package/dist/define/dialog/delete-cookie-action-dialog.js +14 -0
  10. package/dist/define/dialog/delete-cookie-action-dialog.js.map +1 -0
  11. package/dist/define/dialog/set-cookie-action-dialog.d.ts +10 -0
  12. package/dist/define/dialog/set-cookie-action-dialog.d.ts.map +1 -0
  13. package/dist/define/dialog/set-cookie-action-dialog.js +14 -0
  14. package/dist/define/dialog/set-cookie-action-dialog.js.map +1 -0
  15. package/dist/define/http/http-assertions.d.ts +1 -1
  16. package/dist/define/http/http-assertions.d.ts.map +1 -1
  17. package/dist/define/http/http-assertions.js +3 -3
  18. package/dist/define/http/http-assertions.js.map +1 -1
  19. package/dist/define/http/http-flows.d.ts +10 -0
  20. package/dist/define/http/http-flows.d.ts.map +1 -0
  21. package/dist/define/http/http-flows.js +13 -0
  22. package/dist/define/http/http-flows.js.map +1 -0
  23. package/dist/define/ui/ui-divider.d.ts +4 -1
  24. package/dist/define/ui/ui-divider.d.ts.map +1 -1
  25. package/dist/define/ui/ui-divider.js +11 -2
  26. package/dist/define/ui/ui-divider.js.map +1 -1
  27. package/dist/elements/ApiElement.d.ts +4 -0
  28. package/dist/elements/ApiElement.d.ts.map +1 -1
  29. package/dist/elements/ApiElement.js +6 -0
  30. package/dist/elements/ApiElement.js.map +1 -1
  31. package/dist/elements/amf/ApiAuthorizationEditor.element.js +1 -1
  32. package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
  33. package/dist/elements/amf/ApiOperationDocument.element.d.ts.map +1 -1
  34. package/dist/elements/amf/ApiOperationDocument.element.js +2 -1
  35. package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
  36. package/dist/elements/amf/ApiRequest.element.js +1 -1
  37. package/dist/elements/amf/ApiRequest.element.js.map +1 -1
  38. package/dist/elements/amf/ApiRequestEditor.element.d.ts +0 -1
  39. package/dist/elements/amf/ApiRequestEditor.element.d.ts.map +1 -1
  40. package/dist/elements/amf/ApiRequestEditor.element.js +0 -3
  41. package/dist/elements/amf/ApiRequestEditor.element.js.map +1 -1
  42. package/dist/elements/authorization/ui/Authorization.d.ts +2 -1
  43. package/dist/elements/authorization/ui/Authorization.d.ts.map +1 -1
  44. package/dist/elements/authorization/ui/Authorization.js +0 -3
  45. package/dist/elements/authorization/ui/Authorization.js.map +1 -1
  46. package/dist/elements/dialog/DeleteCookieAction.element.d.ts +20 -0
  47. package/dist/elements/dialog/DeleteCookieAction.element.d.ts.map +1 -0
  48. package/dist/elements/dialog/DeleteCookieAction.element.js +93 -0
  49. package/dist/elements/dialog/DeleteCookieAction.element.js.map +1 -0
  50. package/dist/elements/dialog/DeleteCookieAction.styles.d.ts +3 -0
  51. package/dist/elements/dialog/DeleteCookieAction.styles.d.ts.map +1 -0
  52. package/dist/elements/dialog/DeleteCookieAction.styles.js +13 -0
  53. package/dist/elements/dialog/DeleteCookieAction.styles.js.map +1 -0
  54. package/dist/elements/dialog/Rename.d.ts +7 -6
  55. package/dist/elements/dialog/Rename.d.ts.map +1 -1
  56. package/dist/elements/dialog/Rename.js +7 -6
  57. package/dist/elements/dialog/Rename.js.map +1 -1
  58. package/dist/elements/dialog/SetCookieAction.element.d.ts +22 -0
  59. package/dist/elements/dialog/SetCookieAction.element.d.ts.map +1 -0
  60. package/dist/elements/dialog/SetCookieAction.element.js +173 -0
  61. package/dist/elements/dialog/SetCookieAction.element.js.map +1 -0
  62. package/dist/elements/environment/EnvironmentEditor.d.ts +24 -3
  63. package/dist/elements/environment/EnvironmentEditor.d.ts.map +1 -1
  64. package/dist/elements/environment/EnvironmentEditor.js +69 -23
  65. package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
  66. package/dist/elements/environment/EnvironmentEditor.styles.d.ts.map +1 -1
  67. package/dist/elements/environment/EnvironmentEditor.styles.js +5 -0
  68. package/dist/elements/environment/EnvironmentEditor.styles.js.map +1 -1
  69. package/dist/elements/environment/ServerEditor.d.ts +3 -3
  70. package/dist/elements/environment/ServerEditor.d.ts.map +1 -1
  71. package/dist/elements/environment/ServerEditor.js +3 -6
  72. package/dist/elements/environment/ServerEditor.js.map +1 -1
  73. package/dist/elements/environment/VariablesEditor.d.ts +0 -1
  74. package/dist/elements/environment/VariablesEditor.d.ts.map +1 -1
  75. package/dist/elements/environment/VariablesEditor.js +3 -6
  76. package/dist/elements/environment/VariablesEditor.js.map +1 -1
  77. package/dist/elements/highlight/Prism.styles.d.ts.map +1 -1
  78. package/dist/elements/highlight/Prism.styles.js +12 -5
  79. package/dist/elements/highlight/Prism.styles.js.map +1 -1
  80. package/dist/elements/http/BodyEditor.d.ts +0 -4
  81. package/dist/elements/http/BodyEditor.d.ts.map +1 -1
  82. package/dist/elements/http/BodyEditor.js +10 -16
  83. package/dist/elements/http/BodyEditor.js.map +1 -1
  84. package/dist/elements/http/BodyMultipartEditor.d.ts +3 -16
  85. package/dist/elements/http/BodyMultipartEditor.d.ts.map +1 -1
  86. package/dist/elements/http/BodyMultipartEditor.js +3 -19
  87. package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
  88. package/dist/elements/http/BodyTextEditor.d.ts +0 -1
  89. package/dist/elements/http/BodyTextEditor.d.ts.map +1 -1
  90. package/dist/elements/http/BodyTextEditor.js +0 -3
  91. package/dist/elements/http/BodyTextEditor.js.map +1 -1
  92. package/dist/elements/http/BodyUrlEncodedEditor.d.ts +3 -3
  93. package/dist/elements/http/BodyUrlEncodedEditor.d.ts.map +1 -1
  94. package/dist/elements/http/BodyUrlEncodedEditor.js +3 -5
  95. package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
  96. package/dist/elements/http/HeadersForm.d.ts +0 -4
  97. package/dist/elements/http/HeadersForm.d.ts.map +1 -1
  98. package/dist/elements/http/HeadersForm.js +0 -6
  99. package/dist/elements/http/HeadersForm.js.map +1 -1
  100. package/dist/elements/http/HttpAssertions.element.d.ts +55 -0
  101. package/dist/elements/http/HttpAssertions.element.d.ts.map +1 -0
  102. package/dist/elements/http/HttpAssertions.element.js +264 -0
  103. package/dist/elements/http/HttpAssertions.element.js.map +1 -0
  104. package/dist/elements/http/HttpAssertions.styles.d.ts.map +1 -1
  105. package/dist/elements/http/HttpAssertions.styles.js +7 -156
  106. package/dist/elements/http/HttpAssertions.styles.js.map +1 -1
  107. package/dist/elements/http/HttpFlows.common.d.ts +3 -0
  108. package/dist/elements/http/HttpFlows.common.d.ts.map +1 -0
  109. package/dist/elements/http/HttpFlows.common.js +181 -0
  110. package/dist/elements/http/HttpFlows.common.js.map +1 -0
  111. package/dist/elements/http/HttpFlows.element.d.ts +97 -0
  112. package/dist/elements/http/HttpFlows.element.d.ts.map +1 -0
  113. package/dist/elements/http/HttpFlows.element.js +684 -0
  114. package/dist/elements/http/HttpFlows.element.js.map +1 -0
  115. package/dist/elements/http/HttpFlows.styles.d.ts +3 -0
  116. package/dist/elements/http/HttpFlows.styles.d.ts.map +1 -0
  117. package/dist/elements/http/HttpFlows.styles.js +28 -0
  118. package/dist/elements/http/HttpFlows.styles.js.map +1 -0
  119. package/dist/elements/http/HttpFlowsUi.d.ts +172 -0
  120. package/dist/elements/http/HttpFlowsUi.d.ts.map +1 -0
  121. package/dist/elements/http/HttpFlowsUi.js +1256 -0
  122. package/dist/elements/http/HttpFlowsUi.js.map +1 -0
  123. package/dist/elements/http/RequestConfigElement.d.ts +0 -1
  124. package/dist/elements/http/RequestConfigElement.d.ts.map +1 -1
  125. package/dist/elements/http/RequestConfigElement.js +8 -11
  126. package/dist/elements/http/RequestConfigElement.js.map +1 -1
  127. package/dist/elements/http/RequestEditor.d.ts +10 -10
  128. package/dist/elements/http/RequestEditor.d.ts.map +1 -1
  129. package/dist/elements/http/RequestEditor.js +62 -23
  130. package/dist/elements/http/RequestEditor.js.map +1 -1
  131. package/dist/elements/http/UrlInput.d.ts +3 -3
  132. package/dist/elements/http/UrlInput.d.ts.map +1 -1
  133. package/dist/elements/http/UrlInput.js +2 -2
  134. package/dist/elements/http/UrlInput.js.map +1 -1
  135. package/dist/elements/http/UrlParamsForm.d.ts +0 -1
  136. package/dist/elements/http/UrlParamsForm.d.ts.map +1 -1
  137. package/dist/elements/http/UrlParamsForm.js +0 -3
  138. package/dist/elements/http/UrlParamsForm.js.map +1 -1
  139. package/dist/elements/layout/SplitView.styles.d.ts.map +1 -1
  140. package/dist/elements/layout/SplitView.styles.js +1 -0
  141. package/dist/elements/layout/SplitView.styles.js.map +1 -1
  142. package/dist/elements/navigation/AppNavigationItem.styles.d.ts.map +1 -1
  143. package/dist/elements/navigation/AppNavigationItem.styles.js +2 -0
  144. package/dist/elements/navigation/AppNavigationItem.styles.js.map +1 -1
  145. package/dist/elements/project/HttpProjectRequest.d.ts +2 -1
  146. package/dist/elements/project/HttpProjectRequest.d.ts.map +1 -1
  147. package/dist/elements/project/HttpProjectRequest.js +14 -5
  148. package/dist/elements/project/HttpProjectRequest.js.map +1 -1
  149. package/dist/elements/project/ProjectRunner.d.ts +0 -1
  150. package/dist/elements/project/ProjectRunner.d.ts.map +1 -1
  151. package/dist/elements/project/ProjectRunner.js +1 -4
  152. package/dist/elements/project/ProjectRunner.js.map +1 -1
  153. package/dist/elements/schema-design/AssociationFormElement.d.ts +0 -1
  154. package/dist/elements/schema-design/AssociationFormElement.d.ts.map +1 -1
  155. package/dist/elements/schema-design/AssociationFormElement.js +2 -5
  156. package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
  157. package/dist/elements/schema-design/DataEntityEditorElement.d.ts +2 -2
  158. package/dist/elements/schema-design/DataEntityEditorElement.d.ts.map +1 -1
  159. package/dist/elements/schema-design/DataEntityEditorElement.js +5 -5
  160. package/dist/elements/schema-design/DataEntityEditorElement.js.map +1 -1
  161. package/dist/elements/schema-design/DataSchemaDocument.d.ts +0 -1
  162. package/dist/elements/schema-design/DataSchemaDocument.d.ts.map +1 -1
  163. package/dist/elements/schema-design/DataSchemaDocument.js +4 -7
  164. package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
  165. package/dist/elements/schema-design/EntityFormElement.d.ts +0 -1
  166. package/dist/elements/schema-design/EntityFormElement.d.ts.map +1 -1
  167. package/dist/elements/schema-design/EntityFormElement.js +4 -7
  168. package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
  169. package/dist/elements/schema-design/PropertyFormElement.d.ts +1 -2
  170. package/dist/elements/schema-design/PropertyFormElement.d.ts.map +1 -1
  171. package/dist/elements/schema-design/PropertyFormElement.js +8 -11
  172. package/dist/elements/schema-design/PropertyFormElement.js.map +1 -1
  173. package/dist/pages/ApplicationScreen.d.ts +1 -1
  174. package/dist/pages/ApplicationScreen.d.ts.map +1 -1
  175. package/dist/pages/ApplicationScreen.js +1 -1
  176. package/dist/pages/ApplicationScreen.js.map +1 -1
  177. package/dist/pages/api-client/ApiClient.styles.d.ts.map +1 -1
  178. package/dist/pages/api-client/ApiClient.styles.js +22 -3
  179. package/dist/pages/api-client/ApiClient.styles.js.map +1 -1
  180. package/dist/pages/api-client/Authenticate.screen.d.ts +2 -0
  181. package/dist/pages/api-client/Authenticate.screen.d.ts.map +1 -1
  182. package/dist/pages/api-client/Authenticate.screen.js +19 -3
  183. package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
  184. package/dist/pages/api-client/StoreConfig.screen.d.ts.map +1 -1
  185. package/dist/pages/api-client/StoreConfig.screen.js +4 -2
  186. package/dist/pages/api-client/StoreConfig.screen.js.map +1 -1
  187. package/dist/pages/api-client/StoreConfig.styles.d.ts.map +1 -1
  188. package/dist/pages/api-client/StoreConfig.styles.js +5 -0
  189. package/dist/pages/api-client/StoreConfig.styles.js.map +1 -1
  190. package/dist/pages/api-client/pages/Files.page.d.ts +1 -0
  191. package/dist/pages/api-client/pages/Files.page.d.ts.map +1 -1
  192. package/dist/pages/api-client/pages/Files.page.js +2 -1
  193. package/dist/pages/api-client/pages/Files.page.js.map +1 -1
  194. package/dist/pages/http-project/HttpProject.screen.d.ts +0 -8
  195. package/dist/pages/http-project/HttpProject.screen.d.ts.map +1 -1
  196. package/dist/pages/http-project/HttpProject.screen.js +14 -15
  197. package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
  198. package/dist/pages/http-project/types.d.ts +8 -6
  199. package/dist/pages/http-project/types.d.ts.map +1 -1
  200. package/dist/pages/http-project/types.js.map +1 -1
  201. package/dist/styles/m3/surface.module.d.ts.map +1 -1
  202. package/dist/styles/m3/surface.module.js +11 -27
  203. package/dist/styles/m3/surface.module.js.map +1 -1
  204. package/dist/ui/UiElement.d.ts +4 -0
  205. package/dist/ui/UiElement.d.ts.map +1 -1
  206. package/dist/ui/UiElement.js +6 -0
  207. package/dist/ui/UiElement.js.map +1 -1
  208. package/dist/ui/button/SegmentedButton.styles.d.ts.map +1 -1
  209. package/dist/ui/button/SegmentedButton.styles.js +3 -1
  210. package/dist/ui/button/SegmentedButton.styles.js.map +1 -1
  211. package/dist/ui/dialog/UiDialog.d.ts +3 -0
  212. package/dist/ui/dialog/UiDialog.d.ts.map +1 -1
  213. package/dist/ui/dialog/UiDialog.js +3 -0
  214. package/dist/ui/dialog/UiDialog.js.map +1 -1
  215. package/dist/ui/effects/ripple.d.ts.map +1 -1
  216. package/dist/ui/effects/ripple.js +5 -1
  217. package/dist/ui/effects/ripple.js.map +1 -1
  218. package/dist/ui/icons/Icons.d.ts +3 -2
  219. package/dist/ui/icons/Icons.d.ts.map +1 -1
  220. package/dist/ui/icons/Icons.js +2 -1
  221. package/dist/ui/icons/Icons.js.map +1 -1
  222. package/dist/ui/input/CheckedElement.d.ts +1 -1
  223. package/dist/ui/input/CheckedElement.d.ts.map +1 -1
  224. package/dist/ui/input/CheckedElement.js +3 -3
  225. package/dist/ui/input/CheckedElement.js.map +1 -1
  226. package/dist/ui/input/Input.js +1 -1
  227. package/dist/ui/input/Input.js.map +1 -1
  228. package/dist/ui/list/{DividerElement.d.ts → UiDivider.element.d.ts} +6 -6
  229. package/dist/ui/list/UiDivider.element.d.ts.map +1 -0
  230. package/dist/ui/list/UiDivider.element.js +39 -0
  231. package/dist/ui/list/UiDivider.element.js.map +1 -0
  232. package/dist/ui/list/UiDivider.styles.d.ts +3 -0
  233. package/dist/ui/list/UiDivider.styles.d.ts.map +1 -0
  234. package/dist/ui/list/UiDivider.styles.js +49 -0
  235. package/dist/ui/list/UiDivider.styles.js.map +1 -0
  236. package/dist/ui/tabs/UiTabs.d.ts +13 -1
  237. package/dist/ui/tabs/UiTabs.d.ts.map +1 -1
  238. package/dist/ui/tabs/UiTabs.js +42 -13
  239. package/dist/ui/tabs/UiTabs.js.map +1 -1
  240. package/package.json +1 -1
  241. package/src/define/dialog/delete-cookie-action-dialog.ts +16 -0
  242. package/src/define/dialog/set-cookie-action-dialog.ts +16 -0
  243. package/src/define/http/http-assertions.ts +3 -3
  244. package/src/define/http/http-flows.ts +15 -0
  245. package/src/define/ui/ui-divider.ts +7 -2
  246. package/src/elements/ApiElement.ts +7 -0
  247. package/src/elements/amf/ApiAuthorizationEditor.element.ts +1 -1
  248. package/src/elements/amf/ApiOperationDocument.element.ts +2 -1
  249. package/src/elements/amf/ApiRequest.element.ts +1 -1
  250. package/src/elements/amf/ApiRequestEditor.element.ts +0 -4
  251. package/src/elements/authorization/ui/Authorization.ts +3 -5
  252. package/src/elements/dialog/DeleteCookieAction.element.ts +100 -0
  253. package/src/elements/dialog/DeleteCookieAction.styles.ts +14 -0
  254. package/src/elements/dialog/Rename.ts +8 -7
  255. package/src/elements/dialog/SetCookieAction.element.ts +183 -0
  256. package/src/elements/environment/EnvironmentEditor.styles.ts +5 -0
  257. package/src/elements/environment/EnvironmentEditor.ts +81 -22
  258. package/src/elements/environment/ServerEditor.ts +4 -8
  259. package/src/elements/environment/VariablesEditor.ts +3 -7
  260. package/src/elements/highlight/Prism.styles.ts +12 -5
  261. package/src/elements/http/BodyEditor.ts +10 -17
  262. package/src/elements/http/BodyMultipartEditor.ts +3 -20
  263. package/src/elements/http/BodyTextEditor.ts +0 -4
  264. package/src/elements/http/BodyUrlEncodedEditor.ts +5 -8
  265. package/src/elements/http/HeadersForm.ts +2 -9
  266. package/src/elements/http/HttpAssertions.element.ts +286 -0
  267. package/src/elements/http/HttpAssertions.styles.ts +7 -156
  268. package/src/elements/http/HttpFlows.common.ts +181 -0
  269. package/src/elements/http/HttpFlows.element.ts +722 -0
  270. package/src/elements/http/HttpFlows.styles.ts +29 -0
  271. package/src/elements/http/HttpFlowsUi.ts +1327 -0
  272. package/src/elements/http/RequestConfigElement.ts +10 -14
  273. package/src/elements/http/RequestEditor.ts +77 -35
  274. package/src/elements/http/UrlInput.ts +6 -6
  275. package/src/elements/http/UrlParamsForm.ts +2 -6
  276. package/src/elements/layout/SplitView.styles.ts +1 -0
  277. package/src/elements/navigation/AppNavigationItem.styles.ts +2 -0
  278. package/src/elements/project/HttpProjectRequest.ts +16 -5
  279. package/src/elements/project/ProjectRunner.ts +3 -7
  280. package/src/elements/schema-design/AssociationFormElement.ts +4 -8
  281. package/src/elements/schema-design/DataEntityEditorElement.ts +8 -8
  282. package/src/elements/schema-design/DataSchemaDocument.ts +5 -9
  283. package/src/elements/schema-design/EntityFormElement.ts +6 -10
  284. package/src/elements/schema-design/PropertyFormElement.ts +11 -15
  285. package/src/pages/ApplicationScreen.ts +1 -1
  286. package/src/pages/api-client/ApiClient.styles.ts +22 -3
  287. package/src/pages/api-client/Authenticate.screen.ts +19 -3
  288. package/src/pages/api-client/StoreConfig.screen.ts +4 -2
  289. package/src/pages/api-client/StoreConfig.styles.ts +5 -0
  290. package/src/pages/api-client/pages/Files.page.ts +2 -1
  291. package/src/pages/http-project/HttpProject.screen.ts +14 -26
  292. package/src/pages/http-project/types.ts +8 -6
  293. package/src/styles/m3/surface.module.ts +11 -27
  294. package/src/styles/m3/theme.css +36 -0
  295. package/src/styles/m3/tokens.css +11 -0
  296. package/src/ui/UiElement.ts +7 -0
  297. package/src/ui/button/SegmentedButton.styles.ts +3 -1
  298. package/src/ui/dialog/UiDialog.ts +3 -0
  299. package/src/ui/effects/ripple.ts +6 -1
  300. package/src/ui/icons/Icons.ts +3 -2
  301. package/src/ui/input/CheckedElement.ts +3 -3
  302. package/src/ui/input/Input.ts +1 -1
  303. package/src/ui/list/UiDivider.element.ts +41 -0
  304. package/src/ui/list/UiDivider.styles.ts +49 -0
  305. package/src/ui/tabs/UiTabs.ts +55 -13
  306. package/test/amf/authorization/OAuth2Method.test.ts +1 -1
  307. package/test/elements/http/HttpAssertions.test.ts +5 -6
  308. package/test/elements/http/HttpFlows.test.ts +485 -0
  309. package/dist/elements/http/HttpAssertions.d.ts +0 -114
  310. package/dist/elements/http/HttpAssertions.d.ts.map +0 -1
  311. package/dist/elements/http/HttpAssertions.js +0 -1146
  312. package/dist/elements/http/HttpAssertions.js.map +0 -1
  313. package/dist/elements/http/internals.d.ts +0 -150
  314. package/dist/elements/http/internals.d.ts.map +0 -1
  315. package/dist/elements/http/internals.js +0 -150
  316. package/dist/elements/http/internals.js.map +0 -1
  317. package/dist/ui/list/DividerElement.d.ts.map +0 -1
  318. package/dist/ui/list/DividerElement.js +0 -82
  319. package/dist/ui/list/DividerElement.js.map +0 -1
  320. package/src/elements/http/HttpAssertions.ts +0 -1187
  321. package/src/elements/http/internals.ts +0 -151
  322. package/src/http-client/docs/Files.md +0 -28
  323. package/src/ui/list/DividerElement.ts +0 -84
@@ -15,6 +15,7 @@ import '../../define/http/http-headers-form.js';
15
15
  import '../../define/http/http-snippets.js';
16
16
  import '../../define/http/http-body-editor.js';
17
17
  import '../../define/http/http-assertions.js';
18
+ import '../../define/http/http-flows.js';
18
19
  import '../../define/http/http-request-config.js';
19
20
  import '../../define/ui/ui-dropdown-list.js';
20
21
  import '../../define/ui/ui-list.js';
@@ -315,8 +316,8 @@ export default class RequestEditor extends ApiElement {
315
316
  const request = this.getRequest();
316
317
  request.method = verb;
317
318
  this.requestUpdate();
318
- this.notifyRequestChanged();
319
- this.notifyChanged('method', verb);
319
+ this.notifyChange();
320
+ this.notifyPropertyChanged('method', verb);
320
321
  if (!this.isPayload && this.selectedTab === 'payload') {
321
322
  this.selectedTab = 'headers';
322
323
  }
@@ -343,8 +344,8 @@ export default class RequestEditor extends ApiElement {
343
344
  const request = this.getRequest();
344
345
  request.url = value;
345
346
  this.requestUpdate();
346
- this.notifyRequestChanged();
347
- this.notifyChanged('url', value);
347
+ this.notifyChange();
348
+ this.notifyPropertyChanged('url', value);
348
349
  this.computeSnippetsRequest();
349
350
  }
350
351
  handleTabSelect(e) {
@@ -352,7 +353,7 @@ export default class RequestEditor extends ApiElement {
352
353
  this.selectedTab = info.select;
353
354
  if (this.ui) {
354
355
  this.ui.selectedEditor = this.selectedTab;
355
- this.notifyChanged('ui', this.ui);
356
+ this.notifyPropertyChanged('ui', this.ui);
356
357
  }
357
358
  CoreEvents.Telemetry.event({
358
359
  category: 'Request editor',
@@ -380,7 +381,7 @@ export default class RequestEditor extends ApiElement {
380
381
  this.ui.headers = {};
381
382
  }
382
383
  // this.ui.headers.source = source;
383
- this.notifyChanged('ui', this.ui);
384
+ this.notifyPropertyChanged('ui', this.ui);
384
385
  }
385
386
  selectHeaders(model) {
386
387
  const request = this.getRequest();
@@ -389,7 +390,7 @@ export default class RequestEditor extends ApiElement {
389
390
  this.contentType = ct && ct.value;
390
391
  this.setPayloadMimeOption(request, this.contentType);
391
392
  this.requestUpdate();
392
- this.notifyRequestChanged();
393
+ this.notifyChange();
393
394
  this.computeSnippetsRequest();
394
395
  }
395
396
  /**
@@ -409,7 +410,7 @@ export default class RequestEditor extends ApiElement {
409
410
  }
410
411
  this.ui.body.model = model;
411
412
  this.ui.body.selected = selected;
412
- this.notifyChanged('ui', this.ui);
413
+ this.notifyPropertyChanged('ui', this.ui);
413
414
  }
414
415
  async updatePayload(value, mime) {
415
416
  const serialized = await PayloadSerializer.serialize(value);
@@ -418,8 +419,8 @@ export default class RequestEditor extends ApiElement {
418
419
  this.setPayloadMimeOption(request, mime);
419
420
  this.payload = value;
420
421
  this.requestUpdate();
421
- this.notifyRequestChanged();
422
- this.notifyChanged('payload', value);
422
+ this.notifyChange();
423
+ this.notifyPropertyChanged('payload', value);
423
424
  }
424
425
  /**
425
426
  * When `mime` is set it creates the `payloadOptions` property with the mime.
@@ -434,6 +435,15 @@ export default class RequestEditor extends ApiElement {
434
435
  request.payloadOptions.mime = mime;
435
436
  }
436
437
  }
438
+ handleFlows(e) {
439
+ e.preventDefault();
440
+ const node = e.target;
441
+ this.selectFlows(node.model);
442
+ }
443
+ selectFlows(flows) {
444
+ this.flows = flows;
445
+ this.notifyChange();
446
+ }
437
447
  handleAssertions(e) {
438
448
  e.preventDefault();
439
449
  const node = e.target;
@@ -441,7 +451,7 @@ export default class RequestEditor extends ApiElement {
441
451
  }
442
452
  selectAssertions(assertions) {
443
453
  this.assertions = assertions;
444
- this.notifyRequestChanged();
454
+ this.notifyChange();
445
455
  }
446
456
  handleConfig(e) {
447
457
  const node = e.target;
@@ -449,14 +459,7 @@ export default class RequestEditor extends ApiElement {
449
459
  }
450
460
  selectRequestConfig(config) {
451
461
  this.config = config;
452
- this.notifyRequestChanged();
453
- }
454
- /**
455
- * Called when a value on one of the editors change.
456
- * Dispatches non-bubbling `change` event.
457
- */
458
- notifyRequestChanged() {
459
- this.dispatchEvent(new Event('change'));
462
+ this.notifyChange();
460
463
  }
461
464
  /**
462
465
  * Called to notify listeners about a particular property change
@@ -464,7 +467,7 @@ export default class RequestEditor extends ApiElement {
464
467
  * @param type The property that changed. The resulting event type is the combination of this value and the `change` suffix.
465
468
  * @param value The value of the changed property
466
469
  */
467
- notifyChanged(type, value) {
470
+ notifyPropertyChanged(type, value) {
468
471
  this.dispatchEvent(new CustomEvent(`${type}change`, {
469
472
  detail: {
470
473
  value
@@ -502,7 +505,7 @@ export default class RequestEditor extends ApiElement {
502
505
  this.authorization = [];
503
506
  }
504
507
  this.authorization.push(cnf.toJSON());
505
- this.notifyChanged('authorization', this.authorization);
508
+ this.notifyPropertyChanged('authorization', this.authorization);
506
509
  this.requestUpdate();
507
510
  return cnf;
508
511
  }
@@ -523,7 +526,7 @@ export default class RequestEditor extends ApiElement {
523
526
  // eslint-disable-next-line no-param-reassign
524
527
  schema.valid = isValid;
525
528
  authorization[index] = schema;
526
- this.notifyChanged('authorization', this.authorization);
529
+ this.notifyPropertyChanged('authorization', this.authorization);
527
530
  }
528
531
  /**
529
532
  * Removes authorization schema from the editor.
@@ -539,7 +542,7 @@ export default class RequestEditor extends ApiElement {
539
542
  return;
540
543
  }
541
544
  authorization.splice(index, 1);
542
- this.notifyChanged('authorization', this.authorization);
545
+ this.notifyPropertyChanged('authorization', this.authorization);
543
546
  this.requestUpdate();
544
547
  }
545
548
  handleAuthAdd(e) {
@@ -676,6 +679,7 @@ export default class RequestEditor extends ApiElement {
676
679
  <ui-tab aria-controls="headers" id="headers-tab">Headers</ui-tab>
677
680
  <ui-tab ?hidden="${!isPayload}" aria-controls="payload" id="payload-tab">Body</ui-tab>
678
681
  <ui-tab aria-controls="authorization" id="authorization-tab">Authorization</ui-tab>
682
+ <ui-tab aria-controls="flows" id="flows-tab">Flows</ui-tab>
679
683
  <ui-tab aria-controls="assertions" id="assertions-tab">Assertions</ui-tab>
680
684
  <ui-tab aria-controls="config" id="config-tab">Config</ui-tab>
681
685
  <ui-tab aria-controls="code-snippets" id="code-snippets-tab">Code snippets</ui-tab>
@@ -693,12 +697,14 @@ export default class RequestEditor extends ApiElement {
693
697
  const codeVisible = selectedTab === 'code-snippets';
694
698
  const assertionsVisible = selectedTab === 'assertions';
695
699
  const configVisible = selectedTab === 'config';
700
+ const flowsVisible = selectedTab === 'flows';
696
701
  return html `
697
702
  <div class="panel">
698
703
  ${this.renderParameters(parametersVisible)}
699
704
  ${this.renderHeaders(headersVisible)}
700
705
  ${this.renderBody(bodyVisible)}
701
706
  ${this.renderAuthorization(authVisible)}
707
+ ${this.renderHttpFlows(flowsVisible)}
702
708
  ${this.renderAssertions(assertionsVisible)}
703
709
  ${this.renderRequestConfig(configVisible)}
704
710
  ${this.renderSnippets(codeVisible)}
@@ -864,6 +870,8 @@ export default class RequestEditor extends ApiElement {
864
870
  .authorization="${auth}"
865
871
  ?readOnly="${this.readOnly}"
866
872
  class="auth-panel"
873
+ canToggle
874
+ canDelete
867
875
  @change="${this.handleAuthChange}"
868
876
  @delete="${this.handleAuthDelete}"
869
877
  ></basic-authorization>
@@ -875,6 +883,8 @@ export default class RequestEditor extends ApiElement {
875
883
  .authorization="${auth}"
876
884
  ?readOnly="${this.readOnly}"
877
885
  class="auth-panel"
886
+ canToggle
887
+ canDelete
878
888
  @change="${this.handleAuthChange}"
879
889
  @delete="${this.handleAuthDelete}"
880
890
  ></bearer-authorization>
@@ -886,6 +896,8 @@ export default class RequestEditor extends ApiElement {
886
896
  .authorization="${auth}"
887
897
  ?readOnly="${this.readOnly}"
888
898
  class="auth-panel"
899
+ canToggle
900
+ canDelete
889
901
  @change="${this.handleAuthChange}"
890
902
  @delete="${this.handleAuthDelete}"
891
903
  ></ntlm-authorization>
@@ -897,6 +909,8 @@ export default class RequestEditor extends ApiElement {
897
909
  .authorization="${auth}"
898
910
  ?readOnly="${this.readOnly}"
899
911
  class="auth-panel"
912
+ canToggle
913
+ canDelete
900
914
  @change="${this.handleAuthChange}"
901
915
  @delete="${this.handleAuthDelete}"
902
916
  .defaultRedirectUri="${this.oauth2RedirectUri}"
@@ -909,6 +923,8 @@ export default class RequestEditor extends ApiElement {
909
923
  .authorization="${auth}"
910
924
  ?readOnly="${this.readOnly}"
911
925
  class="auth-panel"
926
+ canToggle
927
+ canDelete
912
928
  @change="${this.handleAuthChange}"
913
929
  @delete="${this.handleAuthDelete}"
914
930
  .defaultRedirectUri="${this.oauth2RedirectUri}"
@@ -921,6 +937,8 @@ export default class RequestEditor extends ApiElement {
921
937
  .authorization="${auth}"
922
938
  ?readOnly="${this.readOnly}"
923
939
  class="auth-panel"
940
+ canToggle
941
+ canDelete
924
942
  @change="${this.handleAuthChange}"
925
943
  @delete="${this.handleAuthDelete}"
926
944
  ></cc-authorization>
@@ -932,11 +950,29 @@ export default class RequestEditor extends ApiElement {
932
950
  .authorization="${auth}"
933
951
  ?readOnly="${this.readOnly}"
934
952
  class="auth-panel"
953
+ canToggle
954
+ canDelete
935
955
  @change="${this.handleAuthChange}"
936
956
  @delete="${this.handleAuthDelete}"
937
957
  ></apikey-authorization>
938
958
  `;
939
959
  }
960
+ renderHttpFlows(visible) {
961
+ if (!visible) {
962
+ return '';
963
+ }
964
+ const { flows = [] } = this;
965
+ return html `
966
+ <http-flows
967
+ aria-label="HTTP fLows"
968
+ aria-labelledby="flows-tab"
969
+ id="flows"
970
+ role="tabpanel"
971
+ .model="${flows}"
972
+ @change="${this.handleFlows}"
973
+ ></http-flows>
974
+ `;
975
+ }
940
976
  renderAssertions(visible) {
941
977
  if (!visible) {
942
978
  return '';
@@ -1024,6 +1060,9 @@ __decorate([
1024
1060
  __decorate([
1025
1061
  property({ type: Array })
1026
1062
  ], RequestEditor.prototype, "assertions", void 0);
1063
+ __decorate([
1064
+ property({ type: Array })
1065
+ ], RequestEditor.prototype, "flows", void 0);
1027
1066
  __decorate([
1028
1067
  property({ type: String })
1029
1068
  ], RequestEditor.prototype, "oauth2RedirectUri", void 0);
@@ -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 IHttpFlow,\n} from '@api-client/core/build/browser.js';\nimport type { AuthorizationType } from '@api-client/core/build/src/models/Authorization.js';\nimport { EventTypes } from '../../events/EventTypes.js';\nimport { Events } from '../../events/Events.js';\nimport ApiElement from '../ApiElement.js';\nimport { authTypeToLabel } from '../authorization/AuthLabels.js';\nimport type UrlInputEditorElement from './UrlInput.js';\nimport type BodyEditor from './BodyEditor.js';\nimport type { TabSelectionDetail } from '../../ui/tabs/UiTabs.js';\nimport type UrlParamsForm from './UrlParamsForm.js';\nimport type HeadersForm from './HeadersForm.js';\nimport type { Authorization } from '../authorization/ui/Authorization.js';\nimport type HttpAssertions from './HttpAssertions.element.js';\nimport type RequestConfigElement from './RequestConfigElement.js';\nimport type { 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-flows.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';\nimport HttpFlows from './HttpFlows.element.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' | 'flows';\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 @property({ type: Array }) flows?: IHttpFlow[];\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.notifyChange();\n this.notifyPropertyChanged('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.notifyChange();\n this.notifyPropertyChanged('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.notifyPropertyChanged('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.notifyPropertyChanged('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.notifyChange();\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.notifyPropertyChanged('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.notifyChange();\n this.notifyPropertyChanged('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 handleFlows(e: Event): void {\n e.preventDefault();\n const node = e.target as HttpFlows;\n this.selectFlows(node.model);\n }\n\n selectFlows(flows?: IHttpFlow[]): void {\n this.flows = flows;\n this.notifyChange();\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.notifyChange();\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.notifyChange();\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 notifyPropertyChanged(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.notifyPropertyChanged('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.notifyPropertyChanged('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.notifyPropertyChanged('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=\"flows\" id=\"flows-tab\">Flows</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 const flowsVisible = selectedTab === 'flows';\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.renderHttpFlows(flowsVisible)}\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 canToggle\n canDelete\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 canToggle\n canDelete\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 canToggle\n canDelete\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 canToggle\n canDelete\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 canToggle\n canDelete\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 canToggle\n canDelete\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 canToggle\n canDelete\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></apikey-authorization>\n `;\n }\n\n protected renderHttpFlows(visible: boolean): TemplateResult | string {\n if (!visible) {\n return '';\n }\n const { flows = [] } = this;\n return html`\n <http-flows\n aria-label=\"HTTP fLows\" \n aria-labelledby=\"flows-tab\" \n id=\"flows\" \n role=\"tabpanel\"\n .model=\"${flows}\" \n @change=\"${this.handleFlows}\"\n ></http-flows>\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"]}
@@ -13,9 +13,9 @@ the License.
13
13
  */
14
14
  import { TemplateResult } from 'lit';
15
15
  import { StyleInfo } from 'lit/directives/style-map.js';
16
- import { IUrl } from '@api-client/core/build/browser.js';
16
+ import type { IUrl } from '@api-client/core/build/browser.js';
17
17
  import ApiElement from '../ApiElement.js';
18
- import UiList from '../../ui/list/UiList.js';
18
+ import type UiList from '../../ui/list/UiList.js';
19
19
  import '../../define/ui/ui-listbox.js';
20
20
  import '../../define/ui/ui-list-item.js';
21
21
  import '../../define/ui/ui-divider.js';
@@ -60,7 +60,7 @@ export default class UrlInput extends ApiElement {
60
60
  /**
61
61
  * A handler that is called on input
62
62
  */
63
- protected notifyChange(): void;
63
+ notifyChange(): void;
64
64
  /**
65
65
  * A handler for the `url-value-changed` event.
66
66
  * If this element is not the source of the event then it will update the `value` property.
@@ -1 +1 @@
1
- {"version":3,"file":"UrlInput.d.ts","sourceRoot":"","sources":["../../../src/elements/http/UrlInput.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;EAYE;AACF,OAAO,EAAQ,cAAc,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAY,MAAM,6BAA6B,CAAC;AAElE,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAIzD,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAE7C,OAAO,+BAA+B,CAAC;AACvC,OAAO,iCAAiC,CAAC;AACzC,OAAO,+BAA+B,CAAC;AAYvC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,UAAU;IAC9C;;;OAGG;IACyB,KAAK,SAAa;IAE9C;;;OAGG;IACyC,QAAQ,UAAS;IAE7D;;OAEG;IACM,SAAS,CAAC,iBAAiB,UAAS;IAEpC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC;IAE/B,SAAS,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC;IAEhD,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEjC,SAAS,CAAC,SAAS,UAAS;IAG5B,SAAS,CAAC,KAAK,EAAG,gBAAgB,CAAC;IAGnC,SAAS,CAAC,oBAAoB,EAAG,cAAc,CAAC;IAGhD,SAAS,CAAC,eAAe,EAAG,MAAM,CAAC;IAEnC;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC;;IAS9B,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAQrC;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAK9B;;;;OAIG;IACH,SAAS,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAWzC;;;OAGG;cACa,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1D;;OAEG;IACH,aAAa,IAAI,OAAO;IAQxB;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAUrC,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAOnC,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAY1C;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxC;;OAEG;cACa,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBlD,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAgBlD,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAiB/C,SAAS,CAAC,sBAAsB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAStD,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM7C;;OAEG;IACH,SAAS,CAAC,uBAAuB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAOjD,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAmB9C,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAMpC;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IA2C1C,MAAM,IAAI,cAAc;IAYjC;;OAEG;IACH,SAAS,CAAC,WAAW,IAAI,cAAc;IAwBvC;;OAEG;IACH,SAAS,CAAC,kBAAkB,IAAI,cAAc;IA8B9C;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,cAAc,EAAE,GAAG,MAAM;IAQ3D;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc;CAiB3D"}
1
+ {"version":3,"file":"UrlInput.d.ts","sourceRoot":"","sources":["../../../src/elements/http/UrlInput.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;EAYE;AACF,OAAO,EAAQ,cAAc,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAY,MAAM,6BAA6B,CAAC;AAElE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAI9D,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAC;AAElD,OAAO,+BAA+B,CAAC;AACvC,OAAO,iCAAiC,CAAC;AACzC,OAAO,+BAA+B,CAAC;AAYvC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,UAAU;IAC9C;;;OAGG;IACyB,KAAK,SAAa;IAE9C;;;OAGG;IACyC,QAAQ,UAAS;IAE7D;;OAEG;IACM,SAAS,CAAC,iBAAiB,UAAS;IAEpC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC;IAE/B,SAAS,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC;IAEhD,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEjC,SAAS,CAAC,SAAS,UAAS;IAG5B,SAAS,CAAC,KAAK,EAAG,gBAAgB,CAAC;IAGnC,SAAS,CAAC,oBAAoB,EAAG,cAAc,CAAC;IAGhD,SAAS,CAAC,eAAe,EAAG,MAAM,CAAC;IAEnC;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,EAAE,SAAS,CAAC;;IAS9B,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAQrC;;OAEG;IACM,YAAY,IAAI,IAAI;IAK7B;;;;OAIG;IACH,SAAS,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAWzC;;;OAGG;cACa,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1D;;OAEG;IACH,aAAa,IAAI,OAAO;IAQxB;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAUrC,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAOnC,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAY1C;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUxC;;OAEG;cACa,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBlD,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAgBlD,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAiB/C,SAAS,CAAC,sBAAsB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAStD,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAM7C;;OAEG;IACH,SAAS,CAAC,uBAAuB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAOjD,SAAS,CAAC,oBAAoB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAmB9C,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAMpC;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IA2C1C,MAAM,IAAI,cAAc;IAYjC;;OAEG;IACH,SAAS,CAAC,WAAW,IAAI,cAAc;IAwBvC;;OAEG;IACH,SAAS,CAAC,kBAAkB,IAAI,cAAc;IA8B9C;;OAEG;IACH,SAAS,CAAC,oBAAoB,IAAI,cAAc,EAAE,GAAG,MAAM;IAQ3D;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc;CAiB3D"}
@@ -84,7 +84,7 @@ export default class UrlInput extends ApiElement {
84
84
  */
85
85
  notifyChange() {
86
86
  Events.Http.Request.State.urlChange(this.value, this);
87
- this.dispatchEvent(new Event('change'));
87
+ super.notifyChange();
88
88
  }
89
89
  /**
90
90
  * A handler for the `url-value-changed` event.
@@ -98,7 +98,7 @@ export default class UrlInput extends ApiElement {
98
98
  const { value } = e.detail;
99
99
  if (value !== this.value) {
100
100
  this.value = value;
101
- this.dispatchEvent(new Event('change'));
101
+ super.notifyChange();
102
102
  }
103
103
  }
104
104
  /**