@bnsights/bbsf-utilities 1.0.34 → 1.0.36

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.
Files changed (172) hide show
  1. package/README.md +8 -0
  2. package/karma.conf.js +44 -0
  3. package/ng-package.json +10 -0
  4. package/package.json +20 -28
  5. package/src/lib/bbsf-utilities.module.ts +52 -0
  6. package/src/lib/shared/authentication/auth.service.ts +242 -0
  7. package/src/lib/shared/config/environment.ts +16 -0
  8. package/src/lib/shared/config/word/constants.js +133 -0
  9. package/src/lib/shared/config/word/docx-document.js +482 -0
  10. package/src/lib/shared/config/word/helpers/index.js +3 -0
  11. package/src/lib/shared/config/word/helpers/render-document-file.js +334 -0
  12. package/src/lib/shared/config/word/helpers/xml-builder.js +2165 -0
  13. package/src/lib/shared/config/word/html-to-docx.js +259 -0
  14. package/src/lib/shared/config/word/index.js +63 -0
  15. package/src/lib/shared/config/word/namespaces.js +40 -0
  16. package/src/lib/shared/config/word/schemas/content-types.js +26 -0
  17. package/src/lib/shared/config/word/schemas/core.js +44 -0
  18. package/src/lib/shared/config/word/schemas/document-rels.js +17 -0
  19. package/src/lib/shared/config/word/schemas/document.template.js +119 -0
  20. package/src/lib/shared/config/word/schemas/font-table.js +41 -0
  21. package/src/lib/shared/config/word/schemas/generic-rels.js +11 -0
  22. package/src/lib/shared/config/word/schemas/index.js +12 -0
  23. package/src/lib/shared/config/word/schemas/numbering.js +18 -0
  24. package/src/lib/shared/config/word/schemas/rels.js +12 -0
  25. package/src/lib/shared/config/word/schemas/settings.js +14 -0
  26. package/src/lib/shared/config/word/schemas/styles.js +152 -0
  27. package/src/lib/shared/config/word/schemas/theme.js +199 -0
  28. package/src/lib/shared/config/word/schemas/web-settings.js +10 -0
  29. package/src/lib/shared/config/word/utils/color-conversion.js +60 -0
  30. package/src/lib/shared/config/word/utils/list.js +55 -0
  31. package/src/lib/shared/config/word/utils/unit-conversion.js +53 -0
  32. package/src/lib/shared/config/word/utils/url.js +8 -0
  33. package/src/lib/shared/config/word/utils/vnode.js +3 -0
  34. package/src/lib/shared/config/word/word-work/assets/contentTypesXml.ts +1 -0
  35. package/src/lib/shared/config/word/word-work/assets/documentXmlRels.ts +1 -0
  36. package/src/lib/shared/config/word/word-work/assets/index.ts +3 -0
  37. package/src/lib/shared/config/word/word-work/assets/relsXml.ts +1 -0
  38. package/src/lib/shared/config/word/word-work/index.ts +8 -0
  39. package/src/lib/shared/config/word/word-work/internal.ts +69 -0
  40. package/src/lib/shared/config/word/word-work/templates/documentTemplate.ts +58 -0
  41. package/src/lib/shared/config/word/word-work/templates/index.ts +3 -0
  42. package/src/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.ts +21 -0
  43. package/src/lib/shared/config/word/word-work/templates/mhtPartTemplate.ts +14 -0
  44. package/src/lib/shared/config/word/word-work/utils.ts +27 -0
  45. package/src/lib/shared/models/AreaModel.ts +5 -0
  46. package/{lib/shared/models/ErrorModel.d.ts → src/lib/shared/models/ErrorModel.ts} +5 -2
  47. package/src/lib/shared/models/RequestOptionsModel.ts +13 -0
  48. package/src/lib/shared/models/WordDocumentModel.ts +19 -0
  49. package/src/lib/shared/services/AppearanceConfiguration.service.ts +30 -0
  50. package/src/lib/shared/services/configuration.service.ts +18 -0
  51. package/src/lib/shared/services/controlvalidation.service.ts +194 -0
  52. package/src/lib/shared/services/environment.service.ts +56 -0
  53. package/src/lib/shared/services/masterlayout.service.ts +89 -0
  54. package/src/lib/shared/services/requesthandler.service.ts +241 -0
  55. package/src/lib/shared/services/stylesbundle.service.ts +52 -0
  56. package/src/lib/shared/services/translate.service.ts +8 -0
  57. package/src/lib/shared/services/translationresolver.service.ts +16 -0
  58. package/src/lib/shared/services/utility.service.ts +94 -0
  59. package/src/lib/shared/services/word-document.service.ts +36 -0
  60. package/src/public-api.ts +27 -0
  61. package/src/test.ts +26 -0
  62. package/tsconfig.lib.json +39 -0
  63. package/tsconfig.lib.prod.json +11 -0
  64. package/tsconfig.spec.json +17 -0
  65. package/tslint.json +17 -0
  66. package/bnsights-bbsf-utilities-1.0.34.tgz +0 -0
  67. package/bnsights-bbsf-utilities.d.ts +0 -4
  68. package/bnsights-bbsf-utilities.metadata.json +0 -1
  69. package/bundles/bnsights-bbsf-utilities.umd.js +0 -4865
  70. package/bundles/bnsights-bbsf-utilities.umd.js.map +0 -1
  71. package/esm2015/bnsights-bbsf-utilities.js +0 -5
  72. package/esm2015/lib/bbsf-utilities.module.js +0 -52
  73. package/esm2015/lib/shared/authentication/auth.service.js +0 -236
  74. package/esm2015/lib/shared/config/environment.js +0 -12
  75. package/esm2015/lib/shared/config/word/constants.js +0 -105
  76. package/esm2015/lib/shared/config/word/docx-document.js +0 -351
  77. package/esm2015/lib/shared/config/word/helpers/index.js +0 -4
  78. package/esm2015/lib/shared/config/word/helpers/render-document-file.js +0 -278
  79. package/esm2015/lib/shared/config/word/helpers/xml-builder.js +0 -1765
  80. package/esm2015/lib/shared/config/word/html-to-docx.js +0 -195
  81. package/esm2015/lib/shared/config/word/index.js +0 -55
  82. package/esm2015/lib/shared/config/word/namespaces.js +0 -37
  83. package/esm2015/lib/shared/config/word/schemas/content-types.js +0 -26
  84. package/esm2015/lib/shared/config/word/schemas/core.js +0 -29
  85. package/esm2015/lib/shared/config/word/schemas/document-rels.js +0 -16
  86. package/esm2015/lib/shared/config/word/schemas/document.template.js +0 -109
  87. package/esm2015/lib/shared/config/word/schemas/font-table.js +0 -40
  88. package/esm2015/lib/shared/config/word/schemas/generic-rels.js +0 -11
  89. package/esm2015/lib/shared/config/word/schemas/index.js +0 -13
  90. package/esm2015/lib/shared/config/word/schemas/numbering.js +0 -19
  91. package/esm2015/lib/shared/config/word/schemas/rels.js +0 -11
  92. package/esm2015/lib/shared/config/word/schemas/settings.js +0 -13
  93. package/esm2015/lib/shared/config/word/schemas/styles.js +0 -149
  94. package/esm2015/lib/shared/config/word/schemas/theme.js +0 -200
  95. package/esm2015/lib/shared/config/word/schemas/web-settings.js +0 -9
  96. package/esm2015/lib/shared/config/word/utils/color-conversion.js +0 -60
  97. package/esm2015/lib/shared/config/word/utils/list.js +0 -51
  98. package/esm2015/lib/shared/config/word/utils/unit-conversion.js +0 -30
  99. package/esm2015/lib/shared/config/word/utils/url.js +0 -9
  100. package/esm2015/lib/shared/config/word/utils/vnode.js +0 -3
  101. package/esm2015/lib/shared/config/word/word-work/templates/documentTemplate.js +0 -54
  102. package/esm2015/lib/shared/config/word/word-work/templates/index.js +0 -4
  103. package/esm2015/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.js +0 -22
  104. package/esm2015/lib/shared/config/word/word-work/templates/mhtPartTemplate.js +0 -10
  105. package/esm2015/lib/shared/config/word/word-work/utils.js +0 -26
  106. package/esm2015/lib/shared/models/AreaModel.js +0 -3
  107. package/esm2015/lib/shared/models/ErrorModel.js +0 -3
  108. package/esm2015/lib/shared/models/RequestOptionsModel.js +0 -11
  109. package/esm2015/lib/shared/models/WordDocumentModel.js +0 -8
  110. package/esm2015/lib/shared/services/AppearanceConfiguration.service.js +0 -37
  111. package/esm2015/lib/shared/services/configuration.service.js +0 -26
  112. package/esm2015/lib/shared/services/controlvalidation.service.js +0 -168
  113. package/esm2015/lib/shared/services/environment.service.js +0 -48
  114. package/esm2015/lib/shared/services/masterlayout.service.js +0 -96
  115. package/esm2015/lib/shared/services/requesthandler.service.js +0 -206
  116. package/esm2015/lib/shared/services/stylesbundle.service.js +0 -56
  117. package/esm2015/lib/shared/services/translate.service.js +0 -13
  118. package/esm2015/lib/shared/services/translationresolver.service.js +0 -20
  119. package/esm2015/lib/shared/services/utility.service.js +0 -96
  120. package/esm2015/lib/shared/services/word-document.service.js +0 -39
  121. package/esm2015/public-api.js +0 -20
  122. package/fesm2015/bnsights-bbsf-utilities.js +0 -4634
  123. package/fesm2015/bnsights-bbsf-utilities.js.map +0 -1
  124. package/lib/bbsf-utilities.module.d.ts +0 -6
  125. package/lib/shared/authentication/auth.service.d.ts +0 -41
  126. package/lib/shared/config/environment.d.ts +0 -1
  127. package/lib/shared/config/word/constants.d.ts +0 -124
  128. package/lib/shared/config/word/docx-document.d.ts +0 -73
  129. package/lib/shared/config/word/helpers/index.d.ts +0 -1
  130. package/lib/shared/config/word/helpers/render-document-file.d.ts +0 -4
  131. package/lib/shared/config/word/helpers/xml-builder.d.ts +0 -14
  132. package/lib/shared/config/word/html-to-docx.d.ts +0 -1
  133. package/lib/shared/config/word/index.d.ts +0 -1
  134. package/lib/shared/config/word/namespaces.d.ts +0 -36
  135. package/lib/shared/config/word/schemas/content-types.d.ts +0 -1
  136. package/lib/shared/config/word/schemas/core.d.ts +0 -1
  137. package/lib/shared/config/word/schemas/document-rels.d.ts +0 -1
  138. package/lib/shared/config/word/schemas/document.template.d.ts +0 -4
  139. package/lib/shared/config/word/schemas/font-table.d.ts +0 -1
  140. package/lib/shared/config/word/schemas/generic-rels.d.ts +0 -1
  141. package/lib/shared/config/word/schemas/index.d.ts +0 -12
  142. package/lib/shared/config/word/schemas/numbering.d.ts +0 -1
  143. package/lib/shared/config/word/schemas/rels.d.ts +0 -1
  144. package/lib/shared/config/word/schemas/settings.d.ts +0 -1
  145. package/lib/shared/config/word/schemas/styles.d.ts +0 -1
  146. package/lib/shared/config/word/schemas/theme.d.ts +0 -1
  147. package/lib/shared/config/word/schemas/web-settings.d.ts +0 -1
  148. package/lib/shared/config/word/utils/color-conversion.d.ts +0 -7
  149. package/lib/shared/config/word/utils/list.d.ts +0 -6
  150. package/lib/shared/config/word/utils/unit-conversion.d.ts +0 -29
  151. package/lib/shared/config/word/utils/url.d.ts +0 -1
  152. package/lib/shared/config/word/utils/vnode.d.ts +0 -1
  153. package/lib/shared/config/word/word-work/templates/documentTemplate.d.ts +0 -12
  154. package/lib/shared/config/word/word-work/templates/index.d.ts +0 -3
  155. package/lib/shared/config/word/word-work/templates/mhtDocumentTemplate.d.ts +0 -1
  156. package/lib/shared/config/word/word-work/templates/mhtPartTemplate.d.ts +0 -1
  157. package/lib/shared/config/word/word-work/utils.d.ts +0 -1
  158. package/lib/shared/models/AreaModel.d.ts +0 -4
  159. package/lib/shared/models/RequestOptionsModel.d.ts +0 -11
  160. package/lib/shared/models/WordDocumentModel.d.ts +0 -16
  161. package/lib/shared/services/AppearanceConfiguration.service.d.ts +0 -11
  162. package/lib/shared/services/configuration.service.d.ts +0 -7
  163. package/lib/shared/services/controlvalidation.service.d.ts +0 -19
  164. package/lib/shared/services/environment.service.d.ts +0 -13
  165. package/lib/shared/services/masterlayout.service.d.ts +0 -24
  166. package/lib/shared/services/requesthandler.service.d.ts +0 -32
  167. package/lib/shared/services/stylesbundle.service.d.ts +0 -9
  168. package/lib/shared/services/translate.service.d.ts +0 -3
  169. package/lib/shared/services/translationresolver.service.d.ts +0 -8
  170. package/lib/shared/services/utility.service.d.ts +0 -21
  171. package/lib/shared/services/word-document.service.d.ts +0 -5
  172. package/public-api.d.ts +0 -16
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm5zaWdodHMtYmJzZi11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9iYnNmLXV0aWxpdGllcy9zcmMvYm5zaWdodHMtYmJzZi11dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,52 +0,0 @@
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==
@@ -1,236 +0,0 @@
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=
@@ -1,12 +0,0 @@
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==
@@ -1,105 +0,0 @@
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