@api-client/ui 0.0.5 → 0.0.8

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 (326) hide show
  1. package/demo/elements/http/http-assertions.html +3 -0
  2. package/demo/elements/http/http-assertions.ts +1 -1
  3. package/demo/elements/http/http-flows.html +23 -0
  4. package/demo/elements/http/http-flows.ts +92 -0
  5. package/demo/elements/http/index.html +3 -0
  6. package/demo/pages/http-project/main.ts +5 -6
  7. package/dist/bindings/base/StoreBindings.js +4 -4
  8. package/dist/bindings/base/StoreBindings.js.map +1 -1
  9. package/dist/define/dialog/delete-cookie-action-dialog.d.ts +10 -0
  10. package/dist/define/dialog/delete-cookie-action-dialog.d.ts.map +1 -0
  11. package/dist/define/dialog/delete-cookie-action-dialog.js +14 -0
  12. package/dist/define/dialog/delete-cookie-action-dialog.js.map +1 -0
  13. package/dist/define/dialog/set-cookie-action-dialog.d.ts +10 -0
  14. package/dist/define/dialog/set-cookie-action-dialog.d.ts.map +1 -0
  15. package/dist/define/dialog/set-cookie-action-dialog.js +14 -0
  16. package/dist/define/dialog/set-cookie-action-dialog.js.map +1 -0
  17. package/dist/define/http/http-assertions.d.ts +1 -1
  18. package/dist/define/http/http-assertions.d.ts.map +1 -1
  19. package/dist/define/http/http-assertions.js +3 -3
  20. package/dist/define/http/http-assertions.js.map +1 -1
  21. package/dist/define/http/http-flows.d.ts +10 -0
  22. package/dist/define/http/http-flows.d.ts.map +1 -0
  23. package/dist/define/http/http-flows.js +13 -0
  24. package/dist/define/http/http-flows.js.map +1 -0
  25. package/dist/define/ui/ui-divider.d.ts +4 -1
  26. package/dist/define/ui/ui-divider.d.ts.map +1 -1
  27. package/dist/define/ui/ui-divider.js +11 -2
  28. package/dist/define/ui/ui-divider.js.map +1 -1
  29. package/dist/elements/ApiElement.d.ts +4 -0
  30. package/dist/elements/ApiElement.d.ts.map +1 -1
  31. package/dist/elements/ApiElement.js +6 -0
  32. package/dist/elements/ApiElement.js.map +1 -1
  33. package/dist/elements/amf/ApiAuthorizationEditor.element.js +1 -1
  34. package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
  35. package/dist/elements/amf/ApiOperationDocument.element.d.ts.map +1 -1
  36. package/dist/elements/amf/ApiOperationDocument.element.js +2 -1
  37. package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
  38. package/dist/elements/amf/ApiRequest.element.js +1 -1
  39. package/dist/elements/amf/ApiRequest.element.js.map +1 -1
  40. package/dist/elements/amf/ApiRequestEditor.element.d.ts +0 -1
  41. package/dist/elements/amf/ApiRequestEditor.element.d.ts.map +1 -1
  42. package/dist/elements/amf/ApiRequestEditor.element.js +0 -3
  43. package/dist/elements/amf/ApiRequestEditor.element.js.map +1 -1
  44. package/dist/elements/authorization/ui/Authorization.d.ts +2 -1
  45. package/dist/elements/authorization/ui/Authorization.d.ts.map +1 -1
  46. package/dist/elements/authorization/ui/Authorization.js +0 -3
  47. package/dist/elements/authorization/ui/Authorization.js.map +1 -1
  48. package/dist/elements/dialog/DeleteCookieAction.element.d.ts +20 -0
  49. package/dist/elements/dialog/DeleteCookieAction.element.d.ts.map +1 -0
  50. package/dist/elements/dialog/DeleteCookieAction.element.js +93 -0
  51. package/dist/elements/dialog/DeleteCookieAction.element.js.map +1 -0
  52. package/dist/elements/dialog/DeleteCookieAction.styles.d.ts +3 -0
  53. package/dist/elements/dialog/DeleteCookieAction.styles.d.ts.map +1 -0
  54. package/dist/elements/dialog/DeleteCookieAction.styles.js +13 -0
  55. package/dist/elements/dialog/DeleteCookieAction.styles.js.map +1 -0
  56. package/dist/elements/dialog/Rename.d.ts +7 -6
  57. package/dist/elements/dialog/Rename.d.ts.map +1 -1
  58. package/dist/elements/dialog/Rename.js +7 -6
  59. package/dist/elements/dialog/Rename.js.map +1 -1
  60. package/dist/elements/dialog/SetCookieAction.element.d.ts +22 -0
  61. package/dist/elements/dialog/SetCookieAction.element.d.ts.map +1 -0
  62. package/dist/elements/dialog/SetCookieAction.element.js +173 -0
  63. package/dist/elements/dialog/SetCookieAction.element.js.map +1 -0
  64. package/dist/elements/environment/EnvironmentEditor.d.ts +24 -3
  65. package/dist/elements/environment/EnvironmentEditor.d.ts.map +1 -1
  66. package/dist/elements/environment/EnvironmentEditor.js +69 -23
  67. package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
  68. package/dist/elements/environment/EnvironmentEditor.styles.d.ts.map +1 -1
  69. package/dist/elements/environment/EnvironmentEditor.styles.js +5 -0
  70. package/dist/elements/environment/EnvironmentEditor.styles.js.map +1 -1
  71. package/dist/elements/environment/ServerEditor.d.ts +3 -3
  72. package/dist/elements/environment/ServerEditor.d.ts.map +1 -1
  73. package/dist/elements/environment/ServerEditor.js +3 -6
  74. package/dist/elements/environment/ServerEditor.js.map +1 -1
  75. package/dist/elements/environment/VariablesEditor.d.ts +0 -1
  76. package/dist/elements/environment/VariablesEditor.d.ts.map +1 -1
  77. package/dist/elements/environment/VariablesEditor.js +3 -6
  78. package/dist/elements/environment/VariablesEditor.js.map +1 -1
  79. package/dist/elements/highlight/Prism.styles.d.ts.map +1 -1
  80. package/dist/elements/highlight/Prism.styles.js +12 -5
  81. package/dist/elements/highlight/Prism.styles.js.map +1 -1
  82. package/dist/elements/http/BodyEditor.d.ts +0 -4
  83. package/dist/elements/http/BodyEditor.d.ts.map +1 -1
  84. package/dist/elements/http/BodyEditor.js +10 -16
  85. package/dist/elements/http/BodyEditor.js.map +1 -1
  86. package/dist/elements/http/BodyMultipartEditor.d.ts +3 -16
  87. package/dist/elements/http/BodyMultipartEditor.d.ts.map +1 -1
  88. package/dist/elements/http/BodyMultipartEditor.js +3 -19
  89. package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
  90. package/dist/elements/http/BodyTextEditor.d.ts +0 -1
  91. package/dist/elements/http/BodyTextEditor.d.ts.map +1 -1
  92. package/dist/elements/http/BodyTextEditor.js +0 -3
  93. package/dist/elements/http/BodyTextEditor.js.map +1 -1
  94. package/dist/elements/http/BodyUrlEncodedEditor.d.ts +3 -3
  95. package/dist/elements/http/BodyUrlEncodedEditor.d.ts.map +1 -1
  96. package/dist/elements/http/BodyUrlEncodedEditor.js +3 -5
  97. package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
  98. package/dist/elements/http/HeadersForm.d.ts +0 -4
  99. package/dist/elements/http/HeadersForm.d.ts.map +1 -1
  100. package/dist/elements/http/HeadersForm.js +0 -6
  101. package/dist/elements/http/HeadersForm.js.map +1 -1
  102. package/dist/elements/http/HttpAssertions.element.d.ts +55 -0
  103. package/dist/elements/http/HttpAssertions.element.d.ts.map +1 -0
  104. package/dist/elements/http/HttpAssertions.element.js +264 -0
  105. package/dist/elements/http/HttpAssertions.element.js.map +1 -0
  106. package/dist/elements/http/HttpAssertions.styles.d.ts.map +1 -1
  107. package/dist/elements/http/HttpAssertions.styles.js +7 -156
  108. package/dist/elements/http/HttpAssertions.styles.js.map +1 -1
  109. package/dist/elements/http/HttpFlows.common.d.ts +3 -0
  110. package/dist/elements/http/HttpFlows.common.d.ts.map +1 -0
  111. package/dist/elements/http/HttpFlows.common.js +181 -0
  112. package/dist/elements/http/HttpFlows.common.js.map +1 -0
  113. package/dist/elements/http/HttpFlows.element.d.ts +97 -0
  114. package/dist/elements/http/HttpFlows.element.d.ts.map +1 -0
  115. package/dist/elements/http/HttpFlows.element.js +684 -0
  116. package/dist/elements/http/HttpFlows.element.js.map +1 -0
  117. package/dist/elements/http/HttpFlows.styles.d.ts +3 -0
  118. package/dist/elements/http/HttpFlows.styles.d.ts.map +1 -0
  119. package/dist/elements/http/HttpFlows.styles.js +28 -0
  120. package/dist/elements/http/HttpFlows.styles.js.map +1 -0
  121. package/dist/elements/http/HttpFlowsUi.d.ts +172 -0
  122. package/dist/elements/http/HttpFlowsUi.d.ts.map +1 -0
  123. package/dist/elements/http/HttpFlowsUi.js +1256 -0
  124. package/dist/elements/http/HttpFlowsUi.js.map +1 -0
  125. package/dist/elements/http/RequestConfigElement.d.ts +0 -1
  126. package/dist/elements/http/RequestConfigElement.d.ts.map +1 -1
  127. package/dist/elements/http/RequestConfigElement.js +8 -11
  128. package/dist/elements/http/RequestConfigElement.js.map +1 -1
  129. package/dist/elements/http/RequestEditor.d.ts +10 -10
  130. package/dist/elements/http/RequestEditor.d.ts.map +1 -1
  131. package/dist/elements/http/RequestEditor.js +62 -23
  132. package/dist/elements/http/RequestEditor.js.map +1 -1
  133. package/dist/elements/http/UrlInput.d.ts +3 -3
  134. package/dist/elements/http/UrlInput.d.ts.map +1 -1
  135. package/dist/elements/http/UrlInput.js +2 -2
  136. package/dist/elements/http/UrlInput.js.map +1 -1
  137. package/dist/elements/http/UrlParamsForm.d.ts +0 -1
  138. package/dist/elements/http/UrlParamsForm.d.ts.map +1 -1
  139. package/dist/elements/http/UrlParamsForm.js +0 -3
  140. package/dist/elements/http/UrlParamsForm.js.map +1 -1
  141. package/dist/elements/layout/SplitView.styles.d.ts.map +1 -1
  142. package/dist/elements/layout/SplitView.styles.js +1 -0
  143. package/dist/elements/layout/SplitView.styles.js.map +1 -1
  144. package/dist/elements/navigation/AppNavigationItem.styles.d.ts.map +1 -1
  145. package/dist/elements/navigation/AppNavigationItem.styles.js +2 -0
  146. package/dist/elements/navigation/AppNavigationItem.styles.js.map +1 -1
  147. package/dist/elements/project/HttpProjectRequest.d.ts +2 -1
  148. package/dist/elements/project/HttpProjectRequest.d.ts.map +1 -1
  149. package/dist/elements/project/HttpProjectRequest.js +14 -5
  150. package/dist/elements/project/HttpProjectRequest.js.map +1 -1
  151. package/dist/elements/project/ProjectRunner.d.ts +0 -1
  152. package/dist/elements/project/ProjectRunner.d.ts.map +1 -1
  153. package/dist/elements/project/ProjectRunner.js +1 -4
  154. package/dist/elements/project/ProjectRunner.js.map +1 -1
  155. package/dist/elements/schema-design/AssociationFormElement.d.ts +0 -1
  156. package/dist/elements/schema-design/AssociationFormElement.d.ts.map +1 -1
  157. package/dist/elements/schema-design/AssociationFormElement.js +2 -5
  158. package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
  159. package/dist/elements/schema-design/DataEntityEditorElement.d.ts +2 -2
  160. package/dist/elements/schema-design/DataEntityEditorElement.d.ts.map +1 -1
  161. package/dist/elements/schema-design/DataEntityEditorElement.js +5 -5
  162. package/dist/elements/schema-design/DataEntityEditorElement.js.map +1 -1
  163. package/dist/elements/schema-design/DataSchemaDocument.d.ts +0 -1
  164. package/dist/elements/schema-design/DataSchemaDocument.d.ts.map +1 -1
  165. package/dist/elements/schema-design/DataSchemaDocument.js +4 -7
  166. package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
  167. package/dist/elements/schema-design/EntityFormElement.d.ts +0 -1
  168. package/dist/elements/schema-design/EntityFormElement.d.ts.map +1 -1
  169. package/dist/elements/schema-design/EntityFormElement.js +4 -7
  170. package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
  171. package/dist/elements/schema-design/PropertyFormElement.d.ts +1 -2
  172. package/dist/elements/schema-design/PropertyFormElement.d.ts.map +1 -1
  173. package/dist/elements/schema-design/PropertyFormElement.js +8 -11
  174. package/dist/elements/schema-design/PropertyFormElement.js.map +1 -1
  175. package/dist/pages/ApplicationScreen.d.ts +1 -1
  176. package/dist/pages/ApplicationScreen.d.ts.map +1 -1
  177. package/dist/pages/ApplicationScreen.js +1 -1
  178. package/dist/pages/ApplicationScreen.js.map +1 -1
  179. package/dist/pages/api-client/ApiClient.styles.d.ts.map +1 -1
  180. package/dist/pages/api-client/ApiClient.styles.js +22 -3
  181. package/dist/pages/api-client/ApiClient.styles.js.map +1 -1
  182. package/dist/pages/api-client/Authenticate.screen.d.ts +2 -0
  183. package/dist/pages/api-client/Authenticate.screen.d.ts.map +1 -1
  184. package/dist/pages/api-client/Authenticate.screen.js +19 -3
  185. package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
  186. package/dist/pages/api-client/StoreConfig.screen.d.ts.map +1 -1
  187. package/dist/pages/api-client/StoreConfig.screen.js +4 -2
  188. package/dist/pages/api-client/StoreConfig.screen.js.map +1 -1
  189. package/dist/pages/api-client/StoreConfig.styles.d.ts.map +1 -1
  190. package/dist/pages/api-client/StoreConfig.styles.js +5 -0
  191. package/dist/pages/api-client/StoreConfig.styles.js.map +1 -1
  192. package/dist/pages/api-client/pages/Files.page.d.ts +1 -0
  193. package/dist/pages/api-client/pages/Files.page.d.ts.map +1 -1
  194. package/dist/pages/api-client/pages/Files.page.js +2 -1
  195. package/dist/pages/api-client/pages/Files.page.js.map +1 -1
  196. package/dist/pages/http-project/HttpProject.screen.d.ts +0 -8
  197. package/dist/pages/http-project/HttpProject.screen.d.ts.map +1 -1
  198. package/dist/pages/http-project/HttpProject.screen.js +14 -15
  199. package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
  200. package/dist/pages/http-project/types.d.ts +8 -6
  201. package/dist/pages/http-project/types.d.ts.map +1 -1
  202. package/dist/pages/http-project/types.js.map +1 -1
  203. package/dist/styles/m3/surface.module.d.ts.map +1 -1
  204. package/dist/styles/m3/surface.module.js +11 -27
  205. package/dist/styles/m3/surface.module.js.map +1 -1
  206. package/dist/ui/UiElement.d.ts +4 -0
  207. package/dist/ui/UiElement.d.ts.map +1 -1
  208. package/dist/ui/UiElement.js +6 -0
  209. package/dist/ui/UiElement.js.map +1 -1
  210. package/dist/ui/button/SegmentedButton.styles.d.ts.map +1 -1
  211. package/dist/ui/button/SegmentedButton.styles.js +3 -1
  212. package/dist/ui/button/SegmentedButton.styles.js.map +1 -1
  213. package/dist/ui/dialog/UiDialog.d.ts +3 -0
  214. package/dist/ui/dialog/UiDialog.d.ts.map +1 -1
  215. package/dist/ui/dialog/UiDialog.js +3 -0
  216. package/dist/ui/dialog/UiDialog.js.map +1 -1
  217. package/dist/ui/effects/ripple.d.ts.map +1 -1
  218. package/dist/ui/effects/ripple.js +5 -1
  219. package/dist/ui/effects/ripple.js.map +1 -1
  220. package/dist/ui/icons/Icons.d.ts +3 -2
  221. package/dist/ui/icons/Icons.d.ts.map +1 -1
  222. package/dist/ui/icons/Icons.js +2 -1
  223. package/dist/ui/icons/Icons.js.map +1 -1
  224. package/dist/ui/input/CheckedElement.d.ts +1 -1
  225. package/dist/ui/input/CheckedElement.d.ts.map +1 -1
  226. package/dist/ui/input/CheckedElement.js +3 -3
  227. package/dist/ui/input/CheckedElement.js.map +1 -1
  228. package/dist/ui/input/Input.js +1 -1
  229. package/dist/ui/input/Input.js.map +1 -1
  230. package/dist/ui/list/{DividerElement.d.ts → UiDivider.element.d.ts} +6 -6
  231. package/dist/ui/list/UiDivider.element.d.ts.map +1 -0
  232. package/dist/ui/list/UiDivider.element.js +39 -0
  233. package/dist/ui/list/UiDivider.element.js.map +1 -0
  234. package/dist/ui/list/UiDivider.styles.d.ts +3 -0
  235. package/dist/ui/list/UiDivider.styles.d.ts.map +1 -0
  236. package/dist/ui/list/UiDivider.styles.js +49 -0
  237. package/dist/ui/list/UiDivider.styles.js.map +1 -0
  238. package/dist/ui/tabs/UiTabs.d.ts +13 -1
  239. package/dist/ui/tabs/UiTabs.d.ts.map +1 -1
  240. package/dist/ui/tabs/UiTabs.js +42 -13
  241. package/dist/ui/tabs/UiTabs.js.map +1 -1
  242. package/package.json +1 -1
  243. package/src/bindings/base/StoreBindings.ts +4 -4
  244. package/src/define/dialog/delete-cookie-action-dialog.ts +16 -0
  245. package/src/define/dialog/set-cookie-action-dialog.ts +16 -0
  246. package/src/define/http/http-assertions.ts +3 -3
  247. package/src/define/http/http-flows.ts +15 -0
  248. package/src/define/ui/ui-divider.ts +7 -2
  249. package/src/elements/ApiElement.ts +7 -0
  250. package/src/elements/amf/ApiAuthorizationEditor.element.ts +1 -1
  251. package/src/elements/amf/ApiOperationDocument.element.ts +2 -1
  252. package/src/elements/amf/ApiRequest.element.ts +1 -1
  253. package/src/elements/amf/ApiRequestEditor.element.ts +0 -4
  254. package/src/elements/authorization/ui/Authorization.ts +3 -5
  255. package/src/elements/dialog/DeleteCookieAction.element.ts +100 -0
  256. package/src/elements/dialog/DeleteCookieAction.styles.ts +14 -0
  257. package/src/elements/dialog/Rename.ts +8 -7
  258. package/src/elements/dialog/SetCookieAction.element.ts +183 -0
  259. package/src/elements/environment/EnvironmentEditor.styles.ts +5 -0
  260. package/src/elements/environment/EnvironmentEditor.ts +81 -22
  261. package/src/elements/environment/ServerEditor.ts +4 -8
  262. package/src/elements/environment/VariablesEditor.ts +3 -7
  263. package/src/elements/highlight/Prism.styles.ts +12 -5
  264. package/src/elements/http/BodyEditor.ts +10 -17
  265. package/src/elements/http/BodyMultipartEditor.ts +3 -20
  266. package/src/elements/http/BodyTextEditor.ts +0 -4
  267. package/src/elements/http/BodyUrlEncodedEditor.ts +5 -8
  268. package/src/elements/http/HeadersForm.ts +2 -9
  269. package/src/elements/http/HttpAssertions.element.ts +286 -0
  270. package/src/elements/http/HttpAssertions.styles.ts +7 -156
  271. package/src/elements/http/HttpFlows.common.ts +181 -0
  272. package/src/elements/http/HttpFlows.element.ts +722 -0
  273. package/src/elements/http/HttpFlows.styles.ts +29 -0
  274. package/src/elements/http/HttpFlowsUi.ts +1327 -0
  275. package/src/elements/http/RequestConfigElement.ts +10 -14
  276. package/src/elements/http/RequestEditor.ts +77 -35
  277. package/src/elements/http/UrlInput.ts +6 -6
  278. package/src/elements/http/UrlParamsForm.ts +2 -6
  279. package/src/elements/layout/SplitView.styles.ts +1 -0
  280. package/src/elements/navigation/AppNavigationItem.styles.ts +2 -0
  281. package/src/elements/project/HttpProjectRequest.ts +16 -5
  282. package/src/elements/project/ProjectRunner.ts +3 -7
  283. package/src/elements/schema-design/AssociationFormElement.ts +4 -8
  284. package/src/elements/schema-design/DataEntityEditorElement.ts +8 -8
  285. package/src/elements/schema-design/DataSchemaDocument.ts +5 -9
  286. package/src/elements/schema-design/EntityFormElement.ts +6 -10
  287. package/src/elements/schema-design/PropertyFormElement.ts +11 -15
  288. package/src/pages/ApplicationScreen.ts +1 -1
  289. package/src/pages/api-client/ApiClient.styles.ts +22 -3
  290. package/src/pages/api-client/Authenticate.screen.ts +19 -3
  291. package/src/pages/api-client/StoreConfig.screen.ts +4 -2
  292. package/src/pages/api-client/StoreConfig.styles.ts +5 -0
  293. package/src/pages/api-client/pages/Files.page.ts +2 -1
  294. package/src/pages/http-project/HttpProject.screen.ts +14 -26
  295. package/src/pages/http-project/types.ts +8 -6
  296. package/src/styles/m3/surface.module.ts +11 -27
  297. package/src/styles/m3/theme.css +36 -0
  298. package/src/styles/m3/tokens.css +11 -0
  299. package/src/ui/UiElement.ts +7 -0
  300. package/src/ui/button/SegmentedButton.styles.ts +3 -1
  301. package/src/ui/dialog/UiDialog.ts +3 -0
  302. package/src/ui/effects/ripple.ts +6 -1
  303. package/src/ui/icons/Icons.ts +3 -2
  304. package/src/ui/input/CheckedElement.ts +3 -3
  305. package/src/ui/input/Input.ts +1 -1
  306. package/src/ui/list/UiDivider.element.ts +41 -0
  307. package/src/ui/list/UiDivider.styles.ts +49 -0
  308. package/src/ui/tabs/UiTabs.ts +55 -13
  309. package/test/amf/authorization/OAuth2Method.test.ts +1 -1
  310. package/test/elements/http/HttpAssertions.test.ts +5 -6
  311. package/test/elements/http/HttpFlows.test.ts +485 -0
  312. package/dist/elements/http/HttpAssertions.d.ts +0 -114
  313. package/dist/elements/http/HttpAssertions.d.ts.map +0 -1
  314. package/dist/elements/http/HttpAssertions.js +0 -1146
  315. package/dist/elements/http/HttpAssertions.js.map +0 -1
  316. package/dist/elements/http/internals.d.ts +0 -150
  317. package/dist/elements/http/internals.d.ts.map +0 -1
  318. package/dist/elements/http/internals.js +0 -150
  319. package/dist/elements/http/internals.js.map +0 -1
  320. package/dist/ui/list/DividerElement.d.ts.map +0 -1
  321. package/dist/ui/list/DividerElement.js +0 -82
  322. package/dist/ui/list/DividerElement.js.map +0 -1
  323. package/src/elements/http/HttpAssertions.ts +0 -1187
  324. package/src/elements/http/internals.ts +0 -151
  325. package/src/http-client/docs/Files.md +0 -28
  326. package/src/ui/list/DividerElement.ts +0 -84
@@ -1 +1 @@
1
- {"version":3,"file":"HttpProject.screen.js","sourceRoot":"","sources":["../../../src/pages/http-project/HttpProject.screen.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResult, html, TemplateResult } from \"lit\";\nimport { \n ApiError, HttpProject, IApplication, IHttpProject, IPatchInfo, \n IPatchRevision, Events as CoreEvents, HttpProjectKind, \n ProjectFolderKind, ProjectRequestKind, EnvironmentKind, IEnvironment, \n IRequestUiMeta, \n IProjectRunnerOptions,\n BroadcastEvent,\n FilePatchBroadcastEvent\n} from \"@api-client/core/build/browser.js\";\nimport { JsonPatch, Patch } from \"@api-client/json\";\nimport { IRoute } from \"../../mixins/RouteMixin.js\";\nimport { ApplicationScreen } from \"../ApplicationScreen.js\";\nimport pageStyles from './HttpProject.styles.js';\nimport globalStyles from '../../styles/global-styles.js';\nimport typography from '../../styles/m3/typography.module.js';\nimport dialogStyles from '../../styles/m3/dialog.module.js';\nimport surfaceStyles from '../../styles/m3/surface.module.js';\nimport { HttpClientStoreBindings } from \"../../bindings/base/HttpClientStoreBindings.js\";\nimport { StoreBroadcast } from \"../../http-client/store/StoreBroadcast.js\";\nimport { Events } from \"../../events/Events.js\";\nimport { navigate } from \"../../lib/route.js\";\nimport { randomString } from \"../../lib/Random.js\";\nimport ProjectNavigationElement from \"../../elements/project/ProjectNavigation.js\";\nimport { query } from \"../../lib/decorators.js\";\nimport { HttpClientContextMenu } from \"./HttpClientContextMenu.js\";\nimport AppInfo from './AppInfo.js';\nimport { EventTypes } from \"../../events/EventTypes.js\";\nimport HttpProjectRequest from \"../../elements/project/HttpProjectRequest.js\";\nimport { ISplitLayout, SplitLayout } from \"../../elements/layout/SplitLayout.js\";\nimport { SplitItem } from \"../../elements/layout/SplitItem.js\";\nimport { LayoutType } from \"../../elements/layout/type.js\";\n// eslint-disable-next-line import/no-cycle\nimport { HttpClientProjectBindings, RunnerKind } from \"./types.js\";\nimport { ProxyBindings } from \"../../bindings/base/ProxyBindings.js\";\nimport { IconType } from \"../../ui/icons/Icons.js\";\nimport ProjectRunner from \"../../elements/project/ProjectRunner.js\";\nimport { StoreBindings } from \"../../bindings/base/StoreBindings.js\";\nimport { ConfigurationBindings } from \"../../bindings/base/ConfigurationBindings.js\";\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/http-project/project-navigation.js';\nimport '../../define/http-project/http-project-request.js';\nimport '../../define/http-project/http-project-request-history.js';\nimport '../../define/environment/environment-editor.js';\nimport '../../define/http-project/project-runner.js';\n\n/**\n * Application screen that renders an HTTP project in the HTTP Client supporting local IDB store.\n */\nexport default class HttpProjectScreen extends ApplicationScreen {\n static get styles(): CSSResult[] {\n return [globalStyles, pageStyles, typography, dialogStyles, surfaceStyles];\n }\n\n static get routes(): IRoute[] {\n return [\n { pattern: '/default', method: 'defaultRoute', fallback: true, name: 'HTTP Client home', title: 'HTTP Client home' },\n { pattern: '/404', method: 'e404Route', name: 'Not found', title: 'Not found' }\n ];\n }\n\n mediaChannel = new BroadcastChannel(StoreBroadcast.media);\n\n protected _workspace = '';\n\n /**\n * The key of the workspace that has the project.\n */\n get workspace(): string {\n return this._workspace;\n }\n\n protected _key = '';\n\n /**\n * The schema file key.\n */\n get key(): string {\n return this._key;\n }\n\n protected updatingProject?: boolean;\n\n protected isDirty?: boolean;\n\n protected schema?: string;\n\n /**\n * Own patches sent to the server.\n * These are removed after the sever event is received.\n */\n protected pendingPatches = new Map<string, JsonPatch>();\n\n /**\n * The list of patches made by the current user and received from the server since the beginning of this session\n * or page reload.\n * This is to used to recognize own patches so it won't process a patch that is already applied to the project.\n */\n protected livePatches = new Map<string, IPatchRevision>();\n\n project?: HttpProject;\n\n @query('project-navigation') nav?: ProjectNavigationElement;\n\n protected layout = new SplitLayout({\n dragTypes: ['text/kind', 'text/key'],\n constrain: true,\n stateCallback: this.handlerLayoutStore.bind(this),\n });\n\n protected menu: HttpClientContextMenu;\n\n /**\n * The key where the layout state is stored.\n */\n layoutStoreKey = '';\n\n protected uiMap = new Map<string, IRequestUiMeta>();\n\n idb: HttpClientStoreBindings;\n\n store: StoreBindings;\n\n proxy: ProxyBindings;\n\n config: ConfigurationBindings;\n\n constructor(bindings: HttpClientProjectBindings) {\n super(bindings);\n\n this.idb = bindings.idb;\n this.store = bindings.store;\n this.proxy = bindings.http;\n this.config = bindings.config;\n\n this.menu = new HttpClientContextMenu();\n this.menu.connect();\n this.contextMenuMutationCallback = this.contextMenuMutationCallback.bind(this);\n this.menu.store.set('callback', this.contextMenuMutationCallback);\n this.menu.store.set('layout', this.layout);\n this.menu.store.set('page', this);\n }\n\n async initialize(): Promise<void> {\n if (!await this.isPlatformSupported()) {\n return;\n }\n try {\n this.setupWorkspaceParameters();\n } catch (e) {\n this.reportCriticalError((e as Error).message);\n return;\n }\n await this.idb.initialize();\n await this.store.initialize();\n await this.proxy.initialize();\n await this.config.initialize();\n await this.initializeConfig();\n await this.initializeStore();\n this.store.space = this.workspace;\n this.proxy.space = this.workspace;\n\n await this.setupProject(this.key);\n\n await this.store.observeFile(this.key, 'media');\n await this.store.observeHistory();\n\n this.layoutStoreKey = `http-client.http-project.state.layout.${this.key}`;\n const state = await this.restoreLayout();\n this.layout.initialize(state);\n await this.loadRequestUiMeta();\n this.mediaChannel.addEventListener('message', this.mediaMessageHandler.bind(this));\n this.initializeRouting();\n this.initialized = true;\n this.layout.addEventListener('change', this.renderHandler.bind(this));\n this.layout.addEventListener('nameitem', this.nameLayoutItemHandler.bind(this));\n window.addEventListener(EventTypes.HttpProject.changed, () => this.contextMenuMutationCallback());\n window.addEventListener(EventTypes.HttpProject.State.nameChanged, this.handleProjectNameChange.bind(this));\n window.addEventListener(EventTypes.Http.Request.rename, this.handleRenameRequest.bind(this) as EventListener);\n }\n\n async storeChanged(): Promise<void> {\n this.reportCriticalError('You are no longer connected to the data store. Editing is disabled.');\n }\n\n protected setupWorkspaceParameters(): void {\n const url = new URL(window.location.href);\n const key = url.searchParams.get('key');\n const space = url.searchParams.get('space');\n if (key) {\n this._key = key;\n } else {\n throw new Error(`The project key is not set. Go back to the start page.`);\n }\n if (space) {\n this._workspace = space;\n } else {\n throw new Error(`The space key is not set. Go back to the start page.`);\n }\n }\n\n protected async setupProject(key: string): Promise<void> {\n try {\n const media = await this.readProjectFile(key);\n this.schema = JSON.stringify(media);\n this.project = new HttpProject(media);\n this.menu.store.set('project', this.project);\n } catch (e) {\n const cause = e as ApiError;\n if (cause.code === 404) {\n navigate('404');\n }\n CoreEvents.Telemetry.exception(cause.message, true);\n this.reportCriticalError(cause.message);\n }\n }\n\n async readProjectFile(key: string): Promise<IHttpProject> {\n const media = await this.store.media.read(key) as IHttpProject;\n return media;\n }\n\n async storePatch(key: string, id: string, value: JsonPatch, app: IApplication): Promise<void> {\n const info: IPatchInfo = {\n app: app.code,\n appVersion: app.version,\n patch: value,\n id,\n };\n await this.store.media.patch(key, info);\n }\n\n /**\n * A handler for the broadcast channel message which informs about changes to files media.\n */\n protected mediaMessageHandler(e: MessageEvent): void {\n const event = e.data as BroadcastEvent;\n if (event.space !== this.workspace) {\n return;\n }\n this.processChangeFileEvent(event);\n }\n\n /**\n * Apples changes to the Project file.\n * @param event The backend event received from the store.\n */\n protected processChangeFileEvent(event: BroadcastEvent): void {\n const { schema, project } = this;\n if (!schema || !project || this.key !== event.key || event.kind !== HttpProjectKind) {\n return;\n }\n if (event.operation === 'patch') {\n this.processFilePatch((event as FilePatchBroadcastEvent).data as IPatchRevision);\n }\n }\n\n /**\n * Logic run when a patch operation is reported from the backend.\n * @param rev The revision info from the backend event\n */\n protected processFilePatch(rev: IPatchRevision): void {\n const { schema, project } = this;\n if (!schema || !project) {\n return;\n }\n const iData = JSON.parse(schema);\n const { id } = rev;\n const ownPatch = this.pendingPatches.get(id);\n if (ownPatch) {\n this.livePatches.set(id, rev);\n this.pendingPatches.delete(id);\n // we still need to propagate changes to the requests.\n this.applyRequestPatches(rev.patch);\n return;\n }\n const result = Patch.apply(iData, rev.patch);\n this.schema = JSON.stringify(result.doc);\n project.new(result.doc as IHttpProject);\n this.render();\n const { nav } = this;\n if (nav) {\n nav.requestUpdate();\n }\n this.applyRequestPatches(rev.patch);\n }\n\n protected applyRequestPatches(patch: JsonPatch): void {\n const { project } = this;\n if (!project) {\n return;\n }\n patch.forEach((info) => {\n if (info.path.startsWith('/definitions/environments')) {\n // environments changed.\n const panels = document.querySelectorAll(`http-project-request`);\n Array.from(panels).forEach(p => p.applyPatch(info));\n return;\n }\n\n if (!info.path.startsWith('/definitions/requests/')) {\n return;\n }\n // \"/definitions/requests/\\d+/...\"\n const parts = info.path.replace('/definitions/requests/', '').split('/');\n const index = Number(parts[0]);\n if (Number.isNaN(index)) {\n return;\n }\n const r = project.definitions.requests[index];\n if (!r) {\n return;\n }\n const panel = document.querySelector(`http-project-request[data-key=\"${r.key}\"]`) as HttpProjectRequest | null;\n if (panel) {\n panel.applyPatch(info);\n }\n });\n }\n\n /**\n * A reference to this function is passed to the context menu\n * and it is called when a project mutates.\n */\n protected contextMenuMutationCallback(): void {\n this.render();\n this.nav?.requestUpdate();\n this.updateProject();\n }\n\n protected handleProjectNameChange(e: Event): void {\n const { key } = (e as CustomEvent).detail;\n this.layout.requestNameUpdate(key);\n const { nav } = this;\n if (nav) {\n nav.requestUpdate();\n }\n }\n\n protected handleRenameRequest(e: CustomEvent): void {\n const { key, name } = e.detail;\n if (!key || !name) {\n return;\n }\n const { project } = this;\n if (!project) {\n return;\n }\n const request = project.findRequest(key);\n if (!request) {\n return;\n }\n request.info.name = name;\n this.layout.requestNameUpdate(key);\n const { nav } = this;\n if (nav) {\n nav.requestUpdate();\n }\n this.updateProject();\n }\n\n /**\n * Triggers a save action on one of the workspace items.\n * \n * What happens next depends on the type of the item.\n * \n * Note, this is used by the context menu to handle the \"save\" action.\n * \n * @param key The key of the item to trigger the save action on.\n */\n triggerSave(key: string): void {\n // eslint-disable-next-line no-console\n console.log('trigger save', key);\n \n // const item = this.workspace.items.find(i => i.key === key);\n // if (!item) {\n // return;\n // }\n // switch (item.kind) {\n // case EnvironmentKind: this._triggerEnvironmentSave(item); break;\n // default:\n // }\n }\n\n protected openStart(): void {\n Events.Navigation.App.runHttpClient({ space: this.workspace });\n }\n\n protected resetRoute(): void {\n this.page = undefined;\n }\n\n protected defaultRoute(): void {\n this.resetRoute();\n this.page = 'default';\n }\n\n protected e404Route(): void {\n this.resetRoute();\n this.page = '404';\n }\n\n /**\n * The main function to call when updating the project in the store.\n * It takes care of the concurrent updates, patch building, and IO.\n */\n async updateProject(): Promise<void> {\n if (this.updatingProject) {\n this.isDirty = true;\n return;\n }\n\n const { schema, project } = this;\n if (!project || !schema) {\n // eslint-disable-next-line no-console\n console.warn(`Trying to update the project but none is set.`);\n return;\n }\n const newSchema = project.toJSON();\n const diff = Patch.diff(JSON.parse(schema), newSchema);\n if (!diff.length) {\n // eslint-disable-next-line no-console\n console.warn(`Expected to detect changes to the project schema.`);\n return;\n }\n this.updatingProject = true;\n // gives 2.092279e+13 permutations.\n const id = randomString(16);\n this.pendingPatches.set(id, diff);\n try {\n await this.storePatch(project.key, id, diff, AppInfo);\n this.schema = JSON.stringify(newSchema);\n } catch (e) {\n const cause = e as Error;\n CoreEvents.Telemetry.exception(cause.message, true);\n this.reportCriticalError(cause.message);\n } finally {\n this.updatingProject = false;\n if (this.isDirty) {\n this.updateProject();\n }\n }\n }\n\n /**\n * An event handler that renders the view on request.\n */\n protected renderHandler(): void {\n this.render();\n }\n\n protected nameLayoutItemHandler(event: Event): void {\n const item = (event as CustomEvent).detail as SplitItem;\n if (item.kind === ProjectFolderKind) {\n const folder = this.project?.findFolder(item.key);\n if (folder && folder.info.name) {\n item.label = folder.info.name;\n } else {\n item.label = 'Folder';\n }\n item.icon = 'folder';\n } else if (item.kind === ProjectRequestKind) {\n const request = this.project?.findRequest(item.key);\n if (request && request.info.name && request.info.name !== 'http://') {\n item.label = request.info.name;\n } else if (request && request.expects.url) {\n item.label = request.expects.url;\n } else {\n item.label = 'HTTP request';\n }\n item.icon = 'request';\n } else if (item.kind === EnvironmentKind) {\n const env = this.project?.findEnvironment(item.key);\n if (env && env.info.name) {\n item.label = env.info.name;\n } else {\n item.label = 'Environment';\n }\n item.icon = 'environment';\n }\n }\n\n protected requestChangeHandler(e: Event): void {\n const node = e.target as HTMLElement;\n const key = node.dataset.key as string;\n if (!key) {\n return;\n }\n this.layout.requestNameUpdate(key);\n this.updateProject();\n }\n\n protected handleRequestUiChange(e: Event): void {\n const editor = e.target as HttpProjectRequest;\n const { ui, key } = editor;\n if (!ui || !key) {\n return;\n }\n this.uiMap.set(key, ui);\n Events.HttpProject.Ui.HttpRequest.set(this.key, key, ui);\n }\n\n protected async loadRequestUiMeta(): Promise<void> {\n const ids: string[] = [];\n for (const [key, value] of this.layout.definitions) {\n if (value.type === LayoutType.item) {\n const item = value.value as SplitItem;\n if (item.kind === ProjectRequestKind) {\n ids.push(key);\n }\n }\n }\n if (!ids.length) {\n return;\n }\n const result = await Events.HttpProject.Ui.HttpRequest.getBulk(this.key, ids);\n result?.items.forEach((item, index) => {\n if (!item) {\n return;\n }\n this.uiMap.set(ids[index], item);\n });\n }\n\n protected environmentChangeHandler(e: Event): void {\n const { project } = this;\n if (!project) {\n return;\n }\n const node = e.target as HTMLElement;\n const key = node.dataset.key as string;\n if (!key) {\n return;\n }\n const schema = this.environmentSchemas.get(key);\n if (!schema) {\n return;\n }\n const environment = project.definitions.environments.find(i => i.key === key);\n if (environment) {\n environment.new(schema);\n } else {\n project.addEnvironment(schema);\n }\n this.layout.requestNameUpdate(key);\n this.updateProject();\n }\n\n protected handleNavigationOpen(event: Event): void {\n const e = event as CustomEvent;\n const key = e.detail.key as string;\n const kind = e.detail.kind as string;\n if (!key || !kind) {\n return;\n }\n const { layout } = this;\n const panel = layout.findPanel(key);\n if (panel) {\n panel.selected = key;\n layout.updateView(panel.key);\n this.render();\n return;\n }\n switch (kind) {\n // case ProjectFolderKind: this._openProjectFolder(key, pid as string); break;\n case ProjectRequestKind: this.openProjectRequest(key); break;\n case EnvironmentKind: this.openProjectEnvironment(key); break;\n default:\n }\n }\n\n async openProjectRequest(key: string): Promise<void> {\n const { project } = this;\n if (!project) {\n return;\n }\n const request = project.findRequest(key);\n if (!request) {\n this.reportCriticalError(`The request was not found in the project.`);\n return;\n }\n const ui = await Events.HttpProject.Ui.HttpRequest.get(project.key, key);\n if (ui) {\n this.uiMap.set(key, ui);\n } else {\n this.uiMap.set(key, {});\n }\n const parent = request.getParent();\n const parentKey = parent === project ? undefined : parent?.key;\n this.layout.addItem({\n kind: ProjectRequestKind,\n key,\n label: request.info.renderLabel,\n icon: 'request',\n parent: parentKey,\n });\n }\n\n openProjectEnvironment(key: string): void {\n const { project } = this;\n if (!project) {\n return;\n }\n const environment = project.findEnvironment(key);\n if (!environment) {\n this.reportCriticalError(`The environment was not found in the project.`);\n return;\n }\n const parent = project.findParent(environment.key);\n const parentKey = parent === project ? undefined : parent?.key;\n this.layout.addItem({\n kind: EnvironmentKind,\n key,\n label: environment.info.renderLabel,\n icon: 'environment',\n parent: parentKey,\n });\n }\n\n /**\n * Opens a new tab (or focuses on an existing tab) with a Project runner.\n * @param parentFolder The key of the parent folder to open the runner for.\n */\n openRunner(parentFolder?: string): void {\n const { project } = this;\n if (!project) {\n return;\n }\n const keyInfo: string[] = ['runner'];\n let label: string;\n let icon: IconType;\n if (parentFolder) {\n keyInfo.push('folder');\n keyInfo.push(parentFolder);\n const folder = project.findFolder(parentFolder);\n if (!folder) {\n this.reportCriticalError(`The folder was not found in the project.`);\n return;\n }\n label = `Runner: ${folder.info.renderLabel}`;\n icon = 'folder';\n } else {\n keyInfo.push('project');\n keyInfo.push(project.key);\n label = `Runner: project`;\n icon = 'project';\n }\n const key = keyInfo.join('|');\n this.layout.addItem({\n kind: RunnerKind,\n key,\n label,\n icon,\n parent: parentFolder,\n });\n }\n\n protected async handlerLayoutStore(state: ISplitLayout): Promise<void> {\n const { layoutStoreKey } = this;\n try {\n await Events.Config.Local.set(layoutStoreKey, state);\n } catch(_) {\n // ...\n }\n }\n\n protected async restoreLayout(): Promise<ISplitLayout | undefined> {\n try {\n const data = await Events.Config.Local.get(this.layoutStoreKey) as ISplitLayout | undefined;\n if (data) {\n return data;\n }\n } catch (e) {\n // \n }\n return undefined;\n }\n\n protected handleRunnerChange(e: Event): void {\n const target = e.target as ProjectRunner;\n const { config } = target;\n const { key } = target.dataset;\n if (!config || !key) {\n return;\n }\n const item = this.layout.findItem(key);\n if (!item) {\n return;\n }\n item.value = config;\n this.layout.scheduleStore();\n }\n\n override pageTemplate(): TemplateResult {\n const { initialized } = this;\n if (!initialized) {\n return super.pageTemplate();\n }\n return html`\n ${this.navigationTemplate()}\n ${this.mainTemplate()}\n `;\n }\n\n // protected headerTemplate(): TemplateResult {\n // const { project } = this;\n // const projectTitle = project && project.info && project.info.name;\n // const title = projectTitle || 'HTTP Project';\n // return html`\n // <header class=\"start-page-header\">\n // <h1 class=\"title-large\">${title}</h1>\n\n // <div class=\"project-global-actions\">\n // <ui-button type=\"outlined\" class=\"toolbar-action\">\n // <ui-icon icon=\"playArrow\"></ui-icon> Run\n // </ui-button>\n // </div>\n // </header>\n // `;\n // }\n\n protected e404Template(): TemplateResult {\n return html`\n <main>\n <div class=\"full-error\">\n <h2 class=\"headline-large\">Not found</h2>\n <p class=\"body-large\">\n The project you are trying to open does not exist or was removed.\n </p>\n <ui-button type=\"filled\" @click=\"${this.openStart}\">Back to start</ui-button>\n </div>\n </main>`;\n }\n\n protected override navigationTemplate(): TemplateResult {\n return html`\n <project-navigation .project=\"${this.project}\" @select=\"${this.handleNavigationOpen}\" class=\"nav\"></project-navigation>\n `;\n }\n\n protected override mainTemplate(): TemplateResult {\n const { page } = this;\n if (page === '404') {\n return this.e404Template();\n }\n return html`<main>\n <div class=\"content\">\n ${this.renderLayout()}\n </div>\n </main>`;\n }\n\n protected renderLayout(): TemplateResult[] {\n const { layout } = this;\n if (layout.isEmpty()) {\n return [this.renderEmptyLayout()];\n }\n return layout.render(this.renderItem.bind(this));\n }\n\n protected renderEmptyLayout(): TemplateResult {\n return html`\n <div class=\"empty-layout surface1\">\n <p class=\"headline-small\">Open an item from the navigation.</p>\n </div>\n `;\n }\n\n protected renderItem(item: SplitItem, visible: boolean): TemplateResult {\n switch (item.kind) {\n case EnvironmentKind: return this.renderEnvironment(item, visible);\n case ProjectRequestKind: return this.renderProjectRequest(item, visible);\n case RunnerKind: return this.renderProjectRunner(item, visible);\n default: return html`<p ?hidden=\"${!visible}\" data-key=\"${item.key}\" >Unsupported object: ${item.kind}</p>`;\n }\n }\n\n protected renderProjectRequest(item: SplitItem, visible: boolean): TemplateResult {\n const { key } = item;\n const { project, uiMap } = this;\n const request = project && project.findRequest(key);\n if (!request) {\n return html`\n <p ?hidden=\"${!visible}\" data-key=\"${key}\" class=\"missing-data\">The request is no longer in the project.</p>\n `;\n }\n const ui = (uiMap.get(item.key) || {}) as IRequestUiMeta;\n return html`\n <div class=\"request-container surface1\" ?hidden=\"${!visible}\" data-key=\"${key}\">\n <div class=\"scrollable\">\n <http-project-request \n data-key=\"${key}\" \n key=\"${key}\" \n .project=\"${project}\" \n .appInfo=\"${AppInfo}\"\n .ui=\"${ui}\"\n useNetStore\n @change=\"${this.requestChangeHandler}\"\n @uichange=\"${this.handleRequestUiChange}\"\n ></http-project-request>\n \n <div class=\"response-wrapper surface2\">\n <http-project-request-history \n .project=\"${this.project && this.project.key}\" \n .request=\"${key}\"\n ></http-project-request-history>\n </div>\n </div>\n </div>\n `;\n }\n\n protected environmentSchemas = new Map<string, IEnvironment>();\n\n protected renderEnvironment(item: SplitItem, visible: boolean): TemplateResult {\n const { key } = item;\n let schema = this.environmentSchemas.get(key);\n if (!schema) {\n const { project } = this;\n const env = project && project.findEnvironment(key);\n if (env) {\n schema = env.toJSON();\n this.environmentSchemas.set(key, schema);\n }\n }\n if (!schema) {\n return html`\n <p ?hidden=\"${!visible}\" data-key=\"${key}\" class=\"missing-data\">The environment is no longer in the project.</p>\n `;\n }\n return html`\n <div class=\"environment-editor-content surface1\" ?hidden=\"${!visible}\" data-key=\"${key}\">\n <div class=\"scrollable\">\n <environment-editor .environment=\"${schema}\" data-key=\"${key}\" @change=\"${this.environmentChangeHandler}\"></environment-editor>\n </div>\n </div>\n `;\n }\n\n protected renderProjectRunner(item: SplitItem, visible: boolean): TemplateResult {\n const { key, parent } = item;\n const config = item.value as IProjectRunnerOptions | undefined;\n \n return html`\n <div class=\"environment-editor-content surface1\" ?hidden=\"${!visible}\" data-key=\"${key}\">\n <div class=\"scrollable\">\n <project-runner\n .project=\"${this.project}\" \n .appInfo=\"${AppInfo}\"\n .folder=\"${parent}\"\n .config=\"${config}\"\n data-key=\"${key}\"\n @change=\"${this.handleRunnerChange}\"\n ></project-runner>\n </div>\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"HttpProject.screen.js","sourceRoot":"","sources":["../../../src/pages/http-project/HttpProject.screen.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResult, html, TemplateResult } from \"lit\";\nimport { \n ApiError, HttpProject, IApplication, IHttpProject, IPatchInfo, \n IPatchRevision, Events as CoreEvents, HttpProjectKind, \n ProjectFolderKind, ProjectRequestKind, EnvironmentKind, IEnvironment, \n IRequestUiMeta, \n IProjectRunnerOptions,\n BroadcastEvent,\n FilePatchBroadcastEvent\n} from \"@api-client/core/build/browser.js\";\nimport { JsonPatch, Patch } from \"@api-client/json\";\nimport { IRoute } from \"../../mixins/RouteMixin.js\";\nimport { ApplicationScreen } from \"../ApplicationScreen.js\";\nimport pageStyles from './HttpProject.styles.js';\nimport globalStyles from '../../styles/global-styles.js';\nimport typography from '../../styles/m3/typography.module.js';\nimport dialogStyles from '../../styles/m3/dialog.module.js';\nimport surfaceStyles from '../../styles/m3/surface.module.js';\nimport { StoreBroadcast } from \"../../http-client/store/StoreBroadcast.js\";\nimport { Events } from \"../../events/Events.js\";\nimport { navigate } from \"../../lib/route.js\";\nimport { randomString } from \"../../lib/Random.js\";\nimport ProjectNavigationElement from \"../../elements/project/ProjectNavigation.js\";\nimport { query } from \"../../lib/decorators.js\";\nimport { HttpClientContextMenu } from \"./HttpClientContextMenu.js\";\nimport AppInfo from './AppInfo.js';\nimport { EventTypes } from \"../../events/EventTypes.js\";\nimport HttpProjectRequest from \"../../elements/project/HttpProjectRequest.js\";\nimport { ISplitLayout, SplitLayout } from \"../../elements/layout/SplitLayout.js\";\nimport { SplitItem } from \"../../elements/layout/SplitItem.js\";\nimport { LayoutType } from \"../../elements/layout/type.js\";\nimport { HttpClientProjectBindings, RunnerKind } from \"./types.js\";\nimport { ProxyBindings } from \"../../bindings/base/ProxyBindings.js\";\nimport { IconType } from \"../../ui/icons/Icons.js\";\nimport ProjectRunner from \"../../elements/project/ProjectRunner.js\";\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/http-project/project-navigation.js';\nimport '../../define/http-project/http-project-request.js';\nimport '../../define/http-project/http-project-request-history.js';\nimport '../../define/environment/environment-editor.js';\nimport '../../define/http-project/project-runner.js';\n\n/**\n * Application screen that renders an HTTP project in the HTTP Client supporting local IDB store.\n */\nexport default class HttpProjectScreen extends ApplicationScreen {\n static get styles(): CSSResult[] {\n return [globalStyles, pageStyles, typography, dialogStyles, surfaceStyles];\n }\n\n static get routes(): IRoute[] {\n return [\n { pattern: '/default', method: 'defaultRoute', fallback: true, name: 'HTTP Client home', title: 'HTTP Client home' },\n { pattern: '/404', method: 'e404Route', name: 'Not found', title: 'Not found' }\n ];\n }\n\n mediaChannel = new BroadcastChannel(StoreBroadcast.media);\n\n protected _workspace = '';\n\n /**\n * The key of the workspace that has the project.\n */\n get workspace(): string {\n return this._workspace;\n }\n\n protected _key = '';\n\n /**\n * The schema file key.\n */\n get key(): string {\n return this._key;\n }\n\n protected updatingProject?: boolean;\n\n protected isDirty?: boolean;\n\n protected schema?: string;\n\n /**\n * Own patches sent to the server.\n * These are removed after the sever event is received.\n */\n protected pendingPatches = new Map<string, JsonPatch>();\n\n /**\n * The list of patches made by the current user and received from the server since the beginning of this session\n * or page reload.\n * This is to used to recognize own patches so it won't process a patch that is already applied to the project.\n */\n protected livePatches = new Map<string, IPatchRevision>();\n\n project?: HttpProject;\n\n @query('project-navigation') nav?: ProjectNavigationElement;\n\n protected layout = new SplitLayout({\n dragTypes: ['text/kind', 'text/key'],\n constrain: true,\n stateCallback: this.handlerLayoutStore.bind(this),\n });\n\n protected menu: HttpClientContextMenu;\n\n /**\n * The key where the layout state is stored.\n */\n layoutStoreKey = '';\n\n protected uiMap = new Map<string, IRequestUiMeta>();\n\n constructor(bindings: HttpClientProjectBindings) {\n super(bindings);\n\n this.bindings.idb = bindings.idb;\n this.bindings.proxy = bindings.proxy;\n this.bindings.navigation = bindings.navigation;\n\n this.menu = new HttpClientContextMenu();\n this.menu.connect();\n this.contextMenuMutationCallback = this.contextMenuMutationCallback.bind(this);\n this.menu.store.set('callback', this.contextMenuMutationCallback);\n this.menu.store.set('layout', this.layout);\n this.menu.store.set('page', this);\n }\n\n async initialize(): Promise<void> {\n if (!await this.isPlatformSupported()) {\n return;\n }\n try {\n this.setupWorkspaceParameters();\n } catch (e) {\n this.reportCriticalError((e as Error).message);\n return;\n }\n await this.bindings.navigation.initialize();\n await this.bindings.idb.initialize();\n await this.bindings.store.initialize();\n await this.bindings.proxy.initialize();\n await this.bindings.config.initialize();\n await this.initializeConfig();\n await this.initializeStore();\n this.bindings.store.space = this.workspace;\n (this.bindings.proxy as ProxyBindings).space = this.workspace;\n\n await this.setupProject(this.key);\n\n await this.bindings.store.observeFile(this.key, 'media');\n await this.bindings.store.observeHistory();\n\n this.layoutStoreKey = `http-client.http-project.state.layout.${this.key}`;\n const state = await this.restoreLayout();\n this.layout.initialize(state);\n await this.loadRequestUiMeta();\n this.mediaChannel.addEventListener('message', this.mediaMessageHandler.bind(this));\n this.initializeRouting();\n this.initialized = true;\n this.layout.addEventListener('change', this.renderHandler.bind(this));\n this.layout.addEventListener('nameitem', this.nameLayoutItemHandler.bind(this));\n window.addEventListener(EventTypes.HttpProject.changed, () => this.contextMenuMutationCallback());\n window.addEventListener(EventTypes.HttpProject.State.nameChanged, this.handleProjectNameChange.bind(this));\n window.addEventListener(EventTypes.Http.Request.rename, this.handleRenameRequest.bind(this) as EventListener);\n }\n\n async storeChanged(): Promise<void> {\n this.reportCriticalError('You are no longer connected to the data store. Editing is disabled.');\n }\n\n protected setupWorkspaceParameters(): void {\n const url = new URL(window.location.href);\n const key = url.searchParams.get('key');\n const space = url.searchParams.get('space');\n if (key) {\n this._key = key;\n } else {\n throw new Error(`The project key is not set. Go back to the start page.`);\n }\n if (space) {\n this._workspace = space;\n } else {\n throw new Error(`The space key is not set. Go back to the start page.`);\n }\n }\n\n protected async setupProject(key: string): Promise<void> {\n try {\n const media = await this.readProjectFile(key);\n this.schema = JSON.stringify(media);\n this.project = new HttpProject(media);\n this.menu.store.set('project', this.project);\n } catch (e) {\n const cause = e as ApiError;\n if (cause.code === 404) {\n navigate('404');\n }\n CoreEvents.Telemetry.exception(cause.message, true);\n this.reportCriticalError(cause.message);\n }\n }\n\n async readProjectFile(key: string): Promise<IHttpProject> {\n const media = await this.bindings.store.media.read(key) as IHttpProject;\n return media;\n }\n\n async storePatch(key: string, id: string, value: JsonPatch, app: IApplication): Promise<void> {\n const info: IPatchInfo = {\n app: app.code,\n appVersion: app.version,\n patch: value,\n id,\n };\n await this.bindings.store.media.patch(key, info);\n }\n\n /**\n * A handler for the broadcast channel message which informs about changes to files media.\n */\n protected mediaMessageHandler(e: MessageEvent): void {\n const event = e.data as BroadcastEvent;\n if (event.space !== this.workspace) {\n return;\n }\n this.processChangeFileEvent(event);\n }\n\n /**\n * Apples changes to the Project file.\n * @param event The backend event received from the store.\n */\n protected processChangeFileEvent(event: BroadcastEvent): void {\n const { schema, project } = this;\n if (!schema || !project || this.key !== event.key || event.kind !== HttpProjectKind) {\n return;\n }\n if (event.operation === 'patch') {\n this.processFilePatch((event as FilePatchBroadcastEvent).data as IPatchRevision);\n }\n }\n\n /**\n * Logic run when a patch operation is reported from the backend.\n * @param rev The revision info from the backend event\n */\n protected processFilePatch(rev: IPatchRevision): void {\n const { schema, project } = this;\n if (!schema || !project) {\n return;\n }\n const iData = JSON.parse(schema);\n const { id } = rev;\n const ownPatch = this.pendingPatches.get(id);\n if (ownPatch) {\n this.livePatches.set(id, rev);\n this.pendingPatches.delete(id);\n // we still need to propagate changes to the requests.\n this.applyRequestPatches(rev.patch);\n return;\n }\n const result = Patch.apply(iData, rev.patch);\n this.schema = JSON.stringify(result.doc);\n project.new(result.doc as IHttpProject);\n this.render();\n const { nav } = this;\n if (nav) {\n nav.requestUpdate();\n }\n this.applyRequestPatches(rev.patch);\n }\n\n protected applyRequestPatches(patch: JsonPatch): void {\n const { project } = this;\n if (!project) {\n return;\n }\n patch.forEach((info) => {\n if (info.path.startsWith('/definitions/environments')) {\n // environments changed.\n const panels = document.querySelectorAll(`http-project-request`);\n Array.from(panels).forEach(p => p.applyPatch(info));\n return;\n }\n\n if (!info.path.startsWith('/definitions/requests/')) {\n return;\n }\n // \"/definitions/requests/\\d+/...\"\n const parts = info.path.replace('/definitions/requests/', '').split('/');\n const index = Number(parts[0]);\n if (Number.isNaN(index)) {\n return;\n }\n const r = project.definitions.requests[index];\n if (!r) {\n return;\n }\n const panel = document.querySelector(`http-project-request[data-key=\"${r.key}\"]`) as HttpProjectRequest | null;\n if (panel) {\n panel.applyPatch(info);\n }\n });\n }\n\n /**\n * A reference to this function is passed to the context menu\n * and it is called when a project mutates.\n */\n protected contextMenuMutationCallback(): void {\n this.render();\n this.nav?.requestUpdate();\n this.updateProject();\n }\n\n protected handleProjectNameChange(e: Event): void {\n const { key } = (e as CustomEvent).detail;\n this.layout.requestNameUpdate(key);\n const { nav } = this;\n if (nav) {\n nav.requestUpdate();\n }\n }\n\n protected handleRenameRequest(e: CustomEvent): void {\n const { key, name } = e.detail;\n if (!key || !name) {\n return;\n }\n const { project } = this;\n if (!project) {\n return;\n }\n const request = project.findRequest(key);\n if (!request) {\n return;\n }\n request.info.name = name;\n this.layout.requestNameUpdate(key);\n const { nav } = this;\n if (nav) {\n nav.requestUpdate();\n }\n this.updateProject();\n }\n\n /**\n * Triggers a save action on one of the workspace items.\n * \n * What happens next depends on the type of the item.\n * \n * Note, this is used by the context menu to handle the \"save\" action.\n * \n * @param key The key of the item to trigger the save action on.\n */\n triggerSave(key: string): void {\n // eslint-disable-next-line no-console\n console.log('trigger save', key);\n \n // const item = this.workspace.items.find(i => i.key === key);\n // if (!item) {\n // return;\n // }\n // switch (item.kind) {\n // case EnvironmentKind: this._triggerEnvironmentSave(item); break;\n // default:\n // }\n }\n\n protected openStart(): void {\n Events.Navigation.App.runHttpClient({ space: this.workspace });\n }\n\n protected resetRoute(): void {\n this.page = undefined;\n }\n\n protected defaultRoute(): void {\n this.resetRoute();\n this.page = 'default';\n }\n\n protected e404Route(): void {\n this.resetRoute();\n this.page = '404';\n }\n\n /**\n * The main function to call when updating the project in the store.\n * It takes care of the concurrent updates, patch building, and IO.\n */\n async updateProject(): Promise<void> {\n if (this.updatingProject) {\n this.isDirty = true;\n return;\n }\n\n const { schema, project } = this;\n if (!project || !schema) {\n // eslint-disable-next-line no-console\n console.warn(`Trying to update the project but none is set.`);\n return;\n }\n const newSchema = project.toJSON();\n const diff = Patch.diff(JSON.parse(schema), newSchema);\n if (!diff.length) {\n // eslint-disable-next-line no-console\n console.warn(`Expected to detect changes to the project schema.`);\n return;\n }\n this.updatingProject = true;\n // gives 2.092279e+13 permutations.\n const id = randomString(16);\n this.pendingPatches.set(id, diff);\n try {\n await this.storePatch(project.key, id, diff, AppInfo);\n this.schema = JSON.stringify(newSchema);\n } catch (e) {\n const cause = e as Error;\n CoreEvents.Telemetry.exception(cause.message, true);\n this.reportCriticalError(cause.message);\n } finally {\n this.updatingProject = false;\n if (this.isDirty) {\n this.updateProject();\n }\n }\n }\n\n /**\n * An event handler that renders the view on request.\n */\n protected renderHandler(): void {\n this.render();\n }\n\n protected nameLayoutItemHandler(event: Event): void {\n const item = (event as CustomEvent).detail as SplitItem;\n if (item.kind === ProjectFolderKind) {\n const folder = this.project?.findFolder(item.key);\n if (folder && folder.info.name) {\n item.label = folder.info.name;\n } else {\n item.label = 'Folder';\n }\n item.icon = 'folder';\n } else if (item.kind === ProjectRequestKind) {\n const request = this.project?.findRequest(item.key);\n if (request && request.info.name && request.info.name !== 'http://') {\n item.label = request.info.name;\n } else if (request && request.expects.url) {\n item.label = request.expects.url;\n } else {\n item.label = 'HTTP request';\n }\n item.icon = 'request';\n } else if (item.kind === EnvironmentKind) {\n const env = this.project?.findEnvironment(item.key);\n if (env && env.info.name) {\n item.label = env.info.name;\n } else {\n item.label = 'Environment';\n }\n item.icon = 'environment';\n }\n }\n\n protected requestChangeHandler(e: Event): void {\n const node = e.target as HTMLElement;\n const key = node.dataset.key as string;\n if (!key) {\n return;\n }\n this.layout.requestNameUpdate(key);\n this.updateProject();\n }\n\n protected handleRequestUiChange(e: Event): void {\n const editor = e.target as HttpProjectRequest;\n const { ui, key } = editor;\n if (!ui || !key) {\n return;\n }\n this.uiMap.set(key, ui);\n Events.HttpProject.Ui.HttpRequest.set(this.key, key, ui);\n }\n\n protected async loadRequestUiMeta(): Promise<void> {\n const ids: string[] = [];\n for (const [key, value] of this.layout.definitions) {\n if (value.type === LayoutType.item) {\n const item = value.value as SplitItem;\n if (item.kind === ProjectRequestKind) {\n ids.push(key);\n }\n }\n }\n if (!ids.length) {\n return;\n }\n const result = await Events.HttpProject.Ui.HttpRequest.getBulk(this.key, ids);\n result?.items.forEach((item, index) => {\n if (!item) {\n return;\n }\n this.uiMap.set(ids[index], item);\n });\n }\n\n protected environmentChangeHandler(e: Event): void {\n const { project } = this;\n if (!project) {\n return;\n }\n const node = e.target as HTMLElement;\n const key = node.dataset.key as string;\n if (!key) {\n return;\n }\n const schema = this.environmentSchemas.get(key);\n if (!schema) {\n return;\n }\n const environment = project.definitions.environments.find(i => i.key === key);\n if (environment) {\n environment.new(schema);\n } else {\n project.addEnvironment(schema);\n }\n this.layout.requestNameUpdate(key);\n this.updateProject();\n }\n\n protected handleNavigationOpen(event: Event): void {\n const e = event as CustomEvent;\n const key = e.detail.key as string;\n const kind = e.detail.kind as string;\n if (!key || !kind) {\n return;\n }\n const { layout } = this;\n const panel = layout.findPanel(key);\n if (panel) {\n panel.selected = key;\n layout.updateView(panel.key);\n this.render();\n return;\n }\n switch (kind) {\n // case ProjectFolderKind: this._openProjectFolder(key, pid as string); break;\n case ProjectRequestKind: this.openProjectRequest(key); break;\n case EnvironmentKind: this.openProjectEnvironment(key); break;\n default:\n }\n }\n\n async openProjectRequest(key: string): Promise<void> {\n const { project } = this;\n if (!project) {\n return;\n }\n const request = project.findRequest(key);\n if (!request) {\n this.reportCriticalError(`The request was not found in the project.`);\n return;\n }\n const ui = await Events.HttpProject.Ui.HttpRequest.get(project.key, key);\n if (ui) {\n this.uiMap.set(key, ui);\n } else {\n this.uiMap.set(key, {});\n }\n const parent = request.getParent();\n const parentKey = parent === project ? undefined : parent?.key;\n this.layout.addItem({\n kind: ProjectRequestKind,\n key,\n label: request.info.renderLabel,\n icon: 'request',\n parent: parentKey,\n });\n }\n\n openProjectEnvironment(key: string): void {\n const { project } = this;\n if (!project) {\n return;\n }\n const environment = project.findEnvironment(key);\n if (!environment) {\n this.reportCriticalError(`The environment was not found in the project.`);\n return;\n }\n const parent = project.findParent(environment.key);\n const parentKey = parent === project ? undefined : parent?.key;\n this.layout.addItem({\n kind: EnvironmentKind,\n key,\n label: environment.info.renderLabel,\n icon: 'environment',\n parent: parentKey,\n });\n }\n\n /**\n * Opens a new tab (or focuses on an existing tab) with a Project runner.\n * @param parentFolder The key of the parent folder to open the runner for.\n */\n openRunner(parentFolder?: string): void {\n const { project } = this;\n if (!project) {\n return;\n }\n const keyInfo: string[] = ['runner'];\n let label: string;\n let icon: IconType;\n if (parentFolder) {\n keyInfo.push('folder');\n keyInfo.push(parentFolder);\n const folder = project.findFolder(parentFolder);\n if (!folder) {\n this.reportCriticalError(`The folder was not found in the project.`);\n return;\n }\n label = `Runner: ${folder.info.renderLabel}`;\n icon = 'folder';\n } else {\n keyInfo.push('project');\n keyInfo.push(project.key);\n label = `Runner: project`;\n icon = 'project';\n }\n const key = keyInfo.join('|');\n this.layout.addItem({\n kind: RunnerKind,\n key,\n label,\n icon,\n parent: parentFolder,\n });\n }\n\n protected async handlerLayoutStore(state: ISplitLayout): Promise<void> {\n const { layoutStoreKey } = this;\n try {\n await Events.Config.Local.set(layoutStoreKey, state);\n } catch(_) {\n // ...\n }\n }\n\n protected async restoreLayout(): Promise<ISplitLayout | undefined> {\n try {\n const data = await Events.Config.Local.get(this.layoutStoreKey) as ISplitLayout | undefined;\n if (data) {\n return data;\n }\n } catch (e) {\n // \n }\n return undefined;\n }\n\n protected handleRunnerChange(e: Event): void {\n const target = e.target as ProjectRunner;\n const { config } = target;\n const { key } = target.dataset;\n if (!config || !key) {\n return;\n }\n const item = this.layout.findItem(key);\n if (!item) {\n return;\n }\n item.value = config;\n this.layout.scheduleStore();\n }\n\n override pageTemplate(): TemplateResult {\n const { initialized } = this;\n if (!initialized) {\n return super.pageTemplate();\n }\n return html`\n ${this.navigationTemplate()}\n ${this.mainTemplate()}\n `;\n }\n\n // protected headerTemplate(): TemplateResult {\n // const { project } = this;\n // const projectTitle = project && project.info && project.info.name;\n // const title = projectTitle || 'HTTP Project';\n // return html`\n // <header class=\"start-page-header\">\n // <h1 class=\"title-large\">${title}</h1>\n\n // <div class=\"project-global-actions\">\n // <ui-button type=\"outlined\" class=\"toolbar-action\">\n // <ui-icon icon=\"playArrow\"></ui-icon> Run\n // </ui-button>\n // </div>\n // </header>\n // `;\n // }\n\n protected e404Template(): TemplateResult {\n return html`\n <main>\n <div class=\"full-error\">\n <h2 class=\"headline-large\">Not found</h2>\n <p class=\"body-large\">\n The project you are trying to open does not exist or was removed.\n </p>\n <ui-button type=\"filled\" @click=\"${this.openStart}\">Back to start</ui-button>\n </div>\n </main>`;\n }\n\n protected override navigationTemplate(): TemplateResult {\n return html`\n <project-navigation .project=\"${this.project}\" @select=\"${this.handleNavigationOpen}\" class=\"nav\"></project-navigation>\n `;\n }\n\n protected override mainTemplate(): TemplateResult {\n const { page } = this;\n if (page === '404') {\n return this.e404Template();\n }\n return html`<main>\n <div class=\"content\">\n ${this.renderLayout()}\n </div>\n </main>`;\n }\n\n protected renderLayout(): TemplateResult[] {\n const { layout } = this;\n if (layout.isEmpty()) {\n return [this.renderEmptyLayout()];\n }\n return layout.render(this.renderItem.bind(this));\n }\n\n protected renderEmptyLayout(): TemplateResult {\n return html`\n <div class=\"empty-layout surface1\">\n <p class=\"headline-small\">Open an item from the navigation.</p>\n </div>\n `;\n }\n\n protected renderItem(item: SplitItem, visible: boolean): TemplateResult {\n switch (item.kind) {\n case EnvironmentKind: return this.renderEnvironment(item, visible);\n case ProjectRequestKind: return this.renderProjectRequest(item, visible);\n case RunnerKind: return this.renderProjectRunner(item, visible);\n default: return html`<p ?hidden=\"${!visible}\" data-key=\"${item.key}\" >Unsupported object: ${item.kind}</p>`;\n }\n }\n\n protected renderProjectRequest(item: SplitItem, visible: boolean): TemplateResult {\n const { key } = item;\n const { project, uiMap } = this;\n const request = project && project.findRequest(key);\n if (!request) {\n return html`\n <p ?hidden=\"${!visible}\" data-key=\"${key}\" class=\"missing-data\">The request is no longer in the project.</p>\n `;\n }\n const ui = (uiMap.get(item.key) || {}) as IRequestUiMeta;\n return html`\n <div class=\"request-container surface1\" ?hidden=\"${!visible}\" data-key=\"${key}\">\n <div class=\"scrollable\">\n <http-project-request \n data-key=\"${key}\" \n key=\"${key}\" \n .project=\"${project}\" \n .appInfo=\"${AppInfo}\"\n .ui=\"${ui}\"\n useNetStore\n @change=\"${this.requestChangeHandler}\"\n @uichange=\"${this.handleRequestUiChange}\"\n ></http-project-request>\n \n <div class=\"response-wrapper surface2\">\n <http-project-request-history \n .project=\"${this.project && this.project.key}\" \n .request=\"${key}\"\n ></http-project-request-history>\n </div>\n </div>\n </div>\n `;\n }\n\n protected environmentSchemas = new Map<string, IEnvironment>();\n\n protected renderEnvironment(item: SplitItem, visible: boolean): TemplateResult {\n const { key } = item;\n let schema = this.environmentSchemas.get(key);\n if (!schema) {\n const { project } = this;\n const env = project && project.findEnvironment(key);\n if (env) {\n schema = env.toJSON();\n this.environmentSchemas.set(key, schema);\n }\n }\n if (!schema) {\n return html`\n <p ?hidden=\"${!visible}\" data-key=\"${key}\" class=\"missing-data\">The environment is no longer in the project.</p>\n `;\n }\n return html`\n <div class=\"environment-editor-content surface1\" ?hidden=\"${!visible}\" data-key=\"${key}\">\n <div class=\"scrollable\">\n <environment-editor .environment=\"${schema}\" data-key=\"${key}\" @change=\"${this.environmentChangeHandler}\"></environment-editor>\n </div>\n </div>\n `;\n }\n\n protected renderProjectRunner(item: SplitItem, visible: boolean): TemplateResult {\n const { key, parent } = item;\n const config = item.value as IProjectRunnerOptions | undefined;\n \n return html`\n <div class=\"environment-editor-content surface1\" ?hidden=\"${!visible}\" data-key=\"${key}\">\n <div class=\"scrollable\">\n <project-runner\n .project=\"${this.project}\" \n .appInfo=\"${AppInfo}\"\n .folder=\"${parent}\"\n .config=\"${config}\"\n data-key=\"${key}\"\n @change=\"${this.handleRunnerChange}\"\n ></project-runner>\n </div>\n </div>\n `;\n }\n}\n"]}
@@ -1,9 +1,10 @@
1
- import { HttpProject } from "@api-client/core/build/browser.js";
2
- import { ProxyBindings } from "../../bindings/base/ProxyBindings.js";
3
- import { HttpClientStoreBindings } from "../../bindings/base/HttpClientStoreBindings.js";
4
- import { SplitLayout } from "../../elements/layout/SplitLayout.js";
1
+ import type { HttpProject } from "@api-client/core/build/browser.js";
2
+ import type { ProxyBindings } from "../../bindings/base/ProxyBindings.js";
3
+ import type { HttpClientStoreBindings } from "../../bindings/base/HttpClientStoreBindings.js";
4
+ import type { SplitLayout } from "../../elements/layout/SplitLayout.js";
5
5
  import type HttpProjectScreen from "./HttpProject.screen.js";
6
- import { ApplicationInit } from "../ApplicationScreen.js";
6
+ import type { ApplicationInit } from "../ApplicationScreen.js";
7
+ import type { NavigationBindings } from "../../bindings/base/NavigationBindings.js";
7
8
  export interface CallbackReason {
8
9
  action: 'delete' | 'duplicate' | 'add';
9
10
  key: string;
@@ -19,7 +20,8 @@ export interface HttpProjectContextualStore extends Map<string, unknown> {
19
20
  }
20
21
  export interface HttpClientProjectBindings extends ApplicationInit {
21
22
  idb: HttpClientStoreBindings;
22
- http: ProxyBindings;
23
+ proxy: ProxyBindings;
24
+ navigation: NavigationBindings;
23
25
  }
24
26
  export declare const RunnerKind = "HttpClient#ProjectRunner";
25
27
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/pages/http-project/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AACD,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;AAEjE,MAAM,WAAW,0BAA2B,SAAQ,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IAChE,GAAG,EAAE,uBAAuB,CAAC;IAC7B,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,6BAA6B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/pages/http-project/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gDAAgD,CAAC;AAC9F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,iBAAiB,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AACD,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;AAEjE,MAAM,WAAW,0BAA2B,SAAQ,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IAChE,GAAG,EAAE,uBAAuB,CAAC;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAED,eAAO,MAAM,UAAU,6BAA6B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/pages/http-project/types.ts"],"names":[],"mappings":"AA2BA,MAAM,CAAC,MAAM,UAAU,GAAG,0BAA0B,CAAC","sourcesContent":["import { HttpProject } from \"@api-client/core/build/browser.js\";\nimport { ProxyBindings } from \"../../bindings/base/ProxyBindings.js\";\nimport { HttpClientStoreBindings } from \"../../bindings/base/HttpClientStoreBindings.js\";\nimport { SplitLayout } from \"../../elements/layout/SplitLayout.js\";\nimport type HttpProjectScreen from \"./HttpProject.screen.js\";\nimport { ApplicationInit } from \"../ApplicationScreen.js\";\n\nexport interface CallbackReason {\n action: 'delete' | 'duplicate' | 'add';\n key: string;\n kind: string;\n removed?: unknown;\n}\nexport type CallbackFunction = (reason?: CallbackReason) => void;\n\nexport interface HttpProjectContextualStore extends Map<string, unknown> {\n project: HttpProject;\n callback: CallbackFunction;\n layout: SplitLayout;\n page: HttpProjectScreen;\n}\n\nexport interface HttpClientProjectBindings extends ApplicationInit {\n idb: HttpClientStoreBindings;\n http: ProxyBindings;\n}\n\nexport const RunnerKind = 'HttpClient#ProjectRunner';\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/pages/http-project/types.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,MAAM,UAAU,GAAG,0BAA0B,CAAC","sourcesContent":["import type { HttpProject } from \"@api-client/core/build/browser.js\";\nimport type { ProxyBindings } from \"../../bindings/base/ProxyBindings.js\";\nimport type { HttpClientStoreBindings } from \"../../bindings/base/HttpClientStoreBindings.js\";\nimport type { SplitLayout } from \"../../elements/layout/SplitLayout.js\";\nimport type HttpProjectScreen from \"./HttpProject.screen.js\";\nimport type { ApplicationInit } from \"../ApplicationScreen.js\";\nimport type { NavigationBindings } from \"../../bindings/base/NavigationBindings.js\";\n\nexport interface CallbackReason {\n action: 'delete' | 'duplicate' | 'add';\n key: string;\n kind: string;\n removed?: unknown;\n}\nexport type CallbackFunction = (reason?: CallbackReason) => void;\n\nexport interface HttpProjectContextualStore extends Map<string, unknown> {\n project: HttpProject;\n callback: CallbackFunction;\n layout: SplitLayout;\n page: HttpProjectScreen;\n}\n\nexport interface HttpClientProjectBindings extends ApplicationInit {\n idb: HttpClientStoreBindings;\n proxy: ProxyBindings;\n navigation: NavigationBindings;\n}\n\nexport const RunnerKind = 'HttpClient#ProjectRunner';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"surface.module.d.ts","sourceRoot":"","sources":["../../../src/styles/m3/surface.module.ts"],"names":[],"mappings":";AAEA,wBAsDE"}
1
+ {"version":3,"file":"surface.module.d.ts","sourceRoot":"","sources":["../../../src/styles/m3/surface.module.ts"],"names":[],"mappings":";AAEA,wBAsCE"}
@@ -5,44 +5,28 @@ export default css `
5
5
  .surface3,
6
6
  .surface4,
7
7
  .surface5 {
8
- /* background-color: var(--md-sys-color-surface); */
9
8
  color: var(--md-sys-color-on-surface);
10
- position: relative;
11
- z-index: 0;
12
- }
13
-
14
- .surface1::before,
15
- .surface2::before,
16
- .surface3::before,
17
- .surface4::before,
18
- .surface5::before {
19
- content: '';
20
- background-color: var(--md-sys-color-primary);
21
- position: absolute;
22
- inset: 0;
23
- border-radius: inherit;
24
- z-index: -1;
25
9
  }
26
10
 
27
- .surface1::before {
28
- opacity: .05;
11
+ .surface1 {
12
+ background-color: var(--md-sys-color-primary-05a);
29
13
  }
30
14
 
31
- .surface2::before {
32
- /* opacity: .08; */
33
- opacity: .05;
15
+ .surface2 {
16
+ /* background-color: var(--md-sys-color-primary-08a); */
17
+ background-color: var(--md-sys-color-primary-05a);
34
18
  }
35
19
 
36
- .surface3::before {
37
- opacity: .11;
20
+ .surface3 {
21
+ background-color: var(--md-sys-color-primary-11a);
38
22
  }
39
23
 
40
- .surface4::before {
41
- opacity: .12;
24
+ .surface4 {
25
+ background-color: var(--md-sys-color-primary-12a);
42
26
  }
43
27
 
44
- .surface5::before {
45
- opacity: .13;
28
+ .surface5 {
29
+ background-color: var(--md-sys-color-primary-13a);
46
30
  }
47
31
 
48
32
  /* .surface1 > *,
@@ -1 +1 @@
1
- {"version":3,"file":"surface.module.js","sourceRoot":"","sources":["../../../src/styles/m3/surface.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDjB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport default css`\n.surface1,\n.surface2,\n.surface3,\n.surface4,\n.surface5 {\n /* background-color: var(--md-sys-color-surface); */\n color: var(--md-sys-color-on-surface);\n position: relative;\n z-index: 0;\n}\n\n.surface1::before,\n.surface2::before,\n.surface3::before,\n.surface4::before,\n.surface5::before {\n content: '';\n background-color: var(--md-sys-color-primary);\n position: absolute;\n inset: 0;\n border-radius: inherit;\n z-index: -1;\n}\n\n.surface1::before {\n opacity: .05;\n}\n\n.surface2::before {\n /* opacity: .08; */\n opacity: .05;\n}\n\n.surface3::before {\n opacity: .11;\n}\n\n.surface4::before {\n opacity: .12;\n}\n\n.surface5::before {\n opacity: .13;\n}\n\n/* .surface1 > *,\n.surface2 > *,\n.surface3 > *,\n.surface4 > *,\n.surface5 > * {\n position: relative;\n z-index: 1;\n} */\n`;\n"]}
1
+ {"version":3,"file":"surface.module.js","sourceRoot":"","sources":["../../../src/styles/m3/surface.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCjB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport default css`\n.surface1,\n.surface2,\n.surface3,\n.surface4,\n.surface5 {\n color: var(--md-sys-color-on-surface);\n}\n\n.surface1 {\n background-color: var(--md-sys-color-primary-05a);\n}\n\n.surface2 {\n /* background-color: var(--md-sys-color-primary-08a); */\n background-color: var(--md-sys-color-primary-05a);\n}\n\n.surface3 {\n background-color: var(--md-sys-color-primary-11a);\n}\n\n.surface4 {\n background-color: var(--md-sys-color-primary-12a);\n}\n\n.surface5 {\n background-color: var(--md-sys-color-primary-13a);\n}\n\n/* .surface1 > *,\n.surface2 > *,\n.surface3 > *,\n.surface4 > *,\n.surface5 > * {\n position: relative;\n z-index: 1;\n} */\n`;\n"]}
@@ -89,5 +89,9 @@ export declare abstract class UiElement extends LitElement implements ActionCont
89
89
  * template element with `@keyup="${this.handleKeyUp}"`
90
90
  */
91
91
  handleKeyUp(e: KeyboardEvent): void;
92
+ /**
93
+ * A common way for an element to notify a change.
94
+ */
95
+ notifyChange(): void;
92
96
  }
93
97
  //# sourceMappingURL=UiElement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiElement.d.ts","sourceRoot":"","sources":["../../src/ui/UiElement.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAE7H;;;;;GAKG;AACH,8BAAsB,SAAU,SAAQ,UAAW,YAAW,oBAAoB;IAChF;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,SAAS,CAAC,gBAAgB,mBAA8B;IAExD;;OAEG;IACM,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAErC;;;;;;;;OAQG;IACH,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAI3C;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,cAAc,GAAG,IAAI;IAWzD;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAIxC;;;;OAIG;IACH,eAAe,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAItC;;;;OAIG;IACH,mBAAmB,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAI1C;;;;OAIG;IACH,kBAAkB,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAIzC;;;;OAIG;IACH,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAIhC;;;;OAIG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;;;OAIG;IACH,aAAa,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAIrC;;;;OAIG;IACH,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;CAGpC"}
1
+ {"version":3,"file":"UiElement.d.ts","sourceRoot":"","sources":["../../src/ui/UiElement.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAE7H;;;;;GAKG;AACH,8BAAsB,SAAU,SAAQ,UAAW,YAAW,oBAAoB;IAChF;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,SAAS,CAAC,gBAAgB,mBAA8B;IAExD;;OAEG;IACM,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAErC;;;;;;;;OAQG;IACH,UAAU,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAI3C;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,cAAc,GAAG,IAAI;IAWzD;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAIxC;;;;OAIG;IACH,eAAe,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAItC;;;;OAIG;IACH,mBAAmB,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAI1C;;;;OAIG;IACH,kBAAkB,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI;IAIzC;;;;OAIG;IACH,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAIhC;;;;OAIG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;;;OAIG;IACH,aAAa,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAIrC;;;;OAIG;IACH,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAInC;;OAEG;IACH,YAAY,IAAI,IAAI;CAGrB"}
@@ -113,6 +113,12 @@ export class UiElement extends LitElement {
113
113
  handleKeyUp(e) {
114
114
  this.actionController.keyUp(e);
115
115
  }
116
+ /**
117
+ * A common way for an element to notify a change.
118
+ */
119
+ notifyChange() {
120
+ this.dispatchEvent(new Event('change'));
121
+ }
116
122
  }
117
123
  __decorate([
118
124
  state()
@@ -1 +1 @@
1
- {"version":3,"file":"UiElement.js","sourceRoot":"","sources":["../../src/ui/UiElement.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD;;;;GAIG;;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAA0D,MAAM,mCAAmC,CAAC;AAE7H;;;;;GAKG;AACH,MAAM,OAAgB,SAAU,SAAQ,UAAU;IAAlD;;QAOY,qBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IA8G1D,CAAC;IAvGC;;;;;;;;OAQG;IACH,UAAU,CAAC,OAAyB;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,SAAS,EAAE,UAAU,EAAkB;QAChD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,SAAS,EAAE;YACd,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE;gBAC3C,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC,CAAC;SACL;IACH,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,CAAe;QAC/B,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,CAAe;QAC7B,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,CAAe;QACjC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,CAAe;QAChC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,CAAa;QACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,CAAgB;QAC5B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,CAAgB;QAC1B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;CACF;AAzGU;IAAR,KAAK,EAAE;0CAA6B","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { LitElement } from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport { ActionController, ActionControllerHost, BeginPressConfig, EndPressConfig } from \"./controllers/ActionController.js\";\n\n/**\n * The base class for all API Client's base UI elements.\n * Only contains logic to be applied to **all** UI elements.\n * \n * @fires action - An event dispatched when the UI element was activated (pointer, keyboard).\n */\nexport abstract class UiElement extends LitElement implements ActionControllerHost {\n /**\n * ActionController needs to know if the component is disabled, so subclasses\n * must implement a `disabled` property.\n */\n abstract disabled: boolean;\n\n protected actionController = new ActionController(this);\n\n /**\n * Indicates the component is in the pressed state.\n */\n @state() protected pressed?: boolean;\n\n /**\n * Hook method called when we've confirmed that the gesture is intended to be\n * a press. Subclasses should change the visual state of the control to\n * 'active' at this point, and possibly fire an event. Subclasses should\n * override this method if more needs to be done.\n *\n * @param options `positionEvent` is the Event that is considered the\n * beginning of the press. Null if this was a keyboard interaction.\n */\n beginPress(options: BeginPressConfig): void { \n this.pressed = true;\n }\n\n /**\n * Hook method called when the control goes from a pressed to unpressed\n * state.\n *\n * @param options If `cancelled` is true, means the user canceled the action.\n * Subclasses which trigger events on endPress() should check the value\n * of this flag, and modify their behavior accordingly.\n */\n endPress({ cancelled, actionData }: EndPressConfig): void {\n this.pressed = false;\n if (!cancelled) {\n this.dispatchEvent(new CustomEvent('action', {\n detail: actionData,\n bubbles: true,\n composed: true,\n }));\n }\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@pointerdown=\"${this.handlePointerDown}\"`\n */\n handlePointerDown(e: PointerEvent): void {\n this.actionController.pointerDown(e);\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@pointerup=\"${this.handlePointerUp}\"`\n */\n handlePointerUp(e: PointerEvent): void {\n this.actionController.pointerUp(e);\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@pointercancel=\"${this.handlePointerCancel}\"`\n */\n handlePointerCancel(e: PointerEvent): void {\n this.actionController.pointerCancel(e);\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@pointerleave=\"${this.handlePointerleave}\"`\n */\n handlePointerLeave(e: PointerEvent): void {\n this.actionController.pointerLeave(e);\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@click=\"${this.handleClick}\"`\n */\n handleClick(e: MouseEvent): void {\n this.actionController.click(e);\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@contextmenu=\"${this.handleContextMenu}\"`\n */\n handleContextMenu(): void {\n this.actionController.contextMenu();\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@keydown=\"${this.handleKeyDown}\"`\n */\n handleKeyDown(e: KeyboardEvent): void {\n this.actionController.keyDown(e);\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@keyup=\"${this.handleKeyUp}\"`\n */\n handleKeyUp(e: KeyboardEvent): void {\n this.actionController.keyUp(e);\n }\n}\n"]}
1
+ {"version":3,"file":"UiElement.js","sourceRoot":"","sources":["../../src/ui/UiElement.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD;;;;GAIG;;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAA0D,MAAM,mCAAmC,CAAC;AAE7H;;;;;GAKG;AACH,MAAM,OAAgB,SAAU,SAAQ,UAAU;IAAlD;;QAOY,qBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAqH1D,CAAC;IA9GC;;;;;;;;OAQG;IACH,UAAU,CAAC,OAAyB;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,SAAS,EAAE,UAAU,EAAkB;QAChD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,SAAS,EAAE;YACd,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE;gBAC3C,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC,CAAC;SACL;IACH,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,CAAe;QAC/B,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,CAAe;QAC7B,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,CAAe;QACjC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,CAAe;QAChC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,CAAa;QACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,iBAAiB;QACf,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,CAAgB;QAC5B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,CAAgB;QAC1B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF;AAhHU;IAAR,KAAK,EAAE;0CAA6B","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { LitElement } from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport { ActionController, ActionControllerHost, BeginPressConfig, EndPressConfig } from \"./controllers/ActionController.js\";\n\n/**\n * The base class for all API Client's base UI elements.\n * Only contains logic to be applied to **all** UI elements.\n * \n * @fires action - An event dispatched when the UI element was activated (pointer, keyboard).\n */\nexport abstract class UiElement extends LitElement implements ActionControllerHost {\n /**\n * ActionController needs to know if the component is disabled, so subclasses\n * must implement a `disabled` property.\n */\n abstract disabled: boolean;\n\n protected actionController = new ActionController(this);\n\n /**\n * Indicates the component is in the pressed state.\n */\n @state() protected pressed?: boolean;\n\n /**\n * Hook method called when we've confirmed that the gesture is intended to be\n * a press. Subclasses should change the visual state of the control to\n * 'active' at this point, and possibly fire an event. Subclasses should\n * override this method if more needs to be done.\n *\n * @param options `positionEvent` is the Event that is considered the\n * beginning of the press. Null if this was a keyboard interaction.\n */\n beginPress(options: BeginPressConfig): void { \n this.pressed = true;\n }\n\n /**\n * Hook method called when the control goes from a pressed to unpressed\n * state.\n *\n * @param options If `cancelled` is true, means the user canceled the action.\n * Subclasses which trigger events on endPress() should check the value\n * of this flag, and modify their behavior accordingly.\n */\n endPress({ cancelled, actionData }: EndPressConfig): void {\n this.pressed = false;\n if (!cancelled) {\n this.dispatchEvent(new CustomEvent('action', {\n detail: actionData,\n bubbles: true,\n composed: true,\n }));\n }\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@pointerdown=\"${this.handlePointerDown}\"`\n */\n handlePointerDown(e: PointerEvent): void {\n this.actionController.pointerDown(e);\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@pointerup=\"${this.handlePointerUp}\"`\n */\n handlePointerUp(e: PointerEvent): void {\n this.actionController.pointerUp(e);\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@pointercancel=\"${this.handlePointerCancel}\"`\n */\n handlePointerCancel(e: PointerEvent): void {\n this.actionController.pointerCancel(e);\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@pointerleave=\"${this.handlePointerleave}\"`\n */\n handlePointerLeave(e: PointerEvent): void {\n this.actionController.pointerLeave(e);\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@click=\"${this.handleClick}\"`\n */\n handleClick(e: MouseEvent): void {\n this.actionController.click(e);\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@contextmenu=\"${this.handleContextMenu}\"`\n */\n handleContextMenu(): void {\n this.actionController.contextMenu();\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@keydown=\"${this.handleKeyDown}\"`\n */\n handleKeyDown(e: KeyboardEvent): void {\n this.actionController.keyDown(e);\n }\n\n /**\n * Hook method for the ActionController.\n * Subclasses should add this method as an event handler on the interactive\n * template element with `@keyup=\"${this.handleKeyUp}\"`\n */\n handleKeyUp(e: KeyboardEvent): void {\n this.actionController.keyUp(e);\n }\n\n /**\n * A common way for an element to notify a change.\n */\n notifyChange(): void {\n this.dispatchEvent(new Event('change'));\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedButton.styles.d.ts","sourceRoot":"","sources":["../../../src/ui/button/SegmentedButton.styles.ts"],"names":[],"mappings":";AAEA,wBAmGE"}
1
+ {"version":3,"file":"SegmentedButton.styles.d.ts","sourceRoot":"","sources":["../../../src/ui/button/SegmentedButton.styles.ts"],"names":[],"mappings":";AAEA,wBAqGE"}
@@ -23,7 +23,7 @@ export default css `
23
23
  text-decoration: var(--md-sys-typescale-label-large-text-decoration);
24
24
 
25
25
  border: 1px var(--md-sys-color-outline) solid;
26
- color: 1px var(--md-sys-color-on-surface) solid;
26
+ color: var(--md-sys-color-on-surface);
27
27
  box-sizing: border-box;
28
28
  }
29
29
 
@@ -78,6 +78,8 @@ export default css `
78
78
  display: block;
79
79
  width: 0px;
80
80
  height: inherit;
81
+
82
+ fill: var(--md-sys-color-on-surface);
81
83
  }
82
84
 
83
85
  .check-mark {
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedButton.styles.js","sourceRoot":"","sources":["../../../src/ui/button/SegmentedButton.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmGjB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport default css`\n:host {\n display: inline-block;\n vertical-align: middle;\n box-sizing: content-box;\n writing-mode: horizontal-tb !important;\n text-rendering: auto;\n cursor: default;\n user-select: none;\n height: 40px;\n width: 100%;\n min-width: 48px;\n -webkit-tap-highlight-color: transparent;\n\n font-family: var(--md-sys-typescale-label-large-font-family-name);\n font-style: var(--md-sys-typescale-label-large-font-family-style);\n font-weight: var(--md-sys-typescale-label-large-font-weight, 500);\n font-size: var(--md-sys-typescale-label-large-font-size, 14px);\n letter-spacing: var(--md-sys-typescale-label-large-tracking);\n line-height: var(--md-sys-typescale-label-large-height);\n text-transform: var(--md-sys-typescale-label-large-text-transform);\n text-decoration: var(--md-sys-typescale-label-large-text-decoration);\n\n border: 1px var(--md-sys-color-outline) solid;\n color: 1px var(--md-sys-color-on-surface) solid;\n box-sizing: border-box;\n}\n\n.surface {\n width: inherit;\n height: 100%;\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: inherit;\n}\n\n.surface.selected {\n background-color: var(--md-sys-color-secondary-container);\n}\n\n.content {\n z-index: 3;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n padding: 0px 20px 0px 24px;\n white-space: nowrap;\n \n width: inherit;\n height: inherit;\n}\n\n.ripple {\n z-index: 3;\n border-radius: inherit;\n}\n\n.leading {\n position: relative;\n width: 0;\n height: 18px;\n transition: width 230ms var(--md-sys-animation-easing-standard);\n}\n\n.leading.visible {\n width: 18px;\n margin-right: 8px;\n}\n\n.check-mark,\n.leading-icon {\n position: absolute;\n overflow: hidden;\n display: block;\n width: 0px;\n height: inherit;\n}\n\n.check-mark {\n transition: width 230ms var(--md-sys-animation-easing-standard);\n}\n\n.check-mark.checked {\n width: 18px;\n}\n\n.leading-icon.with-icon {\n margin-right: 12px;\n width: 18px;\n display: flex;\n align-items: center;\n}\n\n.leading-icon.with-icon.hidden {\n display: none;\n}\n`;\n"]}
1
+ {"version":3,"file":"SegmentedButton.styles.js","sourceRoot":"","sources":["../../../src/ui/button/SegmentedButton.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqGjB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport default css`\n:host {\n display: inline-block;\n vertical-align: middle;\n box-sizing: content-box;\n writing-mode: horizontal-tb !important;\n text-rendering: auto;\n cursor: default;\n user-select: none;\n height: 40px;\n width: 100%;\n min-width: 48px;\n -webkit-tap-highlight-color: transparent;\n\n font-family: var(--md-sys-typescale-label-large-font-family-name);\n font-style: var(--md-sys-typescale-label-large-font-family-style);\n font-weight: var(--md-sys-typescale-label-large-font-weight, 500);\n font-size: var(--md-sys-typescale-label-large-font-size, 14px);\n letter-spacing: var(--md-sys-typescale-label-large-tracking);\n line-height: var(--md-sys-typescale-label-large-height);\n text-transform: var(--md-sys-typescale-label-large-text-transform);\n text-decoration: var(--md-sys-typescale-label-large-text-decoration);\n\n border: 1px var(--md-sys-color-outline) solid;\n color: var(--md-sys-color-on-surface);\n box-sizing: border-box;\n}\n\n.surface {\n width: inherit;\n height: 100%;\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: inherit;\n}\n\n.surface.selected {\n background-color: var(--md-sys-color-secondary-container);\n}\n\n.content {\n z-index: 3;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n padding: 0px 20px 0px 24px;\n white-space: nowrap;\n \n width: inherit;\n height: inherit;\n}\n\n.ripple {\n z-index: 3;\n border-radius: inherit;\n}\n\n.leading {\n position: relative;\n width: 0;\n height: 18px;\n transition: width 230ms var(--md-sys-animation-easing-standard);\n}\n\n.leading.visible {\n width: 18px;\n margin-right: 8px;\n}\n\n.check-mark,\n.leading-icon {\n position: absolute;\n overflow: hidden;\n display: block;\n width: 0px;\n height: inherit;\n\n fill: var(--md-sys-color-on-surface);\n}\n\n.check-mark {\n transition: width 230ms var(--md-sys-animation-easing-standard);\n}\n\n.check-mark.checked {\n width: 18px;\n}\n\n.leading-icon.with-icon {\n margin-right: 12px;\n width: 18px;\n display: flex;\n align-items: center;\n}\n\n.leading-icon.with-icon.hidden {\n display: none;\n}\n`;\n"]}
@@ -69,6 +69,9 @@ export default class UiDialog extends UiElement {
69
69
  set disabled(value: boolean);
70
70
  /**
71
71
  * Opens the dialog as modal when toggling dialog's open state.
72
+ *
73
+ * Setting this value after the dialog was opened has no effect.
74
+ *
72
75
  * @attribute
73
76
  */
74
77
  modal: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"UiDialog.d.ts","sourceRoot":"","sources":["../../../src/ui/dialog/UiDialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAGpE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,8BAA8B,CAAA;AAErC,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,SAAS;IAC7C,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;OAGG;IACH,IACI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAI1B;IAED;;;OAGG;IAC0B,KAAK,UAAS;IAE3C;;;;OAIG;IAC0B,IAAI,UAAS;IAE1C;;;;OAIG;IACyB,YAAY,CAAC,EAAE,MAAM,CAAC;IAElD;;;;OAIG;IACyB,YAAY,CAAC,EAAE,MAAM,CAAC;IAElD;;OAEG;IACc,QAAQ,CAAC,MAAM,EAAG,iBAAiB,CAAC;IAE5C,SAAS,CAAC,OAAO,UAAS;IAE1B,SAAS,CAAC,QAAQ,UAAS;IAE3B,SAAS,CAAC,SAAS,UAAS;IAEmB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAG,WAAW,EAAE,CAAC;IAE3C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAG,WAAW,EAAE,CAAC;IAEtC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAG,WAAW,EAAE,CAAC;IAErG;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;;IASb,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAYhC,aAAa,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;cAO3B,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAOzE,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAgBnC,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAOlC,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI;IAiB/D,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAQnC,SAAS,CAAC,aAAa,IAAI,IAAI;IAI/B,SAAS,CAAC,aAAa,IAAI,IAAI;IAItB,MAAM,IAAI,cAAc;IAWjC,SAAS,CAAC,UAAU,IAAI,cAAc;IAUtC,SAAS,CAAC,WAAW,IAAI,cAAc;IAUvC,SAAS,CAAC,UAAU,IAAI,cAAc;IAMtC,SAAS,CAAC,aAAa,IAAI,cAAc;IAczC,SAAS,CAAC,mBAAmB,IAAI,cAAc,GAAG,OAAO,OAAO;IAUhE,SAAS,CAAC,mBAAmB,IAAI,cAAc,GAAG,OAAO,OAAO;CASjE"}
1
+ {"version":3,"file":"UiDialog.d.ts","sourceRoot":"","sources":["../../../src/ui/dialog/UiDialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAGpE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,8BAA8B,CAAA;AAErC,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,SAAS;IAC7C,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED;;;OAGG;IACH,IACI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAI1B;IAED;;;;;;OAMG;IAC0B,KAAK,UAAS;IAE3C;;;;OAIG;IAC0B,IAAI,UAAS;IAE1C;;;;OAIG;IACyB,YAAY,CAAC,EAAE,MAAM,CAAC;IAElD;;;;OAIG;IACyB,YAAY,CAAC,EAAE,MAAM,CAAC;IAElD;;OAEG;IACc,QAAQ,CAAC,MAAM,EAAG,iBAAiB,CAAC;IAE5C,SAAS,CAAC,OAAO,UAAS;IAE1B,SAAS,CAAC,QAAQ,UAAS;IAE3B,SAAS,CAAC,SAAS,UAAS;IAEmB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAG,WAAW,EAAE,CAAC;IAE3C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAG,WAAW,EAAE,CAAC;IAEtC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAG,WAAW,EAAE,CAAC;IAErG;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;;IASb,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAYhC,aAAa,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;cAO3B,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAOzE,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAgBnC,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAOlC,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI;IAiB/D,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAQnC,SAAS,CAAC,aAAa,IAAI,IAAI;IAI/B,SAAS,CAAC,aAAa,IAAI,IAAI;IAItB,MAAM,IAAI,cAAc;IAWjC,SAAS,CAAC,UAAU,IAAI,cAAc;IAUtC,SAAS,CAAC,WAAW,IAAI,cAAc;IAUvC,SAAS,CAAC,UAAU,IAAI,cAAc;IAMtC,SAAS,CAAC,aAAa,IAAI,cAAc;IAczC,SAAS,CAAC,mBAAmB,IAAI,cAAc,GAAG,OAAO,OAAO;IAUhE,SAAS,CAAC,mBAAmB,IAAI,cAAc,GAAG,OAAO,OAAO;CASjE"}
@@ -69,6 +69,9 @@ export default class UiDialog extends UiElement {
69
69
  super();
70
70
  /**
71
71
  * Opens the dialog as modal when toggling dialog's open state.
72
+ *
73
+ * Setting this value after the dialog was opened has no effect.
74
+ *
72
75
  * @attribute
73
76
  */
74
77
  this.modal = false;
@@ -1 +1 @@
1
- {"version":3,"file":"UiDialog.js","sourceRoot":"","sources":["../../../src/ui/dialog/UiDialog.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAkC,MAAM,KAAK,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACtG,OAAO,EAAa,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,8BAA8B,CAAA;AAerC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,SAAS;IAC7C,IAAI,QAAQ;QACV,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;;OAGG;IAEH,IAAI,QAAQ,CAAC,KAAc;QACzB,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7B,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAoDD;QACE,KAAK,EAAE,CAAC;QAnDV;;;WAGG;QAC0B,UAAK,GAAG,KAAK,CAAC;QAE3C;;;;WAIG;QAC0B,SAAI,GAAG,KAAK,CAAC;QAqBvB,YAAO,GAAG,KAAK,CAAC;QAEhB,aAAQ,GAAG,KAAK,CAAC;QAEjB,cAAS,GAAG,KAAK,CAAC;QAiBnC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACvD,CAAC;IAEQ,WAAW,CAAC,CAAa;QAChC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;QAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAgB,CAAC,CAA6C,CAAC;QAC9G,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,MAAM,EAAE,KAAK,GAAE,EAAE,EAAE,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,iBAAiB,CAAC,KAA8B,CAAC,CAAC;IACzD,CAAC;IAEQ,aAAa,CAAC,CAAgB;QACrC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;YACtB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;SACnC;IACH,CAAC;IAEkB,OAAO,CAAC,iBAAuC;QAChE,IAAI,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACjC,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC1B;QACD,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnC,CAAC;IAES,iBAAiB;QACzB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,IAAI,IAAI,EAAE;YACR,IAAI,KAAK,EAAE;gBACT,MAAM,CAAC,SAAS,EAAE,CAAC;aACpB;iBAAM;gBACL,MAAM,CAAC,IAAI,EAAE,CAAC;aACf;SACF;aAAM;YACL,MAAM,CAAC,KAAK,EAAE,CAAC;SAChB;IACH,CAAC;IAES,gBAAgB;QACxB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjD,CAAC;IAES,iBAAiB,CAAC,KAA4B;QACtD,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAC3C,OAAO;SACR;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,MAAM,MAAM,GAA0B;YACpC,SAAS,EAAE,KAAK,KAAK,SAAS;SAC/B,CAAA;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;YAClC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;SACjC;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAwB,OAAO,EAAE;YACjE,QAAQ,EAAE,IAAI;YACd,MAAM;SACP,CAAC,CAAC,CAAC;IACN,CAAC;IAES,iBAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO;SACR;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAES,aAAa;QACrB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAES,aAAa;QACrB,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAEQ,MAAM;QACb,OAAO,IAAI,CAAA;sBACO,IAAI,CAAC,iBAAiB;QACpC,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,UAAU,EAAE;QACjB,IAAI,CAAC,aAAa,EAAE;;KAEvB,CAAC;IACJ,CAAC;IAES,UAAU;QAClB,MAAM,OAAO,GAAc;YACzB,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,IAAI,CAAC,OAAO;SAC1B,CAAC;QACF,OAAO,IAAI,CAAA;kBACG,QAAQ,CAAC,OAAO,CAAC,gDAAgD,IAAI,CAAC,gBAAgB;KACnG,CAAC;IACJ,CAAC;IAES,WAAW;QACnB,MAAM,OAAO,GAAc;YACzB,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,IAAI,CAAC,QAAQ;SAC5B,CAAC;QACF,OAAO,IAAI,CAAA;kBACG,QAAQ,CAAC,OAAO,CAAC,kDAAkD,IAAI,CAAC,gBAAgB;KACrG,CAAC;IACJ,CAAC;IAES,UAAU;QAClB,OAAO,IAAI,CAAA;;KAEV,CAAC;IACJ,CAAC;IAES,aAAa;QACrB,MAAM,OAAO,GAAc;YACzB,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY;SAC7E,CAAC;QACF,OAAO,IAAI,CAAA;kBACG,QAAQ,CAAC,OAAO,CAAC;yCACM,IAAI,CAAC,gBAAgB;QACtD,IAAI,CAAC,mBAAmB,EAAE;QAC1B,IAAI,CAAC,mBAAmB,EAAE;;KAE7B,CAAC;IACJ,CAAC;IAES,mBAAmB;QAC3B,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,OAAO,CAAC;SAChB;QACD,OAAO,IAAI,CAAA;8EAC+D,IAAI,CAAC,aAAa,KAAK,YAAY;KAC5G,CAAC;IACJ,CAAC;IAES,mBAAmB;QAC3B,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,OAAO,CAAC;SAChB;QACD,OAAO,IAAI,CAAA;8EAC+D,IAAI,CAAC,aAAa,KAAK,YAAY;KAC5G,CAAC;IACJ,CAAC;CACF;AAvNC;IADC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wCAK1C;AAM4B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uCAAe;AAOd;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sCAAc;AAOd;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CAAuB;AAOtB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CAAuB;AAKjC;IAAhB,KAAK,CAAC,QAAQ,CAAC;wCAAqC;AAE5C;IAAR,KAAK,EAAE;yCAA2B;AAE1B;IAAR,KAAK,EAAE;0CAA4B;AAE3B;IAAR,KAAK,EAAE;2CAA6B;AAEmB;IAAvD,qBAAqB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uCAA0C;AAE3C;IAArD,kBAAkB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wCAA2C;AAEtC;IAAzD,qBAAqB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;yCAA4C","sourcesContent":["import { html, nothing, PropertyValues, TemplateResult } from \"lit\";\nimport { property, query, queryAssignedElements, queryAssignedNodes, state } from \"lit/decorators.js\";\nimport { ClassInfo, classMap } from \"lit/directives/class-map.js\";\nimport { UiElement } from \"../UiElement.js\";\nimport { isDisabled, setDisabled } from \"../lib/disabled.js\";\nimport UiButton from \"../button/UiButton.js\";\nimport '../../define/ui/ui-button.js'\n\nexport interface UiDialogClosingReason {\n /**\n * Whether the dialog was cancelled by either activating the `dismiss` button\n * or by pressing escape.\n */\n cancelled: boolean;\n /**\n * This is used in cases when the dialog has more complex purpose.\n * This is the value expected from the dialog.\n */\n value?: unknown;\n}\n\n/**\n * Styled dialog using a native `<dialog>` element under the hood.\n * Note, since native dialog renders in the top layer it is not necessary \n * to place the dialog in the `<body>`.\n * \n * ## Using buttons\n * \n * The dialog automatically recognizes buttons with values `confirm` and `dismiss` \n * to close the dialog and dispatch the `close` event. The event has additional \n * closing reason detail.\n * \n * ```javascript\n * <ui-button value=\"dismiss\">Cancel</ui-button> \n * <ui-button value=\"confirm\">Take action</ui-button> \n * ```\n * \n * ```javascript\n * <button value=\"dismiss\">Cancel</button> \n * <button value=\"confirm\">Take action</button> \n * ```\n * \n * The detail object of the `close` event has the following properties:\n * - cancelled - Whether the dialog was cancelled by either activating the `dismiss` button or by pressing escape.\n * \n * The `close` event is only dispatched when the user interact with the dialog. Imperative control of the \n * dialog won't trigger the close button. \n * \n * ## Full example\n * \n * ```javascript\n * <ui-dialog modal>\n * <ui-icon slot=\"icon\" icon=\"delete\"></ui-icon>\n * \n * <span slot=\"title\">Delete photos?</span>\n * <p>This action will permanently remove the selected pictures from your account.</p>\n * \n * <ui-button slot=\"button\" value=\"dismiss\" type=\"text\">Cancel</ui-button>\n * <ui-button slot=\"button\" value=\"confirm\" type=\"text\">Confirm</ui-button>\n * </ui-dialog>\n * ```\n * \n * @slot - The slot for the content of the dialog.\n * @slot icon - The slot to place the dialog icon\n * @slot title - The slot to place the dialog title. Do not put elements here, just the text.\n * @slot button - The slot to place the dialog buttons. Use the `confirm` or `dismiss` buttons to automatically close the dialog.\n * @fires close - A non-bubbling, non-cancellable event with the `UiDialogClosingReason` as the detail.\n */\nexport default class UiDialog extends UiElement {\n get disabled(): boolean {\n return isDisabled(this);\n }\n\n /**\n * When set, the button is a disabled state.\n * @attribute\n */\n @property({ reflect: true, type: Boolean })\n set disabled(value: boolean) {\n const old = isDisabled(this);\n setDisabled(this, value);\n this.requestUpdate('disabled', old);\n }\n\n /**\n * Opens the dialog as modal when toggling dialog's open state.\n * @attribute\n */\n @property({ type: Boolean }) modal = false;\n\n /**\n * Toggles visibility of the dialog.\n * Note, the dialog is opened asynchronously after the update is performed.\n * @attribute\n */\n @property({ type: Boolean }) open = false;\n\n /**\n * Imperative access to create a dismiss button.\n * When set this will render a dismiss button at the end of the buttons line, before the `confirmLabel` button.\n * @attribute\n */\n @property({ type: String }) dismissLabel?: string;\n\n /**\n * Imperative access to create a confirm button.\n * When set this will render a confirm button at the end of the buttons line, after the `dismissLabel` button.\n * @attribute\n */\n @property({ type: String }) confirmLabel?: string;\n\n /**\n * A reference to the underlying dialog element.\n */\n @query('dialog') readonly dialog!: HTMLDialogElement;\n\n @state() protected hasIcon = false;\n\n @state() protected hasTitle = false;\n\n @state() protected hasButton = false;\n\n @queryAssignedElements({ flatten: true, slot: 'icon' }) protected readonly icons!: HTMLElement[];\n\n @queryAssignedNodes({ flatten: true, slot: 'title' }) protected readonly titles!: HTMLElement[];\n\n @queryAssignedElements({ flatten: true, slot: 'button' }) protected readonly buttons!: HTMLElement[];\n\n /**\n * To be set by a child class when closing the dialog.\n * This is passed to the close event.\n */\n dialogValue?: unknown;\n\n constructor() {\n super();\n\n this.addEventListener('click', this.handleClick);\n this.addEventListener('keydown', this.handleKeyDown);\n }\n\n override handleClick(e: MouseEvent): void {\n super.handleClick(e);\n const path = e.composedPath();\n const { buttons } = this;\n const button = path.find(i => buttons.includes(i as HTMLElement)) as HTMLButtonElement | UiButton | undefined;\n if (!button) {\n return;\n }\n const { value ='' } = button;\n this.handleInteraction(value as 'dismiss' | 'confirm');\n }\n\n override handleKeyDown(e: KeyboardEvent): void {\n super.handleKeyDown(e);\n if (e.key === 'Escape') {\n this.handleInteraction('dismiss');\n }\n }\n\n protected override updated(changedProperties: PropertyValues<this>): void {\n if (changedProperties.has('open')) {\n this.controlVisibility();\n }\n super.updated(changedProperties);\n }\n\n protected controlVisibility(): void {\n const { dialog, modal, open } = this;\n if (!dialog) {\n return;\n }\n if (open) {\n if (modal) {\n dialog.showModal();\n } else {\n dialog.show();\n }\n } else {\n dialog.close();\n }\n }\n\n protected handleSlotChange(): void {\n const { icons, titles, buttons } = this;\n this.hasIcon = !!icons && !!icons.length;\n this.hasTitle = !!titles && !!titles.length;\n this.hasButton = !!buttons && !!buttons.length;\n }\n\n protected handleInteraction(value: 'dismiss' | 'confirm'): void {\n if (!['dismiss', 'confirm'].includes(value)) {\n return;\n }\n this.open = false;\n const detail: UiDialogClosingReason = {\n cancelled: value === 'dismiss',\n }\n if (this.dialogValue !== undefined) {\n detail.value = this.dialogValue;\n }\n this.dispatchEvent(new CustomEvent<UiDialogClosingReason>('close', {\n composed: true,\n detail,\n }));\n }\n\n protected handleDialogClose(): void {\n if (!this.open) {\n return;\n }\n this.open = false;\n this.handleInteraction('dismiss');\n }\n\n protected handleDismiss(): void {\n this.handleInteraction('dismiss');\n }\n\n protected handleConfirm(): void {\n this.handleInteraction('confirm');\n }\n\n override render(): TemplateResult {\n return html`\n <dialog @close=\"${this.handleDialogClose}\">\n ${this.renderIcon()}\n ${this.renderTitle()}\n ${this.renderBody()}\n ${this.renderButtons()}\n </dialog>\n `;\n }\n\n protected renderIcon(): TemplateResult {\n const classes: ClassInfo = {\n icon: true,\n 'with-icon': this.hasIcon,\n };\n return html`\n <div class=\"${classMap(classes)}\" part=\"icon\"><slot name=\"icon\" @slotchange=\"${this.handleSlotChange}\"></slot></div>\n `;\n }\n\n protected renderTitle(): TemplateResult {\n const classes: ClassInfo = {\n title: true,\n 'with-title': this.hasTitle,\n };\n return html`\n <div class=\"${classMap(classes)}\" part=\"title\"><slot name=\"title\" @slotchange=\"${this.handleSlotChange}\"></slot></div>\n `;\n }\n\n protected renderBody(): TemplateResult {\n return html`\n <div class=\"content\"><slot></slot></div>\n `;\n }\n\n protected renderButtons(): TemplateResult {\n const classes: ClassInfo = {\n buttons: true,\n 'with-buttons': this.hasButton || !!this.confirmLabel || !!this.dismissLabel,\n };\n return html`\n <div class=\"${classMap(classes)}\" part=\"button\">\n <slot name=\"button\" @slotchange=\"${this.handleSlotChange}\"></slot>\n ${this.renderDismissButton()}\n ${this.renderConfirmButton()}\n </div>\n `;\n }\n\n protected renderDismissButton(): TemplateResult | typeof nothing {\n const { dismissLabel } = this;\n if (!dismissLabel) {\n return nothing;\n }\n return html`\n <ui-button value=\"dismiss\" type=\"text\" class=\"internal-button\" @click=\"${this.handleDismiss}\">${dismissLabel}</ui-button>\n `;\n }\n\n protected renderConfirmButton(): TemplateResult | typeof nothing {\n const { confirmLabel } = this;\n if (!confirmLabel) {\n return nothing;\n }\n return html`\n <ui-button value=\"confirm\" type=\"text\" class=\"internal-button\" @click=\"${this.handleConfirm}\">${confirmLabel}</ui-button>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"UiDialog.js","sourceRoot":"","sources":["../../../src/ui/dialog/UiDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, PropertyValues, TemplateResult } from \"lit\";\nimport { property, query, queryAssignedElements, queryAssignedNodes, state } from \"lit/decorators.js\";\nimport { ClassInfo, classMap } from \"lit/directives/class-map.js\";\nimport { UiElement } from \"../UiElement.js\";\nimport { isDisabled, setDisabled } from \"../lib/disabled.js\";\nimport UiButton from \"../button/UiButton.js\";\nimport '../../define/ui/ui-button.js'\n\nexport interface UiDialogClosingReason {\n /**\n * Whether the dialog was cancelled by either activating the `dismiss` button\n * or by pressing escape.\n */\n cancelled: boolean;\n /**\n * This is used in cases when the dialog has more complex purpose.\n * This is the value expected from the dialog.\n */\n value?: unknown;\n}\n\n/**\n * Styled dialog using a native `<dialog>` element under the hood.\n * Note, since native dialog renders in the top layer it is not necessary \n * to place the dialog in the `<body>`.\n * \n * ## Using buttons\n * \n * The dialog automatically recognizes buttons with values `confirm` and `dismiss` \n * to close the dialog and dispatch the `close` event. The event has additional \n * closing reason detail.\n * \n * ```javascript\n * <ui-button value=\"dismiss\">Cancel</ui-button> \n * <ui-button value=\"confirm\">Take action</ui-button> \n * ```\n * \n * ```javascript\n * <button value=\"dismiss\">Cancel</button> \n * <button value=\"confirm\">Take action</button> \n * ```\n * \n * The detail object of the `close` event has the following properties:\n * - cancelled - Whether the dialog was cancelled by either activating the `dismiss` button or by pressing escape.\n * \n * The `close` event is only dispatched when the user interact with the dialog. Imperative control of the \n * dialog won't trigger the close button. \n * \n * ## Full example\n * \n * ```javascript\n * <ui-dialog modal>\n * <ui-icon slot=\"icon\" icon=\"delete\"></ui-icon>\n * \n * <span slot=\"title\">Delete photos?</span>\n * <p>This action will permanently remove the selected pictures from your account.</p>\n * \n * <ui-button slot=\"button\" value=\"dismiss\" type=\"text\">Cancel</ui-button>\n * <ui-button slot=\"button\" value=\"confirm\" type=\"text\">Confirm</ui-button>\n * </ui-dialog>\n * ```\n * \n * @slot - The slot for the content of the dialog.\n * @slot icon - The slot to place the dialog icon\n * @slot title - The slot to place the dialog title. Do not put elements here, just the text.\n * @slot button - The slot to place the dialog buttons. Use the `confirm` or `dismiss` buttons to automatically close the dialog.\n * @fires close - A non-bubbling, non-cancellable event with the `UiDialogClosingReason` as the detail.\n */\nexport default class UiDialog extends UiElement {\n get disabled(): boolean {\n return isDisabled(this);\n }\n\n /**\n * When set, the button is a disabled state.\n * @attribute\n */\n @property({ reflect: true, type: Boolean })\n set disabled(value: boolean) {\n const old = isDisabled(this);\n setDisabled(this, value);\n this.requestUpdate('disabled', old);\n }\n\n /**\n * Opens the dialog as modal when toggling dialog's open state.\n * \n * Setting this value after the dialog was opened has no effect.\n * \n * @attribute\n */\n @property({ type: Boolean }) modal = false;\n\n /**\n * Toggles visibility of the dialog.\n * Note, the dialog is opened asynchronously after the update is performed.\n * @attribute\n */\n @property({ type: Boolean }) open = false;\n\n /**\n * Imperative access to create a dismiss button.\n * When set this will render a dismiss button at the end of the buttons line, before the `confirmLabel` button.\n * @attribute\n */\n @property({ type: String }) dismissLabel?: string;\n\n /**\n * Imperative access to create a confirm button.\n * When set this will render a confirm button at the end of the buttons line, after the `dismissLabel` button.\n * @attribute\n */\n @property({ type: String }) confirmLabel?: string;\n\n /**\n * A reference to the underlying dialog element.\n */\n @query('dialog') readonly dialog!: HTMLDialogElement;\n\n @state() protected hasIcon = false;\n\n @state() protected hasTitle = false;\n\n @state() protected hasButton = false;\n\n @queryAssignedElements({ flatten: true, slot: 'icon' }) protected readonly icons!: HTMLElement[];\n\n @queryAssignedNodes({ flatten: true, slot: 'title' }) protected readonly titles!: HTMLElement[];\n\n @queryAssignedElements({ flatten: true, slot: 'button' }) protected readonly buttons!: HTMLElement[];\n\n /**\n * To be set by a child class when closing the dialog.\n * This is passed to the close event.\n */\n dialogValue?: unknown;\n\n constructor() {\n super();\n\n this.addEventListener('click', this.handleClick);\n this.addEventListener('keydown', this.handleKeyDown);\n }\n\n override handleClick(e: MouseEvent): void {\n super.handleClick(e);\n const path = e.composedPath();\n const { buttons } = this;\n const button = path.find(i => buttons.includes(i as HTMLElement)) as HTMLButtonElement | UiButton | undefined;\n if (!button) {\n return;\n }\n const { value ='' } = button;\n this.handleInteraction(value as 'dismiss' | 'confirm');\n }\n\n override handleKeyDown(e: KeyboardEvent): void {\n super.handleKeyDown(e);\n if (e.key === 'Escape') {\n this.handleInteraction('dismiss');\n }\n }\n\n protected override updated(changedProperties: PropertyValues<this>): void {\n if (changedProperties.has('open')) {\n this.controlVisibility();\n }\n super.updated(changedProperties);\n }\n\n protected controlVisibility(): void {\n const { dialog, modal, open } = this;\n if (!dialog) {\n return;\n }\n if (open) {\n if (modal) {\n dialog.showModal();\n } else {\n dialog.show();\n }\n } else {\n dialog.close();\n }\n }\n\n protected handleSlotChange(): void {\n const { icons, titles, buttons } = this;\n this.hasIcon = !!icons && !!icons.length;\n this.hasTitle = !!titles && !!titles.length;\n this.hasButton = !!buttons && !!buttons.length;\n }\n\n protected handleInteraction(value: 'dismiss' | 'confirm'): void {\n if (!['dismiss', 'confirm'].includes(value)) {\n return;\n }\n this.open = false;\n const detail: UiDialogClosingReason = {\n cancelled: value === 'dismiss',\n }\n if (this.dialogValue !== undefined) {\n detail.value = this.dialogValue;\n }\n this.dispatchEvent(new CustomEvent<UiDialogClosingReason>('close', {\n composed: true,\n detail,\n }));\n }\n\n protected handleDialogClose(): void {\n if (!this.open) {\n return;\n }\n this.open = false;\n this.handleInteraction('dismiss');\n }\n\n protected handleDismiss(): void {\n this.handleInteraction('dismiss');\n }\n\n protected handleConfirm(): void {\n this.handleInteraction('confirm');\n }\n\n override render(): TemplateResult {\n return html`\n <dialog @close=\"${this.handleDialogClose}\">\n ${this.renderIcon()}\n ${this.renderTitle()}\n ${this.renderBody()}\n ${this.renderButtons()}\n </dialog>\n `;\n }\n\n protected renderIcon(): TemplateResult {\n const classes: ClassInfo = {\n icon: true,\n 'with-icon': this.hasIcon,\n };\n return html`\n <div class=\"${classMap(classes)}\" part=\"icon\"><slot name=\"icon\" @slotchange=\"${this.handleSlotChange}\"></slot></div>\n `;\n }\n\n protected renderTitle(): TemplateResult {\n const classes: ClassInfo = {\n title: true,\n 'with-title': this.hasTitle,\n };\n return html`\n <div class=\"${classMap(classes)}\" part=\"title\"><slot name=\"title\" @slotchange=\"${this.handleSlotChange}\"></slot></div>\n `;\n }\n\n protected renderBody(): TemplateResult {\n return html`\n <div class=\"content\"><slot></slot></div>\n `;\n }\n\n protected renderButtons(): TemplateResult {\n const classes: ClassInfo = {\n buttons: true,\n 'with-buttons': this.hasButton || !!this.confirmLabel || !!this.dismissLabel,\n };\n return html`\n <div class=\"${classMap(classes)}\" part=\"button\">\n <slot name=\"button\" @slotchange=\"${this.handleSlotChange}\"></slot>\n ${this.renderDismissButton()}\n ${this.renderConfirmButton()}\n </div>\n `;\n }\n\n protected renderDismissButton(): TemplateResult | typeof nothing {\n const { dismissLabel } = this;\n if (!dismissLabel) {\n return nothing;\n }\n return html`\n <ui-button value=\"dismiss\" type=\"text\" class=\"internal-button\" @click=\"${this.handleDismiss}\">${dismissLabel}</ui-button>\n `;\n }\n\n protected renderConfirmButton(): TemplateResult | typeof nothing {\n const { confirmLabel } = this;\n if (!confirmLabel) {\n return nothing;\n }\n return html`\n <ui-button value=\"confirm\" type=\"text\" class=\"internal-button\" @click=\"${this.handleConfirm}\">${confirmLabel}</ui-button>\n `;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ripple.d.ts","sourceRoot":"","sources":["../../../src/ui/effects/ripple.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAQ,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAElF,OAAO,EAAE,SAAS,EAAY,MAAM,6BAA6B,CAAC;AAclE,UAAU,MAAM;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAGD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,UAAU;IAC9C,WAAoB,MAAM,IAAI,SAAS,GAAG,SAAS,EAAE,CAEpD;IAEkB,MAAM,EAAG,WAAW,CAAC;IAExC;;OAEG;IAC0B,SAAS,UAAS;IAE/C;;OAEG;IACyC,QAAQ,UAAS;IAEpD,SAAS,CAAC,OAAO,UAAS;IAE1B,SAAS,CAAC,OAAO,UAAS;IAE1B,SAAS,CAAC,OAAO,UAAS;IAEnC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,SAAS,CAAC,UAAU,SAAM;IAE1B,SAAS,CAAC,WAAW,SAAM;IAE3B,SAAS,CAAC,WAAW,SAAK;IAE1B,SAAS,CAAC,oBAAoB,mDAA2B;IAEzD,SAAS,CAAC,aAAa,EAAE,SAAS,GAAG,IAAI,CAAQ;IAEjD,SAAS,CAAC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAQ;cAEnC,MAAM,IAAI,cAAc;IAI3C,mBAAmB;IACnB,SAAS,CAAC,sBAAsB,IAAI,SAAS;cAS1B,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IASnE,SAAS,CAAC,aAAa,IAAI,OAAO;IAIlC,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAuBrC,SAAS,CAAC,+BAA+B,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM;IAS7E,SAAS,CAAC,yBAAyB,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;KAAE;IA2B5G,SAAS,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI;IAwCjE,UAAU,CAAC,UAAU,CAAC,EAAE,KAAK,GAAG,IAAI;IAMpC,QAAQ,IAAI,IAAI;IAIhB,UAAU,IAAI,IAAI;IAIlB,QAAQ,IAAI,IAAI;IAIhB,UAAU,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI;IAS9C,QAAQ,IAAI,IAAI;CAWjB"}
1
+ {"version":3,"file":"ripple.d.ts","sourceRoot":"","sources":["../../../src/ui/effects/ripple.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAQ,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAElF,OAAO,EAAE,SAAS,EAAY,MAAM,6BAA6B,CAAC;AAclE,UAAU,MAAM;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAGD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,UAAU;IAC9C,WAAoB,MAAM,IAAI,SAAS,GAAG,SAAS,EAAE,CAEpD;IAEkB,MAAM,EAAG,WAAW,CAAC;IAExC;;OAEG;IAC0B,SAAS,UAAS;IAE/C;;OAEG;IACyC,QAAQ,UAAS;IAEpD,SAAS,CAAC,OAAO,UAAS;IAE1B,SAAS,CAAC,OAAO,UAAS;IAE1B,SAAS,CAAC,OAAO,UAAS;IAEnC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,SAAS,CAAC,UAAU,SAAM;IAE1B,SAAS,CAAC,WAAW,SAAM;IAE3B,SAAS,CAAC,WAAW,SAAK;IAE1B,SAAS,CAAC,oBAAoB,mDAA2B;IAEzD,SAAS,CAAC,aAAa,EAAE,SAAS,GAAG,IAAI,CAAQ;IAEjD,SAAS,CAAC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAQ;cAEnC,MAAM,IAAI,cAAc;IAI3C,mBAAmB;IACnB,SAAS,CAAC,sBAAsB,IAAI,SAAS;cAS1B,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IASnE,SAAS,CAAC,aAAa,IAAI,OAAO;IAIlC,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAuBrC,SAAS,CAAC,+BAA+B,CAAC,YAAY,EAAE,YAAY,GAAG,MAAM;IAS7E,SAAS,CAAC,yBAAyB,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;KAAE;IA2B5G,SAAS,CAAC,mBAAmB,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI;IA6CjE,UAAU,CAAC,UAAU,CAAC,EAAE,KAAK,GAAG,IAAI;IAMpC,QAAQ,IAAI,IAAI;IAIhB,UAAU,IAAI,IAAI;IAIlB,QAAQ,IAAI,IAAI;IAIhB,UAAU,CAAC,aAAa,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI;IAS9C,QAAQ,IAAI,IAAI;CAWjB"}
@@ -116,12 +116,16 @@ export default class UiRipple extends LitElement {
116
116
  return { startPoint, endPoint };
117
117
  }
118
118
  startPressAnimation(positionEvent) {
119
+ const { mdRoot } = this;
120
+ if (!mdRoot) {
121
+ return;
122
+ }
119
123
  this.determineRippleSize();
120
124
  const { startPoint, endPoint } = this.getTranslationCoordinates(positionEvent);
121
125
  const translateStart = `${startPoint.x}px, ${startPoint.y}px`;
122
126
  const translateEnd = `${endPoint.x}px, ${endPoint.y}px`;
123
127
  const signal = this.pressAnimationSignal.start();
124
- const growAnimation = this.mdRoot.animate({
128
+ const growAnimation = mdRoot.animate({
125
129
  top: [0, 0],
126
130
  left: [0, 0],
127
131
  height: [this.rippleSize, this.rippleSize],