@api-client/ui 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. package/dist/amf/lib/AmfParameters.js +0 -4
  2. package/dist/amf/lib/AmfParameters.js.map +1 -1
  3. package/dist/amf/lib/navigation-layout/EndpointsTree.js +0 -2
  4. package/dist/amf/lib/navigation-layout/EndpointsTree.js.map +1 -1
  5. package/dist/amf/lib/navigation-layout/NaturalTree.js +0 -2
  6. package/dist/amf/lib/navigation-layout/NaturalTree.js.map +1 -1
  7. package/dist/amf/store/AmfGraphStore.js +0 -2
  8. package/dist/amf/store/AmfGraphStore.js.map +1 -1
  9. package/dist/amf/store/AmfStore.js +0 -7
  10. package/dist/amf/store/AmfStore.js.map +1 -1
  11. package/dist/bindings/base/HttpClientStoreBindings.js +4 -1
  12. package/dist/bindings/base/HttpClientStoreBindings.js.map +1 -1
  13. package/dist/bindings/base/PlatformBindings.js +6 -10
  14. package/dist/bindings/base/PlatformBindings.js.map +1 -1
  15. package/dist/bindings/base/ProxyBindings.js +9 -6
  16. package/dist/bindings/base/ProxyBindings.js.map +1 -1
  17. package/dist/bindings/base/SharedWorkerThread.js +4 -1
  18. package/dist/bindings/base/SharedWorkerThread.js.map +1 -1
  19. package/dist/bindings/base/StoreBindings.js +162 -170
  20. package/dist/bindings/base/StoreBindings.js.map +1 -1
  21. package/dist/bindings/web/WebConfigurationBindings.js +22 -24
  22. package/dist/bindings/web/WebConfigurationBindings.js.map +1 -1
  23. package/dist/bindings/web/WebFileBindings.js +7 -4
  24. package/dist/bindings/web/WebFileBindings.js.map +1 -1
  25. package/dist/bindings/web/WebHttpClientStoreBindings.js +19 -21
  26. package/dist/bindings/web/WebHttpClientStoreBindings.js.map +1 -1
  27. package/dist/bindings/web/WebNavigationBindings.js +4 -1
  28. package/dist/bindings/web/WebNavigationBindings.js.map +1 -1
  29. package/dist/bindings/web/WebProxyBindings.js +5 -6
  30. package/dist/bindings/web/WebProxyBindings.js.map +1 -1
  31. package/dist/bindings/web/WebStoreBindings.js +39 -44
  32. package/dist/bindings/web/WebStoreBindings.js.map +1 -1
  33. package/dist/contextual-menu/ContextualMenu.js +10 -19
  34. package/dist/contextual-menu/ContextualMenu.js.map +1 -1
  35. package/dist/contextual-menu/ContextualMenuElement.js +4 -32
  36. package/dist/contextual-menu/ContextualMenuElement.js.map +1 -1
  37. package/dist/contextual-menu/MenuItem.js +0 -12
  38. package/dist/contextual-menu/MenuItem.js.map +1 -1
  39. package/dist/define/amf/api-annotation-document.js +1 -1
  40. package/dist/define/amf/api-annotation-document.js.map +1 -1
  41. package/dist/define/amf/api-authorization-editor.js +1 -1
  42. package/dist/define/amf/api-authorization-editor.js.map +1 -1
  43. package/dist/define/amf/api-channel-document.js +1 -1
  44. package/dist/define/amf/api-channel-document.js.map +1 -1
  45. package/dist/define/amf/api-documentation-document.js +1 -1
  46. package/dist/define/amf/api-documentation-document.js.map +1 -1
  47. package/dist/define/amf/api-documentation.js +1 -1
  48. package/dist/define/amf/api-documentation.js.map +1 -1
  49. package/dist/define/amf/api-navigation.js +1 -1
  50. package/dist/define/amf/api-navigation.js.map +1 -1
  51. package/dist/define/amf/api-operation-document.js +1 -1
  52. package/dist/define/amf/api-operation-document.js.map +1 -1
  53. package/dist/define/amf/api-parameter-document.js +1 -1
  54. package/dist/define/amf/api-parameter-document.js.map +1 -1
  55. package/dist/define/amf/api-parametrized-security-scheme.js +1 -1
  56. package/dist/define/amf/api-parametrized-security-scheme.js.map +1 -1
  57. package/dist/define/amf/api-payload-document.js +1 -1
  58. package/dist/define/amf/api-payload-document.js.map +1 -1
  59. package/dist/define/amf/api-request-document.js +1 -1
  60. package/dist/define/amf/api-request-document.js.map +1 -1
  61. package/dist/define/amf/api-request-editor.js +1 -1
  62. package/dist/define/amf/api-request-editor.js.map +1 -1
  63. package/dist/define/amf/api-request.js +1 -1
  64. package/dist/define/amf/api-request.js.map +1 -1
  65. package/dist/define/amf/api-resource-document.js +1 -1
  66. package/dist/define/amf/api-resource-document.js.map +1 -1
  67. package/dist/define/amf/api-response-document.js +1 -1
  68. package/dist/define/amf/api-response-document.js.map +1 -1
  69. package/dist/define/amf/api-schema-document.js +1 -1
  70. package/dist/define/amf/api-schema-document.js.map +1 -1
  71. package/dist/define/amf/api-security-document.js +1 -1
  72. package/dist/define/amf/api-security-document.js.map +1 -1
  73. package/dist/define/amf/api-security-requirement-document.js +1 -1
  74. package/dist/define/amf/api-security-requirement-document.js.map +1 -1
  75. package/dist/define/amf/api-server-picker.js +1 -1
  76. package/dist/define/amf/api-server-picker.js.map +1 -1
  77. package/dist/define/amf/api-summary.js +1 -1
  78. package/dist/define/amf/api-summary.js.map +1 -1
  79. package/dist/define/amf/authorization/amf-apikey-authorization.js +1 -1
  80. package/dist/define/amf/authorization/amf-apikey-authorization.js.map +1 -1
  81. package/dist/define/amf/authorization/amf-basic-authorization.js +1 -1
  82. package/dist/define/amf/authorization/amf-basic-authorization.js.map +1 -1
  83. package/dist/define/amf/authorization/amf-bearer-authorization.js +1 -1
  84. package/dist/define/amf/authorization/amf-bearer-authorization.js.map +1 -1
  85. package/dist/define/amf/authorization/amf-oauth2-authorization.js +1 -1
  86. package/dist/define/amf/authorization/amf-oauth2-authorization.js.map +1 -1
  87. package/dist/define/amf/authorization/amf-oidc-authorization.js +1 -1
  88. package/dist/define/amf/authorization/amf-oidc-authorization.js.map +1 -1
  89. package/dist/define/amf/authorization/amf-passthrough-authorization.js +1 -1
  90. package/dist/define/amf/authorization/amf-passthrough-authorization.js.map +1 -1
  91. package/dist/define/amf/authorization/amf-ramlcustom-authorization.js +1 -1
  92. package/dist/define/amf/authorization/amf-ramlcustom-authorization.js.map +1 -1
  93. package/dist/define/authorization/apikey-authorization.js +1 -1
  94. package/dist/define/authorization/apikey-authorization.js.map +1 -1
  95. package/dist/define/authorization/basic-authorization.js +1 -1
  96. package/dist/define/authorization/basic-authorization.js.map +1 -1
  97. package/dist/define/authorization/bearer-authorization.js +1 -1
  98. package/dist/define/authorization/bearer-authorization.js.map +1 -1
  99. package/dist/define/authorization/cc-authorization.js +1 -1
  100. package/dist/define/authorization/cc-authorization.js.map +1 -1
  101. package/dist/define/authorization/ntlm-authorization.js +1 -1
  102. package/dist/define/authorization/ntlm-authorization.js.map +1 -1
  103. package/dist/define/authorization/oauth2-authorization.js +1 -1
  104. package/dist/define/authorization/oauth2-authorization.js.map +1 -1
  105. package/dist/define/authorization/oidc-authorization.js +1 -1
  106. package/dist/define/authorization/oidc-authorization.js.map +1 -1
  107. package/dist/define/contextual-menu/contextual-menu.js +1 -1
  108. package/dist/define/contextual-menu/contextual-menu.js.map +1 -1
  109. package/dist/define/dialog/confirm-delete-dialog.js +1 -1
  110. package/dist/define/dialog/confirm-delete-dialog.js.map +1 -1
  111. package/dist/define/dialog/rename-dialog.js +1 -1
  112. package/dist/define/dialog/rename-dialog.js.map +1 -1
  113. package/dist/define/files/share-file.js +1 -1
  114. package/dist/define/files/share-file.js.map +1 -1
  115. package/dist/define/har/har-viewer.js +1 -1
  116. package/dist/define/har/har-viewer.js.map +1 -1
  117. package/dist/define/highlight/marked-highlight.js +1 -1
  118. package/dist/define/highlight/marked-highlight.js.map +1 -1
  119. package/dist/define/highlight/prism-highlight.js +1 -1
  120. package/dist/define/highlight/prism-highlight.js.map +1 -1
  121. package/dist/define/http/http-assertions.js +1 -1
  122. package/dist/define/http/http-assertions.js.map +1 -1
  123. package/dist/define/http/http-body-editor.js +1 -1
  124. package/dist/define/http/http-body-editor.js.map +1 -1
  125. package/dist/define/http/http-body-multipart-editor.js +1 -1
  126. package/dist/define/http/http-body-multipart-editor.js.map +1 -1
  127. package/dist/define/http/http-body-text-editor.js +1 -1
  128. package/dist/define/http/http-body-text-editor.js.map +1 -1
  129. package/dist/define/http/http-body-urlencoded-editor.js +1 -1
  130. package/dist/define/http/http-body-urlencoded-editor.js.map +1 -1
  131. package/dist/define/http/http-headers-form.js +1 -1
  132. package/dist/define/http/http-headers-form.js.map +1 -1
  133. package/dist/define/http/http-log-body.js +1 -1
  134. package/dist/define/http/http-log-body.js.map +1 -1
  135. package/dist/define/http/http-log-headers.js +1 -1
  136. package/dist/define/http/http-log-headers.js.map +1 -1
  137. package/dist/define/http/http-log-timings.js +1 -1
  138. package/dist/define/http/http-log-timings.js.map +1 -1
  139. package/dist/define/http/http-request-config.js +1 -1
  140. package/dist/define/http/http-request-config.js.map +1 -1
  141. package/dist/define/http/http-request-editor.js +1 -1
  142. package/dist/define/http/http-request-editor.js.map +1 -1
  143. package/dist/define/http/http-request-log.js +1 -1
  144. package/dist/define/http/http-request-log.js.map +1 -1
  145. package/dist/define/http/http-snippets.js +1 -1
  146. package/dist/define/http/http-snippets.js.map +1 -1
  147. package/dist/define/http/http-url-input.js +1 -1
  148. package/dist/define/http/http-url-input.js.map +1 -1
  149. package/dist/define/http/http-url-params-form.js +1 -1
  150. package/dist/define/http/http-url-params-form.js.map +1 -1
  151. package/dist/define/http-project/http-project-request-history.js +1 -1
  152. package/dist/define/http-project/http-project-request-history.js.map +1 -1
  153. package/dist/define/http-project/http-project-request.js +2 -2
  154. package/dist/define/http-project/http-project-request.js.map +1 -1
  155. package/dist/define/http-project/project-navigation.js +1 -1
  156. package/dist/define/http-project/project-navigation.js.map +1 -1
  157. package/dist/define/http-project/project-run-report.js +1 -1
  158. package/dist/define/http-project/project-run-report.js.map +1 -1
  159. package/dist/define/http-project/project-runner.js +2 -2
  160. package/dist/define/http-project/project-runner.js.map +1 -1
  161. package/dist/define/layout/split-view.js +1 -1
  162. package/dist/define/layout/split-view.js.map +1 -1
  163. package/dist/define/schema-design/schema-design-navigation.js +1 -1
  164. package/dist/define/schema-design/schema-design-navigation.js.map +1 -1
  165. package/dist/define/schema-design/schema-namespace-selector.js +1 -1
  166. package/dist/define/schema-design/schema-namespace-selector.js.map +1 -1
  167. package/dist/define/ui/ui-button.js +1 -1
  168. package/dist/define/ui/ui-button.js.map +1 -1
  169. package/dist/define/ui/ui-chip.js +1 -1
  170. package/dist/define/ui/ui-chip.js.map +1 -1
  171. package/dist/define/ui/ui-collapse.js +1 -1
  172. package/dist/define/ui/ui-collapse.js.map +1 -1
  173. package/dist/define/ui/ui-dialog.js +1 -1
  174. package/dist/define/ui/ui-dialog.js.map +1 -1
  175. package/dist/define/ui/ui-dropdown-list.js +1 -1
  176. package/dist/define/ui/ui-dropdown-list.js.map +1 -1
  177. package/dist/define/ui/ui-icon-button.js +1 -1
  178. package/dist/define/ui/ui-icon-button.js.map +1 -1
  179. package/dist/define/ui/ui-icon.js +1 -1
  180. package/dist/define/ui/ui-icon.js.map +1 -1
  181. package/dist/define/ui/ui-list-item.js +1 -1
  182. package/dist/define/ui/ui-list-item.js.map +1 -1
  183. package/dist/define/ui/ui-list.js +1 -1
  184. package/dist/define/ui/ui-list.js.map +1 -1
  185. package/dist/define/ui/ui-listbox.js +1 -1
  186. package/dist/define/ui/ui-listbox.js.map +1 -1
  187. package/dist/define/ui/ui-progress.js +1 -1
  188. package/dist/define/ui/ui-progress.js.map +1 -1
  189. package/dist/define/ui/ui-segmented-button-set.js +1 -1
  190. package/dist/define/ui/ui-segmented-button-set.js.map +1 -1
  191. package/dist/define/ui/ui-segmented-button.js +1 -1
  192. package/dist/define/ui/ui-segmented-button.js.map +1 -1
  193. package/dist/define/ui/ui-snackbar.js +1 -1
  194. package/dist/define/ui/ui-snackbar.js.map +1 -1
  195. package/dist/define/ui/ui-tab.js +1 -1
  196. package/dist/define/ui/ui-tab.js.map +1 -1
  197. package/dist/define/ui/ui-tabs.js +1 -1
  198. package/dist/define/ui/ui-tabs.js.map +1 -1
  199. package/dist/directives/data-attr.js +0 -1
  200. package/dist/directives/data-attr.js.map +1 -1
  201. package/dist/elements/ApiElement.js +0 -7
  202. package/dist/elements/ApiElement.js.map +1 -1
  203. package/dist/elements/amf/ApiAnnotationDocument.element.js +0 -2
  204. package/dist/elements/amf/ApiAnnotationDocument.element.js.map +1 -1
  205. package/dist/elements/amf/ApiAuthorizationEditor.element.js +0 -32
  206. package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
  207. package/dist/elements/amf/ApiDocumentation.element.js +0 -91
  208. package/dist/elements/amf/ApiDocumentation.element.js.map +1 -1
  209. package/dist/elements/amf/ApiDocumentationBase.js +0 -9
  210. package/dist/elements/amf/ApiDocumentationBase.js.map +1 -1
  211. package/dist/elements/amf/ApiDocumentationDocument.element.js +0 -1
  212. package/dist/elements/amf/ApiDocumentationDocument.element.js.map +1 -1
  213. package/dist/elements/amf/ApiNavigation.element.js +0 -97
  214. package/dist/elements/amf/ApiNavigation.element.js.map +1 -1
  215. package/dist/elements/amf/ApiOperationDocument.element.js +0 -76
  216. package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
  217. package/dist/elements/amf/ApiParameterDocument.element.js +0 -3
  218. package/dist/elements/amf/ApiParameterDocument.element.js.map +1 -1
  219. package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js +0 -1
  220. package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js.map +1 -1
  221. package/dist/elements/amf/ApiPayloadDocument.element.js +0 -1
  222. package/dist/elements/amf/ApiPayloadDocument.element.js.map +1 -1
  223. package/dist/elements/amf/ApiRequest.element.js +0 -78
  224. package/dist/elements/amf/ApiRequest.element.js.map +1 -1
  225. package/dist/elements/amf/ApiRequestDocument.element.js +0 -38
  226. package/dist/elements/amf/ApiRequestDocument.element.js.map +1 -1
  227. package/dist/elements/amf/ApiRequestEditor.element.js +0 -118
  228. package/dist/elements/amf/ApiRequestEditor.element.js.map +1 -1
  229. package/dist/elements/amf/ApiResourceDocument.element.js +0 -75
  230. package/dist/elements/amf/ApiResourceDocument.element.js.map +1 -1
  231. package/dist/elements/amf/ApiResponseDocument.element.js +0 -17
  232. package/dist/elements/amf/ApiResponseDocument.element.js.map +1 -1
  233. package/dist/elements/amf/ApiSchemaDocument.element.js +0 -28
  234. package/dist/elements/amf/ApiSchemaDocument.element.js.map +1 -1
  235. package/dist/elements/amf/ApiSecurityDocument.element.js +0 -28
  236. package/dist/elements/amf/ApiSecurityDocument.element.js.map +1 -1
  237. package/dist/elements/amf/ApiSecurityRequirementDocument.element.js +0 -1
  238. package/dist/elements/amf/ApiSecurityRequirementDocument.element.js.map +1 -1
  239. package/dist/elements/amf/ApiServerPicker.element.js +2 -65
  240. package/dist/elements/amf/ApiServerPicker.element.js.map +1 -1
  241. package/dist/elements/amf/ApiSummary.element.js +0 -26
  242. package/dist/elements/amf/ApiSummary.element.js.map +1 -1
  243. package/dist/elements/amf/authorization/AmfApiKey.js +0 -5
  244. package/dist/elements/amf/authorization/AmfApiKey.js.map +1 -1
  245. package/dist/elements/amf/authorization/AmfBasic.js +0 -4
  246. package/dist/elements/amf/authorization/AmfBasic.js.map +1 -1
  247. package/dist/elements/amf/authorization/AmfBearer.js +0 -4
  248. package/dist/elements/amf/authorization/AmfBearer.js.map +1 -1
  249. package/dist/elements/amf/authorization/AmfOauth2.js +0 -13
  250. package/dist/elements/amf/authorization/AmfOauth2.js.map +1 -1
  251. package/dist/elements/amf/authorization/AmfOidc.js +0 -4
  252. package/dist/elements/amf/authorization/AmfOidc.js.map +1 -1
  253. package/dist/elements/amf/authorization/AmfPassThrough.js +0 -6
  254. package/dist/elements/amf/authorization/AmfPassThrough.js.map +1 -1
  255. package/dist/elements/amf/authorization/AmfRamlCustom.js +0 -6
  256. package/dist/elements/amf/authorization/AmfRamlCustom.js.map +1 -1
  257. package/dist/elements/authorization/OAuth2Authorize.js +0 -14
  258. package/dist/elements/authorization/OAuth2Authorize.js.map +1 -1
  259. package/dist/elements/authorization/OidcAuthorize.js +0 -14
  260. package/dist/elements/authorization/OidcAuthorize.js.map +1 -1
  261. package/dist/elements/authorization/ui/ApiKeyAuthorization.js +0 -2
  262. package/dist/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
  263. package/dist/elements/authorization/ui/Authorization.js +18 -32
  264. package/dist/elements/authorization/ui/Authorization.js.map +1 -1
  265. package/dist/elements/authorization/ui/CcAuthorization.js +1 -3
  266. package/dist/elements/authorization/ui/CcAuthorization.js.map +1 -1
  267. package/dist/elements/authorization/ui/OAuth2Authorization.js +21 -50
  268. package/dist/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
  269. package/dist/elements/authorization/ui/OidcAuthorization.js +4 -6
  270. package/dist/elements/authorization/ui/OidcAuthorization.js.map +1 -1
  271. package/dist/elements/code/HttpSnippets.js +9 -8
  272. package/dist/elements/code/HttpSnippets.js.map +1 -1
  273. package/dist/elements/dialog/ConfirmDelete.js +0 -12
  274. package/dist/elements/dialog/ConfirmDelete.js.map +1 -1
  275. package/dist/elements/dialog/Rename.js +0 -6
  276. package/dist/elements/dialog/Rename.js.map +1 -1
  277. package/dist/elements/environment/EnvironmentEditor.js +8 -11
  278. package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
  279. package/dist/elements/environment/ServerEditor.js +7 -45
  280. package/dist/elements/environment/ServerEditor.js.map +1 -1
  281. package/dist/elements/environment/VariablesEditor.js +7 -12
  282. package/dist/elements/environment/VariablesEditor.js.map +1 -1
  283. package/dist/elements/files/ShareFile.js +19 -57
  284. package/dist/elements/files/ShareFile.js.map +1 -1
  285. package/dist/elements/har/HarViewer.js +6 -7
  286. package/dist/elements/har/HarViewer.js.map +1 -1
  287. package/dist/elements/highlight/MarkedHighlight.js +4 -56
  288. package/dist/elements/highlight/MarkedHighlight.js.map +1 -1
  289. package/dist/elements/highlight/PrismHighlight.js +9 -18
  290. package/dist/elements/highlight/PrismHighlight.js.map +1 -1
  291. package/dist/elements/highlight/PrismHighlighter.js +4 -6
  292. package/dist/elements/highlight/PrismHighlighter.js.map +1 -1
  293. package/dist/elements/http/BodyEditor.js +21 -33
  294. package/dist/elements/http/BodyEditor.js.map +1 -1
  295. package/dist/elements/http/BodyMultipartEditor.js +17 -18
  296. package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
  297. package/dist/elements/http/BodyTextEditor.js +2 -15
  298. package/dist/elements/http/BodyTextEditor.js.map +1 -1
  299. package/dist/elements/http/BodyUrlEncodedEditor.js +20 -21
  300. package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
  301. package/dist/elements/http/HeadersForm.js +16 -17
  302. package/dist/elements/http/HeadersForm.js.map +1 -1
  303. package/dist/elements/http/HttpAssertions.js +8 -6
  304. package/dist/elements/http/HttpAssertions.js.map +1 -1
  305. package/dist/elements/http/LogBody.js +10 -21
  306. package/dist/elements/http/LogBody.js.map +1 -1
  307. package/dist/elements/http/LogHeaders.js +4 -23
  308. package/dist/elements/http/LogHeaders.js.map +1 -1
  309. package/dist/elements/http/LogTimings.js +11 -13
  310. package/dist/elements/http/LogTimings.js.map +1 -1
  311. package/dist/elements/http/RequestConfigElement.js +7 -4
  312. package/dist/elements/http/RequestConfigElement.js.map +1 -1
  313. package/dist/elements/http/RequestEditor.js +54 -88
  314. package/dist/elements/http/RequestEditor.js.map +1 -1
  315. package/dist/elements/http/RequestLog.js +9 -14
  316. package/dist/elements/http/RequestLog.js.map +1 -1
  317. package/dist/elements/http/UrlInput.js +15 -25
  318. package/dist/elements/http/UrlInput.js.map +1 -1
  319. package/dist/elements/http/UrlParamsForm.js +16 -13
  320. package/dist/elements/http/UrlParamsForm.js.map +1 -1
  321. package/dist/elements/layout/LayoutManager.js +16 -24
  322. package/dist/elements/layout/LayoutManager.js.map +1 -1
  323. package/dist/elements/layout/LayoutPanelElement.js +17 -23
  324. package/dist/elements/layout/LayoutPanelElement.js.map +1 -1
  325. package/dist/elements/layout/SplitItem.js +4 -12
  326. package/dist/elements/layout/SplitItem.js.map +1 -1
  327. package/dist/elements/layout/SplitLayout.js +18 -24
  328. package/dist/elements/layout/SplitLayout.js.map +1 -1
  329. package/dist/elements/layout/SplitPanel.js +10 -16
  330. package/dist/elements/layout/SplitPanel.js.map +1 -1
  331. package/dist/elements/layout/SplitView.js +17 -26
  332. package/dist/elements/layout/SplitView.js.map +1 -1
  333. package/dist/elements/navigation/AppNavigationElement.js +8 -47
  334. package/dist/elements/navigation/AppNavigationElement.js.map +1 -1
  335. package/dist/elements/navigation/AppNavigationItemElement.js +19 -24
  336. package/dist/elements/navigation/AppNavigationItemElement.js.map +1 -1
  337. package/dist/elements/project/HttpProjectRequest.js +0 -38
  338. package/dist/elements/project/HttpProjectRequest.js.map +1 -1
  339. package/dist/elements/project/HttpProjectRequestHistory.js +9 -35
  340. package/dist/elements/project/HttpProjectRequestHistory.js.map +1 -1
  341. package/dist/elements/project/ProjectNavigation.js +0 -4
  342. package/dist/elements/project/ProjectNavigation.js.map +1 -1
  343. package/dist/elements/project/ProjectRunReport.js +4 -15
  344. package/dist/elements/project/ProjectRunReport.js.map +1 -1
  345. package/dist/elements/project/ProjectRunner.js +2 -47
  346. package/dist/elements/project/ProjectRunner.js.map +1 -1
  347. package/dist/elements/schema-design/AssociationFormElement.js +0 -13
  348. package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
  349. package/dist/elements/schema-design/DataEntityEditorElement.js +0 -22
  350. package/dist/elements/schema-design/DataEntityEditorElement.js.map +1 -1
  351. package/dist/elements/schema-design/DataModelVisualizationElement.js +0 -16
  352. package/dist/elements/schema-design/DataModelVisualizationElement.js.map +1 -1
  353. package/dist/elements/schema-design/DataSchemaDocument.js +0 -36
  354. package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
  355. package/dist/elements/schema-design/EntityFormElement.js +0 -18
  356. package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
  357. package/dist/elements/schema-design/PropertyFormElement.js +0 -12
  358. package/dist/elements/schema-design/PropertyFormElement.js.map +1 -1
  359. package/dist/elements/schema-design/SchemaDesignNavigation.js +0 -9
  360. package/dist/elements/schema-design/SchemaDesignNavigation.js.map +1 -1
  361. package/dist/elements/schema-design/SchemaNamespaceSelector.js +0 -9
  362. package/dist/elements/schema-design/SchemaNamespaceSelector.js.map +1 -1
  363. package/dist/elements/user/UserAvatarElement.js +0 -9
  364. package/dist/elements/user/UserAvatarElement.js.map +1 -1
  365. package/dist/events/http-client/models/CertificatesEvents.js +2 -2
  366. package/dist/events/http-client/models/CertificatesEvents.js.map +1 -1
  367. package/dist/http-client/idb/Base.js +5 -10
  368. package/dist/http-client/idb/Base.js.map +1 -1
  369. package/dist/http-client/idb/LegacyMockedStore.js +0 -1
  370. package/dist/http-client/idb/LegacyMockedStore.js.map +1 -1
  371. package/dist/http-client/idb/MockedStore.js +3 -1
  372. package/dist/http-client/idb/MockedStore.js.map +1 -1
  373. package/dist/http-client/store/DataImportProcessor.js +0 -3
  374. package/dist/http-client/store/DataImportProcessor.js.map +1 -1
  375. package/dist/http-client/store/HttpClientIdbDatabase.js +8 -7
  376. package/dist/http-client/store/HttpClientIdbDatabase.js.map +1 -1
  377. package/dist/http-client/store/IdbThread.js +23 -20
  378. package/dist/http-client/store/IdbThread.js.map +1 -1
  379. package/dist/http-client/store/idb/IdbProjectUi.js +4 -1
  380. package/dist/http-client/store/idb/IdbProjectUi.js.map +1 -1
  381. package/dist/http-client/store/idb/IdbStore.js +0 -2
  382. package/dist/http-client/store/idb/IdbStore.js.map +1 -1
  383. package/dist/http-client/store/idb/IdbUrlHistory.js +4 -1
  384. package/dist/http-client/store/idb/IdbUrlHistory.js.map +1 -1
  385. package/dist/http-client/store/idb/IdbWsHistory.js +4 -1
  386. package/dist/http-client/store/idb/IdbWsHistory.js.map +1 -1
  387. package/dist/lib/chart/HttpHistoryChart.js +7 -8
  388. package/dist/lib/chart/HttpHistoryChart.js.map +1 -1
  389. package/dist/mixins/FileDropMixin.js +0 -1
  390. package/dist/mixins/FileDropMixin.js.map +1 -1
  391. package/dist/mixins/RenderableMixin.js +11 -15
  392. package/dist/mixins/RenderableMixin.js.map +1 -1
  393. package/dist/pages/ApplicationScreen.js +34 -55
  394. package/dist/pages/ApplicationScreen.js.map +1 -1
  395. package/dist/pages/api-client/ApiClient.screen.js +11 -20
  396. package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
  397. package/dist/pages/api-client/Authenticate.screen.js +4 -6
  398. package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
  399. package/dist/pages/api-client/StoreConfig.screen.js +21 -37
  400. package/dist/pages/api-client/StoreConfig.screen.js.map +1 -1
  401. package/dist/pages/api-client/Telemetry.screen.js +1 -2
  402. package/dist/pages/api-client/Telemetry.screen.js.map +1 -1
  403. package/dist/pages/api-client/pages/Files.page.js +6 -27
  404. package/dist/pages/api-client/pages/Files.page.js.map +1 -1
  405. package/dist/pages/api-client/pages/Settings.page.js +2 -4
  406. package/dist/pages/api-client/pages/Settings.page.js.map +1 -1
  407. package/dist/pages/api-client/pages/Trash.page.js +2 -13
  408. package/dist/pages/api-client/pages/Trash.page.js.map +1 -1
  409. package/dist/pages/demo/DemoPage.js +13 -13
  410. package/dist/pages/demo/DemoPage.js.map +1 -1
  411. package/dist/pages/http-project/HttpProject.screen.js +25 -35
  412. package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
  413. package/dist/pages/schema-design/SchemaDesigner.screen.js +14 -27
  414. package/dist/pages/schema-design/SchemaDesigner.screen.js.map +1 -1
  415. package/dist/store/HttpStore.js +0 -3
  416. package/dist/store/HttpStore.js.map +1 -1
  417. package/dist/store/UserCache.js +5 -5
  418. package/dist/store/UserCache.js.map +1 -1
  419. package/dist/ui/UiElement.js +4 -5
  420. package/dist/ui/UiElement.js.map +1 -1
  421. package/dist/ui/button/SegmentedButton.js +9 -11
  422. package/dist/ui/button/SegmentedButton.js.map +1 -1
  423. package/dist/ui/button/SegmentedButtonsSet.js +6 -7
  424. package/dist/ui/button/SegmentedButtonsSet.js.map +1 -1
  425. package/dist/ui/button/UiButton.js +17 -39
  426. package/dist/ui/button/UiButton.js.map +1 -1
  427. package/dist/ui/button/UiIconButton.js +9 -35
  428. package/dist/ui/button/UiIconButton.js.map +1 -1
  429. package/dist/ui/chip/UiChip.js +9 -49
  430. package/dist/ui/chip/UiChip.js.map +1 -1
  431. package/dist/ui/collapse/UiCollapse.js +15 -20
  432. package/dist/ui/collapse/UiCollapse.js.map +1 -1
  433. package/dist/ui/controllers/ActionController.js +143 -144
  434. package/dist/ui/controllers/ActionController.js.map +1 -1
  435. package/dist/ui/controllers/RadioSelectionController.js +0 -1
  436. package/dist/ui/controllers/RadioSelectionController.js.map +1 -1
  437. package/dist/ui/date/DateTime.js +3 -3
  438. package/dist/ui/date/DateTime.js.map +1 -1
  439. package/dist/ui/dialog/UiDialog.js +14 -38
  440. package/dist/ui/dialog/UiDialog.js.map +1 -1
  441. package/dist/ui/effects/ripple.js +20 -18
  442. package/dist/ui/effects/ripple.js.map +1 -1
  443. package/dist/ui/effects/rippleDirective.js +6 -7
  444. package/dist/ui/effects/rippleDirective.js.map +1 -1
  445. package/dist/ui/icons/UiIcon.js +4 -3
  446. package/dist/ui/icons/UiIcon.js.map +1 -1
  447. package/dist/ui/input/CheckboxElement.js +12 -10
  448. package/dist/ui/input/CheckboxElement.js.map +1 -1
  449. package/dist/ui/input/CheckedElement.js +2 -13
  450. package/dist/ui/input/CheckedElement.js.map +1 -1
  451. package/dist/ui/input/Input.js +169 -234
  452. package/dist/ui/input/Input.js.map +1 -1
  453. package/dist/ui/input/RadioElement.js +13 -11
  454. package/dist/ui/input/RadioElement.js.map +1 -1
  455. package/dist/ui/input/SwitchElement.js +0 -18
  456. package/dist/ui/input/SwitchElement.js.map +1 -1
  457. package/dist/ui/input/TextAreaElement.js +0 -15
  458. package/dist/ui/input/TextAreaElement.js.map +1 -1
  459. package/dist/ui/list/DividerElement.js +5 -10
  460. package/dist/ui/list/DividerElement.js.map +1 -1
  461. package/dist/ui/list/UiDropdownList.js +7 -48
  462. package/dist/ui/list/UiDropdownList.js.map +1 -1
  463. package/dist/ui/list/UiList.js +3 -15
  464. package/dist/ui/list/UiList.js.map +1 -1
  465. package/dist/ui/list/UiListItem.js +4 -17
  466. package/dist/ui/list/UiListItem.js.map +1 -1
  467. package/dist/ui/list/UiListbox.js +0 -1
  468. package/dist/ui/list/UiListbox.js.map +1 -1
  469. package/dist/ui/notification/SnackNotifications.js +1 -2
  470. package/dist/ui/notification/SnackNotifications.js.map +1 -1
  471. package/dist/ui/notification/Snackbar.js +27 -51
  472. package/dist/ui/notification/Snackbar.js.map +1 -1
  473. package/dist/ui/progress/Range.js +24 -23
  474. package/dist/ui/progress/Range.js.map +1 -1
  475. package/dist/ui/progress/UiProgress.js +0 -11
  476. package/dist/ui/progress/UiProgress.js.map +1 -1
  477. package/dist/ui/table/DataTable.js +7 -12
  478. package/dist/ui/table/DataTable.js.map +1 -1
  479. package/dist/ui/tabs/UiTab.js +24 -25
  480. package/dist/ui/tabs/UiTab.js.map +1 -1
  481. package/dist/ui/tabs/UiTabs.js +21 -35
  482. package/dist/ui/tabs/UiTabs.js.map +1 -1
  483. package/dist/visualization/elements/VizWorkspaceElement.js +12 -21
  484. package/dist/visualization/elements/VizWorkspaceElement.js.map +1 -1
  485. package/dist/visualization/lib/AssociationAnchors.js +16 -28
  486. package/dist/visualization/lib/AssociationAnchors.js.map +1 -1
  487. package/dist/visualization/lib/Point.js +0 -2
  488. package/dist/visualization/lib/Point.js.map +1 -1
  489. package/dist/visualization/lib/SelectionManager.js +10 -11
  490. package/dist/visualization/lib/SelectionManager.js.map +1 -1
  491. package/dist/visualization/lib/WorkspaceAlignment.js +0 -1
  492. package/dist/visualization/lib/WorkspaceAlignment.js.map +1 -1
  493. package/dist/visualization/lib/WorkspaceDebugging.js +5 -8
  494. package/dist/visualization/lib/WorkspaceDebugging.js.map +1 -1
  495. package/dist/visualization/lib/WorkspaceEdges.js +17 -19
  496. package/dist/visualization/lib/WorkspaceEdges.js.map +1 -1
  497. package/dist/visualization/lib/WorkspaceGestures.js +0 -3
  498. package/dist/visualization/lib/WorkspaceGestures.js.map +1 -1
  499. package/dist/visualization/lib/WorkspaceSizing.js +4 -6
  500. package/dist/visualization/lib/WorkspaceSizing.js.map +1 -1
  501. package/dist/visualization/lib/lines/RectilinearLine.js +8 -34
  502. package/dist/visualization/lib/lines/RectilinearLine.js.map +1 -1
  503. package/dist/visualization/lib/tips/RectilinearTip.js +0 -1
  504. package/dist/visualization/lib/tips/RectilinearTip.js.map +1 -1
  505. package/dist/visualization/lib/tips/TipArtist.js +0 -3
  506. package/dist/visualization/lib/tips/TipArtist.js.map +1 -1
  507. package/dist/visualization/plugin/dnd/DragAndDropPlugin.js +3 -5
  508. package/dist/visualization/plugin/dnd/DragAndDropPlugin.js.map +1 -1
  509. package/dist/visualization/plugin/group-selection/GroupSelection.js +19 -19
  510. package/dist/visualization/plugin/group-selection/GroupSelection.js.map +1 -1
  511. package/dist/visualization/plugin/positioning/WorkspaceLayout.js +21 -38
  512. package/dist/visualization/plugin/positioning/WorkspaceLayout.js.map +1 -1
  513. package/package.json +3 -2
  514. package/tsconfig.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"HttpAssertions.js","sourceRoot":"","sources":["../../../src/elements/http/HttpAssertions.ts"],"names":[],"mappings":"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","sourcesContent":["import { \n IHttpAssertion, DataSteps, FlowSourceEnum, FlowRequestDataEnum, \n FlowResponseDataEnum, TransformationSteps, HttpAssertions as CoreAssertions, AmfNamespace\n} from \"@api-client/core/build/browser.js\";\nimport { html, nothing, TemplateResult } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { IHttpStep } from \"@api-client/core/build/src/models/http-actions/HttpStep.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport SwitchElement from \"../../ui/input/SwitchElement.js\";\nimport UiChip from \"../../ui/chip/UiChip.js\";\nimport Input from \"../../ui/input/Input.js\";\nimport UiDialog, { UiDialogClosingReason } from \"../../ui/dialog/UiDialog.js\";\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-switch.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-text-field.js';\nimport '../../define/ui/ui-chip.js';\nimport '../../define/ui/ui-dialog.js';\n\n/**\n * @fires change When the model change\n */\nexport default class HttpAssertions extends ApiElement {\n /**\n * The list of assertions.\n * This is a live list. All changes are propagated in the model.\n */\n @property({ type: Array }) model: IHttpAssertion[] = [];\n\n /**\n * Adds a new empty assertion to the model.\n * Note, this function won't notify the parent element\n * about the change as empty rules can be discarded.\n */\n addAssertion(): void {\n const { model } = this;\n model.push({\n enabled: true,\n steps: [],\n });\n this.requestUpdate();\n }\n\n /**\n * Removes an assertion at specified index.\n * @param index The index of the assertion in the `model` to remove.\n */\n removeAssertion(index: number): void {\n const { model } = this;\n if (!model[index]) {\n throw new RangeError(`Invalid index: ${index}`);\n }\n model.splice(index, 1);\n this.requestUpdate();\n this.notifyChange();\n }\n\n /**\n * Toggles the enabled state of the assertion.\n * @param index The index of the assertion on the `model` array\n * @param value The `enabled` value.\n */\n toggleAssertion(index: number, value: boolean): void {\n const { model } = this;\n if (!model[index]) {\n throw new RangeError(`Invalid index: ${index}`);\n }\n model[index].enabled = value;\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected notifyChange(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n protected handleAdd(): void {\n this.addAssertion();\n }\n\n protected handleRemove(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.removeAssertion(index);\n }\n\n protected handleToggle(e: Event): void {\n const node = e.currentTarget as SwitchElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.toggleAssertion(index, node.checked);\n }\n\n protected handleRemoveStep(e: Event): void {\n const target = e.currentTarget as HTMLElement;\n const assertionIndex = Number(target.dataset.index);\n const stepIndex = Number(target.dataset.stepIndex);\n if (Number.isNaN(assertionIndex) || Number.isNaN(stepIndex)) {\n return;\n }\n const assertion = this.model[assertionIndex];\n if (!assertion) {\n return;\n }\n assertion.steps.splice(stepIndex, 1);\n this.notifyChange();\n this.requestUpdate();\n }\n\n protected draggedChip?: UiChip;\n\n protected isValidDropTarget(dataTransfer?: DataTransfer | null): boolean {\n if (!dataTransfer) {\n return false;\n }\n const { types } = dataTransfer;\n return types.includes('assertion/group') && types.includes('assertion/kind');\n }\n\n protected handleDragStart(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer) {\n return;\n }\n const chip = e.target as UiChip;\n const { group, kind, source, data, variant } = chip.dataset;\n if (!group || !kind) {\n return;\n }\n const copy = chip.cloneNode(true) as UiChip;\n copy.style.position = 'absolute';\n copy.style.top = `-100px`;\n this.draggedChip = copy;\n document.body.appendChild(copy);\n dataTransfer.setDragImage(copy, 0, 0);\n dataTransfer.setData('assertion/group', group);\n dataTransfer.setData('assertion/kind', kind);\n if (source) {\n dataTransfer.setData('assertion/source', source);\n }\n if (data) {\n dataTransfer.setData('assertion/data', data);\n }\n if (variant) {\n dataTransfer.setData('assertion/variant', variant);\n }\n chip.blur();\n }\n\n protected handleDragEnd(e: DragEvent): void {\n const { draggedChip } = this;\n if (!draggedChip) {\n return;\n }\n e.preventDefault();\n draggedChip.parentElement?.removeChild(draggedChip);\n }\n\n protected handleTargetDragOver(e: DragEvent): void {\n const { draggedChip } = this;\n if (!draggedChip || e.defaultPrevented || !this.isValidDropTarget(e.dataTransfer)) {\n return;\n }\n e.preventDefault();\n const target = e.currentTarget as HTMLElement;\n target.classList.add('dragover');\n }\n\n protected handleTargetDragLeave(e: DragEvent): void {\n if (e.defaultPrevented || !this.isValidDropTarget(e.dataTransfer)) {\n return;\n }\n const target = e.currentTarget as HTMLElement;\n target.classList.remove('dragover');\n }\n\n protected handleDrop(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer || e.defaultPrevented || !this.isValidDropTarget(dataTransfer)) {\n return;\n }\n e.preventDefault();\n this.resetDragIndices();\n const { index, stepIndex } = (e.target as HTMLElement).dataset;\n const typedAssertionIndex = Number(index);\n if (Number.isNaN(typedAssertionIndex)) {\n return;\n }\n let typedStepIndex: number | undefined;\n if (stepIndex) {\n const tmp = Number(stepIndex);\n if (!Number.isNaN(tmp)) {\n typedStepIndex = tmp;\n }\n }\n this.processDrop(dataTransfer, typedAssertionIndex, typedStepIndex);\n }\n\n protected resetDragIndices(): void {\n const nodes = (this.shadowRoot as ShadowRoot).querySelectorAll('.dragover');\n Array.from(nodes).forEach(n => n.classList.remove('dragover'));\n }\n\n protected processDrop(dataTransfer: DataTransfer, assertionIndex: number, stepIndex?: number): void {\n const group = dataTransfer.getData('assertion/group');\n if (!group) {\n return;\n }\n if (group === 'data-source') {\n this.processDataSourceDrop(dataTransfer, assertionIndex, stepIndex);\n } else if (group === 'transformation') {\n this.processTransformationDrop(dataTransfer, assertionIndex, stepIndex);\n } else if (group === 'assertion') {\n this.processAssertionDrop(dataTransfer, assertionIndex, stepIndex);\n }\n }\n\n protected processDataSourceDrop(dataTransfer: DataTransfer, assertionIndex: number, stepIndex?: number): void {\n const item = this.model[assertionIndex];\n if (!item) {\n return;\n }\n const source = dataTransfer.getData('assertion/source') as FlowSourceEnum;\n const data = dataTransfer.getData('assertion/data') as FlowRequestDataEnum | FlowResponseDataEnum;\n const step = new DataSteps.ReadDataSourceStep(source, data).toJSON();\n if (stepIndex === undefined) {\n item.steps.push(step);\n } else if (stepIndex === -1) {\n item.steps.unshift(step);\n } else {\n item.steps.splice(stepIndex, 0, step);\n }\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected processTransformationDrop(dataTransfer: DataTransfer, assertionIndex: number, stepIndex?: number): void {\n const item = this.model[assertionIndex];\n if (!item) {\n return;\n }\n let step: IHttpStep | undefined;\n const kind = dataTransfer.getData('assertion/kind');\n if (kind === DataSteps.ReadValueStepKind) {\n step = new DataSteps.ReadValueStep().toJSON();\n } else if (kind === TransformationSteps.AsNumberStepKind) {\n step = new TransformationSteps.AsNumberStep().toJSON();\n } else if (kind === TransformationSteps.RoundStepKind) {\n step = new TransformationSteps.RoundStep().toJSON();\n } else if (kind === TransformationSteps.AsLowerCaseStepKind) {\n step = new TransformationSteps.AsLowerCaseStep().toJSON();\n } else if (kind === TransformationSteps.AsUpperCaseStepKind) {\n step = new TransformationSteps.AsUpperCaseStep().toJSON();\n } else if (kind === TransformationSteps.TrimStepKind) {\n step = new TransformationSteps.TrimStep().toJSON();\n } else if (kind === TransformationSteps.SubstringStepKind) {\n step = new TransformationSteps.SubstringStep().toJSON();\n }\n if (!step) {\n return;\n }\n if (stepIndex === undefined) {\n item.steps.push(step);\n } else if (stepIndex === -1) {\n item.steps.unshift(step);\n } else {\n item.steps.splice(stepIndex, 0, step);\n }\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected processAssertionDrop(dataTransfer: DataTransfer, assertionIndex: number, stepIndex?: number): void {\n const item = this.model[assertionIndex];\n if (!item) {\n return;\n }\n let step: IHttpStep | undefined;\n const kind = dataTransfer.getData('assertion/kind');\n if (kind === CoreAssertions.EqualAssertionKind) {\n step = new CoreAssertions.EqualAssertion().toJSON();\n } else if (kind === CoreAssertions.NotEqualAssertionKind) {\n step = new CoreAssertions.NotEqualAssertion().toJSON();\n } else if (kind === CoreAssertions.GreaterThanAssertionKind) {\n const instance = new CoreAssertions.GreaterThanAssertion();\n if (dataTransfer.getData('assertion/variant') === 'equal') {\n instance.equal = true;\n }\n step = instance.toJSON();\n } else if (kind === CoreAssertions.LessThanAssertionKind) {\n const instance = new CoreAssertions.LessThanAssertion();\n if (dataTransfer.getData('assertion/variant') === 'equal') {\n instance.equal = true;\n }\n step = instance.toJSON();\n } else if (kind === CoreAssertions.IncludesAssertionKind) {\n step = new CoreAssertions.IncludesAssertion().toJSON();\n } else if (kind === CoreAssertions.NotIncludesAssertionKind) {\n step = new CoreAssertions.NotIncludesAssertion().toJSON();\n } else if (kind === CoreAssertions.MatchesAssertionKind) {\n step = new CoreAssertions.MatchesAssertion().toJSON();\n } else if (kind === CoreAssertions.OkAssertionKind) {\n step = new CoreAssertions.OkAssertion().toJSON();\n } else if (kind === CoreAssertions.NotOkAssertionKind) {\n step = new CoreAssertions.NotOkAssertion().toJSON();\n } else if (kind === CoreAssertions.ToBeAssertionKind) {\n step = new CoreAssertions.ToBeAssertion().toJSON();\n } else if (kind === CoreAssertions.NotToBeAssertionKind) {\n step = new CoreAssertions.NotToBeAssertion().toJSON();\n }\n if (!step) {\n return;\n }\n if (stepIndex === undefined) {\n item.steps.push(step);\n } else if (stepIndex === -1) {\n item.steps.unshift(step);\n } else {\n item.steps.splice(stepIndex, 0, step);\n }\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleReadValueStepChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as DataSteps.IReadValueStep | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n input.checkValidity();\n step.path = input.value;\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleRoundPrecisionChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as TransformationSteps.IRoundStep | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n input.checkValidity();\n step.precision = input.valueAsNumber;\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleSubstringStartChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as TransformationSteps.ISubstringStep | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n input.checkValidity();\n step.start = input.valueAsNumber;\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleSubstringEndChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as TransformationSteps.ISubstringStep | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n input.checkValidity();\n step.end = input.valueAsNumber;\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleEqualAssertionValueChange(e: Event): void {\n const input = e.target as Input;\n input.checkValidity();\n const assertionIndex = Number(input.dataset.assertionIndex);\n const stepIndex = Number(input.dataset.stepIndex);\n if (Number.isNaN(assertionIndex) || Number.isNaN(stepIndex)) {\n return;\n }\n const assertion = this.model[assertionIndex];\n if (!assertion) {\n return;\n }\n const step = assertion.steps[stepIndex] as CoreAssertions.IEqualAssertion | undefined;\n if (!step) {\n return;\n }\n step.value = input.value;\n step.dataType = this.detectInputDataType(assertion.steps.slice(0, stepIndex));\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleGreaterThanAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.IGreaterThanAssertion | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n input.checkValidity();\n step.value = Number(input.value);\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleLessThanAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.ILessThanAssertion | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n input.checkValidity();\n step.value = Number(input.value);\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleIncludesAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.IIncludesAssertion | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n input.checkValidity();\n step.value = input.value;\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleMatchesAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.IMatchesAssertion | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n step.value = input.value;\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected validateRegexPattern(e: Event): void {\n const input = e.target as Input;\n try {\n RegExp(input.value);\n input.setCustomValidity('');\n } catch (_) {\n input.setCustomValidity('Pattern is invalid');\n }\n input.reportValidity();\n }\n\n protected stepFromChangeEvent(e: Event): IHttpStep | undefined {\n const input = e.target as Input;\n input.checkValidity();\n const assertionIndex = Number(input.dataset.assertionIndex);\n const stepIndex = Number(input.dataset.stepIndex);\n if (Number.isNaN(assertionIndex) || Number.isNaN(stepIndex)) {\n return undefined;\n }\n const assertion = this.model[assertionIndex];\n if (!assertion) {\n return undefined;\n }\n return assertion.steps[stepIndex];\n }\n\n /**\n * Detects the correct data type for the step value based on previous steps.\n * \n * @param steps The steps before the current step\n * @returns The data type for the step in the AMF namespace.\n */\n protected detectInputDataType(steps: IHttpStep[]): string {\n // we reverse the list so we move from the last step.\n const reversed = [...steps].reverse();\n for (const step of reversed) {\n if (step.kind === TransformationSteps.AsNumberStepKind) {\n return AmfNamespace.aml.vocabularies.shapes.number;\n }\n if (step.kind === DataSteps.ReadDataSourceStepKind) {\n const typed = step as DataSteps.IReadDataSourceStep;\n if (typed.data === FlowResponseDataEnum.status) {\n return AmfNamespace.aml.vocabularies.shapes.number;\n }\n }\n }\n return AmfNamespace.w3.xmlSchema.string;\n }\n\n protected handleRenameAssertion(e: Event): void {\n const target = e.currentTarget as HTMLElement;\n const assertionIndex = Number(target.dataset.assertionIndex);\n if (Number.isNaN(assertionIndex)) {\n return;\n }\n const assertion = this.model[assertionIndex];\n if (!assertion) {\n return;\n }\n const { description } = assertion;\n const dialog = this.shadowRoot?.querySelector('.rename-dialog') as UiDialog | null;\n if (!dialog) {\n return;\n }\n const input = dialog.querySelector('ui-text-field') as Input;\n input.value = description || '';\n dialog.open = true;\n dialog.dataset.assertionIndex = target.dataset.assertionIndex;\n }\n\n protected handleRenameDialogResult(e: CustomEvent<UiDialogClosingReason>): void {\n if (e.detail.cancelled) {\n return;\n }\n const dialog = e.currentTarget as UiDialog;\n const assertionIndex = Number(dialog.dataset.assertionIndex);\n if (Number.isNaN(assertionIndex)) {\n return;\n }\n const assertion = this.model[assertionIndex];\n if (!assertion) {\n return;\n }\n const input = dialog.querySelector('ui-text-field') as Input;\n assertion.description = input.value;\n this.requestUpdate();\n this.notifyChange();\n input.value = '';\n delete dialog.dataset.assertionIndex;\n }\n\n protected override render(): TemplateResult {\n return html`\n ${this.renderActionButtons()}\n <div class=\"container\">\n ${this.renderEditor()}\n ${this.renderAssertions()}\n </div>\n ${this.renderRenameAssertionDialog()}\n `;\n }\n\n protected renderActionButtons(): TemplateResult {\n return html`\n <div class=\"editor-actions\">\n <ui-button type=\"tonal\" @click=\"${this.handleAdd}\" class=\"add-button\">Add</ui-button>\n </div>\n `;\n }\n\n protected renderAssertions(): TemplateResult {\n return html`\n <section aria-label=\"Assertion options\" class=\"options\">\n ${this.renderDataSourceOptions()}\n ${this.renderTransformationOptions()}\n ${this.renderAssertionOptions()}\n </section>\n `;\n }\n\n protected renderStepChip(label: string, group: string, kind: string, variant?: string): TemplateResult {\n return html`\n <ui-chip \n draggable=\"true\" \n data-group=\"${group}\" \n data-kind=\"${kind}\" \n data-variant=\"${ifDefined(variant)}\" \n @dragstart=\"${this.handleDragStart}\" \n @dragend=\"${this.handleDragEnd}\"\n >${label}</ui-chip>\n `;\n }\n\n protected renderDataSourceChip(label: string, group: string, kind: string, source: FlowSourceEnum, data: FlowRequestDataEnum | FlowResponseDataEnum): TemplateResult {\n return html`\n <ui-chip \n draggable=\"true\" \n data-group=\"${group}\" \n data-kind=\"${kind}\" \n data-source=\"${source}\" \n data-data=\"${data}\" \n @dragstart=\"${this.handleDragStart}\" \n @dragend=\"${this.handleDragEnd}\"\n >${label}</ui-chip>\n `;\n }\n\n protected renderDataSourceOptions(): TemplateResult {\n return html`\n <details class=\"assertion-group\" open>\n <summary>Data source</summary>\n <div class=\"group-content\">\n ${this.renderDataSourceChip('Status code', 'data-source', DataSteps.ReadDataSourceStepKind, FlowSourceEnum.response, FlowResponseDataEnum.status)}\n ${this.renderDataSourceChip('Response headers', 'data-source', DataSteps.ReadDataSourceStepKind, FlowSourceEnum.response, FlowResponseDataEnum.headers)}\n ${this.renderDataSourceChip('Response body', 'data-source', DataSteps.ReadDataSourceStepKind, FlowSourceEnum.response, FlowResponseDataEnum.body)}\n ${this.renderDataSourceChip('Status message', 'data-source', DataSteps.ReadDataSourceStepKind, FlowSourceEnum.response, FlowResponseDataEnum.statusText)}\n </div>\n </details>\n `;\n }\n\n protected renderTransformationOptions(): TemplateResult {\n return html`\n <details class=\"assertion-group\" open>\n <summary>Transformation</summary>\n <div class=\"group-content\">\n ${this.renderStepChip('Read value', 'transformation', DataSteps.ReadValueStepKind)}\n ${this.renderStepChip('As number', 'transformation', TransformationSteps.AsNumberStepKind)}\n ${this.renderStepChip('Round', 'transformation', TransformationSteps.RoundStepKind)}\n ${this.renderStepChip('To lower case', 'transformation', TransformationSteps.AsLowerCaseStepKind)}\n ${this.renderStepChip('To upper case', 'transformation', TransformationSteps.AsUpperCaseStepKind)}\n ${this.renderStepChip('Trim', 'transformation', TransformationSteps.TrimStepKind)}\n ${this.renderStepChip('Substring', 'transformation', TransformationSteps.SubstringStepKind)}\n </div>\n </details>\n `;\n }\n\n protected renderAssertionOptions(): TemplateResult {\n return html`\n <details class=\"assertion-group\" open>\n <summary>Assertions</summary>\n <div class=\"group-content\">\n ${this.renderStepChip('Equal', 'assertion', CoreAssertions.EqualAssertionKind)}\n ${this.renderStepChip('Not equal', 'assertion', CoreAssertions.NotEqualAssertionKind)}\n ${this.renderStepChip('Greater than', 'assertion', CoreAssertions.GreaterThanAssertionKind)}\n ${this.renderStepChip('Greater than equal', 'assertion', CoreAssertions.GreaterThanAssertionKind, 'equal')}\n ${this.renderStepChip('Less than', 'assertion', CoreAssertions.LessThanAssertionKind)}\n ${this.renderStepChip('Less than equal', 'assertion', CoreAssertions.LessThanAssertionKind, 'equal')}\n ${this.renderStepChip('Includes', 'assertion', CoreAssertions.IncludesAssertionKind)}\n ${this.renderStepChip('Not includes', 'assertion', CoreAssertions.NotIncludesAssertionKind)}\n ${this.renderStepChip('Matches', 'assertion', CoreAssertions.MatchesAssertionKind)}\n ${this.renderStepChip('OK', 'assertion', CoreAssertions.OkAssertionKind)}\n ${this.renderStepChip('Not OK', 'assertion', CoreAssertions.NotOkAssertionKind)}\n ${this.renderStepChip('To be...', 'assertion', CoreAssertions.ToBeAssertionKind)}\n ${this.renderStepChip('Not to be...', 'assertion', CoreAssertions.NotToBeAssertionKind)}\n </div>\n </details>\n `;\n }\n\n protected renderEditor(): TemplateResult {\n const { model } = this;\n const content = Array.isArray(model) && !!model.length ? this.renderList(model) : this.renderEmptyMessage();\n return html`\n <section aria-label=\"Assertions editor\" class=\"editor\">${content}</section>\n `;\n }\n\n protected renderEmptyMessage(): TemplateResult {\n return html`\n <div class=\"empty-message\">No assertions added</div>\n `;\n }\n\n protected renderList(model: IHttpAssertion[]): TemplateResult {\n return html`\n ${model.map((item, index) => this.renderAssertion(item, index))}\n `;\n }\n\n protected renderAssertion(item: IHttpAssertion, index: number): TemplateResult {\n return html`\n ${this.renderAssertionDescription(item)}\n <div class=\"param-row\">\n ${this.renderToggleButton(item, index)}\n ${this.renderSteps(item, index)}\n <div class=\"assertion-actions\">\n ${this.renderRenameAssertion(index)}\n ${this.renderDeleteAssertion(index)}\n </div>\n </div>\n `;\n }\n\n protected renderAssertionDescription(item: IHttpAssertion): TemplateResult | typeof nothing {\n const { description } = item;\n if (!description) {\n return nothing;\n }\n return html`\n <div class=\"assertion-description label-medium\">${description}</div>\n `;\n }\n\n protected renderToggleButton(item: IHttpAssertion, assertionIndex: number): TemplateResult {\n return html`\n <ui-switch \n .checked=\"${!!item.enabled}\" \n @change=\"${this.handleToggle}\" \n aria-label=\"Toggle this assertion\"\n data-index=\"${assertionIndex}\"\n class=\"toggle-button\"\n ></ui-switch>\n `;\n }\n\n protected renderRenameAssertion(assertionIndex: number): TemplateResult {\n return html`\n <ui-icon-button \n aria-label=\"Rename this assertion\" \n title=\"Rename this assertion\" \n data-assertion-index=\"${assertionIndex}\" \n @click=\"${this.handleRenameAssertion}\"\n class=\"rename-button\"\n >\n <ui-icon icon=\"rename\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderDeleteAssertion(assertionIndex: number): TemplateResult {\n return html`\n <ui-icon-button \n aria-label=\"Delete this assertion\" \n title=\"Delete this assertion\" \n data-index=\"${assertionIndex}\" \n @click=\"${this.handleRemove}\"\n class=\"delete-button\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderSteps(item: IHttpAssertion, assertionIndex: number): TemplateResult {\n const content = Array.isArray(item.steps) && !!item.steps.length ? this.renderStepsList(item.steps, assertionIndex) : this.renderEmptyStep(assertionIndex);\n return html`\n <div \n class=\"steps\" \n data-index=\"${assertionIndex}\"\n @drop=\"${this.handleDrop}\" \n @dragover=\"${this.handleTargetDragOver}\"\n @dragleave=\"${this.handleTargetDragLeave}\"\n >${content}</div>\n `;\n }\n\n protected renderEmptyStep(assertionIndex: number): TemplateResult {\n return html`\n <span class=\"step-pill empty drop-target space-step-left\" data-index=\"${assertionIndex}\" @drop=\"${this.handleDrop}\" @dragover=\"${this.handleTargetDragOver}\">Empty slot</span>\n <span class=\"drop-info drop-target space-step-left\" data-index=\"${assertionIndex}\" @drop=\"${this.handleDrop}\" @dragover=\"${this.handleTargetDragOver}\">Drop an action here</span>\n `;\n }\n\n protected renderStepsList(steps: IHttpStep[], assertionIndex: number): TemplateResult[] {\n const items: TemplateResult[] = [];\n steps.forEach((item, stepIndex) => {\n const content = this.renderStep(item, assertionIndex, stepIndex);\n if (content) {\n items.push(html`\n <div class=\"step-unit\">\n ${this.renderDropSpacer(assertionIndex, stepIndex)}\n ${content}\n </div>\n `);\n }\n });\n return items;\n }\n\n protected renderStep(item: IHttpStep, assertionIndex: number, stepIndex: number): TemplateResult | undefined {\n const { kind } = item;\n switch (kind) {\n case DataSteps.ReadDataSourceStepKind: return this.renderReadDataSourceStep(item, assertionIndex, stepIndex);\n case DataSteps.ReadValueStepKind: return this.renderReadValueStep(item as DataSteps.IReadValueStep, assertionIndex, stepIndex);\n\n // transformations\n case TransformationSteps.AsNumberStepKind: return this.renderStepPill('As number', assertionIndex, stepIndex);\n case TransformationSteps.AsLowerCaseStepKind: return this.renderStepPill('To lower case', assertionIndex, stepIndex);\n case TransformationSteps.AsUpperCaseStepKind: return this.renderStepPill('To upper case', assertionIndex, stepIndex);\n case TransformationSteps.TrimStepKind: return this.renderStepPill('Trim', assertionIndex, stepIndex);\n case TransformationSteps.RoundStepKind: return this.renderRoundStep(item as TransformationSteps.IRoundStep, assertionIndex, stepIndex);\n case TransformationSteps.SubstringStepKind: return this.renderSubstringStep(item as TransformationSteps.ISubstringStep, assertionIndex, stepIndex);\n\n // assertions\n case CoreAssertions.EqualAssertionKind: return this.renderEqualAssertion(item as CoreAssertions.IEqualAssertion, assertionIndex, stepIndex);\n case CoreAssertions.NotEqualAssertionKind: return this.renderNotEqualAssertion(item as CoreAssertions.INotEqualAssertion, assertionIndex, stepIndex);\n case CoreAssertions.GreaterThanAssertionKind: return this.renderGreaterThanAssertion(item as CoreAssertions.IGreaterThanAssertion, assertionIndex, stepIndex);\n case CoreAssertions.LessThanAssertionKind: return this.renderLessThanAssertion(item as CoreAssertions.ILessThanAssertion, assertionIndex, stepIndex);\n case CoreAssertions.IncludesAssertionKind: return this.renderIncludesAssertion(item as CoreAssertions.IIncludesAssertion, assertionIndex, stepIndex);\n case CoreAssertions.NotIncludesAssertionKind: return this.renderNotIncludesAssertion(item as CoreAssertions.INotIncludesAssertion, assertionIndex, stepIndex);\n case CoreAssertions.MatchesAssertionKind: return this.renderMatchesAssertion(item as CoreAssertions.IMatchesAssertion, assertionIndex, stepIndex);\n case CoreAssertions.OkAssertionKind: return this.renderStepPill('Is OK', assertionIndex, stepIndex);\n case CoreAssertions.NotOkAssertionKind: return this.renderStepPill('Is not OK', assertionIndex, stepIndex);\n case CoreAssertions.ToBeAssertionKind: return this.renderToBeAssertion(item as CoreAssertions.IToBeAssertion, assertionIndex, stepIndex);\n case CoreAssertions.NotToBeAssertionKind: return this.renderNotToBeAssertion(item as CoreAssertions.INotToBeAssertion, assertionIndex, stepIndex);\n default: return undefined;\n }\n }\n\n protected renderDropSpacer(assertionIndex: number, stepIndex: number): TemplateResult {\n return html`<div class=\"drop-target spacer\" \n data-index=\"${assertionIndex}\" \n data-step-index=\"${stepIndex}\" \n @drop=\"${this.handleDrop}\" \n @dragover=\"${this.handleTargetDragOver}\"\n @dragleave=\"${this.handleTargetDragLeave}\"\n > </div>`;\n }\n\n protected renderStepPill(label: string, assertionIndex: number, stepIndex: number): TemplateResult {\n return html`\n <span class=\"step-pill with-icon\">\n ${label}\n <ui-icon-button\n title=\"Remove\"\n aria-label=\"Deletes this step\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\"></ui-icon></ui-icon-button>\n </span>\n `;\n }\n\n protected renderReadDataSourceStep(item: DataSteps.IReadDataSourceStep, assertionIndex: number, stepIndex: number): TemplateResult | undefined {\n const { data, source } = item;\n if (!data || !source) {\n // invalid configuration\n return undefined;\n }\n let label: string | undefined;\n if (source === FlowSourceEnum.response) {\n if (data === FlowResponseDataEnum.url) {\n label = 'Response URL';\n } else if (data === FlowResponseDataEnum.headers) {\n label = 'Response headers';\n } else if (data === FlowResponseDataEnum.status) {\n label = 'Status code';\n } else if (data === FlowResponseDataEnum.statusText) {\n label = 'Status message';\n } else if (data === FlowResponseDataEnum.body) {\n label = 'Response body';\n }\n } else if (source === FlowSourceEnum.request) {\n if (data === FlowRequestDataEnum.url) {\n label = 'Request URL';\n } else if (data === FlowRequestDataEnum.headers) {\n label = 'Request headers';\n } else if (data === FlowRequestDataEnum.body) {\n label = 'Request body';\n } else if (data === FlowRequestDataEnum.method) {\n label = 'Request method';\n }\n }\n if (!label) {\n return undefined;\n }\n return this.renderStepPill(label, assertionIndex, stepIndex);\n }\n\n protected renderReadValueStep(item: DataSteps.IReadValueStep, assertionIndex: number, stepIndex: number): TemplateResult {\n return html`\n <ui-text-field\n name=\"value.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Read value\"\n required\n .value=\"${live(item.path || '')}\"\n @change=\"${this.handleReadValueStepChange}\"\n ></ui-text-field>\n `;\n }\n\n protected renderRoundStep(item: TransformationSteps.IRoundStep, assertionIndex: number, stepIndex: number): TemplateResult {\n const pill = this.renderStepPill('Round', assertionIndex, stepIndex);\n const { precision = 0 } = item;\n return html`\n ${pill}\n <ui-text-field\n name=\"precision.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Precision\"\n required\n .value=\"${live(String(precision))}\"\n @change=\"${this.handleRoundPrecisionChange}\"\n class=\"space-step-left number-input\"\n type=\"number\"\n min=\"0\"\n max=\"100\"\n step=\"1\"\n title=\"The number of digits to appear after the decimal point. Should be a value between 0 and 100, inclusive.\"\n ></ui-text-field>\n `;\n }\n\n protected renderSubstringStep(item: TransformationSteps.ISubstringStep, assertionIndex: number, stepIndex: number): TemplateResult {\n const pill = this.renderStepPill('Substring', assertionIndex, stepIndex);\n const { start = 0, end } = item;\n return html`\n ${pill}\n <ui-text-field\n name=\"start.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Start\"\n required\n .value=\"${live(String(start))}\"\n @change=\"${this.handleSubstringStartChange}\"\n class=\"space-step-left number-input\"\n type=\"number\"\n step=\"1\"\n title=\"The index of the first character to include in the returned substring.\"\n ></ui-text-field>\n\n <ui-text-field\n name=\"end.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"End\"\n .value=\"${live(end ? String(end) : '')}\"\n @change=\"${this.handleSubstringEndChange}\"\n class=\"space-step-left number-input\"\n type=\"number\"\n step=\"1\"\n title=\"The index of the first character to exclude from the returned substring.\"\n ></ui-text-field>\n `;\n }\n\n protected renderEqualAssertion(item: CoreAssertions.IEqualAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n return html`\n <ui-text-field\n name=\"equal.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.EqualAssertionKind}\"\n label=\"Equal to\"\n required\n .value=\"${live(item.value || '')}\"\n @change=\"${this.handleEqualAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderNotEqualAssertion(item: CoreAssertions.INotEqualAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n return html`\n <ui-text-field\n name=\"not-equal.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.NotEqualAssertionKind}\"\n label=\"Not equal to\"\n required\n .value=\"${live(item.value || '')}\"\n @change=\"${this.handleEqualAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderGreaterThanAssertion(item: CoreAssertions.IGreaterThanAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n const { equal, value } = item;\n const label = equal ? 'Greater than equal' : 'Greater than';\n const effectiveValue = typeof value === 'number' ? String(value) : '';\n return html`\n <ui-text-field\n name=\"value.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.GreaterThanAssertionKind}\"\n data-variant=\"${equal ? 'equal' : ''}\"\n label=\"${label}\"\n required\n .value=\"${live(effectiveValue)}\"\n @change=\"${this.handleGreaterThanAssertionValueChange}\"\n inputMode=\"numeric\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderLessThanAssertion(item: CoreAssertions.ILessThanAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n const { equal, value } = item;\n const label = equal ? 'Less than equal' : 'Less than';\n const effectiveValue = typeof value === 'number' ? String(value) : '';\n return html`\n <ui-text-field\n name=\"value.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.LessThanAssertionKind}\"\n data-variant=\"${equal ? 'equal' : ''}\"\n label=\"${label}\"\n required\n .value=\"${live(effectiveValue)}\"\n @change=\"${this.handleLessThanAssertionValueChange}\"\n inputMode=\"numeric\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderIncludesAssertion(item: CoreAssertions.IIncludesAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n const { value } = item;\n return html`\n <ui-text-field\n name=\"includes.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.IncludesAssertionKind}\"\n label=\"Includes value\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleIncludesAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderNotIncludesAssertion(item: CoreAssertions.INotIncludesAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n const { value } = item;\n return html`\n <ui-text-field\n name=\"not-includes.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.NotIncludesAssertionKind}\"\n label=\"Not includes value\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleIncludesAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderMatchesAssertion(item: CoreAssertions.IMatchesAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n const { value } = item;\n return html`\n <ui-text-field\n name=\"matches.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.MatchesAssertionKind}\"\n label=\"Matches regex\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleMatchesAssertionValueChange}\"\n @input=\"${this.validateRegexPattern}\"\n invalidText=\"Pattern is invalid\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderToBeAssertion(item: CoreAssertions.IToBeAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n const { value } = item;\n const types = Object.values(CoreAssertions.ToBeTypes);\n return html`\n <ui-text-field\n name=\"to-be.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.ToBeAssertionKind}\"\n label=\"To be...\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleMatchesAssertionValueChange}\"\n .list=\"${types}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderNotToBeAssertion(item: CoreAssertions.INotToBeAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n const { value } = item;\n const types = Object.values(CoreAssertions.ToBeTypes);\n return html`\n <ui-text-field\n name=\"not-to-be.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.NotToBeAssertionKind}\"\n label=\"Not to be...\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleMatchesAssertionValueChange}\"\n .list=\"${types}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderRenameAssertionDialog(): TemplateResult {\n return html`\n <ui-dialog modal class=\"rename-dialog\" @close=\"${this.handleRenameDialogResult}\">\n <ui-icon slot=\"icon\" icon=\"rename\"></ui-icon>\n <span slot=\"title\">Rename assertion</span>\n \n <ui-text-field\n name=\"rename\"\n label=\"Assertion description\"\n required\n ></ui-text-field>\n\n <ui-button slot=\"button\" value=\"dismiss\" type=\"text\">Cancel</ui-button>\n <ui-button slot=\"button\" value=\"confirm\" type=\"text\">Accept</ui-button>\n </ui-dialog>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"HttpAssertions.js","sourceRoot":"","sources":["../../../src/elements/http/HttpAssertions.ts"],"names":[],"mappings":"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","sourcesContent":["import { \n IHttpAssertion, DataSteps, FlowSourceEnum, FlowRequestDataEnum, \n FlowResponseDataEnum, TransformationSteps, HttpAssertions as CoreAssertions, AmfNamespace\n} from \"@api-client/core/build/browser.js\";\nimport { html, nothing, TemplateResult } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { live } from \"lit/directives/live.js\";\nimport { IHttpStep } from \"@api-client/core/build/src/models/http-actions/HttpStep.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport SwitchElement from \"../../ui/input/SwitchElement.js\";\nimport UiChip from \"../../ui/chip/UiChip.js\";\nimport Input from \"../../ui/input/Input.js\";\nimport UiDialog, { UiDialogClosingReason } from \"../../ui/dialog/UiDialog.js\";\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-switch.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-text-field.js';\nimport '../../define/ui/ui-chip.js';\nimport '../../define/ui/ui-dialog.js';\n\n/**\n * @fires change When the model change\n */\nexport default class HttpAssertions extends ApiElement {\n /**\n * The list of assertions.\n * This is a live list. All changes are propagated in the model.\n */\n @property({ type: Array }) model: IHttpAssertion[] = [];\n\n /**\n * Adds a new empty assertion to the model.\n * Note, this function won't notify the parent element\n * about the change as empty rules can be discarded.\n */\n addAssertion(): void {\n const { model } = this;\n model.push({\n enabled: true,\n steps: [],\n });\n this.requestUpdate();\n }\n\n /**\n * Removes an assertion at specified index.\n * @param index The index of the assertion in the `model` to remove.\n */\n removeAssertion(index: number): void {\n const { model } = this;\n if (!model[index]) {\n throw new RangeError(`Invalid index: ${index}`);\n }\n model.splice(index, 1);\n this.requestUpdate();\n this.notifyChange();\n }\n\n /**\n * Toggles the enabled state of the assertion.\n * @param index The index of the assertion on the `model` array\n * @param value The `enabled` value.\n */\n toggleAssertion(index: number, value: boolean): void {\n const { model } = this;\n if (!model[index]) {\n throw new RangeError(`Invalid index: ${index}`);\n }\n model[index].enabled = value;\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected notifyChange(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n protected handleAdd(): void {\n this.addAssertion();\n }\n\n protected handleRemove(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.removeAssertion(index);\n }\n\n protected handleToggle(e: Event): void {\n const node = e.currentTarget as SwitchElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.toggleAssertion(index, node.checked);\n }\n\n protected handleRemoveStep(e: Event): void {\n const target = e.currentTarget as HTMLElement;\n const assertionIndex = Number(target.dataset.index);\n const stepIndex = Number(target.dataset.stepIndex);\n if (Number.isNaN(assertionIndex) || Number.isNaN(stepIndex)) {\n return;\n }\n const assertion = this.model[assertionIndex];\n if (!assertion) {\n return;\n }\n assertion.steps.splice(stepIndex, 1);\n this.notifyChange();\n this.requestUpdate();\n }\n\n protected draggedChip?: UiChip;\n\n protected isValidDropTarget(dataTransfer?: DataTransfer | null): boolean {\n if (!dataTransfer) {\n return false;\n }\n const { types } = dataTransfer;\n return types.includes('assertion/group') && types.includes('assertion/kind');\n }\n\n protected handleDragStart(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer) {\n return;\n }\n const chip = e.target as UiChip;\n const { group, kind, source, data, variant } = chip.dataset;\n if (!group || !kind) {\n return;\n }\n const copy = chip.cloneNode(true) as UiChip;\n copy.style.position = 'absolute';\n copy.style.top = `-100px`;\n this.draggedChip = copy;\n document.body.appendChild(copy);\n dataTransfer.setDragImage(copy, 0, 0);\n dataTransfer.setData('assertion/group', group);\n dataTransfer.setData('assertion/kind', kind);\n if (source) {\n dataTransfer.setData('assertion/source', source);\n }\n if (data) {\n dataTransfer.setData('assertion/data', data);\n }\n if (variant) {\n dataTransfer.setData('assertion/variant', variant);\n }\n chip.blur();\n }\n\n protected handleDragEnd(e: DragEvent): void {\n const { draggedChip } = this;\n if (!draggedChip) {\n return;\n }\n e.preventDefault();\n draggedChip.parentElement?.removeChild(draggedChip);\n }\n\n protected handleTargetDragOver(e: DragEvent): void {\n const { draggedChip } = this;\n if (!draggedChip || e.defaultPrevented || !this.isValidDropTarget(e.dataTransfer)) {\n return;\n }\n e.preventDefault();\n const target = e.currentTarget as HTMLElement;\n target.classList.add('dragover');\n }\n\n protected handleTargetDragLeave(e: DragEvent): void {\n if (e.defaultPrevented || !this.isValidDropTarget(e.dataTransfer)) {\n return;\n }\n const target = e.currentTarget as HTMLElement;\n target.classList.remove('dragover');\n }\n\n protected handleDrop(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer || e.defaultPrevented || !this.isValidDropTarget(dataTransfer)) {\n return;\n }\n e.preventDefault();\n this.resetDragIndices();\n const { index, stepIndex } = (e.target as HTMLElement).dataset;\n const typedAssertionIndex = Number(index);\n if (Number.isNaN(typedAssertionIndex)) {\n return;\n }\n let typedStepIndex: number | undefined;\n if (stepIndex) {\n const tmp = Number(stepIndex);\n if (!Number.isNaN(tmp)) {\n typedStepIndex = tmp;\n }\n }\n this.processDrop(dataTransfer, typedAssertionIndex, typedStepIndex);\n }\n\n protected resetDragIndices(): void {\n const nodes = (this.shadowRoot as ShadowRoot).querySelectorAll('.dragover');\n Array.from(nodes).forEach(n => n.classList.remove('dragover'));\n }\n\n protected processDrop(dataTransfer: DataTransfer, assertionIndex: number, stepIndex?: number): void {\n const group = dataTransfer.getData('assertion/group');\n if (!group) {\n return;\n }\n if (group === 'data-source') {\n this.processDataSourceDrop(dataTransfer, assertionIndex, stepIndex);\n } else if (group === 'transformation') {\n this.processTransformationDrop(dataTransfer, assertionIndex, stepIndex);\n } else if (group === 'assertion') {\n this.processAssertionDrop(dataTransfer, assertionIndex, stepIndex);\n }\n }\n\n protected processDataSourceDrop(dataTransfer: DataTransfer, assertionIndex: number, stepIndex?: number): void {\n const item = this.model[assertionIndex];\n if (!item) {\n return;\n }\n const source = dataTransfer.getData('assertion/source') as FlowSourceEnum;\n const data = dataTransfer.getData('assertion/data') as FlowRequestDataEnum | FlowResponseDataEnum;\n const step = new DataSteps.ReadDataSourceStep(source, data).toJSON();\n if (stepIndex === undefined) {\n item.steps.push(step);\n } else if (stepIndex === -1) {\n item.steps.unshift(step);\n } else {\n item.steps.splice(stepIndex, 0, step);\n }\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected processTransformationDrop(dataTransfer: DataTransfer, assertionIndex: number, stepIndex?: number): void {\n const item = this.model[assertionIndex];\n if (!item) {\n return;\n }\n let step: IHttpStep | undefined;\n const kind = dataTransfer.getData('assertion/kind');\n if (kind === DataSteps.ReadValueStepKind) {\n step = new DataSteps.ReadValueStep().toJSON();\n } else if (kind === TransformationSteps.AsNumberStepKind) {\n step = new TransformationSteps.AsNumberStep().toJSON();\n } else if (kind === TransformationSteps.RoundStepKind) {\n step = new TransformationSteps.RoundStep().toJSON();\n } else if (kind === TransformationSteps.AsLowerCaseStepKind) {\n step = new TransformationSteps.AsLowerCaseStep().toJSON();\n } else if (kind === TransformationSteps.AsUpperCaseStepKind) {\n step = new TransformationSteps.AsUpperCaseStep().toJSON();\n } else if (kind === TransformationSteps.TrimStepKind) {\n step = new TransformationSteps.TrimStep().toJSON();\n } else if (kind === TransformationSteps.SubstringStepKind) {\n step = new TransformationSteps.SubstringStep().toJSON();\n }\n if (!step) {\n return;\n }\n if (stepIndex === undefined) {\n item.steps.push(step);\n } else if (stepIndex === -1) {\n item.steps.unshift(step);\n } else {\n item.steps.splice(stepIndex, 0, step);\n }\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected processAssertionDrop(dataTransfer: DataTransfer, assertionIndex: number, stepIndex?: number): void {\n const item = this.model[assertionIndex];\n if (!item) {\n return;\n }\n let step: IHttpStep | undefined;\n const kind = dataTransfer.getData('assertion/kind');\n if (kind === CoreAssertions.EqualAssertionKind) {\n step = new CoreAssertions.EqualAssertion().toJSON();\n } else if (kind === CoreAssertions.NotEqualAssertionKind) {\n step = new CoreAssertions.NotEqualAssertion().toJSON();\n } else if (kind === CoreAssertions.GreaterThanAssertionKind) {\n const instance = new CoreAssertions.GreaterThanAssertion();\n if (dataTransfer.getData('assertion/variant') === 'equal') {\n instance.equal = true;\n }\n step = instance.toJSON();\n } else if (kind === CoreAssertions.LessThanAssertionKind) {\n const instance = new CoreAssertions.LessThanAssertion();\n if (dataTransfer.getData('assertion/variant') === 'equal') {\n instance.equal = true;\n }\n step = instance.toJSON();\n } else if (kind === CoreAssertions.IncludesAssertionKind) {\n step = new CoreAssertions.IncludesAssertion().toJSON();\n } else if (kind === CoreAssertions.NotIncludesAssertionKind) {\n step = new CoreAssertions.NotIncludesAssertion().toJSON();\n } else if (kind === CoreAssertions.MatchesAssertionKind) {\n step = new CoreAssertions.MatchesAssertion().toJSON();\n } else if (kind === CoreAssertions.OkAssertionKind) {\n step = new CoreAssertions.OkAssertion().toJSON();\n } else if (kind === CoreAssertions.NotOkAssertionKind) {\n step = new CoreAssertions.NotOkAssertion().toJSON();\n } else if (kind === CoreAssertions.ToBeAssertionKind) {\n step = new CoreAssertions.ToBeAssertion().toJSON();\n } else if (kind === CoreAssertions.NotToBeAssertionKind) {\n step = new CoreAssertions.NotToBeAssertion().toJSON();\n }\n if (!step) {\n return;\n }\n if (stepIndex === undefined) {\n item.steps.push(step);\n } else if (stepIndex === -1) {\n item.steps.unshift(step);\n } else {\n item.steps.splice(stepIndex, 0, step);\n }\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleReadValueStepChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as DataSteps.IReadValueStep | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n input.checkValidity();\n step.path = input.value;\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleRoundPrecisionChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as TransformationSteps.IRoundStep | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n input.checkValidity();\n step.precision = input.valueAsNumber;\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleSubstringStartChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as TransformationSteps.ISubstringStep | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n input.checkValidity();\n step.start = input.valueAsNumber;\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleSubstringEndChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as TransformationSteps.ISubstringStep | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n input.checkValidity();\n step.end = input.valueAsNumber;\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleEqualAssertionValueChange(e: Event): void {\n const input = e.target as Input;\n input.checkValidity();\n const assertionIndex = Number(input.dataset.assertionIndex);\n const stepIndex = Number(input.dataset.stepIndex);\n if (Number.isNaN(assertionIndex) || Number.isNaN(stepIndex)) {\n return;\n }\n const assertion = this.model[assertionIndex];\n if (!assertion) {\n return;\n }\n const step = assertion.steps[stepIndex] as CoreAssertions.IEqualAssertion | undefined;\n if (!step) {\n return;\n }\n step.value = input.value;\n step.dataType = this.detectInputDataType(assertion.steps.slice(0, stepIndex));\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleGreaterThanAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.IGreaterThanAssertion | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n input.checkValidity();\n step.value = Number(input.value);\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleLessThanAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.ILessThanAssertion | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n input.checkValidity();\n step.value = Number(input.value);\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleIncludesAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.IIncludesAssertion | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n input.checkValidity();\n step.value = input.value;\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected handleMatchesAssertionValueChange(e: Event): void {\n const step = this.stepFromChangeEvent(e) as CoreAssertions.IMatchesAssertion | undefined;\n if (!step) {\n return;\n }\n const input = e.target as Input;\n step.value = input.value;\n this.requestUpdate();\n this.notifyChange();\n }\n\n protected validateRegexPattern(e: Event): void {\n const input = e.target as Input;\n try {\n RegExp(input.value);\n input.setCustomValidity('');\n } catch (_) {\n input.setCustomValidity('Pattern is invalid');\n }\n input.reportValidity();\n }\n\n protected stepFromChangeEvent(e: Event): IHttpStep | undefined {\n const input = e.target as Input;\n input.checkValidity();\n const assertionIndex = Number(input.dataset.assertionIndex);\n const stepIndex = Number(input.dataset.stepIndex);\n if (Number.isNaN(assertionIndex) || Number.isNaN(stepIndex)) {\n return undefined;\n }\n const assertion = this.model[assertionIndex];\n if (!assertion) {\n return undefined;\n }\n return assertion.steps[stepIndex];\n }\n\n /**\n * Detects the correct data type for the step value based on previous steps.\n * \n * @param steps The steps before the current step\n * @returns The data type for the step in the AMF namespace.\n */\n protected detectInputDataType(steps: IHttpStep[]): string {\n // we reverse the list so we move from the last step.\n const reversed = [...steps].reverse();\n for (const step of reversed) {\n if (step.kind === TransformationSteps.AsNumberStepKind) {\n return AmfNamespace.aml.vocabularies.shapes.number;\n }\n if (step.kind === DataSteps.ReadDataSourceStepKind) {\n const typed = step as DataSteps.IReadDataSourceStep;\n if (typed.data === FlowResponseDataEnum.status) {\n return AmfNamespace.aml.vocabularies.shapes.number;\n }\n }\n }\n return AmfNamespace.w3.xmlSchema.string;\n }\n\n protected handleRenameAssertion(e: Event): void {\n const target = e.currentTarget as HTMLElement;\n const assertionIndex = Number(target.dataset.assertionIndex);\n if (Number.isNaN(assertionIndex)) {\n return;\n }\n const assertion = this.model[assertionIndex];\n if (!assertion) {\n return;\n }\n const { description } = assertion;\n const dialog = this.shadowRoot?.querySelector('.rename-dialog') as UiDialog | null;\n if (!dialog) {\n return;\n }\n const input = dialog.querySelector('ui-text-field') as Input;\n input.value = description || '';\n dialog.open = true;\n dialog.dataset.assertionIndex = target.dataset.assertionIndex;\n }\n\n protected handleRenameDialogResult(e: CustomEvent<UiDialogClosingReason>): void {\n if (e.detail.cancelled) {\n return;\n }\n const dialog = e.currentTarget as UiDialog;\n const assertionIndex = Number(dialog.dataset.assertionIndex);\n if (Number.isNaN(assertionIndex)) {\n return;\n }\n const assertion = this.model[assertionIndex];\n if (!assertion) {\n return;\n }\n const input = dialog.querySelector('ui-text-field') as Input;\n assertion.description = input.value;\n this.requestUpdate();\n this.notifyChange();\n input.value = '';\n delete dialog.dataset.assertionIndex;\n }\n\n protected override render(): TemplateResult {\n return html`\n ${this.renderActionButtons()}\n <div class=\"container\">\n ${this.renderEditor()}\n ${this.renderAssertions()}\n </div>\n ${this.renderRenameAssertionDialog()}\n `;\n }\n\n protected renderActionButtons(): TemplateResult {\n return html`\n <div class=\"editor-actions\">\n <ui-button type=\"tonal\" @click=\"${this.handleAdd}\" class=\"add-button\">Add</ui-button>\n </div>\n `;\n }\n\n protected renderAssertions(): TemplateResult {\n return html`\n <section aria-label=\"Assertion options\" class=\"options\">\n ${this.renderDataSourceOptions()}\n ${this.renderTransformationOptions()}\n ${this.renderAssertionOptions()}\n </section>\n `;\n }\n\n protected renderStepChip(label: string, group: string, kind: string, variant?: string): TemplateResult {\n return html`\n <ui-chip \n draggable=\"true\" \n data-group=\"${group}\" \n data-kind=\"${kind}\" \n data-variant=\"${ifDefined(variant)}\" \n @dragstart=\"${this.handleDragStart}\" \n @dragend=\"${this.handleDragEnd}\"\n >${label}</ui-chip>\n `;\n }\n\n protected renderDataSourceChip(label: string, group: string, kind: string, source: FlowSourceEnum, data: FlowRequestDataEnum | FlowResponseDataEnum): TemplateResult {\n return html`\n <ui-chip \n draggable=\"true\" \n data-group=\"${group}\" \n data-kind=\"${kind}\" \n data-source=\"${source}\" \n data-data=\"${data}\" \n @dragstart=\"${this.handleDragStart}\" \n @dragend=\"${this.handleDragEnd}\"\n >${label}</ui-chip>\n `;\n }\n\n protected renderDataSourceOptions(): TemplateResult {\n return html`\n <details class=\"assertion-group\" open>\n <summary>Data source</summary>\n <div class=\"group-content\">\n ${this.renderDataSourceChip('Status code', 'data-source', DataSteps.ReadDataSourceStepKind, FlowSourceEnum.response, FlowResponseDataEnum.status)}\n ${this.renderDataSourceChip('Response headers', 'data-source', DataSteps.ReadDataSourceStepKind, FlowSourceEnum.response, FlowResponseDataEnum.headers)}\n ${this.renderDataSourceChip('Response body', 'data-source', DataSteps.ReadDataSourceStepKind, FlowSourceEnum.response, FlowResponseDataEnum.body)}\n ${this.renderDataSourceChip('Status message', 'data-source', DataSteps.ReadDataSourceStepKind, FlowSourceEnum.response, FlowResponseDataEnum.statusText)}\n </div>\n </details>\n `;\n }\n\n protected renderTransformationOptions(): TemplateResult {\n return html`\n <details class=\"assertion-group\" open>\n <summary>Transformation</summary>\n <div class=\"group-content\">\n ${this.renderStepChip('Read value', 'transformation', DataSteps.ReadValueStepKind)}\n ${this.renderStepChip('As number', 'transformation', TransformationSteps.AsNumberStepKind)}\n ${this.renderStepChip('Round', 'transformation', TransformationSteps.RoundStepKind)}\n ${this.renderStepChip('To lower case', 'transformation', TransformationSteps.AsLowerCaseStepKind)}\n ${this.renderStepChip('To upper case', 'transformation', TransformationSteps.AsUpperCaseStepKind)}\n ${this.renderStepChip('Trim', 'transformation', TransformationSteps.TrimStepKind)}\n ${this.renderStepChip('Substring', 'transformation', TransformationSteps.SubstringStepKind)}\n </div>\n </details>\n `;\n }\n\n protected renderAssertionOptions(): TemplateResult {\n return html`\n <details class=\"assertion-group\" open>\n <summary>Assertions</summary>\n <div class=\"group-content\">\n ${this.renderStepChip('Equal', 'assertion', CoreAssertions.EqualAssertionKind)}\n ${this.renderStepChip('Not equal', 'assertion', CoreAssertions.NotEqualAssertionKind)}\n ${this.renderStepChip('Greater than', 'assertion', CoreAssertions.GreaterThanAssertionKind)}\n ${this.renderStepChip('Greater than equal', 'assertion', CoreAssertions.GreaterThanAssertionKind, 'equal')}\n ${this.renderStepChip('Less than', 'assertion', CoreAssertions.LessThanAssertionKind)}\n ${this.renderStepChip('Less than equal', 'assertion', CoreAssertions.LessThanAssertionKind, 'equal')}\n ${this.renderStepChip('Includes', 'assertion', CoreAssertions.IncludesAssertionKind)}\n ${this.renderStepChip('Not includes', 'assertion', CoreAssertions.NotIncludesAssertionKind)}\n ${this.renderStepChip('Matches', 'assertion', CoreAssertions.MatchesAssertionKind)}\n ${this.renderStepChip('OK', 'assertion', CoreAssertions.OkAssertionKind)}\n ${this.renderStepChip('Not OK', 'assertion', CoreAssertions.NotOkAssertionKind)}\n ${this.renderStepChip('To be...', 'assertion', CoreAssertions.ToBeAssertionKind)}\n ${this.renderStepChip('Not to be...', 'assertion', CoreAssertions.NotToBeAssertionKind)}\n </div>\n </details>\n `;\n }\n\n protected renderEditor(): TemplateResult {\n const { model } = this;\n const content = Array.isArray(model) && !!model.length ? this.renderList(model) : this.renderEmptyMessage();\n return html`\n <section aria-label=\"Assertions editor\" class=\"editor\">${content}</section>\n `;\n }\n\n protected renderEmptyMessage(): TemplateResult {\n return html`\n <div class=\"empty-message\">No assertions added</div>\n `;\n }\n\n protected renderList(model: IHttpAssertion[]): TemplateResult {\n return html`\n ${model.map((item, index) => this.renderAssertion(item, index))}\n `;\n }\n\n protected renderAssertion(item: IHttpAssertion, index: number): TemplateResult {\n return html`\n ${this.renderAssertionDescription(item)}\n <div class=\"param-row\">\n ${this.renderToggleButton(item, index)}\n ${this.renderSteps(item, index)}\n <div class=\"assertion-actions\">\n ${this.renderRenameAssertion(index)}\n ${this.renderDeleteAssertion(index)}\n </div>\n </div>\n `;\n }\n\n protected renderAssertionDescription(item: IHttpAssertion): TemplateResult | typeof nothing {\n const { description } = item;\n if (!description) {\n return nothing;\n }\n return html`\n <div class=\"assertion-description label-medium\">${description}</div>\n `;\n }\n\n protected renderToggleButton(item: IHttpAssertion, assertionIndex: number): TemplateResult {\n return html`\n <ui-switch \n .checked=\"${!!item.enabled}\" \n @change=\"${this.handleToggle}\" \n aria-label=\"Toggle this assertion\"\n data-index=\"${assertionIndex}\"\n class=\"toggle-button\"\n ></ui-switch>\n `;\n }\n\n protected renderRenameAssertion(assertionIndex: number): TemplateResult {\n return html`\n <ui-icon-button \n aria-label=\"Rename this assertion\" \n title=\"Rename this assertion\" \n data-assertion-index=\"${assertionIndex}\" \n @click=\"${this.handleRenameAssertion}\"\n class=\"rename-button\"\n >\n <ui-icon icon=\"rename\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderDeleteAssertion(assertionIndex: number): TemplateResult {\n return html`\n <ui-icon-button \n aria-label=\"Delete this assertion\" \n title=\"Delete this assertion\" \n data-index=\"${assertionIndex}\" \n @click=\"${this.handleRemove}\"\n class=\"delete-button\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderSteps(item: IHttpAssertion, assertionIndex: number): TemplateResult {\n const content = Array.isArray(item.steps) && !!item.steps.length ? this.renderStepsList(item.steps, assertionIndex) : this.renderEmptyStep(assertionIndex);\n return html`\n <div \n class=\"steps\" \n data-index=\"${assertionIndex}\"\n @drop=\"${this.handleDrop}\" \n @dragover=\"${this.handleTargetDragOver}\"\n @dragleave=\"${this.handleTargetDragLeave}\"\n >${content}</div>\n `;\n }\n\n protected renderEmptyStep(assertionIndex: number): TemplateResult {\n return html`\n <span class=\"step-pill empty drop-target space-step-left\" data-index=\"${assertionIndex}\" @drop=\"${this.handleDrop}\" @dragover=\"${this.handleTargetDragOver}\">Empty slot</span>\n <span class=\"drop-info drop-target space-step-left\" data-index=\"${assertionIndex}\" @drop=\"${this.handleDrop}\" @dragover=\"${this.handleTargetDragOver}\">Drop an action here</span>\n `;\n }\n\n protected renderStepsList(steps: IHttpStep[], assertionIndex: number): TemplateResult[] {\n const items: TemplateResult[] = [];\n steps.forEach((item, stepIndex) => {\n const content = this.renderStep(item, assertionIndex, stepIndex);\n if (content) {\n items.push(html`\n <div class=\"step-unit\">\n ${this.renderDropSpacer(assertionIndex, stepIndex)}\n ${content}\n </div>\n `);\n }\n });\n return items;\n }\n\n protected renderStep(item: IHttpStep, assertionIndex: number, stepIndex: number): TemplateResult | undefined {\n const { kind } = item;\n switch (kind) {\n case DataSteps.ReadDataSourceStepKind: return this.renderReadDataSourceStep(item, assertionIndex, stepIndex);\n case DataSteps.ReadValueStepKind: return this.renderReadValueStep(item as DataSteps.IReadValueStep, assertionIndex, stepIndex);\n\n // transformations\n case TransformationSteps.AsNumberStepKind: return this.renderStepPill('As number', assertionIndex, stepIndex);\n case TransformationSteps.AsLowerCaseStepKind: return this.renderStepPill('To lower case', assertionIndex, stepIndex);\n case TransformationSteps.AsUpperCaseStepKind: return this.renderStepPill('To upper case', assertionIndex, stepIndex);\n case TransformationSteps.TrimStepKind: return this.renderStepPill('Trim', assertionIndex, stepIndex);\n case TransformationSteps.RoundStepKind: return this.renderRoundStep(item as TransformationSteps.IRoundStep, assertionIndex, stepIndex);\n case TransformationSteps.SubstringStepKind: return this.renderSubstringStep(item as TransformationSteps.ISubstringStep, assertionIndex, stepIndex);\n\n // assertions\n case CoreAssertions.EqualAssertionKind: return this.renderEqualAssertion(item as CoreAssertions.IEqualAssertion, assertionIndex, stepIndex);\n case CoreAssertions.NotEqualAssertionKind: return this.renderNotEqualAssertion(item as CoreAssertions.INotEqualAssertion, assertionIndex, stepIndex);\n case CoreAssertions.GreaterThanAssertionKind: return this.renderGreaterThanAssertion(item as CoreAssertions.IGreaterThanAssertion, assertionIndex, stepIndex);\n case CoreAssertions.LessThanAssertionKind: return this.renderLessThanAssertion(item as CoreAssertions.ILessThanAssertion, assertionIndex, stepIndex);\n case CoreAssertions.IncludesAssertionKind: return this.renderIncludesAssertion(item as CoreAssertions.IIncludesAssertion, assertionIndex, stepIndex);\n case CoreAssertions.NotIncludesAssertionKind: return this.renderNotIncludesAssertion(item as CoreAssertions.INotIncludesAssertion, assertionIndex, stepIndex);\n case CoreAssertions.MatchesAssertionKind: return this.renderMatchesAssertion(item as CoreAssertions.IMatchesAssertion, assertionIndex, stepIndex);\n case CoreAssertions.OkAssertionKind: return this.renderStepPill('Is OK', assertionIndex, stepIndex);\n case CoreAssertions.NotOkAssertionKind: return this.renderStepPill('Is not OK', assertionIndex, stepIndex);\n case CoreAssertions.ToBeAssertionKind: return this.renderToBeAssertion(item as CoreAssertions.IToBeAssertion, assertionIndex, stepIndex);\n case CoreAssertions.NotToBeAssertionKind: return this.renderNotToBeAssertion(item as CoreAssertions.INotToBeAssertion, assertionIndex, stepIndex);\n default: return undefined;\n }\n }\n\n protected renderDropSpacer(assertionIndex: number, stepIndex: number): TemplateResult {\n return html`<div class=\"drop-target spacer\" \n data-index=\"${assertionIndex}\" \n data-step-index=\"${stepIndex}\" \n @drop=\"${this.handleDrop}\" \n @dragover=\"${this.handleTargetDragOver}\"\n @dragleave=\"${this.handleTargetDragLeave}\"\n > </div>`;\n }\n\n protected renderStepPill(label: string, assertionIndex: number, stepIndex: number): TemplateResult {\n return html`\n <span class=\"step-pill with-icon\">\n ${label}\n <ui-icon-button\n title=\"Remove\"\n aria-label=\"Deletes this step\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\"></ui-icon></ui-icon-button>\n </span>\n `;\n }\n\n protected renderReadDataSourceStep(item: DataSteps.IReadDataSourceStep, assertionIndex: number, stepIndex: number): TemplateResult | undefined {\n const { data, source } = item;\n if (!data || !source) {\n // invalid configuration\n return undefined;\n }\n let label: string | undefined;\n if (source === FlowSourceEnum.response) {\n if (data === FlowResponseDataEnum.url) {\n label = 'Response URL';\n } else if (data === FlowResponseDataEnum.headers) {\n label = 'Response headers';\n } else if (data === FlowResponseDataEnum.status) {\n label = 'Status code';\n } else if (data === FlowResponseDataEnum.statusText) {\n label = 'Status message';\n } else if (data === FlowResponseDataEnum.body) {\n label = 'Response body';\n }\n } else if (source === FlowSourceEnum.request) {\n if (data === FlowRequestDataEnum.url) {\n label = 'Request URL';\n } else if (data === FlowRequestDataEnum.headers) {\n label = 'Request headers';\n } else if (data === FlowRequestDataEnum.body) {\n label = 'Request body';\n } else if (data === FlowRequestDataEnum.method) {\n label = 'Request method';\n }\n }\n if (!label) {\n return undefined;\n }\n return this.renderStepPill(label, assertionIndex, stepIndex);\n }\n\n protected renderReadValueStep(item: DataSteps.IReadValueStep, assertionIndex: number, stepIndex: number): TemplateResult {\n return html`\n <ui-text-field\n name=\"value.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Read value\"\n required\n .value=\"${live(item.path || '')}\"\n @change=\"${this.handleReadValueStepChange}\"\n ></ui-text-field>\n `;\n }\n\n protected renderRoundStep(item: TransformationSteps.IRoundStep, assertionIndex: number, stepIndex: number): TemplateResult {\n const pill = this.renderStepPill('Round', assertionIndex, stepIndex);\n const { precision = 0 } = item;\n return html`\n ${pill}\n <ui-text-field\n name=\"precision.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Precision\"\n required\n .value=\"${live(String(precision))}\"\n @change=\"${this.handleRoundPrecisionChange}\"\n class=\"space-step-left number-input\"\n type=\"number\"\n min=\"0\"\n max=\"100\"\n step=\"1\"\n title=\"The number of digits to appear after the decimal point. Should be a value between 0 and 100, inclusive.\"\n ></ui-text-field>\n `;\n }\n\n protected renderSubstringStep(item: TransformationSteps.ISubstringStep, assertionIndex: number, stepIndex: number): TemplateResult {\n const pill = this.renderStepPill('Substring', assertionIndex, stepIndex);\n const { start = 0, end } = item;\n return html`\n ${pill}\n <ui-text-field\n name=\"start.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"Start\"\n required\n .value=\"${live(String(start))}\"\n @change=\"${this.handleSubstringStartChange}\"\n class=\"space-step-left number-input\"\n type=\"number\"\n step=\"1\"\n title=\"The index of the first character to include in the returned substring.\"\n ></ui-text-field>\n\n <ui-text-field\n name=\"end.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n label=\"End\"\n .value=\"${live(end ? String(end) : '')}\"\n @change=\"${this.handleSubstringEndChange}\"\n class=\"space-step-left number-input\"\n type=\"number\"\n step=\"1\"\n title=\"The index of the first character to exclude from the returned substring.\"\n ></ui-text-field>\n `;\n }\n\n protected renderEqualAssertion(item: CoreAssertions.IEqualAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n return html`\n <ui-text-field\n name=\"equal.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.EqualAssertionKind}\"\n label=\"Equal to\"\n required\n .value=\"${live(item.value || '')}\"\n @change=\"${this.handleEqualAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderNotEqualAssertion(item: CoreAssertions.INotEqualAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n return html`\n <ui-text-field\n name=\"not-equal.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.NotEqualAssertionKind}\"\n label=\"Not equal to\"\n required\n .value=\"${live(item.value || '')}\"\n @change=\"${this.handleEqualAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderGreaterThanAssertion(item: CoreAssertions.IGreaterThanAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n const { equal, value } = item;\n const label = equal ? 'Greater than equal' : 'Greater than';\n const effectiveValue = typeof value === 'number' ? String(value) : '';\n return html`\n <ui-text-field\n name=\"value.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.GreaterThanAssertionKind}\"\n data-variant=\"${equal ? 'equal' : ''}\"\n label=\"${label}\"\n required\n .value=\"${live(effectiveValue)}\"\n @change=\"${this.handleGreaterThanAssertionValueChange}\"\n inputMode=\"numeric\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderLessThanAssertion(item: CoreAssertions.ILessThanAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n const { equal, value } = item;\n const label = equal ? 'Less than equal' : 'Less than';\n const effectiveValue = typeof value === 'number' ? String(value) : '';\n return html`\n <ui-text-field\n name=\"value.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.LessThanAssertionKind}\"\n data-variant=\"${equal ? 'equal' : ''}\"\n label=\"${label}\"\n required\n .value=\"${live(effectiveValue)}\"\n @change=\"${this.handleLessThanAssertionValueChange}\"\n inputMode=\"numeric\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderIncludesAssertion(item: CoreAssertions.IIncludesAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n const { value } = item;\n return html`\n <ui-text-field\n name=\"includes.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.IncludesAssertionKind}\"\n label=\"Includes value\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleIncludesAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderNotIncludesAssertion(item: CoreAssertions.INotIncludesAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n const { value } = item;\n return html`\n <ui-text-field\n name=\"not-includes.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.NotIncludesAssertionKind}\"\n label=\"Not includes value\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleIncludesAssertionValueChange}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderMatchesAssertion(item: CoreAssertions.IMatchesAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n const { value } = item;\n return html`\n <ui-text-field\n name=\"matches.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.MatchesAssertionKind}\"\n label=\"Matches regex\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleMatchesAssertionValueChange}\"\n @input=\"${this.validateRegexPattern}\"\n invalidText=\"Pattern is invalid\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderToBeAssertion(item: CoreAssertions.IToBeAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n const { value } = item;\n const types = Object.values(CoreAssertions.ToBeTypes);\n return html`\n <ui-text-field\n name=\"to-be.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.ToBeAssertionKind}\"\n label=\"To be...\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleMatchesAssertionValueChange}\"\n .list=\"${types}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderNotToBeAssertion(item: CoreAssertions.INotToBeAssertion, assertionIndex: number, stepIndex: number): TemplateResult {\n const { value } = item;\n const types = Object.values(CoreAssertions.ToBeTypes);\n return html`\n <ui-text-field\n name=\"not-to-be.${assertionIndex}.${stepIndex}\"\n data-assertion-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n data-kind=\"${CoreAssertions.NotToBeAssertionKind}\"\n label=\"Not to be...\"\n required\n .value=\"${live(value || '')}\"\n @change=\"${this.handleMatchesAssertionValueChange}\"\n .list=\"${types}\"\n >\n <ui-icon-button\n slot=\"suffix\"\n title=\"Remove assertion\"\n aria-label=\"Deletes this assertion\"\n @click=\"${this.handleRemoveStep}\"\n data-index=\"${assertionIndex}\"\n data-step-index=\"${stepIndex}\"\n ><ui-icon icon=\"close\" role=\"presentation\"></ui-icon></ui-icon-button>\n </ui-text-field>\n `;\n }\n\n protected renderRenameAssertionDialog(): TemplateResult {\n return html`\n <ui-dialog modal class=\"rename-dialog\" @close=\"${this.handleRenameDialogResult}\">\n <ui-icon slot=\"icon\" icon=\"rename\"></ui-icon>\n <span slot=\"title\">Rename assertion</span>\n \n <ui-text-field\n name=\"rename\"\n label=\"Assertion description\"\n required\n ></ui-text-field>\n\n <ui-button slot=\"button\" value=\"dismiss\" type=\"text\">Cancel</ui-button>\n <ui-button slot=\"button\" value=\"confirm\" type=\"text\">Accept</ui-button>\n </ui-dialog>\n `;\n }\n}\n"]}
@@ -46,27 +46,16 @@ var ViewType;
46
46
  * Renders the view of the payload message.
47
47
  */
48
48
  export default class LogBody extends LitElement {
49
- /**
50
- * The payload to render. When the payload requires de-serialization it will be performed.
51
- */
52
- payload;
53
- /**
54
- * The content type of the payload.
55
- * @attribute
56
- */
57
- contentType;
58
- /**
59
- * When set it does not apply formatting for the code. However, it keeps the highlighting.
60
- * @attribute
61
- */
62
- raw = false;
63
- renderBody;
64
- bodyType = BodyType.nil;
65
- viewType = ViewType.Parsed;
66
- /**
67
- * The tokens rendered in the view.
68
- */
69
- renderTokens;
49
+ constructor() {
50
+ super(...arguments);
51
+ /**
52
+ * When set it does not apply formatting for the code. However, it keeps the highlighting.
53
+ * @attribute
54
+ */
55
+ this.raw = false;
56
+ this.bodyType = BodyType.nil;
57
+ this.viewType = ViewType.Parsed;
58
+ }
70
59
  willUpdate(cp) {
71
60
  if (cp.has('payload') || cp.has('contentType')) {
72
61
  this.prepareContent();
@@ -1 +1 @@
1
- {"version":3,"file":"LogBody.js","sourceRoot":"","sources":["../../../src/elements/http/LogBody.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable class-methods-use-this */\nimport { LitElement, html, TemplateResult, PropertyValues } from 'lit';\nimport { DeserializedPayload, Payload, PayloadSerializer, ISafePayload } from \"@api-client/core/build/browser.js\";\nimport { property, state } from \"lit/decorators.js\";\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { PrismHighlighter } from '../highlight/PrismHighlighter.js';\nimport { getLanguage } from '../highlight/PrismAutoDetect.js';\nimport 'prismjs/prism.js';\nimport 'prismjs/components/prism-json.js';\nimport 'prismjs/components/prism-javascript.js';\nimport 'prismjs/components/prism-markdown.js';\nimport 'prismjs/components/prism-markup.js';\nimport 'prismjs/components/prism-yaml.js';\nimport 'prismjs/components/prism-xml-doc.js';\nimport 'prismjs/components/prism-http.js';\nimport 'prismjs/plugins/line-numbers/prism-line-numbers.min.js';\nimport { ensureBodyString, imageBody, isBinaryBody, isPdfBody, isTextBody } from '../../lib/http/Payload.js';\n\nenum BodyType {\n // null, undefined, empty\n nil,\n // a string value\n String,\n Blob,\n File,\n // Multipart FormData object\n FormData,\n // Buffer, ArrayBuffer, UInt8Array, generally binary.\n Buffer,\n}\n\nenum ViewType {\n Parsed,\n ImageSvg,\n ImageBinary,\n ImageError,\n Pdf,\n Binary,\n // application/x-www-form-urlencoded\n UrlEncoded,\n}\n\n/**\n * Renders the view of the payload message.\n */\nexport default class LogBody extends LitElement {\n /**\n * The payload to render. When the payload requires de-serialization it will be performed. \n */\n @property() payload: DeserializedPayload | Payload | undefined;\n\n /**\n * The content type of the payload.\n * @attribute\n */\n @property({ type: String, reflect: true }) contentType?: string;\n\n /**\n * When set it does not apply formatting for the code. However, it keeps the highlighting.\n * @attribute\n */\n @property({ type: Boolean }) raw = false;\n\n @state() protected renderBody?: DeserializedPayload;\n\n @state() protected bodyType: BodyType = BodyType.nil;\n\n @state() protected viewType: ViewType = ViewType.Parsed;\n\n /**\n * The tokens rendered in the view.\n */\n @state() protected renderTokens?: string;\n\n override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('payload') || cp.has('contentType')) {\n this.prepareContent();\n }\n }\n\n override updated(cp: PropertyValues): void {\n super.updated(cp);\n if (cp.has('bodyType') || cp.has('viewType')) {\n this.prismComplete();\n }\n }\n\n /**\n * When processing a payload from the request editor then the value can be any of the `DeserializedPayload` types.\n * However, when processing a response that came from the `CoreEngine` it is always a Buffer / ArrayBuffer \n * and the contents is determined by the content type.\n */\n protected async prepareContent(): Promise<void> {\n const { contentType = '', payload } = this;\n this.renderBody = undefined;\n this.renderTokens = undefined;\n this.viewType = ViewType.Parsed;\n this.bodyType = BodyType.nil;\n\n if (!payload) {\n this.bodyType = BodyType.nil;\n return;\n }\n const body = await this.deserialize(payload);\n if (body === undefined || body === null || !body) {\n this.bodyType = BodyType.nil;\n return;\n }\n\n const typedSerialized = payload as ISafePayload;\n\n if (contentType) {\n const image = imageBody(contentType);\n if (isTextBody(contentType)) {\n this.renderBody = ensureBodyString(body);\n if (image === 'svg') {\n this.viewType = ViewType.ImageSvg;\n }\n } else if (image === 'binary') {\n this.viewType = ViewType.ImageBinary;\n this.renderBody = body;\n } else if (isPdfBody(contentType)) {\n this.viewType = ViewType.Pdf;\n this.renderBody = body;\n } else if (isBinaryBody(contentType)) {\n this.viewType = ViewType.Binary;\n this.renderBody = body;\n } else if (body instanceof FormData) {\n this.viewType = ViewType.Parsed;\n this.renderBody = body;\n } else if (typedSerialized.type === 'file' || typedSerialized.type === 'blob') {\n this.viewType = ViewType.Binary;\n this.renderBody = body;\n } else if (contentType.includes('application/x-www-form-urlencoded')) {\n this.viewType = ViewType.UrlEncoded;\n this.renderBody = body;\n } else {\n this.viewType = ViewType.Parsed;\n this.renderBody = ensureBodyString(body);\n }\n } else {\n this.renderBody = body;\n this.viewType = ViewType.Parsed;\n }\n this.bodyType = this.typeFromType(this.renderBody);\n this.tokenize();\n }\n\n protected typeFromType(type: unknown): BodyType {\n if (type === undefined || type === null || !type) {\n return BodyType.nil;\n } \n if (typeof type === 'string') {\n return BodyType.String;\n } \n if (type instanceof File) {\n return BodyType.File;\n }\n if (type instanceof Blob) {\n return BodyType.Blob;\n }\n if(type instanceof FormData) {\n return BodyType.FormData;\n }\n return BodyType.Buffer;\n }\n\n protected async deserialize(value: Payload | DeserializedPayload): Promise<DeserializedPayload> {\n if (value === undefined || value === null) {\n // both values should be stored correctly\n return undefined;\n }\n if (typeof value === 'string') {\n return value;\n }\n if ((value as ISafePayload).data) {\n return PayloadSerializer.deserialize(value as ISafePayload);\n }\n return value as DeserializedPayload;\n }\n\n /**\n * Depending on the body type and the contentType, it prepares the tokens to be rendered in the view.\n */\n protected tokenize(): void {\n const { contentType, bodyType: type, renderBody: body } = this;\n // if (raw && type !== BodyType.FormData) {\n // this._tokens = body as string;\n // return;\n // }\n switch (type) {\n case BodyType.String: this.renderTokens = this.tokenizeStringContent(body as string, contentType); break;\n case BodyType.FormData: this.renderTokens = this.tokenizeFormDataContent(body as FormData); break;\n case BodyType.Buffer: this.renderTokens = this.tokenizeBuffer(body as ArrayBuffer | Buffer, contentType); break;\n case BodyType.File: \n case BodyType.Blob: \n this.renderTokens = this.tokenizeFile(); break;\n default:\n this.renderTokens = undefined; \n break;\n }\n }\n\n protected tokenizeStringContent(body: string, contentType = ''): string {\n const { raw } = this;\n if (raw) {\n return body;\n }\n const finalBody = this.formatBody(body, contentType);\n const info = getLanguage(contentType);\n const env = {\n code: finalBody,\n grammar: info.grammar,\n language: info.lang,\n };\n // @ts-ignore\n Prism.hooks.run('before-highlight', env);\n // @ts-ignore\n return Prism.highlight(finalBody, info.grammar, info.lang);\n }\n\n protected formatBody(body: string, contentType = ''): string {\n let result = body;\n if (contentType.includes('json')) {\n try {\n const parsed = JSON.parse(result);\n result = JSON.stringify(parsed, null, 2);\n } catch (e) {\n // ...\n }\n }\n return result;\n }\n\n protected tokenizeFormDataContent(body: FormData): string {\n const { raw } = this;\n const boundary = '7MA4YWxkTrZu0gW';\n const lineBreak = \"\\r\\n\"\n const templates: string[] = [];\n body.forEach((value: FormDataEntryValue, key: string) => {\n if (typeof value === 'string') {\n templates.push(`--${boundary}${lineBreak}`);\n templates.push(`Content-Disposition: form-data; name=\"${key}\"${lineBreak}${lineBreak}`);\n templates.push(`${value}${lineBreak}`);\n } else {\n templates.push(`--${boundary}${lineBreak}`);\n templates.push(`Content-Disposition: form-data; name=\"${key}\"; filename=\"${value.name}\"${lineBreak}`);\n templates.push(`Content-Type: ${value.type || 'application/octet-stream'}${lineBreak}${lineBreak}`);\n templates.push(`{…file content…}${lineBreak}`);\n }\n });\n templates.push(`--${boundary}--${lineBreak}`);\n const code = templates.join('');\n if (raw) {\n return code;\n }\n const highlight = new PrismHighlighter();\n return highlight.tokenize(code, 'http');\n }\n\n protected tokenizeImageData(body: ArrayBuffer | Buffer, contentType?: string): string | undefined {\n try {\n const arr = new Uint8Array(body);\n const str = arr.reduce((data, byte) => data + String.fromCharCode(byte), '');\n const enc = btoa(str);\n return `data:${contentType};base64, ${enc}`;\n } catch (_) {\n return undefined;\n }\n }\n\n protected tokenizeBuffer(body: ArrayBuffer | Buffer, contentType?: string): string | undefined {\n if (typeof body === 'string') {\n return undefined;\n }\n if (this.viewType === ViewType.ImageBinary) {\n return this.tokenizeImageData(body, contentType);\n }\n\n try {\n const array = new Uint8Array(body).join(', ');\n return `[${array}]`;\n } catch (_) {\n return undefined;\n }\n }\n\n protected tokenizeFile(): string | undefined {\n const { payload } = this;\n if (!payload) {\n return undefined;\n }\n const typed = payload as ISafePayload;\n if (typed.type !== 'file' && typed.type !== 'blob') {\n return undefined;\n }\n if (!Array.isArray(typed.data)) {\n return undefined;\n }\n const array = (typed.data as number[]).join(', ');\n return `[${array}]`;\n }\n\n protected prismComplete(): void {\n const { renderBody, renderTokens } = this;\n const element = this.shadowRoot?.querySelector('#rawCode');\n if (!element) {\n return;\n }\n let body = '';\n if (typeof renderBody === 'string') {\n body = renderBody;\n } else if (typeof renderTokens === 'string') {\n body = renderTokens;\n }\n const env = {\n code: body,\n element,\n };\n try {\n // @ts-ignore\n Prism.hooks.run('complete', env);\n \n // @ts-ignore\n Prism.plugins.lineNumbers.resize(element.parentElement as Element);\n } catch (e) {\n // ...\n }\n }\n\n /**\n * A handler for the image error event.\n * This occurs when rendering an image via the img tag but the image URL is invalid.\n */\n protected handleImageError(): void {\n this.viewType = ViewType.ImageError;\n }\n\n protected override render(): TemplateResult {\n const { renderBody: body, bodyType: type, viewType: view } = this;\n if (type === BodyType.nil) {\n return html`<p class=\"no-info\">No data available.</p>`;\n }\n if (view === ViewType.ImageError) {\n return this.renderImageError();\n }\n if (view === ViewType.Parsed) {\n return this.renderStringBody()\n }\n if (view === ViewType.ImageSvg) {\n return this.renderImageSvgBody()\n }\n if (view === ViewType.ImageBinary) {\n return this.renderImageBinaryBody()\n }\n if (view === ViewType.Pdf) {\n return this.renderPdfBody()\n }\n if (view === ViewType.UrlEncoded) {\n return this.renderUrlEncodedBody();\n }\n if (type === BodyType.Blob || type === BodyType.File) {\n return this.renderBlobBody(body as Blob)\n }\n // only buffers left at this point\n return this.renderBufferBody(body as ArrayBuffer | Buffer);\n }\n\n protected renderStringBody(): TemplateResult {\n const { raw, renderTokens } = this;\n const content = raw ? renderTokens : unsafeHTML(renderTokens);\n return html`\n <pre class=\"raw-panel string language-snippet line-numbers\"><code id=\"rawCode\" class=\"code\">${content}</code></pre>\n `;\n }\n\n protected renderBlobBody(body: Blob): TemplateResult {\n const { renderTokens, raw } = this;\n if (renderTokens && raw) {\n return html`\n <div class=\"raw-panel padded-panel\">${renderTokens}</div>\n `;\n }\n return html`\n <div class=\"raw-panel padded-panel\">\n File data of ${body.size} bytes.\n </div>\n `;\n }\n\n protected renderBufferBody(body: ArrayBuffer | Buffer): TemplateResult {\n const { renderTokens, raw } = this;\n if (renderTokens && raw) {\n return html`\n <div class=\"raw-panel padded-panel\">${renderTokens}</div>\n `;\n }\n return html`\n <div class=\"raw-panel padded-panel\">\n Binary data of ${body.byteLength} bytes.\n </div>\n `;\n }\n\n protected renderPdfBody(): TemplateResult {\n return html`\n <div class=\"content-info pdf padded-panel\">\n <p>The response is a <b>PDF</b> data.</p>\n <p>Save the file to preview its contents.</p>\n </div>\n `;\n }\n\n protected renderImageSvgBody(): TemplateResult {\n const { renderBody, raw } = this;\n if (raw) {\n return this.renderStringBody();\n }\n const div = window.document.createElement('div');\n div.innerHTML = String(renderBody);\n const svgEl = div.firstElementChild;\n if (!svgEl) {\n return this.renderError('Invalid SVG response.');\n }\n const all = Array.from(svgEl.querySelectorAll('*'));\n all.forEach((node) => {\n if (!node.attributes) {\n return;\n }\n const remove = Array.from(node.attributes).filter((attr) => attr.name.startsWith('on') || ['xlink:href'].includes(attr.name));\n remove.forEach(({ name }) => node.removeAttribute(name));\n });\n const scripts = Array.from(svgEl.getElementsByTagName('script'));\n scripts.forEach((node) => (node.parentNode as Element).removeChild(node));\n return html`\n <div class=\"image-container\">\n ${unsafeSVG(svgEl.outerHTML)}\n </div>\n `;\n }\n\n protected renderImageBinaryBody(): TemplateResult {\n const { renderTokens } = this;\n if (!renderTokens) {\n return this.renderNoData('No image data');\n }\n return html`\n <div class=\"image-container\">\n <img class=\"img-preview\" src=\"${renderTokens}\" alt=\"\" @error=\"${this.handleImageError}\">\n </div>`;\n }\n\n protected renderImageError(): TemplateResult {\n const { renderTokens } = this;\n if (!renderTokens) {\n return this.renderNoData('No image data');\n }\n return html`\n <div class=\"error-container padded-panel\">\n <b>The image URL is invalid</b>: \"${renderTokens}\"\n </div>`;\n }\n\n protected renderNoData(label = 'Unsupported view.'): TemplateResult {\n return html`<p class=\"no-info\">${label}</p>`;\n }\n\n protected renderError(message: string): TemplateResult {\n return html`<p class=\"error\">${message}</p>`;\n }\n\n protected renderUrlEncodedBody(): TemplateResult {\n const { renderBody, raw } = this;\n if (raw) {\n return this.renderStringBody();\n }\n let params: URLSearchParams;\n try {\n params = new URLSearchParams(renderBody as string);\n } catch (e) {\n return this.renderError(`Unable to parse URL encoded data.`);\n }\n const content: TemplateResult[] = [];\n for (const [name, value] of params) {\n content.push(html`\n <tr>\n <td class=\"name\">${name}</td><td class=\"value\">${value}</td>\n </tr>\n `);\n }\n return html`\n <table class=\"url-params\">\n <caption>URL encoded parameters</caption>\n <thead>\n <tr>\n <th scope=\"col\" class=\"name\">Name</th>\n <th scope=\"col\" class=\"value\">Value</th>\n </tr>\n </thead>\n <tbody>\n ${content}\n </tbody>\n </table>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"LogBody.js","sourceRoot":"","sources":["../../../src/elements/http/LogBody.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,2CAA2C;AAC3C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AACvE,OAAO,EAAgC,iBAAiB,EAAgB,MAAM,mCAAmC,CAAC;AAClH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kCAAkC,CAAC;AAC1C,OAAO,wCAAwC,CAAC;AAChD,OAAO,sCAAsC,CAAC;AAC9C,OAAO,oCAAoC,CAAC;AAC5C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,wDAAwD,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE7G,IAAK,QAWJ;AAXD,WAAK,QAAQ;IACX,yBAAyB;IACzB,qCAAG,CAAA;IACH,iBAAiB;IACjB,2CAAM,CAAA;IACN,uCAAI,CAAA;IACJ,uCAAI,CAAA;IACJ,4BAA4B;IAC5B,+CAAQ,CAAA;IACR,qDAAqD;IACrD,2CAAM,CAAA;AACR,CAAC,EAXI,QAAQ,KAAR,QAAQ,QAWZ;AAED,IAAK,QASJ;AATD,WAAK,QAAQ;IACX,2CAAM,CAAA;IACN,+CAAQ,CAAA;IACR,qDAAW,CAAA;IACX,mDAAU,CAAA;IACV,qCAAG,CAAA;IACH,2CAAM,CAAA;IACN,oCAAoC;IACpC,mDAAU,CAAA;AACZ,CAAC,EATI,QAAQ,KAAR,QAAQ,QASZ;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,UAAU;IAA/C;;QAYE;;;WAGG;QAC0B,QAAG,GAAG,KAAK,CAAC;QAItB,aAAQ,GAAa,QAAQ,CAAC,GAAG,CAAC;QAElC,aAAQ,GAAa,QAAQ,CAAC,MAAM,CAAC;IAsb1D,CAAC;IA/aU,UAAU,CAAC,EAAwB;QAC1C,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE;YAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;IACH,CAAC;IAEQ,OAAO,CAAC,EAAkB;QACjC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClB,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YAC5C,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;IACH,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,cAAc;QAC5B,MAAM,EAAE,WAAW,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;QAE7B,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;YAC7B,OAAO;SACR;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE;YAChD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;YAC7B,OAAO;SACR;QAED,MAAM,eAAe,GAAG,OAAuB,CAAC;QAEhD,IAAI,WAAW,EAAE;YACf,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;YACrC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE;gBAC3B,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,KAAK,KAAK,KAAK,EAAE;oBACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;iBACnC;aACF;iBAAM,IAAI,KAAK,KAAK,QAAQ,EAAE;gBAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC;gBACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;iBAAM,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE;gBACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC;gBAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;iBAAM,IAAI,YAAY,CAAC,WAAW,CAAC,EAAE;gBACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;iBAAM,IAAI,IAAI,YAAY,QAAQ,EAAE;gBACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;iBAAM,IAAI,eAAe,CAAC,IAAI,KAAK,MAAM,IAAI,eAAe,CAAC,IAAI,KAAK,MAAM,EAAE;gBAC7E,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;iBAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE;gBACpE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC;gBACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAChC,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;aAC1C;SACF;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;SACjC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAES,YAAY,CAAC,IAAa;QAClC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE;YAChD,OAAO,QAAQ,CAAC,GAAG,CAAC;SACrB;QACD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,OAAO,QAAQ,CAAC,MAAM,CAAC;SACxB;QACD,IAAI,IAAI,YAAY,IAAI,EAAE;YACxB,OAAO,QAAQ,CAAC,IAAI,CAAC;SACtB;QACD,IAAI,IAAI,YAAY,IAAI,EAAE;YACxB,OAAO,QAAQ,CAAC,IAAI,CAAC;SACtB;QACD,IAAG,IAAI,YAAY,QAAQ,EAAE;YAC3B,OAAO,QAAQ,CAAC,QAAQ,CAAC;SAC1B;QACD,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,KAAoC;QAC9D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YACvC,yCAAyC;YACzC,OAAO,SAAS,CAAC;SACpB;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,OAAO,KAAK,CAAC;SAChB;QACD,IAAK,KAAsB,CAAC,IAAI,EAAE;YAChC,OAAO,iBAAiB,CAAC,WAAW,CAAC,KAAqB,CAAC,CAAC;SAC7D;QACD,OAAO,KAA4B,CAAC;IACtC,CAAC;IAED;;OAEG;IACO,QAAQ;QAChB,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAC/D,2CAA2C;QAC3C,mCAAmC;QACnC,YAAY;QACZ,IAAI;QACJ,QAAS,IAAI,EAAE;YACb,KAAK,QAAQ,CAAC,MAAM;gBAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAc,EAAE,WAAW,CAAC,CAAC;gBAAC,MAAM;YACzG,KAAK,QAAQ,CAAC,QAAQ;gBAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAgB,CAAC,CAAC;gBAAC,MAAM;YAClG,KAAK,QAAQ,CAAC,MAAM;gBAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,IAA4B,EAAE,WAAW,CAAC,CAAC;gBAAC,MAAM;YAChH,KAAK,QAAQ,CAAC,IAAI,CAAC;YACnB,KAAK,QAAQ,CAAC,IAAI;gBAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;gBAAC,MAAM;YACjD;gBACE,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;gBAC9B,MAAM;SACT;IACH,CAAC;IAES,qBAAqB,CAAC,IAAY,EAAE,WAAW,GAAG,EAAE;QAC5D,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,IAAI,GAAG,EAAE;YACP,OAAO,IAAI,CAAC;SACb;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,IAAI;SACpB,CAAC;QACF,aAAa;QACb,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;QACzC,aAAa;QACb,OAAO,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAES,UAAU,CAAC,IAAY,EAAE,WAAW,GAAG,EAAE;QACjD,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAChC,IAAI;gBACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAClC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;aAC1C;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM;aACP;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,uBAAuB,CAAC,IAAc;QAC9C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,MAAM,QAAQ,GAAG,iBAAiB,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,CAAA;QACxB,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,KAAyB,EAAE,GAAW,EAAE,EAAE;YACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAC7B,SAAS,CAAC,IAAI,CAAC,KAAK,QAAQ,GAAG,SAAS,EAAE,CAAC,CAAC;gBAC5C,SAAS,CAAC,IAAI,CAAC,yCAAyC,GAAG,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC,CAAC;gBACxF,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,SAAS,EAAE,CAAC,CAAC;aACxC;iBAAM;gBACL,SAAS,CAAC,IAAI,CAAC,KAAK,QAAQ,GAAG,SAAS,EAAE,CAAC,CAAC;gBAC5C,SAAS,CAAC,IAAI,CAAC,yCAAyC,GAAG,gBAAgB,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;gBACtG,SAAS,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,IAAI,0BAA0B,GAAG,SAAS,GAAG,SAAS,EAAE,CAAC,CAAC;gBACpG,SAAS,CAAC,IAAI,CAAC,mBAAmB,SAAS,EAAE,CAAC,CAAC;aAChD;QACH,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,IAAI,CAAC,KAAK,QAAQ,KAAK,SAAS,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,GAAG,EAAE;YACP,OAAO,IAAI,CAAC;SACb;QACD,MAAM,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACzC,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAES,iBAAiB,CAAC,IAA0B,EAAE,WAAoB;QAC1E,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,OAAO,QAAQ,WAAW,YAAY,GAAG,EAAE,CAAC;SAC7C;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAES,cAAc,CAAC,IAA0B,EAAE,WAAoB;QACvE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YAC5B,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,WAAW,EAAE;YAC1C,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SAClD;QAED,IAAI;YACF,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9C,OAAO,IAAI,KAAK,GAAG,CAAC;SACrB;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAES,YAAY;QACpB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,KAAK,GAAG,OAAuB,CAAC;QACtC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;YAClD,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAC9B,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,KAAK,GAAI,KAAK,CAAC,IAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,IAAI,KAAK,GAAG,CAAC;IACtB,CAAC;IAES,aAAa;QACrB,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;YAClC,IAAI,GAAG,UAAU,CAAC;SACnB;aAAM,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;YAC3C,IAAI,GAAG,YAAY,CAAC;SACrB;QACD,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,IAAI;YACV,OAAO;SACR,CAAC;QACF,IAAI;YACF,aAAa;YACb,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAEjC,aAAa;YACb,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,aAAwB,CAAC,CAAC;SACpE;QAAC,OAAO,CAAC,EAAE;YACV,MAAM;SACP;IACH,CAAC;IAED;;;OAGG;IACO,gBAAgB;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC;IACtC,CAAC;IAEkB,MAAM;QACvB,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAClE,IAAI,IAAI,KAAK,QAAQ,CAAC,GAAG,EAAE;YACzB,OAAO,IAAI,CAAA,2CAA2C,CAAC;SACxD;QACD,IAAI,IAAI,KAAK,QAAQ,CAAC,UAAU,EAAE;YAChC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAChC;QACD,IAAI,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE;YAC5B,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAA;SAC/B;QACD,IAAI,IAAI,KAAK,QAAQ,CAAC,QAAQ,EAAE;YAC9B,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAA;SACjC;QACD,IAAI,IAAI,KAAK,QAAQ,CAAC,WAAW,EAAE;YACjC,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAA;SACpC;QACD,IAAI,IAAI,KAAK,QAAQ,CAAC,GAAG,EAAE;YACzB,OAAO,IAAI,CAAC,aAAa,EAAE,CAAA;SAC5B;QACD,IAAI,IAAI,KAAK,QAAQ,CAAC,UAAU,EAAE;YAChC,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC;SACpC;QACD,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE;YACpD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAY,CAAC,CAAA;SACzC;QACD,kCAAkC;QAClC,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAA4B,CAAC,CAAC;IAC7D,CAAC;IAES,gBAAgB;QACxB,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAA;kGACmF,OAAO;KACpG,CAAC;IACJ,CAAC;IAES,cAAc,CAAC,IAAU;QACjC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACnC,IAAI,YAAY,IAAI,GAAG,EAAE;YACvB,OAAO,IAAI,CAAA;4CAC2B,YAAY;OACjD,CAAC;SACH;QACD,OAAO,IAAI,CAAA;;qBAEM,IAAI,CAAC,IAAI;;KAEzB,CAAC;IACJ,CAAC;IAES,gBAAgB,CAAC,IAA0B;QACnD,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACnC,IAAI,YAAY,IAAI,GAAG,EAAE;YACvB,OAAO,IAAI,CAAA;4CAC2B,YAAY;OACjD,CAAC;SACH;QACD,OAAO,IAAI,CAAA;;uBAEQ,IAAI,CAAC,UAAU;;KAEjC,CAAC;IACJ,CAAC;IAES,aAAa;QACrB,OAAO,IAAI,CAAA;;;;;KAKV,CAAC;IACJ,CAAC;IAES,kBAAkB;QAC1B,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,GAAG,EAAE;YACP,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAChC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,iBAAiB,CAAC;QACpC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;SAClD;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,OAAO;aACR;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/H,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAE,IAAI,CAAC,UAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAA;;QAEP,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;;KAE7B,CAAC;IACJ,CAAC;IAES,qBAAqB;QAC7B,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;SAC3C;QACD,OAAO,IAAI,CAAA;;sCAEuB,YAAY,oBAAoB,IAAI,CAAC,gBAAgB;WAChF,CAAC;IACV,CAAC;IAES,gBAAgB;QACxB,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;SAC3C;QACD,OAAO,IAAI,CAAA;;0CAE2B,YAAY;WAC3C,CAAC;IACV,CAAC;IAES,YAAY,CAAC,KAAK,GAAG,mBAAmB;QAChD,OAAO,IAAI,CAAA,sBAAsB,KAAK,MAAM,CAAC;IAC/C,CAAC;IAES,WAAW,CAAC,OAAe;QACnC,OAAO,IAAI,CAAA,oBAAoB,OAAO,MAAM,CAAC;IAC/C,CAAC;IAES,oBAAoB;QAC5B,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,GAAG,EAAE;YACP,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAChC;QACD,IAAI,MAAuB,CAAC;QAC5B,IAAI;YACF,MAAM,GAAG,IAAI,eAAe,CAAC,UAAoB,CAAC,CAAC;SACpD;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,IAAI,CAAC,WAAW,CAAC,mCAAmC,CAAC,CAAC;SAC9D;QACD,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA;;2BAEI,IAAI,0BAA0B,KAAK;;OAEvD,CAAC,CAAC;SACJ;QACD,OAAO,IAAI,CAAA;;;;;;;;;;UAUL,OAAO;;;KAGZ,CAAC;IACJ,CAAC;CACF;AAxca;IAAX,QAAQ,EAAE;wCAAoD;AAMpB;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4CAAsB;AAMnC;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oCAAa;AAEhC;IAAR,KAAK,EAAE;2CAA4C;AAE3C;IAAR,KAAK,EAAE;yCAA6C;AAE5C;IAAR,KAAK,EAAE;yCAAgD;AAK/C;IAAR,KAAK,EAAE;6CAAiC","sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable class-methods-use-this */\nimport { LitElement, html, TemplateResult, PropertyValues } from 'lit';\nimport { DeserializedPayload, Payload, PayloadSerializer, ISafePayload } from \"@api-client/core/build/browser.js\";\nimport { property, state } from \"lit/decorators.js\";\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport { PrismHighlighter } from '../highlight/PrismHighlighter.js';\nimport { getLanguage } from '../highlight/PrismAutoDetect.js';\nimport 'prismjs/prism.js';\nimport 'prismjs/components/prism-json.js';\nimport 'prismjs/components/prism-javascript.js';\nimport 'prismjs/components/prism-markdown.js';\nimport 'prismjs/components/prism-markup.js';\nimport 'prismjs/components/prism-yaml.js';\nimport 'prismjs/components/prism-xml-doc.js';\nimport 'prismjs/components/prism-http.js';\nimport 'prismjs/plugins/line-numbers/prism-line-numbers.min.js';\nimport { ensureBodyString, imageBody, isBinaryBody, isPdfBody, isTextBody } from '../../lib/http/Payload.js';\n\nenum BodyType {\n // null, undefined, empty\n nil,\n // a string value\n String,\n Blob,\n File,\n // Multipart FormData object\n FormData,\n // Buffer, ArrayBuffer, UInt8Array, generally binary.\n Buffer,\n}\n\nenum ViewType {\n Parsed,\n ImageSvg,\n ImageBinary,\n ImageError,\n Pdf,\n Binary,\n // application/x-www-form-urlencoded\n UrlEncoded,\n}\n\n/**\n * Renders the view of the payload message.\n */\nexport default class LogBody extends LitElement {\n /**\n * The payload to render. When the payload requires de-serialization it will be performed. \n */\n @property() payload: DeserializedPayload | Payload | undefined;\n\n /**\n * The content type of the payload.\n * @attribute\n */\n @property({ type: String, reflect: true }) contentType?: string;\n\n /**\n * When set it does not apply formatting for the code. However, it keeps the highlighting.\n * @attribute\n */\n @property({ type: Boolean }) raw = false;\n\n @state() protected renderBody?: DeserializedPayload;\n\n @state() protected bodyType: BodyType = BodyType.nil;\n\n @state() protected viewType: ViewType = ViewType.Parsed;\n\n /**\n * The tokens rendered in the view.\n */\n @state() protected renderTokens?: string;\n\n override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('payload') || cp.has('contentType')) {\n this.prepareContent();\n }\n }\n\n override updated(cp: PropertyValues): void {\n super.updated(cp);\n if (cp.has('bodyType') || cp.has('viewType')) {\n this.prismComplete();\n }\n }\n\n /**\n * When processing a payload from the request editor then the value can be any of the `DeserializedPayload` types.\n * However, when processing a response that came from the `CoreEngine` it is always a Buffer / ArrayBuffer \n * and the contents is determined by the content type.\n */\n protected async prepareContent(): Promise<void> {\n const { contentType = '', payload } = this;\n this.renderBody = undefined;\n this.renderTokens = undefined;\n this.viewType = ViewType.Parsed;\n this.bodyType = BodyType.nil;\n\n if (!payload) {\n this.bodyType = BodyType.nil;\n return;\n }\n const body = await this.deserialize(payload);\n if (body === undefined || body === null || !body) {\n this.bodyType = BodyType.nil;\n return;\n }\n\n const typedSerialized = payload as ISafePayload;\n\n if (contentType) {\n const image = imageBody(contentType);\n if (isTextBody(contentType)) {\n this.renderBody = ensureBodyString(body);\n if (image === 'svg') {\n this.viewType = ViewType.ImageSvg;\n }\n } else if (image === 'binary') {\n this.viewType = ViewType.ImageBinary;\n this.renderBody = body;\n } else if (isPdfBody(contentType)) {\n this.viewType = ViewType.Pdf;\n this.renderBody = body;\n } else if (isBinaryBody(contentType)) {\n this.viewType = ViewType.Binary;\n this.renderBody = body;\n } else if (body instanceof FormData) {\n this.viewType = ViewType.Parsed;\n this.renderBody = body;\n } else if (typedSerialized.type === 'file' || typedSerialized.type === 'blob') {\n this.viewType = ViewType.Binary;\n this.renderBody = body;\n } else if (contentType.includes('application/x-www-form-urlencoded')) {\n this.viewType = ViewType.UrlEncoded;\n this.renderBody = body;\n } else {\n this.viewType = ViewType.Parsed;\n this.renderBody = ensureBodyString(body);\n }\n } else {\n this.renderBody = body;\n this.viewType = ViewType.Parsed;\n }\n this.bodyType = this.typeFromType(this.renderBody);\n this.tokenize();\n }\n\n protected typeFromType(type: unknown): BodyType {\n if (type === undefined || type === null || !type) {\n return BodyType.nil;\n } \n if (typeof type === 'string') {\n return BodyType.String;\n } \n if (type instanceof File) {\n return BodyType.File;\n }\n if (type instanceof Blob) {\n return BodyType.Blob;\n }\n if(type instanceof FormData) {\n return BodyType.FormData;\n }\n return BodyType.Buffer;\n }\n\n protected async deserialize(value: Payload | DeserializedPayload): Promise<DeserializedPayload> {\n if (value === undefined || value === null) {\n // both values should be stored correctly\n return undefined;\n }\n if (typeof value === 'string') {\n return value;\n }\n if ((value as ISafePayload).data) {\n return PayloadSerializer.deserialize(value as ISafePayload);\n }\n return value as DeserializedPayload;\n }\n\n /**\n * Depending on the body type and the contentType, it prepares the tokens to be rendered in the view.\n */\n protected tokenize(): void {\n const { contentType, bodyType: type, renderBody: body } = this;\n // if (raw && type !== BodyType.FormData) {\n // this._tokens = body as string;\n // return;\n // }\n switch (type) {\n case BodyType.String: this.renderTokens = this.tokenizeStringContent(body as string, contentType); break;\n case BodyType.FormData: this.renderTokens = this.tokenizeFormDataContent(body as FormData); break;\n case BodyType.Buffer: this.renderTokens = this.tokenizeBuffer(body as ArrayBuffer | Buffer, contentType); break;\n case BodyType.File: \n case BodyType.Blob: \n this.renderTokens = this.tokenizeFile(); break;\n default:\n this.renderTokens = undefined; \n break;\n }\n }\n\n protected tokenizeStringContent(body: string, contentType = ''): string {\n const { raw } = this;\n if (raw) {\n return body;\n }\n const finalBody = this.formatBody(body, contentType);\n const info = getLanguage(contentType);\n const env = {\n code: finalBody,\n grammar: info.grammar,\n language: info.lang,\n };\n // @ts-ignore\n Prism.hooks.run('before-highlight', env);\n // @ts-ignore\n return Prism.highlight(finalBody, info.grammar, info.lang);\n }\n\n protected formatBody(body: string, contentType = ''): string {\n let result = body;\n if (contentType.includes('json')) {\n try {\n const parsed = JSON.parse(result);\n result = JSON.stringify(parsed, null, 2);\n } catch (e) {\n // ...\n }\n }\n return result;\n }\n\n protected tokenizeFormDataContent(body: FormData): string {\n const { raw } = this;\n const boundary = '7MA4YWxkTrZu0gW';\n const lineBreak = \"\\r\\n\"\n const templates: string[] = [];\n body.forEach((value: FormDataEntryValue, key: string) => {\n if (typeof value === 'string') {\n templates.push(`--${boundary}${lineBreak}`);\n templates.push(`Content-Disposition: form-data; name=\"${key}\"${lineBreak}${lineBreak}`);\n templates.push(`${value}${lineBreak}`);\n } else {\n templates.push(`--${boundary}${lineBreak}`);\n templates.push(`Content-Disposition: form-data; name=\"${key}\"; filename=\"${value.name}\"${lineBreak}`);\n templates.push(`Content-Type: ${value.type || 'application/octet-stream'}${lineBreak}${lineBreak}`);\n templates.push(`{…file content…}${lineBreak}`);\n }\n });\n templates.push(`--${boundary}--${lineBreak}`);\n const code = templates.join('');\n if (raw) {\n return code;\n }\n const highlight = new PrismHighlighter();\n return highlight.tokenize(code, 'http');\n }\n\n protected tokenizeImageData(body: ArrayBuffer | Buffer, contentType?: string): string | undefined {\n try {\n const arr = new Uint8Array(body);\n const str = arr.reduce((data, byte) => data + String.fromCharCode(byte), '');\n const enc = btoa(str);\n return `data:${contentType};base64, ${enc}`;\n } catch (_) {\n return undefined;\n }\n }\n\n protected tokenizeBuffer(body: ArrayBuffer | Buffer, contentType?: string): string | undefined {\n if (typeof body === 'string') {\n return undefined;\n }\n if (this.viewType === ViewType.ImageBinary) {\n return this.tokenizeImageData(body, contentType);\n }\n\n try {\n const array = new Uint8Array(body).join(', ');\n return `[${array}]`;\n } catch (_) {\n return undefined;\n }\n }\n\n protected tokenizeFile(): string | undefined {\n const { payload } = this;\n if (!payload) {\n return undefined;\n }\n const typed = payload as ISafePayload;\n if (typed.type !== 'file' && typed.type !== 'blob') {\n return undefined;\n }\n if (!Array.isArray(typed.data)) {\n return undefined;\n }\n const array = (typed.data as number[]).join(', ');\n return `[${array}]`;\n }\n\n protected prismComplete(): void {\n const { renderBody, renderTokens } = this;\n const element = this.shadowRoot?.querySelector('#rawCode');\n if (!element) {\n return;\n }\n let body = '';\n if (typeof renderBody === 'string') {\n body = renderBody;\n } else if (typeof renderTokens === 'string') {\n body = renderTokens;\n }\n const env = {\n code: body,\n element,\n };\n try {\n // @ts-ignore\n Prism.hooks.run('complete', env);\n \n // @ts-ignore\n Prism.plugins.lineNumbers.resize(element.parentElement as Element);\n } catch (e) {\n // ...\n }\n }\n\n /**\n * A handler for the image error event.\n * This occurs when rendering an image via the img tag but the image URL is invalid.\n */\n protected handleImageError(): void {\n this.viewType = ViewType.ImageError;\n }\n\n protected override render(): TemplateResult {\n const { renderBody: body, bodyType: type, viewType: view } = this;\n if (type === BodyType.nil) {\n return html`<p class=\"no-info\">No data available.</p>`;\n }\n if (view === ViewType.ImageError) {\n return this.renderImageError();\n }\n if (view === ViewType.Parsed) {\n return this.renderStringBody()\n }\n if (view === ViewType.ImageSvg) {\n return this.renderImageSvgBody()\n }\n if (view === ViewType.ImageBinary) {\n return this.renderImageBinaryBody()\n }\n if (view === ViewType.Pdf) {\n return this.renderPdfBody()\n }\n if (view === ViewType.UrlEncoded) {\n return this.renderUrlEncodedBody();\n }\n if (type === BodyType.Blob || type === BodyType.File) {\n return this.renderBlobBody(body as Blob)\n }\n // only buffers left at this point\n return this.renderBufferBody(body as ArrayBuffer | Buffer);\n }\n\n protected renderStringBody(): TemplateResult {\n const { raw, renderTokens } = this;\n const content = raw ? renderTokens : unsafeHTML(renderTokens);\n return html`\n <pre class=\"raw-panel string language-snippet line-numbers\"><code id=\"rawCode\" class=\"code\">${content}</code></pre>\n `;\n }\n\n protected renderBlobBody(body: Blob): TemplateResult {\n const { renderTokens, raw } = this;\n if (renderTokens && raw) {\n return html`\n <div class=\"raw-panel padded-panel\">${renderTokens}</div>\n `;\n }\n return html`\n <div class=\"raw-panel padded-panel\">\n File data of ${body.size} bytes.\n </div>\n `;\n }\n\n protected renderBufferBody(body: ArrayBuffer | Buffer): TemplateResult {\n const { renderTokens, raw } = this;\n if (renderTokens && raw) {\n return html`\n <div class=\"raw-panel padded-panel\">${renderTokens}</div>\n `;\n }\n return html`\n <div class=\"raw-panel padded-panel\">\n Binary data of ${body.byteLength} bytes.\n </div>\n `;\n }\n\n protected renderPdfBody(): TemplateResult {\n return html`\n <div class=\"content-info pdf padded-panel\">\n <p>The response is a <b>PDF</b> data.</p>\n <p>Save the file to preview its contents.</p>\n </div>\n `;\n }\n\n protected renderImageSvgBody(): TemplateResult {\n const { renderBody, raw } = this;\n if (raw) {\n return this.renderStringBody();\n }\n const div = window.document.createElement('div');\n div.innerHTML = String(renderBody);\n const svgEl = div.firstElementChild;\n if (!svgEl) {\n return this.renderError('Invalid SVG response.');\n }\n const all = Array.from(svgEl.querySelectorAll('*'));\n all.forEach((node) => {\n if (!node.attributes) {\n return;\n }\n const remove = Array.from(node.attributes).filter((attr) => attr.name.startsWith('on') || ['xlink:href'].includes(attr.name));\n remove.forEach(({ name }) => node.removeAttribute(name));\n });\n const scripts = Array.from(svgEl.getElementsByTagName('script'));\n scripts.forEach((node) => (node.parentNode as Element).removeChild(node));\n return html`\n <div class=\"image-container\">\n ${unsafeSVG(svgEl.outerHTML)}\n </div>\n `;\n }\n\n protected renderImageBinaryBody(): TemplateResult {\n const { renderTokens } = this;\n if (!renderTokens) {\n return this.renderNoData('No image data');\n }\n return html`\n <div class=\"image-container\">\n <img class=\"img-preview\" src=\"${renderTokens}\" alt=\"\" @error=\"${this.handleImageError}\">\n </div>`;\n }\n\n protected renderImageError(): TemplateResult {\n const { renderTokens } = this;\n if (!renderTokens) {\n return this.renderNoData('No image data');\n }\n return html`\n <div class=\"error-container padded-panel\">\n <b>The image URL is invalid</b>: \"${renderTokens}\"\n </div>`;\n }\n\n protected renderNoData(label = 'Unsupported view.'): TemplateResult {\n return html`<p class=\"no-info\">${label}</p>`;\n }\n\n protected renderError(message: string): TemplateResult {\n return html`<p class=\"error\">${message}</p>`;\n }\n\n protected renderUrlEncodedBody(): TemplateResult {\n const { renderBody, raw } = this;\n if (raw) {\n return this.renderStringBody();\n }\n let params: URLSearchParams;\n try {\n params = new URLSearchParams(renderBody as string);\n } catch (e) {\n return this.renderError(`Unable to parse URL encoded data.`);\n }\n const content: TemplateResult[] = [];\n for (const [name, value] of params) {\n content.push(html`\n <tr>\n <td class=\"name\">${name}</td><td class=\"value\">${value}</td>\n </tr>\n `);\n }\n return html`\n <table class=\"url-params\">\n <caption>URL encoded parameters</caption>\n <thead>\n <tr>\n <th scope=\"col\" class=\"name\">Name</th>\n <th scope=\"col\" class=\"value\">Value</th>\n </tr>\n </thead>\n <tbody>\n ${content}\n </tbody>\n </table>\n `;\n }\n}\n"]}
@@ -11,11 +11,6 @@ import '../../define/ui/ui-divider.js';
11
11
  * An element that renders summary headers view for an HTTP response.
12
12
  */
13
13
  export default class LogHeaders extends LitElement {
14
- httpLogInternal;
15
- /**
16
- * This property is set when the `httpLog` is set. It always represent an instance of the `RequestLog` (or undefined) regardless of the input format.
17
- */
18
- effectiveLog;
19
14
  /**
20
15
  * The request log to render. When not set it renders nothing.
21
16
  */
@@ -41,26 +36,12 @@ export default class LogHeaders extends LitElement {
41
36
  }
42
37
  this.parseHeaders();
43
38
  }
44
- activeItem;
45
- focusedItem;
46
- /**
47
- * The currently focused node.
48
- */
49
- focusedElement;
50
- /**
51
- * Parsed request headers, when the request is set.
52
- */
53
- requestHeaders;
54
- /**
55
- * Parsed response headers, when the response is set.
56
- */
57
- responseHeaders;
58
- /**
59
- * The list of ids of tree parents that are opened.
60
- */
61
- openedParents = ['general', 'response-headers', 'request-headers'];
62
39
  constructor() {
63
40
  super();
41
+ /**
42
+ * The list of ids of tree parents that are opened.
43
+ */
44
+ this.openedParents = ['general', 'response-headers', 'request-headers'];
64
45
  this.addEventListener('keydown', this.handleKeydown.bind(this));
65
46
  this.addEventListener('click', this.handleClick.bind(this));
66
47
  this.addEventListener('dblclick', this.handleDblclick.bind(this));