@api-client/ui 0.0.4 → 0.0.5
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/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/rename-dialog.js +1 -1
- package/dist/define/dialog/rename-dialog.js.map +1 -1
- 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.js +1 -1
- 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-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-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.js +0 -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 +0 -32
- 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.js +0 -76
- 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 +0 -78
- 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.js +0 -118
- 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.js +18 -32
- 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/Rename.js +0 -6
- package/dist/elements/dialog/Rename.js.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.js +8 -11
- package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
- package/dist/elements/environment/ServerEditor.js +7 -45
- package/dist/elements/environment/ServerEditor.js.map +1 -1
- package/dist/elements/environment/VariablesEditor.js +7 -12
- 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/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.js +21 -33
- package/dist/elements/http/BodyEditor.js.map +1 -1
- package/dist/elements/http/BodyMultipartEditor.js +17 -18
- package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
- package/dist/elements/http/BodyTextEditor.js +2 -15
- package/dist/elements/http/BodyTextEditor.js.map +1 -1
- package/dist/elements/http/BodyUrlEncodedEditor.js +20 -21
- package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
- package/dist/elements/http/HeadersForm.js +16 -17
- package/dist/elements/http/HeadersForm.js.map +1 -1
- package/dist/elements/http/HttpAssertions.js +8 -6
- package/dist/elements/http/HttpAssertions.js.map +1 -1
- 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.js +7 -4
- package/dist/elements/http/RequestConfigElement.js.map +1 -1
- package/dist/elements/http/RequestEditor.js +54 -88
- 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.js +15 -25
- package/dist/elements/http/UrlInput.js.map +1 -1
- package/dist/elements/http/UrlParamsForm.js +16 -13
- 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/navigation/AppNavigationElement.js +8 -47
- package/dist/elements/navigation/AppNavigationElement.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.js +0 -38
- 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.js +2 -47
- package/dist/elements/project/ProjectRunner.js.map +1 -1
- package/dist/elements/schema-design/AssociationFormElement.js +0 -13
- package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
- package/dist/elements/schema-design/DataEntityEditorElement.js +0 -22
- 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.js +0 -36
- package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
- package/dist/elements/schema-design/EntityFormElement.js +0 -18
- package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
- package/dist/elements/schema-design/PropertyFormElement.js +0 -12
- 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.js +34 -55
- 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/Authenticate.screen.js +4 -6
- package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
- package/dist/pages/api-client/StoreConfig.screen.js +21 -37
- package/dist/pages/api-client/StoreConfig.screen.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.js +6 -27
- 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.js +25 -35
- package/dist/pages/http-project/HttpProject.screen.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/ui/UiElement.js +4 -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/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.js +14 -38
- package/dist/ui/dialog/UiDialog.js.map +1 -1
- package/dist/ui/effects/ripple.js +20 -18
- 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/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.js +2 -13
- package/dist/ui/input/CheckedElement.js.map +1 -1
- package/dist/ui/input/Input.js +169 -234
- 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.js +5 -10
- package/dist/ui/list/DividerElement.js.map +1 -1
- 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.js +21 -35
- 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/tsconfig.json +2 -2
|
@@ -26,26 +26,26 @@ import '../../define/ui/ui-switch.js';
|
|
|
26
26
|
* A body editor specializing in URL encoded data.
|
|
27
27
|
*/
|
|
28
28
|
export default class BodyUrlEncodedEditor extends LitElement {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
29
|
+
constructor() {
|
|
30
|
+
super(...arguments);
|
|
31
|
+
/**
|
|
32
|
+
* When set the editor is in read only mode.
|
|
33
|
+
* @attribute
|
|
34
|
+
*/
|
|
35
|
+
this.readOnly = false;
|
|
36
|
+
/**
|
|
37
|
+
* When set all controls are disabled in the form
|
|
38
|
+
* @attribute
|
|
39
|
+
*/
|
|
40
|
+
this.disabled = false;
|
|
41
|
+
/**
|
|
42
|
+
* When set it automatically encodes and decodes values.
|
|
43
|
+
* @attribute
|
|
44
|
+
*/
|
|
45
|
+
this.autoEncode = false;
|
|
46
|
+
this.valueInternal = '';
|
|
47
|
+
this.modelInternal = [];
|
|
48
|
+
}
|
|
49
49
|
/**
|
|
50
50
|
* The HTTP body.
|
|
51
51
|
*/
|
|
@@ -60,7 +60,6 @@ export default class BodyUrlEncodedEditor extends LitElement {
|
|
|
60
60
|
this.valueInternal = value || '';
|
|
61
61
|
this.setupModel(value || '');
|
|
62
62
|
}
|
|
63
|
-
modelInternal = [];
|
|
64
63
|
/**
|
|
65
64
|
* Computed data model for the view.
|
|
66
65
|
* Don't set both `value` and `model`. If the model exists then
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BodyUrlEncodedEditor.js","sourceRoot":"","sources":["../../../src/elements/http/BodyUrlEncodedEditor.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable class-methods-use-this */\n/**\n@license\nCopyright 2020 The Advanced REST client authors <arc@mulesoft.com>\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not\nuse this file except in compliance with the License. You may obtain a copy of\nthe License at\nhttp://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\nWARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\nLicense for the specific language governing permissions and limitations under\nthe License.\n*/\nimport { LitElement, html, TemplateResult, PropertyValues, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { live } from 'lit/directives/live.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { IProperty, Property } from '@api-client/core/build/browser.js';\nimport { \n decodeUrlEncoded,\n encodeUrlEncoded,\n createViewModel,\n formArrayToString,\n} from './UrlEncodeUtils.js';\nimport SwitchElement from '../../ui/input/SwitchElement.js';\nimport Input from '../../ui/input/Input.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-switch.js';\n\n/**\n * A body editor specializing in URL encoded data.\n */\nexport default class BodyUrlEncodedEditor extends LitElement {\n /**\n * When set the editor is in read only mode.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) readOnly = false;\n\n /**\n * When set all controls are disabled in the form\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** \n * When set it automatically encodes and decodes values.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) autoEncode = false;\n\n /**\n * @attribute\n */\n @property({ type: Boolean }) allowFormInfo?: boolean;\n\n protected valueInternal = '';\n\n /**\n * The HTTP body.\n */\n @property({ type: String })\n get value(): string | undefined {\n return this.valueInternal;\n }\n\n set value(value: string | undefined) {\n const old = this.valueInternal;\n if (old === value) {\n return;\n }\n this.valueInternal = value || '';\n this.setupModel(value || '');\n }\n\n protected modelInternal: IProperty[] = [];\n\n /**\n * Computed data model for the view.\n * Don't set both `value` and `model`. If the model exists then\n * set only it or otherwise the `value` setter override the model.\n */\n get model(): IProperty[] {\n return this.modelInternal;\n }\n\n set model(value: IProperty[]) {\n const old = this.modelInternal;\n if (old === value) {\n return;\n }\n if (Array.isArray(value)) {\n this.modelInternal = value;\n } else {\n this.modelInternal = [];\n }\n this.valueInternal = this.modelToValue();\n this.requestUpdate();\n }\n\n protected override update(cp: PropertyValues<this>): void {\n if (cp.has('autoEncode')) {\n this.updateValue();\n }\n super.update(cp);\n }\n\n /**\n * Removes all parameters.\n */\n clear(): void {\n this.model = [];\n this.updateValue();\n this.requestUpdate();\n }\n\n /**\n * Removes a parameter from an index.\n */\n removeProperty(index: number): void {\n const items = this.model;\n items.splice(index, 1);\n this.updateValue();\n this.requestUpdate();\n }\n\n /**\n * Toggles enabled state of a parameter.\n */\n toggleProperty(index: number, enabled: boolean): void {\n const items = this.model;\n const item = items[index];\n item.enabled = enabled;\n this.updateValue();\n }\n\n /**\n * Updates name/value of a parameter on a specific index.\n */\n updateProperty(index: number, field: 'name' | 'value', value: string): void {\n const item = this.model[index];\n const old = item[field];\n if (old === value) {\n return;\n }\n item[field] = value as string;\n this.updateValue();\n }\n\n addParameter(name = '', value = ''): void {\n if (this.readOnly || this.disabled) {\n return;\n }\n const prop = Property.String(name, value, true);\n const items = this.model;\n items[items.length] = prop.toJSON();\n this.model = items;\n this.requestUpdate();\n this.focusLast();\n }\n\n protected notifyChange(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n protected updateValue(): void {\n if (this.readOnly) {\n return;\n }\n this.valueInternal = this.modelToValue();\n this.notifyChange();\n }\n\n protected modelToValue(): string {\n const { model, autoEncode } = this;\n if (autoEncode) {\n const encoded = encodeUrlEncoded(model) as IProperty[];\n return formArrayToString(encoded);\n }\n return formArrayToString(this.model);\n }\n\n /**\n * Called when the `value` property change. It generates the view model\n * for the editor.\n */\n protected setupModel(value: string): void {\n if (!value) {\n this.model = [];\n return;\n }\n const model = createViewModel(value) as IProperty[];\n if (this.autoEncode) {\n this.modelInternal = decodeUrlEncoded(model) as IProperty[];\n } else {\n this.modelInternal = model;\n }\n this.requestUpdate();\n }\n\n async focusLast(): Promise<void> {\n await this.updateComplete;\n const row = this.shadowRoot?.querySelector('.param-row:last-of-type');\n if (!row) {\n return;\n }\n try {\n const node = row.querySelector('.name-input input') as HTMLInputElement | undefined;\n if (node) {\n node.focus();\n }\n } catch (e) {\n // ...\n }\n }\n\n /**\n * Encodes current parameters in the model, updated the value, and notifies the change\n */\n encodeParameters(): void {\n const encoded = encodeUrlEncoded(this.model) as IProperty[];\n this.modelInternal = encoded;\n this.valueInternal = formArrayToString(encoded);\n this.notifyChange();\n this.requestUpdate();\n }\n\n /**\n * Encodes current parameters in the model, updated the value, and notifies the change\n */\n decodeParameters(): void {\n const decoded = decodeUrlEncoded(this.model) as IProperty[];\n this.modelInternal = decoded;\n this.valueInternal = formArrayToString(decoded);\n this.notifyChange();\n this.requestUpdate();\n }\n\n protected handleAdd(): void {\n this.addParameter();\n }\n\n protected handleToggle(e: Event): void {\n const node = e.currentTarget as SwitchElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.toggleProperty(index, node.checked);\n }\n\n protected handleRemove(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.removeProperty(index);\n }\n\n protected handleNameChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateProperty(index, 'name', input.value);\n input.checkValidity();\n }\n\n protected handleValueChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateProperty(index, 'value', input.value);\n input.checkValidity();\n }\n\n override render(): TemplateResult {\n const items = this.model;\n if (!Array.isArray(items) || !items.length) {\n return html`${this.renderEmptyMessage()}${this.renderFormInfo()}`;\n }\n return this.renderParams(items);\n }\n\n protected renderFormInfo(): TemplateResult | typeof nothing {\n if (!this.allowFormInfo) {\n return nothing;\n }\n return html`\n <p class=\"form-info\">\n Note that the content-type header will be added when the request is sent. \n We encourage you to use variables to insert sensitive data.\n </p>\n `;\n }\n\n protected renderEmptyMessage(): TemplateResult {\n return html`\n <div class=\"empty-message\">No parameters added</div>\n `;\n }\n\n protected renderParams(items: IProperty[]): TemplateResult {\n return html`\n ${items.map((item, index) => this.renderParam(item, index))}\n ${this.renderFormInfo()}\n `;\n }\n\n protected renderParam(item: IProperty, index: number): TemplateResult {\n return html`\n <div class=\"param-row\">\n ${this.renderToggleButton(item, index)}\n ${this.renderNameField(item, index)}\n ${this.renderValueField(item, index)}\n ${this.renderDeleteParameter(index)}\n </div>\n `;\n }\n\n protected renderToggleButton(item: IProperty, index: number): TemplateResult {\n return html`\n <ui-switch \n .checked=\"${!!item.enabled}\" \n @change=\"${this.handleToggle}\" \n title=\"Enable / disable parameter\"\n aria-label=\"Activate to toggle enabled state of this parameter\"\n data-index=\"${index}\"\n ?disabled=\"${this.readOnly}\"\n ></ui-switch>\n `;\n }\n\n protected renderDeleteParameter(index: number): TemplateResult {\n return html`\n <ui-icon-button \n title=\"Removes this parameter\"\n aria-label=\"Deletes this parameter\" \n data-index=\"${index}\" \n @click=\"${this.handleRemove}\"\n ?disabled=\"${this.readOnly}\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderNameField(item: IProperty, index: number): TemplateResult {\n const { autoEncode } = this;\n const pattern = !autoEncode ? '\\\\S*' : undefined;\n return html`\n <div class=\"input-wrapper name-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"name\"\n autocomplete=\"off\"\n .value=\"${live(item.name as string)}\" \n data-index=\"${index}\" \n ?readOnly=\"${this.readOnly}\" \n pattern=\"${ifDefined(pattern)}\"\n aria-label=\"Parameter name value\"\n @change=\"${this.handleNameChange}\"\n />\n </div>\n `;\n }\n\n protected renderValueField(item: IProperty, index: number): TemplateResult {\n const { autoEncode } = this;\n const pattern = !autoEncode ? '\\\\S*' : undefined;\n return html`\n <div class=\"input-wrapper value-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"value\"\n .value=\"${live(item.value as string)}\" \n data-index=\"${index}\" \n ?readOnly=\"${this.readOnly}\" \n pattern=\"${ifDefined(pattern)}\"\n aria-label=\"Parameter value\"\n @change=\"${this.handleValueChange}\"\n />\n </div>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"BodyUrlEncodedEditor.js","sourceRoot":"","sources":["../../../src/elements/http/BodyUrlEncodedEditor.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable class-methods-use-this */\n/**\n@license\nCopyright 2020 The Advanced REST client authors <arc@mulesoft.com>\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not\nuse this file except in compliance with the License. You may obtain a copy of\nthe License at\nhttp://www.apache.org/licenses/LICENSE-2.0\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\nWARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\nLicense for the specific language governing permissions and limitations under\nthe License.\n*/\nimport { LitElement, html, TemplateResult, PropertyValues, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { live } from 'lit/directives/live.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { IProperty, Property } from '@api-client/core/build/browser.js';\nimport { \n decodeUrlEncoded,\n encodeUrlEncoded,\n createViewModel,\n formArrayToString,\n} from './UrlEncodeUtils.js';\nimport SwitchElement from '../../ui/input/SwitchElement.js';\nimport Input from '../../ui/input/Input.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-switch.js';\n\n/**\n * A body editor specializing in URL encoded data.\n */\nexport default class BodyUrlEncodedEditor extends LitElement {\n /**\n * When set the editor is in read only mode.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) readOnly = false;\n\n /**\n * When set all controls are disabled in the form\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** \n * When set it automatically encodes and decodes values.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) autoEncode = false;\n\n /**\n * @attribute\n */\n @property({ type: Boolean }) allowFormInfo?: boolean;\n\n protected valueInternal = '';\n\n /**\n * The HTTP body.\n */\n @property({ type: String })\n get value(): string | undefined {\n return this.valueInternal;\n }\n\n set value(value: string | undefined) {\n const old = this.valueInternal;\n if (old === value) {\n return;\n }\n this.valueInternal = value || '';\n this.setupModel(value || '');\n }\n\n protected modelInternal: IProperty[] = [];\n\n /**\n * Computed data model for the view.\n * Don't set both `value` and `model`. If the model exists then\n * set only it or otherwise the `value` setter override the model.\n */\n get model(): IProperty[] {\n return this.modelInternal;\n }\n\n set model(value: IProperty[]) {\n const old = this.modelInternal;\n if (old === value) {\n return;\n }\n if (Array.isArray(value)) {\n this.modelInternal = value;\n } else {\n this.modelInternal = [];\n }\n this.valueInternal = this.modelToValue();\n this.requestUpdate();\n }\n\n protected override update(cp: PropertyValues<this>): void {\n if (cp.has('autoEncode')) {\n this.updateValue();\n }\n super.update(cp);\n }\n\n /**\n * Removes all parameters.\n */\n clear(): void {\n this.model = [];\n this.updateValue();\n this.requestUpdate();\n }\n\n /**\n * Removes a parameter from an index.\n */\n removeProperty(index: number): void {\n const items = this.model;\n items.splice(index, 1);\n this.updateValue();\n this.requestUpdate();\n }\n\n /**\n * Toggles enabled state of a parameter.\n */\n toggleProperty(index: number, enabled: boolean): void {\n const items = this.model;\n const item = items[index];\n item.enabled = enabled;\n this.updateValue();\n }\n\n /**\n * Updates name/value of a parameter on a specific index.\n */\n updateProperty(index: number, field: 'name' | 'value', value: string): void {\n const item = this.model[index];\n const old = item[field];\n if (old === value) {\n return;\n }\n item[field] = value as string;\n this.updateValue();\n }\n\n addParameter(name = '', value = ''): void {\n if (this.readOnly || this.disabled) {\n return;\n }\n const prop = Property.String(name, value, true);\n const items = this.model;\n items[items.length] = prop.toJSON();\n this.model = items;\n this.requestUpdate();\n this.focusLast();\n }\n\n protected notifyChange(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n protected updateValue(): void {\n if (this.readOnly) {\n return;\n }\n this.valueInternal = this.modelToValue();\n this.notifyChange();\n }\n\n protected modelToValue(): string {\n const { model, autoEncode } = this;\n if (autoEncode) {\n const encoded = encodeUrlEncoded(model) as IProperty[];\n return formArrayToString(encoded);\n }\n return formArrayToString(this.model);\n }\n\n /**\n * Called when the `value` property change. It generates the view model\n * for the editor.\n */\n protected setupModel(value: string): void {\n if (!value) {\n this.model = [];\n return;\n }\n const model = createViewModel(value) as IProperty[];\n if (this.autoEncode) {\n this.modelInternal = decodeUrlEncoded(model) as IProperty[];\n } else {\n this.modelInternal = model;\n }\n this.requestUpdate();\n }\n\n async focusLast(): Promise<void> {\n await this.updateComplete;\n const row = this.shadowRoot?.querySelector('.param-row:last-of-type');\n if (!row) {\n return;\n }\n try {\n const node = row.querySelector('.name-input input') as HTMLInputElement | undefined;\n if (node) {\n node.focus();\n }\n } catch (e) {\n // ...\n }\n }\n\n /**\n * Encodes current parameters in the model, updated the value, and notifies the change\n */\n encodeParameters(): void {\n const encoded = encodeUrlEncoded(this.model) as IProperty[];\n this.modelInternal = encoded;\n this.valueInternal = formArrayToString(encoded);\n this.notifyChange();\n this.requestUpdate();\n }\n\n /**\n * Encodes current parameters in the model, updated the value, and notifies the change\n */\n decodeParameters(): void {\n const decoded = decodeUrlEncoded(this.model) as IProperty[];\n this.modelInternal = decoded;\n this.valueInternal = formArrayToString(decoded);\n this.notifyChange();\n this.requestUpdate();\n }\n\n protected handleAdd(): void {\n this.addParameter();\n }\n\n protected handleToggle(e: Event): void {\n const node = e.currentTarget as SwitchElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.toggleProperty(index, node.checked);\n }\n\n protected handleRemove(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.removeProperty(index);\n }\n\n protected handleNameChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateProperty(index, 'name', input.value);\n input.checkValidity();\n }\n\n protected handleValueChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateProperty(index, 'value', input.value);\n input.checkValidity();\n }\n\n override render(): TemplateResult {\n const items = this.model;\n if (!Array.isArray(items) || !items.length) {\n return html`${this.renderEmptyMessage()}${this.renderFormInfo()}`;\n }\n return this.renderParams(items);\n }\n\n protected renderFormInfo(): TemplateResult | typeof nothing {\n if (!this.allowFormInfo) {\n return nothing;\n }\n return html`\n <p class=\"form-info\">\n Note that the content-type header will be added when the request is sent. \n We encourage you to use variables to insert sensitive data.\n </p>\n `;\n }\n\n protected renderEmptyMessage(): TemplateResult {\n return html`\n <div class=\"empty-message\">No parameters added</div>\n `;\n }\n\n protected renderParams(items: IProperty[]): TemplateResult {\n return html`\n ${items.map((item, index) => this.renderParam(item, index))}\n ${this.renderFormInfo()}\n `;\n }\n\n protected renderParam(item: IProperty, index: number): TemplateResult {\n return html`\n <div class=\"param-row\">\n ${this.renderToggleButton(item, index)}\n ${this.renderNameField(item, index)}\n ${this.renderValueField(item, index)}\n ${this.renderDeleteParameter(index)}\n </div>\n `;\n }\n\n protected renderToggleButton(item: IProperty, index: number): TemplateResult {\n return html`\n <ui-switch \n .checked=\"${!!item.enabled}\" \n @change=\"${this.handleToggle}\" \n title=\"Enable / disable parameter\"\n aria-label=\"Activate to toggle enabled state of this parameter\"\n data-index=\"${index}\"\n ?disabled=\"${this.readOnly}\"\n ></ui-switch>\n `;\n }\n\n protected renderDeleteParameter(index: number): TemplateResult {\n return html`\n <ui-icon-button \n title=\"Removes this parameter\"\n aria-label=\"Deletes this parameter\" \n data-index=\"${index}\" \n @click=\"${this.handleRemove}\"\n ?disabled=\"${this.readOnly}\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderNameField(item: IProperty, index: number): TemplateResult {\n const { autoEncode } = this;\n const pattern = !autoEncode ? '\\\\S*' : undefined;\n return html`\n <div class=\"input-wrapper name-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"name\"\n autocomplete=\"off\"\n .value=\"${live(item.name as string)}\" \n data-index=\"${index}\" \n ?readOnly=\"${this.readOnly}\" \n pattern=\"${ifDefined(pattern)}\"\n aria-label=\"Parameter name value\"\n @change=\"${this.handleNameChange}\"\n />\n </div>\n `;\n }\n\n protected renderValueField(item: IProperty, index: number): TemplateResult {\n const { autoEncode } = this;\n const pattern = !autoEncode ? '\\\\S*' : undefined;\n return html`\n <div class=\"input-wrapper value-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"value\"\n .value=\"${live(item.value as string)}\" \n data-index=\"${index}\" \n ?readOnly=\"${this.readOnly}\" \n pattern=\"${ifDefined(pattern)}\"\n aria-label=\"Parameter value\"\n @change=\"${this.handleValueChange}\"\n />\n </div>\n `;\n }\n}\n"]}
|
|
@@ -20,25 +20,24 @@ const nameSuggestions = HttpDefinitions.queryRequestHeaders().map(item => item.k
|
|
|
20
20
|
* An editor that creates HTTP headers as a data model that can be translated into a headers string.
|
|
21
21
|
*/
|
|
22
22
|
export default class HeadersForm extends ApiElement {
|
|
23
|
-
/**
|
|
24
|
-
* When set the editor is in read only mode.
|
|
25
|
-
* @attribute
|
|
26
|
-
*/
|
|
27
|
-
readOnly = false;
|
|
28
|
-
/**
|
|
29
|
-
* Whether the text editor is rendered instead of the form.
|
|
30
|
-
* @attribute
|
|
31
|
-
*/
|
|
32
|
-
text = false;
|
|
33
|
-
/**
|
|
34
|
-
* The headers model.
|
|
35
|
-
*/
|
|
36
|
-
model = [];
|
|
37
|
-
internalModel = new HeadersArray();
|
|
38
|
-
textValue;
|
|
39
|
-
autocompleteMap = {};
|
|
40
23
|
constructor() {
|
|
41
24
|
super();
|
|
25
|
+
/**
|
|
26
|
+
* When set the editor is in read only mode.
|
|
27
|
+
* @attribute
|
|
28
|
+
*/
|
|
29
|
+
this.readOnly = false;
|
|
30
|
+
/**
|
|
31
|
+
* Whether the text editor is rendered instead of the form.
|
|
32
|
+
* @attribute
|
|
33
|
+
*/
|
|
34
|
+
this.text = false;
|
|
35
|
+
/**
|
|
36
|
+
* The headers model.
|
|
37
|
+
*/
|
|
38
|
+
this.model = [];
|
|
39
|
+
this.internalModel = new HeadersArray();
|
|
40
|
+
this.autocompleteMap = {};
|
|
42
41
|
this.handleGlobalContentType = this.handleGlobalContentType.bind(this);
|
|
43
42
|
}
|
|
44
43
|
connectedCallback() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadersForm.js","sourceRoot":"","sources":["../../../src/elements/http/HeadersForm.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport { html, PropertyValues, TemplateResult } from \"lit\";\nimport { Events as CoreEvents, Property, HeadersArray, HttpDefinitions, IProperty } from '@api-client/core/build/browser.js';\nimport { property, state } from \"lit/decorators.js\";\nimport { live } from \"lit/directives/live.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport Input from \"../../ui/input/Input.js\";\nimport SwitchElement from \"../../ui/input/SwitchElement.js\";\nimport { EventTypes } from \"../../events/EventTypes.js\";\nimport { SnackNotifications } from \"../../ui/notification/SnackNotifications.js\";\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-switch.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-icon.js';\n\nconst nameSuggestions = HttpDefinitions.queryRequestHeaders().map(item => item.key);\n\n/**\n * An editor that creates HTTP headers as a data model that can be translated into a headers string.\n */\nexport default class HeadersForm extends ApiElement {\n /**\n * When set the editor is in read only mode.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) readOnly = false;\n\n /**\n * Whether the text editor is rendered instead of the form.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) text = false;\n\n /**\n * The headers model.\n */\n @property({ type: Array }) model: IProperty[] = [];\n\n @state() protected internalModel = new HeadersArray();\n\n @state() protected textValue?: string;\n\n protected autocompleteMap: Record<string, string[]> = {};\n\n constructor() {\n super();\n this.handleGlobalContentType = this.handleGlobalContentType.bind(this);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.eventsTarget.addEventListener(EventTypes.Http.Request.State.contentTypeChange, this.handleGlobalContentType as EventListener);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.eventsTarget.removeEventListener(EventTypes.Http.Request.State.contentTypeChange, this.handleGlobalContentType as EventListener);\n }\n\n protected override update(cp: PropertyValues<this>): void {\n if (cp.has('model')) {\n if (this.model) {\n this.internalModel = HeadersArray.from(this.model);\n this.model.forEach((item, index) => this.setupValueAutocomplete(item.name, index));\n } else {\n this.internalModel = new HeadersArray();\n }\n }\n if (cp.has('text')) {\n if (this.text) {\n this.textValue = this.internalModel.toRawString();\n } else {\n this.textValue = undefined;\n }\n }\n \n super.update(cp);\n }\n\n protected setupHeaders(headers?: string): void {\n this.autocompleteMap = {};\n if (headers) {\n this.internalModel = HeadersArray.fromHeaders(headers);\n this.model = this.internalModel.toJSON();\n } else {\n this.internalModel = new HeadersArray();\n this.model = [];\n }\n this.requestUpdate();\n }\n\n /**\n * Updates header value. It the header does not exists at the position it adds a new header.\n * @param index The position at which the header is located\n * @param value Header value\n */\n updateHeaderValue(index: number, value: string): void;\n\n /**\n * Updates header value. It the header does not exists at the position it adds a new header.\n * @param name The name of the header to update.\n * @param value Header value\n */\n updateHeaderValue(name: string, value: string): void;\n\n /**\n * Updates header value. It the header does not exists at the position it adds a new header.\n * @param nameOrIndex Header name or index\n * @param value Header value\n */\n updateHeaderValue(nameOrIndex: string | number, value: string): void {\n const { internalModel } = this;\n let index: number;\n if (typeof nameOrIndex === 'number') {\n index = nameOrIndex;\n } else {\n const lowerName = nameOrIndex.toLowerCase();\n index = internalModel.findIndex((item) => (item.name || '').toLocaleLowerCase() === lowerName);\n }\n if (index === -1) {\n if (typeof nameOrIndex === 'string') {\n this.addHeader(nameOrIndex, value);\n } else {\n this.addHeader('', value);\n }\n this.propagateModelChange();\n return;\n }\n internalModel[index].value = value;\n this.model[index].value = value;\n if (this.text) {\n this.textValue = internalModel.toRawString();\n }\n this.propagateModelChange();\n this.requestUpdate();\n }\n\n /**\n * Updates header name. It the header does not exists at the position it adds a new header.\n * @param index The position at which the header is located\n * @param value The header name\n */\n updateHeaderName(index: number, value: string): void;\n\n /**\n * Updates header name. It the header does not exists at the position it adds a new header.\n * @param name The name of the header to update.\n * @param value The header name\n */\n updateHeaderName(name: string, value: string): void;\n\n /**\n * Updates header name. It the header does not exists at the position it adds a new header.\n * @param nameOrIndex The header name or index\n * @param value The header name\n */\n updateHeaderName(nameOrIndex: string | number, value: string): void {\n const { internalModel } = this;\n let index: number;\n if (typeof nameOrIndex === 'number') {\n index = nameOrIndex;\n } else {\n const lowerName = nameOrIndex.toLowerCase();\n index = internalModel.findIndex((item) => (item.name || '').toLocaleLowerCase() === lowerName);\n }\n if (index === -1) {\n this.addHeader(value);\n return;\n }\n internalModel[index].name = value;\n this.model[index].name = value;\n this.setupValueAutocomplete(value, index);\n if (this.text) {\n this.textValue = internalModel.toRawString();\n }\n this.propagateModelChange();\n this.requestUpdate();\n }\n\n protected setupValueAutocomplete(name: string, index: number): void {\n const query = name.toLowerCase();\n const items = HttpDefinitions.queryRequestHeaders(query);\n const item = items.find(i => i.key.toLowerCase() === query);\n if (item && item.autocomplete) {\n this.autocompleteMap[`header-value-${index}`] = item.autocomplete;\n } else {\n delete this.autocompleteMap[`header-value-${index}`];\n }\n }\n\n /**\n * Removes a header from the list.\n * @param name The name of the header to remove\n */\n removeHeader(name: string): void;\n\n /**\n * Removes a header from the list.\n * @param index The position of the header to remove\n */\n removeHeader(index: number): void\n\n /**\n * Removes a header from the list.\n * @param nameOrIndex Header name or its index.\n */\n removeHeader(nameOrIndex: string | number): void {\n const { internalModel } = this;\n let index: number;\n if (typeof nameOrIndex === 'number') {\n index = nameOrIndex;\n } else {\n const lowerName = nameOrIndex.toLowerCase();\n index = internalModel.findIndex((item) => (item.name || '').toLocaleLowerCase() === lowerName);\n }\n if (index < 0) {\n return;\n }\n internalModel.splice(index, 1);\n this.model.splice(index, 1);\n delete this.autocompleteMap[`header-value-${index}`];\n if (this.text) {\n this.textValue = internalModel.toRawString();\n }\n this.propagateModelChange();\n this.requestUpdate();\n }\n\n /**\n * Adds a header to the list of headers\n */\n addHeader(name = '', value = ''): void {\n const prop = Property.String(name, value);\n this.internalModel.push(prop);\n this.model.push(prop.toJSON());\n // the value hasn't actually changed here so no events\n this.requestUpdate();\n }\n\n /**\n * Removes all parameters.\n */\n clear(): void {\n this.model.splice(0);\n this.internalModel.splice(0);\n this.propagateModelChange();\n this.autocompleteMap = {};\n if (this.text) {\n this.textValue = '';\n }\n this.requestUpdate();\n }\n\n /**\n * Toggles enabled state of a header.\n */\n toggleHeader(index: number, enabled: boolean): void {\n this.model[index].enabled = enabled;\n this.internalModel[index].enabled = enabled;\n if (this.text) {\n this.textValue = this.internalModel.toRawString();\n }\n this.propagateModelChange();\n }\n\n /**\n * Toggles the state between form and text editors.\n */\n toggle(): void {\n this.text = !this.text;\n }\n\n async copyToClipboard(): Promise<void> {\n if (!navigator.clipboard) {\n throw new Error(`Clipboard API not supported.`);\n }\n await navigator.clipboard.writeText(this.internalModel.toString());\n SnackNotifications.notify('Headers copied to clipboard.', 2000);\n CoreEvents.Telemetry.event({\n category: 'Usage',\n action: 'Click',\n label: 'Headers editor clipboard copy',\n }, this);\n }\n\n /**\n * Dispatches the `change` event to notify about the value change\n */\n protected notifyChange(): void {\n this.dispatchEvent(new Event('change'))\n }\n\n protected handleGlobalContentType(e: CustomEvent): void {\n const { value } = e.detail;\n this.updateHeaderValue('content-type', value);\n }\n\n /**\n * Updates the `value` from the current model and dispatches the value change event\n */\n protected propagateModelChange(): void {\n this.notifyChange();\n }\n\n protected async focusLast(): Promise<void> {\n await this.updateComplete;\n const row = this.shadowRoot?.querySelector('.param-row:last-of-type');\n if (!row) {\n return;\n }\n try {\n const node = row.querySelector('.name-input input') as HTMLInputElement | undefined;\n if (node) {\n node.focus();\n }\n } catch (e) {\n // ...\n }\n }\n\n protected handleAdd(): void {\n this.addHeader();\n }\n\n protected handleOption(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement;\n const { option } = element.dataset;\n if (!option) {\n return;\n }\n if (option === 'clear') {\n this.clear();\n } else if (option === 'text-editor') {\n this.toggle();\n }\n }\n\n protected handleNameChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateHeaderName(index, input.value);\n input.checkValidity();\n }\n\n protected handleValueChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateHeaderValue(index, input.value);\n input.checkValidity();\n }\n\n protected handleRemove(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.removeHeader(index);\n }\n\n protected handleToggle(e: Event): void {\n const node = e.currentTarget as SwitchElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.toggleHeader(index, node.checked);\n }\n\n protected handleText(e: Event): void {\n const input = e.target as HTMLTextAreaElement;\n const { value } = input;\n this.setupHeaders(value);\n this.textValue = value;\n this.notifyChange();\n }\n\n protected handleCopy(): void {\n this.copyToClipboard();\n }\n\n protected override render(): TemplateResult {\n return html`\n ${this.renderActionButtons()}\n ${this.renderEditor()}\n ${this.renderNamesList()}\n ${this.renderAutocompleteLists()}\n `;\n }\n\n protected renderActionButtons(): TemplateResult {\n return html`\n <div class=\"editor-actions\">\n <ui-button type=\"tonal\" @click=\"${this.handleAdd}\">Add</ui-button>\n <ui-button type=\"tonal\" @click=\"${this.handleCopy}\">Copy</ui-button>\n <ui-dropdown-list @select=\"${this.handleOption}\" closeOnOutsideClick class=\"dropdown\">\n <ui-icon-button aria-label=\"Additional options\"><ui-icon icon=\"moreVert\" role=\"presentation\"></ui-icon></ui-icon-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" data-option=\"text-editor\" image=\"icon\" title=\"Toggles between a text editor and a form\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"${this.text ? 'checkBox' : 'checkBoxBlank'}\"></ui-icon>\n Text editor\n </ui-list-item>\n <ui-divider type=\"inset\"></ui-divider>\n <ui-list-item role=\"menuitem\" data-option=\"clear\" image=\"icon\" title=\"Removes all parameters from the editor\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"deleteOutline\"></ui-icon>\n Clear form\n </ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n </div>\n `;\n }\n\n protected renderEditor(): TemplateResult {\n if (this.text) {\n return this.renderText();\n }\n return this.renderList();\n }\n\n protected renderText(): TemplateResult {\n const { textValue = '' } = this;\n return html`\n <div class=\"text-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <textarea \n .value=\"${live(textValue)}\"\n data-enable-grammarly=\"false\"\n @change=\"${this.handleText}\"\n ></textarea>\n </div>\n `;\n }\n\n protected renderList(): TemplateResult {\n const items = this.internalModel;\n if (!Array.isArray(items) || !items.length) {\n return this.renderEmptyMessage();\n }\n return this.renderParams(items);\n }\n\n protected renderEmptyMessage(): TemplateResult {\n return html`\n <div class=\"empty-message\">No parameters added</div>\n `;\n }\n\n protected renderParams(items: HeadersArray): TemplateResult {\n return html`\n ${items.map((item, index) => this.renderParam(item, index))}\n `;\n }\n\n protected renderParam(item: Property, index: number): TemplateResult {\n return html`\n <div class=\"param-row\">\n ${this.renderToggleButton(item, index)}\n ${this.renderNameField(item, index)}\n ${this.renderValueField(item, index)}\n ${this.renderDeleteParameter(index)}\n </div>\n `;\n }\n\n protected renderToggleButton(item: Property, index: number): TemplateResult {\n return html`\n <ui-switch \n .checked=\"${!!item.enabled}\" \n @change=\"${this.handleToggle}\" \n aria-label=\"Toggle this parameter\"\n data-index=\"${index}\"\n ></ui-switch>\n `;\n }\n\n protected renderDeleteParameter(index: number): TemplateResult {\n return html`\n <ui-icon-button aria-label=\"Delete this parameter\" data-index=\"${index}\" @click=\"${this.handleRemove}\">\n <ui-icon icon=\"deleteOutline\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderNameField(item: Property, index: number): TemplateResult {\n return html`\n <div class=\"input-wrapper name-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"name\"\n autocomplete=\"off\"\n .value=\"${live(item.name)}\" \n data-index=\"${index}\" \n ?readOnly=\"${this.readOnly}\" \n pattern=\"\\\\S*\" \n aria-label=\"Parameter name value\"\n @change=\"${this.handleNameChange}\"\n list=\"names-list\"\n />\n </div>\n `;\n }\n\n protected renderValueField(item: Property, index: number): TemplateResult {\n return html`\n <div class=\"input-wrapper value-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"value\"\n .value=\"${live(item.value as string)}\" \n data-index=\"${index}\" \n ?readOnly=\"${this.readOnly}\" \n aria-label=\"Parameter value\"\n @change=\"${this.handleValueChange}\"\n list=\"header-value-${index}\"\n />\n </div>\n `;\n }\n\n protected renderNamesList(): TemplateResult {\n return html`\n <datalist id=\"names-list\">\n ${nameSuggestions.map(i => html`<option value=\"${i}\">`)}\n </datalist>\n `;\n }\n\n protected renderAutocompleteLists(): TemplateResult[] {\n const { autocompleteMap } = this;\n return Object.keys(autocompleteMap).map(key => html`\n <datalist id=\"${key}\">\n ${autocompleteMap[key].map(i => html`<option value=\"${i}\">`)}\n </datalist>\n `)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HeadersForm.js","sourceRoot":"","sources":["../../../src/elements/http/HeadersForm.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport { html, PropertyValues, TemplateResult } from \"lit\";\nimport { Events as CoreEvents, Property, HeadersArray, HttpDefinitions, IProperty } from '@api-client/core/build/browser.js';\nimport { property, state } from \"lit/decorators.js\";\nimport { live } from \"lit/directives/live.js\";\nimport ApiElement from \"../ApiElement.js\";\nimport Input from \"../../ui/input/Input.js\";\nimport SwitchElement from \"../../ui/input/SwitchElement.js\";\nimport { EventTypes } from \"../../events/EventTypes.js\";\nimport { SnackNotifications } from \"../../ui/notification/SnackNotifications.js\";\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-switch.js';\nimport '../../define/ui/ui-divider.js';\nimport '../../define/ui/ui-icon.js';\n\nconst nameSuggestions = HttpDefinitions.queryRequestHeaders().map(item => item.key);\n\n/**\n * An editor that creates HTTP headers as a data model that can be translated into a headers string.\n */\nexport default class HeadersForm extends ApiElement {\n /**\n * When set the editor is in read only mode.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) readOnly = false;\n\n /**\n * Whether the text editor is rendered instead of the form.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) text = false;\n\n /**\n * The headers model.\n */\n @property({ type: Array }) model: IProperty[] = [];\n\n @state() protected internalModel = new HeadersArray();\n\n @state() protected textValue?: string;\n\n protected autocompleteMap: Record<string, string[]> = {};\n\n constructor() {\n super();\n this.handleGlobalContentType = this.handleGlobalContentType.bind(this);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.eventsTarget.addEventListener(EventTypes.Http.Request.State.contentTypeChange, this.handleGlobalContentType as EventListener);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.eventsTarget.removeEventListener(EventTypes.Http.Request.State.contentTypeChange, this.handleGlobalContentType as EventListener);\n }\n\n protected override update(cp: PropertyValues<this>): void {\n if (cp.has('model')) {\n if (this.model) {\n this.internalModel = HeadersArray.from(this.model);\n this.model.forEach((item, index) => this.setupValueAutocomplete(item.name, index));\n } else {\n this.internalModel = new HeadersArray();\n }\n }\n if (cp.has('text')) {\n if (this.text) {\n this.textValue = this.internalModel.toRawString();\n } else {\n this.textValue = undefined;\n }\n }\n \n super.update(cp);\n }\n\n protected setupHeaders(headers?: string): void {\n this.autocompleteMap = {};\n if (headers) {\n this.internalModel = HeadersArray.fromHeaders(headers);\n this.model = this.internalModel.toJSON();\n } else {\n this.internalModel = new HeadersArray();\n this.model = [];\n }\n this.requestUpdate();\n }\n\n /**\n * Updates header value. It the header does not exists at the position it adds a new header.\n * @param index The position at which the header is located\n * @param value Header value\n */\n updateHeaderValue(index: number, value: string): void;\n\n /**\n * Updates header value. It the header does not exists at the position it adds a new header.\n * @param name The name of the header to update.\n * @param value Header value\n */\n updateHeaderValue(name: string, value: string): void;\n\n /**\n * Updates header value. It the header does not exists at the position it adds a new header.\n * @param nameOrIndex Header name or index\n * @param value Header value\n */\n updateHeaderValue(nameOrIndex: string | number, value: string): void {\n const { internalModel } = this;\n let index: number;\n if (typeof nameOrIndex === 'number') {\n index = nameOrIndex;\n } else {\n const lowerName = nameOrIndex.toLowerCase();\n index = internalModel.findIndex((item) => (item.name || '').toLocaleLowerCase() === lowerName);\n }\n if (index === -1) {\n if (typeof nameOrIndex === 'string') {\n this.addHeader(nameOrIndex, value);\n } else {\n this.addHeader('', value);\n }\n this.propagateModelChange();\n return;\n }\n internalModel[index].value = value;\n this.model[index].value = value;\n if (this.text) {\n this.textValue = internalModel.toRawString();\n }\n this.propagateModelChange();\n this.requestUpdate();\n }\n\n /**\n * Updates header name. It the header does not exists at the position it adds a new header.\n * @param index The position at which the header is located\n * @param value The header name\n */\n updateHeaderName(index: number, value: string): void;\n\n /**\n * Updates header name. It the header does not exists at the position it adds a new header.\n * @param name The name of the header to update.\n * @param value The header name\n */\n updateHeaderName(name: string, value: string): void;\n\n /**\n * Updates header name. It the header does not exists at the position it adds a new header.\n * @param nameOrIndex The header name or index\n * @param value The header name\n */\n updateHeaderName(nameOrIndex: string | number, value: string): void {\n const { internalModel } = this;\n let index: number;\n if (typeof nameOrIndex === 'number') {\n index = nameOrIndex;\n } else {\n const lowerName = nameOrIndex.toLowerCase();\n index = internalModel.findIndex((item) => (item.name || '').toLocaleLowerCase() === lowerName);\n }\n if (index === -1) {\n this.addHeader(value);\n return;\n }\n internalModel[index].name = value;\n this.model[index].name = value;\n this.setupValueAutocomplete(value, index);\n if (this.text) {\n this.textValue = internalModel.toRawString();\n }\n this.propagateModelChange();\n this.requestUpdate();\n }\n\n protected setupValueAutocomplete(name: string, index: number): void {\n const query = name.toLowerCase();\n const items = HttpDefinitions.queryRequestHeaders(query);\n const item = items.find(i => i.key.toLowerCase() === query);\n if (item && item.autocomplete) {\n this.autocompleteMap[`header-value-${index}`] = item.autocomplete;\n } else {\n delete this.autocompleteMap[`header-value-${index}`];\n }\n }\n\n /**\n * Removes a header from the list.\n * @param name The name of the header to remove\n */\n removeHeader(name: string): void;\n\n /**\n * Removes a header from the list.\n * @param index The position of the header to remove\n */\n removeHeader(index: number): void\n\n /**\n * Removes a header from the list.\n * @param nameOrIndex Header name or its index.\n */\n removeHeader(nameOrIndex: string | number): void {\n const { internalModel } = this;\n let index: number;\n if (typeof nameOrIndex === 'number') {\n index = nameOrIndex;\n } else {\n const lowerName = nameOrIndex.toLowerCase();\n index = internalModel.findIndex((item) => (item.name || '').toLocaleLowerCase() === lowerName);\n }\n if (index < 0) {\n return;\n }\n internalModel.splice(index, 1);\n this.model.splice(index, 1);\n delete this.autocompleteMap[`header-value-${index}`];\n if (this.text) {\n this.textValue = internalModel.toRawString();\n }\n this.propagateModelChange();\n this.requestUpdate();\n }\n\n /**\n * Adds a header to the list of headers\n */\n addHeader(name = '', value = ''): void {\n const prop = Property.String(name, value);\n this.internalModel.push(prop);\n this.model.push(prop.toJSON());\n // the value hasn't actually changed here so no events\n this.requestUpdate();\n }\n\n /**\n * Removes all parameters.\n */\n clear(): void {\n this.model.splice(0);\n this.internalModel.splice(0);\n this.propagateModelChange();\n this.autocompleteMap = {};\n if (this.text) {\n this.textValue = '';\n }\n this.requestUpdate();\n }\n\n /**\n * Toggles enabled state of a header.\n */\n toggleHeader(index: number, enabled: boolean): void {\n this.model[index].enabled = enabled;\n this.internalModel[index].enabled = enabled;\n if (this.text) {\n this.textValue = this.internalModel.toRawString();\n }\n this.propagateModelChange();\n }\n\n /**\n * Toggles the state between form and text editors.\n */\n toggle(): void {\n this.text = !this.text;\n }\n\n async copyToClipboard(): Promise<void> {\n if (!navigator.clipboard) {\n throw new Error(`Clipboard API not supported.`);\n }\n await navigator.clipboard.writeText(this.internalModel.toString());\n SnackNotifications.notify('Headers copied to clipboard.', 2000);\n CoreEvents.Telemetry.event({\n category: 'Usage',\n action: 'Click',\n label: 'Headers editor clipboard copy',\n }, this);\n }\n\n /**\n * Dispatches the `change` event to notify about the value change\n */\n protected notifyChange(): void {\n this.dispatchEvent(new Event('change'))\n }\n\n protected handleGlobalContentType(e: CustomEvent): void {\n const { value } = e.detail;\n this.updateHeaderValue('content-type', value);\n }\n\n /**\n * Updates the `value` from the current model and dispatches the value change event\n */\n protected propagateModelChange(): void {\n this.notifyChange();\n }\n\n protected async focusLast(): Promise<void> {\n await this.updateComplete;\n const row = this.shadowRoot?.querySelector('.param-row:last-of-type');\n if (!row) {\n return;\n }\n try {\n const node = row.querySelector('.name-input input') as HTMLInputElement | undefined;\n if (node) {\n node.focus();\n }\n } catch (e) {\n // ...\n }\n }\n\n protected handleAdd(): void {\n this.addHeader();\n }\n\n protected handleOption(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement;\n const { option } = element.dataset;\n if (!option) {\n return;\n }\n if (option === 'clear') {\n this.clear();\n } else if (option === 'text-editor') {\n this.toggle();\n }\n }\n\n protected handleNameChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateHeaderName(index, input.value);\n input.checkValidity();\n }\n\n protected handleValueChange(e: Event): void {\n const input = e.target as Input;\n const index = Number(input.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.updateHeaderValue(index, input.value);\n input.checkValidity();\n }\n\n protected handleRemove(e: Event): void {\n const node = e.currentTarget as HTMLElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.removeHeader(index);\n }\n\n protected handleToggle(e: Event): void {\n const node = e.currentTarget as SwitchElement;\n const index = Number(node.dataset.index);\n if (Number.isNaN(index)) {\n return;\n }\n this.toggleHeader(index, node.checked);\n }\n\n protected handleText(e: Event): void {\n const input = e.target as HTMLTextAreaElement;\n const { value } = input;\n this.setupHeaders(value);\n this.textValue = value;\n this.notifyChange();\n }\n\n protected handleCopy(): void {\n this.copyToClipboard();\n }\n\n protected override render(): TemplateResult {\n return html`\n ${this.renderActionButtons()}\n ${this.renderEditor()}\n ${this.renderNamesList()}\n ${this.renderAutocompleteLists()}\n `;\n }\n\n protected renderActionButtons(): TemplateResult {\n return html`\n <div class=\"editor-actions\">\n <ui-button type=\"tonal\" @click=\"${this.handleAdd}\">Add</ui-button>\n <ui-button type=\"tonal\" @click=\"${this.handleCopy}\">Copy</ui-button>\n <ui-dropdown-list @select=\"${this.handleOption}\" closeOnOutsideClick class=\"dropdown\">\n <ui-icon-button aria-label=\"Additional options\"><ui-icon icon=\"moreVert\" role=\"presentation\"></ui-icon></ui-icon-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" data-option=\"text-editor\" image=\"icon\" title=\"Toggles between a text editor and a form\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"${this.text ? 'checkBox' : 'checkBoxBlank'}\"></ui-icon>\n Text editor\n </ui-list-item>\n <ui-divider type=\"inset\"></ui-divider>\n <ui-list-item role=\"menuitem\" data-option=\"clear\" image=\"icon\" title=\"Removes all parameters from the editor\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"deleteOutline\"></ui-icon>\n Clear form\n </ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n </div>\n `;\n }\n\n protected renderEditor(): TemplateResult {\n if (this.text) {\n return this.renderText();\n }\n return this.renderList();\n }\n\n protected renderText(): TemplateResult {\n const { textValue = '' } = this;\n return html`\n <div class=\"text-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <textarea \n .value=\"${live(textValue)}\"\n data-enable-grammarly=\"false\"\n @change=\"${this.handleText}\"\n ></textarea>\n </div>\n `;\n }\n\n protected renderList(): TemplateResult {\n const items = this.internalModel;\n if (!Array.isArray(items) || !items.length) {\n return this.renderEmptyMessage();\n }\n return this.renderParams(items);\n }\n\n protected renderEmptyMessage(): TemplateResult {\n return html`\n <div class=\"empty-message\">No parameters added</div>\n `;\n }\n\n protected renderParams(items: HeadersArray): TemplateResult {\n return html`\n ${items.map((item, index) => this.renderParam(item, index))}\n `;\n }\n\n protected renderParam(item: Property, index: number): TemplateResult {\n return html`\n <div class=\"param-row\">\n ${this.renderToggleButton(item, index)}\n ${this.renderNameField(item, index)}\n ${this.renderValueField(item, index)}\n ${this.renderDeleteParameter(index)}\n </div>\n `;\n }\n\n protected renderToggleButton(item: Property, index: number): TemplateResult {\n return html`\n <ui-switch \n .checked=\"${!!item.enabled}\" \n @change=\"${this.handleToggle}\" \n aria-label=\"Toggle this parameter\"\n data-index=\"${index}\"\n ></ui-switch>\n `;\n }\n\n protected renderDeleteParameter(index: number): TemplateResult {\n return html`\n <ui-icon-button aria-label=\"Delete this parameter\" data-index=\"${index}\" @click=\"${this.handleRemove}\">\n <ui-icon icon=\"deleteOutline\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n protected renderNameField(item: Property, index: number): TemplateResult {\n return html`\n <div class=\"input-wrapper name-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"name\"\n autocomplete=\"off\"\n .value=\"${live(item.name)}\" \n data-index=\"${index}\" \n ?readOnly=\"${this.readOnly}\" \n pattern=\"\\\\S*\" \n aria-label=\"Parameter name value\"\n @change=\"${this.handleNameChange}\"\n list=\"names-list\"\n />\n </div>\n `;\n }\n\n protected renderValueField(item: Property, index: number): TemplateResult {\n return html`\n <div class=\"input-wrapper value-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"value\"\n .value=\"${live(item.value as string)}\" \n data-index=\"${index}\" \n ?readOnly=\"${this.readOnly}\" \n aria-label=\"Parameter value\"\n @change=\"${this.handleValueChange}\"\n list=\"header-value-${index}\"\n />\n </div>\n `;\n }\n\n protected renderNamesList(): TemplateResult {\n return html`\n <datalist id=\"names-list\">\n ${nameSuggestions.map(i => html`<option value=\"${i}\">`)}\n </datalist>\n `;\n }\n\n protected renderAutocompleteLists(): TemplateResult[] {\n const { autocompleteMap } = this;\n return Object.keys(autocompleteMap).map(key => html`\n <datalist id=\"${key}\">\n ${autocompleteMap[key].map(i => html`<option value=\"${i}\">`)}\n </datalist>\n `)\n }\n}\n"]}
|
|
@@ -16,11 +16,14 @@ import '../../define/ui/ui-dialog.js';
|
|
|
16
16
|
* @fires change When the model change
|
|
17
17
|
*/
|
|
18
18
|
export default class HttpAssertions extends ApiElement {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
/**
|
|
22
|
+
* The list of assertions.
|
|
23
|
+
* This is a live list. All changes are propagated in the model.
|
|
24
|
+
*/
|
|
25
|
+
this.model = [];
|
|
26
|
+
}
|
|
24
27
|
/**
|
|
25
28
|
* Adds a new empty assertion to the model.
|
|
26
29
|
* Note, this function won't notify the parent element
|
|
@@ -98,7 +101,6 @@ export default class HttpAssertions extends ApiElement {
|
|
|
98
101
|
this.notifyChange();
|
|
99
102
|
this.requestUpdate();
|
|
100
103
|
}
|
|
101
|
-
draggedChip;
|
|
102
104
|
isValidDropTarget(dataTransfer) {
|
|
103
105
|
if (!dataTransfer) {
|
|
104
106
|
return false;
|