@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.
- package/demo/elements/http/http-assertions.html +3 -0
- package/demo/elements/http/http-assertions.ts +1 -1
- package/demo/elements/http/http-flows.html +23 -0
- package/demo/elements/http/http-flows.ts +92 -0
- package/demo/elements/http/index.html +3 -0
- package/demo/pages/http-project/main.ts +5 -6
- package/dist/amf/lib/AmfParameters.js +0 -4
- package/dist/amf/lib/AmfParameters.js.map +1 -1
- package/dist/amf/lib/navigation-layout/EndpointsTree.js +0 -2
- package/dist/amf/lib/navigation-layout/EndpointsTree.js.map +1 -1
- package/dist/amf/lib/navigation-layout/NaturalTree.js +0 -2
- package/dist/amf/lib/navigation-layout/NaturalTree.js.map +1 -1
- package/dist/amf/store/AmfGraphStore.js +0 -2
- package/dist/amf/store/AmfGraphStore.js.map +1 -1
- package/dist/amf/store/AmfStore.js +0 -7
- package/dist/amf/store/AmfStore.js.map +1 -1
- package/dist/bindings/base/HttpClientStoreBindings.js +4 -1
- package/dist/bindings/base/HttpClientStoreBindings.js.map +1 -1
- package/dist/bindings/base/PlatformBindings.js +6 -10
- package/dist/bindings/base/PlatformBindings.js.map +1 -1
- package/dist/bindings/base/ProxyBindings.js +9 -6
- package/dist/bindings/base/ProxyBindings.js.map +1 -1
- package/dist/bindings/base/SharedWorkerThread.js +4 -1
- package/dist/bindings/base/SharedWorkerThread.js.map +1 -1
- package/dist/bindings/base/StoreBindings.js +162 -170
- package/dist/bindings/base/StoreBindings.js.map +1 -1
- package/dist/bindings/web/WebConfigurationBindings.js +22 -24
- package/dist/bindings/web/WebConfigurationBindings.js.map +1 -1
- package/dist/bindings/web/WebFileBindings.js +7 -4
- package/dist/bindings/web/WebFileBindings.js.map +1 -1
- package/dist/bindings/web/WebHttpClientStoreBindings.js +19 -21
- package/dist/bindings/web/WebHttpClientStoreBindings.js.map +1 -1
- package/dist/bindings/web/WebNavigationBindings.js +4 -1
- package/dist/bindings/web/WebNavigationBindings.js.map +1 -1
- package/dist/bindings/web/WebProxyBindings.js +5 -6
- package/dist/bindings/web/WebProxyBindings.js.map +1 -1
- package/dist/bindings/web/WebStoreBindings.js +39 -44
- package/dist/bindings/web/WebStoreBindings.js.map +1 -1
- package/dist/contextual-menu/ContextualMenu.js +10 -19
- package/dist/contextual-menu/ContextualMenu.js.map +1 -1
- package/dist/contextual-menu/ContextualMenuElement.js +4 -32
- package/dist/contextual-menu/ContextualMenuElement.js.map +1 -1
- package/dist/contextual-menu/MenuItem.js +0 -12
- package/dist/contextual-menu/MenuItem.js.map +1 -1
- package/dist/define/amf/api-annotation-document.js +1 -1
- package/dist/define/amf/api-annotation-document.js.map +1 -1
- package/dist/define/amf/api-authorization-editor.js +1 -1
- package/dist/define/amf/api-authorization-editor.js.map +1 -1
- package/dist/define/amf/api-channel-document.js +1 -1
- package/dist/define/amf/api-channel-document.js.map +1 -1
- package/dist/define/amf/api-documentation-document.js +1 -1
- package/dist/define/amf/api-documentation-document.js.map +1 -1
- package/dist/define/amf/api-documentation.js +1 -1
- package/dist/define/amf/api-documentation.js.map +1 -1
- package/dist/define/amf/api-navigation.js +1 -1
- package/dist/define/amf/api-navigation.js.map +1 -1
- package/dist/define/amf/api-operation-document.js +1 -1
- package/dist/define/amf/api-operation-document.js.map +1 -1
- package/dist/define/amf/api-parameter-document.js +1 -1
- package/dist/define/amf/api-parameter-document.js.map +1 -1
- package/dist/define/amf/api-parametrized-security-scheme.js +1 -1
- package/dist/define/amf/api-parametrized-security-scheme.js.map +1 -1
- package/dist/define/amf/api-payload-document.js +1 -1
- package/dist/define/amf/api-payload-document.js.map +1 -1
- package/dist/define/amf/api-request-document.js +1 -1
- package/dist/define/amf/api-request-document.js.map +1 -1
- package/dist/define/amf/api-request-editor.js +1 -1
- package/dist/define/amf/api-request-editor.js.map +1 -1
- package/dist/define/amf/api-request.js +1 -1
- package/dist/define/amf/api-request.js.map +1 -1
- package/dist/define/amf/api-resource-document.js +1 -1
- package/dist/define/amf/api-resource-document.js.map +1 -1
- package/dist/define/amf/api-response-document.js +1 -1
- package/dist/define/amf/api-response-document.js.map +1 -1
- package/dist/define/amf/api-schema-document.js +1 -1
- package/dist/define/amf/api-schema-document.js.map +1 -1
- package/dist/define/amf/api-security-document.js +1 -1
- package/dist/define/amf/api-security-document.js.map +1 -1
- package/dist/define/amf/api-security-requirement-document.js +1 -1
- package/dist/define/amf/api-security-requirement-document.js.map +1 -1
- package/dist/define/amf/api-server-picker.js +1 -1
- package/dist/define/amf/api-server-picker.js.map +1 -1
- package/dist/define/amf/api-summary.js +1 -1
- package/dist/define/amf/api-summary.js.map +1 -1
- package/dist/define/amf/authorization/amf-apikey-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-apikey-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-basic-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-basic-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-bearer-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-bearer-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-oauth2-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-oauth2-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-oidc-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-oidc-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-passthrough-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-passthrough-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-ramlcustom-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-ramlcustom-authorization.js.map +1 -1
- package/dist/define/authorization/apikey-authorization.js +1 -1
- package/dist/define/authorization/apikey-authorization.js.map +1 -1
- package/dist/define/authorization/basic-authorization.js +1 -1
- package/dist/define/authorization/basic-authorization.js.map +1 -1
- package/dist/define/authorization/bearer-authorization.js +1 -1
- package/dist/define/authorization/bearer-authorization.js.map +1 -1
- package/dist/define/authorization/cc-authorization.js +1 -1
- package/dist/define/authorization/cc-authorization.js.map +1 -1
- package/dist/define/authorization/ntlm-authorization.js +1 -1
- package/dist/define/authorization/ntlm-authorization.js.map +1 -1
- package/dist/define/authorization/oauth2-authorization.js +1 -1
- package/dist/define/authorization/oauth2-authorization.js.map +1 -1
- package/dist/define/authorization/oidc-authorization.js +1 -1
- package/dist/define/authorization/oidc-authorization.js.map +1 -1
- package/dist/define/contextual-menu/contextual-menu.js +1 -1
- package/dist/define/contextual-menu/contextual-menu.js.map +1 -1
- package/dist/define/dialog/confirm-delete-dialog.js +1 -1
- package/dist/define/dialog/confirm-delete-dialog.js.map +1 -1
- package/dist/define/dialog/delete-cookie-action-dialog.d.ts +10 -0
- package/dist/define/dialog/delete-cookie-action-dialog.d.ts.map +1 -0
- package/dist/define/dialog/delete-cookie-action-dialog.js +14 -0
- package/dist/define/dialog/delete-cookie-action-dialog.js.map +1 -0
- package/dist/define/dialog/rename-dialog.js +1 -1
- package/dist/define/dialog/rename-dialog.js.map +1 -1
- package/dist/define/dialog/set-cookie-action-dialog.d.ts +10 -0
- package/dist/define/dialog/set-cookie-action-dialog.d.ts.map +1 -0
- package/dist/define/dialog/set-cookie-action-dialog.js +14 -0
- package/dist/define/dialog/set-cookie-action-dialog.js.map +1 -0
- package/dist/define/files/share-file.js +1 -1
- package/dist/define/files/share-file.js.map +1 -1
- package/dist/define/har/har-viewer.js +1 -1
- package/dist/define/har/har-viewer.js.map +1 -1
- package/dist/define/highlight/marked-highlight.js +1 -1
- package/dist/define/highlight/marked-highlight.js.map +1 -1
- package/dist/define/highlight/prism-highlight.js +1 -1
- package/dist/define/highlight/prism-highlight.js.map +1 -1
- package/dist/define/http/http-assertions.d.ts +1 -1
- package/dist/define/http/http-assertions.d.ts.map +1 -1
- package/dist/define/http/http-assertions.js +3 -3
- package/dist/define/http/http-assertions.js.map +1 -1
- package/dist/define/http/http-body-editor.js +1 -1
- package/dist/define/http/http-body-editor.js.map +1 -1
- package/dist/define/http/http-body-multipart-editor.js +1 -1
- package/dist/define/http/http-body-multipart-editor.js.map +1 -1
- package/dist/define/http/http-body-text-editor.js +1 -1
- package/dist/define/http/http-body-text-editor.js.map +1 -1
- package/dist/define/http/http-body-urlencoded-editor.js +1 -1
- package/dist/define/http/http-body-urlencoded-editor.js.map +1 -1
- package/dist/define/http/http-flows.d.ts +10 -0
- package/dist/define/http/http-flows.d.ts.map +1 -0
- package/dist/define/http/http-flows.js +13 -0
- package/dist/define/http/http-flows.js.map +1 -0
- package/dist/define/http/http-headers-form.js +1 -1
- package/dist/define/http/http-headers-form.js.map +1 -1
- package/dist/define/http/http-log-body.js +1 -1
- package/dist/define/http/http-log-body.js.map +1 -1
- package/dist/define/http/http-log-headers.js +1 -1
- package/dist/define/http/http-log-headers.js.map +1 -1
- package/dist/define/http/http-log-timings.js +1 -1
- package/dist/define/http/http-log-timings.js.map +1 -1
- package/dist/define/http/http-request-config.js +1 -1
- package/dist/define/http/http-request-config.js.map +1 -1
- package/dist/define/http/http-request-editor.js +1 -1
- package/dist/define/http/http-request-editor.js.map +1 -1
- package/dist/define/http/http-request-log.js +1 -1
- package/dist/define/http/http-request-log.js.map +1 -1
- package/dist/define/http/http-snippets.js +1 -1
- package/dist/define/http/http-snippets.js.map +1 -1
- package/dist/define/http/http-url-input.js +1 -1
- package/dist/define/http/http-url-input.js.map +1 -1
- package/dist/define/http/http-url-params-form.js +1 -1
- package/dist/define/http/http-url-params-form.js.map +1 -1
- package/dist/define/http-project/http-project-request-history.js +1 -1
- package/dist/define/http-project/http-project-request-history.js.map +1 -1
- package/dist/define/http-project/http-project-request.js +2 -2
- package/dist/define/http-project/http-project-request.js.map +1 -1
- package/dist/define/http-project/project-navigation.js +1 -1
- package/dist/define/http-project/project-navigation.js.map +1 -1
- package/dist/define/http-project/project-run-report.js +1 -1
- package/dist/define/http-project/project-run-report.js.map +1 -1
- package/dist/define/http-project/project-runner.js +2 -2
- package/dist/define/http-project/project-runner.js.map +1 -1
- package/dist/define/layout/split-view.js +1 -1
- package/dist/define/layout/split-view.js.map +1 -1
- package/dist/define/schema-design/schema-design-navigation.js +1 -1
- package/dist/define/schema-design/schema-design-navigation.js.map +1 -1
- package/dist/define/schema-design/schema-namespace-selector.js +1 -1
- package/dist/define/schema-design/schema-namespace-selector.js.map +1 -1
- package/dist/define/ui/ui-button.js +1 -1
- package/dist/define/ui/ui-button.js.map +1 -1
- package/dist/define/ui/ui-chip.js +1 -1
- package/dist/define/ui/ui-chip.js.map +1 -1
- package/dist/define/ui/ui-collapse.js +1 -1
- package/dist/define/ui/ui-collapse.js.map +1 -1
- package/dist/define/ui/ui-dialog.js +1 -1
- package/dist/define/ui/ui-dialog.js.map +1 -1
- package/dist/define/ui/ui-divider.d.ts +4 -1
- package/dist/define/ui/ui-divider.d.ts.map +1 -1
- package/dist/define/ui/ui-divider.js +11 -2
- package/dist/define/ui/ui-divider.js.map +1 -1
- package/dist/define/ui/ui-dropdown-list.js +1 -1
- package/dist/define/ui/ui-dropdown-list.js.map +1 -1
- package/dist/define/ui/ui-icon-button.js +1 -1
- package/dist/define/ui/ui-icon-button.js.map +1 -1
- package/dist/define/ui/ui-icon.js +1 -1
- package/dist/define/ui/ui-icon.js.map +1 -1
- package/dist/define/ui/ui-list-item.js +1 -1
- package/dist/define/ui/ui-list-item.js.map +1 -1
- package/dist/define/ui/ui-list.js +1 -1
- package/dist/define/ui/ui-list.js.map +1 -1
- package/dist/define/ui/ui-listbox.js +1 -1
- package/dist/define/ui/ui-listbox.js.map +1 -1
- package/dist/define/ui/ui-progress.js +1 -1
- package/dist/define/ui/ui-progress.js.map +1 -1
- package/dist/define/ui/ui-segmented-button-set.js +1 -1
- package/dist/define/ui/ui-segmented-button-set.js.map +1 -1
- package/dist/define/ui/ui-segmented-button.js +1 -1
- package/dist/define/ui/ui-segmented-button.js.map +1 -1
- package/dist/define/ui/ui-snackbar.js +1 -1
- package/dist/define/ui/ui-snackbar.js.map +1 -1
- package/dist/define/ui/ui-tab.js +1 -1
- package/dist/define/ui/ui-tab.js.map +1 -1
- package/dist/define/ui/ui-tabs.js +1 -1
- package/dist/define/ui/ui-tabs.js.map +1 -1
- package/dist/directives/data-attr.js +0 -1
- package/dist/directives/data-attr.js.map +1 -1
- package/dist/elements/ApiElement.d.ts +4 -0
- package/dist/elements/ApiElement.d.ts.map +1 -1
- package/dist/elements/ApiElement.js +6 -7
- package/dist/elements/ApiElement.js.map +1 -1
- package/dist/elements/amf/ApiAnnotationDocument.element.js +0 -2
- package/dist/elements/amf/ApiAnnotationDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiAuthorizationEditor.element.js +1 -33
- package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
- package/dist/elements/amf/ApiDocumentation.element.js +0 -91
- package/dist/elements/amf/ApiDocumentation.element.js.map +1 -1
- package/dist/elements/amf/ApiDocumentationBase.js +0 -9
- package/dist/elements/amf/ApiDocumentationBase.js.map +1 -1
- package/dist/elements/amf/ApiDocumentationDocument.element.js +0 -1
- package/dist/elements/amf/ApiDocumentationDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiNavigation.element.js +0 -97
- package/dist/elements/amf/ApiNavigation.element.js.map +1 -1
- package/dist/elements/amf/ApiOperationDocument.element.d.ts.map +1 -1
- package/dist/elements/amf/ApiOperationDocument.element.js +2 -77
- package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiParameterDocument.element.js +0 -3
- package/dist/elements/amf/ApiParameterDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js +0 -1
- package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js.map +1 -1
- package/dist/elements/amf/ApiPayloadDocument.element.js +0 -1
- package/dist/elements/amf/ApiPayloadDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiRequest.element.js +1 -79
- package/dist/elements/amf/ApiRequest.element.js.map +1 -1
- package/dist/elements/amf/ApiRequestDocument.element.js +0 -38
- package/dist/elements/amf/ApiRequestDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiRequestEditor.element.d.ts +0 -1
- package/dist/elements/amf/ApiRequestEditor.element.d.ts.map +1 -1
- package/dist/elements/amf/ApiRequestEditor.element.js +0 -121
- package/dist/elements/amf/ApiRequestEditor.element.js.map +1 -1
- package/dist/elements/amf/ApiResourceDocument.element.js +0 -75
- package/dist/elements/amf/ApiResourceDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiResponseDocument.element.js +0 -17
- package/dist/elements/amf/ApiResponseDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiSchemaDocument.element.js +0 -28
- package/dist/elements/amf/ApiSchemaDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiSecurityDocument.element.js +0 -28
- package/dist/elements/amf/ApiSecurityDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiSecurityRequirementDocument.element.js +0 -1
- package/dist/elements/amf/ApiSecurityRequirementDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiServerPicker.element.js +2 -65
- package/dist/elements/amf/ApiServerPicker.element.js.map +1 -1
- package/dist/elements/amf/ApiSummary.element.js +0 -26
- package/dist/elements/amf/ApiSummary.element.js.map +1 -1
- package/dist/elements/amf/authorization/AmfApiKey.js +0 -5
- package/dist/elements/amf/authorization/AmfApiKey.js.map +1 -1
- package/dist/elements/amf/authorization/AmfBasic.js +0 -4
- package/dist/elements/amf/authorization/AmfBasic.js.map +1 -1
- package/dist/elements/amf/authorization/AmfBearer.js +0 -4
- package/dist/elements/amf/authorization/AmfBearer.js.map +1 -1
- package/dist/elements/amf/authorization/AmfOauth2.js +0 -13
- package/dist/elements/amf/authorization/AmfOauth2.js.map +1 -1
- package/dist/elements/amf/authorization/AmfOidc.js +0 -4
- package/dist/elements/amf/authorization/AmfOidc.js.map +1 -1
- package/dist/elements/amf/authorization/AmfPassThrough.js +0 -6
- package/dist/elements/amf/authorization/AmfPassThrough.js.map +1 -1
- package/dist/elements/amf/authorization/AmfRamlCustom.js +0 -6
- package/dist/elements/amf/authorization/AmfRamlCustom.js.map +1 -1
- package/dist/elements/authorization/OAuth2Authorize.js +0 -14
- package/dist/elements/authorization/OAuth2Authorize.js.map +1 -1
- package/dist/elements/authorization/OidcAuthorize.js +0 -14
- package/dist/elements/authorization/OidcAuthorize.js.map +1 -1
- package/dist/elements/authorization/ui/ApiKeyAuthorization.js +0 -2
- package/dist/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
- package/dist/elements/authorization/ui/Authorization.d.ts +2 -1
- package/dist/elements/authorization/ui/Authorization.d.ts.map +1 -1
- package/dist/elements/authorization/ui/Authorization.js +18 -35
- package/dist/elements/authorization/ui/Authorization.js.map +1 -1
- package/dist/elements/authorization/ui/CcAuthorization.js +1 -3
- package/dist/elements/authorization/ui/CcAuthorization.js.map +1 -1
- package/dist/elements/authorization/ui/OAuth2Authorization.js +21 -50
- package/dist/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
- package/dist/elements/authorization/ui/OidcAuthorization.js +4 -6
- package/dist/elements/authorization/ui/OidcAuthorization.js.map +1 -1
- package/dist/elements/code/HttpSnippets.js +9 -8
- package/dist/elements/code/HttpSnippets.js.map +1 -1
- package/dist/elements/dialog/ConfirmDelete.js +0 -12
- package/dist/elements/dialog/ConfirmDelete.js.map +1 -1
- package/dist/elements/dialog/DeleteCookieAction.element.d.ts +20 -0
- package/dist/elements/dialog/DeleteCookieAction.element.d.ts.map +1 -0
- package/dist/elements/dialog/DeleteCookieAction.element.js +93 -0
- package/dist/elements/dialog/DeleteCookieAction.element.js.map +1 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.d.ts +3 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.d.ts.map +1 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.js +13 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.js.map +1 -0
- package/dist/elements/dialog/Rename.d.ts +7 -6
- package/dist/elements/dialog/Rename.d.ts.map +1 -1
- package/dist/elements/dialog/Rename.js +7 -12
- package/dist/elements/dialog/Rename.js.map +1 -1
- package/dist/elements/dialog/SetCookieAction.element.d.ts +22 -0
- package/dist/elements/dialog/SetCookieAction.element.d.ts.map +1 -0
- package/dist/elements/dialog/SetCookieAction.element.js +173 -0
- package/dist/elements/dialog/SetCookieAction.element.js.map +1 -0
- package/dist/elements/environment/EnvironmentEditor.d.ts +24 -3
- package/dist/elements/environment/EnvironmentEditor.d.ts.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.js +73 -30
- package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.styles.d.ts.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.styles.js +5 -0
- package/dist/elements/environment/EnvironmentEditor.styles.js.map +1 -1
- package/dist/elements/environment/ServerEditor.d.ts +3 -3
- package/dist/elements/environment/ServerEditor.d.ts.map +1 -1
- package/dist/elements/environment/ServerEditor.js +10 -51
- package/dist/elements/environment/ServerEditor.js.map +1 -1
- package/dist/elements/environment/VariablesEditor.d.ts +0 -1
- package/dist/elements/environment/VariablesEditor.d.ts.map +1 -1
- package/dist/elements/environment/VariablesEditor.js +10 -18
- package/dist/elements/environment/VariablesEditor.js.map +1 -1
- package/dist/elements/files/ShareFile.js +19 -57
- package/dist/elements/files/ShareFile.js.map +1 -1
- package/dist/elements/har/HarViewer.js +6 -7
- package/dist/elements/har/HarViewer.js.map +1 -1
- package/dist/elements/highlight/MarkedHighlight.js +4 -56
- package/dist/elements/highlight/MarkedHighlight.js.map +1 -1
- package/dist/elements/highlight/Prism.styles.d.ts.map +1 -1
- package/dist/elements/highlight/Prism.styles.js +12 -5
- package/dist/elements/highlight/Prism.styles.js.map +1 -1
- package/dist/elements/highlight/PrismHighlight.js +9 -18
- package/dist/elements/highlight/PrismHighlight.js.map +1 -1
- package/dist/elements/highlight/PrismHighlighter.js +4 -6
- package/dist/elements/highlight/PrismHighlighter.js.map +1 -1
- package/dist/elements/http/BodyEditor.d.ts +0 -4
- package/dist/elements/http/BodyEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyEditor.js +31 -49
- package/dist/elements/http/BodyEditor.js.map +1 -1
- package/dist/elements/http/BodyMultipartEditor.d.ts +3 -16
- package/dist/elements/http/BodyMultipartEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyMultipartEditor.js +20 -37
- package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
- package/dist/elements/http/BodyTextEditor.d.ts +0 -1
- package/dist/elements/http/BodyTextEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyTextEditor.js +2 -18
- package/dist/elements/http/BodyTextEditor.js.map +1 -1
- package/dist/elements/http/BodyUrlEncodedEditor.d.ts +3 -3
- package/dist/elements/http/BodyUrlEncodedEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyUrlEncodedEditor.js +23 -26
- package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
- package/dist/elements/http/HeadersForm.d.ts +0 -4
- package/dist/elements/http/HeadersForm.d.ts.map +1 -1
- package/dist/elements/http/HeadersForm.js +16 -23
- package/dist/elements/http/HeadersForm.js.map +1 -1
- package/dist/elements/http/HttpAssertions.element.d.ts +55 -0
- package/dist/elements/http/HttpAssertions.element.d.ts.map +1 -0
- package/dist/elements/http/HttpAssertions.element.js +264 -0
- package/dist/elements/http/HttpAssertions.element.js.map +1 -0
- package/dist/elements/http/HttpAssertions.styles.d.ts.map +1 -1
- package/dist/elements/http/HttpAssertions.styles.js +7 -156
- package/dist/elements/http/HttpAssertions.styles.js.map +1 -1
- package/dist/elements/http/HttpFlows.common.d.ts +3 -0
- package/dist/elements/http/HttpFlows.common.d.ts.map +1 -0
- package/dist/elements/http/HttpFlows.common.js +181 -0
- package/dist/elements/http/HttpFlows.common.js.map +1 -0
- package/dist/elements/http/HttpFlows.element.d.ts +97 -0
- package/dist/elements/http/HttpFlows.element.d.ts.map +1 -0
- package/dist/elements/http/HttpFlows.element.js +684 -0
- package/dist/elements/http/HttpFlows.element.js.map +1 -0
- package/dist/elements/http/HttpFlows.styles.d.ts +3 -0
- package/dist/elements/http/HttpFlows.styles.d.ts.map +1 -0
- package/dist/elements/http/HttpFlows.styles.js +28 -0
- package/dist/elements/http/HttpFlows.styles.js.map +1 -0
- package/dist/elements/http/HttpFlowsUi.d.ts +172 -0
- package/dist/elements/http/HttpFlowsUi.d.ts.map +1 -0
- package/dist/elements/http/HttpFlowsUi.js +1256 -0
- package/dist/elements/http/HttpFlowsUi.js.map +1 -0
- package/dist/elements/http/LogBody.js +10 -21
- package/dist/elements/http/LogBody.js.map +1 -1
- package/dist/elements/http/LogHeaders.js +4 -23
- package/dist/elements/http/LogHeaders.js.map +1 -1
- package/dist/elements/http/LogTimings.js +11 -13
- package/dist/elements/http/LogTimings.js.map +1 -1
- package/dist/elements/http/RequestConfigElement.d.ts +0 -1
- package/dist/elements/http/RequestConfigElement.d.ts.map +1 -1
- package/dist/elements/http/RequestConfigElement.js +15 -15
- package/dist/elements/http/RequestConfigElement.js.map +1 -1
- package/dist/elements/http/RequestEditor.d.ts +10 -10
- package/dist/elements/http/RequestEditor.d.ts.map +1 -1
- package/dist/elements/http/RequestEditor.js +116 -111
- package/dist/elements/http/RequestEditor.js.map +1 -1
- package/dist/elements/http/RequestLog.js +9 -14
- package/dist/elements/http/RequestLog.js.map +1 -1
- package/dist/elements/http/UrlInput.d.ts +3 -3
- package/dist/elements/http/UrlInput.d.ts.map +1 -1
- package/dist/elements/http/UrlInput.js +17 -27
- package/dist/elements/http/UrlInput.js.map +1 -1
- package/dist/elements/http/UrlParamsForm.d.ts +0 -1
- package/dist/elements/http/UrlParamsForm.d.ts.map +1 -1
- package/dist/elements/http/UrlParamsForm.js +16 -16
- package/dist/elements/http/UrlParamsForm.js.map +1 -1
- package/dist/elements/layout/LayoutManager.js +16 -24
- package/dist/elements/layout/LayoutManager.js.map +1 -1
- package/dist/elements/layout/LayoutPanelElement.js +17 -23
- package/dist/elements/layout/LayoutPanelElement.js.map +1 -1
- package/dist/elements/layout/SplitItem.js +4 -12
- package/dist/elements/layout/SplitItem.js.map +1 -1
- package/dist/elements/layout/SplitLayout.js +18 -24
- package/dist/elements/layout/SplitLayout.js.map +1 -1
- package/dist/elements/layout/SplitPanel.js +10 -16
- package/dist/elements/layout/SplitPanel.js.map +1 -1
- package/dist/elements/layout/SplitView.js +17 -26
- package/dist/elements/layout/SplitView.js.map +1 -1
- package/dist/elements/layout/SplitView.styles.d.ts.map +1 -1
- package/dist/elements/layout/SplitView.styles.js +1 -0
- package/dist/elements/layout/SplitView.styles.js.map +1 -1
- package/dist/elements/navigation/AppNavigationElement.js +8 -47
- package/dist/elements/navigation/AppNavigationElement.js.map +1 -1
- package/dist/elements/navigation/AppNavigationItem.styles.d.ts.map +1 -1
- package/dist/elements/navigation/AppNavigationItem.styles.js +2 -0
- package/dist/elements/navigation/AppNavigationItem.styles.js.map +1 -1
- package/dist/elements/navigation/AppNavigationItemElement.js +19 -24
- package/dist/elements/navigation/AppNavigationItemElement.js.map +1 -1
- package/dist/elements/project/HttpProjectRequest.d.ts +2 -1
- package/dist/elements/project/HttpProjectRequest.d.ts.map +1 -1
- package/dist/elements/project/HttpProjectRequest.js +14 -43
- package/dist/elements/project/HttpProjectRequest.js.map +1 -1
- package/dist/elements/project/HttpProjectRequestHistory.js +9 -35
- package/dist/elements/project/HttpProjectRequestHistory.js.map +1 -1
- package/dist/elements/project/ProjectNavigation.js +0 -4
- package/dist/elements/project/ProjectNavigation.js.map +1 -1
- package/dist/elements/project/ProjectRunReport.js +4 -15
- package/dist/elements/project/ProjectRunReport.js.map +1 -1
- package/dist/elements/project/ProjectRunner.d.ts +0 -1
- package/dist/elements/project/ProjectRunner.d.ts.map +1 -1
- package/dist/elements/project/ProjectRunner.js +3 -51
- package/dist/elements/project/ProjectRunner.js.map +1 -1
- package/dist/elements/schema-design/AssociationFormElement.d.ts +0 -1
- package/dist/elements/schema-design/AssociationFormElement.d.ts.map +1 -1
- package/dist/elements/schema-design/AssociationFormElement.js +2 -18
- package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
- package/dist/elements/schema-design/DataEntityEditorElement.d.ts +2 -2
- package/dist/elements/schema-design/DataEntityEditorElement.d.ts.map +1 -1
- package/dist/elements/schema-design/DataEntityEditorElement.js +5 -27
- package/dist/elements/schema-design/DataEntityEditorElement.js.map +1 -1
- package/dist/elements/schema-design/DataModelVisualizationElement.js +0 -16
- package/dist/elements/schema-design/DataModelVisualizationElement.js.map +1 -1
- package/dist/elements/schema-design/DataSchemaDocument.d.ts +0 -1
- package/dist/elements/schema-design/DataSchemaDocument.d.ts.map +1 -1
- package/dist/elements/schema-design/DataSchemaDocument.js +4 -43
- package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
- package/dist/elements/schema-design/EntityFormElement.d.ts +0 -1
- package/dist/elements/schema-design/EntityFormElement.d.ts.map +1 -1
- package/dist/elements/schema-design/EntityFormElement.js +4 -25
- package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
- package/dist/elements/schema-design/PropertyFormElement.d.ts +1 -2
- package/dist/elements/schema-design/PropertyFormElement.d.ts.map +1 -1
- package/dist/elements/schema-design/PropertyFormElement.js +8 -23
- package/dist/elements/schema-design/PropertyFormElement.js.map +1 -1
- package/dist/elements/schema-design/SchemaDesignNavigation.js +0 -9
- package/dist/elements/schema-design/SchemaDesignNavigation.js.map +1 -1
- package/dist/elements/schema-design/SchemaNamespaceSelector.js +0 -9
- package/dist/elements/schema-design/SchemaNamespaceSelector.js.map +1 -1
- package/dist/elements/user/UserAvatarElement.js +0 -9
- package/dist/elements/user/UserAvatarElement.js.map +1 -1
- package/dist/events/http-client/models/CertificatesEvents.js +2 -2
- package/dist/events/http-client/models/CertificatesEvents.js.map +1 -1
- package/dist/http-client/idb/Base.js +5 -10
- package/dist/http-client/idb/Base.js.map +1 -1
- package/dist/http-client/idb/LegacyMockedStore.js +0 -1
- package/dist/http-client/idb/LegacyMockedStore.js.map +1 -1
- package/dist/http-client/idb/MockedStore.js +3 -1
- package/dist/http-client/idb/MockedStore.js.map +1 -1
- package/dist/http-client/store/DataImportProcessor.js +0 -3
- package/dist/http-client/store/DataImportProcessor.js.map +1 -1
- package/dist/http-client/store/HttpClientIdbDatabase.js +8 -7
- package/dist/http-client/store/HttpClientIdbDatabase.js.map +1 -1
- package/dist/http-client/store/IdbThread.js +23 -20
- package/dist/http-client/store/IdbThread.js.map +1 -1
- package/dist/http-client/store/idb/IdbProjectUi.js +4 -1
- package/dist/http-client/store/idb/IdbProjectUi.js.map +1 -1
- package/dist/http-client/store/idb/IdbStore.js +0 -2
- package/dist/http-client/store/idb/IdbStore.js.map +1 -1
- package/dist/http-client/store/idb/IdbUrlHistory.js +4 -1
- package/dist/http-client/store/idb/IdbUrlHistory.js.map +1 -1
- package/dist/http-client/store/idb/IdbWsHistory.js +4 -1
- package/dist/http-client/store/idb/IdbWsHistory.js.map +1 -1
- package/dist/lib/chart/HttpHistoryChart.js +7 -8
- package/dist/lib/chart/HttpHistoryChart.js.map +1 -1
- package/dist/mixins/FileDropMixin.js +0 -1
- package/dist/mixins/FileDropMixin.js.map +1 -1
- package/dist/mixins/RenderableMixin.js +11 -15
- package/dist/mixins/RenderableMixin.js.map +1 -1
- package/dist/pages/ApplicationScreen.d.ts +1 -1
- package/dist/pages/ApplicationScreen.d.ts.map +1 -1
- package/dist/pages/ApplicationScreen.js +35 -56
- package/dist/pages/ApplicationScreen.js.map +1 -1
- package/dist/pages/api-client/ApiClient.screen.js +11 -20
- package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
- package/dist/pages/api-client/ApiClient.styles.d.ts.map +1 -1
- package/dist/pages/api-client/ApiClient.styles.js +22 -3
- package/dist/pages/api-client/ApiClient.styles.js.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.d.ts +2 -0
- package/dist/pages/api-client/Authenticate.screen.d.ts.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.js +23 -9
- package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
- package/dist/pages/api-client/StoreConfig.screen.d.ts.map +1 -1
- package/dist/pages/api-client/StoreConfig.screen.js +25 -39
- package/dist/pages/api-client/StoreConfig.screen.js.map +1 -1
- package/dist/pages/api-client/StoreConfig.styles.d.ts.map +1 -1
- package/dist/pages/api-client/StoreConfig.styles.js +5 -0
- package/dist/pages/api-client/StoreConfig.styles.js.map +1 -1
- package/dist/pages/api-client/Telemetry.screen.js +1 -2
- package/dist/pages/api-client/Telemetry.screen.js.map +1 -1
- package/dist/pages/api-client/pages/Files.page.d.ts +1 -0
- package/dist/pages/api-client/pages/Files.page.d.ts.map +1 -1
- package/dist/pages/api-client/pages/Files.page.js +8 -28
- package/dist/pages/api-client/pages/Files.page.js.map +1 -1
- package/dist/pages/api-client/pages/Settings.page.js +2 -4
- package/dist/pages/api-client/pages/Settings.page.js.map +1 -1
- package/dist/pages/api-client/pages/Trash.page.js +2 -13
- package/dist/pages/api-client/pages/Trash.page.js.map +1 -1
- package/dist/pages/demo/DemoPage.js +13 -13
- package/dist/pages/demo/DemoPage.js.map +1 -1
- package/dist/pages/http-project/HttpProject.screen.d.ts +0 -8
- package/dist/pages/http-project/HttpProject.screen.d.ts.map +1 -1
- package/dist/pages/http-project/HttpProject.screen.js +39 -50
- package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
- package/dist/pages/http-project/types.d.ts +8 -6
- package/dist/pages/http-project/types.d.ts.map +1 -1
- package/dist/pages/http-project/types.js.map +1 -1
- package/dist/pages/schema-design/SchemaDesigner.screen.js +14 -27
- package/dist/pages/schema-design/SchemaDesigner.screen.js.map +1 -1
- package/dist/store/HttpStore.js +0 -3
- package/dist/store/HttpStore.js.map +1 -1
- package/dist/store/UserCache.js +5 -5
- package/dist/store/UserCache.js.map +1 -1
- package/dist/styles/m3/surface.module.d.ts.map +1 -1
- package/dist/styles/m3/surface.module.js +11 -27
- package/dist/styles/m3/surface.module.js.map +1 -1
- package/dist/ui/UiElement.d.ts +4 -0
- package/dist/ui/UiElement.d.ts.map +1 -1
- package/dist/ui/UiElement.js +10 -5
- package/dist/ui/UiElement.js.map +1 -1
- package/dist/ui/button/SegmentedButton.js +9 -11
- package/dist/ui/button/SegmentedButton.js.map +1 -1
- package/dist/ui/button/SegmentedButton.styles.d.ts.map +1 -1
- package/dist/ui/button/SegmentedButton.styles.js +3 -1
- package/dist/ui/button/SegmentedButton.styles.js.map +1 -1
- package/dist/ui/button/SegmentedButtonsSet.js +6 -7
- package/dist/ui/button/SegmentedButtonsSet.js.map +1 -1
- package/dist/ui/button/UiButton.js +17 -39
- package/dist/ui/button/UiButton.js.map +1 -1
- package/dist/ui/button/UiIconButton.js +9 -35
- package/dist/ui/button/UiIconButton.js.map +1 -1
- package/dist/ui/chip/UiChip.js +9 -49
- package/dist/ui/chip/UiChip.js.map +1 -1
- package/dist/ui/collapse/UiCollapse.js +15 -20
- package/dist/ui/collapse/UiCollapse.js.map +1 -1
- package/dist/ui/controllers/ActionController.js +143 -144
- package/dist/ui/controllers/ActionController.js.map +1 -1
- package/dist/ui/controllers/RadioSelectionController.js +0 -1
- package/dist/ui/controllers/RadioSelectionController.js.map +1 -1
- package/dist/ui/date/DateTime.js +3 -3
- package/dist/ui/date/DateTime.js.map +1 -1
- package/dist/ui/dialog/UiDialog.d.ts +3 -0
- package/dist/ui/dialog/UiDialog.d.ts.map +1 -1
- package/dist/ui/dialog/UiDialog.js +17 -38
- package/dist/ui/dialog/UiDialog.js.map +1 -1
- package/dist/ui/effects/ripple.d.ts.map +1 -1
- package/dist/ui/effects/ripple.js +25 -19
- package/dist/ui/effects/ripple.js.map +1 -1
- package/dist/ui/effects/rippleDirective.js +6 -7
- package/dist/ui/effects/rippleDirective.js.map +1 -1
- package/dist/ui/icons/Icons.d.ts +3 -2
- package/dist/ui/icons/Icons.d.ts.map +1 -1
- package/dist/ui/icons/Icons.js +2 -1
- package/dist/ui/icons/Icons.js.map +1 -1
- package/dist/ui/icons/UiIcon.js +4 -3
- package/dist/ui/icons/UiIcon.js.map +1 -1
- package/dist/ui/input/CheckboxElement.js +12 -10
- package/dist/ui/input/CheckboxElement.js.map +1 -1
- package/dist/ui/input/CheckedElement.d.ts +1 -1
- package/dist/ui/input/CheckedElement.d.ts.map +1 -1
- package/dist/ui/input/CheckedElement.js +5 -16
- package/dist/ui/input/CheckedElement.js.map +1 -1
- package/dist/ui/input/Input.js +170 -235
- package/dist/ui/input/Input.js.map +1 -1
- package/dist/ui/input/RadioElement.js +13 -11
- package/dist/ui/input/RadioElement.js.map +1 -1
- package/dist/ui/input/SwitchElement.js +0 -18
- package/dist/ui/input/SwitchElement.js.map +1 -1
- package/dist/ui/input/TextAreaElement.js +0 -15
- package/dist/ui/input/TextAreaElement.js.map +1 -1
- package/dist/ui/list/{DividerElement.d.ts → UiDivider.element.d.ts} +6 -6
- package/dist/ui/list/UiDivider.element.d.ts.map +1 -0
- package/dist/ui/list/UiDivider.element.js +39 -0
- package/dist/ui/list/UiDivider.element.js.map +1 -0
- package/dist/ui/list/UiDivider.styles.d.ts +3 -0
- package/dist/ui/list/UiDivider.styles.d.ts.map +1 -0
- package/dist/ui/list/UiDivider.styles.js +49 -0
- package/dist/ui/list/UiDivider.styles.js.map +1 -0
- package/dist/ui/list/UiDropdownList.js +7 -48
- package/dist/ui/list/UiDropdownList.js.map +1 -1
- package/dist/ui/list/UiList.js +3 -15
- package/dist/ui/list/UiList.js.map +1 -1
- package/dist/ui/list/UiListItem.js +4 -17
- package/dist/ui/list/UiListItem.js.map +1 -1
- package/dist/ui/list/UiListbox.js +0 -1
- package/dist/ui/list/UiListbox.js.map +1 -1
- package/dist/ui/notification/SnackNotifications.js +1 -2
- package/dist/ui/notification/SnackNotifications.js.map +1 -1
- package/dist/ui/notification/Snackbar.js +27 -51
- package/dist/ui/notification/Snackbar.js.map +1 -1
- package/dist/ui/progress/Range.js +24 -23
- package/dist/ui/progress/Range.js.map +1 -1
- package/dist/ui/progress/UiProgress.js +0 -11
- package/dist/ui/progress/UiProgress.js.map +1 -1
- package/dist/ui/table/DataTable.js +7 -12
- package/dist/ui/table/DataTable.js.map +1 -1
- package/dist/ui/tabs/UiTab.js +24 -25
- package/dist/ui/tabs/UiTab.js.map +1 -1
- package/dist/ui/tabs/UiTabs.d.ts +13 -1
- package/dist/ui/tabs/UiTabs.d.ts.map +1 -1
- package/dist/ui/tabs/UiTabs.js +62 -47
- package/dist/ui/tabs/UiTabs.js.map +1 -1
- package/dist/visualization/elements/VizWorkspaceElement.js +12 -21
- package/dist/visualization/elements/VizWorkspaceElement.js.map +1 -1
- package/dist/visualization/lib/AssociationAnchors.js +16 -28
- package/dist/visualization/lib/AssociationAnchors.js.map +1 -1
- package/dist/visualization/lib/Point.js +0 -2
- package/dist/visualization/lib/Point.js.map +1 -1
- package/dist/visualization/lib/SelectionManager.js +10 -11
- package/dist/visualization/lib/SelectionManager.js.map +1 -1
- package/dist/visualization/lib/WorkspaceAlignment.js +0 -1
- package/dist/visualization/lib/WorkspaceAlignment.js.map +1 -1
- package/dist/visualization/lib/WorkspaceDebugging.js +5 -8
- package/dist/visualization/lib/WorkspaceDebugging.js.map +1 -1
- package/dist/visualization/lib/WorkspaceEdges.js +17 -19
- package/dist/visualization/lib/WorkspaceEdges.js.map +1 -1
- package/dist/visualization/lib/WorkspaceGestures.js +0 -3
- package/dist/visualization/lib/WorkspaceGestures.js.map +1 -1
- package/dist/visualization/lib/WorkspaceSizing.js +4 -6
- package/dist/visualization/lib/WorkspaceSizing.js.map +1 -1
- package/dist/visualization/lib/lines/RectilinearLine.js +8 -34
- package/dist/visualization/lib/lines/RectilinearLine.js.map +1 -1
- package/dist/visualization/lib/tips/RectilinearTip.js +0 -1
- package/dist/visualization/lib/tips/RectilinearTip.js.map +1 -1
- package/dist/visualization/lib/tips/TipArtist.js +0 -3
- package/dist/visualization/lib/tips/TipArtist.js.map +1 -1
- package/dist/visualization/plugin/dnd/DragAndDropPlugin.js +3 -5
- package/dist/visualization/plugin/dnd/DragAndDropPlugin.js.map +1 -1
- package/dist/visualization/plugin/group-selection/GroupSelection.js +19 -19
- package/dist/visualization/plugin/group-selection/GroupSelection.js.map +1 -1
- package/dist/visualization/plugin/positioning/WorkspaceLayout.js +21 -38
- package/dist/visualization/plugin/positioning/WorkspaceLayout.js.map +1 -1
- package/package.json +3 -2
- package/src/define/dialog/delete-cookie-action-dialog.ts +16 -0
- package/src/define/dialog/set-cookie-action-dialog.ts +16 -0
- package/src/define/http/http-assertions.ts +3 -3
- package/src/define/http/http-flows.ts +15 -0
- package/src/define/ui/ui-divider.ts +7 -2
- package/src/elements/ApiElement.ts +7 -0
- package/src/elements/amf/ApiAuthorizationEditor.element.ts +1 -1
- package/src/elements/amf/ApiOperationDocument.element.ts +2 -1
- package/src/elements/amf/ApiRequest.element.ts +1 -1
- package/src/elements/amf/ApiRequestEditor.element.ts +0 -4
- package/src/elements/authorization/ui/Authorization.ts +3 -5
- package/src/elements/dialog/DeleteCookieAction.element.ts +100 -0
- package/src/elements/dialog/DeleteCookieAction.styles.ts +14 -0
- package/src/elements/dialog/Rename.ts +8 -7
- package/src/elements/dialog/SetCookieAction.element.ts +183 -0
- package/src/elements/environment/EnvironmentEditor.styles.ts +5 -0
- package/src/elements/environment/EnvironmentEditor.ts +81 -22
- package/src/elements/environment/ServerEditor.ts +4 -8
- package/src/elements/environment/VariablesEditor.ts +3 -7
- package/src/elements/highlight/Prism.styles.ts +12 -5
- package/src/elements/http/BodyEditor.ts +10 -17
- package/src/elements/http/BodyMultipartEditor.ts +3 -20
- package/src/elements/http/BodyTextEditor.ts +0 -4
- package/src/elements/http/BodyUrlEncodedEditor.ts +5 -8
- package/src/elements/http/HeadersForm.ts +2 -9
- package/src/elements/http/HttpAssertions.element.ts +286 -0
- package/src/elements/http/HttpAssertions.styles.ts +7 -156
- package/src/elements/http/HttpFlows.common.ts +181 -0
- package/src/elements/http/HttpFlows.element.ts +722 -0
- package/src/elements/http/HttpFlows.styles.ts +29 -0
- package/src/elements/http/HttpFlowsUi.ts +1327 -0
- package/src/elements/http/RequestConfigElement.ts +10 -14
- package/src/elements/http/RequestEditor.ts +77 -35
- package/src/elements/http/UrlInput.ts +6 -6
- package/src/elements/http/UrlParamsForm.ts +2 -6
- package/src/elements/layout/SplitView.styles.ts +1 -0
- package/src/elements/navigation/AppNavigationItem.styles.ts +2 -0
- package/src/elements/project/HttpProjectRequest.ts +16 -5
- package/src/elements/project/ProjectRunner.ts +3 -7
- package/src/elements/schema-design/AssociationFormElement.ts +4 -8
- package/src/elements/schema-design/DataEntityEditorElement.ts +8 -8
- package/src/elements/schema-design/DataSchemaDocument.ts +5 -9
- package/src/elements/schema-design/EntityFormElement.ts +6 -10
- package/src/elements/schema-design/PropertyFormElement.ts +11 -15
- package/src/pages/ApplicationScreen.ts +1 -1
- package/src/pages/api-client/ApiClient.styles.ts +22 -3
- package/src/pages/api-client/Authenticate.screen.ts +19 -3
- package/src/pages/api-client/StoreConfig.screen.ts +4 -2
- package/src/pages/api-client/StoreConfig.styles.ts +5 -0
- package/src/pages/api-client/pages/Files.page.ts +2 -1
- package/src/pages/http-project/HttpProject.screen.ts +14 -26
- package/src/pages/http-project/types.ts +8 -6
- package/src/styles/m3/surface.module.ts +11 -27
- package/src/styles/m3/theme.css +36 -0
- package/src/styles/m3/tokens.css +11 -0
- package/src/ui/UiElement.ts +7 -0
- package/src/ui/button/SegmentedButton.styles.ts +3 -1
- package/src/ui/dialog/UiDialog.ts +3 -0
- package/src/ui/effects/ripple.ts +6 -1
- package/src/ui/icons/Icons.ts +3 -2
- package/src/ui/input/CheckedElement.ts +3 -3
- package/src/ui/input/Input.ts +1 -1
- package/src/ui/list/UiDivider.element.ts +41 -0
- package/src/ui/list/UiDivider.styles.ts +49 -0
- package/src/ui/tabs/UiTabs.ts +55 -13
- package/test/amf/authorization/OAuth2Method.test.ts +1 -1
- package/test/elements/http/HttpAssertions.test.ts +5 -6
- package/test/elements/http/HttpFlows.test.ts +485 -0
- package/tsconfig.json +2 -2
- package/dist/elements/http/HttpAssertions.d.ts +0 -114
- package/dist/elements/http/HttpAssertions.d.ts.map +0 -1
- package/dist/elements/http/HttpAssertions.js +0 -1144
- package/dist/elements/http/HttpAssertions.js.map +0 -1
- package/dist/elements/http/internals.d.ts +0 -150
- package/dist/elements/http/internals.d.ts.map +0 -1
- package/dist/elements/http/internals.js +0 -150
- package/dist/elements/http/internals.js.map +0 -1
- package/dist/ui/list/DividerElement.d.ts.map +0 -1
- package/dist/ui/list/DividerElement.js +0 -87
- package/dist/ui/list/DividerElement.js.map +0 -1
- package/src/elements/http/HttpAssertions.ts +0 -1187
- package/src/elements/http/internals.ts +0 -151
- package/src/http-client/docs/Files.md +0 -28
- package/src/ui/list/DividerElement.ts +0 -84
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpProjectRequest.js","sourceRoot":"","sources":["../../../src/elements/project/HttpProjectRequest.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, PropertyValues, TemplateResult } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { \n ProjectRequest, HttpRequest, HttpProject, Events as CoreEvents, IProjectRunnerOptions, \n IHttpHistory, HttpHistoryKind, IRequestLog, IApplication, DeserializedPayload, \n IHttpProjectProxyInit, HttpProjectKind, Environment, IProperty, HeadersArray, \n RequestAuthorization, IRequestAuthorization, IHttpProjectStoreProxyInit, IProxyResult, \n IProjectExecutionLog,\n IHttpAssertion,\n IRequestConfig,\n RequestConfig,\n} from '@api-client/core/build/browser.js';\nimport { AuthorizationType } from '@api-client/core/build/src/models/Authorization.js';\nimport { JsonPatchOperation } from '@api-client/json';\nimport RequestEditor from '../http/RequestEditor.js';\nimport { Events } from '../../events/Events.js';\nimport { EventTypes } from '../../events/EventTypes.js';\nimport { midnightTimestamp } from '../../lib/time/Conversion.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\n\nfunction stopEvent(e: Event): void {\n e.stopPropagation();\n}\n\n/**\n * An element that specializes in rendering an HTTP request that is defined on an HttpProject.\n * \n * When using this element set the `project` property to the currently opened\n * project and the `key` to the request to render.\n * The element will hook-up to the events to support project mutations.\n */\nexport default class HttpProjectRequest extends RequestEditor {\n /**\n * The source project\n */\n @property({ type: Object }) project?: HttpProject;\n\n /**\n * The key of the request being processed.\n * @attribute\n */\n @property({ type: String, reflect: true }) key?: string;\n\n /**\n * This property is required for the API access to work.\n * Set it to the current application information.\n */\n @property({ type: Object }) appInfo?: IApplication;\n\n /**\n * The read `expects` value from the project request.\n */\n protected expects?: HttpRequest;\n\n /**\n * The read project request object from the project.\n */\n protected projectRequest?: ProjectRequest;\n\n /**\n * The list of environments that apply to the current request.\n */\n @state() protected environments?: Environment[];\n\n /**\n * Computed value of the environment to render in the environment selector.\n * Because of the complexity of finding the name, it is computed on `environment` change only.\n */\n @state() protected environmentLabel?: string;\n\n /**\n * When set the requests sent from the editor will contain the entire project serialized with the request \n * rather just the id of the project. This is used in HTTP Client that doesn't use the net-store\n * and uses local proxy.\n * @attribute\n */\n @property({ type: Boolean }) useNetStore?: boolean;\n\n constructor() {\n super();\n // do not propagate HTTP request internal events outside as multiple requests are rendered in the same document.\n this.eventsTarget = this;\n this.addEventListener(EventTypes.Http.Request.State.urlChange, stopEvent);\n this.addEventListener(EventTypes.Http.Request.State.contentTypeChange, stopEvent);\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('project') || cp.has('key')) {\n this.setupRequest();\n }\n super.willUpdate(cp);\n }\n\n applyPatch(info: JsonPatchOperation): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n if (info.path.startsWith('/definitions/environments')) {\n // environments changed.\n this.setupRequestEnvironments(projectRequest);\n return;\n }\n // \"/definitions/requests/\\d+/...\"\n const parts = info.path.split('/').slice(4);\n const [root] = parts;\n if (root === 'expects' || root === 'log') {\n this.setupRequest();\n }\n }\n\n protected cleanup(): void {\n this.expects = undefined;\n this.environments = undefined;\n this.ui = undefined;\n }\n\n protected setupRequest(): void {\n const { project, key } = this;\n if (!project || !key) {\n this.cleanup();\n return;\n }\n const request = project.findRequest(key);\n if (!request) {\n this.cleanup();\n return;\n }\n this.projectRequest = request;\n const expects = request.getExpects();\n this.expects = expects;\n this.request = expects.toJSON();\n this.authorization = request.authorization?.map(i => i.toJSON());\n this.assertions = request.assertions;\n if (request.config) {\n this.config = request.config.toJSON();\n }\n\n this.setupRequestEnvironments(request);\n this.computeSnippetsRequest();\n this.requestUpdate();\n }\n\n /**\n * Reads environments to be applies to the request and sets up local variables.\n */\n protected setupRequestEnvironments(request: ProjectRequest): void {\n this.environments = request.readEnvironments();\n this.computeEnvironmentLabel();\n this.computeSnippetsRequest();\n }\n\n override selectVerb(verb: string): void {\n const { expects } = this;\n if (!expects) {\n return;\n }\n expects.method = verb;\n super.selectVerb(verb);\n }\n\n override selectUrl(value: string): void {\n const { expects } = this;\n if (!expects) {\n return;\n }\n expects.url = value;\n super.selectUrl(value);\n }\n\n override selectHeaders(model: IProperty[]): void {\n const { expects } = this;\n if (!expects) {\n return;\n }\n expects.headersModel = HeadersArray.from(model);\n super.selectHeaders(model);\n }\n\n override selectAssertions(assertions?: IHttpAssertion[]): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n projectRequest.assertions = assertions;\n super.selectAssertions(assertions);\n }\n\n override selectRequestConfig(config: IRequestConfig): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n projectRequest.config = new RequestConfig(config);\n super.selectRequestConfig(config);\n }\n\n protected override async updatePayload(value: DeserializedPayload, mime?: string): Promise<void> {\n const { expects } = this;\n if (!expects) {\n return;\n }\n await expects.writePayload(value);\n this.setPayloadMimeOption(expects, mime);\n await super.updatePayload(value, mime);\n }\n\n override addAuthorization(type: AuthorizationType): RequestAuthorization {\n const schema = super.addAuthorization(type);\n if (this.projectRequest) {\n if (!this.projectRequest.authorization) {\n this.projectRequest.authorization = [];\n }\n this.projectRequest.authorization.push(schema)\n this.notifyRequestChanged();\n }\n return schema;\n }\n\n override updateAuthorization(schema: IRequestAuthorization, isValid: boolean): void {\n super.updateAuthorization(schema, isValid);\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n if (!projectRequest.authorization) {\n // somehow invalid state. These should be in sync...\n return;\n }\n const index = projectRequest.authorization.findIndex(i => i.type === schema.type)\n if (index === -1) {\n return;\n }\n projectRequest.authorization[index] = new RequestAuthorization(schema);\n this.notifyRequestChanged();\n }\n\n override removeAuthorization(type: string): void {\n super.removeAuthorization(type);\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n if (!projectRequest.authorization) {\n return;\n }\n const index = projectRequest.authorization.findIndex(i => i.type === type);\n if (index === -1) {\n return;\n }\n projectRequest.authorization.splice(index, 1);\n this.notifyRequestChanged();\n }\n\n protected override notifySend(): void {\n this.execute();\n }\n\n protected prepareProxyInit(project: HttpProject, key: string, request: ProjectRequest): IHttpProjectProxyInit | IHttpProjectStoreProxyInit {\n const options: IProjectRunnerOptions = {\n environment: request.environment,\n request: [key],\n recursive: true,\n };\n if (this.useNetStore) {\n return {\n kind: HttpProjectKind,\n pid: project.key,\n options,\n } as IHttpProjectStoreProxyInit;\n }\n return {\n project: project.toJSON(),\n kind: HttpProjectKind,\n options,\n };\n }\n\n protected async proxyRequest(init: IHttpProjectProxyInit | IHttpProjectStoreProxyInit): Promise<IProxyResult<IProjectExecutionLog> | undefined> {\n let result: IProxyResult<IProjectExecutionLog> | undefined;\n try {\n result = await CoreEvents.Transport.Core.httpProject(init, this);\n } catch (e) {\n // ...\n }\n return result;\n }\n\n protected async execute(): Promise<void> {\n const { project, key, projectRequest } = this;\n if (!project || !key || !projectRequest) {\n throw new Error(`The project request is not initialized.`);\n }\n const init = this.prepareProxyInit(project, key, projectRequest);\n this.loading = true;\n const result = await this.proxyRequest(init);\n const report = result?.result?.iterations[0]?.executed[0];\n if (report) {\n this.requestUpdate();\n this.addHistory(report);\n }\n this.loading = false;\n }\n\n protected async addHistory(report: IRequestLog): Promise<void> {\n const { appInfo, project, key } = this;\n if (!appInfo) {\n throw new Error(`The appInfo is not set on ${this.localName}`);\n }\n if (!project || !key) {\n return;\n }\n const item: IHttpHistory = {\n created: Date.now(),\n kind: HttpHistoryKind,\n log: report,\n project: project.key,\n app: appInfo.code,\n request: key,\n user: '', // added by the bindings\n midnight: midnightTimestamp(),\n key: '',\n space: '', // will be filled by the bindings.\n };\n \n Events.Store.History.create(item);\n }\n\n protected handleEnvironmentSelection(e: CustomEvent): void {\n const { projectRequest } = this;\n const target = e.detail.item as HTMLElement | undefined;\n if (!target || !projectRequest) {\n return;\n }\n const { key } = target.dataset;\n if (projectRequest.environment === key) {\n return;\n }\n projectRequest.environment = key;\n this.computeEnvironmentLabel();\n projectRequest.environment = key;\n this.computeSnippetsRequest();\n this.notifyRequestChanged();\n this.notifyChanged('environment', key);\n }\n\n protected computeEnvironmentLabel(): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n this.environmentLabel = undefined;\n return;\n }\n const url = projectRequest.readUrl({ baseUrl: true, noVariables: true });\n this.environmentLabel = url || 'No server defined';\n }\n\n protected override async computeSnippetsRequest(): Promise<void> {\n await super.computeSnippetsRequest();\n if (this.snippets) {\n const url = this.projectRequest?.readUrl();\n if (url) {\n this.snippets.url = url;\n }\n }\n }\n\n protected override renderUrlMeta(): TemplateResult {\n return html`\n ${this.renderHttpMethodSelector()}\n ${this.renderEnvironmentSelector()}\n ${this.renderUrlEditor()}\n `;\n }\n\n protected renderEnvironmentSelector(): TemplateResult | typeof nothing {\n const { environmentLabel: currentEnvironmentLabel, environments } = this;\n if (!environments?.length) {\n return nothing;\n }\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleEnvironmentSelection}\"\n class=\"environment-dropdown\"\n closeOnOutsideClick\n >\n <ui-button type=\"text\">\n ${currentEnvironmentLabel || 'No environment'}\n <ui-icon icon=\"arrowDropDown\"></ui-icon>\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" title=\"Selects the environment in the request's folder or inherited from a parent\">Inherited environment</ui-list-item>\n ${this.renderEnvironmentOptions(environments)}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderEnvironmentOptions(environments: Environment[]): TemplateResult[] {\n return environments.map((env) => this.renderEnvironmentItem(env));\n }\n\n protected renderEnvironmentItem(env: Environment): TemplateResult {\n const srv = env.getServer();\n const srvUri = srv?.readUri();\n const label = srvUri || 'Server not defined';\n // note, we don't disable items without server because it may still apply variables \n // from it.\n return html`\n <ui-list-item \n role=\"menuitem\" \n data-key=\"${env.key}\" \n lines=\"two\" \n >\n ${env.info.renderLabel}\n <p slot=\"supporting-text\">${label}</p>\n </ui-list-item>\n `;\n }\n\n protected override renderEmptyAuthorization(): TemplateResult {\n return html`\n <div class=\"body-medium centered\">\n This request will inherit authorization defined in an environment (if any).<br/>\n Add an authorization to this request to override.\n </div>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HttpProjectRequest.js","sourceRoot":"","sources":["../../../src/elements/project/HttpProjectRequest.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, nothing, PropertyValues, TemplateResult } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { \n ProjectRequest, HttpRequest, HttpProject, Events as CoreEvents, IProjectRunnerOptions, \n IHttpHistory, HttpHistoryKind, IRequestLog, IApplication, DeserializedPayload, \n IHttpProjectProxyInit, HttpProjectKind, Environment, IProperty, HeadersArray, \n RequestAuthorization, IRequestAuthorization, IHttpProjectStoreProxyInit, IProxyResult, \n IProjectExecutionLog,\n IHttpAssertion,\n IRequestConfig,\n RequestConfig,\n IHttpFlow,\n} from '@api-client/core/build/browser.js';\nimport { AuthorizationType } from '@api-client/core/build/src/models/Authorization.js';\nimport { JsonPatchOperation } from '@api-client/json';\nimport RequestEditor from '../http/RequestEditor.js';\nimport { Events } from '../../events/Events.js';\nimport { EventTypes } from '../../events/EventTypes.js';\nimport { midnightTimestamp } from '../../lib/time/Conversion.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\n\nfunction stopEvent(e: Event): void {\n e.stopPropagation();\n}\n\n/**\n * An element that specializes in rendering an HTTP request that is defined on an HttpProject.\n * \n * When using this element set the `project` property to the currently opened\n * project and the `key` to the request to render.\n * The element will hook-up to the events to support project mutations.\n */\nexport default class HttpProjectRequest extends RequestEditor {\n /**\n * The source project\n */\n @property({ type: Object }) project?: HttpProject;\n\n /**\n * The key of the request being processed.\n * @attribute\n */\n @property({ type: String, reflect: true }) key?: string;\n\n /**\n * This property is required for the API access to work.\n * Set it to the current application information.\n */\n @property({ type: Object }) appInfo?: IApplication;\n\n /**\n * The read `expects` value from the project request.\n */\n protected expects?: HttpRequest;\n\n /**\n * The read project request object from the project.\n */\n protected projectRequest?: ProjectRequest;\n\n /**\n * The list of environments that apply to the current request.\n */\n @state() protected environments?: Environment[];\n\n /**\n * Computed value of the environment to render in the environment selector.\n * Because of the complexity of finding the name, it is computed on `environment` change only.\n */\n @state() protected environmentLabel?: string;\n\n /**\n * When set the requests sent from the editor will contain the entire project serialized with the request \n * rather just the id of the project. This is used in HTTP Client that doesn't use the net-store\n * and uses local proxy.\n * @attribute\n */\n @property({ type: Boolean }) useNetStore?: boolean;\n\n constructor() {\n super();\n // do not propagate HTTP request internal events outside as multiple requests are rendered in the same document.\n this.eventsTarget = this;\n this.addEventListener(EventTypes.Http.Request.State.urlChange, stopEvent);\n this.addEventListener(EventTypes.Http.Request.State.contentTypeChange, stopEvent);\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('project') || cp.has('key')) {\n this.setupRequest();\n }\n super.willUpdate(cp);\n }\n\n applyPatch(info: JsonPatchOperation): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n if (info.path.startsWith('/definitions/environments')) {\n // environments changed.\n this.setupRequestEnvironments(projectRequest);\n return;\n }\n // \"/definitions/requests/\\d+/...\"\n const parts = info.path.split('/').slice(4);\n const [root] = parts;\n if (root === 'expects' || root === 'log') {\n this.setupRequest();\n }\n }\n\n protected cleanup(): void {\n this.expects = undefined;\n this.environments = undefined;\n this.ui = undefined;\n }\n\n protected setupRequest(): void {\n const { project, key } = this;\n if (!project || !key) {\n this.cleanup();\n return;\n }\n const request = project.findRequest(key);\n if (!request) {\n this.cleanup();\n return;\n }\n this.projectRequest = request;\n const expects = request.getExpects();\n this.expects = expects;\n this.request = expects.toJSON();\n this.authorization = request.authorization?.map(i => i.toJSON());\n this.assertions = request.assertions;\n this.flows = request.flows;\n if (request.config) {\n this.config = request.config.toJSON();\n }\n\n this.setupRequestEnvironments(request);\n this.computeSnippetsRequest();\n this.requestUpdate();\n }\n\n /**\n * Reads environments to be applies to the request and sets up local variables.\n */\n protected setupRequestEnvironments(request: ProjectRequest): void {\n this.environments = request.readEnvironments();\n this.computeEnvironmentLabel();\n this.computeSnippetsRequest();\n }\n\n override selectVerb(verb: string): void {\n const { expects } = this;\n if (!expects) {\n return;\n }\n expects.method = verb;\n super.selectVerb(verb);\n }\n\n override selectUrl(value: string): void {\n const { expects } = this;\n if (!expects) {\n return;\n }\n expects.url = value;\n super.selectUrl(value);\n }\n\n override selectHeaders(model: IProperty[]): void {\n const { expects } = this;\n if (!expects) {\n return;\n }\n expects.headersModel = HeadersArray.from(model);\n super.selectHeaders(model);\n }\n\n override selectAssertions(assertions?: IHttpAssertion[]): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n projectRequest.assertions = assertions;\n super.selectAssertions(assertions);\n }\n\n override selectFlows(flows?: IHttpFlow[]): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n projectRequest.flows = flows;\n super.selectFlows(flows);\n }\n\n override selectRequestConfig(config: IRequestConfig): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n projectRequest.config = new RequestConfig(config);\n super.selectRequestConfig(config);\n }\n\n protected override async updatePayload(value: DeserializedPayload, mime?: string): Promise<void> {\n const { expects } = this;\n if (!expects) {\n return;\n }\n await expects.writePayload(value);\n this.setPayloadMimeOption(expects, mime);\n await super.updatePayload(value, mime);\n }\n\n override addAuthorization(type: AuthorizationType): RequestAuthorization {\n const schema = super.addAuthorization(type);\n if (this.projectRequest) {\n if (!this.projectRequest.authorization) {\n this.projectRequest.authorization = [];\n }\n this.projectRequest.authorization.push(schema)\n this.notifyChange();\n }\n return schema;\n }\n\n override updateAuthorization(schema: IRequestAuthorization, isValid: boolean): void {\n super.updateAuthorization(schema, isValid);\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n if (!projectRequest.authorization) {\n // somehow invalid state. These should be in sync...\n return;\n }\n const index = projectRequest.authorization.findIndex(i => i.type === schema.type)\n if (index === -1) {\n return;\n }\n projectRequest.authorization[index] = new RequestAuthorization(schema);\n this.notifyChange();\n }\n\n override removeAuthorization(type: string): void {\n super.removeAuthorization(type);\n const { projectRequest } = this;\n if (!projectRequest) {\n return;\n }\n if (!projectRequest.authorization) {\n return;\n }\n const index = projectRequest.authorization.findIndex(i => i.type === type);\n if (index === -1) {\n return;\n }\n projectRequest.authorization.splice(index, 1);\n this.notifyChange();\n }\n\n protected override notifySend(): void {\n this.execute();\n }\n\n protected prepareProxyInit(project: HttpProject, key: string, request: ProjectRequest): IHttpProjectProxyInit | IHttpProjectStoreProxyInit {\n const options: IProjectRunnerOptions = {\n environment: request.environment,\n request: [key],\n recursive: true,\n };\n if (this.useNetStore) {\n return {\n kind: HttpProjectKind,\n pid: project.key,\n options,\n } as IHttpProjectStoreProxyInit;\n }\n return {\n project: project.toJSON(),\n kind: HttpProjectKind,\n options,\n };\n }\n\n protected async proxyRequest(init: IHttpProjectProxyInit | IHttpProjectStoreProxyInit): Promise<IProxyResult<IProjectExecutionLog> | undefined> {\n let result: IProxyResult<IProjectExecutionLog> | undefined;\n try {\n result = await CoreEvents.Transport.Core.httpProject(init, this);\n } catch (e) {\n // ...\n }\n return result;\n }\n\n protected async execute(): Promise<void> {\n const { project, key, projectRequest } = this;\n if (!project || !key || !projectRequest) {\n throw new Error(`The project request is not initialized.`);\n }\n const init = this.prepareProxyInit(project, key, projectRequest);\n this.loading = true;\n const result = await this.proxyRequest(init);\n const report = result?.result?.iterations[0]?.executed[0];\n if (report) {\n this.requestUpdate();\n this.addHistory(report);\n }\n this.loading = false;\n }\n\n protected async addHistory(report: IRequestLog): Promise<void> {\n const { appInfo, project, key } = this;\n if (!appInfo) {\n throw new Error(`The appInfo is not set on ${this.localName}`);\n }\n if (!project || !key) {\n return;\n }\n const item: IHttpHistory = {\n created: Date.now(),\n kind: HttpHistoryKind,\n log: report,\n project: project.key,\n app: appInfo.code,\n request: key,\n user: '', // added by the bindings\n midnight: midnightTimestamp(),\n key: '',\n space: '', // will be filled by the bindings.\n };\n \n Events.Store.History.create(item);\n }\n\n protected handleEnvironmentSelection(e: CustomEvent): void {\n const { projectRequest } = this;\n const target = e.detail.item as HTMLElement | undefined;\n if (!target || !projectRequest) {\n return;\n }\n const { key } = target.dataset;\n if (projectRequest.environment === key) {\n return;\n }\n projectRequest.environment = key;\n this.computeEnvironmentLabel();\n projectRequest.environment = key;\n this.computeSnippetsRequest();\n this.notifyChange();\n this.notifyPropertyChanged('environment', key);\n }\n\n protected computeEnvironmentLabel(): void {\n const { projectRequest } = this;\n if (!projectRequest) {\n this.environmentLabel = undefined;\n return;\n }\n const url = projectRequest.readUrl({ baseUrl: true, noVariables: true });\n this.environmentLabel = url || 'No server defined';\n }\n\n protected override async computeSnippetsRequest(): Promise<void> {\n await super.computeSnippetsRequest();\n if (this.snippets) {\n const url = this.projectRequest?.readUrl();\n if (url) {\n this.snippets.url = url;\n }\n }\n }\n\n protected override renderUrlMeta(): TemplateResult {\n return html`\n ${this.renderHttpMethodSelector()}\n ${this.renderEnvironmentSelector()}\n ${this.renderUrlEditor()}\n `;\n }\n\n protected renderEnvironmentSelector(): TemplateResult | typeof nothing {\n const { environmentLabel: currentEnvironmentLabel, environments } = this;\n if (!environments?.length) {\n return nothing;\n }\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleEnvironmentSelection}\"\n class=\"environment-dropdown\"\n closeOnOutsideClick\n >\n <ui-button type=\"text\">\n ${currentEnvironmentLabel || 'No environment'}\n <ui-icon icon=\"arrowDropDown\"></ui-icon>\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" title=\"Selects the environment in the request's folder or inherited from a parent\">Inherited environment</ui-list-item>\n ${this.renderEnvironmentOptions(environments)}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderEnvironmentOptions(environments: Environment[]): TemplateResult[] {\n return environments.map((env) => this.renderEnvironmentItem(env));\n }\n\n protected renderEnvironmentItem(env: Environment): TemplateResult {\n const srv = env.getServer();\n const srvUri = srv?.readUri();\n const label = srvUri || 'Server not defined';\n // note, we don't disable items without server because it may still apply variables \n // from it.\n return html`\n <ui-list-item \n role=\"menuitem\" \n data-key=\"${env.key}\" \n lines=\"two\" \n >\n ${env.info.renderLabel}\n <p slot=\"supporting-text\">${label}</p>\n </ui-list-item>\n `;\n }\n\n protected override renderEmptyAuthorization(): TemplateResult {\n return html`\n <div class=\"body-medium centered\">\n This request will inherit authorization defined in an environment (if any).<br/>\n Add an authorization to this request to override.\n </div>\n `;\n }\n}\n"]}
|
|
@@ -31,49 +31,23 @@ export var ProjectHistoryView;
|
|
|
31
31
|
* or user interactions. Use the dispatched events to handle user interactions.
|
|
32
32
|
*/
|
|
33
33
|
export default class HttpProjectRequestHistory extends ApiElement {
|
|
34
|
-
/**
|
|
35
|
-
* The history list to render.
|
|
36
|
-
*/
|
|
37
|
-
history = [];
|
|
38
|
-
/**
|
|
39
|
-
* The key of the project the request belongs to.
|
|
40
|
-
*/
|
|
41
|
-
project;
|
|
42
|
-
/**
|
|
43
|
-
* The key of the request to render the history for.
|
|
44
|
-
* Both `request` and `project` properties must be set to render any view.
|
|
45
|
-
*/
|
|
46
|
-
request;
|
|
47
34
|
/**
|
|
48
35
|
* Returns true when the element is correctly setup.
|
|
49
36
|
*/
|
|
50
37
|
get isSetup() {
|
|
51
38
|
return !!this.project && !!this.request;
|
|
52
39
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Whether querying for a page of results.
|
|
55
|
-
*/
|
|
56
|
-
querying = false;
|
|
57
|
-
/**
|
|
58
|
-
* A sorted list of history items by the `midnight` property.
|
|
59
|
-
*/
|
|
60
|
-
model;
|
|
61
|
-
/**
|
|
62
|
-
* The key of the selected request, if any
|
|
63
|
-
*/
|
|
64
|
-
selectedItem;
|
|
65
|
-
/**
|
|
66
|
-
* The currently rendered item.
|
|
67
|
-
*/
|
|
68
|
-
renderedItem;
|
|
69
|
-
view = ProjectHistoryView.history;
|
|
70
|
-
debounceTimeout;
|
|
71
|
-
/**
|
|
72
|
-
* The cursor returned by the store used in pagination.
|
|
73
|
-
*/
|
|
74
|
-
pageCursor;
|
|
75
40
|
constructor() {
|
|
76
41
|
super();
|
|
42
|
+
/**
|
|
43
|
+
* The history list to render.
|
|
44
|
+
*/
|
|
45
|
+
this.history = [];
|
|
46
|
+
/**
|
|
47
|
+
* Whether querying for a page of results.
|
|
48
|
+
*/
|
|
49
|
+
this.querying = false;
|
|
50
|
+
this.view = ProjectHistoryView.history;
|
|
77
51
|
this.handleHistoryCreated = this.handleHistoryCreated.bind(this);
|
|
78
52
|
this.handleHistoryDeleted = this.handleHistoryDeleted.bind(this);
|
|
79
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpProjectRequestHistory.js","sourceRoot":"","sources":["../../../src/elements/project/HttpProjectRequestHistory.ts"],"names":[],"mappings":"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","sourcesContent":["import { \n ErrorResponse, IHttpHistory, IResponse, IRequestLog, \n RequestLog, IHistoryRequestListOptions, ContextStateUpdateEvent,\n ContextStateDeleteEvent,\n} from \"@api-client/core/build/browser.js\";\nimport { TemplateResult, html, PropertyValues, nothing } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport { relativeDay } from \"../../lib/time/Conversion.js\";\nimport { HttpHistoryChart, } from '../../lib/chart/HttpHistoryChart.js';\nimport { statusTemplate, } from '../http/HttpStatus.js';\nimport { Events } from '../../events/Events.js';\nimport { EventTypes } from '../../events/EventTypes.js';\nimport SegmentedButton from \"../../ui/button/SegmentedButton.js\";\nimport UiDialog, { UiDialogClosingReason } from \"../../ui/dialog/UiDialog.js\";\nimport '@github/relative-time-element';\nimport { SnackNotifications } from \"../../ui/notification/SnackNotifications.js\";\nimport UiIconButton from \"../../ui/button/UiIconButton.js\";\nimport '../../define/http/http-request-log.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-segmented-button.js';\nimport '../../define/ui/ui-segmented-button-set.js';\nimport '../../define/ui/ui-dialog.js';\n\nexport enum ProjectHistoryView {\n history = 'history',\n analysis = 'analysis',\n}\n\n/**\n * An element that renders HTTP history for a configured list of requests.\n * This element is just a view and contains no logic related to store communication \n * or user interactions. Use the dispatched events to handle user interactions.\n */\nexport default class HttpProjectRequestHistory extends ApiElement {\n /**\n * The history list to render.\n */\n @state() history: IHttpHistory[] = [];\n\n /**\n * The key of the project the request belongs to.\n */\n @property({ type: String }) project?: string;\n\n /**\n * The key of the request to render the history for.\n * Both `request` and `project` properties must be set to render any view.\n */\n @property({ type: String }) request?: string;\n\n /**\n * Returns true when the element is correctly setup.\n */\n get isSetup(): boolean {\n return !!this.project && !!this.request;\n }\n\n /**\n * Whether querying for a page of results.\n */\n @state() querying = false;\n\n /**\n * A sorted list of history items by the `midnight` property.\n */\n @state() protected model?: IHttpHistory[][];\n\n /**\n * The key of the selected request, if any\n */\n @state() selectedItem?: string;\n\n /**\n * The currently rendered item.\n */\n @state() protected renderedItem?: IHttpHistory | IRequestLog | RequestLog;\n\n @state() protected view: ProjectHistoryView = ProjectHistoryView.history;\n\n protected debounceTimeout?: number;\n\n /**\n * The cursor returned by the store used in pagination.\n */\n protected pageCursor?: string;\n\n constructor() {\n super();\n\n this.handleHistoryCreated = this.handleHistoryCreated.bind(this);\n this.handleHistoryDeleted = this.handleHistoryDeleted.bind(this);\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('project') || cp.has('request')) {\n this.reset();\n this.queryDebounce();\n }\n if (cp.has('selectedItem')) {\n this.computeSelectedItem();\n }\n super.willUpdate(cp);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n window.addEventListener(EventTypes.Store.History.State.create, this.handleHistoryCreated as EventListenerOrEventListenerObject);\n window.addEventListener(EventTypes.Store.History.State.delete, this.handleHistoryDeleted as EventListenerOrEventListenerObject);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener(EventTypes.Store.History.State.create, this.handleHistoryCreated as EventListenerOrEventListenerObject);\n window.removeEventListener(EventTypes.Store.History.State.delete, this.handleHistoryDeleted as EventListenerOrEventListenerObject);\n }\n\n protected setupVisibility(): void {\n if (this.history && !this.history.length) {\n this.setAttribute('hidden', '');\n } else {\n this.removeAttribute('hidden');\n }\n }\n\n reset(): void {\n this.history = [];\n this.pageCursor = undefined;\n this.model = undefined;\n this.selectedItem = undefined;\n this.setupVisibility();\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n this.debounceTimeout = undefined;\n }\n }\n\n queryDebounce(): void {\n if (!this.isSetup) {\n return;\n }\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n this.debounceTimeout = setTimeout(() => {\n delete this.debounceTimeout;\n this.queryPage();\n }, 1) as unknown as number;\n }\n\n protected async queryPage(): Promise<void> {\n const { project, request, pageCursor } = this;\n if (!project || !request || this.querying) {\n // todo: set `dirty` flag and re-query after finish.\n return;\n }\n this.querying = true;\n const init: IHistoryRequestListOptions = {\n type: 'request',\n project,\n id: request,\n space: '', // this is filled by the bindings\n };\n if (pageCursor) {\n init.cursor = pageCursor;\n }\n try {\n const result = await Events.Store.History.list(init, this);\n if (!result) {\n return;\n }\n const { items, cursor } = result;\n if (items) {\n this.addItems(items);\n }\n if (cursor) {\n this.pageCursor = cursor;\n }\n } catch (e) {\n // ...\n } finally {\n this.querying = false;\n this.setupVisibility();\n }\n }\n\n addItems(items: IHttpHistory[]): void {\n const { history = [] } = this;\n this.history = history.concat(items);\n const all = history.concat(items);\n const sorted = this.sortHistory(all);\n this.model = sorted;\n this.computeSelectedItem();\n if (sorted.length && !this.renderedItem) {\n this.selectedItem = sorted[0][0].key;\n }\n this.setupVisibility();\n }\n\n /**\n * Adds a new history to the list.\n * This is used instead of re-assigning the entire array and triggering initial computations.\n * @param item The history item to add\n * @param select When true it makes this item selected,\n */\n addItem(item: IHttpHistory, select?: boolean): void {\n const { model } = this;\n this.history.push(item)\n if (!model || !model.length) {\n this.model = [[item]];\n this.selectedItem = item.key;\n this.requestUpdate();\n this.setupVisibility();\n return;\n }\n const { midnight = Date.now() } = item;\n const index = model.findIndex(i => i[0].midnight === midnight);\n if (index >= 0) {\n this.pushSorted(model[index], item);\n } else {\n const position = model.findIndex(i => (i[0] && i[0].midnight || 0) < midnight);\n model.splice(position, 0, [item]);\n }\n if (select && item.key) {\n this.selectedItem = item.key;\n }\n this.requestUpdate();\n this.setupVisibility();\n }\n\n protected sortHistory(history: IHttpHistory[]): IHttpHistory[][] {\n if (!Array.isArray(history) || !history.length) {\n return [];\n }\n const result: IHttpHistory[][] = [];\n const now = Date.now();\n history.forEach((current) => {\n const { midnight = now } = current;\n const index = result.findIndex(i => i[0].midnight === midnight);\n if (index >= 0) {\n this.pushSorted(result[index], current);\n } else if (result[0] && result[0][0] && result[0][0].midnight && result[0][0].midnight < midnight) {\n result.unshift([current])\n } else {\n result.push([current]);\n }\n });\n return result;\n }\n\n protected handleHistoryCreated(e: ContextStateUpdateEvent<IHttpHistory>): void {\n const { item, parent } = e.detail;\n if (this.request !== parent) {\n return;\n }\n if (item) {\n this.addItem(item, true);\n }\n }\n\n protected handleHistoryDeleted(e: ContextStateDeleteEvent): void {\n const { model, history } = this;\n const { key, parent } = e.detail;\n if (!model || !history || parent !== this.request) {\n return;\n }\n const historyIndex = history.findIndex(i => i.key === key);\n if (historyIndex < 0) {\n return;\n }\n history.splice(historyIndex, 1);\n for (const group of model) {\n const index = group.findIndex(i => i.key === key);\n if (index >= 0) {\n group.splice(index, 1);\n if (group.length === 0) {\n const groupIndex = model.indexOf(group);\n model.splice(groupIndex, 1);\n }\n this.requestUpdate();\n this.setupVisibility();\n break;\n }\n }\n }\n\n protected computeSelectedItem(): void {\n const { history, selectedItem } = this;\n this.renderedItem = undefined;\n if (!selectedItem || !Array.isArray(history)) {\n return;\n }\n this.renderedItem = history.find(i => i.key === selectedItem);\n }\n\n /**\n * Allows to push a history item into a right index depending on the `created` property\n * so the data processor can skip sorting each group after mutation.\n * \n * The item is inserted before an item that is older (has lower `created` property). \n * \n * @param list The list to insert the item to\n * @param item The item to insert.\n */\n protected pushSorted(list: IHttpHistory[], item: IHttpHistory): void {\n const older = list.findIndex(i => i.created < item.created);\n if (older >= 0) {\n list.splice(older, 0, item);\n } else {\n // this item is the oldest\n list.push(item);\n }\n }\n\n protected handleSelection(e: CustomEvent): void {\n const item = e.detail.item as HTMLElement | undefined;\n if (!item) {\n return;\n }\n const { key } = item.dataset;\n if (!key) {\n return;\n }\n this.selectedItem = key;\n }\n\n protected handleViewSelection(e: CustomEvent): void {\n if (!e.detail.selected) {\n return;\n }\n const button = e.detail.button as SegmentedButton;\n const view = button.dataset.value as ProjectHistoryView | undefined;\n if (view) {\n this.view = view;\n }\n }\n\n protected handleHistoryOption(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement;\n const { option } = element.dataset;\n if (!option) {\n return;\n }\n if (option === 'clear') {\n this.triggerClearHistoryDialog();\n }\n }\n\n protected triggerClearHistoryDialog(): void {\n const dialog = this.shadowRoot?.querySelector('.clear-dialog') as UiDialog | null;\n if (!dialog) {\n return;\n }\n dialog.open = true;\n }\n\n protected handleClearHistoryDialogResult(e: CustomEvent<UiDialogClosingReason>): void {\n if (e.detail.cancelled) {\n return;\n }\n this.clearHistory();\n }\n\n async clearHistory(): Promise<void> {\n const { project, request } = this;\n if (!project || !request) {\n return;\n }\n // space parameter is filled by bindings.\n await Events.Store.History.clearRequest('', project, request, this);\n SnackNotifications.notify('History cleared');\n this.reset();\n }\n\n protected handleItemDelete(e: Event): void {\n const button = e.currentTarget as UiIconButton;\n const { key } = button.dataset;\n if (!key) {\n return;\n }\n this.deleteHistoryItem(key);\n }\n\n async deleteHistoryItem(key: string): Promise<void> {\n if (!key) {\n return;\n }\n const item = this.history.find(i => i.key === key);\n if (!item) {\n return;\n }\n await Events.Store.History.delete(key, this.request, this);\n SnackNotifications.notify('History item deleted', {\n actionLabel: 'Undo',\n actionCallback: () => {\n this.revertHistoryItemDelete(item);\n },\n timeout: 7000,\n });\n }\n\n async revertHistoryItemDelete(item: IHttpHistory): Promise<void> {\n const info = SnackNotifications.notify('Reverting...', { persistent: true });\n try {\n await Events.Store.History.create(item, this);\n SnackNotifications.cancel(info);\n SnackNotifications.notify('Reverted history item.');\n } catch (e) {\n SnackNotifications.cancel(info);\n SnackNotifications.notify('Unable to revert changes.');\n }\n }\n\n protected override render(): TemplateResult | typeof nothing {\n const { model } = this;\n if (!model || !model.length) {\n if (this.querying) {\n return this.renderLoader();\n }\n return nothing;\n }\n return html`\n ${this.renderHeader()}\n ${this.renderView()}\n ${this.renderClearHistoryDialog()}\n `;\n }\n\n protected renderLoader(): TemplateResult {\n return html`<progress></progress>`;\n }\n\n protected renderHeader(): TemplateResult {\n return html`\n <div class=\"header\">\n ${this.renderHistoryDropdown()}\n ${this.renderHistoryOptions()}\n ${this.renderViewToggle()}\n </div>\n `;\n }\n\n protected renderHistoryDropdown(): TemplateResult {\n const { model } = this;\n const disabled = !model || !model.length;\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n class=\"history-dropdown\"\n closeOnOutsideClick\n @select=\"${this.handleSelection}\"\n >\n <ui-button type=\"tonal\" ?disabled=\"${disabled}\">\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n History\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\" aria-label=\"History list\">\n ${this.renderHistoryList()}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderHistoryOptions(): TemplateResult {\n return html`\n <ui-dropdown-list @select=\"${this.handleHistoryOption}\" closeOnOutsideClick class=\"dropdown\">\n <ui-icon-button aria-label=\"Additional options\"><ui-icon icon=\"moreVert\" role=\"presentation\"></ui-icon></ui-icon-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" data-option=\"clear\" image=\"icon\" title=\"Deletes all history for the request\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"deleteOutline\"></ui-icon>\n Clear history\n </ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderHistoryList(): (TemplateResult | typeof nothing)[] | typeof nothing {\n const { model } = this;\n if (!Array.isArray(model) || !model.length) {\n return nothing;\n }\n return model.map(group => this.renderHistoryGroup(group));\n }\n\n protected renderHistoryGroup(group: IHttpHistory[]): TemplateResult | typeof nothing {\n if (!group.length) {\n // this should not happen as the model is computed internally, \n // but I prefer to do just one check to not stop execution when error.\n return nothing;\n }\n const [first] = group;\n return html`\n ${this.renderHistoryGroupTitle(first)}\n ${group.map(item => this.renderHistoryItem(item))}\n `;\n }\n\n protected renderHistoryGroupTitle(item: IHttpHistory): TemplateResult {\n const { midnight = 0 } = item;\n return html`\n <div class=\"history-group-title\">${relativeDay(midnight)}</div>\n <ui-divider type=\"inset\"></ui-divider>\n `;\n }\n\n protected renderHistoryItem(item: IHttpHistory): TemplateResult | typeof nothing {\n const d = new Date(item.created);\n const isoTime = d.toISOString();\n\n const { log } = item;\n const { request, response } = log;\n const method = request && request.method;\n const url = request && request.url;\n if (!method || !url) {\n return nothing;\n }\n const error = !response || ErrorResponse.isErrorResponse(response);\n\n let status = 0;\n let statusText: string | undefined;\n let duration = 0;\n if (!error) {\n const typed = response as IResponse;\n status = typed.status;\n statusText = typed.statusText;\n duration = typed.loadingTime;\n }\n return html`\n <ui-list-item lines=\"two\" role=\"menuitem\" data-key=\"${item.key as string}\" data-kind=\"${item.kind}\">\n <div class=\"history-label\">\n <span class=\"label-value\">${statusTemplate(status, statusText)} ${duration} ms</span>\n ${this.renderHistoryItemDelete(item)}\n </div>\n <relative-time slot=\"supporting-text\" datetime=\"${isoTime}\"></relative-time>\n </ui-list-item>\n `;\n }\n\n protected renderHistoryItemDelete(item: IHttpHistory): TemplateResult | typeof nothing {\n return html`\n <ui-icon-button\n class=\"delete\"\n aria-label=\"Delete request\"\n data-key=\"${item.key as string}\" \n data-kind=\"${item.kind}\"\n @click=\"${this.handleItemDelete}\"\n ><ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon></ui-icon-button>\n `;\n }\n\n protected renderView(): TemplateResult | string {\n const { view } = this;\n if (view === ProjectHistoryView.analysis) {\n return this.renderAnalysis();\n }\n return this.renderLog();\n }\n\n protected renderLog(): TemplateResult | string {\n const { renderedItem } = this;\n if (!renderedItem) {\n return '';\n }\n const typed = renderedItem as IHttpHistory;\n const data = typed.log ? typed.log : renderedItem as IRequestLog | RequestLog;\n return html`\n <http-request-log .httpLog=\"${data}\"></http-request-log>\n `;\n }\n\n protected renderAnalysis(): TemplateResult | string {\n const { model } = this;\n if (!model) {\n return '';\n }\n const chart = new HttpHistoryChart(model);\n return chart.durationPlot();\n }\n\n protected renderViewToggle(): TemplateResult {\n return html`\n <div class=\"view-toggle\">\n <ui-segmented-button-set @select=\"${this.handleViewSelection}\">\n <ui-segmented-button selected title=\"Shows response history\" data-value=\"history\">History</ui-segmented-button>\n <ui-segmented-button title=\"Shows history analysis\" data-value=\"analysis\">Analysis</ui-segmented-button>\n </ui-segmented-button-set>\n </div>\n `;\n }\n\n protected renderClearHistoryDialog(): TemplateResult {\n return html`\n <ui-dialog modal class=\"clear-dialog\" @close=\"${this.handleClearHistoryDialogResult}\">\n <ui-icon slot=\"icon\" icon=\"deleteOutline\"></ui-icon>\n <span slot=\"title\">Delete history?</span>\n <p>This will clear responses history for this request.</p>\n <ui-button slot=\"button\" value=\"dismiss\" type=\"text\">Cancel</ui-button>\n <ui-button slot=\"button\" value=\"confirm\" type=\"text\">Accept</ui-button>\n </ui-dialog>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HttpProjectRequestHistory.js","sourceRoot":"","sources":["../../../src/elements/project/HttpProjectRequestHistory.ts"],"names":[],"mappings":"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","sourcesContent":["import { \n ErrorResponse, IHttpHistory, IResponse, IRequestLog, \n RequestLog, IHistoryRequestListOptions, ContextStateUpdateEvent,\n ContextStateDeleteEvent,\n} from \"@api-client/core/build/browser.js\";\nimport { TemplateResult, html, PropertyValues, nothing } from \"lit\";\nimport { property, state } from \"lit/decorators.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport { relativeDay } from \"../../lib/time/Conversion.js\";\nimport { HttpHistoryChart, } from '../../lib/chart/HttpHistoryChart.js';\nimport { statusTemplate, } from '../http/HttpStatus.js';\nimport { Events } from '../../events/Events.js';\nimport { EventTypes } from '../../events/EventTypes.js';\nimport SegmentedButton from \"../../ui/button/SegmentedButton.js\";\nimport UiDialog, { UiDialogClosingReason } from \"../../ui/dialog/UiDialog.js\";\nimport '@github/relative-time-element';\nimport { SnackNotifications } from \"../../ui/notification/SnackNotifications.js\";\nimport UiIconButton from \"../../ui/button/UiIconButton.js\";\nimport '../../define/http/http-request-log.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-segmented-button.js';\nimport '../../define/ui/ui-segmented-button-set.js';\nimport '../../define/ui/ui-dialog.js';\n\nexport enum ProjectHistoryView {\n history = 'history',\n analysis = 'analysis',\n}\n\n/**\n * An element that renders HTTP history for a configured list of requests.\n * This element is just a view and contains no logic related to store communication \n * or user interactions. Use the dispatched events to handle user interactions.\n */\nexport default class HttpProjectRequestHistory extends ApiElement {\n /**\n * The history list to render.\n */\n @state() history: IHttpHistory[] = [];\n\n /**\n * The key of the project the request belongs to.\n */\n @property({ type: String }) project?: string;\n\n /**\n * The key of the request to render the history for.\n * Both `request` and `project` properties must be set to render any view.\n */\n @property({ type: String }) request?: string;\n\n /**\n * Returns true when the element is correctly setup.\n */\n get isSetup(): boolean {\n return !!this.project && !!this.request;\n }\n\n /**\n * Whether querying for a page of results.\n */\n @state() querying = false;\n\n /**\n * A sorted list of history items by the `midnight` property.\n */\n @state() protected model?: IHttpHistory[][];\n\n /**\n * The key of the selected request, if any\n */\n @state() selectedItem?: string;\n\n /**\n * The currently rendered item.\n */\n @state() protected renderedItem?: IHttpHistory | IRequestLog | RequestLog;\n\n @state() protected view: ProjectHistoryView = ProjectHistoryView.history;\n\n protected debounceTimeout?: number;\n\n /**\n * The cursor returned by the store used in pagination.\n */\n protected pageCursor?: string;\n\n constructor() {\n super();\n\n this.handleHistoryCreated = this.handleHistoryCreated.bind(this);\n this.handleHistoryDeleted = this.handleHistoryDeleted.bind(this);\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('project') || cp.has('request')) {\n this.reset();\n this.queryDebounce();\n }\n if (cp.has('selectedItem')) {\n this.computeSelectedItem();\n }\n super.willUpdate(cp);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n window.addEventListener(EventTypes.Store.History.State.create, this.handleHistoryCreated as EventListenerOrEventListenerObject);\n window.addEventListener(EventTypes.Store.History.State.delete, this.handleHistoryDeleted as EventListenerOrEventListenerObject);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener(EventTypes.Store.History.State.create, this.handleHistoryCreated as EventListenerOrEventListenerObject);\n window.removeEventListener(EventTypes.Store.History.State.delete, this.handleHistoryDeleted as EventListenerOrEventListenerObject);\n }\n\n protected setupVisibility(): void {\n if (this.history && !this.history.length) {\n this.setAttribute('hidden', '');\n } else {\n this.removeAttribute('hidden');\n }\n }\n\n reset(): void {\n this.history = [];\n this.pageCursor = undefined;\n this.model = undefined;\n this.selectedItem = undefined;\n this.setupVisibility();\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n this.debounceTimeout = undefined;\n }\n }\n\n queryDebounce(): void {\n if (!this.isSetup) {\n return;\n }\n if (this.debounceTimeout) {\n clearTimeout(this.debounceTimeout);\n }\n this.debounceTimeout = setTimeout(() => {\n delete this.debounceTimeout;\n this.queryPage();\n }, 1) as unknown as number;\n }\n\n protected async queryPage(): Promise<void> {\n const { project, request, pageCursor } = this;\n if (!project || !request || this.querying) {\n // todo: set `dirty` flag and re-query after finish.\n return;\n }\n this.querying = true;\n const init: IHistoryRequestListOptions = {\n type: 'request',\n project,\n id: request,\n space: '', // this is filled by the bindings\n };\n if (pageCursor) {\n init.cursor = pageCursor;\n }\n try {\n const result = await Events.Store.History.list(init, this);\n if (!result) {\n return;\n }\n const { items, cursor } = result;\n if (items) {\n this.addItems(items);\n }\n if (cursor) {\n this.pageCursor = cursor;\n }\n } catch (e) {\n // ...\n } finally {\n this.querying = false;\n this.setupVisibility();\n }\n }\n\n addItems(items: IHttpHistory[]): void {\n const { history = [] } = this;\n this.history = history.concat(items);\n const all = history.concat(items);\n const sorted = this.sortHistory(all);\n this.model = sorted;\n this.computeSelectedItem();\n if (sorted.length && !this.renderedItem) {\n this.selectedItem = sorted[0][0].key;\n }\n this.setupVisibility();\n }\n\n /**\n * Adds a new history to the list.\n * This is used instead of re-assigning the entire array and triggering initial computations.\n * @param item The history item to add\n * @param select When true it makes this item selected,\n */\n addItem(item: IHttpHistory, select?: boolean): void {\n const { model } = this;\n this.history.push(item)\n if (!model || !model.length) {\n this.model = [[item]];\n this.selectedItem = item.key;\n this.requestUpdate();\n this.setupVisibility();\n return;\n }\n const { midnight = Date.now() } = item;\n const index = model.findIndex(i => i[0].midnight === midnight);\n if (index >= 0) {\n this.pushSorted(model[index], item);\n } else {\n const position = model.findIndex(i => (i[0] && i[0].midnight || 0) < midnight);\n model.splice(position, 0, [item]);\n }\n if (select && item.key) {\n this.selectedItem = item.key;\n }\n this.requestUpdate();\n this.setupVisibility();\n }\n\n protected sortHistory(history: IHttpHistory[]): IHttpHistory[][] {\n if (!Array.isArray(history) || !history.length) {\n return [];\n }\n const result: IHttpHistory[][] = [];\n const now = Date.now();\n history.forEach((current) => {\n const { midnight = now } = current;\n const index = result.findIndex(i => i[0].midnight === midnight);\n if (index >= 0) {\n this.pushSorted(result[index], current);\n } else if (result[0] && result[0][0] && result[0][0].midnight && result[0][0].midnight < midnight) {\n result.unshift([current])\n } else {\n result.push([current]);\n }\n });\n return result;\n }\n\n protected handleHistoryCreated(e: ContextStateUpdateEvent<IHttpHistory>): void {\n const { item, parent } = e.detail;\n if (this.request !== parent) {\n return;\n }\n if (item) {\n this.addItem(item, true);\n }\n }\n\n protected handleHistoryDeleted(e: ContextStateDeleteEvent): void {\n const { model, history } = this;\n const { key, parent } = e.detail;\n if (!model || !history || parent !== this.request) {\n return;\n }\n const historyIndex = history.findIndex(i => i.key === key);\n if (historyIndex < 0) {\n return;\n }\n history.splice(historyIndex, 1);\n for (const group of model) {\n const index = group.findIndex(i => i.key === key);\n if (index >= 0) {\n group.splice(index, 1);\n if (group.length === 0) {\n const groupIndex = model.indexOf(group);\n model.splice(groupIndex, 1);\n }\n this.requestUpdate();\n this.setupVisibility();\n break;\n }\n }\n }\n\n protected computeSelectedItem(): void {\n const { history, selectedItem } = this;\n this.renderedItem = undefined;\n if (!selectedItem || !Array.isArray(history)) {\n return;\n }\n this.renderedItem = history.find(i => i.key === selectedItem);\n }\n\n /**\n * Allows to push a history item into a right index depending on the `created` property\n * so the data processor can skip sorting each group after mutation.\n * \n * The item is inserted before an item that is older (has lower `created` property). \n * \n * @param list The list to insert the item to\n * @param item The item to insert.\n */\n protected pushSorted(list: IHttpHistory[], item: IHttpHistory): void {\n const older = list.findIndex(i => i.created < item.created);\n if (older >= 0) {\n list.splice(older, 0, item);\n } else {\n // this item is the oldest\n list.push(item);\n }\n }\n\n protected handleSelection(e: CustomEvent): void {\n const item = e.detail.item as HTMLElement | undefined;\n if (!item) {\n return;\n }\n const { key } = item.dataset;\n if (!key) {\n return;\n }\n this.selectedItem = key;\n }\n\n protected handleViewSelection(e: CustomEvent): void {\n if (!e.detail.selected) {\n return;\n }\n const button = e.detail.button as SegmentedButton;\n const view = button.dataset.value as ProjectHistoryView | undefined;\n if (view) {\n this.view = view;\n }\n }\n\n protected handleHistoryOption(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement;\n const { option } = element.dataset;\n if (!option) {\n return;\n }\n if (option === 'clear') {\n this.triggerClearHistoryDialog();\n }\n }\n\n protected triggerClearHistoryDialog(): void {\n const dialog = this.shadowRoot?.querySelector('.clear-dialog') as UiDialog | null;\n if (!dialog) {\n return;\n }\n dialog.open = true;\n }\n\n protected handleClearHistoryDialogResult(e: CustomEvent<UiDialogClosingReason>): void {\n if (e.detail.cancelled) {\n return;\n }\n this.clearHistory();\n }\n\n async clearHistory(): Promise<void> {\n const { project, request } = this;\n if (!project || !request) {\n return;\n }\n // space parameter is filled by bindings.\n await Events.Store.History.clearRequest('', project, request, this);\n SnackNotifications.notify('History cleared');\n this.reset();\n }\n\n protected handleItemDelete(e: Event): void {\n const button = e.currentTarget as UiIconButton;\n const { key } = button.dataset;\n if (!key) {\n return;\n }\n this.deleteHistoryItem(key);\n }\n\n async deleteHistoryItem(key: string): Promise<void> {\n if (!key) {\n return;\n }\n const item = this.history.find(i => i.key === key);\n if (!item) {\n return;\n }\n await Events.Store.History.delete(key, this.request, this);\n SnackNotifications.notify('History item deleted', {\n actionLabel: 'Undo',\n actionCallback: () => {\n this.revertHistoryItemDelete(item);\n },\n timeout: 7000,\n });\n }\n\n async revertHistoryItemDelete(item: IHttpHistory): Promise<void> {\n const info = SnackNotifications.notify('Reverting...', { persistent: true });\n try {\n await Events.Store.History.create(item, this);\n SnackNotifications.cancel(info);\n SnackNotifications.notify('Reverted history item.');\n } catch (e) {\n SnackNotifications.cancel(info);\n SnackNotifications.notify('Unable to revert changes.');\n }\n }\n\n protected override render(): TemplateResult | typeof nothing {\n const { model } = this;\n if (!model || !model.length) {\n if (this.querying) {\n return this.renderLoader();\n }\n return nothing;\n }\n return html`\n ${this.renderHeader()}\n ${this.renderView()}\n ${this.renderClearHistoryDialog()}\n `;\n }\n\n protected renderLoader(): TemplateResult {\n return html`<progress></progress>`;\n }\n\n protected renderHeader(): TemplateResult {\n return html`\n <div class=\"header\">\n ${this.renderHistoryDropdown()}\n ${this.renderHistoryOptions()}\n ${this.renderViewToggle()}\n </div>\n `;\n }\n\n protected renderHistoryDropdown(): TemplateResult {\n const { model } = this;\n const disabled = !model || !model.length;\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n class=\"history-dropdown\"\n closeOnOutsideClick\n @select=\"${this.handleSelection}\"\n >\n <ui-button type=\"tonal\" ?disabled=\"${disabled}\">\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n History\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\" aria-label=\"History list\">\n ${this.renderHistoryList()}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderHistoryOptions(): TemplateResult {\n return html`\n <ui-dropdown-list @select=\"${this.handleHistoryOption}\" closeOnOutsideClick class=\"dropdown\">\n <ui-icon-button aria-label=\"Additional options\"><ui-icon icon=\"moreVert\" role=\"presentation\"></ui-icon></ui-icon-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" data-option=\"clear\" image=\"icon\" title=\"Deletes all history for the request\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"deleteOutline\"></ui-icon>\n Clear history\n </ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderHistoryList(): (TemplateResult | typeof nothing)[] | typeof nothing {\n const { model } = this;\n if (!Array.isArray(model) || !model.length) {\n return nothing;\n }\n return model.map(group => this.renderHistoryGroup(group));\n }\n\n protected renderHistoryGroup(group: IHttpHistory[]): TemplateResult | typeof nothing {\n if (!group.length) {\n // this should not happen as the model is computed internally, \n // but I prefer to do just one check to not stop execution when error.\n return nothing;\n }\n const [first] = group;\n return html`\n ${this.renderHistoryGroupTitle(first)}\n ${group.map(item => this.renderHistoryItem(item))}\n `;\n }\n\n protected renderHistoryGroupTitle(item: IHttpHistory): TemplateResult {\n const { midnight = 0 } = item;\n return html`\n <div class=\"history-group-title\">${relativeDay(midnight)}</div>\n <ui-divider type=\"inset\"></ui-divider>\n `;\n }\n\n protected renderHistoryItem(item: IHttpHistory): TemplateResult | typeof nothing {\n const d = new Date(item.created);\n const isoTime = d.toISOString();\n\n const { log } = item;\n const { request, response } = log;\n const method = request && request.method;\n const url = request && request.url;\n if (!method || !url) {\n return nothing;\n }\n const error = !response || ErrorResponse.isErrorResponse(response);\n\n let status = 0;\n let statusText: string | undefined;\n let duration = 0;\n if (!error) {\n const typed = response as IResponse;\n status = typed.status;\n statusText = typed.statusText;\n duration = typed.loadingTime;\n }\n return html`\n <ui-list-item lines=\"two\" role=\"menuitem\" data-key=\"${item.key as string}\" data-kind=\"${item.kind}\">\n <div class=\"history-label\">\n <span class=\"label-value\">${statusTemplate(status, statusText)} ${duration} ms</span>\n ${this.renderHistoryItemDelete(item)}\n </div>\n <relative-time slot=\"supporting-text\" datetime=\"${isoTime}\"></relative-time>\n </ui-list-item>\n `;\n }\n\n protected renderHistoryItemDelete(item: IHttpHistory): TemplateResult | typeof nothing {\n return html`\n <ui-icon-button\n class=\"delete\"\n aria-label=\"Delete request\"\n data-key=\"${item.key as string}\" \n data-kind=\"${item.kind}\"\n @click=\"${this.handleItemDelete}\"\n ><ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon></ui-icon-button>\n `;\n }\n\n protected renderView(): TemplateResult | string {\n const { view } = this;\n if (view === ProjectHistoryView.analysis) {\n return this.renderAnalysis();\n }\n return this.renderLog();\n }\n\n protected renderLog(): TemplateResult | string {\n const { renderedItem } = this;\n if (!renderedItem) {\n return '';\n }\n const typed = renderedItem as IHttpHistory;\n const data = typed.log ? typed.log : renderedItem as IRequestLog | RequestLog;\n return html`\n <http-request-log .httpLog=\"${data}\"></http-request-log>\n `;\n }\n\n protected renderAnalysis(): TemplateResult | string {\n const { model } = this;\n if (!model) {\n return '';\n }\n const chart = new HttpHistoryChart(model);\n return chart.durationPlot();\n }\n\n protected renderViewToggle(): TemplateResult {\n return html`\n <div class=\"view-toggle\">\n <ui-segmented-button-set @select=\"${this.handleViewSelection}\">\n <ui-segmented-button selected title=\"Shows response history\" data-value=\"history\">History</ui-segmented-button>\n <ui-segmented-button title=\"Shows history analysis\" data-value=\"analysis\">Analysis</ui-segmented-button>\n </ui-segmented-button-set>\n </div>\n `;\n }\n\n protected renderClearHistoryDialog(): TemplateResult {\n return html`\n <ui-dialog modal class=\"clear-dialog\" @close=\"${this.handleClearHistoryDialogResult}\">\n <ui-icon slot=\"icon\" icon=\"deleteOutline\"></ui-icon>\n <span slot=\"title\">Delete history?</span>\n <p>This will clear responses history for this request.</p>\n <ui-button slot=\"button\" value=\"dismiss\" type=\"text\">Cancel</ui-button>\n <ui-button slot=\"button\" value=\"confirm\" type=\"text\">Accept</ui-button>\n </ui-dialog>\n `;\n }\n}\n"]}
|
|
@@ -7,10 +7,6 @@ import { ProjectFolderKind, ProjectRequestKind, EnvironmentKind, } from '@api-cl
|
|
|
7
7
|
import { Events } from '../../events/Events.js';
|
|
8
8
|
import AppNavigation from '../navigation/AppNavigationElement.js';
|
|
9
9
|
export default class ProjectNavigation extends AppNavigation {
|
|
10
|
-
/**
|
|
11
|
-
* The instance of the project to create the navigation for.
|
|
12
|
-
*/
|
|
13
|
-
project;
|
|
14
10
|
/**
|
|
15
11
|
* Computed value. Returns true when the project has any items to render in the view.
|
|
16
12
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectNavigation.js","sourceRoot":"","sources":["../../../src/elements/project/ProjectNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-continue */\n/* eslint-disable class-methods-use-this */\nimport { html, TemplateResult, PropertyValues } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { \n HttpProject, ProjectFolder, ProjectRequest, ProjectFolderKind, ProjectRequestKind, \n Environment, EnvironmentKind,\n} from '@api-client/core/build/browser.js';\nimport { Events } from '../../events/Events.js';\nimport AppNavigation from '../navigation/AppNavigationElement.js';\n\nexport default class ProjectNavigation extends AppNavigation {\n /**\n * The instance of the project to create the navigation for.\n */\n @property({ type: Object }) project?: HttpProject;\n\n /**\n * Computed value. Returns true when the project has any items to render in the view.\n */\n get hasItems(): boolean {\n const { project } = this;\n if (!project) {\n return false;\n }\n // the HttpProject doesn't do any computations when folder is not set. It's just a copy of the source array.\n const folders = project.listFolders();\n const requests = project.listRequests();\n const environments = project.listEnvironments();\n return !!folders.length || !!requests.length || !!environments.length;\n }\n\n constructor() {\n super();\n this.noVisualSelection = true;\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('aria-label', 'HTTP project');\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('project') && this.project) {\n this.label = this.project.info.renderLabel;\n }\n super.willUpdate(cp);\n }\n\n protected override _setupDataTransfer(item: HTMLLIElement, dt: DataTransfer): void {\n const { project } = this;\n if (!project) {\n return;\n }\n super._setupDataTransfer(item, dt);\n dt.setData('text/httpproject', project.key);\n }\n\n protected override _commitName(key: string, kind: string, name: string): void {\n const { project } = this;\n if (!project) {\n return;\n }\n if (!name) {\n return;\n }\n if (kind === ProjectFolderKind) {\n const object = project.findFolder(key);\n if (!object) {\n throw new Error(`Invalid state. Folder not found.`);\n }\n object.info.name = name;\n } else if (kind === ProjectRequestKind) {\n const object = project.findRequest(key);\n if (!object) {\n throw new Error(`Invalid state. Request not found.`);\n }\n object.info.name = name;\n } else if (kind === EnvironmentKind) {\n const object = project.findEnvironment(key);\n if (!object) {\n throw new Error(`Invalid state. Environment not found.`);\n }\n object.info.name = name;\n } else {\n throw new Error(`Invalid state. Unknown kind.`);\n }\n this.edited = undefined;\n Events.HttpProject.changed(this);\n Events.HttpProject.State.nameChanged(key, kind, this);\n }\n\n override render(): TemplateResult | string {\n const { project } = this;\n if (!project) {\n return html``;\n }\n if (!this.hasItems) {\n return this._emptyStateTemplate();\n }\n const content = this._renderParentChildrenTemplate(project);\n return html`\n ${this.renderLabel()}\n ${this._outerListTemplate(content) }\n `;\n }\n\n protected _renderParentChildrenTemplate(parent: HttpProject | ProjectFolder): TemplateResult | string {\n const { key } = parent;\n const folders = parent.listFolders();\n const requests = parent.listRequests();\n const environments = parent.listEnvironments();\n const isProject = parent.getProject() === undefined;\n const isEmpty = !folders.length && !environments.length && !requests.length;\n if (isEmpty) {\n return html`<p class=\"list-item-content empty\" aria-disabled=\"true\">Empty folder</p>`;\n }\n return html`\n ${folders.map(f => this.renderFolder(f, isProject ? undefined : key))}\n ${environments.map(r => this.renderEnvironment(r, isProject ? undefined : key))}\n ${requests.map(r => this.renderRequest(r, isProject ? undefined : key))}\n `;\n }\n\n protected _emptyStateTemplate(): TemplateResult | string {\n return html`\n ${this.renderLabel()}\n <div class=\"empty-state\">\n <p>This project has no items.</p>\n <p>Right-click on this panel to add a request.</p>\n </div>\n `;\n }\n\n protected renderFolder(folder: ProjectFolder, parentKey?: string): TemplateResult | string {\n const content = this._renderParentChildrenTemplate(folder);\n const name = folder.info.name || 'Unnamed folder';\n const { kind, key } = folder;\n return this._parentListItemTemplate(key, kind, name, content, {\n parent: parentKey,\n parentIcon: 'folderFilled',\n });\n }\n\n protected renderRequest(request: ProjectRequest, parentKey?: string): TemplateResult | string {\n const name = request.info.name || 'Unnamed request';\n const { key, kind } = request;\n const content = this._itemContentTemplate('request', name);\n return this._listItemTemplate(key, kind, name, content, {\n parent: parentKey,\n draggable: true,\n });\n }\n\n protected renderEnvironment(environment: Environment, parentKey?: string): TemplateResult | string {\n const name = environment.info.name || 'Unnamed environment';\n const { key, kind } = environment;\n const content = this._itemContentTemplate('environment', name);\n return this._listItemTemplate(key, kind, name, content, {\n parent: parentKey,\n draggable: true,\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ProjectNavigation.js","sourceRoot":"","sources":["../../../src/elements/project/ProjectNavigation.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-continue */\n/* eslint-disable class-methods-use-this */\nimport { html, TemplateResult, PropertyValues } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { \n HttpProject, ProjectFolder, ProjectRequest, ProjectFolderKind, ProjectRequestKind, \n Environment, EnvironmentKind,\n} from '@api-client/core/build/browser.js';\nimport { Events } from '../../events/Events.js';\nimport AppNavigation from '../navigation/AppNavigationElement.js';\n\nexport default class ProjectNavigation extends AppNavigation {\n /**\n * The instance of the project to create the navigation for.\n */\n @property({ type: Object }) project?: HttpProject;\n\n /**\n * Computed value. Returns true when the project has any items to render in the view.\n */\n get hasItems(): boolean {\n const { project } = this;\n if (!project) {\n return false;\n }\n // the HttpProject doesn't do any computations when folder is not set. It's just a copy of the source array.\n const folders = project.listFolders();\n const requests = project.listRequests();\n const environments = project.listEnvironments();\n return !!folders.length || !!requests.length || !!environments.length;\n }\n\n constructor() {\n super();\n this.noVisualSelection = true;\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.setAttribute('aria-label', 'HTTP project');\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('project') && this.project) {\n this.label = this.project.info.renderLabel;\n }\n super.willUpdate(cp);\n }\n\n protected override _setupDataTransfer(item: HTMLLIElement, dt: DataTransfer): void {\n const { project } = this;\n if (!project) {\n return;\n }\n super._setupDataTransfer(item, dt);\n dt.setData('text/httpproject', project.key);\n }\n\n protected override _commitName(key: string, kind: string, name: string): void {\n const { project } = this;\n if (!project) {\n return;\n }\n if (!name) {\n return;\n }\n if (kind === ProjectFolderKind) {\n const object = project.findFolder(key);\n if (!object) {\n throw new Error(`Invalid state. Folder not found.`);\n }\n object.info.name = name;\n } else if (kind === ProjectRequestKind) {\n const object = project.findRequest(key);\n if (!object) {\n throw new Error(`Invalid state. Request not found.`);\n }\n object.info.name = name;\n } else if (kind === EnvironmentKind) {\n const object = project.findEnvironment(key);\n if (!object) {\n throw new Error(`Invalid state. Environment not found.`);\n }\n object.info.name = name;\n } else {\n throw new Error(`Invalid state. Unknown kind.`);\n }\n this.edited = undefined;\n Events.HttpProject.changed(this);\n Events.HttpProject.State.nameChanged(key, kind, this);\n }\n\n override render(): TemplateResult | string {\n const { project } = this;\n if (!project) {\n return html``;\n }\n if (!this.hasItems) {\n return this._emptyStateTemplate();\n }\n const content = this._renderParentChildrenTemplate(project);\n return html`\n ${this.renderLabel()}\n ${this._outerListTemplate(content) }\n `;\n }\n\n protected _renderParentChildrenTemplate(parent: HttpProject | ProjectFolder): TemplateResult | string {\n const { key } = parent;\n const folders = parent.listFolders();\n const requests = parent.listRequests();\n const environments = parent.listEnvironments();\n const isProject = parent.getProject() === undefined;\n const isEmpty = !folders.length && !environments.length && !requests.length;\n if (isEmpty) {\n return html`<p class=\"list-item-content empty\" aria-disabled=\"true\">Empty folder</p>`;\n }\n return html`\n ${folders.map(f => this.renderFolder(f, isProject ? undefined : key))}\n ${environments.map(r => this.renderEnvironment(r, isProject ? undefined : key))}\n ${requests.map(r => this.renderRequest(r, isProject ? undefined : key))}\n `;\n }\n\n protected _emptyStateTemplate(): TemplateResult | string {\n return html`\n ${this.renderLabel()}\n <div class=\"empty-state\">\n <p>This project has no items.</p>\n <p>Right-click on this panel to add a request.</p>\n </div>\n `;\n }\n\n protected renderFolder(folder: ProjectFolder, parentKey?: string): TemplateResult | string {\n const content = this._renderParentChildrenTemplate(folder);\n const name = folder.info.name || 'Unnamed folder';\n const { kind, key } = folder;\n return this._parentListItemTemplate(key, kind, name, content, {\n parent: parentKey,\n parentIcon: 'folderFilled',\n });\n }\n\n protected renderRequest(request: ProjectRequest, parentKey?: string): TemplateResult | string {\n const name = request.info.name || 'Unnamed request';\n const { key, kind } = request;\n const content = this._itemContentTemplate('request', name);\n return this._listItemTemplate(key, kind, name, content, {\n parent: parentKey,\n draggable: true,\n });\n }\n\n protected renderEnvironment(environment: Environment, parentKey?: string): TemplateResult | string {\n const name = environment.info.name || 'Unnamed environment';\n const { key, kind } = environment;\n const content = this._itemContentTemplate('environment', name);\n return this._listItemTemplate(key, kind, name, content, {\n parent: parentKey,\n draggable: true,\n });\n }\n}\n"]}
|
|
@@ -23,21 +23,10 @@ export var ProjectRunReportView;
|
|
|
23
23
|
* An element that renders the execution log of the project runner with the IProjectExecutionLog.
|
|
24
24
|
*/
|
|
25
25
|
export default class ProjectRunReport extends LitElement {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
selectedIteration;
|
|
31
|
-
/**
|
|
32
|
-
* The index of the selected request, if any
|
|
33
|
-
*/
|
|
34
|
-
selectedRequest;
|
|
35
|
-
/**
|
|
36
|
-
* The currently rendered iteration.
|
|
37
|
-
*/
|
|
38
|
-
currentIteration;
|
|
39
|
-
currentLog;
|
|
40
|
-
view = ProjectRunReportView.summary;
|
|
26
|
+
constructor() {
|
|
27
|
+
super(...arguments);
|
|
28
|
+
this.view = ProjectRunReportView.summary;
|
|
29
|
+
}
|
|
41
30
|
willUpdate(cp) {
|
|
42
31
|
super.updated(cp);
|
|
43
32
|
if (cp.has('report')) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectRunReport.js","sourceRoot":"","sources":["../../../src/elements/project/ProjectRunReport.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, TemplateResult, html, PropertyValues, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { \n ErrorResponse, IProjectExecutionIteration, IProjectExecutionLog, \n IRequestLog, IResponse \n} from '@api-client/core/build/browser.js';\nimport { statusTemplate } from '../http/HttpStatus.js';\nimport SegmentedButton from '../../ui/button/SegmentedButton.js';\nimport { RequestLogView } from '../http/RequestLog.js';\nimport '@github/relative-time-element';\nimport '../../define/http/http-request-log.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-segmented-button.js';\nimport '../../define/ui/ui-segmented-button-set.js';\n\nexport enum ProjectRunReportView {\n summary = 'summary',\n details = 'details',\n}\n\n/**\n * An element that renders the execution log of the project runner with the IProjectExecutionLog.\n */\nexport default class ProjectRunReport extends LitElement {\n @property({ type: Object }) report?: IProjectExecutionLog;\n\n /**\n * The index of the selected iteration, if any.\n */\n @state() protected selectedIteration?: number;\n\n /**\n * The index of the selected request, if any\n */\n @state() protected selectedRequest?: number;\n\n /**\n * The currently rendered iteration.\n */\n @state() protected currentIteration?: IProjectExecutionIteration;\n\n @state() protected currentLog?: IRequestLog;\n\n @state() protected view: ProjectRunReportView = ProjectRunReportView.summary;\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n super.updated(cp);\n if (cp.has('report')) {\n this.processReport();\n }\n }\n\n protected processReport(): void {\n const { report } = this;\n if (!report) {\n this.selectedIteration = undefined\n this.selectedRequest = undefined\n this.currentIteration = undefined\n this.currentLog = undefined\n return;\n }\n this.selectedIteration = 0;\n this.selectedRequest = 0;\n const [ iteration ] = report.iterations;\n this.currentIteration = iteration;\n this.currentLog = iteration && iteration.executed && iteration.executed[0];\n }\n\n protected handleIterationSelection(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement;\n const { index } = element.dataset;\n if (!index) {\n return;\n }\n const typed = Number(index);\n if (Number.isNaN(typed)) {\n return;\n }\n this.selectIteration(typed);\n }\n\n selectIteration(index: number): void {\n const { report } = this;\n if (!report) {\n return;\n }\n const item = report.iterations[index];\n if (!item) {\n return;\n }\n this.selectedIteration = index;\n this.currentIteration = item;\n this.selectedRequest = 0\n this.currentLog = item.executed && item.executed[0];\n }\n\n protected handleRequestSelection(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement;\n const { index } = element.dataset;\n if (!index) {\n return;\n }\n const typed = Number(index);\n if (Number.isNaN(typed)) {\n return;\n }\n this.selectRequest(typed);\n }\n\n selectRequest(index: number): void {\n const { currentIteration } = this;\n if (!currentIteration) {\n return;\n }\n const item = currentIteration.executed[index];\n if (!item) {\n return;\n }\n this.selectedRequest = index;\n this.currentLog = item;\n }\n\n protected handleViewSelection(e: CustomEvent): void {\n if (!e.detail.selected) {\n return;\n }\n const button = e.detail.button as SegmentedButton;\n const view = button.dataset.value as ProjectRunReportView | undefined;\n if (view) {\n this.view = view;\n }\n }\n\n protected handleLinkClick(e: Event): void {\n const node = e.target as HTMLElement;\n const { iterationIndex, requestIndex, target } = node.dataset;\n if (!requestIndex || !iterationIndex) {\n return;\n }\n const iteration = Number(iterationIndex);\n const request = Number(requestIndex);\n if (Number.isNaN(request) || Number.isNaN(iteration)) {\n return;\n }\n this.selectIteration(iteration);\n this.selectRequest(request);\n this.view = ProjectRunReportView.details;\n if (target) {\n this.selectLogView(target as RequestLogView);\n }\n }\n\n protected handleLinkKeyDown(e: KeyboardEvent): void {\n if (['Enter', 'Space'].includes(e.code)) {\n this.handleLinkClick(e);\n }\n }\n\n protected async selectLogView(view: RequestLogView): Promise<void> {\n await this.updateComplete;\n const node = this.shadowRoot?.querySelector('http-request-log');\n if (!node) {\n return;\n }\n node.view = view;\n }\n\n protected override render(): TemplateResult {\n const { report } = this;\n if (!report) {\n return html``;\n }\n return html`\n ${this.renderHeader(report)}\n ${this.renderView()}\n `;\n }\n\n protected renderHeader(report: IProjectExecutionLog): TemplateResult {\n return html`\n <div class=\"header\">\n ${this.renderCurrentSelectors(report)}\n ${this.renderViewToggle()}\n </div>\n `;\n }\n\n protected renderCurrentSelectors(report: IProjectExecutionLog): TemplateResult | typeof nothing {\n if (this.view === ProjectRunReportView.summary) {\n return nothing;\n }\n const hasIterations = report.iterations.length > 1;\n return html`\n ${hasIterations ? this.renderInteractionsList(report.iterations) : nothing}\n ${this.renderRequestsList()}\n `;\n }\n\n protected renderViewToggle(): TemplateResult {\n const { view } = this;\n return html`\n <div class=\"view-toggle\">\n <ui-segmented-button-set @select=\"${this.handleViewSelection}\">\n <ui-segmented-button \n .selected=\"${view === ProjectRunReportView.summary}\" \n title=\"Shows summary of the run report\" \n data-value=\"summary\"\n >Summary</ui-segmented-button>\n <ui-segmented-button \n .selected=\"${view === ProjectRunReportView.details}\" \n title=\"Shows detailed response information for each request\" \n data-value=\"details\"\n >Details</ui-segmented-button>\n </ui-segmented-button-set>\n </div>\n `;\n }\n\n protected renderInteractionsList(iterations: IProjectExecutionIteration[]): TemplateResult {\n const { selectedIteration = 0 } = this;\n const iteration = iterations[selectedIteration];\n const index = iteration ? iteration.index + 1 : 1;\n\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n class=\"iterations-dropdown\"\n closeOnOutsideClick\n @select=\"${this.handleIterationSelection}\"\n >\n <ui-button type=\"tonal\">\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n Iteration #${index}\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\" aria-label=\"Iterations list\">\n ${iterations.map(current => this.renderIterationOption(current.index))}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderIterationOption(index: number): TemplateResult {\n const classes = {\n 'iteration-option': true,\n highlight: this.selectedIteration === index,\n };\n return html`\n <ui-list-item role=\"menuitem\" data-index=\"${index}\" class=\"${classMap(classes)}\">\n Iteration #${index + 1}\n </ui-list-item>\n `;\n }\n\n protected renderRequestsList(): TemplateResult {\n const { currentIteration, selectedRequest = 0 } = this;\n if (!currentIteration) {\n return this.renderEmptyRequestsList();\n }\n if (!currentIteration.executed || !currentIteration.executed.length) {\n return this.renderEmptyRequestsList();\n }\n const options = currentIteration.executed.map((item, index) => this.renderRequestsOption(item, index));\n const item = currentIteration.executed[selectedRequest];\n const title = item.request && item.request.url || `Request #${selectedRequest}`;\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n class=\"history-dropdown\"\n closeOnOutsideClick\n @select=\"${this.handleRequestSelection}\"\n >\n <ui-button type=\"tonal\" title=\"${title}\">\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n <span class=\"request-title-dropdown\">${title}</span>\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\" aria-label=\"History list\">\n ${options}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderEmptyRequestsList(): TemplateResult {\n return html`\n <ui-button type=\"tonal\" disabled>\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n No requests\n </ui-button>\n `;\n }\n\n protected renderRequestsOption(item: IRequestLog, index: number): TemplateResult {\n const title = item.request && item.request.url || `Request #${index}`;\n const error = !item.response || ErrorResponse.isErrorResponse(item.response);\n const classes = {\n 'history-option': true,\n error,\n highlight: this.selectedRequest === index,\n };\n let status = 0;\n let statusText: string | undefined;\n let duration = 0;\n if (!error) {\n const typed = item.response as IResponse;\n status = typed.status;\n statusText = typed.statusText;\n duration = typed.loadingTime;\n }\n return html`\n <ui-list-item lines=\"two\" role=\"menuitem\" data-index=\"${index}\" class=\"${classMap(classes)}\">\n <div class=\"history-label\">\n <span class=\"label-value\">${statusTemplate(status, statusText)} ${duration} ms</span>\n </div>\n <span slot=\"supporting-text\">${title}</span>\n </ui-list-item>\n `;\n }\n\n protected renderView(): TemplateResult {\n switch (this.view) {\n case ProjectRunReportView.details: return this.renderLog();\n case ProjectRunReportView.summary: return this.renderSummary();\n default: return html`<p>Invalid view selection.</p>`;\n }\n }\n\n protected renderLog(): TemplateResult {\n const { currentLog } = this;\n return html`\n <div class=\"response\">\n ${currentLog ? html`<http-request-log .httpLog=\"${currentLog}\"></http-request-log>` : ''}\n </div>\n `;\n }\n\n protected renderSummary(): TemplateResult {\n const { report } = this;\n if (!report) {\n return html`<p>Report is not set.</p>`;\n }\n const { iterations, ended } = report;\n const de = new Date(ended);\n return html`\n <div class=\"summary-header\">\n Run ended <relative-time slot=\"supporting-text\" datetime=\"${de.toISOString()}\"></relative-time>\n </div>\n ${iterations.map(iteration => this.renderIterationSummary(iteration))}\n `;\n }\n\n protected renderIterationSummary(iteration: IProjectExecutionIteration): TemplateResult {\n const { error, executed, index } = iteration;\n return html`\n ${error ? this.renderIterationError() : this.renderIterationSummaryTable(index, executed)}\n `;\n }\n\n protected renderIterationError(): TemplateResult {\n return html`\n <p class=\"iteration-error\">The iteration was not executed due to an error.</p>\n `;\n }\n\n protected renderIterationSummaryTable(iterationIndex: number, executed: IRequestLog[]): TemplateResult {\n const failedIndex: string[] = [];\n executed.forEach((item, index) => {\n const { assertions=[] } = item;\n const hasFailed = assertions.find(i => !i.ok);\n if (hasFailed) {\n failedIndex.push(`#${index + 1}`);\n }\n });\n const formatter = new Intl.ListFormat(undefined, { style: 'long', type: 'conjunction' });\n return html`\n <table class=\"execution-table\">\n <caption>Iteration #${iterationIndex + 1}. Failed requests: ${failedIndex.length ? formatter.format(failedIndex) : 'none'}.</caption>\n <thead>\n <tr>\n <th scope=\"col\" class=\"request\">HTTP request</th>\n <th scope=\"col\" class=\"status\">Status</th>\n <th scope=\"col\" class=\"time\">Time</th>\n <th scope=\"col\" class=\"assertions\">Assertions</th>\n </tr>\n </thead>\n <tbody>\n ${executed.map((item, requestIndex) => this.renderSummaryTableRow(item, iterationIndex, requestIndex))}\n </tbody>\n </table>\n `;\n }\n\n renderSummaryTableRow(item: IRequestLog, iterationIndex: number, requestIndex: number): TemplateResult {\n const { assertions = [], request, response } = item;\n if (!request) {\n return html`\n <tr>\n <td colspan=\"3\">The request was not executed (missing request info)</td>\n </tr>\n `;\n }\n const error = !item.response || ErrorResponse.isErrorResponse(item.response);\n let status: TemplateResult;\n let duration = 0;\n if (error) {\n status = html`Errored`;\n } else if (response) {\n status = statusTemplate(response.status, response.statusText);\n duration = (response as IResponse).loadingTime;\n } else {\n status = html`Unknown`;\n }\n const successAssertions = (item.assertions || []).filter(i => i.ok);\n const hasFailed = assertions.length - successAssertions.length !== 0;\n return html`\n <tr>\n <td class=\"request\">\n <span class=\"http-label pill\" data-method=\"${(request.method || 'get').toLowerCase()}\">${request.method}</span>\n <span \n class=\"link\" \n title=\"Open details\" \n data-iteration-index=\"${iterationIndex}\" \n data-request-index=\"${requestIndex}\"\n @click=\"${this.handleLinkClick}\"\n @keydown=\"${this.handleLinkKeyDown}\"\n tabindex=\"0\"\n >${request.url}</span>\n </td>\n <td class=\"status\">${status}</td>\n <td class=\"time\">${duration}ms</td>\n <td class=\"assertions\">\n <span\n class=\"link\"\n title=\"Open assertion details\"\n data-iteration-index=\"${iterationIndex}\" \n data-request-index=\"${requestIndex}\"\n data-target=\"${RequestLogView.assertions}\"\n @click=\"${this.handleLinkClick}\"\n @keydown=\"${this.handleLinkKeyDown}\"\n tabindex=\"0\"\n >${successAssertions.length}/${assertions.length}</span>\n ${hasFailed ? html`<div class=\"badge small\"></div>` : ''}\n </td>\n </tr>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ProjectRunReport.js","sourceRoot":"","sources":["../../../src/elements/project/ProjectRunReport.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, TemplateResult, html, PropertyValues, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { \n ErrorResponse, IProjectExecutionIteration, IProjectExecutionLog, \n IRequestLog, IResponse \n} from '@api-client/core/build/browser.js';\nimport { statusTemplate } from '../http/HttpStatus.js';\nimport SegmentedButton from '../../ui/button/SegmentedButton.js';\nimport { RequestLogView } from '../http/RequestLog.js';\nimport '@github/relative-time-element';\nimport '../../define/http/http-request-log.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-segmented-button.js';\nimport '../../define/ui/ui-segmented-button-set.js';\n\nexport enum ProjectRunReportView {\n summary = 'summary',\n details = 'details',\n}\n\n/**\n * An element that renders the execution log of the project runner with the IProjectExecutionLog.\n */\nexport default class ProjectRunReport extends LitElement {\n @property({ type: Object }) report?: IProjectExecutionLog;\n\n /**\n * The index of the selected iteration, if any.\n */\n @state() protected selectedIteration?: number;\n\n /**\n * The index of the selected request, if any\n */\n @state() protected selectedRequest?: number;\n\n /**\n * The currently rendered iteration.\n */\n @state() protected currentIteration?: IProjectExecutionIteration;\n\n @state() protected currentLog?: IRequestLog;\n\n @state() protected view: ProjectRunReportView = ProjectRunReportView.summary;\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n super.updated(cp);\n if (cp.has('report')) {\n this.processReport();\n }\n }\n\n protected processReport(): void {\n const { report } = this;\n if (!report) {\n this.selectedIteration = undefined\n this.selectedRequest = undefined\n this.currentIteration = undefined\n this.currentLog = undefined\n return;\n }\n this.selectedIteration = 0;\n this.selectedRequest = 0;\n const [ iteration ] = report.iterations;\n this.currentIteration = iteration;\n this.currentLog = iteration && iteration.executed && iteration.executed[0];\n }\n\n protected handleIterationSelection(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement;\n const { index } = element.dataset;\n if (!index) {\n return;\n }\n const typed = Number(index);\n if (Number.isNaN(typed)) {\n return;\n }\n this.selectIteration(typed);\n }\n\n selectIteration(index: number): void {\n const { report } = this;\n if (!report) {\n return;\n }\n const item = report.iterations[index];\n if (!item) {\n return;\n }\n this.selectedIteration = index;\n this.currentIteration = item;\n this.selectedRequest = 0\n this.currentLog = item.executed && item.executed[0];\n }\n\n protected handleRequestSelection(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement;\n const { index } = element.dataset;\n if (!index) {\n return;\n }\n const typed = Number(index);\n if (Number.isNaN(typed)) {\n return;\n }\n this.selectRequest(typed);\n }\n\n selectRequest(index: number): void {\n const { currentIteration } = this;\n if (!currentIteration) {\n return;\n }\n const item = currentIteration.executed[index];\n if (!item) {\n return;\n }\n this.selectedRequest = index;\n this.currentLog = item;\n }\n\n protected handleViewSelection(e: CustomEvent): void {\n if (!e.detail.selected) {\n return;\n }\n const button = e.detail.button as SegmentedButton;\n const view = button.dataset.value as ProjectRunReportView | undefined;\n if (view) {\n this.view = view;\n }\n }\n\n protected handleLinkClick(e: Event): void {\n const node = e.target as HTMLElement;\n const { iterationIndex, requestIndex, target } = node.dataset;\n if (!requestIndex || !iterationIndex) {\n return;\n }\n const iteration = Number(iterationIndex);\n const request = Number(requestIndex);\n if (Number.isNaN(request) || Number.isNaN(iteration)) {\n return;\n }\n this.selectIteration(iteration);\n this.selectRequest(request);\n this.view = ProjectRunReportView.details;\n if (target) {\n this.selectLogView(target as RequestLogView);\n }\n }\n\n protected handleLinkKeyDown(e: KeyboardEvent): void {\n if (['Enter', 'Space'].includes(e.code)) {\n this.handleLinkClick(e);\n }\n }\n\n protected async selectLogView(view: RequestLogView): Promise<void> {\n await this.updateComplete;\n const node = this.shadowRoot?.querySelector('http-request-log');\n if (!node) {\n return;\n }\n node.view = view;\n }\n\n protected override render(): TemplateResult {\n const { report } = this;\n if (!report) {\n return html``;\n }\n return html`\n ${this.renderHeader(report)}\n ${this.renderView()}\n `;\n }\n\n protected renderHeader(report: IProjectExecutionLog): TemplateResult {\n return html`\n <div class=\"header\">\n ${this.renderCurrentSelectors(report)}\n ${this.renderViewToggle()}\n </div>\n `;\n }\n\n protected renderCurrentSelectors(report: IProjectExecutionLog): TemplateResult | typeof nothing {\n if (this.view === ProjectRunReportView.summary) {\n return nothing;\n }\n const hasIterations = report.iterations.length > 1;\n return html`\n ${hasIterations ? this.renderInteractionsList(report.iterations) : nothing}\n ${this.renderRequestsList()}\n `;\n }\n\n protected renderViewToggle(): TemplateResult {\n const { view } = this;\n return html`\n <div class=\"view-toggle\">\n <ui-segmented-button-set @select=\"${this.handleViewSelection}\">\n <ui-segmented-button \n .selected=\"${view === ProjectRunReportView.summary}\" \n title=\"Shows summary of the run report\" \n data-value=\"summary\"\n >Summary</ui-segmented-button>\n <ui-segmented-button \n .selected=\"${view === ProjectRunReportView.details}\" \n title=\"Shows detailed response information for each request\" \n data-value=\"details\"\n >Details</ui-segmented-button>\n </ui-segmented-button-set>\n </div>\n `;\n }\n\n protected renderInteractionsList(iterations: IProjectExecutionIteration[]): TemplateResult {\n const { selectedIteration = 0 } = this;\n const iteration = iterations[selectedIteration];\n const index = iteration ? iteration.index + 1 : 1;\n\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n class=\"iterations-dropdown\"\n closeOnOutsideClick\n @select=\"${this.handleIterationSelection}\"\n >\n <ui-button type=\"tonal\">\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n Iteration #${index}\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\" aria-label=\"Iterations list\">\n ${iterations.map(current => this.renderIterationOption(current.index))}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderIterationOption(index: number): TemplateResult {\n const classes = {\n 'iteration-option': true,\n highlight: this.selectedIteration === index,\n };\n return html`\n <ui-list-item role=\"menuitem\" data-index=\"${index}\" class=\"${classMap(classes)}\">\n Iteration #${index + 1}\n </ui-list-item>\n `;\n }\n\n protected renderRequestsList(): TemplateResult {\n const { currentIteration, selectedRequest = 0 } = this;\n if (!currentIteration) {\n return this.renderEmptyRequestsList();\n }\n if (!currentIteration.executed || !currentIteration.executed.length) {\n return this.renderEmptyRequestsList();\n }\n const options = currentIteration.executed.map((item, index) => this.renderRequestsOption(item, index));\n const item = currentIteration.executed[selectedRequest];\n const title = item.request && item.request.url || `Request #${selectedRequest}`;\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n class=\"history-dropdown\"\n closeOnOutsideClick\n @select=\"${this.handleRequestSelection}\"\n >\n <ui-button type=\"tonal\" title=\"${title}\">\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n <span class=\"request-title-dropdown\">${title}</span>\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\" aria-label=\"History list\">\n ${options}\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected renderEmptyRequestsList(): TemplateResult {\n return html`\n <ui-button type=\"tonal\" disabled>\n <ui-icon slot=\"icon\" icon=\"arrowDropDown\"></ui-icon>\n No requests\n </ui-button>\n `;\n }\n\n protected renderRequestsOption(item: IRequestLog, index: number): TemplateResult {\n const title = item.request && item.request.url || `Request #${index}`;\n const error = !item.response || ErrorResponse.isErrorResponse(item.response);\n const classes = {\n 'history-option': true,\n error,\n highlight: this.selectedRequest === index,\n };\n let status = 0;\n let statusText: string | undefined;\n let duration = 0;\n if (!error) {\n const typed = item.response as IResponse;\n status = typed.status;\n statusText = typed.statusText;\n duration = typed.loadingTime;\n }\n return html`\n <ui-list-item lines=\"two\" role=\"menuitem\" data-index=\"${index}\" class=\"${classMap(classes)}\">\n <div class=\"history-label\">\n <span class=\"label-value\">${statusTemplate(status, statusText)} ${duration} ms</span>\n </div>\n <span slot=\"supporting-text\">${title}</span>\n </ui-list-item>\n `;\n }\n\n protected renderView(): TemplateResult {\n switch (this.view) {\n case ProjectRunReportView.details: return this.renderLog();\n case ProjectRunReportView.summary: return this.renderSummary();\n default: return html`<p>Invalid view selection.</p>`;\n }\n }\n\n protected renderLog(): TemplateResult {\n const { currentLog } = this;\n return html`\n <div class=\"response\">\n ${currentLog ? html`<http-request-log .httpLog=\"${currentLog}\"></http-request-log>` : ''}\n </div>\n `;\n }\n\n protected renderSummary(): TemplateResult {\n const { report } = this;\n if (!report) {\n return html`<p>Report is not set.</p>`;\n }\n const { iterations, ended } = report;\n const de = new Date(ended);\n return html`\n <div class=\"summary-header\">\n Run ended <relative-time slot=\"supporting-text\" datetime=\"${de.toISOString()}\"></relative-time>\n </div>\n ${iterations.map(iteration => this.renderIterationSummary(iteration))}\n `;\n }\n\n protected renderIterationSummary(iteration: IProjectExecutionIteration): TemplateResult {\n const { error, executed, index } = iteration;\n return html`\n ${error ? this.renderIterationError() : this.renderIterationSummaryTable(index, executed)}\n `;\n }\n\n protected renderIterationError(): TemplateResult {\n return html`\n <p class=\"iteration-error\">The iteration was not executed due to an error.</p>\n `;\n }\n\n protected renderIterationSummaryTable(iterationIndex: number, executed: IRequestLog[]): TemplateResult {\n const failedIndex: string[] = [];\n executed.forEach((item, index) => {\n const { assertions=[] } = item;\n const hasFailed = assertions.find(i => !i.ok);\n if (hasFailed) {\n failedIndex.push(`#${index + 1}`);\n }\n });\n const formatter = new Intl.ListFormat(undefined, { style: 'long', type: 'conjunction' });\n return html`\n <table class=\"execution-table\">\n <caption>Iteration #${iterationIndex + 1}. Failed requests: ${failedIndex.length ? formatter.format(failedIndex) : 'none'}.</caption>\n <thead>\n <tr>\n <th scope=\"col\" class=\"request\">HTTP request</th>\n <th scope=\"col\" class=\"status\">Status</th>\n <th scope=\"col\" class=\"time\">Time</th>\n <th scope=\"col\" class=\"assertions\">Assertions</th>\n </tr>\n </thead>\n <tbody>\n ${executed.map((item, requestIndex) => this.renderSummaryTableRow(item, iterationIndex, requestIndex))}\n </tbody>\n </table>\n `;\n }\n\n renderSummaryTableRow(item: IRequestLog, iterationIndex: number, requestIndex: number): TemplateResult {\n const { assertions = [], request, response } = item;\n if (!request) {\n return html`\n <tr>\n <td colspan=\"3\">The request was not executed (missing request info)</td>\n </tr>\n `;\n }\n const error = !item.response || ErrorResponse.isErrorResponse(item.response);\n let status: TemplateResult;\n let duration = 0;\n if (error) {\n status = html`Errored`;\n } else if (response) {\n status = statusTemplate(response.status, response.statusText);\n duration = (response as IResponse).loadingTime;\n } else {\n status = html`Unknown`;\n }\n const successAssertions = (item.assertions || []).filter(i => i.ok);\n const hasFailed = assertions.length - successAssertions.length !== 0;\n return html`\n <tr>\n <td class=\"request\">\n <span class=\"http-label pill\" data-method=\"${(request.method || 'get').toLowerCase()}\">${request.method}</span>\n <span \n class=\"link\" \n title=\"Open details\" \n data-iteration-index=\"${iterationIndex}\" \n data-request-index=\"${requestIndex}\"\n @click=\"${this.handleLinkClick}\"\n @keydown=\"${this.handleLinkKeyDown}\"\n tabindex=\"0\"\n >${request.url}</span>\n </td>\n <td class=\"status\">${status}</td>\n <td class=\"time\">${duration}ms</td>\n <td class=\"assertions\">\n <span\n class=\"link\"\n title=\"Open assertion details\"\n data-iteration-index=\"${iterationIndex}\" \n data-request-index=\"${requestIndex}\"\n data-target=\"${RequestLogView.assertions}\"\n @click=\"${this.handleLinkClick}\"\n @keydown=\"${this.handleLinkKeyDown}\"\n tabindex=\"0\"\n >${successAssertions.length}/${assertions.length}</span>\n ${hasFailed ? html`<div class=\"badge small\"></div>` : ''}\n </td>\n </tr>\n `;\n }\n}\n"]}
|
|
@@ -83,7 +83,6 @@ export default class ProjectRunner extends ApiElement {
|
|
|
83
83
|
setParallel(value: boolean): void;
|
|
84
84
|
setIterations(value: number): void;
|
|
85
85
|
setIterationDelay(value: number): void;
|
|
86
|
-
notifyChange(): void;
|
|
87
86
|
protected handleRecursiveChecked(e: Event): void;
|
|
88
87
|
protected handleParallelChecked(e: Event): void;
|
|
89
88
|
protected handleIterationsChange(e: Event): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectRunner.d.ts","sourceRoot":"","sources":["../../../src/elements/project/ProjectRunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAGpE,OAAO,EACL,WAAW,EAAE,aAAa,EAAE,qBAAqB,EAC3B,oBAAoB,EAC1C,YAAY,EAGZ,iBAAiB,EAEjB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,UAAU,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ProjectRunner.d.ts","sourceRoot":"","sources":["../../../src/elements/project/ProjectRunner.ts"],"names":[],"mappings":"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"}
|