@bnsights/bbsf-utilities 1.0.40 → 1.0.42
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/README.md +4 -0
- package/bnsights-bbsf-utilities-1.0.42.tgz +0 -0
- package/esm2020/lib/bbsf-utilities.module.mjs +59 -0
- package/esm2020/lib/shared/authentication/auth.service.mjs +211 -0
- package/esm2020/lib/shared/authentication/index.mjs +2 -0
- package/{esm2015/lib/shared/config/environment.js → esm2020/lib/shared/config/environment.mjs} +1 -1
- package/esm2020/lib/shared/config/word/docx-document.mjs +348 -0
- package/esm2020/lib/shared/config/word/helpers/render-document-file.mjs +154 -0
- package/esm2020/lib/shared/config/word/helpers/xml-builder.mjs +1836 -0
- package/esm2020/lib/shared/config/word/html-to-docx.mjs +187 -0
- package/esm2020/lib/shared/config/word/index.mjs +50 -0
- package/esm2020/lib/shared/config/word/namespaces.mjs +37 -0
- package/{esm2015/lib/shared/config/word/schemas/core.js → esm2020/lib/shared/config/word/schemas/core.mjs} +1 -3
- package/esm2020/lib/shared/config/word/schemas/document.template.mjs +107 -0
- package/{esm2015/lib/shared/config/word/schemas/numbering.js → esm2020/lib/shared/config/word/schemas/numbering.mjs} +1 -3
- package/esm2020/lib/shared/config/word/schemas/styles.mjs +147 -0
- package/esm2020/lib/shared/config/word/schemas/theme.mjs +198 -0
- package/{esm2015/lib/shared/config/word/utils/url.js → esm2020/lib/shared/config/word/utils/url.mjs} +1 -3
- package/esm2020/lib/shared/enums/authentication-modes-enums.mjs +8 -0
- package/esm2020/lib/shared/index.mjs +4 -0
- package/{esm2015/lib/shared/models/UserModel.js → esm2020/lib/shared/models/UserModel.mjs} +1 -1
- package/esm2020/lib/shared/models/area-model.mjs +3 -0
- package/esm2020/lib/shared/models/error-model.mjs +3 -0
- package/esm2020/lib/shared/models/index.mjs +5 -0
- package/esm2020/lib/shared/models/request-options-model.mjs +11 -0
- package/esm2020/lib/shared/models/word-document-model.mjs +8 -0
- package/esm2020/lib/shared/services/appearance-configuration.service.mjs +35 -0
- package/esm2020/lib/shared/services/configuration.service.mjs +24 -0
- package/esm2020/lib/shared/services/control-validation.service.mjs +173 -0
- package/esm2020/lib/shared/services/environment.service.mjs +75 -0
- package/esm2020/lib/shared/services/index.mjs +12 -0
- package/esm2020/lib/shared/services/master-layout.service.mjs +72 -0
- package/esm2020/lib/shared/services/request-handler.service.mjs +199 -0
- package/esm2020/lib/shared/services/styles-bundle.service.mjs +55 -0
- package/esm2020/lib/shared/services/translate.service.mjs +14 -0
- package/esm2020/lib/shared/services/translation-resolver.service.mjs +7 -0
- package/esm2020/lib/shared/services/utility.service.mjs +87 -0
- package/esm2020/lib/shared/services/word-document.service.mjs +38 -0
- package/esm2020/public-api.mjs +30 -0
- package/fesm2015/{bnsights-bbsf-utilities.js → bnsights-bbsf-utilities.mjs} +741 -787
- package/fesm2015/bnsights-bbsf-utilities.mjs.map +1 -0
- package/fesm2020/bnsights-bbsf-utilities.mjs +4589 -0
- package/fesm2020/bnsights-bbsf-utilities.mjs.map +1 -0
- package/{bnsights-bbsf-utilities.d.ts → index.d.ts} +1 -0
- package/lib/bbsf-utilities.module.d.ts +8 -4
- package/lib/shared/authentication/auth.service.d.ts +11 -8
- package/lib/shared/authentication/index.d.ts +1 -0
- package/lib/shared/config/word/docx-document.d.ts +10 -10
- package/lib/shared/config/word/helpers/render-document-file.d.ts +0 -2
- package/lib/shared/config/word/helpers/xml-builder.d.ts +12 -10
- package/lib/shared/config/word/index.d.ts +1 -1
- package/lib/shared/config/word/word-work/templates/documentTemplate.d.ts +2 -2
- package/lib/shared/enums/authentication-modes-enums.d.ts +6 -0
- package/lib/shared/index.d.ts +3 -0
- package/lib/shared/models/area-model.d.ts +4 -0
- package/lib/shared/models/index.d.ts +4 -0
- package/lib/shared/services/{AppearanceConfiguration.service.d.ts → appearance-configuration.service.d.ts} +4 -1
- package/lib/shared/services/configuration.service.d.ts +3 -0
- package/lib/shared/services/{controlvalidation.service.d.ts → control-validation.service.d.ts} +8 -5
- package/lib/shared/services/environment.service.d.ts +12 -1
- package/lib/shared/services/index.d.ts +11 -0
- package/lib/shared/services/{masterlayout.service.d.ts → master-layout.service.d.ts} +6 -6
- package/lib/shared/services/{requesthandler.service.d.ts → request-handler.service.d.ts} +8 -7
- package/lib/shared/services/{stylesbundle.service.d.ts → styles-bundle.service.d.ts} +4 -1
- package/lib/shared/services/translate.service.d.ts +3 -0
- package/lib/shared/services/translation-resolver.service.d.ts +2 -0
- package/lib/shared/services/utility.service.d.ts +7 -3
- package/lib/shared/services/word-document.service.d.ts +5 -2
- package/package.json +41 -21
- package/public-api.d.ts +10 -9
- package/bnsights-bbsf-utilities-1.0.40.tgz +0 -0
- package/bnsights-bbsf-utilities.metadata.json +0 -1
- package/bundles/bnsights-bbsf-utilities.umd.js +0 -4777
- package/bundles/bnsights-bbsf-utilities.umd.js.map +0 -1
- package/esm2015/lib/bbsf-utilities.module.js +0 -54
- package/esm2015/lib/shared/authentication/auth.service.js +0 -199
- package/esm2015/lib/shared/config/word/docx-document.js +0 -351
- package/esm2015/lib/shared/config/word/helpers/render-document-file.js +0 -278
- package/esm2015/lib/shared/config/word/helpers/xml-builder.js +0 -1765
- package/esm2015/lib/shared/config/word/html-to-docx.js +0 -195
- package/esm2015/lib/shared/config/word/index.js +0 -55
- package/esm2015/lib/shared/config/word/namespaces.js +0 -37
- package/esm2015/lib/shared/config/word/schemas/document.template.js +0 -109
- package/esm2015/lib/shared/config/word/schemas/styles.js +0 -149
- package/esm2015/lib/shared/config/word/schemas/theme.js +0 -200
- package/esm2015/lib/shared/models/AreaModel.js +0 -3
- package/esm2015/lib/shared/models/ErrorModel.js +0 -3
- package/esm2015/lib/shared/models/RequestOptionsModel.js +0 -11
- package/esm2015/lib/shared/models/WordDocumentModel.js +0 -8
- package/esm2015/lib/shared/services/AppearanceConfiguration.service.js +0 -37
- package/esm2015/lib/shared/services/configuration.service.js +0 -26
- package/esm2015/lib/shared/services/controlvalidation.service.js +0 -175
- package/esm2015/lib/shared/services/environment.service.js +0 -52
- package/esm2015/lib/shared/services/masterlayout.service.js +0 -89
- package/esm2015/lib/shared/services/requesthandler.service.js +0 -206
- package/esm2015/lib/shared/services/stylesbundle.service.js +0 -56
- package/esm2015/lib/shared/services/translate.service.js +0 -13
- package/esm2015/lib/shared/services/translationresolver.service.js +0 -20
- package/esm2015/lib/shared/services/utility.service.js +0 -92
- package/esm2015/lib/shared/services/word-document.service.js +0 -39
- package/esm2015/public-api.js +0 -20
- package/fesm2015/bnsights-bbsf-utilities.js.map +0 -1
- package/lib/shared/models/AreaModel.d.ts +0 -4
- package/lib/shared/services/translationresolver.service.d.ts +0 -8
- /package/{esm2015/bnsights-bbsf-utilities.js → esm2020/bnsights-bbsf-utilities.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/constants.js → esm2020/lib/shared/config/word/constants.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/helpers/index.js → esm2020/lib/shared/config/word/helpers/index.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/content-types.js → esm2020/lib/shared/config/word/schemas/content-types.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/document-rels.js → esm2020/lib/shared/config/word/schemas/document-rels.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/font-table.js → esm2020/lib/shared/config/word/schemas/font-table.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/generic-rels.js → esm2020/lib/shared/config/word/schemas/generic-rels.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/index.js → esm2020/lib/shared/config/word/schemas/index.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/rels.js → esm2020/lib/shared/config/word/schemas/rels.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/settings.js → esm2020/lib/shared/config/word/schemas/settings.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/schemas/web-settings.js → esm2020/lib/shared/config/word/schemas/web-settings.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/utils/color-conversion.js → esm2020/lib/shared/config/word/utils/color-conversion.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/utils/list.js → esm2020/lib/shared/config/word/utils/list.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/utils/unit-conversion.js → esm2020/lib/shared/config/word/utils/unit-conversion.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/utils/vnode.js → esm2020/lib/shared/config/word/utils/vnode.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/word-work/templates/documentTemplate.js → esm2020/lib/shared/config/word/word-work/templates/documentTemplate.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/word-work/templates/index.js → esm2020/lib/shared/config/word/word-work/templates/index.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.js → esm2020/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/word-work/templates/mhtPartTemplate.js → esm2020/lib/shared/config/word/word-work/templates/mhtPartTemplate.mjs} +0 -0
- /package/{esm2015/lib/shared/config/word/word-work/utils.js → esm2020/lib/shared/config/word/word-work/utils.mjs} +0 -0
- /package/lib/shared/models/{ErrorModel.d.ts → error-model.d.ts} +0 -0
- /package/lib/shared/models/{RequestOptionsModel.d.ts → request-options-model.d.ts} +0 -0
- /package/lib/shared/models/{WordDocumentModel.d.ts → word-document-model.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -5,6 +5,10 @@ BBSF Utilities package is part of BBSF 3 packages. It has all the common service
|
|
|
5
5
|
For more info please visit [BBSF Controls documenation](https://bbsfadmin.bnsights.com/controls) or [BBSF documentation](https://bnsightsprojects.visualstudio.com/BBSF%203/_wiki/wikis/BBSF-3.wiki/65/BBSF-Documentation)
|
|
6
6
|
|
|
7
7
|
# Change Log
|
|
8
|
+
## 1.0.41 / 3-12-2023
|
|
9
|
+
===================
|
|
10
|
+
* Update Environment Service && Fix all Merge Issues
|
|
11
|
+
|
|
8
12
|
## 1.0.40 / 29-11-2023
|
|
9
13
|
===================
|
|
10
14
|
* Update Environment Service To Check Windows Authentication
|
|
Binary file
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { RouterModule } from '@angular/router';
|
|
4
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
5
|
+
import { BlockUIModule } from 'ng-block-ui';
|
|
6
|
+
import { ToastrModule } from 'ngx-toastr';
|
|
7
|
+
import { CookieService } from 'ngx-cookie-service';
|
|
8
|
+
import { UtilityService, EnvironmentService, RequestHandlerService, StylesBundleService, BBSFTranslateService, ControlValidationService, MasterLayoutService, ConfigurationService, AuthService } from './shared';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "ng-block-ui";
|
|
11
|
+
import * as i2 from "ngx-toastr";
|
|
12
|
+
export class BBSFUtilitiesModule {
|
|
13
|
+
}
|
|
14
|
+
BBSFUtilitiesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BBSFUtilitiesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
15
|
+
BBSFUtilitiesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: BBSFUtilitiesModule, imports: [CommonModule,
|
|
16
|
+
RouterModule, i1.BlockUIModule, i2.ToastrModule] });
|
|
17
|
+
BBSFUtilitiesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BBSFUtilitiesModule, providers: [
|
|
18
|
+
UtilityService,
|
|
19
|
+
EnvironmentService,
|
|
20
|
+
AuthService,
|
|
21
|
+
RequestHandlerService,
|
|
22
|
+
StylesBundleService,
|
|
23
|
+
TranslateService,
|
|
24
|
+
BBSFTranslateService,
|
|
25
|
+
ControlValidationService,
|
|
26
|
+
MasterLayoutService,
|
|
27
|
+
ConfigurationService,
|
|
28
|
+
CookieService
|
|
29
|
+
], imports: [CommonModule,
|
|
30
|
+
RouterModule,
|
|
31
|
+
BlockUIModule.forRoot(),
|
|
32
|
+
ToastrModule.forRoot()] });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BBSFUtilitiesModule, decorators: [{
|
|
34
|
+
type: NgModule,
|
|
35
|
+
args: [{
|
|
36
|
+
declarations: [],
|
|
37
|
+
imports: [
|
|
38
|
+
CommonModule,
|
|
39
|
+
RouterModule,
|
|
40
|
+
BlockUIModule.forRoot(),
|
|
41
|
+
ToastrModule.forRoot(),
|
|
42
|
+
],
|
|
43
|
+
exports: [],
|
|
44
|
+
providers: [
|
|
45
|
+
UtilityService,
|
|
46
|
+
EnvironmentService,
|
|
47
|
+
AuthService,
|
|
48
|
+
RequestHandlerService,
|
|
49
|
+
StylesBundleService,
|
|
50
|
+
TranslateService,
|
|
51
|
+
BBSFTranslateService,
|
|
52
|
+
ControlValidationService,
|
|
53
|
+
MasterLayoutService,
|
|
54
|
+
ConfigurationService,
|
|
55
|
+
CookieService
|
|
56
|
+
]
|
|
57
|
+
}]
|
|
58
|
+
}] });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJzZi11dGlsaXRpZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9iYnNmLXV0aWxpdGllcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUNMLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFDcEcsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUNqRixNQUFNLFVBQVUsQ0FBQzs7OztBQTJCbEIsTUFBTSxPQUFPLG1CQUFtQjs7aUhBQW5CLG1CQUFtQjtrSEFBbkIsbUJBQW1CLFlBckI1QixZQUFZO1FBQ1osWUFBWTtrSEFvQkgsbUJBQW1CLGFBZG5CO1FBQ1QsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixXQUFXO1FBQ1gscUJBQXFCO1FBQ3JCLG1CQUFtQjtRQUNuQixnQkFBZ0I7UUFDaEIsb0JBQW9CO1FBQ3BCLHdCQUF3QjtRQUN4QixtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLGFBQWE7S0FDZCxZQW5CQyxZQUFZO1FBQ1osWUFBWTtRQUNaLGFBQWEsQ0FBQyxPQUFPLEVBQUU7UUFDdkIsWUFBWSxDQUFDLE9BQU8sRUFBRTs0RkFrQmIsbUJBQW1CO2tCQXpCL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsRUFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGFBQWEsQ0FBQyxPQUFPLEVBQUU7d0JBQ3ZCLFlBQVksQ0FBQyxPQUFPLEVBQUU7cUJBRXZCO29CQUNELE9BQU8sRUFBRSxFQUFFO29CQUNYLFNBQVMsRUFBRTt3QkFDVCxjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGFBQWE7cUJBQ2Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEJsb2NrVUlNb2R1bGUgfSBmcm9tICduZy1ibG9jay11aSc7XHJcbmltcG9ydCB7IFRvYXN0ck1vZHVsZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBVdGlsaXR5U2VydmljZSwgRW52aXJvbm1lbnRTZXJ2aWNlLCBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsIFN0eWxlc0J1bmRsZVNlcnZpY2UsIEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gIENvbnRyb2xWYWxpZGF0aW9uU2VydmljZSwgTWFzdGVyTGF5b3V0U2VydmljZSwgQ29uZmlndXJhdGlvblNlcnZpY2UsIEF1dGhTZXJ2aWNlXHJcbn0gZnJvbSAnLi9zaGFyZWQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIEJsb2NrVUlNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgVG9hc3RyTW9kdWxlLmZvclJvb3QoKSxcclxuXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgQXV0aFNlcnZpY2UsXHJcbiAgICBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsXHJcbiAgICBTdHlsZXNCdW5kbGVTZXJ2aWNlLFxyXG4gICAgVHJhbnNsYXRlU2VydmljZSxcclxuICAgIEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLFxyXG4gICAgTWFzdGVyTGF5b3V0U2VydmljZSxcclxuICAgIENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgQ29va2llU2VydmljZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJCU0ZVdGlsaXRpZXNNb2R1bGUge1xyXG5cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
|
+
import { JwtHelperService } from '@auth0/angular-jwt';
|
|
5
|
+
import { User } from '../models/UserModel';
|
|
6
|
+
import { AuthenticationModes } from '../enums/authentication-modes-enums';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common/http";
|
|
9
|
+
import * as i2 from "../services";
|
|
10
|
+
import * as i3 from "@angular/router";
|
|
11
|
+
import * as i4 from "ngx-cookie-service";
|
|
12
|
+
import * as i5 from "../services/utility.service";
|
|
13
|
+
const TOKEN_KEY = 'access_token';
|
|
14
|
+
export class AuthService {
|
|
15
|
+
constructor(injector, http, environmentService, translateService, router, cookieService, utilityService) {
|
|
16
|
+
this.injector = injector;
|
|
17
|
+
this.http = http;
|
|
18
|
+
this.environmentService = environmentService;
|
|
19
|
+
this.translateService = translateService;
|
|
20
|
+
this.router = router;
|
|
21
|
+
this.cookieService = cookieService;
|
|
22
|
+
this.utilityService = utilityService;
|
|
23
|
+
this.redirectUrl = '';
|
|
24
|
+
this.jwtHelper = new JwtHelperService();
|
|
25
|
+
this.isAuthenticatedSubject = new BehaviorSubject(this.hasToken());
|
|
26
|
+
this.isAuthenticate$ = this.isAuthenticatedSubject.asObservable();
|
|
27
|
+
this.user = this.getUserManager();
|
|
28
|
+
}
|
|
29
|
+
hasToken() {
|
|
30
|
+
const token = this.cookieService.get(TOKEN_KEY);
|
|
31
|
+
return token && !this.jwtHelper.isTokenExpired(token);
|
|
32
|
+
}
|
|
33
|
+
getUserManager() {
|
|
34
|
+
const token = this.cookieService.get(TOKEN_KEY);
|
|
35
|
+
if (token)
|
|
36
|
+
this.handleAccessTokenWithoutLanguage(token);
|
|
37
|
+
return AuthService.user;
|
|
38
|
+
}
|
|
39
|
+
getUser() {
|
|
40
|
+
this.user = AuthService.user;
|
|
41
|
+
}
|
|
42
|
+
storUser(User) {
|
|
43
|
+
AuthService.user = this.user = this.user;
|
|
44
|
+
}
|
|
45
|
+
getCurrentUser() {
|
|
46
|
+
return AuthService.user;
|
|
47
|
+
}
|
|
48
|
+
async isAuthenticated() {
|
|
49
|
+
return AuthService.user != null && !this.jwtHelper.isTokenExpired(AuthService.user.access_token);
|
|
50
|
+
}
|
|
51
|
+
isUserInRole(allowedPermission) {
|
|
52
|
+
let selectedPermissionSetID = Number.parseInt(this.user.profile['selectedpermissionsetid']);
|
|
53
|
+
return allowedPermission.includes(selectedPermissionSetID);
|
|
54
|
+
}
|
|
55
|
+
authorizationHeaderValue() {
|
|
56
|
+
return AuthService.user
|
|
57
|
+
? `${AuthService.user.token_type} ${AuthService.user.access_token}`
|
|
58
|
+
: '';
|
|
59
|
+
}
|
|
60
|
+
name() {
|
|
61
|
+
return AuthService.user != null ? AuthService.user.profile.given_name : '';
|
|
62
|
+
}
|
|
63
|
+
setUrl(url) {
|
|
64
|
+
localStorage.setItem('redirectUrl', url);
|
|
65
|
+
}
|
|
66
|
+
getUrl() {
|
|
67
|
+
return localStorage.getItem('redirectUrl') ?? "/";
|
|
68
|
+
}
|
|
69
|
+
signOut() {
|
|
70
|
+
AuthService.timers.map(t => clearInterval(t));
|
|
71
|
+
AuthService.timers = [];
|
|
72
|
+
if (!this.isAuthenticated()) {
|
|
73
|
+
this.cookieService.delete(TOKEN_KEY);
|
|
74
|
+
this.router.navigate(['/Admin/account/login']);
|
|
75
|
+
}
|
|
76
|
+
this.logout().subscribe(res => {
|
|
77
|
+
this.cookieService.delete(TOKEN_KEY);
|
|
78
|
+
if (this.environmentService.getBBSFAuthenticationMode() == AuthenticationModes.UAEPass)
|
|
79
|
+
this.logoutFromUAEPass();
|
|
80
|
+
else
|
|
81
|
+
this.router.navigate(['/Admin/account/login']);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
logout() {
|
|
85
|
+
const httpOptions = {
|
|
86
|
+
headers: new HttpHeaders({
|
|
87
|
+
'Content-Type': 'application/json',
|
|
88
|
+
}),
|
|
89
|
+
};
|
|
90
|
+
let ApiUrl = '/Account/';
|
|
91
|
+
return this.http.get(this.environmentService.getApiUrl() + ApiUrl + 'Logout', httpOptions);
|
|
92
|
+
}
|
|
93
|
+
clearUserSessionClaims() {
|
|
94
|
+
const httpOptions = {
|
|
95
|
+
headers: new HttpHeaders({
|
|
96
|
+
'Content-Type': 'application/json',
|
|
97
|
+
}),
|
|
98
|
+
};
|
|
99
|
+
let ApiUrl = '/api/Home/';
|
|
100
|
+
return this.http.get(this.environmentService.getBaseUrl() + ApiUrl + 'ClearCurrentUserSession', httpOptions);
|
|
101
|
+
}
|
|
102
|
+
async handleAccessToken(response) {
|
|
103
|
+
const token = response;
|
|
104
|
+
AuthService.user = new User();
|
|
105
|
+
AuthService.user.token_type = "Bearer";
|
|
106
|
+
AuthService.user.access_token = token;
|
|
107
|
+
AuthService.user.profile = this.jwtHelper.decodeToken(token);
|
|
108
|
+
AuthService.user.expires_at = this.jwtHelper.getTokenExpirationDate(token);
|
|
109
|
+
AuthService.timers.map(t => clearInterval(t));
|
|
110
|
+
AuthService.timers = [];
|
|
111
|
+
this.setTokenSeconds();
|
|
112
|
+
AuthService.timers.push(this.checkRefreshToken());
|
|
113
|
+
this.user = AuthService.user;
|
|
114
|
+
await this.updateLanguage();
|
|
115
|
+
this.cookieService.set(TOKEN_KEY, token, null, null, null, true, 'Strict');
|
|
116
|
+
this.isAuthenticatedSubject.next(true);
|
|
117
|
+
}
|
|
118
|
+
handleAccessTokenWithoutLanguage(response) {
|
|
119
|
+
const token = response;
|
|
120
|
+
AuthService.user = new User();
|
|
121
|
+
AuthService.user.token_type = "Bearer";
|
|
122
|
+
AuthService.user.access_token = token;
|
|
123
|
+
AuthService.user.profile = this.jwtHelper.decodeToken(token);
|
|
124
|
+
AuthService.user.expires_at = this.jwtHelper.getTokenExpirationDate(token);
|
|
125
|
+
this.setTokenSeconds();
|
|
126
|
+
this.user = AuthService.user;
|
|
127
|
+
this.cookieService.set(TOKEN_KEY, token, null, null, null, true, 'Strict');
|
|
128
|
+
this.isAuthenticatedSubject.next(true);
|
|
129
|
+
}
|
|
130
|
+
async updateLanguage() {
|
|
131
|
+
if (!localStorage.getItem('language') ||
|
|
132
|
+
localStorage.getItem('language') == this.user.profile.locale)
|
|
133
|
+
localStorage.setItem('language', this.user.profile.locale);
|
|
134
|
+
if (this.translateService.currentLang != localStorage.getItem('language')) {
|
|
135
|
+
this.translateService.resetLang(this.translateService.currentLang);
|
|
136
|
+
await this.translateService
|
|
137
|
+
.reloadLang(localStorage.getItem('language'))
|
|
138
|
+
.subscribe((res) => {
|
|
139
|
+
console.log(res);
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
checkRefreshToken() {
|
|
144
|
+
let date = new Date();
|
|
145
|
+
return setInterval(() => {
|
|
146
|
+
if (Math.floor(AuthService.seconds) < 120 && this.isAuthenticated())
|
|
147
|
+
this.refresh();
|
|
148
|
+
AuthService.seconds--;
|
|
149
|
+
}, 1000);
|
|
150
|
+
}
|
|
151
|
+
setTokenSeconds() {
|
|
152
|
+
let date = new Date();
|
|
153
|
+
AuthService.seconds = (AuthService.user.expires_at - date) / 1000;
|
|
154
|
+
}
|
|
155
|
+
refresh() {
|
|
156
|
+
const httpOptions = {
|
|
157
|
+
headers: new HttpHeaders({
|
|
158
|
+
'Content-Type': 'application/json',
|
|
159
|
+
'Authorization': this.authorizationHeaderValue(),
|
|
160
|
+
}),
|
|
161
|
+
};
|
|
162
|
+
let ApiUrl = '/api/Home/';
|
|
163
|
+
this.http.get(this.environmentService.getApiUrl() + ApiUrl + 'RefreshAccessToken', httpOptions).subscribe((res) => {
|
|
164
|
+
this.cookieService.delete(TOKEN_KEY);
|
|
165
|
+
this.handleAccessTokenWithoutLanguage(res.val);
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
loginWithUAEPass() {
|
|
169
|
+
const authEndpoint = `${this.environmentService.getUAEPassBaseUrl()}${this.environmentService.getUAEPassAuthorizationEndPoint()}`;
|
|
170
|
+
const queryParams = {
|
|
171
|
+
response_type: 'code',
|
|
172
|
+
client_id: `${this.environmentService.getUAEPassClientID()}`,
|
|
173
|
+
redirect_uri: `${this.environmentService.getBaseUrl()}${this.environmentService.getUAEPassRedirectUrl()}`,
|
|
174
|
+
scope: 'urn:uae:digitalid:profile:general urn:uae:digitalid:profile:general:profileType urn:uae:digitalid:profile:general:unifiedId',
|
|
175
|
+
state: 'pd3PgezRwk596u2yfRwqOgru',
|
|
176
|
+
acr_values: 'urn:safelayer:tws:policies:authentication:level:low'
|
|
177
|
+
};
|
|
178
|
+
const queryParamsString = Object.entries(queryParams)
|
|
179
|
+
.map(([key, value]) => `${key}=${encodeURIComponent(value)}`)
|
|
180
|
+
.join('&');
|
|
181
|
+
const loginUrl = `${authEndpoint}?${queryParamsString}`;
|
|
182
|
+
window.location.href = loginUrl;
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
logoutFromUAEPass() {
|
|
186
|
+
const logoutEndpoint = `${this.environmentService.getUAEPassBaseUrl()}${this.environmentService.getUAEPassLogoutEndPoint()}`;
|
|
187
|
+
const queryParams = {
|
|
188
|
+
redirect_uri: `${this.environmentService.getBaseUrl()}`,
|
|
189
|
+
};
|
|
190
|
+
const queryParamsString = Object.entries(queryParams)
|
|
191
|
+
.map(([key, value]) => `${key}=${encodeURIComponent(value)}`)
|
|
192
|
+
.join('&');
|
|
193
|
+
const logoutUrl = `${logoutEndpoint}?${queryParamsString}`;
|
|
194
|
+
window.location.href = logoutUrl;
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
AuthService.user = null;
|
|
199
|
+
AuthService.UserClaims = null;
|
|
200
|
+
//refresh
|
|
201
|
+
AuthService.timers = [];
|
|
202
|
+
AuthService.seconds = 0;
|
|
203
|
+
AuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthService, deps: [{ token: i0.Injector }, { token: i1.HttpClient }, { token: i2.EnvironmentService }, { token: i2.BBSFTranslateService }, { token: i3.Router }, { token: i4.CookieService }, { token: i5.UtilityService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
204
|
+
AuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthService, providedIn: 'root' });
|
|
205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AuthService, decorators: [{
|
|
206
|
+
type: Injectable,
|
|
207
|
+
args: [{
|
|
208
|
+
providedIn: 'root',
|
|
209
|
+
}]
|
|
210
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.HttpClient }, { type: i2.EnvironmentService }, { type: i2.BBSFTranslateService }, { type: i3.Router }, { type: i4.CookieService }, { type: i5.UtilityService }]; } });
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvYXV0aGVudGljYXRpb24vYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7O0FBQzFFLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQztBQUtqQyxNQUFNLE9BQU8sV0FBVztJQVl0QixZQUFvQixRQUFrQixFQUFVLElBQWdCLEVBQVUsa0JBQXNDLEVBQVUsZ0JBQXNDLEVBQVUsTUFBYyxFQUFVLGFBQTRCLEVBQVUsY0FBOEI7UUFBbFAsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFzQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQVgvUCxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUl4QixjQUFTLEdBQXFCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUNyRCwyQkFBc0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztR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RSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsRUFBRTtTQUN4RCxDQUFBO1FBQ0QsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQzthQUNsRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQzthQUM1RCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFYixNQUFNLFNBQVMsR0FBRyxHQUFHLGNBQWMsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQzNELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUNqQyxPQUFPO0lBQ1QsQ0FBQzs7QUE5TU0sZ0JBQUksR0FBZ0IsSUFBSSxDQUFDO0FBRXpCLHNCQUFVLEdBQVEsSUFBSSxDQUFDO0FBSTlCLFNBQVM7QUFDRixrQkFBTSxHQUFHLEVBQUUsQ0FBQztBQUNaLG1CQUFPLEdBQUcsQ0FBQyxDQUFDO3lHQVZSLFdBQVc7NkdBQVgsV0FBVyxjQUZWLE1BQU07NEZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEp3dEhlbHBlclNlcnZpY2UgfSBmcm9tICdAYXV0aDAvYW5ndWxhci1qd3QnO1xyXG5pbXBvcnQgeyBCQlNGVHJhbnNsYXRlU2VydmljZSwgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vbW9kZWxzL1VzZXJNb2RlbCc7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3V0aWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uTW9kZXMgfSBmcm9tICcuLi9lbnVtcy9hdXRoZW50aWNhdGlvbi1tb2Rlcy1lbnVtcyc7XHJcbmNvbnN0IFRPS0VOX0tFWSA9ICdhY2Nlc3NfdG9rZW4nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcclxuICBwdWJsaWMgcmVkaXJlY3RVcmw6IHN0cmluZyA9ICcnO1xyXG4gIHN0YXRpYyB1c2VyOiBVc2VyIHwgbnVsbCA9IG51bGw7XHJcbiAgdXNlcjogVXNlciB8IG51bGw7XHJcbiAgc3RhdGljIFVzZXJDbGFpbXM6IGFueSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBqd3RIZWxwZXI6IEp3dEhlbHBlclNlcnZpY2UgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gIHByaXZhdGUgaXNBdXRoZW50aWNhdGVkU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odGhpcy5oYXNUb2tlbigpKTtcclxuICBpc0F1dGhlbnRpY2F0ZSQgPSB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgLy9yZWZyZXNoXHJcbiAgc3RhdGljIHRpbWVycyA9IFtdO1xyXG4gIHN0YXRpYyBzZWNvbmRzID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBCQlNGVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLCBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSkge1xyXG4gICAgdGhpcy51c2VyID0gdGhpcy5nZXRVc2VyTWFuYWdlcigpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc1Rva2VuKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KFRPS0VOX0tFWSk7XHJcbiAgICByZXR1cm4gdG9rZW4gJiYgIXRoaXMuand0SGVscGVyLmlzVG9rZW5FeHBpcmVkKHRva2VuKTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJNYW5hZ2VyKCkge1xyXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KFRPS0VOX0tFWSk7XHJcbiAgICBpZiAodG9rZW4pXHJcbiAgICAgIHRoaXMuaGFuZGxlQWNjZXNzVG9rZW5XaXRob3V0TGFuZ3VhZ2UodG9rZW4pXHJcbiAgICByZXR1cm4gQXV0aFNlcnZpY2UudXNlcjtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgZ2V0VXNlcigpIHtcclxuICAgIHRoaXMudXNlciA9IEF1dGhTZXJ2aWNlLnVzZXI7XHJcbiAgfVxyXG4gIHN0b3JVc2VyKFVzZXI6IGFueSkge1xyXG4gICAgQXV0aFNlcnZpY2UudXNlciA9IHRoaXMudXNlciA9IHRoaXMudXNlcjtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnRVc2VyKCkge1xyXG4gICAgcmV0dXJuIEF1dGhTZXJ2aWNlLnVzZXJcclxuICB9XHJcblxyXG4gIGFzeW5jIGlzQXV0aGVudGljYXRlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBBdXRoU2VydmljZS51c2VyICE9IG51bGwgJiYgIXRoaXMuand0SGVscGVyLmlzVG9rZW5FeHBpcmVkKEF1dGhTZXJ2aWNlLnVzZXIuYWNjZXNzX3Rva2VuKTtcclxuICB9XHJcbiAgaXNVc2VySW5Sb2xlKGFsbG93ZWRQZXJtaXNzaW9uOiBudW1iZXJbXSkge1xyXG4gICAgbGV0IHNlbGVjdGVkUGVybWlzc2lvblNldElEOiBudW1iZXIgPSBOdW1iZXIucGFyc2VJbnQoXHJcbiAgICAgIHRoaXMudXNlci5wcm9maWxlWydzZWxlY3RlZHBlcm1pc3Npb25zZXRpZCddXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGFsbG93ZWRQZXJtaXNzaW9uLmluY2x1ZGVzKHNlbGVjdGVkUGVybWlzc2lvblNldElEKTtcclxuICB9XHJcblxyXG4gIGF1dGhvcml6YXRpb25IZWFkZXJWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEF1dGhTZXJ2aWNlLnVzZXJcclxuICAgICAgPyBgJHtBdXRoU2VydmljZS51c2VyLnRva2VuX3R5cGV9ICR7QXV0aFNlcnZpY2UudXNlci5hY2Nlc3NfdG9rZW59YFxyXG4gICAgICA6ICcnO1xyXG4gIH1cclxuXHJcbiAgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEF1dGhTZXJ2aWNlLnVzZXIgIT0gbnVsbCA/IEF1dGhTZXJ2aWNlLnVzZXIucHJvZmlsZS5naXZlbl9uYW1lIDogJyc7XHJcbiAgfVxyXG4gIHNldFVybCh1cmwpIHtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdyZWRpcmVjdFVybCcsIHVybCk7XHJcbiAgfVxyXG4gIGdldFVybCgpIHtcclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncmVkaXJlY3RVcmwnKSA/PyBcIi9cIjtcclxuICB9XHJcblxyXG4gIHNpZ25PdXQoKSB7XHJcbiAgICBBdXRoU2VydmljZS50aW1lcnMubWFwKHQgPT4gY2xlYXJJbnRlcnZhbCh0KSk7XHJcbiAgICBBdXRoU2VydmljZS50aW1lcnMgPSBbXTtcclxuICAgIGlmICghdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSkge1xyXG4gICAgICB0aGlzLmNvb2tpZVNlcnZpY2UuZGVsZXRlKFRPS0VOX0tFWSk7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL0FkbWluL2FjY291bnQvbG9naW4nXSlcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvZ291dCgpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLmNvb2tpZVNlcnZpY2UuZGVsZXRlKFRPS0VOX0tFWSk7XHJcbiAgICAgIGlmICh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCQlNGQXV0aGVudGljYXRpb25Nb2RlKCkgPT0gQXV0aGVudGljYXRpb25Nb2Rlcy5VQUVQYXNzKVxyXG4gICAgICAgIHRoaXMubG9nb3V0RnJvbVVBRVBhc3MoKVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vYWNjb3VudC9sb2dpbiddKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICB9KSxcclxuICAgIH07XHJcbiAgICBsZXQgQXBpVXJsID0gJy9BY2NvdW50Lyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRBcGlVcmwoKSArIEFwaVVybCArICdMb2dvdXQnLCBodHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xlYXJVc2VyU2Vzc2lvbkNsYWltcygpIHtcclxuICAgIGNvbnN0IGh0dHBPcHRpb25zID0ge1xyXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgIH0pLFxyXG4gICAgfTtcclxuICAgIGxldCBBcGlVcmwgPSAnL2FwaS9Ib21lLyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCkgKyBBcGlVcmwgKyAnQ2xlYXJDdXJyZW50VXNlclNlc3Npb24nLCBodHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgYXN5bmMgaGFuZGxlQWNjZXNzVG9rZW4ocmVzcG9uc2U6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgdG9rZW4gPSByZXNwb25zZTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIgPSBuZXcgVXNlcigpO1xyXG4gICAgQXV0aFNlcnZpY2UudXNlci50b2tlbl90eXBlID0gXCJCZWFyZXJcIlxyXG4gICAgQXV0aFNlcnZpY2UudXNlci5hY2Nlc3NfdG9rZW4gPSB0b2tlbjtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIucHJvZmlsZSA9IHRoaXMuand0SGVscGVyLmRlY29kZVRva2VuKHRva2VuKTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIuZXhwaXJlc19hdCA9IHRoaXMuand0SGVscGVyLmdldFRva2VuRXhwaXJhdGlvbkRhdGUodG9rZW4pO1xyXG4gICAgQXV0aFNlcnZpY2UudGltZXJzLm1hcCh0ID0+IGNsZWFySW50ZXJ2YWwodCkpO1xyXG4gICAgQXV0aFNlcnZpY2UudGltZXJzID0gW107XHJcbiAgICB0aGlzLnNldFRva2VuU2Vjb25kcygpXHJcbiAgICBBdXRoU2VydmljZS50aW1lcnMucHVzaCh0aGlzLmNoZWNrUmVmcmVzaFRva2VuKCkpO1xyXG4gICAgdGhpcy51c2VyID0gQXV0aFNlcnZpY2UudXNlclxyXG4gICAgYXdhaXQgdGhpcy51cGRhdGVMYW5ndWFnZSgpXHJcbiAgICB0aGlzLmNvb2tpZVNlcnZpY2Uuc2V0KFRPS0VOX0tFWSwgdG9rZW4sIG51bGwsIG51bGwsIG51bGwsIHRydWUsICdTdHJpY3QnKTtcclxuICAgIHRoaXMuaXNBdXRoZW50aWNhdGVkU3ViamVjdC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQWNjZXNzVG9rZW5XaXRob3V0TGFuZ3VhZ2UocmVzcG9uc2U6IGFueSkge1xyXG4gICAgY29uc3QgdG9rZW4gPSByZXNwb25zZTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIgPSBuZXcgVXNlcigpO1xyXG4gICAgQXV0aFNlcnZpY2UudXNlci50b2tlbl90eXBlID0gXCJCZWFyZXJcIlxyXG4gICAgQXV0aFNlcnZpY2UudXNlci5hY2Nlc3NfdG9rZW4gPSB0b2tlbjtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIucHJvZmlsZSA9IHRoaXMuand0SGVscGVyLmRlY29kZVRva2VuKHRva2VuKTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIuZXhwaXJlc19hdCA9IHRoaXMuand0SGVscGVyLmdldFRva2VuRXhwaXJhdGlvbkRhdGUodG9rZW4pO1xyXG4gICAgdGhpcy5zZXRUb2tlblNlY29uZHMoKVxyXG4gICAgdGhpcy51c2VyID0gQXV0aFNlcnZpY2UudXNlclxyXG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldChUT0tFTl9LRVksIHRva2VuLCBudWxsLCBudWxsLCBudWxsLCB0cnVlLCAnU3RyaWN0Jyk7XHJcbiAgICB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QubmV4dCh0cnVlKTtcclxuICB9XHJcbiAgYXN5bmMgdXBkYXRlTGFuZ3VhZ2UoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgICFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKSB8fFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKSA9PSB0aGlzLnVzZXIucHJvZmlsZS5sb2NhbGVcclxuICAgIClcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2xhbmd1YWdlJywgdGhpcy51c2VyLnByb2ZpbGUubG9jYWxlKTtcclxuXHJcbiAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nICE9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpKSB7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5yZXNldExhbmcodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nKTtcclxuICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlXHJcbiAgICAgICAgLnJlbG9hZExhbmcobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJykpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tSZWZyZXNoVG9rZW4oKSB7XHJcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKCkgYXMgYW55O1xyXG4gICAgcmV0dXJuIHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgaWYgKE1hdGguZmxvb3IoQXV0aFNlcnZpY2Uuc2Vjb25kcykgPCAxMjAgJiYgdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSlcclxuICAgICAgICB0aGlzLnJlZnJlc2goKVxyXG4gICAgICBBdXRoU2VydmljZS5zZWNvbmRzLS07XHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcbiAgc2V0VG9rZW5TZWNvbmRzKCkge1xyXG4gICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSgpIGFzIGFueTtcclxuICAgIEF1dGhTZXJ2aWNlLnNlY29uZHMgPSAoQXV0aFNlcnZpY2UudXNlci5leHBpcmVzX2F0IC0gZGF0ZSkgLyAxMDAwXHJcbiAgfVxyXG4gIHJlZnJlc2goKSB7XHJcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgICdBdXRob3JpemF0aW9uJzogdGhpcy5hdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKSxcclxuICAgICAgfSksXHJcbiAgICB9O1xyXG4gICAgbGV0IEFwaVVybCA9ICcvYXBpL0hvbWUvJztcclxuICAgIHRoaXMuaHR0cC5nZXQodGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0QXBpVXJsKCkgKyBBcGlVcmwgKyAnUmVmcmVzaEFjY2Vzc1Rva2VuJywgaHR0cE9wdGlvbnMpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLmRlbGV0ZShUT0tFTl9LRVkpO1xyXG4gICAgICB0aGlzLmhhbmRsZUFjY2Vzc1Rva2VuV2l0aG91dExhbmd1YWdlKHJlcy52YWwpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbG9naW5XaXRoVUFFUGFzcygpIHtcclxuICAgIGNvbnN0IGF1dGhFbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFVBRVBhc3NCYXNlVXJsKCl9JHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRVQUVQYXNzQXV0aG9yaXphdGlvbkVuZFBvaW50KCl9YDtcclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge1xyXG4gICAgICByZXNwb25zZV90eXBlOiAnY29kZScsXHJcbiAgICAgIGNsaWVudF9pZDogYCR7dGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0VUFFUGFzc0NsaWVudElEKCl9YCxcclxuICAgICAgcmVkaXJlY3RfdXJpOiBgJHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCl9JHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRVQUVQYXNzUmVkaXJlY3RVcmwoKX1gLFxyXG4gICAgICBzY29wZTogJ3Vybjp1YWU6ZGlnaXRhbGlkOnByb2ZpbGU6Z2VuZXJhbCB1cm46dWFlOmRpZ2l0YWxpZDpwcm9maWxlOmdlbmVyYWw6cHJvZmlsZVR5cGUgdXJuOnVhZTpkaWdpdGFsaWQ6cHJvZmlsZTpnZW5lcmFsOnVuaWZpZWRJZCcsXHJcbiAgICAgIHN0YXRlOiAncGQzUGdlelJ3azU5NnUyeWZSd3FPZ3J1JyxcclxuICAgICAgYWNyX3ZhbHVlczogJ3VybjpzYWZlbGF5ZXI6dHdzOnBvbGljaWVzOmF1dGhlbnRpY2F0aW9uOmxldmVsOmxvdydcclxuICAgIH1cclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zU3RyaW5nID0gT2JqZWN0LmVudHJpZXMocXVlcnlQYXJhbXMpXHJcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fT0ke2VuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSl9YClcclxuICAgICAgLmpvaW4oJyYnKTtcclxuICAgIGNvbnN0IGxvZ2luVXJsID0gYCR7YXV0aEVuZHBvaW50fT8ke3F1ZXJ5UGFyYW1zU3RyaW5nfWA7XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGxvZ2luVXJsO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgbG9nb3V0RnJvbVVBRVBhc3MoKSB7XHJcbiAgICBjb25zdCBsb2dvdXRFbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldFVBRVBhc3NCYXNlVXJsKCl9JHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRVQUVQYXNzTG9nb3V0RW5kUG9pbnQoKX1gXHJcbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHtcclxuICAgICAgcmVkaXJlY3RfdXJpOiBgJHt0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCl9YCxcclxuICAgIH1cclxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zU3RyaW5nID0gT2JqZWN0LmVudHJpZXMocXVlcnlQYXJhbXMpXHJcbiAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fT0ke2VuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSl9YClcclxuICAgICAgLmpvaW4oJyYnKTtcclxuXHJcbiAgICBjb25zdCBsb2dvdXRVcmwgPSBgJHtsb2dvdXRFbmRwb2ludH0/JHtxdWVyeVBhcmFtc1N0cmluZ31gO1xyXG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBsb2dvdXRVcmw7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './auth.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLXV0aWxpdGllcy9zcmMvbGliL3NoYXJlZC9hdXRoZW50aWNhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG4iXX0=
|
package/{esm2015/lib/shared/config/environment.js → esm2020/lib/shared/config/environment.mjs}
RENAMED
|
@@ -9,4 +9,4 @@ export const environment = Object.assign({}, window.Environment);
|
|
|
9
9
|
* because it will have performance impact when throw error
|
|
10
10
|
*/
|
|
11
11
|
// import 'zone.js/dist/zone-error'; // Included with Angular CLI.
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLXV0aWxpdGllcy9zcmMvbGliL3NoYXJlZC9jb25maWcvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0ZBQWdGO0FBQ2hGLDJFQUEyRTtBQUMzRSxnRUFBZ0U7QUFFaEUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFDeEMsRUFDSSxNQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7QUFHakM7Ozs7O0dBS0c7QUFDSCxtRUFBbUUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgY2FuIGJlIHJlcGxhY2VkIGR1cmluZyBidWlsZCBieSB1c2luZyB0aGUgYGZpbGVSZXBsYWNlbWVudHNgIGFycmF5LlxyXG4vLyBgbmcgYnVpbGQgLS0tcHJvZGAgcmVwbGFjZXMgYGVudmlyb25tZW50LnRzYCB3aXRoIGBlbnZpcm9ubWVudC5wcm9kLnRzYC5cclxuLy8gVGhlIGxpc3Qgb2YgZmlsZSByZXBsYWNlbWVudHMgY2FuIGJlIGZvdW5kIGluIGBhbmd1bGFyLmpzb25gLlxyXG5cclxuZXhwb3J0IGNvbnN0IGVudmlyb25tZW50ID0gT2JqZWN0LmFzc2lnbih7XHJcbn0sXHJcbiAgICAod2luZG93IGFzIGFueSkuRW52aXJvbm1lbnQpO1xyXG5cclxuXHJcbi8qXHJcbiAqIEluIGRldmVsb3BtZW50IG1vZGUsIHRvIGlnbm9yZSB6b25lIHJlbGF0ZWQgZXJyb3Igc3RhY2sgZnJhbWVzIHN1Y2ggYXNcclxuICogYHpvbmUucnVuYCwgYHpvbmVEZWxlZ2F0ZS5pbnZva2VUYXNrYCBmb3IgZWFzaWVyIGRlYnVnZ2luZywgeW91IGNhblxyXG4gKiBpbXBvcnQgdGhlIGZvbGxvd2luZyBmaWxlLCBidXQgcGxlYXNlIGNvbW1lbnQgaXQgb3V0IGluIHByb2R1Y3Rpb24gbW9kZVxyXG4gKiBiZWNhdXNlIGl0IHdpbGwgaGF2ZSBwZXJmb3JtYW5jZSBpbXBhY3Qgd2hlbiB0aHJvdyBlcnJvclxyXG4gKi9cclxuLy8gaW1wb3J0ICd6b25lLmpzL2Rpc3Qvem9uZS1lcnJvcic7ICAvLyBJbmNsdWRlZCB3aXRoIEFuZ3VsYXIgQ0xJLlxyXG4iXX0=
|