@api-client/ui 0.0.4 → 0.0.7

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 (756) 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/amf/lib/AmfParameters.js +0 -4
  8. package/dist/amf/lib/AmfParameters.js.map +1 -1
  9. package/dist/amf/lib/navigation-layout/EndpointsTree.js +0 -2
  10. package/dist/amf/lib/navigation-layout/EndpointsTree.js.map +1 -1
  11. package/dist/amf/lib/navigation-layout/NaturalTree.js +0 -2
  12. package/dist/amf/lib/navigation-layout/NaturalTree.js.map +1 -1
  13. package/dist/amf/store/AmfGraphStore.js +0 -2
  14. package/dist/amf/store/AmfGraphStore.js.map +1 -1
  15. package/dist/amf/store/AmfStore.js +0 -7
  16. package/dist/amf/store/AmfStore.js.map +1 -1
  17. package/dist/bindings/base/HttpClientStoreBindings.js +4 -1
  18. package/dist/bindings/base/HttpClientStoreBindings.js.map +1 -1
  19. package/dist/bindings/base/PlatformBindings.js +6 -10
  20. package/dist/bindings/base/PlatformBindings.js.map +1 -1
  21. package/dist/bindings/base/ProxyBindings.js +9 -6
  22. package/dist/bindings/base/ProxyBindings.js.map +1 -1
  23. package/dist/bindings/base/SharedWorkerThread.js +4 -1
  24. package/dist/bindings/base/SharedWorkerThread.js.map +1 -1
  25. package/dist/bindings/base/StoreBindings.js +162 -170
  26. package/dist/bindings/base/StoreBindings.js.map +1 -1
  27. package/dist/bindings/web/WebConfigurationBindings.js +22 -24
  28. package/dist/bindings/web/WebConfigurationBindings.js.map +1 -1
  29. package/dist/bindings/web/WebFileBindings.js +7 -4
  30. package/dist/bindings/web/WebFileBindings.js.map +1 -1
  31. package/dist/bindings/web/WebHttpClientStoreBindings.js +19 -21
  32. package/dist/bindings/web/WebHttpClientStoreBindings.js.map +1 -1
  33. package/dist/bindings/web/WebNavigationBindings.js +4 -1
  34. package/dist/bindings/web/WebNavigationBindings.js.map +1 -1
  35. package/dist/bindings/web/WebProxyBindings.js +5 -6
  36. package/dist/bindings/web/WebProxyBindings.js.map +1 -1
  37. package/dist/bindings/web/WebStoreBindings.js +39 -44
  38. package/dist/bindings/web/WebStoreBindings.js.map +1 -1
  39. package/dist/contextual-menu/ContextualMenu.js +10 -19
  40. package/dist/contextual-menu/ContextualMenu.js.map +1 -1
  41. package/dist/contextual-menu/ContextualMenuElement.js +4 -32
  42. package/dist/contextual-menu/ContextualMenuElement.js.map +1 -1
  43. package/dist/contextual-menu/MenuItem.js +0 -12
  44. package/dist/contextual-menu/MenuItem.js.map +1 -1
  45. package/dist/define/amf/api-annotation-document.js +1 -1
  46. package/dist/define/amf/api-annotation-document.js.map +1 -1
  47. package/dist/define/amf/api-authorization-editor.js +1 -1
  48. package/dist/define/amf/api-authorization-editor.js.map +1 -1
  49. package/dist/define/amf/api-channel-document.js +1 -1
  50. package/dist/define/amf/api-channel-document.js.map +1 -1
  51. package/dist/define/amf/api-documentation-document.js +1 -1
  52. package/dist/define/amf/api-documentation-document.js.map +1 -1
  53. package/dist/define/amf/api-documentation.js +1 -1
  54. package/dist/define/amf/api-documentation.js.map +1 -1
  55. package/dist/define/amf/api-navigation.js +1 -1
  56. package/dist/define/amf/api-navigation.js.map +1 -1
  57. package/dist/define/amf/api-operation-document.js +1 -1
  58. package/dist/define/amf/api-operation-document.js.map +1 -1
  59. package/dist/define/amf/api-parameter-document.js +1 -1
  60. package/dist/define/amf/api-parameter-document.js.map +1 -1
  61. package/dist/define/amf/api-parametrized-security-scheme.js +1 -1
  62. package/dist/define/amf/api-parametrized-security-scheme.js.map +1 -1
  63. package/dist/define/amf/api-payload-document.js +1 -1
  64. package/dist/define/amf/api-payload-document.js.map +1 -1
  65. package/dist/define/amf/api-request-document.js +1 -1
  66. package/dist/define/amf/api-request-document.js.map +1 -1
  67. package/dist/define/amf/api-request-editor.js +1 -1
  68. package/dist/define/amf/api-request-editor.js.map +1 -1
  69. package/dist/define/amf/api-request.js +1 -1
  70. package/dist/define/amf/api-request.js.map +1 -1
  71. package/dist/define/amf/api-resource-document.js +1 -1
  72. package/dist/define/amf/api-resource-document.js.map +1 -1
  73. package/dist/define/amf/api-response-document.js +1 -1
  74. package/dist/define/amf/api-response-document.js.map +1 -1
  75. package/dist/define/amf/api-schema-document.js +1 -1
  76. package/dist/define/amf/api-schema-document.js.map +1 -1
  77. package/dist/define/amf/api-security-document.js +1 -1
  78. package/dist/define/amf/api-security-document.js.map +1 -1
  79. package/dist/define/amf/api-security-requirement-document.js +1 -1
  80. package/dist/define/amf/api-security-requirement-document.js.map +1 -1
  81. package/dist/define/amf/api-server-picker.js +1 -1
  82. package/dist/define/amf/api-server-picker.js.map +1 -1
  83. package/dist/define/amf/api-summary.js +1 -1
  84. package/dist/define/amf/api-summary.js.map +1 -1
  85. package/dist/define/amf/authorization/amf-apikey-authorization.js +1 -1
  86. package/dist/define/amf/authorization/amf-apikey-authorization.js.map +1 -1
  87. package/dist/define/amf/authorization/amf-basic-authorization.js +1 -1
  88. package/dist/define/amf/authorization/amf-basic-authorization.js.map +1 -1
  89. package/dist/define/amf/authorization/amf-bearer-authorization.js +1 -1
  90. package/dist/define/amf/authorization/amf-bearer-authorization.js.map +1 -1
  91. package/dist/define/amf/authorization/amf-oauth2-authorization.js +1 -1
  92. package/dist/define/amf/authorization/amf-oauth2-authorization.js.map +1 -1
  93. package/dist/define/amf/authorization/amf-oidc-authorization.js +1 -1
  94. package/dist/define/amf/authorization/amf-oidc-authorization.js.map +1 -1
  95. package/dist/define/amf/authorization/amf-passthrough-authorization.js +1 -1
  96. package/dist/define/amf/authorization/amf-passthrough-authorization.js.map +1 -1
  97. package/dist/define/amf/authorization/amf-ramlcustom-authorization.js +1 -1
  98. package/dist/define/amf/authorization/amf-ramlcustom-authorization.js.map +1 -1
  99. package/dist/define/authorization/apikey-authorization.js +1 -1
  100. package/dist/define/authorization/apikey-authorization.js.map +1 -1
  101. package/dist/define/authorization/basic-authorization.js +1 -1
  102. package/dist/define/authorization/basic-authorization.js.map +1 -1
  103. package/dist/define/authorization/bearer-authorization.js +1 -1
  104. package/dist/define/authorization/bearer-authorization.js.map +1 -1
  105. package/dist/define/authorization/cc-authorization.js +1 -1
  106. package/dist/define/authorization/cc-authorization.js.map +1 -1
  107. package/dist/define/authorization/ntlm-authorization.js +1 -1
  108. package/dist/define/authorization/ntlm-authorization.js.map +1 -1
  109. package/dist/define/authorization/oauth2-authorization.js +1 -1
  110. package/dist/define/authorization/oauth2-authorization.js.map +1 -1
  111. package/dist/define/authorization/oidc-authorization.js +1 -1
  112. package/dist/define/authorization/oidc-authorization.js.map +1 -1
  113. package/dist/define/contextual-menu/contextual-menu.js +1 -1
  114. package/dist/define/contextual-menu/contextual-menu.js.map +1 -1
  115. package/dist/define/dialog/confirm-delete-dialog.js +1 -1
  116. package/dist/define/dialog/confirm-delete-dialog.js.map +1 -1
  117. package/dist/define/dialog/delete-cookie-action-dialog.d.ts +10 -0
  118. package/dist/define/dialog/delete-cookie-action-dialog.d.ts.map +1 -0
  119. package/dist/define/dialog/delete-cookie-action-dialog.js +14 -0
  120. package/dist/define/dialog/delete-cookie-action-dialog.js.map +1 -0
  121. package/dist/define/dialog/rename-dialog.js +1 -1
  122. package/dist/define/dialog/rename-dialog.js.map +1 -1
  123. package/dist/define/dialog/set-cookie-action-dialog.d.ts +10 -0
  124. package/dist/define/dialog/set-cookie-action-dialog.d.ts.map +1 -0
  125. package/dist/define/dialog/set-cookie-action-dialog.js +14 -0
  126. package/dist/define/dialog/set-cookie-action-dialog.js.map +1 -0
  127. package/dist/define/files/share-file.js +1 -1
  128. package/dist/define/files/share-file.js.map +1 -1
  129. package/dist/define/har/har-viewer.js +1 -1
  130. package/dist/define/har/har-viewer.js.map +1 -1
  131. package/dist/define/highlight/marked-highlight.js +1 -1
  132. package/dist/define/highlight/marked-highlight.js.map +1 -1
  133. package/dist/define/highlight/prism-highlight.js +1 -1
  134. package/dist/define/highlight/prism-highlight.js.map +1 -1
  135. package/dist/define/http/http-assertions.d.ts +1 -1
  136. package/dist/define/http/http-assertions.d.ts.map +1 -1
  137. package/dist/define/http/http-assertions.js +3 -3
  138. package/dist/define/http/http-assertions.js.map +1 -1
  139. package/dist/define/http/http-body-editor.js +1 -1
  140. package/dist/define/http/http-body-editor.js.map +1 -1
  141. package/dist/define/http/http-body-multipart-editor.js +1 -1
  142. package/dist/define/http/http-body-multipart-editor.js.map +1 -1
  143. package/dist/define/http/http-body-text-editor.js +1 -1
  144. package/dist/define/http/http-body-text-editor.js.map +1 -1
  145. package/dist/define/http/http-body-urlencoded-editor.js +1 -1
  146. package/dist/define/http/http-body-urlencoded-editor.js.map +1 -1
  147. package/dist/define/http/http-flows.d.ts +10 -0
  148. package/dist/define/http/http-flows.d.ts.map +1 -0
  149. package/dist/define/http/http-flows.js +13 -0
  150. package/dist/define/http/http-flows.js.map +1 -0
  151. package/dist/define/http/http-headers-form.js +1 -1
  152. package/dist/define/http/http-headers-form.js.map +1 -1
  153. package/dist/define/http/http-log-body.js +1 -1
  154. package/dist/define/http/http-log-body.js.map +1 -1
  155. package/dist/define/http/http-log-headers.js +1 -1
  156. package/dist/define/http/http-log-headers.js.map +1 -1
  157. package/dist/define/http/http-log-timings.js +1 -1
  158. package/dist/define/http/http-log-timings.js.map +1 -1
  159. package/dist/define/http/http-request-config.js +1 -1
  160. package/dist/define/http/http-request-config.js.map +1 -1
  161. package/dist/define/http/http-request-editor.js +1 -1
  162. package/dist/define/http/http-request-editor.js.map +1 -1
  163. package/dist/define/http/http-request-log.js +1 -1
  164. package/dist/define/http/http-request-log.js.map +1 -1
  165. package/dist/define/http/http-snippets.js +1 -1
  166. package/dist/define/http/http-snippets.js.map +1 -1
  167. package/dist/define/http/http-url-input.js +1 -1
  168. package/dist/define/http/http-url-input.js.map +1 -1
  169. package/dist/define/http/http-url-params-form.js +1 -1
  170. package/dist/define/http/http-url-params-form.js.map +1 -1
  171. package/dist/define/http-project/http-project-request-history.js +1 -1
  172. package/dist/define/http-project/http-project-request-history.js.map +1 -1
  173. package/dist/define/http-project/http-project-request.js +2 -2
  174. package/dist/define/http-project/http-project-request.js.map +1 -1
  175. package/dist/define/http-project/project-navigation.js +1 -1
  176. package/dist/define/http-project/project-navigation.js.map +1 -1
  177. package/dist/define/http-project/project-run-report.js +1 -1
  178. package/dist/define/http-project/project-run-report.js.map +1 -1
  179. package/dist/define/http-project/project-runner.js +2 -2
  180. package/dist/define/http-project/project-runner.js.map +1 -1
  181. package/dist/define/layout/split-view.js +1 -1
  182. package/dist/define/layout/split-view.js.map +1 -1
  183. package/dist/define/schema-design/schema-design-navigation.js +1 -1
  184. package/dist/define/schema-design/schema-design-navigation.js.map +1 -1
  185. package/dist/define/schema-design/schema-namespace-selector.js +1 -1
  186. package/dist/define/schema-design/schema-namespace-selector.js.map +1 -1
  187. package/dist/define/ui/ui-button.js +1 -1
  188. package/dist/define/ui/ui-button.js.map +1 -1
  189. package/dist/define/ui/ui-chip.js +1 -1
  190. package/dist/define/ui/ui-chip.js.map +1 -1
  191. package/dist/define/ui/ui-collapse.js +1 -1
  192. package/dist/define/ui/ui-collapse.js.map +1 -1
  193. package/dist/define/ui/ui-dialog.js +1 -1
  194. package/dist/define/ui/ui-dialog.js.map +1 -1
  195. package/dist/define/ui/ui-divider.d.ts +4 -1
  196. package/dist/define/ui/ui-divider.d.ts.map +1 -1
  197. package/dist/define/ui/ui-divider.js +11 -2
  198. package/dist/define/ui/ui-divider.js.map +1 -1
  199. package/dist/define/ui/ui-dropdown-list.js +1 -1
  200. package/dist/define/ui/ui-dropdown-list.js.map +1 -1
  201. package/dist/define/ui/ui-icon-button.js +1 -1
  202. package/dist/define/ui/ui-icon-button.js.map +1 -1
  203. package/dist/define/ui/ui-icon.js +1 -1
  204. package/dist/define/ui/ui-icon.js.map +1 -1
  205. package/dist/define/ui/ui-list-item.js +1 -1
  206. package/dist/define/ui/ui-list-item.js.map +1 -1
  207. package/dist/define/ui/ui-list.js +1 -1
  208. package/dist/define/ui/ui-list.js.map +1 -1
  209. package/dist/define/ui/ui-listbox.js +1 -1
  210. package/dist/define/ui/ui-listbox.js.map +1 -1
  211. package/dist/define/ui/ui-progress.js +1 -1
  212. package/dist/define/ui/ui-progress.js.map +1 -1
  213. package/dist/define/ui/ui-segmented-button-set.js +1 -1
  214. package/dist/define/ui/ui-segmented-button-set.js.map +1 -1
  215. package/dist/define/ui/ui-segmented-button.js +1 -1
  216. package/dist/define/ui/ui-segmented-button.js.map +1 -1
  217. package/dist/define/ui/ui-snackbar.js +1 -1
  218. package/dist/define/ui/ui-snackbar.js.map +1 -1
  219. package/dist/define/ui/ui-tab.js +1 -1
  220. package/dist/define/ui/ui-tab.js.map +1 -1
  221. package/dist/define/ui/ui-tabs.js +1 -1
  222. package/dist/define/ui/ui-tabs.js.map +1 -1
  223. package/dist/directives/data-attr.js +0 -1
  224. package/dist/directives/data-attr.js.map +1 -1
  225. package/dist/elements/ApiElement.d.ts +4 -0
  226. package/dist/elements/ApiElement.d.ts.map +1 -1
  227. package/dist/elements/ApiElement.js +6 -7
  228. package/dist/elements/ApiElement.js.map +1 -1
  229. package/dist/elements/amf/ApiAnnotationDocument.element.js +0 -2
  230. package/dist/elements/amf/ApiAnnotationDocument.element.js.map +1 -1
  231. package/dist/elements/amf/ApiAuthorizationEditor.element.js +1 -33
  232. package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
  233. package/dist/elements/amf/ApiDocumentation.element.js +0 -91
  234. package/dist/elements/amf/ApiDocumentation.element.js.map +1 -1
  235. package/dist/elements/amf/ApiDocumentationBase.js +0 -9
  236. package/dist/elements/amf/ApiDocumentationBase.js.map +1 -1
  237. package/dist/elements/amf/ApiDocumentationDocument.element.js +0 -1
  238. package/dist/elements/amf/ApiDocumentationDocument.element.js.map +1 -1
  239. package/dist/elements/amf/ApiNavigation.element.js +0 -97
  240. package/dist/elements/amf/ApiNavigation.element.js.map +1 -1
  241. package/dist/elements/amf/ApiOperationDocument.element.d.ts.map +1 -1
  242. package/dist/elements/amf/ApiOperationDocument.element.js +2 -77
  243. package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
  244. package/dist/elements/amf/ApiParameterDocument.element.js +0 -3
  245. package/dist/elements/amf/ApiParameterDocument.element.js.map +1 -1
  246. package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js +0 -1
  247. package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js.map +1 -1
  248. package/dist/elements/amf/ApiPayloadDocument.element.js +0 -1
  249. package/dist/elements/amf/ApiPayloadDocument.element.js.map +1 -1
  250. package/dist/elements/amf/ApiRequest.element.js +1 -79
  251. package/dist/elements/amf/ApiRequest.element.js.map +1 -1
  252. package/dist/elements/amf/ApiRequestDocument.element.js +0 -38
  253. package/dist/elements/amf/ApiRequestDocument.element.js.map +1 -1
  254. package/dist/elements/amf/ApiRequestEditor.element.d.ts +0 -1
  255. package/dist/elements/amf/ApiRequestEditor.element.d.ts.map +1 -1
  256. package/dist/elements/amf/ApiRequestEditor.element.js +0 -121
  257. package/dist/elements/amf/ApiRequestEditor.element.js.map +1 -1
  258. package/dist/elements/amf/ApiResourceDocument.element.js +0 -75
  259. package/dist/elements/amf/ApiResourceDocument.element.js.map +1 -1
  260. package/dist/elements/amf/ApiResponseDocument.element.js +0 -17
  261. package/dist/elements/amf/ApiResponseDocument.element.js.map +1 -1
  262. package/dist/elements/amf/ApiSchemaDocument.element.js +0 -28
  263. package/dist/elements/amf/ApiSchemaDocument.element.js.map +1 -1
  264. package/dist/elements/amf/ApiSecurityDocument.element.js +0 -28
  265. package/dist/elements/amf/ApiSecurityDocument.element.js.map +1 -1
  266. package/dist/elements/amf/ApiSecurityRequirementDocument.element.js +0 -1
  267. package/dist/elements/amf/ApiSecurityRequirementDocument.element.js.map +1 -1
  268. package/dist/elements/amf/ApiServerPicker.element.js +2 -65
  269. package/dist/elements/amf/ApiServerPicker.element.js.map +1 -1
  270. package/dist/elements/amf/ApiSummary.element.js +0 -26
  271. package/dist/elements/amf/ApiSummary.element.js.map +1 -1
  272. package/dist/elements/amf/authorization/AmfApiKey.js +0 -5
  273. package/dist/elements/amf/authorization/AmfApiKey.js.map +1 -1
  274. package/dist/elements/amf/authorization/AmfBasic.js +0 -4
  275. package/dist/elements/amf/authorization/AmfBasic.js.map +1 -1
  276. package/dist/elements/amf/authorization/AmfBearer.js +0 -4
  277. package/dist/elements/amf/authorization/AmfBearer.js.map +1 -1
  278. package/dist/elements/amf/authorization/AmfOauth2.js +0 -13
  279. package/dist/elements/amf/authorization/AmfOauth2.js.map +1 -1
  280. package/dist/elements/amf/authorization/AmfOidc.js +0 -4
  281. package/dist/elements/amf/authorization/AmfOidc.js.map +1 -1
  282. package/dist/elements/amf/authorization/AmfPassThrough.js +0 -6
  283. package/dist/elements/amf/authorization/AmfPassThrough.js.map +1 -1
  284. package/dist/elements/amf/authorization/AmfRamlCustom.js +0 -6
  285. package/dist/elements/amf/authorization/AmfRamlCustom.js.map +1 -1
  286. package/dist/elements/authorization/OAuth2Authorize.js +0 -14
  287. package/dist/elements/authorization/OAuth2Authorize.js.map +1 -1
  288. package/dist/elements/authorization/OidcAuthorize.js +0 -14
  289. package/dist/elements/authorization/OidcAuthorize.js.map +1 -1
  290. package/dist/elements/authorization/ui/ApiKeyAuthorization.js +0 -2
  291. package/dist/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
  292. package/dist/elements/authorization/ui/Authorization.d.ts +2 -1
  293. package/dist/elements/authorization/ui/Authorization.d.ts.map +1 -1
  294. package/dist/elements/authorization/ui/Authorization.js +18 -35
  295. package/dist/elements/authorization/ui/Authorization.js.map +1 -1
  296. package/dist/elements/authorization/ui/CcAuthorization.js +1 -3
  297. package/dist/elements/authorization/ui/CcAuthorization.js.map +1 -1
  298. package/dist/elements/authorization/ui/OAuth2Authorization.js +21 -50
  299. package/dist/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
  300. package/dist/elements/authorization/ui/OidcAuthorization.js +4 -6
  301. package/dist/elements/authorization/ui/OidcAuthorization.js.map +1 -1
  302. package/dist/elements/code/HttpSnippets.js +9 -8
  303. package/dist/elements/code/HttpSnippets.js.map +1 -1
  304. package/dist/elements/dialog/ConfirmDelete.js +0 -12
  305. package/dist/elements/dialog/ConfirmDelete.js.map +1 -1
  306. package/dist/elements/dialog/DeleteCookieAction.element.d.ts +20 -0
  307. package/dist/elements/dialog/DeleteCookieAction.element.d.ts.map +1 -0
  308. package/dist/elements/dialog/DeleteCookieAction.element.js +93 -0
  309. package/dist/elements/dialog/DeleteCookieAction.element.js.map +1 -0
  310. package/dist/elements/dialog/DeleteCookieAction.styles.d.ts +3 -0
  311. package/dist/elements/dialog/DeleteCookieAction.styles.d.ts.map +1 -0
  312. package/dist/elements/dialog/DeleteCookieAction.styles.js +13 -0
  313. package/dist/elements/dialog/DeleteCookieAction.styles.js.map +1 -0
  314. package/dist/elements/dialog/Rename.d.ts +7 -6
  315. package/dist/elements/dialog/Rename.d.ts.map +1 -1
  316. package/dist/elements/dialog/Rename.js +7 -12
  317. package/dist/elements/dialog/Rename.js.map +1 -1
  318. package/dist/elements/dialog/SetCookieAction.element.d.ts +22 -0
  319. package/dist/elements/dialog/SetCookieAction.element.d.ts.map +1 -0
  320. package/dist/elements/dialog/SetCookieAction.element.js +173 -0
  321. package/dist/elements/dialog/SetCookieAction.element.js.map +1 -0
  322. package/dist/elements/environment/EnvironmentEditor.d.ts +24 -3
  323. package/dist/elements/environment/EnvironmentEditor.d.ts.map +1 -1
  324. package/dist/elements/environment/EnvironmentEditor.js +73 -30
  325. package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
  326. package/dist/elements/environment/EnvironmentEditor.styles.d.ts.map +1 -1
  327. package/dist/elements/environment/EnvironmentEditor.styles.js +5 -0
  328. package/dist/elements/environment/EnvironmentEditor.styles.js.map +1 -1
  329. package/dist/elements/environment/ServerEditor.d.ts +3 -3
  330. package/dist/elements/environment/ServerEditor.d.ts.map +1 -1
  331. package/dist/elements/environment/ServerEditor.js +10 -51
  332. package/dist/elements/environment/ServerEditor.js.map +1 -1
  333. package/dist/elements/environment/VariablesEditor.d.ts +0 -1
  334. package/dist/elements/environment/VariablesEditor.d.ts.map +1 -1
  335. package/dist/elements/environment/VariablesEditor.js +10 -18
  336. package/dist/elements/environment/VariablesEditor.js.map +1 -1
  337. package/dist/elements/files/ShareFile.js +19 -57
  338. package/dist/elements/files/ShareFile.js.map +1 -1
  339. package/dist/elements/har/HarViewer.js +6 -7
  340. package/dist/elements/har/HarViewer.js.map +1 -1
  341. package/dist/elements/highlight/MarkedHighlight.js +4 -56
  342. package/dist/elements/highlight/MarkedHighlight.js.map +1 -1
  343. package/dist/elements/highlight/Prism.styles.d.ts.map +1 -1
  344. package/dist/elements/highlight/Prism.styles.js +12 -5
  345. package/dist/elements/highlight/Prism.styles.js.map +1 -1
  346. package/dist/elements/highlight/PrismHighlight.js +9 -18
  347. package/dist/elements/highlight/PrismHighlight.js.map +1 -1
  348. package/dist/elements/highlight/PrismHighlighter.js +4 -6
  349. package/dist/elements/highlight/PrismHighlighter.js.map +1 -1
  350. package/dist/elements/http/BodyEditor.d.ts +0 -4
  351. package/dist/elements/http/BodyEditor.d.ts.map +1 -1
  352. package/dist/elements/http/BodyEditor.js +31 -49
  353. package/dist/elements/http/BodyEditor.js.map +1 -1
  354. package/dist/elements/http/BodyMultipartEditor.d.ts +3 -16
  355. package/dist/elements/http/BodyMultipartEditor.d.ts.map +1 -1
  356. package/dist/elements/http/BodyMultipartEditor.js +20 -37
  357. package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
  358. package/dist/elements/http/BodyTextEditor.d.ts +0 -1
  359. package/dist/elements/http/BodyTextEditor.d.ts.map +1 -1
  360. package/dist/elements/http/BodyTextEditor.js +2 -18
  361. package/dist/elements/http/BodyTextEditor.js.map +1 -1
  362. package/dist/elements/http/BodyUrlEncodedEditor.d.ts +3 -3
  363. package/dist/elements/http/BodyUrlEncodedEditor.d.ts.map +1 -1
  364. package/dist/elements/http/BodyUrlEncodedEditor.js +23 -26
  365. package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
  366. package/dist/elements/http/HeadersForm.d.ts +0 -4
  367. package/dist/elements/http/HeadersForm.d.ts.map +1 -1
  368. package/dist/elements/http/HeadersForm.js +16 -23
  369. package/dist/elements/http/HeadersForm.js.map +1 -1
  370. package/dist/elements/http/HttpAssertions.element.d.ts +55 -0
  371. package/dist/elements/http/HttpAssertions.element.d.ts.map +1 -0
  372. package/dist/elements/http/HttpAssertions.element.js +264 -0
  373. package/dist/elements/http/HttpAssertions.element.js.map +1 -0
  374. package/dist/elements/http/HttpAssertions.styles.d.ts.map +1 -1
  375. package/dist/elements/http/HttpAssertions.styles.js +7 -156
  376. package/dist/elements/http/HttpAssertions.styles.js.map +1 -1
  377. package/dist/elements/http/HttpFlows.common.d.ts +3 -0
  378. package/dist/elements/http/HttpFlows.common.d.ts.map +1 -0
  379. package/dist/elements/http/HttpFlows.common.js +181 -0
  380. package/dist/elements/http/HttpFlows.common.js.map +1 -0
  381. package/dist/elements/http/HttpFlows.element.d.ts +97 -0
  382. package/dist/elements/http/HttpFlows.element.d.ts.map +1 -0
  383. package/dist/elements/http/HttpFlows.element.js +684 -0
  384. package/dist/elements/http/HttpFlows.element.js.map +1 -0
  385. package/dist/elements/http/HttpFlows.styles.d.ts +3 -0
  386. package/dist/elements/http/HttpFlows.styles.d.ts.map +1 -0
  387. package/dist/elements/http/HttpFlows.styles.js +28 -0
  388. package/dist/elements/http/HttpFlows.styles.js.map +1 -0
  389. package/dist/elements/http/HttpFlowsUi.d.ts +172 -0
  390. package/dist/elements/http/HttpFlowsUi.d.ts.map +1 -0
  391. package/dist/elements/http/HttpFlowsUi.js +1256 -0
  392. package/dist/elements/http/HttpFlowsUi.js.map +1 -0
  393. package/dist/elements/http/LogBody.js +10 -21
  394. package/dist/elements/http/LogBody.js.map +1 -1
  395. package/dist/elements/http/LogHeaders.js +4 -23
  396. package/dist/elements/http/LogHeaders.js.map +1 -1
  397. package/dist/elements/http/LogTimings.js +11 -13
  398. package/dist/elements/http/LogTimings.js.map +1 -1
  399. package/dist/elements/http/RequestConfigElement.d.ts +0 -1
  400. package/dist/elements/http/RequestConfigElement.d.ts.map +1 -1
  401. package/dist/elements/http/RequestConfigElement.js +15 -15
  402. package/dist/elements/http/RequestConfigElement.js.map +1 -1
  403. package/dist/elements/http/RequestEditor.d.ts +10 -10
  404. package/dist/elements/http/RequestEditor.d.ts.map +1 -1
  405. package/dist/elements/http/RequestEditor.js +116 -111
  406. package/dist/elements/http/RequestEditor.js.map +1 -1
  407. package/dist/elements/http/RequestLog.js +9 -14
  408. package/dist/elements/http/RequestLog.js.map +1 -1
  409. package/dist/elements/http/UrlInput.d.ts +3 -3
  410. package/dist/elements/http/UrlInput.d.ts.map +1 -1
  411. package/dist/elements/http/UrlInput.js +17 -27
  412. package/dist/elements/http/UrlInput.js.map +1 -1
  413. package/dist/elements/http/UrlParamsForm.d.ts +0 -1
  414. package/dist/elements/http/UrlParamsForm.d.ts.map +1 -1
  415. package/dist/elements/http/UrlParamsForm.js +16 -16
  416. package/dist/elements/http/UrlParamsForm.js.map +1 -1
  417. package/dist/elements/layout/LayoutManager.js +16 -24
  418. package/dist/elements/layout/LayoutManager.js.map +1 -1
  419. package/dist/elements/layout/LayoutPanelElement.js +17 -23
  420. package/dist/elements/layout/LayoutPanelElement.js.map +1 -1
  421. package/dist/elements/layout/SplitItem.js +4 -12
  422. package/dist/elements/layout/SplitItem.js.map +1 -1
  423. package/dist/elements/layout/SplitLayout.js +18 -24
  424. package/dist/elements/layout/SplitLayout.js.map +1 -1
  425. package/dist/elements/layout/SplitPanel.js +10 -16
  426. package/dist/elements/layout/SplitPanel.js.map +1 -1
  427. package/dist/elements/layout/SplitView.js +17 -26
  428. package/dist/elements/layout/SplitView.js.map +1 -1
  429. package/dist/elements/layout/SplitView.styles.d.ts.map +1 -1
  430. package/dist/elements/layout/SplitView.styles.js +1 -0
  431. package/dist/elements/layout/SplitView.styles.js.map +1 -1
  432. package/dist/elements/navigation/AppNavigationElement.js +8 -47
  433. package/dist/elements/navigation/AppNavigationElement.js.map +1 -1
  434. package/dist/elements/navigation/AppNavigationItem.styles.d.ts.map +1 -1
  435. package/dist/elements/navigation/AppNavigationItem.styles.js +2 -0
  436. package/dist/elements/navigation/AppNavigationItem.styles.js.map +1 -1
  437. package/dist/elements/navigation/AppNavigationItemElement.js +19 -24
  438. package/dist/elements/navigation/AppNavigationItemElement.js.map +1 -1
  439. package/dist/elements/project/HttpProjectRequest.d.ts +2 -1
  440. package/dist/elements/project/HttpProjectRequest.d.ts.map +1 -1
  441. package/dist/elements/project/HttpProjectRequest.js +14 -43
  442. package/dist/elements/project/HttpProjectRequest.js.map +1 -1
  443. package/dist/elements/project/HttpProjectRequestHistory.js +9 -35
  444. package/dist/elements/project/HttpProjectRequestHistory.js.map +1 -1
  445. package/dist/elements/project/ProjectNavigation.js +0 -4
  446. package/dist/elements/project/ProjectNavigation.js.map +1 -1
  447. package/dist/elements/project/ProjectRunReport.js +4 -15
  448. package/dist/elements/project/ProjectRunReport.js.map +1 -1
  449. package/dist/elements/project/ProjectRunner.d.ts +0 -1
  450. package/dist/elements/project/ProjectRunner.d.ts.map +1 -1
  451. package/dist/elements/project/ProjectRunner.js +3 -51
  452. package/dist/elements/project/ProjectRunner.js.map +1 -1
  453. package/dist/elements/schema-design/AssociationFormElement.d.ts +0 -1
  454. package/dist/elements/schema-design/AssociationFormElement.d.ts.map +1 -1
  455. package/dist/elements/schema-design/AssociationFormElement.js +2 -18
  456. package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
  457. package/dist/elements/schema-design/DataEntityEditorElement.d.ts +2 -2
  458. package/dist/elements/schema-design/DataEntityEditorElement.d.ts.map +1 -1
  459. package/dist/elements/schema-design/DataEntityEditorElement.js +5 -27
  460. package/dist/elements/schema-design/DataEntityEditorElement.js.map +1 -1
  461. package/dist/elements/schema-design/DataModelVisualizationElement.js +0 -16
  462. package/dist/elements/schema-design/DataModelVisualizationElement.js.map +1 -1
  463. package/dist/elements/schema-design/DataSchemaDocument.d.ts +0 -1
  464. package/dist/elements/schema-design/DataSchemaDocument.d.ts.map +1 -1
  465. package/dist/elements/schema-design/DataSchemaDocument.js +4 -43
  466. package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
  467. package/dist/elements/schema-design/EntityFormElement.d.ts +0 -1
  468. package/dist/elements/schema-design/EntityFormElement.d.ts.map +1 -1
  469. package/dist/elements/schema-design/EntityFormElement.js +4 -25
  470. package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
  471. package/dist/elements/schema-design/PropertyFormElement.d.ts +1 -2
  472. package/dist/elements/schema-design/PropertyFormElement.d.ts.map +1 -1
  473. package/dist/elements/schema-design/PropertyFormElement.js +8 -23
  474. package/dist/elements/schema-design/PropertyFormElement.js.map +1 -1
  475. package/dist/elements/schema-design/SchemaDesignNavigation.js +0 -9
  476. package/dist/elements/schema-design/SchemaDesignNavigation.js.map +1 -1
  477. package/dist/elements/schema-design/SchemaNamespaceSelector.js +0 -9
  478. package/dist/elements/schema-design/SchemaNamespaceSelector.js.map +1 -1
  479. package/dist/elements/user/UserAvatarElement.js +0 -9
  480. package/dist/elements/user/UserAvatarElement.js.map +1 -1
  481. package/dist/events/http-client/models/CertificatesEvents.js +2 -2
  482. package/dist/events/http-client/models/CertificatesEvents.js.map +1 -1
  483. package/dist/http-client/idb/Base.js +5 -10
  484. package/dist/http-client/idb/Base.js.map +1 -1
  485. package/dist/http-client/idb/LegacyMockedStore.js +0 -1
  486. package/dist/http-client/idb/LegacyMockedStore.js.map +1 -1
  487. package/dist/http-client/idb/MockedStore.js +3 -1
  488. package/dist/http-client/idb/MockedStore.js.map +1 -1
  489. package/dist/http-client/store/DataImportProcessor.js +0 -3
  490. package/dist/http-client/store/DataImportProcessor.js.map +1 -1
  491. package/dist/http-client/store/HttpClientIdbDatabase.js +8 -7
  492. package/dist/http-client/store/HttpClientIdbDatabase.js.map +1 -1
  493. package/dist/http-client/store/IdbThread.js +23 -20
  494. package/dist/http-client/store/IdbThread.js.map +1 -1
  495. package/dist/http-client/store/idb/IdbProjectUi.js +4 -1
  496. package/dist/http-client/store/idb/IdbProjectUi.js.map +1 -1
  497. package/dist/http-client/store/idb/IdbStore.js +0 -2
  498. package/dist/http-client/store/idb/IdbStore.js.map +1 -1
  499. package/dist/http-client/store/idb/IdbUrlHistory.js +4 -1
  500. package/dist/http-client/store/idb/IdbUrlHistory.js.map +1 -1
  501. package/dist/http-client/store/idb/IdbWsHistory.js +4 -1
  502. package/dist/http-client/store/idb/IdbWsHistory.js.map +1 -1
  503. package/dist/lib/chart/HttpHistoryChart.js +7 -8
  504. package/dist/lib/chart/HttpHistoryChart.js.map +1 -1
  505. package/dist/mixins/FileDropMixin.js +0 -1
  506. package/dist/mixins/FileDropMixin.js.map +1 -1
  507. package/dist/mixins/RenderableMixin.js +11 -15
  508. package/dist/mixins/RenderableMixin.js.map +1 -1
  509. package/dist/pages/ApplicationScreen.d.ts +1 -1
  510. package/dist/pages/ApplicationScreen.d.ts.map +1 -1
  511. package/dist/pages/ApplicationScreen.js +35 -56
  512. package/dist/pages/ApplicationScreen.js.map +1 -1
  513. package/dist/pages/api-client/ApiClient.screen.js +11 -20
  514. package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
  515. package/dist/pages/api-client/ApiClient.styles.d.ts.map +1 -1
  516. package/dist/pages/api-client/ApiClient.styles.js +22 -3
  517. package/dist/pages/api-client/ApiClient.styles.js.map +1 -1
  518. package/dist/pages/api-client/Authenticate.screen.d.ts +2 -0
  519. package/dist/pages/api-client/Authenticate.screen.d.ts.map +1 -1
  520. package/dist/pages/api-client/Authenticate.screen.js +23 -9
  521. package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
  522. package/dist/pages/api-client/StoreConfig.screen.d.ts.map +1 -1
  523. package/dist/pages/api-client/StoreConfig.screen.js +25 -39
  524. package/dist/pages/api-client/StoreConfig.screen.js.map +1 -1
  525. package/dist/pages/api-client/StoreConfig.styles.d.ts.map +1 -1
  526. package/dist/pages/api-client/StoreConfig.styles.js +5 -0
  527. package/dist/pages/api-client/StoreConfig.styles.js.map +1 -1
  528. package/dist/pages/api-client/Telemetry.screen.js +1 -2
  529. package/dist/pages/api-client/Telemetry.screen.js.map +1 -1
  530. package/dist/pages/api-client/pages/Files.page.d.ts +1 -0
  531. package/dist/pages/api-client/pages/Files.page.d.ts.map +1 -1
  532. package/dist/pages/api-client/pages/Files.page.js +8 -28
  533. package/dist/pages/api-client/pages/Files.page.js.map +1 -1
  534. package/dist/pages/api-client/pages/Settings.page.js +2 -4
  535. package/dist/pages/api-client/pages/Settings.page.js.map +1 -1
  536. package/dist/pages/api-client/pages/Trash.page.js +2 -13
  537. package/dist/pages/api-client/pages/Trash.page.js.map +1 -1
  538. package/dist/pages/demo/DemoPage.js +13 -13
  539. package/dist/pages/demo/DemoPage.js.map +1 -1
  540. package/dist/pages/http-project/HttpProject.screen.d.ts +0 -8
  541. package/dist/pages/http-project/HttpProject.screen.d.ts.map +1 -1
  542. package/dist/pages/http-project/HttpProject.screen.js +39 -50
  543. package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
  544. package/dist/pages/http-project/types.d.ts +8 -6
  545. package/dist/pages/http-project/types.d.ts.map +1 -1
  546. package/dist/pages/http-project/types.js.map +1 -1
  547. package/dist/pages/schema-design/SchemaDesigner.screen.js +14 -27
  548. package/dist/pages/schema-design/SchemaDesigner.screen.js.map +1 -1
  549. package/dist/store/HttpStore.js +0 -3
  550. package/dist/store/HttpStore.js.map +1 -1
  551. package/dist/store/UserCache.js +5 -5
  552. package/dist/store/UserCache.js.map +1 -1
  553. package/dist/styles/m3/surface.module.d.ts.map +1 -1
  554. package/dist/styles/m3/surface.module.js +11 -27
  555. package/dist/styles/m3/surface.module.js.map +1 -1
  556. package/dist/ui/UiElement.d.ts +4 -0
  557. package/dist/ui/UiElement.d.ts.map +1 -1
  558. package/dist/ui/UiElement.js +10 -5
  559. package/dist/ui/UiElement.js.map +1 -1
  560. package/dist/ui/button/SegmentedButton.js +9 -11
  561. package/dist/ui/button/SegmentedButton.js.map +1 -1
  562. package/dist/ui/button/SegmentedButton.styles.d.ts.map +1 -1
  563. package/dist/ui/button/SegmentedButton.styles.js +3 -1
  564. package/dist/ui/button/SegmentedButton.styles.js.map +1 -1
  565. package/dist/ui/button/SegmentedButtonsSet.js +6 -7
  566. package/dist/ui/button/SegmentedButtonsSet.js.map +1 -1
  567. package/dist/ui/button/UiButton.js +17 -39
  568. package/dist/ui/button/UiButton.js.map +1 -1
  569. package/dist/ui/button/UiIconButton.js +9 -35
  570. package/dist/ui/button/UiIconButton.js.map +1 -1
  571. package/dist/ui/chip/UiChip.js +9 -49
  572. package/dist/ui/chip/UiChip.js.map +1 -1
  573. package/dist/ui/collapse/UiCollapse.js +15 -20
  574. package/dist/ui/collapse/UiCollapse.js.map +1 -1
  575. package/dist/ui/controllers/ActionController.js +143 -144
  576. package/dist/ui/controllers/ActionController.js.map +1 -1
  577. package/dist/ui/controllers/RadioSelectionController.js +0 -1
  578. package/dist/ui/controllers/RadioSelectionController.js.map +1 -1
  579. package/dist/ui/date/DateTime.js +3 -3
  580. package/dist/ui/date/DateTime.js.map +1 -1
  581. package/dist/ui/dialog/UiDialog.d.ts +3 -0
  582. package/dist/ui/dialog/UiDialog.d.ts.map +1 -1
  583. package/dist/ui/dialog/UiDialog.js +17 -38
  584. package/dist/ui/dialog/UiDialog.js.map +1 -1
  585. package/dist/ui/effects/ripple.d.ts.map +1 -1
  586. package/dist/ui/effects/ripple.js +25 -19
  587. package/dist/ui/effects/ripple.js.map +1 -1
  588. package/dist/ui/effects/rippleDirective.js +6 -7
  589. package/dist/ui/effects/rippleDirective.js.map +1 -1
  590. package/dist/ui/icons/Icons.d.ts +3 -2
  591. package/dist/ui/icons/Icons.d.ts.map +1 -1
  592. package/dist/ui/icons/Icons.js +2 -1
  593. package/dist/ui/icons/Icons.js.map +1 -1
  594. package/dist/ui/icons/UiIcon.js +4 -3
  595. package/dist/ui/icons/UiIcon.js.map +1 -1
  596. package/dist/ui/input/CheckboxElement.js +12 -10
  597. package/dist/ui/input/CheckboxElement.js.map +1 -1
  598. package/dist/ui/input/CheckedElement.d.ts +1 -1
  599. package/dist/ui/input/CheckedElement.d.ts.map +1 -1
  600. package/dist/ui/input/CheckedElement.js +5 -16
  601. package/dist/ui/input/CheckedElement.js.map +1 -1
  602. package/dist/ui/input/Input.js +170 -235
  603. package/dist/ui/input/Input.js.map +1 -1
  604. package/dist/ui/input/RadioElement.js +13 -11
  605. package/dist/ui/input/RadioElement.js.map +1 -1
  606. package/dist/ui/input/SwitchElement.js +0 -18
  607. package/dist/ui/input/SwitchElement.js.map +1 -1
  608. package/dist/ui/input/TextAreaElement.js +0 -15
  609. package/dist/ui/input/TextAreaElement.js.map +1 -1
  610. package/dist/ui/list/{DividerElement.d.ts → UiDivider.element.d.ts} +6 -6
  611. package/dist/ui/list/UiDivider.element.d.ts.map +1 -0
  612. package/dist/ui/list/UiDivider.element.js +39 -0
  613. package/dist/ui/list/UiDivider.element.js.map +1 -0
  614. package/dist/ui/list/UiDivider.styles.d.ts +3 -0
  615. package/dist/ui/list/UiDivider.styles.d.ts.map +1 -0
  616. package/dist/ui/list/UiDivider.styles.js +49 -0
  617. package/dist/ui/list/UiDivider.styles.js.map +1 -0
  618. package/dist/ui/list/UiDropdownList.js +7 -48
  619. package/dist/ui/list/UiDropdownList.js.map +1 -1
  620. package/dist/ui/list/UiList.js +3 -15
  621. package/dist/ui/list/UiList.js.map +1 -1
  622. package/dist/ui/list/UiListItem.js +4 -17
  623. package/dist/ui/list/UiListItem.js.map +1 -1
  624. package/dist/ui/list/UiListbox.js +0 -1
  625. package/dist/ui/list/UiListbox.js.map +1 -1
  626. package/dist/ui/notification/SnackNotifications.js +1 -2
  627. package/dist/ui/notification/SnackNotifications.js.map +1 -1
  628. package/dist/ui/notification/Snackbar.js +27 -51
  629. package/dist/ui/notification/Snackbar.js.map +1 -1
  630. package/dist/ui/progress/Range.js +24 -23
  631. package/dist/ui/progress/Range.js.map +1 -1
  632. package/dist/ui/progress/UiProgress.js +0 -11
  633. package/dist/ui/progress/UiProgress.js.map +1 -1
  634. package/dist/ui/table/DataTable.js +7 -12
  635. package/dist/ui/table/DataTable.js.map +1 -1
  636. package/dist/ui/tabs/UiTab.js +24 -25
  637. package/dist/ui/tabs/UiTab.js.map +1 -1
  638. package/dist/ui/tabs/UiTabs.d.ts +13 -1
  639. package/dist/ui/tabs/UiTabs.d.ts.map +1 -1
  640. package/dist/ui/tabs/UiTabs.js +62 -47
  641. package/dist/ui/tabs/UiTabs.js.map +1 -1
  642. package/dist/visualization/elements/VizWorkspaceElement.js +12 -21
  643. package/dist/visualization/elements/VizWorkspaceElement.js.map +1 -1
  644. package/dist/visualization/lib/AssociationAnchors.js +16 -28
  645. package/dist/visualization/lib/AssociationAnchors.js.map +1 -1
  646. package/dist/visualization/lib/Point.js +0 -2
  647. package/dist/visualization/lib/Point.js.map +1 -1
  648. package/dist/visualization/lib/SelectionManager.js +10 -11
  649. package/dist/visualization/lib/SelectionManager.js.map +1 -1
  650. package/dist/visualization/lib/WorkspaceAlignment.js +0 -1
  651. package/dist/visualization/lib/WorkspaceAlignment.js.map +1 -1
  652. package/dist/visualization/lib/WorkspaceDebugging.js +5 -8
  653. package/dist/visualization/lib/WorkspaceDebugging.js.map +1 -1
  654. package/dist/visualization/lib/WorkspaceEdges.js +17 -19
  655. package/dist/visualization/lib/WorkspaceEdges.js.map +1 -1
  656. package/dist/visualization/lib/WorkspaceGestures.js +0 -3
  657. package/dist/visualization/lib/WorkspaceGestures.js.map +1 -1
  658. package/dist/visualization/lib/WorkspaceSizing.js +4 -6
  659. package/dist/visualization/lib/WorkspaceSizing.js.map +1 -1
  660. package/dist/visualization/lib/lines/RectilinearLine.js +8 -34
  661. package/dist/visualization/lib/lines/RectilinearLine.js.map +1 -1
  662. package/dist/visualization/lib/tips/RectilinearTip.js +0 -1
  663. package/dist/visualization/lib/tips/RectilinearTip.js.map +1 -1
  664. package/dist/visualization/lib/tips/TipArtist.js +0 -3
  665. package/dist/visualization/lib/tips/TipArtist.js.map +1 -1
  666. package/dist/visualization/plugin/dnd/DragAndDropPlugin.js +3 -5
  667. package/dist/visualization/plugin/dnd/DragAndDropPlugin.js.map +1 -1
  668. package/dist/visualization/plugin/group-selection/GroupSelection.js +19 -19
  669. package/dist/visualization/plugin/group-selection/GroupSelection.js.map +1 -1
  670. package/dist/visualization/plugin/positioning/WorkspaceLayout.js +21 -38
  671. package/dist/visualization/plugin/positioning/WorkspaceLayout.js.map +1 -1
  672. package/package.json +3 -2
  673. package/src/define/dialog/delete-cookie-action-dialog.ts +16 -0
  674. package/src/define/dialog/set-cookie-action-dialog.ts +16 -0
  675. package/src/define/http/http-assertions.ts +3 -3
  676. package/src/define/http/http-flows.ts +15 -0
  677. package/src/define/ui/ui-divider.ts +7 -2
  678. package/src/elements/ApiElement.ts +7 -0
  679. package/src/elements/amf/ApiAuthorizationEditor.element.ts +1 -1
  680. package/src/elements/amf/ApiOperationDocument.element.ts +2 -1
  681. package/src/elements/amf/ApiRequest.element.ts +1 -1
  682. package/src/elements/amf/ApiRequestEditor.element.ts +0 -4
  683. package/src/elements/authorization/ui/Authorization.ts +3 -5
  684. package/src/elements/dialog/DeleteCookieAction.element.ts +100 -0
  685. package/src/elements/dialog/DeleteCookieAction.styles.ts +14 -0
  686. package/src/elements/dialog/Rename.ts +8 -7
  687. package/src/elements/dialog/SetCookieAction.element.ts +183 -0
  688. package/src/elements/environment/EnvironmentEditor.styles.ts +5 -0
  689. package/src/elements/environment/EnvironmentEditor.ts +81 -22
  690. package/src/elements/environment/ServerEditor.ts +4 -8
  691. package/src/elements/environment/VariablesEditor.ts +3 -7
  692. package/src/elements/highlight/Prism.styles.ts +12 -5
  693. package/src/elements/http/BodyEditor.ts +10 -17
  694. package/src/elements/http/BodyMultipartEditor.ts +3 -20
  695. package/src/elements/http/BodyTextEditor.ts +0 -4
  696. package/src/elements/http/BodyUrlEncodedEditor.ts +5 -8
  697. package/src/elements/http/HeadersForm.ts +2 -9
  698. package/src/elements/http/HttpAssertions.element.ts +286 -0
  699. package/src/elements/http/HttpAssertions.styles.ts +7 -156
  700. package/src/elements/http/HttpFlows.common.ts +181 -0
  701. package/src/elements/http/HttpFlows.element.ts +722 -0
  702. package/src/elements/http/HttpFlows.styles.ts +29 -0
  703. package/src/elements/http/HttpFlowsUi.ts +1327 -0
  704. package/src/elements/http/RequestConfigElement.ts +10 -14
  705. package/src/elements/http/RequestEditor.ts +77 -35
  706. package/src/elements/http/UrlInput.ts +6 -6
  707. package/src/elements/http/UrlParamsForm.ts +2 -6
  708. package/src/elements/layout/SplitView.styles.ts +1 -0
  709. package/src/elements/navigation/AppNavigationItem.styles.ts +2 -0
  710. package/src/elements/project/HttpProjectRequest.ts +16 -5
  711. package/src/elements/project/ProjectRunner.ts +3 -7
  712. package/src/elements/schema-design/AssociationFormElement.ts +4 -8
  713. package/src/elements/schema-design/DataEntityEditorElement.ts +8 -8
  714. package/src/elements/schema-design/DataSchemaDocument.ts +5 -9
  715. package/src/elements/schema-design/EntityFormElement.ts +6 -10
  716. package/src/elements/schema-design/PropertyFormElement.ts +11 -15
  717. package/src/pages/ApplicationScreen.ts +1 -1
  718. package/src/pages/api-client/ApiClient.styles.ts +22 -3
  719. package/src/pages/api-client/Authenticate.screen.ts +19 -3
  720. package/src/pages/api-client/StoreConfig.screen.ts +4 -2
  721. package/src/pages/api-client/StoreConfig.styles.ts +5 -0
  722. package/src/pages/api-client/pages/Files.page.ts +2 -1
  723. package/src/pages/http-project/HttpProject.screen.ts +14 -26
  724. package/src/pages/http-project/types.ts +8 -6
  725. package/src/styles/m3/surface.module.ts +11 -27
  726. package/src/styles/m3/theme.css +36 -0
  727. package/src/styles/m3/tokens.css +11 -0
  728. package/src/ui/UiElement.ts +7 -0
  729. package/src/ui/button/SegmentedButton.styles.ts +3 -1
  730. package/src/ui/dialog/UiDialog.ts +3 -0
  731. package/src/ui/effects/ripple.ts +6 -1
  732. package/src/ui/icons/Icons.ts +3 -2
  733. package/src/ui/input/CheckedElement.ts +3 -3
  734. package/src/ui/input/Input.ts +1 -1
  735. package/src/ui/list/UiDivider.element.ts +41 -0
  736. package/src/ui/list/UiDivider.styles.ts +49 -0
  737. package/src/ui/tabs/UiTabs.ts +55 -13
  738. package/test/amf/authorization/OAuth2Method.test.ts +1 -1
  739. package/test/elements/http/HttpAssertions.test.ts +5 -6
  740. package/test/elements/http/HttpFlows.test.ts +485 -0
  741. package/tsconfig.json +2 -2
  742. package/dist/elements/http/HttpAssertions.d.ts +0 -114
  743. package/dist/elements/http/HttpAssertions.d.ts.map +0 -1
  744. package/dist/elements/http/HttpAssertions.js +0 -1144
  745. package/dist/elements/http/HttpAssertions.js.map +0 -1
  746. package/dist/elements/http/internals.d.ts +0 -150
  747. package/dist/elements/http/internals.d.ts.map +0 -1
  748. package/dist/elements/http/internals.js +0 -150
  749. package/dist/elements/http/internals.js.map +0 -1
  750. package/dist/ui/list/DividerElement.d.ts.map +0 -1
  751. package/dist/ui/list/DividerElement.js +0 -87
  752. package/dist/ui/list/DividerElement.js.map +0 -1
  753. package/src/elements/http/HttpAssertions.ts +0 -1187
  754. package/src/elements/http/internals.ts +0 -151
  755. package/src/http-client/docs/Files.md +0 -28
  756. package/src/ui/list/DividerElement.ts +0 -84
@@ -1 +1 @@
1
- {"version":3,"file":"AppNavigationElement.js","sourceRoot":"","sources":["../../../src/elements/navigation/AppNavigationElement.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport { html, nothing, PropertyValues, TemplateResult } from \"lit\";\nimport { property, query, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { EventUtils } from '@api-client/core/build/browser.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-icon-button.js';\nimport { IconType } from \"../../ui/icons/Icons.js\";\nimport ApiElement from \"../ApiElement.js\";\n\nexport interface ISelectDetail {\n /**\n * The key of the selected item\n */\n key: string;\n /**\n * THe kind of the selected item\n */\n kind: string;\n /**\n * Optionally, the parent odf the selected item, if any.\n */\n parent?: string;\n /**\n * When applicable, the top object in the structure.\n */\n root?: string;\n}\n\nexport interface IListItemRenderOptions {\n draggable?: boolean;\n parent?: string;\n disabled?: boolean;\n /**\n * Only relevant for parent list item.\n * When set it forces this icon to be rendered next to the toggle button.\n */\n parentIcon?: IconType;\n /**\n * When set is add the `data-root` attribute.\n * In principle, it represents a root object in the tree, if any.\n */\n root?: string;\n}\n\n/**\n * A base class for navigation elements helping creating specific implementation of the view.\n * The implementations sets their own properties with the data that are used to generate the view.\n * \n * The generated menu must have the following structure created by the implementations:\n * \n * ```html\n * <ul aria-label=\"...\" aria-multiselectable=\"false\">\n * <li role=\"treeitem\" data-key=\"...\" data-kind=\"...\" data-draggable=\"true|false\">\n * <div class=\"list-item-content\"><span class=\"label\" title=\"...\">...</span></div>\n * </li>\n * <li role=\"treeitem\" data-key=\"...\" data-kind=\"...\" data-draggable=\"true|false\" aria-expanded=\"true|false\" class=\"parent-item\">\n * <div class=\"list-item-content\">\n * <ui-icon icon=\"chevronRight\" class=\"group-toggle-icon\"></ui-icon>\n * <span class=\"label\" title=\"...\">...</span>\n * </div>\n * <ul role=\"group\" data-parent=\"...\" ?hidden aria-hidden=\"true|false\">\n * <li role=\"treeitem\" data-key=\"...\" data-parent=\"...\" data-kind=\"...\" data-draggable=\"true|false\">\n * <div class=\"list-item-content\">\n * <ui-icon icon=\"...\" class=\"item-icon\"></ui-icon>\n * <span class=\"label\" title=\"...\">...</span>\n * </div>\n * </li>\n * </ul>\n * </li>\n * </ul>\n * ```\n * \n * Additionally, the child element must include styles from './AppNavigation.styles.js`.\n * \n * Assumptions when running the menu:\n * \n * - all `li` items that do not have `aria-disabled` attribute are considered active tree items (learn more why not to use \"disabled\" attribute https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-disabled)\n * - all `li` elements have `data-key` and `data-kind` attributes set. Elements without these properties are ignored.\n * - all `ul` and `li` elements that have a parent also have `data-parent` with the value of the parent's key. When this is not set the element is considered a top level element.\n * - the implementations does not manage the `tabindex` of any item. Instead set the `_focusedItem` to the currently focused element and the base will manage the focus for you (after the update is complete).\n * \n * @fires select - Custom, non bubbling event when a selection is made. It has the `key` and `kind` properties on the detail panel with optional `parent` id.\n */\nexport default class AppNavigation extends ApiElement {\n /**\n * The list of keys of opened items with children. This should be clear each time \n * when the main data property change.\n */\n protected _opened: string[] = [];\n\n /**\n * The key of the currently focused item.\n */\n protected _focused?: string;\n\n /**\n * The currently focused node.\n * In case there are headers in the list, this may not be a list item.\n */\n @state() _focusedItem?: HTMLElement;\n\n /**\n * To be set in the child class constructor to configure whether a name change is possible.\n */\n protected _allowRename?: boolean;\n\n /**\n * The currently selected navigation item.\n * @attr\n */\n @property({ type: String }) selected?: string;\n\n /**\n * When set it renders a name change input for the item.\n * This is the `key` of the object.\n * \n * Note, when the user finish editing the name it calls the `_commitName(key, kind, name)` method.\n * This requires the `_allowRename` property to be set to `true` in the constructor.\n * @attr\n */\n @property({ type: String }) edited?: string;\n\n /**\n * When set it prohibits the element to make visual selection (via the css) when an item is selected.\n * This is helpful when one navigation can be visually references in multiple places (like split layout).\n * @attr\n */\n @property({ type: Boolean, reflect: true }) noVisualSelection?: boolean\n\n /**\n * A reference to the currently rendered name input, if any.\n */\n @query('.name-change input')\n protected _nameInput?: HTMLInputElement | null;\n\n /**\n * When set it adds a menu entry with the navigation label.\n * @attribute\n */\n @property({ type: String }) label?: string;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', 'navigation');\n this.setAttribute('tabindex', '0');\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n super.willUpdate(cp);\n if (cp.has('selected') && !cp.get('selected') && this.selected) {\n this.ensureTreeVisibility(this.selected);\n }\n }\n\n protected override updated(cp: PropertyValues<this>): void {\n super.updated(cp);\n if (cp.has('edited') && this.edited) {\n const node = this._nameInput;\n if (node) {\n node.focus();\n }\n this.ensureTreeVisibility(this.edited);\n }\n if (cp.has('_focusedItem') && this._focusedItem) {\n const old = cp.get('_focusedItem') as HTMLElement | undefined;\n this._manageFocus(this._focusedItem, old);\n }\n }\n\n protected _reset(): void {\n this._opened = [];\n this._focused = undefined;\n this._focusedItem = undefined;\n this.edited = undefined;\n }\n\n /**\n * This method is called when the `_focusedItem` property is updated.\n * It removes tabindex from the old element (if any) and sets tabindex and focuses on the new item (if any).\n * When there's no new item, it sets the `tabindex` on self.\n * \n * @param current The new focused element, if any\n * @param old The old focused element, if any.\n */\n protected _manageFocus(current?: HTMLElement, old?: HTMLElement): void {\n if (old) {\n // don't set `-1` here as the item can have children which event with tabindex '0' won't be focusable.\n old.removeAttribute('tabindex');\n }\n if (current) {\n if (current.getAttribute('tabindex') !== '0') {\n current.setAttribute('tabindex', '0');\n }\n current.focus();\n // current.scrollIntoView();\n // remove tabindex from self so when the user returns to this navigation it will focus directly on\n // this item.\n if (this.hasAttribute('tabindex')) {\n this.removeAttribute('tabindex');\n }\n } else if (!this.hasAttribute('tabindex')) {\n // restore tabindex on self.\n this.setAttribute('tabindex', '0');\n }\n }\n\n /**\n * Makes sure the node represented by the passed key is visible in the UI.\n * This opens all parents on the way up to the root and scrolls to the node, when needed.\n * @param key The key of the object to ensure visibility for.\n */\n ensureTreeVisibility(key: string): void {\n const node = this.shadowRoot?.querySelector(`li[data-key=\"${key}\"]`) as HTMLLIElement;\n if (!node) {\n return;\n }\n const { _opened } = this;\n let parent = this._findParentListItem(node);\n let changed = false;\n while (parent) {\n const id = parent.dataset.key as string;\n if (!_opened.includes(id)) {\n _opened.push(id);\n changed = true;\n }\n parent = this._findParentListItem(parent);\n }\n if (changed) {\n this.requestUpdate();\n }\n }\n\n /**\n * Toggles a group of tree items.\n * \n * @param key The key of the group parent.\n */\n toggleGroup(key: string): void {\n const { _opened: list } = this;\n const index = list.indexOf(key);\n if (index >= 0) {\n list.splice(index, 1);\n } else {\n list.push(key);\n }\n this.requestUpdate();\n }\n\n /**\n * Allows to programmatically open a folder.\n * It opens all parents if they are not opened.\n * @param key The key of the folder to open.\n */\n openGroup(key: string): void {\n const node = this.shadowRoot?.querySelector(`li[data-key=\"${key}\"]`) as HTMLLIElement;\n if (!node) {\n return;\n }\n const { _opened: list } = this;\n if (list.includes(key)) {\n return;\n }\n list.push(key);\n // opens all parents\n\n let parent = this._findParentListItem(node);\n while (parent) {\n const parentKey = parent.dataset.key as string;\n if (!list.includes(parentKey)) {\n list.push(parentKey);\n }\n parent = this._findParentListItem(parent);\n }\n this.requestUpdate();\n }\n\n /**\n * Allows to programmatically close a folder.\n * @param key The key of the folder to open.\n */\n closeGroup(key: string): void {\n const { _opened: list } = this;\n const index = list.indexOf(key);\n if (index >= 0) {\n list.splice(index, 1);\n this.requestUpdate();\n }\n }\n\n /**\n * A function to determine whether the passed Element is an active list item.\n * \n * @param node The Element to test\n * @returns true when the passed element is a `li` element and is not disabled.\n */\n protected _isValidListItem(node: Element): boolean {\n return node.localName === 'li' && node.getAttribute('aria-disabled') !== 'true' && node.hasAttribute('data-key') && node.hasAttribute('data-kind');\n }\n\n /**\n * Marks the item as currently focused. \n * \n * Note, focused item is not the same as selected item. Focus is reflected in the UI without changing the selection.\n * \n * Also note, this only sets the `_focused` and `_focusedItem` properties. After the element renders \n * the implementation should change the `tabindex` of the focused item to `0`.\n */\n protected _focusListItem(node: HTMLElement): void {\n this._focused = node.dataset.key;\n this._focusedItem = node;\n }\n\n /**\n * Finds a valid list item that is a parent to the current item.\n * \n * @param node The current node located somewhere in the tree.\n * @returns The nearest parent list item or undefined when not found.\n */\n protected _findParentListItem(node: HTMLElement): HTMLLIElement | undefined {\n let parent = node.parentElement as HTMLElement;\n while (parent) {\n if (this._isValidListItem(parent)) {\n return parent as HTMLLIElement;\n }\n // when the `parentElement` is ShadowRoot then it's parent is `null` so the loop breaks.\n parent = parent.parentElement as HTMLElement;\n }\n return undefined;\n }\n\n /**\n * From a `<li>` it finds the last `<li>` descendant in the tree.\n * \n * ```html\n * <ul>\n * <li> <-- this is the current node\n * <div>...</div>\n * <ul>\n * <li>...</li>\n * <li> <-- this is the last list item.\n * <div>...</div>\n * <ul hidden> <- this is ignored.\n * <li></li>\n * <li></li> <-- this is not the last list item because the parent list is hidden.\n * </ul>\n * </li>\n * </ul>\n * </li>\n * </ul>\n * ```\n * \n * @param node The current list item to find the last descendant for.\n * @returns The last list item or undefined.\n */\n protected _findLastDescendant(node: HTMLElement): HTMLElement | undefined {\n const list = Array.from(node.children).reverse().find(i => i.localName === 'ul' && !i.hasAttribute('hidden')) as HTMLElement | undefined;\n if (!list) {\n return undefined;\n }\n const li = Array.from(list.children).reverse().find(i => this._isValidListItem(i)) as HTMLElement | undefined;\n if (!li) {\n return undefined;\n }\n const result = this._findLastDescendant(li);\n // either it has more children or we can return the current list\n if (result) {\n return result;\n }\n return li;\n }\n\n /**\n * Focuses on a list descendant of a folder item.\n * It does nothing when the `node` is not a folder item or the folder has no selectable children.\n * \n * @param node The node to use as a reference. The current focused node by default.\n * @returns true when focused on any of the descendants\n */\n protected _focusFirstDescendant(node = this._focusedItem): boolean {\n if (!node) {\n return false;\n }\n const list = Array.from(node.children).find(n => n.localName === 'ul' && (!n.hasAttribute('aria-hidden') || n.getAttribute('aria-hidden') === 'false'));\n if (!list || !list.children) {\n return false;\n }\n const children = Array.from(list.children);\n for (const child of children) {\n if (!this._isValidListItem(child)) {\n continue;\n }\n const typed = child as HTMLLIElement;\n this._focusListItem(typed);\n return true;\n }\n return false;\n }\n\n /**\n * Focuses on the next node relative to the passed node.\n * \n * @param node The node to use as a starting point. When not set it uses the currently focused node.\n * @returns true when focused on any of the next siblings\n */\n focusNextSibling(node = this._focusedItem): boolean {\n if (!node) {\n return false;\n }\n let current = node.nextElementSibling as HTMLElement;\n while (current) {\n if (!this._isValidListItem(current)) {\n current = current.nextElementSibling as HTMLElement;\n continue;\n }\n this._focusListItem(current);\n return true;\n }\n return false;\n }\n\n /**\n * Focuses on the previous node relative to the passed node.\n * \n * @param node The node to use as a starting point. When not set it uses the currently focused node.\n * @returns true when focused on any of the previous siblings\n */\n focusPreviousSibling(node = this._focusedItem): boolean {\n if (!node) {\n return false;\n }\n let current = node.previousElementSibling as HTMLElement;\n while (current) {\n if (!this._isValidListItem(current)) {\n current = current.previousElementSibling as HTMLElement;\n continue;\n }\n // now we find the last descendant of this node.\n // if it doesn't have one, we focus on the node we have.\n const last = this._findLastDescendant(current);\n if (last) {\n this._focusListItem(last);\n return true;\n }\n this._focusListItem(current)\n return true;\n }\n return false;\n }\n\n /**\n * Focuses on a first list item that accepts focus relative to the given node.\n * \n * @param node The node to use as a reference. The current focused node by default.\n * @returns true when focused on any of the parents\n */\n protected _focusFirstParent(node: HTMLElement): boolean {\n if (!node) {\n return false;\n }\n const parent = this._findParentListItem(node);\n if (parent) {\n this._focusListItem(parent);\n return true;\n }\n return false;\n }\n\n protected _findClosestListItem(e: Event): HTMLLIElement | undefined {\n const path = e.composedPath();\n while (path.length) {\n const target = path.shift() as Node;\n if (!target) {\n break;\n }\n if (target.nodeType !== Node.ELEMENT_NODE) {\n continue;\n }\n if (!this._isValidListItem(target as Element)) {\n continue;\n }\n return target as HTMLLIElement;\n }\n return undefined;\n }\n\n /**\n * Dispatched the `select` custom event with the `key` and `kind` on the detail.\n * \n * @param key The key of the selected item.\n * @param kind The kind of the selected item\n * @param parent Optional parent item.\n */\n protected _notifySelection(key: string, kind: string, parent?: string, root?: string): void {\n this.dispatchEvent(new CustomEvent<ISelectDetail>('select', {\n detail: { key, kind, parent, root },\n }));\n }\n\n /**\n * A handler for the `dragstart` event dispatched when the item is draggable.\n * Calls the `_setupDataTransfer()` if has valid target.\n */\n protected _itemDragStartHandler(e: DragEvent): void {\n const node = this._findClosestListItem(e);\n const dt = e.dataTransfer;\n if (!dt || !node) {\n return;\n }\n this._setupDataTransfer(node, dt);\n }\n\n /**\n * Sets the common properties on the `DataTransfer`. Implementations can override this method to add\n * own properties.\n */\n protected _setupDataTransfer(item: HTMLLIElement, dt: DataTransfer): void {\n const kind = item.dataset.kind as string;\n dt.setData('text/kind', kind);\n dt.setData(kind, '');\n dt.setData('text/key', item.dataset.key as string);\n dt.setData('text/source', this.localName);\n dt.effectAllowed = 'copyMove';\n }\n\n protected _nameInputKeydown(e: KeyboardEvent): void {\n e.stopPropagation();\n if (e.key === 'Escape') {\n this.edited = undefined;\n } else if (e.key === 'Enter') {\n const input = e.target as HTMLInputElement;\n const { key, kind } = input.dataset;\n if (!key || !kind) {\n return;\n }\n this._commitName(key, kind, input.value.trim());\n }\n }\n\n protected _commitNameHandler(e: Event): void {\n e.preventDefault();\n const input = (e.currentTarget as HTMLElement).previousElementSibling as HTMLInputElement;\n if (!input || input.localName !== 'input') {\n return;\n }\n const { key, kind } = input.dataset;\n if (!key || !kind) {\n return;\n }\n this._commitName(key, kind, input.value.trim());\n }\n\n /**\n * This should be overwritten by the implementation that support name change.\n * Method called when the user request to change a name of an item.\n * \n * @param key The key of the item.\n * @param kind The kind of the item.\n * @param name THe new name.\n */\n protected _commitName(key: string, kind: string, name: string): void | Promise<void> {\n // eslint-disable-next-line no-console\n console.warn(`The commit name method is not set in the child class for ${key}, ${kind}, and ${name}.`);\n }\n\n protected _dblClickHandler(e: Event): void {\n if (e.defaultPrevented) {\n return;\n }\n const node = this._findClosestListItem(e);\n if (!node) {\n return;\n }\n this._itemEnterAction(node);\n }\n\n protected _clickHandler(e: Event): void {\n if (e.defaultPrevented) {\n return;\n }\n const node = this._findClosestListItem(e);\n if (!node) {\n return;\n }\n const key = node.dataset.key as string;\n if (node.classList.contains('parent-item')) {\n const target = e.target as HTMLElement;\n if (target.localName === 'ui-icon' && target.classList.contains('group-toggle-icon')) {\n this.toggleGroup(key);\n return;\n }\n }\n this._focusListItem(node);\n this.requestUpdate();\n }\n\n protected _keydownHandler(e: KeyboardEvent): void {\n const node = this._findClosestListItem(e);\n if (!node) {\n return;\n }\n switch (e.key) {\n case 'ArrowRight': this._itemRightAction(node); e.preventDefault(); break;\n case 'ArrowLeft': this._itemLeftAction(node); e.preventDefault(); break;\n case 'ArrowDown': this._itemDownAction(node); e.preventDefault(); break;\n case 'ArrowUp': this._itemUpAction(node); e.preventDefault(); break;\n case 'Home': this._homeAction(); e.preventDefault(); break;\n case 'End': this._endAction(); e.preventDefault(); break;\n case 'Enter': this._itemEnterAction(node); e.preventDefault(); break;\n default:\n }\n }\n\n protected renderLabel(): TemplateResult | typeof nothing {\n const { label } = this;\n if (!label) {\n return nothing;\n }\n return html`\n <div class=\"navigation-title\">${label}</div>\n `;\n }\n\n /**\n * Performs the default action of the currently focused node. \n * For parent nodes, it opens or closes the node. \n * In single-select trees, if the node has no children, selects the current node \n * if not already selected (which is the default action).\n */\n protected _itemEnterAction(node: HTMLElement): void {\n const key = node.dataset.key as string;\n const isFolder = node.classList.contains('parent-item');\n if (isFolder) {\n this.toggleGroup(key);\n }\n // don't guard this with checking whether the selection changed.\n // In a tabbed / split layout the item can be closed while the navigation item still can \n // be selected.\n this.selected = key;\n this._notifySelection(key, node.dataset.kind as string, node.dataset.parent, node.dataset.root);\n }\n\n /**\n * 1. When focus is on a closed node, opens the node; focus does not move.\n * 2. When focus is on a open node, moves focus to the first child node.\n * 3. When focus is on an end node (a tree item with no children), does nothing.\n */\n protected _itemRightAction(node: HTMLElement): void {\n const isFolder = node.classList.contains('parent-item');\n if (!isFolder) {\n return;\n }\n const key = node.dataset.key as string;\n const opened = this._opened.includes(key);\n if (!opened) {\n // #1\n this._opened.push(key);\n this.requestUpdate();\n return;\n }\n const size = Number(node.dataset.size);\n if (Number.isNaN(size) || !size) {\n // #3\n return;\n }\n // #2\n this._focusFirstDescendant(node);\n }\n\n /**\n * 1. When focus is on an open node, closes the node.\n * 2. When focus is on a child node that is also either an end node or a closed node, moves focus to its parent node.\n * 3. When focus is on a closed `tree`, does nothing.\n */\n protected _itemLeftAction(node: HTMLElement): void {\n const key = node.dataset.key as string;\n const isFolder = node.classList.contains('parent-item');\n if (isFolder) {\n const opened = this._opened.includes(key);\n if (opened) {\n // #1\n const index = this._opened.indexOf(key);\n this._opened.splice(index, 1);\n this.requestUpdate();\n return;\n }\n }\n // #2\n this._focusFirstParent(node);\n // note, #3 won't happen here as the outer tree is always opened.\n }\n\n /**\n * Moves focus to the next node that is focusable without opening or closing a node.\n */\n protected _itemDownAction(node: HTMLElement): void {\n const isFolder = node.classList.contains('parent-item');\n // try focusing on any child\n if (isFolder && this._focusFirstDescendant(node)) {\n return;\n }\n // try focus on any next item.\n if (this.focusNextSibling(node)) {\n return;\n }\n let parent = this._findParentListItem(node);\n while (parent) {\n if (this.focusNextSibling(parent)) {\n return;\n }\n parent = this._findParentListItem(parent);\n }\n }\n\n /**\n * Moves focus to the previous node that is focusable without opening or closing a node.\n */\n protected _itemUpAction(node: HTMLElement): void {\n if (this.focusPreviousSibling(node)) {\n return;\n }\n this._focusFirstParent(node);\n }\n\n protected _homeAction(): void {\n const first = (this.shadowRoot as ShadowRoot).querySelector('ul');\n if (!first) {\n return;\n }\n const children = Array.from(first.children) as HTMLElement[];\n for (const node of children) {\n if (this._isValidListItem(node)) {\n this._focusListItem(node);\n break;\n }\n }\n }\n\n protected _endAction(): void {\n const first = (this.shadowRoot as ShadowRoot).querySelector('ul');\n if (!first) {\n return;\n }\n const children = Array.from(first.children).reverse() as HTMLElement[];\n for (const node of children) {\n if (this._isValidListItem(node)) {\n this._focusListItem(node);\n break;\n }\n }\n }\n \n /**\n * \n * @param contents The children contents.\n * @returns A predefined template for the outer list element.\n */\n protected _outerListTemplate(contents: TemplateResult | TemplateResult[] | string): TemplateResult {\n return html`\n <ul \n role=\"tree\" \n aria-multiselectable=\"false\" \n @dblclick=\"${this._dblClickHandler}\"\n @click=\"${this._clickHandler}\"\n @keydown=\"${this._keydownHandler}\"\n class=\"root\"\n >\n ${contents}\n </ul>\n `;\n }\n\n protected _parentListItemTemplate(key: string, kind: string, label: string, children: TemplateResult | TemplateResult[] | string, opts: IListItemRenderOptions = {}): TemplateResult {\n const { selected, _focused, edited } = this;\n const opened = this._opened.includes(key);\n const classes = {\n 'parent-item': true,\n selected: selected === key,\n focused: _focused === key,\n opened,\n };\n return html`\n <li \n class=\"${classMap(classes)}\" \n role=\"treeitem\" \n aria-selected=\"false\"\n aria-expanded=\"${opened ? 'true' : 'false'}\"\n data-parent=\"${ifDefined(opts.parent)}\"\n data-root=\"${ifDefined(opts.root)}\"\n data-key=\"${key}\"\n data-kind=\"${kind}\"\n draggable=\"${opts.draggable ? 'true' : 'false'}\"\n @dragstart=\"${this._itemDragStartHandler}\"\n aria-disabled=\"${opts.disabled ? 'true' : 'false'}\"\n >\n ${edited === key ? this._nameInputTemplate(key, kind, label) : this.parentListItemContentTemplate(label, opts)}\n <ul \n role=\"group\" \n id=\"group${key}\" \n data-parent=\"${ifDefined(opts.parent)}\" \n ?hidden=\"${!opened}\" \n aria-hidden=\"${opened ? 'false' : 'true'}\"\n >\n ${children}\n </ul>\n </li>\n `;\n }\n\n protected parentListItemContentTemplate(label: string, opts: IListItemRenderOptions = {}): TemplateResult {\n return html`\n <div class=\"list-item-content parent-content\">\n <ui-icon icon=\"chevronRight\" class=\"group-toggle-icon\"></ui-icon>\n ${opts.parentIcon ? html`<ui-icon icon=\"${opts.parentIcon}\" class=\"object-icon\"></ui-icon>` : ''}\n <span class=\"label\" title=\"${label}\">${label}</span>\n </div>\n `;\n }\n\n protected _listItemTemplate(key: string, kind: string, label: string, content: TemplateResult | TemplateResult[] | string, opts: IListItemRenderOptions = {}): TemplateResult {\n const { selected, _focused, edited } = this;\n if (edited === key) {\n const input = this._nameInputTemplate(key, kind, label);\n return html`\n <li \n role=\"treeitem\" \n aria-selected=\"false\"\n class=\"name-change-item\"\n data-parent=\"${ifDefined(opts.parent)}\"\n data-root=\"${ifDefined(opts.root)}\"\n data-key=\"${key}\"\n data-kind=\"${kind}\"\n >${input}</li>\n `;\n }\n const classes = {\n selected: selected === key,\n focused: _focused === key,\n };\n return html`\n <li \n class=\"${classMap(classes)}\" \n role=\"treeitem\" \n aria-selected=\"false\"\n data-parent=\"${ifDefined(opts.parent)}\"\n data-root=\"${ifDefined(opts.root)}\"\n data-key=\"${key}\"\n data-kind=\"${kind}\"\n draggable=\"${opts.draggable ? 'true' : 'false'}\"\n @dragstart=\"${this._itemDragStartHandler}\"\n aria-disabled=\"${opts.disabled ? 'true' : 'false'}\"\n >\n <div class=\"list-item-content\">${content}</div>\n </li>\n `;\n }\n\n protected _nameInputTemplate(key: string, kind: string, oldName?: string): TemplateResult {\n return html`\n <div class=\"name-change\" @click=\"${EventUtils.cancelEvent}\" @keydown=\"${EventUtils.cancelEvent}\" @dblclick=\"${EventUtils.cancelEvent}\">\n <input type=\"text\" .value=${oldName || ''} @keydown=\"${this._nameInputKeydown}\" data-key=\"${key}\" data-kind=\"${kind}\"/>\n <ui-icon-button @click=\"${this._commitNameHandler}\" aria-label=\"Confirm name change\" class=\"name-commit-button\" type=\"standard\">\n <ui-icon icon=\"check\"></ui-icon>\n </ui-icon-button>\n </div>\n `;\n }\n\n protected _itemContentTemplate(icon: IconType, label: string): TemplateResult {\n return html`\n <ui-icon icon=\"${icon}\" class=\"object-icon\"></ui-icon>\n <span class=\"label\" title=\"${label}\">${label}</span>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"AppNavigationElement.js","sourceRoot":"","sources":["../../../src/elements/navigation/AppNavigationElement.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport { html, nothing, PropertyValues, TemplateResult } from \"lit\";\nimport { property, query, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { EventUtils } from '@api-client/core/build/browser.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-icon-button.js';\nimport { IconType } from \"../../ui/icons/Icons.js\";\nimport ApiElement from \"../ApiElement.js\";\n\nexport interface ISelectDetail {\n /**\n * The key of the selected item\n */\n key: string;\n /**\n * THe kind of the selected item\n */\n kind: string;\n /**\n * Optionally, the parent odf the selected item, if any.\n */\n parent?: string;\n /**\n * When applicable, the top object in the structure.\n */\n root?: string;\n}\n\nexport interface IListItemRenderOptions {\n draggable?: boolean;\n parent?: string;\n disabled?: boolean;\n /**\n * Only relevant for parent list item.\n * When set it forces this icon to be rendered next to the toggle button.\n */\n parentIcon?: IconType;\n /**\n * When set is add the `data-root` attribute.\n * In principle, it represents a root object in the tree, if any.\n */\n root?: string;\n}\n\n/**\n * A base class for navigation elements helping creating specific implementation of the view.\n * The implementations sets their own properties with the data that are used to generate the view.\n * \n * The generated menu must have the following structure created by the implementations:\n * \n * ```html\n * <ul aria-label=\"...\" aria-multiselectable=\"false\">\n * <li role=\"treeitem\" data-key=\"...\" data-kind=\"...\" data-draggable=\"true|false\">\n * <div class=\"list-item-content\"><span class=\"label\" title=\"...\">...</span></div>\n * </li>\n * <li role=\"treeitem\" data-key=\"...\" data-kind=\"...\" data-draggable=\"true|false\" aria-expanded=\"true|false\" class=\"parent-item\">\n * <div class=\"list-item-content\">\n * <ui-icon icon=\"chevronRight\" class=\"group-toggle-icon\"></ui-icon>\n * <span class=\"label\" title=\"...\">...</span>\n * </div>\n * <ul role=\"group\" data-parent=\"...\" ?hidden aria-hidden=\"true|false\">\n * <li role=\"treeitem\" data-key=\"...\" data-parent=\"...\" data-kind=\"...\" data-draggable=\"true|false\">\n * <div class=\"list-item-content\">\n * <ui-icon icon=\"...\" class=\"item-icon\"></ui-icon>\n * <span class=\"label\" title=\"...\">...</span>\n * </div>\n * </li>\n * </ul>\n * </li>\n * </ul>\n * ```\n * \n * Additionally, the child element must include styles from './AppNavigation.styles.js`.\n * \n * Assumptions when running the menu:\n * \n * - all `li` items that do not have `aria-disabled` attribute are considered active tree items (learn more why not to use \"disabled\" attribute https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-disabled)\n * - all `li` elements have `data-key` and `data-kind` attributes set. Elements without these properties are ignored.\n * - all `ul` and `li` elements that have a parent also have `data-parent` with the value of the parent's key. When this is not set the element is considered a top level element.\n * - the implementations does not manage the `tabindex` of any item. Instead set the `_focusedItem` to the currently focused element and the base will manage the focus for you (after the update is complete).\n * \n * @fires select - Custom, non bubbling event when a selection is made. It has the `key` and `kind` properties on the detail panel with optional `parent` id.\n */\nexport default class AppNavigation extends ApiElement {\n /**\n * The list of keys of opened items with children. This should be clear each time \n * when the main data property change.\n */\n protected _opened: string[] = [];\n\n /**\n * The key of the currently focused item.\n */\n protected _focused?: string;\n\n /**\n * The currently focused node.\n * In case there are headers in the list, this may not be a list item.\n */\n @state() _focusedItem?: HTMLElement;\n\n /**\n * To be set in the child class constructor to configure whether a name change is possible.\n */\n protected _allowRename?: boolean;\n\n /**\n * The currently selected navigation item.\n * @attr\n */\n @property({ type: String }) selected?: string;\n\n /**\n * When set it renders a name change input for the item.\n * This is the `key` of the object.\n * \n * Note, when the user finish editing the name it calls the `_commitName(key, kind, name)` method.\n * This requires the `_allowRename` property to be set to `true` in the constructor.\n * @attr\n */\n @property({ type: String }) edited?: string;\n\n /**\n * When set it prohibits the element to make visual selection (via the css) when an item is selected.\n * This is helpful when one navigation can be visually references in multiple places (like split layout).\n * @attr\n */\n @property({ type: Boolean, reflect: true }) noVisualSelection?: boolean\n\n /**\n * A reference to the currently rendered name input, if any.\n */\n @query('.name-change input')\n protected _nameInput?: HTMLInputElement | null;\n\n /**\n * When set it adds a menu entry with the navigation label.\n * @attribute\n */\n @property({ type: String }) label?: string;\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('role', 'navigation');\n this.setAttribute('tabindex', '0');\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n super.willUpdate(cp);\n if (cp.has('selected') && !cp.get('selected') && this.selected) {\n this.ensureTreeVisibility(this.selected);\n }\n }\n\n protected override updated(cp: PropertyValues<this>): void {\n super.updated(cp);\n if (cp.has('edited') && this.edited) {\n const node = this._nameInput;\n if (node) {\n node.focus();\n }\n this.ensureTreeVisibility(this.edited);\n }\n if (cp.has('_focusedItem') && this._focusedItem) {\n const old = cp.get('_focusedItem') as HTMLElement | undefined;\n this._manageFocus(this._focusedItem, old);\n }\n }\n\n protected _reset(): void {\n this._opened = [];\n this._focused = undefined;\n this._focusedItem = undefined;\n this.edited = undefined;\n }\n\n /**\n * This method is called when the `_focusedItem` property is updated.\n * It removes tabindex from the old element (if any) and sets tabindex and focuses on the new item (if any).\n * When there's no new item, it sets the `tabindex` on self.\n * \n * @param current The new focused element, if any\n * @param old The old focused element, if any.\n */\n protected _manageFocus(current?: HTMLElement, old?: HTMLElement): void {\n if (old) {\n // don't set `-1` here as the item can have children which event with tabindex '0' won't be focusable.\n old.removeAttribute('tabindex');\n }\n if (current) {\n if (current.getAttribute('tabindex') !== '0') {\n current.setAttribute('tabindex', '0');\n }\n current.focus();\n // current.scrollIntoView();\n // remove tabindex from self so when the user returns to this navigation it will focus directly on\n // this item.\n if (this.hasAttribute('tabindex')) {\n this.removeAttribute('tabindex');\n }\n } else if (!this.hasAttribute('tabindex')) {\n // restore tabindex on self.\n this.setAttribute('tabindex', '0');\n }\n }\n\n /**\n * Makes sure the node represented by the passed key is visible in the UI.\n * This opens all parents on the way up to the root and scrolls to the node, when needed.\n * @param key The key of the object to ensure visibility for.\n */\n ensureTreeVisibility(key: string): void {\n const node = this.shadowRoot?.querySelector(`li[data-key=\"${key}\"]`) as HTMLLIElement;\n if (!node) {\n return;\n }\n const { _opened } = this;\n let parent = this._findParentListItem(node);\n let changed = false;\n while (parent) {\n const id = parent.dataset.key as string;\n if (!_opened.includes(id)) {\n _opened.push(id);\n changed = true;\n }\n parent = this._findParentListItem(parent);\n }\n if (changed) {\n this.requestUpdate();\n }\n }\n\n /**\n * Toggles a group of tree items.\n * \n * @param key The key of the group parent.\n */\n toggleGroup(key: string): void {\n const { _opened: list } = this;\n const index = list.indexOf(key);\n if (index >= 0) {\n list.splice(index, 1);\n } else {\n list.push(key);\n }\n this.requestUpdate();\n }\n\n /**\n * Allows to programmatically open a folder.\n * It opens all parents if they are not opened.\n * @param key The key of the folder to open.\n */\n openGroup(key: string): void {\n const node = this.shadowRoot?.querySelector(`li[data-key=\"${key}\"]`) as HTMLLIElement;\n if (!node) {\n return;\n }\n const { _opened: list } = this;\n if (list.includes(key)) {\n return;\n }\n list.push(key);\n // opens all parents\n\n let parent = this._findParentListItem(node);\n while (parent) {\n const parentKey = parent.dataset.key as string;\n if (!list.includes(parentKey)) {\n list.push(parentKey);\n }\n parent = this._findParentListItem(parent);\n }\n this.requestUpdate();\n }\n\n /**\n * Allows to programmatically close a folder.\n * @param key The key of the folder to open.\n */\n closeGroup(key: string): void {\n const { _opened: list } = this;\n const index = list.indexOf(key);\n if (index >= 0) {\n list.splice(index, 1);\n this.requestUpdate();\n }\n }\n\n /**\n * A function to determine whether the passed Element is an active list item.\n * \n * @param node The Element to test\n * @returns true when the passed element is a `li` element and is not disabled.\n */\n protected _isValidListItem(node: Element): boolean {\n return node.localName === 'li' && node.getAttribute('aria-disabled') !== 'true' && node.hasAttribute('data-key') && node.hasAttribute('data-kind');\n }\n\n /**\n * Marks the item as currently focused. \n * \n * Note, focused item is not the same as selected item. Focus is reflected in the UI without changing the selection.\n * \n * Also note, this only sets the `_focused` and `_focusedItem` properties. After the element renders \n * the implementation should change the `tabindex` of the focused item to `0`.\n */\n protected _focusListItem(node: HTMLElement): void {\n this._focused = node.dataset.key;\n this._focusedItem = node;\n }\n\n /**\n * Finds a valid list item that is a parent to the current item.\n * \n * @param node The current node located somewhere in the tree.\n * @returns The nearest parent list item or undefined when not found.\n */\n protected _findParentListItem(node: HTMLElement): HTMLLIElement | undefined {\n let parent = node.parentElement as HTMLElement;\n while (parent) {\n if (this._isValidListItem(parent)) {\n return parent as HTMLLIElement;\n }\n // when the `parentElement` is ShadowRoot then it's parent is `null` so the loop breaks.\n parent = parent.parentElement as HTMLElement;\n }\n return undefined;\n }\n\n /**\n * From a `<li>` it finds the last `<li>` descendant in the tree.\n * \n * ```html\n * <ul>\n * <li> <-- this is the current node\n * <div>...</div>\n * <ul>\n * <li>...</li>\n * <li> <-- this is the last list item.\n * <div>...</div>\n * <ul hidden> <- this is ignored.\n * <li></li>\n * <li></li> <-- this is not the last list item because the parent list is hidden.\n * </ul>\n * </li>\n * </ul>\n * </li>\n * </ul>\n * ```\n * \n * @param node The current list item to find the last descendant for.\n * @returns The last list item or undefined.\n */\n protected _findLastDescendant(node: HTMLElement): HTMLElement | undefined {\n const list = Array.from(node.children).reverse().find(i => i.localName === 'ul' && !i.hasAttribute('hidden')) as HTMLElement | undefined;\n if (!list) {\n return undefined;\n }\n const li = Array.from(list.children).reverse().find(i => this._isValidListItem(i)) as HTMLElement | undefined;\n if (!li) {\n return undefined;\n }\n const result = this._findLastDescendant(li);\n // either it has more children or we can return the current list\n if (result) {\n return result;\n }\n return li;\n }\n\n /**\n * Focuses on a list descendant of a folder item.\n * It does nothing when the `node` is not a folder item or the folder has no selectable children.\n * \n * @param node The node to use as a reference. The current focused node by default.\n * @returns true when focused on any of the descendants\n */\n protected _focusFirstDescendant(node = this._focusedItem): boolean {\n if (!node) {\n return false;\n }\n const list = Array.from(node.children).find(n => n.localName === 'ul' && (!n.hasAttribute('aria-hidden') || n.getAttribute('aria-hidden') === 'false'));\n if (!list || !list.children) {\n return false;\n }\n const children = Array.from(list.children);\n for (const child of children) {\n if (!this._isValidListItem(child)) {\n continue;\n }\n const typed = child as HTMLLIElement;\n this._focusListItem(typed);\n return true;\n }\n return false;\n }\n\n /**\n * Focuses on the next node relative to the passed node.\n * \n * @param node The node to use as a starting point. When not set it uses the currently focused node.\n * @returns true when focused on any of the next siblings\n */\n focusNextSibling(node = this._focusedItem): boolean {\n if (!node) {\n return false;\n }\n let current = node.nextElementSibling as HTMLElement;\n while (current) {\n if (!this._isValidListItem(current)) {\n current = current.nextElementSibling as HTMLElement;\n continue;\n }\n this._focusListItem(current);\n return true;\n }\n return false;\n }\n\n /**\n * Focuses on the previous node relative to the passed node.\n * \n * @param node The node to use as a starting point. When not set it uses the currently focused node.\n * @returns true when focused on any of the previous siblings\n */\n focusPreviousSibling(node = this._focusedItem): boolean {\n if (!node) {\n return false;\n }\n let current = node.previousElementSibling as HTMLElement;\n while (current) {\n if (!this._isValidListItem(current)) {\n current = current.previousElementSibling as HTMLElement;\n continue;\n }\n // now we find the last descendant of this node.\n // if it doesn't have one, we focus on the node we have.\n const last = this._findLastDescendant(current);\n if (last) {\n this._focusListItem(last);\n return true;\n }\n this._focusListItem(current)\n return true;\n }\n return false;\n }\n\n /**\n * Focuses on a first list item that accepts focus relative to the given node.\n * \n * @param node The node to use as a reference. The current focused node by default.\n * @returns true when focused on any of the parents\n */\n protected _focusFirstParent(node: HTMLElement): boolean {\n if (!node) {\n return false;\n }\n const parent = this._findParentListItem(node);\n if (parent) {\n this._focusListItem(parent);\n return true;\n }\n return false;\n }\n\n protected _findClosestListItem(e: Event): HTMLLIElement | undefined {\n const path = e.composedPath();\n while (path.length) {\n const target = path.shift() as Node;\n if (!target) {\n break;\n }\n if (target.nodeType !== Node.ELEMENT_NODE) {\n continue;\n }\n if (!this._isValidListItem(target as Element)) {\n continue;\n }\n return target as HTMLLIElement;\n }\n return undefined;\n }\n\n /**\n * Dispatched the `select` custom event with the `key` and `kind` on the detail.\n * \n * @param key The key of the selected item.\n * @param kind The kind of the selected item\n * @param parent Optional parent item.\n */\n protected _notifySelection(key: string, kind: string, parent?: string, root?: string): void {\n this.dispatchEvent(new CustomEvent<ISelectDetail>('select', {\n detail: { key, kind, parent, root },\n }));\n }\n\n /**\n * A handler for the `dragstart` event dispatched when the item is draggable.\n * Calls the `_setupDataTransfer()` if has valid target.\n */\n protected _itemDragStartHandler(e: DragEvent): void {\n const node = this._findClosestListItem(e);\n const dt = e.dataTransfer;\n if (!dt || !node) {\n return;\n }\n this._setupDataTransfer(node, dt);\n }\n\n /**\n * Sets the common properties on the `DataTransfer`. Implementations can override this method to add\n * own properties.\n */\n protected _setupDataTransfer(item: HTMLLIElement, dt: DataTransfer): void {\n const kind = item.dataset.kind as string;\n dt.setData('text/kind', kind);\n dt.setData(kind, '');\n dt.setData('text/key', item.dataset.key as string);\n dt.setData('text/source', this.localName);\n dt.effectAllowed = 'copyMove';\n }\n\n protected _nameInputKeydown(e: KeyboardEvent): void {\n e.stopPropagation();\n if (e.key === 'Escape') {\n this.edited = undefined;\n } else if (e.key === 'Enter') {\n const input = e.target as HTMLInputElement;\n const { key, kind } = input.dataset;\n if (!key || !kind) {\n return;\n }\n this._commitName(key, kind, input.value.trim());\n }\n }\n\n protected _commitNameHandler(e: Event): void {\n e.preventDefault();\n const input = (e.currentTarget as HTMLElement).previousElementSibling as HTMLInputElement;\n if (!input || input.localName !== 'input') {\n return;\n }\n const { key, kind } = input.dataset;\n if (!key || !kind) {\n return;\n }\n this._commitName(key, kind, input.value.trim());\n }\n\n /**\n * This should be overwritten by the implementation that support name change.\n * Method called when the user request to change a name of an item.\n * \n * @param key The key of the item.\n * @param kind The kind of the item.\n * @param name THe new name.\n */\n protected _commitName(key: string, kind: string, name: string): void | Promise<void> {\n // eslint-disable-next-line no-console\n console.warn(`The commit name method is not set in the child class for ${key}, ${kind}, and ${name}.`);\n }\n\n protected _dblClickHandler(e: Event): void {\n if (e.defaultPrevented) {\n return;\n }\n const node = this._findClosestListItem(e);\n if (!node) {\n return;\n }\n this._itemEnterAction(node);\n }\n\n protected _clickHandler(e: Event): void {\n if (e.defaultPrevented) {\n return;\n }\n const node = this._findClosestListItem(e);\n if (!node) {\n return;\n }\n const key = node.dataset.key as string;\n if (node.classList.contains('parent-item')) {\n const target = e.target as HTMLElement;\n if (target.localName === 'ui-icon' && target.classList.contains('group-toggle-icon')) {\n this.toggleGroup(key);\n return;\n }\n }\n this._focusListItem(node);\n this.requestUpdate();\n }\n\n protected _keydownHandler(e: KeyboardEvent): void {\n const node = this._findClosestListItem(e);\n if (!node) {\n return;\n }\n switch (e.key) {\n case 'ArrowRight': this._itemRightAction(node); e.preventDefault(); break;\n case 'ArrowLeft': this._itemLeftAction(node); e.preventDefault(); break;\n case 'ArrowDown': this._itemDownAction(node); e.preventDefault(); break;\n case 'ArrowUp': this._itemUpAction(node); e.preventDefault(); break;\n case 'Home': this._homeAction(); e.preventDefault(); break;\n case 'End': this._endAction(); e.preventDefault(); break;\n case 'Enter': this._itemEnterAction(node); e.preventDefault(); break;\n default:\n }\n }\n\n protected renderLabel(): TemplateResult | typeof nothing {\n const { label } = this;\n if (!label) {\n return nothing;\n }\n return html`\n <div class=\"navigation-title\">${label}</div>\n `;\n }\n\n /**\n * Performs the default action of the currently focused node. \n * For parent nodes, it opens or closes the node. \n * In single-select trees, if the node has no children, selects the current node \n * if not already selected (which is the default action).\n */\n protected _itemEnterAction(node: HTMLElement): void {\n const key = node.dataset.key as string;\n const isFolder = node.classList.contains('parent-item');\n if (isFolder) {\n this.toggleGroup(key);\n }\n // don't guard this with checking whether the selection changed.\n // In a tabbed / split layout the item can be closed while the navigation item still can \n // be selected.\n this.selected = key;\n this._notifySelection(key, node.dataset.kind as string, node.dataset.parent, node.dataset.root);\n }\n\n /**\n * 1. When focus is on a closed node, opens the node; focus does not move.\n * 2. When focus is on a open node, moves focus to the first child node.\n * 3. When focus is on an end node (a tree item with no children), does nothing.\n */\n protected _itemRightAction(node: HTMLElement): void {\n const isFolder = node.classList.contains('parent-item');\n if (!isFolder) {\n return;\n }\n const key = node.dataset.key as string;\n const opened = this._opened.includes(key);\n if (!opened) {\n // #1\n this._opened.push(key);\n this.requestUpdate();\n return;\n }\n const size = Number(node.dataset.size);\n if (Number.isNaN(size) || !size) {\n // #3\n return;\n }\n // #2\n this._focusFirstDescendant(node);\n }\n\n /**\n * 1. When focus is on an open node, closes the node.\n * 2. When focus is on a child node that is also either an end node or a closed node, moves focus to its parent node.\n * 3. When focus is on a closed `tree`, does nothing.\n */\n protected _itemLeftAction(node: HTMLElement): void {\n const key = node.dataset.key as string;\n const isFolder = node.classList.contains('parent-item');\n if (isFolder) {\n const opened = this._opened.includes(key);\n if (opened) {\n // #1\n const index = this._opened.indexOf(key);\n this._opened.splice(index, 1);\n this.requestUpdate();\n return;\n }\n }\n // #2\n this._focusFirstParent(node);\n // note, #3 won't happen here as the outer tree is always opened.\n }\n\n /**\n * Moves focus to the next node that is focusable without opening or closing a node.\n */\n protected _itemDownAction(node: HTMLElement): void {\n const isFolder = node.classList.contains('parent-item');\n // try focusing on any child\n if (isFolder && this._focusFirstDescendant(node)) {\n return;\n }\n // try focus on any next item.\n if (this.focusNextSibling(node)) {\n return;\n }\n let parent = this._findParentListItem(node);\n while (parent) {\n if (this.focusNextSibling(parent)) {\n return;\n }\n parent = this._findParentListItem(parent);\n }\n }\n\n /**\n * Moves focus to the previous node that is focusable without opening or closing a node.\n */\n protected _itemUpAction(node: HTMLElement): void {\n if (this.focusPreviousSibling(node)) {\n return;\n }\n this._focusFirstParent(node);\n }\n\n protected _homeAction(): void {\n const first = (this.shadowRoot as ShadowRoot).querySelector('ul');\n if (!first) {\n return;\n }\n const children = Array.from(first.children) as HTMLElement[];\n for (const node of children) {\n if (this._isValidListItem(node)) {\n this._focusListItem(node);\n break;\n }\n }\n }\n\n protected _endAction(): void {\n const first = (this.shadowRoot as ShadowRoot).querySelector('ul');\n if (!first) {\n return;\n }\n const children = Array.from(first.children).reverse() as HTMLElement[];\n for (const node of children) {\n if (this._isValidListItem(node)) {\n this._focusListItem(node);\n break;\n }\n }\n }\n \n /**\n * \n * @param contents The children contents.\n * @returns A predefined template for the outer list element.\n */\n protected _outerListTemplate(contents: TemplateResult | TemplateResult[] | string): TemplateResult {\n return html`\n <ul \n role=\"tree\" \n aria-multiselectable=\"false\" \n @dblclick=\"${this._dblClickHandler}\"\n @click=\"${this._clickHandler}\"\n @keydown=\"${this._keydownHandler}\"\n class=\"root\"\n >\n ${contents}\n </ul>\n `;\n }\n\n protected _parentListItemTemplate(key: string, kind: string, label: string, children: TemplateResult | TemplateResult[] | string, opts: IListItemRenderOptions = {}): TemplateResult {\n const { selected, _focused, edited } = this;\n const opened = this._opened.includes(key);\n const classes = {\n 'parent-item': true,\n selected: selected === key,\n focused: _focused === key,\n opened,\n };\n return html`\n <li \n class=\"${classMap(classes)}\" \n role=\"treeitem\" \n aria-selected=\"false\"\n aria-expanded=\"${opened ? 'true' : 'false'}\"\n data-parent=\"${ifDefined(opts.parent)}\"\n data-root=\"${ifDefined(opts.root)}\"\n data-key=\"${key}\"\n data-kind=\"${kind}\"\n draggable=\"${opts.draggable ? 'true' : 'false'}\"\n @dragstart=\"${this._itemDragStartHandler}\"\n aria-disabled=\"${opts.disabled ? 'true' : 'false'}\"\n >\n ${edited === key ? this._nameInputTemplate(key, kind, label) : this.parentListItemContentTemplate(label, opts)}\n <ul \n role=\"group\" \n id=\"group${key}\" \n data-parent=\"${ifDefined(opts.parent)}\" \n ?hidden=\"${!opened}\" \n aria-hidden=\"${opened ? 'false' : 'true'}\"\n >\n ${children}\n </ul>\n </li>\n `;\n }\n\n protected parentListItemContentTemplate(label: string, opts: IListItemRenderOptions = {}): TemplateResult {\n return html`\n <div class=\"list-item-content parent-content\">\n <ui-icon icon=\"chevronRight\" class=\"group-toggle-icon\"></ui-icon>\n ${opts.parentIcon ? html`<ui-icon icon=\"${opts.parentIcon}\" class=\"object-icon\"></ui-icon>` : ''}\n <span class=\"label\" title=\"${label}\">${label}</span>\n </div>\n `;\n }\n\n protected _listItemTemplate(key: string, kind: string, label: string, content: TemplateResult | TemplateResult[] | string, opts: IListItemRenderOptions = {}): TemplateResult {\n const { selected, _focused, edited } = this;\n if (edited === key) {\n const input = this._nameInputTemplate(key, kind, label);\n return html`\n <li \n role=\"treeitem\" \n aria-selected=\"false\"\n class=\"name-change-item\"\n data-parent=\"${ifDefined(opts.parent)}\"\n data-root=\"${ifDefined(opts.root)}\"\n data-key=\"${key}\"\n data-kind=\"${kind}\"\n >${input}</li>\n `;\n }\n const classes = {\n selected: selected === key,\n focused: _focused === key,\n };\n return html`\n <li \n class=\"${classMap(classes)}\" \n role=\"treeitem\" \n aria-selected=\"false\"\n data-parent=\"${ifDefined(opts.parent)}\"\n data-root=\"${ifDefined(opts.root)}\"\n data-key=\"${key}\"\n data-kind=\"${kind}\"\n draggable=\"${opts.draggable ? 'true' : 'false'}\"\n @dragstart=\"${this._itemDragStartHandler}\"\n aria-disabled=\"${opts.disabled ? 'true' : 'false'}\"\n >\n <div class=\"list-item-content\">${content}</div>\n </li>\n `;\n }\n\n protected _nameInputTemplate(key: string, kind: string, oldName?: string): TemplateResult {\n return html`\n <div class=\"name-change\" @click=\"${EventUtils.cancelEvent}\" @keydown=\"${EventUtils.cancelEvent}\" @dblclick=\"${EventUtils.cancelEvent}\">\n <input type=\"text\" .value=${oldName || ''} @keydown=\"${this._nameInputKeydown}\" data-key=\"${key}\" data-kind=\"${kind}\"/>\n <ui-icon-button @click=\"${this._commitNameHandler}\" aria-label=\"Confirm name change\" class=\"name-commit-button\" type=\"standard\">\n <ui-icon icon=\"check\"></ui-icon>\n </ui-icon-button>\n </div>\n `;\n }\n\n protected _itemContentTemplate(icon: IconType, label: string): TemplateResult {\n return html`\n <ui-icon icon=\"${icon}\" class=\"object-icon\"></ui-icon>\n <span class=\"label\" title=\"${label}\">${label}</span>\n `;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AppNavigationItem.styles.d.ts","sourceRoot":"","sources":["../../../src/elements/navigation/AppNavigationItem.styles.ts"],"names":[],"mappings":";AAEA,wBAkIE"}
1
+ {"version":3,"file":"AppNavigationItem.styles.d.ts","sourceRoot":"","sources":["../../../src/elements/navigation/AppNavigationItem.styles.ts"],"names":[],"mappings":";AAEA,wBAoIE"}
@@ -53,6 +53,7 @@ export default css `
53
53
  .container {
54
54
  z-index: 1;
55
55
  transition: box-shadow 160ms cubic-bezier(.4,0,.2,1), background-color 230ms cubic-bezier(.4,0,.2,1);
56
+ background-color: var(--md-sys-color-surface);
56
57
  }
57
58
 
58
59
  :host([selected]) .container {
@@ -79,6 +80,7 @@ export default css `
79
80
  position: relative;
80
81
  padding: 16px 24px 16px 16px;
81
82
  width: inherit;
83
+ color: var(--md-sys-color-on-surface);
82
84
  }
83
85
 
84
86
  .ripple {
@@ -1 +1 @@
1
- {"version":3,"file":"AppNavigationItem.styles.js","sourceRoot":"","sources":["../../../src/elements/navigation/AppNavigationItem.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkIjB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport default css`\n:host {\n display: block;\n box-sizing: content-box;\n /* outline: none; */\n writing-mode: horizontal-tb !important;\n text-rendering: auto;\n cursor: default;\n user-select: none;\n height: 56px;\n width: fit-content;\n -webkit-tap-highlight-color: transparent;\n\n border-radius: 100px;\n width: 100%;\n\n font-family: var(--md-sys-typescale-label-large-font-family-name);\n font-style: var(--md-sys-typescale-label-large-font-family-style);\n font-weight: var(--md-sys-typescale-label-large-font-weight, 500);\n font-size: var(--md-sys-typescale-label-large-font-size, 14px);\n letter-spacing: var(--md-sys-typescale-label-large-tracking);\n line-height: var(--md-sys-typescale-label-large-height);\n text-transform: var(--md-sys-typescale-label-large-text-transform);\n text-decoration: var(--md-sys-typescale-label-large-text-decoration);\n\n --md-ripple-hover-state-layer-color: var(--md-sys-color-primary);\n --md-ripple-focus-state-layer-color: var(--md-sys-color-primary);\n --md-ripple-pressed-state-layer-color: var(--md-sys-color-primary);\n}\n\n.surface {\n width: inherit;\n height: inherit;\n position: relative;\n border-radius: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n /* color: var(--md-sys-color-primary); */\n}\n\n.container,\n.state {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border-radius: inherit;\n}\n\n.container {\n z-index: 1;\n transition: box-shadow 160ms cubic-bezier(.4,0,.2,1), background-color 230ms cubic-bezier(.4,0,.2,1);\n}\n\n:host([selected]) .container {\n background-color: var(--md-sys-color-secondary-container);\n}\n\n:host([selected]) .content,\n:host([selected]) .content slot::slotted(*) {\n color: var(--md-sys-color-on-secondary-container);\n fill: var(--md-sys-color-on-secondary-container);\n}\n\n.state {\n z-index: 2;\n opacity: 0;\n transition: opacity 260ms cubic-bezier(.4,0,.2,1);\n}\n\n.content {\n z-index: 3;\n display: flex;\n justify-content: start;\n align-items: center;\n position: relative;\n padding: 16px 24px 16px 16px;\n width: inherit;\n}\n\n.ripple {\n border-radius: inherit;\n z-index: 3;\n}\n\n/* .surface.withIcon .content {\n padding: 0 24px 0 16px;\n} */\n\n.surface.withIcon slot[name=\"icon\"]::slotted(*) {\n margin-right: 12px;\n margin-left: 0px;\n}\n\n.content slot::slotted(*) {\n color: var(--md-sys-color-on-surface-variant);\n fill: var(--md-sys-color-on-surface-variant);\n}\n\n:host([disabled]) {\n pointer-events: none;\n}\n\n:host([disabled]) .content {\n opacity: 0.38;\n}\n\n:host([disabled]) .content,\n:host([disabled]) .content slot::slotted(*) {\n color: var(--md-sys-color-on-surface) !important;\n fill: var(--md-sys-color-on-surface) !important;\n}\n\n:host(:hover) .state {\n background-color: var(--md-sys-color-primary);\n opacity: var(--md-sys-state-hover-state-layer-opacity);\n}\n\n:host(:focus) .state {\n background-color: var(--md-sys-color-primary);\n opacity: var(--md-sys-state-focus-state-layer-opacity);\n}\n\n:host(:active) .state,\n.pressed .state {\n background-color: var(--md-sys-color-primary);\n opacity: var(--md-sys-state-pressed-state-layer-opacity);\n}\n`;\n"]}
1
+ {"version":3,"file":"AppNavigationItem.styles.js","sourceRoot":"","sources":["../../../src/elements/navigation/AppNavigationItem.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoIjB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport default css`\n:host {\n display: block;\n box-sizing: content-box;\n /* outline: none; */\n writing-mode: horizontal-tb !important;\n text-rendering: auto;\n cursor: default;\n user-select: none;\n height: 56px;\n width: fit-content;\n -webkit-tap-highlight-color: transparent;\n\n border-radius: 100px;\n width: 100%;\n\n font-family: var(--md-sys-typescale-label-large-font-family-name);\n font-style: var(--md-sys-typescale-label-large-font-family-style);\n font-weight: var(--md-sys-typescale-label-large-font-weight, 500);\n font-size: var(--md-sys-typescale-label-large-font-size, 14px);\n letter-spacing: var(--md-sys-typescale-label-large-tracking);\n line-height: var(--md-sys-typescale-label-large-height);\n text-transform: var(--md-sys-typescale-label-large-text-transform);\n text-decoration: var(--md-sys-typescale-label-large-text-decoration);\n\n --md-ripple-hover-state-layer-color: var(--md-sys-color-primary);\n --md-ripple-focus-state-layer-color: var(--md-sys-color-primary);\n --md-ripple-pressed-state-layer-color: var(--md-sys-color-primary);\n}\n\n.surface {\n width: inherit;\n height: inherit;\n position: relative;\n border-radius: inherit;\n display: flex;\n justify-content: center;\n align-items: center;\n /* color: var(--md-sys-color-primary); */\n}\n\n.container,\n.state {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n border-radius: inherit;\n}\n\n.container {\n z-index: 1;\n transition: box-shadow 160ms cubic-bezier(.4,0,.2,1), background-color 230ms cubic-bezier(.4,0,.2,1);\n background-color: var(--md-sys-color-surface);\n}\n\n:host([selected]) .container {\n background-color: var(--md-sys-color-secondary-container);\n}\n\n:host([selected]) .content,\n:host([selected]) .content slot::slotted(*) {\n color: var(--md-sys-color-on-secondary-container);\n fill: var(--md-sys-color-on-secondary-container);\n}\n\n.state {\n z-index: 2;\n opacity: 0;\n transition: opacity 260ms cubic-bezier(.4,0,.2,1);\n}\n\n.content {\n z-index: 3;\n display: flex;\n justify-content: start;\n align-items: center;\n position: relative;\n padding: 16px 24px 16px 16px;\n width: inherit;\n color: var(--md-sys-color-on-surface);\n}\n\n.ripple {\n border-radius: inherit;\n z-index: 3;\n}\n\n/* .surface.withIcon .content {\n padding: 0 24px 0 16px;\n} */\n\n.surface.withIcon slot[name=\"icon\"]::slotted(*) {\n margin-right: 12px;\n margin-left: 0px;\n}\n\n.content slot::slotted(*) {\n color: var(--md-sys-color-on-surface-variant);\n fill: var(--md-sys-color-on-surface-variant);\n}\n\n:host([disabled]) {\n pointer-events: none;\n}\n\n:host([disabled]) .content {\n opacity: 0.38;\n}\n\n:host([disabled]) .content,\n:host([disabled]) .content slot::slotted(*) {\n color: var(--md-sys-color-on-surface) !important;\n fill: var(--md-sys-color-on-surface) !important;\n}\n\n:host(:hover) .state {\n background-color: var(--md-sys-color-primary);\n opacity: var(--md-sys-state-hover-state-layer-opacity);\n}\n\n:host(:focus) .state {\n background-color: var(--md-sys-color-primary);\n opacity: var(--md-sys-state-focus-state-layer-opacity);\n}\n\n:host(:active) .state,\n.pressed .state {\n background-color: var(--md-sys-color-primary);\n opacity: var(--md-sys-state-pressed-state-layer-opacity);\n}\n`;\n"]}
@@ -11,28 +11,27 @@ export default class AppNavigationItemElement extends UiElement {
11
11
  static get styles() {
12
12
  return elementStyles;
13
13
  }
14
- /**
15
- * When set, the button is a disabled state.
16
- * @attribute
17
- */
18
- disabled = false;
19
- /**
20
- * Whether the navigation item is selected.
21
- * @attribute
22
- */
23
- selected = false;
24
- ripple;
25
- showRipple = false;
26
- getRipple = () => {
27
- this.showRipple = true;
28
- return this.ripple;
29
- };
30
- /**
31
- * Determines when the element has an icon in the "icon" slot.
32
- */
33
- hasIcon;
34
14
  constructor() {
35
15
  super();
16
+ /**
17
+ * When set, the button is a disabled state.
18
+ * @attribute
19
+ */
20
+ this.disabled = false;
21
+ /**
22
+ * Whether the navigation item is selected.
23
+ * @attribute
24
+ */
25
+ this.selected = false;
26
+ this.showRipple = false;
27
+ this.getRipple = () => {
28
+ this.showRipple = true;
29
+ return this.ripple;
30
+ };
31
+ this.renderRipple = () => {
32
+ const { disabled } = this;
33
+ return html `<ui-ripple class="ripple" ?disabled="${disabled}"></ui-ripple>`;
34
+ };
36
35
  this.hasIcon = false;
37
36
  this.actionController.cancelKeyboardEvents = true;
38
37
  this.addEventListener('keydown', this.handleKeyDown.bind(this));
@@ -107,10 +106,6 @@ export default class AppNavigationItemElement extends UiElement {
107
106
  renderIcon() {
108
107
  return html `<slot name="icon" @slotchange="${this.iconSlotChange}"></slot>`;
109
108
  }
110
- renderRipple = () => {
111
- const { disabled } = this;
112
- return html `<ui-ripple class="ripple" ?disabled="${disabled}"></ui-ripple>`;
113
- };
114
109
  }
115
110
  __decorate([
116
111
  property({ reflect: true, type: Boolean })
@@ -1 +1 @@
1
- {"version":3,"file":"AppNavigationItemElement.js","sourceRoot":"","sources":["../../../src/elements/navigation/AppNavigationItemElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResult, html, TemplateResult } from \"lit\";\nimport { property, queryAsync, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { when } from 'lit/directives/when.js';\nimport UiRipple from \"../../ui/effects/ripple.js\";\nimport { ripple } from '../../ui/effects/rippleDirective.js';\nimport { UiElement } from \"../../ui/UiElement.js\";\nimport elementStyles from './AppNavigationItem.styles.js';\nimport '../../define/ui/ui-ripple.js';\n\nexport default class AppNavigationItemElement extends UiElement {\n static override get styles(): CSSResult | CSSResult[] {\n return elementStyles;\n }\n \n /**\n * When set, the button is a disabled state.\n * @attribute\n */\n @property({ reflect: true, type: Boolean }) disabled = false;\n\n /**\n * Whether the navigation item is selected.\n * @attribute\n */\n @property({ reflect: true, type: Boolean }) selected = false;\n\n @queryAsync('ui-ripple') protected ripple!: Promise<UiRipple | null>;\n\n @state() protected showRipple = false;\n\n protected readonly getRipple = (): Promise<UiRipple | null> => {\n this.showRipple = true;\n return this.ripple;\n };\n\n /**\n * Determines when the element has an icon in the \"icon\" slot.\n */\n @state() protected hasIcon: boolean;\n\n constructor() {\n super();\n\n this.hasIcon = false;\n\n this.actionController.cancelKeyboardEvents = true;\n this.addEventListener('keydown', this.handleKeyDown.bind(this));\n this.addEventListener('keyup', this.handleKeyUp.bind(this));\n this.addEventListener('click', this.handleClick.bind(this));\n this.addEventListener('pointerdown', this.handlePointerDown.bind(this));\n this.addEventListener('pointerup', this.handlePointerUp.bind(this));\n this.addEventListener('pointercancel', this.handlePointerCancel.bind(this));\n this.addEventListener('pointerleave', this.handlePointerLeave.bind(this));\n this.addEventListener('contextmenu', this.handleContextMenu.bind(this));\n this.addEventListener('focus', this.handleFocus.bind(this));\n this.addEventListener('blur', this.handleBlur.bind(this));\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'button');\n }\n if (!this.hasAttribute('tabindex') && !this.disabled) {\n this.setAttribute('tabindex', '0');\n }\n }\n\n protected async handleFocus(): Promise<void> {\n const _ripple = await this.getRipple();\n _ripple?.beginFocus();\n }\n\n protected async handleBlur(): Promise<void> {\n const _ripple = await this.getRipple();\n _ripple?.endFocus();\n }\n\n override async handleKeyDown(e: KeyboardEvent): Promise<void> {\n super.handleKeyDown(e);\n if (['Space'].includes(e.code)) {\n const _ripple = await this.getRipple();\n _ripple?.beginPress();\n }\n }\n\n override async handleKeyUp(e: KeyboardEvent): Promise<void> {\n super.handleKeyUp(e);\n if (['Space'].includes(e.code)) {\n const _ripple = await this.getRipple();\n _ripple?.endPress();\n this.click();\n }\n }\n\n /**\n * Sets the `_hasIcon` state property when the \"icon\" slot change event is dispatched.\n */\n protected iconSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this.hasIcon = !!slot.assignedNodes().length;\n }\n\n protected override render(): TemplateResult {\n const { pressed = false } = this;\n const containerClasses = classMap({\n surface: true,\n withIcon: this.hasIcon,\n pressed,\n });\n return html`\n <div class=\"${containerClasses}\" ${ripple(this.getRipple)}>\n <div class=\"container\"></div>\n <div class=\"state\"></div>\n ${when(this.showRipple, this.renderRipple)}\n <div class=\"content\">\n ${this.renderIcon()}\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n protected renderIcon(): TemplateResult {\n return html`<slot name=\"icon\" @slotchange=\"${this.iconSlotChange}\"></slot>`;\n }\n\n protected renderRipple = (): TemplateResult => {\n const { disabled } = this;\n return html`<ui-ripple class=\"ripple\" ?disabled=\"${disabled}\"></ui-ripple>`;\n };\n}\n"]}
1
+ {"version":3,"file":"AppNavigationItemElement.js","sourceRoot":"","sources":["../../../src/elements/navigation/AppNavigationItemElement.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResult, html, TemplateResult } from \"lit\";\nimport { property, queryAsync, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { when } from 'lit/directives/when.js';\nimport UiRipple from \"../../ui/effects/ripple.js\";\nimport { ripple } from '../../ui/effects/rippleDirective.js';\nimport { UiElement } from \"../../ui/UiElement.js\";\nimport elementStyles from './AppNavigationItem.styles.js';\nimport '../../define/ui/ui-ripple.js';\n\nexport default class AppNavigationItemElement extends UiElement {\n static override get styles(): CSSResult | CSSResult[] {\n return elementStyles;\n }\n \n /**\n * When set, the button is a disabled state.\n * @attribute\n */\n @property({ reflect: true, type: Boolean }) disabled = false;\n\n /**\n * Whether the navigation item is selected.\n * @attribute\n */\n @property({ reflect: true, type: Boolean }) selected = false;\n\n @queryAsync('ui-ripple') protected ripple!: Promise<UiRipple | null>;\n\n @state() protected showRipple = false;\n\n protected readonly getRipple = (): Promise<UiRipple | null> => {\n this.showRipple = true;\n return this.ripple;\n };\n\n /**\n * Determines when the element has an icon in the \"icon\" slot.\n */\n @state() protected hasIcon: boolean;\n\n constructor() {\n super();\n\n this.hasIcon = false;\n\n this.actionController.cancelKeyboardEvents = true;\n this.addEventListener('keydown', this.handleKeyDown.bind(this));\n this.addEventListener('keyup', this.handleKeyUp.bind(this));\n this.addEventListener('click', this.handleClick.bind(this));\n this.addEventListener('pointerdown', this.handlePointerDown.bind(this));\n this.addEventListener('pointerup', this.handlePointerUp.bind(this));\n this.addEventListener('pointercancel', this.handlePointerCancel.bind(this));\n this.addEventListener('pointerleave', this.handlePointerLeave.bind(this));\n this.addEventListener('contextmenu', this.handleContextMenu.bind(this));\n this.addEventListener('focus', this.handleFocus.bind(this));\n this.addEventListener('blur', this.handleBlur.bind(this));\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'button');\n }\n if (!this.hasAttribute('tabindex') && !this.disabled) {\n this.setAttribute('tabindex', '0');\n }\n }\n\n protected async handleFocus(): Promise<void> {\n const _ripple = await this.getRipple();\n _ripple?.beginFocus();\n }\n\n protected async handleBlur(): Promise<void> {\n const _ripple = await this.getRipple();\n _ripple?.endFocus();\n }\n\n override async handleKeyDown(e: KeyboardEvent): Promise<void> {\n super.handleKeyDown(e);\n if (['Space'].includes(e.code)) {\n const _ripple = await this.getRipple();\n _ripple?.beginPress();\n }\n }\n\n override async handleKeyUp(e: KeyboardEvent): Promise<void> {\n super.handleKeyUp(e);\n if (['Space'].includes(e.code)) {\n const _ripple = await this.getRipple();\n _ripple?.endPress();\n this.click();\n }\n }\n\n /**\n * Sets the `_hasIcon` state property when the \"icon\" slot change event is dispatched.\n */\n protected iconSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this.hasIcon = !!slot.assignedNodes().length;\n }\n\n protected override render(): TemplateResult {\n const { pressed = false } = this;\n const containerClasses = classMap({\n surface: true,\n withIcon: this.hasIcon,\n pressed,\n });\n return html`\n <div class=\"${containerClasses}\" ${ripple(this.getRipple)}>\n <div class=\"container\"></div>\n <div class=\"state\"></div>\n ${when(this.showRipple, this.renderRipple)}\n <div class=\"content\">\n ${this.renderIcon()}\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n protected renderIcon(): TemplateResult {\n return html`<slot name=\"icon\" @slotchange=\"${this.iconSlotChange}\"></slot>`;\n }\n\n protected renderRipple = (): TemplateResult => {\n const { disabled } = this;\n return html`<ui-ripple class=\"ripple\" ?disabled=\"${disabled}\"></ui-ripple>`;\n };\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { nothing, PropertyValues, TemplateResult } from 'lit';
2
- import { ProjectRequest, HttpRequest, HttpProject, IRequestLog, IApplication, DeserializedPayload, IHttpProjectProxyInit, Environment, IProperty, RequestAuthorization, IRequestAuthorization, IHttpProjectStoreProxyInit, IProxyResult, IProjectExecutionLog, IHttpAssertion, IRequestConfig } from '@api-client/core/build/browser.js';
2
+ import { ProjectRequest, HttpRequest, HttpProject, IRequestLog, IApplication, DeserializedPayload, IHttpProjectProxyInit, Environment, IProperty, RequestAuthorization, IRequestAuthorization, IHttpProjectStoreProxyInit, IProxyResult, IProjectExecutionLog, IHttpAssertion, IRequestConfig, IHttpFlow } from '@api-client/core/build/browser.js';
3
3
  import { AuthorizationType } from '@api-client/core/build/src/models/Authorization.js';
4
4
  import { JsonPatchOperation } from '@api-client/json';
5
5
  import RequestEditor from '../http/RequestEditor.js';
@@ -67,6 +67,7 @@ export default class HttpProjectRequest extends RequestEditor {
67
67
  selectUrl(value: string): void;
68
68
  selectHeaders(model: IProperty[]): void;
69
69
  selectAssertions(assertions?: IHttpAssertion[]): void;
70
+ selectFlows(flows?: IHttpFlow[]): void;
70
71
  selectRequestConfig(config: IRequestConfig): void;
71
72
  protected updatePayload(value: DeserializedPayload, mime?: string): Promise<void>;
72
73
  addAuthorization(type: AuthorizationType): RequestAuthorization;
@@ -1 +1 @@
1
- {"version":3,"file":"HttpProjectRequest.d.ts","sourceRoot":"","sources":["../../../src/elements/project/HttpProjectRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpProjectRequest.d.ts","sourceRoot":"","sources":["../../../src/elements/project/HttpProjectRequest.ts"],"names":[],"mappings":"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"}
@@ -22,44 +22,6 @@ function stopEvent(e) {
22
22
  * The element will hook-up to the events to support project mutations.
23
23
  */
24
24
  export default class HttpProjectRequest extends RequestEditor {
25
- /**
26
- * The source project
27
- */
28
- project;
29
- /**
30
- * The key of the request being processed.
31
- * @attribute
32
- */
33
- key;
34
- /**
35
- * This property is required for the API access to work.
36
- * Set it to the current application information.
37
- */
38
- appInfo;
39
- /**
40
- * The read `expects` value from the project request.
41
- */
42
- expects;
43
- /**
44
- * The read project request object from the project.
45
- */
46
- projectRequest;
47
- /**
48
- * The list of environments that apply to the current request.
49
- */
50
- environments;
51
- /**
52
- * Computed value of the environment to render in the environment selector.
53
- * Because of the complexity of finding the name, it is computed on `environment` change only.
54
- */
55
- environmentLabel;
56
- /**
57
- * When set the requests sent from the editor will contain the entire project serialized with the request
58
- * rather just the id of the project. This is used in HTTP Client that doesn't use the net-store
59
- * and uses local proxy.
60
- * @attribute
61
- */
62
- useNetStore;
63
25
  constructor() {
64
26
  super();
65
27
  // do not propagate HTTP request internal events outside as multiple requests are rendered in the same document.
@@ -112,6 +74,7 @@ export default class HttpProjectRequest extends RequestEditor {
112
74
  this.request = expects.toJSON();
113
75
  this.authorization = request.authorization?.map(i => i.toJSON());
114
76
  this.assertions = request.assertions;
77
+ this.flows = request.flows;
115
78
  if (request.config) {
116
79
  this.config = request.config.toJSON();
117
80
  }
@@ -159,6 +122,14 @@ export default class HttpProjectRequest extends RequestEditor {
159
122
  projectRequest.assertions = assertions;
160
123
  super.selectAssertions(assertions);
161
124
  }
125
+ selectFlows(flows) {
126
+ const { projectRequest } = this;
127
+ if (!projectRequest) {
128
+ return;
129
+ }
130
+ projectRequest.flows = flows;
131
+ super.selectFlows(flows);
132
+ }
162
133
  selectRequestConfig(config) {
163
134
  const { projectRequest } = this;
164
135
  if (!projectRequest) {
@@ -183,7 +154,7 @@ export default class HttpProjectRequest extends RequestEditor {
183
154
  this.projectRequest.authorization = [];
184
155
  }
185
156
  this.projectRequest.authorization.push(schema);
186
- this.notifyRequestChanged();
157
+ this.notifyChange();
187
158
  }
188
159
  return schema;
189
160
  }
@@ -202,7 +173,7 @@ export default class HttpProjectRequest extends RequestEditor {
202
173
  return;
203
174
  }
204
175
  projectRequest.authorization[index] = new RequestAuthorization(schema);
205
- this.notifyRequestChanged();
176
+ this.notifyChange();
206
177
  }
207
178
  removeAuthorization(type) {
208
179
  super.removeAuthorization(type);
@@ -218,7 +189,7 @@ export default class HttpProjectRequest extends RequestEditor {
218
189
  return;
219
190
  }
220
191
  projectRequest.authorization.splice(index, 1);
221
- this.notifyRequestChanged();
192
+ this.notifyChange();
222
193
  }
223
194
  notifySend() {
224
195
  this.execute();
@@ -303,8 +274,8 @@ export default class HttpProjectRequest extends RequestEditor {
303
274
  this.computeEnvironmentLabel();
304
275
  projectRequest.environment = key;
305
276
  this.computeSnippetsRequest();
306
- this.notifyRequestChanged();
307
- this.notifyChanged('environment', key);
277
+ this.notifyChange();
278
+ this.notifyPropertyChanged('environment', key);
308
279
  }
309
280
  computeEnvironmentLabel() {
310
281
  const { projectRequest } = this;