@bnsights/bbsf-utilities 1.0.32 → 1.0.33
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 -4
- package/bnsights-bbsf-utilities-1.0.33.tgz +0 -0
- package/bnsights-bbsf-utilities.d.ts +0 -1
- package/bnsights-bbsf-utilities.metadata.json +1 -0
- package/bundles/bnsights-bbsf-utilities.umd.js +4865 -0
- package/bundles/bnsights-bbsf-utilities.umd.js.map +1 -0
- package/esm2015/lib/bbsf-utilities.module.js +52 -0
- package/esm2015/lib/shared/authentication/auth.service.js +236 -0
- package/esm2015/lib/shared/config/word/constants.js +105 -0
- package/esm2015/lib/shared/config/word/docx-document.js +351 -0
- package/esm2015/lib/shared/config/word/helpers/index.js +4 -0
- package/esm2015/lib/shared/config/word/helpers/render-document-file.js +278 -0
- package/esm2015/lib/shared/config/word/helpers/xml-builder.js +1765 -0
- package/esm2015/lib/shared/config/word/html-to-docx.js +195 -0
- package/esm2015/lib/shared/config/word/index.js +55 -0
- package/esm2015/lib/shared/config/word/namespaces.js +37 -0
- package/esm2015/lib/shared/config/word/schemas/content-types.js +26 -0
- package/esm2015/lib/shared/config/word/schemas/core.js +29 -0
- package/esm2015/lib/shared/config/word/schemas/document-rels.js +16 -0
- package/esm2015/lib/shared/config/word/schemas/document.template.js +109 -0
- package/esm2015/lib/shared/config/word/schemas/font-table.js +40 -0
- package/esm2015/lib/shared/config/word/schemas/generic-rels.js +11 -0
- package/esm2015/lib/shared/config/word/schemas/index.js +13 -0
- package/esm2015/lib/shared/config/word/schemas/numbering.js +19 -0
- package/esm2015/lib/shared/config/word/schemas/rels.js +11 -0
- package/esm2015/lib/shared/config/word/schemas/settings.js +13 -0
- package/esm2015/lib/shared/config/word/schemas/styles.js +149 -0
- package/esm2015/lib/shared/config/word/schemas/theme.js +200 -0
- package/esm2015/lib/shared/config/word/schemas/web-settings.js +9 -0
- package/esm2015/lib/shared/config/word/utils/color-conversion.js +60 -0
- package/esm2015/lib/shared/config/word/utils/list.js +51 -0
- package/esm2015/lib/shared/config/word/utils/unit-conversion.js +30 -0
- package/esm2015/lib/shared/config/word/utils/url.js +9 -0
- package/esm2015/lib/shared/config/word/utils/vnode.js +3 -0
- package/esm2015/lib/shared/config/word/word-work/templates/documentTemplate.js +54 -0
- package/esm2015/lib/shared/config/word/word-work/templates/index.js +4 -0
- package/esm2015/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.js +22 -0
- package/esm2015/lib/shared/config/word/word-work/templates/mhtPartTemplate.js +10 -0
- package/esm2015/lib/shared/config/word/word-work/utils.js +26 -0
- package/esm2015/lib/shared/models/WordDocumentModel.js +8 -0
- package/esm2015/lib/shared/services/AppearanceConfiguration.service.js +37 -0
- package/esm2015/lib/shared/services/configuration.service.js +26 -0
- package/esm2015/lib/shared/services/controlvalidation.service.js +168 -0
- package/esm2015/lib/shared/services/environment.service.js +48 -0
- package/esm2015/lib/shared/services/masterlayout.service.js +96 -0
- package/esm2015/lib/shared/services/requesthandler.service.js +206 -0
- package/esm2015/lib/shared/services/stylesbundle.service.js +56 -0
- package/esm2015/lib/shared/services/translate.service.js +13 -0
- package/esm2015/lib/shared/services/translationresolver.service.js +20 -0
- package/esm2015/lib/shared/services/utility.service.js +96 -0
- package/esm2015/lib/shared/services/word-document.service.js +39 -0
- package/esm2015/public-api.js +20 -0
- package/fesm2015/bnsights-bbsf-utilities.js +4634 -0
- package/fesm2015/bnsights-bbsf-utilities.js.map +1 -0
- package/lib/bbsf-utilities.module.d.ts +0 -9
- package/lib/shared/authentication/auth.service.d.ts +0 -3
- package/lib/shared/config/word/constants.d.ts +124 -0
- package/lib/shared/config/word/docx-document.d.ts +73 -0
- package/lib/shared/config/word/helpers/index.d.ts +1 -0
- package/lib/shared/config/word/helpers/render-document-file.d.ts +4 -0
- package/lib/shared/config/word/helpers/xml-builder.d.ts +14 -0
- package/lib/shared/config/word/html-to-docx.d.ts +1 -0
- package/lib/shared/config/word/index.d.ts +1 -0
- package/lib/shared/config/word/namespaces.d.ts +36 -0
- package/lib/shared/config/word/schemas/content-types.d.ts +1 -0
- package/lib/shared/config/word/schemas/core.d.ts +1 -0
- package/lib/shared/config/word/schemas/document-rels.d.ts +1 -0
- package/lib/shared/config/word/schemas/document.template.d.ts +4 -0
- package/lib/shared/config/word/schemas/font-table.d.ts +1 -0
- package/lib/shared/config/word/schemas/generic-rels.d.ts +1 -0
- package/lib/shared/config/word/schemas/index.d.ts +12 -0
- package/lib/shared/config/word/schemas/numbering.d.ts +1 -0
- package/lib/shared/config/word/schemas/rels.d.ts +1 -0
- package/lib/shared/config/word/schemas/settings.d.ts +1 -0
- package/lib/shared/config/word/schemas/styles.d.ts +1 -0
- package/lib/shared/config/word/schemas/theme.d.ts +1 -0
- package/lib/shared/config/word/schemas/web-settings.d.ts +1 -0
- package/lib/shared/config/word/utils/color-conversion.d.ts +7 -0
- package/lib/shared/config/word/utils/list.d.ts +6 -0
- package/lib/shared/config/word/utils/unit-conversion.d.ts +29 -0
- package/lib/shared/config/word/utils/url.d.ts +1 -0
- package/lib/shared/config/word/utils/vnode.d.ts +1 -0
- package/lib/shared/config/word/word-work/templates/documentTemplate.d.ts +12 -0
- package/lib/shared/config/word/word-work/templates/index.d.ts +3 -0
- package/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.d.ts +1 -0
- package/lib/shared/config/word/word-work/templates/mhtPartTemplate.d.ts +1 -0
- package/lib/shared/config/word/word-work/utils.d.ts +1 -0
- package/lib/shared/models/WordDocumentModel.d.ts +16 -0
- package/lib/shared/services/AppearanceConfiguration.service.d.ts +0 -3
- package/lib/shared/services/configuration.service.d.ts +0 -3
- package/lib/shared/services/controlvalidation.service.d.ts +0 -3
- package/lib/shared/services/environment.service.d.ts +0 -3
- package/lib/shared/services/masterlayout.service.d.ts +0 -3
- package/lib/shared/services/requesthandler.service.d.ts +0 -3
- package/lib/shared/services/stylesbundle.service.d.ts +0 -3
- package/lib/shared/services/translate.service.d.ts +0 -3
- package/lib/shared/services/translationresolver.service.d.ts +0 -3
- package/lib/shared/services/utility.service.d.ts +0 -3
- package/lib/shared/services/word-document.service.d.ts +5 -0
- package/package.json +7 -19
- package/public-api.d.ts +2 -0
- package/bnsights-bbsf-utilities-1.0.32.tgz +0 -0
- package/esm2020/lib/bbsf-utilities.module.mjs +0 -74
- package/esm2020/lib/shared/authentication/auth.service.mjs +0 -217
- package/esm2020/lib/shared/services/AppearanceConfiguration.service.mjs +0 -35
- package/esm2020/lib/shared/services/configuration.service.mjs +0 -24
- package/esm2020/lib/shared/services/controlvalidation.service.mjs +0 -166
- package/esm2020/lib/shared/services/environment.service.mjs +0 -50
- package/esm2020/lib/shared/services/masterlayout.service.mjs +0 -84
- package/esm2020/lib/shared/services/requesthandler.service.mjs +0 -202
- package/esm2020/lib/shared/services/stylesbundle.service.mjs +0 -55
- package/esm2020/lib/shared/services/translate.service.mjs +0 -14
- package/esm2020/lib/shared/services/translationresolver.service.mjs +0 -18
- package/esm2020/lib/shared/services/utility.service.mjs +0 -90
- package/esm2020/public-api.mjs +0 -18
- package/fesm2015/bnsights-bbsf-utilities.mjs +0 -1009
- package/fesm2015/bnsights-bbsf-utilities.mjs.map +0 -1
- package/fesm2020/bnsights-bbsf-utilities.mjs +0 -997
- package/fesm2020/bnsights-bbsf-utilities.mjs.map +0 -1
- /package/{esm2020/bnsights-bbsf-utilities.mjs → esm2015/bnsights-bbsf-utilities.js} +0 -0
- /package/{esm2020/lib/shared/config/environment.mjs → esm2015/lib/shared/config/environment.js} +0 -0
- /package/{esm2020/lib/shared/models/AreaModel.mjs → esm2015/lib/shared/models/AreaModel.js} +0 -0
- /package/{esm2020/lib/shared/models/ErrorModel.mjs → esm2015/lib/shared/models/ErrorModel.js} +0 -0
- /package/{esm2020/lib/shared/models/RequestOptionsModel.mjs → esm2015/lib/shared/models/RequestOptionsModel.js} +0 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Injector, 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 { HttpModule } from '@angular/http';
|
|
8
|
+
import { UtilityService } from './shared/services/utility.service';
|
|
9
|
+
import { EnvironmentService } from './shared/services/environment.service';
|
|
10
|
+
import { AuthService } from './shared/authentication/auth.service';
|
|
11
|
+
import { RequestHandlerService } from './shared/services/requesthandler.service';
|
|
12
|
+
import { StylesBundleService } from './shared/services/stylesbundle.service';
|
|
13
|
+
import { BBSFTranslateService } from './shared/services/translate.service';
|
|
14
|
+
import { ControlValidationService } from './shared/services/controlvalidation.service';
|
|
15
|
+
import { MasterLayoutService } from './shared/services/masterlayout.service';
|
|
16
|
+
import { ConfigurationService } from './shared/services/configuration.service';
|
|
17
|
+
export let AppInjector;
|
|
18
|
+
export class BBSFUtilitiesModule {
|
|
19
|
+
constructor(injector) {
|
|
20
|
+
this.injector = injector;
|
|
21
|
+
AppInjector = this.injector;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
BBSFUtilitiesModule.decorators = [
|
|
25
|
+
{ type: NgModule, args: [{
|
|
26
|
+
declarations: [],
|
|
27
|
+
imports: [
|
|
28
|
+
CommonModule,
|
|
29
|
+
BlockUIModule.forRoot(),
|
|
30
|
+
HttpModule,
|
|
31
|
+
RouterModule,
|
|
32
|
+
ToastrModule.forRoot(),
|
|
33
|
+
],
|
|
34
|
+
exports: [],
|
|
35
|
+
providers: [
|
|
36
|
+
UtilityService,
|
|
37
|
+
EnvironmentService,
|
|
38
|
+
AuthService,
|
|
39
|
+
RequestHandlerService,
|
|
40
|
+
StylesBundleService,
|
|
41
|
+
TranslateService,
|
|
42
|
+
BBSFTranslateService,
|
|
43
|
+
ControlValidationService,
|
|
44
|
+
MasterLayoutService,
|
|
45
|
+
ConfigurationService
|
|
46
|
+
]
|
|
47
|
+
},] }
|
|
48
|
+
];
|
|
49
|
+
BBSFUtilitiesModule.ctorParameters = () => [
|
|
50
|
+
{ type: Injector }
|
|
51
|
+
];
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJzZi11dGlsaXRpZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9iYnNmLXV0aWxpdGllcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRS9FLE1BQU0sQ0FBQyxJQUFJLFdBQXFCLENBQUM7QUE2QmpDLE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFBb0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNwQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUU5QixDQUFDOzs7WUFoQ0YsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxFQUNiO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGFBQWEsQ0FBQyxPQUFPLEVBQUU7b0JBQ3ZCLFVBQVU7b0JBQ1YsWUFBWTtvQkFDWixZQUFZLENBQUMsT0FBTyxFQUFFO2lCQUV2QjtnQkFDRCxPQUFPLEVBQUUsRUFFUjtnQkFDRCxTQUFTLEVBQUM7b0JBQ1IsY0FBYztvQkFDZCxrQkFBa0I7b0JBQ2xCLFdBQVc7b0JBQ1gscUJBQXFCO29CQUNyQixtQkFBbUI7b0JBQ25CLGdCQUFnQjtvQkFDaEIsb0JBQW9CO29CQUNwQix3QkFBd0I7b0JBQ3hCLG1CQUFtQjtvQkFDbkIsb0JBQW9CO2lCQUNyQjthQUNGOzs7WUE1Q1EsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdG9yLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEJsb2NrVUlNb2R1bGUgfSBmcm9tICduZy1ibG9jay11aSc7XHJcbmltcG9ydCB7IFRvYXN0ck1vZHVsZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5pbXBvcnQgeyBIdHRwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvaHR0cCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvYXV0aGVudGljYXRpb24vYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VydmljZXMvcmVxdWVzdGhhbmRsZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0eWxlc0J1bmRsZVNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZXJ2aWNlcy9zdHlsZXNidW5kbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZXJ2aWNlcy9jb250cm9sdmFsaWRhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWFzdGVyTGF5b3V0U2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NlcnZpY2VzL21hc3RlcmxheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZXJ2aWNlcy9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGxldCBBcHBJbmplY3RvcjogSW5qZWN0b3I7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQmxvY2tVSU1vZHVsZS5mb3JSb290KCksXHJcbiAgICBIdHRwTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgVG9hc3RyTW9kdWxlLmZvclJvb3QoKSxcclxuXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBcclxuICBdLFxyXG4gIHByb3ZpZGVyczpbXHJcbiAgICBVdGlsaXR5U2VydmljZSxcclxuICAgIEVudmlyb25tZW50U2VydmljZSxcclxuICAgIEF1dGhTZXJ2aWNlLFxyXG4gICAgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgU3R5bGVzQnVuZGxlU2VydmljZSxcclxuICAgIFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBCQlNGVHJhbnNsYXRlU2VydmljZSxcclxuICAgIENvbnRyb2xWYWxpZGF0aW9uU2VydmljZSxcclxuICAgIE1hc3RlckxheW91dFNlcnZpY2UsXHJcbiAgICBDb25maWd1cmF0aW9uU2VydmljZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJCU0ZVdGlsaXRpZXNNb2R1bGUgeyBcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIEFwcEluamVjdG9yID0gdGhpcy5pbmplY3RvcjtcclxuXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Injectable, Injector } from '@angular/core';
|
|
3
|
+
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
4
|
+
import { UserManager, WebStorageStateStore, } from 'oidc-client';
|
|
5
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
6
|
+
import { EnvironmentService } from '../services/environment.service';
|
|
7
|
+
import { BBSFTranslateService } from '../services/translate.service';
|
|
8
|
+
import { Router } from '@angular/router';
|
|
9
|
+
import { MasterLayoutService } from '../services/masterlayout.service';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common/http";
|
|
12
|
+
import * as i2 from "../services/environment.service";
|
|
13
|
+
import * as i3 from "../services/translate.service";
|
|
14
|
+
import * as i4 from "@angular/router";
|
|
15
|
+
export class AuthService {
|
|
16
|
+
constructor(injector, http, environmentService, translateService, router) {
|
|
17
|
+
this.injector = injector;
|
|
18
|
+
this.http = http;
|
|
19
|
+
this.environmentService = environmentService;
|
|
20
|
+
this.translateService = translateService;
|
|
21
|
+
this.router = router;
|
|
22
|
+
// Observable navItem source
|
|
23
|
+
this._authNavStatusSource = new BehaviorSubject(false);
|
|
24
|
+
// Observable navItem stream
|
|
25
|
+
this.authNavStatus$ = this._authNavStatusSource.asObservable();
|
|
26
|
+
// Observable navItem source
|
|
27
|
+
this._userSource = new Subject();
|
|
28
|
+
this.UserStatus$ = this._userSource.asObservable();
|
|
29
|
+
this.manager = this.getUserManager();
|
|
30
|
+
this.redirectUrl = '';
|
|
31
|
+
this.manager.getUser().then((user) => __awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
this.manager.storeUser(user);
|
|
33
|
+
AuthService.user = user;
|
|
34
|
+
this.user = user;
|
|
35
|
+
this._authNavStatusSource.next(yield this.isAuthenticated());
|
|
36
|
+
}));
|
|
37
|
+
this.manager.events.addAccessTokenExpired((_) => {
|
|
38
|
+
this._authNavStatusSource.next(false);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
getUserManager() {
|
|
42
|
+
let user = null;
|
|
43
|
+
let isExternal = this.environmentService.getIsIdentityServerExternal().toLowerCase() ==
|
|
44
|
+
'true';
|
|
45
|
+
if (isExternal) {
|
|
46
|
+
user = new UserManager({
|
|
47
|
+
authority: this.environmentService.getIdentityServerUrl(),
|
|
48
|
+
client_id: this.environmentService.getIsIdentityServerClientId(),
|
|
49
|
+
client_secret: this.environmentService.getIsIdentityServerClientSecret(),
|
|
50
|
+
redirect_uri: this.environmentService.getBaseUrl() +
|
|
51
|
+
'/Admin/authentication/auth-callback',
|
|
52
|
+
post_logout_redirect_uri: this.environmentService.getBaseUrl(),
|
|
53
|
+
response_type: 'code',
|
|
54
|
+
scope: 'openid profile email',
|
|
55
|
+
filterProtocolClaims: true,
|
|
56
|
+
loadUserInfo: true,
|
|
57
|
+
automaticSilentRenew: true,
|
|
58
|
+
silent_redirect_uri: this.environmentService.getBaseUrl() + '/assets/silent-callback.html',
|
|
59
|
+
userStore: new WebStorageStateStore({ store: window.localStorage }),
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
user = new UserManager({
|
|
64
|
+
authority: this.environmentService.getIdentityServerUrl(),
|
|
65
|
+
client_id: 'angular_spa',
|
|
66
|
+
redirect_uri: this.environmentService.getBaseUrl() +
|
|
67
|
+
'/Admin/authentication/auth-callback',
|
|
68
|
+
post_logout_redirect_uri: this.environmentService.getBaseUrl(),
|
|
69
|
+
response_type: 'id_token token',
|
|
70
|
+
scope: 'openid profile email IdentityServerApi',
|
|
71
|
+
filterProtocolClaims: true,
|
|
72
|
+
loadUserInfo: true,
|
|
73
|
+
automaticSilentRenew: true,
|
|
74
|
+
silent_redirect_uri: this.environmentService.getBaseUrl() + '/assets/silent-callback.html',
|
|
75
|
+
userStore: new WebStorageStateStore({ store: window.localStorage }),
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return user;
|
|
79
|
+
}
|
|
80
|
+
login() {
|
|
81
|
+
return this.manager.signinRedirect();
|
|
82
|
+
}
|
|
83
|
+
getUser() {
|
|
84
|
+
this.manager.getUser().then((user) => __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
AuthService.user = user;
|
|
86
|
+
this.user = user;
|
|
87
|
+
this._authNavStatusSource.next(yield this.isAuthenticated());
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
storUser(User) {
|
|
91
|
+
this.manager.storeUser(User);
|
|
92
|
+
}
|
|
93
|
+
revokeAccessToken() {
|
|
94
|
+
this.manager.revokeAccessToken();
|
|
95
|
+
}
|
|
96
|
+
signinSilent() {
|
|
97
|
+
let x = this.manager.signinSilentCallback();
|
|
98
|
+
x.then((s) => {
|
|
99
|
+
//console.log(s)
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
completeAuthentication() {
|
|
103
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
104
|
+
this.user = yield this.manager.signinRedirectCallback();
|
|
105
|
+
AuthService.user = this.user;
|
|
106
|
+
this._userSource.next(AuthService.user);
|
|
107
|
+
this._authNavStatusSource.next(yield this.isAuthenticated());
|
|
108
|
+
let isExternal = this.environmentService.getIsIdentityServerExternal().toLowerCase() ==
|
|
109
|
+
'true';
|
|
110
|
+
if (isExternal) {
|
|
111
|
+
const masterLayoutService = this.injector.get(MasterLayoutService);
|
|
112
|
+
let userClaims = yield masterLayoutService
|
|
113
|
+
.getUserClaims()
|
|
114
|
+
.toPromise()
|
|
115
|
+
.then((e) => {
|
|
116
|
+
AuthService.UserClaims = e;
|
|
117
|
+
}, (error) => {
|
|
118
|
+
console.log(error);
|
|
119
|
+
});
|
|
120
|
+
AuthService.user.profile = Object.assign(AuthService.user.profile, AuthService.UserClaims);
|
|
121
|
+
}
|
|
122
|
+
this.storUser(AuthService.user);
|
|
123
|
+
if (!localStorage.getItem('language') ||
|
|
124
|
+
localStorage.getItem('language') == this.user.profile.locale)
|
|
125
|
+
localStorage.setItem('language', this.user.profile.locale);
|
|
126
|
+
if (this.translateService.currentLang != localStorage.getItem('language')) {
|
|
127
|
+
this.translateService.resetLang(this.translateService.currentLang);
|
|
128
|
+
yield this.translateService
|
|
129
|
+
.reloadLang(localStorage.getItem('language'))
|
|
130
|
+
.subscribe((res) => {
|
|
131
|
+
console.log(res);
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
this._userSource.next(AuthService.user);
|
|
135
|
+
this._authNavStatusSource.next(yield this.isAuthenticated());
|
|
136
|
+
this.user = AuthService.user;
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
refreshToken(token) {
|
|
140
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
141
|
+
const httpOptions = {
|
|
142
|
+
headers: new HttpHeaders({
|
|
143
|
+
'Content-Type': 'application/json',
|
|
144
|
+
Authorization: token,
|
|
145
|
+
}),
|
|
146
|
+
};
|
|
147
|
+
this.manager.revokeAccessToken();
|
|
148
|
+
return yield this.http
|
|
149
|
+
.post(`${this.environmentService.getIdentityServerUrl()}/users/refresh-token`, httpOptions, { withCredentials: true })
|
|
150
|
+
.subscribe((user) => {
|
|
151
|
+
this._userSource.next(user);
|
|
152
|
+
AuthService.user = user;
|
|
153
|
+
this.user = user;
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
getCurrentUser() {
|
|
158
|
+
return this.manager.getUser();
|
|
159
|
+
}
|
|
160
|
+
isAuthenticated() {
|
|
161
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
162
|
+
let user = yield this.manager.getUser().then((user) => {
|
|
163
|
+
return user;
|
|
164
|
+
});
|
|
165
|
+
return this.user != null && !this.user.expired;
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
isUserInRole(allowedPermission) {
|
|
169
|
+
let selectedPermissionSetID = Number.parseInt(this.user.profile['selectedpermissionsetid']);
|
|
170
|
+
return allowedPermission.includes(selectedPermissionSetID);
|
|
171
|
+
}
|
|
172
|
+
authorizationHeaderValue() {
|
|
173
|
+
return AuthService.user
|
|
174
|
+
? `${AuthService.user.token_type} ${AuthService.user.access_token}`
|
|
175
|
+
: '';
|
|
176
|
+
}
|
|
177
|
+
name() {
|
|
178
|
+
return AuthService.user != null ? AuthService.user.profile.given_name : '';
|
|
179
|
+
}
|
|
180
|
+
setUrl(url) {
|
|
181
|
+
localStorage.setItem('redirectUrl', url);
|
|
182
|
+
}
|
|
183
|
+
getUrl() {
|
|
184
|
+
return localStorage.getItem('redirectUrl');
|
|
185
|
+
}
|
|
186
|
+
signinSilentCallback() {
|
|
187
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
188
|
+
let user = yield this.manager.signinSilentCallback();
|
|
189
|
+
//await this.manager.storeUser(user);
|
|
190
|
+
AuthService.user = user;
|
|
191
|
+
console.log('Token from signinSilentCallback :' + AuthService.user);
|
|
192
|
+
this.user = user;
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
signout() {
|
|
196
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
197
|
+
if (yield !this.isAuthenticated())
|
|
198
|
+
this.router.navigate(['/Admin/account/login']), localStorage.clear();
|
|
199
|
+
let isExternal = this.environmentService.getIsIdentityServerExternal().toLowerCase() ==
|
|
200
|
+
'true';
|
|
201
|
+
if (isExternal) {
|
|
202
|
+
yield this.clearUserSessionClaims()
|
|
203
|
+
.toPromise()
|
|
204
|
+
.then((res) => {
|
|
205
|
+
let result = res;
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
yield this.manager.signoutRedirect();
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
clearUserSessionClaims() {
|
|
212
|
+
const httpOptions = {
|
|
213
|
+
headers: new HttpHeaders({
|
|
214
|
+
'Content-Type': 'application/json',
|
|
215
|
+
}),
|
|
216
|
+
};
|
|
217
|
+
let ApiUrl = '/api/Home/';
|
|
218
|
+
return this.http.get(this.environmentService.getBaseUrl() + ApiUrl + 'ClearCurrentUserSession', httpOptions);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
AuthService.user = null;
|
|
222
|
+
AuthService.UserClaims = null;
|
|
223
|
+
AuthService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthService_Factory() { return new AuthService(i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.EnvironmentService), i0.ɵɵinject(i3.BBSFTranslateService), i0.ɵɵinject(i4.Router)); }, token: AuthService, providedIn: "root" });
|
|
224
|
+
AuthService.decorators = [
|
|
225
|
+
{ type: Injectable, args: [{
|
|
226
|
+
providedIn: 'root',
|
|
227
|
+
},] }
|
|
228
|
+
];
|
|
229
|
+
AuthService.ctorParameters = () => [
|
|
230
|
+
{ type: Injector },
|
|
231
|
+
{ type: HttpClient },
|
|
232
|
+
{ type: EnvironmentService },
|
|
233
|
+
{ type: BBSFTranslateService },
|
|
234
|
+
{ type: Router }
|
|
235
|
+
];
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvYXV0aGVudGljYXRpb24vYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9ELE9BQU8sRUFDTCxXQUFXLEVBR1gsb0JBQW9CLEdBQ3JCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7O0FBTXZFLE1BQU0sT0FBTyxXQUFXO0lBY3RCLFlBQ1UsUUFBa0IsRUFDbEIsSUFBZ0IsRUFDaEIsa0JBQXNDLEVBQ3RDLGdCQUFzQyxFQUN0QyxNQUFjO1FBSmQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFzQjtRQUN0QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBbEJ4Qiw0QkFBNEI7UUFDcEIseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbkUsNEJBQTRCO1FBQzVCLG1CQUFjLEdBQUcsSUFBSSxDQUFD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QkFDdkIsY0FBYyxFQUFFLGtCQUFrQjthQUNuQyxDQUFDO1NBQ0gsQ0FBQztRQUNGLElBQUksTUFBTSxHQUFHLFlBQVksQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsR0FBRyxNQUFNLEdBQUcseUJBQXlCLEVBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUcsQ0FBQzs7QUE5Tk0sZ0JBQUksR0FBZ0IsSUFBSSxDQUFDO0FBRXpCLHNCQUFVLEdBQVEsSUFBSSxDQUFDOzs7WUFmL0IsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFsQm9CLFFBQVE7WUFDcEIsVUFBVTtZQVNWLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1xyXG4gIFVzZXJNYW5hZ2VyLFxyXG4gIFVzZXJNYW5hZ2VyU2V0dGluZ3MsXHJcbiAgVXNlcixcclxuICBXZWJTdG9yYWdlU3RhdGVTdG9yZSxcclxufSBmcm9tICdvaWRjLWNsaWVudCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQkJTRlRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE1hc3RlckxheW91dFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9tYXN0ZXJsYXlvdXQuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlcXVlc3RIYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3JlcXVlc3RoYW5kbGVyLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcclxuICAvLyBPYnNlcnZhYmxlIG5hdkl0ZW0gc291cmNlXHJcbiAgcHJpdmF0ZSBfYXV0aE5hdlN0YXR1c1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIC8vIE9ic2VydmFibGUgbmF2SXRlbSBzdHJlYW1cclxuICBhdXRoTmF2U3RhdHVzJCA9IHRoaXMuX2F1dGhOYXZTdGF0dXNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgLy8gT2JzZXJ2YWJsZSBuYXZJdGVtIHNvdXJjZVxyXG4gIHByaXZhdGUgX3VzZXJTb3VyY2U6IFN1YmplY3Q8VXNlcj4gPSBuZXcgU3ViamVjdDxVc2VyPigpO1xyXG4gIFVzZXJTdGF0dXMkID0gdGhpcy5fdXNlclNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuICBwcml2YXRlIG1hbmFnZXIgPSB0aGlzLmdldFVzZXJNYW5hZ2VyKCk7XHJcbiAgcHVibGljIHJlZGlyZWN0VXJsOiBzdHJpbmcgPSAnJztcclxuICBzdGF0aWMgdXNlcjogVXNlciB8IG51bGwgPSBudWxsO1xyXG4gIHVzZXI6IFVzZXIgfCBudWxsO1xyXG4gIHN0YXRpYyBVc2VyQ2xhaW1zOiBhbnkgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogQkJTRlRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXHJcbiAgKSB7XHJcbiAgICB0aGlzLm1hbmFnZXIuZ2V0VXNlcigpLnRoZW4oYXN5bmMgKHVzZXIpID0+IHtcclxuICAgICAgdGhpcy5tYW5hZ2VyLnN0b3JlVXNlcih1c2VyKTtcclxuICAgICAgQXV0aFNlcnZpY2UudXNlciA9IHVzZXI7XHJcbiAgICAgIHRoaXMudXNlciA9IHVzZXI7XHJcbiAgICAgIHRoaXMuX2F1dGhOYXZTdGF0dXNTb3VyY2UubmV4dChhd2FpdCB0aGlzLmlzQXV0aGVudGljYXRlZCgpKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5tYW5hZ2VyLmV2ZW50cy5hZGRBY2Nlc3NUb2tlbkV4cGlyZWQoKF8pID0+IHtcclxuICAgICAgdGhpcy5fYXV0aE5hdlN0YXR1c1NvdXJjZS5uZXh0KGZhbHNlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlck1hbmFnZXIoKSB7XHJcbiAgICBsZXQgdXNlciA9IG51bGw7XHJcbiAgICBsZXQgaXNFeHRlcm5hbCA9XHJcbiAgICAgIHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldElzSWRlbnRpdHlTZXJ2ZXJFeHRlcm5hbCgpLnRvTG93ZXJDYXNlKCkgPT1cclxuICAgICAgJ3RydWUnO1xyXG4gICAgaWYgKGlzRXh0ZXJuYWwpIHtcclxuICAgICAgdXNlciA9IG5ldyBVc2VyTWFuYWdlcih7XHJcbiAgICAgICAgYXV0aG9yaXR5OiB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRJZGVudGl0eVNlcnZlclVybCgpLFxyXG4gICAgICAgIGNsaWVudF9pZDogdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0SXNJZGVudGl0eVNlcnZlckNsaWVudElkKCksXHJcbiAgICAgICAgY2xpZW50X3NlY3JldDpcclxuICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldElzSWRlbnRpdHlTZXJ2ZXJDbGllbnRTZWNyZXQoKSxcclxuICAgICAgICByZWRpcmVjdF91cmk6XHJcbiAgICAgICAgICB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCkgK1xyXG4gICAgICAgICAgJy9BZG1pbi9hdXRoZW50aWNhdGlvbi9hdXRoLWNhbGxiYWNrJyxcclxuICAgICAgICBwb3N0X2xvZ291dF9yZWRpcmVjdF91cmk6IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEJhc2VVcmwoKSxcclxuICAgICAgICByZXNwb25zZV90eXBlOiAnY29kZScsXHJcbiAgICAgICAgc2NvcGU6ICdvcGVuaWQgcHJvZmlsZSBlbWFpbCcsXHJcbiAgICAgICAgZmlsdGVyUHJvdG9jb2xDbGFpbXM6IHRydWUsXHJcbiAgICAgICAgbG9hZFVzZXJJbmZvOiB0cnVlLFxyXG4gICAgICAgIGF1dG9tYXRpY1NpbGVudFJlbmV3OiB0cnVlLFxyXG4gICAgICAgIHNpbGVudF9yZWRpcmVjdF91cmk6XHJcbiAgICAgICAgICB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCkgKyAnL2Fzc2V0cy9zaWxlbnQtY2FsbGJhY2suaHRtbCcsXHJcbiAgICAgICAgdXNlclN0b3JlOiBuZXcgV2ViU3RvcmFnZVN0YXRlU3RvcmUoeyBzdG9yZTogd2luZG93LmxvY2FsU3RvcmFnZSB9KSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1c2VyID0gbmV3IFVzZXJNYW5hZ2VyKHtcclxuICAgICAgICBhdXRob3JpdHk6IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldElkZW50aXR5U2VydmVyVXJsKCksXHJcbiAgICAgICAgY2xpZW50X2lkOiAnYW5ndWxhcl9zcGEnLFxyXG4gICAgICAgIHJlZGlyZWN0X3VyaTpcclxuICAgICAgICAgIHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEJhc2VVcmwoKSArXHJcbiAgICAgICAgICAnL0FkbWluL2F1dGhlbnRpY2F0aW9uL2F1dGgtY2FsbGJhY2snLFxyXG4gICAgICAgIHBvc3RfbG9nb3V0X3JlZGlyZWN0X3VyaTogdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0QmFzZVVybCgpLFxyXG4gICAgICAgIHJlc3BvbnNlX3R5cGU6ICdpZF90b2tlbiB0b2tlbicsXHJcbiAgICAgICAgc2NvcGU6ICdvcGVuaWQgcHJvZmlsZSBlbWFpbCBJZGVudGl0eVNlcnZlckFwaScsXHJcbiAgICAgICAgZmlsdGVyUHJvdG9jb2xDbGFpbXM6IHRydWUsXHJcbiAgICAgICAgbG9hZFVzZXJJbmZvOiB0cnVlLFxyXG4gICAgICAgIGF1dG9tYXRpY1NpbGVudFJlbmV3OiB0cnVlLFxyXG4gICAgICAgIHNpbGVudF9yZWRpcmVjdF91cmk6XHJcbiAgICAgICAgICB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCkgKyAnL2Fzc2V0cy9zaWxlbnQtY2FsbGJhY2suaHRtbCcsXHJcbiAgICAgICAgdXNlclN0b3JlOiBuZXcgV2ViU3RvcmFnZVN0YXRlU3RvcmUoeyBzdG9yZTogd2luZG93LmxvY2FsU3RvcmFnZSB9KSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdXNlcjtcclxuICB9XHJcblxyXG4gIGxvZ2luKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubWFuYWdlci5zaWduaW5SZWRpcmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlcigpIHtcclxuICAgIHRoaXMubWFuYWdlci5nZXRVc2VyKCkudGhlbihhc3luYyAodXNlcikgPT4ge1xyXG4gICAgICBBdXRoU2VydmljZS51c2VyID0gdXNlcjtcclxuICAgICAgdGhpcy51c2VyID0gdXNlcjtcclxuICAgICAgdGhpcy5fYXV0aE5hdlN0YXR1c1NvdXJjZS5uZXh0KGF3YWl0IHRoaXMuaXNBdXRoZW50aWNhdGVkKCkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHN0b3JVc2VyKFVzZXI6IGFueSkge1xyXG4gICAgdGhpcy5tYW5hZ2VyLnN0b3JlVXNlcihVc2VyKTtcclxuICB9XHJcblxyXG4gIHJldm9rZUFjY2Vzc1Rva2VuKCkge1xyXG4gICAgdGhpcy5tYW5hZ2VyLnJldm9rZUFjY2Vzc1Rva2VuKCk7XHJcbiAgfVxyXG5cclxuICBzaWduaW5TaWxlbnQoKSB7XHJcbiAgICBsZXQgeCA9IHRoaXMubWFuYWdlci5zaWduaW5TaWxlbnRDYWxsYmFjaygpO1xyXG4gICAgeC50aGVuKChzKSA9PiB7XHJcbiAgICAgIC8vY29uc29sZS5sb2cocylcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgY29tcGxldGVBdXRoZW50aWNhdGlvbigpIHtcclxuICAgIHRoaXMudXNlciA9IGF3YWl0IHRoaXMubWFuYWdlci5zaWduaW5SZWRpcmVjdENhbGxiYWNrKCk7XHJcbiAgICBBdXRoU2VydmljZS51c2VyID0gdGhpcy51c2VyO1xyXG4gICAgdGhpcy5fdXNlclNvdXJjZS5uZXh0KEF1dGhTZXJ2aWNlLnVzZXIpO1xyXG4gICAgdGhpcy5fYXV0aE5hdlN0YXR1c1NvdXJjZS5uZXh0KGF3YWl0IHRoaXMuaXNBdXRoZW50aWNhdGVkKCkpO1xyXG4gICAgbGV0IGlzRXh0ZXJuYWwgPVxyXG4gICAgICB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRJc0lkZW50aXR5U2VydmVyRXh0ZXJuYWwoKS50b0xvd2VyQ2FzZSgpID09XHJcbiAgICAgICd0cnVlJztcclxuICAgIGlmIChpc0V4dGVybmFsKSB7XHJcbiAgICAgIGNvbnN0IG1hc3RlckxheW91dFNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChNYXN0ZXJMYXlvdXRTZXJ2aWNlKTtcclxuICAgICAgbGV0IHVzZXJDbGFpbXMgPSBhd2FpdCBtYXN0ZXJMYXlvdXRTZXJ2aWNlXHJcbiAgICAgICAgLmdldFVzZXJDbGFpbXMoKVxyXG4gICAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAgIC50aGVuKChlKSA9PiB7XHJcbiAgICAgICAgICBBdXRoU2VydmljZS5Vc2VyQ2xhaW1zID0gZTtcclxuICAgICAgICB9LChlcnJvcik9PntcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICBBdXRoU2VydmljZS51c2VyLnByb2ZpbGUgPSBPYmplY3QuYXNzaWduKFxyXG4gICAgICAgIEF1dGhTZXJ2aWNlLnVzZXIucHJvZmlsZSxcclxuICAgICAgICBBdXRoU2VydmljZS5Vc2VyQ2xhaW1zXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdG9yVXNlcihBdXRoU2VydmljZS51c2VyKTtcclxuICAgIGlmIChcclxuICAgICAgIWxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpIHx8XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpID09IHRoaXMudXNlci5wcm9maWxlLmxvY2FsZVxyXG4gICAgKVxyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnbGFuZ3VhZ2UnLCB0aGlzLnVzZXIucHJvZmlsZS5sb2NhbGUpO1xyXG5cclxuICAgIGlmICh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcgIT0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJykpIHtcclxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnJlc2V0TGFuZyh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcpO1xyXG4gICAgICBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2VcclxuICAgICAgICAucmVsb2FkTGFuZyhsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKHJlcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl91c2VyU291cmNlLm5leHQoQXV0aFNlcnZpY2UudXNlcik7XHJcbiAgICB0aGlzLl9hdXRoTmF2U3RhdHVzU291cmNlLm5leHQoYXdhaXQgdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSk7XHJcbiAgICB0aGlzLnVzZXIgPSBBdXRoU2VydmljZS51c2VyO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgcmVmcmVzaFRva2VuKHRva2VuKSB7XHJcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAgIEF1dGhvcml6YXRpb246IHRva2VuLFxyXG4gICAgICB9KSxcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5tYW5hZ2VyLnJldm9rZUFjY2Vzc1Rva2VuKCk7XHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0PGFueT4oXHJcbiAgICAgICAgYCR7dGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0SWRlbnRpdHlTZXJ2ZXJVcmwoKX0vdXNlcnMvcmVmcmVzaC10b2tlbmAsXHJcbiAgICAgICAgaHR0cE9wdGlvbnMsXHJcbiAgICAgICAgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHVzZXIpID0+IHtcclxuICAgICAgICB0aGlzLl91c2VyU291cmNlLm5leHQodXNlcik7XHJcbiAgICAgICAgQXV0aFNlcnZpY2UudXNlciA9IHVzZXI7XHJcbiAgICAgICAgdGhpcy51c2VyID0gdXNlcjtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRDdXJyZW50VXNlcigpIHtcclxuICAgIHJldHVybiB0aGlzLm1hbmFnZXIuZ2V0VXNlcigpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgaXNBdXRoZW50aWNhdGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgbGV0IHVzZXIgPSBhd2FpdCB0aGlzLm1hbmFnZXIuZ2V0VXNlcigpLnRoZW4oKHVzZXIpID0+IHtcclxuICAgICAgcmV0dXJuIHVzZXI7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLnVzZXIgIT0gbnVsbCAmJiAhdGhpcy51c2VyLmV4cGlyZWQ7XHJcbiAgfVxyXG4gIGlzVXNlckluUm9sZShhbGxvd2VkUGVybWlzc2lvbjogbnVtYmVyW10pIHtcclxuICAgIGxldCBzZWxlY3RlZFBlcm1pc3Npb25TZXRJRDogbnVtYmVyID0gTnVtYmVyLnBhcnNlSW50KFxyXG4gICAgICB0aGlzLnVzZXIucHJvZmlsZVsnc2VsZWN0ZWRwZXJtaXNzaW9uc2V0aWQnXVxyXG4gICAgKTtcclxuICAgIHJldHVybiBhbGxvd2VkUGVybWlzc2lvbi5pbmNsdWRlcyhzZWxlY3RlZFBlcm1pc3Npb25TZXRJRCk7XHJcbiAgfVxyXG5cclxuICBhdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBBdXRoU2VydmljZS51c2VyXHJcbiAgICAgID8gYCR7QXV0aFNlcnZpY2UudXNlci50b2tlbl90eXBlfSAke0F1dGhTZXJ2aWNlLnVzZXIuYWNjZXNzX3Rva2VufWBcclxuICAgICAgOiAnJztcclxuICB9XHJcblxyXG4gIG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBBdXRoU2VydmljZS51c2VyICE9IG51bGwgPyBBdXRoU2VydmljZS51c2VyLnByb2ZpbGUuZ2l2ZW5fbmFtZSA6ICcnO1xyXG4gIH1cclxuICBzZXRVcmwodXJsKSB7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncmVkaXJlY3RVcmwnLCB1cmwpO1xyXG4gIH1cclxuICBnZXRVcmwoKSB7XHJcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JlZGlyZWN0VXJsJyk7XHJcbiAgfVxyXG4gIGFzeW5jIHNpZ25pblNpbGVudENhbGxiYWNrKCkge1xyXG4gICAgbGV0IHVzZXIgPSBhd2FpdCB0aGlzLm1hbmFnZXIuc2lnbmluU2lsZW50Q2FsbGJhY2soKTtcclxuICAgIC8vYXdhaXQgdGhpcy5tYW5hZ2VyLnN0b3JlVXNlcih1c2VyKTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIgPSB1c2VyO1xyXG4gICAgY29uc29sZS5sb2coJ1Rva2VuIGZyb20gIHNpZ25pblNpbGVudENhbGxiYWNrIDonICsgQXV0aFNlcnZpY2UudXNlcik7XHJcbiAgICB0aGlzLnVzZXIgPSB1c2VyO1xyXG4gIH1cclxuICBhc3luYyBzaWdub3V0KCkge1xyXG4gICAgaWYgKGF3YWl0ICF0aGlzLmlzQXV0aGVudGljYXRlZCgpKVxyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9BZG1pbi9hY2NvdW50L2xvZ2luJ10pLCBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICAgIGxldCBpc0V4dGVybmFsID1cclxuICAgICAgdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0SXNJZGVudGl0eVNlcnZlckV4dGVybmFsKCkudG9Mb3dlckNhc2UoKSA9PVxyXG4gICAgICAndHJ1ZSc7XHJcbiAgICBpZiAoaXNFeHRlcm5hbCkge1xyXG4gICAgICBhd2FpdCB0aGlzLmNsZWFyVXNlclNlc3Npb25DbGFpbXMoKVxyXG4gICAgICAgIC50b1Byb21pc2UoKVxyXG4gICAgICAgIC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICAgIGxldCByZXN1bHQgPSByZXM7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLm1hbmFnZXIuc2lnbm91dFJlZGlyZWN0KCk7XHJcbiAgfVxyXG5cclxuICBjbGVhclVzZXJTZXNzaW9uQ2xhaW1zKCkge1xyXG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgfSksXHJcbiAgICB9O1xyXG4gICAgbGV0IEFwaVVybCA9ICcvYXBpL0hvbWUvJztcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEJhc2VVcmwoKSArIEFwaVVybCArICdDbGVhckN1cnJlbnRVc2VyU2Vzc2lvbicsaHR0cE9wdGlvbnMpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { cloneDeep } from 'lodash';
|
|
2
|
+
const applicationName = 'html-to-docx';
|
|
3
|
+
const defaultOrientation = 'portrait';
|
|
4
|
+
const landscapeWidth = 15840;
|
|
5
|
+
const landscapeHeight = 12240;
|
|
6
|
+
const landscapeMargins = {
|
|
7
|
+
top: 1800,
|
|
8
|
+
right: 1440,
|
|
9
|
+
bottom: 1800,
|
|
10
|
+
left: 1440,
|
|
11
|
+
header: 720,
|
|
12
|
+
footer: 720,
|
|
13
|
+
gutter: 0,
|
|
14
|
+
};
|
|
15
|
+
const portraitMargins = {
|
|
16
|
+
top: 1440,
|
|
17
|
+
right: 1800,
|
|
18
|
+
bottom: 1440,
|
|
19
|
+
left: 1800,
|
|
20
|
+
header: 720,
|
|
21
|
+
footer: 720,
|
|
22
|
+
gutter: 0,
|
|
23
|
+
};
|
|
24
|
+
const defaultFont = 'Times New Roman';
|
|
25
|
+
const defaultFontSize = 22;
|
|
26
|
+
const defaultDocumentOptions = {
|
|
27
|
+
orientation: defaultOrientation,
|
|
28
|
+
margins: cloneDeep(portraitMargins),
|
|
29
|
+
title: '',
|
|
30
|
+
subject: '',
|
|
31
|
+
creator: applicationName,
|
|
32
|
+
keywords: [applicationName],
|
|
33
|
+
description: '',
|
|
34
|
+
lastModifiedBy: applicationName,
|
|
35
|
+
revision: 1,
|
|
36
|
+
createdAt: new Date(),
|
|
37
|
+
modifiedAt: new Date(),
|
|
38
|
+
headerType: 'default',
|
|
39
|
+
header: false,
|
|
40
|
+
footerType: 'default',
|
|
41
|
+
footer: false,
|
|
42
|
+
font: defaultFont,
|
|
43
|
+
fontSize: defaultFontSize,
|
|
44
|
+
complexScriptFontSize: defaultFontSize,
|
|
45
|
+
table: {
|
|
46
|
+
row: {
|
|
47
|
+
cantSplit: false,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
pageSize: {
|
|
51
|
+
width: landscapeHeight,
|
|
52
|
+
height: landscapeWidth,
|
|
53
|
+
},
|
|
54
|
+
pageNumber: false,
|
|
55
|
+
skipFirstHeaderFooter: false,
|
|
56
|
+
lineNumber: false,
|
|
57
|
+
lineNumberOptions: {
|
|
58
|
+
countBy: 1,
|
|
59
|
+
start: 0,
|
|
60
|
+
restart: 'continuous',
|
|
61
|
+
},
|
|
62
|
+
numbering: {
|
|
63
|
+
defaultOrderedListStyleType: 'decimal',
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
const defaultHTMLString = '<p></p>';
|
|
67
|
+
const relsFolderName = '_rels';
|
|
68
|
+
const headerFileName = 'header1';
|
|
69
|
+
const footerFileName = 'footer1';
|
|
70
|
+
const themeFileName = 'theme1';
|
|
71
|
+
const documentFileName = 'document';
|
|
72
|
+
const headerType = 'header';
|
|
73
|
+
const footerType = 'footer';
|
|
74
|
+
const themeType = 'theme';
|
|
75
|
+
const hyperlinkType = 'hyperlink';
|
|
76
|
+
const imageType = 'image';
|
|
77
|
+
const internalRelationship = 'Internal';
|
|
78
|
+
const wordFolder = 'word';
|
|
79
|
+
const themeFolder = 'theme';
|
|
80
|
+
const paragraphBordersObject = {
|
|
81
|
+
top: {
|
|
82
|
+
size: 0,
|
|
83
|
+
spacing: 3,
|
|
84
|
+
color: 'FFFFFF',
|
|
85
|
+
},
|
|
86
|
+
left: {
|
|
87
|
+
size: 0,
|
|
88
|
+
spacing: 3,
|
|
89
|
+
color: 'FFFFFF',
|
|
90
|
+
},
|
|
91
|
+
bottom: {
|
|
92
|
+
size: 0,
|
|
93
|
+
spacing: 3,
|
|
94
|
+
color: 'FFFFFF',
|
|
95
|
+
},
|
|
96
|
+
right: {
|
|
97
|
+
size: 0,
|
|
98
|
+
spacing: 3,
|
|
99
|
+
color: 'FFFFFF',
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
const colorlessColors = ['transparent', 'auto'];
|
|
103
|
+
const verticalAlignValues = ['top', 'middle', 'bottom'];
|
|
104
|
+
export { defaultDocumentOptions, defaultHTMLString, relsFolderName, headerFileName, footerFileName, themeFileName, documentFileName, headerType, footerType, themeType, internalRelationship, wordFolder, themeFolder, landscapeMargins, portraitMargins, defaultOrientation, landscapeWidth, landscapeHeight, applicationName, defaultFont, defaultFontSize, hyperlinkType, imageType, paragraphBordersObject, colorlessColors, verticalAlignValues, };
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvY29uZmlnL3dvcmQvY29uc3RhbnRzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFbkMsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDO0FBQ3ZDLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBQ3RDLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQztBQUM3QixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUM7QUFDOUIsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixHQUFHLEVBQUUsSUFBSTtJQUNULEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixJQUFJLEVBQUUsSUFBSTtJQUNWLE1BQU0sRUFBRSxHQUFHO0lBQ1gsTUFBTSxFQUFFLEdBQUc7SUFDWCxNQUFNLEVBQUUsQ0FBQztDQUNWLENBQUM7QUFDRixNQUFNLGVBQWUsR0FBRztJQUN0QixHQUFHLEVBQUUsSUFBSTtJQUNULEtBQUssRUFBRSxJQUFJO0lBQ1gsTUFBTSxFQUFFLElBQUk7SUFDWixJQUFJLEVBQUUsSUFBSTtJQUNWLE1BQU0sRUFBRSxHQUFHO0lBQ1gsTUFBTSxFQUFFLEdBQUc7SUFDWCxNQUFNLEVBQUUsQ0FBQztDQUNWLENBQUM7QUFDRixNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQztBQUN0QyxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUM7QUFDM0IsTUFBTSxzQkFBc0IsR0FBRztJQUM3QixXQUFXLEVBQUUsa0JBQWtCO0lBQy9CLE9BQU8sRUFBRSxTQUFTLENBQUMsZUFBZSxDQUFDO0lBQ25DLEtBQUssRUFBRSxFQUFFO0lBQ1QsT0FBTyxFQUFFLEVBQUU7SUFDWCxPQUFPLEVBQUUsZUFBZTtJQUN4QixRQUFR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Q3RCLGVBQWUsRUFDZixtQkFBbUIsR0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcblxyXG5jb25zdCBhcHBsaWNhdGlvbk5hbWUgPSAnaHRtbC10by1kb2N4JztcclxuY29uc3QgZGVmYXVsdE9yaWVudGF0aW9uID0gJ3BvcnRyYWl0JztcclxuY29uc3QgbGFuZHNjYXBlV2lkdGggPSAxNTg0MDtcclxuY29uc3QgbGFuZHNjYXBlSGVpZ2h0ID0gMTIyNDA7XHJcbmNvbnN0IGxhbmRzY2FwZU1hcmdpbnMgPSB7XHJcbiAgdG9wOiAxODAwLFxyXG4gIHJpZ2h0OiAxNDQwLFxyXG4gIGJvdHRvbTogMTgwMCxcclxuICBsZWZ0OiAxNDQwLFxyXG4gIGhlYWRlcjogNzIwLFxyXG4gIGZvb3RlcjogNzIwLFxyXG4gIGd1dHRlcjogMCxcclxufTtcclxuY29uc3QgcG9ydHJhaXRNYXJnaW5zID0ge1xyXG4gIHRvcDogMTQ0MCxcclxuICByaWdodDogMTgwMCxcclxuICBib3R0b206IDE0NDAsXHJcbiAgbGVmdDogMTgwMCxcclxuICBoZWFkZXI6IDcyMCxcclxuICBmb290ZXI6IDcyMCxcclxuICBndXR0ZXI6IDAsXHJcbn07XHJcbmNvbnN0IGRlZmF1bHRGb250ID0gJ1RpbWVzIE5ldyBSb21hbic7XHJcbmNvbnN0IGRlZmF1bHRGb250U2l6ZSA9IDIyO1xyXG5jb25zdCBkZWZhdWx0RG9jdW1lbnRPcHRpb25zID0ge1xyXG4gIG9yaWVudGF0aW9uOiBkZWZhdWx0T3JpZW50YXRpb24sXHJcbiAgbWFyZ2luczogY2xvbmVEZWVwKHBvcnRyYWl0TWFyZ2lucyksXHJcbiAgdGl0bGU6ICcnLFxyXG4gIHN1YmplY3Q6ICcnLFxyXG4gIGNyZWF0b3I6IGFwcGxpY2F0aW9uTmFtZSxcclxuICBrZXl3b3JkczogW2FwcGxpY2F0aW9uTmFtZV0sXHJcbiAgZGVzY3JpcHRpb246ICcnLFxyXG4gIGxhc3RNb2RpZmllZEJ5OiBhcHBsaWNhdGlvbk5hbWUsXHJcbiAgcmV2aXNpb246IDEsXHJcbiAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxyXG4gIG1vZGlmaWVkQXQ6IG5ldyBEYXRlKCksXHJcbiAgaGVhZGVyVHlwZTogJ2RlZmF1bHQnLFxyXG4gIGhlYWRlcjogZmFsc2UsXHJcbiAgZm9vdGVyVHlwZTogJ2RlZmF1bHQnLFxyXG4gIGZvb3RlcjogZmFsc2UsXHJcbiAgZm9udDogZGVmYXVsdEZvbnQsXHJcbiAgZm9udFNpemU6IGRlZmF1bHRGb250U2l6ZSxcclxuICBjb21wbGV4U2NyaXB0Rm9udFNpemU6IGRlZmF1bHRGb250U2l6ZSxcclxuICB0YWJsZToge1xyXG4gICAgcm93OiB7XHJcbiAgICAgIGNhbnRTcGxpdDogZmFsc2UsXHJcbiAgICB9LFxyXG4gIH0sXHJcbiAgcGFnZVNpemU6IHtcclxuICAgIHdpZHRoOiBsYW5kc2NhcGVIZWlnaHQsXHJcbiAgICBoZWlnaHQ6IGxhbmRzY2FwZVdpZHRoLFxyXG4gIH0sXHJcbiAgcGFnZU51bWJlcjogZmFsc2UsXHJcbiAgc2tpcEZpcnN0SGVhZGVyRm9vdGVyOiBmYWxzZSxcclxuICBsaW5lTnVtYmVyOiBmYWxzZSxcclxuICBsaW5lTnVtYmVyT3B0aW9uczoge1xyXG4gICAgY291bnRCeTogMSxcclxuICAgIHN0YXJ0OiAwLFxyXG4gICAgcmVzdGFydDogJ2NvbnRpbnVvdXMnLFxyXG4gIH0sXHJcbiAgbnVtYmVyaW5nOiB7XHJcbiAgICBkZWZhdWx0T3JkZXJlZExpc3RTdHlsZVR5cGU6ICdkZWNpbWFsJyxcclxuICB9LFxyXG59O1xyXG5jb25zdCBkZWZhdWx0SFRNTFN0cmluZyA9ICc8cD48L3A+JztcclxuY29uc3QgcmVsc0ZvbGRlck5hbWUgPSAnX3JlbHMnO1xyXG5jb25zdCBoZWFkZXJGaWxlTmFtZSA9ICdoZWFkZXIxJztcclxuY29uc3QgZm9vdGVyRmlsZU5hbWUgPSAnZm9vdGVyMSc7XHJcbmNvbnN0IHRoZW1lRmlsZU5hbWUgPSAndGhlbWUxJztcclxuY29uc3QgZG9jdW1lbnRGaWxlTmFtZSA9ICdkb2N1bWVudCc7XHJcbmNvbnN0IGhlYWRlclR5cGUgPSAnaGVhZGVyJztcclxuY29uc3QgZm9vdGVyVHlwZSA9ICdmb290ZXInO1xyXG5jb25zdCB0aGVtZVR5cGUgPSAndGhlbWUnO1xyXG5jb25zdCBoeXBlcmxpbmtUeXBlID0gJ2h5cGVybGluayc7XHJcbmNvbnN0IGltYWdlVHlwZSA9ICdpbWFnZSc7XHJcbmNvbnN0IGludGVybmFsUmVsYXRpb25zaGlwID0gJ0ludGVybmFsJztcclxuY29uc3Qgd29yZEZvbGRlciA9ICd3b3JkJztcclxuY29uc3QgdGhlbWVGb2xkZXIgPSAndGhlbWUnO1xyXG5jb25zdCBwYXJhZ3JhcGhCb3JkZXJzT2JqZWN0ID0ge1xyXG4gIHRvcDoge1xyXG4gICAgc2l6ZTogMCxcclxuICAgIHNwYWNpbmc6IDMsXHJcbiAgICBjb2xvcjogJ0ZGRkZGRicsXHJcbiAgfSxcclxuICBsZWZ0OiB7XHJcbiAgICBzaXplOiAwLFxyXG4gICAgc3BhY2luZzogMyxcclxuICAgIGNvbG9yOiAnRkZGRkZGJyxcclxuICB9LFxyXG4gIGJvdHRvbToge1xyXG4gICAgc2l6ZTogMCxcclxuICAgIHNwYWNpbmc6IDMsXHJcbiAgICBjb2xvcjogJ0ZGRkZGRicsXHJcbiAgfSxcclxuICByaWdodDoge1xyXG4gICAgc2l6ZTogMCxcclxuICAgIHNwYWNpbmc6IDMsXHJcbiAgICBjb2xvcjogJ0ZGRkZGRicsXHJcbiAgfSxcclxufTtcclxuY29uc3QgY29sb3JsZXNzQ29sb3JzID0gWyd0cmFuc3BhcmVudCcsICdhdXRvJ107XHJcbmNvbnN0IHZlcnRpY2FsQWxpZ25WYWx1ZXMgPSBbJ3RvcCcsICdtaWRkbGUnLCAnYm90dG9tJ107XHJcblxyXG5leHBvcnQge1xyXG4gIGRlZmF1bHREb2N1bWVudE9wdGlvbnMsXHJcbiAgZGVmYXVsdEhUTUxTdHJpbmcsXHJcbiAgcmVsc0ZvbGRlck5hbWUsXHJcbiAgaGVhZGVyRmlsZU5hbWUsXHJcbiAgZm9vdGVyRmlsZU5hbWUsXHJcbiAgdGhlbWVGaWxlTmFtZSxcclxuICBkb2N1bWVudEZpbGVOYW1lLFxyXG4gIGhlYWRlclR5cGUsXHJcbiAgZm9vdGVyVHlwZSxcclxuICB0aGVtZVR5cGUsXHJcbiAgaW50ZXJuYWxSZWxhdGlvbnNoaXAsXHJcbiAgd29yZEZvbGRlcixcclxuICB0aGVtZUZvbGRlcixcclxuICBsYW5kc2NhcGVNYXJnaW5zLFxyXG4gIHBvcnRyYWl0TWFyZ2lucyxcclxuICBkZWZhdWx0T3JpZW50YXRpb24sXHJcbiAgbGFuZHNjYXBlV2lkdGgsXHJcbiAgbGFuZHNjYXBlSGVpZ2h0LFxyXG4gIGFwcGxpY2F0aW9uTmFtZSxcclxuICBkZWZhdWx0Rm9udCxcclxuICBkZWZhdWx0Rm9udFNpemUsXHJcbiAgaHlwZXJsaW5rVHlwZSxcclxuICBpbWFnZVR5cGUsXHJcbiAgcGFyYWdyYXBoQm9yZGVyc09iamVjdCxcclxuICBjb2xvcmxlc3NDb2xvcnMsXHJcbiAgdmVydGljYWxBbGlnblZhbHVlcyxcclxufTtcclxuIl19
|