@net7/boilerplate-common 4.9.7 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/{esm2020 → esm2022}/lib/components/container/container.mjs +4 -4
  2. package/{esm2020 → esm2022}/lib/components/grid/grid.mjs +4 -4
  3. package/{esm2020 → esm2022}/lib/components/side-scroller/side-scroller.mjs +4 -4
  4. package/{esm2020 → esm2022}/lib/components/smart-pagination/smart-pagination.mjs +5 -5
  5. package/{esm2020 → esm2022}/lib/data-sources/footer.ds.mjs +1 -1
  6. package/esm2022/lib/data-sources/header.ds.mjs +72 -0
  7. package/esm2022/lib/data-sources/smart-pagination.ds.mjs +131 -0
  8. package/esm2022/lib/data-sources/subnav.ds.mjs +25 -0
  9. package/esm2022/lib/directives/click-outside.directive.mjs +31 -0
  10. package/esm2022/lib/event-handlers/breadcrumbs.eh.mjs +20 -0
  11. package/esm2022/lib/event-handlers/header.eh.mjs +29 -0
  12. package/esm2022/lib/event-handlers/smart-pagination.eh.mjs +19 -0
  13. package/{esm2020 → esm2022}/lib/event-handlers/subnav.eh.mjs +1 -1
  14. package/esm2022/lib/helpers.mjs +76 -0
  15. package/esm2022/lib/layouts/main-layout/main-layout.ds.mjs +86 -0
  16. package/esm2022/lib/layouts/main-layout/main-layout.eh.mjs +70 -0
  17. package/{esm2020 → esm2022}/lib/layouts/main-layout/main-layout.mjs +5 -5
  18. package/esm2022/lib/layouts/page404-layout/page404-layout.eh.mjs +36 -0
  19. package/{esm2020 → esm2022}/lib/layouts/page404-layout/page404-layout.mjs +5 -5
  20. package/{esm2020 → esm2022}/lib/n7-boilerplate-common.module.mjs +23 -23
  21. package/esm2022/lib/pipes/trans.pipe.mjs +47 -0
  22. package/esm2022/lib/services/communication-providers/apollo.provider.mjs +90 -0
  23. package/esm2022/lib/services/communication-providers/rest.provider.mjs +53 -0
  24. package/esm2022/lib/services/communication.service.mjs +78 -0
  25. package/{esm2020 → esm2022}/lib/services/configuration.service.mjs +4 -4
  26. package/esm2022/lib/services/json-config.service.mjs +63 -0
  27. package/esm2022/lib/services/layouts-configuration.service.mjs +27 -0
  28. package/esm2022/lib/services/local-config.service.mjs +46 -0
  29. package/{esm2020 → esm2022}/lib/services/main-state.service.mjs +4 -4
  30. package/{fesm2020 → fesm2022}/net7-boilerplate-common.mjs +88 -87
  31. package/fesm2022/net7-boilerplate-common.mjs.map +1 -0
  32. package/lib/components/container/container.d.ts +1 -1
  33. package/lib/components/grid/grid.d.ts +1 -1
  34. package/lib/components/side-scroller/side-scroller.d.ts +1 -1
  35. package/lib/components/smart-pagination/smart-pagination.d.ts +1 -1
  36. package/lib/config-types/common.d.ts +4 -4
  37. package/lib/directives/click-outside.directive.d.ts +1 -1
  38. package/lib/layouts/main-layout/main-layout.d.ts +1 -1
  39. package/lib/layouts/page404-layout/page404-layout.d.ts +1 -1
  40. package/lib/services/communication.service.d.ts +3 -3
  41. package/package.json +5 -11
  42. package/esm2020/lib/data-sources/header.ds.mjs +0 -72
  43. package/esm2020/lib/data-sources/smart-pagination.ds.mjs +0 -131
  44. package/esm2020/lib/data-sources/subnav.ds.mjs +0 -25
  45. package/esm2020/lib/directives/click-outside.directive.mjs +0 -31
  46. package/esm2020/lib/event-handlers/breadcrumbs.eh.mjs +0 -20
  47. package/esm2020/lib/event-handlers/header.eh.mjs +0 -29
  48. package/esm2020/lib/event-handlers/smart-pagination.eh.mjs +0 -19
  49. package/esm2020/lib/helpers.mjs +0 -76
  50. package/esm2020/lib/layouts/main-layout/main-layout.ds.mjs +0 -86
  51. package/esm2020/lib/layouts/main-layout/main-layout.eh.mjs +0 -70
  52. package/esm2020/lib/layouts/page404-layout/page404-layout.eh.mjs +0 -36
  53. package/esm2020/lib/pipes/trans.pipe.mjs +0 -47
  54. package/esm2020/lib/services/communication-providers/apollo.provider.mjs +0 -90
  55. package/esm2020/lib/services/communication-providers/rest.provider.mjs +0 -53
  56. package/esm2020/lib/services/communication.service.mjs +0 -78
  57. package/esm2020/lib/services/json-config.service.mjs +0 -63
  58. package/esm2020/lib/services/layouts-configuration.service.mjs +0 -27
  59. package/esm2020/lib/services/local-config.service.mjs +0 -46
  60. package/fesm2015/net7-boilerplate-common.mjs +0 -1348
  61. package/fesm2015/net7-boilerplate-common.mjs.map +0 -1
  62. package/fesm2020/net7-boilerplate-common.mjs.map +0 -1
  63. /package/{esm2020 → esm2022}/lib/components/index.mjs +0 -0
  64. /package/{esm2020 → esm2022}/lib/config-types/common.mjs +0 -0
  65. /package/{esm2020 → esm2022}/lib/config-types/index.mjs +0 -0
  66. /package/{esm2020 → esm2022}/lib/data-sources/breadcrumbs.ds.mjs +0 -0
  67. /package/{esm2020 → esm2022}/lib/data-sources/facets.ds.mjs +0 -0
  68. /package/{esm2020 → esm2022}/lib/data-sources/index.mjs +0 -0
  69. /package/{esm2020 → esm2022}/lib/directives/index.mjs +0 -0
  70. /package/{esm2020 → esm2022}/lib/event-handlers/footer.eh.mjs +0 -0
  71. /package/{esm2020 → esm2022}/lib/event-handlers/index.mjs +0 -0
  72. /package/{esm2020 → esm2022}/lib/layouts/index.mjs +0 -0
  73. /package/{esm2020 → esm2022}/lib/layouts/main-layout/main-layout.config.mjs +0 -0
  74. /package/{esm2020 → esm2022}/lib/layouts/page404-layout/page404-layout.config.mjs +0 -0
  75. /package/{esm2020 → esm2022}/lib/layouts/page404-layout/page404-layout.ds.mjs +0 -0
  76. /package/{esm2020 → esm2022}/lib/models/abstract-layout.mjs +0 -0
  77. /package/{esm2020 → esm2022}/lib/models/index.mjs +0 -0
  78. /package/{esm2020 → esm2022}/lib/pipes/index.mjs +0 -0
  79. /package/{esm2020 → esm2022}/lib/services/communication-providers/communication-provider.interface.mjs +0 -0
  80. /package/{esm2020 → esm2022}/lib/services/index.mjs +0 -0
  81. /package/{esm2020 → esm2022}/net7-boilerplate-common.mjs +0 -0
  82. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -1,53 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common/http";
4
- export class RestProvider {
5
- constructor(http) {
6
- this.http = http;
7
- }
8
- request$(providerConfig, requestId, options) {
9
- const { params, httpOptions, urlParams = '', } = options;
10
- let { method } = options;
11
- let point;
12
- // default method
13
- if (!method) {
14
- method = providerConfig.defaultMethod || 'GET';
15
- }
16
- if (providerConfig.config && providerConfig.config[requestId]) {
17
- point = providerConfig.config[requestId];
18
- }
19
- // config point control
20
- if (!point) {
21
- throw Error(`No config found for requestId "${requestId}"`);
22
- }
23
- const formattedUrl = this.getFormattedUrl(providerConfig.baseUrl, point, urlParams);
24
- if (['POST', 'PUT', 'PATCH'].includes(method)) {
25
- return this.http[method.toLowerCase()](formattedUrl, params, httpOptions);
26
- }
27
- if (['GET', 'DELETE'].includes(method)) {
28
- return this.http[method.toLowerCase()](formattedUrl, httpOptions);
29
- }
30
- throw Error(`Rest method ${method} not supported`);
31
- }
32
- getFormattedUrl(baseUrl, point, urlParams) {
33
- if (typeof urlParams === 'string') {
34
- return baseUrl + point + urlParams;
35
- }
36
- return baseUrl + this.parseUrlPlaceholders(point, urlParams);
37
- }
38
- parseUrlPlaceholders(source, placeholders) {
39
- return source.replace(/{\s*\w+\s*}/g, (match) => {
40
- const key = match.replace(/{|}/g, '').trim();
41
- return placeholders[key] || match;
42
- });
43
- }
44
- }
45
- RestProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RestProvider, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
46
- RestProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RestProvider, providedIn: 'root' });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: RestProvider, decorators: [{
48
- type: Injectable,
49
- args: [{
50
- providedIn: 'root',
51
- }]
52
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2NvbW11bmljYXRpb24tcHJvdmlkZXJzL3Jlc3QucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUTNDLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQ1UsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN2QixDQUFDO0lBRUosUUFBUSxDQUFJLGNBQWMsRUFBRSxTQUFTLEVBQUUsT0FBZ0M7UUFDckUsTUFBTSxFQUNKLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxHQUFHLEVBQUUsR0FDcEMsR0FBRyxPQUFPLENBQUM7UUFDWixJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLElBQUksS0FBSyxDQUFDO1FBRVYsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFBRSxNQUFNLEdBQUcsY0FBYyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUM7U0FBRTtRQUVoRSxJQUFJLGNBQWMsQ0FBQyxNQUFNLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM3RCxLQUFLLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMxQztRQUVELHVCQUF1QjtRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsTUFBTSxLQUFLLENBQUMsa0NBQWtDLFNBQVMsR0FBRyxDQUFDLENBQUM7U0FDN0Q7UUFFRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM3QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ3BDLFlBQVksRUFDWixNQUFNLEVBQ04sV0FBVyxDQUNaLENBQUM7U0FDSDtRQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FDcEMsWUFBWSxFQUNaLFdBQVcsQ0FDWixDQUFDO1NBQ0g7UUFDRCxNQUFNLEtBQUssQ0FBQyxlQUFlLE1BQU0sZ0JBQWdCLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU8sZUFBZSxDQUFDLE9BQWUsRUFBRSxLQUFhLEVBQUUsU0FBMEI7UUFDaEYsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUU7WUFDakMsT0FBTyxPQUFPLEdBQUcsS0FBSyxHQUFHLFNBQVMsQ0FBQztTQUNwQztRQUNELE9BQU8sT0FBTyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE1BQWMsRUFBRSxZQUFvQjtRQUMvRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDOUMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDN0MsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MEdBcERVLFlBQVk7OEdBQVosWUFBWSxjQUZYLE1BQU07NEZBRVAsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ29tbXVuaWNhdGlvblByb3ZpZGVyIH0gZnJvbSAnLi9jb21tdW5pY2F0aW9uLXByb3ZpZGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tdW5pY2F0aW9uT3B0aW9ucyB9IGZyb20gJy4uL2NvbW11bmljYXRpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZXN0UHJvdmlkZXIgaW1wbGVtZW50cyBDb21tdW5pY2F0aW9uUHJvdmlkZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICkge31cblxuICByZXF1ZXN0JDxUPihwcm92aWRlckNvbmZpZywgcmVxdWVzdElkLCBvcHRpb25zOiBDb21tdW5pY2F0aW9uT3B0aW9uczxUPikge1xuICAgIGNvbnN0IHtcbiAgICAgIHBhcmFtcywgaHR0cE9wdGlvbnMsIHVybFBhcmFtcyA9ICcnLFxuICAgIH0gPSBvcHRpb25zO1xuICAgIGxldCB7IG1ldGhvZCB9ID0gb3B0aW9ucztcbiAgICBsZXQgcG9pbnQ7XG5cbiAgICAvLyBkZWZhdWx0IG1ldGhvZFxuICAgIGlmICghbWV0aG9kKSB7IG1ldGhvZCA9IHByb3ZpZGVyQ29uZmlnLmRlZmF1bHRNZXRob2QgfHwgJ0dFVCc7IH1cblxuICAgIGlmIChwcm92aWRlckNvbmZpZy5jb25maWcgJiYgcHJvdmlkZXJDb25maWcuY29uZmlnW3JlcXVlc3RJZF0pIHtcbiAgICAgIHBvaW50ID0gcHJvdmlkZXJDb25maWcuY29uZmlnW3JlcXVlc3RJZF07XG4gICAgfVxuXG4gICAgLy8gY29uZmlnIHBvaW50IGNvbnRyb2xcbiAgICBpZiAoIXBvaW50KSB7XG4gICAgICB0aHJvdyBFcnJvcihgTm8gY29uZmlnIGZvdW5kIGZvciByZXF1ZXN0SWQgXCIke3JlcXVlc3RJZH1cImApO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdHRlZFVybCA9IHRoaXMuZ2V0Rm9ybWF0dGVkVXJsKHByb3ZpZGVyQ29uZmlnLmJhc2VVcmwsIHBvaW50LCB1cmxQYXJhbXMpO1xuICAgIGlmIChbJ1BPU1QnLCAnUFVUJywgJ1BBVENIJ10uaW5jbHVkZXMobWV0aG9kKSkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cFttZXRob2QudG9Mb3dlckNhc2UoKV0oXG4gICAgICAgIGZvcm1hdHRlZFVybCxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBodHRwT3B0aW9uc1xuICAgICAgKTtcbiAgICB9IGlmIChbJ0dFVCcsICdERUxFVEUnXS5pbmNsdWRlcyhtZXRob2QpKSB7XG4gICAgICByZXR1cm4gdGhpcy5odHRwW21ldGhvZC50b0xvd2VyQ2FzZSgpXShcbiAgICAgICAgZm9ybWF0dGVkVXJsLFxuICAgICAgICBodHRwT3B0aW9uc1xuICAgICAgKTtcbiAgICB9XG4gICAgdGhyb3cgRXJyb3IoYFJlc3QgbWV0aG9kICR7bWV0aG9kfSBub3Qgc3VwcG9ydGVkYCk7XG4gIH1cblxuICBwcml2YXRlIGdldEZvcm1hdHRlZFVybChiYXNlVXJsOiBzdHJpbmcsIHBvaW50OiBzdHJpbmcsIHVybFBhcmFtczogc3RyaW5nIHwgb2JqZWN0KSB7XG4gICAgaWYgKHR5cGVvZiB1cmxQYXJhbXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gYmFzZVVybCArIHBvaW50ICsgdXJsUGFyYW1zO1xuICAgIH1cbiAgICByZXR1cm4gYmFzZVVybCArIHRoaXMucGFyc2VVcmxQbGFjZWhvbGRlcnMocG9pbnQsIHVybFBhcmFtcyk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlVXJsUGxhY2Vob2xkZXJzKHNvdXJjZTogc3RyaW5nLCBwbGFjZWhvbGRlcnM6IG9iamVjdCkge1xuICAgIHJldHVybiBzb3VyY2UucmVwbGFjZSgve1xccypcXHcrXFxzKn0vZywgKG1hdGNoKSA9PiB7XG4gICAgICBjb25zdCBrZXkgPSBtYXRjaC5yZXBsYWNlKC97fH0vZywgJycpLnRyaW0oKTtcbiAgICAgIHJldHVybiBwbGFjZWhvbGRlcnNba2V5XSB8fCBtYXRjaDtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,78 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { catchError } from 'rxjs/operators';
3
- import { EMPTY } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./configuration.service";
6
- import * as i2 from "./communication-providers/apollo.provider";
7
- import * as i3 from "./communication-providers/rest.provider";
8
- export class CommunicationService {
9
- constructor(config, apollo, rest) {
10
- this.config = config;
11
- this.apollo = apollo;
12
- this.rest = rest;
13
- try {
14
- this.communicationConfig = this.config.get('communication');
15
- this.defaultProvider = this.communicationConfig.defaultProvider;
16
- }
17
- catch (err) {
18
- throw Error('No communications.defaultProvider setted in config');
19
- }
20
- }
21
- request$(requestId, options, provider) {
22
- const activeProvider = provider || this.defaultProvider;
23
- const activeProviderConfig = this.communicationConfig.providers[activeProvider];
24
- if (!activeProviderConfig) {
25
- throw Error(`There is no config for "${activeProvider}" provider`);
26
- }
27
- // provider.type check for retrocompatibility
28
- const activeProviderType = activeProviderConfig.type || activeProvider;
29
- if (!this[activeProviderType]) {
30
- throw Error(`There is no "${activeProviderType}" provider type`);
31
- }
32
- const requestOptions = options || {};
33
- // adding query params
34
- // to http client httpoptions params
35
- if (requestOptions.queryParams) {
36
- requestOptions.httpOptions = {
37
- ...(requestOptions.httpOptions || {}),
38
- params: requestOptions.queryParams
39
- };
40
- }
41
- const { onError } = options || {};
42
- return this[activeProviderType].request$(activeProviderConfig, requestId, requestOptions)
43
- .pipe(catchError((error) => this.handleError(error, onError)));
44
- }
45
- handleError(error, onError) {
46
- if (onError) {
47
- onError(error);
48
- }
49
- else {
50
- console.warn('No error handler for communication request', error);
51
- }
52
- return EMPTY;
53
- }
54
- getUrl(requestId, provider) {
55
- const activeProvider = provider || this.defaultProvider;
56
- const activeProviderConfig = this.communicationConfig.providers[activeProvider];
57
- if (!activeProviderConfig) {
58
- throw Error(`There is no config for "${activeProvider}" provider`);
59
- }
60
- const { baseUrl } = activeProviderConfig;
61
- if (!requestId) {
62
- return baseUrl;
63
- }
64
- if (!activeProviderConfig.config[requestId]) {
65
- throw Error(`There is no config for "${requestId}"`);
66
- }
67
- return baseUrl + activeProviderConfig.config[requestId];
68
- }
69
- }
70
- CommunicationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CommunicationService, deps: [{ token: i1.ConfigurationService }, { token: i2.ApolloProvider }, { token: i3.RestProvider }], target: i0.ɵɵFactoryTarget.Injectable });
71
- CommunicationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CommunicationService, providedIn: 'root' });
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CommunicationService, decorators: [{
73
- type: Injectable,
74
- args: [{
75
- providedIn: 'root',
76
- }]
77
- }], ctorParameters: function () { return [{ type: i1.ConfigurationService }, { type: i2.ApolloProvider }, { type: i3.RestProvider }]; } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbXVuaWNhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtY29tbW9uL3NyYy9saWIvc2VydmljZXMvY29tbXVuaWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBYyxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBb0N6QyxNQUFNLE9BQU8sb0JBQW9CO0lBSy9CLFlBQ1UsTUFBNEIsRUFDNUIsTUFBc0IsRUFDdEIsSUFBa0I7UUFGbEIsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFDNUIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBYztRQUUxQixJQUFJO1lBQ0YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQztTQUNqRTtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osTUFBTSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztTQUNuRTtJQUNILENBQUM7SUFFRCxRQUFRLENBQ04sU0FBaUIsRUFDakIsT0FBaUMsRUFDakMsUUFBaUI7UUFFakIsTUFBTSxjQUFjLEdBQUcsUUFBUSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDeEQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWhGLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUN6QixNQUFNLEtBQUssQ0FBQywyQkFBMkIsY0FBYyxZQUFZLENBQUMsQ0FBQztTQUNwRTtRQUVELDZDQUE2QztRQUM3QyxNQUFNLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDLElBQUksSUFBSSxjQUFjLENBQUM7UUFFdkUsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQzdCLE1BQU0sS0FBSyxDQUFDLGdCQUFnQixrQkFBa0IsaUJBQWlCLENBQUMsQ0FBQztTQUNsRTtRQUVELE1BQU0sY0FBYyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFFckMsc0JBQXNCO1FBQ3RCLG9DQUFvQztRQUNwQyxJQUFJLGNBQWMsQ0FBQyxXQUFXLEVBQUU7WUFDOUIsY0FBYyxDQUFDLFdBQVcsR0FBRztnQkFDM0IsR0FBRyxDQUFDLGNBQWMsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO2dCQUNyQyxNQUFNLEVBQUUsY0FBYyxDQUFDLFdBQVc7YUFDbkMsQ0FBQztTQUNIO1FBRUQsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxRQUFRLENBQUksb0JBQW9CLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQzthQUN6RixJQUFJLENBQ0gsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUN4RCxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBc0I7UUFDdkMsSUFBSSxPQUFPLEVBQUU7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEI7YUFBTTtZQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsNENBQTRDLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbkU7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBVSxFQUFFLFFBQVM7UUFDMUIsTUFBTSxjQUFjLEdBQUcsUUFBUSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDeEQsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRWhGLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUN6QixNQUFNLEtBQUssQ0FBQywyQkFBMkIsY0FBYyxZQUFZLENBQUMsQ0FBQztTQUNwRTtRQUVELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQztRQUV6QyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFFRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzNDLE1BQU0sS0FBSyxDQUFDLDJCQUEyQixTQUFTLEdBQUcsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsT0FBTyxPQUFPLEdBQUcsb0JBQW9CLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFELENBQUM7O2tIQW5GVSxvQkFBb0I7c0hBQXBCLG9CQUFvQixjQUZuQixNQUFNOzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgRU1QVFkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEh0dHBDb250ZXh0LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtc1xufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFwb2xsb1Byb3ZpZGVyIH0gZnJvbSAnLi9jb21tdW5pY2F0aW9uLXByb3ZpZGVycy9hcG9sbG8ucHJvdmlkZXInO1xuaW1wb3J0IHsgUmVzdFByb3ZpZGVyIH0gZnJvbSAnLi9jb21tdW5pY2F0aW9uLXByb3ZpZGVycy9yZXN0LnByb3ZpZGVyJztcbmltcG9ydCB7IENvbmZpZ0NvbW1vbkNvbW11bmljYXRpb24gfSBmcm9tICcuLi9jb25maWctdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBDb21tdW5pY2F0aW9uUXVlcnlQYXJhbXMgPSBIdHRwUGFyYW1zIHwge1xuICBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBSZWFkb25seUFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+O1xufTtcblxuZXhwb3J0IHR5cGUgQ29tbXVuaWNhdGlvbkh0dHBPcHRpb25zID0ge1xuICBib2R5PzogYW55O1xuICBjb250ZXh0PzogSHR0cENvbnRleHQ7XG4gIHJlc3BvbnNlVHlwZT86ICdhcnJheWJ1ZmZlcicgfCAnYmxvYicgfCAnanNvbicgfCAndGV4dCc7XG4gIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG4gIHBhcmFtcz86IENvbW11bmljYXRpb25RdWVyeVBhcmFtcztcbiAgaGVhZGVycz86IEh0dHBIZWFkZXJzIHwge1xuICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBDb21tdW5pY2F0aW9uT3B0aW9uczxVPiA9IHtcbiAgbWV0aG9kPzogJ0dFVCcgfCAnUE9TVCcgfCAnUFVUJyB8ICdQQVRDSCcgfCAnREVMRVRFJztcbiAgcGFyYW1zPzogVTtcbiAgdXJsUGFyYW1zPzogc3RyaW5nIHwgb2JqZWN0O1xuICBxdWVyeVBhcmFtcz86IENvbW11bmljYXRpb25RdWVyeVBhcmFtcztcbiAgaHR0cE9wdGlvbnM/OiBDb21tdW5pY2F0aW9uSHR0cE9wdGlvbnM7XG4gIG9uRXJyb3I/OiAoZXJyKSA9PiB2b2lkO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29tbXVuaWNhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGRlZmF1bHRQcm92aWRlcjogc3RyaW5nO1xuXG4gIHByaXZhdGUgY29tbXVuaWNhdGlvbkNvbmZpZzogQ29uZmlnQ29tbW9uQ29tbXVuaWNhdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhcG9sbG86IEFwb2xsb1Byb3ZpZGVyLFxuICAgIHByaXZhdGUgcmVzdDogUmVzdFByb3ZpZGVyLFxuICApIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5jb21tdW5pY2F0aW9uQ29uZmlnID0gdGhpcy5jb25maWcuZ2V0KCdjb21tdW5pY2F0aW9uJyk7XG4gICAgICB0aGlzLmRlZmF1bHRQcm92aWRlciA9IHRoaXMuY29tbXVuaWNhdGlvbkNvbmZpZy5kZWZhdWx0UHJvdmlkZXI7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBFcnJvcignTm8gY29tbXVuaWNhdGlvbnMuZGVmYXVsdFByb3ZpZGVyIHNldHRlZCBpbiBjb25maWcnKTtcbiAgICB9XG4gIH1cblxuICByZXF1ZXN0JDxUID0gYW55LCBVID0gYW55PihcbiAgICByZXF1ZXN0SWQ6IHN0cmluZyxcbiAgICBvcHRpb25zPzogQ29tbXVuaWNhdGlvbk9wdGlvbnM8VT4sXG4gICAgcHJvdmlkZXI/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgYWN0aXZlUHJvdmlkZXIgPSBwcm92aWRlciB8fCB0aGlzLmRlZmF1bHRQcm92aWRlcjtcbiAgICBjb25zdCBhY3RpdmVQcm92aWRlckNvbmZpZyA9IHRoaXMuY29tbXVuaWNhdGlvbkNvbmZpZy5wcm92aWRlcnNbYWN0aXZlUHJvdmlkZXJdO1xuXG4gICAgaWYgKCFhY3RpdmVQcm92aWRlckNvbmZpZykge1xuICAgICAgdGhyb3cgRXJyb3IoYFRoZXJlIGlzIG5vIGNvbmZpZyBmb3IgXCIke2FjdGl2ZVByb3ZpZGVyfVwiIHByb3ZpZGVyYCk7XG4gICAgfVxuXG4gICAgLy8gcHJvdmlkZXIudHlwZSBjaGVjayBmb3IgcmV0cm9jb21wYXRpYmlsaXR5XG4gICAgY29uc3QgYWN0aXZlUHJvdmlkZXJUeXBlID0gYWN0aXZlUHJvdmlkZXJDb25maWcudHlwZSB8fCBhY3RpdmVQcm92aWRlcjtcblxuICAgIGlmICghdGhpc1thY3RpdmVQcm92aWRlclR5cGVdKSB7XG4gICAgICB0aHJvdyBFcnJvcihgVGhlcmUgaXMgbm8gXCIke2FjdGl2ZVByb3ZpZGVyVHlwZX1cIiBwcm92aWRlciB0eXBlYCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXG4gICAgLy8gYWRkaW5nIHF1ZXJ5IHBhcmFtc1xuICAgIC8vIHRvIGh0dHAgY2xpZW50IGh0dHBvcHRpb25zIHBhcmFtc1xuICAgIGlmIChyZXF1ZXN0T3B0aW9ucy5xdWVyeVBhcmFtcykge1xuICAgICAgcmVxdWVzdE9wdGlvbnMuaHR0cE9wdGlvbnMgPSB7XG4gICAgICAgIC4uLihyZXF1ZXN0T3B0aW9ucy5odHRwT3B0aW9ucyB8fCB7fSksXG4gICAgICAgIHBhcmFtczogcmVxdWVzdE9wdGlvbnMucXVlcnlQYXJhbXNcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgeyBvbkVycm9yIH0gPSBvcHRpb25zIHx8IHt9O1xuICAgIHJldHVybiB0aGlzW2FjdGl2ZVByb3ZpZGVyVHlwZV0ucmVxdWVzdCQ8VD4oYWN0aXZlUHJvdmlkZXJDb25maWcsIHJlcXVlc3RJZCwgcmVxdWVzdE9wdGlvbnMpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IsIG9uRXJyb3IpKSxcbiAgICAgICk7XG4gIH1cblxuICBoYW5kbGVFcnJvcihlcnJvciwgb25FcnJvcjogKGVycikgPT4gdm9pZCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKG9uRXJyb3IpIHtcbiAgICAgIG9uRXJyb3IoZXJyb3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oJ05vIGVycm9yIGhhbmRsZXIgZm9yIGNvbW11bmljYXRpb24gcmVxdWVzdCcsIGVycm9yKTtcbiAgICB9XG5cbiAgICByZXR1cm4gRU1QVFk7XG4gIH1cblxuICBnZXRVcmwocmVxdWVzdElkPywgcHJvdmlkZXI/KSB7XG4gICAgY29uc3QgYWN0aXZlUHJvdmlkZXIgPSBwcm92aWRlciB8fCB0aGlzLmRlZmF1bHRQcm92aWRlcjtcbiAgICBjb25zdCBhY3RpdmVQcm92aWRlckNvbmZpZyA9IHRoaXMuY29tbXVuaWNhdGlvbkNvbmZpZy5wcm92aWRlcnNbYWN0aXZlUHJvdmlkZXJdO1xuXG4gICAgaWYgKCFhY3RpdmVQcm92aWRlckNvbmZpZykge1xuICAgICAgdGhyb3cgRXJyb3IoYFRoZXJlIGlzIG5vIGNvbmZpZyBmb3IgXCIke2FjdGl2ZVByb3ZpZGVyfVwiIHByb3ZpZGVyYCk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBiYXNlVXJsIH0gPSBhY3RpdmVQcm92aWRlckNvbmZpZztcblxuICAgIGlmICghcmVxdWVzdElkKSB7XG4gICAgICByZXR1cm4gYmFzZVVybDtcbiAgICB9XG5cbiAgICBpZiAoIWFjdGl2ZVByb3ZpZGVyQ29uZmlnLmNvbmZpZ1tyZXF1ZXN0SWRdKSB7XG4gICAgICB0aHJvdyBFcnJvcihgVGhlcmUgaXMgbm8gY29uZmlnIGZvciBcIiR7cmVxdWVzdElkfVwiYCk7XG4gICAgfVxuICAgIHJldHVybiBiYXNlVXJsICsgYWN0aXZlUHJvdmlkZXJDb25maWcuY29uZmlnW3JlcXVlc3RJZF07XG4gIH1cbn1cbiJdfQ==
@@ -1,63 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { tap, catchError } from 'rxjs/operators';
3
- import { of } from 'rxjs';
4
- import { isObject, merge } from 'lodash';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- import * as i2 from "./configuration.service";
8
- export class JsonConfigService {
9
- constructor(http, config) {
10
- this.http = http;
11
- this.config = config;
12
- }
13
- load(path) {
14
- return this.http.get(path).pipe(catchError(() => of({})), tap((response) => this._handleResponse(response))).toPromise();
15
- }
16
- _handleResponse(response) {
17
- // set loaded json config
18
- if (response) {
19
- // merge config
20
- Object.keys(response).forEach((key) => {
21
- const oldValue = this.config.get(key);
22
- const newValue = response[key];
23
- const mergeValue = this.mergeConfigKey(oldValue, newValue);
24
- this.config.set(key, mergeValue);
25
- });
26
- // config keys colors
27
- if (response['config-keys']) {
28
- const headTag = document.querySelector('head');
29
- const styleElement = document.createElement('style');
30
- const styles = [];
31
- Object.keys(response['config-keys']).forEach((key) => {
32
- const configKey = response['config-keys'][key] || {};
33
- const className = configKey['class-name'];
34
- if (configKey.color && configKey.color.hex) {
35
- // add css class
36
- styles.push(`--color-${className}: ${configKey.color.hex};`);
37
- }
38
- });
39
- if (styles.length) {
40
- styles.unshift(':root {');
41
- styles.push('}');
42
- styleElement.appendChild(document.createTextNode(styles.join('\n')));
43
- headTag.appendChild(styleElement);
44
- }
45
- }
46
- }
47
- }
48
- mergeConfigKey(oldValue, newValue) {
49
- if (isObject(oldValue) && isObject(newValue)) {
50
- return merge(oldValue, newValue);
51
- }
52
- return newValue || oldValue;
53
- }
54
- }
55
- JsonConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: JsonConfigService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable });
56
- JsonConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: JsonConfigService, providedIn: 'root' });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: JsonConfigService, decorators: [{
58
- type: Injectable,
59
- args: [{
60
- providedIn: 'root',
61
- }]
62
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.ConfigurationService }]; } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWNvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2pzb24tY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7QUFNekMsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUNVLElBQWdCLEVBQ2hCLE1BQTRCO1FBRDVCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7SUFDbkMsQ0FBQztJQUVKLElBQUksQ0FBQyxJQUFJO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzdCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDeEIsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQ2xELENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxRQUFRO1FBQzlCLHlCQUF5QjtRQUN6QixJQUFJLFFBQVEsRUFBRTtZQUNaLGVBQWU7WUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNwQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1lBRUgscUJBQXFCO1lBQ3JCLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUMzQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUVyRCxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7Z0JBRWxCLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ25ELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3JELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFFMUMsSUFBSSxTQUFTLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO3dCQUMxQyxnQkFBZ0I7d0JBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxTQUFTLEtBQUssU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO3FCQUM5RDtnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7b0JBQ2pCLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQzFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ2pCLFlBQVksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDckUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDbkM7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVNLGNBQWMsQ0FBQyxRQUFRLEVBQUUsUUFBUTtRQUN0QyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDNUMsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxRQUFRLElBQUksUUFBUSxDQUFDO0lBQzlCLENBQUM7OytHQXhEVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQUZoQixNQUFNOzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgdGFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzT2JqZWN0LCBtZXJnZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEpzb25Db25maWdTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWd1cmF0aW9uU2VydmljZSxcbiAgKSB7fVxuXG4gIGxvYWQocGF0aCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQocGF0aCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2Yoe30pKSxcbiAgICAgIHRhcCgocmVzcG9uc2UpID0+IHRoaXMuX2hhbmRsZVJlc3BvbnNlKHJlc3BvbnNlKSksXG4gICAgKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gICAgLy8gc2V0IGxvYWRlZCBqc29uIGNvbmZpZ1xuICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgLy8gbWVyZ2UgY29uZmlnXG4gICAgICBPYmplY3Qua2V5cyhyZXNwb25zZSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy5jb25maWcuZ2V0KGtleSk7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gcmVzcG9uc2Vba2V5XTtcbiAgICAgICAgY29uc3QgbWVyZ2VWYWx1ZSA9IHRoaXMubWVyZ2VDb25maWdLZXkob2xkVmFsdWUsIG5ld1ZhbHVlKTtcbiAgICAgICAgdGhpcy5jb25maWcuc2V0KGtleSwgbWVyZ2VWYWx1ZSk7XG4gICAgICB9KTtcblxuICAgICAgLy8gY29uZmlnIGtleXMgY29sb3JzXG4gICAgICBpZiAocmVzcG9uc2VbJ2NvbmZpZy1rZXlzJ10pIHtcbiAgICAgICAgY29uc3QgaGVhZFRhZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKTtcbiAgICAgICAgY29uc3Qgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcblxuICAgICAgICBjb25zdCBzdHlsZXMgPSBbXTtcblxuICAgICAgICBPYmplY3Qua2V5cyhyZXNwb25zZVsnY29uZmlnLWtleXMnXSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgY29uc3QgY29uZmlnS2V5ID0gcmVzcG9uc2VbJ2NvbmZpZy1rZXlzJ11ba2V5XSB8fCB7fTtcbiAgICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBjb25maWdLZXlbJ2NsYXNzLW5hbWUnXTtcblxuICAgICAgICAgIGlmIChjb25maWdLZXkuY29sb3IgJiYgY29uZmlnS2V5LmNvbG9yLmhleCkge1xuICAgICAgICAgICAgLy8gYWRkIGNzcyBjbGFzc1xuICAgICAgICAgICAgc3R5bGVzLnB1c2goYC0tY29sb3ItJHtjbGFzc05hbWV9OiAke2NvbmZpZ0tleS5jb2xvci5oZXh9O2ApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHN0eWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICBzdHlsZXMudW5zaGlmdCgnOnJvb3QgeycpO1xuICAgICAgICAgIHN0eWxlcy5wdXNoKCd9Jyk7XG4gICAgICAgICAgc3R5bGVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0eWxlcy5qb2luKCdcXG4nKSkpO1xuICAgICAgICAgIGhlYWRUYWcuYXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBtZXJnZUNvbmZpZ0tleShvbGRWYWx1ZSwgbmV3VmFsdWUpIHtcbiAgICBpZiAoaXNPYmplY3Qob2xkVmFsdWUpICYmIGlzT2JqZWN0KG5ld1ZhbHVlKSkge1xuICAgICAgcmV0dXJuIG1lcmdlKG9sZFZhbHVlLCBuZXdWYWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBuZXdWYWx1ZSB8fCBvbGRWYWx1ZTtcbiAgfVxufVxuIl19
@@ -1,27 +0,0 @@
1
- import { Injectable, Inject } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class LayoutsConfigurationService {
4
- constructor(config) {
5
- this.config = config;
6
- this.defaults = {};
7
- this.get = (key) => this.defaults[key];
8
- this.set = (key, value) => { this.defaults[key] = value; };
9
- if (this.config?.layouts) {
10
- Object.keys(this.config.layouts).forEach((key) => {
11
- this.set(key, this.config.layouts[key]);
12
- });
13
- }
14
- }
15
- }
16
- LayoutsConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutsConfigurationService, deps: [{ token: 'config' }], target: i0.ɵɵFactoryTarget.Injectable });
17
- LayoutsConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutsConfigurationService, providedIn: 'root' });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LayoutsConfigurationService, decorators: [{
19
- type: Injectable,
20
- args: [{
21
- providedIn: 'root',
22
- }]
23
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
24
- type: Inject,
25
- args: ['config']
26
- }] }]; } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0cy1jb25maWd1cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9sYXlvdXRzLWNvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLbkQsTUFBTSxPQUFPLDJCQUEyQjtJQUd0QyxZQUFzQyxNQUFXO1FBQVgsV0FBTSxHQUFOLE1BQU0sQ0FBSztRQUZ6QyxhQUFRLEdBQVEsRUFBRSxDQUFDO1FBVXBCLFFBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVsQyxRQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQVQxRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7eUhBVFUsMkJBQTJCLGtCQUdsQixRQUFROzZIQUhqQiwyQkFBMkIsY0FGMUIsTUFBTTs0RkFFUCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFJYyxNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExheW91dHNDb25maWd1cmF0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgZGVmYXVsdHM6IGFueSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ2NvbmZpZycpIHByaXZhdGUgY29uZmlnOiBhbnkpIHtcbiAgICBpZiAodGhpcy5jb25maWc/LmxheW91dHMpIHtcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMuY29uZmlnLmxheW91dHMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICB0aGlzLnNldChrZXksIHRoaXMuY29uZmlnLmxheW91dHNba2V5XSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0ID0gKGtleSkgPT4gdGhpcy5kZWZhdWx0c1trZXldO1xuXG4gIHB1YmxpYyBzZXQgPSAoa2V5LCB2YWx1ZSkgPT4geyB0aGlzLmRlZmF1bHRzW2tleV0gPSB2YWx1ZTsgfVxufVxuIl19
@@ -1,46 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { tap } from 'rxjs/operators';
3
- import { of } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./configuration.service";
6
- export class LocalConfigService {
7
- constructor(config) {
8
- this.config = config;
9
- }
10
- load(config) {
11
- return of(true).pipe(tap(() => {
12
- if (config) {
13
- Object.keys(config).forEach((key) => this.config.set(key, config[key]));
14
- // config keys colors
15
- if (config['config-keys']) {
16
- const headTag = document.querySelector('head');
17
- const styleElement = document.createElement('style');
18
- const styles = [];
19
- Object.keys(config['config-keys']).forEach((key) => {
20
- const configKey = config['config-keys'][key] || {};
21
- const className = configKey['class-name'];
22
- if (configKey.color && configKey.color.hex) {
23
- // add css class
24
- styles.push(`--color-${className}: ${configKey.color.hex};`);
25
- }
26
- });
27
- if (styles.length) {
28
- styles.unshift(':root {');
29
- styles.push('}');
30
- styleElement.appendChild(document.createTextNode(styles.join('\n')));
31
- headTag.appendChild(styleElement);
32
- }
33
- }
34
- }
35
- })).toPromise();
36
- }
37
- }
38
- LocalConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LocalConfigService, deps: [{ token: i1.ConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable });
39
- LocalConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LocalConfigService, providedIn: 'root' });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LocalConfigService, decorators: [{
41
- type: Injectable,
42
- args: [{
43
- providedIn: 'root',
44
- }]
45
- }], ctorParameters: function () { return [{ type: i1.ConfigurationService }]; } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9sb2NhbC1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFNMUIsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixZQUNVLE1BQTRCO1FBQTVCLFdBQU0sR0FBTixNQUFNLENBQXNCO0lBQ25DLENBQUM7SUFFSixJQUFJLENBQUMsTUFBTTtRQUNULE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDbEIsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksTUFBTSxFQUFFO2dCQUNWLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFeEUscUJBQXFCO2dCQUNyQixJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRTtvQkFDekIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDL0MsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFFckQsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO29CQUVsQixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO3dCQUNqRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO3dCQUNuRCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7d0JBRTFDLElBQUksU0FBUyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTs0QkFDMUMsZ0JBQWdCOzRCQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsU0FBUyxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQzt5QkFDOUQ7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7b0JBRUgsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO3dCQUNqQixNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO3dCQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNqQixZQUFZLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3JFLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7cUJBQ25DO2lCQUNGO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hCLENBQUM7O2dIQXRDVSxrQkFBa0I7b0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMb2NhbENvbmZpZ1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICkge31cblxuICBsb2FkKGNvbmZpZyk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIG9mKHRydWUpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICBpZiAoY29uZmlnKSB7XG4gICAgICAgICAgT2JqZWN0LmtleXMoY29uZmlnKS5mb3JFYWNoKChrZXkpID0+IHRoaXMuY29uZmlnLnNldChrZXksIGNvbmZpZ1trZXldKSk7XG5cbiAgICAgICAgICAvLyBjb25maWcga2V5cyBjb2xvcnNcbiAgICAgICAgICBpZiAoY29uZmlnWydjb25maWcta2V5cyddKSB7XG4gICAgICAgICAgICBjb25zdCBoZWFkVGFnID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZCcpO1xuICAgICAgICAgICAgY29uc3Qgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcblxuICAgICAgICAgICAgY29uc3Qgc3R5bGVzID0gW107XG5cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbmZpZ1snY29uZmlnLWtleXMnXSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGNvbmZpZ0tleSA9IGNvbmZpZ1snY29uZmlnLWtleXMnXVtrZXldIHx8IHt9O1xuICAgICAgICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBjb25maWdLZXlbJ2NsYXNzLW5hbWUnXTtcblxuICAgICAgICAgICAgICBpZiAoY29uZmlnS2V5LmNvbG9yICYmIGNvbmZpZ0tleS5jb2xvci5oZXgpIHtcbiAgICAgICAgICAgICAgICAvLyBhZGQgY3NzIGNsYXNzXG4gICAgICAgICAgICAgICAgc3R5bGVzLnB1c2goYC0tY29sb3ItJHtjbGFzc05hbWV9OiAke2NvbmZpZ0tleS5jb2xvci5oZXh9O2ApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHN0eWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgc3R5bGVzLnVuc2hpZnQoJzpyb290IHsnKTtcbiAgICAgICAgICAgICAgc3R5bGVzLnB1c2goJ30nKTtcbiAgICAgICAgICAgICAgc3R5bGVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0eWxlcy5qb2luKCdcXG4nKSkpO1xuICAgICAgICAgICAgICBoZWFkVGFnLmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApLnRvUHJvbWlzZSgpO1xuICB9XG59XG4iXX0=