@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":"VariablesEditor.js","sourceRoot":"","sources":["../../../src/elements/environment/VariablesEditor.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable class-methods-use-this */\nimport { html, TemplateResult, CSSResult } from 'lit';\nimport { live } from 'lit/directives/live.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { IProperty, Property } from '@api-client/core/build/browser.js';\nimport { property, query, state } from 'lit/decorators.js';\nimport { variableValueLabel } from '../../lib/environments/Utils.js';\nimport { IconType } from '../../ui/icons/Icons.js';\nimport ApiElement from '../ApiElement.js';\nimport elementStyles from './VariablesEditor.styles.js';\nimport Input from '../../ui/input/Input.js';\nimport SwitchElement from '../../ui/input/SwitchElement.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-switch.js';\nimport '../../define/ui/ui-icon-button.js';\n\n/**\n * An element to render a list of variables with an ability to edit them.\n */\nexport default class VariablesEditor extends ApiElement {\n static override get styles(): CSSResult[] {\n return [elementStyles];\n }\n\n /**\n * The list of variables to render or edit.\n * This list is mutated. If you don't want this to mutate changes \n * make a copy first. \n */\n @property({ type: Array }) variables?: IProperty[];\n\n /**\n * By default all values are masked. When this is set it renders all values visible.\n */\n @property({ type: Boolean }) renderValues = false;\n\n @state() protected editedVariable?: number;\n\n @query('.editor') protected editor?: HTMLElement;\n\n /**\n * Updates name/value of a parameter on a specific index.\n */\n updateProperty(index: number, field: 'name' | 'value', value: string): void {\n const { variables = [] } = this;\n if (!variables[index]) {\n return;\n }\n variables[index][field] = value;\n this.notifyChanged();\n }\n\n /**\n * Removes a parameter from an index.\n */\n removeProperty(index: number): void {\n const { variables = [] } = this;\n if (!variables[index]) {\n return;\n }\n variables.splice(index, 1);\n this.notifyChanged();\n this.requestUpdate();\n }\n\n /**\n * Toggles enabled state of a parameter.\n */\n toggleProperty(index: number, enabled: boolean): void {\n const { variables = [] } = this;\n if (!variables[index]) {\n return;\n }\n const variable = variables[index];\n if (variable.enabled === enabled) {\n return;\n }\n variable.enabled = enabled;\n this.notifyChanged();\n }\n \n protected notifyChanged(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n protected handleAddVariable(): void {\n if (!this.variables) {\n this.variables = [];\n }\n const item = Property.String();\n const index = this.variables.push(item.toJSON());\n this.editedVariable = index - 1;\n this.requestUpdate();\n this.ensureEditorInView();\n }\n\n protected async ensureEditorInView(): Promise<void> {\n await this.updateComplete;\n const { editor } = this;\n if (editor) {\n editor.scrollIntoView();\n }\n }\n\n /**\n * Toggles visibility of the variable values.\n */\n protected handleVisibilityToggle(): void {\n this.renderValues = !this.renderValues;\n }\n\n /**\n * A handler for the click event on the variable edit icon.\n * Sets state to edit this variable\n */\n protected handleEditVariable(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.editedVariable = index;\n }\n\n protected handleNameChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateProperty(index, 'name', input.value);\n input.checkValidity();\n }\n\n protected handleValueChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateProperty(index, 'value', input.value);\n input.checkValidity();\n }\n\n /**\n * Removes the variable from the environment\n */\n protected handleVariableDelete(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.removeProperty(index);\n }\n\n protected handleRemove(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.removeProperty(index);\n }\n\n protected handleToggle(e: Event): void {\n const node = e.currentTarget as SwitchElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.toggleProperty(index, node.checked);\n }\n\n /**\n * A handler for the variable editor close button click.\n */\n protected handleEditorClose(): void {\n this.editedVariable = undefined;\n this.requestUpdate();\n }\n\n protected override render(): TemplateResult {\n return html`\n ${this.renderHeader()}\n ${this.renderList()}\n `;\n }\n\n protected renderHeader(): TemplateResult {\n return html`\n <div class=\"header\">\n <div class=\"section-title\">Variables</div>\n ${this.renderAddButton()}\n ${this.renderToggleVisibilityButton()}\n </div>\n `;\n }\n\n protected renderAddButton(): TemplateResult {\n return html`\n <ui-icon-button\n title=\"Add a variable\"\n aria-label=\"Activate to add a new variable\"\n @click=\"${this.handleAddVariable}\"\n data-action=\"add-variables\"\n ><ui-icon icon=\"add\"></ui-icon></ui-icon-button>\n `;\n }\n\n protected renderToggleVisibilityButton(): TemplateResult {\n const icon = (this.renderValues ? 'visibilityOff' : 'visibility') as IconType;\n return html`\n <ui-icon-button\n title=\"Toggle values visibility\"\n aria-label=\"Activate to toggle variables visibility\"\n @click=\"${this.handleVisibilityToggle}\"\n data-action=\"toggle-visibility\"\n ><ui-icon icon=\"${icon}\"></ui-icon></ui-icon-button>\n `;\n }\n\n protected renderList(): TemplateResult {\n const { variables } = this;\n if (!Array.isArray(variables) || !variables.length) {\n return this.renderEmptyInfo();\n }\n\n return html`\n <ul class=\"variables-list\">\n ${variables.map((item, index) => this.renderListItem(item, index))}\n </ul>\n `;\n }\n\n protected renderEmptyInfo(): TemplateResult {\n return html`<p class=\"empty-message\">This environment has no variables.</p>`;\n }\n\n /**\n * @param item The variable to render.\n * @returns The template for the variable line or variable editor\n */\n protected renderListItem(item: IProperty | Property, index: number): TemplateResult {\n if (this.editedVariable === index) {\n return this.renderEditor(item, index);\n }\n const classes = {\n disabled: !item.enabled,\n 'variable-item': true,\n };\n return html`\n <li class=${classMap(classes)}>\n <span class=\"variable-name\">${item.name}</span>\n <span class=\"variable-value\">${variableValueLabel(item.value as string || '', !this.renderValues)}</span>\n ${this.renderListActions(index)}\n </li>`;\n }\n\n /**\n * @param index The index of the property on the list\n * @returns The template for list item actions\n */\n protected renderListActions(index: number): TemplateResult {\n return html`\n <div class=\"list-actions\">\n ${this.renderEditButton(index)}\n ${this.renderDeleteButton(index)}\n </div>`;\n }\n\n /**\n * @param item The variable to render.\n * @returns The template for the variables editor\n */\n protected renderEditor(item: IProperty | Property, index: number): TemplateResult {\n return html`\n <li class=\"editor\">\n <div class=\"param-row\">\n ${this.renderToggleButton(item, index)}\n ${this.renderNameField(item, index)}\n ${this.renderValueField(item, index)}\n ${this.renderCloseEditor(index)}\n </div>\n </li>\n `;\n }\n\n protected renderToggleButton(item: IProperty | Property, index: number): TemplateResult {\n return html`\n <ui-switch \n .checked=\"${!!item.enabled}\" \n @change=\"${this.handleToggle}\" \n title=\"Toggle variable enabled\"\n aria-label=\"Toggle variable enabled state\"\n data-index=\"${index}\"\n ></ui-switch>\n `;\n }\n\n protected renderDeleteButton(index: number): TemplateResult {\n return html`\n <ui-icon-button \n aria-label=\"Deletes this variable\" \n title=\"Deletes this variable\" \n data-index=\"${index}\" \n @click=\"${this.handleRemove}\"\n data-action=\"delete-editor\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderEditButton(index: number): TemplateResult {\n return html`\n <ui-icon-button \n aria-label=\"Edits this variable\" \n title=\"Edits this variable\" \n data-index=\"${index}\" \n @click=\"${this.handleEditVariable}\"\n data-action=\"edit\"\n >\n <ui-icon icon=\"edit\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderCloseEditor(index: number): TemplateResult {\n return html`\n <ui-icon-button \n aria-label=\"Closes the editor\" \n title=\"Closes the editor\" \n data-index=\"${index}\" \n @click=\"${this.handleEditorClose}\"\n data-action=\"close-editor\"\n >\n <ui-icon icon=\"close\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderNameField(item: IProperty | Property, index: number): TemplateResult {\n return html`\n <div class=\"input-wrapper name-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"name\"\n autocomplete=\"off\"\n .value=\"${live(item.name)}\" \n data-index=\"${index}\"\n pattern=\"[a-zA-Z0-9_]+\" \n required\n aria-label=\"Variable name\"\n @change=\"${this.handleNameChange}\"\n />\n </div>\n `;\n }\n\n protected renderValueField(item: IProperty | Property, index: number): TemplateResult {\n const type = this.renderValues ? 'text' : 'password';\n return html`\n <div class=\"input-wrapper value-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"${type}\"\n name=\"value\"\n .value=\"${live(item.value as string)}\" \n data-index=\"${index}\"\n aria-label=\"Variable value\"\n @change=\"${this.handleValueChange}\"\n />\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"VariablesEditor.js","sourceRoot":"","sources":["../../../src/elements/environment/VariablesEditor.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable class-methods-use-this */\nimport { html, TemplateResult, CSSResult } from 'lit';\nimport { live } from 'lit/directives/live.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { IProperty, Property } from '@api-client/core/build/browser.js';\nimport { property, query, state } from 'lit/decorators.js';\nimport { variableValueLabel } from '../../lib/environments/Utils.js';\nimport { IconType } from '../../ui/icons/Icons.js';\nimport ApiElement from '../ApiElement.js';\nimport elementStyles from './VariablesEditor.styles.js';\nimport Input from '../../ui/input/Input.js';\nimport SwitchElement from '../../ui/input/SwitchElement.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-switch.js';\nimport '../../define/ui/ui-icon-button.js';\n\n/**\n * An element to render a list of variables with an ability to edit them.\n */\nexport default class VariablesEditor extends ApiElement {\n static override get styles(): CSSResult[] {\n return [elementStyles];\n }\n\n /**\n * The list of variables to render or edit.\n * This list is mutated. If you don't want this to mutate changes \n * make a copy first. \n */\n @property({ type: Array }) variables?: IProperty[];\n\n /**\n * By default all values are masked. When this is set it renders all values visible.\n */\n @property({ type: Boolean }) renderValues = false;\n\n @state() protected editedVariable?: number;\n\n @query('.editor') protected editor?: HTMLElement;\n\n /**\n * Updates name/value of a parameter on a specific index.\n */\n updateProperty(index: number, field: 'name' | 'value', value: string): void {\n const { variables = [] } = this;\n if (!variables[index]) {\n return;\n }\n variables[index][field] = value;\n this.notifyChange();\n }\n\n /**\n * Removes a parameter from an index.\n */\n removeProperty(index: number): void {\n const { variables = [] } = this;\n if (!variables[index]) {\n return;\n }\n variables.splice(index, 1);\n this.notifyChange();\n this.requestUpdate();\n }\n\n /**\n * Toggles enabled state of a parameter.\n */\n toggleProperty(index: number, enabled: boolean): void {\n const { variables = [] } = this;\n if (!variables[index]) {\n return;\n }\n const variable = variables[index];\n if (variable.enabled === enabled) {\n return;\n }\n variable.enabled = enabled;\n this.notifyChange();\n }\n\n protected handleAddVariable(): void {\n if (!this.variables) {\n this.variables = [];\n }\n const item = Property.String();\n const index = this.variables.push(item.toJSON());\n this.editedVariable = index - 1;\n this.requestUpdate();\n this.ensureEditorInView();\n }\n\n protected async ensureEditorInView(): Promise<void> {\n await this.updateComplete;\n const { editor } = this;\n if (editor) {\n editor.scrollIntoView();\n }\n }\n\n /**\n * Toggles visibility of the variable values.\n */\n protected handleVisibilityToggle(): void {\n this.renderValues = !this.renderValues;\n }\n\n /**\n * A handler for the click event on the variable edit icon.\n * Sets state to edit this variable\n */\n protected handleEditVariable(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.editedVariable = index;\n }\n\n protected handleNameChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateProperty(index, 'name', input.value);\n input.checkValidity();\n }\n\n protected handleValueChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateProperty(index, 'value', input.value);\n input.checkValidity();\n }\n\n /**\n * Removes the variable from the environment\n */\n protected handleVariableDelete(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.removeProperty(index);\n }\n\n protected handleRemove(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.removeProperty(index);\n }\n\n protected handleToggle(e: Event): void {\n const node = e.currentTarget as SwitchElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.toggleProperty(index, node.checked);\n }\n\n /**\n * A handler for the variable editor close button click.\n */\n protected handleEditorClose(): void {\n this.editedVariable = undefined;\n this.requestUpdate();\n }\n\n protected override render(): TemplateResult {\n return html`\n ${this.renderHeader()}\n ${this.renderList()}\n `;\n }\n\n protected renderHeader(): TemplateResult {\n return html`\n <div class=\"header\">\n <div class=\"section-title\">Variables</div>\n ${this.renderAddButton()}\n ${this.renderToggleVisibilityButton()}\n </div>\n `;\n }\n\n protected renderAddButton(): TemplateResult {\n return html`\n <ui-icon-button\n title=\"Add a variable\"\n aria-label=\"Activate to add a new variable\"\n @click=\"${this.handleAddVariable}\"\n data-action=\"add-variables\"\n ><ui-icon icon=\"add\"></ui-icon></ui-icon-button>\n `;\n }\n\n protected renderToggleVisibilityButton(): TemplateResult {\n const icon = (this.renderValues ? 'visibilityOff' : 'visibility') as IconType;\n return html`\n <ui-icon-button\n title=\"Toggle values visibility\"\n aria-label=\"Activate to toggle variables visibility\"\n @click=\"${this.handleVisibilityToggle}\"\n data-action=\"toggle-visibility\"\n ><ui-icon icon=\"${icon}\"></ui-icon></ui-icon-button>\n `;\n }\n\n protected renderList(): TemplateResult {\n const { variables } = this;\n if (!Array.isArray(variables) || !variables.length) {\n return this.renderEmptyInfo();\n }\n\n return html`\n <ul class=\"variables-list\">\n ${variables.map((item, index) => this.renderListItem(item, index))}\n </ul>\n `;\n }\n\n protected renderEmptyInfo(): TemplateResult {\n return html`<p class=\"empty-message\">This environment has no variables.</p>`;\n }\n\n /**\n * @param item The variable to render.\n * @returns The template for the variable line or variable editor\n */\n protected renderListItem(item: IProperty | Property, index: number): TemplateResult {\n if (this.editedVariable === index) {\n return this.renderEditor(item, index);\n }\n const classes = {\n disabled: !item.enabled,\n 'variable-item': true,\n };\n return html`\n <li class=${classMap(classes)}>\n <span class=\"variable-name\">${item.name}</span>\n <span class=\"variable-value\">${variableValueLabel(item.value as string || '', !this.renderValues)}</span>\n ${this.renderListActions(index)}\n </li>`;\n }\n\n /**\n * @param index The index of the property on the list\n * @returns The template for list item actions\n */\n protected renderListActions(index: number): TemplateResult {\n return html`\n <div class=\"list-actions\">\n ${this.renderEditButton(index)}\n ${this.renderDeleteButton(index)}\n </div>`;\n }\n\n /**\n * @param item The variable to render.\n * @returns The template for the variables editor\n */\n protected renderEditor(item: IProperty | Property, index: number): TemplateResult {\n return html`\n <li class=\"editor\">\n <div class=\"param-row\">\n ${this.renderToggleButton(item, index)}\n ${this.renderNameField(item, index)}\n ${this.renderValueField(item, index)}\n ${this.renderCloseEditor(index)}\n </div>\n </li>\n `;\n }\n\n protected renderToggleButton(item: IProperty | Property, index: number): TemplateResult {\n return html`\n <ui-switch \n .checked=\"${!!item.enabled}\" \n @change=\"${this.handleToggle}\" \n title=\"Toggle variable enabled\"\n aria-label=\"Toggle variable enabled state\"\n data-index=\"${index}\"\n ></ui-switch>\n `;\n }\n\n protected renderDeleteButton(index: number): TemplateResult {\n return html`\n <ui-icon-button \n aria-label=\"Deletes this variable\" \n title=\"Deletes this variable\" \n data-index=\"${index}\" \n @click=\"${this.handleRemove}\"\n data-action=\"delete-editor\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderEditButton(index: number): TemplateResult {\n return html`\n <ui-icon-button \n aria-label=\"Edits this variable\" \n title=\"Edits this variable\" \n data-index=\"${index}\" \n @click=\"${this.handleEditVariable}\"\n data-action=\"edit\"\n >\n <ui-icon icon=\"edit\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderCloseEditor(index: number): TemplateResult {\n return html`\n <ui-icon-button \n aria-label=\"Closes the editor\" \n title=\"Closes the editor\" \n data-index=\"${index}\" \n @click=\"${this.handleEditorClose}\"\n data-action=\"close-editor\"\n >\n <ui-icon icon=\"close\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderNameField(item: IProperty | Property, index: number): TemplateResult {\n return html`\n <div class=\"input-wrapper name-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"name\"\n autocomplete=\"off\"\n .value=\"${live(item.name)}\" \n data-index=\"${index}\"\n pattern=\"[a-zA-Z0-9_]+\" \n required\n aria-label=\"Variable name\"\n @change=\"${this.handleNameChange}\"\n />\n </div>\n `;\n }\n\n protected renderValueField(item: IProperty | Property, index: number): TemplateResult {\n const type = this.renderValues ? 'text' : 'password';\n return html`\n <div class=\"input-wrapper value-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"${type}\"\n name=\"value\"\n .value=\"${live(item.value as string)}\" \n data-index=\"${index}\"\n aria-label=\"Variable value\"\n @change=\"${this.handleValueChange}\"\n />\n </div>\n `;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Prism.styles.d.ts","sourceRoot":"","sources":["../../../src/elements/highlight/Prism.styles.ts"],"names":[],"mappings":";AAEA,wBAgJE"}
1
+ {"version":3,"file":"Prism.styles.d.ts","sourceRoot":"","sources":["../../../src/elements/highlight/Prism.styles.ts"],"names":[],"mappings":";AAEA,wBAuJE"}
@@ -14,10 +14,16 @@ export default css `
14
14
  line-height: 1.5;
15
15
  tab-size: 4;
16
16
  hyphens: auto;
17
- background-color: var(--prism-container-background-color);
18
17
  display: block;
19
- font-family: var(--font-code-family, monospace);
20
- font-size: var(--font-code-font-size, 10pt);
18
+
19
+ font-family: var(--md-sys-typescale-body-medium-font-family-name);
20
+ font-style: var(--md-sys-typescale-body-medium-font-family-style);
21
+ font-weight: var(--md-sys-typescale-body-medium-font-weight);
22
+ font-size: var(--md-sys-typescale-body-medium-font-size);
23
+ letter-spacing: var(--md-sys-typescale-body-medium-tracking);
24
+ line-height: var(--md-sys-typescale-body-medium-height);
25
+ text-transform: var(--md-sys-typescale-body-medium-text-transform);
26
+ text-decoration: var(--md-sys-typescale-body-medium-text-decoration);
21
27
  }
22
28
 
23
29
  pre[class*='language-']::-moz-selection,
@@ -52,7 +58,8 @@ export default css `
52
58
 
53
59
  :not(pre) > code[class*='language-'],
54
60
  pre[class*='language-'] {
55
- background: var(--prism-container-pre-background-color, #f5f2f0);
61
+ background: var(--md-sys-color-background, #f5f2f0);
62
+ color: var(--md-sys-color-on-background);
56
63
  }
57
64
  /* Inline code */
58
65
 
@@ -108,7 +115,7 @@ export default css `
108
115
  .language-css .token.string,
109
116
  .style .token.string {
110
117
  color: var(--code-operator-value-color, #a67f59);
111
- background: var(--code-operator-value-background-color, hsla(0, 0%, 100%, 0.5));
118
+ background-color: var(--code-operator-value-background-color, hsla(0, 0%, 100%, 0.5));
112
119
  }
113
120
 
114
121
  .token.atrule,
@@ -1 +1 @@
1
- {"version":3,"file":"Prism.styles.js","sourceRoot":"","sources":["../../../src/elements/highlight/Prism.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgJjB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport default css`\n /**\n * prism.js default theme for JavaScript, CSS and HTML\n * Based on dabblet (http://dabblet.com)\n * @author Lea Verou\n */\n code[class*='language-'],\n pre[class*='language-'] {\n white-space: pre-wrap;\n word-spacing: normal;\n word-break: break-all;\n word-wrap: break-word;\n line-height: 1.5;\n tab-size: 4;\n hyphens: auto;\n background-color: var(--prism-container-background-color);\n display: block;\n font-family: var(--font-code-family, monospace);\n font-size: var(--font-code-font-size, 10pt);\n }\n\n pre[class*='language-']::-moz-selection,\n pre[class*='language-']::-moz-selection,\n code[class*='language-']::-moz-selection,\n code[class*='language-']::-moz-selection {\n text-shadow: none;\n background: var(--prism-container-selection-background-color, #b3d4fc);\n }\n\n pre[class*='language-']::selection,\n pre[class*='language-']::selection,\n code[class*='language-']::selection,\n code[class*='language-']::selection {\n text-shadow: none;\n background: var(--prism-container-selection-background-color, #b3d4fc);\n }\n\n @media print {\n code[class*='language-'],\n pre[class*='language-'] {\n text-shadow: none;\n }\n }\n /* Code blocks */\n\n pre[class*='language-'] {\n padding: 1em;\n margin: 0.5em 0;\n overflow: auto;\n }\n\n :not(pre) > code[class*='language-'],\n pre[class*='language-'] {\n background: var(--prism-container-pre-background-color, #f5f2f0);\n }\n /* Inline code */\n\n :not(pre) > code[class*='language-'] {\n padding: 0.1em;\n border-radius: 0.3em;\n white-space: normal;\n }\n\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: var(--code-token-comment-value-color, slategray);\n }\n\n .token.punctuation {\n color: var(--code-punctuation-value-color, #999);\n }\n\n .namespace {\n opacity: 0.7;\n }\n\n .token.property,\n .token.tag,\n .token.constant,\n .token.symbol,\n .token.deleted {\n color: var(--code-property-value-color, #905);\n }\n\n .token.number {\n color: var(--code-type-number-value-color, #905);\n }\n\n .token.boolean {\n color: var(--code-type-boolean-value-color, #905);\n }\n\n .token.selector,\n .token.attr-name,\n .token.string,\n .token.char,\n .token.builtin,\n .token.inserted {\n color: var(--code-type-text-value-color, #690);\n }\n\n .token.operator,\n .token.entity,\n .token.url,\n .language-css .token.string,\n .style .token.string {\n color: var(--code-operator-value-color, #a67f59);\n background: var(--code-operator-value-background-color, hsla(0, 0%, 100%, 0.5));\n }\n\n .token.atrule,\n .token.attr-value,\n .token.keyword {\n color: var(--code-keyword-value-color, #07a);\n }\n\n .token.function {\n color: var(--code-function-value-color, #dd4a68);\n }\n\n .token.regex,\n .token.important,\n .token.variable {\n color: var(--code-variable-value-color, #e90);\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n \n .parsed-content {\n display: table;\n }\n`;\n"]}
1
+ {"version":3,"file":"Prism.styles.js","sourceRoot":"","sources":["../../../src/elements/highlight/Prism.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuJjB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport default css`\n /**\n * prism.js default theme for JavaScript, CSS and HTML\n * Based on dabblet (http://dabblet.com)\n * @author Lea Verou\n */\n code[class*='language-'],\n pre[class*='language-'] {\n white-space: pre-wrap;\n word-spacing: normal;\n word-break: break-all;\n word-wrap: break-word;\n line-height: 1.5;\n tab-size: 4;\n hyphens: auto;\n display: block;\n \n font-family: var(--md-sys-typescale-body-medium-font-family-name);\n font-style: var(--md-sys-typescale-body-medium-font-family-style);\n font-weight: var(--md-sys-typescale-body-medium-font-weight);\n font-size: var(--md-sys-typescale-body-medium-font-size);\n letter-spacing: var(--md-sys-typescale-body-medium-tracking);\n line-height: var(--md-sys-typescale-body-medium-height);\n text-transform: var(--md-sys-typescale-body-medium-text-transform);\n text-decoration: var(--md-sys-typescale-body-medium-text-decoration);\n }\n\n pre[class*='language-']::-moz-selection,\n pre[class*='language-']::-moz-selection,\n code[class*='language-']::-moz-selection,\n code[class*='language-']::-moz-selection {\n text-shadow: none;\n background: var(--prism-container-selection-background-color, #b3d4fc);\n }\n\n pre[class*='language-']::selection,\n pre[class*='language-']::selection,\n code[class*='language-']::selection,\n code[class*='language-']::selection {\n text-shadow: none;\n background: var(--prism-container-selection-background-color, #b3d4fc);\n }\n\n @media print {\n code[class*='language-'],\n pre[class*='language-'] {\n text-shadow: none;\n }\n }\n /* Code blocks */\n\n pre[class*='language-'] {\n padding: 1em;\n margin: 0.5em 0;\n overflow: auto;\n }\n\n :not(pre) > code[class*='language-'],\n pre[class*='language-'] {\n background: var(--md-sys-color-background, #f5f2f0);\n color: var(--md-sys-color-on-background);\n }\n /* Inline code */\n\n :not(pre) > code[class*='language-'] {\n padding: 0.1em;\n border-radius: 0.3em;\n white-space: normal;\n }\n\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: var(--code-token-comment-value-color, slategray);\n }\n\n .token.punctuation {\n color: var(--code-punctuation-value-color, #999);\n }\n\n .namespace {\n opacity: 0.7;\n }\n\n .token.property,\n .token.tag,\n .token.constant,\n .token.symbol,\n .token.deleted {\n color: var(--code-property-value-color, #905);\n }\n\n .token.number {\n color: var(--code-type-number-value-color, #905);\n }\n\n .token.boolean {\n color: var(--code-type-boolean-value-color, #905);\n }\n\n .token.selector,\n .token.attr-name,\n .token.string,\n .token.char,\n .token.builtin,\n .token.inserted {\n color: var(--code-type-text-value-color, #690);\n }\n\n .token.operator,\n .token.entity,\n .token.url,\n .language-css .token.string,\n .style .token.string {\n color: var(--code-operator-value-color, #a67f59);\n background-color: var(--code-operator-value-background-color, hsla(0, 0%, 100%, 0.5));\n }\n\n .token.atrule,\n .token.attr-value,\n .token.keyword {\n color: var(--code-keyword-value-color, #07a);\n }\n\n .token.function {\n color: var(--code-function-value-color, #dd4a68);\n }\n\n .token.regex,\n .token.important,\n .token.variable {\n color: var(--code-variable-value-color, #e90);\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n \n .parsed-content {\n display: table;\n }\n`;\n"]}
@@ -98,10 +98,6 @@ export default class BodyEditor extends ApiElement {
98
98
  * Restores file value from the model, if exists
99
99
  */
100
100
  protected restoreFileModel(): void;
101
- /**
102
- * Dispatches the `input` event
103
- */
104
- protected notifyInput(): void;
105
101
  protected handleTypeChange(e: CustomEvent): void;
106
102
  /**
107
103
  * A handler for the editor selection. It activates an editor, if necessary.
@@ -1 +1 @@
1
- {"version":3,"file":"BodyEditor.d.ts","sourceRoot":"","sources":["../../../src/elements/http/BodyEditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BodyEditor.d.ts","sourceRoot":"","sources":["../../../src/elements/http/BodyEditor.ts"],"names":[],"mappings":"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"}
@@ -174,12 +174,6 @@ export default class BodyEditor extends ApiElement {
174
174
  const file = PayloadSerializer.deserializeFile(item);
175
175
  this.valueInternal = file;
176
176
  }
177
- /**
178
- * Dispatches the `input` event
179
- */
180
- notifyInput() {
181
- this.dispatchEvent(new Event('change'));
182
- }
183
177
  handleTypeChange(e) {
184
178
  const target = e.detail.item;
185
179
  if (!target) {
@@ -204,14 +198,14 @@ export default class BodyEditor extends ApiElement {
204
198
  value = model[0].value;
205
199
  }
206
200
  this.value = value;
207
- this.notifyInput();
201
+ this.notifyChange();
208
202
  }
209
203
  this.requestUpdate();
210
204
  await this.updateComplete;
211
205
  // this.notifyResize();
212
206
  if (id === 'file') {
213
207
  this.restoreFileModel();
214
- this.notifyInput();
208
+ this.notifyChange();
215
209
  }
216
210
  else if (id === 'urlEncode') {
217
211
  const editor = this.shadowRoot.querySelector('http-body-urlencoded-editor');
@@ -219,7 +213,7 @@ export default class BodyEditor extends ApiElement {
219
213
  throw new Error(`Invalid state. The <http-body-urlencoded-editor> element was removed from the DOM.`);
220
214
  }
221
215
  this.value = editor.value;
222
- this.notifyInput();
216
+ this.notifyChange();
223
217
  }
224
218
  else if (id === 'multipart') {
225
219
  const editor = this.shadowRoot.querySelector('http-body-multipart-editor');
@@ -227,7 +221,7 @@ export default class BodyEditor extends ApiElement {
227
221
  throw new Error(`Invalid state. The <http-body-multipart-editor> element was removed from the DOM.`);
228
222
  }
229
223
  this.value = editor.value;
230
- this.notifyInput();
224
+ this.notifyChange();
231
225
  }
232
226
  this.dispatchEvent(new Event('select'));
233
227
  }
@@ -257,7 +251,7 @@ export default class BodyEditor extends ApiElement {
257
251
  const payload = await PayloadSerializer.stringifyFile(file);
258
252
  const model = [payload];
259
253
  this.setMetaModel('file', model);
260
- this.notifyInput();
254
+ this.notifyChange();
261
255
  this.requestUpdate();
262
256
  }
263
257
  /**
@@ -266,7 +260,7 @@ export default class BodyEditor extends ApiElement {
266
260
  handleClearFile() {
267
261
  this.value = '';
268
262
  this.setMetaModel('file', []);
269
- this.notifyInput();
263
+ this.notifyChange();
270
264
  }
271
265
  /**
272
266
  * Reads editor view model
@@ -323,7 +317,7 @@ export default class BodyEditor extends ApiElement {
323
317
  autoEncode: this.autoEncode,
324
318
  };
325
319
  this.setMetaModel('urlEncode', [info]);
326
- this.notifyInput();
320
+ this.notifyChange();
327
321
  // do not request update here.
328
322
  }
329
323
  /**
@@ -336,7 +330,7 @@ export default class BodyEditor extends ApiElement {
336
330
  this.valueInternal = value;
337
331
  const model = [{ value: value }];
338
332
  this.setMetaModel('raw', model);
339
- this.notifyInput();
333
+ this.notifyChange();
340
334
  }
341
335
  /**
342
336
  * A handler for the change event dispatched by the
@@ -348,7 +342,7 @@ export default class BodyEditor extends ApiElement {
348
342
  const { value, model } = editor;
349
343
  this.valueInternal = value;
350
344
  this.setMetaModel('multipart', model);
351
- this.notifyInput();
345
+ this.notifyChange();
352
346
  }
353
347
  /**
354
348
  * Checks whether the current content type header value matches the selected editor.
@@ -457,7 +451,7 @@ export default class BodyEditor extends ApiElement {
457
451
  Events.Http.Request.State.contentTypeChange(type, this);
458
452
  }
459
453
  }
460
- this.notifyInput();
454
+ this.notifyChange();
461
455
  }
462
456
  handleDragOver(e) {
463
457
  e.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"file":"BodyEditor.js","sourceRoot":"","sources":["../../../src/elements/http/BodyEditor.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable lit-a11y/no-autofocus */\n/* eslint-disable class-methods-use-this */\n/**\n@license\nCopyright 2020 The Advanced REST client authors <arc@mulesoft.com>\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not\nuse this file except in compliance with the License. You may obtain a copy of\nthe License at\nhttp://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\nWARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\nLicense for the specific language governing permissions and limitations under\nthe License.\n*/\nimport { html, TemplateResult, PropertyValues, nothing } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { IBodyMetaModel, IMultipartBody, IProperty, IRawBody, ISafePayload, IUrlEncodedBodyMeta, PayloadSerializer } from '@api-client/core/build/browser.js';\nimport { ifProperty } from '../../directives/if-property.js';\nimport BodyUrlEncodedEditor from './BodyUrlEncodedEditor.js';\nimport BodyTextEditor from './BodyTextEditor.js';\nimport BodyMultipartEditor from './BodyMultipartEditor.js';\nimport { Events } from '../../events/Events.js';\nimport ApiElement from '../ApiElement.js';\nimport CheckboxElement from '../../ui/input/CheckboxElement.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/http/http-body-urlencoded-editor.js';\nimport '../../define/http/http-body-multipart-editor.js';\nimport '../../define/http/http-body-text-editor.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-checkbox.js';\n\nexport type AllowedEditor = 'raw' | 'urlEncode' | 'multipart' | 'file';\n\nexport interface EditorType {\n id: AllowedEditor;\n label: string;\n title: string;\n}\n\nexport const editorTypes: Readonly<EditorType[]> = Object.freeze([\n {\n id: 'raw',\n label: 'Text editor',\n title: 'Opens a source editor with syntax highlighting'\n },\n {\n id: 'urlEncode',\n label: 'Form URL encoded',\n title: 'Opens an editor specialized with URL encoded data types'\n },\n {\n id: 'multipart',\n label: 'Multipart form data',\n title: 'Opens an editor specialized with multipart data'\n },\n {\n id: 'file',\n label: 'A file',\n title: 'Allows to choose any binary data'\n }\n]);\n\nconst monacoContentTypes: Record<string, string> = {\n 'application/json': 'JSON',\n 'application/xml': 'XML',\n 'text/html': 'HTML',\n 'text/css': 'CSS',\n '': 'Inherited from headers'\n};\n\n/**\n * @fires change When the value and the model change\n */\nexport default class BodyEditor extends ApiElement {\n /**\n * The currently rendered editor.\n * @attribute\n */\n @property({ type: String }) selected: AllowedEditor = 'raw';\n\n protected valueInternal: unknown = '';\n\n /**\n * The HTTP body.\n *\n * Depending of current editor selection the type can vary.\n */\n @property()\n get value(): unknown {\n return this.valueInternal;\n }\n\n set value(value: unknown) {\n const old = this.valueInternal;\n if (old === value) {\n return;\n }\n // this is to be able to set a private filed value from\n // within the element\n this.valueInternal = value;\n this.requestUpdate();\n }\n\n protected modelInternal: IBodyMetaModel[] | undefined;\n\n /**\n * Previously generated by this editor metadata model.\n * Used internally to set the UI.\n */\n @property({ type: Array })\n get model(): IBodyMetaModel[] | undefined {\n return this.modelInternal;\n }\n\n set model(value: IBodyMetaModel[] | undefined) {\n const old = this.modelInternal;\n if (old === value) {\n return;\n }\n // this is to be able to set a private filed value from\n // within the element\n this.modelInternal = value;\n this.requestUpdate();\n this.modelChanged();\n }\n\n /**\n * When set the editor is in read only mode.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) readOnly = false;\n\n /**\n * When set all controls are disabled in the form\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** \n * When set it automatically encodes and decodes values.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) autoEncode = false;\n\n /**\n * @returns True when the current value is a file (or blob).\n */\n get hasFile(): boolean {\n const { value } = this;\n return value instanceof Blob;\n }\n\n /** \n * The current request content type. It is passed to the `raw` editor\n * to detect current language.\n * @attribute\n */\n @property({ type: String, reflect: true }) contentType?: string;\n\n protected invalidMimeMessage?: number;\n\n protected invalidMimeValue?: boolean;\n\n protected mimeValue?: string;\n\n @query('http-body-urlencoded-editor') protected urlEncodedEditor?: BodyUrlEncodedEditor;\n\n @query('http-body-multipart-editor') protected multipartEditor?: BodyMultipartEditor;\n\n constructor() {\n super();\n this.addEventListener('drop', this.handlerDrop.bind(this));\n this.addEventListener('dragover', this.handleDragOver.bind(this));\n }\n\n protected override update(cp: PropertyValues<this>): void {\n if (cp.has('contentType') || cp.has('selected')) {\n this.analyzeContentType();\n }\n super.update(cp);\n }\n\n /**\n * This must be called only when the `model` property change from the \n * outside. It restores values depending on the selected editor.\n */\n protected modelChanged(): void {\n const { selected, model } = this;\n if (!model) {\n return;\n }\n if (selected === 'file') {\n this.restoreFileModel();\n }\n const info = this.readMetaModel('urlEncode') as IUrlEncodedBodyMeta[] | undefined;\n if (Array.isArray(info) && info[0]) {\n if (typeof info[0].autoEncode === 'boolean') {\n this.autoEncode = info[0].autoEncode;\n }\n }\n }\n\n /**\n * Restores file value from the model, if exists\n */\n protected restoreFileModel(): void {\n const fileModel = this.readMetaModel('file') as ISafePayload[] | undefined;\n if (!Array.isArray(fileModel) || !fileModel.length) {\n this.valueInternal = '';\n return;\n }\n const [item] = fileModel;\n if (!item || !item.data) {\n this.valueInternal = '';\n return;\n }\n const file = PayloadSerializer.deserializeFile(item);\n this.valueInternal = file;\n }\n\n /**\n * Dispatches the `input` event\n */\n protected notifyInput(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n protected handleTypeChange(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined;\n if (!target) {\n return;\n }\n const selected = target.dataset.type as AllowedEditor;\n this.changeEditor(selected);\n }\n\n /**\n * A handler for the editor selection. It activates an editor, if necessary.\n */\n protected async changeEditor(id: AllowedEditor): Promise<void> {\n if (this.selected === id) {\n return;\n }\n this.selected = id;\n this.analyzeContentType();\n if (id === 'raw') {\n const model = this.readMetaModel('raw') as IRawBody[];\n let value = '';\n if (Array.isArray(model) && model.length) {\n value = model[0].value;\n }\n this.value = value;\n this.notifyInput();\n }\n this.requestUpdate();\n await this.updateComplete;\n // this.notifyResize();\n if (id === 'file') {\n this.restoreFileModel();\n this.notifyInput();\n } else if (id === 'urlEncode') {\n const editor = (this.shadowRoot as ShadowRoot).querySelector('http-body-urlencoded-editor');\n if (!editor) {\n throw new Error(`Invalid state. The <http-body-urlencoded-editor> element was removed from the DOM.`);\n }\n this.value = editor.value;\n this.notifyInput();\n } else if (id === 'multipart') {\n const editor = (this.shadowRoot as ShadowRoot).querySelector('http-body-multipart-editor');\n if (!editor) {\n throw new Error(`Invalid state. The <http-body-multipart-editor> element was removed from the DOM.`);\n }\n this.value = editor.value;\n this.notifyInput();\n }\n this.dispatchEvent(new Event('select'));\n }\n\n /**\n * A handler for the file pick button click.\n * Activates the file input.\n */\n protected handlePickFile(): void {\n const input = (this.shadowRoot as ShadowRoot).querySelector('.binary-hidden') as HTMLInputElement;\n input.click();\n }\n\n /**\n * A handler for the file file selection in the file input.\n * Sets the value to the file.\n */\n protected async handleFileChange(e: Event): Promise<void> {\n const input = e.target as HTMLInputElement;\n const { files } = input;\n if (!files) {\n return;\n }\n const file = files[0];\n if (!file) {\n return;\n }\n this.valueInternal = file;\n const payload = await PayloadSerializer.stringifyFile(file);\n const model = [ payload ];\n this.setMetaModel('file', model);\n this.notifyInput();\n this.requestUpdate();\n }\n\n /**\n * Clears the current value\n */\n protected handleClearFile(): void {\n this.value = '';\n this.setMetaModel('file', []);\n this.notifyInput();\n }\n\n /**\n * Reads editor view model\n * \n * @param editor The editor id\n * @returns The view model\n */\n protected readMetaModel(editor: string): (ISafePayload | IProperty | IMultipartBody | IRawBody | IUrlEncodedBodyMeta)[] | undefined {\n const meta = this.model;\n if (!meta || !Array.isArray(meta)) {\n return undefined;\n }\n const item = meta.find((model) => model.type === editor);\n if (!item) {\n return undefined;\n }\n if (Array.isArray(item.viewModel)) {\n return item.viewModel;\n }\n return undefined;\n }\n\n /**\n * Sets editor view model on the local model\n * @param editor The editor id\n * @param model The view model\n */\n protected setMetaModel(editor: AllowedEditor, model: (ISafePayload | IProperty | IMultipartBody | IRawBody | IUrlEncodedBodyMeta)[]): void {\n if (!Array.isArray(this.modelInternal)) {\n this.modelInternal = [];\n }\n const meta = this.model as IBodyMetaModel[];\n const index = meta.findIndex((item) => item.type === editor);\n if (index === -1) {\n meta.push({ type: editor, viewModel: model });\n } else {\n meta[index].viewModel = model;\n }\n }\n\n /**\n * A handler for the change event dispatched by the \n * `urlEncode` editor.\n * Updated the local value, model, and notifies the change.\n */\n protected handleUrlEncodeChange(e: Event): void {\n const editor = e.target as BodyUrlEncodedEditor;\n this.updateUrlEncodedValue(editor);\n }\n\n protected updateUrlEncodedValue(editor: BodyUrlEncodedEditor): void {\n const { value, model } = editor;\n this.valueInternal = value;\n const info: IUrlEncodedBodyMeta = {\n model,\n autoEncode: this.autoEncode,\n };\n this.setMetaModel('urlEncode', [info]);\n this.notifyInput();\n // do not request update here.\n }\n\n /**\n * A handler for the change event dispatched by the `raw` editor.\n * Updated the local value, model, and notifies the change.\n */\n protected handleRawChange(e: Event): void {\n const editor = e.target as BodyTextEditor;\n const { value } = editor;\n this.valueInternal = value;\n const model: IRawBody[] = [{ value: value as string }];\n this.setMetaModel('raw', model);\n this.notifyInput();\n }\n\n /**\n * A handler for the change event dispatched by the \n * `multipart` editor.\n * Updated the local value, model, and notifies the change.\n */\n protected handleMultipartChange(e: Event): void {\n const editor = e.target as BodyMultipartEditor;\n const { value, model } = editor;\n this.valueInternal = value;\n this.setMetaModel('multipart', model);\n this.notifyInput();\n }\n\n /**\n * Checks whether the current content type header value matches the selected editor.\n * If not it renders a warning message.\n */\n protected analyzeContentType(): void {\n const mime = this.contentType;\n if (!mime || typeof mime !== 'string') {\n this.invalidMimeValue = false;\n this.mimeValue = undefined;\n return;\n }\n let ct = mime;\n const semicolon = ct.indexOf(';');\n if (semicolon !== -1) {\n ct = ct.substring(0, semicolon);\n }\n this.mimeValue = ct;\n if (!ct) {\n this.invalidMimeValue = false;\n return;\n }\n const { selected } = this;\n if (selected === 'multipart') {\n if (ct !== 'multipart/form-data') {\n this.invalidMimeValue = true;\n this.invalidMimeMessage = 1;\n } else {\n this.invalidMimeValue = false;\n }\n } else if (selected === 'urlEncode') {\n if (ct !== 'application/x-www-form-urlencoded') {\n this.invalidMimeValue = true;\n this.invalidMimeMessage = 2;\n } else {\n this.invalidMimeValue = false;\n }\n } else {\n this.invalidMimeValue = false;\n }\n }\n\n /**\n * Automatically fixes content type problem.\n */\n protected autoFixMime(): void {\n const { selected } = this;\n let updated = '';\n if (selected === 'urlEncode') {\n updated = 'application/x-www-form-urlencoded';\n } else if (selected === 'multipart') {\n updated = 'multipart/form-data';\n }\n Events.Http.Request.State.contentTypeChange(updated, this);\n }\n\n /**\n * A handler for the mime type selection.\n */\n protected handleMimeTypeSelect(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined;\n if (!target) {\n return;\n }\n const { type = '' } = target.dataset;\n if (this.mimeValue === type) {\n return;\n }\n this.contentType = type;\n Events.Http.Request.State.contentTypeChange(type, this);\n }\n\n async handlerDrop(e: DragEvent): Promise<void> {\n e.preventDefault();\n const { dataTransfer } = e;\n if (!dataTransfer) {\n return;\n }\n const { files } = dataTransfer;\n if (!files.length) {\n return;\n }\n const file = files[0];\n const { selected } = this;\n if (selected === 'file') {\n this.value = file;\n } else if (selected === 'multipart') {\n const editor = (this.shadowRoot as ShadowRoot).querySelector('http-body-multipart-editor');\n if (!editor) {\n throw new Error(`Invalid state. The <http-body-multipart-editor> element was removed from the DOM.`);\n }\n if (!e.ctrlKey && !e.metaKey) {\n editor.value = new FormData();\n }\n const ps = Array.from(files).map((item) => editor.addFile(item));\n await Promise.all(ps);\n } else {\n const payload = await PayloadSerializer.stringifyBlob(file);\n this.value = payload.data;\n const { type } = file;\n if (type) {\n Events.Http.Request.State.contentTypeChange(type, this);\n }\n }\n this.notifyInput();\n }\n\n protected handleDragOver(e: DragEvent): void {\n e.preventDefault();\n }\n\n protected handleAddUrlEncode(): void {\n const editor = this.urlEncodedEditor;\n if (editor) {\n editor.addParameter();\n }\n }\n\n protected handleUrlEncode(): void {\n const editor = this.urlEncodedEditor;\n if (editor) {\n editor.encodeParameters();\n }\n }\n\n protected handleUrlDecode(): void {\n const editor = this.urlEncodedEditor;\n if (editor) {\n editor.decodeParameters();\n }\n }\n\n protected handleUrlEncodeAutoChange(e: Event): void {\n const input = e.target as CheckboxElement;\n this.autoEncode = input.checked;\n const editor = this.urlEncodedEditor;\n if (editor) {\n this.updateUrlEncodedValue(editor);\n }\n }\n\n protected handleMultipartAddText(): void {\n const editor = this.multipartEditor;\n if (editor) {\n editor.addEmptyText();\n }\n }\n\n protected handleMultipartAddFile(): void {\n const editor = this.multipartEditor;\n if (editor) {\n editor.addEmptyFile();\n }\n }\n\n override render(): TemplateResult {\n return html`\n <div class=\"actions\">\n ${this.renderBodySelector()}\n ${this.renderMainActions()}\n </div>\n ${this.renderInvalidMime()}\n <div class=\"container\">\n ${this.renderEditor()}\n </div>\n `;\n }\n\n /**\n * @returns The template for the dropdown menu for the editor type\n */\n protected renderBodySelector(): TemplateResult {\n const { selected } = this;\n const selectedItem = editorTypes.find(i => i.id === selected);\n const label = selectedItem && selectedItem.label || 'Select editor';\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleTypeChange}\"\n class=\"type-dropdown\"\n closeOnOutsideClick\n >\n <ui-button type=\"tonal\" title=\"Select editor type\" aria-label=\"Opens a menu to select editor type\">\n <ui-icon icon=\"arrowDropDown\" slot=\"icon\" role=\"presentation\"></ui-icon>\n ${label}\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${this.renderBodyTypeOptions()}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderBodyTypeOptions(): TemplateResult {\n return html`\n ${editorTypes.map((info) => html`\n <ui-list-item role=\"menuitem\" data-type=\"${info.id}\" title=\"${info.title}\">\n ${info.label}\n </ui-list-item>\n `)}\n `;\n }\n\n /**\n * @returns The template for the main editor actions.\n */\n protected renderMainActions(): TemplateResult | typeof nothing {\n const { selected } = this;\n if (selected === 'raw') {\n return this.renderTextEditorActions();\n }\n if (selected === 'urlEncode') {\n return this.renderUrlEncodeEditorActions();\n }\n if (selected === 'multipart') {\n return this.renderMultipartActions();\n }\n return nothing;\n }\n\n protected renderTextEditorActions(): TemplateResult {\n const label = monacoContentTypes[this.mimeValue || ''] || monacoContentTypes[''];\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleMimeTypeSelect}\"\n class=\"mime-dropdown\"\n closeOnOutsideClick\n >\n <ui-button \n type=\"tonal\" \n title=\"Select media type. This overrides the content-type header\"\n aria-label=\"Editor media type\"\n >\n <ui-icon icon=\"arrowDropDown\" slot=\"icon\"></ui-icon>\n ${label}\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${this.renderMonacoOptions()}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderMonacoOptions(): TemplateResult[] {\n return Object.keys(monacoContentTypes).map(key => html`\n ${key === '' ? html`<ui-divider></ui-divider>` : nothing}\n <ui-list-item role=\"menuitem\" data-type=\"${key}\">\n ${monacoContentTypes[key]}\n </ui-list-item>\n `);\n }\n\n protected renderUrlEncodeEditorActions(): TemplateResult {\n const { autoEncode } = this;\n return html`\n <ui-button \n type=\"tonal\" \n aria-label=\"Adds a new parameter\" \n title=\"Adds a new parameter\" \n @click=\"${this.handleAddUrlEncode}\"\n >\n <ui-icon slot=\"icon\" icon=\"add\" role=\"presentation\"></ui-icon>\n Add\n </ui-button>\n <ui-button \n type=\"outlined\" \n title=\"URL encodes parameters in the editor\" \n aria-label=\"URL encodes parameters in the editor\"\n @click=\"${this.handleUrlEncode}\"\n ?disabled=\"${autoEncode}\"\n >\n URL encode\n </ui-button>\n <ui-button \n type=\"outlined\" \n title=\"URL decodes parameters in the editor\"\n aria-label=\"URL decodes parameters in the editor\"\n @click=\"${this.handleUrlDecode}\"\n ?disabled=\"${autoEncode}\"\n >\n URL decode\n </ui-button>\n <label title=\"When set it automatically encodes the values before sending the request\">\n <ui-checkbox .checked=\"${autoEncode}\" @change=\"${this.handleUrlEncodeAutoChange}\"></ui-checkbox>\n Encode on send\n </label>\n `;\n }\n\n protected renderMultipartActions(): TemplateResult {\n return html`\n <ui-button\n type=\"outlined\"\n title=\"Adds a new part with a file value\"\n aria-label=\"Adds a new part with a file value\"\n @click=\"${this.handleMultipartAddFile}\"\n >\n Add file part\n </ui-button>\n <ui-button \n type=\"outlined\" \n title=\"Adds a new part with a text value\"\n aria-label=\"Adds a new part with a text value\"\n @click=\"${this.handleMultipartAddText}\"\n >\n Add text part\n </ui-button>\n `;\n }\n\n /**\n * @returns A template for currently rendered editor\n */\n protected renderEditor(): TemplateResult {\n switch (this.selected) {\n case 'raw': return this.renderRawEditor();\n case 'urlEncode': return this.renderUrlEncodeEditor();\n case 'multipart': return this.renderMultipartEditor();\n case 'file': return this.renderFileEditor();\n default: return this.renderNoEditor();\n }\n }\n\n /**\n * @returns The template for the raw editor\n */\n protected renderRawEditor(): TemplateResult {\n let { value } = this;\n const model = this.readMetaModel('raw') as IRawBody[];\n const hasModel = Array.isArray(model) && model.length;\n if (typeof value !== 'string') {\n value = '';\n }\n if (!value && hasModel) {\n const [item] = model;\n value = item.value;\n }\n return this.renderTextEditor(value as string);\n }\n\n /**\n * @param value The editor value\n * @returns The template for the Monaco editor\n */\n protected renderTextEditor(value: string): TemplateResult {\n const { contentType } = this;\n return html`\n <http-body-text-editor \n .value=\"${value}\" \n .contentType=\"${contentType}\"\n @change=\"${this.handleRawChange}\"\n allowFormInfo\n ></http-body-text-editor>`;\n }\n\n /**\n * @returns A template for the application/x-www-form-urlencoded editor\n */\n protected renderUrlEncodeEditor(): TemplateResult {\n const { autoEncode } = this;\n const info = this.readMetaModel('urlEncode') as IUrlEncodedBodyMeta[] | undefined;\n const model = Array.isArray(info) && info[0] && info[0].model;\n return html`\n <http-body-urlencoded-editor \n ?autoEncode=\"${autoEncode}\"\n .model=\"${ifProperty(model)}\"\n @change=\"${this.handleUrlEncodeChange}\"\n allowFormInfo\n ></http-body-urlencoded-editor>\n `;\n }\n\n /**\n * @returns A template for the multipart editor\n */\n protected renderMultipartEditor(): TemplateResult {\n const model = this.readMetaModel('multipart') as IMultipartBody[];\n return html`\n <http-body-multipart-editor \n .model=\"${ifProperty(model)}\"\n @change=\"${this.handleMultipartChange}\"\n allowFormInfo\n ></http-body-multipart-editor>\n `;\n }\n\n /**\n * @returns A template for the file input editor\n */\n protected renderFileEditor(): TemplateResult {\n return html`\n <div class=\"file-picker\">\n <ui-button type=\"text\" @click=\"${this.handlePickFile}\">Choose a file</ui-button>\n ${this.renderFileDetail()}\n </div>\n <input type=\"file\" class=\"binary-hidden\" @change=\"${this.handleFileChange}\"/>\n ${this.renderFormInfo()}\n `;\n }\n\n protected renderFormInfo(): TemplateResult {\n return html`\n <p class=\"form-info\">\n Note that the content-type header will be added when the request is sent.\n </p>\n `;\n }\n\n /**\n * @returns A template for the missing selection\n */\n protected renderNoEditor(): TemplateResult {\n return html`<div class=\"empty-editor\">Invalid editor selected.</div>`;\n }\n\n /**\n * @returns A template for the file details.\n */\n protected renderFileDetail(): TemplateResult | string {\n if (!this.hasFile) {\n this.restoreFileModel();\n }\n if (!this.hasFile) {\n return '';\n }\n const { value } = this;\n const { size, name } = value as File;\n return html`\n <div class=\"file-info\">\n <span class=\"file-name\">${name || 'unknown name'}</span>\n <span class=\"file-size\">${size} bytes</span>\n <ui-icon-button\n aria-label=\"Delete file\"\n title=\"Deletes the file\"\n @click=\"${this.handleClearFile}\"\n ?disabled=\"${this.readOnly}\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n </div>\n `;\n }\n\n protected renderInvalidMime(): TemplateResult | string {\n if (!this.invalidMimeValue) {\n return '';\n }\n const id = this.invalidMimeMessage;\n return html`\n <div class=\"invalid-mime\">\n <ui-icon icon=\"warning\" class=\"warning-icon\"></ui-icon>\n ${id === 1 ? this.renderFixableInvalidMime('multipart/form-data') : ''}\n ${id === 2 ? this.renderFixableInvalidMime('application/x-www-form-urlencoded') : ''}\n </div>\n `;\n }\n\n /**\n * @returns A template for fixable mime type mismatch message.\n */\n protected renderFixableInvalidMime(suggested: string): TemplateResult {\n return html`\n <p class=\"message\">\n The <code>content-type</code> header has different value than <b>${suggested}</b>.\n </p>\n <ui-button class=\"fix\" type=\"tonal\" title=\"Updates the content type header for the request\" @click=\"${this.autoFixMime}\">Fix</ui-button>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"BodyEditor.js","sourceRoot":"","sources":["../../../src/elements/http/BodyEditor.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,2CAA2C;AAC3C;;;;;;;;;;;;EAYE;AACF,OAAO,EAAE,IAAI,EAAkC,OAAO,EAAE,MAAM,KAAK,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAA0F,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC9J,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAI7D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAE1C,OAAO,4BAA4B,CAAC;AACpC,OAAO,kDAAkD,CAAC;AAC1D,OAAO,iDAAiD,CAAC;AACzD,OAAO,4CAA4C,CAAC;AACpD,OAAO,8BAA8B,CAAC;AACtC,OAAO,qCAAqC,CAAC;AAC7C,OAAO,4BAA4B,CAAC;AACpC,OAAO,iCAAiC,CAAC;AACzC,OAAO,+BAA+B,CAAC;AACvC,OAAO,gCAAgC,CAAC;AAUxC,MAAM,CAAC,MAAM,WAAW,GAA2B,MAAM,CAAC,MAAM,CAAC;IAC/D;QACE,EAAE,EAAE,KAAK;QACT,KAAK,EAAE,aAAa;QACpB,KAAK,EAAE,gDAAgD;KACxD;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,yDAAyD;KACjE;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,qBAAqB;QAC5B,KAAK,EAAE,iDAAiD;KACzD;IACD;QACE,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,kCAAkC;KAC1C;CACF,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAA2B;IACjD,kBAAkB,EAAE,MAAM;IAC1B,iBAAiB,EAAE,KAAK;IACxB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,KAAK;IACjB,EAAE,EAAE,wBAAwB;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,UAAU;IAShD;;;;OAIG;IAEH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK,CAAC,KAAc;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,OAAO;SACR;QACD,uDAAuD;QACvD,qBAAqB;QACrB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAID;;;OAGG;IAEH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK,CAAC,KAAmC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC;QAC/B,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,OAAO;SACR;QACD,uDAAuD;QACvD,qBAAqB;QACrB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAoBD;;OAEG;IACH,IAAI,OAAO;QACT,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACvB,OAAO,KAAK,YAAY,IAAI,CAAC;IAC/B,CAAC;IAmBD;QACE,KAAK,EAAE,CAAC;QAhGV;;;WAGG;QACyB,aAAQ,GAAkB,KAAK,CAAC;QAElD,kBAAa,GAAY,EAAE,CAAC;QA8CtC;;;WAGG;QACyC,aAAQ,GAAG,KAAK,CAAC;QAE7D;;;WAGG;QACyC,aAAQ,GAAG,KAAK,CAAC;QAE7D;;;WAGG;QACyC,eAAU,GAAG,KAAK,CAAC;QA6B7D,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,CAAC;IAEkB,MAAM,CAAC,EAAwB;QAChD,IAAI,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YAC/C,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC3B;QACD,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IAED;;;OAGG;IACO,YAAY;QACpB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO;SACR;QACD,IAAI,QAAQ,KAAK,MAAM,EAAE;YACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAsC,CAAC;QAClF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;YAClC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE;gBAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;aACtC;SACF;IACH,CAAC;IAED;;OAEG;IACO,gBAAgB;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAA+B,CAAC;QAC3E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAClD,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO;SACR;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACvB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;YACxB,OAAO;SACR;QACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAES,gBAAgB,CAAC,CAAc;QACvC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAA+B,CAAC;QACxD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAqB,CAAC;QACtD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,YAAY,CAAC,EAAiB;QAC5C,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE;YACxB,OAAO;SACR;QACD,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,EAAE,KAAK,KAAK,EAAE;YAChB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAe,CAAC;YACtD,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;gBACxC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aACxB;YACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,cAAc,CAAC;QAC1B,uBAAuB;QACvB,IAAI,EAAE,KAAK,MAAM,EAAE;YACjB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;aAAM,IAAI,EAAE,KAAK,WAAW,EAAE;YAC7B,MAAM,MAAM,GAAI,IAAI,CAAC,UAAyB,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC;YAC5F,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;aACvG;YACD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;aAAM,IAAI,EAAE,KAAK,WAAW,EAAE;YAC7B,MAAM,MAAM,GAAI,IAAI,CAAC,UAAyB,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;YAC3F,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;aACtG;YACD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACO,cAAc;QACtB,MAAM,KAAK,GAAI,IAAI,CAAC,UAAyB,CAAC,aAAa,CAAC,gBAAgB,CAAqB,CAAC;QAClG,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,gBAAgB,CAAC,CAAQ;QACvC,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAC;QAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,EAAE;YACV,OAAO;SACR;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,CAAE,OAAO,CAAE,CAAC;QAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACO,eAAe;QACvB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;;;;OAKG;IACO,aAAa,CAAC,MAAc;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACjC,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,SAAS,CAAC;SAClB;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACO,YAAY,CAAC,MAAqB,EAAE,KAAqF;QACjI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YACtC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;SACzB;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAyB,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAC7D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;SAC/C;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;SAC/B;IACH,CAAC;IAED;;;;OAIG;IACO,qBAAqB,CAAC,CAAQ;QACtC,MAAM,MAAM,GAAG,CAAC,CAAC,MAA8B,CAAC;QAChD,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAES,qBAAqB,CAAC,MAA4B;QAC1D,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,MAAM,IAAI,GAAwB;YAChC,KAAK;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,8BAA8B;IAChC,CAAC;IAED;;;OAGG;IACO,eAAe,CAAC,CAAQ;QAChC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAwB,CAAC;QAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,MAAM,KAAK,GAAe,CAAC,EAAE,KAAK,EAAE,KAAe,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACO,qBAAqB,CAAC,CAAQ;QACtC,MAAM,MAAM,GAAG,CAAC,CAAC,MAA6B,CAAC;QAC/C,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;;OAGG;IACO,kBAAkB;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YACrC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,OAAO;SACR;QACD,IAAI,EAAE,GAAG,IAAI,CAAC;QACd,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;YACpB,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;SACjC;QACD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,EAAE,EAAE;YACP,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,OAAO;SACR;QACD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,IAAI,QAAQ,KAAK,WAAW,EAAE;YAC5B,IAAI,EAAE,KAAK,qBAAqB,EAAE;gBAChC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;aAC7B;iBAAM;gBACL,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;aAC/B;SACF;aAAM,IAAI,QAAQ,KAAK,WAAW,EAAE;YACnC,IAAI,EAAE,KAAK,mCAAmC,EAAE;gBAC9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;aAC7B;iBAAM;gBACL,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;aAC/B;SACF;aAAM;YACL,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;SAC/B;IACH,CAAC;IAED;;OAEG;IACO,WAAW;QACnB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,QAAQ,KAAK,WAAW,EAAE;YAC5B,OAAO,GAAG,mCAAmC,CAAC;SAC/C;aAAM,IAAI,QAAQ,KAAK,WAAW,EAAE;YACnC,OAAO,GAAG,qBAAqB,CAAC;SACjC;QACD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACO,oBAAoB,CAAC,CAAc;QAC3C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,IAA+B,CAAC;QACxD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;QACrC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;YAC3B,OAAO;SACR;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,CAAY;QAC5B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO;SACR;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACjB,OAAO;SACR;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,IAAI,QAAQ,KAAK,MAAM,EAAE;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACnB;aAAM,IAAI,QAAQ,KAAK,WAAW,EAAE;YACnC,MAAM,MAAM,GAAI,IAAI,CAAC,UAAyB,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;YAC3F,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;aACtG;YACD,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;gBAC5B,MAAM,CAAC,KAAK,GAAG,IAAI,QAAQ,EAAE,CAAC;aAC/B;YACD,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACjE,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACvB;aAAM;YACL,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YACtB,IAAI,IAAI,EAAE;gBACR,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACzD;SACF;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAES,cAAc,CAAC,CAAY;QACnC,CAAC,CAAC,cAAc,EAAE,CAAC;IACrB,CAAC;IAES,kBAAkB;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACrC,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,YAAY,EAAE,CAAC;SACvB;IACH,CAAC;IAES,eAAe;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACrC,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,gBAAgB,EAAE,CAAC;SAC3B;IACH,CAAC;IAES,eAAe;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACrC,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,gBAAgB,EAAE,CAAC;SAC3B;IACH,CAAC;IAES,yBAAyB,CAAC,CAAQ;QAC1C,MAAM,KAAK,GAAG,CAAC,CAAC,MAAyB,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACrC,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;SACpC;IACH,CAAC;IAES,sBAAsB;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,YAAY,EAAE,CAAC;SACvB;IACH,CAAC;IAES,sBAAsB;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;QACpC,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,YAAY,EAAE,CAAC;SACvB;IACH,CAAC;IAEQ,MAAM;QACb,OAAO,IAAI,CAAA;;QAEP,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,iBAAiB,EAAE;;MAE1B,IAAI,CAAC,iBAAiB,EAAE;;QAEtB,IAAI,CAAC,YAAY,EAAE;;KAEtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,kBAAkB;QAC1B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,YAAY,IAAI,YAAY,CAAC,KAAK,IAAI,eAAe,CAAC;QACpE,OAAO,IAAI,CAAA;;;iBAGE,IAAI,CAAC,gBAAgB;;;;;;UAM5B,KAAK;;;UAGL,IAAI,CAAC,qBAAqB,EAAE;;;KAGjC,CAAC;IACJ,CAAC;IAES,qBAAqB;QAC7B,OAAO,IAAI,CAAA;MACT,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAA;+CACW,IAAI,CAAC,EAAE,YAAY,IAAI,CAAC,KAAK;QACpE,IAAI,CAAC,KAAK;;KAEb,CAAC;KACD,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,iBAAiB;QACzB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,IAAI,QAAQ,KAAK,KAAK,EAAE;YACtB,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;SACvC;QACD,IAAI,QAAQ,KAAK,WAAW,EAAE;YAC5B,OAAO,IAAI,CAAC,4BAA4B,EAAE,CAAC;SAC5C;QACD,IAAI,QAAQ,KAAK,WAAW,EAAE;YAC5B,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACtC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,uBAAuB;QAC/B,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACjF,OAAO,IAAI,CAAA;;;iBAGE,IAAI,CAAC,oBAAoB;;;;;;;;;;UAUhC,KAAK;;;UAGL,IAAI,CAAC,mBAAmB,EAAE;;;KAG/B,CAAC;IACJ,CAAC;IAES,mBAAmB;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAA;MACpD,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA,2BAA2B,CAAC,CAAC,CAAC,OAAO;+CACb,GAAG;QAC1C,kBAAkB,CAAC,GAAG,CAAC;;KAE1B,CAAC,CAAC;IACL,CAAC;IAES,4BAA4B;QACpC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAA;;;;;gBAKC,IAAI,CAAC,kBAAkB;;;;;;;;;gBASvB,IAAI,CAAC,eAAe;mBACjB,UAAU;;;;;;;;gBAQb,IAAI,CAAC,eAAe;mBACjB,UAAU;;;;;+BAKE,UAAU,cAAc,IAAI,CAAC,yBAAyB;;;KAGhF,CAAC;IACJ,CAAC;IAES,sBAAsB;QAC9B,OAAO,IAAI,CAAA;;;;;gBAKC,IAAI,CAAC,sBAAsB;;;;;;;;gBAQ3B,IAAI,CAAC,sBAAsB;;;;KAItC,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,YAAY;QACpB,QAAQ,IAAI,CAAC,QAAQ,EAAE;YACrB,KAAK,KAAK,CAAC,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1C,KAAK,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACtD,KAAK,WAAW,CAAC,CAAC,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACtD,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC5C,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;SACvC;IACH,CAAC;IAED;;OAEG;IACO,eAAe;QACvB,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAe,CAAC;QACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC;QACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,KAAK,GAAG,EAAE,CAAC;SACZ;QACD,IAAI,CAAC,KAAK,IAAI,QAAQ,EAAE;YACtB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACrB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SACpB;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAe,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACO,gBAAgB,CAAC,KAAa;QACtC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAA;;gBAEC,KAAK;sBACC,WAAW;iBAChB,IAAI,CAAC,eAAe;;8BAEP,CAAC;IAC7B,CAAC;IAED;;OAEG;IACO,qBAAqB;QAC7B,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAsC,CAAC;QAClF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9D,OAAO,IAAI,CAAA;;uBAEQ,UAAU;kBACf,UAAU,CAAC,KAAK,CAAC;mBAChB,IAAI,CAAC,qBAAqB;;;KAGxC,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,qBAAqB;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAqB,CAAC;QAClE,OAAO,IAAI,CAAA;;kBAEG,UAAU,CAAC,KAAK,CAAC;mBAChB,IAAI,CAAC,qBAAqB;;;KAGxC,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,gBAAgB;QACxB,OAAO,IAAI,CAAA;;uCAEwB,IAAI,CAAC,cAAc;QAClD,IAAI,CAAC,gBAAgB,EAAE;;wDAEyB,IAAI,CAAC,gBAAgB;MACvE,IAAI,CAAC,cAAc,EAAE;KACtB,CAAC;IACJ,CAAC;IAES,cAAc;QACtB,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,cAAc;QACtB,OAAO,IAAI,CAAA,0DAA0D,CAAC;IACxE,CAAC;IAED;;OAEG;IACO,gBAAgB;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO,EAAE,CAAC;SACX;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAa,CAAC;QACrC,OAAO,IAAI,CAAA;;gCAEiB,IAAI,IAAI,cAAc;gCACtB,IAAI;;;;kBAIlB,IAAI,CAAC,eAAe;qBACjB,IAAI,CAAC,QAAQ;;;;;KAK7B,CAAC;IACJ,CAAC;IAES,iBAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1B,OAAO,EAAE,CAAC;SACX;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACnC,OAAO,IAAI,CAAA;;;QAGP,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,EAAE;QACpE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC,EAAE;;KAErF,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,wBAAwB,CAAC,SAAiB;QAClD,OAAO,IAAI,CAAA;;2EAE4D,SAAS;;4GAEwB,IAAI,CAAC,WAAW;KACvH,CAAC;IACJ,CAAC;CACF;AApxB6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CAAiC;AAU5D;IADC,QAAQ,EAAE;uCAGV;AAoBD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;uCAGzB;AAkB2C;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4CAAkB;AAMjB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4CAAkB;AAMjB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;8CAAoB;AAepB;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAAsB;AAQ1B;IAArC,KAAK,CAAC,6BAA6B,CAAC;oDAAmD;AAEnD;IAApC,KAAK,CAAC,4BAA4B,CAAC;mDAAiD","sourcesContent":["/* eslint-disable lit-a11y/no-autofocus */\n/* eslint-disable class-methods-use-this */\n/**\n@license\nCopyright 2020 The Advanced REST client authors <arc@mulesoft.com>\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not\nuse this file except in compliance with the License. You may obtain a copy of\nthe License at\nhttp://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\nWARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\nLicense for the specific language governing permissions and limitations under\nthe License.\n*/\nimport { html, TemplateResult, PropertyValues, nothing } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { IBodyMetaModel, IMultipartBody, IProperty, IRawBody, ISafePayload, IUrlEncodedBodyMeta, PayloadSerializer } from '@api-client/core/build/browser.js';\nimport { ifProperty } from '../../directives/if-property.js';\nimport BodyUrlEncodedEditor from './BodyUrlEncodedEditor.js';\nimport BodyTextEditor from './BodyTextEditor.js';\nimport BodyMultipartEditor from './BodyMultipartEditor.js';\nimport { Events } from '../../events/Events.js';\nimport ApiElement from '../ApiElement.js';\nimport CheckboxElement from '../../ui/input/CheckboxElement.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/http/http-body-urlencoded-editor.js';\nimport '../../define/http/http-body-multipart-editor.js';\nimport '../../define/http/http-body-text-editor.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-checkbox.js';\n\nexport type AllowedEditor = 'raw' | 'urlEncode' | 'multipart' | 'file';\n\nexport interface EditorType {\n id: AllowedEditor;\n label: string;\n title: string;\n}\n\nexport const editorTypes: Readonly<EditorType[]> = Object.freeze([\n {\n id: 'raw',\n label: 'Text editor',\n title: 'Opens a source editor with syntax highlighting'\n },\n {\n id: 'urlEncode',\n label: 'Form URL encoded',\n title: 'Opens an editor specialized with URL encoded data types'\n },\n {\n id: 'multipart',\n label: 'Multipart form data',\n title: 'Opens an editor specialized with multipart data'\n },\n {\n id: 'file',\n label: 'A file',\n title: 'Allows to choose any binary data'\n }\n]);\n\nconst monacoContentTypes: Record<string, string> = {\n 'application/json': 'JSON',\n 'application/xml': 'XML',\n 'text/html': 'HTML',\n 'text/css': 'CSS',\n '': 'Inherited from headers'\n};\n\n/**\n * @fires change When the value and the model change\n */\nexport default class BodyEditor extends ApiElement {\n /**\n * The currently rendered editor.\n * @attribute\n */\n @property({ type: String }) selected: AllowedEditor = 'raw';\n\n protected valueInternal: unknown = '';\n\n /**\n * The HTTP body.\n *\n * Depending of current editor selection the type can vary.\n */\n @property()\n get value(): unknown {\n return this.valueInternal;\n }\n\n set value(value: unknown) {\n const old = this.valueInternal;\n if (old === value) {\n return;\n }\n // this is to be able to set a private filed value from\n // within the element\n this.valueInternal = value;\n this.requestUpdate();\n }\n\n protected modelInternal: IBodyMetaModel[] | undefined;\n\n /**\n * Previously generated by this editor metadata model.\n * Used internally to set the UI.\n */\n @property({ type: Array })\n get model(): IBodyMetaModel[] | undefined {\n return this.modelInternal;\n }\n\n set model(value: IBodyMetaModel[] | undefined) {\n const old = this.modelInternal;\n if (old === value) {\n return;\n }\n // this is to be able to set a private filed value from\n // within the element\n this.modelInternal = value;\n this.requestUpdate();\n this.modelChanged();\n }\n\n /**\n * When set the editor is in read only mode.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) readOnly = false;\n\n /**\n * When set all controls are disabled in the form\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** \n * When set it automatically encodes and decodes values.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) autoEncode = false;\n\n /**\n * @returns True when the current value is a file (or blob).\n */\n get hasFile(): boolean {\n const { value } = this;\n return value instanceof Blob;\n }\n\n /** \n * The current request content type. It is passed to the `raw` editor\n * to detect current language.\n * @attribute\n */\n @property({ type: String, reflect: true }) contentType?: string;\n\n protected invalidMimeMessage?: number;\n\n protected invalidMimeValue?: boolean;\n\n protected mimeValue?: string;\n\n @query('http-body-urlencoded-editor') protected urlEncodedEditor?: BodyUrlEncodedEditor;\n\n @query('http-body-multipart-editor') protected multipartEditor?: BodyMultipartEditor;\n\n constructor() {\n super();\n this.addEventListener('drop', this.handlerDrop.bind(this));\n this.addEventListener('dragover', this.handleDragOver.bind(this));\n }\n\n protected override update(cp: PropertyValues<this>): void {\n if (cp.has('contentType') || cp.has('selected')) {\n this.analyzeContentType();\n }\n super.update(cp);\n }\n\n /**\n * This must be called only when the `model` property change from the \n * outside. It restores values depending on the selected editor.\n */\n protected modelChanged(): void {\n const { selected, model } = this;\n if (!model) {\n return;\n }\n if (selected === 'file') {\n this.restoreFileModel();\n }\n const info = this.readMetaModel('urlEncode') as IUrlEncodedBodyMeta[] | undefined;\n if (Array.isArray(info) && info[0]) {\n if (typeof info[0].autoEncode === 'boolean') {\n this.autoEncode = info[0].autoEncode;\n }\n }\n }\n\n /**\n * Restores file value from the model, if exists\n */\n protected restoreFileModel(): void {\n const fileModel = this.readMetaModel('file') as ISafePayload[] | undefined;\n if (!Array.isArray(fileModel) || !fileModel.length) {\n this.valueInternal = '';\n return;\n }\n const [item] = fileModel;\n if (!item || !item.data) {\n this.valueInternal = '';\n return;\n }\n const file = PayloadSerializer.deserializeFile(item);\n this.valueInternal = file;\n }\n\n protected handleTypeChange(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined;\n if (!target) {\n return;\n }\n const selected = target.dataset.type as AllowedEditor;\n this.changeEditor(selected);\n }\n\n /**\n * A handler for the editor selection. It activates an editor, if necessary.\n */\n protected async changeEditor(id: AllowedEditor): Promise<void> {\n if (this.selected === id) {\n return;\n }\n this.selected = id;\n this.analyzeContentType();\n if (id === 'raw') {\n const model = this.readMetaModel('raw') as IRawBody[];\n let value = '';\n if (Array.isArray(model) && model.length) {\n value = model[0].value;\n }\n this.value = value;\n this.notifyChange();\n }\n this.requestUpdate();\n await this.updateComplete;\n // this.notifyResize();\n if (id === 'file') {\n this.restoreFileModel();\n this.notifyChange();\n } else if (id === 'urlEncode') {\n const editor = (this.shadowRoot as ShadowRoot).querySelector('http-body-urlencoded-editor');\n if (!editor) {\n throw new Error(`Invalid state. The <http-body-urlencoded-editor> element was removed from the DOM.`);\n }\n this.value = editor.value;\n this.notifyChange();\n } else if (id === 'multipart') {\n const editor = (this.shadowRoot as ShadowRoot).querySelector('http-body-multipart-editor');\n if (!editor) {\n throw new Error(`Invalid state. The <http-body-multipart-editor> element was removed from the DOM.`);\n }\n this.value = editor.value;\n this.notifyChange();\n }\n this.dispatchEvent(new Event('select'));\n }\n\n /**\n * A handler for the file pick button click.\n * Activates the file input.\n */\n protected handlePickFile(): void {\n const input = (this.shadowRoot as ShadowRoot).querySelector('.binary-hidden') as HTMLInputElement;\n input.click();\n }\n\n /**\n * A handler for the file file selection in the file input.\n * Sets the value to the file.\n */\n protected async handleFileChange(e: Event): Promise<void> {\n const input = e.target as HTMLInputElement;\n const { files } = input;\n if (!files) {\n return;\n }\n const file = files[0];\n if (!file) {\n return;\n }\n this.valueInternal = file;\n const payload = await PayloadSerializer.stringifyFile(file);\n const model = [ payload ];\n this.setMetaModel('file', model);\n this.notifyChange();\n this.requestUpdate();\n }\n\n /**\n * Clears the current value\n */\n protected handleClearFile(): void {\n this.value = '';\n this.setMetaModel('file', []);\n this.notifyChange();\n }\n\n /**\n * Reads editor view model\n * \n * @param editor The editor id\n * @returns The view model\n */\n protected readMetaModel(editor: string): (ISafePayload | IProperty | IMultipartBody | IRawBody | IUrlEncodedBodyMeta)[] | undefined {\n const meta = this.model;\n if (!meta || !Array.isArray(meta)) {\n return undefined;\n }\n const item = meta.find((model) => model.type === editor);\n if (!item) {\n return undefined;\n }\n if (Array.isArray(item.viewModel)) {\n return item.viewModel;\n }\n return undefined;\n }\n\n /**\n * Sets editor view model on the local model\n * @param editor The editor id\n * @param model The view model\n */\n protected setMetaModel(editor: AllowedEditor, model: (ISafePayload | IProperty | IMultipartBody | IRawBody | IUrlEncodedBodyMeta)[]): void {\n if (!Array.isArray(this.modelInternal)) {\n this.modelInternal = [];\n }\n const meta = this.model as IBodyMetaModel[];\n const index = meta.findIndex((item) => item.type === editor);\n if (index === -1) {\n meta.push({ type: editor, viewModel: model });\n } else {\n meta[index].viewModel = model;\n }\n }\n\n /**\n * A handler for the change event dispatched by the \n * `urlEncode` editor.\n * Updated the local value, model, and notifies the change.\n */\n protected handleUrlEncodeChange(e: Event): void {\n const editor = e.target as BodyUrlEncodedEditor;\n this.updateUrlEncodedValue(editor);\n }\n\n protected updateUrlEncodedValue(editor: BodyUrlEncodedEditor): void {\n const { value, model } = editor;\n this.valueInternal = value;\n const info: IUrlEncodedBodyMeta = {\n model,\n autoEncode: this.autoEncode,\n };\n this.setMetaModel('urlEncode', [info]);\n this.notifyChange();\n // do not request update here.\n }\n\n /**\n * A handler for the change event dispatched by the `raw` editor.\n * Updated the local value, model, and notifies the change.\n */\n protected handleRawChange(e: Event): void {\n const editor = e.target as BodyTextEditor;\n const { value } = editor;\n this.valueInternal = value;\n const model: IRawBody[] = [{ value: value as string }];\n this.setMetaModel('raw', model);\n this.notifyChange();\n }\n\n /**\n * A handler for the change event dispatched by the \n * `multipart` editor.\n * Updated the local value, model, and notifies the change.\n */\n protected handleMultipartChange(e: Event): void {\n const editor = e.target as BodyMultipartEditor;\n const { value, model } = editor;\n this.valueInternal = value;\n this.setMetaModel('multipart', model);\n this.notifyChange();\n }\n\n /**\n * Checks whether the current content type header value matches the selected editor.\n * If not it renders a warning message.\n */\n protected analyzeContentType(): void {\n const mime = this.contentType;\n if (!mime || typeof mime !== 'string') {\n this.invalidMimeValue = false;\n this.mimeValue = undefined;\n return;\n }\n let ct = mime;\n const semicolon = ct.indexOf(';');\n if (semicolon !== -1) {\n ct = ct.substring(0, semicolon);\n }\n this.mimeValue = ct;\n if (!ct) {\n this.invalidMimeValue = false;\n return;\n }\n const { selected } = this;\n if (selected === 'multipart') {\n if (ct !== 'multipart/form-data') {\n this.invalidMimeValue = true;\n this.invalidMimeMessage = 1;\n } else {\n this.invalidMimeValue = false;\n }\n } else if (selected === 'urlEncode') {\n if (ct !== 'application/x-www-form-urlencoded') {\n this.invalidMimeValue = true;\n this.invalidMimeMessage = 2;\n } else {\n this.invalidMimeValue = false;\n }\n } else {\n this.invalidMimeValue = false;\n }\n }\n\n /**\n * Automatically fixes content type problem.\n */\n protected autoFixMime(): void {\n const { selected } = this;\n let updated = '';\n if (selected === 'urlEncode') {\n updated = 'application/x-www-form-urlencoded';\n } else if (selected === 'multipart') {\n updated = 'multipart/form-data';\n }\n Events.Http.Request.State.contentTypeChange(updated, this);\n }\n\n /**\n * A handler for the mime type selection.\n */\n protected handleMimeTypeSelect(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined;\n if (!target) {\n return;\n }\n const { type = '' } = target.dataset;\n if (this.mimeValue === type) {\n return;\n }\n this.contentType = type;\n Events.Http.Request.State.contentTypeChange(type, this);\n }\n\n async handlerDrop(e: DragEvent): Promise<void> {\n e.preventDefault();\n const { dataTransfer } = e;\n if (!dataTransfer) {\n return;\n }\n const { files } = dataTransfer;\n if (!files.length) {\n return;\n }\n const file = files[0];\n const { selected } = this;\n if (selected === 'file') {\n this.value = file;\n } else if (selected === 'multipart') {\n const editor = (this.shadowRoot as ShadowRoot).querySelector('http-body-multipart-editor');\n if (!editor) {\n throw new Error(`Invalid state. The <http-body-multipart-editor> element was removed from the DOM.`);\n }\n if (!e.ctrlKey && !e.metaKey) {\n editor.value = new FormData();\n }\n const ps = Array.from(files).map((item) => editor.addFile(item));\n await Promise.all(ps);\n } else {\n const payload = await PayloadSerializer.stringifyBlob(file);\n this.value = payload.data;\n const { type } = file;\n if (type) {\n Events.Http.Request.State.contentTypeChange(type, this);\n }\n }\n this.notifyChange();\n }\n\n protected handleDragOver(e: DragEvent): void {\n e.preventDefault();\n }\n\n protected handleAddUrlEncode(): void {\n const editor = this.urlEncodedEditor;\n if (editor) {\n editor.addParameter();\n }\n }\n\n protected handleUrlEncode(): void {\n const editor = this.urlEncodedEditor;\n if (editor) {\n editor.encodeParameters();\n }\n }\n\n protected handleUrlDecode(): void {\n const editor = this.urlEncodedEditor;\n if (editor) {\n editor.decodeParameters();\n }\n }\n\n protected handleUrlEncodeAutoChange(e: Event): void {\n const input = e.target as CheckboxElement;\n this.autoEncode = input.checked;\n const editor = this.urlEncodedEditor;\n if (editor) {\n this.updateUrlEncodedValue(editor);\n }\n }\n\n protected handleMultipartAddText(): void {\n const editor = this.multipartEditor;\n if (editor) {\n editor.addEmptyText();\n }\n }\n\n protected handleMultipartAddFile(): void {\n const editor = this.multipartEditor;\n if (editor) {\n editor.addEmptyFile();\n }\n }\n\n override render(): TemplateResult {\n return html`\n <div class=\"actions\">\n ${this.renderBodySelector()}\n ${this.renderMainActions()}\n </div>\n ${this.renderInvalidMime()}\n <div class=\"container\">\n ${this.renderEditor()}\n </div>\n `;\n }\n\n /**\n * @returns The template for the dropdown menu for the editor type\n */\n protected renderBodySelector(): TemplateResult {\n const { selected } = this;\n const selectedItem = editorTypes.find(i => i.id === selected);\n const label = selectedItem && selectedItem.label || 'Select editor';\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleTypeChange}\"\n class=\"type-dropdown\"\n closeOnOutsideClick\n >\n <ui-button type=\"tonal\" title=\"Select editor type\" aria-label=\"Opens a menu to select editor type\">\n <ui-icon icon=\"arrowDropDown\" slot=\"icon\" role=\"presentation\"></ui-icon>\n ${label}\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${this.renderBodyTypeOptions()}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderBodyTypeOptions(): TemplateResult {\n return html`\n ${editorTypes.map((info) => html`\n <ui-list-item role=\"menuitem\" data-type=\"${info.id}\" title=\"${info.title}\">\n ${info.label}\n </ui-list-item>\n `)}\n `;\n }\n\n /**\n * @returns The template for the main editor actions.\n */\n protected renderMainActions(): TemplateResult | typeof nothing {\n const { selected } = this;\n if (selected === 'raw') {\n return this.renderTextEditorActions();\n }\n if (selected === 'urlEncode') {\n return this.renderUrlEncodeEditorActions();\n }\n if (selected === 'multipart') {\n return this.renderMultipartActions();\n }\n return nothing;\n }\n\n protected renderTextEditorActions(): TemplateResult {\n const label = monacoContentTypes[this.mimeValue || ''] || monacoContentTypes[''];\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleMimeTypeSelect}\"\n class=\"mime-dropdown\"\n closeOnOutsideClick\n >\n <ui-button \n type=\"tonal\" \n title=\"Select media type. This overrides the content-type header\"\n aria-label=\"Editor media type\"\n >\n <ui-icon icon=\"arrowDropDown\" slot=\"icon\"></ui-icon>\n ${label}\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${this.renderMonacoOptions()}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderMonacoOptions(): TemplateResult[] {\n return Object.keys(monacoContentTypes).map(key => html`\n ${key === '' ? html`<ui-divider></ui-divider>` : nothing}\n <ui-list-item role=\"menuitem\" data-type=\"${key}\">\n ${monacoContentTypes[key]}\n </ui-list-item>\n `);\n }\n\n protected renderUrlEncodeEditorActions(): TemplateResult {\n const { autoEncode } = this;\n return html`\n <ui-button \n type=\"tonal\" \n aria-label=\"Adds a new parameter\" \n title=\"Adds a new parameter\" \n @click=\"${this.handleAddUrlEncode}\"\n >\n <ui-icon slot=\"icon\" icon=\"add\" role=\"presentation\"></ui-icon>\n Add\n </ui-button>\n <ui-button \n type=\"outlined\" \n title=\"URL encodes parameters in the editor\" \n aria-label=\"URL encodes parameters in the editor\"\n @click=\"${this.handleUrlEncode}\"\n ?disabled=\"${autoEncode}\"\n >\n URL encode\n </ui-button>\n <ui-button \n type=\"outlined\" \n title=\"URL decodes parameters in the editor\"\n aria-label=\"URL decodes parameters in the editor\"\n @click=\"${this.handleUrlDecode}\"\n ?disabled=\"${autoEncode}\"\n >\n URL decode\n </ui-button>\n <label title=\"When set it automatically encodes the values before sending the request\">\n <ui-checkbox .checked=\"${autoEncode}\" @change=\"${this.handleUrlEncodeAutoChange}\"></ui-checkbox>\n Encode on send\n </label>\n `;\n }\n\n protected renderMultipartActions(): TemplateResult {\n return html`\n <ui-button\n type=\"outlined\"\n title=\"Adds a new part with a file value\"\n aria-label=\"Adds a new part with a file value\"\n @click=\"${this.handleMultipartAddFile}\"\n >\n Add file part\n </ui-button>\n <ui-button \n type=\"outlined\" \n title=\"Adds a new part with a text value\"\n aria-label=\"Adds a new part with a text value\"\n @click=\"${this.handleMultipartAddText}\"\n >\n Add text part\n </ui-button>\n `;\n }\n\n /**\n * @returns A template for currently rendered editor\n */\n protected renderEditor(): TemplateResult {\n switch (this.selected) {\n case 'raw': return this.renderRawEditor();\n case 'urlEncode': return this.renderUrlEncodeEditor();\n case 'multipart': return this.renderMultipartEditor();\n case 'file': return this.renderFileEditor();\n default: return this.renderNoEditor();\n }\n }\n\n /**\n * @returns The template for the raw editor\n */\n protected renderRawEditor(): TemplateResult {\n let { value } = this;\n const model = this.readMetaModel('raw') as IRawBody[];\n const hasModel = Array.isArray(model) && model.length;\n if (typeof value !== 'string') {\n value = '';\n }\n if (!value && hasModel) {\n const [item] = model;\n value = item.value;\n }\n return this.renderTextEditor(value as string);\n }\n\n /**\n * @param value The editor value\n * @returns The template for the Monaco editor\n */\n protected renderTextEditor(value: string): TemplateResult {\n const { contentType } = this;\n return html`\n <http-body-text-editor \n .value=\"${value}\" \n .contentType=\"${contentType}\"\n @change=\"${this.handleRawChange}\"\n allowFormInfo\n ></http-body-text-editor>`;\n }\n\n /**\n * @returns A template for the application/x-www-form-urlencoded editor\n */\n protected renderUrlEncodeEditor(): TemplateResult {\n const { autoEncode } = this;\n const info = this.readMetaModel('urlEncode') as IUrlEncodedBodyMeta[] | undefined;\n const model = Array.isArray(info) && info[0] && info[0].model;\n return html`\n <http-body-urlencoded-editor \n ?autoEncode=\"${autoEncode}\"\n .model=\"${ifProperty(model)}\"\n @change=\"${this.handleUrlEncodeChange}\"\n allowFormInfo\n ></http-body-urlencoded-editor>\n `;\n }\n\n /**\n * @returns A template for the multipart editor\n */\n protected renderMultipartEditor(): TemplateResult {\n const model = this.readMetaModel('multipart') as IMultipartBody[];\n return html`\n <http-body-multipart-editor \n .model=\"${ifProperty(model)}\"\n @change=\"${this.handleMultipartChange}\"\n allowFormInfo\n ></http-body-multipart-editor>\n `;\n }\n\n /**\n * @returns A template for the file input editor\n */\n protected renderFileEditor(): TemplateResult {\n return html`\n <div class=\"file-picker\">\n <ui-button type=\"text\" @click=\"${this.handlePickFile}\">Choose a file</ui-button>\n ${this.renderFileDetail()}\n </div>\n <input type=\"file\" class=\"binary-hidden\" @change=\"${this.handleFileChange}\"/>\n ${this.renderFormInfo()}\n `;\n }\n\n protected renderFormInfo(): TemplateResult {\n return html`\n <p class=\"form-info\">\n Note that the content-type header will be added when the request is sent.\n </p>\n `;\n }\n\n /**\n * @returns A template for the missing selection\n */\n protected renderNoEditor(): TemplateResult {\n return html`<div class=\"empty-editor\">Invalid editor selected.</div>`;\n }\n\n /**\n * @returns A template for the file details.\n */\n protected renderFileDetail(): TemplateResult | string {\n if (!this.hasFile) {\n this.restoreFileModel();\n }\n if (!this.hasFile) {\n return '';\n }\n const { value } = this;\n const { size, name } = value as File;\n return html`\n <div class=\"file-info\">\n <span class=\"file-name\">${name || 'unknown name'}</span>\n <span class=\"file-size\">${size} bytes</span>\n <ui-icon-button\n aria-label=\"Delete file\"\n title=\"Deletes the file\"\n @click=\"${this.handleClearFile}\"\n ?disabled=\"${this.readOnly}\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n </div>\n `;\n }\n\n protected renderInvalidMime(): TemplateResult | string {\n if (!this.invalidMimeValue) {\n return '';\n }\n const id = this.invalidMimeMessage;\n return html`\n <div class=\"invalid-mime\">\n <ui-icon icon=\"warning\" class=\"warning-icon\"></ui-icon>\n ${id === 1 ? this.renderFixableInvalidMime('multipart/form-data') : ''}\n ${id === 2 ? this.renderFixableInvalidMime('application/x-www-form-urlencoded') : ''}\n </div>\n `;\n }\n\n /**\n * @returns A template for fixable mime type mismatch message.\n */\n protected renderFixableInvalidMime(suggested: string): TemplateResult {\n return html`\n <p class=\"message\">\n The <code>content-type</code> header has different value than <b>${suggested}</b>.\n </p>\n <ui-button class=\"fix\" type=\"tonal\" title=\"Updates the content type header for the request\" @click=\"${this.autoFixMime}\">Fix</ui-button>\n `;\n }\n}\n"]}
@@ -1,18 +1,6 @@
1
- /**
2
- @license
3
- Copyright 2020 The Advanced REST client authors <arc@mulesoft.com>
4
- Licensed under the Apache License, Version 2.0 (the "License"); you may not
5
- use this file except in compliance with the License. You may obtain a copy of
6
- the License at
7
- http://www.apache.org/licenses/LICENSE-2.0
8
- Unless required by applicable law or agreed to in writing, software
9
- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
10
- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11
- License for the specific language governing permissions and limitations under
12
- the License.
13
- */
14
- import { LitElement, TemplateResult, nothing } from 'lit';
1
+ import { TemplateResult, nothing } from 'lit';
15
2
  import { IMultipartBody } from '@api-client/core/build/browser.js';
3
+ import ApiElement from '../ApiElement.js';
16
4
  import '../../define/ui/ui-icon.js';
17
5
  import '../../define/ui/ui-switch.js';
18
6
  import '../../define/ui/ui-icon-button.js';
@@ -26,7 +14,7 @@ export declare const hasFormDataSupport: boolean;
26
14
  * the `value` property change. Because of that you should never set the value on the editor but only manipulate the
27
15
  * `model` property.
28
16
  */
29
- export default class BodyMultipartEditor extends LitElement {
17
+ export default class BodyMultipartEditor extends ApiElement {
30
18
  /**
31
19
  * When set the editor is in read only mode.
32
20
  * @attribute
@@ -77,7 +65,6 @@ export default class BodyMultipartEditor extends LitElement {
77
65
  * Adds an instance of a file to the form data
78
66
  */
79
67
  addFile(file: File): Promise<void>;
80
- protected notifyChange(): void;
81
68
  /**
82
69
  * Removes all parameters.
83
70
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BodyMultipartEditor.d.ts","sourceRoot":"","sources":["../../../src/elements/http/BodyMultipartEditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BodyMultipartEditor.d.ts","sourceRoot":"","sources":["../../../src/elements/http/BodyMultipartEditor.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,10 @@
1
1
  import { __decorate } from "tslib";
2
2
  /* eslint-disable no-param-reassign */
3
- /* eslint-disable class-methods-use-this */
4
- /**
5
- @license
6
- Copyright 2020 The Advanced REST client authors <arc@mulesoft.com>
7
- Licensed under the Apache License, Version 2.0 (the "License"); you may not
8
- use this file except in compliance with the License. You may obtain a copy of
9
- the License at
10
- http://www.apache.org/licenses/LICENSE-2.0
11
- Unless required by applicable law or agreed to in writing, software
12
- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13
- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14
- License for the specific language governing permissions and limitations under
15
- the License.
16
- */
17
- import { LitElement, html, nothing } from 'lit';
3
+ import { html, nothing } from 'lit';
18
4
  import { property } from 'lit/decorators.js';
19
5
  import { PayloadSerializer, HttpDefinitions } from '@api-client/core/build/browser.js';
20
6
  import { live } from 'lit/directives/live.js';
7
+ import ApiElement from '../ApiElement.js';
21
8
  import '../../define/ui/ui-icon.js';
22
9
  import '../../define/ui/ui-switch.js';
23
10
  import '../../define/ui/ui-icon-button.js';
@@ -60,7 +47,7 @@ let mimeSuggestions = [];
60
47
  * the `value` property change. Because of that you should never set the value on the editor but only manipulate the
61
48
  * `model` property.
62
49
  */
63
- export default class BodyMultipartEditor extends LitElement {
50
+ export default class BodyMultipartEditor extends ApiElement {
64
51
  constructor() {
65
52
  super(...arguments);
66
53
  /**
@@ -218,9 +205,6 @@ export default class BodyMultipartEditor extends LitElement {
218
205
  this.notifyChange();
219
206
  this.requestUpdate();
220
207
  }
221
- notifyChange() {
222
- this.dispatchEvent(new Event('change'));
223
- }
224
208
  /**
225
209
  * Removes all parameters.
226
210
  */