@api-client/ui 0.0.3 → 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/demo/amf/api-annotation.html +1 -0
- package/demo/amf/api-channel.html +1 -0
- package/demo/amf/api-console.html +1 -0
- package/demo/amf/api-documentation-document.html +1 -0
- package/demo/amf/api-documentation.html +1 -0
- package/demo/amf/api-editor.html +1 -0
- package/demo/amf/api-navigation.html +1 -0
- package/demo/amf/api-operation.html +1 -0
- package/demo/amf/api-payload.html +1 -0
- package/demo/amf/api-request.html +1 -0
- package/demo/amf/api-resource.html +1 -0
- package/demo/amf/api-schema-documentation.html +1 -0
- package/demo/amf/api-security-documentation.html +1 -0
- package/demo/amf/api-server-picker.html +1 -0
- package/demo/amf/api-summary.html +1 -0
- package/demo/amf/bare-components.html +2 -0
- package/demo/amf/index.html +2 -0
- package/demo/amf/oauth-authorize.html +2 -0
- package/demo/amf/request-editor.html +1 -0
- package/demo/elements/authorization/api-key.html +1 -0
- package/demo/elements/authorization/basic.html +1 -0
- package/demo/elements/authorization/bearer.html +1 -0
- package/demo/elements/authorization/cc.html +1 -0
- package/demo/elements/authorization/index.html +2 -0
- package/demo/elements/authorization/ntlm.html +1 -0
- package/demo/elements/authorization/oauth-error.html +2 -0
- package/demo/elements/authorization/oauth-popup.html +2 -0
- package/demo/elements/authorization/oauth2.html +1 -0
- package/demo/elements/authorization/oidc.html +1 -0
- package/demo/elements/authorization/redirect.html +3 -1
- package/demo/elements/context-menu/basic.html +2 -1
- package/demo/elements/context-menu/custom-data.html +2 -1
- package/demo/elements/context-menu/enabled-state.html +2 -1
- package/demo/elements/context-menu/icons.html +2 -1
- package/demo/elements/context-menu/index.html +2 -0
- package/demo/elements/context-menu/nested.html +2 -1
- package/demo/elements/context-menu/no-execute.html +2 -1
- package/demo/elements/context-menu/radio-menu.html +2 -1
- package/demo/elements/context-menu/separators.html +2 -1
- package/demo/elements/environment/environment-editor.html +1 -0
- package/demo/elements/environment/index.html +1 -0
- package/demo/elements/environment/server-editor.html +1 -1
- package/demo/elements/environment/variables-editor.html +1 -1
- package/demo/elements/har/har-viewer.html +1 -0
- package/demo/elements/highlight/index.html +1 -0
- package/demo/elements/highlight/marked-highlight.html +1 -0
- package/demo/elements/highlight/prism-highlight.html +1 -0
- package/demo/elements/http/body-editor.html +1 -0
- package/demo/elements/http/headers.html +1 -0
- package/demo/elements/http/http-assertions.html +1 -0
- package/demo/elements/http/request-editor.html +1 -0
- package/demo/elements/http/request-log.html +1 -0
- package/demo/elements/http/url-editing.html +1 -0
- package/demo/elements/icons/index.html +1 -0
- package/demo/elements/project/project-run-report.html +1 -0
- package/demo/elements/project/request-editor.html +1 -0
- package/demo/elements/ui/buttons/api-button.html +2 -1
- package/demo/elements/ui/buttons/api-icon-button.html +2 -1
- package/demo/elements/ui/buttons/segmented-buttons.html +2 -1
- package/demo/elements/ui/chip/api-chip.html +2 -1
- package/demo/elements/ui/collapse/ui-collapse.html +2 -1
- package/demo/elements/ui/dialog/ui-dialog.html +2 -1
- package/demo/elements/ui/inputs/api-checkbox.html +2 -1
- package/demo/elements/ui/inputs/api-input.html +2 -1
- package/demo/elements/ui/inputs/api-radio.html +2 -1
- package/demo/elements/ui/inputs/api-switch.html +2 -1
- package/demo/elements/ui/list/dropdown-list.html +2 -1
- package/demo/elements/ui/list/list.html +2 -1
- package/demo/elements/ui/notification/snack.html +2 -1
- package/demo/elements/ui/progress/ui-progress.html +2 -1
- package/demo/elements/ui/tabs/tabs.html +2 -1
- 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.d.ts.map +1 -1
- package/dist/pages/demo/DemoPage.js +25 -24
- 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.d.ts +1 -1
- package/dist/ui/dialog/UiDialog.d.ts.map +1 -1
- package/dist/ui/dialog/UiDialog.js +19 -41
- 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/src/pages/demo/DemoPage.ts +12 -11
- package/src/ui/dialog/UiDialog.ts +6 -4
- package/test/ui/dialog/UiDialog.test.ts +236 -0
- package/tsconfig.json +2 -2
- package/demo/themes/default.css +0 -0
- package/demo/themes/m3/theme.dark.css +0 -40
- package/demo/themes/m3/theme.light.css +0 -40
- package/demo/themes/m3/tokens.css +0 -291
|
@@ -10,8 +10,6 @@ import '../../define/amf/authorization/amf-ramlcustom-authorization.js';
|
|
|
10
10
|
import '../../define/amf/authorization/amf-oauth2-authorization.js';
|
|
11
11
|
import '../../define/amf/authorization/amf-oidc-authorization.js';
|
|
12
12
|
export default class ApiAuthorizationEditor extends ApiElement {
|
|
13
|
-
securityInternal;
|
|
14
|
-
methodsInternal;
|
|
15
13
|
get security() {
|
|
16
14
|
return this.securityInternal;
|
|
17
15
|
}
|
|
@@ -27,36 +25,6 @@ export default class ApiAuthorizationEditor extends ApiElement {
|
|
|
27
25
|
get methods() {
|
|
28
26
|
return this.methodsInternal;
|
|
29
27
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Whether or not the element is invalid. The validation state changes
|
|
32
|
-
* when settings change or when the `validate()` function is called.
|
|
33
|
-
* @attribute
|
|
34
|
-
*/
|
|
35
|
-
invalid;
|
|
36
|
-
/**
|
|
37
|
-
* List of credentials source
|
|
38
|
-
*/
|
|
39
|
-
credentialsSource;
|
|
40
|
-
/**
|
|
41
|
-
* Redirect URL for the OAuth2 authorization.
|
|
42
|
-
* @attribute
|
|
43
|
-
*/
|
|
44
|
-
oauth2RedirectUri;
|
|
45
|
-
/**
|
|
46
|
-
* When set it overrides the `authorizationUri` in the authorization editor,
|
|
47
|
-
* regardless to the authorization scheme applied to the request.
|
|
48
|
-
* This is to be used with the mocking service.
|
|
49
|
-
* @attribute
|
|
50
|
-
*/
|
|
51
|
-
oauth2AuthorizationUri;
|
|
52
|
-
/**
|
|
53
|
-
* When set it overrides the `authorizationUri` in the authorization editor,
|
|
54
|
-
* regardless to the authorization scheme applied to the request.
|
|
55
|
-
* This is to be used with the mocking service.
|
|
56
|
-
* @attribute
|
|
57
|
-
*/
|
|
58
|
-
oauth2AccessTokenUri;
|
|
59
|
-
editors;
|
|
60
28
|
/**
|
|
61
29
|
* Reads list of authorization methods from the model.
|
|
62
30
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiAuthorizationEditor.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiAuthorizationEditor.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit';\nimport { property, queryAll } from 'lit/decorators.js';\nimport { ApiDefinitions, IRequestAuthorization } from '@api-client/core/build/browser.js';\nimport { Oauth2Credentials } from '../authorization/types.js';\nimport ApiElement from '../ApiElement.js';\nimport { Authorization } from '../authorization/ui/Authorization.js';\nimport '../../define/amf/authorization/amf-basic-authorization.js';\nimport '../../define/amf/authorization/amf-passthrough-authorization.js';\nimport '../../define/amf/authorization/amf-bearer-authorization.js';\nimport '../../define/amf/authorization/amf-apikey-authorization.js';\nimport '../../define/amf/authorization/amf-ramlcustom-authorization.js';\nimport '../../define/amf/authorization/amf-oauth2-authorization.js';\nimport '../../define/amf/authorization/amf-oidc-authorization.js';\n\nexport interface SecurityMethods {\n types: string[];\n schemes: ApiDefinitions.IApiParametrizedSecurityScheme[];\n}\n\nexport default class ApiAuthorizationEditor extends ApiElement {\n protected securityInternal: ApiDefinitions.IApiSecurityRequirement | undefined;\n\n protected methodsInternal?: SecurityMethods;\n\n get security(): ApiDefinitions.IApiSecurityRequirement | undefined {\n return this.securityInternal;\n }\n\n set security(value: ApiDefinitions.IApiSecurityRequirement | undefined) {\n const old = this.securityInternal;\n if (old === value) {\n return;\n }\n this.securityInternal = value;\n this.processModel();\n this.requestUpdate();\n }\n\n get methods(): SecurityMethods | undefined {\n return this.methodsInternal;\n }\n\n /**\n * Whether or not the element is invalid. The validation state changes\n * when settings change or when the `validate()` function is called.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) invalid?: boolean;\n\n /**\n * List of credentials source\n */\n @property({ type: Array }) credentialsSource?: Oauth2Credentials[];\n\n /**\n * Redirect URL for the OAuth2 authorization.\n * @attribute\n */\n @property({ type: String }) oauth2RedirectUri?: string;\n\n /** \n * When set it overrides the `authorizationUri` in the authorization editor,\n * regardless to the authorization scheme applied to the request.\n * This is to be used with the mocking service.\n * @attribute\n */\n @property({ type: String }) oauth2AuthorizationUri?: string;\n\n /** \n * When set it overrides the `authorizationUri` in the authorization editor,\n * regardless to the authorization scheme applied to the request.\n * This is to be used with the mocking service.\n * @attribute\n */\n @property({ type: String }) oauth2AccessTokenUri?: string;\n\n @queryAll('.auth-editor') readonly editors!: NodeListOf<Authorization>;\n\n /**\n * Reads list of authorization methods from the model.\n */\n protected processModel(): void {\n const security = this.securityInternal;\n if (!security) {\n return;\n }\n this.methodsInternal = this.computeMethods(security.schemes);\n }\n\n /**\n * Computes list of security schemes that can be applied to the element.\n *\n * @param schemes A list of security schemes to process.\n * @returns A list of authorization methods that can be applied to\n * the current endpoint. Each object describes the list of security types\n * that can be applied to the editor. In OAS an auth method may be an union\n * of methods.\n */\n protected computeMethods(schemes: ApiDefinitions.IApiParametrizedSecurityScheme[]): SecurityMethods {\n const result: SecurityMethods = {\n types: [],\n schemes: [],\n };\n schemes.forEach((security) => {\n const type = this.listSchemeLabels(security);\n if (!type) {\n return;\n }\n result.types.push(type);\n result.schemes.push(security);\n });\n return result;\n }\n\n /**\n * Reads authorization scheme's name and type from the AMF model.\n */\n protected listSchemeLabels(security: ApiDefinitions.IApiParametrizedSecurityScheme): string | undefined {\n const { name, scheme } = security;\n if (name === 'null') {\n // RAML allows to define a \"null\" scheme. This means that the authorization\n // for this endpoint is optional.\n return 'No authorization';\n }\n if (!scheme) {\n return undefined;\n }\n let { type } = scheme;\n if (type === 'http') {\n // HTTP type can be `basic` or `bearer`.\n const config = scheme.settings as ApiDefinitions.IApiSecurityHttpSettings;\n if (!config) {\n // this happens when AMF doesn't properly read graph model back to the store.\n // AMF team promised to fix this...\n type = undefined;\n } else {\n type = config.scheme;\n }\n }\n return type;\n }\n\n /**\n * A function called each time anything change in the editor.\n * Revalidates the component and dispatches the `change` event.\n */\n protected changeHandler(): void {\n this.validate();\n this.dispatchEvent(new Event('change'));\n }\n\n /**\n * Validates state of the editor. It sets `invalid` property when called.\n *\n * Exception: OAuth 2 form reports valid even when the `accessToken` is not\n * set. This adjust for this and reports invalid when `accessToken` for OAuth 2\n * is missing.\n *\n * @returns True when the form has valid data.\n */\n validate(): boolean {\n const { editors } = this;\n let valid = true;\n for (let i = 0, len = editors.length; i < len; i++) {\n const node = editors[i];\n const methodValid = node.checkValidity();\n if (!methodValid) {\n valid = methodValid;\n break;\n }\n // if (['amf-oauth2-authorization', 'amf-oidc-authorization'].includes(node.localName)) {\n // const oauth = node as OAuth2Authorization;\n // const { config } = oauth;\n // if (!config.accessToken) {\n // valid = false;\n // break;\n // }\n // }\n }\n this.invalid = !valid;\n return valid;\n }\n\n /**\n * Creates a list of configuration by calling the `serialize()` function on each\n * currently rendered authorization form.\n *\n * @returns List of authorization settings.\n */\n serialize(): IRequestAuthorization[] {\n const { editors } = this;\n return Array.from(editors).map((editor) => {\n const auth = editor.authorization as IRequestAuthorization;\n auth.valid = editor.checkValidity();\n return auth;\n });\n }\n\n /**\n * Calls the `authorize()` function on each rendered authorization methods.\n * Currently only `OAuth 1.0` and `OAuth 2.0` actually perform the authorization. \n * \n * Each method is called in order to make sure the user is not overwhelmed with \n * dialogs or other UI elements.\n * \n * The function rejects when at least one authorization method rejects.\n */\n async authorize(): Promise<void> {\n const { editors } = this;\n const list = Array.from(editors);\n while (list.length) {\n const auth = list.shift();\n if (!auth) {\n break;\n }\n // eslint-disable-next-line no-await-in-loop\n await auth.authorize();\n }\n }\n\n override render(): TemplateResult {\n const methods = this.methodsInternal;\n if (!methods || !methods.schemes.length) {\n return html``;\n }\n return html`\n <section class=\"authorization-union\">\n ${methods.schemes.map((scheme, index) => this.methodTemplate(scheme, methods.types[index]))}\n </section>\n `;\n }\n\n protected methodTemplate(scheme: ApiDefinitions.IApiParametrizedSecurityScheme, type: string): TemplateResult | string {\n switch (type) {\n case 'Basic Authentication':\n case 'basic':\n return this.basicAuthTemplate(scheme);\n case 'Digest Authentication':\n return this.digestAuthTemplate();\n case 'Pass Through':\n return this.passThroughAuthTemplate(scheme);\n case 'OAuth 2.0':\n return this.oa2AuthTemplate(scheme);\n case 'OAuth 1.0':\n return this.oa1AuthTemplate();\n case 'bearer':\n return this.bearerAuthTemplate(scheme);\n case 'Api Key':\n return this.apiKeyTemplate(scheme);\n case 'openIdConnect':\n return this.openIdConnectTemplate(scheme);\n default:\n if (String(type).indexOf('x-') === 0) {\n return this.ramlCustomAuthTemplate(scheme);\n }\n }\n return '';\n }\n\n /**\n * Renders a template for Basic authorization.\n */\n protected basicAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-basic-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-basic-authorization>`;\n }\n\n /**\n * Renders a template for Digest authorization.\n */\n protected digestAuthTemplate(): TemplateResult {\n return html`\n <p class=\"no-support digest\">The Digest authorization is not longer supported.</p>\n `;\n }\n\n /**\n * Renders a template for Pass through authorization.\n */\n protected passThroughAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-passthrough-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-passthrough-authorization>`;\n }\n\n /**\n * Renders a template for RAML custom authorization.\n */\n protected ramlCustomAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`<amf-ramlcustom-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-ramlcustom-authorization>`;\n }\n\n /**\n * Renders a template for Bearer authorization (OAS).\n */\n protected bearerAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-bearer-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-bearer-authorization>`;\n }\n\n /**\n * Renders a template for OAuth 1 authorization.\n */\n protected oa1AuthTemplate(): TemplateResult {\n return html`\n <p class=\"no-support oauth1\">The OAuth1 authorization is not longer supported.</p>\n `;\n }\n\n /**\n * Renders a template for OAuth 2 authorization.\n */\n protected oa2AuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n const {\n oauth2RedirectUri,\n credentialsSource,\n oauth2AuthorizationUri,\n oauth2AccessTokenUri,\n } = this;\n return html`\n <amf-oauth2-authorization\n .defaultRedirectUri=\"${oauth2RedirectUri}\"\n .overrideAuthorizationUri=\"${oauth2AuthorizationUri}\"\n .overrideAccessTokenUri=\"${oauth2AccessTokenUri}\"\n .security=\"${security}\"\n .credentialsSource=\"${credentialsSource}\"\n @change=\"${this.changeHandler}\"\n class=\"auth-editor\"\n ></amf-oauth2-authorization>`;\n }\n\n /**\n * Renders a template for OAuth 2 authorization.\n */\n protected openIdConnectTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n const {\n oauth2RedirectUri,\n credentialsSource,\n } = this;\n return html`\n <amf-oidc-authorization\n .defaultRedirectUri=\"${oauth2RedirectUri}\"\n .security=\"${security}\"\n .credentialsSource=\"${credentialsSource}\"\n @change=\"${this.changeHandler}\"\n class=\"auth-editor\"\n ></amf-oidc-authorization>`;\n }\n\n /**\n * Renders a template for Api Keys authorization.\n */\n protected apiKeyTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-apikey-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-apikey-authorization>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ApiAuthorizationEditor.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiAuthorizationEditor.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit';\nimport { property, queryAll } from 'lit/decorators.js';\nimport { ApiDefinitions, IRequestAuthorization } from '@api-client/core/build/browser.js';\nimport { Oauth2Credentials } from '../authorization/types.js';\nimport ApiElement from '../ApiElement.js';\nimport { Authorization } from '../authorization/ui/Authorization.js';\nimport '../../define/amf/authorization/amf-basic-authorization.js';\nimport '../../define/amf/authorization/amf-passthrough-authorization.js';\nimport '../../define/amf/authorization/amf-bearer-authorization.js';\nimport '../../define/amf/authorization/amf-apikey-authorization.js';\nimport '../../define/amf/authorization/amf-ramlcustom-authorization.js';\nimport '../../define/amf/authorization/amf-oauth2-authorization.js';\nimport '../../define/amf/authorization/amf-oidc-authorization.js';\n\nexport interface SecurityMethods {\n types: string[];\n schemes: ApiDefinitions.IApiParametrizedSecurityScheme[];\n}\n\nexport default class ApiAuthorizationEditor extends ApiElement {\n protected securityInternal: ApiDefinitions.IApiSecurityRequirement | undefined;\n\n protected methodsInternal?: SecurityMethods;\n\n get security(): ApiDefinitions.IApiSecurityRequirement | undefined {\n return this.securityInternal;\n }\n\n set security(value: ApiDefinitions.IApiSecurityRequirement | undefined) {\n const old = this.securityInternal;\n if (old === value) {\n return;\n }\n this.securityInternal = value;\n this.processModel();\n this.requestUpdate();\n }\n\n get methods(): SecurityMethods | undefined {\n return this.methodsInternal;\n }\n\n /**\n * Whether or not the element is invalid. The validation state changes\n * when settings change or when the `validate()` function is called.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) invalid?: boolean;\n\n /**\n * List of credentials source\n */\n @property({ type: Array }) credentialsSource?: Oauth2Credentials[];\n\n /**\n * Redirect URL for the OAuth2 authorization.\n * @attribute\n */\n @property({ type: String }) oauth2RedirectUri?: string;\n\n /** \n * When set it overrides the `authorizationUri` in the authorization editor,\n * regardless to the authorization scheme applied to the request.\n * This is to be used with the mocking service.\n * @attribute\n */\n @property({ type: String }) oauth2AuthorizationUri?: string;\n\n /** \n * When set it overrides the `authorizationUri` in the authorization editor,\n * regardless to the authorization scheme applied to the request.\n * This is to be used with the mocking service.\n * @attribute\n */\n @property({ type: String }) oauth2AccessTokenUri?: string;\n\n @queryAll('.auth-editor') readonly editors!: NodeListOf<Authorization>;\n\n /**\n * Reads list of authorization methods from the model.\n */\n protected processModel(): void {\n const security = this.securityInternal;\n if (!security) {\n return;\n }\n this.methodsInternal = this.computeMethods(security.schemes);\n }\n\n /**\n * Computes list of security schemes that can be applied to the element.\n *\n * @param schemes A list of security schemes to process.\n * @returns A list of authorization methods that can be applied to\n * the current endpoint. Each object describes the list of security types\n * that can be applied to the editor. In OAS an auth method may be an union\n * of methods.\n */\n protected computeMethods(schemes: ApiDefinitions.IApiParametrizedSecurityScheme[]): SecurityMethods {\n const result: SecurityMethods = {\n types: [],\n schemes: [],\n };\n schemes.forEach((security) => {\n const type = this.listSchemeLabels(security);\n if (!type) {\n return;\n }\n result.types.push(type);\n result.schemes.push(security);\n });\n return result;\n }\n\n /**\n * Reads authorization scheme's name and type from the AMF model.\n */\n protected listSchemeLabels(security: ApiDefinitions.IApiParametrizedSecurityScheme): string | undefined {\n const { name, scheme } = security;\n if (name === 'null') {\n // RAML allows to define a \"null\" scheme. This means that the authorization\n // for this endpoint is optional.\n return 'No authorization';\n }\n if (!scheme) {\n return undefined;\n }\n let { type } = scheme;\n if (type === 'http') {\n // HTTP type can be `basic` or `bearer`.\n const config = scheme.settings as ApiDefinitions.IApiSecurityHttpSettings;\n if (!config) {\n // this happens when AMF doesn't properly read graph model back to the store.\n // AMF team promised to fix this...\n type = undefined;\n } else {\n type = config.scheme;\n }\n }\n return type;\n }\n\n /**\n * A function called each time anything change in the editor.\n * Revalidates the component and dispatches the `change` event.\n */\n protected changeHandler(): void {\n this.validate();\n this.dispatchEvent(new Event('change'));\n }\n\n /**\n * Validates state of the editor. It sets `invalid` property when called.\n *\n * Exception: OAuth 2 form reports valid even when the `accessToken` is not\n * set. This adjust for this and reports invalid when `accessToken` for OAuth 2\n * is missing.\n *\n * @returns True when the form has valid data.\n */\n validate(): boolean {\n const { editors } = this;\n let valid = true;\n for (let i = 0, len = editors.length; i < len; i++) {\n const node = editors[i];\n const methodValid = node.checkValidity();\n if (!methodValid) {\n valid = methodValid;\n break;\n }\n // if (['amf-oauth2-authorization', 'amf-oidc-authorization'].includes(node.localName)) {\n // const oauth = node as OAuth2Authorization;\n // const { config } = oauth;\n // if (!config.accessToken) {\n // valid = false;\n // break;\n // }\n // }\n }\n this.invalid = !valid;\n return valid;\n }\n\n /**\n * Creates a list of configuration by calling the `serialize()` function on each\n * currently rendered authorization form.\n *\n * @returns List of authorization settings.\n */\n serialize(): IRequestAuthorization[] {\n const { editors } = this;\n return Array.from(editors).map((editor) => {\n const auth = editor.authorization as IRequestAuthorization;\n auth.valid = editor.checkValidity();\n return auth;\n });\n }\n\n /**\n * Calls the `authorize()` function on each rendered authorization methods.\n * Currently only `OAuth 1.0` and `OAuth 2.0` actually perform the authorization. \n * \n * Each method is called in order to make sure the user is not overwhelmed with \n * dialogs or other UI elements.\n * \n * The function rejects when at least one authorization method rejects.\n */\n async authorize(): Promise<void> {\n const { editors } = this;\n const list = Array.from(editors);\n while (list.length) {\n const auth = list.shift();\n if (!auth) {\n break;\n }\n // eslint-disable-next-line no-await-in-loop\n await auth.authorize();\n }\n }\n\n override render(): TemplateResult {\n const methods = this.methodsInternal;\n if (!methods || !methods.schemes.length) {\n return html``;\n }\n return html`\n <section class=\"authorization-union\">\n ${methods.schemes.map((scheme, index) => this.methodTemplate(scheme, methods.types[index]))}\n </section>\n `;\n }\n\n protected methodTemplate(scheme: ApiDefinitions.IApiParametrizedSecurityScheme, type: string): TemplateResult | string {\n switch (type) {\n case 'Basic Authentication':\n case 'basic':\n return this.basicAuthTemplate(scheme);\n case 'Digest Authentication':\n return this.digestAuthTemplate();\n case 'Pass Through':\n return this.passThroughAuthTemplate(scheme);\n case 'OAuth 2.0':\n return this.oa2AuthTemplate(scheme);\n case 'OAuth 1.0':\n return this.oa1AuthTemplate();\n case 'bearer':\n return this.bearerAuthTemplate(scheme);\n case 'Api Key':\n return this.apiKeyTemplate(scheme);\n case 'openIdConnect':\n return this.openIdConnectTemplate(scheme);\n default:\n if (String(type).indexOf('x-') === 0) {\n return this.ramlCustomAuthTemplate(scheme);\n }\n }\n return '';\n }\n\n /**\n * Renders a template for Basic authorization.\n */\n protected basicAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-basic-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-basic-authorization>`;\n }\n\n /**\n * Renders a template for Digest authorization.\n */\n protected digestAuthTemplate(): TemplateResult {\n return html`\n <p class=\"no-support digest\">The Digest authorization is not longer supported.</p>\n `;\n }\n\n /**\n * Renders a template for Pass through authorization.\n */\n protected passThroughAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-passthrough-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-passthrough-authorization>`;\n }\n\n /**\n * Renders a template for RAML custom authorization.\n */\n protected ramlCustomAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`<amf-ramlcustom-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-ramlcustom-authorization>`;\n }\n\n /**\n * Renders a template for Bearer authorization (OAS).\n */\n protected bearerAuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-bearer-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-bearer-authorization>`;\n }\n\n /**\n * Renders a template for OAuth 1 authorization.\n */\n protected oa1AuthTemplate(): TemplateResult {\n return html`\n <p class=\"no-support oauth1\">The OAuth1 authorization is not longer supported.</p>\n `;\n }\n\n /**\n * Renders a template for OAuth 2 authorization.\n */\n protected oa2AuthTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n const {\n oauth2RedirectUri,\n credentialsSource,\n oauth2AuthorizationUri,\n oauth2AccessTokenUri,\n } = this;\n return html`\n <amf-oauth2-authorization\n .defaultRedirectUri=\"${oauth2RedirectUri}\"\n .overrideAuthorizationUri=\"${oauth2AuthorizationUri}\"\n .overrideAccessTokenUri=\"${oauth2AccessTokenUri}\"\n .security=\"${security}\"\n .credentialsSource=\"${credentialsSource}\"\n @change=\"${this.changeHandler}\"\n class=\"auth-editor\"\n ></amf-oauth2-authorization>`;\n }\n\n /**\n * Renders a template for OAuth 2 authorization.\n */\n protected openIdConnectTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n const {\n oauth2RedirectUri,\n credentialsSource,\n } = this;\n return html`\n <amf-oidc-authorization\n .defaultRedirectUri=\"${oauth2RedirectUri}\"\n .security=\"${security}\"\n .credentialsSource=\"${credentialsSource}\"\n @change=\"${this.changeHandler}\"\n class=\"auth-editor\"\n ></amf-oidc-authorization>`;\n }\n\n /**\n * Renders a template for Api Keys authorization.\n */\n protected apiKeyTemplate(security: ApiDefinitions.IApiParametrizedSecurityScheme): TemplateResult {\n return html`\n <amf-apikey-authorization .security=\"${security}\" @change=\"${this.changeHandler}\" class=\"auth-editor\"></amf-apikey-authorization>\n `;\n }\n}\n"]}
|
|
@@ -19,97 +19,6 @@ import '../../define/ui/ui-radio.js';
|
|
|
19
19
|
* This element works with the [AMF](https://github.com/mulesoft/amf) data model.
|
|
20
20
|
*/
|
|
21
21
|
export default class ApiDocumentation extends ApiDocumentationBase {
|
|
22
|
-
domainTypeValue;
|
|
23
|
-
operationIdValue;
|
|
24
|
-
handleNavigationEventsValue;
|
|
25
|
-
renderedViewValue;
|
|
26
|
-
apiSummaryValue;
|
|
27
|
-
documentMetaValue;
|
|
28
|
-
navEventsRegistered;
|
|
29
|
-
/**
|
|
30
|
-
* A property to set to override AMF's model base URI information.
|
|
31
|
-
* @attribute
|
|
32
|
-
*/
|
|
33
|
-
baseUri;
|
|
34
|
-
/**
|
|
35
|
-
* When set it renders the "try it" button that dispatches the `tryit` event.
|
|
36
|
-
* @attribute
|
|
37
|
-
*/
|
|
38
|
-
tryItButton;
|
|
39
|
-
/**
|
|
40
|
-
* When set it renders the "try it" panel next to the operation documentation.
|
|
41
|
-
* Setting this automatically disables the `tryItButton` property.
|
|
42
|
-
*
|
|
43
|
-
* Note, use this only when there's enough space on the screen to render 2 panels side-by-side.
|
|
44
|
-
* @attribute
|
|
45
|
-
*/
|
|
46
|
-
tryItPanel;
|
|
47
|
-
/**
|
|
48
|
-
* OAuth2 redirect URI.
|
|
49
|
-
* This value **must** be set in order for OAuth 1/2 to work properly.
|
|
50
|
-
* This is only required in inline mode (`inlineMethods`).
|
|
51
|
-
* @attribute
|
|
52
|
-
*/
|
|
53
|
-
redirectUri;
|
|
54
|
-
/**
|
|
55
|
-
* When set it renders the URL input above the URL parameters in the HTTP editor.
|
|
56
|
-
* @attribute
|
|
57
|
-
*/
|
|
58
|
-
httpUrlEditor;
|
|
59
|
-
/**
|
|
60
|
-
* When set it applies the authorization values to the request dispatched
|
|
61
|
-
* with the API request event.
|
|
62
|
-
* If possible, it applies the authorization values to query parameter or headers
|
|
63
|
-
* depending on the configuration.
|
|
64
|
-
*
|
|
65
|
-
* When the values arr applied to the request the authorization config is kept in the
|
|
66
|
-
* request object, but its `enabled` state is always `false`, meaning other potential
|
|
67
|
-
* processors should ignore this values.
|
|
68
|
-
*
|
|
69
|
-
* If this property is not set then the application hosting this component should
|
|
70
|
-
* process the authorization data and apply them to the request.
|
|
71
|
-
* @attribute
|
|
72
|
-
*/
|
|
73
|
-
httpApplyAuthorization;
|
|
74
|
-
/**
|
|
75
|
-
* List of credentials source passed to the HTTP editor
|
|
76
|
-
*/
|
|
77
|
-
httpCredentialsSource;
|
|
78
|
-
/**
|
|
79
|
-
* Optional property to set on the request editor.
|
|
80
|
-
* When true, the server selector is not rendered
|
|
81
|
-
* @attribute
|
|
82
|
-
*/
|
|
83
|
-
noServerSelector;
|
|
84
|
-
/**
|
|
85
|
-
* When set it renders "add custom" item button in the HTTP request editor.
|
|
86
|
-
* If the element is to be used without AMF model this should always
|
|
87
|
-
* be enabled. Otherwise users won't be able to add a parameter.
|
|
88
|
-
* @attribute
|
|
89
|
-
*/
|
|
90
|
-
httpAllowCustom;
|
|
91
|
-
/**
|
|
92
|
-
* Optional property to set on the request editor.
|
|
93
|
-
* If true, the server selector custom base URI option is rendered
|
|
94
|
-
* @attribute
|
|
95
|
-
*/
|
|
96
|
-
allowCustomBaseUri;
|
|
97
|
-
/**
|
|
98
|
-
* The URI of the server currently selected in the server selector
|
|
99
|
-
* @attribute
|
|
100
|
-
*/
|
|
101
|
-
serverValue;
|
|
102
|
-
/**
|
|
103
|
-
* The type of the server currently selected in the server selector
|
|
104
|
-
* @attribute
|
|
105
|
-
*/
|
|
106
|
-
serverType;
|
|
107
|
-
/**
|
|
108
|
-
* The mime type of the currently selected schema.
|
|
109
|
-
* @attribute
|
|
110
|
-
*/
|
|
111
|
-
schemaMimeType;
|
|
112
|
-
serversCount;
|
|
113
22
|
/**
|
|
114
23
|
* The type of the selected domain item.
|
|
115
24
|
* @attribute
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiDocumentation.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiDocumentation.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ApiDefinitions, AmfNamespace } from '@api-client/core/build/browser.js';\nimport { ApiDocumentationBase } from './ApiDocumentationBase.js';\nimport { EventTypes } from '../../events/amf/EventTypes.js';\nimport { Events } from '../../events/amf/Events.js';\nimport { ServerChangeEvent, ServerCountChangeEvent } from '../../events/amf/ServerEvents.js';\nimport { ApiNavigationEvent } from '../../events/amf/NavigationEvents.js';\nimport { SelectionType, DocumentMeta, ServerType } from '../../amf/types.js';\nimport { Oauth2Credentials } from '../authorization/types.js';\nimport '../../define/amf/api-summary.js'\nimport '../../define/amf/api-operation-document.js'\nimport '../../define/amf/api-resource-document.js';\nimport '../../define/amf/api-security-document.js';\nimport '../../define/amf/api-documentation-document.js';\nimport '../../define/amf/api-schema-document.js';\nimport '../../define/amf/api-server-picker.js';\nimport '../../define/ui/ui-radio.js';\nimport RadioElement from '../../ui/input/RadioElement.js';\n/**\n * A main documentation view for an AMF model representing a sync or an async API.\n * \n * This element works with the [AMF](https://github.com/mulesoft/amf) data model.\n */\nexport default class ApiDocumentation extends ApiDocumentationBase {\n protected domainTypeValue: SelectionType | undefined;\n\n protected operationIdValue: string | undefined;\n\n protected handleNavigationEventsValue: boolean | undefined;\n\n protected renderedViewValue: string | undefined;\n\n protected apiSummaryValue?: ApiDefinitions.IApiSummary;\n\n protected documentMetaValue?: DocumentMeta;\n\n protected navEventsRegistered: boolean;\n\n /**\n * A property to set to override AMF's model base URI information.\n * @attribute\n */\n @property({ type: String }) baseUri?: string;\n\n /** \n * When set it renders the \"try it\" button that dispatches the `tryit` event.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) tryItButton?: boolean;\n\n /** \n * When set it renders the \"try it\" panel next to the operation documentation.\n * Setting this automatically disables the `tryItButton` property.\n * \n * Note, use this only when there's enough space on the screen to render 2 panels side-by-side.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) tryItPanel?: boolean;\n\n /**\n * OAuth2 redirect URI.\n * This value **must** be set in order for OAuth 1/2 to work properly.\n * This is only required in inline mode (`inlineMethods`).\n * @attribute\n */\n @property({ type: String }) redirectUri?: string;\n\n /** \n * When set it renders the URL input above the URL parameters in the HTTP editor.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) httpUrlEditor?: boolean;\n\n /** \n * When set it applies the authorization values to the request dispatched\n * with the API request event.\n * If possible, it applies the authorization values to query parameter or headers\n * depending on the configuration.\n * \n * When the values arr applied to the request the authorization config is kept in the\n * request object, but its `enabled` state is always `false`, meaning other potential\n * processors should ignore this values.\n * \n * If this property is not set then the application hosting this component should\n * process the authorization data and apply them to the request.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) httpApplyAuthorization?: boolean;\n\n /**\n * List of credentials source passed to the HTTP editor\n */\n @property({ type: Array }) httpCredentialsSource?: Oauth2Credentials[];\n\n /**\n * Optional property to set on the request editor. \n * When true, the server selector is not rendered\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) noServerSelector?: boolean;\n\n /**\n * When set it renders \"add custom\" item button in the HTTP request editor.\n * If the element is to be used without AMF model this should always\n * be enabled. Otherwise users won't be able to add a parameter.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) httpAllowCustom?: boolean;\n\n /**\n * Optional property to set on the request editor. \n * If true, the server selector custom base URI option is rendered\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) allowCustomBaseUri?: boolean;\n\n /**\n * The URI of the server currently selected in the server selector\n * @attribute\n */\n @property({ type: String }) serverValue?: string;\n\n /**\n * The type of the server currently selected in the server selector\n * @attribute\n */\n @property({ type: String }) serverType?: string;\n\n /**\n * The mime type of the currently selected schema.\n * @attribute\n */\n @property({ type: String }) schemaMimeType?: string;\n\n serversCount?: number;\n\n /** \n * The type of the selected domain item.\n * @attribute\n */\n @property({ type: String, reflect: true })\n get domainType(): SelectionType | undefined {\n return this.domainTypeValue;\n }\n\n set domainType(value: SelectionType | undefined) {\n const old = this.domainTypeValue;\n if (old === value) {\n return;\n }\n this.domainTypeValue = value;\n this.requestUpdate('domainType', old);\n if (value) {\n this.processDebounce();\n }\n }\n\n /** \n * The domain id of the currently rendered API operation.\n * When selecting an operation the `domainId` is the id if the parent endpoint.\n * @attribute\n */\n @property({ type: String, reflect: true })\n get operationId(): string | undefined {\n return this.operationIdValue;\n }\n\n set operationId(value: string | undefined) {\n const old = this.operationIdValue;\n if (old === value) {\n return;\n }\n this.operationIdValue = value;\n this.requestUpdate('operationId', old);\n if (value) {\n this.processDebounce();\n }\n }\n\n /**\n * By default application hosting the element must set `domainId` and\n * `domainType` properties. When using `api-navigation` element\n * by setting this property the element listens for navigation events\n * and updates the state\n * @attribute\n */\n @property({ type: Boolean, reflect: true })\n get handleNavigationEvents(): boolean | undefined {\n return this.handleNavigationEventsValue;\n }\n\n set handleNavigationEvents(value: boolean | undefined) {\n const old = this.handleNavigationEventsValue;\n if (old === value) {\n return;\n }\n this.handleNavigationEventsValue = value;\n if (value) {\n this.registerNavigationEvents();\n } else {\n this.unregisterNavigationEvents();\n }\n }\n\n /**\n * Former `effectiveBaseUri`.\n * @returns The URI for the API defined by the `baseUri` property or the `serverValue`.\n */\n get apiBaseUri(): string | undefined {\n const { baseUri, serverValue } = this;\n return baseUri || serverValue;\n }\n\n /**\n * @deprecated Use `apiBaseUri` instead.\n */\n get effectiveBaseUri(): string | undefined {\n return this.apiBaseUri;\n }\n\n /** The domain type of the rendered view. */\n get renderedView(): string | undefined {\n return this.renderedViewValue;\n }\n\n get renderSelector(): boolean {\n const { domainType, serversCount=0, allowCustomBaseUri } = this;\n const isOperationOrEndpoint = !!domainType && (['operation', 'resource'].includes(domainType));\n const moreThanOneServer = serversCount >= 2;\n if (isOperationOrEndpoint) {\n return allowCustomBaseUri || moreThanOneServer;\n }\n return false;\n }\n\n /**\n * This is a computed value from the AMF model.\n * @returns true when whe currently loaded API is an async API.\n */\n get isAsync(): boolean {\n const { documentMeta } = this;\n if (!documentMeta) {\n return false;\n }\n return documentMeta.isAsync;\n }\n\n /**\n * @returns The mime type of the schema that is being rendered.\n */\n get schemaMime(): string|undefined {\n const { schemaMimeType } = this;\n if (schemaMimeType) {\n return schemaMimeType;\n }\n const summary = this.apiSummaryValue;\n if (!summary) {\n return undefined;\n }\n const { accepts = [] } = summary;\n if (!accepts.length) {\n return undefined;\n }\n return accepts[0];\n }\n\n get documentMeta(): DocumentMeta | undefined {\n return this.documentMetaValue;\n }\n\n constructor() {\n super();\n\n this.navigationHandler = this.navigationHandler.bind(this);\n this.navEventsRegistered = false;\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.processDebounce();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this.navEventsRegistered) {\n this.unregisterNavigationEvents();\n }\n }\n\n /**\n * Registers the api navigation event listener handler\n * on the window object.\n */\n protected registerNavigationEvents(): void {\n this.navEventsRegistered = true;\n window.addEventListener(EventTypes.Navigation.apiNavigate, this.navigationHandler as EventListener);\n }\n\n /**\n * Removes event listener from window object for the API navigation event.\n */\n protected unregisterNavigationEvents(): void {\n this.navEventsRegistered = false;\n window.removeEventListener(EventTypes.Navigation.apiNavigate, this.navigationHandler as EventListener);\n }\n\n /**\n * Handler for the API navigation event.\n * \n * Note, when the current type is set to `operation` then the `operationId` is\n * set instead of `domainId`, which is set to the parent endpoint id.\n */\n protected navigationHandler(e: ApiNavigationEvent): void {\n const { domainId, domainType, parentId, passive } = e.detail;\n if (passive === true) {\n return;\n }\n this.domainType = domainType;\n if (domainType === 'operation') {\n this.operationId = domainId;\n this.domainId = parentId;\n } else {\n this.operationId = undefined;\n this.domainId = domainId;\n }\n this.processGraph();\n }\n\n override async processGraph(): Promise<void> {\n this.schemaMimeType = undefined;\n await this.queryDocumentMeta();\n const { documentMeta } = this;\n if (!documentMeta) {\n this.requestUpdate();\n return;\n }\n if (documentMeta.isApi) {\n await this.queryApiSummary();\n this.processApiSpecSelection();\n return;\n }\n if (documentMeta.isLibrary) {\n this.processLibrarySelection();\n return;\n }\n const { isFragment, types } = documentMeta;\n\n if (isFragment) {\n let type: SelectionType | undefined;\n if (types.includes(AmfNamespace.aml.vocabularies.security.SecuritySchemeFragment)) {\n type = 'security';\n } else if (types.includes(AmfNamespace.aml.vocabularies.apiContract.UserDocumentationFragment)) {\n type = 'documentation';\n } else if (types.includes(AmfNamespace.aml.vocabularies.shapes.DataTypeFragment)) {\n type = 'schema';\n }\n this.processFragment(type);\n return;\n }\n\n //\n // partial models\n // \n\n if (types.includes(AmfNamespace.aml.vocabularies.apiContract.EndPoint)) {\n this.processEndpointPartial();\n return;\n }\n\n let type: SelectionType | undefined;\n if (types.includes(AmfNamespace.aml.vocabularies.core.CreativeWork)) {\n type = 'documentation';\n } else if (types.includes(AmfNamespace.aml.vocabularies.security.SecurityScheme)) {\n type = 'security';\n } else if (types.includes(AmfNamespace.w3.shacl.Shape)) {\n type = 'schema';\n }\n this.processPartial(type);\n }\n\n /**\n * Reads the currently loaded document meta data from the store.\n */\n async queryDocumentMeta(): Promise<void> {\n this.documentMetaValue = undefined;\n try {\n const info = await Events.Api.documentMeta(this);\n this.documentMetaValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for the document meta data: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Reads the API summary.\n * Called only when the currently loaded document is an API.\n */\n async queryApiSummary(): Promise<void> {\n try {\n const info = await Events.Api.summary(this);\n this.apiSummaryValue = info;\n } catch (e) {\n this.apiSummaryValue = undefined;\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for the API summary data: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Processes selection for the web API data model. It ignores the input if\n * `domainId` or `domainType` is not set.\n */\n protected processApiSpecSelection(): void {\n const { domainId, tryItPanel } = this;\n let { domainType } = this;\n if (!domainId || !domainType) {\n // Not all required properties were set.\n return;\n }\n if (domainType === 'operation' && tryItPanel) {\n domainType = 'resource';\n }\n this.renderedViewValue = domainType;\n this.requestUpdate();\n }\n\n /**\n * Processes selection for a library data model. It ignores the input if\n * `domainId` or `domainType` is not set.\n */\n protected processLibrarySelection(): void {\n const { domainId, domainType } = this;\n if (!domainId || !domainType) {\n // Not all required properties were set.\n return;\n }\n this.renderedViewValue = domainType;\n this.requestUpdate();\n }\n\n /**\n * Processes fragment model and sets current selection and the model.\n * \n * @param domainType The selected domain type.\n */\n protected processFragment(domainType?: SelectionType): void {\n this.domainIdValue = this.documentMeta?.encodesId;\n this.renderedViewValue = domainType;\n this.requestUpdate();\n }\n\n /**\n * Sets the partial model to be rendered.\n * \n * @param domainType The domain type representing the partial model.\n */\n protected processPartial(domainType?: SelectionType): void {\n this.renderedViewValue = domainType;\n this.requestUpdate();\n }\n\n /**\n * Processes endpoint data from partial model definition.\n * It sets models that are used by the docs.\n *\n * If `selected` or `selectedType` is not set then it automatically selects\n */\n protected processEndpointPartial(): void {\n const { tryItPanel } = this;\n let { domainType } = this;\n if (!domainType || tryItPanel) {\n domainType = 'resource';\n }\n if (!['operation', 'resource'].includes(domainType)) {\n domainType = 'resource';\n }\n this.renderedViewValue = domainType;\n this.requestUpdate();\n }\n\n protected serversCountHandler(e: ServerCountChangeEvent): void {\n this.serversCount = e.detail.value;\n }\n\n protected serverChangeHandler(e: ServerChangeEvent): void {\n this.serverValue = e.detail.value;\n this.serverType = e.detail.type;\n }\n\n protected mediaTypeSelectHandler(e: Event): void {\n const node = e.target as RadioElement;\n const { value } = node;\n this.schemaMimeType = value;\n }\n\n override render(): TemplateResult {\n return html`\n ${this.serverSelectorTemplate()}\n ${this.modelTemplate()}`;\n }\n\n /**\n * @returns The template for the server selector.\n */\n protected serverSelectorTemplate(): TemplateResult|string {\n if (this.noServerSelector) {\n return '';\n }\n const { serverType, serverValue, allowCustomBaseUri, renderSelector, domainId, domainType } = this;\n const id = domainType === 'operation' ? this.operationId : domainId;\n return html`\n <api-server-picker\n class=\"server-selector\"\n .domainId=\"${id}\"\n .domainType=\"${domainType}\"\n .value=\"${serverValue}\"\n .type=\"${serverType as ServerType}\"\n ?hidden=\"${!renderSelector}\"\n ?custom=\"${allowCustomBaseUri}\"\n auto\n @serverscountchanged=\"${this.serversCountHandler}\"\n @apiserverchanged=\"${this.serverChangeHandler}\"\n >\n <slot name=\"custom-base-uri\" slot=\"custom-base-uri\"></slot>\n </api-server-picker>`;\n }\n\n /**\n * @returns The template for the server selector.\n */\n protected modelTemplate(): TemplateResult|string {\n switch (this.renderedViewValue) {\n case 'summary': return this.summaryTemplate();\n case 'security': return this.securityTemplate();\n case 'documentation': return this.documentationTemplate();\n case 'schema': return this.schemaTemplate();\n case 'resource':\n case 'operation':\n return this.resourceTemplate();\n default: return '';\n }\n }\n\n /**\n * @returns The template for the API summary page.\n */\n protected summaryTemplate(): TemplateResult|string {\n const { baseUri } = this;\n return html`\n <api-summary .baseUri=\"${baseUri}\"></api-summary>`;\n }\n\n /**\n * @returns The template for the API security definition page.\n */\n protected securityTemplate(): TemplateResult|string {\n const { domainId } = this;\n return html`<api-security-document\n .domainId=\"${domainId}\"\n settingsOpened\n ></api-security-document>`;\n }\n\n /**\n * @returns The template for the RAML's documentation page.\n */\n protected documentationTemplate(): TemplateResult|string {\n const { domainId } = this;\n return html`<api-documentation-document .domainId=\"${domainId}\"></api-documentation-document>`;\n }\n\n /**\n * @returns The template for the API schema page.\n */\n protected schemaTemplate(): TemplateResult|string {\n const { schemaMime, domainId } = this;\n return html`\n ${this.schemaMediaSelectorTemplate()}\n <api-schema-document\n .domainId=\"${domainId}\"\n .mimeType=\"${schemaMime}\"\n forceExamples\n ></api-schema-document>`;\n }\n\n /**\n * @returns The template for the API endpoint page.\n */\n protected resourceTemplate(): TemplateResult|string {\n const { domainId, operationId, isAsync } = this;\n return html`<api-resource-document\n .domainId=\"${domainId}\"\n .operationId=\"${operationId}\"\n .redirectUri=\"${this.redirectUri}\"\n .serverType=\"${this.serverType}\"\n .serverValue=\"${this.serverValue}\"\n .baseUri=\"${this.apiBaseUri}\"\n ?tryItButton=\"${this.tryItButton}\"\n ?tryItPanel=\"${this.tryItPanel}\"\n ?httpUrlEditor=\"${this.httpUrlEditor}\"\n httpNoServerSelector\n ?asyncApi=\"${isAsync}\"\n ></api-resource-document>`;\n }\n\n /**\n * This is a part of schema rendering.\n * When the current API defines the media types then this shows the selector \n * to render examples with a specific mime.\n */\n protected schemaMediaSelectorTemplate(): TemplateResult|string {\n const { documentMeta } = this;\n // only APIs have top level media types (?)\n const summary = this.apiSummaryValue;\n if (!summary || !documentMeta || !documentMeta.isApi) {\n return '';\n }\n const { accepts = [] } = summary;\n if (accepts.length < 2) {\n // if there's a single mime then we render the one we have. No selector needed.\n return '';\n }\n const mimeType = this.schemaMimeType || accepts[0];\n return html`\n <div class=\"media-type-selector\">\n <span id=\"schema-mime\">Schema content type</span>\n ${accepts.map((item) => html`\n <label class=\"label-large\">\n <ui-radio\n class=\"schema-toggle\"\n name=\"schemaMime\"\n value=\"${item}\"\n .checked=\"${item === mimeType}\"\n @change=\"${this.mediaTypeSelectHandler}\"\n ></ui-radio>\n ${item}\n </label>\n `)}\n </div>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ApiDocumentation.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiDocumentation.element.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ApiDefinitions, AmfNamespace } from '@api-client/core/build/browser.js';\nimport { ApiDocumentationBase } from './ApiDocumentationBase.js';\nimport { EventTypes } from '../../events/amf/EventTypes.js';\nimport { Events } from '../../events/amf/Events.js';\nimport { ServerChangeEvent, ServerCountChangeEvent } from '../../events/amf/ServerEvents.js';\nimport { ApiNavigationEvent } from '../../events/amf/NavigationEvents.js';\nimport { SelectionType, DocumentMeta, ServerType } from '../../amf/types.js';\nimport { Oauth2Credentials } from '../authorization/types.js';\nimport '../../define/amf/api-summary.js'\nimport '../../define/amf/api-operation-document.js'\nimport '../../define/amf/api-resource-document.js';\nimport '../../define/amf/api-security-document.js';\nimport '../../define/amf/api-documentation-document.js';\nimport '../../define/amf/api-schema-document.js';\nimport '../../define/amf/api-server-picker.js';\nimport '../../define/ui/ui-radio.js';\nimport RadioElement from '../../ui/input/RadioElement.js';\n/**\n * A main documentation view for an AMF model representing a sync or an async API.\n * \n * This element works with the [AMF](https://github.com/mulesoft/amf) data model.\n */\nexport default class ApiDocumentation extends ApiDocumentationBase {\n protected domainTypeValue: SelectionType | undefined;\n\n protected operationIdValue: string | undefined;\n\n protected handleNavigationEventsValue: boolean | undefined;\n\n protected renderedViewValue: string | undefined;\n\n protected apiSummaryValue?: ApiDefinitions.IApiSummary;\n\n protected documentMetaValue?: DocumentMeta;\n\n protected navEventsRegistered: boolean;\n\n /**\n * A property to set to override AMF's model base URI information.\n * @attribute\n */\n @property({ type: String }) baseUri?: string;\n\n /** \n * When set it renders the \"try it\" button that dispatches the `tryit` event.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) tryItButton?: boolean;\n\n /** \n * When set it renders the \"try it\" panel next to the operation documentation.\n * Setting this automatically disables the `tryItButton` property.\n * \n * Note, use this only when there's enough space on the screen to render 2 panels side-by-side.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) tryItPanel?: boolean;\n\n /**\n * OAuth2 redirect URI.\n * This value **must** be set in order for OAuth 1/2 to work properly.\n * This is only required in inline mode (`inlineMethods`).\n * @attribute\n */\n @property({ type: String }) redirectUri?: string;\n\n /** \n * When set it renders the URL input above the URL parameters in the HTTP editor.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) httpUrlEditor?: boolean;\n\n /** \n * When set it applies the authorization values to the request dispatched\n * with the API request event.\n * If possible, it applies the authorization values to query parameter or headers\n * depending on the configuration.\n * \n * When the values arr applied to the request the authorization config is kept in the\n * request object, but its `enabled` state is always `false`, meaning other potential\n * processors should ignore this values.\n * \n * If this property is not set then the application hosting this component should\n * process the authorization data and apply them to the request.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) httpApplyAuthorization?: boolean;\n\n /**\n * List of credentials source passed to the HTTP editor\n */\n @property({ type: Array }) httpCredentialsSource?: Oauth2Credentials[];\n\n /**\n * Optional property to set on the request editor. \n * When true, the server selector is not rendered\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) noServerSelector?: boolean;\n\n /**\n * When set it renders \"add custom\" item button in the HTTP request editor.\n * If the element is to be used without AMF model this should always\n * be enabled. Otherwise users won't be able to add a parameter.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) httpAllowCustom?: boolean;\n\n /**\n * Optional property to set on the request editor. \n * If true, the server selector custom base URI option is rendered\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) allowCustomBaseUri?: boolean;\n\n /**\n * The URI of the server currently selected in the server selector\n * @attribute\n */\n @property({ type: String }) serverValue?: string;\n\n /**\n * The type of the server currently selected in the server selector\n * @attribute\n */\n @property({ type: String }) serverType?: string;\n\n /**\n * The mime type of the currently selected schema.\n * @attribute\n */\n @property({ type: String }) schemaMimeType?: string;\n\n serversCount?: number;\n\n /** \n * The type of the selected domain item.\n * @attribute\n */\n @property({ type: String, reflect: true })\n get domainType(): SelectionType | undefined {\n return this.domainTypeValue;\n }\n\n set domainType(value: SelectionType | undefined) {\n const old = this.domainTypeValue;\n if (old === value) {\n return;\n }\n this.domainTypeValue = value;\n this.requestUpdate('domainType', old);\n if (value) {\n this.processDebounce();\n }\n }\n\n /** \n * The domain id of the currently rendered API operation.\n * When selecting an operation the `domainId` is the id if the parent endpoint.\n * @attribute\n */\n @property({ type: String, reflect: true })\n get operationId(): string | undefined {\n return this.operationIdValue;\n }\n\n set operationId(value: string | undefined) {\n const old = this.operationIdValue;\n if (old === value) {\n return;\n }\n this.operationIdValue = value;\n this.requestUpdate('operationId', old);\n if (value) {\n this.processDebounce();\n }\n }\n\n /**\n * By default application hosting the element must set `domainId` and\n * `domainType` properties. When using `api-navigation` element\n * by setting this property the element listens for navigation events\n * and updates the state\n * @attribute\n */\n @property({ type: Boolean, reflect: true })\n get handleNavigationEvents(): boolean | undefined {\n return this.handleNavigationEventsValue;\n }\n\n set handleNavigationEvents(value: boolean | undefined) {\n const old = this.handleNavigationEventsValue;\n if (old === value) {\n return;\n }\n this.handleNavigationEventsValue = value;\n if (value) {\n this.registerNavigationEvents();\n } else {\n this.unregisterNavigationEvents();\n }\n }\n\n /**\n * Former `effectiveBaseUri`.\n * @returns The URI for the API defined by the `baseUri` property or the `serverValue`.\n */\n get apiBaseUri(): string | undefined {\n const { baseUri, serverValue } = this;\n return baseUri || serverValue;\n }\n\n /**\n * @deprecated Use `apiBaseUri` instead.\n */\n get effectiveBaseUri(): string | undefined {\n return this.apiBaseUri;\n }\n\n /** The domain type of the rendered view. */\n get renderedView(): string | undefined {\n return this.renderedViewValue;\n }\n\n get renderSelector(): boolean {\n const { domainType, serversCount=0, allowCustomBaseUri } = this;\n const isOperationOrEndpoint = !!domainType && (['operation', 'resource'].includes(domainType));\n const moreThanOneServer = serversCount >= 2;\n if (isOperationOrEndpoint) {\n return allowCustomBaseUri || moreThanOneServer;\n }\n return false;\n }\n\n /**\n * This is a computed value from the AMF model.\n * @returns true when whe currently loaded API is an async API.\n */\n get isAsync(): boolean {\n const { documentMeta } = this;\n if (!documentMeta) {\n return false;\n }\n return documentMeta.isAsync;\n }\n\n /**\n * @returns The mime type of the schema that is being rendered.\n */\n get schemaMime(): string|undefined {\n const { schemaMimeType } = this;\n if (schemaMimeType) {\n return schemaMimeType;\n }\n const summary = this.apiSummaryValue;\n if (!summary) {\n return undefined;\n }\n const { accepts = [] } = summary;\n if (!accepts.length) {\n return undefined;\n }\n return accepts[0];\n }\n\n get documentMeta(): DocumentMeta | undefined {\n return this.documentMetaValue;\n }\n\n constructor() {\n super();\n\n this.navigationHandler = this.navigationHandler.bind(this);\n this.navEventsRegistered = false;\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.processDebounce();\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this.navEventsRegistered) {\n this.unregisterNavigationEvents();\n }\n }\n\n /**\n * Registers the api navigation event listener handler\n * on the window object.\n */\n protected registerNavigationEvents(): void {\n this.navEventsRegistered = true;\n window.addEventListener(EventTypes.Navigation.apiNavigate, this.navigationHandler as EventListener);\n }\n\n /**\n * Removes event listener from window object for the API navigation event.\n */\n protected unregisterNavigationEvents(): void {\n this.navEventsRegistered = false;\n window.removeEventListener(EventTypes.Navigation.apiNavigate, this.navigationHandler as EventListener);\n }\n\n /**\n * Handler for the API navigation event.\n * \n * Note, when the current type is set to `operation` then the `operationId` is\n * set instead of `domainId`, which is set to the parent endpoint id.\n */\n protected navigationHandler(e: ApiNavigationEvent): void {\n const { domainId, domainType, parentId, passive } = e.detail;\n if (passive === true) {\n return;\n }\n this.domainType = domainType;\n if (domainType === 'operation') {\n this.operationId = domainId;\n this.domainId = parentId;\n } else {\n this.operationId = undefined;\n this.domainId = domainId;\n }\n this.processGraph();\n }\n\n override async processGraph(): Promise<void> {\n this.schemaMimeType = undefined;\n await this.queryDocumentMeta();\n const { documentMeta } = this;\n if (!documentMeta) {\n this.requestUpdate();\n return;\n }\n if (documentMeta.isApi) {\n await this.queryApiSummary();\n this.processApiSpecSelection();\n return;\n }\n if (documentMeta.isLibrary) {\n this.processLibrarySelection();\n return;\n }\n const { isFragment, types } = documentMeta;\n\n if (isFragment) {\n let type: SelectionType | undefined;\n if (types.includes(AmfNamespace.aml.vocabularies.security.SecuritySchemeFragment)) {\n type = 'security';\n } else if (types.includes(AmfNamespace.aml.vocabularies.apiContract.UserDocumentationFragment)) {\n type = 'documentation';\n } else if (types.includes(AmfNamespace.aml.vocabularies.shapes.DataTypeFragment)) {\n type = 'schema';\n }\n this.processFragment(type);\n return;\n }\n\n //\n // partial models\n // \n\n if (types.includes(AmfNamespace.aml.vocabularies.apiContract.EndPoint)) {\n this.processEndpointPartial();\n return;\n }\n\n let type: SelectionType | undefined;\n if (types.includes(AmfNamespace.aml.vocabularies.core.CreativeWork)) {\n type = 'documentation';\n } else if (types.includes(AmfNamespace.aml.vocabularies.security.SecurityScheme)) {\n type = 'security';\n } else if (types.includes(AmfNamespace.w3.shacl.Shape)) {\n type = 'schema';\n }\n this.processPartial(type);\n }\n\n /**\n * Reads the currently loaded document meta data from the store.\n */\n async queryDocumentMeta(): Promise<void> {\n this.documentMetaValue = undefined;\n try {\n const info = await Events.Api.documentMeta(this);\n this.documentMetaValue = info;\n } catch (e) {\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for the document meta data: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Reads the API summary.\n * Called only when the currently loaded document is an API.\n */\n async queryApiSummary(): Promise<void> {\n try {\n const info = await Events.Api.summary(this);\n this.apiSummaryValue = info;\n } catch (e) {\n this.apiSummaryValue = undefined;\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for the API summary data: ${ex.message}`, this.localName);\n }\n }\n\n /**\n * Processes selection for the web API data model. It ignores the input if\n * `domainId` or `domainType` is not set.\n */\n protected processApiSpecSelection(): void {\n const { domainId, tryItPanel } = this;\n let { domainType } = this;\n if (!domainId || !domainType) {\n // Not all required properties were set.\n return;\n }\n if (domainType === 'operation' && tryItPanel) {\n domainType = 'resource';\n }\n this.renderedViewValue = domainType;\n this.requestUpdate();\n }\n\n /**\n * Processes selection for a library data model. It ignores the input if\n * `domainId` or `domainType` is not set.\n */\n protected processLibrarySelection(): void {\n const { domainId, domainType } = this;\n if (!domainId || !domainType) {\n // Not all required properties were set.\n return;\n }\n this.renderedViewValue = domainType;\n this.requestUpdate();\n }\n\n /**\n * Processes fragment model and sets current selection and the model.\n * \n * @param domainType The selected domain type.\n */\n protected processFragment(domainType?: SelectionType): void {\n this.domainIdValue = this.documentMeta?.encodesId;\n this.renderedViewValue = domainType;\n this.requestUpdate();\n }\n\n /**\n * Sets the partial model to be rendered.\n * \n * @param domainType The domain type representing the partial model.\n */\n protected processPartial(domainType?: SelectionType): void {\n this.renderedViewValue = domainType;\n this.requestUpdate();\n }\n\n /**\n * Processes endpoint data from partial model definition.\n * It sets models that are used by the docs.\n *\n * If `selected` or `selectedType` is not set then it automatically selects\n */\n protected processEndpointPartial(): void {\n const { tryItPanel } = this;\n let { domainType } = this;\n if (!domainType || tryItPanel) {\n domainType = 'resource';\n }\n if (!['operation', 'resource'].includes(domainType)) {\n domainType = 'resource';\n }\n this.renderedViewValue = domainType;\n this.requestUpdate();\n }\n\n protected serversCountHandler(e: ServerCountChangeEvent): void {\n this.serversCount = e.detail.value;\n }\n\n protected serverChangeHandler(e: ServerChangeEvent): void {\n this.serverValue = e.detail.value;\n this.serverType = e.detail.type;\n }\n\n protected mediaTypeSelectHandler(e: Event): void {\n const node = e.target as RadioElement;\n const { value } = node;\n this.schemaMimeType = value;\n }\n\n override render(): TemplateResult {\n return html`\n ${this.serverSelectorTemplate()}\n ${this.modelTemplate()}`;\n }\n\n /**\n * @returns The template for the server selector.\n */\n protected serverSelectorTemplate(): TemplateResult|string {\n if (this.noServerSelector) {\n return '';\n }\n const { serverType, serverValue, allowCustomBaseUri, renderSelector, domainId, domainType } = this;\n const id = domainType === 'operation' ? this.operationId : domainId;\n return html`\n <api-server-picker\n class=\"server-selector\"\n .domainId=\"${id}\"\n .domainType=\"${domainType}\"\n .value=\"${serverValue}\"\n .type=\"${serverType as ServerType}\"\n ?hidden=\"${!renderSelector}\"\n ?custom=\"${allowCustomBaseUri}\"\n auto\n @serverscountchanged=\"${this.serversCountHandler}\"\n @apiserverchanged=\"${this.serverChangeHandler}\"\n >\n <slot name=\"custom-base-uri\" slot=\"custom-base-uri\"></slot>\n </api-server-picker>`;\n }\n\n /**\n * @returns The template for the server selector.\n */\n protected modelTemplate(): TemplateResult|string {\n switch (this.renderedViewValue) {\n case 'summary': return this.summaryTemplate();\n case 'security': return this.securityTemplate();\n case 'documentation': return this.documentationTemplate();\n case 'schema': return this.schemaTemplate();\n case 'resource':\n case 'operation':\n return this.resourceTemplate();\n default: return '';\n }\n }\n\n /**\n * @returns The template for the API summary page.\n */\n protected summaryTemplate(): TemplateResult|string {\n const { baseUri } = this;\n return html`\n <api-summary .baseUri=\"${baseUri}\"></api-summary>`;\n }\n\n /**\n * @returns The template for the API security definition page.\n */\n protected securityTemplate(): TemplateResult|string {\n const { domainId } = this;\n return html`<api-security-document\n .domainId=\"${domainId}\"\n settingsOpened\n ></api-security-document>`;\n }\n\n /**\n * @returns The template for the RAML's documentation page.\n */\n protected documentationTemplate(): TemplateResult|string {\n const { domainId } = this;\n return html`<api-documentation-document .domainId=\"${domainId}\"></api-documentation-document>`;\n }\n\n /**\n * @returns The template for the API schema page.\n */\n protected schemaTemplate(): TemplateResult|string {\n const { schemaMime, domainId } = this;\n return html`\n ${this.schemaMediaSelectorTemplate()}\n <api-schema-document\n .domainId=\"${domainId}\"\n .mimeType=\"${schemaMime}\"\n forceExamples\n ></api-schema-document>`;\n }\n\n /**\n * @returns The template for the API endpoint page.\n */\n protected resourceTemplate(): TemplateResult|string {\n const { domainId, operationId, isAsync } = this;\n return html`<api-resource-document\n .domainId=\"${domainId}\"\n .operationId=\"${operationId}\"\n .redirectUri=\"${this.redirectUri}\"\n .serverType=\"${this.serverType}\"\n .serverValue=\"${this.serverValue}\"\n .baseUri=\"${this.apiBaseUri}\"\n ?tryItButton=\"${this.tryItButton}\"\n ?tryItPanel=\"${this.tryItPanel}\"\n ?httpUrlEditor=\"${this.httpUrlEditor}\"\n httpNoServerSelector\n ?asyncApi=\"${isAsync}\"\n ></api-resource-document>`;\n }\n\n /**\n * This is a part of schema rendering.\n * When the current API defines the media types then this shows the selector \n * to render examples with a specific mime.\n */\n protected schemaMediaSelectorTemplate(): TemplateResult|string {\n const { documentMeta } = this;\n // only APIs have top level media types (?)\n const summary = this.apiSummaryValue;\n if (!summary || !documentMeta || !documentMeta.isApi) {\n return '';\n }\n const { accepts = [] } = summary;\n if (accepts.length < 2) {\n // if there's a single mime then we render the one we have. No selector needed.\n return '';\n }\n const mimeType = this.schemaMimeType || accepts[0];\n return html`\n <div class=\"media-type-selector\">\n <span id=\"schema-mime\">Schema content type</span>\n ${accepts.map((item) => html`\n <label class=\"label-large\">\n <ui-radio\n class=\"schema-toggle\"\n name=\"schemaMime\"\n value=\"${item}\"\n .checked=\"${item === mimeType}\"\n @change=\"${this.mediaTypeSelectHandler}\"\n ></ui-radio>\n ${item}\n </label>\n `)}\n </div>\n `;\n }\n}\n"]}
|
|
@@ -18,7 +18,6 @@ import '../../define/ui/ui-collapse.js';
|
|
|
18
18
|
* A base class for the documentation components with common templates and functions.
|
|
19
19
|
*/
|
|
20
20
|
export class ApiDocumentationBase extends ApiElement {
|
|
21
|
-
domainIdValue;
|
|
22
21
|
/**
|
|
23
22
|
* The domain id of the object to render.
|
|
24
23
|
* @attribute
|
|
@@ -37,14 +36,6 @@ export class ApiDocumentationBase extends ApiElement {
|
|
|
37
36
|
this.processDebounce();
|
|
38
37
|
}
|
|
39
38
|
}
|
|
40
|
-
/**
|
|
41
|
-
* The timeout after which the `queryGraph()` function is called
|
|
42
|
-
* in the debouncer.
|
|
43
|
-
* @attribute
|
|
44
|
-
*/
|
|
45
|
-
queryDebouncerTimeout;
|
|
46
|
-
examplesValue;
|
|
47
|
-
debounceValue;
|
|
48
39
|
constructor() {
|
|
49
40
|
super();
|
|
50
41
|
this.queryDebouncerTimeout = 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiDocumentationBase.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiDocumentationBase.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable lit-a11y/click-events-have-key-events */\n/* eslint-disable class-methods-use-this */\nimport { html, TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { IApiCustomDomainProperty, ApiExampleGenerator, AmfShapes, ApiDefinitions } from '@api-client/core/build/browser.js';\nimport { EventTypes } from '../../events/amf/EventTypes.js';\nimport { SchemaExample } from '../../amf/types.js';\nimport ApiElement from '../ApiElement.js';\nimport '../../define/amf/api-annotation-document.js';\nimport '../../define/highlight/marked-highlight.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-collapse.js';\n\n/**\n * A base class for the documentation components with common templates and functions.\n */\nexport class ApiDocumentationBase extends ApiElement {\n protected domainIdValue?: string;\n\n /** \n * The domain id of the object to render.\n * @attribute\n */\n @property({ type: String, reflect: true }) get domainId(): string | undefined {\n return this.domainIdValue;\n }\n\n set domainId(value: string | undefined) {\n const old = this.domainIdValue;\n if (old === value) {\n return;\n }\n this.domainIdValue = value;\n this.requestUpdate('domainId', old);\n if (value) {\n this.processDebounce();\n }\n }\n\n /** \n * The timeout after which the `queryGraph()` function is called \n * in the debouncer.\n * @attribute\n */\n @property({ type: Number }) queryDebouncerTimeout?: number;\n\n protected examplesValue?: SchemaExample[];\n\n protected debounceValue?: any;\n\n constructor() {\n super();\n this.queryDebouncerTimeout = 1;\n this.eventsTarget.addEventListener(EventTypes.Store.graphChange, this.graphChangeHandler.bind(this));\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.domainId) {\n this.processDebounce();\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this.debounceValue) {\n clearTimeout(this.debounceValue);\n this.debounceValue = undefined;\n }\n }\n\n /**\n * Handler for the event dispatched by the store when the graph model change.\n */\n protected graphChangeHandler(): void {\n this.processDebounce();\n }\n\n /**\n * Calls the `queryGraph()` function in a debouncer.\n */\n protected processDebounce(): void {\n if (this.debounceValue) {\n clearTimeout(this.debounceValue);\n }\n this.debounceValue = setTimeout(() => {\n this.debounceValue = undefined;\n this.processGraph();\n }, this.queryDebouncerTimeout);\n }\n\n /**\n * The main function to use to process the AMF model.\n * To be implemented by the child classes.\n */\n processGraph(): void | Promise<void> {\n // ...\n }\n\n /**\n * At current state there's no way to tell where to navigate when relative\n * link is clicked. To prevent 404 anchors this prevents any relative link click.\n */\n clickHandler(e: Event): void {\n const node = (e.target as HTMLElement);\n if (node.localName !== 'a') {\n return;\n }\n // target.href is always absolute, need attribute value to test for\n // relative links.\n const href = node.getAttribute('href');\n if (!href) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n const ch0 = href[0];\n if (['.', '/'].indexOf(ch0) !== -1) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n /**\n * A handler for the section toggle button click.\n */\n sectionToggleClickHandler(e: Event): void {\n const button = (e.currentTarget as HTMLElement);\n const prop = button.dataset.ctrlProperty;\n if (!prop) {\n return;\n }\n (this as any)[prop] = !(this as any)[prop];\n }\n\n /**\n * @param examples The list of examples to evaluate\n * @param mediaType The media type to use with examples processing.\n */\n protected evaluateExamples(examples: AmfShapes.IApiDataExample[], mediaType: string): SchemaExample[] {\n return examples.map((example) => this.evaluateExample(example, mediaType))\n }\n\n /**\n * @param example The example to evaluate\n * @param mediaType The media type to use with examples processing.\n */\n protected evaluateExample(example: AmfShapes.IApiDataExample, mediaType: string): SchemaExample {\n let value;\n if (mediaType) {\n const generator = new ApiExampleGenerator();\n value = generator.read(example, mediaType);\n } else {\n value = example.value || '';\n }\n const { name, displayName } = example;\n const label = displayName || name;\n const result: SchemaExample = {\n ...example,\n renderValue: value,\n };\n if (label && !label.startsWith('example_')) {\n result.label = label;\n }\n return result;\n }\n\n /**\n * @returns The template for the section toggle button\n */\n protected sectionToggleTemplate(ctrlProperty: string): TemplateResult | string {\n const label = (this as any)[ctrlProperty] ? 'Hide' : 'Show';\n return html`\n <ui-button class=\"section-toggle\" type=\"text\">\n ${label} <ui-icon icon=\"arrowDropDown\" role=\"presentation\" class=\"toggle-icon\"></ui-icon>\n </ui-button>\n `;\n }\n\n /**\n * @param label The section label.\n * @param openedProperty The name of the element property to be toggled when interacting with the toggle button.\n * @param content The content to render.\n * @returns The template for a toggle section with a content.\n */\n protected paramsSectionTemplate(label: string, openedProperty: string, content: TemplateResult | (TemplateResult | string)[], opts: ({ innerSection?: boolean }) = {}): TemplateResult {\n const opened = (this as any)[openedProperty];\n const { innerSection } = opts;\n const containerClasses = {\n 'params-section': !innerSection,\n 'surface2': !innerSection,\n 'inner-section': !!innerSection,\n };\n const titleClasses = {\n 'params-title': true,\n opened,\n };\n return html`\n <div class=\"${classMap(containerClasses)}\" data-controlled-by=\"${openedProperty}\">\n <div \n class=\"${classMap(titleClasses)}\"\n data-ctrl-property=\"${openedProperty}\" \n @click=\"${this.sectionToggleClickHandler}\"\n >\n <span class=\"label\">${label}</span>\n ${this.sectionToggleTemplate(openedProperty)}\n </div>\n <ui-collapse .open=\"${opened}\">\n ${content}\n </ui-collapse>\n </div>\n `;\n }\n\n /**\n * @param model The parameter to render.\n * @param dataName Optional data-name for this parameter\n * @returns The template for the schema item document\n */\n protected schemaItemTemplate(model: ApiDefinitions.IApiParameter, dataName?: string): TemplateResult {\n return html`\n <api-parameter-document \n .parameter=\"${model}\" \n class=\"property-item\"\n data-name=\"${ifDefined(dataName)}\"\n ></api-parameter-document>\n `;\n }\n\n /**\n * @param description The description to render.\n * @returns The template for the markdown description.\n */\n protected descriptionTemplate(description?: string): TemplateResult | string {\n if (!description) {\n return '';\n }\n return html`\n <div class=\"api-description\">\n <marked-highlight \n .markdown=\"${description}\" \n sanitize\n @click=\"${this.clickHandler}\"\n >\n <div slot=\"markdown-html\" class=\"markdown-body text-selectable\"></div>\n </marked-highlight>\n </div>`;\n }\n\n /**\n * @returns The template for the custom domain properties\n */\n protected customDomainPropertiesTemplate(customDomainProperties: IApiCustomDomainProperty[] = []): TemplateResult | string {\n if (!customDomainProperties.length) {\n return '';\n }\n return html`\n <api-annotation-document\n .customProperties=\"${customDomainProperties}\"\n ></api-annotation-document>\n `;\n }\n\n /**\n * @returns The template for the examples section.\n */\n protected examplesTemplate(): TemplateResult | string {\n const examples = this.examplesValue;\n if (!Array.isArray(examples)) {\n return '';\n }\n const filtered = examples.filter((item) => !!item.renderValue);\n if (!filtered.length) {\n return '';\n }\n return html`\n <div class=\"examples\">\n ${filtered.map((item) => this.exampleTemplate(item))}\n </div>\n `;\n }\n\n /**\n * @returns The template for a single example\n */\n protected exampleTemplate(item: SchemaExample): TemplateResult | string {\n const { description, renderValue, label } = item;\n return html`\n <details class=\"schema-example\">\n <summary>Example${label ? `: ${label}` : ''}</summary>\n <div class=\"example-content\">\n ${description ? html`<div class=\"example-description text-selectable\">${description}</div>` : ''}\n <pre class=\"code-value text-selectable\"><code>${renderValue}</code></pre>\n </div>\n </details>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ApiDocumentationBase.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiDocumentationBase.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable lit-a11y/click-events-have-key-events */\n/* eslint-disable class-methods-use-this */\nimport { html, TemplateResult } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { IApiCustomDomainProperty, ApiExampleGenerator, AmfShapes, ApiDefinitions } from '@api-client/core/build/browser.js';\nimport { EventTypes } from '../../events/amf/EventTypes.js';\nimport { SchemaExample } from '../../amf/types.js';\nimport ApiElement from '../ApiElement.js';\nimport '../../define/amf/api-annotation-document.js';\nimport '../../define/highlight/marked-highlight.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-collapse.js';\n\n/**\n * A base class for the documentation components with common templates and functions.\n */\nexport class ApiDocumentationBase extends ApiElement {\n protected domainIdValue?: string;\n\n /** \n * The domain id of the object to render.\n * @attribute\n */\n @property({ type: String, reflect: true }) get domainId(): string | undefined {\n return this.domainIdValue;\n }\n\n set domainId(value: string | undefined) {\n const old = this.domainIdValue;\n if (old === value) {\n return;\n }\n this.domainIdValue = value;\n this.requestUpdate('domainId', old);\n if (value) {\n this.processDebounce();\n }\n }\n\n /** \n * The timeout after which the `queryGraph()` function is called \n * in the debouncer.\n * @attribute\n */\n @property({ type: Number }) queryDebouncerTimeout?: number;\n\n protected examplesValue?: SchemaExample[];\n\n protected debounceValue?: any;\n\n constructor() {\n super();\n this.queryDebouncerTimeout = 1;\n this.eventsTarget.addEventListener(EventTypes.Store.graphChange, this.graphChangeHandler.bind(this));\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n if (this.domainId) {\n this.processDebounce();\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this.debounceValue) {\n clearTimeout(this.debounceValue);\n this.debounceValue = undefined;\n }\n }\n\n /**\n * Handler for the event dispatched by the store when the graph model change.\n */\n protected graphChangeHandler(): void {\n this.processDebounce();\n }\n\n /**\n * Calls the `queryGraph()` function in a debouncer.\n */\n protected processDebounce(): void {\n if (this.debounceValue) {\n clearTimeout(this.debounceValue);\n }\n this.debounceValue = setTimeout(() => {\n this.debounceValue = undefined;\n this.processGraph();\n }, this.queryDebouncerTimeout);\n }\n\n /**\n * The main function to use to process the AMF model.\n * To be implemented by the child classes.\n */\n processGraph(): void | Promise<void> {\n // ...\n }\n\n /**\n * At current state there's no way to tell where to navigate when relative\n * link is clicked. To prevent 404 anchors this prevents any relative link click.\n */\n clickHandler(e: Event): void {\n const node = (e.target as HTMLElement);\n if (node.localName !== 'a') {\n return;\n }\n // target.href is always absolute, need attribute value to test for\n // relative links.\n const href = node.getAttribute('href');\n if (!href) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n const ch0 = href[0];\n if (['.', '/'].indexOf(ch0) !== -1) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n /**\n * A handler for the section toggle button click.\n */\n sectionToggleClickHandler(e: Event): void {\n const button = (e.currentTarget as HTMLElement);\n const prop = button.dataset.ctrlProperty;\n if (!prop) {\n return;\n }\n (this as any)[prop] = !(this as any)[prop];\n }\n\n /**\n * @param examples The list of examples to evaluate\n * @param mediaType The media type to use with examples processing.\n */\n protected evaluateExamples(examples: AmfShapes.IApiDataExample[], mediaType: string): SchemaExample[] {\n return examples.map((example) => this.evaluateExample(example, mediaType))\n }\n\n /**\n * @param example The example to evaluate\n * @param mediaType The media type to use with examples processing.\n */\n protected evaluateExample(example: AmfShapes.IApiDataExample, mediaType: string): SchemaExample {\n let value;\n if (mediaType) {\n const generator = new ApiExampleGenerator();\n value = generator.read(example, mediaType);\n } else {\n value = example.value || '';\n }\n const { name, displayName } = example;\n const label = displayName || name;\n const result: SchemaExample = {\n ...example,\n renderValue: value,\n };\n if (label && !label.startsWith('example_')) {\n result.label = label;\n }\n return result;\n }\n\n /**\n * @returns The template for the section toggle button\n */\n protected sectionToggleTemplate(ctrlProperty: string): TemplateResult | string {\n const label = (this as any)[ctrlProperty] ? 'Hide' : 'Show';\n return html`\n <ui-button class=\"section-toggle\" type=\"text\">\n ${label} <ui-icon icon=\"arrowDropDown\" role=\"presentation\" class=\"toggle-icon\"></ui-icon>\n </ui-button>\n `;\n }\n\n /**\n * @param label The section label.\n * @param openedProperty The name of the element property to be toggled when interacting with the toggle button.\n * @param content The content to render.\n * @returns The template for a toggle section with a content.\n */\n protected paramsSectionTemplate(label: string, openedProperty: string, content: TemplateResult | (TemplateResult | string)[], opts: ({ innerSection?: boolean }) = {}): TemplateResult {\n const opened = (this as any)[openedProperty];\n const { innerSection } = opts;\n const containerClasses = {\n 'params-section': !innerSection,\n 'surface2': !innerSection,\n 'inner-section': !!innerSection,\n };\n const titleClasses = {\n 'params-title': true,\n opened,\n };\n return html`\n <div class=\"${classMap(containerClasses)}\" data-controlled-by=\"${openedProperty}\">\n <div \n class=\"${classMap(titleClasses)}\"\n data-ctrl-property=\"${openedProperty}\" \n @click=\"${this.sectionToggleClickHandler}\"\n >\n <span class=\"label\">${label}</span>\n ${this.sectionToggleTemplate(openedProperty)}\n </div>\n <ui-collapse .open=\"${opened}\">\n ${content}\n </ui-collapse>\n </div>\n `;\n }\n\n /**\n * @param model The parameter to render.\n * @param dataName Optional data-name for this parameter\n * @returns The template for the schema item document\n */\n protected schemaItemTemplate(model: ApiDefinitions.IApiParameter, dataName?: string): TemplateResult {\n return html`\n <api-parameter-document \n .parameter=\"${model}\" \n class=\"property-item\"\n data-name=\"${ifDefined(dataName)}\"\n ></api-parameter-document>\n `;\n }\n\n /**\n * @param description The description to render.\n * @returns The template for the markdown description.\n */\n protected descriptionTemplate(description?: string): TemplateResult | string {\n if (!description) {\n return '';\n }\n return html`\n <div class=\"api-description\">\n <marked-highlight \n .markdown=\"${description}\" \n sanitize\n @click=\"${this.clickHandler}\"\n >\n <div slot=\"markdown-html\" class=\"markdown-body text-selectable\"></div>\n </marked-highlight>\n </div>`;\n }\n\n /**\n * @returns The template for the custom domain properties\n */\n protected customDomainPropertiesTemplate(customDomainProperties: IApiCustomDomainProperty[] = []): TemplateResult | string {\n if (!customDomainProperties.length) {\n return '';\n }\n return html`\n <api-annotation-document\n .customProperties=\"${customDomainProperties}\"\n ></api-annotation-document>\n `;\n }\n\n /**\n * @returns The template for the examples section.\n */\n protected examplesTemplate(): TemplateResult | string {\n const examples = this.examplesValue;\n if (!Array.isArray(examples)) {\n return '';\n }\n const filtered = examples.filter((item) => !!item.renderValue);\n if (!filtered.length) {\n return '';\n }\n return html`\n <div class=\"examples\">\n ${filtered.map((item) => this.exampleTemplate(item))}\n </div>\n `;\n }\n\n /**\n * @returns The template for a single example\n */\n protected exampleTemplate(item: SchemaExample): TemplateResult | string {\n const { description, renderValue, label } = item;\n return html`\n <details class=\"schema-example\">\n <summary>Example${label ? `: ${label}` : ''}</summary>\n <div class=\"example-content\">\n ${description ? html`<div class=\"example-description text-selectable\">${description}</div>` : ''}\n <pre class=\"code-value text-selectable\"><code>${renderValue}</code></pre>\n </div>\n </details>\n `;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiDocumentationDocument.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiDocumentationDocument.element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AAE3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGpD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,oBAAoB;
|
|
1
|
+
{"version":3,"file":"ApiDocumentationDocument.element.js","sourceRoot":"","sources":["../../../src/elements/amf/ApiDocumentationDocument.element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAC;AAE3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGpD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,oBAAoB;IAGxE;;OAEG;IACH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,IAAI,aAAa,CAAC,KAAK;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACpC,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,OAAO;SACR;QACD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,YAAY;QACzB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO;SACR;QACD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,KAAK,QAAQ,EAAE;YACtE,oDAAoD;YACpD,OAAO;SACR;QACD,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChC;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;YACpC,MAAM,EAAE,GAAG,CAAU,CAAC;YACtB,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACpD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,+CAA+C,EAAE,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SAC/G;IACH,CAAC;IAEQ,MAAM;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACrC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,IAAI,CAAA,EAAE,CAAC;SACf;QACD,OAAO,IAAI,CAAA;MACT,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;MACxB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC;KAC3C,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,aAAa,CAAC,IAAsC;QAC5D,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAA;;;8CAG+B,KAAK;;;KAG9C,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { html, TemplateResult } from 'lit';\nimport { ApiDefinitions } from '@api-client/core/build/browser.js';\nimport { ApiDocumentationBase } from './ApiDocumentationBase.js';\nimport { Events } from '../../events/amf/Events.js';\n\n\n/**\n * A web component that renders the documentation page for an API documentation (like in RAML documentations) built from \n * the AMF graph model.\n */\nexport default class ApiDocumentationDocument extends ApiDocumentationBase {\n protected documentationValue: ApiDefinitions.IApiDocumentation | undefined\n\n /**\n * The serialized to a JS object graph model\n */\n get documentation(): ApiDefinitions.IApiDocumentation | undefined {\n return this.documentationValue;\n }\n\n set documentation(value) {\n const old = this.documentationValue;\n if (old === value) {\n return;\n }\n this.documentationValue = value;\n this.processGraph();\n }\n\n /**\n * Queries the graph store for the API Documentation data.\n */\n override async processGraph(): Promise<void> {\n await this.queryDocument();\n this.requestUpdate();\n await this.updateComplete;\n }\n\n /**\n * Queries for the documentation model.\n */\n async queryDocument(): Promise<void> {\n const { domainId } = this;\n if (!domainId) {\n return;\n }\n if (this.documentationValue && this.documentationValue.id === domainId) {\n // in case it was set by the parent via the property\n return;\n }\n try {\n const info = await Events.Documentation.get(this, domainId);\n this.documentationValue = info;\n } catch (e) {\n this.documentationValue = undefined;\n const ex = e as Error;\n Events.Telemetry.exception(this, ex.message, false);\n Events.Reporting.error(this, ex, `Unable to query for API documentation data: ${ex.message}`, this.localName);\n }\n }\n\n override render(): TemplateResult {\n const docs = this.documentationValue;\n if (!docs) {\n return html``;\n }\n return html`\n ${this.titleTemplate(docs)}\n ${this.descriptionTemplate(docs.description)}\n `;\n }\n\n /**\n * @returns The template for the Documentation title.\n */\n protected titleTemplate(docs: ApiDefinitions.IApiDocumentation): TemplateResult | string {\n const { title } = docs;\n if (!title) {\n return '';\n }\n return html`\n <div class=\"documentation-header\">\n <div class=\"documentation-title\">\n <span class=\"label text-selectable\">${title}</span>\n </div>\n </div>\n `;\n }\n}\n"]}
|