@api-client/ui 0.2.13 → 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 (312) 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/http/BodyEditor.d.ts +1 -3
  42. package/build/src/elements/http/BodyEditor.d.ts.map +1 -1
  43. package/build/src/elements/http/BodyEditor.js +25 -20
  44. package/build/src/elements/http/BodyEditor.js.map +1 -1
  45. package/build/src/elements/http/BodyMultipartEditor.d.ts +1 -1
  46. package/build/src/elements/http/BodyMultipartEditor.d.ts.map +1 -1
  47. package/build/src/elements/http/BodyMultipartEditor.js +3 -3
  48. package/build/src/elements/http/BodyMultipartEditor.js.map +1 -1
  49. package/build/src/elements/http/CertificateAdd.element.d.ts +1 -3
  50. package/build/src/elements/http/CertificateAdd.element.d.ts.map +1 -1
  51. package/build/src/elements/http/CertificateAdd.element.js +6 -10
  52. package/build/src/elements/http/CertificateAdd.element.js.map +1 -1
  53. package/build/src/elements/http/HeadersForm.d.ts +1 -1
  54. package/build/src/elements/http/HeadersForm.d.ts.map +1 -1
  55. package/build/src/elements/http/HeadersForm.js +3 -3
  56. package/build/src/elements/http/HeadersForm.js.map +1 -1
  57. package/build/src/elements/http/HttpAssertions.element.d.ts +1 -1
  58. package/build/src/elements/http/HttpAssertions.element.d.ts.map +1 -1
  59. package/build/src/elements/http/HttpAssertions.element.js +2 -2
  60. package/build/src/elements/http/HttpAssertions.element.js.map +1 -1
  61. package/build/src/elements/http/HttpFlows.element.d.ts +1 -1
  62. package/build/src/elements/http/HttpFlows.element.d.ts.map +1 -1
  63. package/build/src/elements/http/HttpFlows.element.js +6 -6
  64. package/build/src/elements/http/HttpFlows.element.js.map +1 -1
  65. package/build/src/elements/http/RequestEditor.d.ts +1 -3
  66. package/build/src/elements/http/RequestEditor.d.ts.map +1 -1
  67. package/build/src/elements/http/RequestEditor.js +10 -11
  68. package/build/src/elements/http/RequestEditor.js.map +1 -1
  69. package/build/src/elements/http/UrlParamsForm.d.ts +1 -1
  70. package/build/src/elements/http/UrlParamsForm.d.ts.map +1 -1
  71. package/build/src/elements/http/UrlParamsForm.js +4 -4
  72. package/build/src/elements/http/UrlParamsForm.js.map +1 -1
  73. package/build/src/elements/project/HttpProjectRequest.d.ts +1 -1
  74. package/build/src/elements/project/HttpProjectRequest.d.ts.map +1 -1
  75. package/build/src/elements/project/HttpProjectRequest.js +3 -3
  76. package/build/src/elements/project/HttpProjectRequest.js.map +1 -1
  77. package/build/src/elements/project/HttpProjectRequestHistory.d.ts +1 -2
  78. package/build/src/elements/project/HttpProjectRequestHistory.d.ts.map +1 -1
  79. package/build/src/elements/project/HttpProjectRequestHistory.js +5 -6
  80. package/build/src/elements/project/HttpProjectRequestHistory.js.map +1 -1
  81. package/build/src/elements/project/ProjectRunReport.d.ts +1 -1
  82. package/build/src/elements/project/ProjectRunReport.d.ts.map +1 -1
  83. package/build/src/elements/project/ProjectRunReport.js +7 -7
  84. package/build/src/elements/project/ProjectRunReport.js.map +1 -1
  85. package/build/src/elements/project/ProjectRunner.d.ts +1 -2
  86. package/build/src/elements/project/ProjectRunner.d.ts.map +1 -1
  87. package/build/src/elements/project/ProjectRunner.js +4 -5
  88. package/build/src/elements/project/ProjectRunner.js.map +1 -1
  89. package/build/src/md/button/internals/base.d.ts +98 -0
  90. package/build/src/md/button/internals/base.d.ts.map +1 -0
  91. package/build/src/md/button/internals/base.js +353 -0
  92. package/build/src/md/button/internals/base.js.map +1 -0
  93. package/build/src/md/button/internals/button.d.ts +7 -75
  94. package/build/src/md/button/internals/button.d.ts.map +1 -1
  95. package/build/src/md/button/internals/button.js +18 -247
  96. package/build/src/md/button/internals/button.js.map +1 -1
  97. package/build/src/md/button/internals/{button-styles.d.ts → button.styles.d.ts} +1 -1
  98. package/build/src/md/button/internals/button.styles.d.ts.map +1 -0
  99. package/build/src/md/button/internals/button.styles.js +319 -0
  100. package/build/src/md/button/internals/button.styles.js.map +1 -0
  101. package/build/src/md/button/internals/group.d.ts +54 -0
  102. package/build/src/md/button/internals/group.d.ts.map +1 -0
  103. package/build/src/md/button/internals/group.js +157 -0
  104. package/build/src/md/button/internals/group.js.map +1 -0
  105. package/build/src/md/button/internals/{text-button.styles.d.ts → group.styles.d.ts} +1 -1
  106. package/build/src/md/button/internals/group.styles.d.ts.map +1 -0
  107. package/build/src/md/button/internals/group.styles.js +102 -0
  108. package/build/src/md/button/internals/group.styles.js.map +1 -0
  109. package/build/src/md/button/ui-button-group.d.ts +11 -0
  110. package/build/src/md/button/ui-button-group.d.ts.map +1 -0
  111. package/build/src/md/{icon-button/ui-filled-icon-button.js → button/ui-button-group.js} +10 -11
  112. package/build/src/md/button/ui-button-group.js.map +1 -0
  113. package/build/src/md/button/ui-button.d.ts +14 -0
  114. package/build/src/md/button/ui-button.d.ts.map +1 -0
  115. package/build/src/md/button/{ui-text-button.js → ui-button.js} +10 -11
  116. package/build/src/md/button/ui-button.js.map +1 -0
  117. package/build/src/md/dialog/internals/Dialog.d.ts +5 -5
  118. package/build/src/md/dialog/internals/Dialog.d.ts.map +1 -1
  119. package/build/src/md/dialog/internals/Dialog.js +14 -9
  120. package/build/src/md/dialog/internals/Dialog.js.map +1 -1
  121. package/build/src/md/dropdown-list/internals/UiDropdownList.d.ts +1 -1
  122. package/build/src/md/dropdown-list/internals/UiDropdownList.js +1 -1
  123. package/build/src/md/dropdown-list/internals/UiDropdownList.js.map +1 -1
  124. package/build/src/md/icon-button/internals/IconButton.d.ts +12 -36
  125. package/build/src/md/icon-button/internals/IconButton.d.ts.map +1 -1
  126. package/build/src/md/icon-button/internals/IconButton.js +32 -144
  127. package/build/src/md/icon-button/internals/IconButton.js.map +1 -1
  128. package/build/src/md/{button/internals/filled-button.styles.d.ts → icon-button/internals/IconButton.styles.d.ts} +1 -1
  129. package/build/src/md/icon-button/internals/IconButton.styles.d.ts.map +1 -0
  130. package/build/src/md/icon-button/internals/IconButton.styles.js +286 -0
  131. package/build/src/md/icon-button/internals/IconButton.styles.js.map +1 -0
  132. package/build/src/md/icon-button/ui-icon-button.d.ts.map +1 -1
  133. package/build/src/md/icon-button/ui-icon-button.js +2 -3
  134. package/build/src/md/icon-button/ui-icon-button.js.map +1 -1
  135. package/build/src/md/ripple/internals/ripple.d.ts +2 -0
  136. package/build/src/md/ripple/internals/ripple.d.ts.map +1 -1
  137. package/build/src/md/ripple/internals/ripple.js +20 -10
  138. package/build/src/md/ripple/internals/ripple.js.map +1 -1
  139. package/build/src/md/ripple/internals/ripple.styles.d.ts.map +1 -1
  140. package/build/src/md/ripple/internals/ripple.styles.js +8 -20
  141. package/build/src/md/ripple/internals/ripple.styles.js.map +1 -1
  142. package/build/src/md/snackbar/internals/Snackbar.d.ts +1 -1
  143. package/build/src/md/snackbar/internals/Snackbar.d.ts.map +1 -1
  144. package/build/src/md/snackbar/internals/Snackbar.js +4 -2
  145. package/build/src/md/snackbar/internals/Snackbar.js.map +1 -1
  146. package/build/src/md/text-field/internals/filled.styles.d.ts.map +1 -1
  147. package/build/src/md/text-field/internals/filled.styles.js +3 -0
  148. package/build/src/md/text-field/internals/filled.styles.js.map +1 -1
  149. package/build/src/styles/m3/dialog.module.d.ts +2 -2
  150. package/build/src/styles/m3/dialog.module.js +2 -2
  151. package/build/src/styles/m3/dialog.module.js.map +1 -1
  152. package/build/src/styles/m3/tokens.d.ts.map +1 -1
  153. package/build/src/styles/m3/tokens.js +208 -182
  154. package/build/src/styles/m3/tokens.js.map +1 -1
  155. package/demo/elements/authorization/oauth-authorize.html +1 -1
  156. package/demo/elements/authorization/oauth-authorize.ts +1 -1
  157. package/demo/elements/environment/variables-editor.ts +2 -2
  158. package/demo/elements/http/url-editing.ts +3 -3
  159. package/demo/elements/project/request-editor.ts +4 -4
  160. package/demo/layout/index.ts +5 -5
  161. package/demo/md/buttons/button.html +121 -0
  162. package/demo/md/buttons/button.ts +246 -0
  163. package/demo/md/buttons/{index.html → group.html} +15 -2
  164. package/demo/md/buttons/group.ts +171 -0
  165. package/demo/md/checkbox/index.ts +1 -1
  166. package/demo/md/dialog/dialog.ts +8 -9
  167. package/demo/md/dropdown-list/index.ts +68 -71
  168. package/demo/md/icon-button/index.html +97 -7
  169. package/demo/md/icon-button/index.ts +97 -201
  170. package/demo/md/index.html +3 -1
  171. package/demo/md/inputs/input.ts +1 -1
  172. package/demo/md/inputs/radio.ts +1 -1
  173. package/demo/md/inputs/switch.ts +1 -1
  174. package/demo/md/notification/snack.ts +5 -5
  175. package/demo/md/progress/progress.ts +4 -3
  176. package/package.json +2 -2
  177. package/src/core/ModalActivity.ts +6 -5
  178. package/src/core/ThemeManager.ts +5 -4
  179. package/src/demo/DemoPage.ts +2 -5
  180. package/src/elements/authorization/ui/CcAuthorization.ts +2 -2
  181. package/src/elements/authorization/ui/OAuth2Authorization.ts +11 -5
  182. package/src/elements/authorization/ui/OidcAuthorization.ts +10 -8
  183. package/src/elements/code/HttpSnippets.ts +5 -5
  184. package/src/elements/dialog/internals/ConfirmDelete.ts +5 -5
  185. package/src/elements/dialog/internals/Rename.ts +6 -5
  186. package/src/elements/environment/EnvironmentEditor.ts +5 -4
  187. package/src/elements/http/BodyEditor.ts +25 -20
  188. package/src/elements/http/BodyMultipartEditor.ts +3 -3
  189. package/src/elements/http/CertificateAdd.element.ts +6 -10
  190. package/src/elements/http/HeadersForm.ts +3 -3
  191. package/src/elements/http/HttpAssertions.element.ts +2 -2
  192. package/src/elements/http/HttpFlows.element.ts +6 -6
  193. package/src/elements/http/RequestEditor.ts +10 -11
  194. package/src/elements/http/UrlParamsForm.ts +4 -4
  195. package/src/elements/project/HttpProjectRequest.ts +3 -3
  196. package/src/elements/project/HttpProjectRequestHistory.ts +5 -6
  197. package/src/elements/project/ProjectRunReport.ts +7 -7
  198. package/src/elements/project/ProjectRunner.ts +4 -5
  199. package/src/md/button/internals/base.ts +299 -0
  200. package/src/md/button/internals/button.styles.ts +319 -0
  201. package/src/md/button/internals/button.ts +8 -234
  202. package/src/md/button/internals/group.styles.ts +102 -0
  203. package/src/md/button/internals/group.ts +121 -0
  204. package/src/md/button/ui-button-group.ts +15 -0
  205. package/src/md/button/ui-button.ts +18 -0
  206. package/src/md/dialog/internals/Dialog.ts +14 -9
  207. package/src/md/dropdown-list/internals/UiDropdownList.ts +1 -1
  208. package/src/md/icon-button/internals/IconButton.styles.ts +286 -0
  209. package/src/md/icon-button/internals/IconButton.ts +15 -139
  210. package/src/md/icon-button/ui-icon-button.ts +2 -3
  211. package/src/md/ripple/internals/ripple.styles.ts +8 -20
  212. package/src/md/ripple/internals/ripple.ts +21 -13
  213. package/src/md/snackbar/internals/Snackbar.ts +4 -2
  214. package/src/md/text-field/internals/filled.styles.ts +3 -0
  215. package/src/styles/m3/dialog.module.ts +2 -2
  216. package/src/styles/m3/native.css +270 -0
  217. package/src/styles/m3/tokens.css +208 -182
  218. package/src/styles/m3/tokens.ts +208 -182
  219. package/test/ui/button/UiButton.test.ts +51 -29
  220. package/test/ui/button/UiIconButton.test.ts +25 -19
  221. package/test/ui/dialog/UiDialog.test.ts +10 -10
  222. package/build/src/md/button/internals/button-styles.d.ts.map +0 -1
  223. package/build/src/md/button/internals/button-styles.js +0 -143
  224. package/build/src/md/button/internals/button-styles.js.map +0 -1
  225. package/build/src/md/button/internals/elevated-button.d.ts +0 -4
  226. package/build/src/md/button/internals/elevated-button.d.ts.map +0 -1
  227. package/build/src/md/button/internals/elevated-button.js +0 -4
  228. package/build/src/md/button/internals/elevated-button.js.map +0 -1
  229. package/build/src/md/button/internals/elevated-button.styles.d.ts +0 -3
  230. package/build/src/md/button/internals/elevated-button.styles.d.ts.map +0 -1
  231. package/build/src/md/button/internals/elevated-button.styles.js +0 -38
  232. package/build/src/md/button/internals/elevated-button.styles.js.map +0 -1
  233. package/build/src/md/button/internals/filled-button.d.ts +0 -4
  234. package/build/src/md/button/internals/filled-button.d.ts.map +0 -1
  235. package/build/src/md/button/internals/filled-button.js +0 -4
  236. package/build/src/md/button/internals/filled-button.js.map +0 -1
  237. package/build/src/md/button/internals/filled-button.styles.d.ts.map +0 -1
  238. package/build/src/md/button/internals/filled-button.styles.js +0 -30
  239. package/build/src/md/button/internals/filled-button.styles.js.map +0 -1
  240. package/build/src/md/button/internals/filled-tonal-button.d.ts +0 -4
  241. package/build/src/md/button/internals/filled-tonal-button.d.ts.map +0 -1
  242. package/build/src/md/button/internals/filled-tonal-button.js +0 -4
  243. package/build/src/md/button/internals/filled-tonal-button.js.map +0 -1
  244. package/build/src/md/button/internals/filled-tonal-button.styles.d.ts +0 -3
  245. package/build/src/md/button/internals/filled-tonal-button.styles.d.ts.map +0 -1
  246. package/build/src/md/button/internals/filled-tonal-button.styles.js +0 -30
  247. package/build/src/md/button/internals/filled-tonal-button.styles.js.map +0 -1
  248. package/build/src/md/button/internals/outlined-button.d.ts +0 -4
  249. package/build/src/md/button/internals/outlined-button.d.ts.map +0 -1
  250. package/build/src/md/button/internals/outlined-button.js +0 -4
  251. package/build/src/md/button/internals/outlined-button.js.map +0 -1
  252. package/build/src/md/button/internals/outlined-button.styles.d.ts +0 -3
  253. package/build/src/md/button/internals/outlined-button.styles.d.ts.map +0 -1
  254. package/build/src/md/button/internals/outlined-button.styles.js +0 -31
  255. package/build/src/md/button/internals/outlined-button.styles.js.map +0 -1
  256. package/build/src/md/button/internals/text-button.d.ts +0 -4
  257. package/build/src/md/button/internals/text-button.d.ts.map +0 -1
  258. package/build/src/md/button/internals/text-button.js +0 -4
  259. package/build/src/md/button/internals/text-button.js.map +0 -1
  260. package/build/src/md/button/internals/text-button.styles.d.ts.map +0 -1
  261. package/build/src/md/button/internals/text-button.styles.js +0 -30
  262. package/build/src/md/button/internals/text-button.styles.js.map +0 -1
  263. package/build/src/md/button/ui-elevated-button.d.ts +0 -14
  264. package/build/src/md/button/ui-elevated-button.d.ts.map +0 -1
  265. package/build/src/md/button/ui-elevated-button.js +0 -31
  266. package/build/src/md/button/ui-elevated-button.js.map +0 -1
  267. package/build/src/md/button/ui-filled-button.d.ts +0 -14
  268. package/build/src/md/button/ui-filled-button.d.ts.map +0 -1
  269. package/build/src/md/button/ui-filled-button.js +0 -31
  270. package/build/src/md/button/ui-filled-button.js.map +0 -1
  271. package/build/src/md/button/ui-filled-tonal-button.d.ts +0 -14
  272. package/build/src/md/button/ui-filled-tonal-button.d.ts.map +0 -1
  273. package/build/src/md/button/ui-filled-tonal-button.js +0 -31
  274. package/build/src/md/button/ui-filled-tonal-button.js.map +0 -1
  275. package/build/src/md/button/ui-outlined-button.d.ts +0 -14
  276. package/build/src/md/button/ui-outlined-button.d.ts.map +0 -1
  277. package/build/src/md/button/ui-outlined-button.js +0 -31
  278. package/build/src/md/button/ui-outlined-button.js.map +0 -1
  279. package/build/src/md/button/ui-text-button.d.ts +0 -14
  280. package/build/src/md/button/ui-text-button.d.ts.map +0 -1
  281. package/build/src/md/button/ui-text-button.js.map +0 -1
  282. package/build/src/md/icon-button/ui-filled-icon-button.d.ts +0 -11
  283. package/build/src/md/icon-button/ui-filled-icon-button.d.ts.map +0 -1
  284. package/build/src/md/icon-button/ui-filled-icon-button.js.map +0 -1
  285. package/build/src/md/icon-button/ui-filled-tonal-icon-button.d.ts +0 -11
  286. package/build/src/md/icon-button/ui-filled-tonal-icon-button.d.ts.map +0 -1
  287. package/build/src/md/icon-button/ui-filled-tonal-icon-button.js +0 -28
  288. package/build/src/md/icon-button/ui-filled-tonal-icon-button.js.map +0 -1
  289. package/build/src/md/icon-button/ui-outlined-icon-button.d.ts +0 -11
  290. package/build/src/md/icon-button/ui-outlined-icon-button.d.ts.map +0 -1
  291. package/build/src/md/icon-button/ui-outlined-icon-button.js +0 -28
  292. package/build/src/md/icon-button/ui-outlined-icon-button.js.map +0 -1
  293. package/demo/md/buttons/index.ts +0 -279
  294. package/src/md/button/internals/button-styles.ts +0 -143
  295. package/src/md/button/internals/elevated-button.styles.ts +0 -38
  296. package/src/md/button/internals/elevated-button.ts +0 -3
  297. package/src/md/button/internals/filled-button.styles.ts +0 -30
  298. package/src/md/button/internals/filled-button.ts +0 -3
  299. package/src/md/button/internals/filled-tonal-button.styles.ts +0 -30
  300. package/src/md/button/internals/filled-tonal-button.ts +0 -3
  301. package/src/md/button/internals/outlined-button.styles.ts +0 -31
  302. package/src/md/button/internals/outlined-button.ts +0 -3
  303. package/src/md/button/internals/text-button.styles.ts +0 -30
  304. package/src/md/button/internals/text-button.ts +0 -3
  305. package/src/md/button/ui-elevated-button.ts +0 -19
  306. package/src/md/button/ui-filled-button.ts +0 -19
  307. package/src/md/button/ui-filled-tonal-button.ts +0 -19
  308. package/src/md/button/ui-outlined-button.ts +0 -19
  309. package/src/md/button/ui-text-button.ts +0 -19
  310. package/src/md/icon-button/ui-filled-icon-button.ts +0 -16
  311. package/src/md/icon-button/ui-filled-tonal-icon-button.ts +0 -16
  312. package/src/md/icon-button/ui-outlined-icon-button.ts +0 -16
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectRunner.d.ts","sourceRoot":"","sources":["../../../../src/elements/project/ProjectRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProjectRunner.d.ts","sourceRoot":"","sources":["../../../../src/elements/project/ProjectRunner.ts"],"names":[],"mappings":"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"}
@@ -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';
@@ -474,7 +473,7 @@ let ProjectRunner = (() => {
474
473
  renderSubmit() {
475
474
  return html `
476
475
  <div class="submit-row">
477
- <ui-filled-button @click="${this.handleRun}" ?disabled="${this.running}">Run</ui-filled-button>
476
+ <ui-button color="filled" @click="${this.handleRun}" ?disabled="${this.running}">Run</ui-button>
478
477
  </div>
479
478
  `;
480
479
  }
@@ -516,12 +515,12 @@ let ProjectRunner = (() => {
516
515
  closeOnOutsideClick
517
516
  @select="${this.handleHistorySelection}"
518
517
  >
519
- <ui-filled-tonal-button ?disabled="${disabled}">
518
+ <ui-button color="tonal" ?disabled="${disabled}">
520
519
  <ui-icon slot="icon" icon="arrowDropDown"></ui-icon>
521
520
  ${selected
522
521
  ? html `<relative-time datetime="${new Date(selected.ended).toISOString()}"></relative-time>`
523
522
  : 'History'}
524
- </ui-filled-tonal-button>
523
+ </ui-button>
525
524
  <ui-list slot="dropdown" role="menu" aria-label="History list">
526
525
  ${history.map((current) => this.renderHistoryOption(current))}
527
526
  </ui-list>
@@ -1 +1 @@
1
- {"version":3,"file":"ProjectRunner.js","sourceRoot":"","sources":["../../../../src/elements/project/ProjectRunner.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult, PropertyValues, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.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 { ProjectFolder } from '@api-client/core/models/ProjectFolder.js'\nimport type { IProjectRunnerOptions } from '@api-client/core/runtime/node/InteropInterfaces.js'\nimport type { IProjectExecution, IProjectExecutionLog } from '@api-client/core/models/ProjectExecution.js'\nimport type { IHttpProjectProxyInit } from '@api-client/core/proxy/HttpProjectProxy.js'\nimport type { IProjectExecutionListOptions } from '@api-client/core/events/BaseEvents.js'\nimport { Events as CoreEvents } from '@api-client/core/events/Events.js'\nimport ApiElement from '../ApiElement.js'\nimport type CheckboxElement from '../../md/checkbox/internals/CheckboxElement.js'\nimport type Input from '../../md/input/Input.js'\n\nimport '@github/relative-time-element'\nimport '../../define/http-project/project-run-report.js'\nimport '../../md/checkbox/ui-checkbox.js'\nimport '../../md/text-field/ui-filled-text-field.js'\nimport '../../md/button/ui-filled-button.js'\nimport '../../md/button/ui-filled-tonal-button.js'\nimport '../../md/progress/ui-progress.js'\nimport '../../md/icons/ui-icon.js'\nimport '../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../md/list/ui-list.js'\nimport '../../md/list/ui-list-item.js'\n\n/**\n * @fires change - When the configuration of the runner change.\n */\nexport default class ProjectRunner extends ApiElement {\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 instance of the current project.\n */\n @property({ type: Object }) accessor project: HttpProject | 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 key of the folder to render the runner for.\n * When not set, it renders the runner for the project.\n * @attribute\n */\n @property({ type: String, reflect: true }) accessor folder: string | undefined\n\n /**\n * The object we operate on.\n */\n @state() protected accessor root: HttpProject | ProjectFolder | undefined\n\n /**\n * Whether the element is currently running the project execution.\n */\n @state() protected accessor running: boolean | undefined\n\n /**\n * Whether the element is currently querying for the history data.\n */\n @state() protected accessor querying: boolean | undefined\n\n /**\n * The page cursor for pagination.\n */\n protected pageCursor?: string\n\n /**\n * The run configuration.\n */\n @property({ type: Object }) accessor config: IProjectRunnerOptions | undefined\n\n @state() protected accessor lastError: string | undefined\n\n protected history: IProjectExecution[] = []\n\n protected queryPageDebouncer?: number\n\n debounceTimeout = 100\n\n /**\n * The key of the currently rendered report.\n */\n protected selectedReport?: string\n\n /**\n * The currently rendered report.\n */\n @state() accessor renderedReport: IProjectExecution | undefined\n\n override willUpdate(cp: PropertyValues<this>): void {\n super.willUpdate(cp)\n if (cp.has('project') || cp.has('folder')) {\n this.setupRoot()\n }\n }\n\n protected setupRoot(): void {\n const { project, folder } = this\n if (!project) {\n this.root = undefined\n return\n }\n if (!folder) {\n this.root = project\n } else {\n this.root = project.findFolder(folder)\n }\n this.resetHistory()\n this.queryPageDebounce()\n }\n\n protected handleRun(): void {\n this.execute()\n }\n\n /**\n * Executes the current configuration.\n */\n async execute(): Promise<void> {\n this.lastError = undefined\n const { config = {}, folder, project } = this\n if (!project) {\n return\n }\n if (folder) {\n config.parent = folder\n }\n // Note, we intentionally don't add shared variables.\n // Project / folder execution should be contained and can only leak\n // out the variables to the rest of the app, not in.\n\n // if (sharedVariables && !config.variables) {\n // config.variables = sharedVariables;\n // }\n const init: IHttpProjectProxyInit = {\n kind: HttpProjectKind,\n project: project.toJSON(),\n options: config,\n }\n\n this.running = true\n try {\n const result = await CoreEvents.Transport.Core.httpProject(init, this)\n if (!result) {\n this.lastError = 'The project execution event was not handled.'\n } else {\n this.mergeExecutedVariables(result.result)\n this.createHistory(result.result)\n }\n } catch (e) {\n this.lastError = (e as Error).message\n }\n this.running = false\n }\n\n mergeExecutedVariables(result: IProjectExecutionLog): void {\n const { sharedVariables } = this\n if (!sharedVariables) {\n return\n }\n\n result.iterations.forEach((iteration) => {\n const { variables } = iteration\n if (!variables) {\n return\n }\n Object.keys(variables).forEach((key) => {\n sharedVariables[key] = variables[key]\n })\n })\n }\n\n protected async createHistory(result: IProjectExecutionLog): Promise<void> {\n const { appInfo, project } = this\n if (!appInfo) {\n throw new Error(`The appInfo is not set on ${this.localName}`)\n }\n if (!project) {\n return\n }\n throw new Error(`Not yet implemented: ${result}`)\n // await Events.Store.ProjectRuns.add({\n // ...result,\n // app: appInfo.code,\n // project: project.key,\n // key: '',\n // kind: ProjectExecutionKind,\n // midnight: 0,\n // parent: this.folder,\n // })\n }\n\n resetHistory(): void {\n this.querying = false\n this.pageCursor = undefined\n this.history = []\n if (this.queryPageDebouncer) {\n clearTimeout(this.queryPageDebouncer)\n this.queryPageDebouncer = undefined\n }\n }\n\n queryPageDebounce(): void {\n if (this.queryPageDebouncer) {\n return\n }\n this.queryPageDebouncer = setTimeout(() => {\n this.queryPageDebouncer = undefined\n this.queryPage()\n }, this.debounceTimeout) as unknown as number\n }\n\n async queryPage(): Promise<void> {\n const { project, appInfo, folder, pageCursor } = this\n if (this.querying || !project) {\n return\n }\n this.querying = true\n const opts: IProjectExecutionListOptions = {\n organization: '',\n project: project.key,\n }\n if (appInfo) {\n opts.app = appInfo.code\n }\n if (folder) {\n opts.parent = folder\n }\n if (pageCursor) {\n opts.cursor = pageCursor\n }\n try {\n throw new Error(`Not yet implemented: ${opts}`)\n // const result = await Events.Store.ProjectRuns.list(opts, this)\n // if (!result) {\n // throw new Error(`Project runs query not handled by the store.`)\n // }\n // const { items, cursor } = result\n // if (items.length) {\n // if (cursor) {\n // this.pageCursor = cursor\n // }\n // this.history = this.history.concat(items)\n // this.history.sort(this.historySort)\n // if (!this.selectedReport) {\n // const [last] = this.history\n // this.selectHistory(last.key)\n // }\n // this.requestUpdate()\n // }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(e)\n } finally {\n this.querying = false\n }\n }\n\n protected historySort(a: IProjectExecution, b: IProjectExecution): number {\n return b.ended - a.ended\n }\n\n setRecursive(value: boolean): void {\n const { config = {} } = this\n config.recursive = value\n this.config = config\n this.notifyChange()\n }\n\n setParallel(value: boolean): void {\n const { config = {} } = this\n config.parallel = value\n this.config = config\n this.notifyChange()\n }\n\n setIterations(value: number): void {\n const { config = {} } = this\n config.iterations = value\n this.config = config\n this.notifyChange()\n }\n\n setIterationDelay(value: number): void {\n const { config = {} } = this\n config.iterationDelay = value\n this.config = config\n this.notifyChange()\n }\n\n protected handleRecursiveChecked(e: Event): void {\n const input = e.target as CheckboxElement\n this.setRecursive(!!input.checked)\n }\n\n protected handleParallelChecked(e: Event): void {\n const input = e.target as CheckboxElement\n this.setParallel(!!input.checked)\n }\n\n protected handleIterationsChange(e: Event): void {\n const input = e.target as Input\n this.setIterations(input.valueAsNumber)\n input.checkValidity()\n }\n\n protected handleIterationDelayChange(e: Event): void {\n const input = e.target as Input\n this.setIterationDelay(input.valueAsNumber)\n input.checkValidity()\n }\n\n protected handleHistorySelection(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement\n const { key } = element.dataset\n if (!key) {\n return\n }\n this.selectHistory(key)\n }\n\n selectHistory(key: string): void {\n this.selectedReport = key\n const { history } = this\n const report = history.find((i) => i.key === key)\n if (report) {\n this.renderedReport = report\n } else {\n this.renderedReport = undefined\n }\n }\n\n protected override render(): TemplateResult {\n const { root } = this\n if (!root) {\n return html``\n }\n return html`\n <section id=\"config\">\n <div class=\"header title-large section-title\">Project runner for ${root.info.renderLabel}</div>\n <form name=\"run-config\" class=\"run-config surface1\">\n <div class=\"section-title title-medium\">Run configuration</div>\n ${this.renderRecursiveOption()} ${this.renderParallelOption()} ${this.renderIterationOption()}\n ${this.renderIterationDelayOption()} ${this.renderSubmit()}\n </form>\n ${this.renderError()} ${this.renderLoader()} ${this.renderReport()}\n </section>\n `\n }\n\n protected renderRecursiveOption(): TemplateResult {\n const { config = {} } = this\n const value = typeof config.recursive === 'boolean' ? config.recursive : false\n return html`\n <div class=\"form-row\">\n <ui-checkbox\n id=\"recursive\"\n .checked=\"${value}\"\n name=\"recursive\"\n aria-labelledby=\"recursiveLabel\"\n aria-describedby=\"recursiveDescription\"\n @change=\"${this.handleRecursiveChecked}\"\n ></ui-checkbox>\n <label class=\"label-large\" for=\"recursive\" id=\"recursiveLabel\"> Recursive </label>\n <p class=\"body-medium\" id=\"recursiveDescription\">\n Runs all requests from the current folder and its sub-folders\n </p>\n </div>\n `\n }\n\n protected renderParallelOption(): TemplateResult {\n const { config = {} } = this\n const value = typeof config.parallel === 'boolean' ? config.parallel : false\n return html`\n <div class=\"form-row\">\n <ui-checkbox\n id=\"parallel\"\n .checked=\"${value}\"\n name=\"parallel\"\n aria-labelledby=\"parallelLabel\"\n aria-describedby=\"parallelDescription\"\n @change=\"${this.handleParallelChecked}\"\n ></ui-checkbox>\n <label class=\"label-large\" for=\"parallel\" id=\"parallelLabel\"> Parallel </label>\n <p class=\"body-medium\" id=\"parallelDescription\">\n Runs each iteration in parallel. The number of actual execution depends on the number of cores on your device.\n This is ignored when number of iterations is 1.\n </p>\n </div>\n `\n }\n\n protected renderIterationOption(): TemplateResult {\n const { config = {} } = this\n const value = typeof config.iterations === 'number' ? config.iterations : 1\n return html`\n <div class=\"form-row\">\n <ui-filled-text-field\n required\n label=\"Iterations\"\n aria-describedby=\"iterationsDescription\"\n name=\"iterations\"\n type=\"number\"\n min=\"1\"\n step=\"1\"\n .value=\"${String(value)}\"\n @change=\"${this.handleIterationsChange}\"\n ></ui-filled-text-field>\n <p class=\"body-medium\" id=\"iterationsDescription\">The number of times the execution should be repeated.</p>\n </div>\n `\n }\n\n protected renderIterationDelayOption(): TemplateResult {\n const { config = {} } = this\n const value = typeof config.iterationDelay === 'number' ? config.iterationDelay : 0\n return html`\n <div class=\"form-row\">\n <ui-filled-text-field\n required\n label=\"Iteration delay\"\n aria-describedby=\"iterationDelayDescription\"\n name=\"iterationDelay\"\n type=\"number\"\n min=\"0\"\n step=\"1\"\n .value=\"${String(value)}\"\n @change=\"${this.handleIterationDelayChange}\"\n ></ui-filled-text-field>\n <p class=\"body-medium\" id=\"iterationDelayDescription\">\n The number of milliseconds to wait between each iteration.\n </p>\n </div>\n `\n }\n\n protected renderSubmit(): TemplateResult {\n return html`\n <div class=\"submit-row\">\n <ui-filled-button @click=\"${this.handleRun}\" ?disabled=\"${this.running}\">Run</ui-filled-button>\n </div>\n `\n }\n\n protected renderLoader(): TemplateResult | string {\n if (!this.running) {\n return ''\n }\n return html` <ui-progress indeterminate></ui-progress> `\n }\n\n protected renderError(): TemplateResult | string {\n const { lastError } = this\n if (!lastError) {\n return ''\n }\n return html`<div class=\"error on-error-text body-large last-error\">${lastError}</div>`\n }\n\n protected renderReport(): TemplateResult | typeof nothing {\n const { renderedReport, history } = this\n if (!history.length) {\n return nothing\n }\n return html`\n <section aria-label=\"Latest report\" class=\"report surface1\">\n <div class=\"section-title title-medium\">Run reports</div>\n ${this.renderHistorySelector()}\n <project-run-report .report=\"${renderedReport}\"></project-run-report>\n </section>\n `\n }\n\n protected renderHistorySelector(): TemplateResult {\n const { history } = this\n const disabled = !history.length\n const selected = history.find((i) => i.key === this.selectedReport)\n return html`\n <div class=\"history-selector\">\n <ui-dropdown-list\n verticalAlign=\"top\"\n class=\"history-dropdown\"\n closeOnOutsideClick\n @select=\"${this.handleHistorySelection}\"\n >\n <ui-filled-tonal-button ?disabled=\"${disabled}\">\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n ${selected\n ? html`<relative-time datetime=\"${new Date(selected.ended).toISOString()}\"></relative-time>`\n : 'History'}\n </ui-filled-tonal-button>\n <ui-list slot=\"dropdown\" role=\"menu\" aria-label=\"History list\">\n ${history.map((current) => this.renderHistoryOption(current))}\n </ui-list>\n </ui-dropdown-list>\n </div>\n `\n }\n\n renderHistoryOption(item: IProjectExecution): TemplateResult {\n const { ended, key } = item\n const classes = {\n 'history-option': true,\n 'highlight': this.selectedReport === key,\n }\n const de = new Date(ended)\n return html`\n <ui-list-item role=\"menuitem\" data-key=\"${key}\" class=\"${classMap(classes)}\">\n <relative-time datetime=\"${de.toISOString()}\"></relative-time>\n </ui-list-item>\n `\n }\n}\n"]}
1
+ {"version":3,"file":"ProjectRunner.js","sourceRoot":"","sources":["../../../../src/elements/project/ProjectRunner.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAkC,OAAO,EAAE,MAAM,KAAK,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AACtD,OAAO,EAAoB,IAAI,IAAI,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAOlG,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,mCAAmC,CAAA;AACxE,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAIzC,OAAO,+BAA+B,CAAA;AACtC,OAAO,iDAAiD,CAAA;AACxD,OAAO,kCAAkC,CAAA;AACzC,OAAO,6CAA6C,CAAA;AACpD,OAAO,8BAA8B,CAAA;AACrC,OAAO,kCAAkC,CAAA;AACzC,OAAO,2BAA2B,CAAA;AAClC,OAAO,4CAA4C,CAAA;AACnD,OAAO,0BAA0B,CAAA;AACjC,OAAO,+BAA+B,CAAA;;sBAKK,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAhC,aAAc,SAAQ,WAAU;;;2CAKlD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mCAK1B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mCAM1B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kCAO1B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gCAKzC,KAAK,EAAE;mCAKP,KAAK,EAAE;oCAKP,KAAK,EAAE;kCAUP,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qCAE1B,KAAK,EAAE;0CAgBP,KAAK,EAAE;YA7DoB,kMAAS,eAAe,6BAAf,eAAe,yGAAoC;YAK5D,0KAAS,OAAO,6BAAP,OAAO,yFAAyB;YAMzC,0KAAS,OAAO,6BAAP,OAAO,yFAA0B;YAO3B,uKAAS,MAAM,6BAAN,MAAM,uFAAoB;YAKrE,iKAAmB,IAAI,6BAAJ,IAAI,mFAAyC;YAKhE,0KAAmB,OAAO,6BAAP,OAAO,yFAAqB;YAK/C,6KAAmB,QAAQ,6BAAR,QAAQ,2FAAqB;YAU7B,uKAAS,MAAM,6BAAN,MAAM,uFAAmC;YAErE,gLAAmB,SAAS,6BAAT,SAAS,6FAAoB;YAgBhD,+LAAS,cAAc,6BAAd,cAAc,uGAA+B;;;QA7DnC,mGAA4D;QAJxF;;;WAGG;QACyB,IAAS,eAAe,qDAAoC;QAA5D,IAAS,eAAe,2DAAoC;QAK5D,kJAAyC;QAHrE;;WAEG;QACyB,IAAS,OAAO,6CAAyB;QAAzC,IAAS,OAAO,mDAAyB;QAMzC,0IAA0C;QAJtE;;;WAGG;QACyB,IAAS,OAAO,6CAA0B;QAA1C,IAAS,OAAO,mDAA0B;QAO3B,wIAAmC;QAL9E;;;;WAIG;QACwC,IAAS,MAAM,4CAAoB;QAAnC,IAAS,MAAM,kDAAoB;QAKrE,mIAAgE;QAHzE;;WAEG;QACM,IAAmB,IAAI,0CAAyC;QAAhE,IAAmB,IAAI,gDAAyC;QAKhE,uIAA+C;QAHxD;;WAEG;QACM,IAAmB,OAAO,6CAAqB;QAA/C,IAAmB,OAAO,mDAAqB;QAK/C,4IAAgD;QAHzD;;WAEG;QACM,IAAmB,QAAQ,8CAAqB;QAAhD,IAAmB,QAAQ,oDAAqB;QAEzD;;WAEG;QACO,UAAU,wDAAS;QAKD,iFAAkD;QAH9E;;WAEG;QACyB,IAAS,MAAM,4CAAmC;QAAlD,IAAS,MAAM,kDAAmC;QAErE,6IAAgD;QAAhD,IAAmB,SAAS,+CAAoB;QAAhD,IAAmB,SAAS,qDAAoB;QAE/C,OAAO,2DAAwB,EAAE,EAAA;QAEjC,kBAAkB,CAAS;QAErC,eAAe,GAAG,GAAG,CAAA;QAErB;;WAEG;QACO,cAAc,CAAS;QAKxB,iGAAsD;QAH/D;;WAEG;QACM,IAAS,cAAc,oDAA+B;QAAtD,IAAS,cAAc,0DAA+B;QAEtD,UAAU,CAAC,EAAwB;YAC1C,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;YACpB,IAAI,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1C,IAAI,CAAC,SAAS,EAAE,CAAA;YAClB,CAAC;QACH,CAAC;QAES,SAAS;YACjB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;YAChC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;gBACrB,OAAM;YACR,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YACxC,CAAC;YACD,IAAI,CAAC,YAAY,EAAE,CAAA;YACnB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAC1B,CAAC;QAES,SAAS;YACjB,IAAI,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC;QAED;;WAEG;QACH,KAAK,CAAC,OAAO;YACX,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;YAC1B,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;YAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAM;YACR,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;YACxB,CAAC;YACD,qDAAqD;YACrD,mEAAmE;YACnE,oDAAoD;YAEpD,8CAA8C;YAC9C,wCAAwC;YACxC,IAAI;YACJ,MAAM,IAAI,GAA0B;gBAClC,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE;gBACzB,OAAO,EAAE,MAAM;aAChB,CAAA;YAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;YACnB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gBACtE,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,IAAI,CAAC,SAAS,GAAG,8CAA8C,CAAA;gBACjE,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;oBAC1C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;gBACnC,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,SAAS,GAAI,CAAW,CAAC,OAAO,CAAA;YACvC,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACtB,CAAC;QAED,sBAAsB,CAAC,MAA4B;YACjD,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAA;YAChC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,OAAM;YACR,CAAC;YAED,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;gBACtC,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,CAAA;gBAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAM;gBACR,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBACrC,eAAe,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;gBACvC,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;QAES,KAAK,CAAC,aAAa,CAAC,MAA4B;YACxD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;YACjC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;YAChE,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAM;YACR,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAA;YACjD,uCAAuC;YACvC,eAAe;YACf,uBAAuB;YACvB,0BAA0B;YAC1B,aAAa;YACb,gCAAgC;YAChC,iBAAiB;YACjB,yBAAyB;YACzB,KAAK;QACP,CAAC;QAED,YAAY;YACV,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;YACrB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;YAC3B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;YACjB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;gBACrC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAA;YACrC,CAAC;QACH,CAAC;QAED,iBAAiB;YACf,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,OAAM;YACR,CAAC;YACD,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,GAAG,EAAE;gBACxC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAA;gBACnC,IAAI,CAAC,SAAS,EAAE,CAAA;YAClB,CAAC,EAAE,IAAI,CAAC,eAAe,CAAsB,CAAA;QAC/C,CAAC;QAED,KAAK,CAAC,SAAS;YACb,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;YACrD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC9B,OAAM;YACR,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;YACpB,MAAM,IAAI,GAAiC;gBACzC,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,OAAO,CAAC,GAAG;aACrB,CAAA;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAA;YACzB,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACtB,CAAC;YACD,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,GAAG,UAAU,CAAA;YAC1B,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAA;gBAC/C,iEAAiE;gBACjE,iBAAiB;gBACjB,oEAAoE;gBACpE,IAAI;gBACJ,mCAAmC;gBACnC,sBAAsB;gBACtB,kBAAkB;gBAClB,+BAA+B;gBAC/B,MAAM;gBACN,8CAA8C;gBAC9C,wCAAwC;gBACxC,gCAAgC;gBAChC,kCAAkC;gBAClC,mCAAmC;gBACnC,MAAM;gBACN,yBAAyB;gBACzB,IAAI;YACN,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;YACvB,CAAC;QACH,CAAC;QAES,WAAW,CAAC,CAAoB,EAAE,CAAoB;YAC9D,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAA;QAC1B,CAAC;QAED,YAAY,CAAC,KAAc;YACzB,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,IAAI,CAAA;YAC5B,MAAM,CAAC,SAAS,GAAG,KAAK,CAAA;YACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC;QAED,WAAW,CAAC,KAAc;YACxB,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,IAAI,CAAA;YAC5B,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAA;YACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC;QAED,aAAa,CAAC,KAAa;YACzB,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,IAAI,CAAA;YAC5B,MAAM,CAAC,UAAU,GAAG,KAAK,CAAA;YACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC;QAED,iBAAiB,CAAC,KAAa;YAC7B,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,IAAI,CAAA;YAC5B,MAAM,CAAC,cAAc,GAAG,KAAK,CAAA;YAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;YACpB,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC;QAES,sBAAsB,CAAC,CAAQ;YACvC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAyB,CAAA;YACzC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACpC,CAAC;QAES,qBAAqB,CAAC,CAAQ;YACtC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAyB,CAAA;YACzC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACnC,CAAC;QAES,sBAAsB,CAAC,CAAQ;YACvC,MAAM,KAAK,GAAG,CAAC,CAAC,MAAe,CAAA;YAC/B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;YACvC,KAAK,CAAC,aAAa,EAAE,CAAA;QACvB,CAAC;QAES,0BAA0B,CAAC,CAAQ;YAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,MAAe,CAAA;YAC/B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;YAC3C,KAAK,CAAC,aAAa,EAAE,CAAA;QACvB,CAAC;QAES,sBAAsB,CAAC,CAAc;YAC7C,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,IAAmB,CAAA;YAC5C,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAA;YAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAM;YACR,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QACzB,CAAC;QAED,aAAa,CAAC,GAAW;YACvB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAA;YACzB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;YACxB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;YACjD,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,cAAc,GAAG,MAAM,CAAA;YAC9B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,cAAc,GAAG,SAAS,CAAA;YACjC,CAAC;QACH,CAAC;QAEkB,MAAM;YACvB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;YACrB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,IAAI,CAAA,EAAE,CAAA;YACf,CAAC;YACD,OAAO,IAAI,CAAA;;2EAE4D,IAAI,CAAC,IAAI,CAAC,WAAW;;;YAGpF,IAAI,CAAC,qBAAqB,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC3F,IAAI,CAAC,0BAA0B,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;;UAE1D,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;;KAErE,CAAA;QACH,CAAC;QAES,qBAAqB;YAC7B,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,IAAI,CAAA;YAC5B,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;YAC9E,OAAO,IAAI,CAAA;;;;sBAIO,KAAK;;;;qBAIN,IAAI,CAAC,sBAAsB;;;;;;;KAO3C,CAAA;QACH,CAAC;QAES,oBAAoB;YAC5B,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,IAAI,CAAA;YAC5B,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAA;YAC5E,OAAO,IAAI,CAAA;;;;sBAIO,KAAK;;;;qBAIN,IAAI,CAAC,qBAAqB;;;;;;;;KAQ1C,CAAA;QACH,CAAC;QAES,qBAAqB;YAC7B,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,IAAI,CAAA;YAC5B,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;YAC3E,OAAO,IAAI,CAAA;;;;;;;;;;oBAUK,MAAM,CAAC,KAAK,CAAC;qBACZ,IAAI,CAAC,sBAAsB;;;;KAI3C,CAAA;QACH,CAAC;QAES,0BAA0B;YAClC,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,IAAI,CAAA;YAC5B,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;YACnF,OAAO,IAAI,CAAA;;;;;;;;;;oBAUK,MAAM,CAAC,KAAK,CAAC;qBACZ,IAAI,CAAC,0BAA0B;;;;;;KAM/C,CAAA;QACH,CAAC;QAES,YAAY;YACpB,OAAO,IAAI,CAAA;;4CAE6B,IAAI,CAAC,SAAS,gBAAgB,IAAI,CAAC,OAAO;;KAEjF,CAAA;QACH,CAAC;QAES,YAAY;YACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,EAAE,CAAA;YACX,CAAC;YACD,OAAO,IAAI,CAAA,6CAA6C,CAAA;QAC1D,CAAC;QAES,WAAW;YACnB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;YAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO,EAAE,CAAA;YACX,CAAC;YACD,OAAO,IAAI,CAAA,0DAA0D,SAAS,QAAQ,CAAA;QACxF,CAAC;QAES,YAAY;YACpB,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;YACxC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,OAAO,OAAO,CAAA;YAChB,CAAC;YACD,OAAO,IAAI,CAAA;;;UAGL,IAAI,CAAC,qBAAqB,EAAE;uCACC,cAAc;;KAEhD,CAAA;QACH,CAAC;QAES,qBAAqB;YAC7B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;YACxB,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,MAAM,CAAA;YAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,cAAc,CAAC,CAAA;YACnE,OAAO,IAAI,CAAA;;;;;;qBAMM,IAAI,CAAC,sBAAsB;;gDAEA,QAAQ;;cAE1C,QAAQ;gBACR,CAAC,CAAC,IAAI,CAAA,4BAA4B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,oBAAoB;gBAC5F,CAAC,CAAC,SAAS;;;cAGX,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;;;;KAIpE,CAAA;QACH,CAAC;QAED,mBAAmB,CAAC,IAAuB;YACzC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;YAC3B,MAAM,OAAO,GAAG;gBACd,gBAAgB,EAAE,IAAI;gBACtB,WAAW,EAAE,IAAI,CAAC,cAAc,KAAK,GAAG;aACzC,CAAA;YACD,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAA;YAC1B,OAAO,IAAI,CAAA;gDACiC,GAAG,YAAY,QAAQ,CAAC,OAAO,CAAC;mCAC7C,EAAE,CAAC,WAAW,EAAE;;KAE9C,CAAA;QACH,CAAC;;;;;;;AA9eH;;GAEG;AACH,6BA4eC","sourcesContent":["import { html, TemplateResult, PropertyValues, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.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 { ProjectFolder } from '@api-client/core/models/ProjectFolder.js'\nimport type { IProjectRunnerOptions } from '@api-client/core/runtime/node/InteropInterfaces.js'\nimport type { IProjectExecution, IProjectExecutionLog } from '@api-client/core/models/ProjectExecution.js'\nimport type { IHttpProjectProxyInit } from '@api-client/core/proxy/HttpProjectProxy.js'\nimport type { IProjectExecutionListOptions } from '@api-client/core/events/BaseEvents.js'\nimport { Events as CoreEvents } from '@api-client/core/events/Events.js'\nimport ApiElement from '../ApiElement.js'\nimport type CheckboxElement from '../../md/checkbox/internals/CheckboxElement.js'\nimport type Input from '../../md/input/Input.js'\n\nimport '@github/relative-time-element'\nimport '../../define/http-project/project-run-report.js'\nimport '../../md/checkbox/ui-checkbox.js'\nimport '../../md/text-field/ui-filled-text-field.js'\nimport '../../md/button/ui-button.js'\nimport '../../md/progress/ui-progress.js'\nimport '../../md/icons/ui-icon.js'\nimport '../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../md/list/ui-list.js'\nimport '../../md/list/ui-list-item.js'\n\n/**\n * @fires change - When the configuration of the runner change.\n */\nexport default class ProjectRunner extends ApiElement {\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 instance of the current project.\n */\n @property({ type: Object }) accessor project: HttpProject | 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 key of the folder to render the runner for.\n * When not set, it renders the runner for the project.\n * @attribute\n */\n @property({ type: String, reflect: true }) accessor folder: string | undefined\n\n /**\n * The object we operate on.\n */\n @state() protected accessor root: HttpProject | ProjectFolder | undefined\n\n /**\n * Whether the element is currently running the project execution.\n */\n @state() protected accessor running: boolean | undefined\n\n /**\n * Whether the element is currently querying for the history data.\n */\n @state() protected accessor querying: boolean | undefined\n\n /**\n * The page cursor for pagination.\n */\n protected pageCursor?: string\n\n /**\n * The run configuration.\n */\n @property({ type: Object }) accessor config: IProjectRunnerOptions | undefined\n\n @state() protected accessor lastError: string | undefined\n\n protected history: IProjectExecution[] = []\n\n protected queryPageDebouncer?: number\n\n debounceTimeout = 100\n\n /**\n * The key of the currently rendered report.\n */\n protected selectedReport?: string\n\n /**\n * The currently rendered report.\n */\n @state() accessor renderedReport: IProjectExecution | undefined\n\n override willUpdate(cp: PropertyValues<this>): void {\n super.willUpdate(cp)\n if (cp.has('project') || cp.has('folder')) {\n this.setupRoot()\n }\n }\n\n protected setupRoot(): void {\n const { project, folder } = this\n if (!project) {\n this.root = undefined\n return\n }\n if (!folder) {\n this.root = project\n } else {\n this.root = project.findFolder(folder)\n }\n this.resetHistory()\n this.queryPageDebounce()\n }\n\n protected handleRun(): void {\n this.execute()\n }\n\n /**\n * Executes the current configuration.\n */\n async execute(): Promise<void> {\n this.lastError = undefined\n const { config = {}, folder, project } = this\n if (!project) {\n return\n }\n if (folder) {\n config.parent = folder\n }\n // Note, we intentionally don't add shared variables.\n // Project / folder execution should be contained and can only leak\n // out the variables to the rest of the app, not in.\n\n // if (sharedVariables && !config.variables) {\n // config.variables = sharedVariables;\n // }\n const init: IHttpProjectProxyInit = {\n kind: HttpProjectKind,\n project: project.toJSON(),\n options: config,\n }\n\n this.running = true\n try {\n const result = await CoreEvents.Transport.Core.httpProject(init, this)\n if (!result) {\n this.lastError = 'The project execution event was not handled.'\n } else {\n this.mergeExecutedVariables(result.result)\n this.createHistory(result.result)\n }\n } catch (e) {\n this.lastError = (e as Error).message\n }\n this.running = false\n }\n\n mergeExecutedVariables(result: IProjectExecutionLog): void {\n const { sharedVariables } = this\n if (!sharedVariables) {\n return\n }\n\n result.iterations.forEach((iteration) => {\n const { variables } = iteration\n if (!variables) {\n return\n }\n Object.keys(variables).forEach((key) => {\n sharedVariables[key] = variables[key]\n })\n })\n }\n\n protected async createHistory(result: IProjectExecutionLog): Promise<void> {\n const { appInfo, project } = this\n if (!appInfo) {\n throw new Error(`The appInfo is not set on ${this.localName}`)\n }\n if (!project) {\n return\n }\n throw new Error(`Not yet implemented: ${result}`)\n // await Events.Store.ProjectRuns.add({\n // ...result,\n // app: appInfo.code,\n // project: project.key,\n // key: '',\n // kind: ProjectExecutionKind,\n // midnight: 0,\n // parent: this.folder,\n // })\n }\n\n resetHistory(): void {\n this.querying = false\n this.pageCursor = undefined\n this.history = []\n if (this.queryPageDebouncer) {\n clearTimeout(this.queryPageDebouncer)\n this.queryPageDebouncer = undefined\n }\n }\n\n queryPageDebounce(): void {\n if (this.queryPageDebouncer) {\n return\n }\n this.queryPageDebouncer = setTimeout(() => {\n this.queryPageDebouncer = undefined\n this.queryPage()\n }, this.debounceTimeout) as unknown as number\n }\n\n async queryPage(): Promise<void> {\n const { project, appInfo, folder, pageCursor } = this\n if (this.querying || !project) {\n return\n }\n this.querying = true\n const opts: IProjectExecutionListOptions = {\n organization: '',\n project: project.key,\n }\n if (appInfo) {\n opts.app = appInfo.code\n }\n if (folder) {\n opts.parent = folder\n }\n if (pageCursor) {\n opts.cursor = pageCursor\n }\n try {\n throw new Error(`Not yet implemented: ${opts}`)\n // const result = await Events.Store.ProjectRuns.list(opts, this)\n // if (!result) {\n // throw new Error(`Project runs query not handled by the store.`)\n // }\n // const { items, cursor } = result\n // if (items.length) {\n // if (cursor) {\n // this.pageCursor = cursor\n // }\n // this.history = this.history.concat(items)\n // this.history.sort(this.historySort)\n // if (!this.selectedReport) {\n // const [last] = this.history\n // this.selectHistory(last.key)\n // }\n // this.requestUpdate()\n // }\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(e)\n } finally {\n this.querying = false\n }\n }\n\n protected historySort(a: IProjectExecution, b: IProjectExecution): number {\n return b.ended - a.ended\n }\n\n setRecursive(value: boolean): void {\n const { config = {} } = this\n config.recursive = value\n this.config = config\n this.notifyChange()\n }\n\n setParallel(value: boolean): void {\n const { config = {} } = this\n config.parallel = value\n this.config = config\n this.notifyChange()\n }\n\n setIterations(value: number): void {\n const { config = {} } = this\n config.iterations = value\n this.config = config\n this.notifyChange()\n }\n\n setIterationDelay(value: number): void {\n const { config = {} } = this\n config.iterationDelay = value\n this.config = config\n this.notifyChange()\n }\n\n protected handleRecursiveChecked(e: Event): void {\n const input = e.target as CheckboxElement\n this.setRecursive(!!input.checked)\n }\n\n protected handleParallelChecked(e: Event): void {\n const input = e.target as CheckboxElement\n this.setParallel(!!input.checked)\n }\n\n protected handleIterationsChange(e: Event): void {\n const input = e.target as Input\n this.setIterations(input.valueAsNumber)\n input.checkValidity()\n }\n\n protected handleIterationDelayChange(e: Event): void {\n const input = e.target as Input\n this.setIterationDelay(input.valueAsNumber)\n input.checkValidity()\n }\n\n protected handleHistorySelection(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement\n const { key } = element.dataset\n if (!key) {\n return\n }\n this.selectHistory(key)\n }\n\n selectHistory(key: string): void {\n this.selectedReport = key\n const { history } = this\n const report = history.find((i) => i.key === key)\n if (report) {\n this.renderedReport = report\n } else {\n this.renderedReport = undefined\n }\n }\n\n protected override render(): TemplateResult {\n const { root } = this\n if (!root) {\n return html``\n }\n return html`\n <section id=\"config\">\n <div class=\"header title-large section-title\">Project runner for ${root.info.renderLabel}</div>\n <form name=\"run-config\" class=\"run-config surface1\">\n <div class=\"section-title title-medium\">Run configuration</div>\n ${this.renderRecursiveOption()} ${this.renderParallelOption()} ${this.renderIterationOption()}\n ${this.renderIterationDelayOption()} ${this.renderSubmit()}\n </form>\n ${this.renderError()} ${this.renderLoader()} ${this.renderReport()}\n </section>\n `\n }\n\n protected renderRecursiveOption(): TemplateResult {\n const { config = {} } = this\n const value = typeof config.recursive === 'boolean' ? config.recursive : false\n return html`\n <div class=\"form-row\">\n <ui-checkbox\n id=\"recursive\"\n .checked=\"${value}\"\n name=\"recursive\"\n aria-labelledby=\"recursiveLabel\"\n aria-describedby=\"recursiveDescription\"\n @change=\"${this.handleRecursiveChecked}\"\n ></ui-checkbox>\n <label class=\"label-large\" for=\"recursive\" id=\"recursiveLabel\"> Recursive </label>\n <p class=\"body-medium\" id=\"recursiveDescription\">\n Runs all requests from the current folder and its sub-folders\n </p>\n </div>\n `\n }\n\n protected renderParallelOption(): TemplateResult {\n const { config = {} } = this\n const value = typeof config.parallel === 'boolean' ? config.parallel : false\n return html`\n <div class=\"form-row\">\n <ui-checkbox\n id=\"parallel\"\n .checked=\"${value}\"\n name=\"parallel\"\n aria-labelledby=\"parallelLabel\"\n aria-describedby=\"parallelDescription\"\n @change=\"${this.handleParallelChecked}\"\n ></ui-checkbox>\n <label class=\"label-large\" for=\"parallel\" id=\"parallelLabel\"> Parallel </label>\n <p class=\"body-medium\" id=\"parallelDescription\">\n Runs each iteration in parallel. The number of actual execution depends on the number of cores on your device.\n This is ignored when number of iterations is 1.\n </p>\n </div>\n `\n }\n\n protected renderIterationOption(): TemplateResult {\n const { config = {} } = this\n const value = typeof config.iterations === 'number' ? config.iterations : 1\n return html`\n <div class=\"form-row\">\n <ui-filled-text-field\n required\n label=\"Iterations\"\n aria-describedby=\"iterationsDescription\"\n name=\"iterations\"\n type=\"number\"\n min=\"1\"\n step=\"1\"\n .value=\"${String(value)}\"\n @change=\"${this.handleIterationsChange}\"\n ></ui-filled-text-field>\n <p class=\"body-medium\" id=\"iterationsDescription\">The number of times the execution should be repeated.</p>\n </div>\n `\n }\n\n protected renderIterationDelayOption(): TemplateResult {\n const { config = {} } = this\n const value = typeof config.iterationDelay === 'number' ? config.iterationDelay : 0\n return html`\n <div class=\"form-row\">\n <ui-filled-text-field\n required\n label=\"Iteration delay\"\n aria-describedby=\"iterationDelayDescription\"\n name=\"iterationDelay\"\n type=\"number\"\n min=\"0\"\n step=\"1\"\n .value=\"${String(value)}\"\n @change=\"${this.handleIterationDelayChange}\"\n ></ui-filled-text-field>\n <p class=\"body-medium\" id=\"iterationDelayDescription\">\n The number of milliseconds to wait between each iteration.\n </p>\n </div>\n `\n }\n\n protected renderSubmit(): TemplateResult {\n return html`\n <div class=\"submit-row\">\n <ui-button color=\"filled\" @click=\"${this.handleRun}\" ?disabled=\"${this.running}\">Run</ui-button>\n </div>\n `\n }\n\n protected renderLoader(): TemplateResult | string {\n if (!this.running) {\n return ''\n }\n return html` <ui-progress indeterminate></ui-progress> `\n }\n\n protected renderError(): TemplateResult | string {\n const { lastError } = this\n if (!lastError) {\n return ''\n }\n return html`<div class=\"error on-error-text body-large last-error\">${lastError}</div>`\n }\n\n protected renderReport(): TemplateResult | typeof nothing {\n const { renderedReport, history } = this\n if (!history.length) {\n return nothing\n }\n return html`\n <section aria-label=\"Latest report\" class=\"report surface1\">\n <div class=\"section-title title-medium\">Run reports</div>\n ${this.renderHistorySelector()}\n <project-run-report .report=\"${renderedReport}\"></project-run-report>\n </section>\n `\n }\n\n protected renderHistorySelector(): TemplateResult {\n const { history } = this\n const disabled = !history.length\n const selected = history.find((i) => i.key === this.selectedReport)\n return html`\n <div class=\"history-selector\">\n <ui-dropdown-list\n verticalAlign=\"top\"\n class=\"history-dropdown\"\n closeOnOutsideClick\n @select=\"${this.handleHistorySelection}\"\n >\n <ui-button color=\"tonal\" ?disabled=\"${disabled}\">\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n ${selected\n ? html`<relative-time datetime=\"${new Date(selected.ended).toISOString()}\"></relative-time>`\n : 'History'}\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\" aria-label=\"History list\">\n ${history.map((current) => this.renderHistoryOption(current))}\n </ui-list>\n </ui-dropdown-list>\n </div>\n `\n }\n\n renderHistoryOption(item: IProjectExecution): TemplateResult {\n const { ended, key } = item\n const classes = {\n 'history-option': true,\n 'highlight': this.selectedReport === key,\n }\n const de = new Date(ended)\n return html`\n <ui-list-item role=\"menuitem\" data-key=\"${key}\" class=\"${classMap(classes)}\">\n <relative-time datetime=\"${de.toISOString()}\"></relative-time>\n </ui-list-item>\n `\n }\n}\n"]}
@@ -0,0 +1,98 @@
1
+ import { type PropertyValues, type TemplateResult } from 'lit';
2
+ import { UiElement } from '../../UiElement.js';
3
+ import type { BeginPressConfig, EndPressConfig } from '../../../controllers/ActionController.js';
4
+ import type UiRipple from '../../ripple/internals/ripple.js';
5
+ import '../../ripple/ui-ripple.js';
6
+ import '@material/web/focus/md-focus-ring.js';
7
+ export type ButtonType = 'submit' | 'reset' | 'button';
8
+ export type MdButtonShape = 'round' | 'square';
9
+ export type MdButtonSize = 'xs' | 's' | 'm' | 'l' | 'xl';
10
+ /**
11
+ * A material design button with M3 Expressive features - CSS-native implementation.
12
+ *
13
+ * @slot icon - A slot for the icon element
14
+ * @slot - The default slot for the label
15
+ * @attribute {string} form - The form associated with this element when the element is outside the form.
16
+ * @fires {ToggleEvent} toggle - Fired when the `toggle` property is true and the button is clicked,
17
+ * changing its selection state.
18
+ * The event's `newState` and `oldState` properties (string values: 'selected' or
19
+ * 'unselected') detail this selection change.
20
+ */
21
+ export default class BaseButton extends UiElement {
22
+ #private;
23
+ static readonly formAssociated = true;
24
+ /**
25
+ * The form associated with this element
26
+ * @attribute
27
+ */
28
+ get form(): HTMLFormElement | null | string;
29
+ get validity(): ValidityState;
30
+ get validationMessage(): string;
31
+ get willValidate(): boolean;
32
+ /**
33
+ * The name of the button, submitted as a pair with the button's value as part of the form data.
34
+ * @attribute
35
+ */
36
+ accessor name: string | undefined;
37
+ get value(): string | undefined;
38
+ /**
39
+ * Defines the value associated with the button's name when it's submitted with the form data.
40
+ * @attribute
41
+ */
42
+ set value(value: string | undefined);
43
+ /**
44
+ * Whether to render the icon at the inline end of the label rather than the inline start.
45
+ * @attribute
46
+ */
47
+ accessor trailingIcon: boolean;
48
+ /**
49
+ * The default behavior of the button.
50
+ * @attribute
51
+ */
52
+ accessor type: ButtonType;
53
+ /**
54
+ * When set, the button is a toggle button.
55
+ * @attribute
56
+ */
57
+ accessor toggle: boolean;
58
+ /**
59
+ * Indicates that the button is currently selected.
60
+ * @attribute
61
+ */
62
+ accessor selected: boolean;
63
+ /**
64
+ * The shape of the button.
65
+ * @attribute
66
+ */
67
+ accessor shape: MdButtonShape;
68
+ /**
69
+ * The size of the button.
70
+ * @attribute
71
+ */
72
+ accessor size: MdButtonSize;
73
+ get disabled(): boolean;
74
+ /**
75
+ * When set, the button is in a disabled state.
76
+ * @attribute
77
+ */
78
+ set disabled(value: boolean);
79
+ protected accessor ripple: UiRipple | null;
80
+ constructor();
81
+ connectedCallback(): void;
82
+ protected updated(cp: PropertyValues<this>): void;
83
+ protected updatePressedState(): void;
84
+ checkValidity(): boolean;
85
+ reportValidity(): boolean;
86
+ protected firstUpdated(): void;
87
+ beginPress(options: BeginPressConfig): void;
88
+ endPress(config: EndPressConfig): void;
89
+ handleClick(e: MouseEvent): void;
90
+ protected handleSubmit(): void;
91
+ handlePointerEnter(e: PointerEvent): void;
92
+ handlePointerLeave(e: PointerEvent): void;
93
+ protected render(): TemplateResult;
94
+ protected renderIcon(): TemplateResult;
95
+ protected renderFocusRing(): TemplateResult;
96
+ protected renderRipple(): TemplateResult;
97
+ }
98
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/md/button/internals/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAA;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAA;AAEhG,OAAO,KAAK,QAAQ,MAAM,kCAAkC,CAAA;AAE5D,OAAO,2BAA2B,CAAA;AAClC,OAAO,sCAAsC,CAAA;AAE7C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAA;AACtD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,CAAA;AAC9C,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAA;AAExD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,SAAS;;IAC/C,MAAM,CAAC,QAAQ,CAAC,cAAc,QAAO;IAIrC;;;OAGG;IACH,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,GAAG,MAAM,CAE1C;IAED,IAAI,QAAQ,kBAEX;IAED,IAAI,iBAAiB,WAEpB;IAED,IAAI,YAAY,YAEf;IAED;;;OAGG;IACyB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IAI7D,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED;;;OAGG;IACH,IACI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAMlC;IAED;;;OAGG;IACoE,QAAQ,CAAC,YAAY,UAAQ;IAEpG;;;OAGG;IACwC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAW;IAE/E;;;OAGG;IACyC,QAAQ,CAAC,MAAM,UAAQ;IAEnE;;;OAGG;IACyC,QAAQ,CAAC,QAAQ,UAAQ;IAErE;;;OAGG;IACwC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAU;IAElF;;;OAGG;IACwC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAM;IAE5E,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;OAGG;IACH,IACI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAI1B;IAEmB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAG,QAAQ,GAAG,IAAI,CAAA;;IAgBtD,iBAAiB,IAAI,IAAI;cAUf,OAAO,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAiB1D,SAAS,CAAC,kBAAkB,IAAI,IAAI;IASpC,aAAa;IAIb,cAAc;cAIK,YAAY,IAAI,IAAI;IAI9B,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAM3C,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAgBtC,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAqBzC,SAAS,CAAC,YAAY,IAAI,IAAI;IA6BrB,kBAAkB,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAOzC,kBAAkB,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;cAO/B,MAAM,IAAI,cAAc;IAW3C,SAAS,CAAC,UAAU,IAAI,cAAc;IAItC,SAAS,CAAC,eAAe,IAAI,cAAc;IAI3C,SAAS,CAAC,YAAY,IAAI,cAAc;CAGzC"}
@@ -0,0 +1,353 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { html, nothing } from 'lit';
3
+ import { property, query } from 'lit/decorators.js';
4
+ import { UiElement } from '../../UiElement.js';
5
+ import { isDisabled, setDisabled } from '../../../lib/disabled.js';
6
+ import '../../ripple/ui-ripple.js';
7
+ import '@material/web/focus/md-focus-ring.js';
8
+ let BaseButton = (() => {
9
+ let _classSuper = UiElement;
10
+ let _instanceExtraInitializers = [];
11
+ let _name_decorators;
12
+ let _name_initializers = [];
13
+ let _name_extraInitializers = [];
14
+ let _set_value_decorators;
15
+ let _trailingIcon_decorators;
16
+ let _trailingIcon_initializers = [];
17
+ let _trailingIcon_extraInitializers = [];
18
+ let _type_decorators;
19
+ let _type_initializers = [];
20
+ let _type_extraInitializers = [];
21
+ let _toggle_decorators;
22
+ let _toggle_initializers = [];
23
+ let _toggle_extraInitializers = [];
24
+ let _selected_decorators;
25
+ let _selected_initializers = [];
26
+ let _selected_extraInitializers = [];
27
+ let _shape_decorators;
28
+ let _shape_initializers = [];
29
+ let _shape_extraInitializers = [];
30
+ let _size_decorators;
31
+ let _size_initializers = [];
32
+ let _size_extraInitializers = [];
33
+ let _set_disabled_decorators;
34
+ let _ripple_decorators;
35
+ let _ripple_initializers = [];
36
+ let _ripple_extraInitializers = [];
37
+ return class BaseButton extends _classSuper {
38
+ static {
39
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
40
+ _name_decorators = [property({ type: String })];
41
+ _set_value_decorators = [property({ type: String })];
42
+ _trailingIcon_decorators = [property({ type: Boolean, attribute: 'trailingicon', reflect: true })];
43
+ _type_decorators = [property({ type: String, reflect: true })];
44
+ _toggle_decorators = [property({ type: Boolean, reflect: true })];
45
+ _selected_decorators = [property({ type: Boolean, reflect: true })];
46
+ _shape_decorators = [property({ type: String, reflect: true })];
47
+ _size_decorators = [property({ type: String, reflect: true })];
48
+ _set_disabled_decorators = [property({ reflect: true, type: Boolean })];
49
+ _ripple_decorators = [query('ui-ripple')];
50
+ __esDecorate(this, null, _name_decorators, { kind: "accessor", name: "name", static: false, private: false, access: { has: obj => "name" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_extraInitializers);
51
+ __esDecorate(this, null, _set_value_decorators, { kind: "setter", name: "value", static: false, private: false, access: { has: obj => "value" in obj, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, null, _instanceExtraInitializers);
52
+ __esDecorate(this, null, _trailingIcon_decorators, { kind: "accessor", name: "trailingIcon", static: false, private: false, access: { has: obj => "trailingIcon" in obj, get: obj => obj.trailingIcon, set: (obj, value) => { obj.trailingIcon = value; } }, metadata: _metadata }, _trailingIcon_initializers, _trailingIcon_extraInitializers);
53
+ __esDecorate(this, null, _type_decorators, { kind: "accessor", name: "type", static: false, private: false, access: { has: obj => "type" in obj, get: obj => obj.type, set: (obj, value) => { obj.type = value; } }, metadata: _metadata }, _type_initializers, _type_extraInitializers);
54
+ __esDecorate(this, null, _toggle_decorators, { kind: "accessor", name: "toggle", static: false, private: false, access: { has: obj => "toggle" in obj, get: obj => obj.toggle, set: (obj, value) => { obj.toggle = value; } }, metadata: _metadata }, _toggle_initializers, _toggle_extraInitializers);
55
+ __esDecorate(this, null, _selected_decorators, { kind: "accessor", name: "selected", static: false, private: false, access: { has: obj => "selected" in obj, get: obj => obj.selected, set: (obj, value) => { obj.selected = value; } }, metadata: _metadata }, _selected_initializers, _selected_extraInitializers);
56
+ __esDecorate(this, null, _shape_decorators, { kind: "accessor", name: "shape", static: false, private: false, access: { has: obj => "shape" in obj, get: obj => obj.shape, set: (obj, value) => { obj.shape = value; } }, metadata: _metadata }, _shape_initializers, _shape_extraInitializers);
57
+ __esDecorate(this, null, _size_decorators, { kind: "accessor", name: "size", static: false, private: false, access: { has: obj => "size" in obj, get: obj => obj.size, set: (obj, value) => { obj.size = value; } }, metadata: _metadata }, _size_initializers, _size_extraInitializers);
58
+ __esDecorate(this, null, _set_disabled_decorators, { kind: "setter", name: "disabled", static: false, private: false, access: { has: obj => "disabled" in obj, set: (obj, value) => { obj.disabled = value; } }, metadata: _metadata }, null, _instanceExtraInitializers);
59
+ __esDecorate(this, null, _ripple_decorators, { kind: "accessor", name: "ripple", static: false, private: false, access: { has: obj => "ripple" in obj, get: obj => obj.ripple, set: (obj, value) => { obj.ripple = value; } }, metadata: _metadata }, _ripple_initializers, _ripple_extraInitializers);
60
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
61
+ }
62
+ static formAssociated = true;
63
+ #internals = (__runInitializers(this, _instanceExtraInitializers), this.attachInternals());
64
+ /**
65
+ * The form associated with this element
66
+ * @attribute
67
+ */
68
+ get form() {
69
+ return this.#internals.form;
70
+ }
71
+ get validity() {
72
+ return this.#internals.validity;
73
+ }
74
+ get validationMessage() {
75
+ return this.#internals.validationMessage;
76
+ }
77
+ get willValidate() {
78
+ return this.#internals.willValidate;
79
+ }
80
+ #name_accessor_storage = __runInitializers(this, _name_initializers, void 0);
81
+ /**
82
+ * The name of the button, submitted as a pair with the button's value as part of the form data.
83
+ * @attribute
84
+ */
85
+ get name() { return this.#name_accessor_storage; }
86
+ set name(value) { this.#name_accessor_storage = value; }
87
+ #value = __runInitializers(this, _name_extraInitializers);
88
+ get value() {
89
+ return this.#value;
90
+ }
91
+ /**
92
+ * Defines the value associated with the button's name when it's submitted with the form data.
93
+ * @attribute
94
+ */
95
+ set value(value) {
96
+ if (this.#value === value) {
97
+ return;
98
+ }
99
+ this.#value = value;
100
+ this.#internals?.setFormValue(value || null);
101
+ }
102
+ #trailingIcon_accessor_storage = __runInitializers(this, _trailingIcon_initializers, false
103
+ /**
104
+ * The default behavior of the button.
105
+ * @attribute
106
+ */
107
+ );
108
+ /**
109
+ * Whether to render the icon at the inline end of the label rather than the inline start.
110
+ * @attribute
111
+ */
112
+ get trailingIcon() { return this.#trailingIcon_accessor_storage; }
113
+ set trailingIcon(value) { this.#trailingIcon_accessor_storage = value; }
114
+ #type_accessor_storage = (__runInitializers(this, _trailingIcon_extraInitializers), __runInitializers(this, _type_initializers, 'button'
115
+ /**
116
+ * When set, the button is a toggle button.
117
+ * @attribute
118
+ */
119
+ ));
120
+ /**
121
+ * The default behavior of the button.
122
+ * @attribute
123
+ */
124
+ get type() { return this.#type_accessor_storage; }
125
+ set type(value) { this.#type_accessor_storage = value; }
126
+ #toggle_accessor_storage = (__runInitializers(this, _type_extraInitializers), __runInitializers(this, _toggle_initializers, false
127
+ /**
128
+ * Indicates that the button is currently selected.
129
+ * @attribute
130
+ */
131
+ ));
132
+ /**
133
+ * When set, the button is a toggle button.
134
+ * @attribute
135
+ */
136
+ get toggle() { return this.#toggle_accessor_storage; }
137
+ set toggle(value) { this.#toggle_accessor_storage = value; }
138
+ #selected_accessor_storage = (__runInitializers(this, _toggle_extraInitializers), __runInitializers(this, _selected_initializers, false
139
+ /**
140
+ * The shape of the button.
141
+ * @attribute
142
+ */
143
+ ));
144
+ /**
145
+ * Indicates that the button is currently selected.
146
+ * @attribute
147
+ */
148
+ get selected() { return this.#selected_accessor_storage; }
149
+ set selected(value) { this.#selected_accessor_storage = value; }
150
+ #shape_accessor_storage = (__runInitializers(this, _selected_extraInitializers), __runInitializers(this, _shape_initializers, 'round'
151
+ /**
152
+ * The size of the button.
153
+ * @attribute
154
+ */
155
+ ));
156
+ /**
157
+ * The shape of the button.
158
+ * @attribute
159
+ */
160
+ get shape() { return this.#shape_accessor_storage; }
161
+ set shape(value) { this.#shape_accessor_storage = value; }
162
+ #size_accessor_storage = (__runInitializers(this, _shape_extraInitializers), __runInitializers(this, _size_initializers, 's'));
163
+ /**
164
+ * The size of the button.
165
+ * @attribute
166
+ */
167
+ get size() { return this.#size_accessor_storage; }
168
+ set size(value) { this.#size_accessor_storage = value; }
169
+ get disabled() {
170
+ return isDisabled(this);
171
+ }
172
+ /**
173
+ * When set, the button is in a disabled state.
174
+ * @attribute
175
+ */
176
+ set disabled(value) {
177
+ const old = isDisabled(this);
178
+ setDisabled(this, value);
179
+ this.requestUpdate('disabled', old);
180
+ }
181
+ #ripple_accessor_storage = (__runInitializers(this, _size_extraInitializers), __runInitializers(this, _ripple_initializers, void 0));
182
+ get ripple() { return this.#ripple_accessor_storage; }
183
+ set ripple(value) { this.#ripple_accessor_storage = value; }
184
+ constructor() {
185
+ super();
186
+ __runInitializers(this, _ripple_extraInitializers);
187
+ this.actionController.cancelKeyboardEvents = true;
188
+ this.addEventListener('keydown', this.handleKeyDown.bind(this));
189
+ this.addEventListener('keyup', this.handleKeyUp.bind(this));
190
+ this.addEventListener('click', this.handleClick.bind(this));
191
+ this.addEventListener('pointerdown', this.handlePointerDown.bind(this));
192
+ this.addEventListener('pointerup', this.handlePointerUp.bind(this));
193
+ this.addEventListener('pointercancel', this.handlePointerCancel.bind(this));
194
+ this.addEventListener('pointerleave', this.handlePointerLeave.bind(this));
195
+ this.addEventListener('pointerenter', this.handlePointerEnter.bind(this));
196
+ this.addEventListener('contextmenu', this.handleContextMenu.bind(this));
197
+ }
198
+ connectedCallback() {
199
+ super.connectedCallback();
200
+ if (!this.hasAttribute('role')) {
201
+ this.setAttribute('role', 'button');
202
+ }
203
+ if (!this.hasAttribute('tabindex') && !this.disabled) {
204
+ this.setAttribute('tabindex', '0');
205
+ }
206
+ }
207
+ updated(cp) {
208
+ super.updated(cp);
209
+ // If the button is disabled, remove the tabindex attribute
210
+ if (cp.has('disabled')) {
211
+ if (this.disabled) {
212
+ this.removeAttribute('tabindex');
213
+ }
214
+ else if (!this.hasAttribute('tabindex')) {
215
+ this.setAttribute('tabindex', '0');
216
+ }
217
+ }
218
+ if (cp.has('toggle') || cp.has('selected')) {
219
+ this.updatePressedState();
220
+ }
221
+ }
222
+ updatePressedState() {
223
+ if (this.toggle) {
224
+ this.ariaPressed = String(this.selected);
225
+ }
226
+ else {
227
+ this.selected = false;
228
+ this.removeAttribute('aria-pressed');
229
+ }
230
+ }
231
+ checkValidity() {
232
+ return this.#internals.checkValidity();
233
+ }
234
+ reportValidity() {
235
+ return this.#internals.reportValidity();
236
+ }
237
+ firstUpdated() {
238
+ this.#internals?.setFormValue(this.value || null);
239
+ }
240
+ beginPress(options) {
241
+ super.beginPress(options);
242
+ this.classList.add('pressed');
243
+ this.ripple?.beginFocus();
244
+ }
245
+ endPress(config) {
246
+ super.endPress(config);
247
+ this.classList.remove('pressed');
248
+ this.ripple?.endFocus();
249
+ const { cancelled, reason } = config;
250
+ if (cancelled) {
251
+ return;
252
+ }
253
+ const allowedReasons = reason === 'enter' || reason === 'space';
254
+ if (this.type === 'submit' && (!reason || allowedReasons)) {
255
+ this.handleSubmit();
256
+ }
257
+ else if (allowedReasons) {
258
+ this.click();
259
+ }
260
+ }
261
+ handleClick(e) {
262
+ super.handleClick(e);
263
+ if (this.disabled) {
264
+ e.preventDefault();
265
+ e.stopPropagation();
266
+ return;
267
+ }
268
+ if (this.toggle) {
269
+ this.selected = !this.selected;
270
+ const e = new ToggleEvent('toggle', {
271
+ bubbles: true,
272
+ composed: true,
273
+ newState: this.selected ? 'selected' : 'unselected',
274
+ oldState: this.selected ? 'unselected' : 'selected',
275
+ });
276
+ this.dispatchEvent(e);
277
+ }
278
+ this.endPress({ cancelled: false, actionData: { event: e } });
279
+ }
280
+ handleSubmit() {
281
+ const { name, value, type, disabled, form } = this;
282
+ if (!form || !type || disabled) {
283
+ return;
284
+ }
285
+ const typedForm = form;
286
+ let button;
287
+ if (name || value) {
288
+ button = document.createElement('button');
289
+ if (name) {
290
+ button.name = name;
291
+ }
292
+ if (value) {
293
+ button.value = value;
294
+ }
295
+ button.type = type;
296
+ button.hidden = true;
297
+ typedForm.append(button);
298
+ }
299
+ try {
300
+ typedForm.requestSubmit(button);
301
+ }
302
+ catch {
303
+ // Ignore errors
304
+ }
305
+ if (button) {
306
+ typedForm.removeChild(button);
307
+ }
308
+ }
309
+ handlePointerEnter(e) {
310
+ super.handlePointerEnter(e);
311
+ if (this.ripple) {
312
+ this.ripple.beginHover(e);
313
+ }
314
+ }
315
+ handlePointerLeave(e) {
316
+ super.handlePointerLeave(e);
317
+ if (this.ripple) {
318
+ this.ripple.endHover();
319
+ }
320
+ }
321
+ render() {
322
+ const { trailingIcon = false } = this;
323
+ const icon = this.renderIcon();
324
+ return html `
325
+ ${this.renderFocusRing()} ${this.renderRipple()} ${trailingIcon ? nothing : icon}
326
+ <slot></slot>
327
+ ${trailingIcon ? icon : nothing}
328
+ `;
329
+ }
330
+ renderIcon() {
331
+ return html `<slot name="icon"></slot>`;
332
+ }
333
+ renderFocusRing() {
334
+ return html `<md-focus-ring part="focus-ring" class="focus-ring" .control="${this}"></md-focus-ring>`;
335
+ }
336
+ renderRipple() {
337
+ return html `<ui-ripple class="ripple" ?disabled="${this.disabled}"></ui-ripple>`;
338
+ }
339
+ };
340
+ })();
341
+ /**
342
+ * A material design button with M3 Expressive features - CSS-native implementation.
343
+ *
344
+ * @slot icon - A slot for the icon element
345
+ * @slot - The default slot for the label
346
+ * @attribute {string} form - The form associated with this element when the element is outside the form.
347
+ * @fires {ToggleEvent} toggle - Fired when the `toggle` property is true and the button is clicked,
348
+ * changing its selection state.
349
+ * The event's `newState` and `oldState` properties (string values: 'selected' or
350
+ * 'unselected') detail this selection change.
351
+ */
352
+ export default BaseButton;
353
+ //# sourceMappingURL=base.js.map