ng-ipa-library 1.1.1 → 1.2.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/lib/core/interceptors/myIPAToken.interceptor.mjs +74 -0
- package/esm2020/lib/core/services/auth.service.mjs +16 -1
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/ng-ipa-library.mjs +87 -1
- package/fesm2015/ng-ipa-library.mjs.map +1 -1
- package/fesm2020/ng-ipa-library.mjs +85 -1
- package/fesm2020/ng-ipa-library.mjs.map +1 -1
- package/lib/core/interceptors/myIPAToken.interceptor.d.ts +17 -0
- package/lib/core/services/auth.service.d.ts +3 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../services/auth.service";
|
|
4
|
+
import * as i2 from "@angular/common/http";
|
|
5
|
+
import * as i3 from "../services/loader.service";
|
|
6
|
+
export class myIPATokenInterceptor {
|
|
7
|
+
constructor(authService, http, loaderService) {
|
|
8
|
+
this.authService = authService;
|
|
9
|
+
this.http = http;
|
|
10
|
+
this.loaderService = loaderService;
|
|
11
|
+
this.refresh = true;
|
|
12
|
+
this.loaderService.addExceptionUrl({
|
|
13
|
+
path: '/api/users?refresh',
|
|
14
|
+
method: 'GET',
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
intercept(request, next) {
|
|
18
|
+
if (this.isException(request)) {
|
|
19
|
+
return next.handle(request);
|
|
20
|
+
}
|
|
21
|
+
const token = this.authService.getTokenFromHidden();
|
|
22
|
+
if (token) {
|
|
23
|
+
this.isTokenExpired(token);
|
|
24
|
+
request = request.clone({
|
|
25
|
+
setHeaders: {
|
|
26
|
+
Authorization: `Bearer ${token}`,
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
return next.handle(request);
|
|
31
|
+
}
|
|
32
|
+
isTokenExpired(token) {
|
|
33
|
+
const redirectPath = location.pathname;
|
|
34
|
+
const decodedToken = this.authService.getDecodedTokenFromHidden();
|
|
35
|
+
const expDate = new Date((decodedToken.exp ?? 0) * 1000);
|
|
36
|
+
if (expDate < new Date()) {
|
|
37
|
+
location.replace('/ar/login?redirect=' + redirectPath);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
if (this.authService.currentUserUrl) {
|
|
42
|
+
if (this.refresh) {
|
|
43
|
+
this.http
|
|
44
|
+
.get(this.authService.currentUserUrl + `/api/users?refresh`, {
|
|
45
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
46
|
+
})
|
|
47
|
+
.subscribe((user) => {
|
|
48
|
+
localStorage.setItem('token', user.token);
|
|
49
|
+
this.refresh = false;
|
|
50
|
+
setTimeout(() => {
|
|
51
|
+
this.refresh = true;
|
|
52
|
+
}, 60 * 1000);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
throw new Error("provide current base user api url using this function authService.setCurrentUserUrl('https://...')");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
isException(request) {
|
|
62
|
+
if (request.url.includes('/api/users?refresh') &&
|
|
63
|
+
request.method === 'GET') {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
myIPATokenInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: myIPATokenInterceptor, deps: [{ token: i1.AuthService }, { token: i2.HttpClient }, { token: i3.LoaderService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
70
|
+
myIPATokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: myIPATokenInterceptor });
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: myIPATokenInterceptor, decorators: [{
|
|
72
|
+
type: Injectable
|
|
73
|
+
}], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i2.HttpClient }, { type: i3.LoaderService }]; } });
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXlJUEFUb2tlbi5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9saWIvY29yZS9pbnRlcmNlcHRvcnMvbXlJUEFUb2tlbi5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQWUzQyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQ1UsV0FBd0IsRUFDeEIsSUFBZ0IsRUFDaEIsYUFBNEI7UUFGNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUp0QyxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBTWIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUM7WUFDakMsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixNQUFNLEVBQUUsS0FBSztTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTLENBQ1AsT0FBNkIsRUFDN0IsSUFBaUI7UUFFakIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3QjtRQUNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNwRCxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLFVBQVUsRUFBRTtvQkFDVixhQUFhLEVBQUUsVUFBVSxLQUFLLEVBQUU7aUJBQ2pDO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFhO1FBQ2xDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsRUFBa0IsQ0FBQztRQUNsRixNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDekQsSUFBSSxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsRUFBRTtZQUN4QixRQUFRLENBQUMsT0FBTyxDQUFDLHFCQUFxQixHQUFHLFlBQVksQ0FBQyxDQUFDO1lBQ3ZELE9BQU87U0FDUjthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRTtnQkFDbkMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO29CQUNoQixJQUFJLENBQUMsSUFBSTt5QkFDTixHQUFHLENBQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsb0JBQW9CLEVBQUU7d0JBQ2pFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxVQUFVLEtBQUssRUFBRSxFQUFFO3FCQUM5QyxDQUFDO3lCQUNELFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO3dCQUNsQixZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO3dCQUNyQixVQUFVLENBQUMsR0FBRyxFQUFFOzRCQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO3dCQUN0QixDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO29CQUNoQixDQUFDLENBQUMsQ0FBQztpQkFDTjthQUNGO2lCQUFNO2dCQUNMLE1BQU0sSUFBSSxLQUFLLENBQ2Isb0dBQW9HLENBQ3JHLENBQUM7YUFDSDtTQUNGO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxPQUF5QjtRQUMzQyxJQUNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDO1lBQzFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUN4QjtZQUNBLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O2tIQXRFVSxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEh0dHBSZXF1ZXN0LFxyXG4gIEh0dHBIYW5kbGVyLFxyXG4gIEh0dHBFdmVudCxcclxuICBIdHRwSW50ZXJjZXB0b3IsXHJcbiAgSHR0cENsaWVudCxcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZWNvZGVkVG9rZW4gfSBmcm9tICcuLi8uLi9tb2RlbHMvZGVjb2RlZFRva2VuLm1vZGVsJztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyLm1vZGVsJztcclxuaW1wb3J0IHsgTG9hZGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2xvYWRlci5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIG15SVBBVG9rZW5JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgcmVmcmVzaCA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgbG9hZGVyU2VydmljZTogTG9hZGVyU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5sb2FkZXJTZXJ2aWNlLmFkZEV4Y2VwdGlvblVybCh7XHJcbiAgICAgIHBhdGg6ICcvYXBpL3VzZXJzP3JlZnJlc2gnLFxyXG4gICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBpbnRlcmNlcHQoXHJcbiAgICByZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPixcclxuICAgIG5leHQ6IEh0dHBIYW5kbGVyXHJcbiAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcclxuICAgIGlmICh0aGlzLmlzRXhjZXB0aW9uKHJlcXVlc3QpKSB7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy5hdXRoU2VydmljZS5nZXRUb2tlbkZyb21IaWRkZW4oKTtcclxuICAgIGlmICh0b2tlbikge1xyXG4gICAgICB0aGlzLmlzVG9rZW5FeHBpcmVkKHRva2VuKTtcclxuICAgICAgcmVxdWVzdCA9IHJlcXVlc3QuY2xvbmUoe1xyXG4gICAgICAgIHNldEhlYWRlcnM6IHtcclxuICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1Rva2VuRXhwaXJlZCh0b2tlbjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCByZWRpcmVjdFBhdGggPSBsb2NhdGlvbi5wYXRobmFtZTtcclxuICAgIGNvbnN0IGRlY29kZWRUb2tlbiA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0RGVjb2RlZFRva2VuRnJvbUhpZGRlbigpIGFzIERlY29kZWRUb2tlbjtcclxuICAgIGNvbnN0IGV4cERhdGUgPSBuZXcgRGF0ZSgoZGVjb2RlZFRva2VuLmV4cCA/PyAwKSAqIDEwMDApO1xyXG4gICAgaWYgKGV4cERhdGUgPCBuZXcgRGF0ZSgpKSB7XHJcbiAgICAgIGxvY2F0aW9uLnJlcGxhY2UoJy9hci9sb2dpbj9yZWRpcmVjdD0nICsgcmVkaXJlY3RQYXRoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFVzZXJVcmwpIHtcclxuICAgICAgICBpZiAodGhpcy5yZWZyZXNoKSB7XHJcbiAgICAgICAgICB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxVc2VyPih0aGlzLmF1dGhTZXJ2aWNlLmN1cnJlbnRVc2VyVXJsICsgYC9hcGkvdXNlcnM/cmVmcmVzaGAsIHtcclxuICAgICAgICAgICAgICBoZWFkZXJzOiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gIH0sXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHVzZXIpID0+IHtcclxuICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndG9rZW4nLCB1c2VyLnRva2VuKTtcclxuICAgICAgICAgICAgICB0aGlzLnJlZnJlc2ggPSBmYWxzZTtcclxuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgfSwgNjAgKiAxMDAwKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgIFwicHJvdmlkZSBjdXJyZW50IGJhc2UgdXNlciBhcGkgdXJsIHVzaW5nIHRoaXMgZnVuY3Rpb24gYXV0aFNlcnZpY2Uuc2V0Q3VycmVudFVzZXJVcmwoJ2h0dHBzOi8vLi4uJylcIlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNFeGNlcHRpb24ocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55Pik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKFxyXG4gICAgICByZXF1ZXN0LnVybC5pbmNsdWRlcygnL2FwaS91c2Vycz9yZWZyZXNoJykgJiZcclxuICAgICAgcmVxdWVzdC5tZXRob2QgPT09ICdHRVQnXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -21,6 +21,21 @@ export class AuthService {
|
|
|
21
21
|
exp: decodedToken.exp,
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
+
getTokenFromHidden() {
|
|
25
|
+
return (document.querySelector('[id$=hfToken]').value ?? '');
|
|
26
|
+
}
|
|
27
|
+
getDecodedTokenFromHidden() {
|
|
28
|
+
return this.decodeJwt(this.getTokenFromHidden());
|
|
29
|
+
}
|
|
30
|
+
setCurrentUserFromHidden() {
|
|
31
|
+
const decodedToken = this.getDecodedTokenFromHidden();
|
|
32
|
+
this.currentUser.next({
|
|
33
|
+
nameid: decodedToken.nameid,
|
|
34
|
+
email: decodedToken.email,
|
|
35
|
+
given_name: decodedToken.given_name,
|
|
36
|
+
exp: decodedToken.exp,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
24
39
|
setCurrentUserUrl(url) {
|
|
25
40
|
this.currentUserUrl = url;
|
|
26
41
|
}
|
|
@@ -44,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
44
59
|
providedIn: 'root',
|
|
45
60
|
}]
|
|
46
61
|
}], ctorParameters: function () { return []; } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctaXBhLWxpYnJhcnkvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTXZDLE1BQU0sT0FBTyxXQUFXO0lBR3RCO1FBRk8sZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLG1CQUFjLEdBQUcsRUFBRSxDQUFDO0lBQ0wsQ0FBQztJQUVoQixRQUFRO1FBQ04sT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQWtCLENBQUM7UUFDNUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDcEIsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNO1lBQzNCLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSztZQUN6QixVQUFVLEVBQUUsWUFBWSxDQUFDLFVBQVU7WUFDbkMsR0FBRyxFQUFFLFlBQVksQ0FBQyxHQUFHO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTyxDQUNKLFFBQVEsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFzQixDQUFDLEtBQUssSUFBSSxFQUFFLENBQzFFLENBQUM7SUFDSixDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFrQixDQUFDO1FBQ3RFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTTtZQUMzQixLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUs7WUFDekIsVUFBVSxFQUFFLFlBQVksQ0FBQyxVQUFVO1lBQ25DLEdBQUcsRUFBRSxZQUFZLENBQUMsR0FBRztTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsR0FBVztRQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQztJQUM1QixDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQWE7UUFDN0IsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ1QsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUNULEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ1QsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ1osQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQyxDQUFDOzt3R0EzRFUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERlY29kZWRUb2tlbiB9IGZyb20gJy4uLy4uL21vZGVscy9kZWNvZGVkVG9rZW4ubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcclxuICBwdWJsaWMgY3VycmVudFVzZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERlY29kZWRUb2tlbj4oeyBleHA6IDAgfSk7XHJcbiAgY3VycmVudFVzZXJVcmwgPSAnJztcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIGdldFRva2VuKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Rva2VuJykgPz8gJyc7XHJcbiAgfVxyXG5cclxuICBnZXREZWNvZGVkVG9rZW4oKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLmRlY29kZUp3dCh0aGlzLmdldFRva2VuKCkpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q3VycmVudFVzZXIoKTogdm9pZCB7XHJcbiAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSB0aGlzLmdldERlY29kZWRUb2tlbigpIGFzIERlY29kZWRUb2tlbjtcclxuICAgIHRoaXMuY3VycmVudFVzZXIubmV4dCh7XHJcbiAgICAgIG5hbWVpZDogZGVjb2RlZFRva2VuLm5hbWVpZCxcclxuICAgICAgZW1haWw6IGRlY29kZWRUb2tlbi5lbWFpbCxcclxuICAgICAgZ2l2ZW5fbmFtZTogZGVjb2RlZFRva2VuLmdpdmVuX25hbWUsXHJcbiAgICAgIGV4cDogZGVjb2RlZFRva2VuLmV4cCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VG9rZW5Gcm9tSGlkZGVuKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2lkJD1oZlRva2VuXScpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID8/ICcnXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVjb2RlZFRva2VuRnJvbUhpZGRlbigpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVjb2RlSnd0KHRoaXMuZ2V0VG9rZW5Gcm9tSGlkZGVuKCkpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q3VycmVudFVzZXJGcm9tSGlkZGVuKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZGVjb2RlZFRva2VuID0gdGhpcy5nZXREZWNvZGVkVG9rZW5Gcm9tSGlkZGVuKCkgYXMgRGVjb2RlZFRva2VuO1xyXG4gICAgdGhpcy5jdXJyZW50VXNlci5uZXh0KHtcclxuICAgICAgbmFtZWlkOiBkZWNvZGVkVG9rZW4ubmFtZWlkLFxyXG4gICAgICBlbWFpbDogZGVjb2RlZFRva2VuLmVtYWlsLFxyXG4gICAgICBnaXZlbl9uYW1lOiBkZWNvZGVkVG9rZW4uZ2l2ZW5fbmFtZSxcclxuICAgICAgZXhwOiBkZWNvZGVkVG9rZW4uZXhwLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRDdXJyZW50VXNlclVybCh1cmw6IHN0cmluZykge1xyXG4gICAgdGhpcy5jdXJyZW50VXNlclVybCA9IHVybDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVjb2RlSnd0KHRva2VuOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgY29uc3QgYmFzZTY0VXJsID0gdG9rZW4uc3BsaXQoJy4nKVsxXTtcclxuICAgIGNvbnN0IGJhc2U2NCA9IGJhc2U2NFVybC5yZXBsYWNlKC8tL2csICcrJykucmVwbGFjZSgvXy9nLCAnLycpO1xyXG4gICAgY29uc3QganNvblBheWxvYWQgPSBkZWNvZGVVUklDb21wb25lbnQoXHJcbiAgICAgIGF0b2IoYmFzZTY0KVxyXG4gICAgICAgIC5zcGxpdCgnJylcclxuICAgICAgICAubWFwKChjKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gJyUnICsgKCcwMCcgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMik7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuam9pbignJylcclxuICAgICk7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uUGF5bG9hZCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -23,6 +23,7 @@ export * from './lib/share-button/share-button.component';
|
|
|
23
23
|
export * from './lib/core/interceptors/loading.interceptor';
|
|
24
24
|
export * from './lib/core/interceptors/error.interceptor';
|
|
25
25
|
export * from './lib/core/interceptors/token.interceptor';
|
|
26
|
+
export * from './lib/core/interceptors/myIPAToken.interceptor';
|
|
26
27
|
// services
|
|
27
28
|
export * from './lib/core/services/loader.service';
|
|
28
29
|
export * from './lib/core/services/auth.service';
|
|
@@ -37,4 +38,4 @@ export * from './lib/models/pagedResult';
|
|
|
37
38
|
export * from './lib/models/apiException';
|
|
38
39
|
export * from './lib/models/apiResponse';
|
|
39
40
|
export * from './lib/models/generateForm.model';
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLWlwYS1saWJyYXJ5L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsU0FBUztBQUNULGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsd0NBQXdDLENBQUM7QUFFdkQsa0JBQWtCO0FBQ2xCLGNBQWMsaURBQWlELENBQUM7QUFFaEUsa0JBQWtCO0FBQ2xCLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyx1RUFBdUUsQ0FBQztBQUN0RixjQUFjLCtFQUErRSxDQUFDO0FBQzlGLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDJDQUEyQyxDQUFDO0FBRTFELGVBQWU7QUFDZixjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGdEQUFnRCxDQUFDO0FBRS9ELFdBQVc7QUFDWCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxPQUFPO0FBQ1AsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxRQUFRO0FBQ1IsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBpcGEtbGlicmFyeVxyXG4gKi9cclxuLy8gbW9kdWxlXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25nLWlwYS1saWJyYXJ5Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJ25neC10b2FzdHInO1xyXG5leHBvcnQgKiBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL3BpcGVzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlLWJ1dHRvbi9zaGFyZS1idXR0b24ubW9kdWxlJztcclxuXHJcbi8vIGNvcmUgY29tcG9uZW50c1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcblxyXG4vLyBmb3JtIGNvbXBvbmVudHNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaXBhLWZvcm0vdGV4dC1pbnB1dC90ZXh0LWlucHV0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lwYS1mb3JtL3RleHRhcmVhLWlucHV0L3RleHRhcmVhLWlucHV0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lwYS1mb3JtL2Ryb3Bkb3duLWlucHV0L2Ryb3Bkb3duLWlucHV0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lwYS1mb3JtL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvaGlqcmktZGF0ZXBpY2tlci9oaWpyaS1kYXRlcGlja2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lwYS1mb3JtL2RhdGVwaWNrZXIvZ3JlZ29yaWFuLWRhdGVwaWNrZXIvZ3JlZ29yaWFuLWRhdGVwaWNrZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaXBhLWZvcm0vcmVjYXB0Y2hhL3JlY2FwdGNoYS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9nZW5lcmF0ZS1mb3JtL2dlbmVyYXRlLWZvcm0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmUtYnV0dG9uL3NoYXJlLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5cclxuLy8gaW50ZXJjZXB0b3JzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvaW50ZXJjZXB0b3JzL2xvYWRpbmcuaW50ZXJjZXB0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL2ludGVyY2VwdG9ycy9lcnJvci5pbnRlcmNlcHRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvaW50ZXJjZXB0b3JzL3Rva2VuLmludGVyY2VwdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9pbnRlcmNlcHRvcnMvbXlJUEFUb2tlbi5pbnRlcmNlcHRvcic7XHJcblxyXG4vLyBzZXJ2aWNlc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2VzL2xvYWRlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pcGEtZm9ybS9pcGEtZm9ybS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy9lcnJvci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYnJlYWRjcnVtYnMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcclxuXHJcbi8vcGlwZXNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvaGlqcmktZGF0ZS5waXBlJztcclxuXHJcbi8vbW9kZWxzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wYWdlZFJlc3VsdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9hcGlFeGNlcHRpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvYXBpUmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ2VuZXJhdGVGb3JtLm1vZGVsJztcclxuIl19
|
|
@@ -1305,6 +1305,22 @@ class AuthService {
|
|
|
1305
1305
|
exp: decodedToken.exp,
|
|
1306
1306
|
});
|
|
1307
1307
|
}
|
|
1308
|
+
getTokenFromHidden() {
|
|
1309
|
+
var _a;
|
|
1310
|
+
return ((_a = document.querySelector('[id$=hfToken]').value) !== null && _a !== void 0 ? _a : '');
|
|
1311
|
+
}
|
|
1312
|
+
getDecodedTokenFromHidden() {
|
|
1313
|
+
return this.decodeJwt(this.getTokenFromHidden());
|
|
1314
|
+
}
|
|
1315
|
+
setCurrentUserFromHidden() {
|
|
1316
|
+
const decodedToken = this.getDecodedTokenFromHidden();
|
|
1317
|
+
this.currentUser.next({
|
|
1318
|
+
nameid: decodedToken.nameid,
|
|
1319
|
+
email: decodedToken.email,
|
|
1320
|
+
given_name: decodedToken.given_name,
|
|
1321
|
+
exp: decodedToken.exp,
|
|
1322
|
+
});
|
|
1323
|
+
}
|
|
1308
1324
|
setCurrentUserUrl(url) {
|
|
1309
1325
|
this.currentUserUrl = url;
|
|
1310
1326
|
}
|
|
@@ -1399,6 +1415,76 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
1399
1415
|
type: Injectable
|
|
1400
1416
|
}], ctorParameters: function () { return [{ type: AuthService }, { type: i2$4.HttpClient }, { type: LoaderService }]; } });
|
|
1401
1417
|
|
|
1418
|
+
class myIPATokenInterceptor {
|
|
1419
|
+
constructor(authService, http, loaderService) {
|
|
1420
|
+
this.authService = authService;
|
|
1421
|
+
this.http = http;
|
|
1422
|
+
this.loaderService = loaderService;
|
|
1423
|
+
this.refresh = true;
|
|
1424
|
+
this.loaderService.addExceptionUrl({
|
|
1425
|
+
path: '/api/users?refresh',
|
|
1426
|
+
method: 'GET',
|
|
1427
|
+
});
|
|
1428
|
+
}
|
|
1429
|
+
intercept(request, next) {
|
|
1430
|
+
if (this.isException(request)) {
|
|
1431
|
+
return next.handle(request);
|
|
1432
|
+
}
|
|
1433
|
+
const token = this.authService.getTokenFromHidden();
|
|
1434
|
+
if (token) {
|
|
1435
|
+
this.isTokenExpired(token);
|
|
1436
|
+
request = request.clone({
|
|
1437
|
+
setHeaders: {
|
|
1438
|
+
Authorization: `Bearer ${token}`,
|
|
1439
|
+
},
|
|
1440
|
+
});
|
|
1441
|
+
}
|
|
1442
|
+
return next.handle(request);
|
|
1443
|
+
}
|
|
1444
|
+
isTokenExpired(token) {
|
|
1445
|
+
var _a;
|
|
1446
|
+
const redirectPath = location.pathname;
|
|
1447
|
+
const decodedToken = this.authService.getDecodedTokenFromHidden();
|
|
1448
|
+
const expDate = new Date(((_a = decodedToken.exp) !== null && _a !== void 0 ? _a : 0) * 1000);
|
|
1449
|
+
if (expDate < new Date()) {
|
|
1450
|
+
location.replace('/ar/login?redirect=' + redirectPath);
|
|
1451
|
+
return;
|
|
1452
|
+
}
|
|
1453
|
+
else {
|
|
1454
|
+
if (this.authService.currentUserUrl) {
|
|
1455
|
+
if (this.refresh) {
|
|
1456
|
+
this.http
|
|
1457
|
+
.get(this.authService.currentUserUrl + `/api/users?refresh`, {
|
|
1458
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
1459
|
+
})
|
|
1460
|
+
.subscribe((user) => {
|
|
1461
|
+
localStorage.setItem('token', user.token);
|
|
1462
|
+
this.refresh = false;
|
|
1463
|
+
setTimeout(() => {
|
|
1464
|
+
this.refresh = true;
|
|
1465
|
+
}, 60 * 1000);
|
|
1466
|
+
});
|
|
1467
|
+
}
|
|
1468
|
+
}
|
|
1469
|
+
else {
|
|
1470
|
+
throw new Error("provide current base user api url using this function authService.setCurrentUserUrl('https://...')");
|
|
1471
|
+
}
|
|
1472
|
+
}
|
|
1473
|
+
}
|
|
1474
|
+
isException(request) {
|
|
1475
|
+
if (request.url.includes('/api/users?refresh') &&
|
|
1476
|
+
request.method === 'GET') {
|
|
1477
|
+
return true;
|
|
1478
|
+
}
|
|
1479
|
+
return false;
|
|
1480
|
+
}
|
|
1481
|
+
}
|
|
1482
|
+
myIPATokenInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: myIPATokenInterceptor, deps: [{ token: AuthService }, { token: i2$4.HttpClient }, { token: LoaderService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1483
|
+
myIPATokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: myIPATokenInterceptor });
|
|
1484
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: myIPATokenInterceptor, decorators: [{
|
|
1485
|
+
type: Injectable
|
|
1486
|
+
}], ctorParameters: function () { return [{ type: AuthService }, { type: i2$4.HttpClient }, { type: LoaderService }]; } });
|
|
1487
|
+
|
|
1402
1488
|
class BreadcrumbsService {
|
|
1403
1489
|
constructor() { }
|
|
1404
1490
|
setPageTitle(text) {
|
|
@@ -1620,5 +1706,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
1620
1706
|
* Generated bundle index. Do not edit.
|
|
1621
1707
|
*/
|
|
1622
1708
|
|
|
1623
|
-
export { AuthService, BreadcrumbsService, CommonService, DropdownInputComponent, ErrorInterceptor, ErrorService, FileUploadComponent, GenerateFormComponent, GregorianDatepickerComponent, HijriDatePipe, HijriDatepickerComponent, IPAFormService, LoaderComponent, LoaderService, LoadingInterceptor, NgIPALibraryModule, PipesModule, RecaptchaComponent, ShareButtonComponent, ShareButtonModule, TextInputComponent, TextareaInputComponent, TokenInterceptor };
|
|
1709
|
+
export { AuthService, BreadcrumbsService, CommonService, DropdownInputComponent, ErrorInterceptor, ErrorService, FileUploadComponent, GenerateFormComponent, GregorianDatepickerComponent, HijriDatePipe, HijriDatepickerComponent, IPAFormService, LoaderComponent, LoaderService, LoadingInterceptor, NgIPALibraryModule, PipesModule, RecaptchaComponent, ShareButtonComponent, ShareButtonModule, TextInputComponent, TextareaInputComponent, TokenInterceptor, myIPATokenInterceptor };
|
|
1624
1710
|
//# sourceMappingURL=ng-ipa-library.mjs.map
|