@api-client/ui 0.0.4 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/demo/elements/http/http-assertions.html +3 -0
- package/demo/elements/http/http-assertions.ts +1 -1
- package/demo/elements/http/http-flows.html +23 -0
- package/demo/elements/http/http-flows.ts +92 -0
- package/demo/elements/http/index.html +3 -0
- package/demo/pages/http-project/main.ts +5 -6
- package/dist/amf/lib/AmfParameters.js +0 -4
- package/dist/amf/lib/AmfParameters.js.map +1 -1
- package/dist/amf/lib/navigation-layout/EndpointsTree.js +0 -2
- package/dist/amf/lib/navigation-layout/EndpointsTree.js.map +1 -1
- package/dist/amf/lib/navigation-layout/NaturalTree.js +0 -2
- package/dist/amf/lib/navigation-layout/NaturalTree.js.map +1 -1
- package/dist/amf/store/AmfGraphStore.js +0 -2
- package/dist/amf/store/AmfGraphStore.js.map +1 -1
- package/dist/amf/store/AmfStore.js +0 -7
- package/dist/amf/store/AmfStore.js.map +1 -1
- package/dist/bindings/base/HttpClientStoreBindings.js +4 -1
- package/dist/bindings/base/HttpClientStoreBindings.js.map +1 -1
- package/dist/bindings/base/PlatformBindings.js +6 -10
- package/dist/bindings/base/PlatformBindings.js.map +1 -1
- package/dist/bindings/base/ProxyBindings.js +9 -6
- package/dist/bindings/base/ProxyBindings.js.map +1 -1
- package/dist/bindings/base/SharedWorkerThread.js +4 -1
- package/dist/bindings/base/SharedWorkerThread.js.map +1 -1
- package/dist/bindings/base/StoreBindings.js +162 -170
- package/dist/bindings/base/StoreBindings.js.map +1 -1
- package/dist/bindings/web/WebConfigurationBindings.js +22 -24
- package/dist/bindings/web/WebConfigurationBindings.js.map +1 -1
- package/dist/bindings/web/WebFileBindings.js +7 -4
- package/dist/bindings/web/WebFileBindings.js.map +1 -1
- package/dist/bindings/web/WebHttpClientStoreBindings.js +19 -21
- package/dist/bindings/web/WebHttpClientStoreBindings.js.map +1 -1
- package/dist/bindings/web/WebNavigationBindings.js +4 -1
- package/dist/bindings/web/WebNavigationBindings.js.map +1 -1
- package/dist/bindings/web/WebProxyBindings.js +5 -6
- package/dist/bindings/web/WebProxyBindings.js.map +1 -1
- package/dist/bindings/web/WebStoreBindings.js +39 -44
- package/dist/bindings/web/WebStoreBindings.js.map +1 -1
- package/dist/contextual-menu/ContextualMenu.js +10 -19
- package/dist/contextual-menu/ContextualMenu.js.map +1 -1
- package/dist/contextual-menu/ContextualMenuElement.js +4 -32
- package/dist/contextual-menu/ContextualMenuElement.js.map +1 -1
- package/dist/contextual-menu/MenuItem.js +0 -12
- package/dist/contextual-menu/MenuItem.js.map +1 -1
- package/dist/define/amf/api-annotation-document.js +1 -1
- package/dist/define/amf/api-annotation-document.js.map +1 -1
- package/dist/define/amf/api-authorization-editor.js +1 -1
- package/dist/define/amf/api-authorization-editor.js.map +1 -1
- package/dist/define/amf/api-channel-document.js +1 -1
- package/dist/define/amf/api-channel-document.js.map +1 -1
- package/dist/define/amf/api-documentation-document.js +1 -1
- package/dist/define/amf/api-documentation-document.js.map +1 -1
- package/dist/define/amf/api-documentation.js +1 -1
- package/dist/define/amf/api-documentation.js.map +1 -1
- package/dist/define/amf/api-navigation.js +1 -1
- package/dist/define/amf/api-navigation.js.map +1 -1
- package/dist/define/amf/api-operation-document.js +1 -1
- package/dist/define/amf/api-operation-document.js.map +1 -1
- package/dist/define/amf/api-parameter-document.js +1 -1
- package/dist/define/amf/api-parameter-document.js.map +1 -1
- package/dist/define/amf/api-parametrized-security-scheme.js +1 -1
- package/dist/define/amf/api-parametrized-security-scheme.js.map +1 -1
- package/dist/define/amf/api-payload-document.js +1 -1
- package/dist/define/amf/api-payload-document.js.map +1 -1
- package/dist/define/amf/api-request-document.js +1 -1
- package/dist/define/amf/api-request-document.js.map +1 -1
- package/dist/define/amf/api-request-editor.js +1 -1
- package/dist/define/amf/api-request-editor.js.map +1 -1
- package/dist/define/amf/api-request.js +1 -1
- package/dist/define/amf/api-request.js.map +1 -1
- package/dist/define/amf/api-resource-document.js +1 -1
- package/dist/define/amf/api-resource-document.js.map +1 -1
- package/dist/define/amf/api-response-document.js +1 -1
- package/dist/define/amf/api-response-document.js.map +1 -1
- package/dist/define/amf/api-schema-document.js +1 -1
- package/dist/define/amf/api-schema-document.js.map +1 -1
- package/dist/define/amf/api-security-document.js +1 -1
- package/dist/define/amf/api-security-document.js.map +1 -1
- package/dist/define/amf/api-security-requirement-document.js +1 -1
- package/dist/define/amf/api-security-requirement-document.js.map +1 -1
- package/dist/define/amf/api-server-picker.js +1 -1
- package/dist/define/amf/api-server-picker.js.map +1 -1
- package/dist/define/amf/api-summary.js +1 -1
- package/dist/define/amf/api-summary.js.map +1 -1
- package/dist/define/amf/authorization/amf-apikey-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-apikey-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-basic-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-basic-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-bearer-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-bearer-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-oauth2-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-oauth2-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-oidc-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-oidc-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-passthrough-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-passthrough-authorization.js.map +1 -1
- package/dist/define/amf/authorization/amf-ramlcustom-authorization.js +1 -1
- package/dist/define/amf/authorization/amf-ramlcustom-authorization.js.map +1 -1
- package/dist/define/authorization/apikey-authorization.js +1 -1
- package/dist/define/authorization/apikey-authorization.js.map +1 -1
- package/dist/define/authorization/basic-authorization.js +1 -1
- package/dist/define/authorization/basic-authorization.js.map +1 -1
- package/dist/define/authorization/bearer-authorization.js +1 -1
- package/dist/define/authorization/bearer-authorization.js.map +1 -1
- package/dist/define/authorization/cc-authorization.js +1 -1
- package/dist/define/authorization/cc-authorization.js.map +1 -1
- package/dist/define/authorization/ntlm-authorization.js +1 -1
- package/dist/define/authorization/ntlm-authorization.js.map +1 -1
- package/dist/define/authorization/oauth2-authorization.js +1 -1
- package/dist/define/authorization/oauth2-authorization.js.map +1 -1
- package/dist/define/authorization/oidc-authorization.js +1 -1
- package/dist/define/authorization/oidc-authorization.js.map +1 -1
- package/dist/define/contextual-menu/contextual-menu.js +1 -1
- package/dist/define/contextual-menu/contextual-menu.js.map +1 -1
- package/dist/define/dialog/confirm-delete-dialog.js +1 -1
- package/dist/define/dialog/confirm-delete-dialog.js.map +1 -1
- package/dist/define/dialog/delete-cookie-action-dialog.d.ts +10 -0
- package/dist/define/dialog/delete-cookie-action-dialog.d.ts.map +1 -0
- package/dist/define/dialog/delete-cookie-action-dialog.js +14 -0
- package/dist/define/dialog/delete-cookie-action-dialog.js.map +1 -0
- package/dist/define/dialog/rename-dialog.js +1 -1
- package/dist/define/dialog/rename-dialog.js.map +1 -1
- package/dist/define/dialog/set-cookie-action-dialog.d.ts +10 -0
- package/dist/define/dialog/set-cookie-action-dialog.d.ts.map +1 -0
- package/dist/define/dialog/set-cookie-action-dialog.js +14 -0
- package/dist/define/dialog/set-cookie-action-dialog.js.map +1 -0
- package/dist/define/files/share-file.js +1 -1
- package/dist/define/files/share-file.js.map +1 -1
- package/dist/define/har/har-viewer.js +1 -1
- package/dist/define/har/har-viewer.js.map +1 -1
- package/dist/define/highlight/marked-highlight.js +1 -1
- package/dist/define/highlight/marked-highlight.js.map +1 -1
- package/dist/define/highlight/prism-highlight.js +1 -1
- package/dist/define/highlight/prism-highlight.js.map +1 -1
- package/dist/define/http/http-assertions.d.ts +1 -1
- package/dist/define/http/http-assertions.d.ts.map +1 -1
- package/dist/define/http/http-assertions.js +3 -3
- package/dist/define/http/http-assertions.js.map +1 -1
- package/dist/define/http/http-body-editor.js +1 -1
- package/dist/define/http/http-body-editor.js.map +1 -1
- package/dist/define/http/http-body-multipart-editor.js +1 -1
- package/dist/define/http/http-body-multipart-editor.js.map +1 -1
- package/dist/define/http/http-body-text-editor.js +1 -1
- package/dist/define/http/http-body-text-editor.js.map +1 -1
- package/dist/define/http/http-body-urlencoded-editor.js +1 -1
- package/dist/define/http/http-body-urlencoded-editor.js.map +1 -1
- package/dist/define/http/http-flows.d.ts +10 -0
- package/dist/define/http/http-flows.d.ts.map +1 -0
- package/dist/define/http/http-flows.js +13 -0
- package/dist/define/http/http-flows.js.map +1 -0
- package/dist/define/http/http-headers-form.js +1 -1
- package/dist/define/http/http-headers-form.js.map +1 -1
- package/dist/define/http/http-log-body.js +1 -1
- package/dist/define/http/http-log-body.js.map +1 -1
- package/dist/define/http/http-log-headers.js +1 -1
- package/dist/define/http/http-log-headers.js.map +1 -1
- package/dist/define/http/http-log-timings.js +1 -1
- package/dist/define/http/http-log-timings.js.map +1 -1
- package/dist/define/http/http-request-config.js +1 -1
- package/dist/define/http/http-request-config.js.map +1 -1
- package/dist/define/http/http-request-editor.js +1 -1
- package/dist/define/http/http-request-editor.js.map +1 -1
- package/dist/define/http/http-request-log.js +1 -1
- package/dist/define/http/http-request-log.js.map +1 -1
- package/dist/define/http/http-snippets.js +1 -1
- package/dist/define/http/http-snippets.js.map +1 -1
- package/dist/define/http/http-url-input.js +1 -1
- package/dist/define/http/http-url-input.js.map +1 -1
- package/dist/define/http/http-url-params-form.js +1 -1
- package/dist/define/http/http-url-params-form.js.map +1 -1
- package/dist/define/http-project/http-project-request-history.js +1 -1
- package/dist/define/http-project/http-project-request-history.js.map +1 -1
- package/dist/define/http-project/http-project-request.js +2 -2
- package/dist/define/http-project/http-project-request.js.map +1 -1
- package/dist/define/http-project/project-navigation.js +1 -1
- package/dist/define/http-project/project-navigation.js.map +1 -1
- package/dist/define/http-project/project-run-report.js +1 -1
- package/dist/define/http-project/project-run-report.js.map +1 -1
- package/dist/define/http-project/project-runner.js +2 -2
- package/dist/define/http-project/project-runner.js.map +1 -1
- package/dist/define/layout/split-view.js +1 -1
- package/dist/define/layout/split-view.js.map +1 -1
- package/dist/define/schema-design/schema-design-navigation.js +1 -1
- package/dist/define/schema-design/schema-design-navigation.js.map +1 -1
- package/dist/define/schema-design/schema-namespace-selector.js +1 -1
- package/dist/define/schema-design/schema-namespace-selector.js.map +1 -1
- package/dist/define/ui/ui-button.js +1 -1
- package/dist/define/ui/ui-button.js.map +1 -1
- package/dist/define/ui/ui-chip.js +1 -1
- package/dist/define/ui/ui-chip.js.map +1 -1
- package/dist/define/ui/ui-collapse.js +1 -1
- package/dist/define/ui/ui-collapse.js.map +1 -1
- package/dist/define/ui/ui-dialog.js +1 -1
- package/dist/define/ui/ui-dialog.js.map +1 -1
- package/dist/define/ui/ui-divider.d.ts +4 -1
- package/dist/define/ui/ui-divider.d.ts.map +1 -1
- package/dist/define/ui/ui-divider.js +11 -2
- package/dist/define/ui/ui-divider.js.map +1 -1
- package/dist/define/ui/ui-dropdown-list.js +1 -1
- package/dist/define/ui/ui-dropdown-list.js.map +1 -1
- package/dist/define/ui/ui-icon-button.js +1 -1
- package/dist/define/ui/ui-icon-button.js.map +1 -1
- package/dist/define/ui/ui-icon.js +1 -1
- package/dist/define/ui/ui-icon.js.map +1 -1
- package/dist/define/ui/ui-list-item.js +1 -1
- package/dist/define/ui/ui-list-item.js.map +1 -1
- package/dist/define/ui/ui-list.js +1 -1
- package/dist/define/ui/ui-list.js.map +1 -1
- package/dist/define/ui/ui-listbox.js +1 -1
- package/dist/define/ui/ui-listbox.js.map +1 -1
- package/dist/define/ui/ui-progress.js +1 -1
- package/dist/define/ui/ui-progress.js.map +1 -1
- package/dist/define/ui/ui-segmented-button-set.js +1 -1
- package/dist/define/ui/ui-segmented-button-set.js.map +1 -1
- package/dist/define/ui/ui-segmented-button.js +1 -1
- package/dist/define/ui/ui-segmented-button.js.map +1 -1
- package/dist/define/ui/ui-snackbar.js +1 -1
- package/dist/define/ui/ui-snackbar.js.map +1 -1
- package/dist/define/ui/ui-tab.js +1 -1
- package/dist/define/ui/ui-tab.js.map +1 -1
- package/dist/define/ui/ui-tabs.js +1 -1
- package/dist/define/ui/ui-tabs.js.map +1 -1
- package/dist/directives/data-attr.js +0 -1
- package/dist/directives/data-attr.js.map +1 -1
- package/dist/elements/ApiElement.d.ts +4 -0
- package/dist/elements/ApiElement.d.ts.map +1 -1
- package/dist/elements/ApiElement.js +6 -7
- package/dist/elements/ApiElement.js.map +1 -1
- package/dist/elements/amf/ApiAnnotationDocument.element.js +0 -2
- package/dist/elements/amf/ApiAnnotationDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiAuthorizationEditor.element.js +1 -33
- package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
- package/dist/elements/amf/ApiDocumentation.element.js +0 -91
- package/dist/elements/amf/ApiDocumentation.element.js.map +1 -1
- package/dist/elements/amf/ApiDocumentationBase.js +0 -9
- package/dist/elements/amf/ApiDocumentationBase.js.map +1 -1
- package/dist/elements/amf/ApiDocumentationDocument.element.js +0 -1
- package/dist/elements/amf/ApiDocumentationDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiNavigation.element.js +0 -97
- package/dist/elements/amf/ApiNavigation.element.js.map +1 -1
- package/dist/elements/amf/ApiOperationDocument.element.d.ts.map +1 -1
- package/dist/elements/amf/ApiOperationDocument.element.js +2 -77
- package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiParameterDocument.element.js +0 -3
- package/dist/elements/amf/ApiParameterDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js +0 -1
- package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js.map +1 -1
- package/dist/elements/amf/ApiPayloadDocument.element.js +0 -1
- package/dist/elements/amf/ApiPayloadDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiRequest.element.js +1 -79
- package/dist/elements/amf/ApiRequest.element.js.map +1 -1
- package/dist/elements/amf/ApiRequestDocument.element.js +0 -38
- package/dist/elements/amf/ApiRequestDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiRequestEditor.element.d.ts +0 -1
- package/dist/elements/amf/ApiRequestEditor.element.d.ts.map +1 -1
- package/dist/elements/amf/ApiRequestEditor.element.js +0 -121
- package/dist/elements/amf/ApiRequestEditor.element.js.map +1 -1
- package/dist/elements/amf/ApiResourceDocument.element.js +0 -75
- package/dist/elements/amf/ApiResourceDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiResponseDocument.element.js +0 -17
- package/dist/elements/amf/ApiResponseDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiSchemaDocument.element.js +0 -28
- package/dist/elements/amf/ApiSchemaDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiSecurityDocument.element.js +0 -28
- package/dist/elements/amf/ApiSecurityDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiSecurityRequirementDocument.element.js +0 -1
- package/dist/elements/amf/ApiSecurityRequirementDocument.element.js.map +1 -1
- package/dist/elements/amf/ApiServerPicker.element.js +2 -65
- package/dist/elements/amf/ApiServerPicker.element.js.map +1 -1
- package/dist/elements/amf/ApiSummary.element.js +0 -26
- package/dist/elements/amf/ApiSummary.element.js.map +1 -1
- package/dist/elements/amf/authorization/AmfApiKey.js +0 -5
- package/dist/elements/amf/authorization/AmfApiKey.js.map +1 -1
- package/dist/elements/amf/authorization/AmfBasic.js +0 -4
- package/dist/elements/amf/authorization/AmfBasic.js.map +1 -1
- package/dist/elements/amf/authorization/AmfBearer.js +0 -4
- package/dist/elements/amf/authorization/AmfBearer.js.map +1 -1
- package/dist/elements/amf/authorization/AmfOauth2.js +0 -13
- package/dist/elements/amf/authorization/AmfOauth2.js.map +1 -1
- package/dist/elements/amf/authorization/AmfOidc.js +0 -4
- package/dist/elements/amf/authorization/AmfOidc.js.map +1 -1
- package/dist/elements/amf/authorization/AmfPassThrough.js +0 -6
- package/dist/elements/amf/authorization/AmfPassThrough.js.map +1 -1
- package/dist/elements/amf/authorization/AmfRamlCustom.js +0 -6
- package/dist/elements/amf/authorization/AmfRamlCustom.js.map +1 -1
- package/dist/elements/authorization/OAuth2Authorize.js +0 -14
- package/dist/elements/authorization/OAuth2Authorize.js.map +1 -1
- package/dist/elements/authorization/OidcAuthorize.js +0 -14
- package/dist/elements/authorization/OidcAuthorize.js.map +1 -1
- package/dist/elements/authorization/ui/ApiKeyAuthorization.js +0 -2
- package/dist/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
- package/dist/elements/authorization/ui/Authorization.d.ts +2 -1
- package/dist/elements/authorization/ui/Authorization.d.ts.map +1 -1
- package/dist/elements/authorization/ui/Authorization.js +18 -35
- package/dist/elements/authorization/ui/Authorization.js.map +1 -1
- package/dist/elements/authorization/ui/CcAuthorization.js +1 -3
- package/dist/elements/authorization/ui/CcAuthorization.js.map +1 -1
- package/dist/elements/authorization/ui/OAuth2Authorization.js +21 -50
- package/dist/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
- package/dist/elements/authorization/ui/OidcAuthorization.js +4 -6
- package/dist/elements/authorization/ui/OidcAuthorization.js.map +1 -1
- package/dist/elements/code/HttpSnippets.js +9 -8
- package/dist/elements/code/HttpSnippets.js.map +1 -1
- package/dist/elements/dialog/ConfirmDelete.js +0 -12
- package/dist/elements/dialog/ConfirmDelete.js.map +1 -1
- package/dist/elements/dialog/DeleteCookieAction.element.d.ts +20 -0
- package/dist/elements/dialog/DeleteCookieAction.element.d.ts.map +1 -0
- package/dist/elements/dialog/DeleteCookieAction.element.js +93 -0
- package/dist/elements/dialog/DeleteCookieAction.element.js.map +1 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.d.ts +3 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.d.ts.map +1 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.js +13 -0
- package/dist/elements/dialog/DeleteCookieAction.styles.js.map +1 -0
- package/dist/elements/dialog/Rename.d.ts +7 -6
- package/dist/elements/dialog/Rename.d.ts.map +1 -1
- package/dist/elements/dialog/Rename.js +7 -12
- package/dist/elements/dialog/Rename.js.map +1 -1
- package/dist/elements/dialog/SetCookieAction.element.d.ts +22 -0
- package/dist/elements/dialog/SetCookieAction.element.d.ts.map +1 -0
- package/dist/elements/dialog/SetCookieAction.element.js +173 -0
- package/dist/elements/dialog/SetCookieAction.element.js.map +1 -0
- package/dist/elements/environment/EnvironmentEditor.d.ts +24 -3
- package/dist/elements/environment/EnvironmentEditor.d.ts.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.js +73 -30
- package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.styles.d.ts.map +1 -1
- package/dist/elements/environment/EnvironmentEditor.styles.js +5 -0
- package/dist/elements/environment/EnvironmentEditor.styles.js.map +1 -1
- package/dist/elements/environment/ServerEditor.d.ts +3 -3
- package/dist/elements/environment/ServerEditor.d.ts.map +1 -1
- package/dist/elements/environment/ServerEditor.js +10 -51
- package/dist/elements/environment/ServerEditor.js.map +1 -1
- package/dist/elements/environment/VariablesEditor.d.ts +0 -1
- package/dist/elements/environment/VariablesEditor.d.ts.map +1 -1
- package/dist/elements/environment/VariablesEditor.js +10 -18
- package/dist/elements/environment/VariablesEditor.js.map +1 -1
- package/dist/elements/files/ShareFile.js +19 -57
- package/dist/elements/files/ShareFile.js.map +1 -1
- package/dist/elements/har/HarViewer.js +6 -7
- package/dist/elements/har/HarViewer.js.map +1 -1
- package/dist/elements/highlight/MarkedHighlight.js +4 -56
- package/dist/elements/highlight/MarkedHighlight.js.map +1 -1
- package/dist/elements/highlight/Prism.styles.d.ts.map +1 -1
- package/dist/elements/highlight/Prism.styles.js +12 -5
- package/dist/elements/highlight/Prism.styles.js.map +1 -1
- package/dist/elements/highlight/PrismHighlight.js +9 -18
- package/dist/elements/highlight/PrismHighlight.js.map +1 -1
- package/dist/elements/highlight/PrismHighlighter.js +4 -6
- package/dist/elements/highlight/PrismHighlighter.js.map +1 -1
- package/dist/elements/http/BodyEditor.d.ts +0 -4
- package/dist/elements/http/BodyEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyEditor.js +31 -49
- package/dist/elements/http/BodyEditor.js.map +1 -1
- package/dist/elements/http/BodyMultipartEditor.d.ts +3 -16
- package/dist/elements/http/BodyMultipartEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyMultipartEditor.js +20 -37
- package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
- package/dist/elements/http/BodyTextEditor.d.ts +0 -1
- package/dist/elements/http/BodyTextEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyTextEditor.js +2 -18
- package/dist/elements/http/BodyTextEditor.js.map +1 -1
- package/dist/elements/http/BodyUrlEncodedEditor.d.ts +3 -3
- package/dist/elements/http/BodyUrlEncodedEditor.d.ts.map +1 -1
- package/dist/elements/http/BodyUrlEncodedEditor.js +23 -26
- package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
- package/dist/elements/http/HeadersForm.d.ts +0 -4
- package/dist/elements/http/HeadersForm.d.ts.map +1 -1
- package/dist/elements/http/HeadersForm.js +16 -23
- package/dist/elements/http/HeadersForm.js.map +1 -1
- package/dist/elements/http/HttpAssertions.element.d.ts +55 -0
- package/dist/elements/http/HttpAssertions.element.d.ts.map +1 -0
- package/dist/elements/http/HttpAssertions.element.js +264 -0
- package/dist/elements/http/HttpAssertions.element.js.map +1 -0
- package/dist/elements/http/HttpAssertions.styles.d.ts.map +1 -1
- package/dist/elements/http/HttpAssertions.styles.js +7 -156
- package/dist/elements/http/HttpAssertions.styles.js.map +1 -1
- package/dist/elements/http/HttpFlows.common.d.ts +3 -0
- package/dist/elements/http/HttpFlows.common.d.ts.map +1 -0
- package/dist/elements/http/HttpFlows.common.js +181 -0
- package/dist/elements/http/HttpFlows.common.js.map +1 -0
- package/dist/elements/http/HttpFlows.element.d.ts +97 -0
- package/dist/elements/http/HttpFlows.element.d.ts.map +1 -0
- package/dist/elements/http/HttpFlows.element.js +684 -0
- package/dist/elements/http/HttpFlows.element.js.map +1 -0
- package/dist/elements/http/HttpFlows.styles.d.ts +3 -0
- package/dist/elements/http/HttpFlows.styles.d.ts.map +1 -0
- package/dist/elements/http/HttpFlows.styles.js +28 -0
- package/dist/elements/http/HttpFlows.styles.js.map +1 -0
- package/dist/elements/http/HttpFlowsUi.d.ts +172 -0
- package/dist/elements/http/HttpFlowsUi.d.ts.map +1 -0
- package/dist/elements/http/HttpFlowsUi.js +1256 -0
- package/dist/elements/http/HttpFlowsUi.js.map +1 -0
- package/dist/elements/http/LogBody.js +10 -21
- package/dist/elements/http/LogBody.js.map +1 -1
- package/dist/elements/http/LogHeaders.js +4 -23
- package/dist/elements/http/LogHeaders.js.map +1 -1
- package/dist/elements/http/LogTimings.js +11 -13
- package/dist/elements/http/LogTimings.js.map +1 -1
- package/dist/elements/http/RequestConfigElement.d.ts +0 -1
- package/dist/elements/http/RequestConfigElement.d.ts.map +1 -1
- package/dist/elements/http/RequestConfigElement.js +15 -15
- package/dist/elements/http/RequestConfigElement.js.map +1 -1
- package/dist/elements/http/RequestEditor.d.ts +10 -10
- package/dist/elements/http/RequestEditor.d.ts.map +1 -1
- package/dist/elements/http/RequestEditor.js +116 -111
- package/dist/elements/http/RequestEditor.js.map +1 -1
- package/dist/elements/http/RequestLog.js +9 -14
- package/dist/elements/http/RequestLog.js.map +1 -1
- package/dist/elements/http/UrlInput.d.ts +3 -3
- package/dist/elements/http/UrlInput.d.ts.map +1 -1
- package/dist/elements/http/UrlInput.js +17 -27
- package/dist/elements/http/UrlInput.js.map +1 -1
- package/dist/elements/http/UrlParamsForm.d.ts +0 -1
- package/dist/elements/http/UrlParamsForm.d.ts.map +1 -1
- package/dist/elements/http/UrlParamsForm.js +16 -16
- package/dist/elements/http/UrlParamsForm.js.map +1 -1
- package/dist/elements/layout/LayoutManager.js +16 -24
- package/dist/elements/layout/LayoutManager.js.map +1 -1
- package/dist/elements/layout/LayoutPanelElement.js +17 -23
- package/dist/elements/layout/LayoutPanelElement.js.map +1 -1
- package/dist/elements/layout/SplitItem.js +4 -12
- package/dist/elements/layout/SplitItem.js.map +1 -1
- package/dist/elements/layout/SplitLayout.js +18 -24
- package/dist/elements/layout/SplitLayout.js.map +1 -1
- package/dist/elements/layout/SplitPanel.js +10 -16
- package/dist/elements/layout/SplitPanel.js.map +1 -1
- package/dist/elements/layout/SplitView.js +17 -26
- package/dist/elements/layout/SplitView.js.map +1 -1
- package/dist/elements/layout/SplitView.styles.d.ts.map +1 -1
- package/dist/elements/layout/SplitView.styles.js +1 -0
- package/dist/elements/layout/SplitView.styles.js.map +1 -1
- package/dist/elements/navigation/AppNavigationElement.js +8 -47
- package/dist/elements/navigation/AppNavigationElement.js.map +1 -1
- package/dist/elements/navigation/AppNavigationItem.styles.d.ts.map +1 -1
- package/dist/elements/navigation/AppNavigationItem.styles.js +2 -0
- package/dist/elements/navigation/AppNavigationItem.styles.js.map +1 -1
- package/dist/elements/navigation/AppNavigationItemElement.js +19 -24
- package/dist/elements/navigation/AppNavigationItemElement.js.map +1 -1
- package/dist/elements/project/HttpProjectRequest.d.ts +2 -1
- package/dist/elements/project/HttpProjectRequest.d.ts.map +1 -1
- package/dist/elements/project/HttpProjectRequest.js +14 -43
- package/dist/elements/project/HttpProjectRequest.js.map +1 -1
- package/dist/elements/project/HttpProjectRequestHistory.js +9 -35
- package/dist/elements/project/HttpProjectRequestHistory.js.map +1 -1
- package/dist/elements/project/ProjectNavigation.js +0 -4
- package/dist/elements/project/ProjectNavigation.js.map +1 -1
- package/dist/elements/project/ProjectRunReport.js +4 -15
- package/dist/elements/project/ProjectRunReport.js.map +1 -1
- package/dist/elements/project/ProjectRunner.d.ts +0 -1
- package/dist/elements/project/ProjectRunner.d.ts.map +1 -1
- package/dist/elements/project/ProjectRunner.js +3 -51
- package/dist/elements/project/ProjectRunner.js.map +1 -1
- package/dist/elements/schema-design/AssociationFormElement.d.ts +0 -1
- package/dist/elements/schema-design/AssociationFormElement.d.ts.map +1 -1
- package/dist/elements/schema-design/AssociationFormElement.js +2 -18
- package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
- package/dist/elements/schema-design/DataEntityEditorElement.d.ts +2 -2
- package/dist/elements/schema-design/DataEntityEditorElement.d.ts.map +1 -1
- package/dist/elements/schema-design/DataEntityEditorElement.js +5 -27
- package/dist/elements/schema-design/DataEntityEditorElement.js.map +1 -1
- package/dist/elements/schema-design/DataModelVisualizationElement.js +0 -16
- package/dist/elements/schema-design/DataModelVisualizationElement.js.map +1 -1
- package/dist/elements/schema-design/DataSchemaDocument.d.ts +0 -1
- package/dist/elements/schema-design/DataSchemaDocument.d.ts.map +1 -1
- package/dist/elements/schema-design/DataSchemaDocument.js +4 -43
- package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
- package/dist/elements/schema-design/EntityFormElement.d.ts +0 -1
- package/dist/elements/schema-design/EntityFormElement.d.ts.map +1 -1
- package/dist/elements/schema-design/EntityFormElement.js +4 -25
- package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
- package/dist/elements/schema-design/PropertyFormElement.d.ts +1 -2
- package/dist/elements/schema-design/PropertyFormElement.d.ts.map +1 -1
- package/dist/elements/schema-design/PropertyFormElement.js +8 -23
- package/dist/elements/schema-design/PropertyFormElement.js.map +1 -1
- package/dist/elements/schema-design/SchemaDesignNavigation.js +0 -9
- package/dist/elements/schema-design/SchemaDesignNavigation.js.map +1 -1
- package/dist/elements/schema-design/SchemaNamespaceSelector.js +0 -9
- package/dist/elements/schema-design/SchemaNamespaceSelector.js.map +1 -1
- package/dist/elements/user/UserAvatarElement.js +0 -9
- package/dist/elements/user/UserAvatarElement.js.map +1 -1
- package/dist/events/http-client/models/CertificatesEvents.js +2 -2
- package/dist/events/http-client/models/CertificatesEvents.js.map +1 -1
- package/dist/http-client/idb/Base.js +5 -10
- package/dist/http-client/idb/Base.js.map +1 -1
- package/dist/http-client/idb/LegacyMockedStore.js +0 -1
- package/dist/http-client/idb/LegacyMockedStore.js.map +1 -1
- package/dist/http-client/idb/MockedStore.js +3 -1
- package/dist/http-client/idb/MockedStore.js.map +1 -1
- package/dist/http-client/store/DataImportProcessor.js +0 -3
- package/dist/http-client/store/DataImportProcessor.js.map +1 -1
- package/dist/http-client/store/HttpClientIdbDatabase.js +8 -7
- package/dist/http-client/store/HttpClientIdbDatabase.js.map +1 -1
- package/dist/http-client/store/IdbThread.js +23 -20
- package/dist/http-client/store/IdbThread.js.map +1 -1
- package/dist/http-client/store/idb/IdbProjectUi.js +4 -1
- package/dist/http-client/store/idb/IdbProjectUi.js.map +1 -1
- package/dist/http-client/store/idb/IdbStore.js +0 -2
- package/dist/http-client/store/idb/IdbStore.js.map +1 -1
- package/dist/http-client/store/idb/IdbUrlHistory.js +4 -1
- package/dist/http-client/store/idb/IdbUrlHistory.js.map +1 -1
- package/dist/http-client/store/idb/IdbWsHistory.js +4 -1
- package/dist/http-client/store/idb/IdbWsHistory.js.map +1 -1
- package/dist/lib/chart/HttpHistoryChart.js +7 -8
- package/dist/lib/chart/HttpHistoryChart.js.map +1 -1
- package/dist/mixins/FileDropMixin.js +0 -1
- package/dist/mixins/FileDropMixin.js.map +1 -1
- package/dist/mixins/RenderableMixin.js +11 -15
- package/dist/mixins/RenderableMixin.js.map +1 -1
- package/dist/pages/ApplicationScreen.d.ts +1 -1
- package/dist/pages/ApplicationScreen.d.ts.map +1 -1
- package/dist/pages/ApplicationScreen.js +35 -56
- package/dist/pages/ApplicationScreen.js.map +1 -1
- package/dist/pages/api-client/ApiClient.screen.js +11 -20
- package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
- package/dist/pages/api-client/ApiClient.styles.d.ts.map +1 -1
- package/dist/pages/api-client/ApiClient.styles.js +22 -3
- package/dist/pages/api-client/ApiClient.styles.js.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.d.ts +2 -0
- package/dist/pages/api-client/Authenticate.screen.d.ts.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.js +23 -9
- package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
- package/dist/pages/api-client/StoreConfig.screen.d.ts.map +1 -1
- package/dist/pages/api-client/StoreConfig.screen.js +25 -39
- package/dist/pages/api-client/StoreConfig.screen.js.map +1 -1
- package/dist/pages/api-client/StoreConfig.styles.d.ts.map +1 -1
- package/dist/pages/api-client/StoreConfig.styles.js +5 -0
- package/dist/pages/api-client/StoreConfig.styles.js.map +1 -1
- package/dist/pages/api-client/Telemetry.screen.js +1 -2
- package/dist/pages/api-client/Telemetry.screen.js.map +1 -1
- package/dist/pages/api-client/pages/Files.page.d.ts +1 -0
- package/dist/pages/api-client/pages/Files.page.d.ts.map +1 -1
- package/dist/pages/api-client/pages/Files.page.js +8 -28
- package/dist/pages/api-client/pages/Files.page.js.map +1 -1
- package/dist/pages/api-client/pages/Settings.page.js +2 -4
- package/dist/pages/api-client/pages/Settings.page.js.map +1 -1
- package/dist/pages/api-client/pages/Trash.page.js +2 -13
- package/dist/pages/api-client/pages/Trash.page.js.map +1 -1
- package/dist/pages/demo/DemoPage.js +13 -13
- package/dist/pages/demo/DemoPage.js.map +1 -1
- package/dist/pages/http-project/HttpProject.screen.d.ts +0 -8
- package/dist/pages/http-project/HttpProject.screen.d.ts.map +1 -1
- package/dist/pages/http-project/HttpProject.screen.js +39 -50
- package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
- package/dist/pages/http-project/types.d.ts +8 -6
- package/dist/pages/http-project/types.d.ts.map +1 -1
- package/dist/pages/http-project/types.js.map +1 -1
- package/dist/pages/schema-design/SchemaDesigner.screen.js +14 -27
- package/dist/pages/schema-design/SchemaDesigner.screen.js.map +1 -1
- package/dist/store/HttpStore.js +0 -3
- package/dist/store/HttpStore.js.map +1 -1
- package/dist/store/UserCache.js +5 -5
- package/dist/store/UserCache.js.map +1 -1
- package/dist/styles/m3/surface.module.d.ts.map +1 -1
- package/dist/styles/m3/surface.module.js +11 -27
- package/dist/styles/m3/surface.module.js.map +1 -1
- package/dist/ui/UiElement.d.ts +4 -0
- package/dist/ui/UiElement.d.ts.map +1 -1
- package/dist/ui/UiElement.js +10 -5
- package/dist/ui/UiElement.js.map +1 -1
- package/dist/ui/button/SegmentedButton.js +9 -11
- package/dist/ui/button/SegmentedButton.js.map +1 -1
- package/dist/ui/button/SegmentedButton.styles.d.ts.map +1 -1
- package/dist/ui/button/SegmentedButton.styles.js +3 -1
- package/dist/ui/button/SegmentedButton.styles.js.map +1 -1
- package/dist/ui/button/SegmentedButtonsSet.js +6 -7
- package/dist/ui/button/SegmentedButtonsSet.js.map +1 -1
- package/dist/ui/button/UiButton.js +17 -39
- package/dist/ui/button/UiButton.js.map +1 -1
- package/dist/ui/button/UiIconButton.js +9 -35
- package/dist/ui/button/UiIconButton.js.map +1 -1
- package/dist/ui/chip/UiChip.js +9 -49
- package/dist/ui/chip/UiChip.js.map +1 -1
- package/dist/ui/collapse/UiCollapse.js +15 -20
- package/dist/ui/collapse/UiCollapse.js.map +1 -1
- package/dist/ui/controllers/ActionController.js +143 -144
- package/dist/ui/controllers/ActionController.js.map +1 -1
- package/dist/ui/controllers/RadioSelectionController.js +0 -1
- package/dist/ui/controllers/RadioSelectionController.js.map +1 -1
- package/dist/ui/date/DateTime.js +3 -3
- package/dist/ui/date/DateTime.js.map +1 -1
- package/dist/ui/dialog/UiDialog.d.ts +3 -0
- package/dist/ui/dialog/UiDialog.d.ts.map +1 -1
- package/dist/ui/dialog/UiDialog.js +17 -38
- package/dist/ui/dialog/UiDialog.js.map +1 -1
- package/dist/ui/effects/ripple.d.ts.map +1 -1
- package/dist/ui/effects/ripple.js +25 -19
- package/dist/ui/effects/ripple.js.map +1 -1
- package/dist/ui/effects/rippleDirective.js +6 -7
- package/dist/ui/effects/rippleDirective.js.map +1 -1
- package/dist/ui/icons/Icons.d.ts +3 -2
- package/dist/ui/icons/Icons.d.ts.map +1 -1
- package/dist/ui/icons/Icons.js +2 -1
- package/dist/ui/icons/Icons.js.map +1 -1
- package/dist/ui/icons/UiIcon.js +4 -3
- package/dist/ui/icons/UiIcon.js.map +1 -1
- package/dist/ui/input/CheckboxElement.js +12 -10
- package/dist/ui/input/CheckboxElement.js.map +1 -1
- package/dist/ui/input/CheckedElement.d.ts +1 -1
- package/dist/ui/input/CheckedElement.d.ts.map +1 -1
- package/dist/ui/input/CheckedElement.js +5 -16
- package/dist/ui/input/CheckedElement.js.map +1 -1
- package/dist/ui/input/Input.js +170 -235
- package/dist/ui/input/Input.js.map +1 -1
- package/dist/ui/input/RadioElement.js +13 -11
- package/dist/ui/input/RadioElement.js.map +1 -1
- package/dist/ui/input/SwitchElement.js +0 -18
- package/dist/ui/input/SwitchElement.js.map +1 -1
- package/dist/ui/input/TextAreaElement.js +0 -15
- package/dist/ui/input/TextAreaElement.js.map +1 -1
- package/dist/ui/list/{DividerElement.d.ts → UiDivider.element.d.ts} +6 -6
- package/dist/ui/list/UiDivider.element.d.ts.map +1 -0
- package/dist/ui/list/UiDivider.element.js +39 -0
- package/dist/ui/list/UiDivider.element.js.map +1 -0
- package/dist/ui/list/UiDivider.styles.d.ts +3 -0
- package/dist/ui/list/UiDivider.styles.d.ts.map +1 -0
- package/dist/ui/list/UiDivider.styles.js +49 -0
- package/dist/ui/list/UiDivider.styles.js.map +1 -0
- package/dist/ui/list/UiDropdownList.js +7 -48
- package/dist/ui/list/UiDropdownList.js.map +1 -1
- package/dist/ui/list/UiList.js +3 -15
- package/dist/ui/list/UiList.js.map +1 -1
- package/dist/ui/list/UiListItem.js +4 -17
- package/dist/ui/list/UiListItem.js.map +1 -1
- package/dist/ui/list/UiListbox.js +0 -1
- package/dist/ui/list/UiListbox.js.map +1 -1
- package/dist/ui/notification/SnackNotifications.js +1 -2
- package/dist/ui/notification/SnackNotifications.js.map +1 -1
- package/dist/ui/notification/Snackbar.js +27 -51
- package/dist/ui/notification/Snackbar.js.map +1 -1
- package/dist/ui/progress/Range.js +24 -23
- package/dist/ui/progress/Range.js.map +1 -1
- package/dist/ui/progress/UiProgress.js +0 -11
- package/dist/ui/progress/UiProgress.js.map +1 -1
- package/dist/ui/table/DataTable.js +7 -12
- package/dist/ui/table/DataTable.js.map +1 -1
- package/dist/ui/tabs/UiTab.js +24 -25
- package/dist/ui/tabs/UiTab.js.map +1 -1
- package/dist/ui/tabs/UiTabs.d.ts +13 -1
- package/dist/ui/tabs/UiTabs.d.ts.map +1 -1
- package/dist/ui/tabs/UiTabs.js +62 -47
- package/dist/ui/tabs/UiTabs.js.map +1 -1
- package/dist/visualization/elements/VizWorkspaceElement.js +12 -21
- package/dist/visualization/elements/VizWorkspaceElement.js.map +1 -1
- package/dist/visualization/lib/AssociationAnchors.js +16 -28
- package/dist/visualization/lib/AssociationAnchors.js.map +1 -1
- package/dist/visualization/lib/Point.js +0 -2
- package/dist/visualization/lib/Point.js.map +1 -1
- package/dist/visualization/lib/SelectionManager.js +10 -11
- package/dist/visualization/lib/SelectionManager.js.map +1 -1
- package/dist/visualization/lib/WorkspaceAlignment.js +0 -1
- package/dist/visualization/lib/WorkspaceAlignment.js.map +1 -1
- package/dist/visualization/lib/WorkspaceDebugging.js +5 -8
- package/dist/visualization/lib/WorkspaceDebugging.js.map +1 -1
- package/dist/visualization/lib/WorkspaceEdges.js +17 -19
- package/dist/visualization/lib/WorkspaceEdges.js.map +1 -1
- package/dist/visualization/lib/WorkspaceGestures.js +0 -3
- package/dist/visualization/lib/WorkspaceGestures.js.map +1 -1
- package/dist/visualization/lib/WorkspaceSizing.js +4 -6
- package/dist/visualization/lib/WorkspaceSizing.js.map +1 -1
- package/dist/visualization/lib/lines/RectilinearLine.js +8 -34
- package/dist/visualization/lib/lines/RectilinearLine.js.map +1 -1
- package/dist/visualization/lib/tips/RectilinearTip.js +0 -1
- package/dist/visualization/lib/tips/RectilinearTip.js.map +1 -1
- package/dist/visualization/lib/tips/TipArtist.js +0 -3
- package/dist/visualization/lib/tips/TipArtist.js.map +1 -1
- package/dist/visualization/plugin/dnd/DragAndDropPlugin.js +3 -5
- package/dist/visualization/plugin/dnd/DragAndDropPlugin.js.map +1 -1
- package/dist/visualization/plugin/group-selection/GroupSelection.js +19 -19
- package/dist/visualization/plugin/group-selection/GroupSelection.js.map +1 -1
- package/dist/visualization/plugin/positioning/WorkspaceLayout.js +21 -38
- package/dist/visualization/plugin/positioning/WorkspaceLayout.js.map +1 -1
- package/package.json +3 -2
- package/src/define/dialog/delete-cookie-action-dialog.ts +16 -0
- package/src/define/dialog/set-cookie-action-dialog.ts +16 -0
- package/src/define/http/http-assertions.ts +3 -3
- package/src/define/http/http-flows.ts +15 -0
- package/src/define/ui/ui-divider.ts +7 -2
- package/src/elements/ApiElement.ts +7 -0
- package/src/elements/amf/ApiAuthorizationEditor.element.ts +1 -1
- package/src/elements/amf/ApiOperationDocument.element.ts +2 -1
- package/src/elements/amf/ApiRequest.element.ts +1 -1
- package/src/elements/amf/ApiRequestEditor.element.ts +0 -4
- package/src/elements/authorization/ui/Authorization.ts +3 -5
- package/src/elements/dialog/DeleteCookieAction.element.ts +100 -0
- package/src/elements/dialog/DeleteCookieAction.styles.ts +14 -0
- package/src/elements/dialog/Rename.ts +8 -7
- package/src/elements/dialog/SetCookieAction.element.ts +183 -0
- package/src/elements/environment/EnvironmentEditor.styles.ts +5 -0
- package/src/elements/environment/EnvironmentEditor.ts +81 -22
- package/src/elements/environment/ServerEditor.ts +4 -8
- package/src/elements/environment/VariablesEditor.ts +3 -7
- package/src/elements/highlight/Prism.styles.ts +12 -5
- package/src/elements/http/BodyEditor.ts +10 -17
- package/src/elements/http/BodyMultipartEditor.ts +3 -20
- package/src/elements/http/BodyTextEditor.ts +0 -4
- package/src/elements/http/BodyUrlEncodedEditor.ts +5 -8
- package/src/elements/http/HeadersForm.ts +2 -9
- package/src/elements/http/HttpAssertions.element.ts +286 -0
- package/src/elements/http/HttpAssertions.styles.ts +7 -156
- package/src/elements/http/HttpFlows.common.ts +181 -0
- package/src/elements/http/HttpFlows.element.ts +722 -0
- package/src/elements/http/HttpFlows.styles.ts +29 -0
- package/src/elements/http/HttpFlowsUi.ts +1327 -0
- package/src/elements/http/RequestConfigElement.ts +10 -14
- package/src/elements/http/RequestEditor.ts +77 -35
- package/src/elements/http/UrlInput.ts +6 -6
- package/src/elements/http/UrlParamsForm.ts +2 -6
- package/src/elements/layout/SplitView.styles.ts +1 -0
- package/src/elements/navigation/AppNavigationItem.styles.ts +2 -0
- package/src/elements/project/HttpProjectRequest.ts +16 -5
- package/src/elements/project/ProjectRunner.ts +3 -7
- package/src/elements/schema-design/AssociationFormElement.ts +4 -8
- package/src/elements/schema-design/DataEntityEditorElement.ts +8 -8
- package/src/elements/schema-design/DataSchemaDocument.ts +5 -9
- package/src/elements/schema-design/EntityFormElement.ts +6 -10
- package/src/elements/schema-design/PropertyFormElement.ts +11 -15
- package/src/pages/ApplicationScreen.ts +1 -1
- package/src/pages/api-client/ApiClient.styles.ts +22 -3
- package/src/pages/api-client/Authenticate.screen.ts +19 -3
- package/src/pages/api-client/StoreConfig.screen.ts +4 -2
- package/src/pages/api-client/StoreConfig.styles.ts +5 -0
- package/src/pages/api-client/pages/Files.page.ts +2 -1
- package/src/pages/http-project/HttpProject.screen.ts +14 -26
- package/src/pages/http-project/types.ts +8 -6
- package/src/styles/m3/surface.module.ts +11 -27
- package/src/styles/m3/theme.css +36 -0
- package/src/styles/m3/tokens.css +11 -0
- package/src/ui/UiElement.ts +7 -0
- package/src/ui/button/SegmentedButton.styles.ts +3 -1
- package/src/ui/dialog/UiDialog.ts +3 -0
- package/src/ui/effects/ripple.ts +6 -1
- package/src/ui/icons/Icons.ts +3 -2
- package/src/ui/input/CheckedElement.ts +3 -3
- package/src/ui/input/Input.ts +1 -1
- package/src/ui/list/UiDivider.element.ts +41 -0
- package/src/ui/list/UiDivider.styles.ts +49 -0
- package/src/ui/tabs/UiTabs.ts +55 -13
- package/test/amf/authorization/OAuth2Method.test.ts +1 -1
- package/test/elements/http/HttpAssertions.test.ts +5 -6
- package/test/elements/http/HttpFlows.test.ts +485 -0
- package/tsconfig.json +2 -2
- package/dist/elements/http/HttpAssertions.d.ts +0 -114
- package/dist/elements/http/HttpAssertions.d.ts.map +0 -1
- package/dist/elements/http/HttpAssertions.js +0 -1144
- package/dist/elements/http/HttpAssertions.js.map +0 -1
- package/dist/elements/http/internals.d.ts +0 -150
- package/dist/elements/http/internals.d.ts.map +0 -1
- package/dist/elements/http/internals.js +0 -150
- package/dist/elements/http/internals.js.map +0 -1
- package/dist/ui/list/DividerElement.d.ts.map +0 -1
- package/dist/ui/list/DividerElement.js +0 -87
- package/dist/ui/list/DividerElement.js.map +0 -1
- package/src/elements/http/HttpAssertions.ts +0 -1187
- package/src/elements/http/internals.ts +0 -151
- package/src/http-client/docs/Files.md +0 -28
- package/src/ui/list/DividerElement.ts +0 -84
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
<title>HTTP Assertions</title>
|
|
8
8
|
<link href="../../../src/styles/m3/tokens.css" rel="stylesheet" type="text/css" />
|
|
9
9
|
<link href="../../../src/styles/m3/theme.css" rel="stylesheet" type="text/css" />
|
|
10
|
+
<style>
|
|
11
|
+
.surface1 { z-index: 0; }
|
|
12
|
+
</style>
|
|
10
13
|
</head>
|
|
11
14
|
|
|
12
15
|
<body class="demo">
|
|
@@ -2,7 +2,7 @@ import { html, TemplateResult } from 'lit';
|
|
|
2
2
|
import { IHttpAssertion } from '@api-client/core/build/browser.js';
|
|
3
3
|
import { DemoPage } from '../../../src/pages/demo/DemoPage.js';
|
|
4
4
|
import { reactive } from '../../../src/lib/decorators.js';
|
|
5
|
-
import HttpAssertions from '../../../src/elements/http/HttpAssertions.js';
|
|
5
|
+
import type HttpAssertions from '../../../src/elements/http/HttpAssertions.element.js';
|
|
6
6
|
import '../../../src/define/http/http-assertions.js';
|
|
7
7
|
|
|
8
8
|
const MODEL_STORE_KEY = 'demo.request-ui.editor.assertions';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
|
|
7
|
+
<title>HTTP Flows</title>
|
|
8
|
+
<link href="../../../src/styles/m3/tokens.css" rel="stylesheet" type="text/css" />
|
|
9
|
+
<link href="../../../src/styles/m3/theme.css" rel="stylesheet" type="text/css" />
|
|
10
|
+
<style>
|
|
11
|
+
.surface1,
|
|
12
|
+
.surface2 {
|
|
13
|
+
z-index: 0;
|
|
14
|
+
}
|
|
15
|
+
</style>
|
|
16
|
+
</head>
|
|
17
|
+
|
|
18
|
+
<body class="demo">
|
|
19
|
+
<div id="app"></div>
|
|
20
|
+
<script type="module" src="http-flows.ts"></script>
|
|
21
|
+
</body>
|
|
22
|
+
|
|
23
|
+
</html>
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { html, TemplateResult } from 'lit';
|
|
2
|
+
import { IHttpFlow } from '@api-client/core/build/browser.js';
|
|
3
|
+
import { DemoPage } from '../../../src/pages/demo/DemoPage.js';
|
|
4
|
+
import { reactive } from '../../../src/lib/decorators.js';
|
|
5
|
+
import HttpFlows from '../../../src/elements/http/HttpFlows.element.js';
|
|
6
|
+
import '../../../src/define/http/http-flows.js';
|
|
7
|
+
|
|
8
|
+
const MODEL_STORE_KEY = 'demo.request-ui.editor.flows';
|
|
9
|
+
|
|
10
|
+
class ComponentDemoPage extends DemoPage {
|
|
11
|
+
componentName = 'HTTP Flows';
|
|
12
|
+
|
|
13
|
+
@reactive() initialized: boolean;
|
|
14
|
+
|
|
15
|
+
@reactive() model: IHttpFlow[] = [];
|
|
16
|
+
|
|
17
|
+
constructor() {
|
|
18
|
+
super();
|
|
19
|
+
this.initialized = false;
|
|
20
|
+
this.init();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
async init(): Promise<void> {
|
|
24
|
+
await this.restoreModel();
|
|
25
|
+
this.initialized = true;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
async restoreModel(): Promise<void> {
|
|
29
|
+
const data = localStorage.getItem(MODEL_STORE_KEY);
|
|
30
|
+
if (!data) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
const tmp = JSON.parse(data);
|
|
35
|
+
if (tmp) {
|
|
36
|
+
const model = tmp as IHttpFlow[];
|
|
37
|
+
this.model = model;
|
|
38
|
+
}
|
|
39
|
+
} catch (e) {
|
|
40
|
+
//
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
storeModel(): void {
|
|
45
|
+
const { model } = this;
|
|
46
|
+
localStorage.setItem(MODEL_STORE_KEY, JSON.stringify(model));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
handleModelChange(e: Event): void {
|
|
50
|
+
const node = e.target as HttpFlows;
|
|
51
|
+
const { model = [] } = node;
|
|
52
|
+
this.model = model;
|
|
53
|
+
this.storeModel();
|
|
54
|
+
console.log('model changed', model);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
contentTemplate(): TemplateResult {
|
|
58
|
+
if (!this.initialized) {
|
|
59
|
+
return this.renderLoader();
|
|
60
|
+
}
|
|
61
|
+
return this.renderDemo();
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
renderLoader(): TemplateResult {
|
|
65
|
+
return html`
|
|
66
|
+
<a href="./">Back</a>
|
|
67
|
+
<div class="screen-loader">
|
|
68
|
+
<p>Loading demo page</p>
|
|
69
|
+
<progress></progress>
|
|
70
|
+
</div>
|
|
71
|
+
`;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
renderDemo(): TemplateResult {
|
|
75
|
+
return html`
|
|
76
|
+
<a href="./">Back</a>
|
|
77
|
+
<section class="demo-section">
|
|
78
|
+
<h2 class="title-large">HTTP flows editor</h2>
|
|
79
|
+
|
|
80
|
+
<div class="editor-wrapper surface1">
|
|
81
|
+
<http-flows
|
|
82
|
+
.model="${this.model}"
|
|
83
|
+
@change="${this.handleModelChange}"
|
|
84
|
+
></http-flows>
|
|
85
|
+
</div>
|
|
86
|
+
</section>
|
|
87
|
+
`;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const instance = new ComponentDemoPage();
|
|
92
|
+
instance.render();
|
|
@@ -16,19 +16,18 @@ const demoConfigWorker = new URL('/demo/lib/io/AppConfig.ts', import.meta.url).t
|
|
|
16
16
|
MonacoLoader.createEnvironment(base);
|
|
17
17
|
await MonacoLoader.loadMonaco(base);
|
|
18
18
|
await MonacoLoader.monacoReady();
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
const http = new WebProxyBindings(AppInfo, env.proxyUri, { authenticate: true });
|
|
19
|
+
|
|
20
|
+
const navigation = new WebNavigationBindings(AppInfo);
|
|
21
|
+
const proxy = new WebProxyBindings(AppInfo, env.proxyUri, { authenticate: true });
|
|
23
22
|
const config = new WebConfigurationBindings(AppInfo, demoConfigWorker);
|
|
24
|
-
|
|
25
23
|
const idb = new WebHttpClientStoreBindings(AppInfo, idbWorker);
|
|
26
24
|
const store = new WebStoreBindings(AppInfo, `http://localhost:8550/v1`);
|
|
27
25
|
const page = new HttpProjectScreen({
|
|
28
26
|
store,
|
|
29
|
-
|
|
27
|
+
proxy,
|
|
30
28
|
idb,
|
|
31
29
|
config,
|
|
30
|
+
navigation,
|
|
32
31
|
});
|
|
33
32
|
await page.initialize();
|
|
34
33
|
})();
|
|
@@ -19,10 +19,6 @@ import '../../define/ui/ui-icon-button.js';
|
|
|
19
19
|
* @fires change - When the UI should notify the hosting application about the change.
|
|
20
20
|
*/
|
|
21
21
|
export class AmfParameters extends EventTarget {
|
|
22
|
-
parametersValue;
|
|
23
|
-
nilValues;
|
|
24
|
-
target;
|
|
25
|
-
globalCache;
|
|
26
22
|
/**
|
|
27
23
|
* @param target The element that initializes this class.
|
|
28
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmfParameters.js","sourceRoot":"","sources":["../../../src/amf/lib/AmfParameters.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit';\nimport { ApiSchemaValues, AmfNamespace, ApiDefinitions, AmfShapes, EventUtils } from '@api-client/core/build/browser.js';\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { classMap } from 'lit/directives/class-map.js';\nimport * as InputCache from './InputCache.js';\nimport { readLabelValue } from './Utils.js';\nimport type { OperationParameter, ShapeTemplateOptions, ParameterRenderOptions } from '../types.js';\nimport type { SupportedInputTypes } from '../../types/input.js';\nimport type Checkbox from '../../ui/input/CheckboxElement.js';\nimport Input from '../../ui/input/Input.js';\nimport type { UiDropdownListSelection } from '../../ui/list/UiDropdownList.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-text-field.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-checkbox.js';\nimport '../../define/ui/ui-icon-button.js';\n\nexport interface AmfParametersInit {\n globalCache?: boolean;\n}\n\n/**\n * A class that works with UI editor that capture user input for AMF parameters.\n * \n * @fires paramchange - When a parameter value change. The detail object is the key value of changed parameter.\n * @fires render - When the UI should re-render.\n * @fires change - When the UI should notify the hosting application about the change.\n */\nexport class AmfParameters extends EventTarget {\n parametersValue: OperationParameter[];\n\n nilValues: string[];\n\n target: HTMLElement;\n\n globalCache: boolean;\n\n /**\n * @param target The element that initializes this class.\n */\n constructor(target: HTMLElement, init: AmfParametersInit = {}) {\n super();\n const { globalCache = false } = init;\n this.globalCache = globalCache;\n this.target = target;\n this.parametersValue = [];\n this.nilValues = [];\n\n this.addArrayValueHandler = this.addArrayValueHandler.bind(this);\n this.paramChangeHandler = this.paramChangeHandler.bind(this);\n this.booleanHandler = this.booleanHandler.bind(this);\n this.deleteParamHandler = this.deleteParamHandler.bind(this);\n this.enumSelectionHandler = this.enumSelectionHandler.bind(this);\n this.nilHandler = this.nilHandler.bind(this);\n this.customParamChangeHandler = this.customParamChangeHandler.bind(this);\n }\n\n protected paramChanged(key: string): void {\n this.dispatchEvent(new CustomEvent('paramchange', { detail: key }));\n }\n\n protected notifyUpdate(): void {\n this.dispatchEvent(new Event('render'));\n }\n\n protected notifyChange(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n /**\n * Clears previously set values in the cache storage.\n */\n clearCache(): void {\n const { parametersValue = [], target, globalCache } = this;\n parametersValue.forEach((param) => {\n InputCache.remove(target, param.paramId, globalCache)\n });\n }\n\n addArrayValueHandler(e: Event): void {\n const button = e.target as HTMLElement;\n const { id } = button.dataset;\n if (!id) {\n return;\n }\n const { target, globalCache } = this;\n if (!InputCache.has(target, id, globalCache)) {\n InputCache.set(target, id, [], globalCache);\n }\n const items = InputCache.get(target, id, globalCache) as unknown[];\n items.push(undefined);\n this.notifyUpdate();\n this.paramChanged(id);\n }\n\n /**\n * Reads the value to be set on an input.\n * \n * @param parameter\n * @param schema\n * @param isArray Whether the value should be read for an array.\n * @returns The value to set on the input. Note, it is not cast to the type.\n */\n readInputValue(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, isArray = false): unknown {\n const { target, globalCache } = this;\n const { id } = parameter;\n if (InputCache.has(target, id, globalCache)) {\n return InputCache.get(target, id, globalCache);\n }\n let result;\n if (parameter.required) {\n const opts = { fromExamples: true };\n if (isArray) {\n result = ApiSchemaValues.readInputValues(parameter, schema, opts);\n } else {\n result = ApiSchemaValues.readInputValue(parameter, schema, opts);\n }\n if (result !== undefined) {\n InputCache.set(target, id, result, globalCache);\n }\n }\n return result;\n }\n\n protected paramChangeHandler(e: Event): void {\n const input = e.target as Input;\n const { value, dataset } = input;\n const { domainId, isArray, index } = dataset;\n if (!domainId) {\n return;\n }\n const param = this.parametersValue.find(p => p.paramId === domainId);\n if (!param) {\n return;\n }\n // sets cached value of the input.\n const typed = ApiSchemaValues.parseUserInput(value, param.schema as AmfShapes.IShapeUnion);\n InputCache.set(this.target, domainId, typed, this.globalCache, isArray === 'true', index ? Number(index) : undefined);\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n protected booleanHandler(e: Event): void {\n const input = e.target as Checkbox;\n const { checked, dataset } = input;\n const { domainId, isArray, index } = dataset;\n if (!domainId) {\n return;\n }\n const param = this.parametersValue.find(p => p.paramId === domainId);\n if (!param) {\n return;\n }\n InputCache.set(this.target, domainId, checked, this.globalCache, isArray === 'true', index ? Number(index) : undefined);\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n /**\n * A handler for the remove param button click.\n */\n protected deleteParamHandler(e: Event): void {\n const button = e.currentTarget as HTMLElement;\n const { dataset } = button;\n const { domainId, index, deleteParam } = dataset;\n if (!domainId) {\n return;\n }\n let forceUpdate = false;\n if (deleteParam === 'true') {\n const pIndex = this.parametersValue.findIndex(p => p.paramId === domainId);\n this.parametersValue.splice(pIndex, 1);\n forceUpdate = true;\n }\n if (InputCache.has(this.target, domainId, this.globalCache)) {\n InputCache.remove(this.target, domainId, this.globalCache, index ? Number(index) : undefined);\n forceUpdate = true;\n }\n if (forceUpdate) {\n this.notifyUpdate();\n this.notifyChange();\n this.paramChanged(domainId);\n }\n }\n\n protected enumSelectionHandler(e: CustomEvent<UiDropdownListSelection>): void {\n const { item } = e.detail;\n const dropDown = e.target as HTMLElement;\n\n const { domainId, isArray, index } = dropDown.dataset;\n const { value } = item.dataset;\n if (!domainId) {\n return;\n }\n const param = this.parametersValue.find(p => p.paramId === domainId);\n if (!param) {\n return;\n }\n const enumValues = ((param.schema as AmfShapes.IShapeUnion).values as AmfShapes.IApiScalarNode[]);\n if (!enumValues) {\n return;\n }\n const typed = ApiSchemaValues.parseUserInput(value, param.schema as AmfShapes.IShapeUnion);\n InputCache.set(this.target, domainId, typed, this.globalCache, isArray === 'true', index ? Number(index) : undefined);\n this.notifyChange();\n this.paramChanged(domainId);\n this.notifyUpdate();\n }\n\n /**\n * Handler for the nil value toggle.\n */\n protected nilHandler(e: Event): void {\n const button = e.target as Checkbox;\n const { checked, dataset } = button;\n const { domainId } = dataset;\n if (!domainId) {\n return;\n }\n const list = this.nilValues;\n const has = list.includes(domainId);\n if (checked && !has) {\n list.push(domainId);\n this.notifyUpdate();\n } else if (!checked && has) {\n const index = list.indexOf(domainId);\n list.splice(index, 1);\n this.notifyUpdate();\n }\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n /**\n * @param param The parameter to render.\n * @param opts Render options\n * @returns The template for the request parameter form control.\n */\n parameterTemplate(param: OperationParameter, opts: ParameterRenderOptions = {}): TemplateResult | string {\n const { schema, parameter, source } = param;\n if (source === 'custom') {\n return this.customParamTemplate(param);\n }\n if (!schema) {\n return '';\n }\n return this.parameterSchemaTemplate(parameter, schema, opts);\n }\n\n /**\n * @param parameter\n * @param schema\n * @param opts Internal Process options\n * @returns The template for the request parameter form control.\n */\n parameterSchemaTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IShapeUnion, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n const { types } = schema;\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape)) {\n return this.scalarShapeTemplate(parameter, schema as AmfShapes.IApiScalarShape, opts);\n }\n if (types.includes(AmfNamespace.w3.shacl.NodeShape)) {\n return this.nodeShapeTemplate();\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.UnionShape)) {\n return this.unionShapeTemplate(parameter, schema as AmfShapes.IApiUnionShape);\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.FileShape)) {\n return this.fileShapeTemplate();\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.SchemaShape)) {\n return this.schemaShapeTemplate();\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.ArrayShape) || types.includes(AmfNamespace.aml.vocabularies.shapes.MatrixShape)) {\n return this.arrayShapeTemplate(parameter, schema as AmfShapes.IApiArrayShape);\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.TupleShape)) {\n return this.tupleShapeTemplate(parameter, schema as AmfShapes.IApiTupleShape);\n }\n return this.anyShapeTemplate(parameter, schema as AmfShapes.IApiAnyShape);\n }\n\n /**\n * @param parameter\n * @param schema\n * @param opts\n * @returns The template for the schema parameter.\n */\n scalarShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n const { readOnly, values, dataType = 'text' } = schema;\n if (readOnly) {\n return '';\n }\n if (values && values.length) {\n return this.enumTemplate(parameter, schema, opts);\n }\n const inputType = ApiSchemaValues.readInputType(dataType);\n if (inputType === 'boolean') {\n return this.booleanTemplate(parameter, schema, opts);\n }\n return this.textInputTemplate(parameter, schema, inputType, opts);\n }\n\n /**\n * Corrects the `http://www.w3.org/2001/XMLSchema#dateTime` schema with the `date-time` or `rfc3339` formats\n * to remove the last `.ZZZ` part which is not recognizable by the `<input>` element.\n */\n protected correctDateTimeParameter(schema: AmfShapes.IApiScalarShape, value: unknown): string | unknown {\n if (!value) {\n return value;\n }\n if (schema.dataType === AmfNamespace.w3.xmlSchema.dateTime) {\n if (['date-time', 'rfc3339'].includes(schema.format || '')) {\n return String(value).replace(/(\\.\\d\\d\\d)Z/, '$1');\n }\n }\n return value;\n }\n\n /**\n * @param parameter\n * @param schema\n * @param type The input type.\n * @param opts\n * @returns A template for an input form item for the given type and schema\n */\n textInputTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, type?: SupportedInputTypes, opts: ShapeTemplateOptions = {}): TemplateResult {\n const { id, binding, } = parameter;\n const { pattern, minimum, minLength, maxLength, maximum, multipleOf } = schema;\n let required = false;\n if (typeof opts.required === 'boolean') {\n required = opts.required;\n } else {\n required = parameter.required || false;\n }\n const label = readLabelValue(parameter, schema);\n const { allowEmptyValue, } = parameter;\n let notifyValueChange = false;\n let value;\n if (opts.arrayItem) {\n value = opts.value || '';\n } else {\n value = this.readInputValue(parameter, schema);\n notifyValueChange = true;\n }\n if (value) {\n value = ApiSchemaValues.parseScalarInput(value, schema);\n value = this.correctDateTimeParameter(schema, value);\n }\n if (notifyValueChange && value !== undefined && value !== '') {\n const typed = ApiSchemaValues.parseUserInput(value, schema);\n InputCache.set(this.target, id, typed, this.globalCache);\n this.paramChanged(id);\n }\n let step: number | undefined;\n if (['time', 'datetime-local'].includes(type || '')) {\n step = 1;\n } else if (typeof multipleOf !== 'undefined') {\n step = Number(multipleOf);\n }\n const title = parameter.description || schema.description;\n const nillable = this.nilValues;\n const nillDisabled = !!opts.nillable && nillable.includes(id);\n const classes = {\n 'form-item': true,\n required,\n optional: !required,\n };\n const finalValue = value === undefined ? '' : String(value);\n return html`\n <div class=\"${classMap(classes)}\">\n <ui-text-field\n data-domain-id=\"${id}\"\n data-is-array=\"${ifDefined(opts.arrayItem)}\"\n data-index=\"${ifDefined(opts.index)}\"\n data-binding=\"${ifDefined(binding)}\"\n name=\"${parameter.name || schema.name || ''}\" \n class=\"form-input\"\n ?required=\"${required && !allowEmptyValue}\"\n .value=\"${finalValue}\"\n pattern=\"${ifDefined(pattern)}\"\n min=\"${ifDefined(minimum)}\"\n minLength=\"${ifDefined(minLength)}\"\n max=\"${ifDefined(maximum)}\"\n maxLength=\"${ifDefined(maxLength)}\"\n step=\"${ifDefined(step)}\"\n type=\"${ifDefined(type)}\"\n title=\"${ifDefined(title)}\"\n @change=\"${this.paramChangeHandler}\"\n ?disabled=\"${nillDisabled}\"\n label=\"${label}\"\n ></ui-text-field>\n ${opts.nillable ? this.nillInputTemplate(parameter) : ''}\n ${opts.arrayItem ? this.deleteParamTemplate(id, opts.index) : ''}\n </div>\n `;\n }\n\n /**\n * @param paramId The ApiDefinitions.IApiParameter id.\n * @param arrayIndex When this is an array item, the index on the array.\n * @returns The template for the param remove button. \n */\n deleteParamTemplate(paramId: string, arrayIndex?: number): TemplateResult {\n const title = 'Removes this parameter.';\n return html`\n <ui-icon-button \n title=\"${title}\" \n data-domain-id=\"${paramId}\"\n data-index=\"${ifDefined(arrayIndex)}\"\n data-delete-param=\"true\"\n @click=\"${this.deleteParamHandler}\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n /**\n * @param parameter\n * @param schema\n * @param opts\n * @returns The template for the enum input.\n */\n enumTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n let required = false;\n if (typeof opts.required === 'boolean') {\n required = opts.required;\n } else {\n required = parameter.required || false;\n }\n const label = readLabelValue(parameter, schema);\n const enumValues = (schema.values || []) as AmfShapes.IApiScalarNode[];\n const selectedValue = this.readInputValue(parameter, schema);\n const selected = enumValues.findIndex(i => i.value === selectedValue);\n const { id, binding } = parameter;\n const title = parameter.description || schema.description;\n const nillable = this.nilValues;\n const nillDisabled = !!opts.nillable && nillable.includes(id);\n const classes = {\n 'form-item': true,\n required,\n optional: !required,\n };\n\n const item = enumValues[selected];\n const finalValue = item ? (item.value || '') : '';\n return html`\n <div class=\"${classMap(classes)}\">\n <ui-dropdown-list\n class=\"param-selector\"\n closeOnOutsideClick\n matchTriggerWidth\n @select=\"${this.enumSelectionHandler}\"\n data-binding=\"${ifDefined(binding)}\"\n data-domain-id=\"${id}\"\n data-is-array=\"${ifDefined(opts.arrayItem)}\"\n \n >\n <ui-text-field \n class=\"dropdown-trigger\" \n label=\"${label}\" \n readOnly \n ?required=\"${required}\"\n .value=\"${finalValue || ''}\" \n @select=\"${EventUtils.cancelEvent}\"\n name=\"${parameter.name || schema.name || ''}\"\n ?disabled=\"${nillDisabled}\"\n title=\"${ifDefined(title)}\"\n >\n <ui-icon icon=\"arrowDropDown\" role=\"presentation\" slot=\"suffix\"></ui-icon>\n </ui-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\" selector=\"[data-value]\" selectActive>\n ${enumValues.map((value) => this.renderEnumItem(value))}\n </ui-list>\n </ui-dropdown-list>\n ${opts.nillable ? this.nillInputTemplate(parameter) : ''}\n </div>\n `;\n }\n\n protected renderEnumItem(item: AmfShapes.IApiScalarNode): TemplateResult {\n const { dataType, value } = item;\n return html`\n <ui-list-item role=\"menuitem\" data-type=\"${ifDefined(dataType)}\" data-value=\"${ifDefined(value)}\">${value}</ui-list-item>\n `;\n }\n\n /**\n * @returns The template for the checkbox input.\n */\n booleanTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n const label = readLabelValue(parameter, schema);\n const { id } = parameter;\n let value: boolean;\n if (opts.arrayItem) {\n value = opts.value as boolean || false;\n } else {\n value = this.readInputValue(parameter, schema) as boolean;\n }\n const title = parameter.description || schema.description;\n const nillable = this.nilValues;\n const nillDisabled = !!opts.nillable && nillable.includes(id);\n const classes = {\n 'form-item': true,\n required: parameter.required || false,\n optional: !parameter.required,\n };\n // note, don't mark a checkbox as required. A checkbox also produces `false` value\n // which should be passed to the transport. The request data processor should take care of\n // producing the right output.\n return html`\n <div class=\"${classMap(classes)}\">\n <label class=\"label-large\">\n <ui-checkbox \n class=\"boolean-param\"\n name=\"${parameter.name || schema.name || ''}\"\n data-binding=\"${ifDefined(parameter.binding)}\"\n .checked=\"${value}\"\n title=\"${ifDefined(title)}\"\n data-domain-id=\"${id}\"\n data-is-array=\"${ifDefined(opts.arrayItem)}\"\n ?disabled=\"${nillDisabled}\"\n @change=\"${this.booleanHandler}\"\n aria-label=\"${label}\"\n ></ui-checkbox>\n ${label}\n </label>\n ${opts.nillable ? this.nillInputTemplate(parameter) : ''}\n </div>\n `;\n }\n\n /**\n * @returns The template for the nil checkbox input.\n */\n nillInputTemplate(parameter: ApiDefinitions.IApiParameter): TemplateResult | string {\n return html`\n <label class=\"label-large\">\n <ui-checkbox\n class=\"nil-option\"\n data-domain-id=\"${parameter.id}\"\n data-binding=\"${ifDefined(parameter.binding)}\"\n title=\"Makes the property nillable (e.g. inserts null into the schema)\"\n @change=\"${this.nilHandler}\"\n aria-label=\"Nil\"\n ></ui-checkbox>\n Nil\n </label>\n `;\n }\n\n /**\n * or now we do not support union shapes. There's no way to learn how to serialize\n * the Node shape to a string.\n * @returns {TemplateResult|string} The template for the node shape.\n */\n nodeShapeTemplate(): TemplateResult | string {\n return '';\n }\n\n /**\n * @returns The template for the union shape.\n */\n unionShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiUnionShape): TemplateResult | string {\n const { anyOf } = schema;\n if (!anyOf || !anyOf.length) {\n return '';\n }\n const nil = anyOf.find(shape => shape.types.includes(AmfNamespace.aml.vocabularies.shapes.NilShape));\n if (nil && anyOf.length === 2) {\n // this is a case where a scalar is marked as nillable instead of not required\n // (which for some reason is a common practice among RAML developers).\n const scalar = anyOf.find(shape => shape !== nil) as AmfShapes.IShapeUnion;\n return this.parameterSchemaTemplate(parameter, scalar, {\n nillable: true,\n });\n }\n const hasComplex = anyOf.some(i => !i.types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape));\n const hasScalar = anyOf.some(i => i.types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape));\n if (hasComplex && !hasScalar) {\n // We quit here as this is the same problem as with the Node shape - unclear how to serialize the types\n return '';\n }\n // at this point only scalars are possible. For that we render a regular text field \n // and while serializing the values we figure out what type it should be giving the \n // value provided and available types in the union.\n let opts: ShapeTemplateOptions | undefined;\n if (nil) {\n opts = { nillable: true };\n }\n return this.textInputTemplate(parameter, schema, 'text', opts);\n }\n\n /**\n * This situation makes not sense as there's no mechanism to describe how to \n * put a file into a path, query, or headers.\n * @returns The template for the file shape.\n */\n fileShapeTemplate(): TemplateResult | string {\n return '';\n }\n\n /**\n * For now we do not support union shapes. There's no way to learn how to serialize\n * the Schema shape to a string.\n * @returns The template for the schema shape.\n */\n schemaShapeTemplate(): TemplateResult | string {\n return '';\n }\n\n /**\n * @returns The template for the array shape.\n */\n arrayShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiArrayShape): TemplateResult | string {\n const { items } = schema;\n if (!items) {\n return '';\n }\n const { id } = parameter;\n const label = readLabelValue(parameter, schema);\n const values = (this.readInputValue(parameter, schema, true)) as unknown[];\n const options = { arrayItem: true, };\n const inputs = (values || []).map((value, index) => this.parameterSchemaTemplate(parameter, items, { ...options, value, index }));\n const classes = {\n 'array-form-item': true,\n required: !!parameter.required,\n optional: !parameter.required,\n };\n return html`\n <div class=\"${classMap(classes)}\" data-param-id=\"${id}\" data-param-label=\"${label}\">\n <div class=\"array-title\"><span class=\"label\">${label}</span></div>\n ${inputs}\n ${this.addArrayItemTemplate(id)}\n </div>\n `;\n }\n\n /**\n * @returns The template for the tuple shape.\n */\n tupleShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiTupleShape): TemplateResult | string {\n const { items } = schema;\n if (!items) {\n return '';\n }\n // TODO: not sure how to process this value...\n return '';\n }\n\n /**\n * @returns The template for the Any shape.\n */\n anyShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiAnyShape): TemplateResult | string {\n return this.textInputTemplate(parameter, schema, 'text');\n }\n\n /**\n * @param id The id of the parameter to add the value to.\n * @returns The template for the adding an array item button\n */\n addArrayItemTemplate(id: string): TemplateResult | string {\n return html`\n <ui-button type=\"tonal\" data-id=\"${id}\" @click=\"${this.addArrayValueHandler}\">Add new value</ui-button>\n `;\n }\n\n /**\n * Handler for a custom parameter input change.\n */\n protected customParamChangeHandler(e: Event): void {\n const input = e.target as Input;\n const { value, name, dataset } = input;\n const { domainId } = dataset;\n if (!domainId || !['paramName', 'paramValue'].includes(name || '')) {\n return;\n }\n if (name === 'paramName') {\n const param = this.parametersValue.find(item => item.paramId === domainId);\n if (!param) {\n return;\n }\n param.parameter.name = value;\n } else {\n InputCache.set(this.target as HTMLElement, domainId, value, this.globalCache);\n }\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n /**\n * @param param The parameter to render\n * @returns The template for a custom parameter\n */\n protected customParamTemplate(param: OperationParameter): TemplateResult {\n const value = InputCache.get(this.target as HTMLElement, param.paramId, this.globalCache) as string;\n const classes = {\n 'form-item': true,\n 'custom-item': true,\n };\n let nameLabel;\n let nameTitle;\n let valueLabel;\n let valueTitle;\n if (param.binding === 'query') {\n nameLabel = 'Query parameter'\n nameTitle = 'The name of this query parameter';\n valueLabel = 'Parameter value';\n valueTitle = 'The value of this query parameter';\n } else if (param.binding === 'header') {\n nameLabel = 'Header name'\n nameTitle = 'The name of this header';\n valueLabel = 'Header value';\n valueTitle = 'The value of this header';\n } else {\n nameLabel = 'Parameter name'\n nameTitle = 'The name of the parameter';\n valueLabel = 'Parameter value';\n valueTitle = 'The value of the parameter';\n }\n return html`\n <div class=\"${classMap(classes)}\">\n <ui-text-field \n data-domain-id=\"${param.paramId}\"\n data-binding=\"${param.binding}\"\n class=\"form-input custom-name\"\n .value=\"${param.parameter.name || ''}\"\n title=\"${nameTitle}\"\n name=\"paramName\"\n @change=\"${this.customParamChangeHandler}\"\n noFloating\n label=\"${nameLabel}\"\n ></ui-text-field>\n <ui-text-field \n data-domain-id=\"${param.paramId}\"\n data-binding=\"${param.binding}\"\n class=\"form-input custom-value\"\n .value=\"${value}\"\n title=\"${valueTitle}\"\n name=\"paramValue\"\n @change=\"${this.customParamChangeHandler}\"\n noFloating\n label=\"${valueLabel}\"\n ></ui-text-field>\n ${this.deleteParamTemplate(param.paramId)}\n </div>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AmfParameters.js","sourceRoot":"","sources":["../../../src/amf/lib/AmfParameters.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult } from 'lit';\nimport { ApiSchemaValues, AmfNamespace, ApiDefinitions, AmfShapes, EventUtils } from '@api-client/core/build/browser.js';\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { classMap } from 'lit/directives/class-map.js';\nimport * as InputCache from './InputCache.js';\nimport { readLabelValue } from './Utils.js';\nimport type { OperationParameter, ShapeTemplateOptions, ParameterRenderOptions } from '../types.js';\nimport type { SupportedInputTypes } from '../../types/input.js';\nimport type Checkbox from '../../ui/input/CheckboxElement.js';\nimport Input from '../../ui/input/Input.js';\nimport type { UiDropdownListSelection } from '../../ui/list/UiDropdownList.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-text-field.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-checkbox.js';\nimport '../../define/ui/ui-icon-button.js';\n\nexport interface AmfParametersInit {\n globalCache?: boolean;\n}\n\n/**\n * A class that works with UI editor that capture user input for AMF parameters.\n * \n * @fires paramchange - When a parameter value change. The detail object is the key value of changed parameter.\n * @fires render - When the UI should re-render.\n * @fires change - When the UI should notify the hosting application about the change.\n */\nexport class AmfParameters extends EventTarget {\n parametersValue: OperationParameter[];\n\n nilValues: string[];\n\n target: HTMLElement;\n\n globalCache: boolean;\n\n /**\n * @param target The element that initializes this class.\n */\n constructor(target: HTMLElement, init: AmfParametersInit = {}) {\n super();\n const { globalCache = false } = init;\n this.globalCache = globalCache;\n this.target = target;\n this.parametersValue = [];\n this.nilValues = [];\n\n this.addArrayValueHandler = this.addArrayValueHandler.bind(this);\n this.paramChangeHandler = this.paramChangeHandler.bind(this);\n this.booleanHandler = this.booleanHandler.bind(this);\n this.deleteParamHandler = this.deleteParamHandler.bind(this);\n this.enumSelectionHandler = this.enumSelectionHandler.bind(this);\n this.nilHandler = this.nilHandler.bind(this);\n this.customParamChangeHandler = this.customParamChangeHandler.bind(this);\n }\n\n protected paramChanged(key: string): void {\n this.dispatchEvent(new CustomEvent('paramchange', { detail: key }));\n }\n\n protected notifyUpdate(): void {\n this.dispatchEvent(new Event('render'));\n }\n\n protected notifyChange(): void {\n this.dispatchEvent(new Event('change'));\n }\n\n /**\n * Clears previously set values in the cache storage.\n */\n clearCache(): void {\n const { parametersValue = [], target, globalCache } = this;\n parametersValue.forEach((param) => {\n InputCache.remove(target, param.paramId, globalCache)\n });\n }\n\n addArrayValueHandler(e: Event): void {\n const button = e.target as HTMLElement;\n const { id } = button.dataset;\n if (!id) {\n return;\n }\n const { target, globalCache } = this;\n if (!InputCache.has(target, id, globalCache)) {\n InputCache.set(target, id, [], globalCache);\n }\n const items = InputCache.get(target, id, globalCache) as unknown[];\n items.push(undefined);\n this.notifyUpdate();\n this.paramChanged(id);\n }\n\n /**\n * Reads the value to be set on an input.\n * \n * @param parameter\n * @param schema\n * @param isArray Whether the value should be read for an array.\n * @returns The value to set on the input. Note, it is not cast to the type.\n */\n readInputValue(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, isArray = false): unknown {\n const { target, globalCache } = this;\n const { id } = parameter;\n if (InputCache.has(target, id, globalCache)) {\n return InputCache.get(target, id, globalCache);\n }\n let result;\n if (parameter.required) {\n const opts = { fromExamples: true };\n if (isArray) {\n result = ApiSchemaValues.readInputValues(parameter, schema, opts);\n } else {\n result = ApiSchemaValues.readInputValue(parameter, schema, opts);\n }\n if (result !== undefined) {\n InputCache.set(target, id, result, globalCache);\n }\n }\n return result;\n }\n\n protected paramChangeHandler(e: Event): void {\n const input = e.target as Input;\n const { value, dataset } = input;\n const { domainId, isArray, index } = dataset;\n if (!domainId) {\n return;\n }\n const param = this.parametersValue.find(p => p.paramId === domainId);\n if (!param) {\n return;\n }\n // sets cached value of the input.\n const typed = ApiSchemaValues.parseUserInput(value, param.schema as AmfShapes.IShapeUnion);\n InputCache.set(this.target, domainId, typed, this.globalCache, isArray === 'true', index ? Number(index) : undefined);\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n protected booleanHandler(e: Event): void {\n const input = e.target as Checkbox;\n const { checked, dataset } = input;\n const { domainId, isArray, index } = dataset;\n if (!domainId) {\n return;\n }\n const param = this.parametersValue.find(p => p.paramId === domainId);\n if (!param) {\n return;\n }\n InputCache.set(this.target, domainId, checked, this.globalCache, isArray === 'true', index ? Number(index) : undefined);\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n /**\n * A handler for the remove param button click.\n */\n protected deleteParamHandler(e: Event): void {\n const button = e.currentTarget as HTMLElement;\n const { dataset } = button;\n const { domainId, index, deleteParam } = dataset;\n if (!domainId) {\n return;\n }\n let forceUpdate = false;\n if (deleteParam === 'true') {\n const pIndex = this.parametersValue.findIndex(p => p.paramId === domainId);\n this.parametersValue.splice(pIndex, 1);\n forceUpdate = true;\n }\n if (InputCache.has(this.target, domainId, this.globalCache)) {\n InputCache.remove(this.target, domainId, this.globalCache, index ? Number(index) : undefined);\n forceUpdate = true;\n }\n if (forceUpdate) {\n this.notifyUpdate();\n this.notifyChange();\n this.paramChanged(domainId);\n }\n }\n\n protected enumSelectionHandler(e: CustomEvent<UiDropdownListSelection>): void {\n const { item } = e.detail;\n const dropDown = e.target as HTMLElement;\n\n const { domainId, isArray, index } = dropDown.dataset;\n const { value } = item.dataset;\n if (!domainId) {\n return;\n }\n const param = this.parametersValue.find(p => p.paramId === domainId);\n if (!param) {\n return;\n }\n const enumValues = ((param.schema as AmfShapes.IShapeUnion).values as AmfShapes.IApiScalarNode[]);\n if (!enumValues) {\n return;\n }\n const typed = ApiSchemaValues.parseUserInput(value, param.schema as AmfShapes.IShapeUnion);\n InputCache.set(this.target, domainId, typed, this.globalCache, isArray === 'true', index ? Number(index) : undefined);\n this.notifyChange();\n this.paramChanged(domainId);\n this.notifyUpdate();\n }\n\n /**\n * Handler for the nil value toggle.\n */\n protected nilHandler(e: Event): void {\n const button = e.target as Checkbox;\n const { checked, dataset } = button;\n const { domainId } = dataset;\n if (!domainId) {\n return;\n }\n const list = this.nilValues;\n const has = list.includes(domainId);\n if (checked && !has) {\n list.push(domainId);\n this.notifyUpdate();\n } else if (!checked && has) {\n const index = list.indexOf(domainId);\n list.splice(index, 1);\n this.notifyUpdate();\n }\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n /**\n * @param param The parameter to render.\n * @param opts Render options\n * @returns The template for the request parameter form control.\n */\n parameterTemplate(param: OperationParameter, opts: ParameterRenderOptions = {}): TemplateResult | string {\n const { schema, parameter, source } = param;\n if (source === 'custom') {\n return this.customParamTemplate(param);\n }\n if (!schema) {\n return '';\n }\n return this.parameterSchemaTemplate(parameter, schema, opts);\n }\n\n /**\n * @param parameter\n * @param schema\n * @param opts Internal Process options\n * @returns The template for the request parameter form control.\n */\n parameterSchemaTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IShapeUnion, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n const { types } = schema;\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape)) {\n return this.scalarShapeTemplate(parameter, schema as AmfShapes.IApiScalarShape, opts);\n }\n if (types.includes(AmfNamespace.w3.shacl.NodeShape)) {\n return this.nodeShapeTemplate();\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.UnionShape)) {\n return this.unionShapeTemplate(parameter, schema as AmfShapes.IApiUnionShape);\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.FileShape)) {\n return this.fileShapeTemplate();\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.SchemaShape)) {\n return this.schemaShapeTemplate();\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.ArrayShape) || types.includes(AmfNamespace.aml.vocabularies.shapes.MatrixShape)) {\n return this.arrayShapeTemplate(parameter, schema as AmfShapes.IApiArrayShape);\n }\n if (types.includes(AmfNamespace.aml.vocabularies.shapes.TupleShape)) {\n return this.tupleShapeTemplate(parameter, schema as AmfShapes.IApiTupleShape);\n }\n return this.anyShapeTemplate(parameter, schema as AmfShapes.IApiAnyShape);\n }\n\n /**\n * @param parameter\n * @param schema\n * @param opts\n * @returns The template for the schema parameter.\n */\n scalarShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n const { readOnly, values, dataType = 'text' } = schema;\n if (readOnly) {\n return '';\n }\n if (values && values.length) {\n return this.enumTemplate(parameter, schema, opts);\n }\n const inputType = ApiSchemaValues.readInputType(dataType);\n if (inputType === 'boolean') {\n return this.booleanTemplate(parameter, schema, opts);\n }\n return this.textInputTemplate(parameter, schema, inputType, opts);\n }\n\n /**\n * Corrects the `http://www.w3.org/2001/XMLSchema#dateTime` schema with the `date-time` or `rfc3339` formats\n * to remove the last `.ZZZ` part which is not recognizable by the `<input>` element.\n */\n protected correctDateTimeParameter(schema: AmfShapes.IApiScalarShape, value: unknown): string | unknown {\n if (!value) {\n return value;\n }\n if (schema.dataType === AmfNamespace.w3.xmlSchema.dateTime) {\n if (['date-time', 'rfc3339'].includes(schema.format || '')) {\n return String(value).replace(/(\\.\\d\\d\\d)Z/, '$1');\n }\n }\n return value;\n }\n\n /**\n * @param parameter\n * @param schema\n * @param type The input type.\n * @param opts\n * @returns A template for an input form item for the given type and schema\n */\n textInputTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, type?: SupportedInputTypes, opts: ShapeTemplateOptions = {}): TemplateResult {\n const { id, binding, } = parameter;\n const { pattern, minimum, minLength, maxLength, maximum, multipleOf } = schema;\n let required = false;\n if (typeof opts.required === 'boolean') {\n required = opts.required;\n } else {\n required = parameter.required || false;\n }\n const label = readLabelValue(parameter, schema);\n const { allowEmptyValue, } = parameter;\n let notifyValueChange = false;\n let value;\n if (opts.arrayItem) {\n value = opts.value || '';\n } else {\n value = this.readInputValue(parameter, schema);\n notifyValueChange = true;\n }\n if (value) {\n value = ApiSchemaValues.parseScalarInput(value, schema);\n value = this.correctDateTimeParameter(schema, value);\n }\n if (notifyValueChange && value !== undefined && value !== '') {\n const typed = ApiSchemaValues.parseUserInput(value, schema);\n InputCache.set(this.target, id, typed, this.globalCache);\n this.paramChanged(id);\n }\n let step: number | undefined;\n if (['time', 'datetime-local'].includes(type || '')) {\n step = 1;\n } else if (typeof multipleOf !== 'undefined') {\n step = Number(multipleOf);\n }\n const title = parameter.description || schema.description;\n const nillable = this.nilValues;\n const nillDisabled = !!opts.nillable && nillable.includes(id);\n const classes = {\n 'form-item': true,\n required,\n optional: !required,\n };\n const finalValue = value === undefined ? '' : String(value);\n return html`\n <div class=\"${classMap(classes)}\">\n <ui-text-field\n data-domain-id=\"${id}\"\n data-is-array=\"${ifDefined(opts.arrayItem)}\"\n data-index=\"${ifDefined(opts.index)}\"\n data-binding=\"${ifDefined(binding)}\"\n name=\"${parameter.name || schema.name || ''}\" \n class=\"form-input\"\n ?required=\"${required && !allowEmptyValue}\"\n .value=\"${finalValue}\"\n pattern=\"${ifDefined(pattern)}\"\n min=\"${ifDefined(minimum)}\"\n minLength=\"${ifDefined(minLength)}\"\n max=\"${ifDefined(maximum)}\"\n maxLength=\"${ifDefined(maxLength)}\"\n step=\"${ifDefined(step)}\"\n type=\"${ifDefined(type)}\"\n title=\"${ifDefined(title)}\"\n @change=\"${this.paramChangeHandler}\"\n ?disabled=\"${nillDisabled}\"\n label=\"${label}\"\n ></ui-text-field>\n ${opts.nillable ? this.nillInputTemplate(parameter) : ''}\n ${opts.arrayItem ? this.deleteParamTemplate(id, opts.index) : ''}\n </div>\n `;\n }\n\n /**\n * @param paramId The ApiDefinitions.IApiParameter id.\n * @param arrayIndex When this is an array item, the index on the array.\n * @returns The template for the param remove button. \n */\n deleteParamTemplate(paramId: string, arrayIndex?: number): TemplateResult {\n const title = 'Removes this parameter.';\n return html`\n <ui-icon-button \n title=\"${title}\" \n data-domain-id=\"${paramId}\"\n data-index=\"${ifDefined(arrayIndex)}\"\n data-delete-param=\"true\"\n @click=\"${this.deleteParamHandler}\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `;\n }\n\n /**\n * @param parameter\n * @param schema\n * @param opts\n * @returns The template for the enum input.\n */\n enumTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n let required = false;\n if (typeof opts.required === 'boolean') {\n required = opts.required;\n } else {\n required = parameter.required || false;\n }\n const label = readLabelValue(parameter, schema);\n const enumValues = (schema.values || []) as AmfShapes.IApiScalarNode[];\n const selectedValue = this.readInputValue(parameter, schema);\n const selected = enumValues.findIndex(i => i.value === selectedValue);\n const { id, binding } = parameter;\n const title = parameter.description || schema.description;\n const nillable = this.nilValues;\n const nillDisabled = !!opts.nillable && nillable.includes(id);\n const classes = {\n 'form-item': true,\n required,\n optional: !required,\n };\n\n const item = enumValues[selected];\n const finalValue = item ? (item.value || '') : '';\n return html`\n <div class=\"${classMap(classes)}\">\n <ui-dropdown-list\n class=\"param-selector\"\n closeOnOutsideClick\n matchTriggerWidth\n @select=\"${this.enumSelectionHandler}\"\n data-binding=\"${ifDefined(binding)}\"\n data-domain-id=\"${id}\"\n data-is-array=\"${ifDefined(opts.arrayItem)}\"\n \n >\n <ui-text-field \n class=\"dropdown-trigger\" \n label=\"${label}\" \n readOnly \n ?required=\"${required}\"\n .value=\"${finalValue || ''}\" \n @select=\"${EventUtils.cancelEvent}\"\n name=\"${parameter.name || schema.name || ''}\"\n ?disabled=\"${nillDisabled}\"\n title=\"${ifDefined(title)}\"\n >\n <ui-icon icon=\"arrowDropDown\" role=\"presentation\" slot=\"suffix\"></ui-icon>\n </ui-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\" selector=\"[data-value]\" selectActive>\n ${enumValues.map((value) => this.renderEnumItem(value))}\n </ui-list>\n </ui-dropdown-list>\n ${opts.nillable ? this.nillInputTemplate(parameter) : ''}\n </div>\n `;\n }\n\n protected renderEnumItem(item: AmfShapes.IApiScalarNode): TemplateResult {\n const { dataType, value } = item;\n return html`\n <ui-list-item role=\"menuitem\" data-type=\"${ifDefined(dataType)}\" data-value=\"${ifDefined(value)}\">${value}</ui-list-item>\n `;\n }\n\n /**\n * @returns The template for the checkbox input.\n */\n booleanTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiScalarShape, opts: ShapeTemplateOptions = {}): TemplateResult | string {\n const label = readLabelValue(parameter, schema);\n const { id } = parameter;\n let value: boolean;\n if (opts.arrayItem) {\n value = opts.value as boolean || false;\n } else {\n value = this.readInputValue(parameter, schema) as boolean;\n }\n const title = parameter.description || schema.description;\n const nillable = this.nilValues;\n const nillDisabled = !!opts.nillable && nillable.includes(id);\n const classes = {\n 'form-item': true,\n required: parameter.required || false,\n optional: !parameter.required,\n };\n // note, don't mark a checkbox as required. A checkbox also produces `false` value\n // which should be passed to the transport. The request data processor should take care of\n // producing the right output.\n return html`\n <div class=\"${classMap(classes)}\">\n <label class=\"label-large\">\n <ui-checkbox \n class=\"boolean-param\"\n name=\"${parameter.name || schema.name || ''}\"\n data-binding=\"${ifDefined(parameter.binding)}\"\n .checked=\"${value}\"\n title=\"${ifDefined(title)}\"\n data-domain-id=\"${id}\"\n data-is-array=\"${ifDefined(opts.arrayItem)}\"\n ?disabled=\"${nillDisabled}\"\n @change=\"${this.booleanHandler}\"\n aria-label=\"${label}\"\n ></ui-checkbox>\n ${label}\n </label>\n ${opts.nillable ? this.nillInputTemplate(parameter) : ''}\n </div>\n `;\n }\n\n /**\n * @returns The template for the nil checkbox input.\n */\n nillInputTemplate(parameter: ApiDefinitions.IApiParameter): TemplateResult | string {\n return html`\n <label class=\"label-large\">\n <ui-checkbox\n class=\"nil-option\"\n data-domain-id=\"${parameter.id}\"\n data-binding=\"${ifDefined(parameter.binding)}\"\n title=\"Makes the property nillable (e.g. inserts null into the schema)\"\n @change=\"${this.nilHandler}\"\n aria-label=\"Nil\"\n ></ui-checkbox>\n Nil\n </label>\n `;\n }\n\n /**\n * or now we do not support union shapes. There's no way to learn how to serialize\n * the Node shape to a string.\n * @returns {TemplateResult|string} The template for the node shape.\n */\n nodeShapeTemplate(): TemplateResult | string {\n return '';\n }\n\n /**\n * @returns The template for the union shape.\n */\n unionShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiUnionShape): TemplateResult | string {\n const { anyOf } = schema;\n if (!anyOf || !anyOf.length) {\n return '';\n }\n const nil = anyOf.find(shape => shape.types.includes(AmfNamespace.aml.vocabularies.shapes.NilShape));\n if (nil && anyOf.length === 2) {\n // this is a case where a scalar is marked as nillable instead of not required\n // (which for some reason is a common practice among RAML developers).\n const scalar = anyOf.find(shape => shape !== nil) as AmfShapes.IShapeUnion;\n return this.parameterSchemaTemplate(parameter, scalar, {\n nillable: true,\n });\n }\n const hasComplex = anyOf.some(i => !i.types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape));\n const hasScalar = anyOf.some(i => i.types.includes(AmfNamespace.aml.vocabularies.shapes.ScalarShape));\n if (hasComplex && !hasScalar) {\n // We quit here as this is the same problem as with the Node shape - unclear how to serialize the types\n return '';\n }\n // at this point only scalars are possible. For that we render a regular text field \n // and while serializing the values we figure out what type it should be giving the \n // value provided and available types in the union.\n let opts: ShapeTemplateOptions | undefined;\n if (nil) {\n opts = { nillable: true };\n }\n return this.textInputTemplate(parameter, schema, 'text', opts);\n }\n\n /**\n * This situation makes not sense as there's no mechanism to describe how to \n * put a file into a path, query, or headers.\n * @returns The template for the file shape.\n */\n fileShapeTemplate(): TemplateResult | string {\n return '';\n }\n\n /**\n * For now we do not support union shapes. There's no way to learn how to serialize\n * the Schema shape to a string.\n * @returns The template for the schema shape.\n */\n schemaShapeTemplate(): TemplateResult | string {\n return '';\n }\n\n /**\n * @returns The template for the array shape.\n */\n arrayShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiArrayShape): TemplateResult | string {\n const { items } = schema;\n if (!items) {\n return '';\n }\n const { id } = parameter;\n const label = readLabelValue(parameter, schema);\n const values = (this.readInputValue(parameter, schema, true)) as unknown[];\n const options = { arrayItem: true, };\n const inputs = (values || []).map((value, index) => this.parameterSchemaTemplate(parameter, items, { ...options, value, index }));\n const classes = {\n 'array-form-item': true,\n required: !!parameter.required,\n optional: !parameter.required,\n };\n return html`\n <div class=\"${classMap(classes)}\" data-param-id=\"${id}\" data-param-label=\"${label}\">\n <div class=\"array-title\"><span class=\"label\">${label}</span></div>\n ${inputs}\n ${this.addArrayItemTemplate(id)}\n </div>\n `;\n }\n\n /**\n * @returns The template for the tuple shape.\n */\n tupleShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiTupleShape): TemplateResult | string {\n const { items } = schema;\n if (!items) {\n return '';\n }\n // TODO: not sure how to process this value...\n return '';\n }\n\n /**\n * @returns The template for the Any shape.\n */\n anyShapeTemplate(parameter: ApiDefinitions.IApiParameter, schema: AmfShapes.IApiAnyShape): TemplateResult | string {\n return this.textInputTemplate(parameter, schema, 'text');\n }\n\n /**\n * @param id The id of the parameter to add the value to.\n * @returns The template for the adding an array item button\n */\n addArrayItemTemplate(id: string): TemplateResult | string {\n return html`\n <ui-button type=\"tonal\" data-id=\"${id}\" @click=\"${this.addArrayValueHandler}\">Add new value</ui-button>\n `;\n }\n\n /**\n * Handler for a custom parameter input change.\n */\n protected customParamChangeHandler(e: Event): void {\n const input = e.target as Input;\n const { value, name, dataset } = input;\n const { domainId } = dataset;\n if (!domainId || !['paramName', 'paramValue'].includes(name || '')) {\n return;\n }\n if (name === 'paramName') {\n const param = this.parametersValue.find(item => item.paramId === domainId);\n if (!param) {\n return;\n }\n param.parameter.name = value;\n } else {\n InputCache.set(this.target as HTMLElement, domainId, value, this.globalCache);\n }\n this.notifyChange();\n this.paramChanged(domainId);\n }\n\n /**\n * @param param The parameter to render\n * @returns The template for a custom parameter\n */\n protected customParamTemplate(param: OperationParameter): TemplateResult {\n const value = InputCache.get(this.target as HTMLElement, param.paramId, this.globalCache) as string;\n const classes = {\n 'form-item': true,\n 'custom-item': true,\n };\n let nameLabel;\n let nameTitle;\n let valueLabel;\n let valueTitle;\n if (param.binding === 'query') {\n nameLabel = 'Query parameter'\n nameTitle = 'The name of this query parameter';\n valueLabel = 'Parameter value';\n valueTitle = 'The value of this query parameter';\n } else if (param.binding === 'header') {\n nameLabel = 'Header name'\n nameTitle = 'The name of this header';\n valueLabel = 'Header value';\n valueTitle = 'The value of this header';\n } else {\n nameLabel = 'Parameter name'\n nameTitle = 'The name of the parameter';\n valueLabel = 'Parameter value';\n valueTitle = 'The value of the parameter';\n }\n return html`\n <div class=\"${classMap(classes)}\">\n <ui-text-field \n data-domain-id=\"${param.paramId}\"\n data-binding=\"${param.binding}\"\n class=\"form-input custom-name\"\n .value=\"${param.parameter.name || ''}\"\n title=\"${nameTitle}\"\n name=\"paramName\"\n @change=\"${this.customParamChangeHandler}\"\n noFloating\n label=\"${nameLabel}\"\n ></ui-text-field>\n <ui-text-field \n data-domain-id=\"${param.paramId}\"\n data-binding=\"${param.binding}\"\n class=\"form-input custom-value\"\n .value=\"${value}\"\n title=\"${valueTitle}\"\n name=\"paramValue\"\n @change=\"${this.customParamChangeHandler}\"\n noFloating\n label=\"${valueLabel}\"\n ></ui-text-field>\n ${this.deleteParamTemplate(param.paramId)}\n </div>\n `;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EndpointsTree.js","sourceRoot":"","sources":["../../../../src/amf/lib/navigation-layout/EndpointsTree.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable no-continue */\n/* eslint-disable no-plusplus */\n/* eslint-disable class-methods-use-this */\n\nimport { ApiEndpointsTreeItem, ApiEndPointListItem } from \"../../types.js\";\n\nexport interface CommonRootInfo {\n index: number;\n item: ApiEndpointsTreeItem;\n common: string;\n}\n\n/**\n * A class that transforms the list of endpoints and methods into\n * a tree structure with indentation\n */\nexport class EndpointsTree {\n result: ApiEndpointsTreeItem[];\n\n indents: Record<string, number>;\n\n constructor() {\n this.result = [];\n this.indents = {};\n }\n\n /**\n * @param list Sorted list of endpoints.\n */\n create(list: ApiEndPointListItem[]): ApiEndpointsTreeItem[] {\n if (!Array.isArray(list) || !list.length) {\n return [];\n }\n const { result, indents } = this;\n let prev: ApiEndpointsTreeItem | undefined;\n for (let i = 0, len = list.length; i < len; i++) {\n const item = ({ ...list[i], indent: 0, label: '' }) as ApiEndpointsTreeItem;\n const { path } = item;\n const parts = path.split('/');\n const hasParts = parts.length > 1 && !(parts.length === 2 && !parts[0]);\n if (i === 0) {\n if (hasParts) {\n const parent: ApiEndpointsTreeItem = {\n indent: 0,\n path: parts.slice(0, parts.length - 1).join('/'),\n label: undefined,\n operations: [],\n hasChildren: true,\n };\n parent.label = parent.path;\n prev = parent;\n indents[parent.path] = item.indent;\n result.push(parent);\n } else {\n prev = item;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item));\n continue;\n }\n }\n if (!prev) {\n continue;\n }\n // this is similar to the next block but is faster when the previous item is parent.\n if (path.startsWith(prev.path || '')) {\n item.indent = prev.indent + 1;\n prev.hasChildren = true;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item, prev.path));\n prev = item;\n continue;\n }\n const upPath = this.findParentEndpoint(parts);\n if (upPath) {\n item.indent = indents[upPath] + 1;\n const parent = result.find((p) => p.path === upPath) as ApiEndpointsTreeItem;\n parent.hasChildren = true;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item, upPath));\n } else {\n if (hasParts) {\n const info = this.findCommonRootInfo(parts);\n if (info) {\n // this is an abstract item, it's not actually an endpoint\n const parent: ApiEndpointsTreeItem = {\n indent: info.item.indent,\n path: info.common,\n label: info.common,\n operations: [],\n hasChildren: true,\n };\n this.postInsertParent(parent);\n indents[parent.path] = parent.indent;\n result.splice(info.index, 0, parent);\n item.indent = parent.indent + 1;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item, parent.path));\n continue;\n }\n }\n item.indent = 0;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item));\n }\n prev = item;\n }\n return result;\n }\n\n /**\n * @param parts Path parts of the currently evaluated endpoint\n */\n findParentEndpoint(parts: string[]): string | undefined {\n const { indents } = this;\n const list = Array.from(parts);\n const compare = Object.keys(indents).reverse();\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const path = list.join('/');\n if (!path) {\n break;\n }\n const upPath = compare.find((candidate) => path.startsWith(candidate));\n if (upPath) {\n return upPath;\n }\n list.pop();\n if (!list.length) {\n break;\n }\n }\n return undefined;\n }\n\n /**\n * @param {string[]} parts Path parts of the currently evaluated endpoint\n */\n findCommonRootInfo(parts: string[]): CommonRootInfo|undefined {\n const { result } = this;\n const list = Array.from(parts);\n // eslint-disable-next-line no-constant-condition\n while (true) {\n list.pop();\n if (!list.length) {\n break;\n }\n const path = list.join('/');\n if (!path) {\n break;\n }\n const index = result.findIndex((candidate) => candidate.path.startsWith(path));\n if (index !== -1) {\n return {\n index,\n item: result[index],\n common: path,\n };\n }\n }\n return undefined;\n }\n\n prepareLabel(item: ApiEndpointsTreeItem, prevPath?: string): ApiEndpointsTreeItem {\n const { name, path, indent } = item;\n item.label = path;\n if (name) {\n item.label = name;\n } else if (indent > 0 && prevPath) {\n let label = item.label.replace(prevPath, '');\n if (label.startsWith('-')) {\n label = label.substring(1);\n }\n item.label = label\n item.hasShortPath = true;\n if (!item.label.startsWith('/')) {\n item.label = `/${item.label}`;\n }\n }\n return item;\n }\n\n /**\n * Updates paths and indentation of children after inserting a new (abstract) parent.\n */\n postInsertParent(parent: ApiEndpointsTreeItem): void {\n const { result } = this;\n result.forEach((item) => {\n const { path } = item;\n if (path.startsWith(parent.path)) {\n item.indent += 1;\n item.label = (item.label || '').replace(parent.path, '');\n }\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"EndpointsTree.js","sourceRoot":"","sources":["../../../../src/amf/lib/navigation-layout/EndpointsTree.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable no-continue */\n/* eslint-disable no-plusplus */\n/* eslint-disable class-methods-use-this */\n\nimport { ApiEndpointsTreeItem, ApiEndPointListItem } from \"../../types.js\";\n\nexport interface CommonRootInfo {\n index: number;\n item: ApiEndpointsTreeItem;\n common: string;\n}\n\n/**\n * A class that transforms the list of endpoints and methods into\n * a tree structure with indentation\n */\nexport class EndpointsTree {\n result: ApiEndpointsTreeItem[];\n\n indents: Record<string, number>;\n\n constructor() {\n this.result = [];\n this.indents = {};\n }\n\n /**\n * @param list Sorted list of endpoints.\n */\n create(list: ApiEndPointListItem[]): ApiEndpointsTreeItem[] {\n if (!Array.isArray(list) || !list.length) {\n return [];\n }\n const { result, indents } = this;\n let prev: ApiEndpointsTreeItem | undefined;\n for (let i = 0, len = list.length; i < len; i++) {\n const item = ({ ...list[i], indent: 0, label: '' }) as ApiEndpointsTreeItem;\n const { path } = item;\n const parts = path.split('/');\n const hasParts = parts.length > 1 && !(parts.length === 2 && !parts[0]);\n if (i === 0) {\n if (hasParts) {\n const parent: ApiEndpointsTreeItem = {\n indent: 0,\n path: parts.slice(0, parts.length - 1).join('/'),\n label: undefined,\n operations: [],\n hasChildren: true,\n };\n parent.label = parent.path;\n prev = parent;\n indents[parent.path] = item.indent;\n result.push(parent);\n } else {\n prev = item;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item));\n continue;\n }\n }\n if (!prev) {\n continue;\n }\n // this is similar to the next block but is faster when the previous item is parent.\n if (path.startsWith(prev.path || '')) {\n item.indent = prev.indent + 1;\n prev.hasChildren = true;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item, prev.path));\n prev = item;\n continue;\n }\n const upPath = this.findParentEndpoint(parts);\n if (upPath) {\n item.indent = indents[upPath] + 1;\n const parent = result.find((p) => p.path === upPath) as ApiEndpointsTreeItem;\n parent.hasChildren = true;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item, upPath));\n } else {\n if (hasParts) {\n const info = this.findCommonRootInfo(parts);\n if (info) {\n // this is an abstract item, it's not actually an endpoint\n const parent: ApiEndpointsTreeItem = {\n indent: info.item.indent,\n path: info.common,\n label: info.common,\n operations: [],\n hasChildren: true,\n };\n this.postInsertParent(parent);\n indents[parent.path] = parent.indent;\n result.splice(info.index, 0, parent);\n item.indent = parent.indent + 1;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item, parent.path));\n continue;\n }\n }\n item.indent = 0;\n indents[item.path] = item.indent;\n result.push(this.prepareLabel(item));\n }\n prev = item;\n }\n return result;\n }\n\n /**\n * @param parts Path parts of the currently evaluated endpoint\n */\n findParentEndpoint(parts: string[]): string | undefined {\n const { indents } = this;\n const list = Array.from(parts);\n const compare = Object.keys(indents).reverse();\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const path = list.join('/');\n if (!path) {\n break;\n }\n const upPath = compare.find((candidate) => path.startsWith(candidate));\n if (upPath) {\n return upPath;\n }\n list.pop();\n if (!list.length) {\n break;\n }\n }\n return undefined;\n }\n\n /**\n * @param {string[]} parts Path parts of the currently evaluated endpoint\n */\n findCommonRootInfo(parts: string[]): CommonRootInfo|undefined {\n const { result } = this;\n const list = Array.from(parts);\n // eslint-disable-next-line no-constant-condition\n while (true) {\n list.pop();\n if (!list.length) {\n break;\n }\n const path = list.join('/');\n if (!path) {\n break;\n }\n const index = result.findIndex((candidate) => candidate.path.startsWith(path));\n if (index !== -1) {\n return {\n index,\n item: result[index],\n common: path,\n };\n }\n }\n return undefined;\n }\n\n prepareLabel(item: ApiEndpointsTreeItem, prevPath?: string): ApiEndpointsTreeItem {\n const { name, path, indent } = item;\n item.label = path;\n if (name) {\n item.label = name;\n } else if (indent > 0 && prevPath) {\n let label = item.label.replace(prevPath, '');\n if (label.startsWith('-')) {\n label = label.substring(1);\n }\n item.label = label\n item.hasShortPath = true;\n if (!item.label.startsWith('/')) {\n item.label = `/${item.label}`;\n }\n }\n return item;\n }\n\n /**\n * Updates paths and indentation of children after inserting a new (abstract) parent.\n */\n postInsertParent(parent: ApiEndpointsTreeItem): void {\n const { result } = this;\n result.forEach((item) => {\n const { path } = item;\n if (path.startsWith(parent.path)) {\n item.indent += 1;\n item.label = (item.label || '').replace(parent.path, '');\n }\n });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NaturalTree.js","sourceRoot":"","sources":["../../../../src/amf/lib/navigation-layout/NaturalTree.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,2CAA2C;AAC3C,gCAAgC;AAIhC;;;;GAIG;AACH,MAAM,OAAO,WAAW;
|
|
1
|
+
{"version":3,"file":"NaturalTree.js","sourceRoot":"","sources":["../../../../src/amf/lib/navigation-layout/NaturalTree.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable class-methods-use-this */\n/* eslint-disable no-plusplus */\n\nimport { ApiEndpointsTreeItem, ApiEndPointWithOperationsListItem } from \"../../types.js\";\n\n/**\n * A class that transforms the list of endpoints and methods into\n * a \"natural\" tree structure with indentation.\n * This is consistent with the legacy API navigation element sorting.\n */\nexport class NaturalTree {\n result: ApiEndpointsTreeItem[];\n\n basePaths: string[];\n\n constructor() {\n this.result = [];\n this.basePaths = [];\n }\n\n /**\n * @param list The list of endpoints as they appear in the API.\n */\n create(list: ApiEndPointWithOperationsListItem[]): ApiEndpointsTreeItem[] {\n list.forEach((item) => this.appendEndpointItem(item));\n return this.result;\n }\n\n appendEndpointItem(item: ApiEndPointWithOperationsListItem): void {\n const { path, name, id, operations, } = item;\n const result: ApiEndpointsTreeItem = ({\n path,\n label: name,\n name,\n id,\n indent: 0,\n operations,\n hasChildren: false,\n hasShortPath: false,\n });\n\n let tmpPath = path;\n if (tmpPath[0] === '/') {\n tmpPath = tmpPath.substring(1);\n }\n const parts = tmpPath.split('/');\n let indent = 0;\n this.basePaths.push(path);\n\n if (parts.length > 1 /* && !this.renderFullPaths */) {\n const lowerParts = parts.slice(0, parts.length - 1);\n if (lowerParts.length) {\n for (let i = lowerParts.length - 1; i >= 0; i--) {\n const currentPath = `/${lowerParts.slice(0, i + 1).join('/')}`;\n const previousBasePathItem = this.basePaths[this.basePaths.length - 2];\n if (previousBasePathItem && (previousBasePathItem === currentPath || previousBasePathItem.startsWith(`${currentPath}/`))) {\n indent++;\n }\n }\n }\n }\n if (!result.label) {\n if (indent > 0) {\n try {\n result.label = this.computePathName(path, parts, indent);\n } catch (_) {\n result.label = path;\n }\n } else {\n result.label = path;\n }\n }\n result.indent = indent;\n this.result.push(result);\n }\n\n /**\n * Computes label for an endpoint when name is missing and the endpoint\n * is indented, hence name should be truncated.\n * @param currentPath Endpoint's path\n * @param parts Path parts\n * @param indent Endpoint indentation\n */\n computePathName(currentPath: string, parts: string[], indent: number): string {\n const { basePaths } = this;\n let path = '';\n \n const latestBasePath = basePaths[basePaths.length - 1];\n for (let i = 0, len = parts.length - 1; i < len; i++) {\n path += `/${parts[i]}`;\n if (!latestBasePath || latestBasePath.indexOf(`${path}/`) !== -1) {\n indent--;\n }\n if (indent === 0) {\n break;\n }\n }\n return currentPath.replace(path, '');\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmfGraphStore.js","sourceRoot":"","sources":["../../../src/amf/store/AmfGraphStore.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAkB,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,OAAO,aAAa;
|
|
1
|
+
{"version":3,"file":"AmfGraphStore.js","sourceRoot":"","sources":["../../../src/amf/store/AmfGraphStore.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,OAAO,EAAkB,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IAKxB;;OAEG;IACH,YAAY,SAAsB,MAAM;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,GAAG,CAAC,KAAuC;QAC/C,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,OAAe,EAAE,GAAG,IAAW;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;SAC/C;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAa,CAAC;QAC/C,MAAM,QAAQ,GAAG,OAAyB,CAAC;QAC3C,IAAI,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,UAAU,EAAE;YAC5C,MAAM,IAAI,KAAK,CAAC,eAAe,OAAO,sCAAsC,CAAC,CAAC;SAC/E;QACD,OAAQ,QAAQ,CAAC,QAAQ,CAAsC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3E,CAAC;CACF","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AmfDefinitions, uuidV4 } from '@api-client/core/build/browser.js';\nimport { AmfStore } from './AmfStore.js';\n\n/**\n * The AMF graph store that hosts multiple instances of the AMF graph model.\n * \n * Note, all methods are asynchronous so this class can be extended to support async communication\n * with the store (like HTTP or WS).\n */\nexport class AmfGraphStore {\n apis: Map<string, AmfStore>;\n\n target: EventTarget;\n\n /**\n * @param target The event target to dispatch the events on.\n */\n constructor(target: EventTarget = window) {\n this.apis = new Map();\n this.target = target;\n }\n\n /**\n * Creates a new store object.\n * @param graph The graph model to use to initialize the store.\n * @returns The store id to be used to reference when querying the store.\n */\n async add(graph: AmfDefinitions.IAmfDomainElement): Promise<string> {\n const id = uuidV4();\n const instance = new AmfStore(this.target, graph);\n this.apis.set(id, instance);\n return id;\n }\n\n /**\n * Removes all APIs from the store.\n */\n async clear(): Promise<void> {\n this.apis.clear();\n }\n\n /**\n * Removes a specific API from the store.\n * @param id The graph store identifier generated when calling `add()`.\n */\n async delete(id: string): Promise<void> {\n this.apis.delete(id);\n }\n\n /**\n * Proxies a read command to the store.\n * @param id The graph store identifier generated when calling `add()`.\n * @param command The command (method name) to call on the store.\n * @param args The list of command arguments.\n */\n async read(id: string, command: string, ...args: any[]): Promise<any> {\n if (!this.apis.has(id)) {\n throw new Error(`No graph defined for ${id}`);\n }\n const instance = this.apis.get(id) as AmfStore;\n const typedCmd = command as keyof AmfStore;\n if (typeof instance[typedCmd] !== 'function') {\n throw new Error(`The command ${command} is not callable on the graph store.`);\n }\n return (instance[typedCmd] as (...opts: any[]) => Promise<any>)(...args);\n }\n}\n"]}
|
|
@@ -7,13 +7,6 @@ import { AmfSerializer } from '@api-client/core/build/browser.js';
|
|
|
7
7
|
* An abstract base class for the store implementation that works with API Components.
|
|
8
8
|
*/
|
|
9
9
|
export class AmfStore {
|
|
10
|
-
/**
|
|
11
|
-
* For future use.
|
|
12
|
-
* Indicates that the store is read only.
|
|
13
|
-
*/
|
|
14
|
-
readonly;
|
|
15
|
-
target;
|
|
16
|
-
serializer;
|
|
17
10
|
/**
|
|
18
11
|
* @param target The event target to dispatch the events on.
|
|
19
12
|
*/
|