@cuby-ui/core 0.0.570 → 0.0.571

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/esm2022/index.mjs CHANGED
@@ -11,4 +11,5 @@ export * from './widgets';
11
11
  export * from './operators';
12
12
  export * from './pipes';
13
13
  export * from './i18n';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9lZGl0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJjZXB0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3dpZGdldHMnO1xuZXhwb3J0ICogZnJvbSAnLi9vcGVyYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4nO1xuIl19
14
+ export * from './classes';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9lZGl0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJjZXB0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3ZpZGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3dpZGdldHMnO1xuZXhwb3J0ICogZnJvbSAnLi9vcGVyYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4nO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzJztcbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import { HttpErrorResponse } from '@angular/common/http';
2
+ import { inject } from '@angular/core';
3
+ import { catchError, throwError } from 'rxjs';
4
+ import { CUI_AUTH_LOGIN_STRATEGY } from '../tokens';
5
+ export const cuiAuthErrorInterceptor = (request, next) => {
6
+ const loginStrategy = inject(CUI_AUTH_LOGIN_STRATEGY);
7
+ return next(request).pipe(catchError((error) => {
8
+ if (error instanceof HttpErrorResponse && (error.status === 401 || error.status === 403)) {
9
+ loginStrategy.openLogin();
10
+ }
11
+ return throwError(() => error);
12
+ }));
13
+ };
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1lcnJvci5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvaW50ZXJjZXB0b3JzL2F1dGgtZXJyb3IuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUEwQixNQUFNLHNCQUFzQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFOUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFzQixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUN4RSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUV0RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3JCLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2pCLElBQUksS0FBSyxZQUFZLGlCQUFpQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZGLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM5QixDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQ0wsQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlLCB0eXBlIEh0dHBJbnRlcmNlcHRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENVSV9BVVRIX0xPR0lOX1NUUkFURUdZIH0gZnJvbSAnLi4vdG9rZW5zJztcblxuZXhwb3J0IGNvbnN0IGN1aUF1dGhFcnJvckludGVyY2VwdG9yOiBIdHRwSW50ZXJjZXB0b3JGbiA9IChyZXF1ZXN0LCBuZXh0KSA9PiB7XG4gICAgY29uc3QgbG9naW5TdHJhdGVneSA9IGluamVjdChDVUlfQVVUSF9MT0dJTl9TVFJBVEVHWSk7XG5cbiAgICByZXR1cm4gbmV4dChyZXF1ZXN0KS5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UgJiYgKGVycm9yLnN0YXR1cyA9PT0gNDAxIHx8IGVycm9yLnN0YXR1cyA9PT0gNDAzKSkge1xuICAgICAgICAgICAgICAgIGxvZ2luU3RyYXRlZ3kub3BlbkxvZ2luKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICAgIH0pXG4gICAgKTtcbn07XG4iXX0=
@@ -3,4 +3,5 @@ export { cuiLoaderInterceptor } from './loader.interceptor';
3
3
  export { cuiErrorHandlerInterceptor } from './error-handler.interceptor';
4
4
  export { cuiAuthInterceptor } from './auth.interceptor';
5
5
  export { sseStreamReaderInterceptor } from './sse-stream-reader.interceptor';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2ludGVyY2VwdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGN1aVhOZGpzb25JbnRlcmNlcHRvciB9IGZyb20gJy4veC1uZGpzb24uaW50ZXJjZXB0b3InO1xyXG5leHBvcnQgeyBjdWlMb2FkZXJJbnRlcmNlcHRvciB9IGZyb20gJy4vbG9hZGVyLmludGVyY2VwdG9yJztcclxuZXhwb3J0IHsgY3VpRXJyb3JIYW5kbGVySW50ZXJjZXB0b3IgfSBmcm9tICcuL2Vycm9yLWhhbmRsZXIuaW50ZXJjZXB0b3InO1xyXG5leHBvcnQgeyBjdWlBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICcuL2F1dGguaW50ZXJjZXB0b3InO1xyXG5leHBvcnQgeyBzc2VTdHJlYW1SZWFkZXJJbnRlcmNlcHRvciB9IGZyb20gJy4vc3NlLXN0cmVhbS1yZWFkZXIuaW50ZXJjZXB0b3InO1xyXG4iXX0=
6
+ export { cuiAuthErrorInterceptor } from './auth-error.interceptor';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2ludGVyY2VwdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGN1aVhOZGpzb25JbnRlcmNlcHRvciB9IGZyb20gJy4veC1uZGpzb24uaW50ZXJjZXB0b3InO1xyXG5leHBvcnQgeyBjdWlMb2FkZXJJbnRlcmNlcHRvciB9IGZyb20gJy4vbG9hZGVyLmludGVyY2VwdG9yJztcclxuZXhwb3J0IHsgY3VpRXJyb3JIYW5kbGVySW50ZXJjZXB0b3IgfSBmcm9tICcuL2Vycm9yLWhhbmRsZXIuaW50ZXJjZXB0b3InO1xyXG5leHBvcnQgeyBjdWlBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICcuL2F1dGguaW50ZXJjZXB0b3InO1xyXG5leHBvcnQgeyBzc2VTdHJlYW1SZWFkZXJJbnRlcmNlcHRvciB9IGZyb20gJy4vc3NlLXN0cmVhbS1yZWFkZXIuaW50ZXJjZXB0b3InO1xyXG5leHBvcnQgeyBjdWlBdXRoRXJyb3JJbnRlcmNlcHRvciB9IGZyb20gJy4vYXV0aC1lcnJvci5pbnRlcmNlcHRvcic7XHJcbiJdfQ==
@@ -1,3 +1,3 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  export const CuiAuthService = new InjectionToken('CUI_AUTH_SERVICE');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9wcm92aWRlcnMvYXV0aC5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFtQi9DLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBK0Msa0JBQWtCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEF1dGhDb25maWcsIE9BdXRoTW9kdWxlQ29uZmlnIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5cbmltcG9ydCB0eXBlIHsgQ3VpQnJvd3NlckF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYnJvd3Nlci1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHR5cGUgeyBDdWlNb2JpbGVBdXRoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21vYmlsZS1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VpQXV0aEJhc2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBDdWlBdXRoUGxhdGZvcm0gPSAnbW9iaWxlJyB8ICdicm93c2VyJztcblxuZXhwb3J0IGludGVyZmFjZSBDdWlBdXRoQ29uZmlnIGV4dGVuZHMgQXV0aENvbmZpZyB7XG4gICAgcmVhZG9ubHkgdG9rZW5FeHBpcmVkQ2FsbGJhY2s/OiAodGhpczogQ3VpQXV0aEJhc2UpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VpQXV0aFByb3ZpZGVyQ29uZmlnIHtcbiAgICByZWFkb25seSBhdXRoQ29uZmlnOiBDdWlBdXRoQ29uZmlnO1xuICAgIHJlYWRvbmx5IG1vZHVsZUNvbmZpZz86IE9BdXRoTW9kdWxlQ29uZmlnO1xuICAgIHJlYWRvbmx5IHBsYXRmb3JtPzogQ3VpQXV0aFBsYXRmb3JtO1xufVxuXG5leHBvcnQgY29uc3QgQ3VpQXV0aFNlcnZpY2UgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q3VpTW9iaWxlQXV0aFNlcnZpY2UgfCBDdWlCcm93c2VyQXV0aFNlcnZpY2U+KCdDVUlfQVVUSF9TRVJWSUNFJyk7XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9wcm92aWRlcnMvYXV0aC5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFxQi9DLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBK0Msa0JBQWtCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQXV0aENvbmZpZywgT0F1dGhNb2R1bGVDb25maWcgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcblxuaW1wb3J0IHR5cGUgeyBDdWlBdXRoTG9naW5TdHJhdGVneVNlcnZpY2UgfSBmcm9tICcuLi90b2tlbnMnO1xuaW1wb3J0IHR5cGUgeyBDdWlCcm93c2VyQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9icm93c2VyLWF1dGguc2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IEN1aU1vYmlsZUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbW9iaWxlLWF1dGguc2VydmljZSc7XG5pbXBvcnQgeyBDdWlBdXRoQmFzZSB9IGZyb20gJy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIEN1aUF1dGhQbGF0Zm9ybSA9ICdtb2JpbGUnIHwgJ2Jyb3dzZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIEN1aUF1dGhDb25maWcgZXh0ZW5kcyBBdXRoQ29uZmlnIHtcbiAgICByZWFkb25seSB0b2tlbkV4cGlyZWRDYWxsYmFjaz86ICh0aGlzOiBDdWlBdXRoQmFzZSkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdWlBdXRoUHJvdmlkZXJDb25maWcge1xuICAgIHJlYWRvbmx5IGF1dGhDb25maWc6IEN1aUF1dGhDb25maWc7XG4gICAgcmVhZG9ubHkgbW9kdWxlQ29uZmlnPzogT0F1dGhNb2R1bGVDb25maWc7XG4gICAgcmVhZG9ubHkgcGxhdGZvcm0/OiBDdWlBdXRoUGxhdGZvcm07XG4gICAgcmVhZG9ubHkgbG9naW5TdHJhdGVneT86IFR5cGU8Q3VpQXV0aExvZ2luU3RyYXRlZ3lTZXJ2aWNlPjtcbn1cblxuZXhwb3J0IGNvbnN0IEN1aUF1dGhTZXJ2aWNlID0gbmV3IEluamVjdGlvblRva2VuPEN1aU1vYmlsZUF1dGhTZXJ2aWNlIHwgQ3VpQnJvd3NlckF1dGhTZXJ2aWNlPignQ1VJX0FVVEhfU0VSVklDRScpO1xuIl19
@@ -1,9 +1,11 @@
1
1
  import { APP_INITIALIZER, inject, makeEnvironmentProviders } from '@angular/core';
2
2
  import { provideOAuthClient } from 'angular-oauth2-oidc';
3
3
  import { CuiBrowserAuthService } from '../services/browser-auth.service';
4
+ import { CuiBrowserLoginStrategyService } from '../services/browser-login-strategy.service';
4
5
  import { CuiMobileAuthService } from '../services/mobile-auth.service';
6
+ import { CUI_AUTH_LOGIN_STRATEGY } from '../tokens';
5
7
  import { CuiAuthService } from './auth.options';
6
- export function provideCuiAuth({ authConfig, moduleConfig, platform = 'browser' }) {
8
+ export function provideCuiAuth({ authConfig, moduleConfig, platform = 'browser', loginStrategy = CuiBrowserLoginStrategyService }) {
7
9
  return [
8
10
  provideOAuthClient(moduleConfig),
9
11
  {
@@ -15,6 +17,10 @@ export function provideCuiAuth({ authConfig, moduleConfig, platform = 'browser'
15
17
  return inject(CuiBrowserAuthService);
16
18
  }
17
19
  },
20
+ {
21
+ provide: CUI_AUTH_LOGIN_STRATEGY,
22
+ useClass: loginStrategy
23
+ },
18
24
  makeEnvironmentProviders([
19
25
  {
20
26
  provide: APP_INITIALIZER,
@@ -26,6 +32,8 @@ export function provideCuiAuth({ authConfig, moduleConfig, platform = 'browser'
26
32
  }
27
33
  async function initAuth(authConfig) {
28
34
  const authService = inject(CuiAuthService);
35
+ const loginStrategy = inject(CUI_AUTH_LOGIN_STRATEGY);
36
+ authService.initAuthFailureEvents(() => loginStrategy.openLogin());
29
37
  return await authService.initAuth(authConfig);
30
38
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvcHJvdmlkZXJzL2F1dGgucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE1BQU0sVUFBVSxjQUFjLENBQUMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsR0FBRyxTQUFTLEVBQXlCO0lBQ3BHLE9BQU87UUFDSCxrQkFBa0IsQ0FBQyxZQUFZLENBQUM7UUFDaEM7WUFDSSxPQUFPLEVBQUUsY0FBYztZQUN2QixVQUFVLEVBQUUsR0FBaUQsRUFBRTtnQkFDM0QsSUFBSSxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQ3hCLE9BQU8sTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQ3hDLENBQUM7Z0JBRUQsT0FBTyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN6QyxDQUFDO1NBQ0o7UUFDRCx3QkFBd0IsQ0FBQztZQUNyQjtnQkFDSSxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsUUFBUSxFQUFFLEdBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO2dCQUNuRCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osQ0FBQztLQUNMLENBQUM7QUFDTixDQUFDO0FBRUQsS0FBSyxVQUFVLFFBQVEsQ0FBQyxVQUF5QjtJQUM3QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFM0MsT0FBTyxNQUFNLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgaW5qZWN0LCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQXV0aENvbmZpZyB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgcHJvdmlkZU9BdXRoQ2xpZW50IH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5cbmltcG9ydCB7IEN1aUJyb3dzZXJBdXRoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Jyb3dzZXItYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEN1aU1vYmlsZUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbW9iaWxlLWF1dGguc2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IEN1aUF1dGhDb25maWcsIEN1aUF1dGhQcm92aWRlckNvbmZpZyB9IGZyb20gJy4vYXV0aC5vcHRpb25zJztcbmltcG9ydCB7IEN1aUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLm9wdGlvbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUN1aUF1dGgoeyBhdXRoQ29uZmlnLCBtb2R1bGVDb25maWcsIHBsYXRmb3JtID0gJ2Jyb3dzZXInIH06IEN1aUF1dGhQcm92aWRlckNvbmZpZyk6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBwcm92aWRlT0F1dGhDbGllbnQobW9kdWxlQ29uZmlnKSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ3VpQXV0aFNlcnZpY2UsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoKTogQ3VpTW9iaWxlQXV0aFNlcnZpY2UgfCBDdWlCcm93c2VyQXV0aFNlcnZpY2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChwbGF0Zm9ybSA9PT0gJ21vYmlsZScpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGluamVjdChDdWlNb2JpbGVBdXRoU2VydmljZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGluamVjdChDdWlCcm93c2VyQXV0aFNlcnZpY2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogKCk6IFByb21pc2U8dm9pZD4gPT4gaW5pdEF1dGgoYXV0aENvbmZpZyksXG4gICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgXSlcbiAgICBdO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpbml0QXV0aChhdXRoQ29uZmlnOiBDdWlBdXRoQ29uZmlnKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3QoQ3VpQXV0aFNlcnZpY2UpO1xuXG4gICAgcmV0dXJuIGF3YWl0IGF1dGhTZXJ2aWNlLmluaXRBdXRoKGF1dGhDb25maWcpO1xufVxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvcHJvdmlkZXJzL2F1dGgucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRCxNQUFNLFVBQVUsY0FBYyxDQUFDLEVBQzNCLFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxHQUFHLFNBQVMsRUFDcEIsYUFBYSxHQUFHLDhCQUE4QixFQUMxQjtJQUNwQixPQUFPO1FBQ0gsa0JBQWtCLENBQUMsWUFBWSxDQUFDO1FBQ2hDO1lBQ0ksT0FBTyxFQUFFLGNBQWM7WUFDdkIsVUFBVSxFQUFFLEdBQWlELEVBQUU7Z0JBQzNELElBQUksUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUN4QixPQUFPLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO2dCQUVELE9BQU8sTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDekMsQ0FBQztTQUNKO1FBQ0Q7WUFDSSxPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLFFBQVEsRUFBRSxhQUFhO1NBQzFCO1FBQ0Qsd0JBQXdCLENBQUM7WUFDckI7Z0JBQ0ksT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLFFBQVEsRUFBRSxHQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztnQkFDbkQsS0FBSyxFQUFFLElBQUk7YUFDZDtTQUNKLENBQUM7S0FDTCxDQUFDO0FBQ04sQ0FBQztBQUVELEtBQUssVUFBVSxRQUFRLENBQUMsVUFBeUI7SUFDN0MsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRXRELFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUVuRSxPQUFPLE1BQU0sV0FBVyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBpbmplY3QsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcHJvdmlkZU9BdXRoQ2xpZW50IH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5cbmltcG9ydCB7IEN1aUJyb3dzZXJBdXRoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Jyb3dzZXItYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEN1aUJyb3dzZXJMb2dpblN0cmF0ZWd5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Jyb3dzZXItbG9naW4tc3RyYXRlZ3kuc2VydmljZSc7XG5pbXBvcnQgeyBDdWlNb2JpbGVBdXRoU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21vYmlsZS1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ1VJX0FVVEhfTE9HSU5fU1RSQVRFR1kgfSBmcm9tICcuLi90b2tlbnMnO1xuaW1wb3J0IHR5cGUgeyBDdWlBdXRoQ29uZmlnLCBDdWlBdXRoUHJvdmlkZXJDb25maWcgfSBmcm9tICcuL2F1dGgub3B0aW9ucyc7XG5pbXBvcnQgeyBDdWlBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5vcHRpb25zJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVDdWlBdXRoKHtcbiAgICBhdXRoQ29uZmlnLFxuICAgIG1vZHVsZUNvbmZpZyxcbiAgICBwbGF0Zm9ybSA9ICdicm93c2VyJyxcbiAgICBsb2dpblN0cmF0ZWd5ID0gQ3VpQnJvd3NlckxvZ2luU3RyYXRlZ3lTZXJ2aWNlXG59OiBDdWlBdXRoUHJvdmlkZXJDb25maWcpOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgcHJvdmlkZU9BdXRoQ2xpZW50KG1vZHVsZUNvbmZpZyksXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEN1aUF1dGhTZXJ2aWNlLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCk6IEN1aU1vYmlsZUF1dGhTZXJ2aWNlIHwgQ3VpQnJvd3NlckF1dGhTZXJ2aWNlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocGxhdGZvcm0gPT09ICdtb2JpbGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmplY3QoQ3VpTW9iaWxlQXV0aFNlcnZpY2UpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBpbmplY3QoQ3VpQnJvd3NlckF1dGhTZXJ2aWNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ1VJX0FVVEhfTE9HSU5fU1RSQVRFR1ksXG4gICAgICAgICAgICB1c2VDbGFzczogbG9naW5TdHJhdGVneVxuICAgICAgICB9LFxuICAgICAgICBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgICAgICB1c2VWYWx1ZTogKCk6IFByb21pc2U8dm9pZD4gPT4gaW5pdEF1dGgoYXV0aENvbmZpZyksXG4gICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgXSlcbiAgICBdO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpbml0QXV0aChhdXRoQ29uZmlnOiBDdWlBdXRoQ29uZmlnKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3QoQ3VpQXV0aFNlcnZpY2UpO1xuICAgIGNvbnN0IGxvZ2luU3RyYXRlZ3kgPSBpbmplY3QoQ1VJX0FVVEhfTE9HSU5fU1RSQVRFR1kpO1xuXG4gICAgYXV0aFNlcnZpY2UuaW5pdEF1dGhGYWlsdXJlRXZlbnRzKCgpID0+IGxvZ2luU3RyYXRlZ3kub3BlbkxvZ2luKCkpO1xuXG4gICAgcmV0dXJuIGF3YWl0IGF1dGhTZXJ2aWNlLmluaXRBdXRoKGF1dGhDb25maWcpO1xufVxuIl19
@@ -1,5 +1,6 @@
1
- import { OAuthInfoEvent } from 'angular-oauth2-oidc';
1
+ import { OAuthErrorEvent, OAuthInfoEvent } from 'angular-oauth2-oidc';
2
2
  import { filter } from 'rxjs';
3
+ import { cuiCheckAuthFailureEvent } from '../utils/check-auth-failure-event';
3
4
  import { CuiTokenBase } from './token.service';
4
5
  export class CuiAuthBase extends CuiTokenBase {
5
6
  createLoginUrl(state, loginHint, customRedirectUri, noPrompt, params) {
@@ -27,5 +28,12 @@ export class CuiAuthBase extends CuiTokenBase {
27
28
  this.refreshToken();
28
29
  });
29
30
  }
31
+ initAuthFailureEvents(onFailure) {
32
+ this.events.pipe(filter((event) => event instanceof OAuthErrorEvent)).subscribe((event) => {
33
+ if (cuiCheckAuthFailureEvent(event.type)) {
34
+ onFailure();
35
+ }
36
+ });
37
+ }
30
38
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFOUIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE1BQU0sT0FBZ0IsV0FBWSxTQUFRLFlBQVk7SUFHbEMsY0FBYyxDQUMxQixLQUFjLEVBQ2QsU0FBa0IsRUFDbEIsaUJBQTBCLEVBQzFCLFFBQWtCLEVBQ2xCLE1BQWU7UUFFZixPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVNLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxhQUF5QjtRQUNwRCxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3hELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFFaEUsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3hCLE9BQU87UUFDWCxDQUFDO1FBRUQsT0FBTyxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0scUJBQXFCLENBQUMsYUFBeUI7UUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNyRixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssZUFBZSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFLENBQUM7Z0JBQ2xFLE9BQU87WUFDWCxDQUFDO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7Z0JBQ3pELE9BQU8sYUFBYSxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQXV0aENvbmZpZywgVG9rZW5SZXNwb25zZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgT0F1dGhJbmZvRXZlbnQgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDdWlUb2tlbkJhc2UgfSBmcm9tICcuL3Rva2VuLnNlcnZpY2UnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ3VpQXV0aEJhc2UgZXh0ZW5kcyBDdWlUb2tlbkJhc2Uge1xuICAgIHB1YmxpYyBhYnN0cmFjdCBpbml0QXV0aChhdXRoQ29uZmlnOiBBdXRoQ29uZmlnKTogUHJvbWlzZTx2b2lkPjtcblxuICAgIHB1YmxpYyBvdmVycmlkZSBjcmVhdGVMb2dpblVybChcbiAgICAgICAgc3RhdGU/OiBzdHJpbmcsXG4gICAgICAgIGxvZ2luSGludD86IHN0cmluZyxcbiAgICAgICAgY3VzdG9tUmVkaXJlY3RVcmk/OiBzdHJpbmcsXG4gICAgICAgIG5vUHJvbXB0PzogYm9vbGVhbixcbiAgICAgICAgcGFyYW1zPzogb2JqZWN0XG4gICAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmNyZWF0ZUxvZ2luVXJsKHN0YXRlLCBsb2dpbkhpbnQsIGN1c3RvbVJlZGlyZWN0VXJpLCBub1Byb21wdCwgcGFyYW1zKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgdXNlQ2hlY2tUb2tlbkZsb3cobG9naW5DYWxsYmFjazogKCkgPT4gdm9pZCk6IFByb21pc2U8VG9rZW5SZXNwb25zZSB8IHZvaWQ+IHtcbiAgICAgICAgY29uc3QgaXNBY2Nlc3NUb2tlbkV4cGlyZWQgPSB0aGlzLmNoZWNrSXNUb2tlbkV4cGlyZWQoKTtcbiAgICAgICAgY29uc3QgaXNSZWZyZXNoVG9rZW5FeHBpcmVkID0gdGhpcy5jaGVja0lzUmVmcmVzaFRva2VuRXhwaXJlZCgpO1xuXG4gICAgICAgIGlmIChpc1JlZnJlc2hUb2tlbkV4cGlyZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBsb2dpbkNhbGxiYWNrKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzQWNjZXNzVG9rZW5FeHBpcmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5yZWZyZXNoVG9rZW4oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdEF1dGhSZWZyZXNoRXZlbnRzKGxvZ2luQ2FsbGJhY2s6ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ldmVudHMucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE9BdXRoSW5mb0V2ZW50KSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgIT09ICd0b2tlbl9leHBpcmVzJyB8fCBldmVudC5pbmZvICE9PSAnYWNjZXNzX3Rva2VuJykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF0aGlzLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSB8fCAhdGhpcy5nZXRSZWZyZXNoVG9rZW4oKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBsb2dpbkNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxNQUFNLE9BQWdCLFdBQVksU0FBUSxZQUFZO0lBR2xDLGNBQWMsQ0FDMUIsS0FBYyxFQUNkLFNBQWtCLEVBQ2xCLGlCQUEwQixFQUMxQixRQUFrQixFQUNsQixNQUFlO1FBRWYsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCLENBQUMsYUFBeUI7UUFDcEQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUN4RCxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBRWhFLElBQUkscUJBQXFCLEVBQUUsQ0FBQztZQUN4QixPQUFPLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFFRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUN4QixPQUFPO1FBQ1gsQ0FBQztRQUVELE9BQU8sTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVNLHFCQUFxQixDQUFDLGFBQXlCO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckYsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGVBQWUsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRSxDQUFDO2dCQUNsRSxPQUFPO1lBQ1gsQ0FBQztZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO2dCQUN6RCxPQUFPLGFBQWEsRUFBRSxDQUFDO1lBQzNCLENBQUM7WUFFRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0scUJBQXFCLENBQUMsU0FBcUI7UUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN0RixJQUFJLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN2QyxTQUFTLEVBQUUsQ0FBQztZQUNoQixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEF1dGhDb25maWcsIFRva2VuUmVzcG9uc2UgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IE9BdXRoRXJyb3JFdmVudCwgT0F1dGhJbmZvRXZlbnQgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBjdWlDaGVja0F1dGhGYWlsdXJlRXZlbnQgfSBmcm9tICcuLi91dGlscy9jaGVjay1hdXRoLWZhaWx1cmUtZXZlbnQnO1xuaW1wb3J0IHsgQ3VpVG9rZW5CYXNlIH0gZnJvbSAnLi90b2tlbi5zZXJ2aWNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEN1aUF1dGhCYXNlIGV4dGVuZHMgQ3VpVG9rZW5CYXNlIHtcbiAgICBwdWJsaWMgYWJzdHJhY3QgaW5pdEF1dGgoYXV0aENvbmZpZzogQXV0aENvbmZpZyk6IFByb21pc2U8dm9pZD47XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY3JlYXRlTG9naW5VcmwoXG4gICAgICAgIHN0YXRlPzogc3RyaW5nLFxuICAgICAgICBsb2dpbkhpbnQ/OiBzdHJpbmcsXG4gICAgICAgIGN1c3RvbVJlZGlyZWN0VXJpPzogc3RyaW5nLFxuICAgICAgICBub1Byb21wdD86IGJvb2xlYW4sXG4gICAgICAgIHBhcmFtcz86IG9iamVjdFxuICAgICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiBzdXBlci5jcmVhdGVMb2dpblVybChzdGF0ZSwgbG9naW5IaW50LCBjdXN0b21SZWRpcmVjdFVyaSwgbm9Qcm9tcHQsIHBhcmFtcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHVzZUNoZWNrVG9rZW5GbG93KGxvZ2luQ2FsbGJhY2s6ICgpID0+IHZvaWQpOiBQcm9taXNlPFRva2VuUmVzcG9uc2UgfCB2b2lkPiB7XG4gICAgICAgIGNvbnN0IGlzQWNjZXNzVG9rZW5FeHBpcmVkID0gdGhpcy5jaGVja0lzVG9rZW5FeHBpcmVkKCk7XG4gICAgICAgIGNvbnN0IGlzUmVmcmVzaFRva2VuRXhwaXJlZCA9IHRoaXMuY2hlY2tJc1JlZnJlc2hUb2tlbkV4cGlyZWQoKTtcblxuICAgICAgICBpZiAoaXNSZWZyZXNoVG9rZW5FeHBpcmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gbG9naW5DYWxsYmFjaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc0FjY2Vzc1Rva2VuRXhwaXJlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucmVmcmVzaFRva2VuKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRBdXRoUmVmcmVzaEV2ZW50cyhsb2dpbkNhbGxiYWNrOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXZlbnRzLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBPQXV0aEluZm9FdmVudCkpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC50eXBlICE9PSAndG9rZW5fZXhwaXJlcycgfHwgZXZlbnQuaW5mbyAhPT0gJ2FjY2Vzc190b2tlbicpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5oYXNWYWxpZEFjY2Vzc1Rva2VuKCkgfHwgIXRoaXMuZ2V0UmVmcmVzaFRva2VuKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbG9naW5DYWxsYmFjaygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hUb2tlbigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdEF1dGhGYWlsdXJlRXZlbnRzKG9uRmFpbHVyZTogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV2ZW50cy5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgT0F1dGhFcnJvckV2ZW50KSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGN1aUNoZWNrQXV0aEZhaWx1cmVFdmVudChldmVudC50eXBlKSkge1xuICAgICAgICAgICAgICAgIG9uRmFpbHVyZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { CuiAuthService } from '../providers';
3
+ import * as i0 from "@angular/core";
4
+ export class CuiBrowserLoginStrategyService {
5
+ constructor() {
6
+ this.authService = inject(CuiAuthService);
7
+ }
8
+ openLogin() {
9
+ this.authService.initLoginFlow();
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiBrowserLoginStrategyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
12
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiBrowserLoginStrategyService, providedIn: 'root' }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiBrowserLoginStrategyService, decorators: [{
15
+ type: Injectable,
16
+ args: [{ providedIn: 'root' }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci1sb2dpbi1zdHJhdGVneS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zZXJ2aWNlcy9icm93c2VyLWxvZ2luLXN0cmF0ZWd5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFJOUMsTUFBTSxPQUFPLDhCQUE4QjtJQUQzQztRQUVxQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQUt6RDtJQUhVLFNBQVM7UUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7K0dBTFEsOEJBQThCO21IQUE5Qiw4QkFBOEIsY0FEakIsTUFBTTs7NEZBQ25CLDhCQUE4QjtrQkFEMUMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ3VpQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9wcm92aWRlcnMnO1xuaW1wb3J0IHR5cGUgeyBDdWlBdXRoTG9naW5TdHJhdGVneVNlcnZpY2UgfSBmcm9tICcuLi90b2tlbnMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEN1aUJyb3dzZXJMb2dpblN0cmF0ZWd5U2VydmljZSBpbXBsZW1lbnRzIEN1aUF1dGhMb2dpblN0cmF0ZWd5U2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZSA9IGluamVjdChDdWlBdXRoU2VydmljZSk7XG5cbiAgICBwdWJsaWMgb3BlbkxvZ2luKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmluaXRMb2dpbkZsb3coKTtcbiAgICB9XG59XG4iXX0=
@@ -8,4 +8,5 @@ export * from './auth.service';
8
8
  export * from './token.options';
9
9
  export * from './global-handler-error.service';
10
10
  export * from './hybrid-storage.service';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Bvc2l0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90aGVtZS5vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vdGhlbWUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xvYWRlci5vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi92aXN1YWwtdmlld3BvcnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGguc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3Rva2VuLm9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9nbG9iYWwtaGFuZGxlci1lcnJvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaHlicmlkLXN0b3JhZ2Uuc2VydmljZSc7XG4iXX0=
11
+ export * from './browser-login-strategy.service';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcG9zaXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RoZW1lLm9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi90aGVtZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGVyLm9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3Zpc3VhbC12aWV3cG9ydC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdG9rZW4ub3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2dsb2JhbC1oYW5kbGVyLWVycm9yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9oeWJyaWQtc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYnJvd3Nlci1sb2dpbi1zdHJhdGVneS5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const CUI_AUTH_LOGIN_STRATEGY = new InjectionToken('CUI_AUTH_LOGIN_STRATEGY');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1sb2dpbi1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvdG9rZW5zL2F1dGgtbG9naW4tc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBOEIseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBDVUlfQVVUSF9MT0dJTl9TVFJBVEVHWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDdWlBdXRoTG9naW5TdHJhdGVneVNlcnZpY2U+KCdDVUlfQVVUSF9MT0dJTl9TVFJBVEVHWScpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEN1aUF1dGhMb2dpblN0cmF0ZWd5U2VydmljZSB7XG4gICAgb3BlbkxvZ2luKCk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+O1xufVxuIl19
@@ -4,4 +4,5 @@ export * from './viewport';
4
4
  export * from './error-notification-service';
5
5
  export * from './error-translation-prefix';
6
6
  export * from './should-handle-error';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3Rva2Vucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FuaW1hdGlvbnMtc3BlZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWR1Y2VkLW1vdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL3ZpZXdwb3J0JztcbmV4cG9ydCAqIGZyb20gJy4vZXJyb3Itbm90aWZpY2F0aW9uLXNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvci10cmFuc2xhdGlvbi1wcmVmaXgnO1xuZXhwb3J0ICogZnJvbSAnLi9zaG91bGQtaGFuZGxlLWVycm9yJztcbiJdfQ==
7
+ export * from './auth-login-strategy';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3Rva2Vucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYW5pbWF0aW9ucy1zcGVlZCc7XG5leHBvcnQgKiBmcm9tICcuL3JlZHVjZWQtbW90aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdmlld3BvcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lcnJvci1ub3RpZmljYXRpb24tc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2Vycm9yLXRyYW5zbGF0aW9uLXByZWZpeCc7XG5leHBvcnQgKiBmcm9tICcuL3Nob3VsZC1oYW5kbGUtZXJyb3InO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLWxvZ2luLXN0cmF0ZWd5JztcbiJdfQ==
@@ -0,0 +1,14 @@
1
+ export function cuiCheckAuthFailureEvent(type) {
2
+ switch (type) {
3
+ case 'token_refresh_error':
4
+ case 'token_validation_error':
5
+ case 'session_terminated':
6
+ case 'session_error':
7
+ case 'silent_refresh_error':
8
+ case 'silent_refresh_timeout':
9
+ return true;
10
+ default:
11
+ return false;
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stYXV0aC1mYWlsdXJlLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS91dGlscy9jaGVjay1hdXRoLWZhaWx1cmUtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLHdCQUF3QixDQUFDLElBQWU7SUFDcEQsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNYLEtBQUsscUJBQXFCLENBQUM7UUFDM0IsS0FBSyx3QkFBd0IsQ0FBQztRQUM5QixLQUFLLG9CQUFvQixDQUFDO1FBQzFCLEtBQUssZUFBZSxDQUFDO1FBQ3JCLEtBQUssc0JBQXNCLENBQUM7UUFDNUIsS0FBSyx3QkFBd0I7WUFDekIsT0FBTyxJQUFJLENBQUM7UUFDaEI7WUFDSSxPQUFPLEtBQUssQ0FBQztJQUNyQixDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXZlbnRUeXBlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjdWlDaGVja0F1dGhGYWlsdXJlRXZlbnQodHlwZTogRXZlbnRUeXBlKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgJ3Rva2VuX3JlZnJlc2hfZXJyb3InOlxuICAgICAgICBjYXNlICd0b2tlbl92YWxpZGF0aW9uX2Vycm9yJzpcbiAgICAgICAgY2FzZSAnc2Vzc2lvbl90ZXJtaW5hdGVkJzpcbiAgICAgICAgY2FzZSAnc2Vzc2lvbl9lcnJvcic6XG4gICAgICAgIGNhc2UgJ3NpbGVudF9yZWZyZXNoX2Vycm9yJzpcbiAgICAgICAgY2FzZSAnc2lsZW50X3JlZnJlc2hfdGltZW91dCc6XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iXX0=
@@ -2,4 +2,5 @@ export * from './format';
2
2
  export * from './miscellaneous';
3
3
  export * from './default-validators';
4
4
  export * from './check-fixed-position';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb3JtYXQnO1xuZXhwb3J0ICogZnJvbSAnLi9taXNjZWxsYW5lb3VzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC12YWxpZGF0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vY2hlY2stZml4ZWQtcG9zaXRpb24nO1xuIl19
5
+ export * from './check-auth-failure-event';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Zvcm1hdCc7XG5leHBvcnQgKiBmcm9tICcuL21pc2NlbGxhbmVvdXMnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LXZhbGlkYXRvcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGVjay1maXhlZC1wb3NpdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2NoZWNrLWF1dGgtZmFpbHVyZS1ldmVudCc7XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, ChangeDetectionStrategy, inject, Renderer2, input, model, effect, Directive, InjectionToken, Input, HostBinding, ChangeDetectorRef, ViewChild, EventEmitter, Output, NgModule, Injector, Injectable, SkipSelf, Optional, DestroyRef, NgZone, signal, Self, INJECTOR, TemplateRef, forwardRef, ViewEncapsulation, computed, ContentChildren, output, ElementRef, HostListener, ViewContainerRef, booleanAttribute, untracked, Pipe, makeEnvironmentProviders, APP_INITIALIZER, ErrorHandler, viewChild } from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, inject, Renderer2, input, model, effect, Directive, InjectionToken, Input, HostBinding, ChangeDetectorRef, ViewChild, EventEmitter, Output, NgModule, Injector, Injectable, SkipSelf, Optional, DestroyRef, NgZone, signal, makeEnvironmentProviders, APP_INITIALIZER, ErrorHandler, Self, INJECTOR, TemplateRef, forwardRef, ViewEncapsulation, computed, ContentChildren, output, ElementRef, HostListener, ViewContainerRef, booleanAttribute, untracked, Pipe, viewChild } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
- import { CommonModule, DOCUMENT, NgForOf, NgIf, NgComponentOutlet, NgTemplateOutlet, NgFor, NgClass, Location, UpperCasePipe, AsyncPipe, KeyValuePipe, LowerCasePipe, TitleCasePipe } from '@angular/common';
4
+ import { CommonModule, DOCUMENT, Location, NgForOf, NgIf, NgComponentOutlet, NgTemplateOutlet, NgFor, NgClass, UpperCasePipe, AsyncPipe, KeyValuePipe, LowerCasePipe, TitleCasePipe } from '@angular/common';
5
5
  import { DomSanitizer } from '@angular/platform-browser';
6
6
  import { cuiIsIcon, CUI_ICONS } from '@cuby-ui/icons';
7
7
  import * as i1$1 from '@cuby-ui/cdk';
@@ -15,6 +15,7 @@ import { CuiExchangeContextApiService, CUI_JTEXT_API_SERVICE, CuiJTextApiService
15
15
  import { HttpErrorResponse } from '@angular/common/http';
16
16
  import * as i4 from '@jsverse/transloco';
17
17
  import { TranslocoService, TranslocoModule, TranslocoDirective, TranslocoPipe } from '@jsverse/transloco';
18
+ import { Router } from '@angular/router';
18
19
  import * as i5 from '@angular/forms';
19
20
  import { Validators, NG_VALUE_ACCESSOR, FormsModule, ReactiveFormsModule, FormControl, NonNullableFormBuilder } from '@angular/forms';
20
21
  import * as i2 from '@taiga-ui/polymorpheus';
@@ -25,7 +26,6 @@ import { MaskitoDirective } from '@maskito/angular';
25
26
  import EditorJS from '@editorjs/editorjs';
26
27
  import Header from '@editorjs/header';
27
28
  import List from '@editorjs/list';
28
- import { Router } from '@angular/router';
29
29
  import { createCustomElement } from '@angular/elements';
30
30
  import { tap as tap$1, finalize as finalize$1, switchMap as switchMap$1 } from 'rxjs/operators';
31
31
 
@@ -1151,6 +1151,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
1151
1151
  }]
1152
1152
  }] });
1153
1153
 
1154
+ function cuiCheckAuthFailureEvent(type) {
1155
+ switch (type) {
1156
+ case 'token_refresh_error':
1157
+ case 'token_validation_error':
1158
+ case 'session_terminated':
1159
+ case 'session_error':
1160
+ case 'silent_refresh_error':
1161
+ case 'silent_refresh_timeout':
1162
+ return true;
1163
+ default:
1164
+ return false;
1165
+ }
1166
+ }
1167
+
1154
1168
  class CuiToken extends OAuthService {
1155
1169
  constructor() {
1156
1170
  super(...arguments);
@@ -1294,6 +1308,13 @@ class CuiAuthBase extends CuiTokenBase {
1294
1308
  this.refreshToken();
1295
1309
  });
1296
1310
  }
1311
+ initAuthFailureEvents(onFailure) {
1312
+ this.events.pipe(filter((event) => event instanceof OAuthErrorEvent)).subscribe((event) => {
1313
+ if (cuiCheckAuthFailureEvent(event.type)) {
1314
+ onFailure();
1315
+ }
1316
+ });
1317
+ }
1297
1318
  }
1298
1319
 
1299
1320
  const CUI_REDUCED_MOTION = cuiCreateTokenFromFactory(() => inject(DOCUMENT).defaultView?.matchMedia?.('(prefers-reduced-motion: reduce)').matches ?? false);
@@ -1352,6 +1373,8 @@ const CUI_ERROR_TRANSLATION_PREFIX = new InjectionToken('CUI_ERROR_TRANSLATION_P
1352
1373
 
1353
1374
  const CUI_SHOULD_HANDLE_ERROR = new InjectionToken('CUI_SHOULD_HANDLE_ERROR');
1354
1375
 
1376
+ const CUI_AUTH_LOGIN_STRATEGY = new InjectionToken('CUI_AUTH_LOGIN_STRATEGY');
1377
+
1355
1378
  class CuiErrorResolverFactory {
1356
1379
  constructor() {
1357
1380
  this.nullErrorStrategy = inject(NullErrorStrategy);
@@ -1501,6 +1524,141 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
1501
1524
  }]
1502
1525
  }] });
1503
1526
 
1527
+ const CuiAuthService = new InjectionToken('CUI_AUTH_SERVICE');
1528
+
1529
+ class CuiBrowserAuthService extends CuiAuthBase {
1530
+ constructor() {
1531
+ super(...arguments);
1532
+ this.router = inject(Router);
1533
+ this.location = inject(Location);
1534
+ this.oauthStorage = inject(CuiHybridStorageService);
1535
+ }
1536
+ async initAuth(authConfig) {
1537
+ this.setStorage(this.oauthStorage);
1538
+ this.configure(authConfig);
1539
+ await this.loadDiscoveryDocument();
1540
+ try {
1541
+ await this.tryLogin();
1542
+ }
1543
+ catch (error) {
1544
+ if (!this.hasValidAccessToken()) {
1545
+ throw error;
1546
+ }
1547
+ }
1548
+ const tokenExpiredCallback = authConfig.tokenExpiredCallback?.bind(this) ?? this.initLoginFlow.bind(this);
1549
+ this.initAuthRefreshEvents(tokenExpiredCallback);
1550
+ await this.useCheckTokenFlow(tokenExpiredCallback);
1551
+ this.router.navigateByUrl(this.location.path(false).split('?')[0]);
1552
+ }
1553
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiBrowserAuthService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1554
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiBrowserAuthService, providedIn: 'root' }); }
1555
+ }
1556
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiBrowserAuthService, decorators: [{
1557
+ type: Injectable,
1558
+ args: [{
1559
+ providedIn: 'root'
1560
+ }]
1561
+ }] });
1562
+
1563
+ class CuiMobileAuthService extends CuiAuthBase {
1564
+ constructor() {
1565
+ super(...arguments);
1566
+ this.oauthStorage = inject(CuiHybridStorageService);
1567
+ }
1568
+ async initAuth(authConfig) {
1569
+ this.setStorage(this.oauthStorage);
1570
+ this.configure(authConfig);
1571
+ if (!authConfig.tokenExpiredCallback) {
1572
+ return;
1573
+ }
1574
+ await this.loadDiscoveryDocument();
1575
+ await this.tryLogin();
1576
+ this.initAuthRefreshEvents(authConfig.tokenExpiredCallback.bind(this));
1577
+ await this.useCheckTokenFlow(authConfig.tokenExpiredCallback.bind(this));
1578
+ }
1579
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiMobileAuthService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
1580
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiMobileAuthService, providedIn: 'root' }); }
1581
+ }
1582
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiMobileAuthService, decorators: [{
1583
+ type: Injectable,
1584
+ args: [{
1585
+ providedIn: 'root'
1586
+ }]
1587
+ }] });
1588
+
1589
+ function provideCuiAuth({ authConfig, moduleConfig, platform = 'browser', loginStrategy = CuiBrowserLoginStrategyService }) {
1590
+ return [
1591
+ provideOAuthClient(moduleConfig),
1592
+ {
1593
+ provide: CuiAuthService,
1594
+ useFactory: () => {
1595
+ if (platform === 'mobile') {
1596
+ return inject(CuiMobileAuthService);
1597
+ }
1598
+ return inject(CuiBrowserAuthService);
1599
+ }
1600
+ },
1601
+ {
1602
+ provide: CUI_AUTH_LOGIN_STRATEGY,
1603
+ useClass: loginStrategy
1604
+ },
1605
+ makeEnvironmentProviders([
1606
+ {
1607
+ provide: APP_INITIALIZER,
1608
+ useValue: () => initAuth(authConfig),
1609
+ multi: true
1610
+ }
1611
+ ])
1612
+ ];
1613
+ }
1614
+ async function initAuth(authConfig) {
1615
+ const authService = inject(CuiAuthService);
1616
+ const loginStrategy = inject(CUI_AUTH_LOGIN_STRATEGY);
1617
+ authService.initAuthFailureEvents(() => loginStrategy.openLogin());
1618
+ return await authService.initAuth(authConfig);
1619
+ }
1620
+
1621
+ function provideCuiErrorHandler({ errorNotificationService, shouldHandleError, translationPrefix = 'BACKEND.' } = {}) {
1622
+ const providers = [
1623
+ {
1624
+ provide: ErrorHandler,
1625
+ useClass: CuiGlobalErrorHandler
1626
+ },
1627
+ {
1628
+ provide: CUI_ERROR_TRANSLATION_PREFIX,
1629
+ useValue: translationPrefix
1630
+ }
1631
+ ];
1632
+ if (errorNotificationService) {
1633
+ providers.push({
1634
+ provide: CUI_ERROR_NOTIFICATION_SERVICE,
1635
+ useClass: errorNotificationService
1636
+ });
1637
+ }
1638
+ if (shouldHandleError) {
1639
+ providers.push({
1640
+ provide: CUI_SHOULD_HANDLE_ERROR,
1641
+ useValue: shouldHandleError
1642
+ });
1643
+ }
1644
+ return providers;
1645
+ }
1646
+
1647
+ class CuiBrowserLoginStrategyService {
1648
+ constructor() {
1649
+ this.authService = inject(CuiAuthService);
1650
+ }
1651
+ openLogin() {
1652
+ this.authService.initLoginFlow();
1653
+ }
1654
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiBrowserLoginStrategyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1655
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiBrowserLoginStrategyService, providedIn: 'root' }); }
1656
+ }
1657
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiBrowserLoginStrategyService, decorators: [{
1658
+ type: Injectable,
1659
+ args: [{ providedIn: 'root' }]
1660
+ }] });
1661
+
1504
1662
  function cuiRemoveSpaces(value) {
1505
1663
  return value.replace(/\s+/g, '');
1506
1664
  }
@@ -6930,120 +7088,6 @@ function checkIsBrTag(input, index) {
6930
7088
  return tag + '>' === BR_TAG;
6931
7089
  }
6932
7090
 
6933
- const CuiAuthService = new InjectionToken('CUI_AUTH_SERVICE');
6934
-
6935
- class CuiBrowserAuthService extends CuiAuthBase {
6936
- constructor() {
6937
- super(...arguments);
6938
- this.router = inject(Router);
6939
- this.location = inject(Location);
6940
- this.oauthStorage = inject(CuiHybridStorageService);
6941
- }
6942
- async initAuth(authConfig) {
6943
- this.setStorage(this.oauthStorage);
6944
- this.configure(authConfig);
6945
- await this.loadDiscoveryDocument();
6946
- try {
6947
- await this.tryLogin();
6948
- }
6949
- catch (error) {
6950
- if (!this.hasValidAccessToken()) {
6951
- throw error;
6952
- }
6953
- }
6954
- const tokenExpiredCallback = authConfig.tokenExpiredCallback?.bind(this) ?? this.initLoginFlow.bind(this);
6955
- this.initAuthRefreshEvents(tokenExpiredCallback);
6956
- await this.useCheckTokenFlow(tokenExpiredCallback);
6957
- this.router.navigateByUrl(this.location.path(false).split('?')[0]);
6958
- }
6959
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiBrowserAuthService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
6960
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiBrowserAuthService, providedIn: 'root' }); }
6961
- }
6962
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiBrowserAuthService, decorators: [{
6963
- type: Injectable,
6964
- args: [{
6965
- providedIn: 'root'
6966
- }]
6967
- }] });
6968
-
6969
- class CuiMobileAuthService extends CuiAuthBase {
6970
- constructor() {
6971
- super(...arguments);
6972
- this.oauthStorage = inject(CuiHybridStorageService);
6973
- }
6974
- async initAuth(authConfig) {
6975
- this.setStorage(this.oauthStorage);
6976
- this.configure(authConfig);
6977
- if (!authConfig.tokenExpiredCallback) {
6978
- return;
6979
- }
6980
- await this.loadDiscoveryDocument();
6981
- await this.tryLogin();
6982
- this.initAuthRefreshEvents(authConfig.tokenExpiredCallback.bind(this));
6983
- await this.useCheckTokenFlow(authConfig.tokenExpiredCallback.bind(this));
6984
- }
6985
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiMobileAuthService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
6986
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiMobileAuthService, providedIn: 'root' }); }
6987
- }
6988
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiMobileAuthService, decorators: [{
6989
- type: Injectable,
6990
- args: [{
6991
- providedIn: 'root'
6992
- }]
6993
- }] });
6994
-
6995
- function provideCuiAuth({ authConfig, moduleConfig, platform = 'browser' }) {
6996
- return [
6997
- provideOAuthClient(moduleConfig),
6998
- {
6999
- provide: CuiAuthService,
7000
- useFactory: () => {
7001
- if (platform === 'mobile') {
7002
- return inject(CuiMobileAuthService);
7003
- }
7004
- return inject(CuiBrowserAuthService);
7005
- }
7006
- },
7007
- makeEnvironmentProviders([
7008
- {
7009
- provide: APP_INITIALIZER,
7010
- useValue: () => initAuth(authConfig),
7011
- multi: true
7012
- }
7013
- ])
7014
- ];
7015
- }
7016
- async function initAuth(authConfig) {
7017
- const authService = inject(CuiAuthService);
7018
- return await authService.initAuth(authConfig);
7019
- }
7020
-
7021
- function provideCuiErrorHandler({ errorNotificationService, shouldHandleError, translationPrefix = 'BACKEND.' } = {}) {
7022
- const providers = [
7023
- {
7024
- provide: ErrorHandler,
7025
- useClass: CuiGlobalErrorHandler
7026
- },
7027
- {
7028
- provide: CUI_ERROR_TRANSLATION_PREFIX,
7029
- useValue: translationPrefix
7030
- }
7031
- ];
7032
- if (errorNotificationService) {
7033
- providers.push({
7034
- provide: CUI_ERROR_NOTIFICATION_SERVICE,
7035
- useClass: errorNotificationService
7036
- });
7037
- }
7038
- if (shouldHandleError) {
7039
- providers.push({
7040
- provide: CUI_SHOULD_HANDLE_ERROR,
7041
- useValue: shouldHandleError
7042
- });
7043
- }
7044
- return providers;
7045
- }
7046
-
7047
7091
  function presetConfigToken() {
7048
7092
  const token = inject(CuiAuthService).getAccessToken();
7049
7093
  const additionalRequestHeaders = {
@@ -9190,6 +9234,16 @@ function processChunk(line, observer) {
9190
9234
  }
9191
9235
  }
9192
9236
 
9237
+ const cuiAuthErrorInterceptor = (request, next) => {
9238
+ const loginStrategy = inject(CUI_AUTH_LOGIN_STRATEGY);
9239
+ return next(request).pipe(catchError((error) => {
9240
+ if (error instanceof HttpErrorResponse && (error.status === 401 || error.status === 403)) {
9241
+ loginStrategy.openLogin();
9242
+ }
9243
+ return throwError(() => error);
9244
+ }));
9245
+ };
9246
+
9193
9247
  /**
9194
9248
  * @deprecated Use CuiLoaderComponent with type="circle" instead
9195
9249
  */
@@ -13539,5 +13593,5 @@ const CuiTranslations = {
13539
13593
  * Generated bundle index. Do not edit.
13540
13594
  */
13541
13595
 
13542
- export { AlertHintComponent, AngularOutsideLoaderService, AssigneeRoleItemComponent, AssigneeRolesTabsComponent, ButtonChangeThemeComponent, CUI_ACTIVITY_SERVICE_TOKEN, CUI_ALERTS, CUI_ALERT_CONTEXT, CUI_ALERT_DEFAULT_OPTIONS, CUI_ALERT_OPTIONS, CUI_ANIMATIONS_DEFAULT_DURATION, CUI_BADGE_DEFAULT_OPTIONS, CUI_BADGE_OPTIONS, CUI_BANNER_DEFAULT_OPTIONS, CUI_BANNER_OPTIONS, CUI_BUTTON_DEFAULT_OPTIONS, CUI_BUTTON_OPTIONS, CUI_DEFAULT_THEME, CUI_DIALOGS, CUI_DIALOG_CONTEXT, CUI_DIALOG_DEFAULT_OPTIONS, CUI_DIALOG_OPTIONS, CUI_FILTER_BAR_DEFAULT_TRANSLATIONS, CUI_INPUT_TIME_DEFAULT_OPTIONS, CUI_INPUT_TIME_OPTIONS, CUI_NOTIFICATION_DEFAULT_OPTIONS, CUI_NOTIFICATION_ICONS, CUI_NOTIFICATION_ICON_OPTIONS, CUI_NOTIFICATION_ICON_OPTIONS_DEFAULT_MODE, CUI_NOTIFICATION_ICON_OPTIONS_LIGHT_MODE, CUI_NOTIFICATION_OPTIONS, CUI_RESOURCE_STATE_SERVICE_TOKEN, CUI_ROOT_SELECTOR, CUI_STORAGE_LIST_SERVICE_TOKEN, CUI_SUBJECT_MODAL_SERVICE_TOKEN, CUI_TABS_SERVICE_TOKEN, CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FIELD_ICON_LEFT, CUI_TEXT_FIELD_ID, CUI_TEXT_FIELD_IS_ERROR, CUI_TEXT_FIELD_PLACEHOLDER, CUI_TEXT_FIELD_SIZE, CUI_TEXT_FILED_CONTROLLER_PROVIDER, CUI_THEME, CUI_THEME_STORAGE_DEFAULT_KEY, CUI_THEME_STORAGE_KEY, CUI_TOOLTIP_COMPONENT, CUI_TOOLTIP_DEFAULT_OPTIONS, CUI_TOOLTIP_DIRECTIONS, CUI_TOOLTIP_OPTIONS, CUI_TOOLTIP_PROVIDERS, CUI_USED_ELEMENTS_SERVICE_TOKEN, CUI_UTILITY_SERVICE_TOKEN, ContentHeaderComponent, CuiAbstractTabsComponent, CuiAccordionComponent, CuiAccordionDirective, CuiAccordionItemComponent, CuiAccordionModule, CuiActivityBaseService, CuiActivityImplService, CuiAlertComponent, CuiAlertModule, CuiAlertService, CuiAlertsComponent, CuiAttachesTool, CuiAuthBase, CuiAuthService, CuiBadgeComponent, CuiBadgeModule, CuiBannerComponent, CuiBannerModule, CuiBreadcrumbComponent, CuiBreadcrumbsComponent, CuiBreadcrumbsModule, CuiButtonComponent, CuiButtonGroupComponent, CuiButtonGroupModule, CuiButtonModule, CuiCardWrapperComponent, CuiCategoriesComponent, CuiCheckboxComponent, CuiCheckboxModule, CuiChecklistBlockComponent, CuiCircleLoaderComponent, CuiContentWrapperComponent, CuiContextMenuComponent, CuiContextMenuModule, CuiCriterionInfoComponent, CuiCriterionInfoFormComponent, CuiCriterionModalCreateComponent, CuiCriterionReadonlyInfoComponent, CuiDateRangeCalendarComponent, CuiDateRangeCalendarModule, CuiDeleteModalComponent, CuiDialogActionsComponent, CuiDialogComponent, CuiDialogHeaderComponent, CuiDialogModule, CuiDialogService, CuiDialogsComponent, CuiDropdownDirective, CuiDropdownWrapperComponent, CuiEditorBlockComponent, CuiEditorComponent, CuiEditorModalComponent, CuiEditorReadonlyComponent, CuiEditorTranslations, CuiEmptyStateComponent, CuiFileIconComponent, CuiFileUploader, CuiFileUploaderStatus, CuiFilterBarComponent, CuiFilterBarModule, CuiFormFieldComponent, CuiFormFieldModule, CuiFramerPreviewComponent, CuiGeneralControlErrorHintComponent, CuiGhostInputComponent, CuiGlobalErrorHandler, CuiHeaderTool, CuiHintComponent, CuiHintModule, CuiHybridStorageService, CuiIconButtonComponent, CuiIconButtonModule, CuiImageTool, CuiInputModule, CuiInputNumberComponent, CuiInputNumberModule, CuiInputPasswordComponent, CuiInputPasswordModule, CuiInputTextComponent, CuiInputTimeComponent, CuiInputTimeModule, CuiInstructionInfoComponent, CuiInstructionInfoFormComponent, CuiInstructionModalCreateComponent, CuiInstructionReadonlyInfoComponent, CuiLabelComponent, CuiLabelModule, CuiLayoutComponent, CuiLetterBoxComponent, CuiLibTranslations, CuiLinearLoaderComponent, CuiLinkMarker, CuiListTool, CuiLoaderComponent, CuiLoaderService, CuiLoadingState, CuiNotificationComponent, CuiNotificationModule, CuiPositionService, CuiPulseLoaderComponent, CuiRadioComponent, CuiRadioModule, CuiReadonlyCriterionModalComponent, CuiReadonlyInstructionModalComponent, CuiReadonlyUtilityModalComponent, CuiRenderDynamicComponentsComponent, CuiRenderDynamicComponentsService, CuiRoleMarker, CuiRootComponent, CuiRootModule, CuiSelectComponent, CuiSelectModalComponent, CuiSelectModalFolderComponent, CuiSelectModalSearchComponent, CuiSelectModalService, CuiSelectModule, CuiSelectedCategoryService, CuiSidebarContainerComponent, CuiSidebarHeaderComponent, CuiSidebarNavigationComponent, CuiSidebarNavigationContainerComponent, CuiSidebarNavigationItemComponent, CuiSidebarService, CuiSkeleton, CuiStatedLoaderComponent, CuiStorageListComponent, CuiSvgComponent, CuiSvgModule, CuiTabDirective, CuiTabsComponent, CuiTabsServiceImpl, CuiTextFieldController, CuiTextFieldControllerModule, CuiTextFieldIconLeftDirective, CuiTextFieldIdDirective, CuiTextFieldIsErrorDirective, CuiTextFieldPlaceholderDirective, CuiTextFieldSizeDirective, CuiTextareaComponent, CuiTextareaModule, CuiThemeService, CuiTimePipe, CuiToggleComponent, CuiToggleModule, CuiToolMarker, CuiTooltip, CuiTooltipComponent, CuiTooltipDescribe, CuiTooltipDirective, CuiTooltipDriver, CuiTooltipHost, CuiTooltipHover, CuiTooltipManual, CuiTooltipOptionsDirective, CuiTooltipOverflow, CuiTooltipPointer, CuiTooltipPosition, CuiTooltipService, CuiTooltipUnstyled, CuiTooltipUnstyledComponent, CuiTooltips, CuiTranslations, CuiUserActionContextMenuComponent, CuiUtilityModalComponent, CuiUtilityModalCreateComponent, CuiUtilityReadonlyThumbnailComponent, CuiUtilityThumbnailComponent, CuiVideoTool, CuiVisualViewportService, FileSizePipe, InsertedComponent, ModalDividedSectionComponent, ModalHeaderComponent, ModalHeaderInsertedButtonsComponent, ModalInfoTabComponent, ModalOperationPartComponent, ModalResourcesTabComponent, OptionsButtonComponent, RenderDynamicModalComponent, ResourceStateBaseService, ResourcesBlockComponent, ResourcesBlockPartComponent, ResourcesBlockTabsComponent$1 as ResourcesBlockTabsComponent, ResourcesOptionsComponent, SubjectModalBaseService, UTILITY_MODAL_SERVICE_TOKEN, UsedElementsBaseService, UtilityBaseService, UtilityInfoReadonlyComponent, createEditorTools, cuiAuthInterceptor, cuiCheckFixedPosition, cuiCreateDefaultValidators, cuiErrorHandlerInterceptor, cuiGetDuration, cuiIsObscured, cuiLoaderInterceptor, cuiOverrideOptions, cuiProvideEditor, cuiRemoveSpaces, cuiReplace, cuiToAnimationOptions, cuiTooltipOptionsProvider, cuiXNdjsonInterceptor, handleError, openFileInBrowser, presetConfigToken, provideCuiAuth, provideCuiErrorHandler, provideCuiTabs, setLoading, sseStreamReaderInterceptor };
13596
+ export { AlertHintComponent, AngularOutsideLoaderService, AssigneeRoleItemComponent, AssigneeRolesTabsComponent, ButtonChangeThemeComponent, CUI_ACTIVITY_SERVICE_TOKEN, CUI_ALERTS, CUI_ALERT_CONTEXT, CUI_ALERT_DEFAULT_OPTIONS, CUI_ALERT_OPTIONS, CUI_ANIMATIONS_DEFAULT_DURATION, CUI_BADGE_DEFAULT_OPTIONS, CUI_BADGE_OPTIONS, CUI_BANNER_DEFAULT_OPTIONS, CUI_BANNER_OPTIONS, CUI_BUTTON_DEFAULT_OPTIONS, CUI_BUTTON_OPTIONS, CUI_DEFAULT_THEME, CUI_DIALOGS, CUI_DIALOG_CONTEXT, CUI_DIALOG_DEFAULT_OPTIONS, CUI_DIALOG_OPTIONS, CUI_FILTER_BAR_DEFAULT_TRANSLATIONS, CUI_INPUT_TIME_DEFAULT_OPTIONS, CUI_INPUT_TIME_OPTIONS, CUI_NOTIFICATION_DEFAULT_OPTIONS, CUI_NOTIFICATION_ICONS, CUI_NOTIFICATION_ICON_OPTIONS, CUI_NOTIFICATION_ICON_OPTIONS_DEFAULT_MODE, CUI_NOTIFICATION_ICON_OPTIONS_LIGHT_MODE, CUI_NOTIFICATION_OPTIONS, CUI_RESOURCE_STATE_SERVICE_TOKEN, CUI_ROOT_SELECTOR, CUI_STORAGE_LIST_SERVICE_TOKEN, CUI_SUBJECT_MODAL_SERVICE_TOKEN, CUI_TABS_SERVICE_TOKEN, CUI_TEXT_FIELD_CONTROLLER, CUI_TEXT_FIELD_ICON_LEFT, CUI_TEXT_FIELD_ID, CUI_TEXT_FIELD_IS_ERROR, CUI_TEXT_FIELD_PLACEHOLDER, CUI_TEXT_FIELD_SIZE, CUI_TEXT_FILED_CONTROLLER_PROVIDER, CUI_THEME, CUI_THEME_STORAGE_DEFAULT_KEY, CUI_THEME_STORAGE_KEY, CUI_TOOLTIP_COMPONENT, CUI_TOOLTIP_DEFAULT_OPTIONS, CUI_TOOLTIP_DIRECTIONS, CUI_TOOLTIP_OPTIONS, CUI_TOOLTIP_PROVIDERS, CUI_USED_ELEMENTS_SERVICE_TOKEN, CUI_UTILITY_SERVICE_TOKEN, ContentHeaderComponent, CuiAbstractTabsComponent, CuiAccessor, CuiAccordionComponent, CuiAccordionDirective, CuiAccordionItemComponent, CuiAccordionModule, CuiActivityBaseService, CuiActivityImplService, CuiAlertComponent, CuiAlertModule, CuiAlertService, CuiAlertsComponent, CuiAttachesTool, CuiAuthBase, CuiAuthService, CuiBadgeComponent, CuiBadgeModule, CuiBannerComponent, CuiBannerModule, CuiBreadcrumbComponent, CuiBreadcrumbsComponent, CuiBreadcrumbsModule, CuiBrowserLoginStrategyService, CuiButtonComponent, CuiButtonGroupComponent, CuiButtonGroupModule, CuiButtonModule, CuiCardWrapperComponent, CuiCategoriesComponent, CuiCheckboxComponent, CuiCheckboxModule, CuiChecklistBlockComponent, CuiCircleLoaderComponent, CuiContentWrapperComponent, CuiContextMenuComponent, CuiContextMenuModule, CuiCriterionInfoComponent, CuiCriterionInfoFormComponent, CuiCriterionModalCreateComponent, CuiCriterionReadonlyInfoComponent, CuiDateRangeCalendarComponent, CuiDateRangeCalendarModule, CuiDeleteModalComponent, CuiDialogActionsComponent, CuiDialogComponent, CuiDialogHeaderComponent, CuiDialogModule, CuiDialogService, CuiDialogsComponent, CuiDriver, CuiDriverDirective, CuiDropdownDirective, CuiDropdownWrapperComponent, CuiEditorBlockComponent, CuiEditorComponent, CuiEditorModalComponent, CuiEditorReadonlyComponent, CuiEditorTranslations, CuiEmptyStateComponent, CuiFileIconComponent, CuiFileUploader, CuiFileUploaderStatus, CuiFilterBarComponent, CuiFilterBarModule, CuiFormFieldComponent, CuiFormFieldModule, CuiFramerPreviewComponent, CuiGeneralControlErrorHintComponent, CuiGhostInputComponent, CuiGlobalErrorHandler, CuiHeaderTool, CuiHintComponent, CuiHintModule, CuiHybridStorageService, CuiIconButtonComponent, CuiIconButtonModule, CuiImageTool, CuiInputModule, CuiInputNumberComponent, CuiInputNumberModule, CuiInputPasswordComponent, CuiInputPasswordModule, CuiInputTextComponent, CuiInputTimeComponent, CuiInputTimeModule, CuiInstructionInfoComponent, CuiInstructionInfoFormComponent, CuiInstructionModalCreateComponent, CuiInstructionReadonlyInfoComponent, CuiLabelComponent, CuiLabelModule, CuiLayoutComponent, CuiLetterBoxComponent, CuiLibTranslations, CuiLinearLoaderComponent, CuiLinkMarker, CuiListTool, CuiLoaderComponent, CuiLoaderService, CuiLoadingState, CuiNotificationComponent, CuiNotificationModule, CuiPositionAccessor, CuiPositionService, CuiPulseLoaderComponent, CuiRadioComponent, CuiRadioModule, CuiReadonlyCriterionModalComponent, CuiReadonlyInstructionModalComponent, CuiReadonlyUtilityModalComponent, CuiRectAccessor, CuiRenderDynamicComponentsComponent, CuiRenderDynamicComponentsService, CuiRoleMarker, CuiRootComponent, CuiRootModule, CuiSelectComponent, CuiSelectModalComponent, CuiSelectModalFolderComponent, CuiSelectModalSearchComponent, CuiSelectModalService, CuiSelectModule, CuiSelectedCategoryService, CuiSidebarContainerComponent, CuiSidebarHeaderComponent, CuiSidebarNavigationComponent, CuiSidebarNavigationContainerComponent, CuiSidebarNavigationItemComponent, CuiSidebarService, CuiSkeleton, CuiStatedLoaderComponent, CuiStorageListComponent, CuiSvgComponent, CuiSvgModule, CuiTabDirective, CuiTabsComponent, CuiTabsServiceImpl, CuiTextFieldController, CuiTextFieldControllerModule, CuiTextFieldIconLeftDirective, CuiTextFieldIdDirective, CuiTextFieldIsErrorDirective, CuiTextFieldPlaceholderDirective, CuiTextFieldSizeDirective, CuiTextareaComponent, CuiTextareaModule, CuiThemeService, CuiTimePipe, CuiToggleComponent, CuiToggleModule, CuiToolMarker, CuiTooltip, CuiTooltipComponent, CuiTooltipDescribe, CuiTooltipDirective, CuiTooltipDriver, CuiTooltipHost, CuiTooltipHover, CuiTooltipManual, CuiTooltipOptionsDirective, CuiTooltipOverflow, CuiTooltipPointer, CuiTooltipPosition, CuiTooltipService, CuiTooltipUnstyled, CuiTooltipUnstyledComponent, CuiTooltips, CuiTranslations, CuiUserActionContextMenuComponent, CuiUtilityModalComponent, CuiUtilityModalCreateComponent, CuiUtilityReadonlyThumbnailComponent, CuiUtilityThumbnailComponent, CuiVehicle, CuiVideoTool, CuiVisualViewportService, FileSizePipe, InsertedComponent, ModalDividedSectionComponent, ModalHeaderComponent, ModalHeaderInsertedButtonsComponent, ModalInfoTabComponent, ModalOperationPartComponent, ModalResourcesTabComponent, OptionsButtonComponent, RenderDynamicModalComponent, ResourceStateBaseService, ResourcesBlockComponent, ResourcesBlockPartComponent, ResourcesBlockTabsComponent$1 as ResourcesBlockTabsComponent, ResourcesOptionsComponent, SubjectModalBaseService, UTILITY_MODAL_SERVICE_TOKEN, UsedElementsBaseService, UtilityBaseService, UtilityInfoReadonlyComponent, createEditorTools, cuiAsDriver, cuiAsPositionAccessor, cuiAsRectAccessor, cuiAsVehicle, cuiAuthErrorInterceptor, cuiAuthInterceptor, cuiCheckAuthFailureEvent, cuiCheckFixedPosition, cuiCreateDefaultValidators, cuiErrorHandlerInterceptor, cuiFallbackAccessor, cuiGetDuration, cuiIsObscured, cuiLoaderInterceptor, cuiOverrideOptions, cuiPositionAccessorFor, cuiProvideAccessor, cuiProvideEditor, cuiRectAccessorFor, cuiRemoveSpaces, cuiReplace, cuiToAnimationOptions, cuiTooltipOptionsProvider, cuiXNdjsonInterceptor, handleError, openFileInBrowser, presetConfigToken, provideCuiAuth, provideCuiErrorHandler, provideCuiTabs, setLoading, sseStreamReaderInterceptor };
13543
13597
  //# sourceMappingURL=cuby-ui-core.mjs.map