@api-client/ui 0.2.12 → 0.3.0
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/.vscode/settings.json +1 -0
- package/build/src/core/ModalActivity.d.ts +1 -1
- package/build/src/core/ModalActivity.d.ts.map +1 -1
- package/build/src/core/ModalActivity.js +6 -5
- package/build/src/core/ModalActivity.js.map +1 -1
- package/build/src/core/ThemeManager.d.ts +4 -2
- package/build/src/core/ThemeManager.d.ts.map +1 -1
- package/build/src/core/ThemeManager.js.map +1 -1
- package/build/src/demo/DemoPage.d.ts +1 -4
- package/build/src/demo/DemoPage.d.ts.map +1 -1
- package/build/src/demo/DemoPage.js +2 -5
- package/build/src/demo/DemoPage.js.map +1 -1
- package/build/src/elements/authorization/ui/CcAuthorization.d.ts +1 -1
- package/build/src/elements/authorization/ui/CcAuthorization.d.ts.map +1 -1
- package/build/src/elements/authorization/ui/CcAuthorization.js +2 -2
- package/build/src/elements/authorization/ui/CcAuthorization.js.map +1 -1
- package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts +1 -1
- package/build/src/elements/authorization/ui/OAuth2Authorization.d.ts.map +1 -1
- package/build/src/elements/authorization/ui/OAuth2Authorization.js +11 -5
- package/build/src/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
- package/build/src/elements/authorization/ui/OidcAuthorization.d.ts +1 -2
- package/build/src/elements/authorization/ui/OidcAuthorization.d.ts.map +1 -1
- package/build/src/elements/authorization/ui/OidcAuthorization.js +10 -8
- package/build/src/elements/authorization/ui/OidcAuthorization.js.map +1 -1
- package/build/src/elements/code/HttpSnippets.d.ts +1 -1
- package/build/src/elements/code/HttpSnippets.d.ts.map +1 -1
- package/build/src/elements/code/HttpSnippets.js +5 -5
- package/build/src/elements/code/HttpSnippets.js.map +1 -1
- package/build/src/elements/dialog/internals/ConfirmDelete.d.ts +1 -1
- package/build/src/elements/dialog/internals/ConfirmDelete.d.ts.map +1 -1
- package/build/src/elements/dialog/internals/ConfirmDelete.js +5 -5
- package/build/src/elements/dialog/internals/ConfirmDelete.js.map +1 -1
- package/build/src/elements/dialog/internals/Rename.d.ts +1 -1
- package/build/src/elements/dialog/internals/Rename.d.ts.map +1 -1
- package/build/src/elements/dialog/internals/Rename.js +6 -5
- package/build/src/elements/dialog/internals/Rename.js.map +1 -1
- package/build/src/elements/environment/EnvironmentEditor.d.ts +1 -1
- package/build/src/elements/environment/EnvironmentEditor.d.ts.map +1 -1
- package/build/src/elements/environment/EnvironmentEditor.js +5 -4
- package/build/src/elements/environment/EnvironmentEditor.js.map +1 -1
- package/build/src/elements/file-system/internals/Breadcrumbs.d.ts +2 -1
- package/build/src/elements/file-system/internals/Breadcrumbs.d.ts.map +1 -1
- package/build/src/elements/file-system/internals/Breadcrumbs.js +3 -4
- package/build/src/elements/file-system/internals/Breadcrumbs.js.map +1 -1
- package/build/src/elements/http/BodyEditor.d.ts +1 -3
- package/build/src/elements/http/BodyEditor.d.ts.map +1 -1
- package/build/src/elements/http/BodyEditor.js +25 -20
- package/build/src/elements/http/BodyEditor.js.map +1 -1
- package/build/src/elements/http/BodyMultipartEditor.d.ts +1 -1
- package/build/src/elements/http/BodyMultipartEditor.d.ts.map +1 -1
- package/build/src/elements/http/BodyMultipartEditor.js +3 -3
- package/build/src/elements/http/BodyMultipartEditor.js.map +1 -1
- package/build/src/elements/http/CertificateAdd.element.d.ts +1 -3
- package/build/src/elements/http/CertificateAdd.element.d.ts.map +1 -1
- package/build/src/elements/http/CertificateAdd.element.js +6 -10
- package/build/src/elements/http/CertificateAdd.element.js.map +1 -1
- package/build/src/elements/http/HeadersForm.d.ts +1 -1
- package/build/src/elements/http/HeadersForm.d.ts.map +1 -1
- package/build/src/elements/http/HeadersForm.js +3 -3
- package/build/src/elements/http/HeadersForm.js.map +1 -1
- package/build/src/elements/http/HttpAssertions.element.d.ts +1 -1
- package/build/src/elements/http/HttpAssertions.element.d.ts.map +1 -1
- package/build/src/elements/http/HttpAssertions.element.js +2 -2
- package/build/src/elements/http/HttpAssertions.element.js.map +1 -1
- package/build/src/elements/http/HttpFlows.element.d.ts +1 -1
- package/build/src/elements/http/HttpFlows.element.d.ts.map +1 -1
- package/build/src/elements/http/HttpFlows.element.js +6 -6
- package/build/src/elements/http/HttpFlows.element.js.map +1 -1
- package/build/src/elements/http/RequestEditor.d.ts +1 -3
- package/build/src/elements/http/RequestEditor.d.ts.map +1 -1
- package/build/src/elements/http/RequestEditor.js +10 -11
- package/build/src/elements/http/RequestEditor.js.map +1 -1
- package/build/src/elements/http/UrlParamsForm.d.ts +1 -1
- package/build/src/elements/http/UrlParamsForm.d.ts.map +1 -1
- package/build/src/elements/http/UrlParamsForm.js +4 -4
- package/build/src/elements/http/UrlParamsForm.js.map +1 -1
- package/build/src/elements/project/HttpProjectRequest.d.ts +1 -1
- package/build/src/elements/project/HttpProjectRequest.d.ts.map +1 -1
- package/build/src/elements/project/HttpProjectRequest.js +3 -3
- package/build/src/elements/project/HttpProjectRequest.js.map +1 -1
- package/build/src/elements/project/HttpProjectRequestHistory.d.ts +1 -2
- package/build/src/elements/project/HttpProjectRequestHistory.d.ts.map +1 -1
- package/build/src/elements/project/HttpProjectRequestHistory.js +5 -6
- package/build/src/elements/project/HttpProjectRequestHistory.js.map +1 -1
- package/build/src/elements/project/ProjectRunReport.d.ts +1 -1
- package/build/src/elements/project/ProjectRunReport.d.ts.map +1 -1
- package/build/src/elements/project/ProjectRunReport.js +7 -7
- package/build/src/elements/project/ProjectRunReport.js.map +1 -1
- package/build/src/elements/project/ProjectRunner.d.ts +1 -2
- package/build/src/elements/project/ProjectRunner.d.ts.map +1 -1
- package/build/src/elements/project/ProjectRunner.js +4 -5
- package/build/src/elements/project/ProjectRunner.js.map +1 -1
- package/build/src/md/button/internals/base.d.ts +98 -0
- package/build/src/md/button/internals/base.d.ts.map +1 -0
- package/build/src/md/button/internals/base.js +353 -0
- package/build/src/md/button/internals/base.js.map +1 -0
- package/build/src/md/button/internals/button.d.ts +7 -75
- package/build/src/md/button/internals/button.d.ts.map +1 -1
- package/build/src/md/button/internals/button.js +18 -247
- package/build/src/md/button/internals/button.js.map +1 -1
- package/build/src/md/button/internals/{button-styles.d.ts → button.styles.d.ts} +1 -1
- package/build/src/md/button/internals/button.styles.d.ts.map +1 -0
- package/build/src/md/button/internals/button.styles.js +319 -0
- package/build/src/md/button/internals/button.styles.js.map +1 -0
- package/build/src/md/button/internals/group.d.ts +54 -0
- package/build/src/md/button/internals/group.d.ts.map +1 -0
- package/build/src/md/button/internals/group.js +157 -0
- package/build/src/md/button/internals/group.js.map +1 -0
- package/build/src/md/button/internals/{text-button.styles.d.ts → group.styles.d.ts} +1 -1
- package/build/src/md/button/internals/group.styles.d.ts.map +1 -0
- package/build/src/md/button/internals/group.styles.js +102 -0
- package/build/src/md/button/internals/group.styles.js.map +1 -0
- package/build/src/md/button/ui-button-group.d.ts +11 -0
- package/build/src/md/button/ui-button-group.d.ts.map +1 -0
- package/build/src/md/{icon-button/ui-filled-icon-button.js → button/ui-button-group.js} +10 -11
- package/build/src/md/button/ui-button-group.js.map +1 -0
- package/build/src/md/button/ui-button.d.ts +14 -0
- package/build/src/md/button/ui-button.d.ts.map +1 -0
- package/build/src/md/button/{ui-text-button.js → ui-button.js} +10 -11
- package/build/src/md/button/ui-button.js.map +1 -0
- package/build/src/md/dialog/internals/Dialog.d.ts +5 -5
- package/build/src/md/dialog/internals/Dialog.d.ts.map +1 -1
- package/build/src/md/dialog/internals/Dialog.js +14 -9
- package/build/src/md/dialog/internals/Dialog.js.map +1 -1
- package/build/src/md/dropdown-list/internals/UiDropdownList.d.ts +1 -1
- package/build/src/md/dropdown-list/internals/UiDropdownList.js +1 -1
- package/build/src/md/dropdown-list/internals/UiDropdownList.js.map +1 -1
- package/build/src/md/icon-button/internals/IconButton.d.ts +12 -36
- package/build/src/md/icon-button/internals/IconButton.d.ts.map +1 -1
- package/build/src/md/icon-button/internals/IconButton.js +32 -144
- package/build/src/md/icon-button/internals/IconButton.js.map +1 -1
- package/build/src/md/{button/internals/filled-button.styles.d.ts → icon-button/internals/IconButton.styles.d.ts} +1 -1
- package/build/src/md/icon-button/internals/IconButton.styles.d.ts.map +1 -0
- package/build/src/md/icon-button/internals/IconButton.styles.js +286 -0
- package/build/src/md/icon-button/internals/IconButton.styles.js.map +1 -0
- package/build/src/md/icon-button/ui-icon-button.d.ts.map +1 -1
- package/build/src/md/icon-button/ui-icon-button.js +2 -3
- package/build/src/md/icon-button/ui-icon-button.js.map +1 -1
- package/build/src/md/ripple/internals/ripple.d.ts +2 -0
- package/build/src/md/ripple/internals/ripple.d.ts.map +1 -1
- package/build/src/md/ripple/internals/ripple.js +20 -10
- package/build/src/md/ripple/internals/ripple.js.map +1 -1
- package/build/src/md/ripple/internals/ripple.styles.d.ts.map +1 -1
- package/build/src/md/ripple/internals/ripple.styles.js +8 -20
- package/build/src/md/ripple/internals/ripple.styles.js.map +1 -1
- package/build/src/md/snackbar/internals/Snackbar.d.ts +1 -1
- package/build/src/md/snackbar/internals/Snackbar.d.ts.map +1 -1
- package/build/src/md/snackbar/internals/Snackbar.js +4 -2
- package/build/src/md/snackbar/internals/Snackbar.js.map +1 -1
- package/build/src/md/text-field/internals/filled.styles.d.ts.map +1 -1
- package/build/src/md/text-field/internals/filled.styles.js +3 -0
- package/build/src/md/text-field/internals/filled.styles.js.map +1 -1
- package/build/src/styles/m3/dialog.module.d.ts +2 -2
- package/build/src/styles/m3/dialog.module.js +2 -2
- package/build/src/styles/m3/dialog.module.js.map +1 -1
- package/build/src/styles/m3/tokens.d.ts.map +1 -1
- package/build/src/styles/m3/tokens.js +208 -182
- package/build/src/styles/m3/tokens.js.map +1 -1
- package/demo/elements/authorization/oauth-authorize.html +1 -1
- package/demo/elements/authorization/oauth-authorize.ts +1 -1
- package/demo/elements/environment/variables-editor.ts +2 -2
- package/demo/elements/http/url-editing.ts +3 -3
- package/demo/elements/project/request-editor.ts +4 -4
- package/demo/layout/index.ts +5 -5
- package/demo/md/buttons/button.html +121 -0
- package/demo/md/buttons/button.ts +246 -0
- package/demo/md/buttons/{index.html → group.html} +15 -2
- package/demo/md/buttons/group.ts +171 -0
- package/demo/md/checkbox/index.ts +1 -1
- package/demo/md/dialog/dialog.ts +8 -9
- package/demo/md/dropdown-list/index.ts +68 -71
- package/demo/md/icon-button/index.html +97 -7
- package/demo/md/icon-button/index.ts +97 -201
- package/demo/md/index.html +3 -1
- package/demo/md/inputs/input.ts +1 -1
- package/demo/md/inputs/radio.ts +1 -1
- package/demo/md/inputs/switch.ts +1 -1
- package/demo/md/notification/snack.ts +5 -5
- package/demo/md/progress/progress.ts +4 -3
- package/package.json +2 -2
- package/src/core/ModalActivity.ts +6 -5
- package/src/core/ThemeManager.ts +5 -4
- package/src/demo/DemoPage.ts +2 -5
- package/src/elements/authorization/ui/CcAuthorization.ts +2 -2
- package/src/elements/authorization/ui/OAuth2Authorization.ts +11 -5
- package/src/elements/authorization/ui/OidcAuthorization.ts +10 -8
- package/src/elements/code/HttpSnippets.ts +5 -5
- package/src/elements/dialog/internals/ConfirmDelete.ts +5 -5
- package/src/elements/dialog/internals/Rename.ts +6 -5
- package/src/elements/environment/EnvironmentEditor.ts +5 -4
- package/src/elements/file-system/internals/Breadcrumbs.ts +3 -4
- package/src/elements/http/BodyEditor.ts +25 -20
- package/src/elements/http/BodyMultipartEditor.ts +3 -3
- package/src/elements/http/CertificateAdd.element.ts +6 -10
- package/src/elements/http/HeadersForm.ts +3 -3
- package/src/elements/http/HttpAssertions.element.ts +2 -2
- package/src/elements/http/HttpFlows.element.ts +6 -6
- package/src/elements/http/RequestEditor.ts +10 -11
- package/src/elements/http/UrlParamsForm.ts +4 -4
- package/src/elements/project/HttpProjectRequest.ts +3 -3
- package/src/elements/project/HttpProjectRequestHistory.ts +5 -6
- package/src/elements/project/ProjectRunReport.ts +7 -7
- package/src/elements/project/ProjectRunner.ts +4 -5
- package/src/md/button/internals/base.ts +299 -0
- package/src/md/button/internals/button.styles.ts +319 -0
- package/src/md/button/internals/button.ts +8 -234
- package/src/md/button/internals/group.styles.ts +102 -0
- package/src/md/button/internals/group.ts +121 -0
- package/src/md/button/ui-button-group.ts +15 -0
- package/src/md/button/ui-button.ts +18 -0
- package/src/md/dialog/internals/Dialog.ts +14 -9
- package/src/md/dropdown-list/internals/UiDropdownList.ts +1 -1
- package/src/md/icon-button/internals/IconButton.styles.ts +286 -0
- package/src/md/icon-button/internals/IconButton.ts +15 -139
- package/src/md/icon-button/ui-icon-button.ts +2 -3
- package/src/md/ripple/internals/ripple.styles.ts +8 -20
- package/src/md/ripple/internals/ripple.ts +21 -13
- package/src/md/snackbar/internals/Snackbar.ts +4 -2
- package/src/md/text-field/internals/filled.styles.ts +3 -0
- package/src/styles/m3/dialog.module.ts +2 -2
- package/src/styles/m3/native.css +270 -0
- package/src/styles/m3/tokens.css +208 -182
- package/src/styles/m3/tokens.ts +208 -182
- package/test/ui/button/UiButton.test.ts +51 -29
- package/test/ui/button/UiIconButton.test.ts +25 -19
- package/test/ui/dialog/UiDialog.test.ts +10 -10
- package/build/src/md/button/internals/button-styles.d.ts.map +0 -1
- package/build/src/md/button/internals/button-styles.js +0 -143
- package/build/src/md/button/internals/button-styles.js.map +0 -1
- package/build/src/md/button/internals/elevated-button.d.ts +0 -4
- package/build/src/md/button/internals/elevated-button.d.ts.map +0 -1
- package/build/src/md/button/internals/elevated-button.js +0 -4
- package/build/src/md/button/internals/elevated-button.js.map +0 -1
- package/build/src/md/button/internals/elevated-button.styles.d.ts +0 -3
- package/build/src/md/button/internals/elevated-button.styles.d.ts.map +0 -1
- package/build/src/md/button/internals/elevated-button.styles.js +0 -38
- package/build/src/md/button/internals/elevated-button.styles.js.map +0 -1
- package/build/src/md/button/internals/filled-button.d.ts +0 -4
- package/build/src/md/button/internals/filled-button.d.ts.map +0 -1
- package/build/src/md/button/internals/filled-button.js +0 -4
- package/build/src/md/button/internals/filled-button.js.map +0 -1
- package/build/src/md/button/internals/filled-button.styles.d.ts.map +0 -1
- package/build/src/md/button/internals/filled-button.styles.js +0 -30
- package/build/src/md/button/internals/filled-button.styles.js.map +0 -1
- package/build/src/md/button/internals/filled-tonal-button.d.ts +0 -4
- package/build/src/md/button/internals/filled-tonal-button.d.ts.map +0 -1
- package/build/src/md/button/internals/filled-tonal-button.js +0 -4
- package/build/src/md/button/internals/filled-tonal-button.js.map +0 -1
- package/build/src/md/button/internals/filled-tonal-button.styles.d.ts +0 -3
- package/build/src/md/button/internals/filled-tonal-button.styles.d.ts.map +0 -1
- package/build/src/md/button/internals/filled-tonal-button.styles.js +0 -30
- package/build/src/md/button/internals/filled-tonal-button.styles.js.map +0 -1
- package/build/src/md/button/internals/outlined-button.d.ts +0 -4
- package/build/src/md/button/internals/outlined-button.d.ts.map +0 -1
- package/build/src/md/button/internals/outlined-button.js +0 -4
- package/build/src/md/button/internals/outlined-button.js.map +0 -1
- package/build/src/md/button/internals/outlined-button.styles.d.ts +0 -3
- package/build/src/md/button/internals/outlined-button.styles.d.ts.map +0 -1
- package/build/src/md/button/internals/outlined-button.styles.js +0 -31
- package/build/src/md/button/internals/outlined-button.styles.js.map +0 -1
- package/build/src/md/button/internals/text-button.d.ts +0 -4
- package/build/src/md/button/internals/text-button.d.ts.map +0 -1
- package/build/src/md/button/internals/text-button.js +0 -4
- package/build/src/md/button/internals/text-button.js.map +0 -1
- package/build/src/md/button/internals/text-button.styles.d.ts.map +0 -1
- package/build/src/md/button/internals/text-button.styles.js +0 -30
- package/build/src/md/button/internals/text-button.styles.js.map +0 -1
- package/build/src/md/button/ui-elevated-button.d.ts +0 -14
- package/build/src/md/button/ui-elevated-button.d.ts.map +0 -1
- package/build/src/md/button/ui-elevated-button.js +0 -31
- package/build/src/md/button/ui-elevated-button.js.map +0 -1
- package/build/src/md/button/ui-filled-button.d.ts +0 -14
- package/build/src/md/button/ui-filled-button.d.ts.map +0 -1
- package/build/src/md/button/ui-filled-button.js +0 -31
- package/build/src/md/button/ui-filled-button.js.map +0 -1
- package/build/src/md/button/ui-filled-tonal-button.d.ts +0 -14
- package/build/src/md/button/ui-filled-tonal-button.d.ts.map +0 -1
- package/build/src/md/button/ui-filled-tonal-button.js +0 -31
- package/build/src/md/button/ui-filled-tonal-button.js.map +0 -1
- package/build/src/md/button/ui-outlined-button.d.ts +0 -14
- package/build/src/md/button/ui-outlined-button.d.ts.map +0 -1
- package/build/src/md/button/ui-outlined-button.js +0 -31
- package/build/src/md/button/ui-outlined-button.js.map +0 -1
- package/build/src/md/button/ui-text-button.d.ts +0 -14
- package/build/src/md/button/ui-text-button.d.ts.map +0 -1
- package/build/src/md/button/ui-text-button.js.map +0 -1
- package/build/src/md/icon-button/ui-filled-icon-button.d.ts +0 -11
- package/build/src/md/icon-button/ui-filled-icon-button.d.ts.map +0 -1
- package/build/src/md/icon-button/ui-filled-icon-button.js.map +0 -1
- package/build/src/md/icon-button/ui-filled-tonal-icon-button.d.ts +0 -11
- package/build/src/md/icon-button/ui-filled-tonal-icon-button.d.ts.map +0 -1
- package/build/src/md/icon-button/ui-filled-tonal-icon-button.js +0 -28
- package/build/src/md/icon-button/ui-filled-tonal-icon-button.js.map +0 -1
- package/build/src/md/icon-button/ui-outlined-icon-button.d.ts +0 -11
- package/build/src/md/icon-button/ui-outlined-icon-button.d.ts.map +0 -1
- package/build/src/md/icon-button/ui-outlined-icon-button.js +0 -28
- package/build/src/md/icon-button/ui-outlined-icon-button.js.map +0 -1
- package/demo/md/buttons/index.ts +0 -279
- package/src/md/button/internals/button-styles.ts +0 -143
- package/src/md/button/internals/elevated-button.styles.ts +0 -38
- package/src/md/button/internals/elevated-button.ts +0 -3
- package/src/md/button/internals/filled-button.styles.ts +0 -30
- package/src/md/button/internals/filled-button.ts +0 -3
- package/src/md/button/internals/filled-tonal-button.styles.ts +0 -30
- package/src/md/button/internals/filled-tonal-button.ts +0 -3
- package/src/md/button/internals/outlined-button.styles.ts +0 -31
- package/src/md/button/internals/outlined-button.ts +0 -3
- package/src/md/button/internals/text-button.styles.ts +0 -30
- package/src/md/button/internals/text-button.ts +0 -3
- package/src/md/button/ui-elevated-button.ts +0 -19
- package/src/md/button/ui-filled-button.ts +0 -19
- package/src/md/button/ui-filled-tonal-button.ts +0 -19
- package/src/md/button/ui-outlined-button.ts +0 -19
- package/src/md/button/ui-text-button.ts +0 -19
- package/src/md/icon-button/ui-filled-icon-button.ts +0 -16
- package/src/md/icon-button/ui-filled-tonal-icon-button.ts +0 -16
- package/src/md/icon-button/ui-outlined-icon-button.ts +0 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequestEditor.js","sourceRoot":"","sources":["../../../../src/elements/http/RequestEditor.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult, PropertyValues, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { HttpRequest, type IHttpRequest } from '@api-client/core/models/HttpRequest.js'\nimport { type IRequestAuthorization, RequestAuthorization } from '@api-client/core/models/RequestAuthorization.js'\nimport { type IRequestConfig, RequestConfig } from '@api-client/core/models/RequestConfig.js'\nimport type { IHttpAssertion } from '@api-client/core/models/http-flows/HttpAssertion.js'\nimport { type DeserializedPayload, PayloadSerializer } from '@api-client/core/lib/transformers/PayloadSerializer.js'\nimport type { IHttpFlow } from '@api-client/core/models/http-flows/HttpFlows.js'\nimport type { IRequestUiMeta } from '@api-client/core/models/RequestUiMeta.js'\nimport type { AuthorizationType, IOAuth2Authorization } from '@api-client/core/models/Authorization.js'\nimport type { IProperty } from '@api-client/core/models/Property.js'\nimport { SecurityProcessor } from '@api-client/core/authorization/lib/SecurityProcessor.js'\nimport { Events as CoreEvents } from '@api-client/core/events/Events.js'\nimport { EventTypes } from '../../events/EventTypes.js'\nimport { Events } from '../../events/Events.js'\nimport ApiElement from '../ApiElement.js'\nimport { authTypeToLabel } from '../authorization/AuthLabels.js'\nimport type UrlInputEditorElement from './UrlInput.js'\nimport type BodyEditor from './BodyEditor.js'\nimport type { TabSelectionDetail } from '../../md/tabs/internals/Tabs.js'\nimport type UrlParamsForm from './UrlParamsForm.js'\nimport type HeadersForm from './HeadersForm.js'\nimport type { Authorization } from '../authorization/ui/Authorization.js'\nimport type HttpAssertions from './HttpAssertions.element.js'\nimport type RequestConfigElement from './RequestConfigElement.js'\nimport type { UiDialogClosingReason } from '../../md/dialog/internals/Dialog.js'\nimport '../../md/icons/ui-icon.js'\nimport '../../define/http/http-url-input.js'\nimport '../../define/http/http-url-params-form.js'\nimport '../../define/http/http-headers-form.js'\nimport '../../define/http/http-snippets.js'\nimport '../../define/http/http-body-editor.js'\nimport '../../define/http/http-assertions.js'\nimport '../../define/http/http-flows.js'\nimport '../../define/http/http-request-config.js'\nimport '../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../md/list/ui-list.js'\nimport '../../md/list/ui-list-item.js'\nimport '../../md/button/ui-text-button.js'\nimport '../../md/button/ui-filled-button.js'\nimport '../../md/button/ui-filled-tonal-button.js'\nimport '../../md/tabs/ui-tabs.js'\nimport '../../md/tabs/ui-tab.js'\nimport '../../md/divider/ui-divider.js'\nimport '../../md/dialog/ui-dialog.js'\nimport '../../define/authorization/basic-authorization.js'\nimport '../../define/authorization/bearer-authorization.js'\nimport '../../define/authorization/ntlm-authorization.js'\nimport '../../define/authorization/apikey-authorization.js'\nimport '../../define/authorization/oauth2-authorization.js'\nimport '../../define/authorization/oidc-authorization.js'\nimport '../../define/authorization/cc-authorization.js'\nimport HttpFlows from './HttpFlows.element.js'\n\nexport const HttpMethods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'CONNECT', 'OPTIONS', 'TRACE']\nexport const NonPayloadMethods = ['GET', 'HEAD']\n\nexport type SelectedTab =\n | 'parameters'\n | 'headers'\n | 'payload'\n | 'authorization'\n | 'code-snippets'\n | 'assertions'\n | 'config'\n | 'flows'\n\nexport interface SendDetails {\n /**\n * The request object to send.\n */\n request: IHttpRequest\n /**\n * Optional authorization configuration.\n */\n authorization: IRequestAuthorization[] | undefined\n /**\n * The request options.\n */\n config: IRequestConfig | undefined\n /**\n * HTTP tests to perform.\n */\n assertions: IHttpAssertion[] | undefined\n}\n\n/**\n * An element that renders an HTTP editor.\n *\n * @fires send - A custom event when the user requested to send the request. The detail object is the editor's request.\n * @fires abort - When the user requested to abort the ongoing request.\n * @fires authorizationchange - When authorization data change.\n * @fires uichange - When the UI model change.\n */\nexport default class RequestEditor extends ApiElement {\n /**\n * A promise set when reading payload from the `request` object.\n * It is resolved after the payload is read anf the `payload` property is set.\n */\n protected readingPayloadPromise = Promise.resolve()\n\n /**\n * A promise set when the payload is being written to the `request` object.\n * It is resolved after the `payload` is set on the request as a serializable object.\n */\n protected writingPayloadPromise = Promise.resolve()\n\n /**\n * A flag used to determine when the payload is being read for the synchronous code.\n */\n @state() accessor readingPayload = false\n\n /**\n * The base request object.\n */\n @property({ type: Object }) accessor request: IHttpRequest = new HttpRequest().toJSON()\n\n /**\n * The request payload.\n * It can be just a string or an object with the payload data depending on the content type.\n */\n @state() accessor payload: DeserializedPayload | undefined\n\n /**\n * The current content type value.\n */\n @state() accessor contentType: string | undefined\n\n @property({ type: Array }) accessor authorization: IRequestAuthorization[] | undefined\n\n @property({ type: Array }) accessor assertions: IHttpAssertion[] | undefined\n\n @property({ type: Array }) accessor flows: IHttpFlow[] | undefined\n\n /**\n * Redirect URL for the OAuth2 authorization.\n * If can be also set by dispatching `oauth2-redirect-url-changed`\n * with `value` property on the `detail` object.\n */\n @property({ type: String }) accessor oauth2RedirectUri: string | undefined\n\n /**\n * When set the editor is in read only mode.\n */\n @property({ type: Boolean, reflect: true }) accessor readOnly = false\n\n /**\n * A value to be passed to the OAuth 2 `authorizationUri` property in case\n * if current configuration has no value.\n * This is to be used as a default value.\n */\n @property({ type: String, reflect: true }) accessor oauth2AuthorizationUri: string | undefined\n\n /**\n * A value to be passed to the OAuth 2 `accessTokenUri` property in case\n * if current configuration has no value.\n * This is to be used as a default value.\n */\n @property({ type: String, reflect: true }) accessor oauth2AccessTokenUri: string | undefined\n\n /**\n * When set it ignores all `content-*` headers when the request method is `GET`.\n * When not set or `false` it renders a warning message.\n */\n @property({ type: Boolean, reflect: true }) accessor ignoreContentOnGet = false\n\n /**\n * When set the `content-` headers warning dialog is rendered.\n */\n @property({ type: Boolean, reflect: true }) accessor contentHeadersDialogOpened = false\n\n /**\n * To be set when the request is being transported.\n */\n @property({ type: Boolean, reflect: true }) accessor loading = false\n\n /**\n * An index of currently opened tab.\n * @attribute\n */\n @property({ type: String, reflect: true }) accessor selectedTab: SelectedTab = 'parameters'\n\n /**\n * Optional instance of the `RequestUiMeta` to store the UI state.\n */\n @property({ type: Object }) accessor ui: IRequestUiMeta | undefined\n\n /**\n * HTTP request configuration for the transport.\n */\n @property({ type: Object }) accessor config = new RequestConfig().toJSON()\n\n /**\n * @returns True when the request cannot have the payload on the message.\n */\n get isPayload(): boolean {\n const { request } = this\n if (!request || !request.method) {\n return false\n }\n return !NonPayloadMethods.includes(request.method)\n }\n\n protected _awaitingOAuth2authorization = false\n\n /**\n * This is set by the internal logic. When `ignoreContentOnGet` is set and the headers have `content-` headers\n * a dialog is rendered when trying to send the request. When the user chooses to ignore the warning this\n * flag makes sure that `send()` does not check headers.\n *\n * @todo(pawel): This should be done in the request logic module plugin.\n * Plugins can stop request indefinitely or cancel it.\n */\n ignoreValidationOnGet = false\n\n @state() protected accessor snippets: IHttpRequest | undefined\n\n constructor() {\n super()\n this.config.enabled = false\n this.handleInternalSend = this.handleInternalSend.bind(this)\n }\n\n override connectedCallback(): void {\n super.connectedCallback()\n this.eventsTarget.addEventListener(EventTypes.Http.Request.send, this.handleInternalSend)\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback()\n this.eventsTarget.addEventListener(EventTypes.Http.Request.send, this.handleInternalSend)\n }\n\n override firstUpdated(changedProperties: PropertyValues<this>): void {\n super.firstUpdated(changedProperties)\n this.computeSnippetsRequest()\n }\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n if (changedProperties.has('request')) {\n this.setupContentType()\n this.readingPayloadPromise = this.readPayload()\n }\n if (changedProperties.has('ui') && this.ui) {\n if (this.ui.selectedEditor) {\n this.selectedTab = this.ui.selectedEditor as SelectedTab\n }\n }\n super.willUpdate(changedProperties)\n }\n\n protected setupContentType(request = this.request): void {\n if (!request) {\n this.contentType = undefined\n return\n }\n if (!request.headersModel) {\n this.contentType = undefined\n return\n }\n const item = request.headersModel.find((i) => i.name.toLowerCase() === 'content-type')\n if (!item) {\n this.contentType = undefined\n return\n }\n this.contentType = item.value as string\n this.setPayloadMimeOption(request, this.contentType)\n }\n\n protected async readPayload(): Promise<void> {\n const { request } = this\n if (!request || !request.payload) {\n this.payload = undefined\n return\n }\n this.readingPayload = true\n try {\n this.payload = await PayloadSerializer.deserialize(request.payload)\n } catch {\n this.payload = undefined\n } finally {\n this.readingPayload = false\n }\n }\n\n /**\n * Validates state of the URL.\n * @return True if the URL has a structure that looks like\n * an URL which means scheme + something\n */\n validateUrl(): boolean {\n const { shadowRoot } = this\n if (!shadowRoot) {\n return true\n }\n const panel = shadowRoot.querySelector('http-url-input')\n if (!panel) {\n return true\n }\n return panel.checkValidity()\n }\n\n /**\n * Checks if current request requires calling `authorize()` on the OAuth2 method.\n *\n * @return This returns `true` only for valid OAuth 2 method that has no access token.\n */\n requiresAuthorization(): boolean {\n const { authorization = [] } = this\n const oauth = authorization.find((method) => method.enabled && method.type === 'oauth 2')\n if (!oauth) {\n return false\n }\n const authMethod = this.shadowRoot?.querySelector('oauth2-authorization')\n if (!authMethod) {\n return false\n }\n const cnf = oauth.config as IOAuth2Authorization\n if (authMethod.checkValidity() && !cnf.accessToken) {\n return true\n }\n return false\n }\n\n /**\n * Validates headers for `Content-*` entries against current method.\n * @param request The request object\n * @return True if headers are invalid.\n */\n validateContentHeaders(request: IHttpRequest): boolean {\n const method = request.method || 'get'\n if (method.toLowerCase() !== 'get') {\n return false\n }\n const any = !!request.headersModel && request.headersModel.some((i) => i.name.toLowerCase().startsWith('content-'))\n if (any) {\n return true\n }\n return false\n }\n\n /**\n * Serializes the current values to the `IHttpRequest`\n */\n async serialize(): Promise<IHttpRequest> {\n if (!this.request) {\n const instance = new HttpRequest()\n return instance.toJSON()\n }\n await this.writingPayloadPromise\n // make sure we copy everything.\n const instance = new HttpRequest(this.request)\n return instance.toJSON()\n }\n\n /**\n * Dispatches the send request event to the HTTP request engine.\n */\n async send(): Promise<void> {\n if (this.loading || !this.request) {\n return\n }\n if (!this.validateUrl()) {\n return\n }\n if (this.requiresAuthorization()) {\n const authMethod = this.shadowRoot?.querySelector('oauth2-authorization')\n if (authMethod) {\n authMethod.authorize()\n this._awaitingOAuth2authorization = true\n }\n return\n }\n const request = await this.serialize()\n // store the URL in the history\n await Events.HttpClient.Model.UrlHistory.add(request.url as string, this)\n if (!this.ignoreValidationOnGet && this.validateContentHeaders(request)) {\n this.contentHeadersDialogOpened = true\n return\n }\n this.ignoreValidationOnGet = false\n this.notifySend(request)\n CoreEvents.Telemetry.event(\n {\n category: 'Request editor',\n action: 'Send request',\n },\n this\n )\n }\n\n protected notifySend(request: IHttpRequest): void {\n this.dispatchEvent(\n new CustomEvent<SendDetails>('send', {\n detail: {\n request,\n authorization: this.authorization,\n config: this.config,\n assertions: this.assertions,\n },\n })\n )\n }\n\n /**\n * If the request does not exist it creates one.\n * @returns The request object.\n */\n protected getRequest(): IHttpRequest {\n if (!this.request) {\n const instance = new HttpRequest()\n this.request = instance.toJSON()\n }\n return this.request\n }\n\n /**\n * Aborts the request\n */\n abort(): void {\n this.dispatchEvent(new Event('abort'))\n }\n\n protected handleInternalSend(e: Event): void {\n e.stopPropagation()\n this.send()\n }\n\n protected handleVerbSelection(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined\n if (!target) {\n return\n }\n const { verb } = target.dataset\n if (verb) {\n this.selectVerb(verb)\n }\n }\n\n /**\n * @param verb The HTTP verb (operation, method)\n */\n selectVerb(verb: string): void {\n const request = this.getRequest()\n request.method = verb\n this.requestUpdate()\n this.notifyChange()\n this.notifyPropertyChanged('method', verb)\n if (!this.isPayload && this.selectedTab === 'payload') {\n this.selectedTab = 'headers'\n }\n CoreEvents.Telemetry.event(\n {\n category: 'Request editor',\n action: 'Method selected',\n label: verb,\n },\n this\n )\n this.computeSnippetsRequest()\n }\n\n /**\n * The handler for the URL editor change event\n */\n protected handlerUrlChange(e: Event): void {\n const panel = e.target as UrlInputEditorElement\n const { value } = panel\n this.selectUrl(value)\n }\n\n /**\n * Commits the change in the URL.\n * @param value The new URL value\n */\n selectUrl(value: string): void {\n const request = this.getRequest()\n request.url = value\n this.requestUpdate()\n this.notifyChange()\n this.notifyPropertyChanged('url', value)\n this.computeSnippetsRequest()\n }\n\n protected handleTabSelect(e: CustomEvent): void {\n const info = e.detail as TabSelectionDetail\n this.selectedTab = info.select as SelectedTab\n if (this.ui) {\n this.ui.selectedEditor = this.selectedTab\n this.notifyPropertyChanged('ui', this.ui)\n }\n CoreEvents.Telemetry.event(\n {\n category: 'Request editor',\n action: 'Editor switched',\n label: this.selectedTab,\n },\n this\n )\n }\n\n protected handleParamsChange(e: Event): void {\n const input = e.target as UrlParamsForm\n this.selectUrl(input.value)\n }\n\n /**\n * The handler for the headers change event from the headers editor.\n */\n handleHeadersChange(e: Event): void {\n e.preventDefault()\n const editor = e.target as HeadersForm\n const { model } = editor\n this.selectHeaders(model)\n if (!this.ui) {\n return\n }\n // const { value, source } = node;\n if (!this.ui.headers) {\n this.ui.headers = {}\n }\n // this.ui.headers.source = source;\n this.notifyPropertyChanged('ui', this.ui)\n }\n\n selectHeaders(model: IProperty[]): void {\n const request = this.getRequest()\n request.headersModel = model\n const ct = model.find((h) => h.name.toLowerCase() === 'content-type')\n this.contentType = ct && (ct.value as string)\n this.setPayloadMimeOption(request, this.contentType)\n this.requestUpdate()\n this.notifyChange()\n this.computeSnippetsRequest()\n }\n\n /**\n * The handler for the body editor change event\n */\n protected handleBody(e: Event): void {\n e.preventDefault()\n const node = e.target as BodyEditor\n const { value, model, selected, contentType } = node\n this.writingPayloadPromise = this.updatePayload(value as DeserializedPayload, contentType)\n this.computeSnippetsRequest()\n if (!this.ui) {\n return\n }\n if (!this.ui.body) {\n this.ui.body = {}\n }\n this.ui.body.model = model\n this.ui.body.selected = selected\n this.notifyPropertyChanged('ui', this.ui)\n }\n\n protected async updatePayload(value: DeserializedPayload, mime?: string): Promise<void> {\n const serialized = await PayloadSerializer.serialize(value)\n const request = this.getRequest()\n request.payload = serialized\n this.setPayloadMimeOption(request, mime)\n this.payload = value\n this.requestUpdate()\n this.notifyChange()\n this.notifyPropertyChanged('payload', value)\n }\n\n /**\n * When `mime` is set it creates the `payloadOptions` property with the mime.\n * @param request The request to set the mime type\n * @param mime the mime type value\n */\n protected setPayloadMimeOption(request: IHttpRequest | HttpRequest, mime?: string): void {\n if (mime) {\n if (!request.payloadOptions) {\n request.payloadOptions = {}\n }\n request.payloadOptions.mime = mime\n }\n }\n\n protected handleFlows(e: Event): void {\n e.preventDefault()\n const node = e.target as HttpFlows\n this.selectFlows(node.model)\n }\n\n selectFlows(flows?: IHttpFlow[]): void {\n this.flows = flows\n this.notifyChange()\n }\n\n protected handleAssertions(e: Event): void {\n e.preventDefault()\n const node = e.target as HttpAssertions\n this.selectAssertions(node.model)\n }\n\n selectAssertions(assertions?: IHttpAssertion[]): void {\n this.assertions = assertions\n this.notifyChange()\n }\n\n protected handleConfig(e: Event): void {\n const node = e.target as RequestConfigElement\n this.selectRequestConfig(node.config)\n }\n\n selectRequestConfig(config: IRequestConfig): void {\n this.config = config\n this.notifyChange()\n }\n\n /**\n * Called to notify listeners about a particular property change\n *\n * @param type The property that changed. The resulting event type is\n * the combination of this value and the `change` suffix.\n * @param value The value of the changed property\n */\n protected notifyPropertyChanged(type: string, value: unknown): void {\n this.dispatchEvent(\n new CustomEvent(`${type}change`, {\n detail: {\n value,\n },\n })\n )\n }\n\n protected handleContentWarningClose(e: CustomEvent<UiDialogClosingReason>): void {\n this.contentHeadersDialogOpened = false\n if (e.detail.cancelled) {\n return\n }\n this.ignoreValidationOnGet = true\n this.send()\n }\n\n /**\n * When a request change this recomputes the values for code snippets.\n * These are different from the actual values in the request as\n * they contain authorization values applied to it.\n */\n protected async computeSnippetsRequest(): Promise<void> {\n const serialized = await this.serialize()\n const { authorization = [] } = this\n SecurityProcessor.applyAuthorization(serialized, [...authorization], { immutable: true })\n this.snippets = serialized\n }\n\n /**\n * Adds a new authorization object to the request for the given type.\n *\n * @returns The created instance of the authorization.\n */\n addAuthorization(type: AuthorizationType): RequestAuthorization {\n const cnf = RequestAuthorization.fromTypedConfig(type, {}, false)\n cnf.enabled = true\n if (!this.authorization) {\n this.authorization = []\n }\n this.authorization.push(cnf.toJSON())\n this.notifyPropertyChanged('authorization', this.authorization)\n this.requestUpdate()\n return cnf\n }\n\n /**\n * Updates authorization schema on the editor.\n * @param schema The new schema to replace the old one\n * @param isValid Whether the schema is valid.\n */\n updateAuthorization(schema: IRequestAuthorization, isValid: boolean): void {\n const { authorization } = this\n if (!authorization) {\n return\n }\n const index = authorization.findIndex((i) => i.type === schema.type)\n if (index === -1) {\n return\n }\n schema.valid = isValid\n authorization[index] = schema\n this.notifyPropertyChanged('authorization', this.authorization)\n }\n\n /**\n * Removes authorization schema from the editor.\n * @param type The authorization type to remove.\n */\n removeAuthorization(type: string): void {\n const { authorization } = this\n if (!authorization) {\n return\n }\n const index = authorization.findIndex((i) => i.type === type)\n if (index === -1) {\n return\n }\n authorization.splice(index, 1)\n this.notifyPropertyChanged('authorization', this.authorization)\n this.requestUpdate()\n }\n\n protected handleAuthAdd(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined\n if (!target) {\n return\n }\n const selected = target.dataset.type as AuthorizationType | undefined\n if (!selected) {\n return\n }\n this.addAuthorization(selected)\n }\n\n protected handleAuthChange(e: Event): void {\n const editor = e.target as Authorization\n const { authorization } = editor\n this.updateAuthorization(authorization as IRequestAuthorization, editor.checkValidity())\n }\n\n protected handleAuthDelete(e: Event): void {\n const editor = e.target as Authorization\n const { authorization } = editor\n if (!authorization) {\n return\n }\n this.removeAuthorization(authorization.type)\n }\n\n protected override render(): TemplateResult {\n return html`\n ${this.renderUrlEditorArea()}\n <div class=\"surface2 editors\">${this.renderTabs()} ${this.renderCurrentEditor()}</div>\n ${this.renderHeadersDialog()}\n `\n }\n\n /**\n * @returns The template for the top line with method selector, URL, and options.\n */\n protected renderUrlEditorArea(): TemplateResult {\n return html`\n <div class=\"url-editor\">\n <div class=\"url-meta\">${this.renderUrlMeta()}</div>\n ${this.renderSendButton()}\n </div>\n `\n }\n\n protected renderUrlMeta(): TemplateResult {\n return html` ${this.renderHttpMethodSelector()} ${this.renderUrlEditor()} `\n }\n\n /**\n * @returns The template for the HTTP method selector\n */\n protected renderHttpMethodSelector(): TemplateResult {\n const request = this.getRequest()\n const { method = 'GET' } = request\n\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleVerbSelection}\"\n class=\"verb-dropdown\"\n closeOnOutsideClick\n >\n <ui-text-button class=\"button\">\n ${method}\n <ui-icon icon=\"arrowDropDown\"></ui-icon>\n </ui-text-button>\n <ui-list slot=\"dropdown\" role=\"menu\"> ${this.renderHttpVerbOptions()} </ui-list>\n </ui-dropdown-list>\n `\n }\n\n /**\n * @returns The templates for each supported HTTP methods\n */\n protected renderHttpVerbOptions(): TemplateResult[] {\n return HttpMethods.map(\n (method) => html`\n <ui-list-item role=\"menuitem\" image=\"icon\" data-verb=\"${method}\">\n <div slot=\"start\" data-method=\"${method.toLocaleLowerCase()}\" class=\"http-label\"></div>\n ${method}\n </ui-list-item>\n `\n )\n }\n\n /**\n * @returns The template for the HTTP URL editor\n */\n protected renderUrlEditor(): TemplateResult {\n const request = this.getRequest()\n const { url = '' } = request\n const { eventsTarget } = this\n return html`\n <div class=\"url-input\">\n <http-url-input\n .value=\"${url}\"\n .eventsTarget=\"${eventsTarget}\"\n @change=\"${this.handlerUrlChange}\"\n ></http-url-input>\n </div>\n `\n }\n\n /**\n * @returns The template for the \"send\" or \"abort\" buttons.\n */\n protected renderSendButton(): TemplateResult | string {\n if (this.loading) {\n return html`\n <ui-filled-button title=\"Abort the request\" class=\"send-button\" @click=\"${this.abort}\">Abort</ui-filled-button>\n `\n }\n return html`\n <ui-filled-button title=\"Send the request\" class=\"send-button\" @click=\"${this.send}\">Send</ui-filled-button>\n `\n }\n\n /**\n * @returns The template for the request editor tabs\n */\n protected renderTabs(): TemplateResult {\n const { isPayload, selectedTab } = this\n // ui && ui.selectedEditor ||\n const selected = selectedTab\n return html` <ui-tabs .selected=\"${selected}\" @select=\"${this.handleTabSelect}\" class=\"editor-tabs\">\n <ui-tab aria-controls=\"parameters\" id=\"parameters-tab\">Parameters</ui-tab>\n <ui-tab aria-controls=\"headers\" id=\"headers-tab\">Headers</ui-tab>\n <ui-tab ?hidden=\"${!isPayload}\" aria-controls=\"payload\" id=\"payload-tab\">Body</ui-tab>\n <ui-tab aria-controls=\"authorization\" id=\"authorization-tab\">Authorization</ui-tab>\n <ui-tab aria-controls=\"flows\" id=\"flows-tab\">Flows</ui-tab>\n <ui-tab aria-controls=\"assertions\" id=\"assertions-tab\">Assertions</ui-tab>\n <ui-tab aria-controls=\"config\" id=\"config-tab\">Config</ui-tab>\n <ui-tab aria-controls=\"code-snippets\" id=\"code-snippets-tab\">Code snippets</ui-tab>\n </ui-tabs>`\n }\n\n /**\n * @returns The template for the current editor\n */\n protected renderCurrentEditor(): TemplateResult {\n const { selectedTab, isPayload } = this\n const parametersVisible = selectedTab === 'parameters'\n const headersVisible = selectedTab === 'headers'\n const bodyVisible = isPayload && selectedTab === 'payload'\n const authVisible = selectedTab === 'authorization'\n const codeVisible = selectedTab === 'code-snippets'\n const assertionsVisible = selectedTab === 'assertions'\n const configVisible = selectedTab === 'config'\n const flowsVisible = selectedTab === 'flows'\n return html`\n <div class=\"panel\">\n ${this.renderParameters(parametersVisible)} ${this.renderHeaders(headersVisible)}\n ${this.renderBody(bodyVisible)} ${this.renderAuthorization(authVisible)} ${this.renderHttpFlows(flowsVisible)}\n ${this.renderAssertions(assertionsVisible)} ${this.renderRequestConfig(configVisible)}\n ${this.renderSnippets(codeVisible)}\n </div>\n `\n }\n\n protected renderParameters(visible: boolean): TemplateResult {\n const request = this.getRequest()\n const { eventsTarget, readOnly } = this\n return html`\n <http-url-params-form\n id=\"parameters\"\n aria-describedby=\"parameters-tab\"\n role=\"tabpanel\"\n ?hidden=\"${!visible}\"\n .value=\"${request.url || ''}\"\n .eventsTarget=\"${eventsTarget}\"\n ?readOnly=\"${readOnly}\"\n @change=\"${this.handleParamsChange}\"\n ></http-url-params-form>\n `\n }\n\n /**\n * @param visible Whether the panel should not be hidden\n * @returns The template for the headers editor\n */\n protected renderHeaders(visible: boolean): TemplateResult {\n const request = this.getRequest()\n const { eventsTarget, readOnly } = this\n return html` <http-headers-form\n id=\"headers\"\n aria-describedby=\"headers-tab\"\n role=\"tabpanel\"\n .eventsTarget=\"${eventsTarget}\"\n .model=\"${request.headersModel || []}\"\n ?hidden=\"${!visible}\"\n @change=\"${this.handleHeadersChange}\"\n ?readonly=\"${readOnly}\"\n ></http-headers-form>`\n }\n\n /**\n * @param visible Whether the panel should not be hidden\n * @returns The template for the body editor\n */\n protected renderBody(visible: boolean): TemplateResult {\n const { payload, readOnly, contentType, ui, readingPayload } = this\n if (readingPayload) {\n return html`<p class=\"loading-body\" id=\"payload\">Preparing the editor...</p>`\n }\n const body = ui && ui.body\n const selected = body && (body.selected as 'file' | 'raw' | 'urlEncode' | 'multipart')\n const model = body && body.model\n\n return html`\n <http-body-editor\n id=\"payload\"\n aria-describedby=\"payload-tab\"\n role=\"tabpanel\"\n ?hidden=\"${!visible}\"\n ?readOnly=\"${readOnly}\"\n .contentType=\"${contentType}\"\n .model=\"${model}\"\n .value=\"${(!model && payload) || undefined}\"\n selected=\"${ifDefined(selected)}\"\n @change=\"${this.handleBody}\"\n @select=\"${this.handleBody}\"\n ></http-body-editor>\n `\n }\n\n /**\n * @param visible Whether the panel should not be hidden\n * @returns The template for the authorization editor\n */\n protected renderAuthorization(visible: boolean): TemplateResult | string {\n const { authorization } = this\n return html`\n <section ?hidden=\"${!visible}\" id=\"authorization\" aria-describedby=\"authorization-tab\" role=\"tabpanel\">\n ${this.renderAuthorizationActions(authorization)} ${this.renderAuthorizationList(authorization)}\n </section>\n `\n }\n\n protected renderAuthorizationActions(current: IRequestAuthorization[] = []): TemplateResult {\n const all = ['basic', 'oauth 2', 'open id', 'bearer', 'api key', 'ntlm', 'client certificate']\n const toRender: string[] = all.filter((type) => !current.some((i) => i.type === type))\n return html`\n <ui-dropdown-list verticalAlign=\"top\" @select=\"${this.handleAuthAdd}\" class=\"auth-dropdown\" closeOnOutsideClick>\n <ui-filled-tonal-button\n title=\"Add authorization option\"\n aria-label=\"Opens a menu to select authorization option\"\n ?disabled=\"${!toRender.length}\"\n >\n <ui-icon icon=\"arrowDropDown\" slot=\"icon\" role=\"presentation\"></ui-icon>\n Add\n </ui-filled-tonal-button>\n <ui-list slot=\"dropdown\" role=\"menu\"> ${this.renderAuthorizationOptions(toRender)} </ui-list>\n </ui-dropdown-list>\n `\n }\n\n protected renderAuthorizationOptions(available: string[]): TemplateResult {\n return html`\n ${available.map(\n (type) => html` <ui-list-item role=\"menuitem\" data-type=\"${type}\"> ${authTypeToLabel(type)} </ui-list-item> `\n )}\n `\n }\n\n protected renderAuthorizationList(authorization: IRequestAuthorization[] = []): TemplateResult[] {\n if (!Array.isArray(authorization) || !authorization.length) {\n return [this.renderEmptyAuthorization()]\n }\n return authorization.map((item, index) => {\n let content: TemplateResult | undefined\n switch (item.type) {\n case 'basic':\n content = this.renderBasicAuthorization(item)\n break\n case 'bearer':\n content = this.renderBearerAuthorization(item)\n break\n case 'ntlm':\n content = this.renderNtlmAuthorization(item)\n break\n case 'oauth 2':\n content = this.renderOauthAuthorization(item)\n break\n case 'open id':\n content = this.renderOidcAuthorization(item)\n break\n case 'client certificate':\n content = this.renderCCAuthorization(item)\n break\n case 'api key':\n content = this.renderApiKeyAuthorization(item)\n break\n default:\n }\n if (content) {\n const isLast = authorization.length === index + 1\n return html` ${content} ${!isLast ? html`<ui-divider></ui-divider>` : ''} `\n }\n return html``\n })\n }\n\n protected renderEmptyAuthorization(): TemplateResult {\n return html``\n }\n\n protected renderBasicAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <basic-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n canToggle\n canDelete\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></basic-authorization>\n `\n }\n\n protected renderBearerAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <bearer-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n canToggle\n canDelete\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></bearer-authorization>\n `\n }\n\n protected renderNtlmAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <ntlm-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n canToggle\n canDelete\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></ntlm-authorization>\n `\n }\n\n protected renderOauthAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <oauth2-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n canToggle\n canDelete\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n .defaultRedirectUri=\"${this.oauth2RedirectUri}\"\n ></oauth2-authorization>\n `\n }\n\n protected renderOidcAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <oidc-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n canToggle\n canDelete\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n .defaultRedirectUri=\"${this.oauth2RedirectUri}\"\n ></oidc-authorization>\n `\n }\n\n protected renderCCAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <cc-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n canToggle\n canDelete\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></cc-authorization>\n `\n }\n\n protected renderApiKeyAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <apikey-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n canToggle\n canDelete\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></apikey-authorization>\n `\n }\n\n protected renderHttpFlows(visible: boolean): TemplateResult | string {\n if (!visible) {\n return ''\n }\n const { flows = [] } = this\n return html`\n <http-flows\n aria-label=\"HTTP fLows\"\n aria-labelledby=\"flows-tab\"\n id=\"flows\"\n role=\"tabpanel\"\n .model=\"${flows}\"\n @change=\"${this.handleFlows}\"\n ></http-flows>\n `\n }\n\n protected renderAssertions(visible: boolean): TemplateResult | string {\n if (!visible) {\n return ''\n }\n const { assertions = [] } = this\n return html`\n <http-assertions\n aria-label=\"Assertions\"\n aria-labelledby=\"assertions-tab\"\n id=\"assertions\"\n role=\"tabpanel\"\n .model=\"${assertions}\"\n @change=\"${this.handleAssertions}\"\n ></http-assertions>\n `\n }\n\n protected renderRequestConfig(visible: boolean): TemplateResult | typeof nothing {\n if (!visible) {\n return nothing\n }\n const { config } = this\n return html`\n <http-request-config\n aria-label=\"Request options\"\n aria-labelledby=\"config-tab\"\n id=\"config\"\n role=\"tabpanel\"\n .config=\"${config}\"\n @change=\"${this.handleConfig}\"\n ></http-request-config>\n `\n }\n\n /**\n * @param visible Whether the panel should be rendered\n * @returns The template for the Code snippets\n */\n protected renderSnippets(visible: boolean): TemplateResult | string {\n return html` <http-snippets\n ?hidden=\"${!visible}\"\n id=\"code-snippets\"\n aria-describedby=\"code-snippets-tab\"\n role=\"tabpanel\"\n .request=\"${this.snippets}\"\n ></http-snippets>`\n }\n\n /**\n * @returns The template for the invalid content headers dialog\n */\n protected renderHeadersDialog(): TemplateResult | string {\n const { contentHeadersDialogOpened } = this\n return html` <ui-dialog .open=\"${contentHeadersDialogOpened}\" @close=\"${this.handleContentWarningClose}\">\n <ui-icon slot=\"icon\" icon=\"warning\"></ui-icon>\n <span slot=\"title\">Headers are not valid</span>\n\n <div>\n <p>\n The <b>GET</b> request should not contain <b>content-*</b> headers. It may cause the server to behave\n unexpectedly.\n </p>\n <p><b>Do you want to continue?</b></p>\n </div>\n\n <ui-text-button value=\"dismiss\" slot=\"button\">Cancel request</ui-text-button>\n <ui-text-button value=\"confirm\" slot=\"button\">Continue</ui-text-button>\n </ui-dialog>`\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"RequestEditor.js","sourceRoot":"","sources":["../../../../src/elements/http/RequestEditor.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult, PropertyValues, nothing } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { HttpRequest, type IHttpRequest } from '@api-client/core/models/HttpRequest.js'\nimport { type IRequestAuthorization, RequestAuthorization } from '@api-client/core/models/RequestAuthorization.js'\nimport { type IRequestConfig, RequestConfig } from '@api-client/core/models/RequestConfig.js'\nimport type { IHttpAssertion } from '@api-client/core/models/http-flows/HttpAssertion.js'\nimport { type DeserializedPayload, PayloadSerializer } from '@api-client/core/lib/transformers/PayloadSerializer.js'\nimport type { IHttpFlow } from '@api-client/core/models/http-flows/HttpFlows.js'\nimport type { IRequestUiMeta } from '@api-client/core/models/RequestUiMeta.js'\nimport type { AuthorizationType, IOAuth2Authorization } from '@api-client/core/models/Authorization.js'\nimport type { IProperty } from '@api-client/core/models/Property.js'\nimport { SecurityProcessor } from '@api-client/core/authorization/lib/SecurityProcessor.js'\nimport { Events as CoreEvents } from '@api-client/core/events/Events.js'\nimport { EventTypes } from '../../events/EventTypes.js'\nimport { Events } from '../../events/Events.js'\nimport ApiElement from '../ApiElement.js'\nimport { authTypeToLabel } from '../authorization/AuthLabels.js'\nimport type UrlInputEditorElement from './UrlInput.js'\nimport type BodyEditor from './BodyEditor.js'\nimport type { TabSelectionDetail } from '../../md/tabs/internals/Tabs.js'\nimport type UrlParamsForm from './UrlParamsForm.js'\nimport type HeadersForm from './HeadersForm.js'\nimport type { Authorization } from '../authorization/ui/Authorization.js'\nimport type HttpAssertions from './HttpAssertions.element.js'\nimport type RequestConfigElement from './RequestConfigElement.js'\nimport type { UiDialogClosingReason } from '../../md/dialog/internals/Dialog.js'\nimport '../../md/icons/ui-icon.js'\nimport '../../define/http/http-url-input.js'\nimport '../../define/http/http-url-params-form.js'\nimport '../../define/http/http-headers-form.js'\nimport '../../define/http/http-snippets.js'\nimport '../../define/http/http-body-editor.js'\nimport '../../define/http/http-assertions.js'\nimport '../../define/http/http-flows.js'\nimport '../../define/http/http-request-config.js'\nimport '../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../md/list/ui-list.js'\nimport '../../md/list/ui-list-item.js'\nimport '../../md/button/ui-button.js'\nimport '../../md/tabs/ui-tabs.js'\nimport '../../md/tabs/ui-tab.js'\nimport '../../md/divider/ui-divider.js'\nimport '../../md/dialog/ui-dialog.js'\nimport '../../define/authorization/basic-authorization.js'\nimport '../../define/authorization/bearer-authorization.js'\nimport '../../define/authorization/ntlm-authorization.js'\nimport '../../define/authorization/apikey-authorization.js'\nimport '../../define/authorization/oauth2-authorization.js'\nimport '../../define/authorization/oidc-authorization.js'\nimport '../../define/authorization/cc-authorization.js'\nimport HttpFlows from './HttpFlows.element.js'\n\nexport const HttpMethods = ['GET', 'POST', 'PUT', 'DELETE', 'PATCH', 'HEAD', 'CONNECT', 'OPTIONS', 'TRACE']\nexport const NonPayloadMethods = ['GET', 'HEAD']\n\nexport type SelectedTab =\n | 'parameters'\n | 'headers'\n | 'payload'\n | 'authorization'\n | 'code-snippets'\n | 'assertions'\n | 'config'\n | 'flows'\n\nexport interface SendDetails {\n /**\n * The request object to send.\n */\n request: IHttpRequest\n /**\n * Optional authorization configuration.\n */\n authorization: IRequestAuthorization[] | undefined\n /**\n * The request options.\n */\n config: IRequestConfig | undefined\n /**\n * HTTP tests to perform.\n */\n assertions: IHttpAssertion[] | undefined\n}\n\n/**\n * An element that renders an HTTP editor.\n *\n * @fires send - A custom event when the user requested to send the request. The detail object is the editor's request.\n * @fires abort - When the user requested to abort the ongoing request.\n * @fires authorizationchange - When authorization data change.\n * @fires uichange - When the UI model change.\n */\nexport default class RequestEditor extends ApiElement {\n /**\n * A promise set when reading payload from the `request` object.\n * It is resolved after the payload is read anf the `payload` property is set.\n */\n protected readingPayloadPromise = Promise.resolve()\n\n /**\n * A promise set when the payload is being written to the `request` object.\n * It is resolved after the `payload` is set on the request as a serializable object.\n */\n protected writingPayloadPromise = Promise.resolve()\n\n /**\n * A flag used to determine when the payload is being read for the synchronous code.\n */\n @state() accessor readingPayload = false\n\n /**\n * The base request object.\n */\n @property({ type: Object }) accessor request: IHttpRequest = new HttpRequest().toJSON()\n\n /**\n * The request payload.\n * It can be just a string or an object with the payload data depending on the content type.\n */\n @state() accessor payload: DeserializedPayload | undefined\n\n /**\n * The current content type value.\n */\n @state() accessor contentType: string | undefined\n\n @property({ type: Array }) accessor authorization: IRequestAuthorization[] | undefined\n\n @property({ type: Array }) accessor assertions: IHttpAssertion[] | undefined\n\n @property({ type: Array }) accessor flows: IHttpFlow[] | undefined\n\n /**\n * Redirect URL for the OAuth2 authorization.\n * If can be also set by dispatching `oauth2-redirect-url-changed`\n * with `value` property on the `detail` object.\n */\n @property({ type: String }) accessor oauth2RedirectUri: string | undefined\n\n /**\n * When set the editor is in read only mode.\n */\n @property({ type: Boolean, reflect: true }) accessor readOnly = false\n\n /**\n * A value to be passed to the OAuth 2 `authorizationUri` property in case\n * if current configuration has no value.\n * This is to be used as a default value.\n */\n @property({ type: String, reflect: true }) accessor oauth2AuthorizationUri: string | undefined\n\n /**\n * A value to be passed to the OAuth 2 `accessTokenUri` property in case\n * if current configuration has no value.\n * This is to be used as a default value.\n */\n @property({ type: String, reflect: true }) accessor oauth2AccessTokenUri: string | undefined\n\n /**\n * When set it ignores all `content-*` headers when the request method is `GET`.\n * When not set or `false` it renders a warning message.\n */\n @property({ type: Boolean, reflect: true }) accessor ignoreContentOnGet = false\n\n /**\n * When set the `content-` headers warning dialog is rendered.\n */\n @property({ type: Boolean, reflect: true }) accessor contentHeadersDialogOpened = false\n\n /**\n * To be set when the request is being transported.\n */\n @property({ type: Boolean, reflect: true }) accessor loading = false\n\n /**\n * An index of currently opened tab.\n * @attribute\n */\n @property({ type: String, reflect: true }) accessor selectedTab: SelectedTab = 'parameters'\n\n /**\n * Optional instance of the `RequestUiMeta` to store the UI state.\n */\n @property({ type: Object }) accessor ui: IRequestUiMeta | undefined\n\n /**\n * HTTP request configuration for the transport.\n */\n @property({ type: Object }) accessor config = new RequestConfig().toJSON()\n\n /**\n * @returns True when the request cannot have the payload on the message.\n */\n get isPayload(): boolean {\n const { request } = this\n if (!request || !request.method) {\n return false\n }\n return !NonPayloadMethods.includes(request.method)\n }\n\n protected _awaitingOAuth2authorization = false\n\n /**\n * This is set by the internal logic. When `ignoreContentOnGet` is set and the headers have `content-` headers\n * a dialog is rendered when trying to send the request. When the user chooses to ignore the warning this\n * flag makes sure that `send()` does not check headers.\n *\n * @todo(pawel): This should be done in the request logic module plugin.\n * Plugins can stop request indefinitely or cancel it.\n */\n ignoreValidationOnGet = false\n\n @state() protected accessor snippets: IHttpRequest | undefined\n\n constructor() {\n super()\n this.config.enabled = false\n this.handleInternalSend = this.handleInternalSend.bind(this)\n }\n\n override connectedCallback(): void {\n super.connectedCallback()\n this.eventsTarget.addEventListener(EventTypes.Http.Request.send, this.handleInternalSend)\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback()\n this.eventsTarget.addEventListener(EventTypes.Http.Request.send, this.handleInternalSend)\n }\n\n override firstUpdated(changedProperties: PropertyValues<this>): void {\n super.firstUpdated(changedProperties)\n this.computeSnippetsRequest()\n }\n\n protected override willUpdate(changedProperties: PropertyValues<this>): void {\n if (changedProperties.has('request')) {\n this.setupContentType()\n this.readingPayloadPromise = this.readPayload()\n }\n if (changedProperties.has('ui') && this.ui) {\n if (this.ui.selectedEditor) {\n this.selectedTab = this.ui.selectedEditor as SelectedTab\n }\n }\n super.willUpdate(changedProperties)\n }\n\n protected setupContentType(request = this.request): void {\n if (!request) {\n this.contentType = undefined\n return\n }\n if (!request.headersModel) {\n this.contentType = undefined\n return\n }\n const item = request.headersModel.find((i) => i.name.toLowerCase() === 'content-type')\n if (!item) {\n this.contentType = undefined\n return\n }\n this.contentType = item.value as string\n this.setPayloadMimeOption(request, this.contentType)\n }\n\n protected async readPayload(): Promise<void> {\n const { request } = this\n if (!request || !request.payload) {\n this.payload = undefined\n return\n }\n this.readingPayload = true\n try {\n this.payload = await PayloadSerializer.deserialize(request.payload)\n } catch {\n this.payload = undefined\n } finally {\n this.readingPayload = false\n }\n }\n\n /**\n * Validates state of the URL.\n * @return True if the URL has a structure that looks like\n * an URL which means scheme + something\n */\n validateUrl(): boolean {\n const { shadowRoot } = this\n if (!shadowRoot) {\n return true\n }\n const panel = shadowRoot.querySelector('http-url-input')\n if (!panel) {\n return true\n }\n return panel.checkValidity()\n }\n\n /**\n * Checks if current request requires calling `authorize()` on the OAuth2 method.\n *\n * @return This returns `true` only for valid OAuth 2 method that has no access token.\n */\n requiresAuthorization(): boolean {\n const { authorization = [] } = this\n const oauth = authorization.find((method) => method.enabled && method.type === 'oauth 2')\n if (!oauth) {\n return false\n }\n const authMethod = this.shadowRoot?.querySelector('oauth2-authorization')\n if (!authMethod) {\n return false\n }\n const cnf = oauth.config as IOAuth2Authorization\n if (authMethod.checkValidity() && !cnf.accessToken) {\n return true\n }\n return false\n }\n\n /**\n * Validates headers for `Content-*` entries against current method.\n * @param request The request object\n * @return True if headers are invalid.\n */\n validateContentHeaders(request: IHttpRequest): boolean {\n const method = request.method || 'get'\n if (method.toLowerCase() !== 'get') {\n return false\n }\n const any = !!request.headersModel && request.headersModel.some((i) => i.name.toLowerCase().startsWith('content-'))\n if (any) {\n return true\n }\n return false\n }\n\n /**\n * Serializes the current values to the `IHttpRequest`\n */\n async serialize(): Promise<IHttpRequest> {\n if (!this.request) {\n const instance = new HttpRequest()\n return instance.toJSON()\n }\n await this.writingPayloadPromise\n // make sure we copy everything.\n const instance = new HttpRequest(this.request)\n return instance.toJSON()\n }\n\n /**\n * Dispatches the send request event to the HTTP request engine.\n */\n async send(): Promise<void> {\n if (this.loading || !this.request) {\n return\n }\n if (!this.validateUrl()) {\n return\n }\n if (this.requiresAuthorization()) {\n const authMethod = this.shadowRoot?.querySelector('oauth2-authorization')\n if (authMethod) {\n authMethod.authorize()\n this._awaitingOAuth2authorization = true\n }\n return\n }\n const request = await this.serialize()\n // store the URL in the history\n await Events.HttpClient.Model.UrlHistory.add(request.url as string, this)\n if (!this.ignoreValidationOnGet && this.validateContentHeaders(request)) {\n this.contentHeadersDialogOpened = true\n return\n }\n this.ignoreValidationOnGet = false\n this.notifySend(request)\n CoreEvents.Telemetry.event(\n {\n category: 'Request editor',\n action: 'Send request',\n },\n this\n )\n }\n\n protected notifySend(request: IHttpRequest): void {\n this.dispatchEvent(\n new CustomEvent<SendDetails>('send', {\n detail: {\n request,\n authorization: this.authorization,\n config: this.config,\n assertions: this.assertions,\n },\n })\n )\n }\n\n /**\n * If the request does not exist it creates one.\n * @returns The request object.\n */\n protected getRequest(): IHttpRequest {\n if (!this.request) {\n const instance = new HttpRequest()\n this.request = instance.toJSON()\n }\n return this.request\n }\n\n /**\n * Aborts the request\n */\n abort(): void {\n this.dispatchEvent(new Event('abort'))\n }\n\n protected handleInternalSend(e: Event): void {\n e.stopPropagation()\n this.send()\n }\n\n protected handleVerbSelection(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined\n if (!target) {\n return\n }\n const { verb } = target.dataset\n if (verb) {\n this.selectVerb(verb)\n }\n }\n\n /**\n * @param verb The HTTP verb (operation, method)\n */\n selectVerb(verb: string): void {\n const request = this.getRequest()\n request.method = verb\n this.requestUpdate()\n this.notifyChange()\n this.notifyPropertyChanged('method', verb)\n if (!this.isPayload && this.selectedTab === 'payload') {\n this.selectedTab = 'headers'\n }\n CoreEvents.Telemetry.event(\n {\n category: 'Request editor',\n action: 'Method selected',\n label: verb,\n },\n this\n )\n this.computeSnippetsRequest()\n }\n\n /**\n * The handler for the URL editor change event\n */\n protected handlerUrlChange(e: Event): void {\n const panel = e.target as UrlInputEditorElement\n const { value } = panel\n this.selectUrl(value)\n }\n\n /**\n * Commits the change in the URL.\n * @param value The new URL value\n */\n selectUrl(value: string): void {\n const request = this.getRequest()\n request.url = value\n this.requestUpdate()\n this.notifyChange()\n this.notifyPropertyChanged('url', value)\n this.computeSnippetsRequest()\n }\n\n protected handleTabSelect(e: CustomEvent): void {\n const info = e.detail as TabSelectionDetail\n this.selectedTab = info.select as SelectedTab\n if (this.ui) {\n this.ui.selectedEditor = this.selectedTab\n this.notifyPropertyChanged('ui', this.ui)\n }\n CoreEvents.Telemetry.event(\n {\n category: 'Request editor',\n action: 'Editor switched',\n label: this.selectedTab,\n },\n this\n )\n }\n\n protected handleParamsChange(e: Event): void {\n const input = e.target as UrlParamsForm\n this.selectUrl(input.value)\n }\n\n /**\n * The handler for the headers change event from the headers editor.\n */\n handleHeadersChange(e: Event): void {\n e.preventDefault()\n const editor = e.target as HeadersForm\n const { model } = editor\n this.selectHeaders(model)\n if (!this.ui) {\n return\n }\n // const { value, source } = node;\n if (!this.ui.headers) {\n this.ui.headers = {}\n }\n // this.ui.headers.source = source;\n this.notifyPropertyChanged('ui', this.ui)\n }\n\n selectHeaders(model: IProperty[]): void {\n const request = this.getRequest()\n request.headersModel = model\n const ct = model.find((h) => h.name.toLowerCase() === 'content-type')\n this.contentType = ct && (ct.value as string)\n this.setPayloadMimeOption(request, this.contentType)\n this.requestUpdate()\n this.notifyChange()\n this.computeSnippetsRequest()\n }\n\n /**\n * The handler for the body editor change event\n */\n protected handleBody(e: Event): void {\n e.preventDefault()\n const node = e.target as BodyEditor\n const { value, model, selected, contentType } = node\n this.writingPayloadPromise = this.updatePayload(value as DeserializedPayload, contentType)\n this.computeSnippetsRequest()\n if (!this.ui) {\n return\n }\n if (!this.ui.body) {\n this.ui.body = {}\n }\n this.ui.body.model = model\n this.ui.body.selected = selected\n this.notifyPropertyChanged('ui', this.ui)\n }\n\n protected async updatePayload(value: DeserializedPayload, mime?: string): Promise<void> {\n const serialized = await PayloadSerializer.serialize(value)\n const request = this.getRequest()\n request.payload = serialized\n this.setPayloadMimeOption(request, mime)\n this.payload = value\n this.requestUpdate()\n this.notifyChange()\n this.notifyPropertyChanged('payload', value)\n }\n\n /**\n * When `mime` is set it creates the `payloadOptions` property with the mime.\n * @param request The request to set the mime type\n * @param mime the mime type value\n */\n protected setPayloadMimeOption(request: IHttpRequest | HttpRequest, mime?: string): void {\n if (mime) {\n if (!request.payloadOptions) {\n request.payloadOptions = {}\n }\n request.payloadOptions.mime = mime\n }\n }\n\n protected handleFlows(e: Event): void {\n e.preventDefault()\n const node = e.target as HttpFlows\n this.selectFlows(node.model)\n }\n\n selectFlows(flows?: IHttpFlow[]): void {\n this.flows = flows\n this.notifyChange()\n }\n\n protected handleAssertions(e: Event): void {\n e.preventDefault()\n const node = e.target as HttpAssertions\n this.selectAssertions(node.model)\n }\n\n selectAssertions(assertions?: IHttpAssertion[]): void {\n this.assertions = assertions\n this.notifyChange()\n }\n\n protected handleConfig(e: Event): void {\n const node = e.target as RequestConfigElement\n this.selectRequestConfig(node.config)\n }\n\n selectRequestConfig(config: IRequestConfig): void {\n this.config = config\n this.notifyChange()\n }\n\n /**\n * Called to notify listeners about a particular property change\n *\n * @param type The property that changed. The resulting event type is\n * the combination of this value and the `change` suffix.\n * @param value The value of the changed property\n */\n protected notifyPropertyChanged(type: string, value: unknown): void {\n this.dispatchEvent(\n new CustomEvent(`${type}change`, {\n detail: {\n value,\n },\n })\n )\n }\n\n protected handleContentWarningClose(e: CustomEvent<UiDialogClosingReason>): void {\n this.contentHeadersDialogOpened = false\n if (e.detail.cancelled) {\n return\n }\n this.ignoreValidationOnGet = true\n this.send()\n }\n\n /**\n * When a request change this recomputes the values for code snippets.\n * These are different from the actual values in the request as\n * they contain authorization values applied to it.\n */\n protected async computeSnippetsRequest(): Promise<void> {\n const serialized = await this.serialize()\n const { authorization = [] } = this\n SecurityProcessor.applyAuthorization(serialized, [...authorization], { immutable: true })\n this.snippets = serialized\n }\n\n /**\n * Adds a new authorization object to the request for the given type.\n *\n * @returns The created instance of the authorization.\n */\n addAuthorization(type: AuthorizationType): RequestAuthorization {\n const cnf = RequestAuthorization.fromTypedConfig(type, {}, false)\n cnf.enabled = true\n if (!this.authorization) {\n this.authorization = []\n }\n this.authorization.push(cnf.toJSON())\n this.notifyPropertyChanged('authorization', this.authorization)\n this.requestUpdate()\n return cnf\n }\n\n /**\n * Updates authorization schema on the editor.\n * @param schema The new schema to replace the old one\n * @param isValid Whether the schema is valid.\n */\n updateAuthorization(schema: IRequestAuthorization, isValid: boolean): void {\n const { authorization } = this\n if (!authorization) {\n return\n }\n const index = authorization.findIndex((i) => i.type === schema.type)\n if (index === -1) {\n return\n }\n schema.valid = isValid\n authorization[index] = schema\n this.notifyPropertyChanged('authorization', this.authorization)\n }\n\n /**\n * Removes authorization schema from the editor.\n * @param type The authorization type to remove.\n */\n removeAuthorization(type: string): void {\n const { authorization } = this\n if (!authorization) {\n return\n }\n const index = authorization.findIndex((i) => i.type === type)\n if (index === -1) {\n return\n }\n authorization.splice(index, 1)\n this.notifyPropertyChanged('authorization', this.authorization)\n this.requestUpdate()\n }\n\n protected handleAuthAdd(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined\n if (!target) {\n return\n }\n const selected = target.dataset.type as AuthorizationType | undefined\n if (!selected) {\n return\n }\n this.addAuthorization(selected)\n }\n\n protected handleAuthChange(e: Event): void {\n const editor = e.target as Authorization\n const { authorization } = editor\n this.updateAuthorization(authorization as IRequestAuthorization, editor.checkValidity())\n }\n\n protected handleAuthDelete(e: Event): void {\n const editor = e.target as Authorization\n const { authorization } = editor\n if (!authorization) {\n return\n }\n this.removeAuthorization(authorization.type)\n }\n\n protected override render(): TemplateResult {\n return html`\n ${this.renderUrlEditorArea()}\n <div class=\"surface2 editors\">${this.renderTabs()} ${this.renderCurrentEditor()}</div>\n ${this.renderHeadersDialog()}\n `\n }\n\n /**\n * @returns The template for the top line with method selector, URL, and options.\n */\n protected renderUrlEditorArea(): TemplateResult {\n return html`\n <div class=\"url-editor\">\n <div class=\"url-meta\">${this.renderUrlMeta()}</div>\n ${this.renderSendButton()}\n </div>\n `\n }\n\n protected renderUrlMeta(): TemplateResult {\n return html` ${this.renderHttpMethodSelector()} ${this.renderUrlEditor()} `\n }\n\n /**\n * @returns The template for the HTTP method selector\n */\n protected renderHttpMethodSelector(): TemplateResult {\n const request = this.getRequest()\n const { method = 'GET' } = request\n\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleVerbSelection}\"\n class=\"verb-dropdown\"\n closeOnOutsideClick\n >\n <ui-button color=\"text\" class=\"button\">\n ${method}\n <ui-icon icon=\"arrowDropDown\"></ui-icon>\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\"> ${this.renderHttpVerbOptions()} </ui-list>\n </ui-dropdown-list>\n `\n }\n\n /**\n * @returns The templates for each supported HTTP methods\n */\n protected renderHttpVerbOptions(): TemplateResult[] {\n return HttpMethods.map(\n (method) => html`\n <ui-list-item role=\"menuitem\" image=\"icon\" data-verb=\"${method}\">\n <div slot=\"start\" data-method=\"${method.toLocaleLowerCase()}\" class=\"http-label\"></div>\n ${method}\n </ui-list-item>\n `\n )\n }\n\n /**\n * @returns The template for the HTTP URL editor\n */\n protected renderUrlEditor(): TemplateResult {\n const request = this.getRequest()\n const { url = '' } = request\n const { eventsTarget } = this\n return html`\n <div class=\"url-input\">\n <http-url-input\n .value=\"${url}\"\n .eventsTarget=\"${eventsTarget}\"\n @change=\"${this.handlerUrlChange}\"\n ></http-url-input>\n </div>\n `\n }\n\n /**\n * @returns The template for the \"send\" or \"abort\" buttons.\n */\n protected renderSendButton(): TemplateResult | string {\n if (this.loading) {\n return html`\n <ui-button color=\"filled\" title=\"Abort the request\" class=\"send-button\" @click=\"${this.abort}\">Abort</ui-button>\n `\n }\n return html`\n <ui-button color=\"filled\" title=\"Send the request\" class=\"send-button\" @click=\"${this.send}\">Send</ui-button>\n `\n }\n\n /**\n * @returns The template for the request editor tabs\n */\n protected renderTabs(): TemplateResult {\n const { isPayload, selectedTab } = this\n // ui && ui.selectedEditor ||\n const selected = selectedTab\n return html` <ui-tabs .selected=\"${selected}\" @select=\"${this.handleTabSelect}\" class=\"editor-tabs\">\n <ui-tab aria-controls=\"parameters\" id=\"parameters-tab\">Parameters</ui-tab>\n <ui-tab aria-controls=\"headers\" id=\"headers-tab\">Headers</ui-tab>\n <ui-tab ?hidden=\"${!isPayload}\" aria-controls=\"payload\" id=\"payload-tab\">Body</ui-tab>\n <ui-tab aria-controls=\"authorization\" id=\"authorization-tab\">Authorization</ui-tab>\n <ui-tab aria-controls=\"flows\" id=\"flows-tab\">Flows</ui-tab>\n <ui-tab aria-controls=\"assertions\" id=\"assertions-tab\">Assertions</ui-tab>\n <ui-tab aria-controls=\"config\" id=\"config-tab\">Config</ui-tab>\n <ui-tab aria-controls=\"code-snippets\" id=\"code-snippets-tab\">Code snippets</ui-tab>\n </ui-tabs>`\n }\n\n /**\n * @returns The template for the current editor\n */\n protected renderCurrentEditor(): TemplateResult {\n const { selectedTab, isPayload } = this\n const parametersVisible = selectedTab === 'parameters'\n const headersVisible = selectedTab === 'headers'\n const bodyVisible = isPayload && selectedTab === 'payload'\n const authVisible = selectedTab === 'authorization'\n const codeVisible = selectedTab === 'code-snippets'\n const assertionsVisible = selectedTab === 'assertions'\n const configVisible = selectedTab === 'config'\n const flowsVisible = selectedTab === 'flows'\n return html`\n <div class=\"panel\">\n ${this.renderParameters(parametersVisible)} ${this.renderHeaders(headersVisible)}\n ${this.renderBody(bodyVisible)} ${this.renderAuthorization(authVisible)} ${this.renderHttpFlows(flowsVisible)}\n ${this.renderAssertions(assertionsVisible)} ${this.renderRequestConfig(configVisible)}\n ${this.renderSnippets(codeVisible)}\n </div>\n `\n }\n\n protected renderParameters(visible: boolean): TemplateResult {\n const request = this.getRequest()\n const { eventsTarget, readOnly } = this\n return html`\n <http-url-params-form\n id=\"parameters\"\n aria-describedby=\"parameters-tab\"\n role=\"tabpanel\"\n ?hidden=\"${!visible}\"\n .value=\"${request.url || ''}\"\n .eventsTarget=\"${eventsTarget}\"\n ?readOnly=\"${readOnly}\"\n @change=\"${this.handleParamsChange}\"\n ></http-url-params-form>\n `\n }\n\n /**\n * @param visible Whether the panel should not be hidden\n * @returns The template for the headers editor\n */\n protected renderHeaders(visible: boolean): TemplateResult {\n const request = this.getRequest()\n const { eventsTarget, readOnly } = this\n return html` <http-headers-form\n id=\"headers\"\n aria-describedby=\"headers-tab\"\n role=\"tabpanel\"\n .eventsTarget=\"${eventsTarget}\"\n .model=\"${request.headersModel || []}\"\n ?hidden=\"${!visible}\"\n @change=\"${this.handleHeadersChange}\"\n ?readonly=\"${readOnly}\"\n ></http-headers-form>`\n }\n\n /**\n * @param visible Whether the panel should not be hidden\n * @returns The template for the body editor\n */\n protected renderBody(visible: boolean): TemplateResult {\n const { payload, readOnly, contentType, ui, readingPayload } = this\n if (readingPayload) {\n return html`<p class=\"loading-body\" id=\"payload\">Preparing the editor...</p>`\n }\n const body = ui && ui.body\n const selected = body && (body.selected as 'file' | 'raw' | 'urlEncode' | 'multipart')\n const model = body && body.model\n\n return html`\n <http-body-editor\n id=\"payload\"\n aria-describedby=\"payload-tab\"\n role=\"tabpanel\"\n ?hidden=\"${!visible}\"\n ?readOnly=\"${readOnly}\"\n .contentType=\"${contentType}\"\n .model=\"${model}\"\n .value=\"${(!model && payload) || undefined}\"\n selected=\"${ifDefined(selected)}\"\n @change=\"${this.handleBody}\"\n @select=\"${this.handleBody}\"\n ></http-body-editor>\n `\n }\n\n /**\n * @param visible Whether the panel should not be hidden\n * @returns The template for the authorization editor\n */\n protected renderAuthorization(visible: boolean): TemplateResult | string {\n const { authorization } = this\n return html`\n <section ?hidden=\"${!visible}\" id=\"authorization\" aria-describedby=\"authorization-tab\" role=\"tabpanel\">\n ${this.renderAuthorizationActions(authorization)} ${this.renderAuthorizationList(authorization)}\n </section>\n `\n }\n\n protected renderAuthorizationActions(current: IRequestAuthorization[] = []): TemplateResult {\n const all = ['basic', 'oauth 2', 'open id', 'bearer', 'api key', 'ntlm', 'client certificate']\n const toRender: string[] = all.filter((type) => !current.some((i) => i.type === type))\n return html`\n <ui-dropdown-list verticalAlign=\"top\" @select=\"${this.handleAuthAdd}\" class=\"auth-dropdown\" closeOnOutsideClick>\n <ui-button\n color=\"tonal\"\n title=\"Add authorization option\"\n aria-label=\"Opens a menu to select authorization option\"\n ?disabled=\"${!toRender.length}\"\n >\n <ui-icon icon=\"arrowDropDown\" slot=\"icon\" role=\"presentation\"></ui-icon>\n Add\n </ui-button>\n <ui-list slot=\"dropdown\" role=\"menu\"> ${this.renderAuthorizationOptions(toRender)} </ui-list>\n </ui-dropdown-list>\n `\n }\n\n protected renderAuthorizationOptions(available: string[]): TemplateResult {\n return html`\n ${available.map(\n (type) => html` <ui-list-item role=\"menuitem\" data-type=\"${type}\"> ${authTypeToLabel(type)} </ui-list-item> `\n )}\n `\n }\n\n protected renderAuthorizationList(authorization: IRequestAuthorization[] = []): TemplateResult[] {\n if (!Array.isArray(authorization) || !authorization.length) {\n return [this.renderEmptyAuthorization()]\n }\n return authorization.map((item, index) => {\n let content: TemplateResult | undefined\n switch (item.type) {\n case 'basic':\n content = this.renderBasicAuthorization(item)\n break\n case 'bearer':\n content = this.renderBearerAuthorization(item)\n break\n case 'ntlm':\n content = this.renderNtlmAuthorization(item)\n break\n case 'oauth 2':\n content = this.renderOauthAuthorization(item)\n break\n case 'open id':\n content = this.renderOidcAuthorization(item)\n break\n case 'client certificate':\n content = this.renderCCAuthorization(item)\n break\n case 'api key':\n content = this.renderApiKeyAuthorization(item)\n break\n default:\n }\n if (content) {\n const isLast = authorization.length === index + 1\n return html` ${content} ${!isLast ? html`<ui-divider></ui-divider>` : ''} `\n }\n return html``\n })\n }\n\n protected renderEmptyAuthorization(): TemplateResult {\n return html``\n }\n\n protected renderBasicAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <basic-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n canToggle\n canDelete\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></basic-authorization>\n `\n }\n\n protected renderBearerAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <bearer-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n canToggle\n canDelete\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></bearer-authorization>\n `\n }\n\n protected renderNtlmAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <ntlm-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n canToggle\n canDelete\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></ntlm-authorization>\n `\n }\n\n protected renderOauthAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <oauth2-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n canToggle\n canDelete\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n .defaultRedirectUri=\"${this.oauth2RedirectUri}\"\n ></oauth2-authorization>\n `\n }\n\n protected renderOidcAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <oidc-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n canToggle\n canDelete\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n .defaultRedirectUri=\"${this.oauth2RedirectUri}\"\n ></oidc-authorization>\n `\n }\n\n protected renderCCAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <cc-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n canToggle\n canDelete\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></cc-authorization>\n `\n }\n\n protected renderApiKeyAuthorization(auth: IRequestAuthorization): TemplateResult {\n return html`\n <apikey-authorization\n .authorization=\"${auth}\"\n ?readOnly=\"${this.readOnly}\"\n class=\"auth-panel\"\n canToggle\n canDelete\n @change=\"${this.handleAuthChange}\"\n @delete=\"${this.handleAuthDelete}\"\n ></apikey-authorization>\n `\n }\n\n protected renderHttpFlows(visible: boolean): TemplateResult | string {\n if (!visible) {\n return ''\n }\n const { flows = [] } = this\n return html`\n <http-flows\n aria-label=\"HTTP fLows\"\n aria-labelledby=\"flows-tab\"\n id=\"flows\"\n role=\"tabpanel\"\n .model=\"${flows}\"\n @change=\"${this.handleFlows}\"\n ></http-flows>\n `\n }\n\n protected renderAssertions(visible: boolean): TemplateResult | string {\n if (!visible) {\n return ''\n }\n const { assertions = [] } = this\n return html`\n <http-assertions\n aria-label=\"Assertions\"\n aria-labelledby=\"assertions-tab\"\n id=\"assertions\"\n role=\"tabpanel\"\n .model=\"${assertions}\"\n @change=\"${this.handleAssertions}\"\n ></http-assertions>\n `\n }\n\n protected renderRequestConfig(visible: boolean): TemplateResult | typeof nothing {\n if (!visible) {\n return nothing\n }\n const { config } = this\n return html`\n <http-request-config\n aria-label=\"Request options\"\n aria-labelledby=\"config-tab\"\n id=\"config\"\n role=\"tabpanel\"\n .config=\"${config}\"\n @change=\"${this.handleConfig}\"\n ></http-request-config>\n `\n }\n\n /**\n * @param visible Whether the panel should be rendered\n * @returns The template for the Code snippets\n */\n protected renderSnippets(visible: boolean): TemplateResult | string {\n return html` <http-snippets\n ?hidden=\"${!visible}\"\n id=\"code-snippets\"\n aria-describedby=\"code-snippets-tab\"\n role=\"tabpanel\"\n .request=\"${this.snippets}\"\n ></http-snippets>`\n }\n\n /**\n * @returns The template for the invalid content headers dialog\n */\n protected renderHeadersDialog(): TemplateResult | string {\n const { contentHeadersDialogOpened } = this\n return html` <ui-dialog .open=\"${contentHeadersDialogOpened}\" @close=\"${this.handleContentWarningClose}\">\n <ui-icon slot=\"icon\" icon=\"warning\"></ui-icon>\n <span slot=\"title\">Headers are not valid</span>\n\n <div>\n <p>\n The <b>GET</b> request should not contain <b>content-*</b> headers. It may cause the server to behave\n unexpectedly.\n </p>\n <p><b>Do you want to continue?</b></p>\n </div>\n\n <ui-button color=\"text\" value=\"dismiss\" slot=\"button\">Cancel request</ui-button>\n <ui-button color=\"text\" value=\"confirm\" slot=\"button\">Continue</ui-button>\n </ui-dialog>`\n }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PropertyValues, TemplateResult } from 'lit';
|
|
2
2
|
import { type IUrlParamPart, UrlProcessor } from '@api-client/core/lib/parsers/UrlProcessor.js';
|
|
3
3
|
import ApiElement from '../ApiElement.js';
|
|
4
|
-
import '../../md/button/ui-
|
|
4
|
+
import '../../md/button/ui-button.js';
|
|
5
5
|
import '../../md/icon-button/ui-icon-button.js';
|
|
6
6
|
import '../../md/dropdown-list/ui-dropdown-list.js';
|
|
7
7
|
import '../../md/list/ui-list.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UrlParamsForm.d.ts","sourceRoot":"","sources":["../../../../src/elements/http/UrlParamsForm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAG1D,OAAO,EAAE,KAAK,aAAa,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAA;AAE/F,OAAO,UAAU,MAAM,kBAAkB,CAAA;AAGzC,OAAO,
|
|
1
|
+
{"version":3,"file":"UrlParamsForm.d.ts","sourceRoot":"","sources":["../../../../src/elements/http/UrlParamsForm.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { live } from 'lit/directives/live.js';
|
|
|
5
5
|
import { UrlProcessor } from '@api-client/core/lib/parsers/UrlProcessor.js';
|
|
6
6
|
import { UrlEncoder } from '@api-client/core/lib/parsers/UrlEncoder.js';
|
|
7
7
|
import ApiElement from '../ApiElement.js';
|
|
8
|
-
import '../../md/button/ui-
|
|
8
|
+
import '../../md/button/ui-button.js';
|
|
9
9
|
import '../../md/icon-button/ui-icon-button.js';
|
|
10
10
|
import '../../md/dropdown-list/ui-dropdown-list.js';
|
|
11
11
|
import '../../md/list/ui-list.js';
|
|
@@ -281,9 +281,9 @@ let UrlParamsForm = (() => {
|
|
|
281
281
|
renderActionButtons() {
|
|
282
282
|
return html `
|
|
283
283
|
<div class="editor-actions">
|
|
284
|
-
<ui-
|
|
285
|
-
<ui-
|
|
286
|
-
<ui-
|
|
284
|
+
<ui-button color="tonal" @click="${this.handleAdd}">Add</ui-button>
|
|
285
|
+
<ui-button color="tonal" @click="${this.handleEncode}">URL encode</ui-button>
|
|
286
|
+
<ui-button color="tonal" @click="${this.handleDecode}">URL decode</ui-button>
|
|
287
287
|
<ui-dropdown-list @select="${this.handleOption}" closeOnOutsideClick class="dropdown">
|
|
288
288
|
<ui-icon-button aria-label="Additional options"
|
|
289
289
|
><ui-icon icon="moreVert" role="presentation"></ui-icon
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UrlParamsForm.js","sourceRoot":"","sources":["../../../../src/elements/http/UrlParamsForm.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, PropertyValues, TemplateResult } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { live } from 'lit/directives/live.js'\nimport { type IUrlParamPart, UrlProcessor } from '@api-client/core/lib/parsers/UrlProcessor.js'\nimport { UrlEncoder } from '@api-client/core/lib/parsers/UrlEncoder.js'\nimport ApiElement from '../ApiElement.js'\nimport type Input from '../../md/input/Input.js'\nimport type SwitchElement from '../../md/switch/internals/SwitchElement.js'\nimport '../../md/button/ui-filled-tonal-button.js'\nimport '../../md/icon-button/ui-icon-button.js'\nimport '../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../md/list/ui-list.js'\nimport '../../md/list/ui-list-item.js'\nimport '../../md/switch/ui-switch.js'\nimport '../../md/divider/ui-divider.js'\nimport '../../md/icons/ui-icon.js'\nimport '../../md/text-field/ui-filled-text-field.js'\n\nexport default class UrlParamsForm extends ApiElement {\n protected parser = new UrlProcessor('/')\n\n /**\n * When set the editor is in read only mode.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) accessor readOnly = false\n\n /**\n * Whether the text editor is rendered instead of the form.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) accessor text = false\n\n #value = ''\n\n /**\n * The current value of the editor.\n * @attribute\n */\n get value(): string {\n return this.#value\n }\n\n @property({ type: String })\n set value(value: string) {\n const old = this.#value\n if (old === value) {\n return\n }\n this.#value = value\n this.setupParser(value)\n }\n\n @state() protected accessor textValue: string | undefined\n\n protected override update(cp: PropertyValues<this>): void {\n if (cp.has('text')) {\n if (this.text) {\n this.textValue = this.parser.search.toParamsString()\n } else {\n this.textValue = undefined\n }\n }\n super.update(cp)\n }\n\n protected setupParser(value: string): void {\n if (value) {\n this.parser = new UrlProcessor(value)\n } else {\n this.parser = new UrlProcessor('/')\n }\n this.requestUpdate()\n }\n\n protected handleAdd(): void {\n this.addParameter()\n }\n\n addParameter(): void {\n if (this.readOnly) {\n return\n }\n this.parser.search.append('', '')\n this.requestUpdate()\n this.focusLast()\n }\n\n protected async focusLast(): Promise<void> {\n await this.updateComplete\n const row = this.shadowRoot?.querySelector('.param-row:last-of-type')\n if (!row) {\n return\n }\n try {\n const node = row.querySelector('.name-input input') as HTMLInputElement | undefined\n if (node) {\n node.focus()\n }\n } catch {\n // ...\n }\n }\n\n protected handleOption(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement\n const { option } = element.dataset\n if (!option) {\n return\n }\n if (option === 'clear') {\n this.clear()\n } else if (option === 'text-editor') {\n this.toggle()\n }\n }\n\n /**\n * Toggles the state between form and text editors.\n */\n toggle(): void {\n this.text = !this.text\n }\n\n /**\n * Removes all parameters.\n */\n clear(): void {\n this.parser.search.clear()\n this.updateValue()\n this.requestUpdate()\n if (this.text) {\n this.textValue = this.parser.search.toParamsString()\n }\n }\n\n /**\n * Updates name/value of a parameter on a specific index.\n */\n updateProperty(index: number, field: 'name' | 'value', value: string): void {\n const list = this.parser.search.list()\n list[index][field] = value\n this.parser.search.update(index, list[index])\n this.updateValue()\n if (this.text) {\n this.textValue = this.parser.search.toParamsString()\n }\n }\n\n /**\n * Removes a parameter from an index.\n */\n removeProperty(index: number): void {\n this.parser.search.delete(index)\n this.updateValue()\n this.requestUpdate()\n if (this.text) {\n this.textValue = this.parser.search.toParamsString()\n }\n }\n\n /**\n * Toggles enabled state of a parameter.\n */\n toggleProperty(index: number, enabled: boolean): void {\n this.parser.search.toggle(index, enabled)\n this.updateValue()\n if (this.text) {\n this.textValue = this.parser.search.toParamsString()\n }\n }\n\n /**\n * Encodes all parameters.\n */\n encodeProperties(): void {\n const { search } = this.parser\n const list = search.list()\n list.forEach((part, index) => {\n part.name = UrlEncoder.encodeQueryString(part.name, true)\n part.value = UrlEncoder.encodeQueryString(part.value, true)\n search.update(index, part)\n })\n // TODO: UrlEncoder.decodeQueryString(part, false) on each path segment\n this.requestUpdate()\n this.updateValue()\n if (this.text) {\n this.textValue = this.parser.search.toParamsString()\n }\n }\n\n /**\n * Decodes all parameters.\n */\n decodeProperties(): void {\n const { search } = this.parser\n const list = search.list()\n list.forEach((part, index) => {\n part.name = UrlEncoder.decodeQueryString(part.name, true)\n part.value = UrlEncoder.decodeQueryString(part.value, true)\n search.update(index, part)\n })\n // TODO: UrlEncoder.encodeQueryString(part, false) on each path segment\n this.requestUpdate()\n this.updateValue()\n if (this.text) {\n this.textValue = this.parser.search.toParamsString()\n }\n }\n\n protected updateValue(): void {\n this.#value = this.parser.toString()\n this.notifyChange()\n }\n\n protected handleNameChange(e: Event): void {\n const input = e.target as Input\n const index = Number(input.dataset.index)\n if (Number.isNaN(index)) {\n return\n }\n this.updateProperty(index, 'name', input.value)\n input.checkValidity()\n }\n\n protected handleValueChange(e: Event): void {\n const input = e.target as Input\n const index = Number(input.dataset.index)\n if (Number.isNaN(index)) {\n return\n }\n this.updateProperty(index, 'value', input.value)\n input.checkValidity()\n }\n\n protected handleRemove(e: Event): void {\n const node = e.currentTarget as HTMLElement\n const index = Number(node.dataset.index)\n if (Number.isNaN(index)) {\n return\n }\n this.removeProperty(index)\n }\n\n protected handleToggle(e: Event): void {\n const node = e.currentTarget as SwitchElement\n const index = Number(node.dataset.index)\n if (Number.isNaN(index)) {\n return\n }\n this.toggleProperty(index, !!node.checked)\n }\n\n protected handleEncode(): void {\n this.encodeProperties()\n }\n\n protected handleDecode(): void {\n this.decodeProperties()\n }\n\n protected handleText(e: Event): void {\n const input = e.target as HTMLTextAreaElement\n const { value } = input\n this.parser.search.fromParamsString(value)\n this.updateValue()\n }\n\n protected override render(): TemplateResult {\n return html` ${this.renderActionButtons()} ${this.renderEditor()} `\n }\n\n protected renderActionButtons(): TemplateResult {\n return html`\n <div class=\"editor-actions\">\n <ui-filled-tonal-button @click=\"${this.handleAdd}\">Add</ui-filled-tonal-button>\n <ui-filled-tonal-button @click=\"${this.handleEncode}\">URL encode</ui-filled-tonal-button>\n <ui-filled-tonal-button @click=\"${this.handleDecode}\">URL decode</ui-filled-tonal-button>\n <ui-dropdown-list @select=\"${this.handleOption}\" closeOnOutsideClick class=\"dropdown\">\n <ui-icon-button aria-label=\"Additional options\"\n ><ui-icon icon=\"moreVert\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item\n role=\"menuitem\"\n data-option=\"text-editor\"\n image=\"icon\"\n title=\"Toggles between a text editor and a form\"\n >\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"${this.text ? 'checkBox' : 'checkBoxBlank'}\"></ui-icon>\n Text editor\n </ui-list-item>\n <ui-divider type=\"inset\"></ui-divider>\n <ui-list-item\n role=\"menuitem\"\n data-option=\"clear\"\n image=\"icon\"\n title=\"Removes all parameters from the editor\"\n >\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"deleteOutline\"></ui-icon>\n Clear form\n </ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n </div>\n `\n }\n\n protected renderEditor(): TemplateResult {\n if (this.text) {\n return this.renderText()\n }\n return this.renderList()\n }\n\n protected renderText(): TemplateResult {\n const { textValue = '' } = this\n return html`\n <div class=\"text-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <textarea .value=\"${live(textValue)}\" data-enable-grammarly=\"false\" @change=\"${this.handleText}\"></textarea>\n </div>\n `\n }\n\n protected renderList(): TemplateResult {\n const items = this.parser.search.list()\n if (!Array.isArray(items) || !items.length) {\n return this.renderEmptyMessage()\n }\n return this.renderParams(items)\n }\n\n protected renderEmptyMessage(): TemplateResult {\n return html` <div class=\"empty-message\">No parameters added</div> `\n }\n\n protected renderParams(items: IUrlParamPart[]): TemplateResult {\n return html` ${items.map((item, index) => this.renderParam(item, index))} `\n }\n\n protected renderParam(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <div class=\"param-row\">\n ${this.renderToggleButton(item, index)} ${this.renderNameField(item, index)}\n ${this.renderValueField(item, index)} ${this.renderDeleteParameter(index)}\n </div>\n `\n }\n\n protected renderToggleButton(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <ui-switch\n .checked=\"${item.enabled}\"\n @change=\"${this.handleToggle}\"\n aria-label=\"Toggle this parameter\"\n data-index=\"${index}\"\n ?disabled=\"${this.readOnly}\"\n ></ui-switch>\n `\n }\n\n protected renderDeleteParameter(index: number): TemplateResult {\n return html`\n <ui-icon-button\n aria-label=\"Delete this parameter\"\n data-index=\"${index}\"\n @click=\"${this.handleRemove}\"\n ?disabled=\"${this.readOnly}\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `\n }\n\n protected renderNameField(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <div class=\"input-wrapper name-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"name\"\n autocomplete=\"off\"\n .value=\"${live(item.name)}\"\n data-index=\"${index}\"\n ?readOnly=\"${this.readOnly}\"\n pattern=\"\\\\S*\"\n aria-label=\"Parameter name value\"\n @change=\"${this.handleNameChange}\"\n />\n </div>\n `\n }\n\n protected renderValueField(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <div class=\"input-wrapper value-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"value\"\n .value=\"${live(item.value)}\"\n data-index=\"${index}\"\n ?readOnly=\"${this.readOnly}\"\n pattern=\"\\\\S*\"\n aria-label=\"Parameter value\"\n @change=\"${this.handleValueChange}\"\n />\n </div>\n `\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UrlParamsForm.js","sourceRoot":"","sources":["../../../../src/elements/http/UrlParamsForm.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, PropertyValues, TemplateResult } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { live } from 'lit/directives/live.js'\nimport { type IUrlParamPart, UrlProcessor } from '@api-client/core/lib/parsers/UrlProcessor.js'\nimport { UrlEncoder } from '@api-client/core/lib/parsers/UrlEncoder.js'\nimport ApiElement from '../ApiElement.js'\nimport type Input from '../../md/input/Input.js'\nimport type SwitchElement from '../../md/switch/internals/SwitchElement.js'\nimport '../../md/button/ui-button.js'\nimport '../../md/icon-button/ui-icon-button.js'\nimport '../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../md/list/ui-list.js'\nimport '../../md/list/ui-list-item.js'\nimport '../../md/switch/ui-switch.js'\nimport '../../md/divider/ui-divider.js'\nimport '../../md/icons/ui-icon.js'\nimport '../../md/text-field/ui-filled-text-field.js'\n\nexport default class UrlParamsForm extends ApiElement {\n protected parser = new UrlProcessor('/')\n\n /**\n * When set the editor is in read only mode.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) accessor readOnly = false\n\n /**\n * Whether the text editor is rendered instead of the form.\n * @attribute\n */\n @property({ type: Boolean, reflect: true }) accessor text = false\n\n #value = ''\n\n /**\n * The current value of the editor.\n * @attribute\n */\n get value(): string {\n return this.#value\n }\n\n @property({ type: String })\n set value(value: string) {\n const old = this.#value\n if (old === value) {\n return\n }\n this.#value = value\n this.setupParser(value)\n }\n\n @state() protected accessor textValue: string | undefined\n\n protected override update(cp: PropertyValues<this>): void {\n if (cp.has('text')) {\n if (this.text) {\n this.textValue = this.parser.search.toParamsString()\n } else {\n this.textValue = undefined\n }\n }\n super.update(cp)\n }\n\n protected setupParser(value: string): void {\n if (value) {\n this.parser = new UrlProcessor(value)\n } else {\n this.parser = new UrlProcessor('/')\n }\n this.requestUpdate()\n }\n\n protected handleAdd(): void {\n this.addParameter()\n }\n\n addParameter(): void {\n if (this.readOnly) {\n return\n }\n this.parser.search.append('', '')\n this.requestUpdate()\n this.focusLast()\n }\n\n protected async focusLast(): Promise<void> {\n await this.updateComplete\n const row = this.shadowRoot?.querySelector('.param-row:last-of-type')\n if (!row) {\n return\n }\n try {\n const node = row.querySelector('.name-input input') as HTMLInputElement | undefined\n if (node) {\n node.focus()\n }\n } catch {\n // ...\n }\n }\n\n protected handleOption(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement\n const { option } = element.dataset\n if (!option) {\n return\n }\n if (option === 'clear') {\n this.clear()\n } else if (option === 'text-editor') {\n this.toggle()\n }\n }\n\n /**\n * Toggles the state between form and text editors.\n */\n toggle(): void {\n this.text = !this.text\n }\n\n /**\n * Removes all parameters.\n */\n clear(): void {\n this.parser.search.clear()\n this.updateValue()\n this.requestUpdate()\n if (this.text) {\n this.textValue = this.parser.search.toParamsString()\n }\n }\n\n /**\n * Updates name/value of a parameter on a specific index.\n */\n updateProperty(index: number, field: 'name' | 'value', value: string): void {\n const list = this.parser.search.list()\n list[index][field] = value\n this.parser.search.update(index, list[index])\n this.updateValue()\n if (this.text) {\n this.textValue = this.parser.search.toParamsString()\n }\n }\n\n /**\n * Removes a parameter from an index.\n */\n removeProperty(index: number): void {\n this.parser.search.delete(index)\n this.updateValue()\n this.requestUpdate()\n if (this.text) {\n this.textValue = this.parser.search.toParamsString()\n }\n }\n\n /**\n * Toggles enabled state of a parameter.\n */\n toggleProperty(index: number, enabled: boolean): void {\n this.parser.search.toggle(index, enabled)\n this.updateValue()\n if (this.text) {\n this.textValue = this.parser.search.toParamsString()\n }\n }\n\n /**\n * Encodes all parameters.\n */\n encodeProperties(): void {\n const { search } = this.parser\n const list = search.list()\n list.forEach((part, index) => {\n part.name = UrlEncoder.encodeQueryString(part.name, true)\n part.value = UrlEncoder.encodeQueryString(part.value, true)\n search.update(index, part)\n })\n // TODO: UrlEncoder.decodeQueryString(part, false) on each path segment\n this.requestUpdate()\n this.updateValue()\n if (this.text) {\n this.textValue = this.parser.search.toParamsString()\n }\n }\n\n /**\n * Decodes all parameters.\n */\n decodeProperties(): void {\n const { search } = this.parser\n const list = search.list()\n list.forEach((part, index) => {\n part.name = UrlEncoder.decodeQueryString(part.name, true)\n part.value = UrlEncoder.decodeQueryString(part.value, true)\n search.update(index, part)\n })\n // TODO: UrlEncoder.encodeQueryString(part, false) on each path segment\n this.requestUpdate()\n this.updateValue()\n if (this.text) {\n this.textValue = this.parser.search.toParamsString()\n }\n }\n\n protected updateValue(): void {\n this.#value = this.parser.toString()\n this.notifyChange()\n }\n\n protected handleNameChange(e: Event): void {\n const input = e.target as Input\n const index = Number(input.dataset.index)\n if (Number.isNaN(index)) {\n return\n }\n this.updateProperty(index, 'name', input.value)\n input.checkValidity()\n }\n\n protected handleValueChange(e: Event): void {\n const input = e.target as Input\n const index = Number(input.dataset.index)\n if (Number.isNaN(index)) {\n return\n }\n this.updateProperty(index, 'value', input.value)\n input.checkValidity()\n }\n\n protected handleRemove(e: Event): void {\n const node = e.currentTarget as HTMLElement\n const index = Number(node.dataset.index)\n if (Number.isNaN(index)) {\n return\n }\n this.removeProperty(index)\n }\n\n protected handleToggle(e: Event): void {\n const node = e.currentTarget as SwitchElement\n const index = Number(node.dataset.index)\n if (Number.isNaN(index)) {\n return\n }\n this.toggleProperty(index, !!node.checked)\n }\n\n protected handleEncode(): void {\n this.encodeProperties()\n }\n\n protected handleDecode(): void {\n this.decodeProperties()\n }\n\n protected handleText(e: Event): void {\n const input = e.target as HTMLTextAreaElement\n const { value } = input\n this.parser.search.fromParamsString(value)\n this.updateValue()\n }\n\n protected override render(): TemplateResult {\n return html` ${this.renderActionButtons()} ${this.renderEditor()} `\n }\n\n protected renderActionButtons(): TemplateResult {\n return html`\n <div class=\"editor-actions\">\n <ui-button color=\"tonal\" @click=\"${this.handleAdd}\">Add</ui-button>\n <ui-button color=\"tonal\" @click=\"${this.handleEncode}\">URL encode</ui-button>\n <ui-button color=\"tonal\" @click=\"${this.handleDecode}\">URL decode</ui-button>\n <ui-dropdown-list @select=\"${this.handleOption}\" closeOnOutsideClick class=\"dropdown\">\n <ui-icon-button aria-label=\"Additional options\"\n ><ui-icon icon=\"moreVert\" role=\"presentation\"></ui-icon\n ></ui-icon-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item\n role=\"menuitem\"\n data-option=\"text-editor\"\n image=\"icon\"\n title=\"Toggles between a text editor and a form\"\n >\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"${this.text ? 'checkBox' : 'checkBoxBlank'}\"></ui-icon>\n Text editor\n </ui-list-item>\n <ui-divider type=\"inset\"></ui-divider>\n <ui-list-item\n role=\"menuitem\"\n data-option=\"clear\"\n image=\"icon\"\n title=\"Removes all parameters from the editor\"\n >\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"deleteOutline\"></ui-icon>\n Clear form\n </ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n </div>\n `\n }\n\n protected renderEditor(): TemplateResult {\n if (this.text) {\n return this.renderText()\n }\n return this.renderList()\n }\n\n protected renderText(): TemplateResult {\n const { textValue = '' } = this\n return html`\n <div class=\"text-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <textarea .value=\"${live(textValue)}\" data-enable-grammarly=\"false\" @change=\"${this.handleText}\"></textarea>\n </div>\n `\n }\n\n protected renderList(): TemplateResult {\n const items = this.parser.search.list()\n if (!Array.isArray(items) || !items.length) {\n return this.renderEmptyMessage()\n }\n return this.renderParams(items)\n }\n\n protected renderEmptyMessage(): TemplateResult {\n return html` <div class=\"empty-message\">No parameters added</div> `\n }\n\n protected renderParams(items: IUrlParamPart[]): TemplateResult {\n return html` ${items.map((item, index) => this.renderParam(item, index))} `\n }\n\n protected renderParam(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <div class=\"param-row\">\n ${this.renderToggleButton(item, index)} ${this.renderNameField(item, index)}\n ${this.renderValueField(item, index)} ${this.renderDeleteParameter(index)}\n </div>\n `\n }\n\n protected renderToggleButton(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <ui-switch\n .checked=\"${item.enabled}\"\n @change=\"${this.handleToggle}\"\n aria-label=\"Toggle this parameter\"\n data-index=\"${index}\"\n ?disabled=\"${this.readOnly}\"\n ></ui-switch>\n `\n }\n\n protected renderDeleteParameter(index: number): TemplateResult {\n return html`\n <ui-icon-button\n aria-label=\"Delete this parameter\"\n data-index=\"${index}\"\n @click=\"${this.handleRemove}\"\n ?disabled=\"${this.readOnly}\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n `\n }\n\n protected renderNameField(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <div class=\"input-wrapper name-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"name\"\n autocomplete=\"off\"\n .value=\"${live(item.name)}\"\n data-index=\"${index}\"\n ?readOnly=\"${this.readOnly}\"\n pattern=\"\\\\S*\"\n aria-label=\"Parameter name value\"\n @change=\"${this.handleNameChange}\"\n />\n </div>\n `\n }\n\n protected renderValueField(item: IUrlParamPart, index: number): TemplateResult {\n return html`\n <div class=\"input-wrapper value-input\">\n <div class=\"error\" role=\"presentation\">Invalid character</div>\n <div class=\"state\"></div>\n <input\n type=\"text\"\n name=\"value\"\n .value=\"${live(item.value)}\"\n data-index=\"${index}\"\n ?readOnly=\"${this.readOnly}\"\n pattern=\"\\\\S*\"\n aria-label=\"Parameter value\"\n @change=\"${this.handleValueChange}\"\n />\n </div>\n `\n }\n}\n"]}
|
|
@@ -18,7 +18,7 @@ import type { IRequestLog } from '@api-client/core/models/RequestLog.js';
|
|
|
18
18
|
import type { Operation } from '@api-client/json/types.js';
|
|
19
19
|
import RequestEditor from '../http/RequestEditor.js';
|
|
20
20
|
import '../../md/icons/ui-icon.js';
|
|
21
|
-
import '../../md/button/ui-
|
|
21
|
+
import '../../md/button/ui-button.js';
|
|
22
22
|
import '../../md/dropdown-list/ui-dropdown-list.js';
|
|
23
23
|
import '../../md/list/ui-list.js';
|
|
24
24
|
import '../../md/list/ui-list-item.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpProjectRequest.d.ts","sourceRoot":"","sources":["../../../../src/elements/project/HttpProjectRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAEnE,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,wCAAwC,CAAA;AAClG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAA;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAA;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qDAAqD,CAAA;AACzF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iDAAiD,CAAA;AAChF,OAAO,EAAE,KAAK,cAAc,EAAiB,MAAM,0CAA0C,CAAA;AAC7F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAA;AACjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AACjF,OAAO,EAAE,KAAK,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iDAAiD,CAAA;AAClH,OAAO,KAAK,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,4CAA4C,CAAA;AAEnH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAA;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAA;AAGxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,aAAa,MAAM,0BAA0B,CAAA;AAKpD,OAAO,2BAA2B,CAAA;AAClC,OAAO,
|
|
1
|
+
{"version":3,"file":"HttpProjectRequest.d.ts","sourceRoot":"","sources":["../../../../src/elements/project/HttpProjectRequest.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ import RequestEditor from '../http/RequestEditor.js';
|
|
|
12
12
|
import { EventTypes } from '../../events/EventTypes.js';
|
|
13
13
|
import { midnightTimestamp } from '../../lib/time/Conversion.js';
|
|
14
14
|
import '../../md/icons/ui-icon.js';
|
|
15
|
-
import '../../md/button/ui-
|
|
15
|
+
import '../../md/button/ui-button.js';
|
|
16
16
|
import '../../md/dropdown-list/ui-dropdown-list.js';
|
|
17
17
|
import '../../md/list/ui-list.js';
|
|
18
18
|
import '../../md/list/ui-list-item.js';
|
|
@@ -430,10 +430,10 @@ let HttpProjectRequest = (() => {
|
|
|
430
430
|
class="environment-dropdown"
|
|
431
431
|
closeOnOutsideClick
|
|
432
432
|
>
|
|
433
|
-
<ui-
|
|
433
|
+
<ui-button color="text" class="button">
|
|
434
434
|
${currentEnvironmentLabel || 'No environment'}
|
|
435
435
|
<ui-icon icon="arrowDropDown"></ui-icon>
|
|
436
|
-
</ui-
|
|
436
|
+
</ui-button>
|
|
437
437
|
<ui-list slot="dropdown" role="menu">
|
|
438
438
|
<ui-list-item
|
|
439
439
|
role="menuitem"
|