@dereekb/dbx-firebase 13.4.1 → 13.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/dereekb-dbx-firebase-oidc.mjs +216 -131
- package/fesm2022/dereekb-dbx-firebase-oidc.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-firebase.mjs +1323 -724
- package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
- package/lib/auth/login/_login.scss +1 -20
- package/lib/model/_model.scss +0 -1
- package/lib/model/modules/model/_model.scss +0 -19
- package/lib/style/_all-typography.scss +0 -2
- package/lib/style/_theming.scss +1 -5
- package/package.json +13 -13
- package/types/dereekb-dbx-firebase-oidc.d.ts +97 -10
- package/types/dereekb-dbx-firebase.d.ts +650 -105
|
@@ -28,15 +28,15 @@ import { CommonModule } from '@angular/common';
|
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
30
|
class DbxFirebaseOAuthLoginViewComponent {
|
|
31
|
-
loginStateCase = input.required(...(ngDevMode ? [{ debugName: "loginStateCase" }] : []));
|
|
32
|
-
error = input(...(ngDevMode ? [undefined, { debugName: "error" }] : []));
|
|
31
|
+
loginStateCase = input.required(...(ngDevMode ? [{ debugName: "loginStateCase" }] : /* istanbul ignore next */ []));
|
|
32
|
+
error = input(...(ngDevMode ? [undefined, { debugName: "error" }] : /* istanbul ignore next */ []));
|
|
33
33
|
resolvedError = computed(() => {
|
|
34
34
|
const error = this.error();
|
|
35
35
|
return typeof error === 'string' ? readableError('ERROR', error) : error;
|
|
36
|
-
}, ...(ngDevMode ? [{ debugName: "resolvedError" }] : []));
|
|
36
|
+
}, ...(ngDevMode ? [{ debugName: "resolvedError" }] : /* istanbul ignore next */ []));
|
|
37
37
|
retryClick = output();
|
|
38
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
39
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
38
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOAuthLoginViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseOAuthLoginViewComponent, isStandalone: true, selector: "dbx-firebase-oauth-login-view", inputs: { loginStateCase: { classPropertyName: "loginStateCase", publicName: "loginStateCase", isSignal: true, isRequired: true, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { retryClick: "retryClick" }, host: { classAttribute: "d-block dbx-firebase-oauth-login-view" }, ngImport: i0, template: `
|
|
40
40
|
<div class="dbx-firebase-oauth-login-view">
|
|
41
41
|
@switch (loginStateCase()) {
|
|
42
42
|
@case ('no_user') {
|
|
@@ -54,9 +54,9 @@ class DbxFirebaseOAuthLoginViewComponent {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
</div>
|
|
57
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DbxBasicLoadingComponent, selector: "dbx-basic-loading", inputs: ["diameter", "mode", "color", "text", "linear", "show", "loading", "error"] }, { kind: "component", type: DbxErrorComponent, selector: "dbx-error", inputs: ["error", "iconOnly"], outputs: ["popoverOpened"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
57
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxBasicLoadingComponent, selector: "dbx-basic-loading", inputs: ["diameter", "mode", "color", "text", "linear", "show", "loading", "error"] }, { kind: "component", type: DbxErrorComponent, selector: "dbx-error", inputs: ["error", "iconOnly"], outputs: ["popoverOpened"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
58
58
|
}
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOAuthLoginViewComponent, decorators: [{
|
|
60
60
|
type: Component,
|
|
61
61
|
args: [{
|
|
62
62
|
selector: 'dbx-firebase-oauth-login-view',
|
|
@@ -107,18 +107,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
107
107
|
* ```
|
|
108
108
|
*/
|
|
109
109
|
class DbxFirebaseOAuthConsentViewComponent {
|
|
110
|
-
details = input(...(ngDevMode ? [undefined, { debugName: "details" }] : []));
|
|
111
|
-
loading = input(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
|
|
112
|
-
error = input(...(ngDevMode ? [undefined, { debugName: "error" }] : []));
|
|
113
|
-
scopeInjectionConfig = input.required(...(ngDevMode ? [{ debugName: "scopeInjectionConfig" }] : []));
|
|
114
|
-
clientName = computed(() => this.details()?.client_name ?? '', ...(ngDevMode ? [{ debugName: "clientName" }] : []));
|
|
115
|
-
clientUri = computed(() => this.details()?.client_uri, ...(ngDevMode ? [{ debugName: "clientUri" }] : []));
|
|
116
|
-
logoUri = computed(() => this.details()?.logo_uri, ...(ngDevMode ? [{ debugName: "logoUri" }] : []));
|
|
117
|
-
scopes = computed(() => SPACE_STRING_SPLIT_JOIN.splitStrings(this.details()?.scopes ?? ''), ...(ngDevMode ? [{ debugName: "scopes" }] : []));
|
|
110
|
+
details = input(...(ngDevMode ? [undefined, { debugName: "details" }] : /* istanbul ignore next */ []));
|
|
111
|
+
loading = input(false, ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
112
|
+
error = input(...(ngDevMode ? [undefined, { debugName: "error" }] : /* istanbul ignore next */ []));
|
|
113
|
+
scopeInjectionConfig = input.required(...(ngDevMode ? [{ debugName: "scopeInjectionConfig" }] : /* istanbul ignore next */ []));
|
|
114
|
+
clientName = computed(() => this.details()?.client_name ?? '', ...(ngDevMode ? [{ debugName: "clientName" }] : /* istanbul ignore next */ []));
|
|
115
|
+
clientUri = computed(() => this.details()?.client_uri, ...(ngDevMode ? [{ debugName: "clientUri" }] : /* istanbul ignore next */ []));
|
|
116
|
+
logoUri = computed(() => this.details()?.logo_uri, ...(ngDevMode ? [{ debugName: "logoUri" }] : /* istanbul ignore next */ []));
|
|
117
|
+
scopes = computed(() => SPACE_STRING_SPLIT_JOIN.splitStrings(this.details()?.scopes ?? ''), ...(ngDevMode ? [{ debugName: "scopes" }] : /* istanbul ignore next */ []));
|
|
118
118
|
resolvedError = computed(() => {
|
|
119
119
|
const error = this.error();
|
|
120
120
|
return typeof error === 'string' ? readableError('ERROR', error) : error;
|
|
121
|
-
}, ...(ngDevMode ? [{ debugName: "resolvedError" }] : []));
|
|
121
|
+
}, ...(ngDevMode ? [{ debugName: "resolvedError" }] : /* istanbul ignore next */ []));
|
|
122
122
|
approveClick = output();
|
|
123
123
|
denyClick = output();
|
|
124
124
|
resolvedScopeInjectionConfig = computed(() => {
|
|
@@ -128,9 +128,9 @@ class DbxFirebaseOAuthConsentViewComponent {
|
|
|
128
128
|
clientName: this.clientName()
|
|
129
129
|
};
|
|
130
130
|
return { ...this.scopeInjectionConfig(), data };
|
|
131
|
-
}, ...(ngDevMode ? [{ debugName: "resolvedScopeInjectionConfig" }] : []));
|
|
132
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
133
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
131
|
+
}, ...(ngDevMode ? [{ debugName: "resolvedScopeInjectionConfig" }] : /* istanbul ignore next */ []));
|
|
132
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOAuthConsentViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
133
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseOAuthConsentViewComponent, isStandalone: true, selector: "dbx-firebase-oauth-consent-view", inputs: { details: { classPropertyName: "details", publicName: "details", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, scopeInjectionConfig: { classPropertyName: "scopeInjectionConfig", publicName: "scopeInjectionConfig", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { approveClick: "approveClick", denyClick: "denyClick" }, host: { classAttribute: "d-block dbx-firebase-oauth-consent-view" }, ngImport: i0, template: `
|
|
134
134
|
<div class="dbx-firebase-oauth-consent-view">
|
|
135
135
|
@if (loading()) {
|
|
136
136
|
<dbx-loading [loading]="true" text="Processing..."></dbx-loading>
|
|
@@ -159,9 +159,9 @@ class DbxFirebaseOAuthConsentViewComponent {
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
</div>
|
|
162
|
-
`, isInline: true, styles: [".dbx-firebase-oauth-consent-view .dbx-firebase-oauth-consent-header-info{align-items:center;gap:12px}\n"], dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: DbxAvatarComponent, selector: "dbx-avatar", inputs: ["context", "avatarSelector", "avatarUid", "avatarUrl", "avatarKey", "avatarIcon", "avatarStyle", "avatarSize", "avatarHideOnError"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "component", type: DbxErrorComponent, selector: "dbx-error", inputs: ["error", "iconOnly"], outputs: ["popoverOpened"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
162
|
+
`, isInline: true, styles: [".dbx-firebase-oauth-consent-view .dbx-firebase-oauth-consent-header-info{align-items:center;gap:12px}\n"], dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: DbxAvatarComponent, selector: "dbx-avatar", inputs: ["context", "avatarSelector", "avatarUid", "avatarUrl", "avatarKey", "avatarIcon", "avatarStyle", "avatarSize", "avatarHideOnError"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "component", type: DbxErrorComponent, selector: "dbx-error", inputs: ["error", "iconOnly"], outputs: ["popoverOpened"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
163
163
|
}
|
|
164
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOAuthConsentViewComponent, decorators: [{
|
|
165
165
|
type: Component,
|
|
166
166
|
args: [{ selector: 'dbx-firebase-oauth-consent-view', standalone: true, imports: [DbxInjectionComponent, DbxAvatarComponent, DbxLoadingComponent, DbxErrorComponent, DbxButtonComponent, DbxButtonSpacerDirective], template: `
|
|
167
167
|
<div class="dbx-firebase-oauth-consent-view">
|
|
@@ -211,11 +211,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
211
211
|
*/
|
|
212
212
|
class AbstractDbxFirebaseOAuthConsentScopeViewComponent {
|
|
213
213
|
data = inject(DBX_INJECTION_COMPONENT_DATA);
|
|
214
|
-
details = computed(() => this.data?.details, ...(ngDevMode ? [{ debugName: "details" }] : []));
|
|
215
|
-
scopes = computed(() => this.data?.scopes ?? [], ...(ngDevMode ? [{ debugName: "scopes" }] : []));
|
|
216
|
-
clientName = computed(() => this.data?.clientName ?? '', ...(ngDevMode ? [{ debugName: "clientName" }] : []));
|
|
217
|
-
clientUri = computed(() => this.data?.details?.client_uri, ...(ngDevMode ? [{ debugName: "clientUri" }] : []));
|
|
218
|
-
logoUri = computed(() => this.data?.details?.logo_uri, ...(ngDevMode ? [{ debugName: "logoUri" }] : []));
|
|
214
|
+
details = computed(() => this.data?.details, ...(ngDevMode ? [{ debugName: "details" }] : /* istanbul ignore next */ []));
|
|
215
|
+
scopes = computed(() => this.data?.scopes ?? [], ...(ngDevMode ? [{ debugName: "scopes" }] : /* istanbul ignore next */ []));
|
|
216
|
+
clientName = computed(() => this.data?.clientName ?? '', ...(ngDevMode ? [{ debugName: "clientName" }] : /* istanbul ignore next */ []));
|
|
217
|
+
clientUri = computed(() => this.data?.details?.client_uri, ...(ngDevMode ? [{ debugName: "clientUri" }] : /* istanbul ignore next */ []));
|
|
218
|
+
logoUri = computed(() => this.data?.details?.logo_uri, ...(ngDevMode ? [{ debugName: "logoUri" }] : /* istanbul ignore next */ []));
|
|
219
219
|
}
|
|
220
220
|
|
|
221
221
|
/**
|
|
@@ -227,9 +227,9 @@ class AbstractDbxFirebaseOAuthConsentScopeViewComponent {
|
|
|
227
227
|
* ```
|
|
228
228
|
*/
|
|
229
229
|
class DbxFirebaseOAuthConsentScopeListComponent {
|
|
230
|
-
scopes = input([], ...(ngDevMode ? [{ debugName: "scopes" }] : []));
|
|
231
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
232
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
230
|
+
scopes = input([], ...(ngDevMode ? [{ debugName: "scopes" }] : /* istanbul ignore next */ []));
|
|
231
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOAuthConsentScopeListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
232
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseOAuthConsentScopeListComponent, isStandalone: true, selector: "dbx-firebase-oauth-consent-scope-list", inputs: { scopes: { classPropertyName: "scopes", publicName: "scopes", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
233
233
|
@for (scope of scopes(); track scope.name) {
|
|
234
234
|
<div class="dbx-firebase-oauth-consent-scope-list-item dbx-mb2">
|
|
235
235
|
<span class="dbx-firebase-oauth-consent-scope-name dbx-pb2">{{ scope.name }}</span>
|
|
@@ -240,7 +240,7 @@ class DbxFirebaseOAuthConsentScopeListComponent {
|
|
|
240
240
|
}
|
|
241
241
|
`, isInline: true, styles: [".dbx-firebase-oauth-consent-scope-list-item{display:flex;flex-direction:column;padding:8px 12px;border-left:3px solid var(--dbx-primary-color);background:color-mix(in srgb,var(--dbx-color-current) 10%,transparent)}.dbx-firebase-oauth-consent-scope-list-item .dbx-firebase-oauth-consent-scope-name{font-weight:500}.dbx-firebase-oauth-consent-scope-list-item .dbx-firebase-oauth-consent-scope-description{font-size:.85em;opacity:.7}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
242
242
|
}
|
|
243
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOAuthConsentScopeListComponent, decorators: [{
|
|
244
244
|
type: Component,
|
|
245
245
|
args: [{ selector: 'dbx-firebase-oauth-consent-scope-list', standalone: true, template: `
|
|
246
246
|
@for (scope of scopes(); track scope.name) {
|
|
@@ -269,9 +269,13 @@ const DEFAULT_OIDC_TOKEN_ENDPOINT_AUTH_METHODS = ['client_secret_post', 'client_
|
|
|
269
269
|
* Apps provide a concrete implementation via `provideDbxFirebaseOidc()`.
|
|
270
270
|
*/
|
|
271
271
|
class DbxFirebaseOidcConfig {
|
|
272
|
-
/**
|
|
272
|
+
/**
|
|
273
|
+
* Path to the authorization endpoint. Defaults to '/oidc/auth'.
|
|
274
|
+
*/
|
|
273
275
|
oidcAuthorizationEndpointApiPath;
|
|
274
|
-
/**
|
|
276
|
+
/**
|
|
277
|
+
* Base path for interaction endpoints. Defaults to '/interaction'.
|
|
278
|
+
*/
|
|
275
279
|
oidcInteractionEndpointApiPath;
|
|
276
280
|
/**
|
|
277
281
|
* Supported token endpoint authentication methods.
|
|
@@ -324,10 +328,10 @@ class DbxFirebaseOidcConfigService {
|
|
|
324
328
|
get consentScopeListViewClass() {
|
|
325
329
|
return this.config.consentScopeListViewClass;
|
|
326
330
|
}
|
|
327
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
328
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
331
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
332
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcConfigService });
|
|
329
333
|
}
|
|
330
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
334
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcConfigService, decorators: [{
|
|
331
335
|
type: Injectable
|
|
332
336
|
}] });
|
|
333
337
|
|
|
@@ -347,13 +351,13 @@ class DbxFirebaseOAuthConsentScopeDefaultViewComponent extends AbstractDbxFireba
|
|
|
347
351
|
return [
|
|
348
352
|
...knownScopes.map((name) => {
|
|
349
353
|
const details = availableScopes.find((s) => s.value === name);
|
|
350
|
-
return { name, description: details
|
|
354
|
+
return { name, description: details?.description ?? '' };
|
|
351
355
|
}),
|
|
352
356
|
...unknownScopes.map((name) => ({ name, description: 'unknown' }))
|
|
353
357
|
];
|
|
354
|
-
}, ...(ngDevMode ? [{ debugName: "mappedScopes" }] : []));
|
|
355
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
356
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
358
|
+
}, ...(ngDevMode ? [{ debugName: "mappedScopes" }] : /* istanbul ignore next */ []));
|
|
359
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOAuthConsentScopeDefaultViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
360
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseOAuthConsentScopeDefaultViewComponent, isStandalone: true, selector: "dbx-firebase-oauth-consent-scope-default-view", usesInheritance: true, ngImport: i0, template: `
|
|
357
361
|
<p>
|
|
358
362
|
<strong>{{ clientName() }}</strong>
|
|
359
363
|
is requesting these permissions:
|
|
@@ -361,7 +365,7 @@ class DbxFirebaseOAuthConsentScopeDefaultViewComponent extends AbstractDbxFireba
|
|
|
361
365
|
<dbx-firebase-oauth-consent-scope-list [scopes]="mappedScopes()"></dbx-firebase-oauth-consent-scope-list>
|
|
362
366
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseOAuthConsentScopeListComponent, selector: "dbx-firebase-oauth-consent-scope-list", inputs: ["scopes"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
363
367
|
}
|
|
364
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
368
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOAuthConsentScopeDefaultViewComponent, decorators: [{
|
|
365
369
|
type: Component,
|
|
366
370
|
args: [{
|
|
367
371
|
selector: 'dbx-firebase-oauth-consent-scope-default-view',
|
|
@@ -394,6 +398,8 @@ class DbxFirebaseOidcInteractionService {
|
|
|
394
398
|
_oidcConfig = inject(DbxFirebaseOidcConfigService);
|
|
395
399
|
/**
|
|
396
400
|
* Base URL for the interaction API, derived from the OIDC config service.
|
|
401
|
+
*
|
|
402
|
+
* @returns The base URL string for the OIDC interaction endpoint.
|
|
397
403
|
*/
|
|
398
404
|
get baseUrl() {
|
|
399
405
|
return this._oidcConfig.oidcInteractionEndpointApiPath;
|
|
@@ -403,6 +409,7 @@ class DbxFirebaseOidcInteractionService {
|
|
|
403
409
|
*
|
|
404
410
|
* Automatically attaches the current user's Firebase ID token.
|
|
405
411
|
*
|
|
412
|
+
* @param uid - The OIDC interaction UID identifying the current login interaction.
|
|
406
413
|
* @returns Observable that emits the redirect URL from the server response.
|
|
407
414
|
*/
|
|
408
415
|
submitLogin(uid) {
|
|
@@ -413,15 +420,17 @@ class DbxFirebaseOidcInteractionService {
|
|
|
413
420
|
*
|
|
414
421
|
* Automatically attaches the current user's Firebase ID token.
|
|
415
422
|
*
|
|
423
|
+
* @param uid - The OIDC interaction UID identifying the current consent interaction.
|
|
424
|
+
* @param approved - Whether the user approved or denied the consent request.
|
|
416
425
|
* @returns Observable that emits the redirect URL from the server response.
|
|
417
426
|
*/
|
|
418
427
|
submitConsent(uid, approved) {
|
|
419
428
|
return this._authService.idTokenString$.pipe(first(), switchMap((idToken) => this.http.post(`${this.baseUrl}/${uid}/consent`, { idToken, approved })));
|
|
420
429
|
}
|
|
421
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
422
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
430
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcInteractionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
431
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcInteractionService, providedIn: 'root' });
|
|
423
432
|
}
|
|
424
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
433
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcInteractionService, decorators: [{
|
|
425
434
|
type: Injectable,
|
|
426
435
|
args: [{ providedIn: 'root' }]
|
|
427
436
|
}] });
|
|
@@ -446,8 +455,8 @@ class DbxFirebaseOAuthLoginComponent {
|
|
|
446
455
|
uidParamReader = dbxRouteParamReaderInstance(this.dbxRouterService, DEFAULT_OIDC_INTERACTION_UID_PARAM_KEY);
|
|
447
456
|
interactionUid = toSignal(this.uidParamReader.value$);
|
|
448
457
|
isLoggedIn = toSignal(this.dbxFirebaseAuthService.isLoggedIn$, { initialValue: false });
|
|
449
|
-
submitting = signal(false, ...(ngDevMode ? [{ debugName: "submitting" }] : []));
|
|
450
|
-
errorMessage = signal(null, ...(ngDevMode ? [{ debugName: "errorMessage" }] : []));
|
|
458
|
+
submitting = signal(false, ...(ngDevMode ? [{ debugName: "submitting" }] : /* istanbul ignore next */ []));
|
|
459
|
+
errorMessage = signal(null, ...(ngDevMode ? [{ debugName: "errorMessage" }] : /* istanbul ignore next */ []));
|
|
451
460
|
loginStateCase = computed(() => {
|
|
452
461
|
if (this.submitting()) {
|
|
453
462
|
return 'submitting';
|
|
@@ -459,7 +468,7 @@ class DbxFirebaseOAuthLoginComponent {
|
|
|
459
468
|
return 'no_user';
|
|
460
469
|
}
|
|
461
470
|
return 'user';
|
|
462
|
-
}, ...(ngDevMode ? [{ debugName: "loginStateCase" }] : []));
|
|
471
|
+
}, ...(ngDevMode ? [{ debugName: "loginStateCase" }] : /* istanbul ignore next */ []));
|
|
463
472
|
constructor() {
|
|
464
473
|
// Auto-submit when user is logged in
|
|
465
474
|
effect(() => {
|
|
@@ -496,14 +505,14 @@ class DbxFirebaseOAuthLoginComponent {
|
|
|
496
505
|
}
|
|
497
506
|
});
|
|
498
507
|
}
|
|
499
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
500
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
508
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOAuthLoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
509
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseOAuthLoginComponent, isStandalone: true, selector: "dbx-firebase-oauth-login", host: { classAttribute: "d-block dbx-firebase-oauth-login" }, ngImport: i0, template: `
|
|
501
510
|
<dbx-firebase-oauth-login-view [loginStateCase]="loginStateCase()" [error]="errorMessage()" (retryClick)="retry()">
|
|
502
511
|
<ng-content />
|
|
503
512
|
</dbx-firebase-oauth-login-view>
|
|
504
513
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseOAuthLoginViewComponent, selector: "dbx-firebase-oauth-login-view", inputs: ["loginStateCase", "error"], outputs: ["retryClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
505
514
|
}
|
|
506
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
515
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOAuthLoginComponent, decorators: [{
|
|
507
516
|
type: Component,
|
|
508
517
|
args: [{
|
|
509
518
|
selector: 'dbx-firebase-oauth-login',
|
|
@@ -535,7 +544,7 @@ class DbxOAuthConsentComponent {
|
|
|
535
544
|
interactionService = inject(DbxFirebaseOidcInteractionService);
|
|
536
545
|
oidcConfigService = inject(DbxFirebaseOidcConfigService);
|
|
537
546
|
// Config input
|
|
538
|
-
config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : []));
|
|
547
|
+
config = input(...(ngDevMode ? [undefined, { debugName: "config" }] : /* istanbul ignore next */ []));
|
|
539
548
|
// Route param readers
|
|
540
549
|
interactionUidParamReader = dbxRouteParamReaderInstance(this.dbxRouterService, DEFAULT_OIDC_INTERACTION_UID_PARAM_KEY);
|
|
541
550
|
clientIdParamReader = dbxRouteParamReaderInstance(this.dbxRouterService, DEFAULT_OIDC_CLIENT_ID_PARAM_KEY);
|
|
@@ -551,7 +560,7 @@ class DbxOAuthConsentComponent {
|
|
|
551
560
|
routeLogoUri = toSignal(this.logoUriParamReader.value$);
|
|
552
561
|
routeScopes = toSignal(this.scopesParamReader.value$);
|
|
553
562
|
// Resolved values
|
|
554
|
-
resolvedInteractionUid = computed(() => this.routeUid(), ...(ngDevMode ? [{ debugName: "resolvedInteractionUid" }] : []));
|
|
563
|
+
resolvedInteractionUid = computed(() => this.routeUid(), ...(ngDevMode ? [{ debugName: "resolvedInteractionUid" }] : /* istanbul ignore next */ []));
|
|
555
564
|
resolvedDetails = computed(() => {
|
|
556
565
|
const client_id = this.routeClientId() ?? '';
|
|
557
566
|
const client_name = this.routeClientName();
|
|
@@ -565,13 +574,13 @@ class DbxOAuthConsentComponent {
|
|
|
565
574
|
logo_uri,
|
|
566
575
|
scopes
|
|
567
576
|
};
|
|
568
|
-
}, ...(ngDevMode ? [{ debugName: "resolvedDetails" }] : []));
|
|
577
|
+
}, ...(ngDevMode ? [{ debugName: "resolvedDetails" }] : /* istanbul ignore next */ []));
|
|
569
578
|
// Scope injection config: built from the configured scope list view class, falling back to config service, then the default
|
|
570
579
|
scopeInjectionConfig = computed(() => ({
|
|
571
580
|
componentClass: this.config()?.consentScopeListViewClass ?? this.oidcConfigService.consentScopeListViewClass ?? DbxFirebaseOAuthConsentScopeDefaultViewComponent
|
|
572
|
-
}), ...(ngDevMode ? [{ debugName: "scopeInjectionConfig" }] : []));
|
|
573
|
-
loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
|
|
574
|
-
error = signal(null, ...(ngDevMode ? [{ debugName: "error" }] : []));
|
|
581
|
+
}), ...(ngDevMode ? [{ debugName: "scopeInjectionConfig" }] : /* istanbul ignore next */ []));
|
|
582
|
+
loading = signal(false, ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
583
|
+
error = signal(null, ...(ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []));
|
|
575
584
|
ngOnDestroy() {
|
|
576
585
|
this.interactionUidParamReader.destroy();
|
|
577
586
|
this.clientIdParamReader.destroy();
|
|
@@ -607,12 +616,12 @@ class DbxOAuthConsentComponent {
|
|
|
607
616
|
}
|
|
608
617
|
});
|
|
609
618
|
}
|
|
610
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
611
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
619
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxOAuthConsentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
620
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.3", type: DbxOAuthConsentComponent, isStandalone: true, selector: "dbx-firebase-oauth-consent", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "d-block dbx-firebase-oauth-consent" }, ngImport: i0, template: `
|
|
612
621
|
<dbx-firebase-oauth-consent-view [details]="resolvedDetails()" [loading]="loading()" [error]="error()" [scopeInjectionConfig]="scopeInjectionConfig()" (approveClick)="approve()" (denyClick)="deny()"></dbx-firebase-oauth-consent-view>
|
|
613
622
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseOAuthConsentViewComponent, selector: "dbx-firebase-oauth-consent-view", inputs: ["details", "loading", "error", "scopeInjectionConfig"], outputs: ["approveClick", "denyClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
614
623
|
}
|
|
615
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
624
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxOAuthConsentComponent, decorators: [{
|
|
616
625
|
type: Component,
|
|
617
626
|
args: [{
|
|
618
627
|
selector: 'dbx-firebase-oauth-consent',
|
|
@@ -632,6 +641,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
632
641
|
* Creates fields for the OAuth client create form.
|
|
633
642
|
*
|
|
634
643
|
* Includes `token_endpoint_auth_method` which is immutable after creation.
|
|
644
|
+
*
|
|
645
|
+
* @param config - Optional configuration for field generation, including mode and allowed auth methods.
|
|
646
|
+
* @returns Array of FormlyFieldConfig for the client creation form.
|
|
635
647
|
*/
|
|
636
648
|
function oidcEntryClientFormFields(config) {
|
|
637
649
|
const fields = [];
|
|
@@ -641,6 +653,12 @@ function oidcEntryClientFormFields(config) {
|
|
|
641
653
|
fields.push(...oidcEntryClientUpdateFormFields());
|
|
642
654
|
return fields;
|
|
643
655
|
}
|
|
656
|
+
/**
|
|
657
|
+
* Creates a value selection field for choosing the token endpoint authentication method.
|
|
658
|
+
*
|
|
659
|
+
* @param config - Optional configuration to filter the available auth method options.
|
|
660
|
+
* @returns A FormlyFieldConfig for the token endpoint auth method selector.
|
|
661
|
+
*/
|
|
644
662
|
function oidcClientTokenEndpointAuthMethodField(config) {
|
|
645
663
|
const allowedAuthMethods = config?.tokenEndpointAuthMethods;
|
|
646
664
|
const options = allowedAuthMethods?.length ? ALL_OIDC_TOKEN_ENDPOINT_AUTH_METHOD_OPTIONS.filter((o) => allowedAuthMethods.includes(o.value)) : ALL_OIDC_TOKEN_ENDPOINT_AUTH_METHOD_OPTIONS;
|
|
@@ -656,10 +674,17 @@ function oidcClientTokenEndpointAuthMethodField(config) {
|
|
|
656
674
|
* Creates fields for updating an existing OAuth client.
|
|
657
675
|
*
|
|
658
676
|
* Excludes `token_endpoint_auth_method` (immutable after creation).
|
|
677
|
+
*
|
|
678
|
+
* @returns Array of FormlyFieldConfig for the client update form.
|
|
659
679
|
*/
|
|
660
680
|
function oidcEntryClientUpdateFormFields() {
|
|
661
681
|
return [oidcClientNameField(), oidcClientRedirectUrisField(), oidcClientJwksUriField(), oidcClientLogoUriField(), oidcClientHomepageUriField()];
|
|
662
682
|
}
|
|
683
|
+
/**
|
|
684
|
+
* Creates a text field for the OAuth client display name.
|
|
685
|
+
*
|
|
686
|
+
* @returns A FormlyFieldConfig for the client name input.
|
|
687
|
+
*/
|
|
663
688
|
function oidcClientNameField() {
|
|
664
689
|
return textField({
|
|
665
690
|
key: 'client_name',
|
|
@@ -669,6 +694,11 @@ function oidcClientNameField() {
|
|
|
669
694
|
maxLength: 200
|
|
670
695
|
});
|
|
671
696
|
}
|
|
697
|
+
/**
|
|
698
|
+
* Creates a searchable chip field for entering redirect URIs.
|
|
699
|
+
*
|
|
700
|
+
* @returns A FormlyFieldConfig for the redirect URIs input.
|
|
701
|
+
*/
|
|
672
702
|
function oidcClientRedirectUrisField() {
|
|
673
703
|
return searchableStringChipField({
|
|
674
704
|
key: 'redirect_uris',
|
|
@@ -681,6 +711,11 @@ function oidcClientRedirectUrisField() {
|
|
|
681
711
|
displayForValue: (values) => of(values.map((v) => ({ ...v, label: v.value })))
|
|
682
712
|
});
|
|
683
713
|
}
|
|
714
|
+
/**
|
|
715
|
+
* Creates a text field for the client's JWKS URI. Only visible when using private_key_jwt authentication.
|
|
716
|
+
*
|
|
717
|
+
* @returns A FormlyFieldConfig for the JWKS URI input.
|
|
718
|
+
*/
|
|
684
719
|
function oidcClientJwksUriField() {
|
|
685
720
|
return textField({
|
|
686
721
|
key: 'jwks_uri',
|
|
@@ -692,6 +727,11 @@ function oidcClientJwksUriField() {
|
|
|
692
727
|
}
|
|
693
728
|
});
|
|
694
729
|
}
|
|
730
|
+
/**
|
|
731
|
+
* Creates a text field for the optional client logo URL.
|
|
732
|
+
*
|
|
733
|
+
* @returns A FormlyFieldConfig for the logo URI input.
|
|
734
|
+
*/
|
|
695
735
|
function oidcClientLogoUriField() {
|
|
696
736
|
return textField({
|
|
697
737
|
key: 'logo_uri',
|
|
@@ -700,6 +740,11 @@ function oidcClientLogoUriField() {
|
|
|
700
740
|
required: false
|
|
701
741
|
});
|
|
702
742
|
}
|
|
743
|
+
/**
|
|
744
|
+
* Creates a text field for the optional client homepage URL.
|
|
745
|
+
*
|
|
746
|
+
* @returns A FormlyFieldConfig for the homepage URL input.
|
|
747
|
+
*/
|
|
703
748
|
function oidcClientHomepageUriField() {
|
|
704
749
|
return textField({
|
|
705
750
|
key: 'client_uri',
|
|
@@ -710,10 +755,18 @@ function oidcClientHomepageUriField() {
|
|
|
710
755
|
}
|
|
711
756
|
/**
|
|
712
757
|
* Assembles the form fields for the OAuth test client form.
|
|
758
|
+
*
|
|
759
|
+
* @param config - Configuration providing available redirect URIs and scopes for the test form.
|
|
760
|
+
* @returns Array of FormlyFieldConfig for the test client form.
|
|
713
761
|
*/
|
|
714
762
|
function oidcEntryClientTestFormFields(config) {
|
|
715
763
|
return [oidcClientTestClientIdField(), oidcClientTestRedirectUriField(config.redirectUris), oidcClientTestScopesField(config.availableScopes)];
|
|
716
764
|
}
|
|
765
|
+
/**
|
|
766
|
+
* Creates a read-only text field displaying the OAuth client ID.
|
|
767
|
+
*
|
|
768
|
+
* @returns A FormlyFieldConfig for the client ID display.
|
|
769
|
+
*/
|
|
717
770
|
function oidcClientTestClientIdField() {
|
|
718
771
|
return textField({
|
|
719
772
|
key: 'client_id',
|
|
@@ -721,6 +774,12 @@ function oidcClientTestClientIdField() {
|
|
|
721
774
|
readonly: true
|
|
722
775
|
});
|
|
723
776
|
}
|
|
777
|
+
/**
|
|
778
|
+
* Creates a selection field for choosing one of the client's registered redirect URIs for testing.
|
|
779
|
+
*
|
|
780
|
+
* @param redirectUris - The registered redirect URIs to display as options.
|
|
781
|
+
* @returns A FormlyFieldConfig for the redirect URI selector.
|
|
782
|
+
*/
|
|
724
783
|
function oidcClientTestRedirectUriField(redirectUris) {
|
|
725
784
|
const options = redirectUris.map((uri) => ({ label: uri, value: uri }));
|
|
726
785
|
return valueSelectionField({
|
|
@@ -731,6 +790,12 @@ function oidcClientTestRedirectUriField(redirectUris) {
|
|
|
731
790
|
options
|
|
732
791
|
});
|
|
733
792
|
}
|
|
793
|
+
/**
|
|
794
|
+
* Creates a pickable chip field for selecting scopes to request during the test flow.
|
|
795
|
+
*
|
|
796
|
+
* @param availableScopes - The available scopes to display as selectable options.
|
|
797
|
+
* @returns A FormlyFieldConfig for the scopes selector.
|
|
798
|
+
*/
|
|
734
799
|
function oidcClientTestScopesField(availableScopes) {
|
|
735
800
|
return pickableItemChipField({
|
|
736
801
|
key: 'scopes',
|
|
@@ -755,10 +820,10 @@ class DbxFirebaseOidcEntryClientFormComponent extends AbstractConfigAsyncFormlyF
|
|
|
755
820
|
...config,
|
|
756
821
|
tokenEndpointAuthMethods: this._oidcConfigService.tokenEndpointAuthMethods
|
|
757
822
|
})));
|
|
758
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
759
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
823
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
824
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseOidcEntryClientFormComponent, isStandalone: true, selector: "dbx-firebase-oidc-client-form", providers: dbxFormlyFormComponentProviders(), usesInheritance: true, ngImport: i0, template: "<dbx-formly></dbx-formly>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxFormlyFormComponentImportsModule }, { kind: "component", type: i1.DbxFormlyComponent, selector: "dbx-formly", exportAs: ["formly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
760
825
|
}
|
|
761
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
826
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientFormComponent, decorators: [{
|
|
762
827
|
type: Component,
|
|
763
828
|
args: [{
|
|
764
829
|
selector: 'dbx-firebase-oidc-client-form',
|
|
@@ -777,10 +842,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
777
842
|
*/
|
|
778
843
|
class DbxFirebaseOidcEntryClientTestFormComponent extends AbstractConfigAsyncFormlyFormDirective {
|
|
779
844
|
fields$ = this.config$.pipe(map((config) => oidcEntryClientTestFormFields(config)));
|
|
780
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
781
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
845
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientTestFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
846
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseOidcEntryClientTestFormComponent, isStandalone: true, selector: "dbx-firebase-oidc-client-test-form", providers: dbxFormlyFormComponentProviders(), usesInheritance: true, ngImport: i0, template: "<dbx-formly></dbx-formly>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxFormlyFormComponentImportsModule }, { kind: "component", type: i1.DbxFormlyComponent, selector: "dbx-formly", exportAs: ["formly"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
782
847
|
}
|
|
783
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
848
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientTestFormComponent, decorators: [{
|
|
784
849
|
type: Component,
|
|
785
850
|
args: [{
|
|
786
851
|
selector: 'dbx-firebase-oidc-client-test-form',
|
|
@@ -799,10 +864,10 @@ class DbxFirebaseOidcEntryClientListComponent extends AbstractDbxSelectionListWr
|
|
|
799
864
|
defaultSelectionMode: 'view'
|
|
800
865
|
});
|
|
801
866
|
}
|
|
802
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
803
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
867
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
868
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseOidcEntryClientListComponent, isStandalone: true, selector: "dbx-firebase-oidc-client-list", providers: provideDbxListViewWrapper(DbxFirebaseOidcEntryClientListComponent), usesInheritance: true, ngImport: i0, template: "\n <dbx-list [state]=\"currentState$\" [config]=\"configSignal()\" [hasMore]=\"hasMore()\" [disabled]=\"disabled()\" [selectionMode]=\"selectionModeSignal()\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n <ng-content emptyLoading select=\"[emptyLoading]\"></ng-content>\n <ng-content end select=\"[end]\"></ng-content>\n </dbx-list>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxListWrapperComponentImportsModule }, { kind: "component", type: i1$1.DbxListComponent, selector: "dbx-list", inputs: ["padded", "state", "config", "disabled", "selectionMode", "hasMore"], outputs: ["contentScrolled"] }] });
|
|
804
869
|
}
|
|
805
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
870
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientListComponent, decorators: [{
|
|
806
871
|
type: Component,
|
|
807
872
|
args: [{
|
|
808
873
|
selector: 'dbx-firebase-oidc-client-list',
|
|
@@ -817,10 +882,10 @@ class DbxFirebaseOidcEntryClientListViewComponent extends AbstractDbxSelectionLi
|
|
|
817
882
|
componentClass: DbxFirebaseOidcEntryClientListViewItemComponent,
|
|
818
883
|
mapValuesToItemValues: (x) => of(x.map((y) => ({ ...y, itemValue: y })))
|
|
819
884
|
};
|
|
820
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
821
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
885
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientListViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
886
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseOidcEntryClientListViewComponent, isStandalone: true, selector: "dbx-firebase-oidc-client-list-view", providers: provideDbxListView(DbxFirebaseOidcEntryClientListViewComponent), usesInheritance: true, ngImport: i0, template: "<dbx-selection-list-view [config]=\"config\"></dbx-selection-list-view>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxSelectionValueListViewComponentImportsModule }, { kind: "component", type: i1$1.DbxSelectionValueListViewComponent, selector: "dbx-selection-list-view" }] });
|
|
822
887
|
}
|
|
823
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
888
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientListViewComponent, decorators: [{
|
|
824
889
|
type: Component,
|
|
825
890
|
args: [{
|
|
826
891
|
selector: 'dbx-firebase-oidc-client-list-view',
|
|
@@ -832,24 +897,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
832
897
|
}] });
|
|
833
898
|
// MARK: Item List
|
|
834
899
|
class DbxFirebaseOidcEntryClientListViewItemClientComponent {
|
|
835
|
-
entry = input.required(...(ngDevMode ? [{ debugName: "entry" }] : []));
|
|
900
|
+
entry = input.required(...(ngDevMode ? [{ debugName: "entry" }] : /* istanbul ignore next */ []));
|
|
836
901
|
get name() {
|
|
837
902
|
const payload = this.entry().payload;
|
|
838
|
-
return payload?.
|
|
903
|
+
return payload?.client_name || 'OAuth Client';
|
|
839
904
|
}
|
|
840
905
|
get clientId() {
|
|
841
906
|
const payload = this.entry().payload;
|
|
842
|
-
return payload?.
|
|
907
|
+
return payload?.client_id || '';
|
|
843
908
|
}
|
|
844
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
845
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
909
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientListViewItemClientComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
910
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseOidcEntryClientListViewItemClientComponent, isStandalone: true, selector: "dbx-firebase-oidc-client-list-view-item-client", inputs: { entry: { classPropertyName: "entry", publicName: "entry", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
846
911
|
<div>
|
|
847
912
|
<p>{{ name }}</p>
|
|
848
913
|
<p class="dbx-hint">{{ clientId }}</p>
|
|
849
914
|
</div>
|
|
850
915
|
`, isInline: true });
|
|
851
916
|
}
|
|
852
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
917
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientListViewItemClientComponent, decorators: [{
|
|
853
918
|
type: Component,
|
|
854
919
|
args: [{
|
|
855
920
|
selector: 'dbx-firebase-oidc-client-list-view-item-client',
|
|
@@ -863,15 +928,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
863
928
|
}]
|
|
864
929
|
}], propDecorators: { entry: [{ type: i0.Input, args: [{ isSignal: true, alias: "entry", required: true }] }] } });
|
|
865
930
|
class DbxFirebaseOidcEntryClientListViewItemDefaultComponent {
|
|
866
|
-
entry = input.required(...(ngDevMode ? [{ debugName: "entry" }] : []));
|
|
867
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
868
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
931
|
+
entry = input.required(...(ngDevMode ? [{ debugName: "entry" }] : /* istanbul ignore next */ []));
|
|
932
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientListViewItemDefaultComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
933
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseOidcEntryClientListViewItemDefaultComponent, isStandalone: true, selector: "dbx-firebase-oidc-client-list-view-item-default", inputs: { entry: { classPropertyName: "entry", publicName: "entry", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
869
934
|
<div>
|
|
870
935
|
<p>{{ entry().type }}</p>
|
|
871
936
|
</div>
|
|
872
937
|
`, isInline: true });
|
|
873
938
|
}
|
|
874
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
939
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientListViewItemDefaultComponent, decorators: [{
|
|
875
940
|
type: Component,
|
|
876
941
|
args: [{
|
|
877
942
|
selector: 'dbx-firebase-oidc-client-list-view-item-default',
|
|
@@ -885,8 +950,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
885
950
|
}], propDecorators: { entry: [{ type: i0.Input, args: [{ isSignal: true, alias: "entry", required: true }] }] } });
|
|
886
951
|
class DbxFirebaseOidcEntryClientListViewItemComponent extends AbstractDbxValueListViewItemComponent {
|
|
887
952
|
clientType = OIDC_ENTRY_CLIENT_TYPE;
|
|
888
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
889
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
953
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientListViewItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
954
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseOidcEntryClientListViewItemComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
|
890
955
|
@switch (itemValue.type) {
|
|
891
956
|
@case (clientType) {
|
|
892
957
|
<dbx-firebase-oidc-client-list-view-item-client [entry]="itemValue"></dbx-firebase-oidc-client-list-view-item-client>
|
|
@@ -897,7 +962,7 @@ class DbxFirebaseOidcEntryClientListViewItemComponent extends AbstractDbxValueLi
|
|
|
897
962
|
}
|
|
898
963
|
`, isInline: true, dependencies: [{ kind: "component", type: DbxFirebaseOidcEntryClientListViewItemClientComponent, selector: "dbx-firebase-oidc-client-list-view-item-client", inputs: ["entry"] }, { kind: "component", type: DbxFirebaseOidcEntryClientListViewItemDefaultComponent, selector: "dbx-firebase-oidc-client-list-view-item-default", inputs: ["entry"] }] });
|
|
899
964
|
}
|
|
900
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
965
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientListViewItemComponent, decorators: [{
|
|
901
966
|
type: Component,
|
|
902
967
|
args: [{
|
|
903
968
|
template: `
|
|
@@ -915,7 +980,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
915
980
|
}]
|
|
916
981
|
}] });
|
|
917
982
|
|
|
918
|
-
/**
|
|
983
|
+
/**
|
|
984
|
+
* Document store for a single {@link OidcEntry}.
|
|
985
|
+
*/
|
|
919
986
|
class OidcEntryDocumentStore extends AbstractDbxFirebaseDocumentStore {
|
|
920
987
|
oidcModelFunctions = inject(OidcModelFunctions);
|
|
921
988
|
_latestClientSecret$ = completeOnDestroy(new BehaviorSubject(undefined));
|
|
@@ -943,10 +1010,10 @@ class OidcEntryDocumentStore extends AbstractDbxFirebaseDocumentStore {
|
|
|
943
1010
|
}
|
|
944
1011
|
});
|
|
945
1012
|
deleteClient = firebaseDocumentStoreDeleteFunction(this, this.oidcModelFunctions.oidcEntry.deleteOidcEntry.client);
|
|
946
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
947
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
1013
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: OidcEntryDocumentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1014
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: OidcEntryDocumentStore });
|
|
948
1015
|
}
|
|
949
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1016
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: OidcEntryDocumentStore, decorators: [{
|
|
950
1017
|
type: Injectable
|
|
951
1018
|
}], ctorParameters: () => [] });
|
|
952
1019
|
|
|
@@ -959,7 +1026,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
959
1026
|
class DbxFirebaseOidcEntryClientCreateComponent {
|
|
960
1027
|
oidcEntryDocumentStore = inject(OidcEntryDocumentStore);
|
|
961
1028
|
formConfig = { mode: 'create' };
|
|
962
|
-
createClientOwnerTarget = input(...(ngDevMode ? [undefined, { debugName: "createClientOwnerTarget" }] : []));
|
|
1029
|
+
createClientOwnerTarget = input(...(ngDevMode ? [undefined, { debugName: "createClientOwnerTarget" }] : /* istanbul ignore next */ []));
|
|
963
1030
|
clientCreated = output();
|
|
964
1031
|
handleCreateClient = (value, context) => {
|
|
965
1032
|
const params = value;
|
|
@@ -973,15 +1040,15 @@ class DbxFirebaseOidcEntryClientCreateComponent {
|
|
|
973
1040
|
}
|
|
974
1041
|
})));
|
|
975
1042
|
};
|
|
976
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
977
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.
|
|
1043
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientCreateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1044
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.3", type: DbxFirebaseOidcEntryClientCreateComponent, isStandalone: true, selector: "dbx-firebase-oidc-entry-client-create", inputs: { createClientOwnerTarget: { classPropertyName: "createClientOwnerTarget", publicName: "createClientOwnerTarget", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clientCreated: "clientCreated" }, ngImport: i0, template: `
|
|
978
1045
|
<div dbxAction dbxActionEnforceModified [dbxActionHandler]="handleCreateClient" dbxActionSnackbarError>
|
|
979
1046
|
<dbx-firebase-oidc-client-form dbxActionForm [config]="formConfig"></dbx-firebase-oidc-client-form>
|
|
980
1047
|
<dbx-button [raised]="true" dbxActionButton text="Create"></dbx-button>
|
|
981
1048
|
</div>
|
|
982
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: DbxActionSnackbarErrorDirective, selector: "[dbxActionSnackbarError]", inputs: ["dbxActionSnackbarError"] }, { kind: "directive", type: DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: DbxActionEnforceModifiedDirective, selector: "[dbxActionEnforceModified]", inputs: ["dbxActionEnforceModified"] }, { kind: "directive", type: DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: DbxActionFormDirective, selector: "[dbxActionForm]", inputs: ["dbxActionFormDisabledOnWorking", "dbxActionFormIsValid", "dbxActionFormIsEqual", "dbxActionFormIsModified", "dbxActionFormMapValue"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }, { kind: "directive", type: DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxFirebaseOidcEntryClientFormComponent, selector: "dbx-firebase-oidc-client-form" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1049
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: DbxActionSnackbarErrorDirective, selector: "[dbxActionSnackbarError]", inputs: ["dbxActionSnackbarError"] }, { kind: "directive", type: DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: DbxActionEnforceModifiedDirective, selector: "[dbxActionEnforceModified]", inputs: ["dbxActionEnforceModified"] }, { kind: "directive", type: DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: DbxActionFormDirective, selector: "[dbxActionForm]", inputs: ["dbxActionFormDisabledOnWorking", "dbxActionFormIsValid", "dbxActionFormIsEqual", "dbxActionFormIsModified", "dbxActionFormMapValue"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }, { kind: "directive", type: DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxFirebaseOidcEntryClientFormComponent, selector: "dbx-firebase-oidc-client-form" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
983
1050
|
}
|
|
984
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1051
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientCreateComponent, decorators: [{
|
|
985
1052
|
type: Component,
|
|
986
1053
|
args: [{
|
|
987
1054
|
selector: 'dbx-firebase-oidc-entry-client-create',
|
|
@@ -1033,12 +1100,16 @@ function base64UrlEncode(bytes) {
|
|
|
1033
1100
|
class DbxFirebaseOidcEntryClientTestComponent {
|
|
1034
1101
|
oidcEntryDocumentStore = inject(OidcEntryDocumentStore);
|
|
1035
1102
|
oidcConfigService = inject(DbxFirebaseOidcConfigService);
|
|
1036
|
-
/**
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1103
|
+
/**
|
|
1104
|
+
* Scopes the user can pick from. Overrides the service default when provided.
|
|
1105
|
+
*/
|
|
1106
|
+
availableScopes = input(undefined, ...(ngDevMode ? [{ debugName: "availableScopes" }] : /* istanbul ignore next */ []));
|
|
1107
|
+
/**
|
|
1108
|
+
* Path to the authorization endpoint. Overrides the service default when provided.
|
|
1109
|
+
*/
|
|
1110
|
+
oidcAuthorizationEndpointApiPath = input(undefined, ...(ngDevMode ? [{ debugName: "oidcAuthorizationEndpointApiPath" }] : /* istanbul ignore next */ []));
|
|
1111
|
+
resolvedAvailableScopes = computed(() => this.availableScopes() ?? this.oidcConfigService.availableScopes, ...(ngDevMode ? [{ debugName: "resolvedAvailableScopes" }] : /* istanbul ignore next */ []));
|
|
1112
|
+
resolvedAuthorizationEndpointPath = computed(() => this.oidcAuthorizationEndpointApiPath() ?? this.oidcConfigService.oidcAuthorizationEndpointApiPath, ...(ngDevMode ? [{ debugName: "resolvedAuthorizationEndpointPath" }] : /* istanbul ignore next */ []));
|
|
1042
1113
|
// MARK: Derived Store Data
|
|
1043
1114
|
redirectUrisSignal = toSignal(this.oidcEntryDocumentStore.data$.pipe(map((data) => data.payload?.redirect_uris ?? [])));
|
|
1044
1115
|
clientIdSignal = toSignal(this.oidcEntryDocumentStore.data$.pipe(map((data) => data.payload?.client_id)));
|
|
@@ -1050,7 +1121,7 @@ class DbxFirebaseOidcEntryClientTestComponent {
|
|
|
1050
1121
|
return { redirectUris, availableScopes };
|
|
1051
1122
|
}
|
|
1052
1123
|
return undefined;
|
|
1053
|
-
}, ...(ngDevMode ? [{ debugName: "formConfig" }] : []));
|
|
1124
|
+
}, ...(ngDevMode ? [{ debugName: "formConfig" }] : /* istanbul ignore next */ []));
|
|
1054
1125
|
formTemplate$ = this.oidcEntryDocumentStore.data$.pipe(map((data) => {
|
|
1055
1126
|
const payload = data.payload;
|
|
1056
1127
|
const formValue = {
|
|
@@ -1061,12 +1132,14 @@ class DbxFirebaseOidcEntryClientTestComponent {
|
|
|
1061
1132
|
return formValue;
|
|
1062
1133
|
}));
|
|
1063
1134
|
// MARK: PKCE
|
|
1064
|
-
codeVerifier = signal(generatePkceCodeVerifier(), ...(ngDevMode ? [{ debugName: "codeVerifier" }] : []));
|
|
1065
|
-
codeChallenge = signal('', ...(ngDevMode ? [{ debugName: "codeChallenge" }] : []));
|
|
1066
|
-
state = signal(generateRandomString(), ...(ngDevMode ? [{ debugName: "state" }] : []));
|
|
1067
|
-
nonce = signal(generateRandomString(), ...(ngDevMode ? [{ debugName: "nonce" }] : []));
|
|
1068
|
-
/**
|
|
1069
|
-
|
|
1135
|
+
codeVerifier = signal(generatePkceCodeVerifier(), ...(ngDevMode ? [{ debugName: "codeVerifier" }] : /* istanbul ignore next */ []));
|
|
1136
|
+
codeChallenge = signal('', ...(ngDevMode ? [{ debugName: "codeChallenge" }] : /* istanbul ignore next */ []));
|
|
1137
|
+
state = signal(generateRandomString(), ...(ngDevMode ? [{ debugName: "state" }] : /* istanbul ignore next */ []));
|
|
1138
|
+
nonce = signal(generateRandomString(), ...(ngDevMode ? [{ debugName: "nonce" }] : /* istanbul ignore next */ []));
|
|
1139
|
+
/**
|
|
1140
|
+
* The current form value, updated by the form via dbxFormValueChange.
|
|
1141
|
+
*/
|
|
1142
|
+
formValue = signal(undefined, ...(ngDevMode ? [{ debugName: "formValue" }] : /* istanbul ignore next */ []));
|
|
1070
1143
|
authorizationUrlSignal = computed(() => {
|
|
1071
1144
|
const clientId = this.clientIdSignal();
|
|
1072
1145
|
const codeChallenge = this.codeChallenge();
|
|
@@ -1087,7 +1160,7 @@ class DbxFirebaseOidcEntryClientTestComponent {
|
|
|
1087
1160
|
code_challenge_method: 'S256'
|
|
1088
1161
|
});
|
|
1089
1162
|
return `${this.resolvedAuthorizationEndpointPath()}?${params.toString()}`;
|
|
1090
|
-
}, ...(ngDevMode ? [{ debugName: "authorizationUrlSignal" }] : []));
|
|
1163
|
+
}, ...(ngDevMode ? [{ debugName: "authorizationUrlSignal" }] : /* istanbul ignore next */ []));
|
|
1091
1164
|
constructor() {
|
|
1092
1165
|
this._updateCodeChallenge();
|
|
1093
1166
|
}
|
|
@@ -1107,12 +1180,12 @@ class DbxFirebaseOidcEntryClientTestComponent {
|
|
|
1107
1180
|
this._updateCodeChallenge();
|
|
1108
1181
|
}
|
|
1109
1182
|
_updateCodeChallenge() {
|
|
1110
|
-
generatePkceCodeChallenge(this.codeVerifier()).then((challenge) => {
|
|
1183
|
+
void generatePkceCodeChallenge(this.codeVerifier()).then((challenge) => {
|
|
1111
1184
|
this.codeChallenge.set(challenge);
|
|
1112
1185
|
});
|
|
1113
1186
|
}
|
|
1114
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1115
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
1187
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientTestComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1188
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseOidcEntryClientTestComponent, isStandalone: true, selector: "dbx-firebase-oidc-entry-client-test", inputs: { availableScopes: { classPropertyName: "availableScopes", publicName: "availableScopes", isSignal: true, isRequired: false, transformFunction: null }, oidcAuthorizationEndpointApiPath: { classPropertyName: "oidcAuthorizationEndpointApiPath", publicName: "oidcAuthorizationEndpointApiPath", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1116
1189
|
@if (formConfig()) {
|
|
1117
1190
|
<dbx-firebase-oidc-client-test-form [dbxFormSource]="formTemplate$" dbxFormSourceMode="always" [config]="formConfig()" (dbxFormValueChange)="onFormValueChange($event)"></dbx-firebase-oidc-client-test-form>
|
|
1118
1191
|
<dbx-content-pit class="dbx-block dbx-mb3" [rounded]="true">
|
|
@@ -1134,9 +1207,9 @@ class DbxFirebaseOidcEntryClientTestComponent {
|
|
|
1134
1207
|
<dbx-button class="dbx-ml2" text="Regenerate PKCE" icon="refresh" (buttonClick)="regeneratePkce()"></dbx-button>
|
|
1135
1208
|
</div>
|
|
1136
1209
|
}
|
|
1137
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DbxFirebaseOidcEntryClientTestFormComponent, selector: "dbx-firebase-oidc-client-test-form" }, { kind: "directive", type: DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: ["dbxFormSourceMode", "dbxFormSource"] }, { kind: "directive", type: DbxFormValueChangeDirective, selector: "[dbxFormValueChange]", outputs: ["dbxFormValueChange"] }, { kind: "directive", type: DbxContentPitDirective, selector: "dbx-content-pit, [dbxContentPit]", inputs: ["scrollable", "rounded"] }, { kind: "component", type: DbxDetailBlockComponent, selector: "dbx-detail-block", inputs: ["icon", "header", "alignHeader", "bigHeader"] }, { kind: "component", type: DbxClickToCopyTextComponent, selector: "dbx-click-to-copy-text", inputs: ["copyText", "showIcon", "highlighted", "clipboardSnackbarMessagesConfig", "clipboardSnackbarMessagesEnabled", "clickToCopyIcon", "clickIconToCopyOnly"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1210
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: DbxFirebaseOidcEntryClientTestFormComponent, selector: "dbx-firebase-oidc-client-test-form" }, { kind: "directive", type: DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: ["dbxFormSourceMode", "dbxFormSource"] }, { kind: "directive", type: DbxFormValueChangeDirective, selector: "[dbxFormValueChange]", outputs: ["dbxFormValueChange"] }, { kind: "directive", type: DbxContentPitDirective, selector: "dbx-content-pit, [dbxContentPit]", inputs: ["scrollable", "rounded"] }, { kind: "component", type: DbxDetailBlockComponent, selector: "dbx-detail-block", inputs: ["icon", "header", "alignHeader", "bigHeader"] }, { kind: "component", type: DbxClickToCopyTextComponent, selector: "dbx-click-to-copy-text", inputs: ["copyText", "showIcon", "highlighted", "clipboardSnackbarMessagesConfig", "clipboardSnackbarMessagesEnabled", "clickToCopyIcon", "clickIconToCopyOnly"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1138
1211
|
}
|
|
1139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1212
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientTestComponent, decorators: [{
|
|
1140
1213
|
type: Component,
|
|
1141
1214
|
args: [{
|
|
1142
1215
|
selector: 'dbx-firebase-oidc-entry-client-test',
|
|
@@ -1196,15 +1269,15 @@ class DbxFirebaseOidcEntryClientUpdateComponent {
|
|
|
1196
1269
|
const params = value;
|
|
1197
1270
|
context.startWorkingWithLoadingStateObservable(this.oidcEntryDocumentStore.updateClient(params));
|
|
1198
1271
|
};
|
|
1199
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1200
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.
|
|
1272
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientUpdateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1273
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.3", type: DbxFirebaseOidcEntryClientUpdateComponent, isStandalone: true, selector: "dbx-firebase-oidc-entry-client-update", ngImport: i0, template: `
|
|
1201
1274
|
<div dbxAction dbxActionEnforceModified [dbxActionHandler]="handleUpdateClient" dbxActionSnackbarError>
|
|
1202
1275
|
<dbx-firebase-oidc-client-form dbxActionForm [dbxFormSource]="formTemplate$" [config]="formConfig"></dbx-firebase-oidc-client-form>
|
|
1203
1276
|
<dbx-button [raised]="true" dbxActionButton text="Save"></dbx-button>
|
|
1204
1277
|
</div>
|
|
1205
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: DbxActionSnackbarErrorDirective, selector: "[dbxActionSnackbarError]", inputs: ["dbxActionSnackbarError"] }, { kind: "directive", type: DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: DbxActionEnforceModifiedDirective, selector: "[dbxActionEnforceModified]", inputs: ["dbxActionEnforceModified"] }, { kind: "directive", type: DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: DbxActionFormDirective, selector: "[dbxActionForm]", inputs: ["dbxActionFormDisabledOnWorking", "dbxActionFormIsValid", "dbxActionFormIsEqual", "dbxActionFormIsModified", "dbxActionFormMapValue"] }, { kind: "directive", type: DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: ["dbxFormSourceMode", "dbxFormSource"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }, { kind: "directive", type: DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxFirebaseOidcEntryClientFormComponent, selector: "dbx-firebase-oidc-client-form" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1278
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: DbxActionSnackbarErrorDirective, selector: "[dbxActionSnackbarError]", inputs: ["dbxActionSnackbarError"] }, { kind: "directive", type: DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: DbxActionEnforceModifiedDirective, selector: "[dbxActionEnforceModified]", inputs: ["dbxActionEnforceModified"] }, { kind: "directive", type: DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: DbxActionFormDirective, selector: "[dbxActionForm]", inputs: ["dbxActionFormDisabledOnWorking", "dbxActionFormIsValid", "dbxActionFormIsEqual", "dbxActionFormIsModified", "dbxActionFormMapValue"] }, { kind: "directive", type: DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: ["dbxFormSourceMode", "dbxFormSource"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }, { kind: "directive", type: DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxFirebaseOidcEntryClientFormComponent, selector: "dbx-firebase-oidc-client-form" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1206
1279
|
}
|
|
1207
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1280
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientUpdateComponent, decorators: [{
|
|
1208
1281
|
type: Component,
|
|
1209
1282
|
args: [{
|
|
1210
1283
|
selector: 'dbx-firebase-oidc-entry-client-update',
|
|
@@ -1238,8 +1311,8 @@ class DbxFirebaseOidcEntryClientViewComponent {
|
|
|
1238
1311
|
handleRotateClientSecret = (_, context) => {
|
|
1239
1312
|
context.startWorkingWithLoadingStateObservable(this.oidcEntryDocumentStore.rotateClientSecret({}));
|
|
1240
1313
|
};
|
|
1241
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1242
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
1314
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1315
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.3", type: DbxFirebaseOidcEntryClientViewComponent, isStandalone: true, selector: "dbx-firebase-oidc-entry-client-view", ngImport: i0, template: `
|
|
1243
1316
|
<dbx-content-pit [rounded]="true">
|
|
1244
1317
|
<dbx-detail-block class="dbx-pb4" icon="key" header="Client ID">
|
|
1245
1318
|
<dbx-click-to-copy-text [copyText]="clientIdSignal()">{{ clientIdSignal() }}</dbx-click-to-copy-text>
|
|
@@ -1256,9 +1329,9 @@ class DbxFirebaseOidcEntryClientViewComponent {
|
|
|
1256
1329
|
}
|
|
1257
1330
|
</dbx-detail-block>
|
|
1258
1331
|
</dbx-content-pit>
|
|
1259
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: DbxContentPitDirective, selector: "dbx-content-pit, [dbxContentPit]", inputs: ["scrollable", "rounded"] }, { kind: "component", type: DbxDetailBlockComponent, selector: "dbx-detail-block", inputs: ["icon", "header", "alignHeader", "bigHeader"] }, { kind: "component", type: DbxClickToCopyTextComponent, selector: "dbx-click-to-copy-text", inputs: ["copyText", "showIcon", "highlighted", "clipboardSnackbarMessagesConfig", "clipboardSnackbarMessagesEnabled", "clickToCopyIcon", "clickIconToCopyOnly"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }, { kind: "directive", type: DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "directive", type: DbxActionConfirmDirective, selector: "[dbxActionConfirm]", inputs: ["dbxActionConfirm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1332
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: DbxContentPitDirective, selector: "dbx-content-pit, [dbxContentPit]", inputs: ["scrollable", "rounded"] }, { kind: "component", type: DbxDetailBlockComponent, selector: "dbx-detail-block", inputs: ["icon", "header", "alignHeader", "bigHeader"] }, { kind: "component", type: DbxClickToCopyTextComponent, selector: "dbx-click-to-copy-text", inputs: ["copyText", "showIcon", "highlighted", "clipboardSnackbarMessagesConfig", "clipboardSnackbarMessagesEnabled", "clickToCopyIcon", "clickIconToCopyOnly"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "tonal", "raised", "stroked", "flat", "iconOnly", "fab", "allowClickPropagation", "mode"] }, { kind: "directive", type: DbxActionDirective, selector: "dbx-action,[dbxAction]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "directive", type: DbxActionConfirmDirective, selector: "[dbxActionConfirm]", inputs: ["dbxActionConfirm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1260
1333
|
}
|
|
1261
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1334
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: DbxFirebaseOidcEntryClientViewComponent, decorators: [{
|
|
1262
1335
|
type: Component,
|
|
1263
1336
|
args: [{
|
|
1264
1337
|
selector: 'dbx-firebase-oidc-entry-client-view',
|
|
@@ -1286,27 +1359,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1286
1359
|
}]
|
|
1287
1360
|
}] });
|
|
1288
1361
|
|
|
1289
|
-
/**
|
|
1362
|
+
/**
|
|
1363
|
+
* Collection store for querying {@link OidcEntry} documents.
|
|
1364
|
+
*/
|
|
1290
1365
|
class OidcEntryCollectionStore extends AbstractDbxFirebaseCollectionStore {
|
|
1291
1366
|
constructor() {
|
|
1292
1367
|
super({ firestoreCollection: inject(OidcModelFirestoreCollections).oidcEntryCollection });
|
|
1293
1368
|
}
|
|
1294
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1295
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
1369
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: OidcEntryCollectionStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1370
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: OidcEntryCollectionStore });
|
|
1296
1371
|
}
|
|
1297
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1372
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: OidcEntryCollectionStore, decorators: [{
|
|
1298
1373
|
type: Injectable
|
|
1299
1374
|
}], ctorParameters: () => [] });
|
|
1300
1375
|
|
|
1301
|
-
/**
|
|
1376
|
+
/**
|
|
1377
|
+
* Directive providing a {@link OidcEntryCollectionStore} for querying {@link OidcEntry} documents.
|
|
1378
|
+
*/
|
|
1302
1379
|
class OidcEntryCollectionStoreDirective extends DbxFirebaseCollectionStoreDirective {
|
|
1303
1380
|
constructor() {
|
|
1304
1381
|
super(inject(OidcEntryCollectionStore));
|
|
1305
1382
|
}
|
|
1306
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1307
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
1383
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: OidcEntryCollectionStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1384
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: OidcEntryCollectionStoreDirective, isStandalone: true, selector: "[dbxOidcEntryCollection]", providers: provideDbxFirebaseCollectionStoreDirective(OidcEntryCollectionStoreDirective, OidcEntryCollectionStore), usesInheritance: true, ngImport: i0 });
|
|
1308
1385
|
}
|
|
1309
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1386
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: OidcEntryCollectionStoreDirective, decorators: [{
|
|
1310
1387
|
type: Directive,
|
|
1311
1388
|
args: [{
|
|
1312
1389
|
selector: '[dbxOidcEntryCollection]',
|
|
@@ -1315,15 +1392,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1315
1392
|
}]
|
|
1316
1393
|
}], ctorParameters: () => [] });
|
|
1317
1394
|
|
|
1318
|
-
/**
|
|
1395
|
+
/**
|
|
1396
|
+
* Directive providing a {@link OidcEntryDocumentStore} for accessing a single {@link OidcEntry} document.
|
|
1397
|
+
*/
|
|
1319
1398
|
class OidcEntryDocumentStoreDirective extends DbxFirebaseDocumentStoreDirective {
|
|
1320
1399
|
constructor() {
|
|
1321
1400
|
super(inject(OidcEntryDocumentStore));
|
|
1322
1401
|
}
|
|
1323
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
1324
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.
|
|
1402
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: OidcEntryDocumentStoreDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
1403
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.3", type: OidcEntryDocumentStoreDirective, isStandalone: true, selector: "[dbxOidcEntryDocument]", providers: provideDbxFirebaseDocumentStoreDirective(OidcEntryDocumentStoreDirective, OidcEntryDocumentStore), usesInheritance: true, ngImport: i0 });
|
|
1325
1404
|
}
|
|
1326
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
1405
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.3", ngImport: i0, type: OidcEntryDocumentStoreDirective, decorators: [{
|
|
1327
1406
|
type: Directive,
|
|
1328
1407
|
args: [{
|
|
1329
1408
|
selector: '[dbxOidcEntryDocument]',
|
|
@@ -1334,6 +1413,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
1334
1413
|
|
|
1335
1414
|
/**
|
|
1336
1415
|
* Provider factory for the {@link OidcModelFirestoreCollections}.
|
|
1416
|
+
*
|
|
1417
|
+
* @param appCollection - The application's Firestore collection that must implement {@link OidcModelFirestoreCollections}.
|
|
1418
|
+
* @returns The validated OidcModelFirestoreCollections instance.
|
|
1337
1419
|
*/
|
|
1338
1420
|
function provideOidcModelFirestoreCollections(appCollection) {
|
|
1339
1421
|
if (!appCollection.oidcEntryCollection) {
|
|
@@ -1347,6 +1429,9 @@ function provideOidcModelFirestoreCollections(appCollection) {
|
|
|
1347
1429
|
* When `oauthInteractionRoute` is configured in {@link DbxFirebaseOidcConfig}, an app initializer
|
|
1348
1430
|
* is registered that adds that route to the {@link DbxAppAuthRouterService} ignored routes set,
|
|
1349
1431
|
* preventing auth effects from redirecting away during the OIDC interaction flow.
|
|
1432
|
+
*
|
|
1433
|
+
* @param config - Configuration specifying the app collection class, OIDC settings, and provider options.
|
|
1434
|
+
* @returns EnvironmentProviders for the OIDC module.
|
|
1350
1435
|
*/
|
|
1351
1436
|
function provideDbxFirebaseOidc(config) {
|
|
1352
1437
|
const providers = [{ provide: DbxFirebaseOidcConfig, useValue: config.oidcConfig }, DbxFirebaseOidcConfigService];
|