@odx/auth 3.3.0 → 3.4.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/esm2020/index.mjs +2 -2
- package/esm2020/lib/auth.config.mjs +3 -1
- package/esm2020/lib/auth.providers.mjs +3 -9
- package/esm2020/lib/components/auth-loading-screen/auth-loading-screen.component.mjs +41 -0
- package/esm2020/lib/components/index.mjs +2 -0
- package/esm2020/lib/plugins/index.mjs +2 -1
- package/esm2020/lib/plugins/loading-screen-plugin.mjs +16 -0
- package/fesm2015/odx-auth.mjs +67 -64
- package/fesm2015/odx-auth.mjs.map +1 -1
- package/fesm2020/odx-auth.mjs +66 -63
- package/fesm2020/odx-auth.mjs.map +1 -1
- package/index.d.ts +1 -1
- package/lib/auth.config.d.ts +3 -0
- package/lib/components/auth-loading-screen/auth-loading-screen.component.d.ts +11 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/plugins/index.d.ts +1 -0
- package/lib/plugins/loading-screen-plugin.d.ts +2 -0
- package/package.json +1 -1
- package/esm2020/lib/auth-overlay.component.mjs +0 -46
- package/lib/auth-overlay.component.d.ts +0 -9
package/esm2020/index.mjs
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export * from './lib/auth-overlay.component';
|
|
2
1
|
export * from './lib/auth.component';
|
|
3
2
|
export * from './lib/auth.config';
|
|
4
3
|
export * from './lib/auth.directive';
|
|
@@ -7,9 +6,10 @@ export * from './lib/auth.module';
|
|
|
7
6
|
export * from './lib/auth.providers';
|
|
8
7
|
export * from './lib/auth.service';
|
|
9
8
|
export * from './lib/auth.typings';
|
|
9
|
+
export * from './lib/components';
|
|
10
10
|
export * from './lib/directives';
|
|
11
11
|
export * from './lib/helpers';
|
|
12
12
|
export * from './lib/models';
|
|
13
13
|
export * from './lib/plugins';
|
|
14
14
|
export * from './lib/unauth.guard';
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoLmNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGgubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGgucHJvdmlkZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2F1dGguc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdXRoLnR5cGluZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlbHBlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BsdWdpbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdW5hdXRoLmd1YXJkJztcbiJdfQ==
|
|
@@ -35,5 +35,7 @@ export const { AuthDefaultConfig, AuthConfig, injectAuthConfig, provideAuthConfi
|
|
|
35
35
|
showRedirectOverlay: false,
|
|
36
36
|
plugins: [],
|
|
37
37
|
defaultAuthorizedHandler: null,
|
|
38
|
+
enableLoadingScreen: false,
|
|
39
|
+
loadingScreenMessage: null,
|
|
38
40
|
});
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBSTFFLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUNwRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQW9DO0lBQzlELEdBQUcsRUFBRSw4Q0FBOEM7SUFDbkQsS0FBSyxFQUFFLCtDQUErQztJQUN0RCxJQUFJLEVBQUUsMENBQTBDO0NBQ2pELENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0Isd0JBQXdCLEVBQUU7SUFDckcsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Q0FDbEIsQ0FBQyxDQUFDO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQWUsb0JBQW9CLEVBQUU7SUFDckYsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRWxELE9BQU8sQ0FBQyxHQUFHLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBK0JILE1BQU0sQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRTtJQUM1SCxXQUFXLEVBQUUsTUFBTTtJQUNuQixZQUFZLEVBQUUsZ0JBQWdCO0lBQzlCLFdBQVcsRUFBRSxFQUFFO0lBQ2YsYUFBYSxFQUFFLElBQUk7SUFDbkIsY0FBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtJQUM1QixlQUFlLEVBQUUsS0FBSztJQUN0QixZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUN0QixNQUFNLEtBQUssQ0FBQztJQUNkLENBQUM7SUFDRCxjQUFjO0lBQ2QsWUFBWTtJQUNaLGVBQWU7SUFDZixtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLE9BQU8sRUFBRSxFQUFFO0lBQ1gsd0JBQXdCLEVBQUUsSUFBSTtJQUM5QixtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLG9CQUFvQixFQUFFLElBQUk7Q0FDYixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljVGV4dENvbnRlbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBjcmVhdGVDb25maWdUb2tlbnMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgT0F1dGhFcnJvckV2ZW50LCBPQXV0aFN0b3JhZ2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IGNyZWF0ZUluaXRpYWxzLCByZXNvbHZlRW1haWwsIHJlc29sdmVVc2VybmFtZSB9IGZyb20gJy4vaGVscGVycyc7XG5cbmltcG9ydCB7IEF1dGhFbnZpcm9ubWVudCwgQXV0aG9yaXplZEhhbmRsZXIsIEF1dGhQbHVnaW4sIEF1dGhQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BVVRIX1NDT1BFUyA9IFsnb3BlbmlkJywgJ3Byb2ZpbGUnLCAnZW1haWwnLCAnb2ZmbGluZV9hY2Nlc3MnXTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0lTU1VFUlM6IFJlY29yZDxBdXRoRW52aXJvbm1lbnQsIHN0cmluZz4gPSB7XG4gIGRldjogJ2h0dHBzOi8vZGV2LmxvZ2luLmRyYWVnZXIuY29tL29hdXRoMi9kZWZhdWx0JyxcbiAgc3RhZ2U6ICdodHRwczovL3Rlc3QubG9naW4uZHJhZWdlci5jb20vb2F1dGgyL2RlZmF1bHQnLFxuICBwcm9kOiAnaHR0cHM6Ly9sb2dpbi5kcmFlZ2VyLmNvbS9vYXV0aDIvZGVmYXVsdCcsXG59O1xuZXhwb3J0IGNvbnN0IE9EWF9BVVRIX0NPUkVfUExVR0lOUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBdXRoUGx1Z2luRmFjdG9yeVtdPignQG9keC9hdXRoOjpDb3JlUGx1Z2lucycsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiBbXSxcbn0pO1xuZXhwb3J0IGNvbnN0IE9EWF9BVVRIX1BMVUdJTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48QXV0aFBsdWdpbltdPignQG9keC9hdXRoOjpQbHVnaW5zJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IHtcbiAgICBjb25zdCB7IHBsdWdpbnMgfSA9IGluamVjdEF1dGhDb25maWcoKTtcbiAgICBjb25zdCBjb3JlUGx1Z2lucyA9IGluamVjdChPRFhfQVVUSF9DT1JFX1BMVUdJTlMpO1xuXG4gICAgcmV0dXJuIFsuLi5jb3JlUGx1Z2lucywgLi4ucGx1Z2luc10ubWFwKChwbHVnaW5GYWN0b3J5KSA9PiBwbHVnaW5GYWN0b3J5KCkpO1xuICB9LFxufSk7XG5cbmV4cG9ydCB0eXBlIEF1dGhFcnJvckhhbmRsZXJGbiA9IChlcnJvcjogT0F1dGhFcnJvckV2ZW50KSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgUmVzb2x2ZVVzZXJuYW1lRm4gPSAocmF3Q2xhaW1zOiBPZHhBdXRoLlJhd0lkZW50aXR5Q2xhaW1zKSA9PiBzdHJpbmc7XG5leHBvcnQgdHlwZSBSZXNvbHZlRW1haWxGbiA9IChyYXdDbGFpbXM6IE9keEF1dGguUmF3SWRlbnRpdHlDbGFpbXMpID0+IHN0cmluZztcbmV4cG9ydCB0eXBlIENyZWF0ZUluaXRpYWxzRm4gPSAodmFsdWU6IHN0cmluZykgPT4gc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhDb25maWcge1xuICBlbnZpcm9ubWVudDogQXV0aEVudmlyb25tZW50O1xuICBjbGllbnRJZD86IHN0cmluZztcbiAgaXNzdWVyPzogc3RyaW5nO1xuICByZWRpcmVjdFBhdGg6IHN0cmluZztcbiAgYWxsb3dlZFVybHM6IEFycmF5PHN0cmluZyB8IFJlZ0V4cD47XG4gIHRpbWVvdXRGYWN0b3I6IG51bWJlcjtcbiAgbWF4T2ZmbGluZVRpbWU6IG51bWJlcjtcbiAgbG9hZFVzZXJQcm9maWxlOiBib29sZWFuO1xuICBwb3N0TG9nb3V0UmVkaXJlY3RVcmw/OiBzdHJpbmc7XG4gIHNjb3Blcz86IHN0cmluZ1tdO1xuICBkaXNjb3ZlcnlVcmw/OiBzdHJpbmc7XG4gIGVycm9ySGFuZGxlcjogQXV0aEVycm9ySGFuZGxlckZuO1xuICBjcmVhdGVJbml0aWFsczogQ3JlYXRlSW5pdGlhbHNGbjtcbiAgcmVzb2x2ZUVtYWlsOiBSZXNvbHZlRW1haWxGbjtcbiAgcmVzb2x2ZVVzZXJuYW1lOiBSZXNvbHZlVXNlcm5hbWVGbjtcbiAgc3RvcmFnZT86IE9BdXRoU3RvcmFnZTtcbiAgcGx1Z2luczogQXV0aFBsdWdpbkZhY3RvcnlbXTtcbiAgc2hvd1JlZGlyZWN0T3ZlcmxheTogYm9vbGVhbjtcbiAgZGVmYXVsdEF1dGhvcml6ZWRIYW5kbGVyPzogQXV0aG9yaXplZEhhbmRsZXIgfCBudWxsO1xuICBlbmFibGVMb2FkaW5nU2NyZWVuOiBib29sZWFuO1xuICBsb2FkaW5nU2NyZWVuTWVzc2FnZT86IER5bmFtaWNUZXh0Q29udGVudCB8IG51bGw7XG59XG5cbmV4cG9ydCBjb25zdCB7IEF1dGhEZWZhdWx0Q29uZmlnLCBBdXRoQ29uZmlnLCBpbmplY3RBdXRoQ29uZmlnLCBwcm92aWRlQXV0aENvbmZpZyB9ID0gY3JlYXRlQ29uZmlnVG9rZW5zKCdBdXRoJywgJ0BvZHgvYXV0aCcsIHtcbiAgZW52aXJvbm1lbnQ6ICdwcm9kJyxcbiAgcmVkaXJlY3RQYXRoOiAnbG9naW4vY2FsbGJhY2snLFxuICBhbGxvd2VkVXJsczogW10sXG4gIHRpbWVvdXRGYWN0b3I6IDAuNzUsXG4gIG1heE9mZmxpbmVUaW1lOiAyNCAqIDYwICogNjAsIC8vIDEgZGF5XG4gIGxvYWRVc2VyUHJvZmlsZTogZmFsc2UsXG4gIGVycm9ySGFuZGxlcjogKGVycm9yKSA9PiB7XG4gICAgdGhyb3cgZXJyb3I7XG4gIH0sXG4gIGNyZWF0ZUluaXRpYWxzLFxuICByZXNvbHZlRW1haWwsXG4gIHJlc29sdmVVc2VybmFtZSxcbiAgc2hvd1JlZGlyZWN0T3ZlcmxheTogZmFsc2UsXG4gIHBsdWdpbnM6IFtdLFxuICBkZWZhdWx0QXV0aG9yaXplZEhhbmRsZXI6IG51bGwsXG4gIGVuYWJsZUxvYWRpbmdTY3JlZW46IGZhbHNlLFxuICBsb2FkaW5nU2NyZWVuTWVzc2FnZTogbnVsbCxcbn0gYXMgQXV0aENvbmZpZyk7XG4iXX0=
|
|
@@ -3,10 +3,9 @@ import { WindowRef } from '@odx/angular';
|
|
|
3
3
|
import { buildUrl, isString } from '@odx/angular/utils';
|
|
4
4
|
import { OAuthModuleConfig, OAuthStorage, provideOAuthClient } from 'angular-oauth2-oidc';
|
|
5
5
|
import { tap } from 'rxjs';
|
|
6
|
-
import { initalizeAuthOverlay } from './auth-overlay.component';
|
|
7
6
|
import { AuthConfig, DEFAULT_AUTH_SCOPES, DEFAULT_ISSUERS, injectAuthConfig, ODX_AUTH_CORE_PLUGINS, provideAuthConfig } from './auth.config';
|
|
8
7
|
import { AuthService } from './auth.service';
|
|
9
|
-
import { coreIdentityPlugin } from './plugins';
|
|
8
|
+
import { coreIdentityPlugin, loadingScreenPlugin } from './plugins';
|
|
10
9
|
export function configureInterceptor() {
|
|
11
10
|
const { allowedUrls } = injectAuthConfig();
|
|
12
11
|
return {
|
|
@@ -53,11 +52,6 @@ export function provideAuth(config) {
|
|
|
53
52
|
useValue: initializeAuthErrorHandler,
|
|
54
53
|
multi: true,
|
|
55
54
|
},
|
|
56
|
-
{
|
|
57
|
-
provide: ENVIRONMENT_INITIALIZER,
|
|
58
|
-
useValue: initalizeAuthOverlay,
|
|
59
|
-
multi: true,
|
|
60
|
-
},
|
|
61
55
|
{
|
|
62
56
|
provide: APP_INITIALIZER,
|
|
63
57
|
useFactory: initalizeAuthConfig,
|
|
@@ -69,8 +63,8 @@ export function provideAuth(config) {
|
|
|
69
63
|
},
|
|
70
64
|
{
|
|
71
65
|
provide: ODX_AUTH_CORE_PLUGINS,
|
|
72
|
-
useValue: [coreIdentityPlugin],
|
|
66
|
+
useValue: [coreIdentityPlugin, loadingScreenPlugin],
|
|
73
67
|
},
|
|
74
68
|
]);
|
|
75
69
|
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvYXV0aC5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBd0IsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RKLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBc0MsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0ksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwRSxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzNDLE9BQU87UUFDTCxjQUFjLEVBQUU7WUFDZCxtQkFBbUIsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDN0ksZUFBZSxFQUFFLElBQUk7U0FDdEI7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSwwQkFBMEI7SUFDeEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBRTVDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDekcsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxHQUFHLGdCQUFnQixFQUFFLENBQUM7SUFDdkksTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM3QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV0RixPQUFPLEdBQUcsRUFBRSxDQUNWLFdBQVcsQ0FBQyxVQUFVLENBQUM7UUFDckIsUUFBUTtRQUNSLE1BQU0sRUFBRSxNQUFNLElBQUksZUFBZSxDQUFDLFdBQVcsQ0FBQztRQUM5QyxLQUFLO1FBQ0wsV0FBVyxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDO1FBQzNDLHFCQUFxQixFQUFFLHFCQUFxQjtRQUM1QyxzQkFBc0IsRUFBRSxJQUFJO1FBQzVCLGlDQUFpQyxFQUFFLENBQUMsWUFBWTtRQUNoRCxZQUFZLEVBQUUsTUFBTTtRQUNwQixvQkFBb0IsRUFBRSxXQUFXLEtBQUssS0FBSztRQUMzQyxhQUFhO0tBQ2QsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQStCLE1BQThDO0lBQ3RHLE9BQU8sd0JBQXdCLENBQUM7UUFDOUIsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1FBQ3pCLGtCQUFrQixFQUFFO1FBQ3BCO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixVQUFVLEVBQUUsb0JBQW9CO1NBQ2pDO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNEO1lBQ0UsT0FBTyxFQUFFLGVBQWU7WUFDeEIsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsWUFBWTtZQUNyQixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVk7U0FDNUY7UUFDRDtZQUNFLE9BQU8sRUFBRSxxQkFBcUI7WUFDOUIsUUFBUSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUM7U0FDcEQ7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBFbnZpcm9ubWVudEluamVjdG9yLCBFbnZpcm9ubWVudFByb3ZpZGVycywgRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsIGluamVjdCwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgYnVpbGRVcmwsIENvbmZpZ0RlcGVuZGVuY2llcywgQ29uZmlnUHJvdmlkZXIsIGlzU3RyaW5nIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IE9BdXRoTW9kdWxlQ29uZmlnLCBPQXV0aFN0b3JhZ2UsIHByb3ZpZGVPQXV0aENsaWVudCB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoQ29uZmlnLCBERUZBVUxUX0FVVEhfU0NPUEVTLCBERUZBVUxUX0lTU1VFUlMsIGluamVjdEF1dGhDb25maWcsIE9EWF9BVVRIX0NPUkVfUExVR0lOUywgcHJvdmlkZUF1dGhDb25maWcgfSBmcm9tICcuL2F1dGguY29uZmlnJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29yZUlkZW50aXR5UGx1Z2luLCBsb2FkaW5nU2NyZWVuUGx1Z2luIH0gZnJvbSAnLi9wbHVnaW5zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ3VyZUludGVyY2VwdG9yKCk6IE9BdXRoTW9kdWxlQ29uZmlnIHtcbiAgY29uc3QgeyBhbGxvd2VkVXJscyB9ID0gaW5qZWN0QXV0aENvbmZpZygpO1xuICByZXR1cm4ge1xuICAgIHJlc291cmNlU2VydmVyOiB7XG4gICAgICBjdXN0b21VcmxWYWxpZGF0aW9uOiAodXJsKSA9PiBhbGxvd2VkVXJscy5zb21lKChhbGxvd2VkVXJsKSA9PiAoaXNTdHJpbmcoYWxsb3dlZFVybCkgPyB1cmwuc3RhcnRzV2l0aChhbGxvd2VkVXJsKSA6ICEhdXJsLm1hdGNoKGFsbG93ZWRVcmwpKSksXG4gICAgICBzZW5kQWNjZXNzVG9rZW46IHRydWUsXG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemVBdXRoRXJyb3JIYW5kbGVyKCk6IHZvaWQge1xuICBjb25zdCBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuICBjb25zdCB7IGVycm9ySGFuZGxlciB9ID0gaW5qZWN0QXV0aENvbmZpZygpO1xuXG4gIGF1dGhTZXJ2aWNlLmVycm9ycyQucGlwZSh0YXAoKGVycm9yKSA9PiBpbmplY3Rvci5ydW5JbkNvbnRleHQoKCkgPT4gZXJyb3JIYW5kbGVyKGVycm9yKSkpKS5zdWJzY3JpYmUoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRhbGl6ZUF1dGhDb25maWcoKTogKCkgPT4gUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHsgY2xpZW50SWQsIHNjb3BlcywgcmVkaXJlY3RQYXRoLCBlbnZpcm9ubWVudCwgcG9zdExvZ291dFJlZGlyZWN0VXJsLCBpc3N1ZXIsIHRpbWVvdXRGYWN0b3IsIGRpc2NvdmVyeVVybCB9ID0gaW5qZWN0QXV0aENvbmZpZygpO1xuICBjb25zdCBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIGNvbnN0IG9yaWdpbiA9IGluamVjdChXaW5kb3dSZWYpLmdldE9yaWdpbigpO1xuICBjb25zdCBzY29wZSA9IEFycmF5LmZyb20obmV3IFNldChERUZBVUxUX0FVVEhfU0NPUEVTLmNvbmNhdChzY29wZXMgPz8gW10pKSkuam9pbignICcpO1xuXG4gIHJldHVybiAoKSA9PlxuICAgIGF1dGhTZXJ2aWNlLmluaXRpYWxpemUoe1xuICAgICAgY2xpZW50SWQsXG4gICAgICBpc3N1ZXI6IGlzc3VlciA/PyBERUZBVUxUX0lTU1VFUlNbZW52aXJvbm1lbnRdLFxuICAgICAgc2NvcGUsXG4gICAgICByZWRpcmVjdFVyaTogYnVpbGRVcmwob3JpZ2luLCByZWRpcmVjdFBhdGgpLFxuICAgICAgcG9zdExvZ291dFJlZGlyZWN0VXJpOiBwb3N0TG9nb3V0UmVkaXJlY3RVcmwsXG4gICAgICBwcmVzZXJ2ZVJlcXVlc3RlZFJvdXRlOiB0cnVlLFxuICAgICAgc3RyaWN0RGlzY292ZXJ5RG9jdW1lbnRWYWxpZGF0aW9uOiAhZGlzY292ZXJ5VXJsLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnY29kZScsXG4gICAgICBzaG93RGVidWdJbmZvcm1hdGlvbjogZW52aXJvbm1lbnQgPT09ICdkZXYnLFxuICAgICAgdGltZW91dEZhY3RvcixcbiAgICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBdXRoPEQgZXh0ZW5kcyBDb25maWdEZXBlbmRlbmNpZXM+KGNvbmZpZzogQ29uZmlnUHJvdmlkZXI8UGFydGlhbDxBdXRoQ29uZmlnPiwgRD4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHByb3ZpZGVBdXRoQ29uZmlnKGNvbmZpZyksXG4gICAgcHJvdmlkZU9BdXRoQ2xpZW50KCksXG4gICAge1xuICAgICAgcHJvdmlkZTogT0F1dGhNb2R1bGVDb25maWcsXG4gICAgICB1c2VGYWN0b3J5OiBjb25maWd1cmVJbnRlcmNlcHRvcixcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICAgICAgdXNlVmFsdWU6IGluaXRpYWxpemVBdXRoRXJyb3JIYW5kbGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiBpbml0YWxpemVBdXRoQ29uZmlnLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBPQXV0aFN0b3JhZ2UsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiBpbmplY3QoQXV0aENvbmZpZykuc3RvcmFnZSA/PyBpbmplY3QoV2luZG93UmVmKS5uYXRpdmVXaW5kb3cubG9jYWxTdG9yYWdlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogT0RYX0FVVEhfQ09SRV9QTFVHSU5TLFxuICAgICAgdXNlVmFsdWU6IFtjb3JlSWRlbnRpdHlQbHVnaW4sIGxvYWRpbmdTY3JlZW5QbHVnaW5dLFxuICAgIH0sXG4gIF0pO1xufVxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { transition, trigger, useAnimation } from '@angular/animations';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';
|
|
4
|
+
import { fadeOut } from '@odx/angular/animations';
|
|
5
|
+
import { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';
|
|
6
|
+
import { ButtonComponent } from '@odx/angular/components/button';
|
|
7
|
+
import { CircularProgressComponent } from '@odx/angular/components/circular-progress';
|
|
8
|
+
import { IconComponent } from '@odx/angular/components/icon';
|
|
9
|
+
import { LogoDirective } from '@odx/angular/components/logo';
|
|
10
|
+
import { distinctUntilChanged, map, startWith } from 'rxjs';
|
|
11
|
+
import { injectAuthConfig } from '../../auth.config';
|
|
12
|
+
import { AuthService } from '../../auth.service';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@angular/common";
|
|
15
|
+
export class AuthLoadingScreenComponent {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.authConfig = injectAuthConfig();
|
|
18
|
+
this.icon$ = inject(AuthService).isRedirecting$.pipe(startWith(false), distinctUntilChanged(), map((isRedirecting) => (isRedirecting ? 'link-external' : 'user')));
|
|
19
|
+
}
|
|
20
|
+
static initialize(authService, dynamicViewService) {
|
|
21
|
+
authService.isLoading$.subscribe((isLoading) => {
|
|
22
|
+
if (isLoading) {
|
|
23
|
+
AuthLoadingScreenComponent.instance ?? (AuthLoadingScreenComponent.instance = dynamicViewService.createView(AuthLoadingScreenComponent));
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
AuthLoadingScreenComponent.instance?.destroy();
|
|
27
|
+
AuthLoadingScreenComponent.instance = null;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
AuthLoadingScreenComponent.instance = null;
|
|
33
|
+
AuthLoadingScreenComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthLoadingScreenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
+
AuthLoadingScreenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AuthLoadingScreenComponent, isStandalone: true, selector: "div.odx-auth-loading-screen", host: { properties: { "@hostAnimation": "true" } }, ngImport: i0, template: "<div class=\"odx-auth-loading-screen__content\" odxLayout=\"grid 12 horizontal-center vertical-center gap-small\">\n <odx-logo size=\"large\"></odx-logo>\n <odx-circular-progress class=\"odx-auth-loading-screen__spinner\" value=\"-1\" size=\"medium\" stroke=\"3\">\n <odx-icon [name]=\"icon$ | async\" iconSet=\"core\"></odx-icon>\n </odx-circular-progress>\n <p class=\"odx-auth-loading-screen__message\" *ngIf=\"authConfig.loadingScreenMessage as content\">\n <ng-template [odxDynamicView]=\"content\"></ng-template>\n </p>\n</div>\n", styles: ["@keyframes odx-auth-loading-screen-animation{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%)}}.odx-auth-loading-screen{--odx-c-highlight: var(--odx-c-primary);background-color:var(--odx-c-background-content);position:fixed;z-index:var(--odx-v-layer-5);inset:0}.odx-auth-loading-screen__content{top:50%;left:50%;transform:translate(-50%,-50%);position:absolute;animation:odx-auth-loading-screen-animation .75s ease}.odx-auth-loading-screen__message{text-align:center}.odx-auth-loading-screen__spinner{position:relative}.odx-auth-loading-screen__spinner .odx-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }, { kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }, { kind: "component", type: CircularProgressComponent, selector: "odx-circular-progress", inputs: ["stroke", "size", "value"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], animations: [trigger('hostAnimation', [transition(':leave', useAnimation(fadeOut()))])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthLoadingScreenComponent, decorators: [{
|
|
36
|
+
type: Component,
|
|
37
|
+
args: [{ standalone: true, selector: 'div.odx-auth-loading-screen', imports: [CommonModule, ButtonComponent, IconComponent, LogoDirective, CircularProgressComponent, DynamicViewDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
38
|
+
'[@hostAnimation]': 'true',
|
|
39
|
+
}, animations: [trigger('hostAnimation', [transition(':leave', useAnimation(fadeOut()))])], template: "<div class=\"odx-auth-loading-screen__content\" odxLayout=\"grid 12 horizontal-center vertical-center gap-small\">\n <odx-logo size=\"large\"></odx-logo>\n <odx-circular-progress class=\"odx-auth-loading-screen__spinner\" value=\"-1\" size=\"medium\" stroke=\"3\">\n <odx-icon [name]=\"icon$ | async\" iconSet=\"core\"></odx-icon>\n </odx-circular-progress>\n <p class=\"odx-auth-loading-screen__message\" *ngIf=\"authConfig.loadingScreenMessage as content\">\n <ng-template [odxDynamicView]=\"content\"></ng-template>\n </p>\n</div>\n", styles: ["@keyframes odx-auth-loading-screen-animation{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%)}}.odx-auth-loading-screen{--odx-c-highlight: var(--odx-c-primary);background-color:var(--odx-c-background-content);position:fixed;z-index:var(--odx-v-layer-5);inset:0}.odx-auth-loading-screen__content{top:50%;left:50%;transform:translate(-50%,-50%);position:absolute;animation:odx-auth-loading-screen-animation .75s ease}.odx-auth-loading-screen__message{text-align:center}.odx-auth-loading-screen__spinner{position:relative}.odx-auth-loading-screen__spinner .odx-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}\n"] }]
|
|
40
|
+
}] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1sb2FkaW5nLXNjcmVlbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvY29tcG9uZW50cy9hdXRoLWxvYWRpbmctc2NyZWVuL2F1dGgtbG9hZGluZy1zY3JlZW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvYXV0aC1sb2FkaW5nLXNjcmVlbi9hdXRoLWxvYWRpbmctc2NyZWVuLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFzQyxNQUFNLCtCQUErQixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBZ0JqRCxNQUFNLE9BQU8sMEJBQTBCO0lBZHZDO1FBaUJxQixlQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUNoQyxVQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ2hFLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFDaEIsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUNuRSxDQUFDO0tBWUg7SUFWUSxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQXdCLEVBQUUsa0JBQXNDO1FBQ3ZGLFdBQVcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDN0MsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsMEJBQTBCLENBQUMsUUFBUSxLQUFuQywwQkFBMEIsQ0FBQyxRQUFRLEdBQUssa0JBQWtCLENBQUMsVUFBVSxDQUFDLDBCQUEwQixDQUFDLEVBQUM7YUFDbkc7aUJBQU07Z0JBQ0wsMEJBQTBCLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUMvQywwQkFBMEIsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2FBQzVDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQWxCYyxtQ0FBUSxHQUE2RCxJQUFJLENBQUM7dUhBRDlFLDBCQUEwQjsyR0FBMUIsMEJBQTBCLDJJQzNCdkMsb2lCQVNBLGl1QkRRWSxZQUFZLHdMQUFtQixhQUFhLG9HQUFFLGFBQWEsa0ZBQUUseUJBQXlCLHVHQUFFLG9CQUFvQix5SUFRMUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzsyRkFFNUUsMEJBQTBCO2tCQWR0QyxTQUFTO2lDQUNJLElBQUksWUFFTiw2QkFBNkIsV0FDOUIsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUseUJBQXlCLEVBQUUsb0JBQW9CLENBQUMsbUJBR3RHLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osa0JBQWtCLEVBQUUsTUFBTTtxQkFDM0IsY0FDVyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHJhbnNpdGlvbiwgdHJpZ2dlciwgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmFkZU91dCB9IGZyb20gJ0BvZHgvYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IER5bmFtaWNWaWV3RGlyZWN0aXZlLCBEeW5hbWljVmlld1JlZiwgRHluYW1pY1ZpZXdTZXJ2aWNlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IENpcmN1bGFyUHJvZ3Jlc3NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9jaXJjdWxhci1wcm9ncmVzcyc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBMb2dvRGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbG9nbyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGluamVjdEF1dGhDb25maWcgfSBmcm9tICcuLi8uLi9hdXRoLmNvbmZpZyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGguc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2Rpdi5vZHgtYXV0aC1sb2FkaW5nLXNjcmVlbicsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJ1dHRvbkNvbXBvbmVudCwgSWNvbkNvbXBvbmVudCwgTG9nb0RpcmVjdGl2ZSwgQ2lyY3VsYXJQcm9ncmVzc0NvbXBvbmVudCwgRHluYW1pY1ZpZXdEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0aC1sb2FkaW5nLXNjcmVlbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dGgtbG9hZGluZy1zY3JlZW4uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICAnW0Bob3N0QW5pbWF0aW9uXSc6ICd0cnVlJyxcbiAgfSxcbiAgYW5pbWF0aW9uczogW3RyaWdnZXIoJ2hvc3RBbmltYXRpb24nLCBbdHJhbnNpdGlvbignOmxlYXZlJywgdXNlQW5pbWF0aW9uKGZhZGVPdXQoKSkpXSldLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRoTG9hZGluZ1NjcmVlbkNvbXBvbmVudCB7XG4gIHByaXZhdGUgc3RhdGljIGluc3RhbmNlOiBEeW5hbWljVmlld1JlZjx0eXBlb2YgQXV0aExvYWRpbmdTY3JlZW5Db21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGF1dGhDb25maWcgPSBpbmplY3RBdXRoQ29uZmlnKCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpY29uJCA9IGluamVjdChBdXRoU2VydmljZSkuaXNSZWRpcmVjdGluZyQucGlwZShcbiAgICBzdGFydFdpdGgoZmFsc2UpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgbWFwKChpc1JlZGlyZWN0aW5nKSA9PiAoaXNSZWRpcmVjdGluZyA/ICdsaW5rLWV4dGVybmFsJyA6ICd1c2VyJykpLFxuICApO1xuXG4gIHB1YmxpYyBzdGF0aWMgaW5pdGlhbGl6ZShhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIGR5bmFtaWNWaWV3U2VydmljZTogRHluYW1pY1ZpZXdTZXJ2aWNlKTogdm9pZCB7XG4gICAgYXV0aFNlcnZpY2UuaXNMb2FkaW5nJC5zdWJzY3JpYmUoKGlzTG9hZGluZykgPT4ge1xuICAgICAgaWYgKGlzTG9hZGluZykge1xuICAgICAgICBBdXRoTG9hZGluZ1NjcmVlbkNvbXBvbmVudC5pbnN0YW5jZSA/Pz0gZHluYW1pY1ZpZXdTZXJ2aWNlLmNyZWF0ZVZpZXcoQXV0aExvYWRpbmdTY3JlZW5Db21wb25lbnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgQXV0aExvYWRpbmdTY3JlZW5Db21wb25lbnQuaW5zdGFuY2U/LmRlc3Ryb3koKTtcbiAgICAgICAgQXV0aExvYWRpbmdTY3JlZW5Db21wb25lbnQuaW5zdGFuY2UgPSBudWxsO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwib2R4LWF1dGgtbG9hZGluZy1zY3JlZW5fX2NvbnRlbnRcIiBvZHhMYXlvdXQ9XCJncmlkIDEyIGhvcml6b250YWwtY2VudGVyIHZlcnRpY2FsLWNlbnRlciBnYXAtc21hbGxcIj5cbiAgPG9keC1sb2dvIHNpemU9XCJsYXJnZVwiPjwvb2R4LWxvZ28+XG4gIDxvZHgtY2lyY3VsYXItcHJvZ3Jlc3MgY2xhc3M9XCJvZHgtYXV0aC1sb2FkaW5nLXNjcmVlbl9fc3Bpbm5lclwiIHZhbHVlPVwiLTFcIiBzaXplPVwibWVkaXVtXCIgc3Ryb2tlPVwiM1wiPlxuICAgIDxvZHgtaWNvbiBbbmFtZV09XCJpY29uJCB8IGFzeW5jXCIgaWNvblNldD1cImNvcmVcIj48L29keC1pY29uPlxuICA8L29keC1jaXJjdWxhci1wcm9ncmVzcz5cbiAgPHAgY2xhc3M9XCJvZHgtYXV0aC1sb2FkaW5nLXNjcmVlbl9fbWVzc2FnZVwiICpuZ0lmPVwiYXV0aENvbmZpZy5sb2FkaW5nU2NyZWVuTWVzc2FnZSBhcyBjb250ZW50XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJjb250ZW50XCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9wPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './auth-loading-screen/auth-loading-screen.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFEQUFxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdXRoLWxvYWRpbmctc2NyZWVuL2F1dGgtbG9hZGluZy1zY3JlZW4uY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './core-identity.plugin';
|
|
2
|
-
|
|
2
|
+
export * from './loading-screen-plugin';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvcGx1Z2lucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvcmUtaWRlbnRpdHkucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGluZy1zY3JlZW4tcGx1Z2luJztcbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { DynamicViewService } from '@odx/angular/cdk/dynamic-view';
|
|
3
|
+
import { of } from 'rxjs';
|
|
4
|
+
import { injectAuthConfig } from '../auth.config';
|
|
5
|
+
import { AuthLoadingScreenComponent } from '../components';
|
|
6
|
+
export const loadingScreenPlugin = () => {
|
|
7
|
+
const { enableLoadingScreen, showRedirectOverlay } = injectAuthConfig();
|
|
8
|
+
const dynamicViewService = inject(DynamicViewService);
|
|
9
|
+
return (authService) => {
|
|
10
|
+
if (enableLoadingScreen || showRedirectOverlay) {
|
|
11
|
+
AuthLoadingScreenComponent.initialize(authService, dynamicViewService);
|
|
12
|
+
}
|
|
13
|
+
return of({});
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1zY3JlZW4tcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL3BsdWdpbnMvbG9hZGluZy1zY3JlZW4tcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0QsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXNCLEdBQUcsRUFBRTtJQUN6RCxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3hFLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFdEQsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFO1FBQ3JCLElBQUksbUJBQW1CLElBQUksbUJBQW1CLEVBQUU7WUFDOUMsMEJBQTBCLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3hFO1FBRUQsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljVmlld1NlcnZpY2UgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaW5qZWN0QXV0aENvbmZpZyB9IGZyb20gJy4uL2F1dGguY29uZmlnJztcbmltcG9ydCB7IEF1dGhMb2FkaW5nU2NyZWVuQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBdXRoUGx1Z2luRmFjdG9yeSB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nU2NyZWVuUGx1Z2luOiBBdXRoUGx1Z2luRmFjdG9yeSA9ICgpID0+IHtcbiAgY29uc3QgeyBlbmFibGVMb2FkaW5nU2NyZWVuLCBzaG93UmVkaXJlY3RPdmVybGF5IH0gPSBpbmplY3RBdXRoQ29uZmlnKCk7XG4gIGNvbnN0IGR5bmFtaWNWaWV3U2VydmljZSA9IGluamVjdChEeW5hbWljVmlld1NlcnZpY2UpO1xuXG4gIHJldHVybiAoYXV0aFNlcnZpY2UpID0+IHtcbiAgICBpZiAoZW5hYmxlTG9hZGluZ1NjcmVlbiB8fCBzaG93UmVkaXJlY3RPdmVybGF5KSB7XG4gICAgICBBdXRoTG9hZGluZ1NjcmVlbkNvbXBvbmVudC5pbml0aWFsaXplKGF1dGhTZXJ2aWNlLCBkeW5hbWljVmlld1NlcnZpY2UpO1xuICAgIH1cblxuICAgIHJldHVybiBvZih7fSk7XG4gIH07XG59O1xuIl19
|
package/fesm2015/odx-auth.mjs
CHANGED
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { trigger, transition, useAnimation } from '@angular/animations';
|
|
2
|
-
import * as i1 from '@angular/common';
|
|
3
|
-
import { CommonModule, NgIf } from '@angular/common';
|
|
4
1
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { InjectionToken, inject, Injectable,
|
|
6
|
-
import {
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
import
|
|
2
|
+
import { InjectionToken, inject, Injectable, Directive, EventEmitter, Output, HostListener, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, NgModule, EnvironmentInjector, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER, APP_INITIALIZER } from '@angular/core';
|
|
3
|
+
import { WindowRef, CoreModule } from '@odx/angular';
|
|
4
|
+
import * as i3 from '@odx/angular/components/area-header';
|
|
5
|
+
import { AreaHeaderModule } from '@odx/angular/components/area-header';
|
|
6
|
+
import * as i8 from '@odx/angular/components/dropdown';
|
|
7
|
+
import { DropdownModule } from '@odx/angular/components/dropdown';
|
|
8
|
+
import { HeaderModule } from '@odx/angular/components/header';
|
|
9
|
+
import * as i1 from '@odx/angular/components/loading-spinner';
|
|
10
|
+
import { LoadingSpinnerDirective, LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';
|
|
13
11
|
import { LogoDirective } from '@odx/angular/components/logo';
|
|
14
|
-
import { BehaviorSubject, filter, map, distinctUntilChanged, share, of, switchMap, combineLatest, tap, take, fromEvent, startWith, merge, shareReplay, EMPTY } from 'rxjs';
|
|
15
12
|
import { isString, createConfigTokens, untilDestroyed, Position, buildUrl } from '@odx/angular/utils';
|
|
16
13
|
import { __awaiter } from 'tslib';
|
|
17
14
|
import { HttpErrorResponse } from '@angular/common/http';
|
|
18
15
|
import { Router } from '@angular/router';
|
|
19
|
-
import { WindowRef, CoreModule } from '@odx/angular';
|
|
20
16
|
import { OAuthService, OAuthErrorEvent, provideOAuthClient, OAuthModuleConfig, OAuthStorage } from 'angular-oauth2-oidc';
|
|
21
17
|
import { deepmerge } from 'deepmerge-ts';
|
|
22
18
|
import jwtDecode from 'jwt-decode';
|
|
23
|
-
import
|
|
24
|
-
import
|
|
25
|
-
import
|
|
26
|
-
import { DropdownModule } from '@odx/angular/components/dropdown';
|
|
27
|
-
import { HeaderModule } from '@odx/angular/components/header';
|
|
28
|
-
import * as i1$1 from '@odx/angular/components/loading-spinner';
|
|
29
|
-
import { LoadingSpinnerDirective, LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';
|
|
19
|
+
import { BehaviorSubject, filter, map, distinctUntilChanged, share, of, switchMap, combineLatest, tap, take, fromEvent, startWith, merge, shareReplay, EMPTY } from 'rxjs';
|
|
20
|
+
import * as i1$1 from '@angular/common';
|
|
21
|
+
import { NgIf, CommonModule } from '@angular/common';
|
|
30
22
|
import * as i2 from '@ngrx/component';
|
|
31
23
|
import * as i4 from '@odx/angular/components/avatar';
|
|
32
24
|
import * as i5 from '@odx/angular/components/action-group';
|
|
25
|
+
import * as i6 from '@odx/angular/components/button';
|
|
26
|
+
import { ButtonComponent } from '@odx/angular/components/button';
|
|
27
|
+
import * as i7 from '@odx/angular/components/icon';
|
|
28
|
+
import { IconComponent } from '@odx/angular/components/icon';
|
|
29
|
+
import { DynamicViewDirective, DynamicViewService } from '@odx/angular/cdk/dynamic-view';
|
|
30
|
+
import { trigger, transition, useAnimation } from '@angular/animations';
|
|
31
|
+
import { fadeOut } from '@odx/angular/animations';
|
|
32
|
+
import { CircularProgressComponent } from '@odx/angular/components/circular-progress';
|
|
33
33
|
|
|
34
34
|
function createInitials(value) {
|
|
35
35
|
if (!value)
|
|
@@ -109,6 +109,8 @@ const { AuthDefaultConfig, AuthConfig, injectAuthConfig, provideAuthConfig } = c
|
|
|
109
109
|
showRedirectOverlay: false,
|
|
110
110
|
plugins: [],
|
|
111
111
|
defaultAuthorizedHandler: null,
|
|
112
|
+
enableLoadingScreen: false,
|
|
113
|
+
loadingScreenMessage: null,
|
|
112
114
|
});
|
|
113
115
|
|
|
114
116
|
const ODX_AUTH_HTTP_CACHE_STORAGE = new InjectionToken('@odx/auth::AuthHttpCacheStorage', {
|
|
@@ -310,39 +312,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
310
312
|
args: [{ providedIn: 'root' }]
|
|
311
313
|
}], ctorParameters: function () { return []; } });
|
|
312
314
|
|
|
313
|
-
class AuthOverlayComponent {
|
|
314
|
-
constructor() {
|
|
315
|
-
this.icon$ = inject(AuthService).isRedirecting$.pipe(startWith(false), distinctUntilChanged(), map((isRedirecting) => (isRedirecting ? 'link-external' : 'user')));
|
|
316
|
-
}
|
|
317
|
-
static initialize() {
|
|
318
|
-
const dynamicViewService = inject(DynamicViewService);
|
|
319
|
-
inject(AuthService).isLoading$.subscribe((isLoading) => {
|
|
320
|
-
var _a, _b;
|
|
321
|
-
if (isLoading) {
|
|
322
|
-
(_a = AuthOverlayComponent.instance) !== null && _a !== void 0 ? _a : (AuthOverlayComponent.instance = dynamicViewService.createView(AuthOverlayComponent));
|
|
323
|
-
}
|
|
324
|
-
else {
|
|
325
|
-
(_b = AuthOverlayComponent.instance) === null || _b === void 0 ? void 0 : _b.destroy();
|
|
326
|
-
AuthOverlayComponent.instance = null;
|
|
327
|
-
}
|
|
328
|
-
});
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
AuthOverlayComponent.instance = null;
|
|
332
|
-
AuthOverlayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
333
|
-
AuthOverlayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AuthOverlayComponent, isStandalone: true, selector: "div.odx-auth-overlay", host: { properties: { "@hostAnimation": "true" } }, ngImport: i0, template: "<div class=\"odx-auth-overlay__content\" odxLayout=\"grid 12 horizontal-center vertical-center gap-small\">\n <odx-logo size=\"large\"></odx-logo>\n <odx-circular-progress class=\"odx-auth-overlay-spinner\" value=\"-1\" size=\"medium\" stroke=\"3\">\n <odx-icon [name]=\"icon$ | async\" iconSet=\"core\"></odx-icon>\n </odx-circular-progress>\n</div>\n", styles: ["@keyframes odx-auth-overlay-animation{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%)}}.odx-auth-overlay{--odx-c-highlight: var(--odx-c-primary);background-color:var(--odx-c-background-content);position:fixed;z-index:var(--odx-v-layer-5);inset:0}.odx-auth-overlay__content{top:50%;left:50%;transform:translate(-50%,-50%);position:absolute;animation:odx-auth-overlay-animation .75s ease}.odx-auth-overlay-spinner{position:relative}.odx-auth-overlay-spinner .odx-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }, { kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }, { kind: "component", type: CircularProgressComponent, selector: "odx-circular-progress", inputs: ["stroke", "size", "value"] }], animations: [trigger('hostAnimation', [transition(':leave', useAnimation(fadeOut()))])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
334
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthOverlayComponent, decorators: [{
|
|
335
|
-
type: Component,
|
|
336
|
-
args: [{ standalone: true, selector: 'div.odx-auth-overlay', imports: [CommonModule, ButtonComponent, IconComponent, LogoDirective, CircularProgressComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
337
|
-
'[@hostAnimation]': 'true',
|
|
338
|
-
}, animations: [trigger('hostAnimation', [transition(':leave', useAnimation(fadeOut()))])], template: "<div class=\"odx-auth-overlay__content\" odxLayout=\"grid 12 horizontal-center vertical-center gap-small\">\n <odx-logo size=\"large\"></odx-logo>\n <odx-circular-progress class=\"odx-auth-overlay-spinner\" value=\"-1\" size=\"medium\" stroke=\"3\">\n <odx-icon [name]=\"icon$ | async\" iconSet=\"core\"></odx-icon>\n </odx-circular-progress>\n</div>\n", styles: ["@keyframes odx-auth-overlay-animation{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%)}}.odx-auth-overlay{--odx-c-highlight: var(--odx-c-primary);background-color:var(--odx-c-background-content);position:fixed;z-index:var(--odx-v-layer-5);inset:0}.odx-auth-overlay__content{top:50%;left:50%;transform:translate(-50%,-50%);position:absolute;animation:odx-auth-overlay-animation .75s ease}.odx-auth-overlay-spinner{position:relative}.odx-auth-overlay-spinner .odx-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}\n"] }]
|
|
339
|
-
}] });
|
|
340
|
-
function initalizeAuthOverlay() {
|
|
341
|
-
if (!injectAuthConfig().showRedirectOverlay)
|
|
342
|
-
return;
|
|
343
|
-
AuthOverlayComponent.initialize();
|
|
344
|
-
}
|
|
345
|
-
|
|
346
315
|
class AuthActionDirective {
|
|
347
316
|
constructor() {
|
|
348
317
|
this.takeUntilDestroyed = untilDestroyed();
|
|
@@ -374,7 +343,7 @@ class SignInDirective extends AuthActionDirective {
|
|
|
374
343
|
}
|
|
375
344
|
}
|
|
376
345
|
SignInDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SignInDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
377
|
-
SignInDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SignInDirective, isStandalone: true, selector: "[odxButton][odxAuthSignIn]", outputs: { afterSignIn: "odxAuthSignIn" }, host: { listeners: { "click": "handleClick()" } }, usesInheritance: true, hostDirectives: [{ directive: i1
|
|
346
|
+
SignInDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SignInDirective, isStandalone: true, selector: "[odxButton][odxAuthSignIn]", outputs: { afterSignIn: "odxAuthSignIn" }, host: { listeners: { "click": "handleClick()" } }, usesInheritance: true, hostDirectives: [{ directive: i1.LoadingSpinnerDirective }], ngImport: i0 });
|
|
378
347
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SignInDirective, decorators: [{
|
|
379
348
|
type: Directive,
|
|
380
349
|
args: [{
|
|
@@ -402,7 +371,7 @@ class SignOutDirective extends AuthActionDirective {
|
|
|
402
371
|
}
|
|
403
372
|
}
|
|
404
373
|
SignOutDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SignOutDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
405
|
-
SignOutDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SignOutDirective, isStandalone: true, selector: "[odxButton][odxAuthSignOut]", outputs: { afterSignOut: "odxAuthSignOut" }, host: { listeners: { "click": "handleClick()" } }, usesInheritance: true, hostDirectives: [{ directive: i1
|
|
374
|
+
SignOutDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: SignOutDirective, isStandalone: true, selector: "[odxButton][odxAuthSignOut]", outputs: { afterSignOut: "odxAuthSignOut" }, host: { listeners: { "click": "handleClick()" } }, usesInheritance: true, hostDirectives: [{ directive: i1.LoadingSpinnerDirective }], ngImport: i0 });
|
|
406
375
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SignOutDirective, decorators: [{
|
|
407
376
|
type: Directive,
|
|
408
377
|
args: [{
|
|
@@ -432,7 +401,7 @@ class AuthComponent {
|
|
|
432
401
|
}
|
|
433
402
|
}
|
|
434
403
|
AuthComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
435
|
-
AuthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AuthComponent, isStandalone: true, selector: "odx-auth", inputs: { signInButtonText: "signInButtonText", signOutButtonText: "signOutButtonText" }, ngImport: i0, template: "<odx-action-group>\n <ng-template [ngrxLet]=\"{ idClaims: authService.identityClaims$, isAuthenticated: authService.isAuthenticated$ }\" let-vm>\n <ng-template [ngIf]=\"vm.isAuthenticated\" [ngIfElse]=\"notAuthenticated\">\n <button odxButton [odxDropdown]=\"userProfileMenu\" [odxDropdownOptions]=\"dropdownOptions\" data-testid=\"odx-auth-user-profile-button\">\n <ng-template [ngTemplateOutlet]=\"userAvatar\"></ng-template>\n </button>\n <ng-template #userProfileMenu>\n <odx-area-header class=\"odx-padding-x-12\" size=\"small\">\n <ng-template [ngTemplateOutlet]=\"userAvatar\" ngProjectAs=\"odx-avatar\"></ng-template>\n {{ vm.idClaims?.username }}\n <odx-area-header-subtitle>\n {{ vm.idClaims?.email }}\n </odx-area-header-subtitle>\n </odx-area-header>\n <ng-content></ng-content>\n <div class=\"odx-margin-top-12\" odxLayout=\"flex vertical-center\">\n <odx-logo odxLayout=\"auto\" class=\"odx-margin-left-12 odx-margin-right-auto\"></odx-logo>\n <button odxButton odxAuthSignOut variant=\"ghost\" data-testid=\"odx-auth-sign-out-button\">\n {{ signOutButtonText }}\n <odx-icon name=\"logout\" alignRight></odx-icon>\n </button>\n </div>\n </ng-template>\n </ng-template>\n <ng-template #notAuthenticated>\n <button class=\"odx-auth-sign-in\" odxButton odxAuthSignIn variant=\"secondary\" data-testid=\"odx-auth-sign-in-button\">\n <odx-icon name=\"user\" alignLeft></odx-icon>\n {{ signInButtonText }}\n </button>\n </ng-template>\n <ng-template #userAvatar>\n <odx-avatar class=\"odx-auth-user-avatar\">\n {{ vm.idClaims?.initials ?? '' }}\n </odx-avatar>\n </ng-template>\n </ng-template>\n</odx-action-group>\n", styles: [".odx-auth-user-profile .odx-dropdown__inner>.odx-area-header{max-width:max(360px,25vw);min-width:296px}\n"], dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "ngmodule", type: AreaHeaderModule }, { kind: "component", type: i3.AreaHeaderComponent, selector: "odx-area-header", inputs: ["size"] }, { kind: "directive", type: i3.AreaHeaderSubtitleDirective, selector: "odx-area-header-subtitle" }, { kind: "component", type: i4.AvatarComponent, selector: "odx-avatar", inputs: ["size", "variant"] }, { kind: "component", type: i5.ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "component", type: i7.IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i8.DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "ngmodule", type: HeaderModule }, { kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }, { kind: "directive", type: SignInDirective, selector: "[odxButton][odxAuthSignIn]", outputs: ["odxAuthSignIn"] }, { kind: "directive", type: SignOutDirective, selector: "[odxButton][odxAuthSignOut]", outputs: ["odxAuthSignOut"] }, { kind: "ngmodule", type: LoadingSpinnerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
404
|
+
AuthComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AuthComponent, isStandalone: true, selector: "odx-auth", inputs: { signInButtonText: "signInButtonText", signOutButtonText: "signOutButtonText" }, ngImport: i0, template: "<odx-action-group>\n <ng-template [ngrxLet]=\"{ idClaims: authService.identityClaims$, isAuthenticated: authService.isAuthenticated$ }\" let-vm>\n <ng-template [ngIf]=\"vm.isAuthenticated\" [ngIfElse]=\"notAuthenticated\">\n <button odxButton [odxDropdown]=\"userProfileMenu\" [odxDropdownOptions]=\"dropdownOptions\" data-testid=\"odx-auth-user-profile-button\">\n <ng-template [ngTemplateOutlet]=\"userAvatar\"></ng-template>\n </button>\n <ng-template #userProfileMenu>\n <odx-area-header class=\"odx-padding-x-12\" size=\"small\">\n <ng-template [ngTemplateOutlet]=\"userAvatar\" ngProjectAs=\"odx-avatar\"></ng-template>\n {{ vm.idClaims?.username }}\n <odx-area-header-subtitle>\n {{ vm.idClaims?.email }}\n </odx-area-header-subtitle>\n </odx-area-header>\n <ng-content></ng-content>\n <div class=\"odx-margin-top-12\" odxLayout=\"flex vertical-center\">\n <odx-logo odxLayout=\"auto\" class=\"odx-margin-left-12 odx-margin-right-auto\"></odx-logo>\n <button odxButton odxAuthSignOut variant=\"ghost\" data-testid=\"odx-auth-sign-out-button\">\n {{ signOutButtonText }}\n <odx-icon name=\"logout\" alignRight></odx-icon>\n </button>\n </div>\n </ng-template>\n </ng-template>\n <ng-template #notAuthenticated>\n <button class=\"odx-auth-sign-in\" odxButton odxAuthSignIn variant=\"secondary\" data-testid=\"odx-auth-sign-in-button\">\n <odx-icon name=\"user\" alignLeft></odx-icon>\n {{ signInButtonText }}\n </button>\n </ng-template>\n <ng-template #userAvatar>\n <odx-avatar class=\"odx-auth-user-avatar\">\n {{ vm.idClaims?.initials ?? '' }}\n </odx-avatar>\n </ng-template>\n </ng-template>\n</odx-action-group>\n", styles: [".odx-auth-user-profile .odx-dropdown__inner>.odx-area-header{max-width:max(360px,25vw);min-width:296px}\n"], dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "ngmodule", type: AreaHeaderModule }, { kind: "component", type: i3.AreaHeaderComponent, selector: "odx-area-header", inputs: ["size"] }, { kind: "directive", type: i3.AreaHeaderSubtitleDirective, selector: "odx-area-header-subtitle" }, { kind: "component", type: i4.AvatarComponent, selector: "odx-avatar", inputs: ["size", "variant"] }, { kind: "component", type: i5.ActionGroupComponent, selector: "odx-action-group", inputs: ["reverse"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "component", type: i7.IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: i8.DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "ngmodule", type: HeaderModule }, { kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }, { kind: "directive", type: SignInDirective, selector: "[odxButton][odxAuthSignIn]", outputs: ["odxAuthSignIn"] }, { kind: "directive", type: SignOutDirective, selector: "[odxButton][odxAuthSignOut]", outputs: ["odxAuthSignOut"] }, { kind: "ngmodule", type: LoadingSpinnerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
436
405
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthComponent, decorators: [{
|
|
437
406
|
type: Component,
|
|
438
407
|
args: [{ standalone: true, selector: 'odx-auth', imports: [CoreModule, AreaHeaderModule, DropdownModule, HeaderModule, LogoDirective, SignInDirective, SignOutDirective, LoadingSpinnerModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<odx-action-group>\n <ng-template [ngrxLet]=\"{ idClaims: authService.identityClaims$, isAuthenticated: authService.isAuthenticated$ }\" let-vm>\n <ng-template [ngIf]=\"vm.isAuthenticated\" [ngIfElse]=\"notAuthenticated\">\n <button odxButton [odxDropdown]=\"userProfileMenu\" [odxDropdownOptions]=\"dropdownOptions\" data-testid=\"odx-auth-user-profile-button\">\n <ng-template [ngTemplateOutlet]=\"userAvatar\"></ng-template>\n </button>\n <ng-template #userProfileMenu>\n <odx-area-header class=\"odx-padding-x-12\" size=\"small\">\n <ng-template [ngTemplateOutlet]=\"userAvatar\" ngProjectAs=\"odx-avatar\"></ng-template>\n {{ vm.idClaims?.username }}\n <odx-area-header-subtitle>\n {{ vm.idClaims?.email }}\n </odx-area-header-subtitle>\n </odx-area-header>\n <ng-content></ng-content>\n <div class=\"odx-margin-top-12\" odxLayout=\"flex vertical-center\">\n <odx-logo odxLayout=\"auto\" class=\"odx-margin-left-12 odx-margin-right-auto\"></odx-logo>\n <button odxButton odxAuthSignOut variant=\"ghost\" data-testid=\"odx-auth-sign-out-button\">\n {{ signOutButtonText }}\n <odx-icon name=\"logout\" alignRight></odx-icon>\n </button>\n </div>\n </ng-template>\n </ng-template>\n <ng-template #notAuthenticated>\n <button class=\"odx-auth-sign-in\" odxButton odxAuthSignIn variant=\"secondary\" data-testid=\"odx-auth-sign-in-button\">\n <odx-icon name=\"user\" alignLeft></odx-icon>\n {{ signInButtonText }}\n </button>\n </ng-template>\n <ng-template #userAvatar>\n <odx-avatar class=\"odx-auth-user-avatar\">\n {{ vm.idClaims?.initials ?? '' }}\n </odx-avatar>\n </ng-template>\n </ng-template>\n</odx-action-group>\n", styles: [".odx-auth-user-profile .odx-dropdown__inner>.odx-area-header{max-width:max(360px,25vw);min-width:296px}\n"] }]
|
|
@@ -461,7 +430,7 @@ class AuthDirective {
|
|
|
461
430
|
}
|
|
462
431
|
}
|
|
463
432
|
AuthDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
464
|
-
AuthDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: AuthDirective, isStandalone: true, selector: "ng-template[odxAuth]", inputs: { authorizationHandler: ["odxAuth", "authorizationHandler"], elseTemplate: ["odxAuthElse", "elseTemplate"] }, hostDirectives: [{ directive: i1.NgIf }], ngImport: i0 });
|
|
433
|
+
AuthDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: AuthDirective, isStandalone: true, selector: "ng-template[odxAuth]", inputs: { authorizationHandler: ["odxAuth", "authorizationHandler"], elseTemplate: ["odxAuthElse", "elseTemplate"] }, hostDirectives: [{ directive: i1$1.NgIf }], ngImport: i0 });
|
|
465
434
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthDirective, decorators: [{
|
|
466
435
|
type: Directive,
|
|
467
436
|
args: [{
|
|
@@ -526,6 +495,45 @@ const coreIdentityPlugin = () => {
|
|
|
526
495
|
};
|
|
527
496
|
};
|
|
528
497
|
|
|
498
|
+
class AuthLoadingScreenComponent {
|
|
499
|
+
constructor() {
|
|
500
|
+
this.authConfig = injectAuthConfig();
|
|
501
|
+
this.icon$ = inject(AuthService).isRedirecting$.pipe(startWith(false), distinctUntilChanged(), map((isRedirecting) => (isRedirecting ? 'link-external' : 'user')));
|
|
502
|
+
}
|
|
503
|
+
static initialize(authService, dynamicViewService) {
|
|
504
|
+
authService.isLoading$.subscribe((isLoading) => {
|
|
505
|
+
var _a, _b;
|
|
506
|
+
if (isLoading) {
|
|
507
|
+
(_a = AuthLoadingScreenComponent.instance) !== null && _a !== void 0 ? _a : (AuthLoadingScreenComponent.instance = dynamicViewService.createView(AuthLoadingScreenComponent));
|
|
508
|
+
}
|
|
509
|
+
else {
|
|
510
|
+
(_b = AuthLoadingScreenComponent.instance) === null || _b === void 0 ? void 0 : _b.destroy();
|
|
511
|
+
AuthLoadingScreenComponent.instance = null;
|
|
512
|
+
}
|
|
513
|
+
});
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
AuthLoadingScreenComponent.instance = null;
|
|
517
|
+
AuthLoadingScreenComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthLoadingScreenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
518
|
+
AuthLoadingScreenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: AuthLoadingScreenComponent, isStandalone: true, selector: "div.odx-auth-loading-screen", host: { properties: { "@hostAnimation": "true" } }, ngImport: i0, template: "<div class=\"odx-auth-loading-screen__content\" odxLayout=\"grid 12 horizontal-center vertical-center gap-small\">\n <odx-logo size=\"large\"></odx-logo>\n <odx-circular-progress class=\"odx-auth-loading-screen__spinner\" value=\"-1\" size=\"medium\" stroke=\"3\">\n <odx-icon [name]=\"icon$ | async\" iconSet=\"core\"></odx-icon>\n </odx-circular-progress>\n <p class=\"odx-auth-loading-screen__message\" *ngIf=\"authConfig.loadingScreenMessage as content\">\n <ng-template [odxDynamicView]=\"content\"></ng-template>\n </p>\n</div>\n", styles: ["@keyframes odx-auth-loading-screen-animation{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%)}}.odx-auth-loading-screen{--odx-c-highlight: var(--odx-c-primary);background-color:var(--odx-c-background-content);position:fixed;z-index:var(--odx-v-layer-5);inset:0}.odx-auth-loading-screen__content{top:50%;left:50%;transform:translate(-50%,-50%);position:absolute;animation:odx-auth-loading-screen-animation .75s ease}.odx-auth-loading-screen__message{text-align:center}.odx-auth-loading-screen__spinner{position:relative}.odx-auth-loading-screen__spinner .odx-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet"] }, { kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }, { kind: "component", type: CircularProgressComponent, selector: "odx-circular-progress", inputs: ["stroke", "size", "value"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], animations: [trigger('hostAnimation', [transition(':leave', useAnimation(fadeOut()))])], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
519
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AuthLoadingScreenComponent, decorators: [{
|
|
520
|
+
type: Component,
|
|
521
|
+
args: [{ standalone: true, selector: 'div.odx-auth-loading-screen', imports: [CommonModule, ButtonComponent, IconComponent, LogoDirective, CircularProgressComponent, DynamicViewDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
522
|
+
'[@hostAnimation]': 'true',
|
|
523
|
+
}, animations: [trigger('hostAnimation', [transition(':leave', useAnimation(fadeOut()))])], template: "<div class=\"odx-auth-loading-screen__content\" odxLayout=\"grid 12 horizontal-center vertical-center gap-small\">\n <odx-logo size=\"large\"></odx-logo>\n <odx-circular-progress class=\"odx-auth-loading-screen__spinner\" value=\"-1\" size=\"medium\" stroke=\"3\">\n <odx-icon [name]=\"icon$ | async\" iconSet=\"core\"></odx-icon>\n </odx-circular-progress>\n <p class=\"odx-auth-loading-screen__message\" *ngIf=\"authConfig.loadingScreenMessage as content\">\n <ng-template [odxDynamicView]=\"content\"></ng-template>\n </p>\n</div>\n", styles: ["@keyframes odx-auth-loading-screen-animation{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%)}}.odx-auth-loading-screen{--odx-c-highlight: var(--odx-c-primary);background-color:var(--odx-c-background-content);position:fixed;z-index:var(--odx-v-layer-5);inset:0}.odx-auth-loading-screen__content{top:50%;left:50%;transform:translate(-50%,-50%);position:absolute;animation:odx-auth-loading-screen-animation .75s ease}.odx-auth-loading-screen__message{text-align:center}.odx-auth-loading-screen__spinner{position:relative}.odx-auth-loading-screen__spinner .odx-icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}\n"] }]
|
|
524
|
+
}] });
|
|
525
|
+
|
|
526
|
+
const loadingScreenPlugin = () => {
|
|
527
|
+
const { enableLoadingScreen, showRedirectOverlay } = injectAuthConfig();
|
|
528
|
+
const dynamicViewService = inject(DynamicViewService);
|
|
529
|
+
return (authService) => {
|
|
530
|
+
if (enableLoadingScreen || showRedirectOverlay) {
|
|
531
|
+
AuthLoadingScreenComponent.initialize(authService, dynamicViewService);
|
|
532
|
+
}
|
|
533
|
+
return of({});
|
|
534
|
+
};
|
|
535
|
+
};
|
|
536
|
+
|
|
529
537
|
function configureInterceptor() {
|
|
530
538
|
const { allowedUrls } = injectAuthConfig();
|
|
531
539
|
return {
|
|
@@ -572,11 +580,6 @@ function provideAuth(config) {
|
|
|
572
580
|
useValue: initializeAuthErrorHandler,
|
|
573
581
|
multi: true,
|
|
574
582
|
},
|
|
575
|
-
{
|
|
576
|
-
provide: ENVIRONMENT_INITIALIZER,
|
|
577
|
-
useValue: initalizeAuthOverlay,
|
|
578
|
-
multi: true,
|
|
579
|
-
},
|
|
580
583
|
{
|
|
581
584
|
provide: APP_INITIALIZER,
|
|
582
585
|
useFactory: initalizeAuthConfig,
|
|
@@ -588,7 +591,7 @@ function provideAuth(config) {
|
|
|
588
591
|
},
|
|
589
592
|
{
|
|
590
593
|
provide: ODX_AUTH_CORE_PLUGINS,
|
|
591
|
-
useValue: [coreIdentityPlugin],
|
|
594
|
+
useValue: [coreIdentityPlugin, loadingScreenPlugin],
|
|
592
595
|
},
|
|
593
596
|
]);
|
|
594
597
|
}
|
|
@@ -615,5 +618,5 @@ function unauthGuard(authorizedHandler, redirectTo) {
|
|
|
615
618
|
* Generated bundle index. Do not edit.
|
|
616
619
|
*/
|
|
617
620
|
|
|
618
|
-
export { AuthActionDirective, AuthComponent, AuthConfig, AuthDefaultConfig, AuthDirective, AuthHttpCache,
|
|
621
|
+
export { AuthActionDirective, AuthComponent, AuthConfig, AuthDefaultConfig, AuthDirective, AuthHttpCache, AuthLoadingScreenComponent, AuthModule, AuthPluginManager, AuthService, DEFAULT_AUTH_SCOPES, DEFAULT_ISSUERS, ODX_AUTH_CORE_PLUGINS, ODX_AUTH_HTTP_CACHE_STORAGE, ODX_AUTH_PLUGINS, SignInDirective, SignOutDirective, authGuard, configureInterceptor, coreIdentityPlugin, createInitials, initalizeAuthConfig, initializeAuthErrorHandler, injectAuthConfig, loadingScreenPlugin, provideAuth, provideAuthConfig, resolveEmail, resolveUsername, unauthGuard };
|
|
619
622
|
//# sourceMappingURL=odx-auth.mjs.map
|