@bnsights/bbsf-utilities 1.0.36 → 1.0.38
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.38.tgz +0 -0
- package/bnsights-bbsf-utilities.d.ts +4 -0
- package/bnsights-bbsf-utilities.metadata.json +1 -0
- package/bundles/bnsights-bbsf-utilities.umd.js +4782 -0
- package/bundles/bnsights-bbsf-utilities.umd.js.map +1 -0
- package/esm2015/bnsights-bbsf-utilities.js +5 -0
- package/esm2015/lib/bbsf-utilities.module.js +54 -0
- package/esm2015/lib/shared/authentication/auth.service.js +204 -0
- package/esm2015/lib/shared/config/environment.js +12 -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/AreaModel.js +3 -0
- package/esm2015/lib/shared/models/ErrorModel.js +3 -0
- package/esm2015/lib/shared/models/RequestOptionsModel.js +11 -0
- package/esm2015/lib/shared/models/UserModel.js +3 -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 +175 -0
- package/esm2015/lib/shared/services/environment.service.js +48 -0
- package/esm2015/lib/shared/services/masterlayout.service.js +89 -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 +4606 -0
- package/fesm2015/bnsights-bbsf-utilities.js.map +1 -0
- package/lib/bbsf-utilities.module.d.ts +6 -0
- package/lib/shared/authentication/auth.service.d.ts +47 -0
- package/lib/shared/config/environment.d.ts +1 -0
- 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/AreaModel.d.ts +4 -0
- package/{src/lib/shared/models/ErrorModel.ts → lib/shared/models/ErrorModel.d.ts} +2 -5
- package/lib/shared/models/RequestOptionsModel.d.ts +11 -0
- package/lib/shared/models/UserModel.d.ts +6 -0
- package/lib/shared/models/WordDocumentModel.d.ts +16 -0
- package/lib/shared/services/AppearanceConfiguration.service.d.ts +11 -0
- package/lib/shared/services/configuration.service.d.ts +7 -0
- package/lib/shared/services/controlvalidation.service.d.ts +20 -0
- package/lib/shared/services/environment.service.d.ts +13 -0
- package/lib/shared/services/masterlayout.service.d.ts +24 -0
- package/lib/shared/services/requesthandler.service.d.ts +32 -0
- package/lib/shared/services/stylesbundle.service.d.ts +9 -0
- package/lib/shared/services/translate.service.d.ts +3 -0
- package/lib/shared/services/translationresolver.service.d.ts +8 -0
- package/lib/shared/services/utility.service.d.ts +21 -0
- package/lib/shared/services/word-document.service.d.ts +5 -0
- package/package.json +30 -20
- package/public-api.d.ts +16 -0
- package/karma.conf.js +0 -44
- package/ng-package.json +0 -10
- package/src/lib/bbsf-utilities.module.ts +0 -52
- package/src/lib/shared/authentication/auth.service.ts +0 -242
- package/src/lib/shared/config/environment.ts +0 -16
- package/src/lib/shared/config/word/constants.js +0 -133
- package/src/lib/shared/config/word/docx-document.js +0 -482
- package/src/lib/shared/config/word/helpers/index.js +0 -3
- package/src/lib/shared/config/word/helpers/render-document-file.js +0 -334
- package/src/lib/shared/config/word/helpers/xml-builder.js +0 -2165
- package/src/lib/shared/config/word/html-to-docx.js +0 -259
- package/src/lib/shared/config/word/index.js +0 -63
- package/src/lib/shared/config/word/namespaces.js +0 -40
- package/src/lib/shared/config/word/schemas/content-types.js +0 -26
- package/src/lib/shared/config/word/schemas/core.js +0 -44
- package/src/lib/shared/config/word/schemas/document-rels.js +0 -17
- package/src/lib/shared/config/word/schemas/document.template.js +0 -119
- package/src/lib/shared/config/word/schemas/font-table.js +0 -41
- package/src/lib/shared/config/word/schemas/generic-rels.js +0 -11
- package/src/lib/shared/config/word/schemas/index.js +0 -12
- package/src/lib/shared/config/word/schemas/numbering.js +0 -18
- package/src/lib/shared/config/word/schemas/rels.js +0 -12
- package/src/lib/shared/config/word/schemas/settings.js +0 -14
- package/src/lib/shared/config/word/schemas/styles.js +0 -152
- package/src/lib/shared/config/word/schemas/theme.js +0 -199
- package/src/lib/shared/config/word/schemas/web-settings.js +0 -10
- package/src/lib/shared/config/word/utils/color-conversion.js +0 -60
- package/src/lib/shared/config/word/utils/list.js +0 -55
- package/src/lib/shared/config/word/utils/unit-conversion.js +0 -53
- package/src/lib/shared/config/word/utils/url.js +0 -8
- package/src/lib/shared/config/word/utils/vnode.js +0 -3
- package/src/lib/shared/config/word/word-work/assets/contentTypesXml.ts +0 -1
- package/src/lib/shared/config/word/word-work/assets/documentXmlRels.ts +0 -1
- package/src/lib/shared/config/word/word-work/assets/index.ts +0 -3
- package/src/lib/shared/config/word/word-work/assets/relsXml.ts +0 -1
- package/src/lib/shared/config/word/word-work/index.ts +0 -8
- package/src/lib/shared/config/word/word-work/internal.ts +0 -69
- package/src/lib/shared/config/word/word-work/templates/documentTemplate.ts +0 -58
- package/src/lib/shared/config/word/word-work/templates/index.ts +0 -3
- package/src/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.ts +0 -21
- package/src/lib/shared/config/word/word-work/templates/mhtPartTemplate.ts +0 -14
- package/src/lib/shared/config/word/word-work/utils.ts +0 -27
- package/src/lib/shared/models/AreaModel.ts +0 -5
- package/src/lib/shared/models/RequestOptionsModel.ts +0 -13
- package/src/lib/shared/models/WordDocumentModel.ts +0 -19
- package/src/lib/shared/services/AppearanceConfiguration.service.ts +0 -30
- package/src/lib/shared/services/configuration.service.ts +0 -18
- package/src/lib/shared/services/controlvalidation.service.ts +0 -194
- package/src/lib/shared/services/environment.service.ts +0 -56
- package/src/lib/shared/services/masterlayout.service.ts +0 -89
- package/src/lib/shared/services/requesthandler.service.ts +0 -241
- package/src/lib/shared/services/stylesbundle.service.ts +0 -52
- package/src/lib/shared/services/translate.service.ts +0 -8
- package/src/lib/shared/services/translationresolver.service.ts +0 -16
- package/src/lib/shared/services/utility.service.ts +0 -94
- package/src/lib/shared/services/word-document.service.ts +0 -36
- package/src/public-api.ts +0 -27
- package/src/test.ts +0 -26
- package/tsconfig.lib.json +0 -39
- package/tsconfig.lib.prod.json +0 -11
- package/tsconfig.spec.json +0 -17
- package/tslint.json +0 -17
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm5zaWdodHMtYmJzZi11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9iYnNmLXV0aWxpdGllcy9zcmMvYm5zaWdodHMtYmJzZi11dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Injector, NgModule } from '@angular/core';
|
|
2
|
+
import { RouterModule } from '@angular/router';
|
|
3
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
4
|
+
import { BlockUIModule } from 'ng-block-ui';
|
|
5
|
+
import { ToastrModule } from 'ngx-toastr';
|
|
6
|
+
import { HttpModule } from '@angular/http';
|
|
7
|
+
import { UtilityService } from './shared/services/utility.service';
|
|
8
|
+
import { EnvironmentService } from './shared/services/environment.service';
|
|
9
|
+
import { AuthService } from './shared/authentication/auth.service';
|
|
10
|
+
import { RequestHandlerService } from './shared/services/requesthandler.service';
|
|
11
|
+
import { StylesBundleService } from './shared/services/stylesbundle.service';
|
|
12
|
+
import { BBSFTranslateService } from './shared/services/translate.service';
|
|
13
|
+
import { ControlValidationService } from './shared/services/controlvalidation.service';
|
|
14
|
+
import { MasterLayoutService } from './shared/services/masterlayout.service';
|
|
15
|
+
import { ConfigurationService } from './shared/services/configuration.service';
|
|
16
|
+
import { CommonModule } from '@angular/common';
|
|
17
|
+
import { CookieService } from 'ngx-cookie-service';
|
|
18
|
+
export let AppInjector;
|
|
19
|
+
export class BBSFUtilitiesModule {
|
|
20
|
+
constructor(injector) {
|
|
21
|
+
this.injector = injector;
|
|
22
|
+
AppInjector = this.injector;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
BBSFUtilitiesModule.decorators = [
|
|
26
|
+
{ type: NgModule, args: [{
|
|
27
|
+
declarations: [],
|
|
28
|
+
imports: [
|
|
29
|
+
CommonModule,
|
|
30
|
+
BlockUIModule.forRoot(),
|
|
31
|
+
HttpModule,
|
|
32
|
+
RouterModule,
|
|
33
|
+
ToastrModule.forRoot(),
|
|
34
|
+
],
|
|
35
|
+
exports: [],
|
|
36
|
+
providers: [
|
|
37
|
+
UtilityService,
|
|
38
|
+
EnvironmentService,
|
|
39
|
+
AuthService,
|
|
40
|
+
RequestHandlerService,
|
|
41
|
+
StylesBundleService,
|
|
42
|
+
TranslateService,
|
|
43
|
+
BBSFTranslateService,
|
|
44
|
+
ControlValidationService,
|
|
45
|
+
MasterLayoutService,
|
|
46
|
+
ConfigurationService,
|
|
47
|
+
CookieService
|
|
48
|
+
]
|
|
49
|
+
},] }
|
|
50
|
+
];
|
|
51
|
+
BBSFUtilitiesModule.ctorParameters = () => [
|
|
52
|
+
{ type: Injector }
|
|
53
|
+
];
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJzZi11dGlsaXRpZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9iYnNmLXV0aWxpdGllcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxNQUFNLENBQUMsSUFBSSxXQUFxQixDQUFDO0FBOEJqQyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQW9CLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFFOUIsQ0FBQzs7O1lBaENGLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUUsRUFDYjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixhQUFhLENBQUMsT0FBTyxFQUFFO29CQUN2QixVQUFVO29CQUNWLFlBQVk7b0JBQ1osWUFBWSxDQUFDLE9BQU8sRUFBRTtpQkFFdkI7Z0JBQ0QsT0FBTyxFQUFFLEVBQ1I7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGNBQWM7b0JBQ2Qsa0JBQWtCO29CQUNsQixXQUFXO29CQUNYLHFCQUFxQjtvQkFDckIsbUJBQW1CO29CQUNuQixnQkFBZ0I7b0JBQ2hCLG9CQUFvQjtvQkFDcEIsd0JBQXdCO29CQUN4QixtQkFBbUI7b0JBQ25CLG9CQUFvQjtvQkFDcEIsYUFBYTtpQkFFZDthQUNGOzs7WUE5Q1EsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdG9yLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEJsb2NrVUlNb2R1bGUgfSBmcm9tICduZy1ibG9jay11aSc7XHJcbmltcG9ydCB7IFRvYXN0ck1vZHVsZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5pbXBvcnQgeyBIdHRwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvaHR0cCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VydmljZXMvZW52aXJvbm1lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvYXV0aGVudGljYXRpb24vYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVxdWVzdEhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VydmljZXMvcmVxdWVzdGhhbmRsZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0eWxlc0J1bmRsZVNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZXJ2aWNlcy9zdHlsZXNidW5kbGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEJCU0ZUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZXJ2aWNlcy9jb250cm9sdmFsaWRhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWFzdGVyTGF5b3V0U2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NlcnZpY2VzL21hc3RlcmxheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZXJ2aWNlcy9jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcclxuZXhwb3J0IGxldCBBcHBJbmplY3RvcjogSW5qZWN0b3I7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQmxvY2tVSU1vZHVsZS5mb3JSb290KCksXHJcbiAgICBIdHRwTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgVG9hc3RyTW9kdWxlLmZvclJvb3QoKSxcclxuXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgQXV0aFNlcnZpY2UsXHJcbiAgICBSZXF1ZXN0SGFuZGxlclNlcnZpY2UsXHJcbiAgICBTdHlsZXNCdW5kbGVTZXJ2aWNlLFxyXG4gICAgVHJhbnNsYXRlU2VydmljZSxcclxuICAgIEJCU0ZUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLFxyXG4gICAgTWFzdGVyTGF5b3V0U2VydmljZSxcclxuICAgIENvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgQ29va2llU2VydmljZVxyXG5cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCQlNGVXRpbGl0aWVzTW9kdWxlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgQXBwSW5qZWN0b3IgPSB0aGlzLmluamVjdG9yO1xyXG5cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Injectable, Injector } from '@angular/core';
|
|
3
|
+
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
4
|
+
import { BehaviorSubject } from 'rxjs';
|
|
5
|
+
import { EnvironmentService } from '../services/environment.service';
|
|
6
|
+
import { BBSFTranslateService } from '../services/translate.service';
|
|
7
|
+
import { Router } from '@angular/router';
|
|
8
|
+
import { JwtHelperService } from '@auth0/angular-jwt';
|
|
9
|
+
import { User } from '../models/UserModel';
|
|
10
|
+
import { CookieService } from 'ngx-cookie-service';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/common/http";
|
|
13
|
+
import * as i2 from "../services/environment.service";
|
|
14
|
+
import * as i3 from "../services/translate.service";
|
|
15
|
+
import * as i4 from "@angular/router";
|
|
16
|
+
import * as i5 from "ngx-cookie-service";
|
|
17
|
+
const TOKEN_KEY = 'access_token';
|
|
18
|
+
export class AuthService {
|
|
19
|
+
constructor(injector, http, environmentService, translateService, router, cookieService) {
|
|
20
|
+
this.injector = injector;
|
|
21
|
+
this.http = http;
|
|
22
|
+
this.environmentService = environmentService;
|
|
23
|
+
this.translateService = translateService;
|
|
24
|
+
this.router = router;
|
|
25
|
+
this.cookieService = cookieService;
|
|
26
|
+
this.redirectUrl = '';
|
|
27
|
+
this.jwtHelper = new JwtHelperService();
|
|
28
|
+
this.isAuthenticatedSubject = new BehaviorSubject(this.hasToken());
|
|
29
|
+
this.isAuthenticate$ = this.isAuthenticatedSubject.asObservable();
|
|
30
|
+
this.user = this.getUserManager();
|
|
31
|
+
}
|
|
32
|
+
hasToken() {
|
|
33
|
+
const token = this.cookieService.get(TOKEN_KEY);
|
|
34
|
+
return token && !this.jwtHelper.isTokenExpired(token);
|
|
35
|
+
}
|
|
36
|
+
getUserManager() {
|
|
37
|
+
const token = this.cookieService.get(TOKEN_KEY);
|
|
38
|
+
if (token)
|
|
39
|
+
this.handleAccessTokenWithoutLanguage(token);
|
|
40
|
+
return AuthService.user;
|
|
41
|
+
}
|
|
42
|
+
getUser() {
|
|
43
|
+
this.user = AuthService.user;
|
|
44
|
+
}
|
|
45
|
+
storUser(User) {
|
|
46
|
+
AuthService.user = this.user = this.user;
|
|
47
|
+
}
|
|
48
|
+
getCurrentUser() {
|
|
49
|
+
return AuthService.user;
|
|
50
|
+
}
|
|
51
|
+
isAuthenticated() {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
return AuthService.user != null && !this.jwtHelper.isTokenExpired(AuthService.user.access_token);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
isUserInRole(allowedPermission) {
|
|
57
|
+
let selectedPermissionSetID = Number.parseInt(this.user.profile['selectedpermissionsetid']);
|
|
58
|
+
return allowedPermission.includes(selectedPermissionSetID);
|
|
59
|
+
}
|
|
60
|
+
authorizationHeaderValue() {
|
|
61
|
+
return AuthService.user
|
|
62
|
+
? `${AuthService.user.token_type} ${AuthService.user.access_token}`
|
|
63
|
+
: '';
|
|
64
|
+
}
|
|
65
|
+
name() {
|
|
66
|
+
return AuthService.user != null ? AuthService.user.profile.given_name : '';
|
|
67
|
+
}
|
|
68
|
+
setUrl(url) {
|
|
69
|
+
localStorage.setItem('redirectUrl', url);
|
|
70
|
+
}
|
|
71
|
+
getUrl() {
|
|
72
|
+
var _a;
|
|
73
|
+
return (_a = localStorage.getItem('redirectUrl')) !== null && _a !== void 0 ? _a : "/";
|
|
74
|
+
}
|
|
75
|
+
signout() {
|
|
76
|
+
AuthService.timers.map(t => clearInterval(t));
|
|
77
|
+
AuthService.timers = [];
|
|
78
|
+
if (!this.isAuthenticated()) {
|
|
79
|
+
this.cookieService.delete(TOKEN_KEY);
|
|
80
|
+
this.router.navigate(['/Admin/account/login']);
|
|
81
|
+
}
|
|
82
|
+
this.logout().subscribe(res => {
|
|
83
|
+
this.cookieService.delete(TOKEN_KEY);
|
|
84
|
+
this.router.navigate(['/Admin/account/login']);
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
logout() {
|
|
88
|
+
const httpOptions = {
|
|
89
|
+
headers: new HttpHeaders({
|
|
90
|
+
'Content-Type': 'application/json',
|
|
91
|
+
}),
|
|
92
|
+
};
|
|
93
|
+
let ApiUrl = '/Account/';
|
|
94
|
+
return this.http.get(this.environmentService.getApiUrl() + ApiUrl + 'Logout', httpOptions);
|
|
95
|
+
}
|
|
96
|
+
clearUserSessionClaims() {
|
|
97
|
+
const httpOptions = {
|
|
98
|
+
headers: new HttpHeaders({
|
|
99
|
+
'Content-Type': 'application/json',
|
|
100
|
+
}),
|
|
101
|
+
};
|
|
102
|
+
let ApiUrl = '/api/Home/';
|
|
103
|
+
return this.http.get(this.environmentService.getBaseUrl() + ApiUrl + 'ClearCurrentUserSession', httpOptions);
|
|
104
|
+
}
|
|
105
|
+
loginForm(model) {
|
|
106
|
+
const httpOptions = {
|
|
107
|
+
headers: new HttpHeaders({
|
|
108
|
+
'Content-Type': 'application/json',
|
|
109
|
+
}),
|
|
110
|
+
};
|
|
111
|
+
let ApiUrl = '/Account/';
|
|
112
|
+
return this.http.post(this.environmentService.getApiUrl() + ApiUrl + 'Authenticate', model, httpOptions);
|
|
113
|
+
}
|
|
114
|
+
handleAccessToken(response) {
|
|
115
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
116
|
+
const token = response;
|
|
117
|
+
AuthService.user = new User();
|
|
118
|
+
AuthService.user.token_type = "Bearer";
|
|
119
|
+
AuthService.user.access_token = token;
|
|
120
|
+
AuthService.user.profile = this.jwtHelper.decodeToken(token);
|
|
121
|
+
AuthService.user.expires_at = this.jwtHelper.getTokenExpirationDate(token);
|
|
122
|
+
AuthService.timers.map(t => clearInterval(t));
|
|
123
|
+
AuthService.timers = [];
|
|
124
|
+
this.setTokenSeconds();
|
|
125
|
+
AuthService.timers.push(this.checkRefreshToken());
|
|
126
|
+
this.user = AuthService.user;
|
|
127
|
+
yield this.updateLanguage();
|
|
128
|
+
this.cookieService.set(TOKEN_KEY, token, null, null, null, true, 'Strict');
|
|
129
|
+
this.isAuthenticatedSubject.next(true);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
handleAccessTokenWithoutLanguage(response) {
|
|
133
|
+
const token = response;
|
|
134
|
+
AuthService.user = new User();
|
|
135
|
+
AuthService.user.token_type = "Bearer";
|
|
136
|
+
AuthService.user.access_token = token;
|
|
137
|
+
AuthService.user.profile = this.jwtHelper.decodeToken(token);
|
|
138
|
+
AuthService.user.expires_at = this.jwtHelper.getTokenExpirationDate(token);
|
|
139
|
+
this.setTokenSeconds();
|
|
140
|
+
this.user = AuthService.user;
|
|
141
|
+
this.cookieService.set(TOKEN_KEY, token, null, null, null, true, 'Strict');
|
|
142
|
+
this.isAuthenticatedSubject.next(true);
|
|
143
|
+
}
|
|
144
|
+
updateLanguage() {
|
|
145
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
146
|
+
if (!localStorage.getItem('language') ||
|
|
147
|
+
localStorage.getItem('language') == this.user.profile.locale)
|
|
148
|
+
localStorage.setItem('language', this.user.profile.locale);
|
|
149
|
+
if (this.translateService.currentLang != localStorage.getItem('language')) {
|
|
150
|
+
this.translateService.resetLang(this.translateService.currentLang);
|
|
151
|
+
yield this.translateService
|
|
152
|
+
.reloadLang(localStorage.getItem('language'))
|
|
153
|
+
.subscribe((res) => {
|
|
154
|
+
console.log(res);
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
checkRefreshToken() {
|
|
160
|
+
let date = new Date();
|
|
161
|
+
return setInterval(() => {
|
|
162
|
+
if (Math.floor(AuthService.seconds) < 120 && this.isAuthenticated())
|
|
163
|
+
this.refresh();
|
|
164
|
+
AuthService.seconds--;
|
|
165
|
+
}, 1000);
|
|
166
|
+
}
|
|
167
|
+
setTokenSeconds() {
|
|
168
|
+
let date = new Date();
|
|
169
|
+
AuthService.seconds = (AuthService.user.expires_at - date) / 1000;
|
|
170
|
+
}
|
|
171
|
+
refresh() {
|
|
172
|
+
const httpOptions = {
|
|
173
|
+
headers: new HttpHeaders({
|
|
174
|
+
'Content-Type': 'application/json',
|
|
175
|
+
'Authorization': this.authorizationHeaderValue(),
|
|
176
|
+
}),
|
|
177
|
+
};
|
|
178
|
+
let ApiUrl = '/api/Home/';
|
|
179
|
+
this.http.get(this.environmentService.getApiUrl() + ApiUrl + 'RefreshAccessToken', httpOptions).subscribe((res) => {
|
|
180
|
+
this.cookieService.delete(TOKEN_KEY);
|
|
181
|
+
this.handleAccessTokenWithoutLanguage(res);
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
AuthService.user = null;
|
|
186
|
+
AuthService.UserClaims = null;
|
|
187
|
+
//refresh
|
|
188
|
+
AuthService.timers = [];
|
|
189
|
+
AuthService.seconds = 0;
|
|
190
|
+
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), i0.ɵɵinject(i5.CookieService)); }, token: AuthService, providedIn: "root" });
|
|
191
|
+
AuthService.decorators = [
|
|
192
|
+
{ type: Injectable, args: [{
|
|
193
|
+
providedIn: 'root',
|
|
194
|
+
},] }
|
|
195
|
+
];
|
|
196
|
+
AuthService.ctorParameters = () => [
|
|
197
|
+
{ type: Injector },
|
|
198
|
+
{ type: HttpClient },
|
|
199
|
+
{ type: EnvironmentService },
|
|
200
|
+
{ type: BBSFTranslateService },
|
|
201
|
+
{ type: Router },
|
|
202
|
+
{ type: CookieService }
|
|
203
|
+
];
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi11dGlsaXRpZXMvc3JjL2xpYi9zaGFyZWQvYXV0aGVudGljYXRpb24vYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQVcsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFDbkQsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDO0FBS2pDLE1BQU0sT0FBTyxXQUFXO0lBWXRCLFlBQW9CLFFBQWtCLEVBQVUsSUFBZ0IsRUFBVSxrQkFBc0MsRUFBVSxnQkFBc0MsRUFBVSxNQUFjLEVBQVUsYUFBNEI7UUFBMU0sYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFzQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVh2TixnQkFBVyxHQUFX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RTthQUNqRCxDQUFDO1NBQ0gsQ0FBQztRQUNGLElBQUksTUFBTSxHQUFHLFlBQVksQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLEdBQUcsTUFBTSxHQUFHLG9CQUFvQixFQUFFLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2hILElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUM1QyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7O0FBaExNLGdCQUFJLEdBQWdCLElBQUksQ0FBQztBQUV6QixzQkFBVSxHQUFRLElBQUksQ0FBQztBQUk5QixTQUFTO0FBQ0Ysa0JBQU0sR0FBRyxFQUFFLENBQUM7QUFDWixtQkFBTyxHQUFHLENBQUMsQ0FBQzs7O1lBYnBCLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBZG9CLFFBQVE7WUFDcEIsVUFBVTtZQUVWLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsTUFBTTtZQUlOLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCQlNGVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWFzdGVyTGF5b3V0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL21hc3RlcmxheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSnd0SGVscGVyU2VydmljZSB9IGZyb20gJ0BhdXRoMC9hbmd1bGFyLWp3dCc7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuLi9tb2RlbHMvVXNlck1vZGVsJztcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XHJcbmNvbnN0IFRPS0VOX0tFWSA9ICdhY2Nlc3NfdG9rZW4nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIHtcclxuICBwdWJsaWMgcmVkaXJlY3RVcmw6IHN0cmluZyA9ICcnO1xyXG4gIHN0YXRpYyB1c2VyOiBVc2VyIHwgbnVsbCA9IG51bGw7XHJcbiAgdXNlcjogVXNlciB8IG51bGw7XHJcbiAgc3RhdGljIFVzZXJDbGFpbXM6IGFueSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBqd3RIZWxwZXI6IEp3dEhlbHBlclNlcnZpY2UgPSBuZXcgSnd0SGVscGVyU2VydmljZSgpO1xyXG4gIHByaXZhdGUgaXNBdXRoZW50aWNhdGVkU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odGhpcy5oYXNUb2tlbigpKTtcclxuICBpc0F1dGhlbnRpY2F0ZSQgPSB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgLy9yZWZyZXNoXHJcbiAgc3RhdGljIHRpbWVycyA9IFtdO1xyXG4gIHN0YXRpYyBzZWNvbmRzID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBlbnZpcm9ubWVudFNlcnZpY2U6IEVudmlyb25tZW50U2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBCQlNGVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLnVzZXIgPSB0aGlzLmdldFVzZXJNYW5hZ2VyKClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzVG9rZW4oKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuY29va2llU2VydmljZS5nZXQoVE9LRU5fS0VZKTtcclxuICAgIHJldHVybiB0b2tlbiAmJiAhdGhpcy5qd3RIZWxwZXIuaXNUb2tlbkV4cGlyZWQodG9rZW4pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlck1hbmFnZXIoKSB7XHJcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuY29va2llU2VydmljZS5nZXQoVE9LRU5fS0VZKTtcclxuICAgIGlmICh0b2tlbilcclxuICAgICAgdGhpcy5oYW5kbGVBY2Nlc3NUb2tlbldpdGhvdXRMYW5ndWFnZSh0b2tlbilcclxuICAgIHJldHVybiBBdXRoU2VydmljZS51c2VyO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldFVzZXIoKSB7XHJcbiAgICB0aGlzLnVzZXIgPSBBdXRoU2VydmljZS51c2VyO1xyXG4gIH1cclxuICBzdG9yVXNlcihVc2VyOiBhbnkpIHtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIgPSB0aGlzLnVzZXIgPSB0aGlzLnVzZXI7XHJcbiAgfVxyXG5cclxuICBnZXRDdXJyZW50VXNlcigpIHtcclxuICAgIHJldHVybiBBdXRoU2VydmljZS51c2VyXHJcbiAgfVxyXG5cclxuICBhc3luYyBpc0F1dGhlbnRpY2F0ZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gQXV0aFNlcnZpY2UudXNlciAhPSBudWxsICYmICF0aGlzLmp3dEhlbHBlci5pc1Rva2VuRXhwaXJlZChBdXRoU2VydmljZS51c2VyLmFjY2Vzc190b2tlbik7XHJcbiAgfVxyXG4gIGlzVXNlckluUm9sZShhbGxvd2VkUGVybWlzc2lvbjogbnVtYmVyW10pIHtcclxuICAgIGxldCBzZWxlY3RlZFBlcm1pc3Npb25TZXRJRDogbnVtYmVyID0gTnVtYmVyLnBhcnNlSW50KFxyXG4gICAgICB0aGlzLnVzZXIucHJvZmlsZVsnc2VsZWN0ZWRwZXJtaXNzaW9uc2V0aWQnXVxyXG4gICAgKTtcclxuICAgIHJldHVybiBhbGxvd2VkUGVybWlzc2lvbi5pbmNsdWRlcyhzZWxlY3RlZFBlcm1pc3Npb25TZXRJRCk7XHJcbiAgfVxyXG5cclxuICBhdXRob3JpemF0aW9uSGVhZGVyVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBBdXRoU2VydmljZS51c2VyXHJcbiAgICAgID8gYCR7QXV0aFNlcnZpY2UudXNlci50b2tlbl90eXBlfSAke0F1dGhTZXJ2aWNlLnVzZXIuYWNjZXNzX3Rva2VufWBcclxuICAgICAgOiAnJztcclxuICB9XHJcblxyXG4gIG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBBdXRoU2VydmljZS51c2VyICE9IG51bGwgPyBBdXRoU2VydmljZS51c2VyLnByb2ZpbGUuZ2l2ZW5fbmFtZSA6ICcnO1xyXG4gIH1cclxuICBzZXRVcmwodXJsKSB7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgncmVkaXJlY3RVcmwnLCB1cmwpO1xyXG4gIH1cclxuICBnZXRVcmwoKSB7XHJcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JlZGlyZWN0VXJsJykgPz8gXCIvXCI7XHJcbiAgfVxyXG4gIHNpZ25vdXQoKSB7XHJcbiAgICBBdXRoU2VydmljZS50aW1lcnMubWFwKHQgPT4gY2xlYXJJbnRlcnZhbCh0KSk7XHJcbiAgICBBdXRoU2VydmljZS50aW1lcnMgPSBbXTtcclxuICAgIGlmICghdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSkge1xyXG4gICAgICB0aGlzLmNvb2tpZVNlcnZpY2UuZGVsZXRlKFRPS0VOX0tFWSk7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL0FkbWluL2FjY291bnQvbG9naW4nXSlcclxuICAgIH1cclxuICAgIHRoaXMubG9nb3V0KCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuY29va2llU2VydmljZS5kZWxldGUoVE9LRU5fS0VZKTtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvQWRtaW4vYWNjb3VudC9sb2dpbiddKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICBjb25zdCBodHRwT3B0aW9ucyA9IHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHtcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICB9KSxcclxuICAgIH07XHJcbiAgICBsZXQgQXBpVXJsID0gJy9BY2NvdW50Lyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRBcGlVcmwoKSArIEFwaVVybCArICdMb2dvdXQnLCBodHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgY2xlYXJVc2VyU2Vzc2lvbkNsYWltcygpIHtcclxuICAgIGNvbnN0IGh0dHBPcHRpb25zID0ge1xyXG4gICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgIH0pLFxyXG4gICAgfTtcclxuICAgIGxldCBBcGlVcmwgPSAnL2FwaS9Ib21lLyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRCYXNlVXJsKCkgKyBBcGlVcmwgKyAnQ2xlYXJDdXJyZW50VXNlclNlc3Npb24nLCBodHRwT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBsb2dpbkZvcm0obW9kZWw6IGFueSkge1xyXG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgfSksXHJcbiAgICB9O1xyXG4gICAgbGV0IEFwaVVybCA9ICcvQWNjb3VudC8nO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEFwaVVybCgpICsgQXBpVXJsICsgJ0F1dGhlbnRpY2F0ZScsIG1vZGVsLCBodHRwT3B0aW9ucyk7XHJcbiAgfVxyXG4gIGFzeW5jIGhhbmRsZUFjY2Vzc1Rva2VuKHJlc3BvbnNlOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHRva2VuID0gcmVzcG9uc2U7XHJcbiAgICBBdXRoU2VydmljZS51c2VyID0gbmV3IFVzZXIoKTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIudG9rZW5fdHlwZSA9IFwiQmVhcmVyXCJcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIuYWNjZXNzX3Rva2VuID0gdG9rZW47XHJcbiAgICBBdXRoU2VydmljZS51c2VyLnByb2ZpbGUgPSB0aGlzLmp3dEhlbHBlci5kZWNvZGVUb2tlbih0b2tlbik7XHJcbiAgICBBdXRoU2VydmljZS51c2VyLmV4cGlyZXNfYXQgPSB0aGlzLmp3dEhlbHBlci5nZXRUb2tlbkV4cGlyYXRpb25EYXRlKHRva2VuKTtcclxuICAgIEF1dGhTZXJ2aWNlLnRpbWVycy5tYXAodCA9PiBjbGVhckludGVydmFsKHQpKTtcclxuICAgIEF1dGhTZXJ2aWNlLnRpbWVycyA9IFtdO1xyXG4gICAgdGhpcy5zZXRUb2tlblNlY29uZHMoKVxyXG4gICAgQXV0aFNlcnZpY2UudGltZXJzLnB1c2godGhpcy5jaGVja1JlZnJlc2hUb2tlbigpKTtcclxuICAgIHRoaXMudXNlciA9IEF1dGhTZXJ2aWNlLnVzZXJcclxuICAgIGF3YWl0IHRoaXMudXBkYXRlTGFuZ3VhZ2UoKVxyXG4gICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldChUT0tFTl9LRVksIHRva2VuLCBudWxsLCBudWxsLCBudWxsLCB0cnVlLCAnU3RyaWN0Jyk7XHJcbiAgICB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUFjY2Vzc1Rva2VuV2l0aG91dExhbmd1YWdlKHJlc3BvbnNlOiBhbnkpIHtcclxuICAgIGNvbnN0IHRva2VuID0gcmVzcG9uc2U7XHJcbiAgICBBdXRoU2VydmljZS51c2VyID0gbmV3IFVzZXIoKTtcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIudG9rZW5fdHlwZSA9IFwiQmVhcmVyXCJcclxuICAgIEF1dGhTZXJ2aWNlLnVzZXIuYWNjZXNzX3Rva2VuID0gdG9rZW47XHJcbiAgICBBdXRoU2VydmljZS51c2VyLnByb2ZpbGUgPSB0aGlzLmp3dEhlbHBlci5kZWNvZGVUb2tlbih0b2tlbik7XHJcbiAgICBBdXRoU2VydmljZS51c2VyLmV4cGlyZXNfYXQgPSB0aGlzLmp3dEhlbHBlci5nZXRUb2tlbkV4cGlyYXRpb25EYXRlKHRva2VuKTtcclxuICAgIHRoaXMuc2V0VG9rZW5TZWNvbmRzKClcclxuICAgIHRoaXMudXNlciA9IEF1dGhTZXJ2aWNlLnVzZXJcclxuICAgIHRoaXMuY29va2llU2VydmljZS5zZXQoVE9LRU5fS0VZLCB0b2tlbiwgbnVsbCwgbnVsbCwgbnVsbCwgdHJ1ZSwgJ1N0cmljdCcpO1xyXG4gICAgdGhpcy5pc0F1dGhlbnRpY2F0ZWRTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcbiAgfVxyXG4gIGFzeW5jIHVwZGF0ZUxhbmd1YWdlKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICAhbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJykgfHxcclxuICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJykgPT0gdGhpcy51c2VyLnByb2ZpbGUubG9jYWxlXHJcbiAgICApXHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdsYW5ndWFnZScsIHRoaXMudXNlci5wcm9maWxlLmxvY2FsZSk7XHJcblxyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyAhPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbGFuZ3VhZ2UnKSkge1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UucmVzZXRMYW5nKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyk7XHJcbiAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRlU2VydmljZVxyXG4gICAgICAgIC5yZWxvYWRMYW5nKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdsYW5ndWFnZScpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2cocmVzKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrUmVmcmVzaFRva2VuKCkge1xyXG4gICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSgpIGFzIGFueTtcclxuICAgIHJldHVybiBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIGlmIChNYXRoLmZsb29yKEF1dGhTZXJ2aWNlLnNlY29uZHMpIDwgMTIwICYmIHRoaXMuaXNBdXRoZW50aWNhdGVkKCkpXHJcbiAgICAgICAgdGhpcy5yZWZyZXNoKClcclxuICAgICAgQXV0aFNlcnZpY2Uuc2Vjb25kcy0tO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfVxyXG4gIHNldFRva2VuU2Vjb25kcygpIHtcclxuICAgIGxldCBkYXRlID0gbmV3IERhdGUoKSBhcyBhbnk7XHJcbiAgICBBdXRoU2VydmljZS5zZWNvbmRzID0gKEF1dGhTZXJ2aWNlLnVzZXIuZXhwaXJlc19hdCAtIGRhdGUpIC8gMTAwMFxyXG4gIH1cclxuICByZWZyZXNoKCkge1xyXG4gICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7XHJcbiAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcclxuICAgICAgICAnQXV0aG9yaXphdGlvbic6IHRoaXMuYXV0aG9yaXphdGlvbkhlYWRlclZhbHVlKCksXHJcbiAgICAgIH0pLFxyXG4gICAgfTtcclxuICAgIGxldCBBcGlVcmwgPSAnL2FwaS9Ib21lLyc7XHJcbiAgICB0aGlzLmh0dHAuZ2V0KHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEFwaVVybCgpICsgQXBpVXJsICsgJ1JlZnJlc2hBY2Nlc3NUb2tlbicsIGh0dHBPcHRpb25zKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLmNvb2tpZVNlcnZpY2UuZGVsZXRlKFRPS0VOX0tFWSk7XHJcbiAgICAgIHRoaXMuaGFuZGxlQWNjZXNzVG9rZW5XaXRob3V0TGFuZ3VhZ2UocmVzKVxyXG4gICAgfSlcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// This file can be replaced during build by using the `fileReplacements` array.
|
|
2
|
+
// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.
|
|
3
|
+
// The list of file replacements can be found in `angular.json`.
|
|
4
|
+
export const environment = Object.assign({}, window.Environment);
|
|
5
|
+
/*
|
|
6
|
+
* In development mode, to ignore zone related error stack frames such as
|
|
7
|
+
* `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can
|
|
8
|
+
* import the following file, but please comment it out in production mode
|
|
9
|
+
* because it will have performance impact when throw error
|
|
10
|
+
*/
|
|
11
|
+
// import 'zone.js/dist/zone-error'; // Included with Angular CLI.
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLXV0aWxpdGllcy9zcmMvbGliL3NoYXJlZC9jb25maWcvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0ZBQWdGO0FBQ2hGLDJFQUEyRTtBQUMzRSxnRUFBZ0U7QUFFaEUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFDeEMsRUFDQSxNQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7QUFHN0I7Ozs7O0dBS0c7QUFDSCxtRUFBbUUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgY2FuIGJlIHJlcGxhY2VkIGR1cmluZyBidWlsZCBieSB1c2luZyB0aGUgYGZpbGVSZXBsYWNlbWVudHNgIGFycmF5LlxyXG4vLyBgbmcgYnVpbGQgLS0tcHJvZGAgcmVwbGFjZXMgYGVudmlyb25tZW50LnRzYCB3aXRoIGBlbnZpcm9ubWVudC5wcm9kLnRzYC5cclxuLy8gVGhlIGxpc3Qgb2YgZmlsZSByZXBsYWNlbWVudHMgY2FuIGJlIGZvdW5kIGluIGBhbmd1bGFyLmpzb25gLlxyXG5cclxuZXhwb3J0IGNvbnN0IGVudmlyb25tZW50ID0gT2JqZWN0LmFzc2lnbih7XHJcbn0sXHJcbih3aW5kb3cgYXMgYW55KS5FbnZpcm9ubWVudCk7XHJcblxyXG5cclxuLypcclxuICogSW4gZGV2ZWxvcG1lbnQgbW9kZSwgdG8gaWdub3JlIHpvbmUgcmVsYXRlZCBlcnJvciBzdGFjayBmcmFtZXMgc3VjaCBhc1xyXG4gKiBgem9uZS5ydW5gLCBgem9uZURlbGVnYXRlLmludm9rZVRhc2tgIGZvciBlYXNpZXIgZGVidWdnaW5nLCB5b3UgY2FuXHJcbiAqIGltcG9ydCB0aGUgZm9sbG93aW5nIGZpbGUsIGJ1dCBwbGVhc2UgY29tbWVudCBpdCBvdXQgaW4gcHJvZHVjdGlvbiBtb2RlXHJcbiAqIGJlY2F1c2UgaXQgd2lsbCBoYXZlIHBlcmZvcm1hbmNlIGltcGFjdCB3aGVuIHRocm93IGVycm9yXHJcbiAqL1xyXG4vLyBpbXBvcnQgJ3pvbmUuanMvZGlzdC96b25lLWVycm9yJzsgIC8vIEluY2x1ZGVkIHdpdGggQW5ndWxhciBDTEkuXHJcbiJdfQ==
|
|
@@ -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
|