@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
package/dist/ui/tabs/UiTabs.js
CHANGED
|
@@ -24,50 +24,52 @@ export function calcPercent(w, w0) {
|
|
|
24
24
|
* @fires select - A non bubbling event when selection change through user interaction. The `event.detail` object contains the `item` and `index` properties. It also has the `select` property with the value of the `selectedAttribute` on the tab.
|
|
25
25
|
*/
|
|
26
26
|
export default class UiTabs extends LitElement {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
contentScroll;
|
|
60
|
-
indicated = false;
|
|
61
|
-
// constructor() {
|
|
62
|
-
// super();
|
|
63
|
-
// // this.addEventListener('keydown', this.handleKeydown.bind(this));
|
|
64
|
-
// // this.addEventListener('click', this.handleClick.bind(this));
|
|
65
|
-
// }
|
|
27
|
+
constructor() {
|
|
28
|
+
super();
|
|
29
|
+
this.items = [];
|
|
30
|
+
this.activeItem = null;
|
|
31
|
+
this.previousItem = null;
|
|
32
|
+
/**
|
|
33
|
+
* The priority of the tabs.
|
|
34
|
+
*
|
|
35
|
+
* @default primary
|
|
36
|
+
* @attribute
|
|
37
|
+
*/
|
|
38
|
+
this.priority = 'primary';
|
|
39
|
+
/**
|
|
40
|
+
* The attribute on the `ui-tab` that indicates which value for `selected`
|
|
41
|
+
* corresponds to which tab.
|
|
42
|
+
*
|
|
43
|
+
* @default aria-controls
|
|
44
|
+
* @attribute
|
|
45
|
+
*/
|
|
46
|
+
this.selectedAttribute = `aria-controls`;
|
|
47
|
+
this.indicated = false;
|
|
48
|
+
this.observer = new IntersectionObserver(this.intersectionCallback.bind(this), {
|
|
49
|
+
threshold: 1.0,
|
|
50
|
+
rootMargin: '0px',
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
willUpdate(cp) {
|
|
54
|
+
if (cp.has('isVisible')) {
|
|
55
|
+
this.handleVisibility();
|
|
56
|
+
}
|
|
57
|
+
super.willUpdate(cp);
|
|
58
|
+
}
|
|
66
59
|
connectedCallback() {
|
|
67
60
|
super.connectedCallback();
|
|
68
61
|
if (!this.hasAttribute('role')) {
|
|
69
62
|
this.setAttribute('role', 'tablist');
|
|
70
63
|
}
|
|
64
|
+
this.observer.observe(this);
|
|
65
|
+
}
|
|
66
|
+
disconnectedCallback() {
|
|
67
|
+
super.disconnectedCallback();
|
|
68
|
+
this.observer.unobserve(this);
|
|
69
|
+
}
|
|
70
|
+
intersectionCallback(entries) {
|
|
71
|
+
const [entry] = entries;
|
|
72
|
+
this.isVisible = entry.isIntersecting;
|
|
71
73
|
}
|
|
72
74
|
async updateItems() {
|
|
73
75
|
const elements = this.assignedElements || [];
|
|
@@ -114,6 +116,7 @@ export default class UiTabs extends LitElement {
|
|
|
114
116
|
tab.highlight();
|
|
115
117
|
return;
|
|
116
118
|
}
|
|
119
|
+
this.previousItem = activeItem;
|
|
117
120
|
if (activeItem) {
|
|
118
121
|
this.deselectItem(activeItem);
|
|
119
122
|
}
|
|
@@ -141,16 +144,13 @@ export default class UiTabs extends LitElement {
|
|
|
141
144
|
}));
|
|
142
145
|
}
|
|
143
146
|
selectItem(tab, focus = false) {
|
|
144
|
-
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
+
this.activeItem = tab;
|
|
147
148
|
if (this.hasAttribute('tabindex')) {
|
|
148
149
|
this.removeAttribute('tabindex');
|
|
149
150
|
}
|
|
150
151
|
tab.setAttribute('aria-selected', 'true');
|
|
151
152
|
tab.setAttribute('tabindex', '0');
|
|
152
153
|
tab.selected = true;
|
|
153
|
-
this.activeItem = tab;
|
|
154
154
|
tab.priority = this.priority;
|
|
155
155
|
tab.scrollIntoView({ inline: 'nearest', behavior: 'auto', block: 'nearest' });
|
|
156
156
|
if (focus) {
|
|
@@ -163,8 +163,18 @@ export default class UiTabs extends LitElement {
|
|
|
163
163
|
tab.selected = false;
|
|
164
164
|
tab.indicated = false;
|
|
165
165
|
}
|
|
166
|
+
handleVisibility() {
|
|
167
|
+
const { previousItem, activeItem } = this;
|
|
168
|
+
if (!activeItem) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
this.positionPointer(activeItem, previousItem);
|
|
172
|
+
}
|
|
166
173
|
async positionPointer(tab, old) {
|
|
167
|
-
const { items, pointer } = this;
|
|
174
|
+
const { items, pointer, isVisible } = this;
|
|
175
|
+
if (!isVisible) {
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
168
178
|
const index = items.indexOf(tab);
|
|
169
179
|
if (index < 0 || !pointer) {
|
|
170
180
|
this.pointerStyles = undefined;
|
|
@@ -175,14 +185,17 @@ export default class UiTabs extends LitElement {
|
|
|
175
185
|
tab.indicated = true;
|
|
176
186
|
return;
|
|
177
187
|
}
|
|
188
|
+
const isPrimary = this.priority === 'primary';
|
|
189
|
+
const final = isPrimary ? this.getPrimaryLeft(tab) : this.getSecondaryLeft(tab);
|
|
190
|
+
if (this.pointerStyles && this.pointerStyles.left === `${final}px`) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
178
193
|
// first position this indicator in the place of the old one.
|
|
179
194
|
// update the view and then run the animation.
|
|
180
195
|
this.indicated = true;
|
|
181
|
-
const isPrimary = this.priority === 'primary';
|
|
182
196
|
const left = isPrimary ? this.getPrimaryLeft(old) : this.getSecondaryLeft(old);
|
|
183
197
|
this.pointerStyles = { left };
|
|
184
198
|
await this.updateComplete;
|
|
185
|
-
const final = isPrimary ? this.getPrimaryLeft(tab) : this.getSecondaryLeft(tab);
|
|
186
199
|
const frames = isPrimary ? this.getPrimaryKeyframes(left, final) : this.getSecondaryKeyframes(left, final);
|
|
187
200
|
if (this.moveAnimation) {
|
|
188
201
|
this.moveAnimation.cancel();
|
|
@@ -206,7 +219,6 @@ export default class UiTabs extends LitElement {
|
|
|
206
219
|
});
|
|
207
220
|
this.moveAnimation = moveAnimation;
|
|
208
221
|
}
|
|
209
|
-
moveAnimation;
|
|
210
222
|
getPrimaryLeft(tab) {
|
|
211
223
|
const contentBox = this.content.getBoundingClientRect();
|
|
212
224
|
const tabRect = tab.getBoundingClientRect();
|
|
@@ -451,4 +463,7 @@ __decorate([
|
|
|
451
463
|
__decorate([
|
|
452
464
|
state()
|
|
453
465
|
], UiTabs.prototype, "indicated", void 0);
|
|
466
|
+
__decorate([
|
|
467
|
+
state()
|
|
468
|
+
], UiTabs.prototype, "isVisible", void 0);
|
|
454
469
|
//# sourceMappingURL=UiTabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiTabs.js","sourceRoot":"","sources":["../../../src/ui/tabs/UiTabs.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-cycle */\n/* eslint-disable no-param-reassign */\nimport { html, LitElement, nothing, TemplateResult } from \"lit\";\nimport { property, query, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { ClassInfo, classMap } from \"lit/directives/class-map.js\";\nimport { StyleInfo, styleMap } from \"lit/directives/style-map.js\";\nimport { Easing } from \"../motion/animation.js\";\nimport UiTab from \"./UiTab.js\";\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-icon.js';\n\nexport type TabsPriority = 'primary' | 'secondary';\n\nexport interface TabSelectionDetail {\n item: UiTab;\n index: number;\n select: string | null;\n}\n\n/**\n * Calculates value in percentages\n * @param w Element width\n * @param w0 Parent width\n * @return The percentage of element's width relative to parent.\n */\nexport function calcPercent(w: number, w0: number): number {\n return (100 * w) / w0;\n}\n\n/**\n * A container for tabs.\n * \n * @fires select - A non bubbling event when selection change through user interaction. The `event.detail` object contains the `item` and `index` properties. It also has the `select` property with the value of the `selectedAttribute` on the tab.\n */\nexport default class UiTabs extends LitElement {\n items: UiTab[] = [];\n\n activeItem: UiTab | null = null;\n\n @queryAssignedElements({ flatten: true }) protected assignedElements!: HTMLElement[] | null;\n\n @query('.pointer') protected pointer!: HTMLElement;\n\n @query('.content') protected content!: HTMLElement;\n\n /**\n * The priority of the tabs.\n * \n * @default primary\n * @attribute\n */\n @property({ type: String, reflect: true }) priority: TabsPriority = 'primary';\n\n /**\n * If true, tabs are scrollable and the tab width is based on the label width.\n * @attribute\n */\n @property({ type: Boolean }) scrollable?: boolean;\n\n /**\n * The value of the selected tab.\n * This is matched with the `aria-controls` of the tab.\n * @attribute\n */\n @property({ type: String }) selected?: string;\n\n /**\n * The attribute on the `ui-tab` that indicates which value for `selected` \n * corresponds to which tab. \n * \n * @default aria-controls\n * @attribute\n */\n @property({ type: String }) selectedAttribute = `aria-controls`;\n\n @state() protected pointerStyles?: StyleInfo;\n\n protected contentScroll?: number;\n\n @state() protected indicated = false;\n\n // constructor() {\n // super();\n\n // // this.addEventListener('keydown', this.handleKeydown.bind(this));\n // // this.addEventListener('click', this.handleClick.bind(this));\n // }\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'tablist');\n }\n }\n\n protected async updateItems(): Promise<void> {\n const elements = this.assignedElements || [];\n const items = elements.filter(this.isTabItem, this);\n this.items = items;\n if (this.activeItem && !items.includes(this.activeItem)) {\n this.activeItem = null;\n }\n await this.updateComplete;\n this.ensureSelection();\n }\n\n /** \n * @return Whether the given element is a list item element. \n */\n protected isTabItem(element: Element): element is UiTab {\n if (element.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n return element.localName === 'ui-tab';\n }\n\n protected isSelectable(element: UiTab): boolean {\n if (element.disabled) {\n return false;\n }\n if (element.hidden && element.hasAttribute('hidden')) {\n return false;\n }\n return true;\n }\n\n protected ensureSelection(): void {\n const { selected, selectedAttribute, activeItem, items } = this;\n if (!selectedAttribute) {\n return;\n }\n const item = items.find(i => i.getAttribute(selectedAttribute) === selected);\n if (item && item === activeItem) {\n return;\n }\n this.makeSelection(item);\n }\n\n protected makeSelection(tab?: UiTab, focus = false): void {\n const { activeItem } = this;\n if (activeItem === tab) {\n tab.highlight();\n return;\n }\n if (activeItem) {\n this.deselectItem(activeItem);\n }\n if (tab) {\n this.selectItem(tab, focus);\n this.positionPointer(tab, activeItem);\n if (this.activeItem) {\n // we set this here so we won't notify selection when initializing.\n this.notifySelect(tab);\n }\n }\n }\n\n notifySelect(item: UiTab): void {\n const index = this.items.indexOf(item);\n if (index === -1) {\n return;\n }\n const attrValue = item.getAttribute(this.selectedAttribute);\n this.dispatchEvent(new CustomEvent<TabSelectionDetail>('select', {\n detail: {\n item,\n index,\n select: attrValue,\n }\n }));\n }\n\n protected selectItem(tab: UiTab, focus = false): void {\n if (this.activeItem === tab) {\n return;\n }\n if (this.hasAttribute('tabindex')) {\n this.removeAttribute('tabindex');\n }\n tab.setAttribute('aria-selected', 'true');\n tab.setAttribute('tabindex', '0');\n tab.selected = true;\n this.activeItem = tab;\n tab.priority = this.priority;\n tab.scrollIntoView({ inline: 'nearest', behavior: 'auto', block: 'nearest' });\n if (focus) {\n tab.focus();\n }\n }\n\n protected deselectItem(tab: UiTab): void {\n tab.setAttribute('aria-selected', 'false');\n tab.setAttribute('tabindex', '-1');\n tab.selected = false;\n tab.indicated = false;\n }\n\n protected async positionPointer(tab: UiTab, old?: UiTab | null): Promise<void> {\n const { items, pointer } = this;\n const index = items.indexOf(tab);\n if (index < 0 || !pointer) {\n this.pointerStyles = undefined;\n return;\n }\n\n if (!old) {\n // no start animation, just show indicator.\n tab.indicated = true;\n return;\n }\n\n // first position this indicator in the place of the old one.\n // update the view and then run the animation.\n this.indicated = true;\n const isPrimary = this.priority === 'primary';\n const left = isPrimary ? this.getPrimaryLeft(old) : this.getSecondaryLeft(old);\n this.pointerStyles = { left };\n await this.updateComplete;\n const final = isPrimary ? this.getPrimaryLeft(tab) : this.getSecondaryLeft(tab);\n const frames = isPrimary ? this.getPrimaryKeyframes(left, final) : this.getSecondaryKeyframes(left, final);\n \n if (this.moveAnimation) {\n this.moveAnimation.cancel();\n }\n const moveAnimation = pointer.animate(frames, {\n duration: 360,\n iterations: 1,\n easing: Easing.DECELERATION,\n }\n );\n const finalStyles: StyleInfo = {\n left: `${final}px`,\n };\n moveAnimation.addEventListener('finish', () => {\n this.pointerStyles = finalStyles;\n this.moveAnimation = undefined;\n tab.indicated = true;\n this.indicated = false;\n });\n moveAnimation.addEventListener('cancel', () => {\n this.pointerStyles = finalStyles;\n });\n this.moveAnimation = moveAnimation;\n }\n\n protected moveAnimation?: Animation;\n\n protected getPrimaryLeft(tab: UiTab): string {\n const contentBox = this.content.getBoundingClientRect();\n const tabRect = tab.getBoundingClientRect();\n const leftFromParent = tabRect.x - contentBox.x;\n const offset = this.scrollable ? 48 : 0; // left button\n const left = leftFromParent + (tabRect.width / 2) - 20 + offset;\n return `${left}px`;\n }\n\n protected getSecondaryLeft(tab: UiTab): string {\n const contentBox = this.content.getBoundingClientRect();\n const tabRect = tab.getBoundingClientRect();\n const offset = this.scrollable ? 48 : 0; // left button\n const leftFromParent = tabRect.x - contentBox.x + offset;\n return `${leftFromParent}px`;\n }\n\n protected getPrimaryKeyframes(start: string, final: string): Keyframe[] {\n return [\n {\n left: start,\n width: `40px`,\n },\n {\n width: `80px`,\n },\n {\n left: final,\n width: `40px`,\n }\n ];\n }\n\n protected getSecondaryKeyframes(start: string, final: string): Keyframe[] {\n return [\n {\n left: start,\n },\n {\n left: final,\n }\n ];\n }\n\n protected contentClickHandler(e: PointerEvent): void {\n this.activateFromEvent(e);\n }\n\n protected contentKeyDownHandler(e: KeyboardEvent): void {\n if (['Enter', 'Space'].includes(e.code)) {\n this.activateFromEvent(e);\n }\n }\n\n protected activateFromEvent(e: Event): void {\n const { items } = this;\n const path = e.composedPath();\n let item: UiTab | undefined;\n while (!item) {\n const next = path.shift() as UiTab;\n if (!next) {\n break;\n }\n if (items.includes(next)) {\n item = next;\n }\n }\n if (!item) {\n return;\n }\n this.makeSelection(item, true);\n }\n\n protected handleScrollLeft(): void {\n const { contentScroll = 0, content } = this;\n if (contentScroll === 0) {\n return;\n }\n let left = contentScroll - 80;\n if (left < 0) {\n left = 0;\n }\n this.contentScroll = left;\n content.scrollTo({\n behavior: 'smooth',\n left,\n });\n }\n\n protected handleScrollRight(): void {\n const { contentScroll = 0, content } = this;\n let left = contentScroll + 80;\n if (left + content.clientWidth > content.scrollWidth) {\n left = content.scrollWidth - content.clientWidth;\n }\n this.contentScroll = left;\n content.scrollTo({\n behavior: 'smooth',\n left,\n });\n }\n\n protected handleScroll(e: Event): void {\n const div = e.target as HTMLElement;\n this.contentScroll = div.scrollLeft;\n }\n\n protected handleKeyDown(e: KeyboardEvent): void {\n if (e.code === 'ArrowRight') {\n e.preventDefault();\n const tab = this.activeItem ? this.getNextItem(this.activeItem) : this.items[0];\n this.makeSelection(tab, true);\n } else if (e.code === 'ArrowLeft') {\n e.preventDefault();\n const tab = this.activeItem ? this.getPreviousItem(this.activeItem) : this.items[0];\n this.makeSelection(tab, true);\n }\n }\n\n getPreviousItem(item: UiTab): UiTab {\n const { items } = this;\n const curIndex = items.indexOf(item);\n if (curIndex < 0) {\n return item;\n }\n let i = curIndex;\n let result: HTMLElement | undefined;\n do {\n i--;\n if (i === curIndex) {\n // looped back from the end, no active element to find.\n return item;\n }\n const tmp = items[i];\n if (!tmp) {\n i = items.length;\n continue;\n }\n if (this.isSelectable(tmp)) {\n result = tmp;\n }\n } while (!result);\n return result as UiTab || item;\n }\n\n getNextItem(item: UiTab): UiTab {\n const { items } = this;\n const curIndex = items.indexOf(item);\n if (curIndex < 0) {\n return item;\n }\n let i = curIndex;\n let next: HTMLElement | undefined;\n do {\n i++;\n if (i === curIndex) {\n // looped back from the start, no active element to find.\n return item;\n }\n const tmp = items[i];\n if (!tmp) {\n i = -1;\n continue;\n }\n if (this.isSelectable(tmp)) {\n next = tmp;\n }\n } while (!next);\n return next as UiTab || item;\n }\n\n override render(): TemplateResult {\n const classes: ClassInfo = {\n surface: true,\n scrollable: !!this.scrollable,\n }\n return html`\n <div class=\"${classMap(classes)}\">\n ${this.renderLeftScrollControl()}\n <div class=\"content\" @scroll=\"${this.handleScroll}\" @keydown=\"${this.handleKeyDown}\">\n ${this.renderSlot()}\n </div>\n ${this.rightScrollControl()}\n ${this.renderIndicator()}\n <div class=\"divider\"></div>\n </div>\n `;\n }\n\n protected renderSlot(): TemplateResult {\n return html`<slot \n @slotchange=\"${this.updateItems}\" \n @click=\"${this.contentClickHandler}\" \n @keydown=\"${this.contentKeyDownHandler}\"></slot>`;\n }\n\n protected renderIndicator(): TemplateResult {\n const classes: ClassInfo = {\n indicator: true,\n indicated: this.indicated,\n primary: this.priority === 'primary',\n secondary: this.priority === 'secondary',\n }\n return html`\n <div class=\"${classMap(classes)}\">\n <span role=\"presentation\" class=\"pointer\" style=\"${styleMap(this.pointerStyles || {})}\"></span>\n </div>\n `;\n }\n\n protected renderLeftScrollControl(): TemplateResult | typeof nothing {\n if (!this.scrollable) {\n return nothing;\n }\n return html`\n <div class=\"scroll-control left\">\n <ui-icon-button aria-label=\"Scroll tabs left\" title=\"Scroll tabs left\" @click=\"${this.handleScrollLeft}\">\n <ui-icon icon=\"chevronLeft\"></ui-icon>\n </ui-icon-button>\n </div>`;\n }\n\n protected rightScrollControl(): TemplateResult | typeof nothing {\n if (!this.scrollable) {\n return nothing;\n }\n return html`<div class=\"scroll-control right\">\n <ui-icon-button aria-label=\"Scroll tabs right\" title=\"Scroll tabs right\" @click=\"${this.handleScrollRight}\">\n <ui-icon icon=\"chevronRight\"></ui-icon>\n </ui-icon-button>\n </div>`;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UiTabs.js","sourceRoot":"","sources":["../../../src/ui/tabs/UiTabs.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-cycle */\n/* eslint-disable no-param-reassign */\nimport { html, LitElement, nothing, PropertyValues, TemplateResult } from \"lit\";\nimport { property, query, queryAssignedElements, state } from \"lit/decorators.js\";\nimport { ClassInfo, classMap } from \"lit/directives/class-map.js\";\nimport { StyleInfo, styleMap } from \"lit/directives/style-map.js\";\nimport { Easing } from \"../motion/animation.js\";\nimport UiTab from \"./UiTab.js\";\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-icon.js';\n\nexport type TabsPriority = 'primary' | 'secondary';\n\nexport interface TabSelectionDetail {\n item: UiTab;\n index: number;\n select: string | null;\n}\n\n/**\n * Calculates value in percentages\n * @param w Element width\n * @param w0 Parent width\n * @return The percentage of element's width relative to parent.\n */\nexport function calcPercent(w: number, w0: number): number {\n return (100 * w) / w0;\n}\n\n/**\n * A container for tabs.\n * \n * @fires select - A non bubbling event when selection change through user interaction. The `event.detail` object contains the `item` and `index` properties. It also has the `select` property with the value of the `selectedAttribute` on the tab.\n */\nexport default class UiTabs extends LitElement {\n items: UiTab[] = [];\n\n activeItem: UiTab | null = null;\n\n previousItem: UiTab | null = null;\n\n @queryAssignedElements({ flatten: true }) protected assignedElements!: HTMLElement[] | null;\n\n @query('.pointer') protected pointer!: HTMLElement;\n\n @query('.content') protected content!: HTMLElement;\n\n /**\n * The priority of the tabs.\n * \n * @default primary\n * @attribute\n */\n @property({ type: String, reflect: true }) priority: TabsPriority = 'primary';\n\n /**\n * If true, tabs are scrollable and the tab width is based on the label width.\n * @attribute\n */\n @property({ type: Boolean }) scrollable?: boolean;\n\n /**\n * The value of the selected tab.\n * This is matched with the `aria-controls` of the tab.\n * @attribute\n */\n @property({ type: String }) selected?: string;\n\n /**\n * The attribute on the `ui-tab` that indicates which value for `selected` \n * corresponds to which tab. \n * \n * @default aria-controls\n * @attribute\n */\n @property({ type: String }) selectedAttribute = `aria-controls`;\n\n @state() protected pointerStyles?: StyleInfo;\n\n protected contentScroll?: number;\n\n @state() protected indicated = false;\n\n protected observer: IntersectionObserver;\n\n /**\n * This is set by the intersection observer. Once the tabs are in the view it turns to `true`.\n * This we can properly visualize selection.\n */\n @state() isVisible?: boolean;\n\n constructor() {\n super();\n\n this.observer = new IntersectionObserver(this.intersectionCallback.bind(this), {\n threshold: 1.0,\n rootMargin: '0px',\n });\n }\n\n protected override willUpdate(cp: PropertyValues<this>): void {\n if (cp.has('isVisible')) {\n this.handleVisibility();\n }\n super.willUpdate(cp);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'tablist');\n }\n this.observer.observe(this);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.observer.unobserve(this);\n }\n\n protected intersectionCallback(entries: IntersectionObserverEntry[]): void {\n const [entry] = entries;\n this.isVisible = entry.isIntersecting;\n }\n\n protected async updateItems(): Promise<void> {\n const elements = this.assignedElements || [];\n const items = elements.filter(this.isTabItem, this);\n this.items = items;\n if (this.activeItem && !items.includes(this.activeItem)) {\n this.activeItem = null;\n }\n await this.updateComplete;\n this.ensureSelection();\n }\n\n /** \n * @return Whether the given element is a list item element. \n */\n protected isTabItem(element: Element): element is UiTab {\n if (element.nodeType !== Node.ELEMENT_NODE) {\n return false;\n }\n return element.localName === 'ui-tab';\n }\n\n protected isSelectable(element: UiTab): boolean {\n if (element.disabled) {\n return false;\n }\n if (element.hidden && element.hasAttribute('hidden')) {\n return false;\n }\n return true;\n }\n\n protected ensureSelection(): void {\n const { selected, selectedAttribute, activeItem, items } = this;\n if (!selectedAttribute) {\n return;\n }\n const item = items.find(i => i.getAttribute(selectedAttribute) === selected);\n if (item && item === activeItem) {\n return;\n }\n this.makeSelection(item);\n }\n\n protected makeSelection(tab?: UiTab, focus = false): void {\n const { activeItem } = this;\n if (activeItem === tab) {\n tab.highlight();\n return;\n }\n this.previousItem = activeItem;\n if (activeItem) {\n this.deselectItem(activeItem);\n }\n if (tab) {\n this.selectItem(tab, focus);\n this.positionPointer(tab, activeItem);\n if (this.activeItem) {\n // we set this here so we won't notify selection when initializing.\n this.notifySelect(tab);\n }\n }\n }\n\n notifySelect(item: UiTab): void {\n const index = this.items.indexOf(item);\n if (index === -1) {\n return;\n }\n const attrValue = item.getAttribute(this.selectedAttribute);\n this.dispatchEvent(new CustomEvent<TabSelectionDetail>('select', {\n detail: {\n item,\n index,\n select: attrValue,\n }\n }));\n }\n\n protected selectItem(tab: UiTab, focus = false): void {\n this.activeItem = tab;\n if (this.hasAttribute('tabindex')) {\n this.removeAttribute('tabindex');\n }\n tab.setAttribute('aria-selected', 'true');\n tab.setAttribute('tabindex', '0');\n tab.selected = true;\n tab.priority = this.priority;\n tab.scrollIntoView({ inline: 'nearest', behavior: 'auto', block: 'nearest' });\n if (focus) {\n tab.focus();\n }\n }\n\n protected deselectItem(tab: UiTab): void {\n tab.setAttribute('aria-selected', 'false');\n tab.setAttribute('tabindex', '-1');\n tab.selected = false;\n tab.indicated = false;\n }\n\n protected handleVisibility(): void {\n const { previousItem, activeItem } = this;\n if (!activeItem) {\n return;\n }\n this.positionPointer(activeItem, previousItem);\n }\n\n protected async positionPointer(tab: UiTab, old?: UiTab | null): Promise<void> {\n const { items, pointer, isVisible } = this;\n if (!isVisible) {\n return;\n }\n const index = items.indexOf(tab);\n if (index < 0 || !pointer) {\n this.pointerStyles = undefined;\n return;\n }\n\n if (!old) {\n // no start animation, just show indicator.\n tab.indicated = true;\n return;\n }\n const isPrimary = this.priority === 'primary';\n const final = isPrimary ? this.getPrimaryLeft(tab) : this.getSecondaryLeft(tab);\n if (this.pointerStyles && this.pointerStyles.left === `${final}px`) {\n return;\n }\n\n // first position this indicator in the place of the old one.\n // update the view and then run the animation.\n this.indicated = true;\n const left = isPrimary ? this.getPrimaryLeft(old) : this.getSecondaryLeft(old);\n this.pointerStyles = { left };\n await this.updateComplete;\n const frames = isPrimary ? this.getPrimaryKeyframes(left, final) : this.getSecondaryKeyframes(left, final);\n \n if (this.moveAnimation) {\n this.moveAnimation.cancel();\n }\n const moveAnimation = pointer.animate(frames, {\n duration: 360,\n iterations: 1,\n easing: Easing.DECELERATION,\n }\n );\n const finalStyles: StyleInfo = {\n left: `${final}px`,\n };\n moveAnimation.addEventListener('finish', () => {\n this.pointerStyles = finalStyles;\n this.moveAnimation = undefined;\n tab.indicated = true;\n this.indicated = false;\n });\n moveAnimation.addEventListener('cancel', () => {\n this.pointerStyles = finalStyles;\n });\n this.moveAnimation = moveAnimation;\n }\n\n protected moveAnimation?: Animation;\n\n protected getPrimaryLeft(tab: UiTab): string {\n const contentBox = this.content.getBoundingClientRect();\n const tabRect = tab.getBoundingClientRect();\n const leftFromParent = tabRect.x - contentBox.x;\n const offset = this.scrollable ? 48 : 0; // left button\n const left = leftFromParent + (tabRect.width / 2) - 20 + offset;\n return `${left}px`;\n }\n\n protected getSecondaryLeft(tab: UiTab): string {\n const contentBox = this.content.getBoundingClientRect();\n const tabRect = tab.getBoundingClientRect();\n const offset = this.scrollable ? 48 : 0; // left button\n const leftFromParent = tabRect.x - contentBox.x + offset;\n return `${leftFromParent}px`;\n }\n\n protected getPrimaryKeyframes(start: string, final: string): Keyframe[] {\n return [\n {\n left: start,\n width: `40px`,\n },\n {\n width: `80px`,\n },\n {\n left: final,\n width: `40px`,\n }\n ];\n }\n\n protected getSecondaryKeyframes(start: string, final: string): Keyframe[] {\n return [\n {\n left: start,\n },\n {\n left: final,\n }\n ];\n }\n\n protected contentClickHandler(e: PointerEvent): void {\n this.activateFromEvent(e);\n }\n\n protected contentKeyDownHandler(e: KeyboardEvent): void {\n if (['Enter', 'Space'].includes(e.code)) {\n this.activateFromEvent(e);\n }\n }\n\n protected activateFromEvent(e: Event): void {\n const { items } = this;\n const path = e.composedPath();\n let item: UiTab | undefined;\n while (!item) {\n const next = path.shift() as UiTab;\n if (!next) {\n break;\n }\n if (items.includes(next)) {\n item = next;\n }\n }\n if (!item) {\n return;\n }\n this.makeSelection(item, true);\n }\n\n protected handleScrollLeft(): void {\n const { contentScroll = 0, content } = this;\n if (contentScroll === 0) {\n return;\n }\n let left = contentScroll - 80;\n if (left < 0) {\n left = 0;\n }\n this.contentScroll = left;\n content.scrollTo({\n behavior: 'smooth',\n left,\n });\n }\n\n protected handleScrollRight(): void {\n const { contentScroll = 0, content } = this;\n let left = contentScroll + 80;\n if (left + content.clientWidth > content.scrollWidth) {\n left = content.scrollWidth - content.clientWidth;\n }\n this.contentScroll = left;\n content.scrollTo({\n behavior: 'smooth',\n left,\n });\n }\n\n protected handleScroll(e: Event): void {\n const div = e.target as HTMLElement;\n this.contentScroll = div.scrollLeft;\n }\n\n protected handleKeyDown(e: KeyboardEvent): void {\n if (e.code === 'ArrowRight') {\n e.preventDefault();\n const tab = this.activeItem ? this.getNextItem(this.activeItem) : this.items[0];\n this.makeSelection(tab, true);\n } else if (e.code === 'ArrowLeft') {\n e.preventDefault();\n const tab = this.activeItem ? this.getPreviousItem(this.activeItem) : this.items[0];\n this.makeSelection(tab, true);\n }\n }\n\n getPreviousItem(item: UiTab): UiTab {\n const { items } = this;\n const curIndex = items.indexOf(item);\n if (curIndex < 0) {\n return item;\n }\n let i = curIndex;\n let result: HTMLElement | undefined;\n do {\n i--;\n if (i === curIndex) {\n // looped back from the end, no active element to find.\n return item;\n }\n const tmp = items[i];\n if (!tmp) {\n i = items.length;\n continue;\n }\n if (this.isSelectable(tmp)) {\n result = tmp;\n }\n } while (!result);\n return result as UiTab || item;\n }\n\n getNextItem(item: UiTab): UiTab {\n const { items } = this;\n const curIndex = items.indexOf(item);\n if (curIndex < 0) {\n return item;\n }\n let i = curIndex;\n let next: HTMLElement | undefined;\n do {\n i++;\n if (i === curIndex) {\n // looped back from the start, no active element to find.\n return item;\n }\n const tmp = items[i];\n if (!tmp) {\n i = -1;\n continue;\n }\n if (this.isSelectable(tmp)) {\n next = tmp;\n }\n } while (!next);\n return next as UiTab || item;\n }\n\n override render(): TemplateResult {\n const classes: ClassInfo = {\n surface: true,\n scrollable: !!this.scrollable,\n }\n return html`\n <div class=\"${classMap(classes)}\">\n ${this.renderLeftScrollControl()}\n <div class=\"content\" @scroll=\"${this.handleScroll}\" @keydown=\"${this.handleKeyDown}\">\n ${this.renderSlot()}\n </div>\n ${this.rightScrollControl()}\n ${this.renderIndicator()}\n <div class=\"divider\"></div>\n </div>\n `;\n }\n\n protected renderSlot(): TemplateResult {\n return html`<slot \n @slotchange=\"${this.updateItems}\" \n @click=\"${this.contentClickHandler}\" \n @keydown=\"${this.contentKeyDownHandler}\"></slot>`;\n }\n\n protected renderIndicator(): TemplateResult {\n const classes: ClassInfo = {\n indicator: true,\n indicated: this.indicated,\n primary: this.priority === 'primary',\n secondary: this.priority === 'secondary',\n }\n return html`\n <div class=\"${classMap(classes)}\">\n <span role=\"presentation\" class=\"pointer\" style=\"${styleMap(this.pointerStyles || {})}\"></span>\n </div>\n `;\n }\n\n protected renderLeftScrollControl(): TemplateResult | typeof nothing {\n if (!this.scrollable) {\n return nothing;\n }\n return html`\n <div class=\"scroll-control left\">\n <ui-icon-button aria-label=\"Scroll tabs left\" title=\"Scroll tabs left\" @click=\"${this.handleScrollLeft}\">\n <ui-icon icon=\"chevronLeft\"></ui-icon>\n </ui-icon-button>\n </div>`;\n }\n\n protected rightScrollControl(): TemplateResult | typeof nothing {\n if (!this.scrollable) {\n return nothing;\n }\n return html`<div class=\"scroll-control right\">\n <ui-icon-button aria-label=\"Scroll tabs right\" title=\"Scroll tabs right\" @click=\"${this.handleScrollRight}\">\n <ui-icon icon=\"chevronRight\"></ui-icon>\n </ui-icon-button>\n </div>`;\n }\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var _a;
|
|
1
2
|
import { __decorate } from "tslib";
|
|
2
3
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
3
4
|
/* eslint-disable class-methods-use-this */
|
|
@@ -32,7 +33,6 @@ export default class VizWorkspaceElement extends LitElement {
|
|
|
32
33
|
static get styles() {
|
|
33
34
|
return [elementStyles];
|
|
34
35
|
}
|
|
35
|
-
[zoomValue];
|
|
36
36
|
/**
|
|
37
37
|
* The zoom level of the current visualization
|
|
38
38
|
* @attribute
|
|
@@ -83,21 +83,18 @@ export default class VizWorkspaceElement extends LitElement {
|
|
|
83
83
|
set scrollTop(value) {
|
|
84
84
|
this.gestures.top = value;
|
|
85
85
|
}
|
|
86
|
-
[canvasRef];
|
|
87
86
|
get canvas() {
|
|
88
87
|
if (!this[canvasRef]) {
|
|
89
88
|
this[canvasRef] = this.shadowRoot?.querySelector('.canvas');
|
|
90
89
|
}
|
|
91
90
|
return this[canvasRef];
|
|
92
91
|
}
|
|
93
|
-
[svgRef];
|
|
94
92
|
get associationSvg() {
|
|
95
93
|
if (!this[svgRef]) {
|
|
96
94
|
this[svgRef] = this.shadowRoot?.querySelector('.association');
|
|
97
95
|
}
|
|
98
96
|
return this[svgRef];
|
|
99
97
|
}
|
|
100
|
-
[widthValue];
|
|
101
98
|
/**
|
|
102
99
|
* The width of the canvas element, in pixels
|
|
103
100
|
*/
|
|
@@ -117,7 +114,6 @@ export default class VizWorkspaceElement extends LitElement {
|
|
|
117
114
|
}
|
|
118
115
|
this.requestUpdate('width', old);
|
|
119
116
|
}
|
|
120
|
-
[heightValue];
|
|
121
117
|
/**
|
|
122
118
|
* The height of the canvas element, in pixels
|
|
123
119
|
*/
|
|
@@ -137,7 +133,6 @@ export default class VizWorkspaceElement extends LitElement {
|
|
|
137
133
|
}
|
|
138
134
|
this.requestUpdate('height', old);
|
|
139
135
|
}
|
|
140
|
-
[autoResizeValue] = false;
|
|
141
136
|
/**
|
|
142
137
|
* When set it instruct the visualization workspace to grow over the currently set `width` and `height`
|
|
143
138
|
* when a new added item is placed outside the bounds of the workspace.
|
|
@@ -159,22 +154,18 @@ export default class VizWorkspaceElement extends LitElement {
|
|
|
159
154
|
this.sizing.disconnect();
|
|
160
155
|
}
|
|
161
156
|
}
|
|
162
|
-
/**
|
|
163
|
-
* Enables some limited debugging information.
|
|
164
|
-
*/
|
|
165
|
-
debug;
|
|
166
|
-
/**
|
|
167
|
-
* The current scale of the visualization
|
|
168
|
-
*/
|
|
169
|
-
scale = 1;
|
|
170
|
-
[zoomTimeout];
|
|
171
|
-
gestures = new WorkspaceGestures(this);
|
|
172
|
-
selection = new SelectionManager(this);
|
|
173
|
-
edges = new WorkspaceEdges(this);
|
|
174
|
-
anchors = new AssociationAnchors(this);
|
|
175
|
-
sizing = new WorkspaceSizing(this);
|
|
176
157
|
constructor() {
|
|
177
158
|
super();
|
|
159
|
+
this[_a] = false;
|
|
160
|
+
/**
|
|
161
|
+
* The current scale of the visualization
|
|
162
|
+
*/
|
|
163
|
+
this.scale = 1;
|
|
164
|
+
this.gestures = new WorkspaceGestures(this);
|
|
165
|
+
this.selection = new SelectionManager(this);
|
|
166
|
+
this.edges = new WorkspaceEdges(this);
|
|
167
|
+
this.anchors = new AssociationAnchors(this);
|
|
168
|
+
this.sizing = new WorkspaceSizing(this);
|
|
178
169
|
this.addEventListener('geometrychange', this[geometryChangeHandler].bind(this));
|
|
179
170
|
}
|
|
180
171
|
connectedCallback() {
|
|
@@ -220,7 +211,7 @@ export default class VizWorkspaceElement extends LitElement {
|
|
|
220
211
|
this.gestures.left = -left;
|
|
221
212
|
this.gestures.top = -top;
|
|
222
213
|
}
|
|
223
|
-
[notifyZoom]() {
|
|
214
|
+
[(_a = autoResizeValue, notifyZoom)]() {
|
|
224
215
|
if (this[zoomTimeout]) {
|
|
225
216
|
clearTimeout(this[zoomTimeout]);
|
|
226
217
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VizWorkspaceElement.js","sourceRoot":"","sources":["../../../src/visualization/elements/VizWorkspaceElement.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable class-methods-use-this */\nimport { CSSResult, html, LitElement, PropertyValueMap, PropertyValues, svg, SVGTemplateResult, TemplateResult } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\nimport { AssociationAnchors } from \"../lib/AssociationAnchors.js\";\nimport { SelectionManager } from \"../lib/SelectionManager.js\";\nimport { ShapeArtist } from \"../lib/ShapeArtist.js\";\nimport { WorkspaceEdges } from \"../lib/WorkspaceEdges.js\";\nimport { WorkspaceGestures } from \"../lib/WorkspaceGestures.js\";\nimport { WorkspaceSizing } from \"../lib/WorkspaceSizing.js\";\nimport elementStyles from './WorkspaceStyles.js';\n\nconst defaultCanvasWidth = 3840;\nconst defaultCanvasHeight = 2160;\n\nexport const canvasRef = Symbol('canvasRef');\nexport const svgRef = Symbol('svgRef');\nexport const attributeTypeEditHandler = Symbol('attributeTypeEditHandler');\nexport const attributeTypeDropdownClosedHandler = Symbol('attributeTypeDropdownClosedHandler');\nexport const attributeTypeSelectHandler = Symbol('attributeTypeSelectHandler');\nexport const geometryChangeHandler = Symbol('geometryChangeHandler');\nexport const widthValue = Symbol('widthValue');\nexport const heightValue = Symbol('heightValue');\nexport const autoResizeValue = Symbol('autoResizeValue');\nexport const zoomValue = Symbol('zoomValue');\nexport const notifyZoom = Symbol('notifyZoom');\nexport const zoomTimeout = Symbol('zoomTimeout');\n\n/**\n * @fires positionchange\n */\nexport default class VizWorkspaceElement extends LitElement {\n static override get styles(): CSSResult[] {\n return [elementStyles];\n }\n\n [zoomValue]?: number;\n\n /**\n * The zoom level of the current visualization\n * @attribute\n */\n @property({ type: Number, reflect: true })\n get zoom(): number {\n return this[zoomValue] || 0;\n }\n\n set zoom(value: number) {\n const localValue = Number(value);\n if (Number.isNaN(localValue)) {\n return;\n }\n const old = this[zoomValue];\n if (old === localValue) {\n return;\n }\n this[zoomValue] = localValue;\n this.gestures.updateScale();\n this.requestUpdate('zoom', old);\n }\n\n /**\n * Gets or sets the number of pixels that an element's content is scrolled horizontally.\n * Unlike regular HTML elements, this can be a negative value as it is possible to\n * scroll outside the working area.\n */\n @property({ type: Number })\n override get scrollLeft(): number {\n const s = this.gestures;\n return s && s.left || 0;\n }\n\n /**\n * @param value The x-axis position value\n */\n override set scrollLeft(value: number) {\n this.gestures.left = value;\n }\n\n /**\n * Gets or sets the number of pixels that an element's content is scrolled vertically.\n * Unlike regular HTML elements, this can be a negative value as it is possible to\n * scroll outside the working area.\n */\n @property({ type: Number })\n override get scrollTop(): number {\n const s = this.gestures;\n return s && s.top || 0;\n }\n\n /**\n * @param value The y-axis position value\n */\n override set scrollTop(value: number) {\n this.gestures.top = value;\n }\n\n [canvasRef]?: HTMLDivElement;\n\n get canvas(): HTMLDivElement | null {\n if (!this[canvasRef]) {\n this[canvasRef] = this.shadowRoot?.querySelector('.canvas') as HTMLDivElement;\n }\n return this[canvasRef] as HTMLDivElement;\n }\n\n [svgRef]?: SVGElement;\n\n get associationSvg(): SVGElement {\n if (!this[svgRef]) {\n this[svgRef] = this.shadowRoot?.querySelector('.association') as SVGElement;\n }\n return this[svgRef] as SVGElement;\n }\n\n [widthValue]?: number;\n\n /**\n * The width of the canvas element, in pixels\n */\n @property({ type: Number })\n get width(): number {\n return this[widthValue] || defaultCanvasWidth;\n }\n\n set width(value: number) {\n const old = this[widthValue];\n if (old === value) {\n return;\n }\n if (!value || Number.isNaN(value)) {\n this[widthValue] = undefined;\n } else {\n this[widthValue] = value;\n }\n this.requestUpdate('width', old);\n }\n\n [heightValue]?: number;\n\n /**\n * The height of the canvas element, in pixels\n */\n @property({ type: Number })\n get height(): number {\n return this[heightValue] || defaultCanvasHeight;\n }\n\n set height(value: number) {\n const old = this[heightValue];\n if (old === value) {\n return;\n }\n if (!value || Number.isNaN(value)) {\n this[heightValue] = undefined;\n } else {\n this[heightValue] = value;\n }\n this.requestUpdate('height', old);\n }\n\n [autoResizeValue] = false;\n\n /** \n * When set it instruct the visualization workspace to grow over the currently set `width` and `height` \n * when a new added item is placed outside the bounds of the workspace.\n */\n @property({ type: Number, reflect: true })\n get autoResize(): boolean {\n return this[autoResizeValue];\n }\n\n set autoResize(value: boolean) {\n const old = this[autoResizeValue];\n if (old === value) {\n return;\n }\n this[autoResizeValue] = value;\n this.requestUpdate('autoResize', old);\n if (value === true) {\n this.sizing.connect();\n } else if (this.sizing.connected) {\n this.sizing.disconnect();\n }\n }\n\n /** \n * Enables some limited debugging information.\n */\n @property({ type: Boolean, reflect: true }) debug?: boolean;\n\n /** \n * The current scale of the visualization\n */\n @property({ type: Number }) scale = 1;\n\n [zoomTimeout]?: number;\n\n gestures = new WorkspaceGestures(this);\n\n selection = new SelectionManager(this);\n\n edges = new WorkspaceEdges(this);\n\n anchors = new AssociationAnchors(this);\n\n sizing = new WorkspaceSizing(this);\n\n constructor() {\n super();\n this.addEventListener('geometrychange', this[geometryChangeHandler].bind(this));\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.gestures.connect();\n this.selection.connect();\n this.edges.connect();\n this.anchors.connect();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.gestures.disconnect();\n this.selection.disconnect();\n this.edges.disconnect();\n this.anchors.disconnect();\n }\n\n protected override firstUpdated(cp: PropertyValues<this>): void {\n super.firstUpdated(cp);\n const { top, left } = this.gestures;\n if (top === null || left === null) {\n this.gestures.scrollTo(0, 0);\n // this.center();\n }\n this.edges.listenContent();\n }\n\n /**\n * Clears the state of the workspace.\n */\n clear(): void {\n this.edges.clear();\n this.selection.deselectAll();\n }\n\n /**\n * Centers the workspace.\n */\n center(): void {\n const { width: cWidth = defaultCanvasWidth, height: cHeight = defaultCanvasHeight } = this;\n const { height, width } = this.getBoundingClientRect();\n const midWidth = cWidth / 2;\n const midHeight = cHeight / 2;\n const left = midWidth - width / 2;\n const top = midHeight - height / 2;\n this.gestures.left = -left;\n this.gestures.top = -top;\n }\n\n [notifyZoom](): void {\n if (this[zoomTimeout]) {\n clearTimeout(this[zoomTimeout]);\n }\n this[zoomTimeout] = setTimeout(() => {\n this.dispatchEvent(new Event('zoomchange'));\n }, 1) as unknown as number;\n }\n\n async [geometryChangeHandler](e: Event): Promise<void> {\n const source = e.target as HTMLElement;\n await this.edges.update(source.dataset.key as string);\n }\n\n override scrollBy(options: ScrollToOptions): void;\n\n override scrollBy(x: number, y: number): void;\n\n /**\n * Scrolls the element by the given amount.\n * @param {ScrollToOptions|number} xCoordOrOptions The horizontal pixel value that you want to scroll by\n * or the scroll options. When passed value is the `ScrollToOptions` interface then\n * the second argument is ignored.\n * @param {number=} yCoord The vertical pixel value that you want to scroll by.\n */\n override scrollBy(xCoordOrOptions: ScrollToOptions | number, yCoord?: number | undefined): void {\n this.gestures.scrollBy(xCoordOrOptions, yCoord);\n }\n\n override scrollTo(options: ScrollToOptions): void;\n\n override scrollTo(x: number, y: number): void;\n\n /**\n * Scrolls to a particular set of coordinates inside the element.\n *\n * @param xCoordOrOptions The pixel along the horizontal axis of the element\n * that you want displayed in the upper left. When passed value is the `ScrollToOptions` interface then\n * the second argument is ignored.\n * @param yCoord The pixel along the vertical axis of the element that you want displayed in the upper left.\n */\n override scrollTo(xCoordOrOptions: ScrollToOptions | number, yCoord?: number): void {\n this.gestures.scrollTo(xCoordOrOptions, yCoord);\n }\n\n /**\n * Scrolls the view if the position defined by `x` and `y` arguments requires\n * the view to be moved.\n *\n * @param x The x coordinate of the point\n * @param y The y coordinate of the point\n * @returns true if the canvas was moved\n */\n scrollIfNeeded(x: number, y: number): boolean {\n return this.gestures.scrollIfNeeded(x, y);\n }\n\n override render(): TemplateResult {\n const { scale, scrollLeft, scrollTop } = this;\n const styles = {\n transform: `scale(${scale}) translate(${scrollLeft}px, ${scrollTop}px)`,\n width: `${this.width}px`,\n height: `${this.height}px`,\n };\n return html`\n <div\n class=\"content canvas\"\n style=\"${styleMap(styles)}\"\n >\n ${this.renderLinesTemplate()}\n <slot></slot>\n </div>\n `;\n }\n\n /**\n * @return {SVGTemplateResult} The template for the associations\n */\n renderLinesTemplate(): SVGTemplateResult {\n const { debug } = this;\n const { edges } = this.edges;\n const primarySelected: (string | SVGTemplateResult)[] = [];\n const secondarySelected: (string | SVGTemplateResult)[] = [];\n const hovered: (string | SVGTemplateResult)[] = [];\n const rest: (string | SVGTemplateResult)[] = [];\n edges.forEach((item) => {\n const line = ShapeArtist.line(item, debug);\n const { shape } = item;\n const { selection = {} } = shape;\n if (selection.primary) {\n primarySelected.push(line);\n } else if (selection.secondary) {\n secondarySelected.push(line);\n } else if (selection.hover) {\n hovered.push(line);\n } else {\n rest.push(line);\n }\n });\n const edgesResult = primarySelected.concat(secondarySelected).concat(hovered).concat(rest).reverse();\n return svg`\n <svg width=\"100%\" height=\"100%\" class=\"association\">\n ${edgesResult.length ? edgesResult : ''}\n </svg>`;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"VizWorkspaceElement.js","sourceRoot":"","sources":["../../../src/visualization/elements/VizWorkspaceElement.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable class-methods-use-this */\nimport { CSSResult, html, LitElement, PropertyValueMap, PropertyValues, svg, SVGTemplateResult, TemplateResult } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { styleMap } from \"lit/directives/style-map.js\";\nimport { AssociationAnchors } from \"../lib/AssociationAnchors.js\";\nimport { SelectionManager } from \"../lib/SelectionManager.js\";\nimport { ShapeArtist } from \"../lib/ShapeArtist.js\";\nimport { WorkspaceEdges } from \"../lib/WorkspaceEdges.js\";\nimport { WorkspaceGestures } from \"../lib/WorkspaceGestures.js\";\nimport { WorkspaceSizing } from \"../lib/WorkspaceSizing.js\";\nimport elementStyles from './WorkspaceStyles.js';\n\nconst defaultCanvasWidth = 3840;\nconst defaultCanvasHeight = 2160;\n\nexport const canvasRef = Symbol('canvasRef');\nexport const svgRef = Symbol('svgRef');\nexport const attributeTypeEditHandler = Symbol('attributeTypeEditHandler');\nexport const attributeTypeDropdownClosedHandler = Symbol('attributeTypeDropdownClosedHandler');\nexport const attributeTypeSelectHandler = Symbol('attributeTypeSelectHandler');\nexport const geometryChangeHandler = Symbol('geometryChangeHandler');\nexport const widthValue = Symbol('widthValue');\nexport const heightValue = Symbol('heightValue');\nexport const autoResizeValue = Symbol('autoResizeValue');\nexport const zoomValue = Symbol('zoomValue');\nexport const notifyZoom = Symbol('notifyZoom');\nexport const zoomTimeout = Symbol('zoomTimeout');\n\n/**\n * @fires positionchange\n */\nexport default class VizWorkspaceElement extends LitElement {\n static override get styles(): CSSResult[] {\n return [elementStyles];\n }\n\n [zoomValue]?: number;\n\n /**\n * The zoom level of the current visualization\n * @attribute\n */\n @property({ type: Number, reflect: true })\n get zoom(): number {\n return this[zoomValue] || 0;\n }\n\n set zoom(value: number) {\n const localValue = Number(value);\n if (Number.isNaN(localValue)) {\n return;\n }\n const old = this[zoomValue];\n if (old === localValue) {\n return;\n }\n this[zoomValue] = localValue;\n this.gestures.updateScale();\n this.requestUpdate('zoom', old);\n }\n\n /**\n * Gets or sets the number of pixels that an element's content is scrolled horizontally.\n * Unlike regular HTML elements, this can be a negative value as it is possible to\n * scroll outside the working area.\n */\n @property({ type: Number })\n override get scrollLeft(): number {\n const s = this.gestures;\n return s && s.left || 0;\n }\n\n /**\n * @param value The x-axis position value\n */\n override set scrollLeft(value: number) {\n this.gestures.left = value;\n }\n\n /**\n * Gets or sets the number of pixels that an element's content is scrolled vertically.\n * Unlike regular HTML elements, this can be a negative value as it is possible to\n * scroll outside the working area.\n */\n @property({ type: Number })\n override get scrollTop(): number {\n const s = this.gestures;\n return s && s.top || 0;\n }\n\n /**\n * @param value The y-axis position value\n */\n override set scrollTop(value: number) {\n this.gestures.top = value;\n }\n\n [canvasRef]?: HTMLDivElement;\n\n get canvas(): HTMLDivElement | null {\n if (!this[canvasRef]) {\n this[canvasRef] = this.shadowRoot?.querySelector('.canvas') as HTMLDivElement;\n }\n return this[canvasRef] as HTMLDivElement;\n }\n\n [svgRef]?: SVGElement;\n\n get associationSvg(): SVGElement {\n if (!this[svgRef]) {\n this[svgRef] = this.shadowRoot?.querySelector('.association') as SVGElement;\n }\n return this[svgRef] as SVGElement;\n }\n\n [widthValue]?: number;\n\n /**\n * The width of the canvas element, in pixels\n */\n @property({ type: Number })\n get width(): number {\n return this[widthValue] || defaultCanvasWidth;\n }\n\n set width(value: number) {\n const old = this[widthValue];\n if (old === value) {\n return;\n }\n if (!value || Number.isNaN(value)) {\n this[widthValue] = undefined;\n } else {\n this[widthValue] = value;\n }\n this.requestUpdate('width', old);\n }\n\n [heightValue]?: number;\n\n /**\n * The height of the canvas element, in pixels\n */\n @property({ type: Number })\n get height(): number {\n return this[heightValue] || defaultCanvasHeight;\n }\n\n set height(value: number) {\n const old = this[heightValue];\n if (old === value) {\n return;\n }\n if (!value || Number.isNaN(value)) {\n this[heightValue] = undefined;\n } else {\n this[heightValue] = value;\n }\n this.requestUpdate('height', old);\n }\n\n [autoResizeValue] = false;\n\n /** \n * When set it instruct the visualization workspace to grow over the currently set `width` and `height` \n * when a new added item is placed outside the bounds of the workspace.\n */\n @property({ type: Number, reflect: true })\n get autoResize(): boolean {\n return this[autoResizeValue];\n }\n\n set autoResize(value: boolean) {\n const old = this[autoResizeValue];\n if (old === value) {\n return;\n }\n this[autoResizeValue] = value;\n this.requestUpdate('autoResize', old);\n if (value === true) {\n this.sizing.connect();\n } else if (this.sizing.connected) {\n this.sizing.disconnect();\n }\n }\n\n /** \n * Enables some limited debugging information.\n */\n @property({ type: Boolean, reflect: true }) debug?: boolean;\n\n /** \n * The current scale of the visualization\n */\n @property({ type: Number }) scale = 1;\n\n [zoomTimeout]?: number;\n\n gestures = new WorkspaceGestures(this);\n\n selection = new SelectionManager(this);\n\n edges = new WorkspaceEdges(this);\n\n anchors = new AssociationAnchors(this);\n\n sizing = new WorkspaceSizing(this);\n\n constructor() {\n super();\n this.addEventListener('geometrychange', this[geometryChangeHandler].bind(this));\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.gestures.connect();\n this.selection.connect();\n this.edges.connect();\n this.anchors.connect();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.gestures.disconnect();\n this.selection.disconnect();\n this.edges.disconnect();\n this.anchors.disconnect();\n }\n\n protected override firstUpdated(cp: PropertyValues<this>): void {\n super.firstUpdated(cp);\n const { top, left } = this.gestures;\n if (top === null || left === null) {\n this.gestures.scrollTo(0, 0);\n // this.center();\n }\n this.edges.listenContent();\n }\n\n /**\n * Clears the state of the workspace.\n */\n clear(): void {\n this.edges.clear();\n this.selection.deselectAll();\n }\n\n /**\n * Centers the workspace.\n */\n center(): void {\n const { width: cWidth = defaultCanvasWidth, height: cHeight = defaultCanvasHeight } = this;\n const { height, width } = this.getBoundingClientRect();\n const midWidth = cWidth / 2;\n const midHeight = cHeight / 2;\n const left = midWidth - width / 2;\n const top = midHeight - height / 2;\n this.gestures.left = -left;\n this.gestures.top = -top;\n }\n\n [notifyZoom](): void {\n if (this[zoomTimeout]) {\n clearTimeout(this[zoomTimeout]);\n }\n this[zoomTimeout] = setTimeout(() => {\n this.dispatchEvent(new Event('zoomchange'));\n }, 1) as unknown as number;\n }\n\n async [geometryChangeHandler](e: Event): Promise<void> {\n const source = e.target as HTMLElement;\n await this.edges.update(source.dataset.key as string);\n }\n\n override scrollBy(options: ScrollToOptions): void;\n\n override scrollBy(x: number, y: number): void;\n\n /**\n * Scrolls the element by the given amount.\n * @param {ScrollToOptions|number} xCoordOrOptions The horizontal pixel value that you want to scroll by\n * or the scroll options. When passed value is the `ScrollToOptions` interface then\n * the second argument is ignored.\n * @param {number=} yCoord The vertical pixel value that you want to scroll by.\n */\n override scrollBy(xCoordOrOptions: ScrollToOptions | number, yCoord?: number | undefined): void {\n this.gestures.scrollBy(xCoordOrOptions, yCoord);\n }\n\n override scrollTo(options: ScrollToOptions): void;\n\n override scrollTo(x: number, y: number): void;\n\n /**\n * Scrolls to a particular set of coordinates inside the element.\n *\n * @param xCoordOrOptions The pixel along the horizontal axis of the element\n * that you want displayed in the upper left. When passed value is the `ScrollToOptions` interface then\n * the second argument is ignored.\n * @param yCoord The pixel along the vertical axis of the element that you want displayed in the upper left.\n */\n override scrollTo(xCoordOrOptions: ScrollToOptions | number, yCoord?: number): void {\n this.gestures.scrollTo(xCoordOrOptions, yCoord);\n }\n\n /**\n * Scrolls the view if the position defined by `x` and `y` arguments requires\n * the view to be moved.\n *\n * @param x The x coordinate of the point\n * @param y The y coordinate of the point\n * @returns true if the canvas was moved\n */\n scrollIfNeeded(x: number, y: number): boolean {\n return this.gestures.scrollIfNeeded(x, y);\n }\n\n override render(): TemplateResult {\n const { scale, scrollLeft, scrollTop } = this;\n const styles = {\n transform: `scale(${scale}) translate(${scrollLeft}px, ${scrollTop}px)`,\n width: `${this.width}px`,\n height: `${this.height}px`,\n };\n return html`\n <div\n class=\"content canvas\"\n style=\"${styleMap(styles)}\"\n >\n ${this.renderLinesTemplate()}\n <slot></slot>\n </div>\n `;\n }\n\n /**\n * @return {SVGTemplateResult} The template for the associations\n */\n renderLinesTemplate(): SVGTemplateResult {\n const { debug } = this;\n const { edges } = this.edges;\n const primarySelected: (string | SVGTemplateResult)[] = [];\n const secondarySelected: (string | SVGTemplateResult)[] = [];\n const hovered: (string | SVGTemplateResult)[] = [];\n const rest: (string | SVGTemplateResult)[] = [];\n edges.forEach((item) => {\n const line = ShapeArtist.line(item, debug);\n const { shape } = item;\n const { selection = {} } = shape;\n if (selection.primary) {\n primarySelected.push(line);\n } else if (selection.secondary) {\n secondarySelected.push(line);\n } else if (selection.hover) {\n hovered.push(line);\n } else {\n rest.push(line);\n }\n });\n const edgesResult = primarySelected.concat(secondarySelected).concat(hovered).concat(rest).reverse();\n return svg`\n <svg width=\"100%\" height=\"100%\" class=\"association\">\n ${edgesResult.length ? edgesResult : ''}\n </svg>`;\n }\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var _a;
|
|
1
2
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
3
|
/* eslint-disable class-methods-use-this */
|
|
3
4
|
import { getRelativeClickPoint } from './PositionUtils.js';
|
|
@@ -19,35 +20,22 @@ export const keydownHandler = Symbol('keydownHandler');
|
|
|
19
20
|
* After the user finish a DOM event is dispatched from the visualization workspace.
|
|
20
21
|
*/
|
|
21
22
|
export class AssociationAnchors {
|
|
22
|
-
workspace;
|
|
23
|
-
[connectedValue] = false;
|
|
24
|
-
/**
|
|
25
|
-
* Whether a line is being constructed.
|
|
26
|
-
*/
|
|
27
|
-
drawing = false;
|
|
28
|
-
/**
|
|
29
|
-
* A reference to the currently injected SVG element.
|
|
30
|
-
*/
|
|
31
|
-
lineElement;
|
|
32
|
-
/**
|
|
33
|
-
* Whether an association position is being updated.
|
|
34
|
-
* In such case it dispatches different event at the end.
|
|
35
|
-
*/
|
|
36
|
-
updating = false;
|
|
37
|
-
/**
|
|
38
|
-
* The processor used to draw lines
|
|
39
|
-
*/
|
|
40
|
-
lineProcessor = new LineSketch();
|
|
41
|
-
/**
|
|
42
|
-
* Set when a new association is being created
|
|
43
|
-
*/
|
|
44
|
-
createInfo;
|
|
45
|
-
/**
|
|
46
|
-
* Set when an association update is performed
|
|
47
|
-
*/
|
|
48
|
-
updateInfo;
|
|
49
23
|
constructor(workspace) {
|
|
50
24
|
this.workspace = workspace;
|
|
25
|
+
this[_a] = false;
|
|
26
|
+
/**
|
|
27
|
+
* Whether a line is being constructed.
|
|
28
|
+
*/
|
|
29
|
+
this.drawing = false;
|
|
30
|
+
/**
|
|
31
|
+
* Whether an association position is being updated.
|
|
32
|
+
* In such case it dispatches different event at the end.
|
|
33
|
+
*/
|
|
34
|
+
this.updating = false;
|
|
35
|
+
/**
|
|
36
|
+
* The processor used to draw lines
|
|
37
|
+
*/
|
|
38
|
+
this.lineProcessor = new LineSketch();
|
|
51
39
|
this.workspace = workspace;
|
|
52
40
|
this[mouseDownHandler] = this[mouseDownHandler].bind(this);
|
|
53
41
|
this[mouseMoveHandler] = this[mouseMoveHandler].bind(this);
|
|
@@ -85,7 +73,7 @@ export class AssociationAnchors {
|
|
|
85
73
|
});
|
|
86
74
|
return element;
|
|
87
75
|
}
|
|
88
|
-
[mouseDownHandler](e) {
|
|
76
|
+
[(_a = connectedValue, mouseDownHandler)](e) {
|
|
89
77
|
if (e.button !== 0) {
|
|
90
78
|
return;
|
|
91
79
|
}
|