@api-client/ui 0.2.3 → 0.2.4
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 +3 -3
- package/build/src/elements/authorization/ui/ApiKeyAuthorization.d.ts +1 -1
- package/build/src/elements/authorization/ui/ApiKeyAuthorization.d.ts.map +1 -1
- package/build/src/elements/authorization/ui/ApiKeyAuthorization.js +7 -7
- package/build/src/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
- package/build/src/elements/authorization/ui/Authorization.styles.js +4 -4
- package/build/src/elements/authorization/ui/Authorization.styles.js.map +1 -1
- package/build/src/elements/authorization/ui/BasicAuthorization.d.ts +1 -1
- package/build/src/elements/authorization/ui/BasicAuthorization.d.ts.map +1 -1
- package/build/src/elements/authorization/ui/BasicAuthorization.js +5 -5
- package/build/src/elements/authorization/ui/BasicAuthorization.js.map +1 -1
- package/build/src/elements/authorization/ui/BearerAuthorization.d.ts +1 -1
- package/build/src/elements/authorization/ui/BearerAuthorization.d.ts.map +1 -1
- package/build/src/elements/authorization/ui/BearerAuthorization.js +3 -3
- package/build/src/elements/authorization/ui/BearerAuthorization.js.map +1 -1
- package/build/src/elements/authorization/ui/NtlmAuthorization.d.ts +1 -1
- package/build/src/elements/authorization/ui/NtlmAuthorization.d.ts.map +1 -1
- package/build/src/elements/authorization/ui/NtlmAuthorization.js +7 -7
- package/build/src/elements/authorization/ui/NtlmAuthorization.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 +32 -27
- package/build/src/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
- package/build/src/elements/authorization/ui/OidcAuthorization.js +4 -4
- package/build/src/elements/authorization/ui/OidcAuthorization.js.map +1 -1
- package/build/src/elements/autocomplete/autocomplete-input.d.ts +10 -0
- package/build/src/elements/autocomplete/autocomplete-input.d.ts.map +1 -0
- package/build/src/{md/text-field/ui-text-field.js → elements/autocomplete/autocomplete-input.js} +9 -9
- package/build/src/elements/autocomplete/autocomplete-input.js.map +1 -0
- package/build/src/elements/autocomplete/internals/autocomplete.d.ts +209 -0
- package/build/src/elements/autocomplete/internals/autocomplete.d.ts.map +1 -0
- package/build/src/elements/autocomplete/internals/autocomplete.js +493 -0
- package/build/src/elements/autocomplete/internals/autocomplete.js.map +1 -0
- package/build/src/elements/autocomplete/internals/autocomplete.styles.d.ts +3 -0
- package/build/src/elements/autocomplete/internals/autocomplete.styles.d.ts.map +1 -0
- package/build/src/elements/autocomplete/internals/autocomplete.styles.js +25 -0
- package/build/src/elements/autocomplete/internals/autocomplete.styles.js.map +1 -0
- package/build/src/elements/dialog/internals/DeleteCookieAction.element.d.ts +1 -1
- package/build/src/elements/dialog/internals/DeleteCookieAction.element.d.ts.map +1 -1
- package/build/src/elements/dialog/internals/DeleteCookieAction.element.js +5 -5
- package/build/src/elements/dialog/internals/DeleteCookieAction.element.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 +3 -3
- package/build/src/elements/dialog/internals/Rename.js.map +1 -1
- package/build/src/elements/dialog/internals/SetCookieAction.element.d.ts +1 -1
- package/build/src/elements/dialog/internals/SetCookieAction.element.d.ts.map +1 -1
- package/build/src/elements/dialog/internals/SetCookieAction.element.js +9 -9
- package/build/src/elements/dialog/internals/SetCookieAction.element.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 +3 -3
- package/build/src/elements/environment/EnvironmentEditor.js.map +1 -1
- package/build/src/elements/environment/EnvironmentEditor.styles.js +1 -1
- package/build/src/elements/environment/EnvironmentEditor.styles.js.map +1 -1
- package/build/src/elements/environment/ServerEditor.d.ts +1 -1
- package/build/src/elements/environment/ServerEditor.d.ts.map +1 -1
- package/build/src/elements/environment/ServerEditor.js +7 -7
- package/build/src/elements/environment/ServerEditor.js.map +1 -1
- package/build/src/elements/environment/ServerEditor.styles.js +1 -1
- package/build/src/elements/environment/ServerEditor.styles.js.map +1 -1
- package/build/src/elements/http/BodyMultipartEditor.d.ts.map +1 -1
- package/build/src/elements/http/BodyMultipartEditor.js +4 -0
- package/build/src/elements/http/BodyMultipartEditor.js.map +1 -1
- package/build/src/elements/http/CertificateAdd.element.d.ts +1 -1
- package/build/src/elements/http/CertificateAdd.element.d.ts.map +1 -1
- package/build/src/elements/http/CertificateAdd.element.js +8 -8
- package/build/src/elements/http/CertificateAdd.element.js.map +1 -1
- package/build/src/elements/http/CertificateAdd.styles.js +1 -1
- package/build/src/elements/http/CertificateAdd.styles.js.map +1 -1
- package/build/src/elements/http/HttpAssertions.element.js +3 -3
- package/build/src/elements/http/HttpAssertions.element.js.map +1 -1
- package/build/src/elements/http/HttpFlows.element.js +3 -3
- package/build/src/elements/http/HttpFlows.element.js.map +1 -1
- package/build/src/elements/http/HttpFlowsUi.d.ts +1 -1
- package/build/src/elements/http/HttpFlowsUi.d.ts.map +1 -1
- package/build/src/elements/http/HttpFlowsUi.js +31 -31
- package/build/src/elements/http/HttpFlowsUi.js.map +1 -1
- package/build/src/elements/http/RequestConfigElement.d.ts +1 -1
- package/build/src/elements/http/RequestConfigElement.d.ts.map +1 -1
- package/build/src/elements/http/RequestConfigElement.js +7 -7
- package/build/src/elements/http/RequestConfigElement.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 +1 -1
- package/build/src/elements/http/UrlParamsForm.js.map +1 -1
- package/build/src/elements/project/ProjectRunner.d.ts +1 -1
- package/build/src/elements/project/ProjectRunner.d.ts.map +1 -1
- package/build/src/elements/project/ProjectRunner.js +5 -5
- package/build/src/elements/project/ProjectRunner.js.map +1 -1
- package/build/src/md/input/Input.d.ts +0 -15
- package/build/src/md/input/Input.d.ts.map +1 -1
- package/build/src/md/input/Input.js +7 -42
- package/build/src/md/input/Input.js.map +1 -1
- package/build/src/md/list/internals/List.d.ts +7 -2
- package/build/src/md/list/internals/List.d.ts.map +1 -1
- package/build/src/md/list/internals/List.js +6 -0
- package/build/src/md/list/internals/List.js.map +1 -1
- package/build/src/md/list/internals/ListItem.styles.d.ts.map +1 -1
- package/build/src/md/list/internals/ListItem.styles.js +8 -0
- package/build/src/md/list/internals/ListItem.styles.js.map +1 -1
- package/build/src/md/listbox/internals/Listbox.d.ts +2 -2
- package/build/src/md/listbox/internals/Listbox.d.ts.map +1 -1
- package/build/src/md/listbox/internals/Listbox.js.map +1 -1
- package/build/src/md/text-area/internals/TextAreaElement.d.ts.map +1 -1
- package/build/src/md/text-area/internals/TextAreaElement.js +0 -5
- package/build/src/md/text-area/internals/TextAreaElement.js.map +1 -1
- package/build/src/md/text-area/ui-text-area.d.ts.map +1 -1
- package/build/src/md/text-area/ui-text-area.js +3 -2
- package/build/src/md/text-area/ui-text-area.js.map +1 -1
- package/build/src/md/text-field/internals/{TextFieldElement.d.ts → TextField.d.ts} +2 -2
- package/build/src/md/text-field/internals/TextField.d.ts.map +1 -0
- package/build/src/md/text-field/internals/{TextFieldElement.js → TextField.js} +2 -5
- package/build/src/md/text-field/internals/TextField.js.map +1 -0
- package/build/src/md/text-field/internals/{TextField.styles.d.ts → common.styles.d.ts} +1 -1
- package/build/src/md/text-field/internals/common.styles.d.ts.map +1 -0
- package/build/src/md/text-field/internals/{TextField.styles.js → common.styles.js} +8 -94
- package/build/src/md/text-field/internals/common.styles.js.map +1 -0
- package/build/src/md/text-field/internals/filled.styles.d.ts +3 -0
- package/build/src/md/text-field/internals/filled.styles.d.ts.map +1 -0
- package/build/src/md/text-field/internals/filled.styles.js +107 -0
- package/build/src/md/text-field/internals/filled.styles.js.map +1 -0
- package/build/src/md/text-field/internals/outlined.styles.d.ts +3 -0
- package/build/src/md/text-field/internals/outlined.styles.d.ts.map +1 -0
- package/build/src/md/text-field/internals/outlined.styles.js +43 -0
- package/build/src/md/text-field/internals/outlined.styles.js.map +1 -0
- package/build/src/md/text-field/ui-filled-text-field.d.ts +11 -0
- package/build/src/md/text-field/ui-filled-text-field.d.ts.map +1 -0
- package/build/src/md/text-field/ui-filled-text-field.js +28 -0
- package/build/src/md/text-field/ui-filled-text-field.js.map +1 -0
- package/build/src/md/text-field/ui-outlined-text-field.d.ts +11 -0
- package/build/src/md/text-field/ui-outlined-text-field.d.ts.map +1 -0
- package/build/src/md/text-field/ui-outlined-text-field.js +28 -0
- package/build/src/md/text-field/ui-outlined-text-field.js.map +1 -0
- package/build/src/types/input.d.ts +1 -1
- package/build/src/types/input.d.ts.map +1 -1
- package/build/src/types/input.js.map +1 -1
- package/demo/elements/authorization/oauth-authorize.html +4 -4
- package/demo/elements/authorization/oauth-authorize.ts +1 -1
- package/demo/elements/autocomplete/index.html +24 -0
- package/demo/elements/autocomplete/index.ts +123 -0
- package/demo/elements/http/body-editor.ts +3 -3
- package/demo/elements/index.html +15 -11
- package/demo/md/index.html +1 -1
- package/demo/md/inputs/input.html +10 -15
- package/demo/md/inputs/input.ts +389 -101
- package/demo/page.css +4 -0
- package/package.json +1 -1
- package/src/elements/authorization/ui/ApiKeyAuthorization.ts +7 -7
- package/src/elements/authorization/ui/Authorization.styles.ts +4 -4
- package/src/elements/authorization/ui/BasicAuthorization.ts +5 -5
- package/src/elements/authorization/ui/BearerAuthorization.ts +3 -3
- package/src/elements/authorization/ui/NtlmAuthorization.ts +7 -7
- package/src/elements/authorization/ui/OAuth2Authorization.ts +32 -27
- package/src/elements/authorization/ui/OidcAuthorization.ts +4 -4
- package/src/elements/autocomplete/autocomplete-input.ts +14 -0
- package/src/elements/autocomplete/internals/autocomplete.styles.ts +25 -0
- package/src/elements/autocomplete/internals/autocomplete.ts +490 -0
- package/src/elements/dialog/internals/DeleteCookieAction.element.ts +5 -5
- package/src/elements/dialog/internals/Rename.ts +3 -3
- package/src/elements/dialog/internals/SetCookieAction.element.ts +9 -9
- package/src/elements/environment/EnvironmentEditor.styles.ts +1 -1
- package/src/elements/environment/EnvironmentEditor.ts +3 -3
- package/src/elements/environment/ServerEditor.styles.ts +1 -1
- package/src/elements/environment/ServerEditor.ts +7 -7
- package/src/elements/http/BodyMultipartEditor.ts +4 -0
- package/src/elements/http/CertificateAdd.element.ts +8 -8
- package/src/elements/http/CertificateAdd.styles.ts +1 -1
- package/src/elements/http/HttpAssertions.element.ts +3 -3
- package/src/elements/http/HttpFlows.element.ts +3 -3
- package/src/elements/http/HttpFlowsUi.ts +31 -31
- package/src/elements/http/RequestConfigElement.ts +7 -7
- package/src/elements/http/UrlParamsForm.ts +1 -1
- package/src/elements/project/ProjectRunner.ts +5 -5
- package/src/md/input/Input.ts +6 -21
- package/src/md/list/internals/List.ts +14 -2
- package/src/md/list/internals/ListItem.styles.ts +8 -0
- package/src/md/listbox/internals/Listbox.ts +2 -2
- package/src/md/text-area/internals/TextAreaElement.ts +0 -5
- package/src/md/text-area/ui-text-area.ts +3 -2
- package/src/md/text-field/internals/{TextFieldElement.ts → TextField.ts} +1 -4
- package/src/md/text-field/internals/{TextField.styles.ts → common.styles.ts} +7 -93
- package/src/md/text-field/internals/filled.styles.ts +107 -0
- package/src/md/text-field/internals/outlined.styles.ts +43 -0
- package/src/md/text-field/ui-filled-text-field.ts +16 -0
- package/src/md/text-field/ui-outlined-text-field.ts +16 -0
- package/src/types/input.ts +0 -1
- package/test/elements/authorization/basic-method.test.ts +3 -3
- package/test/elements/authorization/bearer-method.test.ts +2 -2
- package/test/elements/authorization/ntlm-method.test.ts +4 -4
- package/test/elements/autocomplete/autocomplete-input.spec.ts +448 -0
- package/test/elements/http/BodyMultipartEditorElement.test.ts +15 -16
- package/test/elements/http/CertificateAdd.test.ts +11 -11
- package/test/elements/http/HttpAssertions.test.ts +9 -9
- package/test/elements/http/HttpFlows.test.ts +4 -4
- package/build/src/md/text-field/internals/TextField.styles.d.ts.map +0 -1
- package/build/src/md/text-field/internals/TextField.styles.js.map +0 -1
- package/build/src/md/text-field/internals/TextFieldElement.d.ts.map +0 -1
- package/build/src/md/text-field/internals/TextFieldElement.js.map +0 -1
- package/build/src/md/text-field/ui-text-field.d.ts +0 -11
- package/build/src/md/text-field/ui-text-field.d.ts.map +0 -1
- package/build/src/md/text-field/ui-text-field.js.map +0 -1
- package/src/md/text-field/ui-text-field.ts +0 -15
|
@@ -9,7 +9,7 @@ import { Authorization } from './Authorization.js';
|
|
|
9
9
|
import { selectNode } from '../Utils.js';
|
|
10
10
|
import { SnackNotifications } from '../../../md/notification/SnackNotifications.js';
|
|
11
11
|
import '../../../md/button/ui-filled-button.js';
|
|
12
|
-
import '../../../md/text-field/ui-text-field.js';
|
|
12
|
+
import '../../../md/text-field/ui-filled-text-field.js';
|
|
13
13
|
import '../../../md/list/ui-list.js';
|
|
14
14
|
import '../../../md/list/ui-list-item.js';
|
|
15
15
|
import '../../../md/dropdown-list/ui-dropdown-list.js';
|
|
@@ -900,7 +900,7 @@ let OAuth2Authorization = (() => {
|
|
|
900
900
|
return html `
|
|
901
901
|
<div class="full-input grant-line">
|
|
902
902
|
<ui-dropdown-list verticalAlign="top" @select="${this.handleGrantTypeSelect}" closeOnOutsideClick>
|
|
903
|
-
<ui-text-field
|
|
903
|
+
<ui-filled-text-field
|
|
904
904
|
readOnly
|
|
905
905
|
name="grantType"
|
|
906
906
|
.value="${value || ''}"
|
|
@@ -910,7 +910,7 @@ let OAuth2Authorization = (() => {
|
|
|
910
910
|
?disabled="${disabled || readOnly}"
|
|
911
911
|
>
|
|
912
912
|
<ui-icon slot="suffix" icon="arrowDropDown" role="presentation"></ui-icon>
|
|
913
|
-
</ui-text-field>
|
|
913
|
+
</ui-filled-text-field>
|
|
914
914
|
<ui-list slot="dropdown" role="menu">
|
|
915
915
|
${items.map((current) => html `<ui-list-item role="menuitem" data-value="${current.type}">${current.label}</ui-list-item>`)}
|
|
916
916
|
</ui-list>
|
|
@@ -931,9 +931,9 @@ let OAuth2Authorization = (() => {
|
|
|
931
931
|
}
|
|
932
932
|
return html ` <div class="full-input credential-source-list">
|
|
933
933
|
<ui-dropdown-list verticalAlign="top" @select="${this.handleCredentialSource}" closeOnOutsideClick>
|
|
934
|
-
<ui-text-field readOnly name="credentialSource" .value="${credentialSource || ''}" label="Grant type">
|
|
934
|
+
<ui-filled-text-field readOnly name="credentialSource" .value="${credentialSource || ''}" label="Grant type">
|
|
935
935
|
<ui-icon slot="suffix" icon="arrowDropDown" role="presentation"></ui-icon>
|
|
936
|
-
</ui-text-field>
|
|
936
|
+
</ui-filled-text-field>
|
|
937
937
|
<ui-list slot="dropdown" role="menu">
|
|
938
938
|
${credentials.map((current) => html `<ui-list-item role="menuitem" data-value="${current.name}">${current.name}</ui-list-item>`)}
|
|
939
939
|
</ui-list>
|
|
@@ -952,7 +952,7 @@ let OAuth2Authorization = (() => {
|
|
|
952
952
|
const sourceSelected = this.isSourceSelected();
|
|
953
953
|
return html `
|
|
954
954
|
<div class="full-input base-level">
|
|
955
|
-
<ui-text-field
|
|
955
|
+
<ui-filled-text-field
|
|
956
956
|
label="Client id"
|
|
957
957
|
name="clientId"
|
|
958
958
|
type="password"
|
|
@@ -962,7 +962,7 @@ let OAuth2Authorization = (() => {
|
|
|
962
962
|
?disabled="${sourceSelected ? credentialsDisabled : true}"
|
|
963
963
|
?readOnly="${this.readOnly}"
|
|
964
964
|
@change="${this.handleClientId}"
|
|
965
|
-
></ui-text-field>
|
|
965
|
+
></ui-filled-text-field>
|
|
966
966
|
</div>
|
|
967
967
|
`;
|
|
968
968
|
}
|
|
@@ -979,7 +979,7 @@ let OAuth2Authorization = (() => {
|
|
|
979
979
|
const sourceSelected = this.isSourceSelected();
|
|
980
980
|
return html `
|
|
981
981
|
<div class="full-input base-level">
|
|
982
|
-
<ui-text-field
|
|
982
|
+
<ui-filled-text-field
|
|
983
983
|
label="Client secret"
|
|
984
984
|
name="clientSecret"
|
|
985
985
|
type="password"
|
|
@@ -989,7 +989,7 @@ let OAuth2Authorization = (() => {
|
|
|
989
989
|
?disabled="${sourceSelected ? credentialsDisabled : true}"
|
|
990
990
|
?readOnly="${this.readOnly}"
|
|
991
991
|
@change="${this.handleClientSecret}"
|
|
992
|
-
></ui-text-field>
|
|
992
|
+
></ui-filled-text-field>
|
|
993
993
|
</div>
|
|
994
994
|
`;
|
|
995
995
|
}
|
|
@@ -1003,7 +1003,7 @@ let OAuth2Authorization = (() => {
|
|
|
1003
1003
|
}
|
|
1004
1004
|
return html `
|
|
1005
1005
|
<div class="full-input base-level">
|
|
1006
|
-
<ui-text-field
|
|
1006
|
+
<ui-filled-text-field
|
|
1007
1007
|
label="Assertion (JWT)"
|
|
1008
1008
|
name="assertion"
|
|
1009
1009
|
.value="${live(config.assertion || '')}"
|
|
@@ -1012,7 +1012,7 @@ let OAuth2Authorization = (() => {
|
|
|
1012
1012
|
?disabled="${this.disabled}"
|
|
1013
1013
|
?readOnly="${this.readOnly}"
|
|
1014
1014
|
@change="${this.handleAssertion}"
|
|
1015
|
-
></ui-text-field>
|
|
1015
|
+
></ui-filled-text-field>
|
|
1016
1016
|
</div>
|
|
1017
1017
|
`;
|
|
1018
1018
|
}
|
|
@@ -1026,7 +1026,7 @@ let OAuth2Authorization = (() => {
|
|
|
1026
1026
|
}
|
|
1027
1027
|
return html `
|
|
1028
1028
|
<div class="full-input base-level">
|
|
1029
|
-
<ui-text-field
|
|
1029
|
+
<ui-filled-text-field
|
|
1030
1030
|
label="Device code"
|
|
1031
1031
|
name="deviceCode"
|
|
1032
1032
|
.value="${live(config.deviceCode || '')}"
|
|
@@ -1035,7 +1035,7 @@ let OAuth2Authorization = (() => {
|
|
|
1035
1035
|
?disabled="${this.disabled}"
|
|
1036
1036
|
?readOnly="${this.readOnly}"
|
|
1037
1037
|
@change="${this.handleDeviceCode}"
|
|
1038
|
-
></ui-text-field>
|
|
1038
|
+
></ui-filled-text-field>
|
|
1039
1039
|
</div>
|
|
1040
1040
|
`;
|
|
1041
1041
|
}
|
|
@@ -1051,7 +1051,7 @@ let OAuth2Authorization = (() => {
|
|
|
1051
1051
|
const { authorizationUri } = config;
|
|
1052
1052
|
return html `
|
|
1053
1053
|
<div class="full-input base-level">
|
|
1054
|
-
<ui-text-field
|
|
1054
|
+
<ui-filled-text-field
|
|
1055
1055
|
label="Authorization URI"
|
|
1056
1056
|
name="authorizationUri"
|
|
1057
1057
|
.value="${live(authorizationUri || '')}"
|
|
@@ -1061,7 +1061,7 @@ let OAuth2Authorization = (() => {
|
|
|
1061
1061
|
?disabled="${this.disabled}"
|
|
1062
1062
|
?readOnly="${this.readOnly}"
|
|
1063
1063
|
@change="${this.handleAuthorizationUri}"
|
|
1064
|
-
></ui-text-field>
|
|
1064
|
+
></ui-filled-text-field>
|
|
1065
1065
|
</div>
|
|
1066
1066
|
`;
|
|
1067
1067
|
}
|
|
@@ -1077,7 +1077,7 @@ let OAuth2Authorization = (() => {
|
|
|
1077
1077
|
const { accessTokenUri } = config;
|
|
1078
1078
|
return html `
|
|
1079
1079
|
<div class="full-input base-level">
|
|
1080
|
-
<ui-text-field
|
|
1080
|
+
<ui-filled-text-field
|
|
1081
1081
|
label="Access token URI"
|
|
1082
1082
|
name="accessTokenUri"
|
|
1083
1083
|
.value="${live(accessTokenUri || '')}"
|
|
@@ -1087,7 +1087,7 @@ let OAuth2Authorization = (() => {
|
|
|
1087
1087
|
?disabled="${this.disabled}"
|
|
1088
1088
|
?readOnly="${this.readOnly}"
|
|
1089
1089
|
@change="${this.handleAccessTokenUri}"
|
|
1090
|
-
></ui-text-field>
|
|
1090
|
+
></ui-filled-text-field>
|
|
1091
1091
|
</div>
|
|
1092
1092
|
`;
|
|
1093
1093
|
}
|
|
@@ -1102,7 +1102,7 @@ let OAuth2Authorization = (() => {
|
|
|
1102
1102
|
const { username } = config;
|
|
1103
1103
|
return html `
|
|
1104
1104
|
<div class="full-input base-level">
|
|
1105
|
-
<ui-text-field
|
|
1105
|
+
<ui-filled-text-field
|
|
1106
1106
|
label="Username"
|
|
1107
1107
|
name="username"
|
|
1108
1108
|
.value="${live(username || '')}"
|
|
@@ -1111,7 +1111,7 @@ let OAuth2Authorization = (() => {
|
|
|
1111
1111
|
?disabled="${this.disabled}"
|
|
1112
1112
|
?readOnly="${this.readOnly}"
|
|
1113
1113
|
@change="${this.handleUsername}"
|
|
1114
|
-
></ui-text-field>
|
|
1114
|
+
></ui-filled-text-field>
|
|
1115
1115
|
</div>
|
|
1116
1116
|
`;
|
|
1117
1117
|
}
|
|
@@ -1126,7 +1126,7 @@ let OAuth2Authorization = (() => {
|
|
|
1126
1126
|
const { password } = config;
|
|
1127
1127
|
return html `
|
|
1128
1128
|
<div class="full-input base-level">
|
|
1129
|
-
<ui-text-field
|
|
1129
|
+
<ui-filled-text-field
|
|
1130
1130
|
label="Password"
|
|
1131
1131
|
name="password"
|
|
1132
1132
|
.value="${live(password || '')}"
|
|
@@ -1136,7 +1136,7 @@ let OAuth2Authorization = (() => {
|
|
|
1136
1136
|
?disabled="${this.disabled}"
|
|
1137
1137
|
?readOnly="${this.readOnly}"
|
|
1138
1138
|
@change="${this.handlePassword}"
|
|
1139
|
-
></ui-text-field>
|
|
1139
|
+
></ui-filled-text-field>
|
|
1140
1140
|
</div>
|
|
1141
1141
|
`;
|
|
1142
1142
|
}
|
|
@@ -1155,7 +1155,7 @@ let OAuth2Authorization = (() => {
|
|
|
1155
1155
|
const { disabled, readOnly } = this;
|
|
1156
1156
|
return html ` <div class="full-input delivery-method-line">
|
|
1157
1157
|
<ui-dropdown-list verticalAlign="top" @select="${this.handleDeliveryMethod}" closeOnOutsideClick>
|
|
1158
|
-
<ui-text-field
|
|
1158
|
+
<ui-filled-text-field
|
|
1159
1159
|
readOnly
|
|
1160
1160
|
name="deliveryMethod"
|
|
1161
1161
|
.value="${LocationLabels[deliveryMethod] || ''}"
|
|
@@ -1164,7 +1164,7 @@ let OAuth2Authorization = (() => {
|
|
|
1164
1164
|
data-selected="${deliveryMethod || ''}"
|
|
1165
1165
|
>
|
|
1166
1166
|
<ui-icon slot="suffix" icon="arrowDropDown" role="presentation"></ui-icon>
|
|
1167
|
-
</ui-text-field>
|
|
1167
|
+
</ui-filled-text-field>
|
|
1168
1168
|
<ui-list slot="dropdown" role="menu">
|
|
1169
1169
|
<ui-list-item role="menuitem" data-value="header">${LocationLabels.header}</ui-list-item>
|
|
1170
1170
|
<ui-list-item role="menuitem" data-value="body">${LocationLabels.body}</ui-list-item>
|
|
@@ -1205,7 +1205,7 @@ let OAuth2Authorization = (() => {
|
|
|
1205
1205
|
const { redirectUri = defaultRedirectUri } = config;
|
|
1206
1206
|
return html `
|
|
1207
1207
|
<div class="full-input base-level">
|
|
1208
|
-
<ui-text-field
|
|
1208
|
+
<ui-filled-text-field
|
|
1209
1209
|
label="Redirect URI"
|
|
1210
1210
|
name="redirectUri"
|
|
1211
1211
|
.value="${live(redirectUri)}"
|
|
@@ -1215,7 +1215,7 @@ let OAuth2Authorization = (() => {
|
|
|
1215
1215
|
?disabled="${this.disabled}"
|
|
1216
1216
|
?readOnly="${this.readOnly}"
|
|
1217
1217
|
@change="${this.handleRedirectUri}"
|
|
1218
|
-
></ui-text-field>
|
|
1218
|
+
></ui-filled-text-field>
|
|
1219
1219
|
</div>
|
|
1220
1220
|
`;
|
|
1221
1221
|
}
|
|
@@ -1230,7 +1230,12 @@ let OAuth2Authorization = (() => {
|
|
|
1230
1230
|
</div>
|
|
1231
1231
|
|
|
1232
1232
|
<div class="full-input base-level">
|
|
1233
|
-
<ui-text-field
|
|
1233
|
+
<ui-filled-text-field
|
|
1234
|
+
label="Scope value"
|
|
1235
|
+
name="scope"
|
|
1236
|
+
?disabled="${this.disabled}"
|
|
1237
|
+
?readOnly="${this.readOnly}"
|
|
1238
|
+
>
|
|
1234
1239
|
<ui-icon-button
|
|
1235
1240
|
type="outlined"
|
|
1236
1241
|
slot="suffix"
|
|
@@ -1240,7 +1245,7 @@ let OAuth2Authorization = (() => {
|
|
|
1240
1245
|
>
|
|
1241
1246
|
<ui-icon icon="add" role="presentation"></ui-icon>
|
|
1242
1247
|
</ui-icon-button>
|
|
1243
|
-
</ui-text-field>
|
|
1248
|
+
</ui-filled-text-field>
|
|
1244
1249
|
</div>
|
|
1245
1250
|
${this.renderScopesList(scopes)}
|
|
1246
1251
|
</section>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OAuth2Authorization.js","sourceRoot":"","sources":["../../../../../src/elements/authorization/ui/OAuth2Authorization.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CUSTOM_CREDENTIALS,\n generateState,\n readUrlValue,\n validateRedirectUri,\n} from '@api-client/core/authorization/lib/Utils.js'\nimport * as KnownGrants from '@api-client/core/authorization/lib/KnownGrants.js'\nimport type { IOAuth2Authorization, IOauth2GrantType, ITokenInfo } from '@api-client/core/models/Authorization.js'\nimport type { OAuth2DeliveryMethod } from '@api-client/core/models/Authorization.js'\nimport { Events as CoreEvents } from '@api-client/core/events/Events.js'\nimport { html, nothing, TemplateResult } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { live } from 'lit/directives/live.js'\nimport { CredentialsInfo, Oauth2Credentials } from '../types.js'\nimport { Authorization } from './Authorization.js'\nimport Input from '../../../md/input/Input.js'\nimport { SupportedInputTypes } from '../../../types/input.js'\nimport CheckboxElement from '../../../md/checkbox/internals/CheckboxElement.js'\nimport { selectNode } from '../Utils.js'\nimport { SnackNotifications } from '../../../md/notification/SnackNotifications.js'\nimport '../../../md/button/ui-filled-button.js'\nimport '../../../md/text-field/ui-text-field.js'\nimport '../../../md/list/ui-list.js'\nimport '../../../md/list/ui-list-item.js'\nimport '../../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../../md/icon-button/ui-icon-button.js'\nimport '../../../md/checkbox/ui-checkbox.js'\nimport '../../../md/icons/ui-icon.js'\n\n/**\n * List of OAuth 2.0 default response types.\n * This list can be extended by custom grants\n *\n * @returns List of objects with `type` and `label` properties.\n */\nexport const oauth2GrantTypes: IOauth2GrantType[] = [\n {\n type: KnownGrants.implicit,\n label: 'Implicit',\n },\n {\n type: KnownGrants.code,\n label: 'Authorization code',\n },\n {\n type: KnownGrants.clientCredentials,\n label: 'Client credentials',\n },\n {\n type: KnownGrants.password,\n label: 'Password',\n },\n {\n type: KnownGrants.deviceCode,\n label: 'Device code',\n },\n {\n type: KnownGrants.jwtBearer,\n label: 'JWT Bearer',\n },\n]\n\nconst LocationLabels: Record<OAuth2DeliveryMethod, string> = {\n body: 'Message body',\n header: 'Authorization header',\n query: 'Query string',\n}\n\nexport default class OAuth2Authorization extends Authorization {\n get config(): IOAuth2Authorization {\n const { authorization } = this\n if (!authorization) {\n return {}\n }\n if (!authorization.config) {\n authorization.config = {} as IOAuth2Authorization\n }\n return authorization.config as IOAuth2Authorization\n }\n\n /**\n * @return Computed value, true if the response type is a custom definition.\n */\n get isCustomGrantType(): boolean {\n const { grantType } = this.config\n return (\n !!grantType &&\n ![\n KnownGrants.implicit,\n KnownGrants.code,\n KnownGrants.clientCredentials,\n KnownGrants.password,\n KnownGrants.jwtBearer,\n KnownGrants.deviceCode,\n ].includes(grantType)\n )\n }\n\n /**\n * @returns true when the client id field is required.\n */\n get clientIdRequired(): boolean {\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n return ![KnownGrants.clientCredentials, KnownGrants.password, KnownGrants.deviceCode].includes(grantType)\n }\n\n /**\n * @returns true when the client id field is rendered.\n */\n get hasClientId(): boolean {\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n return ![KnownGrants.jwtBearer].includes(grantType)\n }\n\n /**\n * @returns true when the client secret field is rendered.\n */\n get hasClientSecret(): boolean {\n const { isCustomGrantType } = this\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n if (isCustomGrantType) {\n return isCustomGrantType\n }\n return [KnownGrants.code, KnownGrants.clientCredentials, KnownGrants.password, KnownGrants.deviceCode].includes(\n grantType\n )\n }\n\n /**\n * @returns true when the client secret field is required.\n */\n get clientSecretRequired(): boolean {\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n return [KnownGrants.code].includes(grantType)\n }\n\n /**\n * @returns true when the authorization URI field is rendered.\n */\n get authorizationUriRendered(): boolean {\n const { isCustomGrantType } = this\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n return isCustomGrantType || [KnownGrants.implicit, KnownGrants.code].includes(grantType)\n }\n\n /**\n * @returns true when the token URI field is rendered.\n */\n get accessTokenUriRendered(): boolean {\n const { isCustomGrantType } = this\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n return (\n isCustomGrantType ||\n [\n KnownGrants.clientCredentials,\n KnownGrants.code,\n KnownGrants.password,\n KnownGrants.jwtBearer,\n KnownGrants.deviceCode,\n ].includes(grantType)\n )\n }\n\n /**\n * @returns true when the username and password fields are rendered.\n */\n get passwordRendered(): boolean {\n const { isCustomGrantType } = this\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n return isCustomGrantType || [KnownGrants.password].includes(grantType)\n }\n\n /**\n * @returns True when the current `grantType` can support redirect URI.\n */\n get hasRedirectUri(): boolean {\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n return [KnownGrants.implicit, KnownGrants.code].includes(grantType)\n }\n\n /**\n * Currently available grant types.\n */\n @state() accessor grantTypes: IOauth2GrantType[] | undefined = oauth2GrantTypes\n\n /**\n * The definition of client credentials to be rendered for a given grant type.\n * When set on the editor it renders a drop down where the user can choose from predefined\n * credentials (client id & secret).\n *\n */\n @state() accessor credentialsSource: Oauth2Credentials[] | undefined\n\n /**\n * Selected credential source\n */\n @state() accessor credentialSource: string | undefined\n\n /**\n * The default redirect URI to use if not define din the config.\n * @attribute\n */\n @property({ type: String }) accessor defaultRedirectUri: string | undefined\n\n @property({ type: Boolean }) accessor credentialsDisabled = this.disabled\n\n /**\n * The base URI to use to construct the correct URLs to the authorization endpoints.\n *\n * When the paths are relative then base URI is added to the path.\n * Relative paths must start with '/'.\n *\n * Note, URL processing is happening internally in the component. The produced authorize event\n * will have base URI already applied.\n */\n @property({ type: String }) accessor baseUri: string | undefined\n\n /**\n * The error message returned by the authorization library.\n * It renders error dialog when an error ocurred.\n * It is automatically cleared when the user request the token again.\n */\n @state() accessor lastErrorMessage: string | undefined\n\n /**\n * When this property is set then the PKCE option is not rendered for the\n * `authorization_code`. This is mainly meant to be used by the `api-authorization-method`\n * to keep this control disabled and override generated settings when the API spec\n * says that the PKCE is supported.\n * @attribute\n */\n @property({ type: Boolean }) accessor noPkce = false\n\n /**\n * If set, the response type selector is hidden from the UI.\n * @attribute\n */\n @property({ type: Boolean }) accessor noGrantType = false\n\n /**\n * @returns The list of client credentials to render in the credentials selector.\n */\n listCredentials(): CredentialsInfo[] {\n const { credentialsSource, config } = this\n const { grantType } = config\n let credentials: CredentialsInfo[] = []\n if (credentialsSource && credentialsSource.length > 0) {\n const grantTypeCredentials = credentialsSource.find((s) => s.grantType === grantType)\n if (grantTypeCredentials) {\n const customCredential = { name: CUSTOM_CREDENTIALS }\n credentials = [customCredential].concat(grantTypeCredentials.credentials)\n }\n }\n return credentials\n }\n\n /**\n * Sets the client credentials after updating them from the credentials source selector.\n * @param clientId The client id to set on the editor.\n * @param clientSecret The client secret to set on the editor.\n * @param disabled Whether the credentials input is disabled.\n */\n updateCredentials(clientId: string, clientSecret: string, disabled: boolean): void {\n const { config } = this\n config.clientId = clientId\n config.clientSecret = clientSecret\n this.credentialsDisabled = disabled\n this.requestUpdate()\n }\n\n /**\n * This triggers change in the client id & secret of the editor after selecting\n * a credentials source by the user.\n *\n * @param selectedSource The name of the selected credentials source to select.\n */\n updateClientCredentials(selectedSource: string): void {\n const { credentialsSource } = this\n if (!credentialsSource) {\n return\n }\n if (selectedSource) {\n const credentials = this.listCredentials()\n const credential = credentials.find((c) => c.name === selectedSource)\n if (credential) {\n this.updateCredentials(\n credential.clientId || '',\n credential.clientSecret || '',\n credential.name !== CUSTOM_CREDENTIALS\n )\n }\n } else {\n this.updateCredentials('', '', true)\n }\n }\n\n /**\n * @returns true when a credentials source is being selected.\n */\n isSourceSelected(): boolean {\n const { credentialSource } = this\n const credentials = this.listCredentials()\n if (credentials.length > 0) {\n if (!credentialSource) {\n return false\n }\n }\n return true\n }\n\n /**\n * Adds a scope value. If the value has a comma then it is split.\n * @param scope The scope string to add.\n */\n addScope(scope: string): void {\n const { config } = this\n if (!Array.isArray(config.scopes)) {\n config.scopes = []\n }\n const values = scope.split(',').filter((i) => !!i.trim())\n config.scopes = config.scopes.concat(values)\n this.requestUpdate()\n this.notifyChange()\n }\n\n removeScope(index: number): void {\n const { config } = this\n if (!Array.isArray(config.scopes)) {\n return\n }\n if (config.scopes[index] === undefined) {\n return\n }\n config.scopes.splice(index, 1)\n this.requestUpdate()\n this.notifyChange()\n }\n\n /**\n * Selects a grant type. It has no effect when the type is already selected.\n * @param value The grant type value to use.\n */\n updateGrantType(value: string): void {\n const { config, credentialSource } = this\n const { grantType } = config\n if (config.grantType === value) {\n return\n }\n if (grantType !== value && credentialSource) {\n this.credentialSource = undefined\n this.credentialsDisabled = this.disabled\n }\n config.grantType = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n /**\n * It does nothing when the value is already set.\n * @param value The credentials source to use\n */\n updateCredentialSource(value: string): void {\n if (this.credentialSource === value) {\n return\n }\n this.updateClientCredentials(value)\n this.credentialSource = value\n this.notifyChange()\n this.requestUpdate()\n }\n\n updateClientId(value?: string): void {\n const { config } = this\n if (config.clientId === value) {\n return\n }\n config.clientId = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updateClientSecret(value?: string): void {\n const { config } = this\n if (config.clientSecret === value) {\n return\n }\n config.clientSecret = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updateAuthorizationUri(value?: string): void {\n const { config } = this\n if (config.authorizationUri === value) {\n return\n }\n config.authorizationUri = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updateAccessTokenUri(value?: string): void {\n const { config } = this\n if (config.accessTokenUri === value) {\n return\n }\n config.accessTokenUri = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updateUsername(value?: string): void {\n const { config } = this\n if (config.username === value) {\n return\n }\n config.username = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updatePassword(value?: string): void {\n const { config } = this\n if (config.password === value) {\n return\n }\n config.password = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updateDeliveryMethod(value: OAuth2DeliveryMethod): void {\n const { config } = this\n if (config.deliveryMethod === value) {\n return\n }\n config.deliveryMethod = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updatePkce(enabled: boolean): void {\n const { config } = this\n if (config.pkce !== enabled) {\n config.pkce = enabled\n this.notifyChange()\n }\n }\n\n updateAssertion(value?: string): void {\n const { config } = this\n if (config.assertion === value) {\n return\n }\n config.assertion = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updateDeviceCode(value?: string): void {\n const { config } = this\n if (config.deviceCode === value) {\n return\n }\n config.deviceCode = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updateRedirectUri(value: string): void {\n const { defaultRedirectUri = '', config } = this\n const { redirectUri = defaultRedirectUri } = config\n\n const isValid = validateRedirectUri(value)\n if (!isValid) {\n if (config.redirectUri !== defaultRedirectUri) {\n config.redirectUri = defaultRedirectUri\n this.requestUpdate()\n this.notifyChange()\n }\n return\n }\n if (value === redirectUri) {\n delete config.redirectUri\n } else {\n config.redirectUri = value\n }\n this.requestUpdate()\n this.notifyChange()\n }\n\n /**\n * Serialized input values\n * @returns An object with user input\n */\n serialize(): IOAuth2Authorization {\n const { config, baseUri } = this\n const { grantType, tokenType = 'Bearer' } = config\n const detail: IOAuth2Authorization = {\n grantType,\n tokenType,\n clientId: config.clientId,\n accessToken: config.accessToken || '',\n scopes: config.scopes,\n deliveryMethod: config.deliveryMethod || 'header',\n deliveryName: config.deliveryName || 'authorization',\n }\n\n switch (grantType) {\n case KnownGrants.implicit:\n // The browser flow.\n detail.authorizationUri = readUrlValue(config.authorizationUri, baseUri)\n detail.redirectUri = readUrlValue(config.redirectUri, baseUri)\n break\n case KnownGrants.code:\n // The server flow.\n detail.authorizationUri = readUrlValue(config.authorizationUri, baseUri)\n detail.clientSecret = config.clientSecret\n detail.accessTokenUri = readUrlValue(config.accessTokenUri, baseUri)\n detail.redirectUri = readUrlValue(config.redirectUri, baseUri)\n detail.pkce = config.pkce\n break\n case 'application':\n case KnownGrants.clientCredentials:\n // The server flow.\n detail.accessTokenUri = readUrlValue(config.accessTokenUri, baseUri)\n detail.clientSecret = config.clientSecret\n break\n case KnownGrants.password:\n // The server flow.\n detail.username = config.username\n detail.password = config.password\n detail.accessTokenUri = readUrlValue(config.accessTokenUri, baseUri)\n detail.clientSecret = config.clientSecret\n break\n case KnownGrants.jwtBearer:\n // https://datatracker.ietf.org/doc/html/rfc7523#section-2.1\n detail.assertion = config.assertion\n detail.accessTokenUri = readUrlValue(config.accessTokenUri, baseUri)\n delete detail.clientId\n break\n case KnownGrants.deviceCode:\n // https://datatracker.ietf.org/doc/html/rfc8628#section-3.4\n detail.deviceCode = config.deviceCode\n detail.accessTokenUri = readUrlValue(config.accessTokenUri, baseUri)\n detail.clientSecret = config.clientSecret\n break\n default:\n // Custom response type.\n detail.authorizationUri = readUrlValue(config.authorizationUri, baseUri)\n detail.clientSecret = config.clientSecret\n detail.accessTokenUri = readUrlValue(config.accessTokenUri, baseUri)\n detail.redirectUri = readUrlValue(config.redirectUri, baseUri)\n detail.username = config.username\n detail.password = config.password\n break\n }\n return detail\n }\n\n override checkValidity(): boolean {\n const { config } = this\n const {\n grantType,\n clientId,\n authorizationUri,\n clientSecret,\n accessTokenUri,\n password,\n username,\n assertion,\n deviceCode,\n } = config\n if (!grantType) {\n return false\n }\n switch (grantType) {\n case KnownGrants.implicit:\n return !!clientId && !!authorizationUri\n case KnownGrants.code:\n return !!clientId && !!authorizationUri && !!clientSecret && !!accessTokenUri\n case KnownGrants.clientCredentials:\n return !!accessTokenUri\n case KnownGrants.password:\n return !!accessTokenUri && !!password && !!username\n case KnownGrants.jwtBearer:\n return !!accessTokenUri && !!assertion\n case KnownGrants.deviceCode:\n return !!accessTokenUri && !!deviceCode\n default:\n return !!accessTokenUri\n }\n }\n\n override async authorize(): Promise<ITokenInfo | null> {\n if (this.lastErrorMessage) {\n this.lastErrorMessage = undefined\n }\n\n const validationResult = this.checkValidity()\n if (!validationResult) {\n return null\n }\n\n this.authorizing = true\n const detail = this.serialize()\n const authState = generateState()\n detail.state = authState\n let tokenInfo: ITokenInfo | undefined\n try {\n tokenInfo = await CoreEvents.Authorization.OAuth2.authorize(detail, this)\n this.authorizing = false\n if (!tokenInfo) {\n return null\n }\n if (detail.grantType === KnownGrants.implicit && tokenInfo.state !== authState) {\n return null\n }\n if (tokenInfo.accessToken && tokenInfo.accessToken !== this.config.accessToken) {\n if (tokenInfo.tokenType && tokenInfo.tokenType !== this.config.tokenType) {\n this.config.tokenType = tokenInfo.tokenType\n } else if (!tokenInfo.tokenType && this.config.tokenType !== 'Bearer') {\n this.config.tokenType = 'Bearer'\n }\n this.config.accessToken = tokenInfo.accessToken\n this.requestUpdate()\n this.notifyChange()\n }\n } catch (e) {\n const { message = 'Unknown error' } = e as Error\n this.lastErrorMessage = message\n this.authorizing = false\n throw e\n }\n return tokenInfo\n }\n\n protected handleGrantTypeSelect(e: CustomEvent): void {\n const target = e.detail && (e.detail.item as HTMLElement | undefined)\n if (!target) {\n return\n }\n const selected = target.dataset.value as string\n if (!selected) {\n return\n }\n this.updateGrantType(selected)\n }\n\n protected handleCredentialSource(e: CustomEvent): void {\n const target = e.detail && (e.detail.item as HTMLElement | undefined)\n if (!target) {\n return\n }\n const selected = target.dataset.value as string\n if (selected) {\n this.updateCredentialSource(selected)\n }\n }\n\n protected handleClientId(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateClientId(value)\n }\n\n protected handleClientSecret(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateClientSecret(value)\n }\n\n protected handleAuthorizationUri(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateAuthorizationUri(value)\n }\n\n protected handleAccessTokenUri(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateAccessTokenUri(value)\n }\n\n protected handleUsername(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateUsername(value)\n }\n\n protected handlePassword(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updatePassword(value)\n }\n\n protected handleDeliveryMethod(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined\n if (!target) {\n return\n }\n const selected = target.dataset.value as OAuth2DeliveryMethod | undefined\n if (selected) {\n this.updateDeliveryMethod(selected)\n }\n }\n\n protected handlePkceChange(e: Event): void {\n const input = e.target as CheckboxElement\n this.updatePkce(!!input.checked)\n }\n\n protected handleAssertion(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateAssertion(value)\n }\n\n protected handleDeviceCode(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateDeviceCode(value)\n }\n\n /**\n * A handler for `focus` event on a label that contains text and\n * should be copied to clipboard when user is interacting with it.\n */\n protected handleClickCopy(e: Event): void {\n const node = e.target as HTMLElement\n this.copyFromNode(node)\n }\n\n protected handlerCopyKeydown(e: KeyboardEvent): void {\n if (e.code !== 'Space') {\n return\n }\n const node = e.target as HTMLElement\n this.copyFromNode(node)\n }\n\n /**\n * Copies the content of the node to clipboard.\n */\n protected async copyFromNode(node: HTMLElement): Promise<void> {\n await navigator.clipboard.writeText(node.innerText)\n selectNode(node)\n SnackNotifications.notify('Copied to clipboard', 2000)\n }\n\n protected handleRedirectUri(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateRedirectUri(value)\n }\n\n protected handleScopeAdd(e: Event): void {\n const input = (e.currentTarget as HTMLElement).parentElement as Input\n const { value } = input\n if (!value) {\n return\n }\n this.addScope(value)\n input.value = ''\n }\n\n protected handleScopeRemove(e: Event): void {\n const target = e.currentTarget as HTMLElement\n const index = Number(target.dataset.index)\n if (Number.isNaN(index)) {\n return\n }\n this.removeScope(index)\n }\n\n override render(): TemplateResult {\n return html` ${this.renderHeader()} ${this.renderEditor()} `\n }\n\n protected renderEditor(): TemplateResult | typeof nothing {\n const { authorization } = this\n if (!authorization) {\n return nothing\n }\n return html`\n <form autocomplete=\"on\" class=\"auth-form oauth2-auth\">${this.renderFormContent()}</form>\n ${this.renderAuthAction()} ${this.renderError()} ${this.renderAuthInfo()}\n `\n }\n\n protected renderAuthAction(): TemplateResult | typeof nothing {\n const { config } = this\n const { accessToken } = config\n return accessToken ? this.renderOAuth2Token() : this.renderOAth2Authorize()\n }\n\n protected renderError(): TemplateResult | typeof nothing {\n const { lastErrorMessage } = this\n if (!lastErrorMessage) {\n return nothing\n }\n return html`<p class=\"error-message\">⚠ ${lastErrorMessage}</p>`\n }\n\n /**\n * @returns The template for the OAuth 2 token value\n */\n protected renderOAuth2Token(): TemplateResult | typeof nothing {\n const { config, authorizing } = this\n const { accessToken } = config\n return html` <div class=\"current-token\">\n <label class=\"token-label label-large\">Current token</label>\n <p class=\"token-value body-small\">\n <span @click=\"${this.handleClickCopy}\" @keydown=\"${this.handlerCopyKeydown}\">${accessToken}</span>\n </p>\n <div class=\"authorize-actions base-level\">\n <ui-filled-button\n ?disabled=\"${authorizing}\"\n class=\"auth-button\"\n data-type=\"refresh-token\"\n @click=\"${this.authorize}\"\n >Refresh access token</ui-filled-button\n >\n </div>\n </div>`\n }\n\n /**\n * @returns The template for the \"authorize\" button.\n */\n protected renderOAth2Authorize(): TemplateResult | typeof nothing {\n const { authorizing } = this\n return html` <div class=\"authorize-actions base-level\">\n <ui-filled-button ?disabled=\"${authorizing}\" class=\"auth-button\" data-type=\"get-token\" @click=\"${this.authorize}\"\n >Request access token</ui-filled-button\n >\n </div>`\n }\n\n /**\n * @returns The template for the <form> content.\n */\n protected renderFormContent(): (TemplateResult | typeof nothing)[] {\n const { baseUri } = this\n const urlType = (baseUri ? 'string' : 'url') as SupportedInputTypes\n const result: (TemplateResult | typeof nothing)[] = [\n this.renderGrantType(),\n this.renderCredentialsSource(),\n this.renderClientId(),\n this.renderClientSecret(),\n this.renderAssertion(),\n this.renderDeviceCode(),\n this.renderAuthorizationUri(urlType),\n this.renderAccessTokenUri(urlType),\n this.renderRedirect(),\n this.renderUsernameTemplate(),\n this.renderPassword(),\n this.renderScopes(),\n this.renderParamsLocation(),\n this.renderCustomProperties(),\n ]\n return result\n }\n\n /**\n * @return The template for API custom properties (annotations)\n */\n protected renderCustomProperties(): TemplateResult | typeof nothing {\n return nothing\n }\n\n /**\n * @returns The template for the OAuth 2 response type selector\n */\n protected renderGrantType(): TemplateResult | typeof nothing {\n const { config, readOnly, disabled, noGrantType, isCustomGrantType } = this\n const { grantType } = config\n const items = this.grantTypes || []\n const item = items.find((i) => i.type === grantType)\n const value = item && item.label\n return html`\n <div class=\"full-input grant-line\">\n <ui-dropdown-list verticalAlign=\"top\" @select=\"${this.handleGrantTypeSelect}\" closeOnOutsideClick>\n <ui-text-field\n readOnly\n name=\"grantType\"\n .value=\"${value || ''}\"\n label=\"Grant type\"\n ?required=\"${!noGrantType && !isCustomGrantType}\"\n ?hidden=\"${noGrantType}\"\n ?disabled=\"${disabled || readOnly}\"\n >\n <ui-icon slot=\"suffix\" icon=\"arrowDropDown\" role=\"presentation\"></ui-icon>\n </ui-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${items.map(\n (current) =>\n html`<ui-list-item role=\"menuitem\" data-value=\"${current.type}\">${current.label}</ui-list-item>`\n )}\n </ui-list>\n </ui-dropdown-list>\n\n ${this.renderPkce()}\n </div>\n `\n }\n\n /**\n * @return The template for the client credentials source.\n */\n protected renderCredentialsSource(): TemplateResult | typeof nothing {\n const { credentialSource } = this\n const credentials = this.listCredentials()\n if (credentials.length === 0) {\n return nothing\n }\n return html` <div class=\"full-input credential-source-list\">\n <ui-dropdown-list verticalAlign=\"top\" @select=\"${this.handleCredentialSource}\" closeOnOutsideClick>\n <ui-text-field readOnly name=\"credentialSource\" .value=\"${credentialSource || ''}\" label=\"Grant type\">\n <ui-icon slot=\"suffix\" icon=\"arrowDropDown\" role=\"presentation\"></ui-icon>\n </ui-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${credentials.map(\n (current) => html`<ui-list-item role=\"menuitem\" data-value=\"${current.name}\">${current.name}</ui-list-item>`\n )}\n </ui-list>\n </ui-dropdown-list>\n </div>`\n }\n\n /**\n * @returns The template for the OAuth 2 client id input.\n */\n protected renderClientId(): TemplateResult | typeof nothing {\n if (!this.hasClientId) {\n return nothing\n }\n const { config, credentialsDisabled, clientIdRequired } = this\n const { clientId } = config\n const sourceSelected = this.isSourceSelected()\n return html`\n <div class=\"full-input base-level\">\n <ui-text-field\n label=\"Client id\"\n name=\"clientId\"\n type=\"password\"\n ?required=\"${clientIdRequired}\"\n invalidText=\"Client ID is required for this response type\"\n .value=\"${live(clientId || '')}\"\n ?disabled=\"${sourceSelected ? credentialsDisabled : true}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleClientId}\"\n ></ui-text-field>\n </div>\n `\n }\n\n /**\n * @returns The template for the OAuth 2 client secret input.\n */\n protected renderClientSecret(): TemplateResult | typeof nothing {\n const { hasClientSecret } = this\n if (!hasClientSecret) {\n return nothing\n }\n const { config, credentialsDisabled, clientSecretRequired } = this\n const { clientSecret } = config\n const sourceSelected = this.isSourceSelected()\n return html`\n <div class=\"full-input base-level\">\n <ui-text-field\n label=\"Client secret\"\n name=\"clientSecret\"\n type=\"password\"\n ?required=\"${clientSecretRequired}\"\n invalidText=\"Client secret is required for this response type\"\n .value=\"${live(clientSecret || '')}\"\n ?disabled=\"${sourceSelected ? credentialsDisabled : true}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleClientSecret}\"\n ></ui-text-field>\n </div>\n `\n }\n\n /**\n * @returns The template for the assertion (JWT) input, when needed.\n */\n protected renderAssertion(): TemplateResult | typeof nothing {\n const { config } = this\n if (config.grantType !== KnownGrants.jwtBearer) {\n return nothing\n }\n return html`\n <div class=\"full-input base-level\">\n <ui-text-field\n label=\"Assertion (JWT)\"\n name=\"assertion\"\n .value=\"${live(config.assertion || '')}\"\n required\n invalidText=\"Assertion is required for this response type\"\n ?disabled=\"${this.disabled}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleAssertion}\"\n ></ui-text-field>\n </div>\n `\n }\n\n /**\n * @return The template for the device code input, when needed.\n */\n protected renderDeviceCode(): TemplateResult | typeof nothing {\n const { config } = this\n if (config.grantType !== KnownGrants.deviceCode) {\n return nothing\n }\n return html`\n <div class=\"full-input base-level\">\n <ui-text-field\n label=\"Device code\"\n name=\"deviceCode\"\n .value=\"${live(config.deviceCode || '')}\"\n required\n invalidText=\"Device code is required for this response type\"\n ?disabled=\"${this.disabled}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleDeviceCode}\"\n ></ui-text-field>\n </div>\n `\n }\n\n /**\n * @param urlType The input type to render\n * @returns The template for the authorization URI input\n */\n protected renderAuthorizationUri(urlType: SupportedInputTypes): TemplateResult | typeof nothing {\n if (!this.authorizationUriRendered) {\n return nothing\n }\n const { config, isCustomGrantType } = this\n const { authorizationUri } = config\n return html`\n <div class=\"full-input base-level\">\n <ui-text-field\n label=\"Authorization URI\"\n name=\"authorizationUri\"\n .value=\"${live(authorizationUri || '')}\"\n type=${urlType}\n ?required=\"${!isCustomGrantType}\"\n invalidText=\"Authorization URI is required for this response type\"\n ?disabled=\"${this.disabled}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleAuthorizationUri}\"\n ></ui-text-field>\n </div>\n `\n }\n\n /**\n * @param urlType The input type to render\n * @returns The template for the access token URI input\n */\n protected renderAccessTokenUri(urlType: SupportedInputTypes): TemplateResult | typeof nothing {\n if (!this.accessTokenUriRendered) {\n return nothing\n }\n const { config, isCustomGrantType } = this\n const { accessTokenUri } = config\n return html`\n <div class=\"full-input base-level\">\n <ui-text-field\n label=\"Access token URI\"\n name=\"accessTokenUri\"\n .value=\"${live(accessTokenUri || '')}\"\n type=${urlType}\n ?required=\"${!isCustomGrantType}\"\n invalidText=\"Access token URI is required for this response type\"\n ?disabled=\"${this.disabled}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleAccessTokenUri}\"\n ></ui-text-field>\n </div>\n `\n }\n\n /**\n * @returns The template for the user name input\n */\n protected renderUsernameTemplate(): TemplateResult | typeof nothing {\n if (!this.passwordRendered) {\n return nothing\n }\n const { config, isCustomGrantType } = this\n const { username } = config\n return html`\n <div class=\"full-input base-level\">\n <ui-text-field\n label=\"Username\"\n name=\"username\"\n .value=\"${live(username || '')}\"\n ?required=\"${!isCustomGrantType}\"\n invalidText=\"User name is required for this response type\"\n ?disabled=\"${this.disabled}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleUsername}\"\n ></ui-text-field>\n </div>\n `\n }\n\n /**\n * @returns The template for the user password input\n */\n protected renderPassword(): TemplateResult | typeof nothing {\n if (!this.passwordRendered) {\n return nothing\n }\n const { config, isCustomGrantType } = this\n const { password } = config\n return html`\n <div class=\"full-input base-level\">\n <ui-text-field\n label=\"Password\"\n name=\"password\"\n .value=\"${live(password || '')}\"\n type=\"password\"\n ?required=\"${!isCustomGrantType}\"\n invalidText=\"Password is required for this response type\"\n ?disabled=\"${this.disabled}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handlePassword}\"\n ></ui-text-field>\n </div>\n `\n }\n\n /**\n * For client_credentials grant this renders the dropdown with an option to select\n * where the credentials should be used. Current values:\n * - authorization header\n * - message body\n */\n protected renderParamsLocation(): TemplateResult | typeof nothing {\n const { config } = this\n const { grantType, deliveryMethod } = config\n if (grantType !== KnownGrants.clientCredentials) {\n return nothing\n }\n const { disabled, readOnly } = this\n return html` <div class=\"full-input delivery-method-line\">\n <ui-dropdown-list verticalAlign=\"top\" @select=\"${this.handleDeliveryMethod}\" closeOnOutsideClick>\n <ui-text-field\n readOnly\n name=\"deliveryMethod\"\n .value=\"${LocationLabels[deliveryMethod as OAuth2DeliveryMethod] || ''}\"\n label=\"Credentials location\"\n ?disabled=\"${disabled || readOnly}\"\n data-selected=\"${deliveryMethod || ''}\"\n >\n <ui-icon slot=\"suffix\" icon=\"arrowDropDown\" role=\"presentation\"></ui-icon>\n </ui-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" data-value=\"header\">${LocationLabels.header}</ui-list-item>\n <ui-list-item role=\"menuitem\" data-value=\"body\">${LocationLabels.body}</ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n </div>`\n }\n\n /**\n * @returns The template for the PKCE option of the OAuth 2 extension.\n */\n protected renderPkce(): TemplateResult | typeof nothing {\n const { config, noPkce } = this\n const { grantType, pkce } = config\n if (noPkce || grantType !== KnownGrants.code) {\n return nothing\n }\n return html`\n <label class=\"label-large pkce\">\n <ui-checkbox\n .checked=\"${!!pkce}\"\n @change=\"${this.handlePkceChange}\"\n name=\"pkce\"\n aria-label=\"Use PKCE extension\"\n ></ui-checkbox>\n Use PKCE extension\n </label>\n `\n }\n\n /**\n * @returns The template for the OAuth 2 redirect URI label\n */\n protected renderRedirect(): TemplateResult | typeof nothing {\n const { hasRedirectUri } = this\n if (!hasRedirectUri) {\n return nothing\n }\n const { defaultRedirectUri = '', config } = this\n const { redirectUri = defaultRedirectUri } = config\n return html`\n <div class=\"full-input base-level\">\n <ui-text-field\n label=\"Redirect URI\"\n name=\"redirectUri\"\n .value=\"${live(redirectUri)}\"\n type=\"url\"\n required\n invalidText=\"Redirect URI is required for this response type\"\n ?disabled=\"${this.disabled}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleRedirectUri}\"\n ></ui-text-field>\n </div>\n `\n }\n\n protected renderScopes(): TemplateResult | typeof nothing {\n const { config } = this\n const { scopes = [] } = config\n\n return html`\n <section aria-label=\"Scopes\">\n <div class=\"label-large scopes-label\">\n Scopes\n <span class=\"badge large-container\">${scopes.length}</span>\n </div>\n\n <div class=\"full-input base-level\">\n <ui-text-field label=\"Scope value\" name=\"scope\" ?disabled=\"${this.disabled}\" ?readOnly=\"${this.readOnly}\">\n <ui-icon-button\n type=\"outlined\"\n slot=\"suffix\"\n aria-label=\"Add value\"\n title=\"Click this button to accept the value\"\n @click=\"${this.handleScopeAdd}\"\n >\n <ui-icon icon=\"add\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n </ui-text-field>\n </div>\n ${this.renderScopesList(scopes)}\n </section>\n `\n }\n\n protected renderScopesList(scopes: string[]): TemplateResult | typeof nothing {\n if (!scopes || !scopes.length) {\n return nothing\n }\n return html`\n <ui-list class=\"scopes-list base-level\" role=\"list\">\n ${scopes.map(\n (item, index) => html`\n <ui-list-item role=\"listitem\">\n ${item}\n <ui-icon-button\n slot=\"end\"\n aria-label=\"Remove scope\"\n title=\"Removes the scope from the list\"\n @click=\"${this.handleScopeRemove}\"\n data-index=\"${index}\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n </ui-list-item>\n `\n )}\n </ui-list>\n `\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"OAuth2Authorization.js","sourceRoot":"","sources":["../../../../../src/elements/authorization/ui/OAuth2Authorization.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CUSTOM_CREDENTIALS,\n generateState,\n readUrlValue,\n validateRedirectUri,\n} from '@api-client/core/authorization/lib/Utils.js'\nimport * as KnownGrants from '@api-client/core/authorization/lib/KnownGrants.js'\nimport type { IOAuth2Authorization, IOauth2GrantType, ITokenInfo } from '@api-client/core/models/Authorization.js'\nimport type { OAuth2DeliveryMethod } from '@api-client/core/models/Authorization.js'\nimport { Events as CoreEvents } from '@api-client/core/events/Events.js'\nimport { html, nothing, TemplateResult } from 'lit'\nimport { property, state } from 'lit/decorators.js'\nimport { live } from 'lit/directives/live.js'\nimport { CredentialsInfo, Oauth2Credentials } from '../types.js'\nimport { Authorization } from './Authorization.js'\nimport Input from '../../../md/input/Input.js'\nimport { SupportedInputTypes } from '../../../types/input.js'\nimport CheckboxElement from '../../../md/checkbox/internals/CheckboxElement.js'\nimport { selectNode } from '../Utils.js'\nimport { SnackNotifications } from '../../../md/notification/SnackNotifications.js'\nimport '../../../md/button/ui-filled-button.js'\nimport '../../../md/text-field/ui-filled-text-field.js'\nimport '../../../md/list/ui-list.js'\nimport '../../../md/list/ui-list-item.js'\nimport '../../../md/dropdown-list/ui-dropdown-list.js'\nimport '../../../md/icon-button/ui-icon-button.js'\nimport '../../../md/checkbox/ui-checkbox.js'\nimport '../../../md/icons/ui-icon.js'\n\n/**\n * List of OAuth 2.0 default response types.\n * This list can be extended by custom grants\n *\n * @returns List of objects with `type` and `label` properties.\n */\nexport const oauth2GrantTypes: IOauth2GrantType[] = [\n {\n type: KnownGrants.implicit,\n label: 'Implicit',\n },\n {\n type: KnownGrants.code,\n label: 'Authorization code',\n },\n {\n type: KnownGrants.clientCredentials,\n label: 'Client credentials',\n },\n {\n type: KnownGrants.password,\n label: 'Password',\n },\n {\n type: KnownGrants.deviceCode,\n label: 'Device code',\n },\n {\n type: KnownGrants.jwtBearer,\n label: 'JWT Bearer',\n },\n]\n\nconst LocationLabels: Record<OAuth2DeliveryMethod, string> = {\n body: 'Message body',\n header: 'Authorization header',\n query: 'Query string',\n}\n\nexport default class OAuth2Authorization extends Authorization {\n get config(): IOAuth2Authorization {\n const { authorization } = this\n if (!authorization) {\n return {}\n }\n if (!authorization.config) {\n authorization.config = {} as IOAuth2Authorization\n }\n return authorization.config as IOAuth2Authorization\n }\n\n /**\n * @return Computed value, true if the response type is a custom definition.\n */\n get isCustomGrantType(): boolean {\n const { grantType } = this.config\n return (\n !!grantType &&\n ![\n KnownGrants.implicit,\n KnownGrants.code,\n KnownGrants.clientCredentials,\n KnownGrants.password,\n KnownGrants.jwtBearer,\n KnownGrants.deviceCode,\n ].includes(grantType)\n )\n }\n\n /**\n * @returns true when the client id field is required.\n */\n get clientIdRequired(): boolean {\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n return ![KnownGrants.clientCredentials, KnownGrants.password, KnownGrants.deviceCode].includes(grantType)\n }\n\n /**\n * @returns true when the client id field is rendered.\n */\n get hasClientId(): boolean {\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n return ![KnownGrants.jwtBearer].includes(grantType)\n }\n\n /**\n * @returns true when the client secret field is rendered.\n */\n get hasClientSecret(): boolean {\n const { isCustomGrantType } = this\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n if (isCustomGrantType) {\n return isCustomGrantType\n }\n return [KnownGrants.code, KnownGrants.clientCredentials, KnownGrants.password, KnownGrants.deviceCode].includes(\n grantType\n )\n }\n\n /**\n * @returns true when the client secret field is required.\n */\n get clientSecretRequired(): boolean {\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n return [KnownGrants.code].includes(grantType)\n }\n\n /**\n * @returns true when the authorization URI field is rendered.\n */\n get authorizationUriRendered(): boolean {\n const { isCustomGrantType } = this\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n return isCustomGrantType || [KnownGrants.implicit, KnownGrants.code].includes(grantType)\n }\n\n /**\n * @returns true when the token URI field is rendered.\n */\n get accessTokenUriRendered(): boolean {\n const { isCustomGrantType } = this\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n return (\n isCustomGrantType ||\n [\n KnownGrants.clientCredentials,\n KnownGrants.code,\n KnownGrants.password,\n KnownGrants.jwtBearer,\n KnownGrants.deviceCode,\n ].includes(grantType)\n )\n }\n\n /**\n * @returns true when the username and password fields are rendered.\n */\n get passwordRendered(): boolean {\n const { isCustomGrantType } = this\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n return isCustomGrantType || [KnownGrants.password].includes(grantType)\n }\n\n /**\n * @returns True when the current `grantType` can support redirect URI.\n */\n get hasRedirectUri(): boolean {\n const { grantType } = this.config\n if (!grantType) {\n return false\n }\n return [KnownGrants.implicit, KnownGrants.code].includes(grantType)\n }\n\n /**\n * Currently available grant types.\n */\n @state() accessor grantTypes: IOauth2GrantType[] | undefined = oauth2GrantTypes\n\n /**\n * The definition of client credentials to be rendered for a given grant type.\n * When set on the editor it renders a drop down where the user can choose from predefined\n * credentials (client id & secret).\n *\n */\n @state() accessor credentialsSource: Oauth2Credentials[] | undefined\n\n /**\n * Selected credential source\n */\n @state() accessor credentialSource: string | undefined\n\n /**\n * The default redirect URI to use if not define din the config.\n * @attribute\n */\n @property({ type: String }) accessor defaultRedirectUri: string | undefined\n\n @property({ type: Boolean }) accessor credentialsDisabled = this.disabled\n\n /**\n * The base URI to use to construct the correct URLs to the authorization endpoints.\n *\n * When the paths are relative then base URI is added to the path.\n * Relative paths must start with '/'.\n *\n * Note, URL processing is happening internally in the component. The produced authorize event\n * will have base URI already applied.\n */\n @property({ type: String }) accessor baseUri: string | undefined\n\n /**\n * The error message returned by the authorization library.\n * It renders error dialog when an error ocurred.\n * It is automatically cleared when the user request the token again.\n */\n @state() accessor lastErrorMessage: string | undefined\n\n /**\n * When this property is set then the PKCE option is not rendered for the\n * `authorization_code`. This is mainly meant to be used by the `api-authorization-method`\n * to keep this control disabled and override generated settings when the API spec\n * says that the PKCE is supported.\n * @attribute\n */\n @property({ type: Boolean }) accessor noPkce = false\n\n /**\n * If set, the response type selector is hidden from the UI.\n * @attribute\n */\n @property({ type: Boolean }) accessor noGrantType = false\n\n /**\n * @returns The list of client credentials to render in the credentials selector.\n */\n listCredentials(): CredentialsInfo[] {\n const { credentialsSource, config } = this\n const { grantType } = config\n let credentials: CredentialsInfo[] = []\n if (credentialsSource && credentialsSource.length > 0) {\n const grantTypeCredentials = credentialsSource.find((s) => s.grantType === grantType)\n if (grantTypeCredentials) {\n const customCredential = { name: CUSTOM_CREDENTIALS }\n credentials = [customCredential].concat(grantTypeCredentials.credentials)\n }\n }\n return credentials\n }\n\n /**\n * Sets the client credentials after updating them from the credentials source selector.\n * @param clientId The client id to set on the editor.\n * @param clientSecret The client secret to set on the editor.\n * @param disabled Whether the credentials input is disabled.\n */\n updateCredentials(clientId: string, clientSecret: string, disabled: boolean): void {\n const { config } = this\n config.clientId = clientId\n config.clientSecret = clientSecret\n this.credentialsDisabled = disabled\n this.requestUpdate()\n }\n\n /**\n * This triggers change in the client id & secret of the editor after selecting\n * a credentials source by the user.\n *\n * @param selectedSource The name of the selected credentials source to select.\n */\n updateClientCredentials(selectedSource: string): void {\n const { credentialsSource } = this\n if (!credentialsSource) {\n return\n }\n if (selectedSource) {\n const credentials = this.listCredentials()\n const credential = credentials.find((c) => c.name === selectedSource)\n if (credential) {\n this.updateCredentials(\n credential.clientId || '',\n credential.clientSecret || '',\n credential.name !== CUSTOM_CREDENTIALS\n )\n }\n } else {\n this.updateCredentials('', '', true)\n }\n }\n\n /**\n * @returns true when a credentials source is being selected.\n */\n isSourceSelected(): boolean {\n const { credentialSource } = this\n const credentials = this.listCredentials()\n if (credentials.length > 0) {\n if (!credentialSource) {\n return false\n }\n }\n return true\n }\n\n /**\n * Adds a scope value. If the value has a comma then it is split.\n * @param scope The scope string to add.\n */\n addScope(scope: string): void {\n const { config } = this\n if (!Array.isArray(config.scopes)) {\n config.scopes = []\n }\n const values = scope.split(',').filter((i) => !!i.trim())\n config.scopes = config.scopes.concat(values)\n this.requestUpdate()\n this.notifyChange()\n }\n\n removeScope(index: number): void {\n const { config } = this\n if (!Array.isArray(config.scopes)) {\n return\n }\n if (config.scopes[index] === undefined) {\n return\n }\n config.scopes.splice(index, 1)\n this.requestUpdate()\n this.notifyChange()\n }\n\n /**\n * Selects a grant type. It has no effect when the type is already selected.\n * @param value The grant type value to use.\n */\n updateGrantType(value: string): void {\n const { config, credentialSource } = this\n const { grantType } = config\n if (config.grantType === value) {\n return\n }\n if (grantType !== value && credentialSource) {\n this.credentialSource = undefined\n this.credentialsDisabled = this.disabled\n }\n config.grantType = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n /**\n * It does nothing when the value is already set.\n * @param value The credentials source to use\n */\n updateCredentialSource(value: string): void {\n if (this.credentialSource === value) {\n return\n }\n this.updateClientCredentials(value)\n this.credentialSource = value\n this.notifyChange()\n this.requestUpdate()\n }\n\n updateClientId(value?: string): void {\n const { config } = this\n if (config.clientId === value) {\n return\n }\n config.clientId = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updateClientSecret(value?: string): void {\n const { config } = this\n if (config.clientSecret === value) {\n return\n }\n config.clientSecret = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updateAuthorizationUri(value?: string): void {\n const { config } = this\n if (config.authorizationUri === value) {\n return\n }\n config.authorizationUri = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updateAccessTokenUri(value?: string): void {\n const { config } = this\n if (config.accessTokenUri === value) {\n return\n }\n config.accessTokenUri = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updateUsername(value?: string): void {\n const { config } = this\n if (config.username === value) {\n return\n }\n config.username = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updatePassword(value?: string): void {\n const { config } = this\n if (config.password === value) {\n return\n }\n config.password = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updateDeliveryMethod(value: OAuth2DeliveryMethod): void {\n const { config } = this\n if (config.deliveryMethod === value) {\n return\n }\n config.deliveryMethod = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updatePkce(enabled: boolean): void {\n const { config } = this\n if (config.pkce !== enabled) {\n config.pkce = enabled\n this.notifyChange()\n }\n }\n\n updateAssertion(value?: string): void {\n const { config } = this\n if (config.assertion === value) {\n return\n }\n config.assertion = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updateDeviceCode(value?: string): void {\n const { config } = this\n if (config.deviceCode === value) {\n return\n }\n config.deviceCode = value\n this.requestUpdate()\n this.notifyChange()\n }\n\n updateRedirectUri(value: string): void {\n const { defaultRedirectUri = '', config } = this\n const { redirectUri = defaultRedirectUri } = config\n\n const isValid = validateRedirectUri(value)\n if (!isValid) {\n if (config.redirectUri !== defaultRedirectUri) {\n config.redirectUri = defaultRedirectUri\n this.requestUpdate()\n this.notifyChange()\n }\n return\n }\n if (value === redirectUri) {\n delete config.redirectUri\n } else {\n config.redirectUri = value\n }\n this.requestUpdate()\n this.notifyChange()\n }\n\n /**\n * Serialized input values\n * @returns An object with user input\n */\n serialize(): IOAuth2Authorization {\n const { config, baseUri } = this\n const { grantType, tokenType = 'Bearer' } = config\n const detail: IOAuth2Authorization = {\n grantType,\n tokenType,\n clientId: config.clientId,\n accessToken: config.accessToken || '',\n scopes: config.scopes,\n deliveryMethod: config.deliveryMethod || 'header',\n deliveryName: config.deliveryName || 'authorization',\n }\n\n switch (grantType) {\n case KnownGrants.implicit:\n // The browser flow.\n detail.authorizationUri = readUrlValue(config.authorizationUri, baseUri)\n detail.redirectUri = readUrlValue(config.redirectUri, baseUri)\n break\n case KnownGrants.code:\n // The server flow.\n detail.authorizationUri = readUrlValue(config.authorizationUri, baseUri)\n detail.clientSecret = config.clientSecret\n detail.accessTokenUri = readUrlValue(config.accessTokenUri, baseUri)\n detail.redirectUri = readUrlValue(config.redirectUri, baseUri)\n detail.pkce = config.pkce\n break\n case 'application':\n case KnownGrants.clientCredentials:\n // The server flow.\n detail.accessTokenUri = readUrlValue(config.accessTokenUri, baseUri)\n detail.clientSecret = config.clientSecret\n break\n case KnownGrants.password:\n // The server flow.\n detail.username = config.username\n detail.password = config.password\n detail.accessTokenUri = readUrlValue(config.accessTokenUri, baseUri)\n detail.clientSecret = config.clientSecret\n break\n case KnownGrants.jwtBearer:\n // https://datatracker.ietf.org/doc/html/rfc7523#section-2.1\n detail.assertion = config.assertion\n detail.accessTokenUri = readUrlValue(config.accessTokenUri, baseUri)\n delete detail.clientId\n break\n case KnownGrants.deviceCode:\n // https://datatracker.ietf.org/doc/html/rfc8628#section-3.4\n detail.deviceCode = config.deviceCode\n detail.accessTokenUri = readUrlValue(config.accessTokenUri, baseUri)\n detail.clientSecret = config.clientSecret\n break\n default:\n // Custom response type.\n detail.authorizationUri = readUrlValue(config.authorizationUri, baseUri)\n detail.clientSecret = config.clientSecret\n detail.accessTokenUri = readUrlValue(config.accessTokenUri, baseUri)\n detail.redirectUri = readUrlValue(config.redirectUri, baseUri)\n detail.username = config.username\n detail.password = config.password\n break\n }\n return detail\n }\n\n override checkValidity(): boolean {\n const { config } = this\n const {\n grantType,\n clientId,\n authorizationUri,\n clientSecret,\n accessTokenUri,\n password,\n username,\n assertion,\n deviceCode,\n } = config\n if (!grantType) {\n return false\n }\n switch (grantType) {\n case KnownGrants.implicit:\n return !!clientId && !!authorizationUri\n case KnownGrants.code:\n return !!clientId && !!authorizationUri && !!clientSecret && !!accessTokenUri\n case KnownGrants.clientCredentials:\n return !!accessTokenUri\n case KnownGrants.password:\n return !!accessTokenUri && !!password && !!username\n case KnownGrants.jwtBearer:\n return !!accessTokenUri && !!assertion\n case KnownGrants.deviceCode:\n return !!accessTokenUri && !!deviceCode\n default:\n return !!accessTokenUri\n }\n }\n\n override async authorize(): Promise<ITokenInfo | null> {\n if (this.lastErrorMessage) {\n this.lastErrorMessage = undefined\n }\n\n const validationResult = this.checkValidity()\n if (!validationResult) {\n return null\n }\n\n this.authorizing = true\n const detail = this.serialize()\n const authState = generateState()\n detail.state = authState\n let tokenInfo: ITokenInfo | undefined\n try {\n tokenInfo = await CoreEvents.Authorization.OAuth2.authorize(detail, this)\n this.authorizing = false\n if (!tokenInfo) {\n return null\n }\n if (detail.grantType === KnownGrants.implicit && tokenInfo.state !== authState) {\n return null\n }\n if (tokenInfo.accessToken && tokenInfo.accessToken !== this.config.accessToken) {\n if (tokenInfo.tokenType && tokenInfo.tokenType !== this.config.tokenType) {\n this.config.tokenType = tokenInfo.tokenType\n } else if (!tokenInfo.tokenType && this.config.tokenType !== 'Bearer') {\n this.config.tokenType = 'Bearer'\n }\n this.config.accessToken = tokenInfo.accessToken\n this.requestUpdate()\n this.notifyChange()\n }\n } catch (e) {\n const { message = 'Unknown error' } = e as Error\n this.lastErrorMessage = message\n this.authorizing = false\n throw e\n }\n return tokenInfo\n }\n\n protected handleGrantTypeSelect(e: CustomEvent): void {\n const target = e.detail && (e.detail.item as HTMLElement | undefined)\n if (!target) {\n return\n }\n const selected = target.dataset.value as string\n if (!selected) {\n return\n }\n this.updateGrantType(selected)\n }\n\n protected handleCredentialSource(e: CustomEvent): void {\n const target = e.detail && (e.detail.item as HTMLElement | undefined)\n if (!target) {\n return\n }\n const selected = target.dataset.value as string\n if (selected) {\n this.updateCredentialSource(selected)\n }\n }\n\n protected handleClientId(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateClientId(value)\n }\n\n protected handleClientSecret(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateClientSecret(value)\n }\n\n protected handleAuthorizationUri(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateAuthorizationUri(value)\n }\n\n protected handleAccessTokenUri(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateAccessTokenUri(value)\n }\n\n protected handleUsername(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateUsername(value)\n }\n\n protected handlePassword(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updatePassword(value)\n }\n\n protected handleDeliveryMethod(e: CustomEvent): void {\n const target = e.detail.item as HTMLElement | undefined\n if (!target) {\n return\n }\n const selected = target.dataset.value as OAuth2DeliveryMethod | undefined\n if (selected) {\n this.updateDeliveryMethod(selected)\n }\n }\n\n protected handlePkceChange(e: Event): void {\n const input = e.target as CheckboxElement\n this.updatePkce(!!input.checked)\n }\n\n protected handleAssertion(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateAssertion(value)\n }\n\n protected handleDeviceCode(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateDeviceCode(value)\n }\n\n /**\n * A handler for `focus` event on a label that contains text and\n * should be copied to clipboard when user is interacting with it.\n */\n protected handleClickCopy(e: Event): void {\n const node = e.target as HTMLElement\n this.copyFromNode(node)\n }\n\n protected handlerCopyKeydown(e: KeyboardEvent): void {\n if (e.code !== 'Space') {\n return\n }\n const node = e.target as HTMLElement\n this.copyFromNode(node)\n }\n\n /**\n * Copies the content of the node to clipboard.\n */\n protected async copyFromNode(node: HTMLElement): Promise<void> {\n await navigator.clipboard.writeText(node.innerText)\n selectNode(node)\n SnackNotifications.notify('Copied to clipboard', 2000)\n }\n\n protected handleRedirectUri(e: Event): void {\n const input = e.target as Input\n const { value } = input\n this.updateRedirectUri(value)\n }\n\n protected handleScopeAdd(e: Event): void {\n const input = (e.currentTarget as HTMLElement).parentElement as Input\n const { value } = input\n if (!value) {\n return\n }\n this.addScope(value)\n input.value = ''\n }\n\n protected handleScopeRemove(e: Event): void {\n const target = e.currentTarget as HTMLElement\n const index = Number(target.dataset.index)\n if (Number.isNaN(index)) {\n return\n }\n this.removeScope(index)\n }\n\n override render(): TemplateResult {\n return html` ${this.renderHeader()} ${this.renderEditor()} `\n }\n\n protected renderEditor(): TemplateResult | typeof nothing {\n const { authorization } = this\n if (!authorization) {\n return nothing\n }\n return html`\n <form autocomplete=\"on\" class=\"auth-form oauth2-auth\">${this.renderFormContent()}</form>\n ${this.renderAuthAction()} ${this.renderError()} ${this.renderAuthInfo()}\n `\n }\n\n protected renderAuthAction(): TemplateResult | typeof nothing {\n const { config } = this\n const { accessToken } = config\n return accessToken ? this.renderOAuth2Token() : this.renderOAth2Authorize()\n }\n\n protected renderError(): TemplateResult | typeof nothing {\n const { lastErrorMessage } = this\n if (!lastErrorMessage) {\n return nothing\n }\n return html`<p class=\"error-message\">⚠ ${lastErrorMessage}</p>`\n }\n\n /**\n * @returns The template for the OAuth 2 token value\n */\n protected renderOAuth2Token(): TemplateResult | typeof nothing {\n const { config, authorizing } = this\n const { accessToken } = config\n return html` <div class=\"current-token\">\n <label class=\"token-label label-large\">Current token</label>\n <p class=\"token-value body-small\">\n <span @click=\"${this.handleClickCopy}\" @keydown=\"${this.handlerCopyKeydown}\">${accessToken}</span>\n </p>\n <div class=\"authorize-actions base-level\">\n <ui-filled-button\n ?disabled=\"${authorizing}\"\n class=\"auth-button\"\n data-type=\"refresh-token\"\n @click=\"${this.authorize}\"\n >Refresh access token</ui-filled-button\n >\n </div>\n </div>`\n }\n\n /**\n * @returns The template for the \"authorize\" button.\n */\n protected renderOAth2Authorize(): TemplateResult | typeof nothing {\n const { authorizing } = this\n return html` <div class=\"authorize-actions base-level\">\n <ui-filled-button ?disabled=\"${authorizing}\" class=\"auth-button\" data-type=\"get-token\" @click=\"${this.authorize}\"\n >Request access token</ui-filled-button\n >\n </div>`\n }\n\n /**\n * @returns The template for the <form> content.\n */\n protected renderFormContent(): (TemplateResult | typeof nothing)[] {\n const { baseUri } = this\n const urlType = (baseUri ? 'string' : 'url') as SupportedInputTypes\n const result: (TemplateResult | typeof nothing)[] = [\n this.renderGrantType(),\n this.renderCredentialsSource(),\n this.renderClientId(),\n this.renderClientSecret(),\n this.renderAssertion(),\n this.renderDeviceCode(),\n this.renderAuthorizationUri(urlType),\n this.renderAccessTokenUri(urlType),\n this.renderRedirect(),\n this.renderUsernameTemplate(),\n this.renderPassword(),\n this.renderScopes(),\n this.renderParamsLocation(),\n this.renderCustomProperties(),\n ]\n return result\n }\n\n /**\n * @return The template for API custom properties (annotations)\n */\n protected renderCustomProperties(): TemplateResult | typeof nothing {\n return nothing\n }\n\n /**\n * @returns The template for the OAuth 2 response type selector\n */\n protected renderGrantType(): TemplateResult | typeof nothing {\n const { config, readOnly, disabled, noGrantType, isCustomGrantType } = this\n const { grantType } = config\n const items = this.grantTypes || []\n const item = items.find((i) => i.type === grantType)\n const value = item && item.label\n return html`\n <div class=\"full-input grant-line\">\n <ui-dropdown-list verticalAlign=\"top\" @select=\"${this.handleGrantTypeSelect}\" closeOnOutsideClick>\n <ui-filled-text-field\n readOnly\n name=\"grantType\"\n .value=\"${value || ''}\"\n label=\"Grant type\"\n ?required=\"${!noGrantType && !isCustomGrantType}\"\n ?hidden=\"${noGrantType}\"\n ?disabled=\"${disabled || readOnly}\"\n >\n <ui-icon slot=\"suffix\" icon=\"arrowDropDown\" role=\"presentation\"></ui-icon>\n </ui-filled-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${items.map(\n (current) =>\n html`<ui-list-item role=\"menuitem\" data-value=\"${current.type}\">${current.label}</ui-list-item>`\n )}\n </ui-list>\n </ui-dropdown-list>\n\n ${this.renderPkce()}\n </div>\n `\n }\n\n /**\n * @return The template for the client credentials source.\n */\n protected renderCredentialsSource(): TemplateResult | typeof nothing {\n const { credentialSource } = this\n const credentials = this.listCredentials()\n if (credentials.length === 0) {\n return nothing\n }\n return html` <div class=\"full-input credential-source-list\">\n <ui-dropdown-list verticalAlign=\"top\" @select=\"${this.handleCredentialSource}\" closeOnOutsideClick>\n <ui-filled-text-field readOnly name=\"credentialSource\" .value=\"${credentialSource || ''}\" label=\"Grant type\">\n <ui-icon slot=\"suffix\" icon=\"arrowDropDown\" role=\"presentation\"></ui-icon>\n </ui-filled-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${credentials.map(\n (current) => html`<ui-list-item role=\"menuitem\" data-value=\"${current.name}\">${current.name}</ui-list-item>`\n )}\n </ui-list>\n </ui-dropdown-list>\n </div>`\n }\n\n /**\n * @returns The template for the OAuth 2 client id input.\n */\n protected renderClientId(): TemplateResult | typeof nothing {\n if (!this.hasClientId) {\n return nothing\n }\n const { config, credentialsDisabled, clientIdRequired } = this\n const { clientId } = config\n const sourceSelected = this.isSourceSelected()\n return html`\n <div class=\"full-input base-level\">\n <ui-filled-text-field\n label=\"Client id\"\n name=\"clientId\"\n type=\"password\"\n ?required=\"${clientIdRequired}\"\n invalidText=\"Client ID is required for this response type\"\n .value=\"${live(clientId || '')}\"\n ?disabled=\"${sourceSelected ? credentialsDisabled : true}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleClientId}\"\n ></ui-filled-text-field>\n </div>\n `\n }\n\n /**\n * @returns The template for the OAuth 2 client secret input.\n */\n protected renderClientSecret(): TemplateResult | typeof nothing {\n const { hasClientSecret } = this\n if (!hasClientSecret) {\n return nothing\n }\n const { config, credentialsDisabled, clientSecretRequired } = this\n const { clientSecret } = config\n const sourceSelected = this.isSourceSelected()\n return html`\n <div class=\"full-input base-level\">\n <ui-filled-text-field\n label=\"Client secret\"\n name=\"clientSecret\"\n type=\"password\"\n ?required=\"${clientSecretRequired}\"\n invalidText=\"Client secret is required for this response type\"\n .value=\"${live(clientSecret || '')}\"\n ?disabled=\"${sourceSelected ? credentialsDisabled : true}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleClientSecret}\"\n ></ui-filled-text-field>\n </div>\n `\n }\n\n /**\n * @returns The template for the assertion (JWT) input, when needed.\n */\n protected renderAssertion(): TemplateResult | typeof nothing {\n const { config } = this\n if (config.grantType !== KnownGrants.jwtBearer) {\n return nothing\n }\n return html`\n <div class=\"full-input base-level\">\n <ui-filled-text-field\n label=\"Assertion (JWT)\"\n name=\"assertion\"\n .value=\"${live(config.assertion || '')}\"\n required\n invalidText=\"Assertion is required for this response type\"\n ?disabled=\"${this.disabled}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleAssertion}\"\n ></ui-filled-text-field>\n </div>\n `\n }\n\n /**\n * @return The template for the device code input, when needed.\n */\n protected renderDeviceCode(): TemplateResult | typeof nothing {\n const { config } = this\n if (config.grantType !== KnownGrants.deviceCode) {\n return nothing\n }\n return html`\n <div class=\"full-input base-level\">\n <ui-filled-text-field\n label=\"Device code\"\n name=\"deviceCode\"\n .value=\"${live(config.deviceCode || '')}\"\n required\n invalidText=\"Device code is required for this response type\"\n ?disabled=\"${this.disabled}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleDeviceCode}\"\n ></ui-filled-text-field>\n </div>\n `\n }\n\n /**\n * @param urlType The input type to render\n * @returns The template for the authorization URI input\n */\n protected renderAuthorizationUri(urlType: SupportedInputTypes): TemplateResult | typeof nothing {\n if (!this.authorizationUriRendered) {\n return nothing\n }\n const { config, isCustomGrantType } = this\n const { authorizationUri } = config\n return html`\n <div class=\"full-input base-level\">\n <ui-filled-text-field\n label=\"Authorization URI\"\n name=\"authorizationUri\"\n .value=\"${live(authorizationUri || '')}\"\n type=${urlType}\n ?required=\"${!isCustomGrantType}\"\n invalidText=\"Authorization URI is required for this response type\"\n ?disabled=\"${this.disabled}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleAuthorizationUri}\"\n ></ui-filled-text-field>\n </div>\n `\n }\n\n /**\n * @param urlType The input type to render\n * @returns The template for the access token URI input\n */\n protected renderAccessTokenUri(urlType: SupportedInputTypes): TemplateResult | typeof nothing {\n if (!this.accessTokenUriRendered) {\n return nothing\n }\n const { config, isCustomGrantType } = this\n const { accessTokenUri } = config\n return html`\n <div class=\"full-input base-level\">\n <ui-filled-text-field\n label=\"Access token URI\"\n name=\"accessTokenUri\"\n .value=\"${live(accessTokenUri || '')}\"\n type=${urlType}\n ?required=\"${!isCustomGrantType}\"\n invalidText=\"Access token URI is required for this response type\"\n ?disabled=\"${this.disabled}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleAccessTokenUri}\"\n ></ui-filled-text-field>\n </div>\n `\n }\n\n /**\n * @returns The template for the user name input\n */\n protected renderUsernameTemplate(): TemplateResult | typeof nothing {\n if (!this.passwordRendered) {\n return nothing\n }\n const { config, isCustomGrantType } = this\n const { username } = config\n return html`\n <div class=\"full-input base-level\">\n <ui-filled-text-field\n label=\"Username\"\n name=\"username\"\n .value=\"${live(username || '')}\"\n ?required=\"${!isCustomGrantType}\"\n invalidText=\"User name is required for this response type\"\n ?disabled=\"${this.disabled}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleUsername}\"\n ></ui-filled-text-field>\n </div>\n `\n }\n\n /**\n * @returns The template for the user password input\n */\n protected renderPassword(): TemplateResult | typeof nothing {\n if (!this.passwordRendered) {\n return nothing\n }\n const { config, isCustomGrantType } = this\n const { password } = config\n return html`\n <div class=\"full-input base-level\">\n <ui-filled-text-field\n label=\"Password\"\n name=\"password\"\n .value=\"${live(password || '')}\"\n type=\"password\"\n ?required=\"${!isCustomGrantType}\"\n invalidText=\"Password is required for this response type\"\n ?disabled=\"${this.disabled}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handlePassword}\"\n ></ui-filled-text-field>\n </div>\n `\n }\n\n /**\n * For client_credentials grant this renders the dropdown with an option to select\n * where the credentials should be used. Current values:\n * - authorization header\n * - message body\n */\n protected renderParamsLocation(): TemplateResult | typeof nothing {\n const { config } = this\n const { grantType, deliveryMethod } = config\n if (grantType !== KnownGrants.clientCredentials) {\n return nothing\n }\n const { disabled, readOnly } = this\n return html` <div class=\"full-input delivery-method-line\">\n <ui-dropdown-list verticalAlign=\"top\" @select=\"${this.handleDeliveryMethod}\" closeOnOutsideClick>\n <ui-filled-text-field\n readOnly\n name=\"deliveryMethod\"\n .value=\"${LocationLabels[deliveryMethod as OAuth2DeliveryMethod] || ''}\"\n label=\"Credentials location\"\n ?disabled=\"${disabled || readOnly}\"\n data-selected=\"${deliveryMethod || ''}\"\n >\n <ui-icon slot=\"suffix\" icon=\"arrowDropDown\" role=\"presentation\"></ui-icon>\n </ui-filled-text-field>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" data-value=\"header\">${LocationLabels.header}</ui-list-item>\n <ui-list-item role=\"menuitem\" data-value=\"body\">${LocationLabels.body}</ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n </div>`\n }\n\n /**\n * @returns The template for the PKCE option of the OAuth 2 extension.\n */\n protected renderPkce(): TemplateResult | typeof nothing {\n const { config, noPkce } = this\n const { grantType, pkce } = config\n if (noPkce || grantType !== KnownGrants.code) {\n return nothing\n }\n return html`\n <label class=\"label-large pkce\">\n <ui-checkbox\n .checked=\"${!!pkce}\"\n @change=\"${this.handlePkceChange}\"\n name=\"pkce\"\n aria-label=\"Use PKCE extension\"\n ></ui-checkbox>\n Use PKCE extension\n </label>\n `\n }\n\n /**\n * @returns The template for the OAuth 2 redirect URI label\n */\n protected renderRedirect(): TemplateResult | typeof nothing {\n const { hasRedirectUri } = this\n if (!hasRedirectUri) {\n return nothing\n }\n const { defaultRedirectUri = '', config } = this\n const { redirectUri = defaultRedirectUri } = config\n return html`\n <div class=\"full-input base-level\">\n <ui-filled-text-field\n label=\"Redirect URI\"\n name=\"redirectUri\"\n .value=\"${live(redirectUri)}\"\n type=\"url\"\n required\n invalidText=\"Redirect URI is required for this response type\"\n ?disabled=\"${this.disabled}\"\n ?readOnly=\"${this.readOnly}\"\n @change=\"${this.handleRedirectUri}\"\n ></ui-filled-text-field>\n </div>\n `\n }\n\n protected renderScopes(): TemplateResult | typeof nothing {\n const { config } = this\n const { scopes = [] } = config\n\n return html`\n <section aria-label=\"Scopes\">\n <div class=\"label-large scopes-label\">\n Scopes\n <span class=\"badge large-container\">${scopes.length}</span>\n </div>\n\n <div class=\"full-input base-level\">\n <ui-filled-text-field\n label=\"Scope value\"\n name=\"scope\"\n ?disabled=\"${this.disabled}\"\n ?readOnly=\"${this.readOnly}\"\n >\n <ui-icon-button\n type=\"outlined\"\n slot=\"suffix\"\n aria-label=\"Add value\"\n title=\"Click this button to accept the value\"\n @click=\"${this.handleScopeAdd}\"\n >\n <ui-icon icon=\"add\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n </ui-filled-text-field>\n </div>\n ${this.renderScopesList(scopes)}\n </section>\n `\n }\n\n protected renderScopesList(scopes: string[]): TemplateResult | typeof nothing {\n if (!scopes || !scopes.length) {\n return nothing\n }\n return html`\n <ui-list class=\"scopes-list base-level\" role=\"list\">\n ${scopes.map(\n (item, index) => html`\n <ui-list-item role=\"listitem\">\n ${item}\n <ui-icon-button\n slot=\"end\"\n aria-label=\"Remove scope\"\n title=\"Removes the scope from the list\"\n @click=\"${this.handleScopeRemove}\"\n data-index=\"${index}\"\n >\n <ui-icon icon=\"deleteOutline\" role=\"presentation\"></ui-icon>\n </ui-icon-button>\n </ui-list-item>\n `\n )}\n </ui-list>\n `\n }\n}\n"]}
|
|
@@ -409,7 +409,7 @@ let OidcAuthorization = (() => {
|
|
|
409
409
|
const { issuerUri } = config;
|
|
410
410
|
return html `
|
|
411
411
|
<div class="full-input base-level issuer-field">
|
|
412
|
-
<ui-text-field
|
|
412
|
+
<ui-filled-text-field
|
|
413
413
|
label="Issuer URI"
|
|
414
414
|
name="issuerUri"
|
|
415
415
|
.value="${live(issuerUri || '')}"
|
|
@@ -420,7 +420,7 @@ let OidcAuthorization = (() => {
|
|
|
420
420
|
?disabled="${this.disabled}"
|
|
421
421
|
?readOnly="${this.readOnly}"
|
|
422
422
|
@change="${this.handleIssuerUri}"
|
|
423
|
-
></ui-text-field>
|
|
423
|
+
></ui-filled-text-field>
|
|
424
424
|
|
|
425
425
|
<ui-filled-tonal-button
|
|
426
426
|
title="Downloads and processes the discovery info"
|
|
@@ -449,7 +449,7 @@ let OidcAuthorization = (() => {
|
|
|
449
449
|
const label = selected ? selected.map((i) => i.label).join(', ') : '';
|
|
450
450
|
return html ` <div class="full-input">
|
|
451
451
|
<ui-dropdown-list verticalAlign="top" @select="${this.handleResponseTypeSelect}" closeOnOutsideClick>
|
|
452
|
-
<ui-text-field
|
|
452
|
+
<ui-filled-text-field
|
|
453
453
|
readOnly
|
|
454
454
|
name="responseType"
|
|
455
455
|
.value="${label}"
|
|
@@ -457,7 +457,7 @@ let OidcAuthorization = (() => {
|
|
|
457
457
|
?disabled="${disabled || readOnly}"
|
|
458
458
|
>
|
|
459
459
|
<ui-icon slot="suffix" icon="arrowDropDown" role="presentation"></ui-icon>
|
|
460
|
-
</ui-text-field>
|
|
460
|
+
</ui-filled-text-field>
|
|
461
461
|
<ui-list slot="dropdown" role="menu">
|
|
462
462
|
${supportedResponses.map((item, index) => this.renderResponseItem(item, index))}
|
|
463
463
|
</ui-list>
|