@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":"SplitPanel.js","sourceRoot":"","sources":["../../../src/elements/layout/SplitPanel.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-cycle */\nimport { html, TemplateResult } from \"lit\";\nimport { uuidV4 } from \"@api-client/core/build/browser.js\";\nimport { ISplitItem, SplitItem } from \"./SplitItem.js\";\nimport { IPanelObject, LayoutType, PanelState, SplitCloseDirection, SplitDirection, SplitItemRenderCallback, SplitLayoutAddOptions, SplitPanelRemoveItemOptions, SplitPanelSplitOptions, SplitPanelTarget, SplitRegion } from \"./type.js\";\nimport { SplitLayout } from './SplitLayout.js';\nimport missingIndexes from \"../../lib/math/MissingIndexes.js\";\nimport '../../define/layout/split-view.js';\n\nexport interface ISplitPanel {\n /**\n * If already generated, the key of the panel.\n */\n key?: string;\n\n layout: SplitDirection;\n items?: IPanelObject[];\n /**\n * The item being rendered in the panel.\n * Note, this is the `key` of the item and not the `id` of the item.\n */\n selected?: string;\n}\n\n/**\n * The class represents a panel model for the split layout.\n * A panel can only hold other panels or layout items. When a panel\n * defines both, items are ignored.\n * \n * A panel can render ony one item at a time. TO view more items \n * the application needs to add panels to this panel and distribute items among them.\n */\nexport class SplitPanel {\n /**\n * The key used as an internal reference to the definitions map.\n */\n key = uuidV4();\n\n layout: SplitDirection = SplitDirection.horizontal;\n\n items: IPanelObject[] = [];\n\n /**\n * The item being rendered in the panel.\n * Note, this is the `key` of the item and not the `id` of the item.\n */\n selected?: string;\n\n /**\n * The current state of the panel.\n */\n state: PanelState = PanelState.idle;\n\n get hasPanels(): boolean {\n return this.items.some(i => i.type === LayoutType.panel);\n }\n\n get hasItems(): boolean {\n return this.items.some(i => i.type === LayoutType.item);\n }\n\n static fromLayout(manager: SplitLayout, layout = SplitDirection.horizontal): SplitPanel {\n const schema: ISplitPanel = {\n layout,\n };\n return new SplitPanel(manager, schema);\n }\n\n /**\n * @param manager A reference to the manager.\n * @param parentPanel A reference to a parent panel.\n */\n constructor(public manager: SplitLayout, schema?: ISplitPanel) {\n if (schema) {\n this.new(schema);\n }\n }\n\n new(schema: ISplitPanel): void {\n const { key = uuidV4(), layout = SplitDirection.horizontal, items, selected } = schema;\n this.key = key;\n this.layout = layout;\n if (Array.isArray(items)) {\n this.items = items.map(i => ({ ...i }));\n } else {\n this.items = [];\n }\n if (selected) {\n this.selected = selected;\n } else {\n this.selected = undefined;\n }\n this.state = PanelState.idle;\n }\n\n toJSON(): ISplitPanel {\n const result: ISplitPanel = {\n layout: this.layout,\n key: this.key,\n };\n if (Array.isArray(this.items) && this.items.length) {\n result.items = this.items.map(i => ({ ...i }));\n }\n if (this.selected) {\n result.selected = this.selected;\n }\n return result;\n }\n\n getParent(): SplitPanel | undefined {\n return this.manager.getParent(this.key);\n }\n\n /**\n * @returns True when the panel accepts drop events.\n */\n canDrop(): boolean {\n return !!this.items.length;\n }\n\n /**\n * @returns Returns a **copy** of the items array sorted by index.\n */\n sortedItems(): SplitItem[] {\n const { items, manager } = this;\n const splitItems: SplitItem[] = [];\n items.forEach((i) => {\n if (i.type === LayoutType.item) {\n const value = manager.findItem(i.key as string);\n if (value) {\n splitItems.push(value);\n }\n }\n });\n return [...splitItems].sort((a, b) => (a.index || 0) - (b.index || 0));\n }\n\n /**\n * Finds an index where to put an item.\n * This finds \"holes\" in items where an index is not set for a given position.\n * In this case the resulting index is the missing index.\n * Otherwise it returns next after the highest index.\n * \n * @returns The index of the next item\n */\n nextIndex(): number {\n const { items, manager } = this;\n if (!items.length) {\n return 0;\n }\n const set = new Set<number>();\n for (const item of items) {\n const value = manager.findItem(item.key as string);\n if (!value) {\n continue;\n }\n const { index = 0 } = value;\n set.add(index);\n }\n const sorted = [...set].sort();\n const missing = missingIndexes(sorted);\n if (missing.length) {\n return missing[0];\n }\n const max = sorted.pop() as number;\n return max + 1;\n }\n\n /**\n * Checks whether this panel contains an item\n * @param key The key of the item to test.\n * @returns true if the panel contains an item\n */\n hasItem(key: string): boolean {\n return this.items.some(i => i.key === key);\n }\n\n /**\n * Adds an item to the layout.\n * \n * @param item The item to add\n * @param opts Layout adding item options\n * @returns Whether a new item was added to the layout. false when the item is already in the layout panel.\n */\n addItem(item: ISplitItem | SplitItem, opts: SplitLayoutAddOptions = {}): SplitItem {\n const { region = SplitRegion.center } = opts;\n const hasItem = region === SplitRegion.center && this.hasItem(item.key);\n if (hasItem) {\n if (item.key !== this.selected) {\n this.selected = item.key;\n this.manager.notifyChange();\n this.updateView();\n }\n return this.manager.findItem(item.key) as SplitItem;\n }\n\n const hasOptionIndex = typeof opts.index === 'number';\n const hasItemIndex = typeof item.index === 'number';\n const hasIndex = hasOptionIndex || hasItemIndex;\n let index: number;\n if (hasOptionIndex) {\n index = opts.index as number;\n } else if (hasItemIndex) {\n index = item.index as number;\n } else {\n index = this.nextIndex();\n }\n if (region === SplitRegion.center || (!this.hasItems && !this.hasPanels)) {\n if (hasIndex) {\n this.increaseIndex(index); // + 1\n }\n const instance = (item as SplitItem).toJSON ? item as SplitItem : new SplitItem(this.manager, item);\n instance.index = index;\n this.items.push({\n type: LayoutType.item,\n key: item.key,\n });\n this.manager.definitions.set(item.key, {\n type: LayoutType.item,\n value: instance,\n });\n // this.manager.dispatchNameItem(instance); ???? it's a fresh definition, should have a current name.\n this.selected = item.key;\n this.manager.notifyChange();\n this.updateView();\n return instance;\n }\n\n let panel: SplitPanel;\n if (region === 'east') {\n [, panel] = this.split({\n layout: SplitDirection.horizontal,\n itemsTarget: SplitPanelTarget.first,\n noSideEffects: true,\n });\n } else if (region === 'west') {\n [panel] = this.split({\n layout: SplitDirection.horizontal,\n itemsTarget: SplitPanelTarget.other,\n noSideEffects: true,\n });\n } else if (region === 'south') {\n [, panel] = this.split({\n layout: SplitDirection.vertical,\n itemsTarget: SplitPanelTarget.first,\n noSideEffects: true,\n });\n } else {\n [panel] = this.split({\n layout: SplitDirection.vertical,\n itemsTarget: SplitPanelTarget.other,\n noSideEffects: true,\n });\n }\n // we don't call request update here because\n // the app has to redo the view rendering first as\n // the panel purpose has changed.\n return panel.addItem(item, { index });\n }\n\n /**\n * Splits this panel into 2 panels.\n * This to be used when the panel has no other panels. Only items are allowed.\n * It produces 2 new panels and moves the items to the first one leaving the other one available.\n */\n split(opts: SplitPanelSplitOptions = {}): SplitPanel[] {\n const { layout = SplitDirection.horizontal, itemsTarget = SplitPanelTarget.first } = opts;\n if (this.hasPanels) {\n throw new Error(`Invalid state. Panels can be split only when containing items only.`);\n }\n this.layout = layout;\n const { items, selected } = this;\n this.items = [];\n this.selected = undefined;\n\n const p1 = this.addPanel()\n const p2 = this.addPanel()\n\n\n\n\n // const p1 = new SplitPanel(this.manager);\n // const p2 = new SplitPanel(this.manager);\n // this.manager.definitions.set(p1.key, {\n // type: LayoutType.panel,\n // value: p1,\n // });\n // this.manager.definitions.set(p2.key, {\n // type: LayoutType.panel,\n // value: p2,\n // });\n // this.items.push({\n // type: LayoutType.panel,\n // key: p1.key,\n // });\n // this.items.push({\n // type: LayoutType.panel,\n // key: p2.key,\n // });\n\n const panel = itemsTarget === SplitPanelTarget.first ? p1 : p2;\n panel.items = items;\n panel.selected = selected;\n if (!opts.noSideEffects) {\n this.manager.notifyChange();\n }\n return [p1, p2];\n }\n\n unsplit(): void {\n const panelItem = this.items.find(i => i.type === LayoutType.panel);\n if (!panelItem) {\n throw new Error('Invalid state. This panel has no panels to unshift.');\n }\n const panel = this.manager.findPanel(panelItem.key);\n if (!panel) {\n throw new Error('Invalid state. This panel is not managed by the SplitManager.');\n }\n const { items, selected } = panel;\n this.items = items;\n this.selected = selected;\n this.manager.notifyChange();\n }\n\n /**\n * Decreases items index by 1 to all items with index at least equal to `fromIndex`.\n * @param fromIndex The minimal index to affect.\n */\n decreaseIndex(fromIndex: number): void {\n for (const item of this.items) {\n if (item.type !== LayoutType.item) {\n continue;\n }\n const definition = this.manager.findItem(item.key);\n if (!definition) {\n continue;\n }\n if (!definition.index) {\n definition.index = 0;\n }\n const { index } = definition;\n if (index >= fromIndex && index > 0) {\n definition.index -= 1;\n }\n }\n }\n\n /**\n * Increases items index by 1 to all items with index at least equal to `fromIndex`.\n * @param fromIndex The minimal index to affect.\n */\n increaseIndex(fromIndex: number): void {\n for (const item of this.items) {\n if (item.type !== LayoutType.item) {\n continue;\n }\n const definition = this.manager.findItem(item.key);\n if (!definition) {\n continue;\n }\n if (!definition.index) {\n definition.index = 0;\n }\n const { index } = definition;\n if (index >= fromIndex) {\n definition.index += 1;\n }\n }\n }\n\n /**\n * Removes an item from the layout\n * @param key The `key` of the item.\n * @returns The removed item, if any.\n */\n removeItem(key: string, opts: SplitPanelRemoveItemOptions = {}): SplitItem | undefined {\n const removed = this.manager.findItem(key);\n if (!removed) {\n return undefined;\n }\n const index = this.items.findIndex(i => i.key === key);\n if (index < 0) {\n return undefined;\n }\n const itemInfo = this.items[index];\n this.items.splice(index, 1);\n this.manager.definitions.delete(itemInfo.key);\n this.decreaseIndex(removed.index || 0);\n\n if (this.items.length === 0) {\n // remove panel (self)\n const parent = this.getParent();\n if (parent) {\n parent.removePanel(this.key);\n // Note, ignore `opts.noSideEffects` for tab close. It won't get dispatched elsewhere.\n this.manager.notifyTabClose(key);\n // no point doing the stuff below as the whole panel is removed.\n return removed;\n }\n }\n if (this.selected === key) {\n let nextKey: string | undefined;\n if (this.items[index]) {\n nextKey = this.items[index].key;\n } else if (this.items[index - 1]) {\n nextKey = this.items[index - 1].key;\n } else if (this.items.length) {\n const [item] = this.items;\n nextKey = item.key;\n }\n this.selected = nextKey;\n }\n if (!opts.noSideEffects) {\n this.manager.notifyTabClose(key);\n this.manager.notifyChange();\n this.manager.updateView(this.key);\n }\n return removed;\n }\n\n /**\n * @param key The key of the item to perform a relative operation from.\n * @param dir The direction to which close other items. Default to both directions leaving only the `key` item\n */\n removeRelative(key: string, dir: SplitCloseDirection = SplitCloseDirection.both): void {\n const index = this.items.findIndex(i => i.key === key);\n if (index < 0) {\n return;\n }\n // note, even though we keep indexes in the item, the logic actually\n // keeps track of them and orders the `items` accordingly.\n const item = this.items[index];\n let removed: IPanelObject[];\n if (dir === SplitCloseDirection.both) {\n removed = this.items.filter(i => i !== item);\n this.items = [item];\n this.selected = item.key;\n } else if (dir === SplitCloseDirection.left) {\n removed = this.items.slice(0, index);\n this.items = this.items.splice(index);\n this.selected = item.key;\n } else {\n removed = this.items.slice(index + 1);\n this.items = this.items.splice(0, index + 1);\n this.selected = item.key;\n }\n removed.forEach(i => {\n this.manager.definitions.delete(i.key);\n this.manager.notifyTabClose(i.key);\n });\n this.manager.notifyChange();\n this.manager.updateView(this.key);\n }\n\n removePanel(id: string, opts: SplitPanelRemoveItemOptions = {}): void {\n const index = this.items.findIndex(p => p.key === id);\n if (index < 0) {\n return;\n }\n const item = this.items[index];\n\n const panel = this.manager.findPanel(item.key) as SplitPanel;\n panel.clearItems();\n\n this.items.splice(index, 1);\n this.manager.definitions.delete(item.key);\n if (this.items.length === 1) {\n this.unsplit();\n }\n if (!opts.noSideEffects) {\n this.manager.notifyChange();\n this.manager.updateView(this.key);\n }\n }\n\n clearItems(opts?: SplitPanelRemoveItemOptions): void {\n const { items } = this;\n items.forEach((childItem) => {\n if (childItem.type === LayoutType.item) {\n this.removeItem(childItem.key, opts);\n } else {\n this.removePanel(childItem.key, opts);\n }\n });\n }\n\n /**\n * Moves an item to a new index.\n * \n * @param key The item key\n * @param toIndex The new index. When not set it moves the item to the end.\n */\n moveItem(key: string, toIndex?: number): void {\n const info = this.items.find(i => i.key === key);\n if (!info) {\n return;\n }\n const item = this.manager.findItem(info.key);\n if (!item) {\n return;\n }\n const hasIndex = typeof toIndex === 'number';\n if (hasIndex && item.index === toIndex) {\n return;\n }\n let hasTargetAtTarget = false;\n if (hasIndex) {\n hasTargetAtTarget = !!this.items[toIndex];\n }\n if (item.index !== undefined) {\n this.decreaseIndex(item.index);\n }\n const finalIndex = hasIndex ? toIndex as number : this.nextIndex();\n if (hasTargetAtTarget) {\n this.increaseIndex(finalIndex);\n }\n item.index = finalIndex;\n this.manager.notifyChange();\n this.manager.updateView(this.key);\n }\n\n updateView(): void {\n const layout = this.manager.findView(this.key);\n if (!layout) {\n return;\n }\n layout.requestUpdate();\n }\n\n addPanel(layout = SplitDirection.horizontal): SplitPanel {\n return this.manager.addPanel({ layout, parent: this.key });\n }\n\n panelTemplate(panel: SplitPanel, itemCallback: SplitItemRenderCallback): TemplateResult | undefined {\n const { layout, items, selected, manager } = panel;\n const renderPanels = items.filter(i => i.type === LayoutType.panel);\n const renderItems = items.filter(i => i.type === LayoutType.item);\n if (!renderPanels.length && !renderItems.length) {\n return undefined;\n }\n const { dragTypes, constrain } = manager.options;\n let content: (TemplateResult | undefined)[];\n \n if (renderPanels.length) {\n content = renderPanels.map((item) => {\n const targetPanel = manager.findPanel(item.key);\n return targetPanel && this.panelTemplate(targetPanel, itemCallback)\n });\n } else {\n content = renderItems.map((item) => {\n const targetItem = manager.findItem(item.key);\n return targetItem && this.itemTemplate(targetItem, targetItem.key === selected, itemCallback)\n });\n }\n const valid = content.filter(i => !!i);\n if (!valid.length) {\n return undefined;\n }\n return html`\n <split-view \n layout=\"${layout}\" \n .dragTypes=\"${dragTypes}\" \n .panel=\"${panel}\"\n .key=\"${panel.key}\"\n ?constrain=\"${constrain}\"\n >\n ${content}\n </split-view>\n `;\n }\n\n itemTemplate(item: SplitItem, visible: boolean, itemCallback: SplitItemRenderCallback): TemplateResult {\n return itemCallback(item, visible);\n }\n\n render(itemCallback: SplitItemRenderCallback): TemplateResult | undefined {\n return this.panelTemplate(this, itemCallback);\n }\n}\n"]}
1
+ {"version":3,"file":"SplitPanel.js","sourceRoot":"","sources":["../../../src/elements/layout/SplitPanel.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,OAAO,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAc,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAgB,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAuG,gBAAgB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE1O,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,mCAAmC,CAAC;AAiB3C;;;;;;;GAOG;AACH,MAAM,OAAO,UAAU;IAqBrB,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,OAAoB,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU;QACxE,MAAM,MAAM,GAAgB;YAC1B,MAAM;SACP,CAAC;QACF,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,YAAmB,OAAoB,EAAE,MAAoB;QAA1C,YAAO,GAAP,OAAO,CAAa;QAvCvC;;WAEG;QACH,QAAG,GAAG,MAAM,EAAE,CAAC;QAEf,WAAM,GAAmB,cAAc,CAAC,UAAU,CAAC;QAEnD,UAAK,GAAmB,EAAE,CAAC;QAQ3B;;WAEG;QACH,UAAK,GAAe,UAAU,CAAC,IAAI,CAAC;QAsBlC,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAClB;IACH,CAAC;IAED,GAAG,CAAC,MAAmB;QACrB,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QACvF,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;SACzC;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;SACjB;QACD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B;aAAM;YACL,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;SAC3B;QACD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,MAAM,MAAM,GAAgB;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAClD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;SAChD;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;SACjC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,WAAW;QACT,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAChC,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAClB,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE;gBAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAa,CAAC,CAAC;gBAChD,IAAI,KAAK,EAAE;oBACT,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACxB;aACF;QACH,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;OAOG;IACH,SAAS;QACP,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACjB,OAAO,CAAC,CAAC;SACV;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAa,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK,EAAE;gBACV,SAAS;aACV;YACD,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC;YAC5B,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAChB;QACD,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;SACnB;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,EAAY,CAAC;QACnC,OAAO,GAAG,GAAG,CAAC,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,GAAW;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,IAA4B,EAAE,OAA8B,EAAE;QACpE,MAAM,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,KAAK,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxE,IAAI,OAAO,EAAE;YACX,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,EAAE;gBAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAc,CAAC;SACrD;QAED,MAAM,cAAc,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC;QACtD,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC;QACpD,MAAM,QAAQ,GAAG,cAAc,IAAI,YAAY,CAAC;QAChD,IAAI,KAAa,CAAC;QAClB,IAAI,cAAc,EAAE;YAClB,KAAK,GAAG,IAAI,CAAC,KAAe,CAAC;SAC9B;aAAM,IAAI,YAAY,EAAE;YACvB,KAAK,GAAG,IAAI,CAAC,KAAe,CAAC;SAC9B;aAAM;YACL,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;SAC1B;QACD,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACxE,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;aACnC;YACD,MAAM,QAAQ,GAAI,IAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAiB,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpG,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,GAAG,EAAE,IAAI,CAAC,GAAG;aACd,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrC,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;YACH,qGAAqG;YACrG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO,QAAQ,CAAC;SACjB;QAED,IAAI,KAAiB,CAAC;QACtB,IAAI,MAAM,KAAK,MAAM,EAAE;YACrB,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBACrB,MAAM,EAAE,cAAc,CAAC,UAAU;gBACjC,WAAW,EAAE,gBAAgB,CAAC,KAAK;gBACnC,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;aAAM,IAAI,MAAM,KAAK,MAAM,EAAE;YAC5B,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBACnB,MAAM,EAAE,cAAc,CAAC,UAAU;gBACjC,WAAW,EAAE,gBAAgB,CAAC,KAAK;gBACnC,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;aAAM,IAAI,MAAM,KAAK,OAAO,EAAE;YAC7B,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBACrB,MAAM,EAAE,cAAc,CAAC,QAAQ;gBAC/B,WAAW,EAAE,gBAAgB,CAAC,KAAK;gBACnC,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;aAAM;YACL,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBACnB,MAAM,EAAE,cAAc,CAAC,QAAQ;gBAC/B,WAAW,EAAE,gBAAgB,CAAC,KAAK;gBACnC,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;SACJ;QACD,4CAA4C;QAC5C,kDAAkD;QAClD,iCAAiC;QACjC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAA+B,EAAE;QACrC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,EAAE,WAAW,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC;QAC1F,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;SACxF;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAE1B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAA;QAK1B,2CAA2C;QAC3C,2CAA2C;QAC3C,yCAAyC;QACzC,4BAA4B;QAC5B,eAAe;QACf,MAAM;QACN,yCAAyC;QACzC,4BAA4B;QAC5B,eAAe;QACf,MAAM;QACN,oBAAoB;QACpB,4BAA4B;QAC5B,iBAAiB;QACjB,MAAM;QACN,oBAAoB;QACpB,4BAA4B;QAC5B,iBAAiB;QACjB,MAAM;QAEN,MAAM,KAAK,GAAG,WAAW,KAAK,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACpB,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;SAC7B;QACD,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,OAAO;QACL,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;SAClF;QACD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,SAAiB;QAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE;gBACjC,SAAS;aACV;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,EAAE;gBACf,SAAS;aACV;YACD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBACrB,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;aACtB;YACD,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;YAC7B,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,GAAG,CAAC,EAAE;gBACnC,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;aACvB;SACF;IACH,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,SAAiB;QAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE;gBACjC,SAAS;aACV;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,IAAI,CAAC,UAAU,EAAE;gBACf,SAAS;aACV;YACD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBACrB,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;aACtB;YACD,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;YAC7B,IAAI,KAAK,IAAI,SAAS,EAAE;gBACtB,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;aACvB;SACF;IACH,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,GAAW,EAAE,OAAoC,EAAE;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACvD,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QAEvC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,sBAAsB;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,MAAM,EAAE;gBACV,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7B,sFAAsF;gBACtF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBACjC,gEAAgE;gBAChE,OAAO,OAAO,CAAC;aAChB;SACF;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG,EAAE;YACzB,IAAI,OAA2B,CAAC;YAChC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACrB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;aACjC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;gBAChC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;aACrC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC1B,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;aACpB;YACD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;SACzB;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACnC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,GAAW,EAAE,MAA2B,mBAAmB,CAAC,IAAI;QAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACvD,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,OAAO;SACR;QACD,oEAAoE;QACpE,0DAA0D;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,OAAuB,CAAC;QAC5B,IAAI,GAAG,KAAK,mBAAmB,CAAC,IAAI,EAAE;YACpC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;SAC1B;aAAM,IAAI,GAAG,KAAK,mBAAmB,CAAC,IAAI,EAAE;YAC3C,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;SAC1B;aAAM;YACL,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;SAC1B;QACD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,EAAU,EAAE,OAAoC,EAAE;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QACtD,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,OAAO;SACR;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAe,CAAC;QAC7D,KAAK,CAAC,UAAU,EAAE,CAAC;QAEnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACnC;IACH,CAAC;IAED,UAAU,CAAC,IAAkC;QAC3C,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAC1B,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE;gBACtC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;aACtC;iBAAM;gBACL,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;aACvC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,GAAW,EAAE,OAAgB;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,MAAM,QAAQ,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC;QAC7C,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE;YACtC,OAAO;SACR;QACD,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,IAAI,QAAQ,EAAE;YACZ,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC3C;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChC;QACD,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACnE,IAAI,iBAAiB,EAAE;YACrB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SAChC;QACD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,MAAM,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,MAAM,GAAG,cAAc,CAAC,UAAU;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,aAAa,CAAC,KAAiB,EAAE,YAAqC;QACpE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QACnD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAC/C,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QACjD,IAAI,OAAuC,CAAC;QAE5C,IAAI,YAAY,CAAC,MAAM,EAAE;YACvB,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClC,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChD,OAAO,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;YACrE,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9C,OAAO,UAAU,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,KAAK,QAAQ,EAAE,YAAY,CAAC,CAAA;YAC/F,CAAC,CAAC,CAAC;SACJ;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACjB,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,IAAI,CAAA;;gBAEC,MAAM;oBACF,SAAS;gBACb,KAAK;cACP,KAAK,CAAC,GAAG;oBACH,SAAS;;QAErB,OAAO;;KAEV,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,IAAe,EAAE,OAAgB,EAAE,YAAqC;QACnF,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,YAAqC;QAC1C,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAChD,CAAC;CACF","sourcesContent":["/* eslint-disable import/no-cycle */\nimport { html, TemplateResult } from \"lit\";\nimport { uuidV4 } from \"@api-client/core/build/browser.js\";\nimport { ISplitItem, SplitItem } from \"./SplitItem.js\";\nimport { IPanelObject, LayoutType, PanelState, SplitCloseDirection, SplitDirection, SplitItemRenderCallback, SplitLayoutAddOptions, SplitPanelRemoveItemOptions, SplitPanelSplitOptions, SplitPanelTarget, SplitRegion } from \"./type.js\";\nimport { SplitLayout } from './SplitLayout.js';\nimport missingIndexes from \"../../lib/math/MissingIndexes.js\";\nimport '../../define/layout/split-view.js';\n\nexport interface ISplitPanel {\n /**\n * If already generated, the key of the panel.\n */\n key?: string;\n\n layout: SplitDirection;\n items?: IPanelObject[];\n /**\n * The item being rendered in the panel.\n * Note, this is the `key` of the item and not the `id` of the item.\n */\n selected?: string;\n}\n\n/**\n * The class represents a panel model for the split layout.\n * A panel can only hold other panels or layout items. When a panel\n * defines both, items are ignored.\n * \n * A panel can render ony one item at a time. TO view more items \n * the application needs to add panels to this panel and distribute items among them.\n */\nexport class SplitPanel {\n /**\n * The key used as an internal reference to the definitions map.\n */\n key = uuidV4();\n\n layout: SplitDirection = SplitDirection.horizontal;\n\n items: IPanelObject[] = [];\n\n /**\n * The item being rendered in the panel.\n * Note, this is the `key` of the item and not the `id` of the item.\n */\n selected?: string;\n\n /**\n * The current state of the panel.\n */\n state: PanelState = PanelState.idle;\n\n get hasPanels(): boolean {\n return this.items.some(i => i.type === LayoutType.panel);\n }\n\n get hasItems(): boolean {\n return this.items.some(i => i.type === LayoutType.item);\n }\n\n static fromLayout(manager: SplitLayout, layout = SplitDirection.horizontal): SplitPanel {\n const schema: ISplitPanel = {\n layout,\n };\n return new SplitPanel(manager, schema);\n }\n\n /**\n * @param manager A reference to the manager.\n * @param parentPanel A reference to a parent panel.\n */\n constructor(public manager: SplitLayout, schema?: ISplitPanel) {\n if (schema) {\n this.new(schema);\n }\n }\n\n new(schema: ISplitPanel): void {\n const { key = uuidV4(), layout = SplitDirection.horizontal, items, selected } = schema;\n this.key = key;\n this.layout = layout;\n if (Array.isArray(items)) {\n this.items = items.map(i => ({ ...i }));\n } else {\n this.items = [];\n }\n if (selected) {\n this.selected = selected;\n } else {\n this.selected = undefined;\n }\n this.state = PanelState.idle;\n }\n\n toJSON(): ISplitPanel {\n const result: ISplitPanel = {\n layout: this.layout,\n key: this.key,\n };\n if (Array.isArray(this.items) && this.items.length) {\n result.items = this.items.map(i => ({ ...i }));\n }\n if (this.selected) {\n result.selected = this.selected;\n }\n return result;\n }\n\n getParent(): SplitPanel | undefined {\n return this.manager.getParent(this.key);\n }\n\n /**\n * @returns True when the panel accepts drop events.\n */\n canDrop(): boolean {\n return !!this.items.length;\n }\n\n /**\n * @returns Returns a **copy** of the items array sorted by index.\n */\n sortedItems(): SplitItem[] {\n const { items, manager } = this;\n const splitItems: SplitItem[] = [];\n items.forEach((i) => {\n if (i.type === LayoutType.item) {\n const value = manager.findItem(i.key as string);\n if (value) {\n splitItems.push(value);\n }\n }\n });\n return [...splitItems].sort((a, b) => (a.index || 0) - (b.index || 0));\n }\n\n /**\n * Finds an index where to put an item.\n * This finds \"holes\" in items where an index is not set for a given position.\n * In this case the resulting index is the missing index.\n * Otherwise it returns next after the highest index.\n * \n * @returns The index of the next item\n */\n nextIndex(): number {\n const { items, manager } = this;\n if (!items.length) {\n return 0;\n }\n const set = new Set<number>();\n for (const item of items) {\n const value = manager.findItem(item.key as string);\n if (!value) {\n continue;\n }\n const { index = 0 } = value;\n set.add(index);\n }\n const sorted = [...set].sort();\n const missing = missingIndexes(sorted);\n if (missing.length) {\n return missing[0];\n }\n const max = sorted.pop() as number;\n return max + 1;\n }\n\n /**\n * Checks whether this panel contains an item\n * @param key The key of the item to test.\n * @returns true if the panel contains an item\n */\n hasItem(key: string): boolean {\n return this.items.some(i => i.key === key);\n }\n\n /**\n * Adds an item to the layout.\n * \n * @param item The item to add\n * @param opts Layout adding item options\n * @returns Whether a new item was added to the layout. false when the item is already in the layout panel.\n */\n addItem(item: ISplitItem | SplitItem, opts: SplitLayoutAddOptions = {}): SplitItem {\n const { region = SplitRegion.center } = opts;\n const hasItem = region === SplitRegion.center && this.hasItem(item.key);\n if (hasItem) {\n if (item.key !== this.selected) {\n this.selected = item.key;\n this.manager.notifyChange();\n this.updateView();\n }\n return this.manager.findItem(item.key) as SplitItem;\n }\n\n const hasOptionIndex = typeof opts.index === 'number';\n const hasItemIndex = typeof item.index === 'number';\n const hasIndex = hasOptionIndex || hasItemIndex;\n let index: number;\n if (hasOptionIndex) {\n index = opts.index as number;\n } else if (hasItemIndex) {\n index = item.index as number;\n } else {\n index = this.nextIndex();\n }\n if (region === SplitRegion.center || (!this.hasItems && !this.hasPanels)) {\n if (hasIndex) {\n this.increaseIndex(index); // + 1\n }\n const instance = (item as SplitItem).toJSON ? item as SplitItem : new SplitItem(this.manager, item);\n instance.index = index;\n this.items.push({\n type: LayoutType.item,\n key: item.key,\n });\n this.manager.definitions.set(item.key, {\n type: LayoutType.item,\n value: instance,\n });\n // this.manager.dispatchNameItem(instance); ???? it's a fresh definition, should have a current name.\n this.selected = item.key;\n this.manager.notifyChange();\n this.updateView();\n return instance;\n }\n\n let panel: SplitPanel;\n if (region === 'east') {\n [, panel] = this.split({\n layout: SplitDirection.horizontal,\n itemsTarget: SplitPanelTarget.first,\n noSideEffects: true,\n });\n } else if (region === 'west') {\n [panel] = this.split({\n layout: SplitDirection.horizontal,\n itemsTarget: SplitPanelTarget.other,\n noSideEffects: true,\n });\n } else if (region === 'south') {\n [, panel] = this.split({\n layout: SplitDirection.vertical,\n itemsTarget: SplitPanelTarget.first,\n noSideEffects: true,\n });\n } else {\n [panel] = this.split({\n layout: SplitDirection.vertical,\n itemsTarget: SplitPanelTarget.other,\n noSideEffects: true,\n });\n }\n // we don't call request update here because\n // the app has to redo the view rendering first as\n // the panel purpose has changed.\n return panel.addItem(item, { index });\n }\n\n /**\n * Splits this panel into 2 panels.\n * This to be used when the panel has no other panels. Only items are allowed.\n * It produces 2 new panels and moves the items to the first one leaving the other one available.\n */\n split(opts: SplitPanelSplitOptions = {}): SplitPanel[] {\n const { layout = SplitDirection.horizontal, itemsTarget = SplitPanelTarget.first } = opts;\n if (this.hasPanels) {\n throw new Error(`Invalid state. Panels can be split only when containing items only.`);\n }\n this.layout = layout;\n const { items, selected } = this;\n this.items = [];\n this.selected = undefined;\n\n const p1 = this.addPanel()\n const p2 = this.addPanel()\n\n\n\n\n // const p1 = new SplitPanel(this.manager);\n // const p2 = new SplitPanel(this.manager);\n // this.manager.definitions.set(p1.key, {\n // type: LayoutType.panel,\n // value: p1,\n // });\n // this.manager.definitions.set(p2.key, {\n // type: LayoutType.panel,\n // value: p2,\n // });\n // this.items.push({\n // type: LayoutType.panel,\n // key: p1.key,\n // });\n // this.items.push({\n // type: LayoutType.panel,\n // key: p2.key,\n // });\n\n const panel = itemsTarget === SplitPanelTarget.first ? p1 : p2;\n panel.items = items;\n panel.selected = selected;\n if (!opts.noSideEffects) {\n this.manager.notifyChange();\n }\n return [p1, p2];\n }\n\n unsplit(): void {\n const panelItem = this.items.find(i => i.type === LayoutType.panel);\n if (!panelItem) {\n throw new Error('Invalid state. This panel has no panels to unshift.');\n }\n const panel = this.manager.findPanel(panelItem.key);\n if (!panel) {\n throw new Error('Invalid state. This panel is not managed by the SplitManager.');\n }\n const { items, selected } = panel;\n this.items = items;\n this.selected = selected;\n this.manager.notifyChange();\n }\n\n /**\n * Decreases items index by 1 to all items with index at least equal to `fromIndex`.\n * @param fromIndex The minimal index to affect.\n */\n decreaseIndex(fromIndex: number): void {\n for (const item of this.items) {\n if (item.type !== LayoutType.item) {\n continue;\n }\n const definition = this.manager.findItem(item.key);\n if (!definition) {\n continue;\n }\n if (!definition.index) {\n definition.index = 0;\n }\n const { index } = definition;\n if (index >= fromIndex && index > 0) {\n definition.index -= 1;\n }\n }\n }\n\n /**\n * Increases items index by 1 to all items with index at least equal to `fromIndex`.\n * @param fromIndex The minimal index to affect.\n */\n increaseIndex(fromIndex: number): void {\n for (const item of this.items) {\n if (item.type !== LayoutType.item) {\n continue;\n }\n const definition = this.manager.findItem(item.key);\n if (!definition) {\n continue;\n }\n if (!definition.index) {\n definition.index = 0;\n }\n const { index } = definition;\n if (index >= fromIndex) {\n definition.index += 1;\n }\n }\n }\n\n /**\n * Removes an item from the layout\n * @param key The `key` of the item.\n * @returns The removed item, if any.\n */\n removeItem(key: string, opts: SplitPanelRemoveItemOptions = {}): SplitItem | undefined {\n const removed = this.manager.findItem(key);\n if (!removed) {\n return undefined;\n }\n const index = this.items.findIndex(i => i.key === key);\n if (index < 0) {\n return undefined;\n }\n const itemInfo = this.items[index];\n this.items.splice(index, 1);\n this.manager.definitions.delete(itemInfo.key);\n this.decreaseIndex(removed.index || 0);\n\n if (this.items.length === 0) {\n // remove panel (self)\n const parent = this.getParent();\n if (parent) {\n parent.removePanel(this.key);\n // Note, ignore `opts.noSideEffects` for tab close. It won't get dispatched elsewhere.\n this.manager.notifyTabClose(key);\n // no point doing the stuff below as the whole panel is removed.\n return removed;\n }\n }\n if (this.selected === key) {\n let nextKey: string | undefined;\n if (this.items[index]) {\n nextKey = this.items[index].key;\n } else if (this.items[index - 1]) {\n nextKey = this.items[index - 1].key;\n } else if (this.items.length) {\n const [item] = this.items;\n nextKey = item.key;\n }\n this.selected = nextKey;\n }\n if (!opts.noSideEffects) {\n this.manager.notifyTabClose(key);\n this.manager.notifyChange();\n this.manager.updateView(this.key);\n }\n return removed;\n }\n\n /**\n * @param key The key of the item to perform a relative operation from.\n * @param dir The direction to which close other items. Default to both directions leaving only the `key` item\n */\n removeRelative(key: string, dir: SplitCloseDirection = SplitCloseDirection.both): void {\n const index = this.items.findIndex(i => i.key === key);\n if (index < 0) {\n return;\n }\n // note, even though we keep indexes in the item, the logic actually\n // keeps track of them and orders the `items` accordingly.\n const item = this.items[index];\n let removed: IPanelObject[];\n if (dir === SplitCloseDirection.both) {\n removed = this.items.filter(i => i !== item);\n this.items = [item];\n this.selected = item.key;\n } else if (dir === SplitCloseDirection.left) {\n removed = this.items.slice(0, index);\n this.items = this.items.splice(index);\n this.selected = item.key;\n } else {\n removed = this.items.slice(index + 1);\n this.items = this.items.splice(0, index + 1);\n this.selected = item.key;\n }\n removed.forEach(i => {\n this.manager.definitions.delete(i.key);\n this.manager.notifyTabClose(i.key);\n });\n this.manager.notifyChange();\n this.manager.updateView(this.key);\n }\n\n removePanel(id: string, opts: SplitPanelRemoveItemOptions = {}): void {\n const index = this.items.findIndex(p => p.key === id);\n if (index < 0) {\n return;\n }\n const item = this.items[index];\n\n const panel = this.manager.findPanel(item.key) as SplitPanel;\n panel.clearItems();\n\n this.items.splice(index, 1);\n this.manager.definitions.delete(item.key);\n if (this.items.length === 1) {\n this.unsplit();\n }\n if (!opts.noSideEffects) {\n this.manager.notifyChange();\n this.manager.updateView(this.key);\n }\n }\n\n clearItems(opts?: SplitPanelRemoveItemOptions): void {\n const { items } = this;\n items.forEach((childItem) => {\n if (childItem.type === LayoutType.item) {\n this.removeItem(childItem.key, opts);\n } else {\n this.removePanel(childItem.key, opts);\n }\n });\n }\n\n /**\n * Moves an item to a new index.\n * \n * @param key The item key\n * @param toIndex The new index. When not set it moves the item to the end.\n */\n moveItem(key: string, toIndex?: number): void {\n const info = this.items.find(i => i.key === key);\n if (!info) {\n return;\n }\n const item = this.manager.findItem(info.key);\n if (!item) {\n return;\n }\n const hasIndex = typeof toIndex === 'number';\n if (hasIndex && item.index === toIndex) {\n return;\n }\n let hasTargetAtTarget = false;\n if (hasIndex) {\n hasTargetAtTarget = !!this.items[toIndex];\n }\n if (item.index !== undefined) {\n this.decreaseIndex(item.index);\n }\n const finalIndex = hasIndex ? toIndex as number : this.nextIndex();\n if (hasTargetAtTarget) {\n this.increaseIndex(finalIndex);\n }\n item.index = finalIndex;\n this.manager.notifyChange();\n this.manager.updateView(this.key);\n }\n\n updateView(): void {\n const layout = this.manager.findView(this.key);\n if (!layout) {\n return;\n }\n layout.requestUpdate();\n }\n\n addPanel(layout = SplitDirection.horizontal): SplitPanel {\n return this.manager.addPanel({ layout, parent: this.key });\n }\n\n panelTemplate(panel: SplitPanel, itemCallback: SplitItemRenderCallback): TemplateResult | undefined {\n const { layout, items, selected, manager } = panel;\n const renderPanels = items.filter(i => i.type === LayoutType.panel);\n const renderItems = items.filter(i => i.type === LayoutType.item);\n if (!renderPanels.length && !renderItems.length) {\n return undefined;\n }\n const { dragTypes, constrain } = manager.options;\n let content: (TemplateResult | undefined)[];\n \n if (renderPanels.length) {\n content = renderPanels.map((item) => {\n const targetPanel = manager.findPanel(item.key);\n return targetPanel && this.panelTemplate(targetPanel, itemCallback)\n });\n } else {\n content = renderItems.map((item) => {\n const targetItem = manager.findItem(item.key);\n return targetItem && this.itemTemplate(targetItem, targetItem.key === selected, itemCallback)\n });\n }\n const valid = content.filter(i => !!i);\n if (!valid.length) {\n return undefined;\n }\n return html`\n <split-view \n layout=\"${layout}\" \n .dragTypes=\"${dragTypes}\" \n .panel=\"${panel}\"\n .key=\"${panel.key}\"\n ?constrain=\"${constrain}\"\n >\n ${content}\n </split-view>\n `;\n }\n\n itemTemplate(item: SplitItem, visible: boolean, itemCallback: SplitItemRenderCallback): TemplateResult {\n return itemCallback(item, visible);\n }\n\n render(itemCallback: SplitItemRenderCallback): TemplateResult | undefined {\n return this.panelTemplate(this, itemCallback);\n }\n}\n"]}
@@ -5,34 +5,25 @@ import { classMap } from "lit/directives/class-map.js";
5
5
  import { ifDefined } from "lit/directives/if-defined.js";
6
6
  import { SplitDirection, SplitRegion } from "./type.js";
7
7
  export default class SplitView extends LitElement {
8
- /**
9
- * @attribute
10
- */
11
- layout = SplitDirection.horizontal;
12
- /**
13
- * @attribute
14
- */
15
- key;
16
- dragTypes;
17
- /**
18
- * Whether dragging is occurring over the element
19
- */
20
- inDrag = false;
21
- /**
22
- * The region the drag is leaning to.
23
- */
24
- dragRegion = SplitRegion.center;
25
- /**
26
- * A reference to the split panel that owns this view.
27
- */
28
- panel;
29
- /**
30
- * When set it adds the `overflow` hidden on the container that holds the tab contents.
31
- * @attribute
32
- */
33
- constrain = false;
34
8
  constructor() {
35
9
  super();
10
+ /**
11
+ * @attribute
12
+ */
13
+ this.layout = SplitDirection.horizontal;
14
+ /**
15
+ * Whether dragging is occurring over the element
16
+ */
17
+ this.inDrag = false;
18
+ /**
19
+ * The region the drag is leaning to.
20
+ */
21
+ this.dragRegion = SplitRegion.center;
22
+ /**
23
+ * When set it adds the `overflow` hidden on the container that holds the tab contents.
24
+ * @attribute
25
+ */
26
+ this.constrain = false;
36
27
  this.handleDragleave = this.handleDragleave.bind(this);
37
28
  this.handleDragEnd = this.handleDragEnd.bind(this);
38
29
  this.addEventListener('dragenter', this.handleDragEnter.bind(this));
@@ -1 +1 @@
1
- {"version":3,"file":"SplitView.js","sourceRoot":"","sources":["../../../src/elements/layout/SplitView.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing, TemplateResult } from \"lit\";\nimport { eventOptions, property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { SplitItem } from \"./SplitItem.js\";\nimport { SplitPanel } from \"./SplitPanel.js\";\nimport { SplitDirection, SplitRegion } from \"./type.js\";\n\nexport default class SplitView extends LitElement {\n /**\n * @attribute\n */\n @property({ type: String, reflect: true }) layout: SplitDirection = SplitDirection.horizontal;\n\n /**\n * @attribute\n */\n @property({ type: Number, reflect: true }) key?: string;\n\n @property({ type: Array }) dragTypes?: string[];\n\n /**\n * Whether dragging is occurring over the element\n */\n @state() protected inDrag = false;\n\n /**\n * The region the drag is leaning to.\n */\n @state() protected dragRegion?: SplitRegion = SplitRegion.center;\n\n /**\n * A reference to the split panel that owns this view.\n */\n @property({ type: Object }) panel?: SplitPanel;\n\n /**\n * When set it adds the `overflow` hidden on the container that holds the tab contents.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) constrain = false;\n\n constructor() {\n super();\n this.handleDragleave = this.handleDragleave.bind(this);\n this.handleDragEnd = this.handleDragEnd.bind(this);\n this.addEventListener('dragenter', this.handleDragEnter.bind(this));\n this.addEventListener('dragover', this.handleDragOver.bind(this));\n this.addEventListener('drop', this.handleDrop.bind(this));\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n document.body.addEventListener('dragleave', this.handleDragleave);\n document.body.addEventListener('dragend', this.handleDragEnd);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n document.body.removeEventListener('dragleave', this.handleDragleave);\n document.body.removeEventListener('dragend', this.handleDragEnd);\n }\n\n protected handleDragEnter(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer || !this.panelCanDrop(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n dataTransfer.dropEffect = 'copy';\n }\n\n protected handleDragOver(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer || !this.panelCanDrop(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n const region = this.getDropRegionFromEvent(e);\n if (!region) {\n this.inDrag = false;\n return;\n }\n dataTransfer.dropEffect = 'copy';\n this.inDrag = true;\n this.dragRegion = region;\n }\n\n protected handleDrop(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer || !this.panelCanDrop(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n const kind = dataTransfer.getData('text/kind');\n const key = dataTransfer.getData('text/key');\n if (!kind || !key) {\n return;\n }\n this.inDrag = false;\n const { panel } = this;\n let dispatch = true;\n if (panel) {\n panel.addItem({ key, kind, label: 'New tab' }, { region: this.dragRegion });\n panel.manager.requestNameUpdate(key);\n dispatch = true;\n }\n if (dispatch) {\n this.dispatchEvent(new CustomEvent('datadrop', {\n detail: { kind, key, region: this.dragRegion },\n composed: true,\n bubbles: true,\n cancelable: true,\n }));\n }\n this.requestUpdate();\n }\n\n protected handleDragleave(e: DragEvent): void {\n const elm = this.findLayout(e);\n if (!elm || elm !== this) {\n this.inDrag = false;\n this.dragRegion = SplitRegion.center;\n }\n }\n\n protected handleDragEnd(): void {\n this.inDrag = false;\n this.dragRegion = SplitRegion.center;\n }\n\n protected getDropRegionFromEvent(e: DragEvent): SplitRegion | undefined {\n const layout = this.findLayout(e);\n if (!layout) {\n return undefined;\n }\n return this.getDropRegion(layout, e);\n }\n\n getDropRegion(element: HTMLElement, e: DragEvent): SplitRegion | undefined {\n const { pageX, pageY } = e;\n const rect = element.getBoundingClientRect();\n const quarterWidth = rect.width / 4;\n const quarterHeight = rect.height / 4;\n if (pageX < rect.left + quarterWidth) {\n return SplitRegion.west;\n }\n if (pageX > rect.right - quarterWidth) {\n return SplitRegion.east;\n }\n if (pageY < rect.top + quarterHeight) {\n return SplitRegion.north;\n }\n if (pageY > rect.bottom - quarterHeight) {\n return SplitRegion.south;\n }\n const withingCenterX = (pageX >= rect.left + quarterWidth) && (pageX <= rect.right - quarterWidth);\n const withingCenterY = (pageY >= rect.top + quarterHeight) && (pageY <= rect.bottom - quarterHeight);\n if (withingCenterX && withingCenterY) {\n return SplitRegion.center;\n }\n return undefined;\n }\n\n protected findLayout(e: Event): SplitView | undefined {\n const path = e.composedPath();\n while (path.length) {\n const node = path.shift() as Element;\n if (node.nodeType !== Node.ELEMENT_NODE) {\n continue;\n }\n if (node.localName === this.localName) {\n return node as SplitView;\n }\n }\n return undefined;\n }\n\n protected hasDropTypes(dt: DataTransfer): boolean {\n const { dragTypes } = this;\n if (!Array.isArray(dragTypes)) {\n return true;\n }\n const eventTypes = [...dt.types];\n const allowedTypes = dragTypes.map(i => i.toLowerCase());\n return !allowedTypes.some(type => !eventTypes.includes(type));\n }\n\n protected panelCanDrop(e: DragEvent): boolean {\n if (e.defaultPrevented) {\n return false;\n }\n if (e.dataTransfer && !this.hasDropTypes(e.dataTransfer)) {\n return false;\n }\n const { panel } = this;\n if (!panel) {\n return true;\n }\n return panel.canDrop();\n }\n\n protected handleTabDragStart(e: DragEvent): void {\n const dt = e.dataTransfer;\n if (!dt || this.key === undefined) {\n return;\n }\n\n dt.effectAllowed = 'copyMove';\n dt.dropEffect = 'move';\n const node = e.target as HTMLElement;\n dt.setData('text/kind', node.dataset.kind as string);\n dt.setData('text/key', node.dataset.key as string);\n dt.setData('text/source', this.localName);\n dt.setData('layout/key', this.key);\n }\n\n protected handleTabsDragEnter(e: DragEvent): void {\n const dt = e.dataTransfer;\n if (!dt || !this.panelCanDrop(e)) {\n return;\n }\n e.stopPropagation();\n e.preventDefault();\n dt.effectAllowed = 'move';\n dt.dropEffect = 'move';\n }\n\n protected handleTabsDragover(e: DragEvent): void {\n const dt = e.dataTransfer;\n if (!dt || !this.panelCanDrop(e)) {\n return;\n }\n e.stopPropagation();\n e.preventDefault();\n dt.effectAllowed = 'move';\n dt.dropEffect = 'move';\n }\n\n protected handleTabDrop(e: DragEvent): void {\n const dt = e.dataTransfer;\n if (!dt || !this.panelCanDrop(e) || this.key === undefined) {\n return;\n }\n e.stopPropagation();\n e.preventDefault();\n const src = dt.getData('text/source');\n const key = dt.getData('text/key');\n const kind = dt.getData('text/kind');\n const srcPanelKey = dt.getData('layout/key');\n const movingTab = src === this.localName;\n\n const overTab = this.findTab(e);\n const toIndex = overTab ? Number(overTab.dataset.index) : undefined;\n\n if (movingTab) {\n if (!srcPanelKey) {\n return;\n }\n this.moveTab(srcPanelKey, this.key, key, toIndex);\n } else {\n let dispatch = true;\n if (this.panel) {\n this.panel.addItem({ key, kind, label: 'New tab' }, { index: toIndex });\n dispatch = true;\n }\n if (dispatch) {\n this.dispatchEvent(new CustomEvent('datadrop', {\n detail: { kind, key, index: toIndex },\n composed: true,\n bubbles: true,\n cancelable: true,\n }));\n }\n this.requestUpdate();\n }\n }\n\n protected moveTab(fromLayout: string, toLayout: string, key: string, toIndex?: number): void {\n const { panel } = this;\n if (panel) {\n panel.manager.moveItem(fromLayout, toLayout, key, toIndex);\n }\n }\n\n protected findTab(e: Event): HTMLElement | undefined {\n const path = e.composedPath();\n while (path.length) {\n const node = path.shift() as Element;\n if (node.nodeType !== Node.ELEMENT_NODE) {\n continue;\n }\n if (node.classList.contains('layout-tab')) {\n return node as HTMLElement;\n }\n }\n return undefined;\n }\n\n protected async handleTabClick(e: Event): Promise<void> {\n if (!this.panel) {\n return;\n }\n const key = (e.currentTarget as HTMLElement).dataset.key as string;\n if (!key) {\n return;\n }\n if (this.panel.selected === key) {\n return;\n }\n this.panel.selected = key;\n this.panel.manager.notifyChange();\n this.requestUpdate();\n await this.updateComplete;\n const child = this.querySelector(`[data-key=\"${key}\"]`);\n if (child) {\n child.dispatchEvent(new Event('resize'));\n }\n }\n\n /**\n * Closes a panel with right pointer configuration\n */\n protected handleTabPointerDown(e: PointerEvent): void {\n // the configuration of a middle button click which is \n // equal to 3 fingers click on a track pad.\n if (e.button === 1 && e.buttons === 4) {\n e.preventDefault();\n e.stopPropagation();\n const key = (e.target as HTMLElement).dataset.key as string;\n this.closeTab(key);\n }\n }\n\n protected handleTabClose(e: Event): void {\n const icon = e.target as HTMLElement;\n const button = icon.parentElement as HTMLElement;\n const key = button.dataset.key as string;\n if (key) {\n e.preventDefault();\n e.stopPropagation();\n this.closeTab(key);\n }\n }\n\n @eventOptions({ passive: true })\n protected handleTabTouchStart(e: TouchEvent): void {\n if (e.targetTouches.length === 3) {\n e.preventDefault();\n e.stopPropagation();\n const key = (e.target as HTMLElement).dataset.key as string;\n this.closeTab(key);\n }\n }\n\n protected closeTab(key: string): void {\n const { panel } = this;\n if (!panel) {\n return;\n }\n const item = panel.manager.findItem(key);\n if (!item) {\n return;\n }\n if (item.persistent && item.pinned) {\n return;\n }\n panel.removeItem(key);\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent('closetab', {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: key,\n }));\n }\n\n protected handleTabKeyDown(e: KeyboardEvent): void {\n if (e.key === 'Enter') {\n this.handleTabClick(e);\n }\n }\n\n override render(): TemplateResult {\n return html`\n ${this.dragRegionTemplate()}\n ${this.tabsTemplate()}\n <div class=\"content\">\n <slot></slot>\n </div>\n `;\n }\n\n protected dragRegionTemplate(): TemplateResult | typeof nothing {\n const { inDrag, dragRegion } = this;\n if (!inDrag) {\n return nothing;\n }\n return html`\n <div class=\"drag-region ${dragRegion}\"></div>\n `;\n }\n\n protected tabsTemplate(): TemplateResult | string {\n const { panel } = this;\n if (!panel) {\n return '';\n }\n const items = panel.sortedItems();\n if (!items) {\n return '';\n }\n const size = items.length;\n return html`\n <div \n class=\"layout-tabs\" \n role=\"tablist\"\n @dragenter=\"${this.handleTabsDragEnter}\" \n @dragover=\"${this.handleTabsDragover}\" \n @drop=\"${this.handleTabDrop}\"\n >\n ${items.map((tab, i) => this.tabTemplate(tab, i + 1 === size, items[i + 1]?.key))}\n </div>\n `;\n }\n\n protected tabTemplate(item: SplitItem, last: boolean, nextKey?: string): TemplateResult {\n const { key, kind, label = '', index = 0, icon, isDirty = false, parent } = item;\n const { panel } = this;\n const selected = !!panel && panel.selected === key;\n const nextSelected = !!nextKey && !!panel && panel.selected === nextKey;\n const closable = !item.persistent && !item.pinned;\n const classes = {\n 'layout-tab': true,\n 'is-dirty': isDirty,\n selected,\n surface1: selected,\n };\n let title = label;\n if (isDirty) {\n title = 'Unsaved changes';\n }\n\n const dividerHidden = last || selected || nextSelected;\n return html`\n <div \n data-key=\"${key}\" \n data-kind=\"${kind}\"\n data-index=\"${index}\"\n data-parent=\"${ifDefined(parent)}\"\n data-dirty=\"${isDirty}\"\n role=\"tab\"\n class=\"${classMap(classes)}\" \n draggable=\"true\"\n tabindex=\"0\"\n\n @dragstart=\"${this.handleTabDragStart}\"\n @click=\"${this.handleTabClick}\" \n @pointerdown=\"${this.handleTabPointerDown}\"\n @touchstart=\"${this.handleTabTouchStart}\"\n @keydown=\"${this.handleTabKeyDown}\"\n >\n ${icon ? html`<ui-icon icon=\"${icon}\" class=\"tab-favicon\"></ui-icon>` : ''}\n <span class=\"tab-label\" title=\"${title}\">${label}</span>\n ${closable ? html`<ui-icon icon=\"close\" class=\"close-icon\" @click=\"${this.handleTabClose}\"></ui-icon>` : ''}\n </div>\n <div class=\"tab-divider ${dividerHidden ? 'hidden' : ''}\"></div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"SplitView.js","sourceRoot":"","sources":["../../../src/elements/layout/SplitView.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, nothing, TemplateResult } from \"lit\";\nimport { eventOptions, property, state } from \"lit/decorators.js\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { SplitItem } from \"./SplitItem.js\";\nimport { SplitPanel } from \"./SplitPanel.js\";\nimport { SplitDirection, SplitRegion } from \"./type.js\";\n\nexport default class SplitView extends LitElement {\n /**\n * @attribute\n */\n @property({ type: String, reflect: true }) layout: SplitDirection = SplitDirection.horizontal;\n\n /**\n * @attribute\n */\n @property({ type: Number, reflect: true }) key?: string;\n\n @property({ type: Array }) dragTypes?: string[];\n\n /**\n * Whether dragging is occurring over the element\n */\n @state() protected inDrag = false;\n\n /**\n * The region the drag is leaning to.\n */\n @state() protected dragRegion?: SplitRegion = SplitRegion.center;\n\n /**\n * A reference to the split panel that owns this view.\n */\n @property({ type: Object }) panel?: SplitPanel;\n\n /**\n * When set it adds the `overflow` hidden on the container that holds the tab contents.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) constrain = false;\n\n constructor() {\n super();\n this.handleDragleave = this.handleDragleave.bind(this);\n this.handleDragEnd = this.handleDragEnd.bind(this);\n this.addEventListener('dragenter', this.handleDragEnter.bind(this));\n this.addEventListener('dragover', this.handleDragOver.bind(this));\n this.addEventListener('drop', this.handleDrop.bind(this));\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n document.body.addEventListener('dragleave', this.handleDragleave);\n document.body.addEventListener('dragend', this.handleDragEnd);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n document.body.removeEventListener('dragleave', this.handleDragleave);\n document.body.removeEventListener('dragend', this.handleDragEnd);\n }\n\n protected handleDragEnter(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer || !this.panelCanDrop(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n dataTransfer.dropEffect = 'copy';\n }\n\n protected handleDragOver(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer || !this.panelCanDrop(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n const region = this.getDropRegionFromEvent(e);\n if (!region) {\n this.inDrag = false;\n return;\n }\n dataTransfer.dropEffect = 'copy';\n this.inDrag = true;\n this.dragRegion = region;\n }\n\n protected handleDrop(e: DragEvent): void {\n const { dataTransfer } = e;\n if (!dataTransfer || !this.panelCanDrop(e)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n const kind = dataTransfer.getData('text/kind');\n const key = dataTransfer.getData('text/key');\n if (!kind || !key) {\n return;\n }\n this.inDrag = false;\n const { panel } = this;\n let dispatch = true;\n if (panel) {\n panel.addItem({ key, kind, label: 'New tab' }, { region: this.dragRegion });\n panel.manager.requestNameUpdate(key);\n dispatch = true;\n }\n if (dispatch) {\n this.dispatchEvent(new CustomEvent('datadrop', {\n detail: { kind, key, region: this.dragRegion },\n composed: true,\n bubbles: true,\n cancelable: true,\n }));\n }\n this.requestUpdate();\n }\n\n protected handleDragleave(e: DragEvent): void {\n const elm = this.findLayout(e);\n if (!elm || elm !== this) {\n this.inDrag = false;\n this.dragRegion = SplitRegion.center;\n }\n }\n\n protected handleDragEnd(): void {\n this.inDrag = false;\n this.dragRegion = SplitRegion.center;\n }\n\n protected getDropRegionFromEvent(e: DragEvent): SplitRegion | undefined {\n const layout = this.findLayout(e);\n if (!layout) {\n return undefined;\n }\n return this.getDropRegion(layout, e);\n }\n\n getDropRegion(element: HTMLElement, e: DragEvent): SplitRegion | undefined {\n const { pageX, pageY } = e;\n const rect = element.getBoundingClientRect();\n const quarterWidth = rect.width / 4;\n const quarterHeight = rect.height / 4;\n if (pageX < rect.left + quarterWidth) {\n return SplitRegion.west;\n }\n if (pageX > rect.right - quarterWidth) {\n return SplitRegion.east;\n }\n if (pageY < rect.top + quarterHeight) {\n return SplitRegion.north;\n }\n if (pageY > rect.bottom - quarterHeight) {\n return SplitRegion.south;\n }\n const withingCenterX = (pageX >= rect.left + quarterWidth) && (pageX <= rect.right - quarterWidth);\n const withingCenterY = (pageY >= rect.top + quarterHeight) && (pageY <= rect.bottom - quarterHeight);\n if (withingCenterX && withingCenterY) {\n return SplitRegion.center;\n }\n return undefined;\n }\n\n protected findLayout(e: Event): SplitView | undefined {\n const path = e.composedPath();\n while (path.length) {\n const node = path.shift() as Element;\n if (node.nodeType !== Node.ELEMENT_NODE) {\n continue;\n }\n if (node.localName === this.localName) {\n return node as SplitView;\n }\n }\n return undefined;\n }\n\n protected hasDropTypes(dt: DataTransfer): boolean {\n const { dragTypes } = this;\n if (!Array.isArray(dragTypes)) {\n return true;\n }\n const eventTypes = [...dt.types];\n const allowedTypes = dragTypes.map(i => i.toLowerCase());\n return !allowedTypes.some(type => !eventTypes.includes(type));\n }\n\n protected panelCanDrop(e: DragEvent): boolean {\n if (e.defaultPrevented) {\n return false;\n }\n if (e.dataTransfer && !this.hasDropTypes(e.dataTransfer)) {\n return false;\n }\n const { panel } = this;\n if (!panel) {\n return true;\n }\n return panel.canDrop();\n }\n\n protected handleTabDragStart(e: DragEvent): void {\n const dt = e.dataTransfer;\n if (!dt || this.key === undefined) {\n return;\n }\n\n dt.effectAllowed = 'copyMove';\n dt.dropEffect = 'move';\n const node = e.target as HTMLElement;\n dt.setData('text/kind', node.dataset.kind as string);\n dt.setData('text/key', node.dataset.key as string);\n dt.setData('text/source', this.localName);\n dt.setData('layout/key', this.key);\n }\n\n protected handleTabsDragEnter(e: DragEvent): void {\n const dt = e.dataTransfer;\n if (!dt || !this.panelCanDrop(e)) {\n return;\n }\n e.stopPropagation();\n e.preventDefault();\n dt.effectAllowed = 'move';\n dt.dropEffect = 'move';\n }\n\n protected handleTabsDragover(e: DragEvent): void {\n const dt = e.dataTransfer;\n if (!dt || !this.panelCanDrop(e)) {\n return;\n }\n e.stopPropagation();\n e.preventDefault();\n dt.effectAllowed = 'move';\n dt.dropEffect = 'move';\n }\n\n protected handleTabDrop(e: DragEvent): void {\n const dt = e.dataTransfer;\n if (!dt || !this.panelCanDrop(e) || this.key === undefined) {\n return;\n }\n e.stopPropagation();\n e.preventDefault();\n const src = dt.getData('text/source');\n const key = dt.getData('text/key');\n const kind = dt.getData('text/kind');\n const srcPanelKey = dt.getData('layout/key');\n const movingTab = src === this.localName;\n\n const overTab = this.findTab(e);\n const toIndex = overTab ? Number(overTab.dataset.index) : undefined;\n\n if (movingTab) {\n if (!srcPanelKey) {\n return;\n }\n this.moveTab(srcPanelKey, this.key, key, toIndex);\n } else {\n let dispatch = true;\n if (this.panel) {\n this.panel.addItem({ key, kind, label: 'New tab' }, { index: toIndex });\n dispatch = true;\n }\n if (dispatch) {\n this.dispatchEvent(new CustomEvent('datadrop', {\n detail: { kind, key, index: toIndex },\n composed: true,\n bubbles: true,\n cancelable: true,\n }));\n }\n this.requestUpdate();\n }\n }\n\n protected moveTab(fromLayout: string, toLayout: string, key: string, toIndex?: number): void {\n const { panel } = this;\n if (panel) {\n panel.manager.moveItem(fromLayout, toLayout, key, toIndex);\n }\n }\n\n protected findTab(e: Event): HTMLElement | undefined {\n const path = e.composedPath();\n while (path.length) {\n const node = path.shift() as Element;\n if (node.nodeType !== Node.ELEMENT_NODE) {\n continue;\n }\n if (node.classList.contains('layout-tab')) {\n return node as HTMLElement;\n }\n }\n return undefined;\n }\n\n protected async handleTabClick(e: Event): Promise<void> {\n if (!this.panel) {\n return;\n }\n const key = (e.currentTarget as HTMLElement).dataset.key as string;\n if (!key) {\n return;\n }\n if (this.panel.selected === key) {\n return;\n }\n this.panel.selected = key;\n this.panel.manager.notifyChange();\n this.requestUpdate();\n await this.updateComplete;\n const child = this.querySelector(`[data-key=\"${key}\"]`);\n if (child) {\n child.dispatchEvent(new Event('resize'));\n }\n }\n\n /**\n * Closes a panel with right pointer configuration\n */\n protected handleTabPointerDown(e: PointerEvent): void {\n // the configuration of a middle button click which is \n // equal to 3 fingers click on a track pad.\n if (e.button === 1 && e.buttons === 4) {\n e.preventDefault();\n e.stopPropagation();\n const key = (e.target as HTMLElement).dataset.key as string;\n this.closeTab(key);\n }\n }\n\n protected handleTabClose(e: Event): void {\n const icon = e.target as HTMLElement;\n const button = icon.parentElement as HTMLElement;\n const key = button.dataset.key as string;\n if (key) {\n e.preventDefault();\n e.stopPropagation();\n this.closeTab(key);\n }\n }\n\n @eventOptions({ passive: true })\n protected handleTabTouchStart(e: TouchEvent): void {\n if (e.targetTouches.length === 3) {\n e.preventDefault();\n e.stopPropagation();\n const key = (e.target as HTMLElement).dataset.key as string;\n this.closeTab(key);\n }\n }\n\n protected closeTab(key: string): void {\n const { panel } = this;\n if (!panel) {\n return;\n }\n const item = panel.manager.findItem(key);\n if (!item) {\n return;\n }\n if (item.persistent && item.pinned) {\n return;\n }\n panel.removeItem(key);\n this.requestUpdate();\n this.dispatchEvent(new CustomEvent('closetab', {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: key,\n }));\n }\n\n protected handleTabKeyDown(e: KeyboardEvent): void {\n if (e.key === 'Enter') {\n this.handleTabClick(e);\n }\n }\n\n override render(): TemplateResult {\n return html`\n ${this.dragRegionTemplate()}\n ${this.tabsTemplate()}\n <div class=\"content\">\n <slot></slot>\n </div>\n `;\n }\n\n protected dragRegionTemplate(): TemplateResult | typeof nothing {\n const { inDrag, dragRegion } = this;\n if (!inDrag) {\n return nothing;\n }\n return html`\n <div class=\"drag-region ${dragRegion}\"></div>\n `;\n }\n\n protected tabsTemplate(): TemplateResult | string {\n const { panel } = this;\n if (!panel) {\n return '';\n }\n const items = panel.sortedItems();\n if (!items) {\n return '';\n }\n const size = items.length;\n return html`\n <div \n class=\"layout-tabs\" \n role=\"tablist\"\n @dragenter=\"${this.handleTabsDragEnter}\" \n @dragover=\"${this.handleTabsDragover}\" \n @drop=\"${this.handleTabDrop}\"\n >\n ${items.map((tab, i) => this.tabTemplate(tab, i + 1 === size, items[i + 1]?.key))}\n </div>\n `;\n }\n\n protected tabTemplate(item: SplitItem, last: boolean, nextKey?: string): TemplateResult {\n const { key, kind, label = '', index = 0, icon, isDirty = false, parent } = item;\n const { panel } = this;\n const selected = !!panel && panel.selected === key;\n const nextSelected = !!nextKey && !!panel && panel.selected === nextKey;\n const closable = !item.persistent && !item.pinned;\n const classes = {\n 'layout-tab': true,\n 'is-dirty': isDirty,\n selected,\n surface1: selected,\n };\n let title = label;\n if (isDirty) {\n title = 'Unsaved changes';\n }\n\n const dividerHidden = last || selected || nextSelected;\n return html`\n <div \n data-key=\"${key}\" \n data-kind=\"${kind}\"\n data-index=\"${index}\"\n data-parent=\"${ifDefined(parent)}\"\n data-dirty=\"${isDirty}\"\n role=\"tab\"\n class=\"${classMap(classes)}\" \n draggable=\"true\"\n tabindex=\"0\"\n\n @dragstart=\"${this.handleTabDragStart}\"\n @click=\"${this.handleTabClick}\" \n @pointerdown=\"${this.handleTabPointerDown}\"\n @touchstart=\"${this.handleTabTouchStart}\"\n @keydown=\"${this.handleTabKeyDown}\"\n >\n ${icon ? html`<ui-icon icon=\"${icon}\" class=\"tab-favicon\"></ui-icon>` : ''}\n <span class=\"tab-label\" title=\"${title}\">${label}</span>\n ${closable ? html`<ui-icon icon=\"close\" class=\"close-icon\" @click=\"${this.handleTabClose}\"></ui-icon>` : ''}\n </div>\n <div class=\"tab-divider ${dividerHidden ? 'hidden' : ''}\"></div>\n `;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SplitView.styles.d.ts","sourceRoot":"","sources":["../../../src/elements/layout/SplitView.styles.ts"],"names":[],"mappings":";AAGA,wBAqLG"}
1
+ {"version":3,"file":"SplitView.styles.d.ts","sourceRoot":"","sources":["../../../src/elements/layout/SplitView.styles.ts"],"names":[],"mappings":";AAGA,wBAsLG"}
@@ -123,6 +123,7 @@ export default [surfaceStyles, css `
123
123
  width: 16px;
124
124
  height: 16px;
125
125
  margin-left: auto;
126
+ z-index: 2;
126
127
  }
127
128
 
128
129
  .close-icon:hover {
@@ -1 +1 @@
1
- {"version":3,"file":"SplitView.styles.js","sourceRoot":"","sources":["../../../src/elements/layout/SplitView.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,aAAa,MAAM,mCAAmC,CAAC;AAE9D,eAAe,CAAC,aAAa,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqLjC,CAAC,CAAC","sourcesContent":["import { css } from 'lit';\nimport surfaceStyles from '../../styles/m3/surface.module.js';\n\nexport default [surfaceStyles, css`\n:host {\n display: flex;\n position: relative;\n flex-direction: column;\n flex: 1;\n}\n\n.content {\n display: flex;\n flex: 1;\n}\n\n:host([constrain]) .content {\n overflow: hidden;\n}\n\n:host([layout=horizontal]) .content {\n flex-direction: row;\n}\n\n:host([layout=vertical]) .content {\n flex-direction: column;\n}\n\n:host ::slotted(*) {\n flex: 1;\n}\n\n:host([layout=vertical]) ::slotted(split-view) {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n:host([layout=vertical]) ::slotted(split-view:last-of-type) {\n margin-bottom: 0;\n}\n\n:host([layout=vertical]) ::slotted(split-view:first-of-type) {\n margin-top: 0;\n}\n\n.layout-tabs {\n display: flex;\n align-items: center;\n /* background: var(--layout-tabs-background, var(--secondary-background-color)); */\n}\n\n.layout-tab {\n position: relative;\n display: inline-flex;\n align-items: center;\n flex: 1 1 200px;\n max-width: 200px;\n min-width: 40px;\n width: 200px;\n height: 100%;\n font-size: 0.94rem;\n padding: 0px 12px;\n border-radius: var(--md-sys-shape-corner-small-top);\n height: 40px; \n outline: none;\n justify-content: flex-start;\n text-transform: none;\n color: var(--md-sys-color-on-surface);\n\n font-family: var(--md-sys-typescale-body-medium-font-family-name);\n font-style: var(--md-sys-typescale-body-medium-font-family-style);\n font-weight: var(--md-sys-typescale-body-medium-font-weight);\n font-size: var(--md-sys-typescale-body-medium-font-size);\n letter-spacing: var(--md-sys-typescale-body-medium-tracking);\n line-height: var(--md-sys-typescale-body-medium-height);\n text-transform: var(--md-sys-typescale-body-medium-text-transform);\n text-decoration: var(--md-sys-typescale-body-medium-text-decoration);\n}\n\n.tab-label {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.is-dirty .tab-label {\n font-style: italic;\n}\n\n.is-dirty .tab-label::after {\n content: '*';\n user-select: none;\n}\n\n/* .layout-tab.selected {\n background: var(--layout-tab-select-background, var(--primary-background-color));\n} */\n\n.layout-tab:hover::before {\n background-color: var(--md-sys-color-primary);\n opacity: var(--md-sys-state-hover-state-layer-opacity);\n position: absolute;\n inset: 0;\n content: '';\n border-radius: inherit;\n}\n\n.layout-tab:focus::before {\n background-color: var(--md-sys-color-primary);\n opacity: var(--md-sys-state-focus-state-layer-opacity);\n position: absolute;\n inset: 0;\n content: '';\n border-radius: inherit;\n}\n\n.tab-favicon {\n width: 16px;\n height: 16px;\n margin-right: 8px;\n}\n\n.close-icon {\n width: 16px;\n height: 16px;\n margin-left: auto;\n}\n\n.close-icon:hover {\n background-color: var(--md-sys-color-outline-variant);\n border-radius: 50%;\n}\n\n.tab-divider {\n width: 1px;\n min-width: 1px;\n height: 20px;\n background-color: var(--md-sys-color-outline-variant);\n}\n\n.tab-divider.hidden {\n background-color: transparent;\n}\n\n.drag-region {\n position: absolute;\n /* background-color: var(--md-sys-color-surface); */\n inset: 0;\n z-index: 10;\n border-radius: 12px;\n}\n\n.drag-region::before {\n content: '';\n background-color: var(--md-sys-color-scrim);\n opacity: .16;\n inset: 0;\n z-index: 10;\n position: absolute;\n border-radius: inherit;\n}\n\n/* .drag-region.center {\n top: 0;\n bottom: 0;\n left: 0;\n right:0;\n} */\n\n.drag-region.west {\n right: 50%;\n}\n\n.drag-region.east {\n left: 50%;\n}\n\n.drag-region.north {\n bottom: 50%;\n}\n\n.drag-region.south {\n top: 50%;\n}\n`];\n"]}
1
+ {"version":3,"file":"SplitView.styles.js","sourceRoot":"","sources":["../../../src/elements/layout/SplitView.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,aAAa,MAAM,mCAAmC,CAAC;AAE9D,eAAe,CAAC,aAAa,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsLjC,CAAC,CAAC","sourcesContent":["import { css } from 'lit';\nimport surfaceStyles from '../../styles/m3/surface.module.js';\n\nexport default [surfaceStyles, css`\n:host {\n display: flex;\n position: relative;\n flex-direction: column;\n flex: 1;\n}\n\n.content {\n display: flex;\n flex: 1;\n}\n\n:host([constrain]) .content {\n overflow: hidden;\n}\n\n:host([layout=horizontal]) .content {\n flex-direction: row;\n}\n\n:host([layout=vertical]) .content {\n flex-direction: column;\n}\n\n:host ::slotted(*) {\n flex: 1;\n}\n\n:host([layout=vertical]) ::slotted(split-view) {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n\n:host([layout=vertical]) ::slotted(split-view:last-of-type) {\n margin-bottom: 0;\n}\n\n:host([layout=vertical]) ::slotted(split-view:first-of-type) {\n margin-top: 0;\n}\n\n.layout-tabs {\n display: flex;\n align-items: center;\n /* background: var(--layout-tabs-background, var(--secondary-background-color)); */\n}\n\n.layout-tab {\n position: relative;\n display: inline-flex;\n align-items: center;\n flex: 1 1 200px;\n max-width: 200px;\n min-width: 40px;\n width: 200px;\n height: 100%;\n font-size: 0.94rem;\n padding: 0px 12px;\n border-radius: var(--md-sys-shape-corner-small-top);\n height: 40px; \n outline: none;\n justify-content: flex-start;\n text-transform: none;\n color: var(--md-sys-color-on-surface);\n\n font-family: var(--md-sys-typescale-body-medium-font-family-name);\n font-style: var(--md-sys-typescale-body-medium-font-family-style);\n font-weight: var(--md-sys-typescale-body-medium-font-weight);\n font-size: var(--md-sys-typescale-body-medium-font-size);\n letter-spacing: var(--md-sys-typescale-body-medium-tracking);\n line-height: var(--md-sys-typescale-body-medium-height);\n text-transform: var(--md-sys-typescale-body-medium-text-transform);\n text-decoration: var(--md-sys-typescale-body-medium-text-decoration);\n}\n\n.tab-label {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.is-dirty .tab-label {\n font-style: italic;\n}\n\n.is-dirty .tab-label::after {\n content: '*';\n user-select: none;\n}\n\n/* .layout-tab.selected {\n background: var(--layout-tab-select-background, var(--primary-background-color));\n} */\n\n.layout-tab:hover::before {\n background-color: var(--md-sys-color-primary);\n opacity: var(--md-sys-state-hover-state-layer-opacity);\n position: absolute;\n inset: 0;\n content: '';\n border-radius: inherit;\n}\n\n.layout-tab:focus::before {\n background-color: var(--md-sys-color-primary);\n opacity: var(--md-sys-state-focus-state-layer-opacity);\n position: absolute;\n inset: 0;\n content: '';\n border-radius: inherit;\n}\n\n.tab-favicon {\n width: 16px;\n height: 16px;\n margin-right: 8px;\n}\n\n.close-icon {\n width: 16px;\n height: 16px;\n margin-left: auto;\n z-index: 2;\n}\n\n.close-icon:hover {\n background-color: var(--md-sys-color-outline-variant);\n border-radius: 50%;\n}\n\n.tab-divider {\n width: 1px;\n min-width: 1px;\n height: 20px;\n background-color: var(--md-sys-color-outline-variant);\n}\n\n.tab-divider.hidden {\n background-color: transparent;\n}\n\n.drag-region {\n position: absolute;\n /* background-color: var(--md-sys-color-surface); */\n inset: 0;\n z-index: 10;\n border-radius: 12px;\n}\n\n.drag-region::before {\n content: '';\n background-color: var(--md-sys-color-scrim);\n opacity: .16;\n inset: 0;\n z-index: 10;\n position: absolute;\n border-radius: inherit;\n}\n\n/* .drag-region.center {\n top: 0;\n bottom: 0;\n left: 0;\n right:0;\n} */\n\n.drag-region.west {\n right: 50%;\n}\n\n.drag-region.east {\n left: 50%;\n}\n\n.drag-region.north {\n bottom: 50%;\n}\n\n.drag-region.south {\n top: 50%;\n}\n`];\n"]}
@@ -48,53 +48,14 @@ import ApiElement from "../ApiElement.js";
48
48
  * @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.
49
49
  */
50
50
  export default class AppNavigation extends ApiElement {
51
- /**
52
- * The list of keys of opened items with children. This should be clear each time
53
- * when the main data property change.
54
- */
55
- _opened = [];
56
- /**
57
- * The key of the currently focused item.
58
- */
59
- _focused;
60
- /**
61
- * The currently focused node.
62
- * In case there are headers in the list, this may not be a list item.
63
- */
64
- _focusedItem;
65
- /**
66
- * To be set in the child class constructor to configure whether a name change is possible.
67
- */
68
- _allowRename;
69
- /**
70
- * The currently selected navigation item.
71
- * @attr
72
- */
73
- selected;
74
- /**
75
- * When set it renders a name change input for the item.
76
- * This is the `key` of the object.
77
- *
78
- * Note, when the user finish editing the name it calls the `_commitName(key, kind, name)` method.
79
- * This requires the `_allowRename` property to be set to `true` in the constructor.
80
- * @attr
81
- */
82
- edited;
83
- /**
84
- * When set it prohibits the element to make visual selection (via the css) when an item is selected.
85
- * This is helpful when one navigation can be visually references in multiple places (like split layout).
86
- * @attr
87
- */
88
- noVisualSelection;
89
- /**
90
- * A reference to the currently rendered name input, if any.
91
- */
92
- _nameInput;
93
- /**
94
- * When set it adds a menu entry with the navigation label.
95
- * @attribute
96
- */
97
- label;
51
+ constructor() {
52
+ super(...arguments);
53
+ /**
54
+ * The list of keys of opened items with children. This should be clear each time
55
+ * when the main data property change.
56
+ */
57
+ this._opened = [];
58
+ }
98
59
  connectedCallback() {
99
60
  super.connectedCallback();
100
61
  this.setAttribute('role', 'navigation');