@net7/boilerplate-common 4.9.6 → 5.0.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.
- package/{esm2020 → esm2022}/lib/components/container/container.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/grid/grid.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/side-scroller/side-scroller.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/smart-pagination/smart-pagination.mjs +5 -5
- package/{esm2020 → esm2022}/lib/data-sources/footer.ds.mjs +1 -1
- package/esm2022/lib/data-sources/header.ds.mjs +72 -0
- package/esm2022/lib/data-sources/smart-pagination.ds.mjs +131 -0
- package/esm2022/lib/data-sources/subnav.ds.mjs +25 -0
- package/esm2022/lib/directives/click-outside.directive.mjs +31 -0
- package/esm2022/lib/event-handlers/breadcrumbs.eh.mjs +20 -0
- package/esm2022/lib/event-handlers/header.eh.mjs +29 -0
- package/esm2022/lib/event-handlers/smart-pagination.eh.mjs +19 -0
- package/{esm2020 → esm2022}/lib/event-handlers/subnav.eh.mjs +1 -1
- package/esm2022/lib/helpers.mjs +76 -0
- package/esm2022/lib/layouts/main-layout/main-layout.ds.mjs +86 -0
- package/esm2022/lib/layouts/main-layout/main-layout.eh.mjs +70 -0
- package/{esm2020 → esm2022}/lib/layouts/main-layout/main-layout.mjs +5 -5
- package/esm2022/lib/layouts/page404-layout/page404-layout.eh.mjs +36 -0
- package/{esm2020 → esm2022}/lib/layouts/page404-layout/page404-layout.mjs +5 -5
- package/{esm2020 → esm2022}/lib/n7-boilerplate-common.module.mjs +23 -23
- package/esm2022/lib/pipes/trans.pipe.mjs +47 -0
- package/esm2022/lib/services/communication-providers/apollo.provider.mjs +90 -0
- package/esm2022/lib/services/communication-providers/rest.provider.mjs +53 -0
- package/esm2022/lib/services/communication.service.mjs +78 -0
- package/{esm2020 → esm2022}/lib/services/configuration.service.mjs +4 -4
- package/esm2022/lib/services/json-config.service.mjs +63 -0
- package/esm2022/lib/services/layouts-configuration.service.mjs +27 -0
- package/esm2022/lib/services/local-config.service.mjs +46 -0
- package/{esm2020 → esm2022}/lib/services/main-state.service.mjs +4 -4
- package/{fesm2020 → fesm2022}/net7-boilerplate-common.mjs +88 -87
- package/fesm2022/net7-boilerplate-common.mjs.map +1 -0
- package/lib/components/container/container.d.ts +1 -1
- package/lib/components/grid/grid.d.ts +1 -1
- package/lib/components/side-scroller/side-scroller.d.ts +1 -1
- package/lib/components/smart-pagination/smart-pagination.d.ts +1 -1
- package/lib/config-types/common.d.ts +4 -4
- package/lib/directives/click-outside.directive.d.ts +1 -1
- package/lib/layouts/main-layout/main-layout.d.ts +1 -1
- package/lib/layouts/page404-layout/page404-layout.d.ts +1 -1
- package/lib/services/communication.service.d.ts +3 -3
- package/package.json +5 -11
- package/esm2020/lib/data-sources/header.ds.mjs +0 -72
- package/esm2020/lib/data-sources/smart-pagination.ds.mjs +0 -131
- package/esm2020/lib/data-sources/subnav.ds.mjs +0 -25
- package/esm2020/lib/directives/click-outside.directive.mjs +0 -31
- package/esm2020/lib/event-handlers/breadcrumbs.eh.mjs +0 -20
- package/esm2020/lib/event-handlers/header.eh.mjs +0 -29
- package/esm2020/lib/event-handlers/smart-pagination.eh.mjs +0 -19
- package/esm2020/lib/helpers.mjs +0 -76
- package/esm2020/lib/layouts/main-layout/main-layout.ds.mjs +0 -86
- package/esm2020/lib/layouts/main-layout/main-layout.eh.mjs +0 -70
- package/esm2020/lib/layouts/page404-layout/page404-layout.eh.mjs +0 -36
- package/esm2020/lib/pipes/trans.pipe.mjs +0 -47
- package/esm2020/lib/services/communication-providers/apollo.provider.mjs +0 -90
- package/esm2020/lib/services/communication-providers/rest.provider.mjs +0 -53
- package/esm2020/lib/services/communication.service.mjs +0 -78
- package/esm2020/lib/services/json-config.service.mjs +0 -63
- package/esm2020/lib/services/layouts-configuration.service.mjs +0 -27
- package/esm2020/lib/services/local-config.service.mjs +0 -46
- package/fesm2015/net7-boilerplate-common.mjs +0 -1348
- package/fesm2015/net7-boilerplate-common.mjs.map +0 -1
- package/fesm2020/net7-boilerplate-common.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/config-types/common.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/config-types/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-sources/breadcrumbs.ds.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-sources/facets.ds.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data-sources/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/event-handlers/footer.eh.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/event-handlers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/main-layout/main-layout.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/page404-layout/page404-layout.config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/layouts/page404-layout/page404-layout.ds.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/abstract-layout.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/communication-providers/communication-provider.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/net7-boilerplate-common.mjs +0 -0
- /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=
|