@api-client/ui 0.2.12 → 0.3.0

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 (317) hide show
  1. package/.vscode/settings.json +1 -0
  2. package/build/src/core/ModalActivity.d.ts +1 -1
  3. package/build/src/core/ModalActivity.d.ts.map +1 -1
  4. package/build/src/core/ModalActivity.js +6 -5
  5. package/build/src/core/ModalActivity.js.map +1 -1
  6. package/build/src/core/ThemeManager.d.ts +4 -2
  7. package/build/src/core/ThemeManager.d.ts.map +1 -1
  8. package/build/src/core/ThemeManager.js.map +1 -1
  9. package/build/src/demo/DemoPage.d.ts +1 -4
  10. package/build/src/demo/DemoPage.d.ts.map +1 -1
  11. package/build/src/demo/DemoPage.js +2 -5
  12. package/build/src/demo/DemoPage.js.map +1 -1
  13. package/build/src/elements/authorization/ui/CcAuthorization.d.ts +1 -1
  14. package/build/src/elements/authorization/ui/CcAuthorization.d.ts.map +1 -1
  15. package/build/src/elements/authorization/ui/CcAuthorization.js +2 -2
  16. package/build/src/elements/authorization/ui/CcAuthorization.js.map +1 -1
  17. package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts +1 -1
  18. package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts.map +1 -1
  19. package/build/src/elements/authorization/ui/OAuth2Authorization.js +11 -5
  20. package/build/src/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
  21. package/build/src/elements/authorization/ui/OidcAuthorization.d.ts +1 -2
  22. package/build/src/elements/authorization/ui/OidcAuthorization.d.ts.map +1 -1
  23. package/build/src/elements/authorization/ui/OidcAuthorization.js +10 -8
  24. package/build/src/elements/authorization/ui/OidcAuthorization.js.map +1 -1
  25. package/build/src/elements/code/HttpSnippets.d.ts +1 -1
  26. package/build/src/elements/code/HttpSnippets.d.ts.map +1 -1
  27. package/build/src/elements/code/HttpSnippets.js +5 -5
  28. package/build/src/elements/code/HttpSnippets.js.map +1 -1
  29. package/build/src/elements/dialog/internals/ConfirmDelete.d.ts +1 -1
  30. package/build/src/elements/dialog/internals/ConfirmDelete.d.ts.map +1 -1
  31. package/build/src/elements/dialog/internals/ConfirmDelete.js +5 -5
  32. package/build/src/elements/dialog/internals/ConfirmDelete.js.map +1 -1
  33. package/build/src/elements/dialog/internals/Rename.d.ts +1 -1
  34. package/build/src/elements/dialog/internals/Rename.d.ts.map +1 -1
  35. package/build/src/elements/dialog/internals/Rename.js +6 -5
  36. package/build/src/elements/dialog/internals/Rename.js.map +1 -1
  37. package/build/src/elements/environment/EnvironmentEditor.d.ts +1 -1
  38. package/build/src/elements/environment/EnvironmentEditor.d.ts.map +1 -1
  39. package/build/src/elements/environment/EnvironmentEditor.js +5 -4
  40. package/build/src/elements/environment/EnvironmentEditor.js.map +1 -1
  41. package/build/src/elements/file-system/internals/Breadcrumbs.d.ts +2 -1
  42. package/build/src/elements/file-system/internals/Breadcrumbs.d.ts.map +1 -1
  43. package/build/src/elements/file-system/internals/Breadcrumbs.js +3 -4
  44. package/build/src/elements/file-system/internals/Breadcrumbs.js.map +1 -1
  45. package/build/src/elements/http/BodyEditor.d.ts +1 -3
  46. package/build/src/elements/http/BodyEditor.d.ts.map +1 -1
  47. package/build/src/elements/http/BodyEditor.js +25 -20
  48. package/build/src/elements/http/BodyEditor.js.map +1 -1
  49. package/build/src/elements/http/BodyMultipartEditor.d.ts +1 -1
  50. package/build/src/elements/http/BodyMultipartEditor.d.ts.map +1 -1
  51. package/build/src/elements/http/BodyMultipartEditor.js +3 -3
  52. package/build/src/elements/http/BodyMultipartEditor.js.map +1 -1
  53. package/build/src/elements/http/CertificateAdd.element.d.ts +1 -3
  54. package/build/src/elements/http/CertificateAdd.element.d.ts.map +1 -1
  55. package/build/src/elements/http/CertificateAdd.element.js +6 -10
  56. package/build/src/elements/http/CertificateAdd.element.js.map +1 -1
  57. package/build/src/elements/http/HeadersForm.d.ts +1 -1
  58. package/build/src/elements/http/HeadersForm.d.ts.map +1 -1
  59. package/build/src/elements/http/HeadersForm.js +3 -3
  60. package/build/src/elements/http/HeadersForm.js.map +1 -1
  61. package/build/src/elements/http/HttpAssertions.element.d.ts +1 -1
  62. package/build/src/elements/http/HttpAssertions.element.d.ts.map +1 -1
  63. package/build/src/elements/http/HttpAssertions.element.js +2 -2
  64. package/build/src/elements/http/HttpAssertions.element.js.map +1 -1
  65. package/build/src/elements/http/HttpFlows.element.d.ts +1 -1
  66. package/build/src/elements/http/HttpFlows.element.d.ts.map +1 -1
  67. package/build/src/elements/http/HttpFlows.element.js +6 -6
  68. package/build/src/elements/http/HttpFlows.element.js.map +1 -1
  69. package/build/src/elements/http/RequestEditor.d.ts +1 -3
  70. package/build/src/elements/http/RequestEditor.d.ts.map +1 -1
  71. package/build/src/elements/http/RequestEditor.js +10 -11
  72. package/build/src/elements/http/RequestEditor.js.map +1 -1
  73. package/build/src/elements/http/UrlParamsForm.d.ts +1 -1
  74. package/build/src/elements/http/UrlParamsForm.d.ts.map +1 -1
  75. package/build/src/elements/http/UrlParamsForm.js +4 -4
  76. package/build/src/elements/http/UrlParamsForm.js.map +1 -1
  77. package/build/src/elements/project/HttpProjectRequest.d.ts +1 -1
  78. package/build/src/elements/project/HttpProjectRequest.d.ts.map +1 -1
  79. package/build/src/elements/project/HttpProjectRequest.js +3 -3
  80. package/build/src/elements/project/HttpProjectRequest.js.map +1 -1
  81. package/build/src/elements/project/HttpProjectRequestHistory.d.ts +1 -2
  82. package/build/src/elements/project/HttpProjectRequestHistory.d.ts.map +1 -1
  83. package/build/src/elements/project/HttpProjectRequestHistory.js +5 -6
  84. package/build/src/elements/project/HttpProjectRequestHistory.js.map +1 -1
  85. package/build/src/elements/project/ProjectRunReport.d.ts +1 -1
  86. package/build/src/elements/project/ProjectRunReport.d.ts.map +1 -1
  87. package/build/src/elements/project/ProjectRunReport.js +7 -7
  88. package/build/src/elements/project/ProjectRunReport.js.map +1 -1
  89. package/build/src/elements/project/ProjectRunner.d.ts +1 -2
  90. package/build/src/elements/project/ProjectRunner.d.ts.map +1 -1
  91. package/build/src/elements/project/ProjectRunner.js +4 -5
  92. package/build/src/elements/project/ProjectRunner.js.map +1 -1
  93. package/build/src/md/button/internals/base.d.ts +98 -0
  94. package/build/src/md/button/internals/base.d.ts.map +1 -0
  95. package/build/src/md/button/internals/base.js +353 -0
  96. package/build/src/md/button/internals/base.js.map +1 -0
  97. package/build/src/md/button/internals/button.d.ts +7 -75
  98. package/build/src/md/button/internals/button.d.ts.map +1 -1
  99. package/build/src/md/button/internals/button.js +18 -247
  100. package/build/src/md/button/internals/button.js.map +1 -1
  101. package/build/src/md/button/internals/{button-styles.d.ts → button.styles.d.ts} +1 -1
  102. package/build/src/md/button/internals/button.styles.d.ts.map +1 -0
  103. package/build/src/md/button/internals/button.styles.js +319 -0
  104. package/build/src/md/button/internals/button.styles.js.map +1 -0
  105. package/build/src/md/button/internals/group.d.ts +54 -0
  106. package/build/src/md/button/internals/group.d.ts.map +1 -0
  107. package/build/src/md/button/internals/group.js +157 -0
  108. package/build/src/md/button/internals/group.js.map +1 -0
  109. package/build/src/md/button/internals/{text-button.styles.d.ts → group.styles.d.ts} +1 -1
  110. package/build/src/md/button/internals/group.styles.d.ts.map +1 -0
  111. package/build/src/md/button/internals/group.styles.js +102 -0
  112. package/build/src/md/button/internals/group.styles.js.map +1 -0
  113. package/build/src/md/button/ui-button-group.d.ts +11 -0
  114. package/build/src/md/button/ui-button-group.d.ts.map +1 -0
  115. package/build/src/md/{icon-button/ui-filled-icon-button.js → button/ui-button-group.js} +10 -11
  116. package/build/src/md/button/ui-button-group.js.map +1 -0
  117. package/build/src/md/button/ui-button.d.ts +14 -0
  118. package/build/src/md/button/ui-button.d.ts.map +1 -0
  119. package/build/src/md/button/{ui-text-button.js → ui-button.js} +10 -11
  120. package/build/src/md/button/ui-button.js.map +1 -0
  121. package/build/src/md/dialog/internals/Dialog.d.ts +5 -5
  122. package/build/src/md/dialog/internals/Dialog.d.ts.map +1 -1
  123. package/build/src/md/dialog/internals/Dialog.js +14 -9
  124. package/build/src/md/dialog/internals/Dialog.js.map +1 -1
  125. package/build/src/md/dropdown-list/internals/UiDropdownList.d.ts +1 -1
  126. package/build/src/md/dropdown-list/internals/UiDropdownList.js +1 -1
  127. package/build/src/md/dropdown-list/internals/UiDropdownList.js.map +1 -1
  128. package/build/src/md/icon-button/internals/IconButton.d.ts +12 -36
  129. package/build/src/md/icon-button/internals/IconButton.d.ts.map +1 -1
  130. package/build/src/md/icon-button/internals/IconButton.js +32 -144
  131. package/build/src/md/icon-button/internals/IconButton.js.map +1 -1
  132. package/build/src/md/{button/internals/filled-button.styles.d.ts → icon-button/internals/IconButton.styles.d.ts} +1 -1
  133. package/build/src/md/icon-button/internals/IconButton.styles.d.ts.map +1 -0
  134. package/build/src/md/icon-button/internals/IconButton.styles.js +286 -0
  135. package/build/src/md/icon-button/internals/IconButton.styles.js.map +1 -0
  136. package/build/src/md/icon-button/ui-icon-button.d.ts.map +1 -1
  137. package/build/src/md/icon-button/ui-icon-button.js +2 -3
  138. package/build/src/md/icon-button/ui-icon-button.js.map +1 -1
  139. package/build/src/md/ripple/internals/ripple.d.ts +2 -0
  140. package/build/src/md/ripple/internals/ripple.d.ts.map +1 -1
  141. package/build/src/md/ripple/internals/ripple.js +20 -10
  142. package/build/src/md/ripple/internals/ripple.js.map +1 -1
  143. package/build/src/md/ripple/internals/ripple.styles.d.ts.map +1 -1
  144. package/build/src/md/ripple/internals/ripple.styles.js +8 -20
  145. package/build/src/md/ripple/internals/ripple.styles.js.map +1 -1
  146. package/build/src/md/snackbar/internals/Snackbar.d.ts +1 -1
  147. package/build/src/md/snackbar/internals/Snackbar.d.ts.map +1 -1
  148. package/build/src/md/snackbar/internals/Snackbar.js +4 -2
  149. package/build/src/md/snackbar/internals/Snackbar.js.map +1 -1
  150. package/build/src/md/text-field/internals/filled.styles.d.ts.map +1 -1
  151. package/build/src/md/text-field/internals/filled.styles.js +3 -0
  152. package/build/src/md/text-field/internals/filled.styles.js.map +1 -1
  153. package/build/src/styles/m3/dialog.module.d.ts +2 -2
  154. package/build/src/styles/m3/dialog.module.js +2 -2
  155. package/build/src/styles/m3/dialog.module.js.map +1 -1
  156. package/build/src/styles/m3/tokens.d.ts.map +1 -1
  157. package/build/src/styles/m3/tokens.js +208 -182
  158. package/build/src/styles/m3/tokens.js.map +1 -1
  159. package/demo/elements/authorization/oauth-authorize.html +1 -1
  160. package/demo/elements/authorization/oauth-authorize.ts +1 -1
  161. package/demo/elements/environment/variables-editor.ts +2 -2
  162. package/demo/elements/http/url-editing.ts +3 -3
  163. package/demo/elements/project/request-editor.ts +4 -4
  164. package/demo/layout/index.ts +5 -5
  165. package/demo/md/buttons/button.html +121 -0
  166. package/demo/md/buttons/button.ts +246 -0
  167. package/demo/md/buttons/{index.html → group.html} +15 -2
  168. package/demo/md/buttons/group.ts +171 -0
  169. package/demo/md/checkbox/index.ts +1 -1
  170. package/demo/md/dialog/dialog.ts +8 -9
  171. package/demo/md/dropdown-list/index.ts +68 -71
  172. package/demo/md/icon-button/index.html +97 -7
  173. package/demo/md/icon-button/index.ts +97 -201
  174. package/demo/md/index.html +3 -1
  175. package/demo/md/inputs/input.ts +1 -1
  176. package/demo/md/inputs/radio.ts +1 -1
  177. package/demo/md/inputs/switch.ts +1 -1
  178. package/demo/md/notification/snack.ts +5 -5
  179. package/demo/md/progress/progress.ts +4 -3
  180. package/package.json +2 -2
  181. package/src/core/ModalActivity.ts +6 -5
  182. package/src/core/ThemeManager.ts +5 -4
  183. package/src/demo/DemoPage.ts +2 -5
  184. package/src/elements/authorization/ui/CcAuthorization.ts +2 -2
  185. package/src/elements/authorization/ui/OAuth2Authorization.ts +11 -5
  186. package/src/elements/authorization/ui/OidcAuthorization.ts +10 -8
  187. package/src/elements/code/HttpSnippets.ts +5 -5
  188. package/src/elements/dialog/internals/ConfirmDelete.ts +5 -5
  189. package/src/elements/dialog/internals/Rename.ts +6 -5
  190. package/src/elements/environment/EnvironmentEditor.ts +5 -4
  191. package/src/elements/file-system/internals/Breadcrumbs.ts +3 -4
  192. package/src/elements/http/BodyEditor.ts +25 -20
  193. package/src/elements/http/BodyMultipartEditor.ts +3 -3
  194. package/src/elements/http/CertificateAdd.element.ts +6 -10
  195. package/src/elements/http/HeadersForm.ts +3 -3
  196. package/src/elements/http/HttpAssertions.element.ts +2 -2
  197. package/src/elements/http/HttpFlows.element.ts +6 -6
  198. package/src/elements/http/RequestEditor.ts +10 -11
  199. package/src/elements/http/UrlParamsForm.ts +4 -4
  200. package/src/elements/project/HttpProjectRequest.ts +3 -3
  201. package/src/elements/project/HttpProjectRequestHistory.ts +5 -6
  202. package/src/elements/project/ProjectRunReport.ts +7 -7
  203. package/src/elements/project/ProjectRunner.ts +4 -5
  204. package/src/md/button/internals/base.ts +299 -0
  205. package/src/md/button/internals/button.styles.ts +319 -0
  206. package/src/md/button/internals/button.ts +8 -234
  207. package/src/md/button/internals/group.styles.ts +102 -0
  208. package/src/md/button/internals/group.ts +121 -0
  209. package/src/md/button/ui-button-group.ts +15 -0
  210. package/src/md/button/ui-button.ts +18 -0
  211. package/src/md/dialog/internals/Dialog.ts +14 -9
  212. package/src/md/dropdown-list/internals/UiDropdownList.ts +1 -1
  213. package/src/md/icon-button/internals/IconButton.styles.ts +286 -0
  214. package/src/md/icon-button/internals/IconButton.ts +15 -139
  215. package/src/md/icon-button/ui-icon-button.ts +2 -3
  216. package/src/md/ripple/internals/ripple.styles.ts +8 -20
  217. package/src/md/ripple/internals/ripple.ts +21 -13
  218. package/src/md/snackbar/internals/Snackbar.ts +4 -2
  219. package/src/md/text-field/internals/filled.styles.ts +3 -0
  220. package/src/styles/m3/dialog.module.ts +2 -2
  221. package/src/styles/m3/native.css +270 -0
  222. package/src/styles/m3/tokens.css +208 -182
  223. package/src/styles/m3/tokens.ts +208 -182
  224. package/test/ui/button/UiButton.test.ts +51 -29
  225. package/test/ui/button/UiIconButton.test.ts +25 -19
  226. package/test/ui/dialog/UiDialog.test.ts +10 -10
  227. package/build/src/md/button/internals/button-styles.d.ts.map +0 -1
  228. package/build/src/md/button/internals/button-styles.js +0 -143
  229. package/build/src/md/button/internals/button-styles.js.map +0 -1
  230. package/build/src/md/button/internals/elevated-button.d.ts +0 -4
  231. package/build/src/md/button/internals/elevated-button.d.ts.map +0 -1
  232. package/build/src/md/button/internals/elevated-button.js +0 -4
  233. package/build/src/md/button/internals/elevated-button.js.map +0 -1
  234. package/build/src/md/button/internals/elevated-button.styles.d.ts +0 -3
  235. package/build/src/md/button/internals/elevated-button.styles.d.ts.map +0 -1
  236. package/build/src/md/button/internals/elevated-button.styles.js +0 -38
  237. package/build/src/md/button/internals/elevated-button.styles.js.map +0 -1
  238. package/build/src/md/button/internals/filled-button.d.ts +0 -4
  239. package/build/src/md/button/internals/filled-button.d.ts.map +0 -1
  240. package/build/src/md/button/internals/filled-button.js +0 -4
  241. package/build/src/md/button/internals/filled-button.js.map +0 -1
  242. package/build/src/md/button/internals/filled-button.styles.d.ts.map +0 -1
  243. package/build/src/md/button/internals/filled-button.styles.js +0 -30
  244. package/build/src/md/button/internals/filled-button.styles.js.map +0 -1
  245. package/build/src/md/button/internals/filled-tonal-button.d.ts +0 -4
  246. package/build/src/md/button/internals/filled-tonal-button.d.ts.map +0 -1
  247. package/build/src/md/button/internals/filled-tonal-button.js +0 -4
  248. package/build/src/md/button/internals/filled-tonal-button.js.map +0 -1
  249. package/build/src/md/button/internals/filled-tonal-button.styles.d.ts +0 -3
  250. package/build/src/md/button/internals/filled-tonal-button.styles.d.ts.map +0 -1
  251. package/build/src/md/button/internals/filled-tonal-button.styles.js +0 -30
  252. package/build/src/md/button/internals/filled-tonal-button.styles.js.map +0 -1
  253. package/build/src/md/button/internals/outlined-button.d.ts +0 -4
  254. package/build/src/md/button/internals/outlined-button.d.ts.map +0 -1
  255. package/build/src/md/button/internals/outlined-button.js +0 -4
  256. package/build/src/md/button/internals/outlined-button.js.map +0 -1
  257. package/build/src/md/button/internals/outlined-button.styles.d.ts +0 -3
  258. package/build/src/md/button/internals/outlined-button.styles.d.ts.map +0 -1
  259. package/build/src/md/button/internals/outlined-button.styles.js +0 -31
  260. package/build/src/md/button/internals/outlined-button.styles.js.map +0 -1
  261. package/build/src/md/button/internals/text-button.d.ts +0 -4
  262. package/build/src/md/button/internals/text-button.d.ts.map +0 -1
  263. package/build/src/md/button/internals/text-button.js +0 -4
  264. package/build/src/md/button/internals/text-button.js.map +0 -1
  265. package/build/src/md/button/internals/text-button.styles.d.ts.map +0 -1
  266. package/build/src/md/button/internals/text-button.styles.js +0 -30
  267. package/build/src/md/button/internals/text-button.styles.js.map +0 -1
  268. package/build/src/md/button/ui-elevated-button.d.ts +0 -14
  269. package/build/src/md/button/ui-elevated-button.d.ts.map +0 -1
  270. package/build/src/md/button/ui-elevated-button.js +0 -31
  271. package/build/src/md/button/ui-elevated-button.js.map +0 -1
  272. package/build/src/md/button/ui-filled-button.d.ts +0 -14
  273. package/build/src/md/button/ui-filled-button.d.ts.map +0 -1
  274. package/build/src/md/button/ui-filled-button.js +0 -31
  275. package/build/src/md/button/ui-filled-button.js.map +0 -1
  276. package/build/src/md/button/ui-filled-tonal-button.d.ts +0 -14
  277. package/build/src/md/button/ui-filled-tonal-button.d.ts.map +0 -1
  278. package/build/src/md/button/ui-filled-tonal-button.js +0 -31
  279. package/build/src/md/button/ui-filled-tonal-button.js.map +0 -1
  280. package/build/src/md/button/ui-outlined-button.d.ts +0 -14
  281. package/build/src/md/button/ui-outlined-button.d.ts.map +0 -1
  282. package/build/src/md/button/ui-outlined-button.js +0 -31
  283. package/build/src/md/button/ui-outlined-button.js.map +0 -1
  284. package/build/src/md/button/ui-text-button.d.ts +0 -14
  285. package/build/src/md/button/ui-text-button.d.ts.map +0 -1
  286. package/build/src/md/button/ui-text-button.js.map +0 -1
  287. package/build/src/md/icon-button/ui-filled-icon-button.d.ts +0 -11
  288. package/build/src/md/icon-button/ui-filled-icon-button.d.ts.map +0 -1
  289. package/build/src/md/icon-button/ui-filled-icon-button.js.map +0 -1
  290. package/build/src/md/icon-button/ui-filled-tonal-icon-button.d.ts +0 -11
  291. package/build/src/md/icon-button/ui-filled-tonal-icon-button.d.ts.map +0 -1
  292. package/build/src/md/icon-button/ui-filled-tonal-icon-button.js +0 -28
  293. package/build/src/md/icon-button/ui-filled-tonal-icon-button.js.map +0 -1
  294. package/build/src/md/icon-button/ui-outlined-icon-button.d.ts +0 -11
  295. package/build/src/md/icon-button/ui-outlined-icon-button.d.ts.map +0 -1
  296. package/build/src/md/icon-button/ui-outlined-icon-button.js +0 -28
  297. package/build/src/md/icon-button/ui-outlined-icon-button.js.map +0 -1
  298. package/demo/md/buttons/index.ts +0 -279
  299. package/src/md/button/internals/button-styles.ts +0 -143
  300. package/src/md/button/internals/elevated-button.styles.ts +0 -38
  301. package/src/md/button/internals/elevated-button.ts +0 -3
  302. package/src/md/button/internals/filled-button.styles.ts +0 -30
  303. package/src/md/button/internals/filled-button.ts +0 -3
  304. package/src/md/button/internals/filled-tonal-button.styles.ts +0 -30
  305. package/src/md/button/internals/filled-tonal-button.ts +0 -3
  306. package/src/md/button/internals/outlined-button.styles.ts +0 -31
  307. package/src/md/button/internals/outlined-button.ts +0 -3
  308. package/src/md/button/internals/text-button.styles.ts +0 -30
  309. package/src/md/button/internals/text-button.ts +0 -3
  310. package/src/md/button/ui-elevated-button.ts +0 -19
  311. package/src/md/button/ui-filled-button.ts +0 -19
  312. package/src/md/button/ui-filled-tonal-button.ts +0 -19
  313. package/src/md/button/ui-outlined-button.ts +0 -19
  314. package/src/md/button/ui-text-button.ts +0 -19
  315. package/src/md/icon-button/ui-filled-icon-button.ts +0 -16
  316. package/src/md/icon-button/ui-filled-tonal-icon-button.ts +0 -16
  317. package/src/md/icon-button/ui-outlined-icon-button.ts +0 -16
@@ -1 +1 @@
1
- {"version":3,"file":"HttpProjectRequest.js","sourceRoot":"","sources":["../../../../src/elements/project/HttpProjectRequest.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAkC,MAAM,KAAK,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAoB,IAAI,IAAI,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAMlG,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAA;AAGtE,OAAO,EAAuB,aAAa,EAAE,MAAM,0CAA0C,CAAA;AAG7F,OAAO,EAA8B,oBAAoB,EAAE,MAAM,iDAAiD,CAAA;AAMlH,OAAO,EAAqB,IAAI,IAAI,eAAe,EAAE,MAAM,wCAAwC,CAAA;AACnG,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAExE,OAAO,aAAa,MAAM,0BAA0B,CAAA;AACpD,kDAAkD;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAEhE,OAAO,2BAA2B,CAAA;AAClC,OAAO,mCAAmC,CAAA;AAC1C,OAAO,4CAA4C,CAAA;AACnD,OAAO,0BAA0B,CAAA;AACjC,OAAO,+BAA+B,CAAA;AAEtC,SAAS,SAAS,CAAC,CAAQ;IACzB,CAAC,CAAC,eAAe,EAAE,CAAA;AACrB,CAAC;;sBAS+C,aAAa;;;;;;;;;;;;;;;;;;;;;;iBAAxC,kBAAmB,SAAQ,WAAa;;;2CAK1D,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mCAK1B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+BAM1B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;mCAMzC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCAe1B,KAAK,EAAE;4CAMP,KAAK,EAAE;uCAQP,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YA9CA,kMAAS,eAAe,6BAAf,eAAe,yGAAoC;YAK5D,0KAAS,OAAO,6BAAP,OAAO,yFAAyB;YAM1B,8JAAS,GAAG,6BAAH,GAAG,iFAAoB;YAM/C,0KAAS,OAAO,6BAAP,OAAO,yFAA0B;YAe7D,yLAAmB,YAAY,6BAAZ,YAAY,mGAA2B;YAM1D,qMAAmB,gBAAgB,6BAAhB,gBAAgB,2GAAoB;YAQnC,sLAAS,WAAW,6BAAX,WAAW,iGAAqB;;;QA9C1C,mGAA4D;QAJxF;;;WAGG;QACyB,IAAS,eAAe,qDAAoC;QAA5D,IAAS,eAAe,2DAAoC;QAK5D,kJAAyC;QAHrE;;WAEG;QACyB,IAAS,OAAO,6CAAyB;QAAzC,IAAS,OAAO,mDAAyB;QAM1B,kIAAgC;QAJ3E;;;WAGG;QACwC,IAAS,GAAG,yCAAoB;QAAhC,IAAS,GAAG,+CAAoB;QAM/C,sIAA0C;QAJtE;;;WAGG;QACyB,IAAS,OAAO,6CAA0B;QAA1C,IAAS,OAAO,mDAA0B;QAEtE;;WAEG;QACO,OAAO,uDAAc;QAE/B;;WAEG;QACO,cAAc,CAAiB;QAKhC,6FAA0D;QAHnE;;WAEG;QACM,IAAmB,YAAY,kDAA2B;QAA1D,IAAmB,YAAY,wDAA2B;QAM1D,iKAAuD;QAJhE;;;WAGG;QACM,IAAmB,gBAAgB,sDAAoB;QAAvD,IAAmB,gBAAgB,4DAAoB;QAQnC,2JAAyC;QANtE;;;;;WAKG;QAC0B,IAAS,WAAW,iDAAqB;QAAzC,IAAS,WAAW,uDAAqB;QAEtE;YACE,KAAK,EAAE,CAAA;;YACP,gHAAgH;YAChH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;YACxB,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YACzE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;SAClF;QAEkB,UAAU,CAAC,EAAwB;YACpD,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,YAAY,EAAE,CAAA;YACrB,CAAC;YACD,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACtB,CAAC;QAED,UAAU,CAAC,IAAe;YACxB,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;YAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAM;YACR,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE,CAAC;gBACtD,wBAAwB;gBACxB,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAA;gBAC7C,OAAM;YACR,CAAC;YACD,kCAAkC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAA;YACpB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACzC,IAAI,CAAC,YAAY,EAAE,CAAA;YACrB,CAAC;QACH,CAAC;QAES,OAAO;YACf,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;YACxB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;YAC7B,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;QACrB,CAAC;QAES,YAAY;YACpB,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;YAC7B,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,OAAM;YACR,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YACxC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,OAAM;YACR,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAA;YAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAA;YACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;YACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;YAC/B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;YAClE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;YACpC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;YAC1B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;YACvC,CAAC;YAED,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAA;YACtC,IAAI,CAAC,sBAAsB,EAAE,CAAA;YAC7B,IAAI,CAAC,aAAa,EAAE,CAAA;QACtB,CAAC;QAED;;WAEG;QACO,wBAAwB,CAAC,OAAuB;YACxD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAA;YAC9C,IAAI,CAAC,uBAAuB,EAAE,CAAA;YAC9B,IAAI,CAAC,sBAAsB,EAAE,CAAA;QAC/B,CAAC;QAEQ,UAAU,CAAC,IAAY;YAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;YACxB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAM;YACR,CAAC;YACD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAA;YACrB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC;QAEQ,SAAS,CAAC,KAAa;YAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;YACxB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAM;YACR,CAAC;YACD,OAAO,CAAC,GAAG,GAAG,KAAK,CAAA;YACnB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;QAEQ,aAAa,CAAC,KAAkB;YACvC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;YACxB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAM;YACR,CAAC;YACD,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC/C,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC5B,CAAC;QAEQ,gBAAgB,CAAC,UAA6B;YACrD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;YAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAM;YACR,CAAC;YACD,cAAc,CAAC,UAAU,GAAG,UAAU,CAAA;YACtC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;QACpC,CAAC;QAEQ,WAAW,CAAC,KAAmB;YACtC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;YAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAM;YACR,CAAC;YACD,cAAc,CAAC,KAAK,GAAG,KAAK,CAAA;YAC5B,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;QAEQ,mBAAmB,CAAC,MAAsB;YACjD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;YAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAM;YACR,CAAC;YACD,cAAc,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;YACjD,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;QACnC,CAAC;QAEkB,KAAK,CAAC,aAAa,CAAC,KAA0B,EAAE,IAAa;YAC9E,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;YACxB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAM;YACR,CAAC;YACD,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YACjC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACxC,MAAM,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACxC,CAAC;QAEQ,gBAAgB,CAAC,IAAuB;YAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;YAC3C,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;oBACvC,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,EAAE,CAAA;gBACxC,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAC9C,IAAI,CAAC,YAAY,EAAE,CAAA;YACrB,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QAEQ,mBAAmB,CAAC,MAA6B,EAAE,OAAgB;YAC1E,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAC1C,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;YAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAM;YACR,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;gBAClC,oDAAoD;gBACpD,OAAM;YACR,CAAC;YACD,MAAM,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAA;YACnF,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,OAAM;YACR,CAAC;YACD,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAA;YACtE,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC;QAEQ,mBAAmB,CAAC,IAAY;YACvC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;YAC/B,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;YAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,OAAM;YACR,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;gBAClC,OAAM;YACR,CAAC;YACD,MAAM,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;YAC5E,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;gBACjB,OAAM;YACR,CAAC;YACD,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YAC7C,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC;QAEkB,UAAU;YAC3B,IAAI,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC;QAES,gBAAgB,CACxB,OAAoB,EACpB,GAAW,EACX,OAAuB;YAEvB,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAA;YAChC,MAAM,OAAO,GAA0B;gBACrC,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,OAAO,EAAE,CAAC,GAAG,CAAC;gBACd,SAAS,EAAE,IAAI;aAChB,CAAA;YACD,IAAI,eAAe,EAAE,CAAC;gBACpB,OAAO,CAAC,SAAS,GAAG,eAAe,CAAA;YACrC,CAAC;YACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,OAAO;oBACL,IAAI,EAAE,eAAe;oBACrB,GAAG,EAAE,OAAO,CAAC,GAAG;oBAChB,OAAO;iBACsB,CAAA;YACjC,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE;gBACzB,IAAI,EAAE,eAAe;gBACrB,OAAO;aACR,CAAA;QACH,CAAC;QAES,KAAK,CAAC,YAAY,CAC1B,IAAwD;YAExD,IAAI,MAAsD,CAAA;YAC1D,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAClE,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM;YACR,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QAES,KAAK,CAAC,OAAO;YACrB,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;YAC7C,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;YAC5D,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,CAAC,CAAA;YAChE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;YACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YAC5C,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC5B,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAA;gBAC5C,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,CAAA;oBACzC,IAAI,SAAS,EAAE,CAAC;wBACd,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAA;oBACxC,CAAC;oBACD,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAA;oBACzB,IAAI,MAAM,EAAE,CAAC;wBACX,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;wBACvB,IAAI,CAAC,aAAa,EAAE,CAAA;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACtB,CAAC;QAED,sBAAsB,CAAC,IAA4B;YACjD,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAA;YAChC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,OAAM;YACR,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAChC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;YAClC,CAAC,CAAC,CAAA;QACJ,CAAC;QAES,KAAK,CAAC,UAAU,CAAC,MAAmB;YAC5C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;YACtC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;YAChE,CAAC;YACD,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrB,OAAM;YACR,CAAC;YACD,MAAM,IAAI,GAAiB;gBACzB,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;gBACnB,IAAI,EAAE,eAAe;gBACrB,GAAG,EAAE,MAAM;gBACX,OAAO,EAAE,OAAO,CAAC,GAAG;gBACpB,GAAG,EAAE,OAAO,CAAC,IAAI;gBACjB,OAAO,EAAE,GAAG;gBACZ,IAAI,EAAE,EAAE,EAAE,wBAAwB;gBAClC,QAAQ,EAAE,iBAAiB,EAAE;gBAC7B,GAAG,EAAE,EAAE;gBACP,YAAY,EAAE,EAAE,EAAE,kCAAkC;aACrD,CAAA;YACD,oCAAoC;YACpC,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;QACjD,CAAC;QAES,0BAA0B,CAAC,CAAc;YACjD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;YAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAA+B,CAAA;YACvD,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC/B,OAAM;YACR,CAAC;YACD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,CAAA;YAC9B,IAAI,cAAc,CAAC,WAAW,KAAK,GAAG,EAAE,CAAC;gBACvC,OAAM;YACR,CAAC;YACD,cAAc,CAAC,WAAW,GAAG,GAAG,CAAA;YAChC,IAAI,CAAC,uBAAuB,EAAE,CAAA;YAC9B,cAAc,CAAC,WAAW,GAAG,GAAG,CAAA;YAChC,IAAI,CAAC,sBAAsB,EAAE,CAAA;YAC7B,IAAI,CAAC,YAAY,EAAE,CAAA;YACnB,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;QAChD,CAAC;QAES,uBAAuB;YAC/B,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;YAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAA;gBACjC,OAAM;YACR,CAAC;YACD,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;YACxE,IAAI,CAAC,gBAAgB,GAAG,GAAG,IAAI,mBAAmB,CAAA;QACpD,CAAC;QAEkB,KAAK,CAAC,sBAAsB;YAC7C,MAAM,KAAK,CAAC,sBAAsB,EAAE,CAAA;YACpC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,EAAE,CAAA;gBAC1C,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAA;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QAEkB,aAAa;YAC9B,OAAO,IAAI,CAAA,IAAI,IAAI,CAAC,wBAAwB,EAAE,IAAI,IAAI,CAAC,yBAAyB,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,GAAG,CAAA;QACjH,CAAC;QAES,yBAAyB;YACjC,MAAM,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;YACxE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;gBAC1B,OAAO,OAAO,CAAA;YAChB,CAAC;YACD,OAAO,IAAI,CAAA;;;mBAGI,IAAI,CAAC,0BAA0B;;;;;YAKtC,uBAAuB,IAAI,gBAAgB;;;;;;;;;YAS3C,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC;;;KAGlD,CAAA;QACH,CAAC;QAES,wBAAwB,CAAC,YAA2B;YAC5D,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;QACnE,CAAC;QAES,qBAAqB,CAAC,GAAgB;YAC9C,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,EAAE,CAAA;YAC3B,MAAM,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,CAAA;YAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,oBAAoB,CAAA;YAC5C,mFAAmF;YACnF,WAAW;YACX,OAAO,IAAI,CAAA;gDACiC,GAAG,CAAC,GAAG;UAC7C,GAAG,CAAC,IAAI,CAAC,WAAW;oCACM,KAAK;;KAEpC,CAAA;QACH,CAAC;QAEkB,wBAAwB;YACzC,OAAO,IAAI,CAAA;;;;;KAKV,CAAA;QACH,CAAC;;;AA5bH;;;;;;GAMG;AACH,kCAsbC","sourcesContent":["import { html, nothing, PropertyValues, TemplateResult } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { type HttpProject, Kind as HttpProjectKind } from '@api-client/core/models/HttpProject.js'\nimport type { IApplication } from '@api-client/core/models/Application.js'\nimport type { HttpRequest } from '@api-client/core/models/HttpRequest.js'\nimport type { ProjectRequest } from '@api-client/core/models/ProjectRequest.js'\nimport type { Environment } from '@api-client/core/models/Environment.js'\nimport type { IProperty } from '@api-client/core/models/Property.js'\nimport { HeadersArray } from '@api-client/core/models/HeadersArray.js'\nimport type { IHttpAssertion } from '@api-client/core/models/http-flows/HttpAssertion.js'\nimport type { IHttpFlow } from '@api-client/core/models/http-flows/HttpFlows.js'\nimport { type IRequestConfig, RequestConfig } from '@api-client/core/models/RequestConfig.js'\nimport type { DeserializedPayload } from '@api-client/core/lib/transformers/PayloadSerializer.js'\nimport type { AuthorizationType } from '@api-client/core/models/Authorization.js'\nimport { type IRequestAuthorization, RequestAuthorization } from '@api-client/core/models/RequestAuthorization.js'\nimport type { IHttpProjectProxyInit, IHttpProjectStoreProxyInit } from '@api-client/core/proxy/HttpProjectProxy.js'\nimport type { IProjectRunnerOptions } from '@api-client/core/runtime/node/InteropInterfaces.js'\nimport type { IProjectExecutionLog } from '@api-client/core/models/ProjectExecution.js'\nimport type { IProxyResult } from '@api-client/core/proxy/Proxy.js'\nimport type { IRequestLog } from '@api-client/core/models/RequestLog.js'\nimport { type IHttpHistory, Kind as HttpHistoryKind } from '@api-client/core/models/HttpHistory.js'\nimport { Events as CoreEvents } from '@api-client/core/events/Events.js'\nimport type { Operation } from '@api-client/json/types.js'\nimport RequestEditor from '../http/RequestEditor.js'\n// import { Events } from '../../events/Events.js'\nimport { EventTypes } from '../../events/EventTypes.js'\nimport { midnightTimestamp } from '../../lib/time/Conversion.js'\n\nimport '../../md/icons/ui-icon.js'\nimport '../../md/button/ui-text-button.js'\nimport '../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../md/list/ui-list.js'\nimport '../../md/list/ui-list-item.js'\n\nfunction stopEvent(e: Event): void {\n e.stopPropagation()\n}\n\n/**\n * An element that specializes in rendering an HTTP request that is defined on an HttpProject.\n *\n * When using this element set the `project` property to the currently opened\n * project and the `key` to the request to render.\n * The element will hook-up to the events to support project mutations.\n */\nexport default class HttpProjectRequest extends RequestEditor {\n /**\n * A reference to the global shared variables.\n * Used with the communication with the execution server.\n */\n @property({ type: Object }) accessor sharedVariables: Record<string, string> | undefined\n\n /**\n * The source project\n */\n @property({ type: Object }) accessor project: HttpProject | undefined\n\n /**\n * The key of the request being processed.\n * @attribute\n */\n @property({ type: String, reflect: true }) accessor key: string | undefined\n\n /**\n * This property is required for the API access to work.\n * Set it to the current application information.\n */\n @property({ type: Object }) accessor appInfo: IApplication | undefined\n\n /**\n * The read `expects` value from the project request.\n */\n protected expects?: HttpRequest\n\n /**\n * The read project request object from the project.\n */\n protected projectRequest?: ProjectRequest\n\n /**\n * The list of environments that apply to the current request.\n */\n @state() protected accessor environments: Environment[] | undefined\n\n /**\n * Computed value of the environment to render in the environment selector.\n * Because of the complexity of finding the name, it is computed on `environment` change only.\n */\n @state() protected accessor environmentLabel: string | undefined\n\n /**\n * When set the requests sent from the editor will contain the entire project serialized with the request\n * rather just the id of the project. This is used in HTTP Client that doesn't use the net-store\n * and uses local proxy.\n * @attribute\n */\n @property({ type: Boolean }) accessor useNetStore: boolean | undefined\n\n constructor() {\n super()\n // do not propagate HTTP request internal events outside as multiple requests are rendered in the same document.\n this.eventsTarget = this\n this.addEventListener(EventTypes.Http.Request.State.urlChange, stopEvent)\n this.addEventListener(EventTypes.Http.Request.State.contentTypeChange, stopEvent)\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('project') || cp.has('key')) {\n this.setupRequest()\n }\n super.willUpdate(cp)\n }\n\n applyPatch(info: Operation): void {\n const { projectRequest } = this\n if (!projectRequest) {\n return\n }\n if (info.path.startsWith('/definitions/environments')) {\n // environments changed.\n this.setupRequestEnvironments(projectRequest)\n return\n }\n // \"/definitions/requests/\\d+/...\"\n const parts = info.path.split('/').slice(4)\n const [root] = parts\n if (root === 'expects' || root === 'log') {\n this.setupRequest()\n }\n }\n\n protected cleanup(): void {\n this.expects = undefined\n this.environments = undefined\n this.ui = undefined\n }\n\n protected setupRequest(): void {\n const { project, key } = this\n if (!project || !key) {\n this.cleanup()\n return\n }\n const request = project.findRequest(key)\n if (!request) {\n this.cleanup()\n return\n }\n this.projectRequest = request\n const expects = request.getExpects()\n this.expects = expects\n this.request = expects.toJSON()\n this.authorization = request.authorization?.map((i) => i.toJSON())\n this.assertions = request.assertions\n this.flows = request.flows\n if (request.config) {\n this.config = request.config.toJSON()\n }\n\n this.setupRequestEnvironments(request)\n this.computeSnippetsRequest()\n this.requestUpdate()\n }\n\n /**\n * Reads environments to be applies to the request and sets up local variables.\n */\n protected setupRequestEnvironments(request: ProjectRequest): void {\n this.environments = request.readEnvironments()\n this.computeEnvironmentLabel()\n this.computeSnippetsRequest()\n }\n\n override selectVerb(verb: string): void {\n const { expects } = this\n if (!expects) {\n return\n }\n expects.method = verb\n super.selectVerb(verb)\n }\n\n override selectUrl(value: string): void {\n const { expects } = this\n if (!expects) {\n return\n }\n expects.url = value\n super.selectUrl(value)\n }\n\n override selectHeaders(model: IProperty[]): void {\n const { expects } = this\n if (!expects) {\n return\n }\n expects.headersModel = HeadersArray.from(model)\n super.selectHeaders(model)\n }\n\n override selectAssertions(assertions?: IHttpAssertion[]): void {\n const { projectRequest } = this\n if (!projectRequest) {\n return\n }\n projectRequest.assertions = assertions\n super.selectAssertions(assertions)\n }\n\n override selectFlows(flows?: IHttpFlow[]): void {\n const { projectRequest } = this\n if (!projectRequest) {\n return\n }\n projectRequest.flows = flows\n super.selectFlows(flows)\n }\n\n override selectRequestConfig(config: IRequestConfig): void {\n const { projectRequest } = this\n if (!projectRequest) {\n return\n }\n projectRequest.config = new RequestConfig(config)\n super.selectRequestConfig(config)\n }\n\n protected override async updatePayload(value: DeserializedPayload, mime?: string): Promise<void> {\n const { expects } = this\n if (!expects) {\n return\n }\n await expects.writePayload(value)\n this.setPayloadMimeOption(expects, mime)\n await super.updatePayload(value, mime)\n }\n\n override addAuthorization(type: AuthorizationType): RequestAuthorization {\n const schema = super.addAuthorization(type)\n if (this.projectRequest) {\n if (!this.projectRequest.authorization) {\n this.projectRequest.authorization = []\n }\n this.projectRequest.authorization.push(schema)\n this.notifyChange()\n }\n return schema\n }\n\n override updateAuthorization(schema: IRequestAuthorization, isValid: boolean): void {\n super.updateAuthorization(schema, isValid)\n const { projectRequest } = this\n if (!projectRequest) {\n return\n }\n if (!projectRequest.authorization) {\n // somehow invalid state. These should be in sync...\n return\n }\n const index = projectRequest.authorization.findIndex((i) => i.type === schema.type)\n if (index === -1) {\n return\n }\n projectRequest.authorization[index] = new RequestAuthorization(schema)\n this.notifyChange()\n }\n\n override removeAuthorization(type: string): void {\n super.removeAuthorization(type)\n const { projectRequest } = this\n if (!projectRequest) {\n return\n }\n if (!projectRequest.authorization) {\n return\n }\n const index = projectRequest.authorization.findIndex((i) => i.type === type)\n if (index === -1) {\n return\n }\n projectRequest.authorization.splice(index, 1)\n this.notifyChange()\n }\n\n protected override notifySend(): void {\n this.execute()\n }\n\n protected prepareProxyInit(\n project: HttpProject,\n key: string,\n request: ProjectRequest\n ): IHttpProjectProxyInit | IHttpProjectStoreProxyInit {\n const { sharedVariables } = this\n const options: IProjectRunnerOptions = {\n environment: request.environment,\n request: [key],\n recursive: true,\n }\n if (sharedVariables) {\n options.variables = sharedVariables\n }\n if (this.useNetStore) {\n return {\n kind: HttpProjectKind,\n pid: project.key,\n options,\n } as IHttpProjectStoreProxyInit\n }\n return {\n project: project.toJSON(),\n kind: HttpProjectKind,\n options,\n }\n }\n\n protected async proxyRequest(\n init: IHttpProjectProxyInit | IHttpProjectStoreProxyInit\n ): Promise<IProxyResult<IProjectExecutionLog> | undefined> {\n let result: IProxyResult<IProjectExecutionLog> | undefined\n try {\n result = await CoreEvents.Transport.Core.httpProject(init, this)\n } catch {\n // ...\n }\n return result\n }\n\n protected async execute(): Promise<void> {\n const { project, key, projectRequest } = this\n if (!project || !key || !projectRequest) {\n throw new Error(`The project request is not initialized.`)\n }\n const init = this.prepareProxyInit(project, key, projectRequest)\n this.loading = true\n const result = await this.proxyRequest(init)\n if (result && result.result) {\n const [iteration] = result.result.iterations\n if (iteration) {\n const { executed, variables } = iteration\n if (variables) {\n this.mergeExecutedVariables(variables)\n }\n const [report] = executed\n if (report) {\n this.addHistory(report)\n this.requestUpdate()\n }\n }\n }\n this.loading = false\n }\n\n mergeExecutedVariables(vars: Record<string, string>): void {\n const { sharedVariables } = this\n if (!sharedVariables) {\n return\n }\n Object.keys(vars).forEach((key) => {\n sharedVariables[key] = vars[key]\n })\n }\n\n protected async addHistory(report: IRequestLog): Promise<void> {\n const { appInfo, project, key } = this\n if (!appInfo) {\n throw new Error(`The appInfo is not set on ${this.localName}`)\n }\n if (!project || !key) {\n return\n }\n const item: IHttpHistory = {\n created: Date.now(),\n kind: HttpHistoryKind,\n log: report,\n project: project.key,\n app: appInfo.code,\n request: key,\n user: '', // added by the bindings\n midnight: midnightTimestamp(),\n key: '',\n organization: '', // will be filled by the bindings.\n }\n // Events.Store.History.create(item)\n throw new Error(`Not yet implemented: ${item}`)\n }\n\n protected handleEnvironmentSelection(e: CustomEvent): void {\n const { projectRequest } = this\n const target = e.detail.item as HTMLElement | undefined\n if (!target || !projectRequest) {\n return\n }\n const { key } = target.dataset\n if (projectRequest.environment === key) {\n return\n }\n projectRequest.environment = key\n this.computeEnvironmentLabel()\n projectRequest.environment = key\n this.computeSnippetsRequest()\n this.notifyChange()\n this.notifyPropertyChanged('environment', key)\n }\n\n protected computeEnvironmentLabel(): void {\n const { projectRequest } = this\n if (!projectRequest) {\n this.environmentLabel = undefined\n return\n }\n const url = projectRequest.readUrl({ baseUrl: true, noVariables: true })\n this.environmentLabel = url || 'No server defined'\n }\n\n protected override async computeSnippetsRequest(): Promise<void> {\n await super.computeSnippetsRequest()\n if (this.snippets) {\n const url = this.projectRequest?.readUrl()\n if (url) {\n this.snippets.url = url\n }\n }\n }\n\n protected override renderUrlMeta(): TemplateResult {\n return html` ${this.renderHttpMethodSelector()} ${this.renderEnvironmentSelector()} ${this.renderUrlEditor()} `\n }\n\n protected renderEnvironmentSelector(): TemplateResult | typeof nothing {\n const { environmentLabel: currentEnvironmentLabel, environments } = this\n if (!environments?.length) {\n return nothing\n }\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleEnvironmentSelection}\"\n class=\"environment-dropdown\"\n closeOnOutsideClick\n >\n <ui-text-button class=\"button\">\n ${currentEnvironmentLabel || 'No environment'}\n <ui-icon icon=\"arrowDropDown\"></ui-icon>\n </ui-text-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item\n role=\"menuitem\"\n title=\"Selects the environment in the request's folder or inherited from a parent\"\n >Inherited environment</ui-list-item\n >\n ${this.renderEnvironmentOptions(environments)}\n </ui-list>\n </ui-dropdown-list>\n `\n }\n\n protected renderEnvironmentOptions(environments: Environment[]): TemplateResult[] {\n return environments.map((env) => this.renderEnvironmentItem(env))\n }\n\n protected renderEnvironmentItem(env: Environment): TemplateResult {\n const srv = env.getServer()\n const srvUri = srv?.readUri()\n const label = srvUri || 'Server not defined'\n // note, we don't disable items without server because it may still apply variables\n // from it.\n return html`\n <ui-list-item role=\"menuitem\" data-key=\"${env.key}\" lines=\"two\">\n ${env.info.renderLabel}\n <p slot=\"supporting-text\">${label}</p>\n </ui-list-item>\n `\n }\n\n protected override renderEmptyAuthorization(): TemplateResult {\n return html`\n <div class=\"body-medium centered\">\n This request will inherit authorization defined in an environment (if any).<br />\n Add an authorization to this request to override.\n </div>\n `\n }\n}\n"]}
1
+ {"version":3,"file":"HttpProjectRequest.js","sourceRoot":"","sources":["../../../../src/elements/project/HttpProjectRequest.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, PropertyValues, TemplateResult } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { type HttpProject, Kind as HttpProjectKind } from '@api-client/core/models/HttpProject.js'\nimport type { IApplication } from '@api-client/core/models/Application.js'\nimport type { HttpRequest } from '@api-client/core/models/HttpRequest.js'\nimport type { ProjectRequest } from '@api-client/core/models/ProjectRequest.js'\nimport type { Environment } from '@api-client/core/models/Environment.js'\nimport type { IProperty } from '@api-client/core/models/Property.js'\nimport { HeadersArray } from '@api-client/core/models/HeadersArray.js'\nimport type { IHttpAssertion } from '@api-client/core/models/http-flows/HttpAssertion.js'\nimport type { IHttpFlow } from '@api-client/core/models/http-flows/HttpFlows.js'\nimport { type IRequestConfig, RequestConfig } from '@api-client/core/models/RequestConfig.js'\nimport type { DeserializedPayload } from '@api-client/core/lib/transformers/PayloadSerializer.js'\nimport type { AuthorizationType } from '@api-client/core/models/Authorization.js'\nimport { type IRequestAuthorization, RequestAuthorization } from '@api-client/core/models/RequestAuthorization.js'\nimport type { IHttpProjectProxyInit, IHttpProjectStoreProxyInit } from '@api-client/core/proxy/HttpProjectProxy.js'\nimport type { IProjectRunnerOptions } from '@api-client/core/runtime/node/InteropInterfaces.js'\nimport type { IProjectExecutionLog } from '@api-client/core/models/ProjectExecution.js'\nimport type { IProxyResult } from '@api-client/core/proxy/Proxy.js'\nimport type { IRequestLog } from '@api-client/core/models/RequestLog.js'\nimport { type IHttpHistory, Kind as HttpHistoryKind } from '@api-client/core/models/HttpHistory.js'\nimport { Events as CoreEvents } from '@api-client/core/events/Events.js'\nimport type { Operation } from '@api-client/json/types.js'\nimport RequestEditor from '../http/RequestEditor.js'\n// import { Events } from '../../events/Events.js'\nimport { EventTypes } from '../../events/EventTypes.js'\nimport { midnightTimestamp } from '../../lib/time/Conversion.js'\n\nimport '../../md/icons/ui-icon.js'\nimport '../../md/button/ui-button.js'\nimport '../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../md/list/ui-list.js'\nimport '../../md/list/ui-list-item.js'\n\nfunction stopEvent(e: Event): void {\n e.stopPropagation()\n}\n\n/**\n * An element that specializes in rendering an HTTP request that is defined on an HttpProject.\n *\n * When using this element set the `project` property to the currently opened\n * project and the `key` to the request to render.\n * The element will hook-up to the events to support project mutations.\n */\nexport default class HttpProjectRequest extends RequestEditor {\n /**\n * A reference to the global shared variables.\n * Used with the communication with the execution server.\n */\n @property({ type: Object }) accessor sharedVariables: Record<string, string> | undefined\n\n /**\n * The source project\n */\n @property({ type: Object }) accessor project: HttpProject | undefined\n\n /**\n * The key of the request being processed.\n * @attribute\n */\n @property({ type: String, reflect: true }) accessor key: string | undefined\n\n /**\n * This property is required for the API access to work.\n * Set it to the current application information.\n */\n @property({ type: Object }) accessor appInfo: IApplication | undefined\n\n /**\n * The read `expects` value from the project request.\n */\n protected expects?: HttpRequest\n\n /**\n * The read project request object from the project.\n */\n protected projectRequest?: ProjectRequest\n\n /**\n * The list of environments that apply to the current request.\n */\n @state() protected accessor environments: Environment[] | undefined\n\n /**\n * Computed value of the environment to render in the environment selector.\n * Because of the complexity of finding the name, it is computed on `environment` change only.\n */\n @state() protected accessor environmentLabel: string | undefined\n\n /**\n * When set the requests sent from the editor will contain the entire project serialized with the request\n * rather just the id of the project. This is used in HTTP Client that doesn't use the net-store\n * and uses local proxy.\n * @attribute\n */\n @property({ type: Boolean }) accessor useNetStore: boolean | undefined\n\n constructor() {\n super()\n // do not propagate HTTP request internal events outside as multiple requests are rendered in the same document.\n this.eventsTarget = this\n this.addEventListener(EventTypes.Http.Request.State.urlChange, stopEvent)\n this.addEventListener(EventTypes.Http.Request.State.contentTypeChange, stopEvent)\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('project') || cp.has('key')) {\n this.setupRequest()\n }\n super.willUpdate(cp)\n }\n\n applyPatch(info: Operation): void {\n const { projectRequest } = this\n if (!projectRequest) {\n return\n }\n if (info.path.startsWith('/definitions/environments')) {\n // environments changed.\n this.setupRequestEnvironments(projectRequest)\n return\n }\n // \"/definitions/requests/\\d+/...\"\n const parts = info.path.split('/').slice(4)\n const [root] = parts\n if (root === 'expects' || root === 'log') {\n this.setupRequest()\n }\n }\n\n protected cleanup(): void {\n this.expects = undefined\n this.environments = undefined\n this.ui = undefined\n }\n\n protected setupRequest(): void {\n const { project, key } = this\n if (!project || !key) {\n this.cleanup()\n return\n }\n const request = project.findRequest(key)\n if (!request) {\n this.cleanup()\n return\n }\n this.projectRequest = request\n const expects = request.getExpects()\n this.expects = expects\n this.request = expects.toJSON()\n this.authorization = request.authorization?.map((i) => i.toJSON())\n this.assertions = request.assertions\n this.flows = request.flows\n if (request.config) {\n this.config = request.config.toJSON()\n }\n\n this.setupRequestEnvironments(request)\n this.computeSnippetsRequest()\n this.requestUpdate()\n }\n\n /**\n * Reads environments to be applies to the request and sets up local variables.\n */\n protected setupRequestEnvironments(request: ProjectRequest): void {\n this.environments = request.readEnvironments()\n this.computeEnvironmentLabel()\n this.computeSnippetsRequest()\n }\n\n override selectVerb(verb: string): void {\n const { expects } = this\n if (!expects) {\n return\n }\n expects.method = verb\n super.selectVerb(verb)\n }\n\n override selectUrl(value: string): void {\n const { expects } = this\n if (!expects) {\n return\n }\n expects.url = value\n super.selectUrl(value)\n }\n\n override selectHeaders(model: IProperty[]): void {\n const { expects } = this\n if (!expects) {\n return\n }\n expects.headersModel = HeadersArray.from(model)\n super.selectHeaders(model)\n }\n\n override selectAssertions(assertions?: IHttpAssertion[]): void {\n const { projectRequest } = this\n if (!projectRequest) {\n return\n }\n projectRequest.assertions = assertions\n super.selectAssertions(assertions)\n }\n\n override selectFlows(flows?: IHttpFlow[]): void {\n const { projectRequest } = this\n if (!projectRequest) {\n return\n }\n projectRequest.flows = flows\n super.selectFlows(flows)\n }\n\n override selectRequestConfig(config: IRequestConfig): void {\n const { projectRequest } = this\n if (!projectRequest) {\n return\n }\n projectRequest.config = new RequestConfig(config)\n super.selectRequestConfig(config)\n }\n\n protected override async updatePayload(value: DeserializedPayload, mime?: string): Promise<void> {\n const { expects } = this\n if (!expects) {\n return\n }\n await expects.writePayload(value)\n this.setPayloadMimeOption(expects, mime)\n await super.updatePayload(value, mime)\n }\n\n override addAuthorization(type: AuthorizationType): RequestAuthorization {\n const schema = super.addAuthorization(type)\n if (this.projectRequest) {\n if (!this.projectRequest.authorization) {\n this.projectRequest.authorization = []\n }\n this.projectRequest.authorization.push(schema)\n this.notifyChange()\n }\n return schema\n }\n\n override updateAuthorization(schema: IRequestAuthorization, isValid: boolean): void {\n super.updateAuthorization(schema, isValid)\n const { projectRequest } = this\n if (!projectRequest) {\n return\n }\n if (!projectRequest.authorization) {\n // somehow invalid state. These should be in sync...\n return\n }\n const index = projectRequest.authorization.findIndex((i) => i.type === schema.type)\n if (index === -1) {\n return\n }\n projectRequest.authorization[index] = new RequestAuthorization(schema)\n this.notifyChange()\n }\n\n override removeAuthorization(type: string): void {\n super.removeAuthorization(type)\n const { projectRequest } = this\n if (!projectRequest) {\n return\n }\n if (!projectRequest.authorization) {\n return\n }\n const index = projectRequest.authorization.findIndex((i) => i.type === type)\n if (index === -1) {\n return\n }\n projectRequest.authorization.splice(index, 1)\n this.notifyChange()\n }\n\n protected override notifySend(): void {\n this.execute()\n }\n\n protected prepareProxyInit(\n project: HttpProject,\n key: string,\n request: ProjectRequest\n ): IHttpProjectProxyInit | IHttpProjectStoreProxyInit {\n const { sharedVariables } = this\n const options: IProjectRunnerOptions = {\n environment: request.environment,\n request: [key],\n recursive: true,\n }\n if (sharedVariables) {\n options.variables = sharedVariables\n }\n if (this.useNetStore) {\n return {\n kind: HttpProjectKind,\n pid: project.key,\n options,\n } as IHttpProjectStoreProxyInit\n }\n return {\n project: project.toJSON(),\n kind: HttpProjectKind,\n options,\n }\n }\n\n protected async proxyRequest(\n init: IHttpProjectProxyInit | IHttpProjectStoreProxyInit\n ): Promise<IProxyResult<IProjectExecutionLog> | undefined> {\n let result: IProxyResult<IProjectExecutionLog> | undefined\n try {\n result = await CoreEvents.Transport.Core.httpProject(init, this)\n } catch {\n // ...\n }\n return result\n }\n\n protected async execute(): Promise<void> {\n const { project, key, projectRequest } = this\n if (!project || !key || !projectRequest) {\n throw new Error(`The project request is not initialized.`)\n }\n const init = this.prepareProxyInit(project, key, projectRequest)\n this.loading = true\n const result = await this.proxyRequest(init)\n if (result && result.result) {\n const [iteration] = result.result.iterations\n if (iteration) {\n const { executed, variables } = iteration\n if (variables) {\n this.mergeExecutedVariables(variables)\n }\n const [report] = executed\n if (report) {\n this.addHistory(report)\n this.requestUpdate()\n }\n }\n }\n this.loading = false\n }\n\n mergeExecutedVariables(vars: Record<string, string>): void {\n const { sharedVariables } = this\n if (!sharedVariables) {\n return\n }\n Object.keys(vars).forEach((key) => {\n sharedVariables[key] = vars[key]\n })\n }\n\n protected async addHistory(report: IRequestLog): Promise<void> {\n const { appInfo, project, key } = this\n if (!appInfo) {\n throw new Error(`The appInfo is not set on ${this.localName}`)\n }\n if (!project || !key) {\n return\n }\n const item: IHttpHistory = {\n created: Date.now(),\n kind: HttpHistoryKind,\n log: report,\n project: project.key,\n app: appInfo.code,\n request: key,\n user: '', // added by the bindings\n midnight: midnightTimestamp(),\n key: '',\n organization: '', // will be filled by the bindings.\n }\n // Events.Store.History.create(item)\n throw new Error(`Not yet implemented: ${item}`)\n }\n\n protected handleEnvironmentSelection(e: CustomEvent): void {\n const { projectRequest } = this\n const target = e.detail.item as HTMLElement | undefined\n if (!target || !projectRequest) {\n return\n }\n const { key } = target.dataset\n if (projectRequest.environment === key) {\n return\n }\n projectRequest.environment = key\n this.computeEnvironmentLabel()\n projectRequest.environment = key\n this.computeSnippetsRequest()\n this.notifyChange()\n this.notifyPropertyChanged('environment', key)\n }\n\n protected computeEnvironmentLabel(): void {\n const { projectRequest } = this\n if (!projectRequest) {\n this.environmentLabel = undefined\n return\n }\n const url = projectRequest.readUrl({ baseUrl: true, noVariables: true })\n this.environmentLabel = url || 'No server defined'\n }\n\n protected override async computeSnippetsRequest(): Promise<void> {\n await super.computeSnippetsRequest()\n if (this.snippets) {\n const url = this.projectRequest?.readUrl()\n if (url) {\n this.snippets.url = url\n }\n }\n }\n\n protected override renderUrlMeta(): TemplateResult {\n return html` ${this.renderHttpMethodSelector()} ${this.renderEnvironmentSelector()} ${this.renderUrlEditor()} `\n }\n\n protected renderEnvironmentSelector(): TemplateResult | typeof nothing {\n const { environmentLabel: currentEnvironmentLabel, environments } = this\n if (!environments?.length) {\n return nothing\n }\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleEnvironmentSelection}\"\n class=\"environment-dropdown\"\n closeOnOutsideClick\n >\n <ui-button color=\"text\" class=\"button\">\n ${currentEnvironmentLabel || 'No environment'}\n <ui-icon icon=\"arrowDropDown\"></ui-icon>\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item\n role=\"menuitem\"\n title=\"Selects the environment in the request's folder or inherited from a parent\"\n >Inherited environment</ui-list-item\n >\n ${this.renderEnvironmentOptions(environments)}\n </ui-list>\n </ui-dropdown-list>\n `\n }\n\n protected renderEnvironmentOptions(environments: Environment[]): TemplateResult[] {\n return environments.map((env) => this.renderEnvironmentItem(env))\n }\n\n protected renderEnvironmentItem(env: Environment): TemplateResult {\n const srv = env.getServer()\n const srvUri = srv?.readUri()\n const label = srvUri || 'Server not defined'\n // note, we don't disable items without server because it may still apply variables\n // from it.\n return html`\n <ui-list-item role=\"menuitem\" data-key=\"${env.key}\" lines=\"two\">\n ${env.info.renderLabel}\n <p slot=\"supporting-text\">${label}</p>\n </ui-list-item>\n `\n }\n\n protected override renderEmptyAuthorization(): TemplateResult {\n return html`\n <div class=\"body-medium centered\">\n This request will inherit authorization defined in an environment (if any).<br />\n Add an authorization to this request to override.\n </div>\n `\n }\n}\n"]}
@@ -6,8 +6,7 @@ import { UiDialogClosingReason } from '../../md/dialog/internals/Dialog.js';
6
6
  import '@github/relative-time-element';
7
7
  import '../../define/http/http-request-log.js';
8
8
  import '../../md/icons/ui-icon.js';
9
- import '../../md/button/ui-filled-tonal-button.js';
10
- import '../../md/button/ui-text-button.js';
9
+ import '../../md/button/ui-button.js';
11
10
  import '../../md/dropdown-list/ui-dropdown-list.js';
12
11
  import '../../md/list/ui-list.js';
13
12
  import '../../md/list/ui-list-item.js';
@@ -1 +1 @@
1
- {"version":3,"file":"HttpProjectRequestHistory.d.ts","sourceRoot":"","sources":["../../../../src/elements/project/HttpProjectRequestHistory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpProjectRequestHistory.d.ts","sourceRoot":"","sources":["../../../../src/elements/project/HttpProjectRequestHistory.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,7 @@ import { statusTemplate } from '../http/HttpStatus.js';
9
9
  import '@github/relative-time-element';
10
10
  import '../../define/http/http-request-log.js';
11
11
  import '../../md/icons/ui-icon.js';
12
- import '../../md/button/ui-filled-tonal-button.js';
13
- import '../../md/button/ui-text-button.js';
12
+ import '../../md/button/ui-button.js';
14
13
  import '../../md/dropdown-list/ui-dropdown-list.js';
15
14
  import '../../md/list/ui-list.js';
16
15
  import '../../md/list/ui-list-item.js';
@@ -472,10 +471,10 @@ let HttpProjectRequestHistory = (() => {
472
471
  closeOnOutsideClick
473
472
  @select="${this.handleSelection}"
474
473
  >
475
- <ui-filled-tonal-button ?disabled="${disabled}">
474
+ <ui-button color="tonal" ?disabled="${disabled}">
476
475
  <ui-icon slot="icon" icon="arrowDropDown"></ui-icon>
477
476
  History
478
- </ui-filled-tonal-button>
477
+ </ui-button>
479
478
  <ui-list slot="dropdown" role="menu" aria-label="History list"> ${this.renderHistoryList()} </ui-list>
480
479
  </ui-dropdown-list>
481
480
  `;
@@ -602,8 +601,8 @@ let HttpProjectRequestHistory = (() => {
602
601
  <ui-icon slot="icon" icon="deleteOutline"></ui-icon>
603
602
  <span slot="title">Delete history?</span>
604
603
  <p>This will clear responses history for this request.</p>
605
- <ui-text-button slot="button" value="dismiss">Cancel</ui-text-button>
606
- <ui-text-button slot="button" value="confirm">Accept</ui-text-button>
604
+ <ui-button color="text" slot="button" value="dismiss">Cancel</ui-button>
605
+ <ui-button color="text" slot="button" value="confirm">Accept</ui-button>
607
606
  </ui-dialog>
608
607
  `;
609
608
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HttpProjectRequestHistory.js","sourceRoot":"","sources":["../../../../src/elements/project/HttpProjectRequestHistory.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAA;AACxE,OAAO,EAAkB,IAAI,EAAkB,OAAO,EAAE,MAAM,KAAK,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,UAAU,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAItD,OAAO,+BAA+B,CAAA;AAGtC,OAAO,uCAAuC,CAAA;AAC9C,OAAO,2BAA2B,CAAA;AAClC,OAAO,2CAA2C,CAAA;AAClD,OAAO,mCAAmC,CAAA;AAC1C,OAAO,4CAA4C,CAAA;AACnD,OAAO,0BAA0B,CAAA;AACjC,OAAO,+BAA+B,CAAA;AACtC,OAAO,gCAAgC,CAAA;AACvC,OAAO,kDAAkD,CAAA;AACzD,OAAO,sDAAsD,CAAA;AAC7D,OAAO,8BAA8B,CAAA;AAErC,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,yCAAmB,CAAA;IACnB,2CAAqB,CAAA;AACvB,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;;sBAOsD,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;iBAA5C,yBAA0B,SAAQ,WAAU;;;mCAI9D,KAAK,EAAE;mCAKP,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mCAM1B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oCAY1B,KAAK,EAAE;iCAKP,KAAK,EAAE;wCAKP,KAAK,EAAE;wCAKP,KAAK,EAAE;gCAEP,KAAK,EAAE;YAxCC,0KAAS,OAAO,6BAAP,OAAO,yFAAqB;YAKlB,0KAAS,OAAO,6BAAP,OAAO,yFAAoB;YAMpC,0KAAS,OAAO,6BAAP,OAAO,yFAAoB;YAYvD,6KAAS,QAAQ,6BAAR,QAAQ,2FAAQ;YAKzB,oKAAmB,KAAK,6BAAL,KAAK,qFAA8B;YAKtD,yLAAS,YAAY,6BAAZ,YAAY,mGAAoB;YAKzC,yLAAmB,YAAY,6BAAZ,YAAY,mGAAqD;YAEpF,iKAAmB,IAAI,6BAAJ,IAAI,mFAAiD;;;QAxCxE,2EAAmC,EAAE;QAE9C;;WAEG;UAJ2C;QAH9C;;WAEG;QACM,IAAS,OAAO,6CAAqB;QAArC,IAAS,OAAO,mDAAqB;QAKlB,0IAAoC;QAHhE;;WAEG;QACyB,IAAS,OAAO,6CAAoB;QAApC,IAAS,OAAO,mDAAoB;QAMpC,0IAAoC;QAJhE;;;WAGG;QACyB,IAAS,OAAO,6CAAoB;QAApC,IAAS,OAAO,mDAAoB;QAEhE;;WAEG;QACH,IAAI,OAAO;YACT,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAA;QACzC,CAAC;QAKQ,mIAAoB,KAAK;QAElC;;WAEG;WAJ+B;QAHlC;;WAEG;QACM,IAAS,QAAQ,8CAAQ;QAAzB,IAAS,QAAQ,oDAAQ;QAKzB,uIAAsD;QAH/D;;WAEG;QACM,IAAmB,KAAK,2CAA8B;QAAtD,IAAmB,KAAK,iDAA8B;QAKtD,kJAAyC;QAHlD;;WAEG;QACM,IAAS,YAAY,kDAAoB;QAAzC,IAAS,YAAY,wDAAoB;QAKzC,yJAAoF;QAH7F;;WAEG;QACM,IAAmB,YAAY,kDAAqD;QAApF,IAAmB,YAAY,wDAAqD;QAEpF,gIAA8C,kBAAkB,CAAC,OAAO,GAAA;QAAxE,IAAmB,IAAI,0CAAiD;QAAxE,IAAmB,IAAI,gDAAiD;QAEvE,eAAe,oDAAS;QAElC;;WAEG;QACO,UAAU,CAAS;QAEV,UAAU,CAAC,EAAwB;YACpD,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC,KAAK,EAAE,CAAA;gBACZ,IAAI,CAAC,aAAa,EAAE,CAAA;YACtB,CAAC;YACD,IAAI,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,mBAAmB,EAAE,CAAA;YAC5B,CAAC;YACD,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACtB,CAAC;QAED,qDAAqD;QACrD,2CAA2C;QAC3C,+BAA+B;QAC/B,sBAAsB;QACtB,yEAAyE;QACzE,cAAc;QACd,sBAAsB;QACtB,yEAAyE;QACzE,cAAc;QACd,eAAe;QACf,MAAM;QACN,IAAI;QAEJ,8EAA8E;QAC9E,oCAAoC;QACpC,sCAAsC;QACtC,oCAAoC;QACpC,aAAa;QACb,MAAM;QACN,gBAAgB;QAChB,+BAA+B;QAC/B,MAAM;QACN,IAAI;QAEJ,8EAA8E;QAC9E,oCAAoC;QACpC,mCAAmC;QACnC,0DAA0D;QAC1D,aAAa;QACb,MAAM;QACN,iEAAiE;QACjE,4BAA4B;QAC5B,aAAa;QACb,MAAM;QACN,oCAAoC;QACpC,iCAAiC;QACjC,0DAA0D;QAC1D,wBAAwB;QACxB,+BAA+B;QAC/B,kCAAkC;QAClC,kDAAkD;QAClD,sCAAsC;QACtC,UAAU;QACV,6BAA6B;QAC7B,+BAA+B;QAC/B,cAAc;QACd,QAAQ;QACR,MAAM;QACN,IAAI;QAEM,eAAe;YACvB,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACzC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YACjC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;YAChC,CAAC;QACH,CAAC;QAED,KAAK;YACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;YACjB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;YAC3B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;YACtB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;YAC7B,IAAI,CAAC,eAAe,EAAE,CAAA;YACtB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;gBAClC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAA;YAClC,CAAC;QACH,CAAC;QAED,aAAa;YACX,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAM;YACR,CAAC;YACD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YACpC,CAAC;YACD,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;gBACrC,OAAO,IAAI,CAAC,eAAe,CAAA;gBAC3B,IAAI,CAAC,SAAS,EAAE,CAAA;YAClB,CAAC,EAAE,CAAC,CAAsB,CAAA;QAC5B,CAAC;QAES,KAAK,CAAC,SAAS;YACvB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;YAC7C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC1C,oDAAoD;gBACpD,OAAM;YACR,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;YACpB,MAAM,IAAI,GAA+B;gBACvC,IAAI,EAAE,SAAS;gBACf,OAAO;gBACP,EAAE,EAAE,OAAO;gBACX,YAAY,EAAE,EAAE,EAAE,iCAAiC;aACpD,CAAA;YACD,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,GAAG,UAAU,CAAA;YAC1B,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;gBACvC,6DAA6D;gBAC7D,iBAAiB;gBACjB,WAAW;gBACX,IAAI;gBACJ,mCAAmC;gBACnC,eAAe;gBACf,yBAAyB;gBACzB,IAAI;gBACJ,gBAAgB;gBAChB,6BAA6B;gBAC7B,IAAI;YACN,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;gBACrB,IAAI,CAAC,eAAe,EAAE,CAAA;YACxB,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,KAAqB;YAC5B,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,IAAI,CAAA;YAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACpC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YACpC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAA;YACnB,IAAI,CAAC,mBAAmB,EAAE,CAAA;YAC1B,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACxC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;YACtC,CAAC;YACD,IAAI,CAAC,eAAe,EAAE,CAAA;QACxB,CAAC;QAED;;;;;WAKG;QACH,OAAO,CAAC,IAAkB,EAAE,MAAgB;YAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;YACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACvB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;gBACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAA;gBAC5B,IAAI,CAAC,aAAa,EAAE,CAAA;gBACpB,IAAI,CAAC,eAAe,EAAE,CAAA;gBACtB,OAAM;YACR,CAAC;YACD,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAA;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;YAChE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;YACrC,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAA;gBAClF,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;YACnC,CAAC;YACD,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAA;YAC9B,CAAC;YACD,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,IAAI,CAAC,eAAe,EAAE,CAAA;QACxB,CAAC;QAES,WAAW,CAAC,OAAuB;YAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC/C,OAAO,EAAE,CAAA;YACX,CAAC;YACD,MAAM,MAAM,GAAqB,EAAE,CAAA;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YACtB,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC1B,MAAM,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAG,OAAO,CAAA;gBAClC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAA;gBACjE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;oBACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;gBACzC,CAAC;qBAAM,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC;oBAClG,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;gBAC3B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC,CAAC,CAAA;YACF,OAAO,MAAM,CAAA;QACf,CAAC;QAES,mBAAmB;YAC3B,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;YACtC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAA;YAC7B,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,OAAM;YACR,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,CAAA;QACjE,CAAC;QAED;;;;;;;;WAQG;QACO,UAAU,CAAC,IAAoB,EAAE,IAAkB;YAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;YAC7D,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;YAC7B,CAAC;iBAAM,CAAC;gBACN,0BAA0B;gBAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QAES,eAAe,CAAC,CAAc;YACtC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAA+B,CAAA;YACrD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAM;YACR,CAAC;YACD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;YAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAM;YACR,CAAC;YACD,IAAI,CAAC,YAAY,GAAG,GAAG,CAAA;QACzB,CAAC;QAES,mBAAmB,CAAC,CAAc;YAC1C,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACvB,OAAM;YACR,CAAC;YACD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAyB,CAAA;YACjD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAuC,CAAA;YACnE,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAClB,CAAC;QACH,CAAC;QAES,mBAAmB,CAAC,CAAc;YAC1C,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,IAAmB,CAAA;YAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAA;YAClC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAM;YACR,CAAC;YACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,yBAAyB,EAAE,CAAA;YAClC,CAAC;QACH,CAAC;QAES,yBAAyB;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,eAAe,CAAoB,CAAA;YACjF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAM;YACR,CAAC;YACD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;QACpB,CAAC;QAES,8BAA8B,CAAC,CAAqC;YAC5E,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACvB,OAAM;YACR,CAAC;YACD,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC;QAED,KAAK,CAAC,YAAY;YAChB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;YACjC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAM;YACR,CAAC;YACD,yCAAyC;YACzC,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;YACvC,sEAAsE;YACtE,+CAA+C;YAC/C,eAAe;QACjB,CAAC;QAES,gBAAgB,CAAC,CAAQ;YACjC,MAAM,MAAM,GAAG,CAAC,CAAC,aAA6B,CAAA;YAC9C,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,CAAA;YAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAM;YACR,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;QAC7B,CAAC;QAED,KAAK,CAAC,iBAAiB,CAAC,GAAW;YACjC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAM;YACR,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;YACpD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAM;YACR,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;YACvC,6DAA6D;YAC7D,sDAAsD;YACtD,yBAAyB;YACzB,4BAA4B;YAC5B,yCAAyC;YACzC,OAAO;YACP,mBAAmB;YACnB,KAAK;QACP,CAAC;QAED,KAAK,CAAC,uBAAuB,CAAC,IAAkB;YAC9C,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;YAC/C,+EAA+E;YAC/E,QAAQ;YACR,kDAAkD;YAClD,oCAAoC;YACpC,wDAAwD;YACxD,gBAAgB;YAChB,oCAAoC;YACpC,2DAA2D;YAC3D,IAAI;QACN,CAAC;QAEkB,MAAM;YACvB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;YACtB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC5B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAA;gBAC5B,CAAC;gBACD,OAAO,OAAO,CAAA;YAChB,CAAC;YACD,OAAO,IAAI,CAAA,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAA;QAC/F,CAAC;QAES,YAAY;YACpB,OAAO,IAAI,CAAA,uBAAuB,CAAA;QACpC,CAAC;QAES,YAAY;YACpB,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,qBAAqB,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE;;KAE3F,CAAA;QACH,CAAC;QAES,qBAAqB;YAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;YACtB,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;YACxC,OAAO,IAAI,CAAA;;;;;mBAKI,IAAI,CAAC,eAAe;;6CAEM,QAAQ;;;;0EAIqB,IAAI,CAAC,iBAAiB,EAAE;;KAE7F,CAAA;QACH,CAAC;QAES,oBAAoB;YAC5B,OAAO,IAAI,CAAA;mCACoB,IAAI,CAAC,mBAAmB;;;;;;;;;;;KAWtD,CAAA;QACH,CAAC;QAES,iBAAiB;YACzB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;YACtB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC3C,OAAO,OAAO,CAAA;YAChB,CAAC;YACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7D,CAAC;QAES,kBAAkB,CAAC,KAAqB;YAChD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClB,8DAA8D;gBAC9D,sEAAsE;gBACtE,OAAO,OAAO,CAAA;YAChB,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAA;YACrB,OAAO,IAAI,CAAA,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAA;QAC5G,CAAC;QAES,uBAAuB,CAAC,IAAkB;YAClD,MAAM,EAAE,QAAQ,GAAG,CAAC,EAAE,GAAG,IAAI,CAAA;YAC7B,OAAO,IAAI,CAAA;yCAC0B,WAAW,CAAC,QAAQ,CAAC;;KAEzD,CAAA;QACH,CAAC;QAES,iBAAiB,CAAC,IAAkB;YAC5C,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAChC,MAAM,OAAO,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;YAE/B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;YACpB,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAA;YACjC,MAAM,MAAM,GAAG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAA;YACxC,MAAM,GAAG,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,CAAA;YAClC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;gBACpB,OAAO,OAAO,CAAA;YAChB,CAAC;YACD,MAAM,KAAK,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;YAElE,IAAI,MAAM,GAAG,CAAC,CAAA;YACd,IAAI,UAA8B,CAAA;YAClC,IAAI,QAAQ,GAAG,CAAC,CAAA;YAChB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,QAAqB,CAAA;gBACnC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;gBACrB,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;gBAC7B,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAA;YAC9B,CAAC;YACD,OAAO,IAAI,CAAA;4DAC6C,IAAI,CAAC,GAAa,gBAAgB,IAAI,CAAC,IAAI;;sCAEjE,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,QAAQ;YACxE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;;0DAEY,OAAO;;KAE5D,CAAA;QACH,CAAC;QAES,uBAAuB,CAAC,IAAkB;YAClD,OAAO,IAAI,CAAA;;;;oBAIK,IAAI,CAAC,GAAa;qBACjB,IAAI,CAAC,IAAI;kBACZ,IAAI,CAAC,gBAAgB;;;KAGlC,CAAA;QACH,CAAC;QAES,UAAU;YAClB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;YACrB,IAAI,IAAI,KAAK,kBAAkB,CAAC,QAAQ,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;YAC9B,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,EAAE,CAAA;QACzB,CAAC;QAES,SAAS;YACjB,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAA;YAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAO,EAAE,CAAA;YACX,CAAC;YACD,MAAM,KAAK,GAAG,YAA4B,CAAA;YAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,YAAyC,CAAA;YAC/E,OAAO,IAAI,CAAA,gCAAgC,IAAI,wBAAwB,CAAA;QACzE,CAAC;QAES,cAAc;YACtB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;YACtB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,EAAE,CAAA;YACX,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAA;YACzC,OAAO,KAAK,CAAC,YAAY,EAAE,CAAA;QAC7B,CAAC;QAES,gBAAgB;YACxB,OAAO,IAAI,CAAA;;4CAE6B,IAAI,CAAC,mBAAmB;;;;;;;KAO/D,CAAA;QACH,CAAC;QAES,wBAAwB;YAChC,OAAO,IAAI,CAAA;sDACuC,IAAI,CAAC,8BAA8B;;;;;;;KAOpF,CAAA;QACH,CAAC;;;AAjjBH;;;;GAIG;AACH,yCA6iBC","sourcesContent":["import type { IHttpHistory } from '@api-client/core/models/HttpHistory.js'\nimport type { IRequestLog, RequestLog } from '@api-client/core/models/RequestLog.js'\nimport type { IHistoryRequestListOptions } from '@api-client/core/events/BaseEvents.js'\nimport type { IResponse } from '@api-client/core/models/Response.js'\nimport { ErrorResponse } from '@api-client/core/models/ErrorResponse.js'\nimport { TemplateResult, html, PropertyValues, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport ApiElement from '../ApiElement.js'\nimport { relativeDay } from '../../lib/time/Conversion.js'\nimport { HttpHistoryChart } from './HttpHistoryChart.js'\nimport { statusTemplate } from '../http/HttpStatus.js'\n// import { Events } from '../../events/Events.js'\nimport type SegmentedButton from '../../md/segmented-button/internals/SegmentedButton.js'\nimport UiDialog, { UiDialogClosingReason } from '../../md/dialog/internals/Dialog.js'\nimport '@github/relative-time-element'\n// import { SnackNotifications } from '../../md/notification/SnackNotifications.js'\nimport type UiIconButton from '../../md/icon-button/internals/IconButton.js'\nimport '../../define/http/http-request-log.js'\nimport '../../md/icons/ui-icon.js'\nimport '../../md/button/ui-filled-tonal-button.js'\nimport '../../md/button/ui-text-button.js'\nimport '../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../md/list/ui-list.js'\nimport '../../md/list/ui-list-item.js'\nimport '../../md/divider/ui-divider.js'\nimport '../../md/segmented-button/ui-segmented-button.js'\nimport '../../md/segmented-button/ui-segmented-button-set.js'\nimport '../../md/dialog/ui-dialog.js'\n\nexport enum ProjectHistoryView {\n history = 'history',\n analysis = 'analysis',\n}\n\n/**\n * An element that renders HTTP history for a configured list of requests.\n * This element is just a view and contains no logic related to store communication\n * or user interactions. Use the dispatched events to handle user interactions.\n */\nexport default class HttpProjectRequestHistory extends ApiElement {\n /**\n * The history list to render.\n */\n @state() accessor history: IHttpHistory[] = []\n\n /**\n * The key of the project the request belongs to.\n */\n @property({ type: String }) accessor project: string | undefined\n\n /**\n * The key of the request to render the history for.\n * Both `request` and `project` properties must be set to render any view.\n */\n @property({ type: String }) accessor request: string | undefined\n\n /**\n * Returns true when the element is correctly setup.\n */\n get isSetup(): boolean {\n return !!this.project && !!this.request\n }\n\n /**\n * Whether querying for a page of results.\n */\n @state() accessor querying = false\n\n /**\n * A sorted list of history items by the `midnight` property.\n */\n @state() protected accessor model: IHttpHistory[][] | undefined\n\n /**\n * The key of the selected request, if any\n */\n @state() accessor selectedItem: string | undefined\n\n /**\n * The currently rendered item.\n */\n @state() protected accessor renderedItem: IHttpHistory | IRequestLog | RequestLog | undefined\n\n @state() protected accessor view: ProjectHistoryView = ProjectHistoryView.history\n\n protected debounceTimeout?: number\n\n /**\n * The cursor returned by the store used in pagination.\n */\n protected pageCursor?: string\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('project') || cp.has('request')) {\n this.reset()\n this.queryDebounce()\n }\n if (cp.has('selectedItem')) {\n this.computeSelectedItem()\n }\n super.willUpdate(cp)\n }\n\n // protected handleBroadcast(e: MessageEvent): void {\n // const event = e.data as BroadcastEvent\n // switch (event.operation) {\n // case 'created':\n // this.handleHistoryCreated(event as HistoryCreatedBroadcastEvent)\n // break\n // case 'deleted':\n // this.handleHistoryDeleted(event as HistoryDeletedBroadcastEvent)\n // break\n // default:\n // }\n // }\n\n // protected handleHistoryCreated(event: HistoryCreatedBroadcastEvent): void {\n // const { request, data } = event\n // const item = data as IHttpHistory\n // if (this.request !== request) {\n // return\n // }\n // if (item) {\n // this.addItem(item, true)\n // }\n // }\n\n // protected handleHistoryDeleted(event: HistoryDeletedBroadcastEvent): void {\n // const { model, history } = this\n // const { key, request } = event\n // if (!model || !history || request !== this.request) {\n // return\n // }\n // const historyIndex = history.findIndex((i) => i.key === key)\n // if (historyIndex < 0) {\n // return\n // }\n // history.splice(historyIndex, 1)\n // for (const group of model) {\n // const index = group.findIndex((i) => i.key === key)\n // if (index >= 0) {\n // group.splice(index, 1)\n // if (group.length === 0) {\n // const groupIndex = model.indexOf(group)\n // model.splice(groupIndex, 1)\n // }\n // this.requestUpdate()\n // this.setupVisibility()\n // break\n // }\n // }\n // }\n\n protected setupVisibility(): void {\n if (this.history && !this.history.length) {\n this.setAttribute('hidden', '')\n } else {\n this.removeAttribute('hidden')\n }\n }\n\n reset(): void {\n this.history = []\n this.pageCursor = undefined\n this.model = undefined\n this.selectedItem = undefined\n this.setupVisibility()\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout)\n this.debounceTimeout = undefined\n }\n }\n\n queryDebounce(): void {\n if (!this.isSetup) {\n return\n }\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout)\n }\n this.debounceTimeout = setTimeout(() => {\n delete this.debounceTimeout\n this.queryPage()\n }, 1) as unknown as number\n }\n\n protected async queryPage(): Promise<void> {\n const { project, request, pageCursor } = this\n if (!project || !request || this.querying) {\n // todo: set `dirty` flag and re-query after finish.\n return\n }\n this.querying = true\n const init: IHistoryRequestListOptions = {\n type: 'request',\n project,\n id: request,\n organization: '', // this is filled by the bindings\n }\n if (pageCursor) {\n init.cursor = pageCursor\n }\n try {\n throw new Error(`Not implemented yet.`)\n // const result = await Events.Store.History.list(init, this)\n // if (!result) {\n // return\n // }\n // const { items, cursor } = result\n // if (items) {\n // this.addItems(items)\n // }\n // if (cursor) {\n // this.pageCursor = cursor\n // }\n } finally {\n this.querying = false\n this.setupVisibility()\n }\n }\n\n addItems(items: IHttpHistory[]): void {\n const { history = [] } = this\n this.history = history.concat(items)\n const all = history.concat(items)\n const sorted = this.sortHistory(all)\n this.model = sorted\n this.computeSelectedItem()\n if (sorted.length && !this.renderedItem) {\n this.selectedItem = sorted[0][0].key\n }\n this.setupVisibility()\n }\n\n /**\n * Adds a new history to the list.\n * This is used instead of re-assigning the entire array and triggering initial computations.\n * @param item The history item to add\n * @param select When true it makes this item selected,\n */\n addItem(item: IHttpHistory, select?: boolean): void {\n const { model } = this\n this.history.push(item)\n if (!model || !model.length) {\n this.model = [[item]]\n this.selectedItem = item.key\n this.requestUpdate()\n this.setupVisibility()\n return\n }\n const { midnight = Date.now() } = item\n const index = model.findIndex((i) => i[0].midnight === midnight)\n if (index >= 0) {\n this.pushSorted(model[index], item)\n } else {\n const position = model.findIndex((i) => ((i[0] && i[0].midnight) || 0) < midnight)\n model.splice(position, 0, [item])\n }\n if (select && item.key) {\n this.selectedItem = item.key\n }\n this.requestUpdate()\n this.setupVisibility()\n }\n\n protected sortHistory(history: IHttpHistory[]): IHttpHistory[][] {\n if (!Array.isArray(history) || !history.length) {\n return []\n }\n const result: IHttpHistory[][] = []\n const now = Date.now()\n history.forEach((current) => {\n const { midnight = now } = current\n const index = result.findIndex((i) => i[0].midnight === midnight)\n if (index >= 0) {\n this.pushSorted(result[index], current)\n } else if (result[0] && result[0][0] && result[0][0].midnight && result[0][0].midnight < midnight) {\n result.unshift([current])\n } else {\n result.push([current])\n }\n })\n return result\n }\n\n protected computeSelectedItem(): void {\n const { history, selectedItem } = this\n this.renderedItem = undefined\n if (!selectedItem || !Array.isArray(history)) {\n return\n }\n this.renderedItem = history.find((i) => i.key === selectedItem)\n }\n\n /**\n * Allows to push a history item into a right index depending on the `created` property\n * so the data processor can skip sorting each group after mutation.\n *\n * The item is inserted before an item that is older (has lower `created` property).\n *\n * @param list The list to insert the item to\n * @param item The item to insert.\n */\n protected pushSorted(list: IHttpHistory[], item: IHttpHistory): void {\n const older = list.findIndex((i) => i.created < item.created)\n if (older >= 0) {\n list.splice(older, 0, item)\n } else {\n // this item is the oldest\n list.push(item)\n }\n }\n\n protected handleSelection(e: CustomEvent): void {\n const item = e.detail.item as HTMLElement | undefined\n if (!item) {\n return\n }\n const { key } = item.dataset\n if (!key) {\n return\n }\n this.selectedItem = key\n }\n\n protected handleViewSelection(e: CustomEvent): void {\n if (!e.detail.selected) {\n return\n }\n const button = e.detail.button as SegmentedButton\n const view = button.dataset.value as ProjectHistoryView | undefined\n if (view) {\n this.view = view\n }\n }\n\n protected handleHistoryOption(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement\n const { option } = element.dataset\n if (!option) {\n return\n }\n if (option === 'clear') {\n this.triggerClearHistoryDialog()\n }\n }\n\n protected triggerClearHistoryDialog(): void {\n const dialog = this.shadowRoot?.querySelector('.clear-dialog') as UiDialog | null\n if (!dialog) {\n return\n }\n dialog.open = true\n }\n\n protected handleClearHistoryDialogResult(e: CustomEvent<UiDialogClosingReason>): void {\n if (e.detail.cancelled) {\n return\n }\n this.clearHistory()\n }\n\n async clearHistory(): Promise<void> {\n const { project, request } = this\n if (!project || !request) {\n return\n }\n // space parameter is filled by bindings.\n throw new Error(`Not implemented yet.`)\n // await Events.Store.History.clearRequest('', project, request, this)\n // SnackNotifications.notify('History cleared')\n // this.reset()\n }\n\n protected handleItemDelete(e: Event): void {\n const button = e.currentTarget as UiIconButton\n const { key } = button.dataset\n if (!key) {\n return\n }\n this.deleteHistoryItem(key)\n }\n\n async deleteHistoryItem(key: string): Promise<void> {\n if (!key) {\n return\n }\n const item = this.history.find((i) => i.key === key)\n if (!item) {\n return\n }\n throw new Error(`Not implemented yet.`)\n // await Events.Store.History.delete(key, this.request, this)\n // SnackNotifications.notify('History item deleted', {\n // actionLabel: 'Undo',\n // actionCallback: () => {\n // this.revertHistoryItemDelete(item)\n // },\n // timeout: 7000,\n // })\n }\n\n async revertHistoryItemDelete(item: IHttpHistory): Promise<void> {\n throw new Error(`Not implemented yet. ${item}`)\n // const info = SnackNotifications.notify('Reverting...', { persistent: true })\n // try {\n // await Events.Store.History.create(item, this)\n // SnackNotifications.cancel(info)\n // SnackNotifications.notify('Reverted history item.')\n // } catch (e) {\n // SnackNotifications.cancel(info)\n // SnackNotifications.notify('Unable to revert changes.')\n // }\n }\n\n protected override render(): TemplateResult | typeof nothing {\n const { model } = this\n if (!model || !model.length) {\n if (this.querying) {\n return this.renderLoader()\n }\n return nothing\n }\n return html` ${this.renderHeader()} ${this.renderView()} ${this.renderClearHistoryDialog()} `\n }\n\n protected renderLoader(): TemplateResult {\n return html`<progress></progress>`\n }\n\n protected renderHeader(): TemplateResult {\n return html`\n <div class=\"header\">\n ${this.renderHistoryDropdown()} ${this.renderHistoryOptions()} ${this.renderViewToggle()}\n </div>\n `\n }\n\n protected renderHistoryDropdown(): TemplateResult {\n const { model } = this\n const disabled = !model || !model.length\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n class=\"history-dropdown\"\n closeOnOutsideClick\n @select=\"${this.handleSelection}\"\n >\n <ui-filled-tonal-button ?disabled=\"${disabled}\">\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n History\n </ui-filled-tonal-button>\n <ui-list slot=\"dropdown\" role=\"menu\" aria-label=\"History list\"> ${this.renderHistoryList()} </ui-list>\n </ui-dropdown-list>\n `\n }\n\n protected renderHistoryOptions(): TemplateResult {\n return html`\n <ui-dropdown-list @select=\"${this.handleHistoryOption}\" closeOnOutsideClick class=\"dropdown\">\n <ui-icon-button aria-label=\"Additional options\"\n ><ui-icon icon=\"moreVert\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" data-option=\"clear\" image=\"icon\" title=\"Deletes all history for the request\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"deleteOutline\"></ui-icon>\n Clear history\n </ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n `\n }\n\n protected renderHistoryList(): (TemplateResult | typeof nothing)[] | typeof nothing {\n const { model } = this\n if (!Array.isArray(model) || !model.length) {\n return nothing\n }\n return model.map((group) => this.renderHistoryGroup(group))\n }\n\n protected renderHistoryGroup(group: IHttpHistory[]): TemplateResult | typeof nothing {\n if (!group.length) {\n // this should not happen as the model is computed internally,\n // but I prefer to do just one check to not stop execution when error.\n return nothing\n }\n const [first] = group\n return html` ${this.renderHistoryGroupTitle(first)} ${group.map((item) => this.renderHistoryItem(item))} `\n }\n\n protected renderHistoryGroupTitle(item: IHttpHistory): TemplateResult {\n const { midnight = 0 } = item\n return html`\n <div class=\"history-group-title\">${relativeDay(midnight)}</div>\n <ui-divider type=\"inset\"></ui-divider>\n `\n }\n\n protected renderHistoryItem(item: IHttpHistory): TemplateResult | typeof nothing {\n const d = new Date(item.created)\n const isoTime = d.toISOString()\n\n const { log } = item\n const { request, response } = log\n const method = request && request.method\n const url = request && request.url\n if (!method || !url) {\n return nothing\n }\n const error = !response || ErrorResponse.isErrorResponse(response)\n\n let status = 0\n let statusText: string | undefined\n let duration = 0\n if (!error) {\n const typed = response as IResponse\n status = typed.status\n statusText = typed.statusText\n duration = typed.loadingTime\n }\n return html`\n <ui-list-item lines=\"two\" role=\"menuitem\" data-key=\"${item.key as string}\" data-kind=\"${item.kind}\">\n <div class=\"history-label\">\n <span class=\"label-value\">${statusTemplate(status, statusText)} ${duration} ms</span>\n ${this.renderHistoryItemDelete(item)}\n </div>\n <relative-time slot=\"supporting-text\" datetime=\"${isoTime}\"></relative-time>\n </ui-list-item>\n `\n }\n\n protected renderHistoryItemDelete(item: IHttpHistory): TemplateResult | typeof nothing {\n return html`\n <ui-icon-button\n class=\"delete\"\n aria-label=\"Delete request\"\n data-key=\"${item.key as string}\"\n data-kind=\"${item.kind}\"\n @click=\"${this.handleItemDelete}\"\n ><ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n `\n }\n\n protected renderView(): TemplateResult | string {\n const { view } = this\n if (view === ProjectHistoryView.analysis) {\n return this.renderAnalysis()\n }\n return this.renderLog()\n }\n\n protected renderLog(): TemplateResult | string {\n const { renderedItem } = this\n if (!renderedItem) {\n return ''\n }\n const typed = renderedItem as IHttpHistory\n const data = typed.log ? typed.log : (renderedItem as IRequestLog | RequestLog)\n return html` <http-request-log .httpLog=\"${data}\"></http-request-log> `\n }\n\n protected renderAnalysis(): TemplateResult | string {\n const { model } = this\n if (!model) {\n return ''\n }\n const chart = new HttpHistoryChart(model)\n return chart.durationPlot()\n }\n\n protected renderViewToggle(): TemplateResult {\n return html`\n <div class=\"view-toggle\">\n <ui-segmented-button-set @select=\"${this.handleViewSelection}\">\n <ui-segmented-button selected title=\"Shows response history\" data-value=\"history\"\n >History</ui-segmented-button\n >\n <ui-segmented-button title=\"Shows history analysis\" data-value=\"analysis\">Analysis</ui-segmented-button>\n </ui-segmented-button-set>\n </div>\n `\n }\n\n protected renderClearHistoryDialog(): TemplateResult {\n return html`\n <ui-dialog modal class=\"clear-dialog\" @close=\"${this.handleClearHistoryDialogResult}\">\n <ui-icon slot=\"icon\" icon=\"deleteOutline\"></ui-icon>\n <span slot=\"title\">Delete history?</span>\n <p>This will clear responses history for this request.</p>\n <ui-text-button slot=\"button\" value=\"dismiss\">Cancel</ui-text-button>\n <ui-text-button slot=\"button\" value=\"confirm\">Accept</ui-text-button>\n </ui-dialog>\n `\n }\n}\n"]}
1
+ {"version":3,"file":"HttpProjectRequestHistory.js","sourceRoot":"","sources":["../../../../src/elements/project/HttpProjectRequestHistory.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IHttpHistory } from '@api-client/core/models/HttpHistory.js'\nimport type { IRequestLog, RequestLog } from '@api-client/core/models/RequestLog.js'\nimport type { IHistoryRequestListOptions } from '@api-client/core/events/BaseEvents.js'\nimport type { IResponse } from '@api-client/core/models/Response.js'\nimport { ErrorResponse } from '@api-client/core/models/ErrorResponse.js'\nimport { TemplateResult, html, PropertyValues, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport ApiElement from '../ApiElement.js'\nimport { relativeDay } from '../../lib/time/Conversion.js'\nimport { HttpHistoryChart } from './HttpHistoryChart.js'\nimport { statusTemplate } from '../http/HttpStatus.js'\n// import { Events } from '../../events/Events.js'\nimport type SegmentedButton from '../../md/segmented-button/internals/SegmentedButton.js'\nimport UiDialog, { UiDialogClosingReason } from '../../md/dialog/internals/Dialog.js'\nimport '@github/relative-time-element'\n// import { SnackNotifications } from '../../md/notification/SnackNotifications.js'\nimport type UiIconButton from '../../md/icon-button/internals/IconButton.js'\nimport '../../define/http/http-request-log.js'\nimport '../../md/icons/ui-icon.js'\nimport '../../md/button/ui-button.js'\nimport '../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../md/list/ui-list.js'\nimport '../../md/list/ui-list-item.js'\nimport '../../md/divider/ui-divider.js'\nimport '../../md/segmented-button/ui-segmented-button.js'\nimport '../../md/segmented-button/ui-segmented-button-set.js'\nimport '../../md/dialog/ui-dialog.js'\n\nexport enum ProjectHistoryView {\n history = 'history',\n analysis = 'analysis',\n}\n\n/**\n * An element that renders HTTP history for a configured list of requests.\n * This element is just a view and contains no logic related to store communication\n * or user interactions. Use the dispatched events to handle user interactions.\n */\nexport default class HttpProjectRequestHistory extends ApiElement {\n /**\n * The history list to render.\n */\n @state() accessor history: IHttpHistory[] = []\n\n /**\n * The key of the project the request belongs to.\n */\n @property({ type: String }) accessor project: string | undefined\n\n /**\n * The key of the request to render the history for.\n * Both `request` and `project` properties must be set to render any view.\n */\n @property({ type: String }) accessor request: string | undefined\n\n /**\n * Returns true when the element is correctly setup.\n */\n get isSetup(): boolean {\n return !!this.project && !!this.request\n }\n\n /**\n * Whether querying for a page of results.\n */\n @state() accessor querying = false\n\n /**\n * A sorted list of history items by the `midnight` property.\n */\n @state() protected accessor model: IHttpHistory[][] | undefined\n\n /**\n * The key of the selected request, if any\n */\n @state() accessor selectedItem: string | undefined\n\n /**\n * The currently rendered item.\n */\n @state() protected accessor renderedItem: IHttpHistory | IRequestLog | RequestLog | undefined\n\n @state() protected accessor view: ProjectHistoryView = ProjectHistoryView.history\n\n protected debounceTimeout?: number\n\n /**\n * The cursor returned by the store used in pagination.\n */\n protected pageCursor?: string\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('project') || cp.has('request')) {\n this.reset()\n this.queryDebounce()\n }\n if (cp.has('selectedItem')) {\n this.computeSelectedItem()\n }\n super.willUpdate(cp)\n }\n\n // protected handleBroadcast(e: MessageEvent): void {\n // const event = e.data as BroadcastEvent\n // switch (event.operation) {\n // case 'created':\n // this.handleHistoryCreated(event as HistoryCreatedBroadcastEvent)\n // break\n // case 'deleted':\n // this.handleHistoryDeleted(event as HistoryDeletedBroadcastEvent)\n // break\n // default:\n // }\n // }\n\n // protected handleHistoryCreated(event: HistoryCreatedBroadcastEvent): void {\n // const { request, data } = event\n // const item = data as IHttpHistory\n // if (this.request !== request) {\n // return\n // }\n // if (item) {\n // this.addItem(item, true)\n // }\n // }\n\n // protected handleHistoryDeleted(event: HistoryDeletedBroadcastEvent): void {\n // const { model, history } = this\n // const { key, request } = event\n // if (!model || !history || request !== this.request) {\n // return\n // }\n // const historyIndex = history.findIndex((i) => i.key === key)\n // if (historyIndex < 0) {\n // return\n // }\n // history.splice(historyIndex, 1)\n // for (const group of model) {\n // const index = group.findIndex((i) => i.key === key)\n // if (index >= 0) {\n // group.splice(index, 1)\n // if (group.length === 0) {\n // const groupIndex = model.indexOf(group)\n // model.splice(groupIndex, 1)\n // }\n // this.requestUpdate()\n // this.setupVisibility()\n // break\n // }\n // }\n // }\n\n protected setupVisibility(): void {\n if (this.history && !this.history.length) {\n this.setAttribute('hidden', '')\n } else {\n this.removeAttribute('hidden')\n }\n }\n\n reset(): void {\n this.history = []\n this.pageCursor = undefined\n this.model = undefined\n this.selectedItem = undefined\n this.setupVisibility()\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout)\n this.debounceTimeout = undefined\n }\n }\n\n queryDebounce(): void {\n if (!this.isSetup) {\n return\n }\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout)\n }\n this.debounceTimeout = setTimeout(() => {\n delete this.debounceTimeout\n this.queryPage()\n }, 1) as unknown as number\n }\n\n protected async queryPage(): Promise<void> {\n const { project, request, pageCursor } = this\n if (!project || !request || this.querying) {\n // todo: set `dirty` flag and re-query after finish.\n return\n }\n this.querying = true\n const init: IHistoryRequestListOptions = {\n type: 'request',\n project,\n id: request,\n organization: '', // this is filled by the bindings\n }\n if (pageCursor) {\n init.cursor = pageCursor\n }\n try {\n throw new Error(`Not implemented yet.`)\n // const result = await Events.Store.History.list(init, this)\n // if (!result) {\n // return\n // }\n // const { items, cursor } = result\n // if (items) {\n // this.addItems(items)\n // }\n // if (cursor) {\n // this.pageCursor = cursor\n // }\n } finally {\n this.querying = false\n this.setupVisibility()\n }\n }\n\n addItems(items: IHttpHistory[]): void {\n const { history = [] } = this\n this.history = history.concat(items)\n const all = history.concat(items)\n const sorted = this.sortHistory(all)\n this.model = sorted\n this.computeSelectedItem()\n if (sorted.length && !this.renderedItem) {\n this.selectedItem = sorted[0][0].key\n }\n this.setupVisibility()\n }\n\n /**\n * Adds a new history to the list.\n * This is used instead of re-assigning the entire array and triggering initial computations.\n * @param item The history item to add\n * @param select When true it makes this item selected,\n */\n addItem(item: IHttpHistory, select?: boolean): void {\n const { model } = this\n this.history.push(item)\n if (!model || !model.length) {\n this.model = [[item]]\n this.selectedItem = item.key\n this.requestUpdate()\n this.setupVisibility()\n return\n }\n const { midnight = Date.now() } = item\n const index = model.findIndex((i) => i[0].midnight === midnight)\n if (index >= 0) {\n this.pushSorted(model[index], item)\n } else {\n const position = model.findIndex((i) => ((i[0] && i[0].midnight) || 0) < midnight)\n model.splice(position, 0, [item])\n }\n if (select && item.key) {\n this.selectedItem = item.key\n }\n this.requestUpdate()\n this.setupVisibility()\n }\n\n protected sortHistory(history: IHttpHistory[]): IHttpHistory[][] {\n if (!Array.isArray(history) || !history.length) {\n return []\n }\n const result: IHttpHistory[][] = []\n const now = Date.now()\n history.forEach((current) => {\n const { midnight = now } = current\n const index = result.findIndex((i) => i[0].midnight === midnight)\n if (index >= 0) {\n this.pushSorted(result[index], current)\n } else if (result[0] && result[0][0] && result[0][0].midnight && result[0][0].midnight < midnight) {\n result.unshift([current])\n } else {\n result.push([current])\n }\n })\n return result\n }\n\n protected computeSelectedItem(): void {\n const { history, selectedItem } = this\n this.renderedItem = undefined\n if (!selectedItem || !Array.isArray(history)) {\n return\n }\n this.renderedItem = history.find((i) => i.key === selectedItem)\n }\n\n /**\n * Allows to push a history item into a right index depending on the `created` property\n * so the data processor can skip sorting each group after mutation.\n *\n * The item is inserted before an item that is older (has lower `created` property).\n *\n * @param list The list to insert the item to\n * @param item The item to insert.\n */\n protected pushSorted(list: IHttpHistory[], item: IHttpHistory): void {\n const older = list.findIndex((i) => i.created < item.created)\n if (older >= 0) {\n list.splice(older, 0, item)\n } else {\n // this item is the oldest\n list.push(item)\n }\n }\n\n protected handleSelection(e: CustomEvent): void {\n const item = e.detail.item as HTMLElement | undefined\n if (!item) {\n return\n }\n const { key } = item.dataset\n if (!key) {\n return\n }\n this.selectedItem = key\n }\n\n protected handleViewSelection(e: CustomEvent): void {\n if (!e.detail.selected) {\n return\n }\n const button = e.detail.button as SegmentedButton\n const view = button.dataset.value as ProjectHistoryView | undefined\n if (view) {\n this.view = view\n }\n }\n\n protected handleHistoryOption(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement\n const { option } = element.dataset\n if (!option) {\n return\n }\n if (option === 'clear') {\n this.triggerClearHistoryDialog()\n }\n }\n\n protected triggerClearHistoryDialog(): void {\n const dialog = this.shadowRoot?.querySelector('.clear-dialog') as UiDialog | null\n if (!dialog) {\n return\n }\n dialog.open = true\n }\n\n protected handleClearHistoryDialogResult(e: CustomEvent<UiDialogClosingReason>): void {\n if (e.detail.cancelled) {\n return\n }\n this.clearHistory()\n }\n\n async clearHistory(): Promise<void> {\n const { project, request } = this\n if (!project || !request) {\n return\n }\n // space parameter is filled by bindings.\n throw new Error(`Not implemented yet.`)\n // await Events.Store.History.clearRequest('', project, request, this)\n // SnackNotifications.notify('History cleared')\n // this.reset()\n }\n\n protected handleItemDelete(e: Event): void {\n const button = e.currentTarget as UiIconButton\n const { key } = button.dataset\n if (!key) {\n return\n }\n this.deleteHistoryItem(key)\n }\n\n async deleteHistoryItem(key: string): Promise<void> {\n if (!key) {\n return\n }\n const item = this.history.find((i) => i.key === key)\n if (!item) {\n return\n }\n throw new Error(`Not implemented yet.`)\n // await Events.Store.History.delete(key, this.request, this)\n // SnackNotifications.notify('History item deleted', {\n // actionLabel: 'Undo',\n // actionCallback: () => {\n // this.revertHistoryItemDelete(item)\n // },\n // timeout: 7000,\n // })\n }\n\n async revertHistoryItemDelete(item: IHttpHistory): Promise<void> {\n throw new Error(`Not implemented yet. ${item}`)\n // const info = SnackNotifications.notify('Reverting...', { persistent: true })\n // try {\n // await Events.Store.History.create(item, this)\n // SnackNotifications.cancel(info)\n // SnackNotifications.notify('Reverted history item.')\n // } catch (e) {\n // SnackNotifications.cancel(info)\n // SnackNotifications.notify('Unable to revert changes.')\n // }\n }\n\n protected override render(): TemplateResult | typeof nothing {\n const { model } = this\n if (!model || !model.length) {\n if (this.querying) {\n return this.renderLoader()\n }\n return nothing\n }\n return html` ${this.renderHeader()} ${this.renderView()} ${this.renderClearHistoryDialog()} `\n }\n\n protected renderLoader(): TemplateResult {\n return html`<progress></progress>`\n }\n\n protected renderHeader(): TemplateResult {\n return html`\n <div class=\"header\">\n ${this.renderHistoryDropdown()} ${this.renderHistoryOptions()} ${this.renderViewToggle()}\n </div>\n `\n }\n\n protected renderHistoryDropdown(): TemplateResult {\n const { model } = this\n const disabled = !model || !model.length\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n class=\"history-dropdown\"\n closeOnOutsideClick\n @select=\"${this.handleSelection}\"\n >\n <ui-button color=\"tonal\" ?disabled=\"${disabled}\">\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n History\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\" aria-label=\"History list\"> ${this.renderHistoryList()} </ui-list>\n </ui-dropdown-list>\n `\n }\n\n protected renderHistoryOptions(): TemplateResult {\n return html`\n <ui-dropdown-list @select=\"${this.handleHistoryOption}\" closeOnOutsideClick class=\"dropdown\">\n <ui-icon-button aria-label=\"Additional options\"\n ><ui-icon icon=\"moreVert\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" data-option=\"clear\" image=\"icon\" title=\"Deletes all history for the request\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"deleteOutline\"></ui-icon>\n Clear history\n </ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n `\n }\n\n protected renderHistoryList(): (TemplateResult | typeof nothing)[] | typeof nothing {\n const { model } = this\n if (!Array.isArray(model) || !model.length) {\n return nothing\n }\n return model.map((group) => this.renderHistoryGroup(group))\n }\n\n protected renderHistoryGroup(group: IHttpHistory[]): TemplateResult | typeof nothing {\n if (!group.length) {\n // this should not happen as the model is computed internally,\n // but I prefer to do just one check to not stop execution when error.\n return nothing\n }\n const [first] = group\n return html` ${this.renderHistoryGroupTitle(first)} ${group.map((item) => this.renderHistoryItem(item))} `\n }\n\n protected renderHistoryGroupTitle(item: IHttpHistory): TemplateResult {\n const { midnight = 0 } = item\n return html`\n <div class=\"history-group-title\">${relativeDay(midnight)}</div>\n <ui-divider type=\"inset\"></ui-divider>\n `\n }\n\n protected renderHistoryItem(item: IHttpHistory): TemplateResult | typeof nothing {\n const d = new Date(item.created)\n const isoTime = d.toISOString()\n\n const { log } = item\n const { request, response } = log\n const method = request && request.method\n const url = request && request.url\n if (!method || !url) {\n return nothing\n }\n const error = !response || ErrorResponse.isErrorResponse(response)\n\n let status = 0\n let statusText: string | undefined\n let duration = 0\n if (!error) {\n const typed = response as IResponse\n status = typed.status\n statusText = typed.statusText\n duration = typed.loadingTime\n }\n return html`\n <ui-list-item lines=\"two\" role=\"menuitem\" data-key=\"${item.key as string}\" data-kind=\"${item.kind}\">\n <div class=\"history-label\">\n <span class=\"label-value\">${statusTemplate(status, statusText)} ${duration} ms</span>\n ${this.renderHistoryItemDelete(item)}\n </div>\n <relative-time slot=\"supporting-text\" datetime=\"${isoTime}\"></relative-time>\n </ui-list-item>\n `\n }\n\n protected renderHistoryItemDelete(item: IHttpHistory): TemplateResult | typeof nothing {\n return html`\n <ui-icon-button\n class=\"delete\"\n aria-label=\"Delete request\"\n data-key=\"${item.key as string}\"\n data-kind=\"${item.kind}\"\n @click=\"${this.handleItemDelete}\"\n ><ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n `\n }\n\n protected renderView(): TemplateResult | string {\n const { view } = this\n if (view === ProjectHistoryView.analysis) {\n return this.renderAnalysis()\n }\n return this.renderLog()\n }\n\n protected renderLog(): TemplateResult | string {\n const { renderedItem } = this\n if (!renderedItem) {\n return ''\n }\n const typed = renderedItem as IHttpHistory\n const data = typed.log ? typed.log : (renderedItem as IRequestLog | RequestLog)\n return html` <http-request-log .httpLog=\"${data}\"></http-request-log> `\n }\n\n protected renderAnalysis(): TemplateResult | string {\n const { model } = this\n if (!model) {\n return ''\n }\n const chart = new HttpHistoryChart(model)\n return chart.durationPlot()\n }\n\n protected renderViewToggle(): TemplateResult {\n return html`\n <div class=\"view-toggle\">\n <ui-segmented-button-set @select=\"${this.handleViewSelection}\">\n <ui-segmented-button selected title=\"Shows response history\" data-value=\"history\"\n >History</ui-segmented-button\n >\n <ui-segmented-button title=\"Shows history analysis\" data-value=\"analysis\">Analysis</ui-segmented-button>\n </ui-segmented-button-set>\n </div>\n `\n }\n\n protected renderClearHistoryDialog(): TemplateResult {\n return html`\n <ui-dialog modal class=\"clear-dialog\" @close=\"${this.handleClearHistoryDialogResult}\">\n <ui-icon slot=\"icon\" icon=\"deleteOutline\"></ui-icon>\n <span slot=\"title\">Delete history?</span>\n <p>This will clear responses history for this request.</p>\n <ui-button color=\"text\" slot=\"button\" value=\"dismiss\">Cancel</ui-button>\n <ui-button color=\"text\" slot=\"button\" value=\"confirm\">Accept</ui-button>\n </ui-dialog>\n `\n }\n}\n"]}
@@ -6,7 +6,7 @@ import type { IRequestLog } from '@api-client/core/models/RequestLog.js';
6
6
  import '@github/relative-time-element';
7
7
  import '../../define/http/http-request-log.js';
8
8
  import '../../md/icons/ui-icon.js';
9
- import '../../md/button/ui-filled-tonal-button.js';
9
+ import '../../md/button/ui-button.js';
10
10
  import '../../md/dropdown-list/ui-dropdown-list.js';
11
11
  import '../../md/list/ui-list.js';
12
12
  import '../../md/list/ui-list-item.js';
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectRunReport.d.ts","sourceRoot":"","sources":["../../../../src/elements/project/ProjectRunReport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectRunReport.d.ts","sourceRoot":"","sources":["../../../../src/elements/project/ProjectRunReport.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import { ErrorResponse } from '@api-client/core/models/ErrorResponse.js';
8
8
  import '@github/relative-time-element';
9
9
  import '../../define/http/http-request-log.js';
10
10
  import '../../md/icons/ui-icon.js';
11
- import '../../md/button/ui-filled-tonal-button.js';
11
+ import '../../md/button/ui-button.js';
12
12
  import '../../md/dropdown-list/ui-dropdown-list.js';
13
13
  import '../../md/list/ui-list.js';
14
14
  import '../../md/list/ui-list-item.js';
@@ -246,10 +246,10 @@ let ProjectRunReport = (() => {
246
246
  closeOnOutsideClick
247
247
  @select="${this.handleIterationSelection}"
248
248
  >
249
- <ui-filled-tonal-button>
249
+ <ui-button color="tonal">
250
250
  <ui-icon slot="icon" icon="arrowDropDown"></ui-icon>
251
251
  Iteration #${index}
252
- </ui-filled-tonal-button>
252
+ </ui-button>
253
253
  <ui-list slot="dropdown" role="menu" aria-label="Iterations list">
254
254
  ${iterations.map((current) => this.renderIterationOption(current.index))}
255
255
  </ui-list>
@@ -285,20 +285,20 @@ let ProjectRunReport = (() => {
285
285
  closeOnOutsideClick
286
286
  @select="${this.handleRequestSelection}"
287
287
  >
288
- <ui-filled-tonal-button title="${title}">
288
+ <ui-button color="tonal" title="${title}">
289
289
  <ui-icon slot="icon" icon="arrowDropDown"></ui-icon>
290
290
  <span class="request-title-dropdown">${title}</span>
291
- </ui-filled-tonal-button>
291
+ </ui-button>
292
292
  <ui-list slot="dropdown" role="menu" aria-label="History list"> ${options} </ui-list>
293
293
  </ui-dropdown-list>
294
294
  `;
295
295
  }
296
296
  renderEmptyRequestsList() {
297
297
  return html `
298
- <ui-filled-tonal-button disabled>
298
+ <ui-button color="tonal" disabled>
299
299
  <ui-icon slot="icon" icon="arrowDropDown"></ui-icon>
300
300
  No requests
301
- </ui-filled-tonal-button>
301
+ </ui-button>
302
302
  `;
303
303
  }
304
304
  renderRequestsOption(item, index) {
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectRunReport.js","sourceRoot":"","sources":["../../../../src/elements/project/ProjectRunReport.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, TemplateResult, html, PropertyValues, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { statusTemplate } from '../http/HttpStatus.js'\nimport { RequestLogView } from '../http/RequestLog.js'\nimport type { ISegmentedButtonSelectionDetail } from '../../md/segmented-button/internals/SegmentedButtonsSet.js'\nimport type { UiSegmentedButtonElement } from '../../md/segmented-button/ui-segmented-button.js'\nimport type { IProjectExecutionIteration, IProjectExecutionLog } from '@api-client/core/models/ProjectExecution.js'\nimport type { IRequestLog } from '@api-client/core/models/RequestLog.js'\nimport { ErrorResponse } from '@api-client/core/models/ErrorResponse.js'\nimport type { IResponse } from '@api-client/core/models/Response.js'\n\nimport '@github/relative-time-element'\nimport '../../define/http/http-request-log.js'\nimport '../../md/icons/ui-icon.js'\nimport '../../md/button/ui-filled-tonal-button.js'\nimport '../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../md/list/ui-list.js'\nimport '../../md/list/ui-list-item.js'\nimport '../../md/segmented-button/ui-segmented-button.js'\nimport '../../md/segmented-button/ui-segmented-button-set.js'\n\nexport enum ProjectRunReportView {\n summary = 'summary',\n details = 'details',\n}\n\n/**\n * An element that renders the execution log of the project runner with the IProjectExecutionLog.\n */\nexport default class ProjectRunReport extends LitElement {\n @property({ type: Object }) accessor report: IProjectExecutionLog | undefined\n\n /**\n * The index of the selected iteration, if any.\n */\n @state() protected accessor selectedIteration: number | undefined\n\n /**\n * The index of the selected request, if any\n */\n @state() protected accessor selectedRequest: number | undefined\n\n /**\n * The currently rendered iteration.\n */\n @state() protected accessor currentIteration: IProjectExecutionIteration | undefined\n\n @state() protected accessor currentLog: IRequestLog | undefined\n\n @state() protected accessor view: ProjectRunReportView = ProjectRunReportView.summary\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n super.updated(cp)\n if (cp.has('report')) {\n this.processReport()\n }\n }\n\n protected processReport(): void {\n const { report } = this\n if (!report) {\n this.selectedIteration = undefined\n this.selectedRequest = undefined\n this.currentIteration = undefined\n this.currentLog = undefined\n return\n }\n this.selectedIteration = 0\n this.selectedRequest = 0\n const [iteration] = report.iterations\n this.currentIteration = iteration\n this.currentLog = iteration && iteration.executed && iteration.executed[0]\n }\n\n protected handleIterationSelection(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement\n const { index } = element.dataset\n if (!index) {\n return\n }\n const typed = Number(index)\n if (Number.isNaN(typed)) {\n return\n }\n this.selectIteration(typed)\n }\n\n selectIteration(index: number): void {\n const { report } = this\n if (!report) {\n return\n }\n const item = report.iterations[index]\n if (!item) {\n return\n }\n this.selectedIteration = index\n this.currentIteration = item\n this.selectedRequest = 0\n this.currentLog = item.executed && item.executed[0]\n }\n\n protected handleRequestSelection(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement\n const { index } = element.dataset\n if (!index) {\n return\n }\n const typed = Number(index)\n if (Number.isNaN(typed)) {\n return\n }\n this.selectRequest(typed)\n }\n\n selectRequest(index: number): void {\n const { currentIteration } = this\n if (!currentIteration) {\n return\n }\n const item = currentIteration.executed[index]\n if (!item) {\n return\n }\n this.selectedRequest = index\n this.currentLog = item\n }\n\n protected handleViewSelection(e: CustomEvent<ISegmentedButtonSelectionDetail>): void {\n if (!e.detail.selected) {\n return\n }\n const button = e.detail.button as UiSegmentedButtonElement\n const view = button.dataset.value as ProjectRunReportView | undefined\n if (view) {\n this.view = view\n }\n }\n\n protected handleLinkClick(e: Event): void {\n const node = e.target as HTMLElement\n const { iterationIndex, requestIndex, target } = node.dataset\n if (!requestIndex || !iterationIndex) {\n return\n }\n const iteration = Number(iterationIndex)\n const request = Number(requestIndex)\n if (Number.isNaN(request) || Number.isNaN(iteration)) {\n return\n }\n this.selectIteration(iteration)\n this.selectRequest(request)\n this.view = ProjectRunReportView.details\n if (target) {\n this.selectLogView(target as RequestLogView)\n }\n }\n\n protected handleLinkKeyDown(e: KeyboardEvent): void {\n if (['Enter', 'Space'].includes(e.code)) {\n this.handleLinkClick(e)\n }\n }\n\n protected async selectLogView(view: RequestLogView): Promise<void> {\n await this.updateComplete\n const node = this.shadowRoot?.querySelector('http-request-log')\n if (!node) {\n return\n }\n node.view = view\n }\n\n protected override render(): TemplateResult {\n const { report } = this\n if (!report) {\n return html``\n }\n return html` ${this.renderHeader(report)} ${this.renderView()} `\n }\n\n protected renderHeader(report: IProjectExecutionLog): TemplateResult {\n return html` <div class=\"header\">${this.renderCurrentSelectors(report)} ${this.renderViewToggle()}</div> `\n }\n\n protected renderCurrentSelectors(report: IProjectExecutionLog): TemplateResult | typeof nothing {\n if (this.view === ProjectRunReportView.summary) {\n return nothing\n }\n const hasIterations = report.iterations.length > 1\n return html`\n ${hasIterations ? this.renderInteractionsList(report.iterations) : nothing} ${this.renderRequestsList()}\n `\n }\n\n protected renderViewToggle(): TemplateResult {\n const { view } = this\n return html`\n <div class=\"view-toggle\">\n <ui-segmented-button-set @select=\"${this.handleViewSelection}\">\n <ui-segmented-button\n .selected=\"${view === ProjectRunReportView.summary}\"\n title=\"Shows summary of the run report\"\n data-value=\"summary\"\n >Summary</ui-segmented-button\n >\n <ui-segmented-button\n .selected=\"${view === ProjectRunReportView.details}\"\n title=\"Shows detailed response information for each request\"\n data-value=\"details\"\n >Details</ui-segmented-button\n >\n </ui-segmented-button-set>\n </div>\n `\n }\n\n protected renderInteractionsList(iterations: IProjectExecutionIteration[]): TemplateResult {\n const { selectedIteration = 0 } = this\n const iteration = iterations[selectedIteration]\n const index = iteration ? iteration.index + 1 : 1\n\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n class=\"iterations-dropdown\"\n closeOnOutsideClick\n @select=\"${this.handleIterationSelection}\"\n >\n <ui-filled-tonal-button>\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n Iteration #${index}\n </ui-filled-tonal-button>\n <ui-list slot=\"dropdown\" role=\"menu\" aria-label=\"Iterations list\">\n ${iterations.map((current) => this.renderIterationOption(current.index))}\n </ui-list>\n </ui-dropdown-list>\n `\n }\n\n protected renderIterationOption(index: number): TemplateResult {\n const classes = {\n 'iteration-option': true,\n 'highlight': this.selectedIteration === index,\n }\n return html`\n <ui-list-item role=\"menuitem\" data-index=\"${index}\" class=\"${classMap(classes)}\">\n Iteration #${index + 1}\n </ui-list-item>\n `\n }\n\n protected renderRequestsList(): TemplateResult {\n const { currentIteration, selectedRequest = 0 } = this\n if (!currentIteration) {\n return this.renderEmptyRequestsList()\n }\n if (!currentIteration.executed || !currentIteration.executed.length) {\n return this.renderEmptyRequestsList()\n }\n const options = currentIteration.executed.map((item, index) => this.renderRequestsOption(item, index))\n const item = currentIteration.executed[selectedRequest]\n const title = (item.request && item.request.url) || `Request #${selectedRequest}`\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n class=\"history-dropdown\"\n closeOnOutsideClick\n @select=\"${this.handleRequestSelection}\"\n >\n <ui-filled-tonal-button title=\"${title}\">\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n <span class=\"request-title-dropdown\">${title}</span>\n </ui-filled-tonal-button>\n <ui-list slot=\"dropdown\" role=\"menu\" aria-label=\"History list\"> ${options} </ui-list>\n </ui-dropdown-list>\n `\n }\n\n protected renderEmptyRequestsList(): TemplateResult {\n return html`\n <ui-filled-tonal-button disabled>\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n No requests\n </ui-filled-tonal-button>\n `\n }\n\n protected renderRequestsOption(item: IRequestLog, index: number): TemplateResult {\n const title = (item.request && item.request.url) || `Request #${index}`\n const error = !item.response || ErrorResponse.isErrorResponse(item.response)\n const classes = {\n 'history-option': true,\n error,\n 'highlight': this.selectedRequest === index,\n }\n let status = 0\n let statusText: string | undefined\n let duration = 0\n if (!error) {\n const typed = item.response as IResponse\n status = typed.status\n statusText = typed.statusText\n duration = typed.loadingTime\n }\n return html`\n <ui-list-item lines=\"two\" role=\"menuitem\" data-index=\"${index}\" class=\"${classMap(classes)}\">\n <div class=\"history-label\">\n <span class=\"label-value\">${statusTemplate(status, statusText)} ${duration} ms</span>\n </div>\n <span slot=\"supporting-text\">${title}</span>\n </ui-list-item>\n `\n }\n\n protected renderView(): TemplateResult {\n switch (this.view) {\n case ProjectRunReportView.details:\n return this.renderLog()\n case ProjectRunReportView.summary:\n return this.renderSummary()\n default:\n return html`<p>Invalid view selection.</p>`\n }\n }\n\n protected renderLog(): TemplateResult {\n const { currentLog } = this\n return html`\n <div class=\"response\">\n ${currentLog ? html`<http-request-log .httpLog=\"${currentLog}\"></http-request-log>` : ''}\n </div>\n `\n }\n\n protected renderSummary(): TemplateResult {\n const { report } = this\n if (!report) {\n return html`<p>Report is not set.</p>`\n }\n const { iterations, ended } = report\n const de = new Date(ended)\n return html`\n <div class=\"summary-header\">\n Run ended <relative-time slot=\"supporting-text\" datetime=\"${de.toISOString()}\"></relative-time>\n </div>\n ${iterations.map((iteration) => this.renderIterationSummary(iteration))}\n `\n }\n\n protected renderIterationSummary(iteration: IProjectExecutionIteration): TemplateResult {\n const { error, executed, index } = iteration\n return html` ${error ? this.renderIterationError() : this.renderIterationSummaryTable(index, executed)} `\n }\n\n protected renderIterationError(): TemplateResult {\n return html` <p class=\"iteration-error\">The iteration was not executed due to an error.</p> `\n }\n\n protected renderIterationSummaryTable(iterationIndex: number, executed: IRequestLog[]): TemplateResult {\n const failedIndex: string[] = []\n executed.forEach((item, index) => {\n const { assertions = [] } = item\n const hasFailed = assertions.find((i) => !i.ok)\n if (hasFailed) {\n failedIndex.push(`#${index + 1}`)\n }\n })\n const formatter = new Intl.ListFormat(undefined, { style: 'long', type: 'conjunction' })\n return html`\n <table class=\"execution-table\">\n <caption>\n Iteration #${iterationIndex + 1}. Failed requests:\n ${failedIndex.length ? formatter.format(failedIndex) : 'none'}.\n </caption>\n <thead>\n <tr>\n <th scope=\"col\" class=\"request\">HTTP request</th>\n <th scope=\"col\" class=\"status\">Status</th>\n <th scope=\"col\" class=\"time\">Time</th>\n <th scope=\"col\" class=\"assertions\">Assertions</th>\n </tr>\n </thead>\n <tbody>\n ${executed.map((item, requestIndex) => this.renderSummaryTableRow(item, iterationIndex, requestIndex))}\n </tbody>\n </table>\n `\n }\n\n renderSummaryTableRow(item: IRequestLog, iterationIndex: number, requestIndex: number): TemplateResult {\n const { assertions = [], request, response } = item\n if (!request) {\n return html`\n <tr>\n <td colspan=\"3\">The request was not executed (missing request info)</td>\n </tr>\n `\n }\n const error = !item.response || ErrorResponse.isErrorResponse(item.response)\n let status: TemplateResult\n let duration = 0\n if (error) {\n status = html`Errored`\n } else if (response) {\n status = statusTemplate(response.status, response.statusText)\n duration = (response as IResponse).loadingTime\n } else {\n status = html`Unknown`\n }\n const successAssertions = (item.assertions || []).filter((i) => i.ok)\n const hasFailed = assertions.length - successAssertions.length !== 0\n return html`\n <tr>\n <td class=\"request\">\n <span class=\"http-label pill\" data-method=\"${(request.method || 'get').toLowerCase()}\"\n >${request.method}</span\n >\n <span\n class=\"link\"\n title=\"Open details\"\n data-iteration-index=\"${iterationIndex}\"\n data-request-index=\"${requestIndex}\"\n @click=\"${this.handleLinkClick}\"\n @keydown=\"${this.handleLinkKeyDown}\"\n tabindex=\"0\"\n >${request.url}</span\n >\n </td>\n <td class=\"status\">${status}</td>\n <td class=\"time\">${duration}ms</td>\n <td class=\"assertions\">\n <span\n class=\"link\"\n title=\"Open assertion details\"\n data-iteration-index=\"${iterationIndex}\"\n data-request-index=\"${requestIndex}\"\n data-target=\"${RequestLogView.assertions}\"\n @click=\"${this.handleLinkClick}\"\n @keydown=\"${this.handleLinkKeyDown}\"\n tabindex=\"0\"\n >${successAssertions.length}/${assertions.length}</span\n >\n ${hasFailed ? html`<div class=\"badge small\"></div>` : ''}\n </td>\n </tr>\n `\n }\n}\n"]}
1
+ {"version":3,"file":"ProjectRunReport.js","sourceRoot":"","sources":["../../../../src/elements/project/ProjectRunReport.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, TemplateResult, html, PropertyValues, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { statusTemplate } from '../http/HttpStatus.js'\nimport { RequestLogView } from '../http/RequestLog.js'\nimport type { ISegmentedButtonSelectionDetail } from '../../md/segmented-button/internals/SegmentedButtonsSet.js'\nimport type { UiSegmentedButtonElement } from '../../md/segmented-button/ui-segmented-button.js'\nimport type { IProjectExecutionIteration, IProjectExecutionLog } from '@api-client/core/models/ProjectExecution.js'\nimport type { IRequestLog } from '@api-client/core/models/RequestLog.js'\nimport { ErrorResponse } from '@api-client/core/models/ErrorResponse.js'\nimport type { IResponse } from '@api-client/core/models/Response.js'\n\nimport '@github/relative-time-element'\nimport '../../define/http/http-request-log.js'\nimport '../../md/icons/ui-icon.js'\nimport '../../md/button/ui-button.js'\nimport '../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../md/list/ui-list.js'\nimport '../../md/list/ui-list-item.js'\nimport '../../md/segmented-button/ui-segmented-button.js'\nimport '../../md/segmented-button/ui-segmented-button-set.js'\n\nexport enum ProjectRunReportView {\n summary = 'summary',\n details = 'details',\n}\n\n/**\n * An element that renders the execution log of the project runner with the IProjectExecutionLog.\n */\nexport default class ProjectRunReport extends LitElement {\n @property({ type: Object }) accessor report: IProjectExecutionLog | undefined\n\n /**\n * The index of the selected iteration, if any.\n */\n @state() protected accessor selectedIteration: number | undefined\n\n /**\n * The index of the selected request, if any\n */\n @state() protected accessor selectedRequest: number | undefined\n\n /**\n * The currently rendered iteration.\n */\n @state() protected accessor currentIteration: IProjectExecutionIteration | undefined\n\n @state() protected accessor currentLog: IRequestLog | undefined\n\n @state() protected accessor view: ProjectRunReportView = ProjectRunReportView.summary\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n super.updated(cp)\n if (cp.has('report')) {\n this.processReport()\n }\n }\n\n protected processReport(): void {\n const { report } = this\n if (!report) {\n this.selectedIteration = undefined\n this.selectedRequest = undefined\n this.currentIteration = undefined\n this.currentLog = undefined\n return\n }\n this.selectedIteration = 0\n this.selectedRequest = 0\n const [iteration] = report.iterations\n this.currentIteration = iteration\n this.currentLog = iteration && iteration.executed && iteration.executed[0]\n }\n\n protected handleIterationSelection(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement\n const { index } = element.dataset\n if (!index) {\n return\n }\n const typed = Number(index)\n if (Number.isNaN(typed)) {\n return\n }\n this.selectIteration(typed)\n }\n\n selectIteration(index: number): void {\n const { report } = this\n if (!report) {\n return\n }\n const item = report.iterations[index]\n if (!item) {\n return\n }\n this.selectedIteration = index\n this.currentIteration = item\n this.selectedRequest = 0\n this.currentLog = item.executed && item.executed[0]\n }\n\n protected handleRequestSelection(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement\n const { index } = element.dataset\n if (!index) {\n return\n }\n const typed = Number(index)\n if (Number.isNaN(typed)) {\n return\n }\n this.selectRequest(typed)\n }\n\n selectRequest(index: number): void {\n const { currentIteration } = this\n if (!currentIteration) {\n return\n }\n const item = currentIteration.executed[index]\n if (!item) {\n return\n }\n this.selectedRequest = index\n this.currentLog = item\n }\n\n protected handleViewSelection(e: CustomEvent<ISegmentedButtonSelectionDetail>): void {\n if (!e.detail.selected) {\n return\n }\n const button = e.detail.button as UiSegmentedButtonElement\n const view = button.dataset.value as ProjectRunReportView | undefined\n if (view) {\n this.view = view\n }\n }\n\n protected handleLinkClick(e: Event): void {\n const node = e.target as HTMLElement\n const { iterationIndex, requestIndex, target } = node.dataset\n if (!requestIndex || !iterationIndex) {\n return\n }\n const iteration = Number(iterationIndex)\n const request = Number(requestIndex)\n if (Number.isNaN(request) || Number.isNaN(iteration)) {\n return\n }\n this.selectIteration(iteration)\n this.selectRequest(request)\n this.view = ProjectRunReportView.details\n if (target) {\n this.selectLogView(target as RequestLogView)\n }\n }\n\n protected handleLinkKeyDown(e: KeyboardEvent): void {\n if (['Enter', 'Space'].includes(e.code)) {\n this.handleLinkClick(e)\n }\n }\n\n protected async selectLogView(view: RequestLogView): Promise<void> {\n await this.updateComplete\n const node = this.shadowRoot?.querySelector('http-request-log')\n if (!node) {\n return\n }\n node.view = view\n }\n\n protected override render(): TemplateResult {\n const { report } = this\n if (!report) {\n return html``\n }\n return html` ${this.renderHeader(report)} ${this.renderView()} `\n }\n\n protected renderHeader(report: IProjectExecutionLog): TemplateResult {\n return html` <div class=\"header\">${this.renderCurrentSelectors(report)} ${this.renderViewToggle()}</div> `\n }\n\n protected renderCurrentSelectors(report: IProjectExecutionLog): TemplateResult | typeof nothing {\n if (this.view === ProjectRunReportView.summary) {\n return nothing\n }\n const hasIterations = report.iterations.length > 1\n return html`\n ${hasIterations ? this.renderInteractionsList(report.iterations) : nothing} ${this.renderRequestsList()}\n `\n }\n\n protected renderViewToggle(): TemplateResult {\n const { view } = this\n return html`\n <div class=\"view-toggle\">\n <ui-segmented-button-set @select=\"${this.handleViewSelection}\">\n <ui-segmented-button\n .selected=\"${view === ProjectRunReportView.summary}\"\n title=\"Shows summary of the run report\"\n data-value=\"summary\"\n >Summary</ui-segmented-button\n >\n <ui-segmented-button\n .selected=\"${view === ProjectRunReportView.details}\"\n title=\"Shows detailed response information for each request\"\n data-value=\"details\"\n >Details</ui-segmented-button\n >\n </ui-segmented-button-set>\n </div>\n `\n }\n\n protected renderInteractionsList(iterations: IProjectExecutionIteration[]): TemplateResult {\n const { selectedIteration = 0 } = this\n const iteration = iterations[selectedIteration]\n const index = iteration ? iteration.index + 1 : 1\n\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n class=\"iterations-dropdown\"\n closeOnOutsideClick\n @select=\"${this.handleIterationSelection}\"\n >\n <ui-button color=\"tonal\">\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n Iteration #${index}\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\" aria-label=\"Iterations list\">\n ${iterations.map((current) => this.renderIterationOption(current.index))}\n </ui-list>\n </ui-dropdown-list>\n `\n }\n\n protected renderIterationOption(index: number): TemplateResult {\n const classes = {\n 'iteration-option': true,\n 'highlight': this.selectedIteration === index,\n }\n return html`\n <ui-list-item role=\"menuitem\" data-index=\"${index}\" class=\"${classMap(classes)}\">\n Iteration #${index + 1}\n </ui-list-item>\n `\n }\n\n protected renderRequestsList(): TemplateResult {\n const { currentIteration, selectedRequest = 0 } = this\n if (!currentIteration) {\n return this.renderEmptyRequestsList()\n }\n if (!currentIteration.executed || !currentIteration.executed.length) {\n return this.renderEmptyRequestsList()\n }\n const options = currentIteration.executed.map((item, index) => this.renderRequestsOption(item, index))\n const item = currentIteration.executed[selectedRequest]\n const title = (item.request && item.request.url) || `Request #${selectedRequest}`\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n class=\"history-dropdown\"\n closeOnOutsideClick\n @select=\"${this.handleRequestSelection}\"\n >\n <ui-button color=\"tonal\" title=\"${title}\">\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n <span class=\"request-title-dropdown\">${title}</span>\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\" aria-label=\"History list\"> ${options} </ui-list>\n </ui-dropdown-list>\n `\n }\n\n protected renderEmptyRequestsList(): TemplateResult {\n return html`\n <ui-button color=\"tonal\" disabled>\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n No requests\n </ui-button>\n `\n }\n\n protected renderRequestsOption(item: IRequestLog, index: number): TemplateResult {\n const title = (item.request && item.request.url) || `Request #${index}`\n const error = !item.response || ErrorResponse.isErrorResponse(item.response)\n const classes = {\n 'history-option': true,\n error,\n 'highlight': this.selectedRequest === index,\n }\n let status = 0\n let statusText: string | undefined\n let duration = 0\n if (!error) {\n const typed = item.response as IResponse\n status = typed.status\n statusText = typed.statusText\n duration = typed.loadingTime\n }\n return html`\n <ui-list-item lines=\"two\" role=\"menuitem\" data-index=\"${index}\" class=\"${classMap(classes)}\">\n <div class=\"history-label\">\n <span class=\"label-value\">${statusTemplate(status, statusText)} ${duration} ms</span>\n </div>\n <span slot=\"supporting-text\">${title}</span>\n </ui-list-item>\n `\n }\n\n protected renderView(): TemplateResult {\n switch (this.view) {\n case ProjectRunReportView.details:\n return this.renderLog()\n case ProjectRunReportView.summary:\n return this.renderSummary()\n default:\n return html`<p>Invalid view selection.</p>`\n }\n }\n\n protected renderLog(): TemplateResult {\n const { currentLog } = this\n return html`\n <div class=\"response\">\n ${currentLog ? html`<http-request-log .httpLog=\"${currentLog}\"></http-request-log>` : ''}\n </div>\n `\n }\n\n protected renderSummary(): TemplateResult {\n const { report } = this\n if (!report) {\n return html`<p>Report is not set.</p>`\n }\n const { iterations, ended } = report\n const de = new Date(ended)\n return html`\n <div class=\"summary-header\">\n Run ended <relative-time slot=\"supporting-text\" datetime=\"${de.toISOString()}\"></relative-time>\n </div>\n ${iterations.map((iteration) => this.renderIterationSummary(iteration))}\n `\n }\n\n protected renderIterationSummary(iteration: IProjectExecutionIteration): TemplateResult {\n const { error, executed, index } = iteration\n return html` ${error ? this.renderIterationError() : this.renderIterationSummaryTable(index, executed)} `\n }\n\n protected renderIterationError(): TemplateResult {\n return html` <p class=\"iteration-error\">The iteration was not executed due to an error.</p> `\n }\n\n protected renderIterationSummaryTable(iterationIndex: number, executed: IRequestLog[]): TemplateResult {\n const failedIndex: string[] = []\n executed.forEach((item, index) => {\n const { assertions = [] } = item\n const hasFailed = assertions.find((i) => !i.ok)\n if (hasFailed) {\n failedIndex.push(`#${index + 1}`)\n }\n })\n const formatter = new Intl.ListFormat(undefined, { style: 'long', type: 'conjunction' })\n return html`\n <table class=\"execution-table\">\n <caption>\n Iteration #${iterationIndex + 1}. Failed requests:\n ${failedIndex.length ? formatter.format(failedIndex) : 'none'}.\n </caption>\n <thead>\n <tr>\n <th scope=\"col\" class=\"request\">HTTP request</th>\n <th scope=\"col\" class=\"status\">Status</th>\n <th scope=\"col\" class=\"time\">Time</th>\n <th scope=\"col\" class=\"assertions\">Assertions</th>\n </tr>\n </thead>\n <tbody>\n ${executed.map((item, requestIndex) => this.renderSummaryTableRow(item, iterationIndex, requestIndex))}\n </tbody>\n </table>\n `\n }\n\n renderSummaryTableRow(item: IRequestLog, iterationIndex: number, requestIndex: number): TemplateResult {\n const { assertions = [], request, response } = item\n if (!request) {\n return html`\n <tr>\n <td colspan=\"3\">The request was not executed (missing request info)</td>\n </tr>\n `\n }\n const error = !item.response || ErrorResponse.isErrorResponse(item.response)\n let status: TemplateResult\n let duration = 0\n if (error) {\n status = html`Errored`\n } else if (response) {\n status = statusTemplate(response.status, response.statusText)\n duration = (response as IResponse).loadingTime\n } else {\n status = html`Unknown`\n }\n const successAssertions = (item.assertions || []).filter((i) => i.ok)\n const hasFailed = assertions.length - successAssertions.length !== 0\n return html`\n <tr>\n <td class=\"request\">\n <span class=\"http-label pill\" data-method=\"${(request.method || 'get').toLowerCase()}\"\n >${request.method}</span\n >\n <span\n class=\"link\"\n title=\"Open details\"\n data-iteration-index=\"${iterationIndex}\"\n data-request-index=\"${requestIndex}\"\n @click=\"${this.handleLinkClick}\"\n @keydown=\"${this.handleLinkKeyDown}\"\n tabindex=\"0\"\n >${request.url}</span\n >\n </td>\n <td class=\"status\">${status}</td>\n <td class=\"time\">${duration}ms</td>\n <td class=\"assertions\">\n <span\n class=\"link\"\n title=\"Open assertion details\"\n data-iteration-index=\"${iterationIndex}\"\n data-request-index=\"${requestIndex}\"\n data-target=\"${RequestLogView.assertions}\"\n @click=\"${this.handleLinkClick}\"\n @keydown=\"${this.handleLinkKeyDown}\"\n tabindex=\"0\"\n >${successAssertions.length}/${assertions.length}</span\n >\n ${hasFailed ? html`<div class=\"badge small\"></div>` : ''}\n </td>\n </tr>\n `\n }\n}\n"]}
@@ -9,8 +9,7 @@ import '@github/relative-time-element';
9
9
  import '../../define/http-project/project-run-report.js';
10
10
  import '../../md/checkbox/ui-checkbox.js';
11
11
  import '../../md/text-field/ui-filled-text-field.js';
12
- import '../../md/button/ui-filled-button.js';
13
- import '../../md/button/ui-filled-tonal-button.js';
12
+ import '../../md/button/ui-button.js';
14
13
  import '../../md/progress/ui-progress.js';
15
14
  import '../../md/icons/ui-icon.js';
16
15
  import '../../md/dropdown-list/ui-dropdown-list.js';