info-library 2.15.1-beta → 3.0.0-beta
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/controls/alert/alert.component.d.ts +7 -7
- package/controls/autocomplete/autocomplete.component.d.ts +52 -51
- package/controls/big-checkbox/big-checkbox.component.d.ts +41 -41
- package/controls/card/card.component.d.ts +16 -16
- package/controls/card-menu/card-menu.component.d.ts +23 -23
- package/controls/checkbox/checkbox.component.d.ts +27 -27
- package/controls/chips/chips.component.d.ts +23 -23
- package/controls/date/date.component.d.ts +38 -37
- package/controls/date-month/date-month.component.d.ts +40 -39
- package/controls/editor/editor.component.d.ts +40 -40
- package/controls/grid/grid.component.d.ts +172 -172
- package/controls/input/input.component.d.ts +47 -37
- package/controls/input-list/input-list.component.d.ts +29 -29
- package/controls/list-checkbox/list-checkbox.component.d.ts +26 -26
- package/controls/message/message.component.d.ts +10 -10
- package/controls/multi-select/multi-select.component.d.ts +39 -37
- package/controls/paginator/paginator.component.d.ts +25 -25
- package/controls/select/select.component.d.ts +42 -41
- package/controls/timeline/timeline.component.d.ts +17 -17
- package/directives/mask.directive.d.ts +24 -24
- package/directives/unmask.directive.d.ts +12 -11
- package/enum/dialog-buttons.enum.d.ts +7 -7
- package/enum/index.d.ts +3 -3
- package/enum/modal-action.enum.d.ts +10 -10
- package/enum/page-action.enum.d.ts +8 -8
- package/esm2022/controls/alert/alert.component.mjs +72 -0
- package/esm2022/controls/autocomplete/autocomplete.component.mjs +265 -0
- package/esm2022/controls/big-checkbox/big-checkbox.component.mjs +300 -0
- package/esm2022/controls/card/card.component.mjs +83 -0
- package/esm2022/controls/card-menu/card-menu.component.mjs +143 -0
- package/esm2022/controls/checkbox/checkbox.component.mjs +93 -0
- package/esm2022/controls/chips/chips.component.mjs +114 -0
- package/esm2022/controls/date/date.component.mjs +173 -0
- package/esm2022/controls/date-month/date-month.component.mjs +181 -0
- package/esm2022/controls/editor/editor.component.mjs +139 -0
- package/esm2022/controls/grid/grid.component.mjs +1818 -0
- package/esm2022/controls/input/input.component.mjs +389 -0
- package/esm2022/controls/input-list/input-list.component.mjs +259 -0
- package/{esm2020 → esm2022}/controls/list-checkbox/list-checkbox.component.mjs +242 -238
- package/esm2022/controls/message/message.component.mjs +48 -0
- package/esm2022/controls/multi-select/multi-select.component.mjs +174 -0
- package/esm2022/controls/paginator/paginator.component.mjs +177 -0
- package/esm2022/controls/select/select.component.mjs +189 -0
- package/esm2022/controls/timeline/timeline.component.mjs +116 -0
- package/esm2022/directives/mask.directive.mjs +134 -0
- package/esm2022/directives/unmask.directive.mjs +35 -0
- package/{esm2020 → esm2022}/enum/dialog-buttons.enum.mjs +8 -8
- package/{esm2020 → esm2022}/enum/index.mjs +3 -3
- package/{esm2020 → esm2022}/enum/modal-action.enum.mjs +11 -11
- package/{esm2020 → esm2022}/enum/page-action.enum.mjs +9 -9
- package/{esm2020 → esm2022}/global-config.mjs +3 -3
- package/{esm2020 → esm2022}/info-library.mjs +4 -4
- package/esm2022/info-library.module.mjs +283 -0
- package/esm2022/layouts/dialog/dialog.component.mjs +192 -0
- package/esm2022/layouts/filter/filter.component.mjs +179 -0
- package/esm2022/layouts/loading/loading.component.mjs +40 -0
- package/esm2022/layouts/main/main.component.mjs +305 -0
- package/esm2022/layouts/modal/modal.component.mjs +273 -0
- package/esm2022/layouts/pagebar/pagebar.component.mjs +432 -0
- package/esm2022/layouts/sidebar/sidebar.component.mjs +447 -0
- package/esm2022/layouts/topbar/topbar.component.mjs +1032 -0
- package/esm2022/layouts/topmenu/topmenu.component.mjs +173 -0
- package/esm2022/model/app-config.model.mjs +14 -0
- package/esm2022/model/data-access.model.mjs +37 -0
- package/esm2022/model/dialog-result.model.mjs +9 -0
- package/esm2022/model/dialog.model.mjs +15 -0
- package/esm2022/model/form-prop.model.mjs +37 -0
- package/esm2022/model/grid-button.model.mjs +26 -0
- package/{esm2020 → esm2022}/model/index.mjs +14 -14
- package/esm2022/model/last-search.model.mjs +7 -0
- package/esm2022/model/login.model.mjs +11 -0
- package/esm2022/model/method-grid-button.model.mjs +11 -0
- package/esm2022/model/notification.model.mjs +13 -0
- package/{esm2020 → esm2022}/model/pagebar-buttons.model.mjs +15 -15
- package/esm2022/model/permission.model.mjs +6 -0
- package/esm2022/model/platform.model.mjs +20 -0
- package/esm2022/model/session.model.mjs +27 -0
- package/{esm2020 → esm2022}/pipe/index.mjs +2 -2
- package/esm2022/pipe/mask.pipe.mjs +38 -0
- package/esm2022/pipe/translate.pipe.mjs +27 -0
- package/{esm2020 → esm2022}/public_api.mjs +37 -36
- package/esm2022/service/authentication.service.mjs +411 -0
- package/esm2022/service/configuration.service.mjs +90 -0
- package/esm2022/service/data.service.mjs +129 -0
- package/{esm2020 → esm2022}/service/index.mjs +5 -5
- package/esm2022/service/theme.service.mjs +89 -0
- package/esm2022/service/translate.service.mjs +57 -0
- package/esm2022/utils/utilities.mjs +189 -0
- package/fesm2022/info-library.mjs +9364 -0
- package/fesm2022/info-library.mjs.map +1 -0
- package/global-config.d.ts +3 -3
- package/index.d.ts +5 -5
- package/info-library-3.0.0-beta.tgz +0 -0
- package/info-library.module.d.ts +61 -60
- package/layouts/dialog/dialog.component.d.ts +29 -29
- package/layouts/filter/filter.component.d.ts +24 -0
- package/layouts/loading/loading.component.d.ts +8 -8
- package/layouts/main/main.component.d.ts +60 -56
- package/layouts/modal/modal.component.d.ts +40 -39
- package/layouts/pagebar/pagebar.component.d.ts +45 -45
- package/layouts/sidebar/sidebar.component.d.ts +40 -40
- package/layouts/topbar/topbar.component.d.ts +69 -66
- package/layouts/topmenu/topmenu.component.d.ts +34 -34
- package/model/app-config.model.d.ts +13 -11
- package/model/data-access.model.d.ts +12 -12
- package/model/dialog-result.model.d.ts +6 -6
- package/model/dialog.model.d.ts +14 -14
- package/model/form-prop.model.d.ts +12 -12
- package/model/grid-button.model.d.ts +18 -18
- package/model/index.d.ts +14 -14
- package/model/last-search.model.d.ts +6 -6
- package/model/login.model.d.ts +6 -6
- package/model/method-grid-button.model.d.ts +6 -6
- package/model/notification.model.d.ts +12 -12
- package/model/pagebar-buttons.model.d.ts +10 -10
- package/model/permission.model.d.ts +5 -5
- package/model/platform.model.d.ts +16 -16
- package/model/session.model.d.ts +27 -22
- package/package.json +5 -11
- package/pipe/index.d.ts +2 -2
- package/pipe/mask.pipe.d.ts +8 -8
- package/pipe/translate.pipe.d.ts +10 -10
- package/public_api.d.ts +34 -33
- package/service/authentication.service.d.ts +63 -61
- package/service/configuration.service.d.ts +17 -14
- package/service/data.service.d.ts +41 -39
- package/service/index.d.ts +5 -5
- package/service/theme.service.d.ts +16 -16
- package/service/translate.service.d.ts +16 -16
- package/utils/utilities.d.ts +38 -27
- package/esm2020/controls/alert/alert.component.mjs +0 -74
- package/esm2020/controls/autocomplete/autocomplete.component.mjs +0 -258
- package/esm2020/controls/big-checkbox/big-checkbox.component.mjs +0 -298
- package/esm2020/controls/card/card.component.mjs +0 -77
- package/esm2020/controls/card-menu/card-menu.component.mjs +0 -145
- package/esm2020/controls/checkbox/checkbox.component.mjs +0 -93
- package/esm2020/controls/chips/chips.component.mjs +0 -113
- package/esm2020/controls/date/date.component.mjs +0 -141
- package/esm2020/controls/date-month/date-month.component.mjs +0 -148
- package/esm2020/controls/editor/editor.component.mjs +0 -135
- package/esm2020/controls/grid/grid.component.mjs +0 -1800
- package/esm2020/controls/input/input.component.mjs +0 -314
- package/esm2020/controls/input-list/input-list.component.mjs +0 -258
- package/esm2020/controls/message/message.component.mjs +0 -50
- package/esm2020/controls/multi-select/multi-select.component.mjs +0 -161
- package/esm2020/controls/paginator/paginator.component.mjs +0 -178
- package/esm2020/controls/select/select.component.mjs +0 -180
- package/esm2020/controls/timeline/timeline.component.mjs +0 -117
- package/esm2020/directives/mask.directive.mjs +0 -125
- package/esm2020/directives/unmask.directive.mjs +0 -28
- package/esm2020/info-library.module.mjs +0 -278
- package/esm2020/layouts/dialog/dialog.component.mjs +0 -188
- package/esm2020/layouts/loading/loading.component.mjs +0 -42
- package/esm2020/layouts/main/main.component.mjs +0 -258
- package/esm2020/layouts/modal/modal.component.mjs +0 -258
- package/esm2020/layouts/pagebar/pagebar.component.mjs +0 -404
- package/esm2020/layouts/sidebar/sidebar.component.mjs +0 -395
- package/esm2020/layouts/topbar/topbar.component.mjs +0 -868
- package/esm2020/layouts/topmenu/topmenu.component.mjs +0 -165
- package/esm2020/model/app-config.model.mjs +0 -14
- package/esm2020/model/data-access.model.mjs +0 -35
- package/esm2020/model/dialog-result.model.mjs +0 -8
- package/esm2020/model/dialog.model.mjs +0 -16
- package/esm2020/model/form-prop.model.mjs +0 -35
- package/esm2020/model/grid-button.model.mjs +0 -21
- package/esm2020/model/last-search.model.mjs +0 -9
- package/esm2020/model/login.model.mjs +0 -9
- package/esm2020/model/method-grid-button.model.mjs +0 -9
- package/esm2020/model/notification.model.mjs +0 -9
- package/esm2020/model/permission.model.mjs +0 -3
- package/esm2020/model/platform.model.mjs +0 -21
- package/esm2020/model/session.model.mjs +0 -8
- package/esm2020/pipe/mask.pipe.mjs +0 -34
- package/esm2020/pipe/translate.pipe.mjs +0 -26
- package/esm2020/service/authentication.service.mjs +0 -358
- package/esm2020/service/configuration.service.mjs +0 -59
- package/esm2020/service/data.service.mjs +0 -112
- package/esm2020/service/theme.service.mjs +0 -79
- package/esm2020/service/translate.service.mjs +0 -53
- package/esm2020/utils/utilities.mjs +0 -142
- package/fesm2015/info-library.mjs +0 -9312
- package/fesm2015/info-library.mjs.map +0 -1
- package/fesm2020/info-library.mjs +0 -8462
- package/fesm2020/info-library.mjs.map +0 -1
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { Injectable, Inject } from '@angular/core';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
|
-
import { HttpClient, HttpHeaders } from '@angular/common/http';
|
|
4
|
-
import { InfoDataAccessModel } from '../model/data-access.model';
|
|
5
|
-
import { map, catchError } from 'rxjs/operators';
|
|
6
|
-
import { of } from 'rxjs';
|
|
7
|
-
import { APICONTROLLER_CONFIG } from '../global-config';
|
|
8
|
-
import { InfoPlatformModel } from '../model/platform.model';
|
|
9
|
-
import { Utilities } from '../utils/utilities';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/common/http";
|
|
12
|
-
import * as i2 from "@angular/router";
|
|
13
|
-
import * as i3 from "../model/platform.model";
|
|
14
|
-
import * as i4 from "../utils/utilities";
|
|
15
|
-
export class InfoDataService {
|
|
16
|
-
constructor(_apiController, _http, _router, _plataforma, _utilities) {
|
|
17
|
-
this._apiController = _apiController;
|
|
18
|
-
this._http = _http;
|
|
19
|
-
this._router = _router;
|
|
20
|
-
this._plataforma = _plataforma;
|
|
21
|
-
this._utilities = _utilities;
|
|
22
|
-
}
|
|
23
|
-
getToken() {
|
|
24
|
-
this.token = this._utilities.getLocalStorage(this._plataforma.TokenKey);
|
|
25
|
-
if (this.token == null) {
|
|
26
|
-
this._router.navigateByUrl('');
|
|
27
|
-
return '';
|
|
28
|
-
}
|
|
29
|
-
else
|
|
30
|
-
return 'Bearer ' + this.token;
|
|
31
|
-
}
|
|
32
|
-
getHeaderToken() {
|
|
33
|
-
return new HttpHeaders().set('Authorization', this.getToken());
|
|
34
|
-
}
|
|
35
|
-
getAPIUrl(controller) {
|
|
36
|
-
let api = '';
|
|
37
|
-
if (typeof (controller) == 'number')
|
|
38
|
-
api = this._apiController[controller].toString();
|
|
39
|
-
else
|
|
40
|
-
api = controller == null ? '' : controller.toString();
|
|
41
|
-
return this._plataforma.Config.webapiUrl + (api.replace('_', '/') + '/').toLowerCase();
|
|
42
|
-
}
|
|
43
|
-
getNoToken(controller, method, param) {
|
|
44
|
-
return this._http
|
|
45
|
-
.get(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()) + (param == null ? '' : ('?' + param.replace(/null/g, '').replace(/undefined/g, ''))))
|
|
46
|
-
.pipe(map(r => new InfoDataAccessModel(r)), catchError((e) => this.errorHandling(e)));
|
|
47
|
-
}
|
|
48
|
-
get(controller, method, param) {
|
|
49
|
-
return this._http
|
|
50
|
-
.get(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()) + (param == null ? '' : ('?' + param.replace(/null/g, '').replace(/undefined/g, ''))), { headers: this.getHeaderToken() })
|
|
51
|
-
.pipe(map(r => new InfoDataAccessModel(r)), catchError((e) => this.errorHandling(e)));
|
|
52
|
-
}
|
|
53
|
-
getById(controller, id) {
|
|
54
|
-
return this._http
|
|
55
|
-
.get(this.getAPIUrl(controller) + id.toString(), { headers: this.getHeaderToken() })
|
|
56
|
-
.pipe(map(r => new InfoDataAccessModel(r)), catchError((e) => this.errorHandling(e)));
|
|
57
|
-
}
|
|
58
|
-
postNoToken(controller, model, method) {
|
|
59
|
-
return this._http
|
|
60
|
-
.post(this.getAPIUrl(controller) + method.toLowerCase(), model)
|
|
61
|
-
.pipe(map(r => new InfoDataAccessModel(r)), catchError((e) => this.errorHandling(e)));
|
|
62
|
-
}
|
|
63
|
-
post(controller, model, method) {
|
|
64
|
-
return this._http
|
|
65
|
-
.post(this.getAPIUrl(controller) + (method == null ? '' : method), model, { headers: this.getHeaderToken() })
|
|
66
|
-
.pipe(map(r => new InfoDataAccessModel(r)), catchError((e) => this.errorHandling(e, false)));
|
|
67
|
-
}
|
|
68
|
-
delete(controller, id, method) {
|
|
69
|
-
if (id == undefined || id == null)
|
|
70
|
-
alert('Id não informado');
|
|
71
|
-
return this._http
|
|
72
|
-
.delete(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()) + "?id=" + id.toString(), { headers: this.getHeaderToken() })
|
|
73
|
-
.pipe(map(r => new InfoDataAccessModel(r)), catchError((e) => this.errorHandling(e)));
|
|
74
|
-
}
|
|
75
|
-
deleteByModel(controller, model, method) {
|
|
76
|
-
let httpOptions = {
|
|
77
|
-
headers: this.getHeaderToken(),
|
|
78
|
-
body: model
|
|
79
|
-
};
|
|
80
|
-
return this._http
|
|
81
|
-
.delete(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()), httpOptions)
|
|
82
|
-
.pipe(map(r => new InfoDataAccessModel(r)), catchError((e) => this.errorHandling(e)));
|
|
83
|
-
}
|
|
84
|
-
request(controller, model, method, param) {
|
|
85
|
-
let formData = new FormData();
|
|
86
|
-
for (let index = 0; index < model.length; index++)
|
|
87
|
-
formData.append(model[index].name, model[index]);
|
|
88
|
-
return this._http
|
|
89
|
-
.request('POST', this.getAPIUrl(controller) + (method == null ? '' : method) + (param == null ? '' : ('?' + param)), { headers: this.getHeaderToken(), body: formData })
|
|
90
|
-
.pipe(map(r => new InfoDataAccessModel(r)), catchError((e) => this.errorHandling(e)));
|
|
91
|
-
}
|
|
92
|
-
errorHandling(e, redirect = true) {
|
|
93
|
-
if (e.status == 401)
|
|
94
|
-
document.location.href = '/#/login';
|
|
95
|
-
else if (redirect)
|
|
96
|
-
document.location.href = '/#/500';
|
|
97
|
-
let messages = new Array(e.message);
|
|
98
|
-
return of(new InfoDataAccessModel(null, false, messages));
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
/** @nocollapse */ InfoDataService.ɵfac = function InfoDataService_Factory(t) { return new (t || InfoDataService)(i0.ɵɵinject(APICONTROLLER_CONFIG), i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.Router), i0.ɵɵinject(i3.InfoPlatformModel), i0.ɵɵinject(i4.Utilities)); };
|
|
102
|
-
/** @nocollapse */ InfoDataService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: InfoDataService, factory: InfoDataService.ɵfac, providedIn: 'root' });
|
|
103
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoDataService, [{
|
|
104
|
-
type: Injectable,
|
|
105
|
-
args: [{
|
|
106
|
-
providedIn: 'root'
|
|
107
|
-
}]
|
|
108
|
-
}], function () { return [{ type: undefined, decorators: [{
|
|
109
|
-
type: Inject,
|
|
110
|
-
args: [APICONTROLLER_CONFIG]
|
|
111
|
-
}] }, { type: i1.HttpClient }, { type: i2.Router }, { type: i3.InfoPlatformModel }, { type: i4.Utilities }]; }, null); })();
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5mby1saWJyYXJ5L3NyYy9zZXJ2aWNlL2RhdGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQWMsRUFBRSxFQUFtQixNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQUsvQyxNQUFNLE9BQU8sZUFBZTtJQUl4QixZQUFrRCxjQUFtQixFQUNqRCxLQUFpQixFQUNqQixPQUFlLEVBQ2YsV0FBOEIsRUFDOUIsVUFBcUI7UUFKUyxtQkFBYyxHQUFkLGNBQWMsQ0FBSztRQUNqRCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFDOUIsZUFBVSxHQUFWLFVBQVUsQ0FBVztJQUFJLENBQUM7SUFFdkMsUUFBUTtRQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMs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QUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNwQyxVQUFVLENBQUMsQ0FBQyxDQUFvQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQzlELENBQUM7SUFDVixDQUFDO0lBRU8sYUFBYSxDQUFDLENBQW9CLEVBQUUsV0FBb0IsSUFBSTtRQUNoRSxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksR0FBRztZQUNmLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQzthQUNuQyxJQUFJLFFBQVE7WUFDYixRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFFdEMsSUFBSSxRQUFRLEdBQWEsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLE9BQU8sRUFBRSxDQUFDLElBQUksbUJBQW1CLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7O2lHQXZKUSxlQUFlLGNBSUosb0JBQW9CO29HQUovQixlQUFlLFdBQWYsZUFBZSxtQkFGWixNQUFNO3VGQUVULGVBQWU7Y0FIM0IsVUFBVTtlQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOztzQkFLZ0IsTUFBTTt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmZvRGF0YUFjY2Vzc01vZGVsIH0gZnJvbSAnLi4vbW9kZWwvZGF0YS1hY2Nlc3MubW9kZWwnO1xyXG5pbXBvcnQgeyBtYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBPYnNlcnZhYmxlSW5wdXQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQVBJQ09OVFJPTExFUl9DT05GSUcgfSBmcm9tICcuLi9nbG9iYWwtY29uZmlnJztcclxuaW1wb3J0IHsgSW5mb1BsYXRmb3JtTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9wbGF0Zm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IFV0aWxpdGllcyB9IGZyb20gJy4uL3V0aWxzL3V0aWxpdGllcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEluZm9EYXRhU2VydmljZSB7XHJcblxyXG4gICAgcHJpdmF0ZSB0b2tlbjogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoQVBJQ09OVFJPTExFUl9DT05GSUcpIHByaXZhdGUgX2FwaUNvbnRyb2xsZXI6IGFueSwgXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LCBcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLCBcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3BsYXRhZm9ybWE6IEluZm9QbGF0Zm9ybU1vZGVsLCBcclxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3V0aWxpdGllczogVXRpbGl0aWVzKSB7IH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0VG9rZW4oKTogc3RyaW5nIHtcclxuICAgICAgICB0aGlzLnRva2VuID0gdGhpcy5fdXRpbGl0aWVzLmdldExvY2FsU3RvcmFnZSh0aGlzLl9wbGF0YWZvcm1hLlRva2VuS2V5KTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAodGhpcy50b2tlbiA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcnKTtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG5cclxuICAgICAgICB9IGVsc2UgcmV0dXJuICdCZWFyZXIgJyArIHRoaXMudG9rZW47XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEhlYWRlclRva2VuKCk6IEh0dHBIZWFkZXJzIHtcclxuICAgICAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCdBdXRob3JpemF0aW9uJywgdGhpcy5nZXRUb2tlbigpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0QVBJVXJsKGNvbnRyb2xsZXI6IGFueSkge1xyXG4gICAgICAgIGxldCBhcGkgPSAnJztcclxuXHJcblx0XHRpZiAodHlwZW9mKGNvbnRyb2xsZXIpID09ICdudW1iZXInKVxyXG5cdFx0XHRhcGkgPSAgdGhpcy5fYXBpQ29udHJvbGxlcltjb250cm9sbGVyXS50b1N0cmluZygpO1xyXG5cclxuICAgICAgICBlbHNlIGFwaSA9IGNvbnRyb2xsZXIgPT0gbnVsbCA/ICcnIDogY29udHJvbGxlci50b1N0cmluZygpO1xyXG4gICAgICAgIFxyXG5cdFx0cmV0dXJuIHRoaXMuX3BsYXRhZm9ybWEuQ29uZmlnLndlYmFwaVVybCArIChhcGkucmVwbGFjZSgnXycsICcvJykgKyAnLycpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldE5vVG9rZW4oY29udHJvbGxlcjogYW55KTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPjtcclxuICAgIHB1YmxpYyBnZXROb1Rva2VuKGNvbnRyb2xsZXI6IGFueSwgbWV0aG9kPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPjtcclxuICAgIHB1YmxpYyBnZXROb1Rva2VuKGNvbnRyb2xsZXI6IGFueSwgbWV0aG9kPzogc3RyaW5nLCBwYXJhbT86IHN0cmluZyk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD47XHJcbiAgICBwdWJsaWMgZ2V0Tm9Ub2tlbihjb250cm9sbGVyOiBhbnksIG1ldGhvZD86IHN0cmluZywgcGFyYW0/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEluZm9EYXRhQWNjZXNzTW9kZWw+IHtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAgICAgICAgICAgLmdldCh0aGlzLmdldEFQSVVybChjb250cm9sbGVyKSArIChtZXRob2QgPT0gbnVsbCA/ICcnIDogbWV0aG9kLnRvTG93ZXJDYXNlKCkpICsgKHBhcmFtID09IG51bGwgPyAnJyA6ICgnPycgKyBwYXJhbS5yZXBsYWNlKC9udWxsL2csICcnKS5yZXBsYWNlKC91bmRlZmluZWQvZywgJycpKSkpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKHIgPT4gbmV3IEluZm9EYXRhQWNjZXNzTW9kZWwocikpLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZTogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuZXJyb3JIYW5kbGluZyhlKSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0KGNvbnRyb2xsZXI6IGFueSk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD47XHJcbiAgICBwdWJsaWMgZ2V0KGNvbnRyb2xsZXI6IGFueSwgbWV0aG9kPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPjtcclxuICAgIHB1YmxpYyBnZXQoY29udHJvbGxlcjogYW55LCBtZXRob2Q/OiBzdHJpbmcsIHBhcmFtPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPjtcclxuICAgIHB1YmxpYyBnZXQoY29udHJvbGxlcjogYW55LCBtZXRob2Q/OiBzdHJpbmcsIHBhcmFtPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPiB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAgICAgICAgICAgLmdldCh0aGlzLmdldEFQSVVybChjb250cm9sbGVyKSArIChtZXRob2QgPT0gbnVsbCA/ICcnIDogbWV0aG9kLnRvTG93ZXJDYXNlKCkpICsgKHBhcmFtID09IG51bGwgPyAnJyA6ICgnPycgKyBwYXJhbS5yZXBsYWNlKC9udWxsL2csICcnKS5yZXBsYWNlKC91bmRlZmluZWQvZywgJycpKSksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJUb2tlbigpIH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKHIgPT4gbmV3IEluZm9EYXRhQWNjZXNzTW9kZWwocikpLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZTogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuZXJyb3JIYW5kbGluZyhlKSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0QnlJZChjb250cm9sbGVyOiBhbnksIGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEluZm9EYXRhQWNjZXNzTW9kZWw+IHtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAgICAgICAgICAgLmdldCh0aGlzLmdldEFQSVVybChjb250cm9sbGVyKSArIGlkLnRvU3RyaW5nKCksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJUb2tlbigpIH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKHIgPT4gbmV3IEluZm9EYXRhQWNjZXNzTW9kZWwocikpLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZTogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuZXJyb3JIYW5kbGluZyhlKSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcG9zdE5vVG9rZW4oY29udHJvbGxlcjogYW55LCBtb2RlbDogYW55KTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPjtcclxuICAgIHB1YmxpYyBwb3N0Tm9Ub2tlbihjb250cm9sbGVyOiBhbnksIG1vZGVsOiBhbnksIG1ldGhvZD86IHN0cmluZyk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD47XHJcbiAgICBwdWJsaWMgcG9zdE5vVG9rZW4oY29udHJvbGxlcjogYW55LCBtb2RlbDogYW55LCBtZXRob2Q/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEluZm9EYXRhQWNjZXNzTW9kZWw+IHtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAgICAgICAgICAgLnBvc3QodGhpcy5nZXRBUElVcmwoY29udHJvbGxlcikgKyBtZXRob2QudG9Mb3dlckNhc2UoKSwgbW9kZWwpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKHIgPT4gbmV3IEluZm9EYXRhQWNjZXNzTW9kZWwocikpLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZTogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuZXJyb3JIYW5kbGluZyhlKSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcG9zdChjb250cm9sbGVyOiBhbnksIG1vZGVsOiBhbnkpOiBPYnNlcnZhYmxlPEluZm9EYXRhQWNjZXNzTW9kZWw+O1xyXG4gICAgcHVibGljIHBvc3QoY29udHJvbGxlcjogYW55LCBtb2RlbDogYW55LCBtZXRob2Q/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEluZm9EYXRhQWNjZXNzTW9kZWw+O1xyXG4gICAgcHVibGljIHBvc3QoY29udHJvbGxlcjogYW55LCBtb2RlbDogYW55LCBtZXRob2Q/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEluZm9EYXRhQWNjZXNzTW9kZWw+IHtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAgICAgICAgICAgLnBvc3QodGhpcy5nZXRBUElVcmwoY29udHJvbGxlcikgKyAobWV0aG9kID09IG51bGwgPyAnJyA6IG1ldGhvZCksIG1vZGVsLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVyVG9rZW4oKSB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcChyID0+IG5ldyBJbmZvRGF0YUFjY2Vzc01vZGVsKHIpKSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGU6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLmVycm9ySGFuZGxpbmcoZSwgZmFsc2UpKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkZWxldGUoY29udHJvbGxlcjogYW55LCBpZDogYW55KTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPlxyXG4gICAgcHVibGljIGRlbGV0ZShjb250cm9sbGVyOiBhbnksIGlkOiBhbnksIG1ldGhvZD86IHN0cmluZyk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD47XHJcbiAgICBwdWJsaWMgZGVsZXRlKGNvbnRyb2xsZXI6IGFueSwgaWQ6IGFueSwgbWV0aG9kPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPiB7XHJcblxyXG4gICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQgfHwgaWQgPT0gbnVsbClcclxuICAgICAgICAgICAgYWxlcnQoJ0lkIG7Do28gaW5mb3JtYWRvJyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgICAgICAgIC5kZWxldGUodGhpcy5nZXRBUElVcmwoY29udHJvbGxlcikgKyAobWV0aG9kID09IG51bGwgPyAnJyA6IG1ldGhvZC50b0xvd2VyQ2FzZSgpKSArIFwiP2lkPVwiICsgaWQudG9TdHJpbmcoKSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlclRva2VuKCkgfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAociA9PiBuZXcgSW5mb0RhdGFBY2Nlc3NNb2RlbChyKSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5lcnJvckhhbmRsaW5nKGUpKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkZWxldGVCeU1vZGVsKGNvbnRyb2xsZXI6IGFueSwgbW9kZWw6IGFueSk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD5cclxuICAgIHB1YmxpYyBkZWxldGVCeU1vZGVsKGNvbnRyb2xsZXI6IGFueSwgbW9kZWw6IGFueSwgbWV0aG9kPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPjtcclxuICAgIHB1YmxpYyBkZWxldGVCeU1vZGVsKGNvbnRyb2xsZXI6IGFueSwgbW9kZWw6IGFueSwgbWV0aG9kPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPiB7XHJcblxyXG4gICAgICAgIGxldCBodHRwT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJUb2tlbigpLFxyXG4gICAgICAgICAgICBib2R5OiBtb2RlbFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAgICAgICAgICAgLmRlbGV0ZSh0aGlzLmdldEFQSVVybChjb250cm9sbGVyKSArIChtZXRob2QgPT0gbnVsbCA/ICcnIDogbWV0aG9kLnRvTG93ZXJDYXNlKCkpLCBodHRwT3B0aW9ucylcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAociA9PiBuZXcgSW5mb0RhdGFBY2Nlc3NNb2RlbChyKSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5lcnJvckhhbmRsaW5nKGUpKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZXF1ZXN0KGNvbnRyb2xsZXI6IGFueSwgbW9kZWw6IGFueVtdLCBtZXRob2Q/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEluZm9EYXRhQWNjZXNzTW9kZWw+XHJcbiAgICBwdWJsaWMgcmVxdWVzdChjb250cm9sbGVyOiBhbnksIG1vZGVsOiBhbnlbXSwgbWV0aG9kPzogc3RyaW5nLCBwYXJhbT86IHN0cmluZyk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD47XHJcbiAgICBwdWJsaWMgcmVxdWVzdChjb250cm9sbGVyOiBhbnksIG1vZGVsOiBhbnlbXSwgbWV0aG9kPzogc3RyaW5nLCBwYXJhbT86IHN0cmluZyk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD4ge1xyXG5cclxuICAgICAgICBsZXQgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbW9kZWwubGVuZ3RoOyBpbmRleCsrKVxyXG4gICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQobW9kZWxbaW5kZXhdLm5hbWUsIG1vZGVsW2luZGV4XSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgICAgICAgIC5yZXF1ZXN0KCdQT1NUJywgdGhpcy5nZXRBUElVcmwoY29udHJvbGxlcikgKyAobWV0aG9kID09IG51bGwgPyAnJyA6IG1ldGhvZCkgKyAocGFyYW0gPT0gbnVsbCA/ICcnIDogKCc/JyArIHBhcmFtKSksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJUb2tlbigpLCBib2R5OiBmb3JtRGF0YSB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcChyID0+IG5ldyBJbmZvRGF0YUFjY2Vzc01vZGVsKHIpKSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGU6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLmVycm9ySGFuZGxpbmcoZSkpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBlcnJvckhhbmRsaW5nKGU6IEh0dHBFcnJvclJlc3BvbnNlLCByZWRpcmVjdDogYm9vbGVhbiA9IHRydWUpOiBPYnNlcnZhYmxlSW5wdXQ8SW5mb0RhdGFBY2Nlc3NNb2RlbD4ge1xyXG4gICAgICAgIGlmIChlLnN0YXR1cyA9PSA0MDEpIFxyXG4gICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gJy8jL2xvZ2luJztcclxuICAgICAgICBlbHNlIGlmIChyZWRpcmVjdCkgXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAnLyMvNTAwJztcclxuXHJcbiAgICAgICAgbGV0IG1lc3NhZ2VzOiBzdHJpbmdbXSA9IG5ldyBBcnJheShlLm1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBvZihuZXcgSW5mb0RhdGFBY2Nlc3NNb2RlbChudWxsLCBmYWxzZSwgbWVzc2FnZXMpKTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { OverlayContainer } from "@angular/cdk/overlay";
|
|
3
|
-
import { InfoPlatformModel } from '../model/platform.model';
|
|
4
|
-
import { InfoSessionModel } from '../model/session.model';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
7
|
-
import * as i2 from "../model/platform.model";
|
|
8
|
-
import * as i3 from "../model/session.model";
|
|
9
|
-
export class InfoThemeService {
|
|
10
|
-
constructor(_overlay, _plataform, _session) {
|
|
11
|
-
this._overlay = _overlay;
|
|
12
|
-
this._plataform = _plataform;
|
|
13
|
-
this._session = _session;
|
|
14
|
-
}
|
|
15
|
-
setTheme(theme) {
|
|
16
|
-
// console.log('info-theme.setTheme', theme);
|
|
17
|
-
if (this._plataform.Themes != null) {
|
|
18
|
-
let item = this._plataform.Themes.find(t => t.name == theme);
|
|
19
|
-
this._plataform.UnificarTopbar = item == null ? false : item.unificarTopbar;
|
|
20
|
-
}
|
|
21
|
-
let _overlay = this._overlay.getContainerElement().classList;
|
|
22
|
-
let themeClassesToRemove = Array.from(_overlay).filter((item) => item.includes('-theme'));
|
|
23
|
-
if (themeClassesToRemove && themeClassesToRemove.length > 0)
|
|
24
|
-
_overlay.remove(themeClassesToRemove);
|
|
25
|
-
_overlay.remove('alternative-layout');
|
|
26
|
-
document.body.removeAttribute('class');
|
|
27
|
-
if (!this._plataform.ModoPrime) {
|
|
28
|
-
document.body.classList.add(theme);
|
|
29
|
-
_overlay.add(theme);
|
|
30
|
-
}
|
|
31
|
-
if (this._plataform.UnificarTopbar)
|
|
32
|
-
document.body.classList.add('alternative-layout');
|
|
33
|
-
if (this._plataform.MenuMin)
|
|
34
|
-
document.body.classList.add('menu-min');
|
|
35
|
-
if (this._plataform.ModoPrime)
|
|
36
|
-
document.body.classList.add('modo-prime');
|
|
37
|
-
document.body.classList.add('ux' + (this._plataform.Config.ux ? this._plataform.Config.ux : 2));
|
|
38
|
-
sessionStorage.setItem('at', theme);
|
|
39
|
-
localStorage.setItem('at', theme);
|
|
40
|
-
}
|
|
41
|
-
setThemeByLoggedCompany() {
|
|
42
|
-
// console.log('info-theme.setThemeByLoggedCompany', this._session.TemaId);
|
|
43
|
-
this.setTheme(this._session.TemaId > 0 ? `_${this._session.TemaId}-theme` : 'default-theme');
|
|
44
|
-
}
|
|
45
|
-
setMenuMin(value = null) {
|
|
46
|
-
this._plataform.MenuMin = value == null ? !this._plataform.MenuMin : value;
|
|
47
|
-
document.body.classList.remove('menu-min');
|
|
48
|
-
if (this._plataform.MenuMin)
|
|
49
|
-
document.body.classList.add('menu-min');
|
|
50
|
-
sessionStorage.setItem('mm', this._plataform.MenuMin.toString());
|
|
51
|
-
localStorage.setItem('mm', this._plataform.MenuMin.toString());
|
|
52
|
-
}
|
|
53
|
-
setModePrime(prime = null) {
|
|
54
|
-
this._plataform.ModoPrime = prime == null ? !this._plataform.ModoPrime : prime;
|
|
55
|
-
let _overlay = this._overlay.getContainerElement().classList;
|
|
56
|
-
let themesClassToRemove = Array.from(_overlay).filter(item => item.includes('-theme'));
|
|
57
|
-
document.body.classList.remove('modo-prime');
|
|
58
|
-
if (this._plataform.ModoPrime) {
|
|
59
|
-
document.body.classList.add('modo-prime');
|
|
60
|
-
if (themesClassToRemove && themesClassToRemove.length > 0) {
|
|
61
|
-
for (let themeToRemove of themesClassToRemove) {
|
|
62
|
-
_overlay.remove(themeToRemove);
|
|
63
|
-
document.body.classList.remove(themeToRemove);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
sessionStorage.setItem('mp', this._plataform.ModoPrime.toString());
|
|
68
|
-
localStorage.setItem('mp', this._plataform.ModoPrime.toString());
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
/** @nocollapse */ InfoThemeService.ɵfac = function InfoThemeService_Factory(t) { return new (t || InfoThemeService)(i0.ɵɵinject(i1.OverlayContainer), i0.ɵɵinject(i2.InfoPlatformModel), i0.ɵɵinject(i3.InfoSessionModel)); };
|
|
72
|
-
/** @nocollapse */ InfoThemeService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: InfoThemeService, factory: InfoThemeService.ɵfac, providedIn: 'root' });
|
|
73
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoThemeService, [{
|
|
74
|
-
type: Injectable,
|
|
75
|
-
args: [{
|
|
76
|
-
providedIn: 'root'
|
|
77
|
-
}]
|
|
78
|
-
}], function () { return [{ type: i1.OverlayContainer }, { type: i2.InfoPlatformModel }, { type: i3.InfoSessionModel }]; }, null); })();
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvc2VydmljZS90aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBSzFELE1BQU0sT0FBTyxnQkFBZ0I7SUFFekIsWUFBbUIsUUFBMEIsRUFBUyxVQUE2QixFQUFTLFFBQTBCO1FBQW5HLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQVMsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFBUyxhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUFJLENBQUM7SUFFcEgsUUFBUSxDQUFDLEtBQUs7UUFDakIsNkNBQTZDO1FBRTdDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFDO1lBQy9CLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQy9FO1FBRUQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUM3RCxJQUFJLG9CQUFvQixHQUFRLEtBQUssQ0FBQyxJ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ckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgT3ZlcmxheUNvbnRhaW5lciB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xyXG5pbXBvcnQgeyBJbmZvUGxhdGZvcm1Nb2RlbCB9IGZyb20gJy4uL21vZGVsL3BsYXRmb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgSW5mb1Nlc3Npb25Nb2RlbCB9IGZyb20gJy4uL21vZGVsL3Nlc3Npb24ubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmZvVGhlbWVTZXJ2aWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgX292ZXJsYXk6IE92ZXJsYXlDb250YWluZXIsIHB1YmxpYyBfcGxhdGFmb3JtOiBJbmZvUGxhdGZvcm1Nb2RlbCwgcHVibGljIF9zZXNzaW9uOiBJbmZvU2Vzc2lvbk1vZGVsKSB7IH1cclxuXHJcbiAgICBwdWJsaWMgc2V0VGhlbWUodGhlbWUpIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZygnaW5mby10aGVtZS5zZXRUaGVtZScsIHRoZW1lKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybS5UaGVtZXMgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gdGhpcy5fcGxhdGFmb3JtLlRoZW1lcy5maW5kKHQgPT4gdC5uYW1lID09IHRoZW1lKTtcclxuICAgICAgICAgICAgdGhpcy5fcGxhdGFmb3JtLlVuaWZpY2FyVG9wYmFyID0gaXRlbSA9PSBudWxsID8gZmFsc2UgOiBpdGVtLnVuaWZpY2FyVG9wYmFyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IF9vdmVybGF5ID0gdGhpcy5fb3ZlcmxheS5nZXRDb250YWluZXJFbGVtZW50KCkuY2xhc3NMaXN0O1xyXG4gICAgICAgIGxldCB0aGVtZUNsYXNzZXNUb1JlbW92ZTogYW55ID0gQXJyYXkuZnJvbShfb3ZlcmxheSkuZmlsdGVyKChpdGVtOiBzdHJpbmcpID0+IGl0ZW0uaW5jbHVkZXMoJy10aGVtZScpKTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAodGhlbWVDbGFzc2VzVG9SZW1vdmUgJiYgdGhlbWVDbGFzc2VzVG9SZW1vdmUubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgX292ZXJsYXkucmVtb3ZlKHRoZW1lQ2xhc3Nlc1RvUmVtb3ZlKTtcclxuXHJcbiAgICAgICAgX292ZXJsYXkucmVtb3ZlKCdhbHRlcm5hdGl2ZS1sYXlvdXQnKTtcclxuXHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGUoJ2NsYXNzJyk7XHJcblxyXG4gICAgICAgIGlmKCF0aGlzLl9wbGF0YWZvcm0uTW9kb1ByaW1lKXtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKHRoZW1lKTtcclxuICAgICAgICAgICAgX292ZXJsYXkuYWRkKHRoZW1lKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9wbGF0YWZvcm0uVW5pZmljYXJUb3BiYXIpXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnYWx0ZXJuYXRpdmUtbGF5b3V0Jyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybS5NZW51TWluKVxyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ21lbnUtbWluJyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybS5Nb2RvUHJpbWUpXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnbW9kby1wcmltZScpO1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ3V4JyArICh0aGlzLl9wbGF0YWZvcm0uQ29uZmlnLnV4ID8gdGhpcy5fcGxhdGFmb3JtLkNvbmZpZy51eCA6IDIpKTtcclxuXHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXQnLCB0aGVtZSk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2F0JywgdGhlbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRUaGVtZUJ5TG9nZ2VkQ29tcGFueSgpIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZygnaW5mby10aGVtZS5zZXRUaGVtZUJ5TG9nZ2VkQ29tcGFueScsIHRoaXMuX3Nlc3Npb24uVGVtYUlkKTtcclxuICAgICAgICB0aGlzLnNldFRoZW1lKHRoaXMuX3Nlc3Npb24uVGVtYUlkID4gMCA/IGBfJHt0aGlzLl9zZXNzaW9uLlRlbWFJZH0tdGhlbWVgIDogJ2RlZmF1bHQtdGhlbWUnKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0TWVudU1pbih2YWx1ZTogYm9vbGVhbiA9IG51bGwpe1xyXG4gICAgICAgIHRoaXMuX3BsYXRhZm9ybS5NZW51TWluID0gdmFsdWUgPT0gbnVsbCA/ICF0aGlzLl9wbGF0YWZvcm0uTWVudU1pbiA6IHZhbHVlO1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ21lbnUtbWluJyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybS5NZW51TWluKVxyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ21lbnUtbWluJyk7XHJcblxyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ21tJywgdGhpcy5fcGxhdGFmb3JtLk1lbnVNaW4udG9TdHJpbmcoKSk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21tJywgdGhpcy5fcGxhdGFmb3JtLk1lbnVNaW4udG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldE1vZGVQcmltZShwcmltZTogYm9vbGVhbiA9IG51bGwpe1xyXG4gICAgICAgIHRoaXMuX3BsYXRhZm9ybS5Nb2RvUHJpbWUgPSBwcmltZSA9PSBudWxsID8gIXRoaXMuX3BsYXRhZm9ybS5Nb2RvUHJpbWUgOiBwcmltZTtcclxuICAgICAgICBsZXQgX292ZXJsYXkgPSB0aGlzLl9vdmVybGF5LmdldENvbnRhaW5lckVsZW1lbnQoKS5jbGFzc0xpc3Q7XHJcbiAgICAgICAgbGV0IHRoZW1lc0NsYXNzVG9SZW1vdmUgPSBBcnJheS5mcm9tKF9vdmVybGF5KS5maWx0ZXIoaXRlbSA9PiBpdGVtLmluY2x1ZGVzKCctdGhlbWUnKSk7XHJcblxyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnbW9kby1wcmltZScpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGlzLl9wbGF0YWZvcm0uTW9kb1ByaW1lKXtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdtb2RvLXByaW1lJyk7XHJcbiAgICAgICAgICAgIGlmICh0aGVtZXNDbGFzc1RvUmVtb3ZlICYmIHRoZW1lc0NsYXNzVG9SZW1vdmUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgdGhlbWVUb1JlbW92ZSBvZiB0aGVtZXNDbGFzc1RvUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX292ZXJsYXkucmVtb3ZlKHRoZW1lVG9SZW1vdmUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSh0aGVtZVRvUmVtb3ZlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbXAnLCB0aGlzLl9wbGF0YWZvcm0uTW9kb1ByaW1lLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdtcCcsIHRoaXMuX3BsYXRhZm9ybS5Nb2RvUHJpbWUudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Injectable, Inject } from "@angular/core";
|
|
2
|
-
import { InfoPlatformModel } from '../model/platform.model';
|
|
3
|
-
import { DICTIONARIES_CONFIG } from "../global-config";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../model/platform.model";
|
|
6
|
-
export class InfoTranslateService {
|
|
7
|
-
constructor(_translations, _plataforma) {
|
|
8
|
-
this._translations = _translations;
|
|
9
|
-
this._plataforma = _plataforma;
|
|
10
|
-
this._key = 'currentLang';
|
|
11
|
-
let lang = localStorage.getItem(this._key);
|
|
12
|
-
if (lang == null)
|
|
13
|
-
this._currentLang = 'pt-br';
|
|
14
|
-
else
|
|
15
|
-
this._currentLang = lang;
|
|
16
|
-
}
|
|
17
|
-
get currentLang() {
|
|
18
|
-
return this._currentLang;
|
|
19
|
-
}
|
|
20
|
-
set(lang) {
|
|
21
|
-
this._currentLang = lang;
|
|
22
|
-
localStorage.setItem(this._key, lang);
|
|
23
|
-
}
|
|
24
|
-
translate(key) {
|
|
25
|
-
let translation = key;
|
|
26
|
-
if (this._translations[this.currentLang] && this._translations[this.currentLang].Values && this._translations[this.currentLang].Values[key]) {
|
|
27
|
-
translation = (this._translations[this.currentLang].Values[this._plataforma.Config.dictionary] || {})[key] || this._translations[this.currentLang].Values[key];
|
|
28
|
-
if (typeof translation != 'string')
|
|
29
|
-
translation = key;
|
|
30
|
-
}
|
|
31
|
-
return translation;
|
|
32
|
-
}
|
|
33
|
-
getCalendar() {
|
|
34
|
-
if (this._translations[this.currentLang] && this._translations[this.currentLang].Calendar) {
|
|
35
|
-
return this._translations[this.currentLang].Calendar;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
instant(key) {
|
|
39
|
-
return this.translate(key);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/** @nocollapse */ InfoTranslateService.ɵfac = function InfoTranslateService_Factory(t) { return new (t || InfoTranslateService)(i0.ɵɵinject(DICTIONARIES_CONFIG), i0.ɵɵinject(i1.InfoPlatformModel)); };
|
|
43
|
-
/** @nocollapse */ InfoTranslateService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: InfoTranslateService, factory: InfoTranslateService.ɵfac, providedIn: 'root' });
|
|
44
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoTranslateService, [{
|
|
45
|
-
type: Injectable,
|
|
46
|
-
args: [{
|
|
47
|
-
providedIn: 'root'
|
|
48
|
-
}]
|
|
49
|
-
}], function () { return [{ type: undefined, decorators: [{
|
|
50
|
-
type: Inject,
|
|
51
|
-
args: [DICTIONARIES_CONFIG]
|
|
52
|
-
}] }, { type: i1.InfoPlatformModel }]; }, null); })();
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL3NlcnZpY2UvdHJhbnNsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUt2RCxNQUFNLE9BQU8sb0JBQW9CO0lBUTdCLFlBQWlELGFBQWtCLEVBQVUsV0FBOEI7UUFBMUQsa0JBQWEsR0FBYixhQUFhLENBQUs7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFObkcsU0FBSSxHQUFXLGFBQWEsQ0FBQztRQVFqQyxJQUFJLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyxJQUFJLElBQUksSUFBSSxJQUFJO1lBQ1osSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7O1lBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFWRCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFVTSxHQUFHLENBQUMsSUFBWTtRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFXO1FBQ3hCLElBQUksV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUV0QixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekksV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMvSixJQUFJLE9BQU8sV0FBVyxJQUFJLFFBQVE7Z0JBQzlCLFdBQVcsR0FBRyxHQUFHLENBQUM7U0FDekI7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFO1lBQ3ZGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQ3hEO0lBQ0wsQ0FBQztJQUVNLE9BQU8sQ0FBQyxHQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDOzsyR0F6Q1Esb0JBQW9CLGNBUVQsbUJBQW1CO3lHQVI5QixvQkFBb0IsV0FBcEIsb0JBQW9CLG1CQUZqQixNQUFNO3VGQUVULG9CQUFvQjtjQUhoQyxVQUFVO2VBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7O3NCQVNnQixNQUFNO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEluZm9QbGF0Zm9ybU1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvcGxhdGZvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBESUNUSU9OQVJJRVNfQ09ORklHIH0gZnJvbSBcIi4uL2dsb2JhbC1jb25maWdcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5mb1RyYW5zbGF0ZVNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBfY3VycmVudExhbmc6IHN0cmluZztcclxuICAgIHByaXZhdGUgX2tleTogc3RyaW5nID0gJ2N1cnJlbnRMYW5nJztcclxuXHJcbiAgICBwdWJsaWMgZ2V0IGN1cnJlbnRMYW5nKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50TGFuZztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KERJQ1RJT05BUklFU19DT05GSUcpIHByaXZhdGUgX3RyYW5zbGF0aW9uczogYW55LCBwcml2YXRlIF9wbGF0YWZvcm1hOiBJbmZvUGxhdGZvcm1Nb2RlbCkge1xyXG4gICAgICAgIFxyXG4gICAgICAgIGxldCBsYW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5fa2V5KTtcclxuICAgICAgICBpZiAobGFuZyA9PSBudWxsKVxyXG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50TGFuZyA9ICdwdC1icic7XHJcbiAgICAgICAgZWxzZSB0aGlzLl9jdXJyZW50TGFuZyA9IGxhbmc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldChsYW5nOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jdXJyZW50TGFuZyA9IGxhbmc7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5fa2V5LCBsYW5nKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdHJhbnNsYXRlKGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgdHJhbnNsYXRpb24gPSBrZXk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl90cmFuc2xhdGlvbnNbdGhpcy5jdXJyZW50TGFuZ10gJiYgdGhpcy5fdHJhbnNsYXRpb25zW3RoaXMuY3VycmVudExhbmddLlZhbHVlcyAmJiB0aGlzLl90cmFuc2xhdGlvbnNbdGhpcy5jdXJyZW50TGFuZ10uVmFsdWVzW2tleV0pIHtcclxuICAgICAgICAgICAgdHJhbnNsYXRpb24gPSAodGhpcy5fdHJhbnNsYXRpb25zW3RoaXMuY3VycmVudExhbmddLlZhbHVlc1t0aGlzLl9wbGF0YWZvcm1hLkNvbmZpZy5kaWN0aW9uYXJ5XSB8fCB7fSlba2V5XSB8fCB0aGlzLl90cmFuc2xhdGlvbnNbdGhpcy5jdXJyZW50TGFuZ10uVmFsdWVzW2tleV07XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdHJhbnNsYXRpb24gIT0gJ3N0cmluZycpXHJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbiA9IGtleTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cmFuc2xhdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0Q2FsZW5kYXIoKTogYW55IHtcclxuICAgICAgICBpZiAodGhpcy5fdHJhbnNsYXRpb25zW3RoaXMuY3VycmVudExhbmddICYmIHRoaXMuX3RyYW5zbGF0aW9uc1t0aGlzLmN1cnJlbnRMYW5nXS5DYWxlbmRhcikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRpb25zW3RoaXMuY3VycmVudExhbmddLkNhbGVuZGFyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaW5zdGFudChrZXk6IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZShrZXkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as CryptoJS from 'crypto-js';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class Utilities {
|
|
5
|
-
getGuid() {
|
|
6
|
-
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
7
|
-
const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r & 0x3 | 0x8);
|
|
8
|
-
return v.toString(16);
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
getGuidEmpty() {
|
|
12
|
-
return '00000000-0000-0000-0000-000000000000';
|
|
13
|
-
}
|
|
14
|
-
isGuid(value) {
|
|
15
|
-
return ("" + value).match('^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') !== null;
|
|
16
|
-
}
|
|
17
|
-
base64ToArrayBuffer(base64) {
|
|
18
|
-
var binaryString = window.atob(base64);
|
|
19
|
-
var binaryLen = binaryString.length;
|
|
20
|
-
var bytes = new Uint8Array(binaryLen);
|
|
21
|
-
for (var i = 0; i < binaryLen; i++) {
|
|
22
|
-
var ascii = binaryString.charCodeAt(i);
|
|
23
|
-
bytes[i] = ascii;
|
|
24
|
-
}
|
|
25
|
-
return bytes;
|
|
26
|
-
}
|
|
27
|
-
openOrDownload(title, blob) {
|
|
28
|
-
let fileURL = URL.createObjectURL(blob);
|
|
29
|
-
if (title.indexOf("pdf") > -1)
|
|
30
|
-
window.open(fileURL, title);
|
|
31
|
-
else {
|
|
32
|
-
let elementA = document.createElement('a');
|
|
33
|
-
elementA.href = fileURL;
|
|
34
|
-
elementA.download = title;
|
|
35
|
-
document.body.appendChild(elementA);
|
|
36
|
-
elementA.click();
|
|
37
|
-
document.body.removeChild(elementA);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
removerAcentos(val) {
|
|
41
|
-
if (val == null)
|
|
42
|
-
return '';
|
|
43
|
-
var normalizeFunction = String.prototype.normalize ? (str) => str.normalize('NFD') : (str) => str;
|
|
44
|
-
return normalizeFunction(val).replace(/[\u0300-\u036f]/g, "");
|
|
45
|
-
}
|
|
46
|
-
getFormatos() {
|
|
47
|
-
return [{ Id: "EXCEL", Nome: "Excel", MimeType: "application/vnd.ms-excel", Extensao: "xls" },
|
|
48
|
-
{ Id: "PDF", Nome: "PDF", MimeType: "application/pdf", Extensao: "pdf" }];
|
|
49
|
-
}
|
|
50
|
-
getFormatosExcel() {
|
|
51
|
-
return [{ Id: 'PP', Nome: 'Excel Português com Separador Decimal [.]' },
|
|
52
|
-
{ Id: 'PV', Nome: 'Excel Português com Separador Decimal [,]' },
|
|
53
|
-
{ Id: 'IP', Nome: 'Excel Inglês com Separador Decimal [.]' },
|
|
54
|
-
{ Id: 'IV', Nome: 'Excel Inglês com Separador Decimal [,]' }];
|
|
55
|
-
}
|
|
56
|
-
getStatus() {
|
|
57
|
-
return [{ Id: "A", Nome: "Ativo" },
|
|
58
|
-
{ Id: "P", Nome: "Pendente" }];
|
|
59
|
-
}
|
|
60
|
-
getStatusCompleto() {
|
|
61
|
-
return [{ Id: "C", Nome: "Cadastrado", Selecionado: true },
|
|
62
|
-
{ Id: "F", Nome: "Feito", Selecionado: false },
|
|
63
|
-
{ Id: "O", Nome: "Conferido", Selecionado: true },
|
|
64
|
-
{ Id: "R", Nome: "Rejeitado", Selecionado: false },
|
|
65
|
-
{ Id: "I", Nome: "Inativo", Selecionado: false }];
|
|
66
|
-
}
|
|
67
|
-
getStatusProcessamento() {
|
|
68
|
-
return [{ Id: "A", Nome: "AguardandoProcessamento" },
|
|
69
|
-
{ Id: "E", Nome: "EmProcessamento" },
|
|
70
|
-
{ Id: "P", Nome: "Processado" },
|
|
71
|
-
{ Id: "I", Nome: "Inativo" },
|
|
72
|
-
{ Id: "Z", Nome: "Erro" }];
|
|
73
|
-
}
|
|
74
|
-
getFormatoIdiomas() {
|
|
75
|
-
return [{ Id: "en", Nome: "English" },
|
|
76
|
-
{ Id: "pt-BR", Nome: "Português" }];
|
|
77
|
-
}
|
|
78
|
-
getGeneros() {
|
|
79
|
-
return [{ Id: 'M', Nome: 'Masculino' },
|
|
80
|
-
{ Id: 'F', Nome: 'Feminino' }];
|
|
81
|
-
}
|
|
82
|
-
getTiposEvidencia() {
|
|
83
|
-
return [{ Id: 1, Nome: 'Telefone' },
|
|
84
|
-
{ Id: 2, Nome: 'Email' },
|
|
85
|
-
{ Id: 3, Nome: 'Documento' }];
|
|
86
|
-
}
|
|
87
|
-
getOrdens() {
|
|
88
|
-
return [{ Id: "nome-asc", Nome: "NomeCrescente" },
|
|
89
|
-
{ Id: "nome-desc", Nome: "NomeDecrescente" },
|
|
90
|
-
{ Id: "valor-asc", Nome: "ValorCrescente" },
|
|
91
|
-
{ Id: "valor-desc", Nome: "ValorDecrescente" }];
|
|
92
|
-
}
|
|
93
|
-
validarEmail(form, value, control) {
|
|
94
|
-
if (!value)
|
|
95
|
-
return;
|
|
96
|
-
let pattern = /^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$/;
|
|
97
|
-
let emails = value.split(';');
|
|
98
|
-
let invalido = emails.some(email => email && !pattern.test(email.trim()));
|
|
99
|
-
if (invalido)
|
|
100
|
-
form.form.controls[control].setErrors({ 'invalid': true });
|
|
101
|
-
}
|
|
102
|
-
setLocalStorage(key, value) {
|
|
103
|
-
localStorage.setItem(key, this.criptografar(value));
|
|
104
|
-
}
|
|
105
|
-
getLocalStorage(key) {
|
|
106
|
-
var data = this.descriptografar(localStorage.getItem(key));
|
|
107
|
-
if (data == null || data == '')
|
|
108
|
-
return null;
|
|
109
|
-
return data;
|
|
110
|
-
}
|
|
111
|
-
isIE() {
|
|
112
|
-
var userAgent = navigator.userAgent;
|
|
113
|
-
return userAgent.indexOf("MSIE ") > -1 || userAgent.indexOf("Trident/") > -1;
|
|
114
|
-
}
|
|
115
|
-
retornaTexto(texto) {
|
|
116
|
-
var div = document.createElement("div");
|
|
117
|
-
div.innerHTML = texto;
|
|
118
|
-
return div.innerText || div.textContent;
|
|
119
|
-
}
|
|
120
|
-
criptografar(texto) {
|
|
121
|
-
try {
|
|
122
|
-
return CryptoJS.AES.encrypt(texto, "GKxLtQg2at").toString();
|
|
123
|
-
}
|
|
124
|
-
catch (e) {
|
|
125
|
-
return null;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
descriptografar(texto) {
|
|
129
|
-
try {
|
|
130
|
-
return CryptoJS.AES.decrypt(texto, "GKxLtQg2at").toString(CryptoJS.enc.Utf8);
|
|
131
|
-
}
|
|
132
|
-
catch (e) {
|
|
133
|
-
return null;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
/** @nocollapse */ Utilities.ɵfac = function Utilities_Factory(t) { return new (t || Utilities)(); };
|
|
138
|
-
/** @nocollapse */ Utilities.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: Utilities, factory: Utilities.ɵfac });
|
|
139
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Utilities, [{
|
|
140
|
-
type: Injectable
|
|
141
|
-
}], null, null); })();
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5mby1saWJyYXJ5L3NyYy91dGlscy91dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQzs7QUFHdEMsTUFBTSxPQUFPLFNBQVM7SUFDbEIsT0FBTztRQUNILE9BQU8sc0NBQXNDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFTLENBQUM7WUFDckUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBRSxDQUFDO1lBQ3hFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxZQUFZO1FBQ1IsT0FBTyxzQ0FBc0MsQ0FBQztJQUNsRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUs7UUFDUixPQUFPLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQywrRUFBK0UsQ0FBQyxLQUFLLElBQUksQ0FBQztJQUN4SCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBTTtRQUN0QixJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLElBQUksU0FBUyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDcEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFD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QVM7dUZBQVQsU0FBUztjQURyQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBDcnlwdG9KUyBmcm9tICdjcnlwdG8tanMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVXRpbGl0aWVzIHtcclxuICAgIGdldEd1aWQoKSA6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgZnVuY3Rpb24oYykge1xyXG4gICAgICAgICAgICBjb25zdCByID0gTWF0aC5yYW5kb20oKSAqIDE2IHwgMCwgdiA9IGMgPT09ICd4JyA/IHIgOiAoIHIgJiAweDMgfCAweDggKTtcclxuICAgICAgICAgICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBnZXRHdWlkRW1wdHkoKSA6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICcwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAnO1xyXG4gICAgfVxyXG5cclxuICAgIGlzR3VpZCh2YWx1ZSkgOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFwiXCIgKyB2YWx1ZSkubWF0Y2goJ15bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kJykgIT09IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgYmFzZTY0VG9BcnJheUJ1ZmZlcihiYXNlNjQpOiBhbnkge1xyXG4gICAgICAgIHZhciBiaW5hcnlTdHJpbmcgPSB3aW5kb3cuYXRvYihiYXNlNjQpO1xyXG4gICAgICAgIHZhciBiaW5hcnlMZW4gPSBiaW5hcnlTdHJpbmcubGVuZ3RoO1xyXG4gICAgICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGJpbmFyeUxlbik7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiaW5hcnlMZW47IGkrKykge1xyXG4gICAgICAgICAgIHZhciBhc2NpaSA9IGJpbmFyeVN0cmluZy5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgICAgIGJ5dGVzW2ldID0gYXNjaWk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBieXRlcztcclxuICAgIH1cclxuXHJcbiAgICBvcGVuT3JEb3dubG9hZCh0aXRsZSwgYmxvYikge1xyXG4gICAgICAgIGxldCBmaWxlVVJMID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgaWYgKHRpdGxlLmluZGV4T2YoXCJwZGZcIikgPiAtMSlcclxuICAgICAgICAgICAgd2luZG93Lm9wZW4oZmlsZVVSTCwgdGl0bGUpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgZWxlbWVudEE6IEhUTUxBbmNob3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpIGFzIEhUTUxBbmNob3JFbGVtZW50O1xyXG4gICAgICAgICAgICBlbGVtZW50QS5ocmVmID0gZmlsZVVSTDtcclxuICAgICAgICAgICAgZWxlbWVudEEuZG93bmxvYWQgPSB0aXRsZTtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50QSk7XHJcbiAgICAgICAgICAgIGVsZW1lbnRBLmNsaWNrKCk7ICAgICAgICBcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtZW50QSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZXJBY2VudG9zKHZhbDogc3RyaW5nKSA6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHZhbCA9PSBudWxsKVxyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgdmFyIG5vcm1hbGl6ZUZ1bmN0aW9uID0gU3RyaW5nLnByb3RvdHlwZS5ub3JtYWxpemUgPyAoc3RyKSA9PiBzdHIubm9ybWFsaXplKCdORkQnKSA6IChzdHIpID0+IHN0cjtcclxuICAgICAgICByZXR1cm4gbm9ybWFsaXplRnVuY3Rpb24odmFsKS5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCBcIlwiKVxyXG4gICAgfVxyXG5cclxuICAgIGdldEZvcm1hdG9zKCk6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gWyB7IElkOiBcIkVYQ0VMXCIsIE5vbWU6IFwiRXhjZWxcIiwgTWltZVR5cGU6IFwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsXCIsIEV4dGVuc2FvOiBcInhsc1wiIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogXCJQREZcIiwgTm9tZTogXCJQREZcIiwgTWltZVR5cGU6IFwiYXBwbGljYXRpb24vcGRmXCIsIEV4dGVuc2FvOiBcInBkZlwiIH0gXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRGb3JtYXRvc0V4Y2VsKCk6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gWyB7IElkOiAnUFAnLCBOb21lOiAnRXhjZWwgUG9ydHVndcOqcyBjb20gU2VwYXJhZG9yIERlY2ltYWwgWy5dJyB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6ICdQVicsIE5vbWU6ICdFeGNlbCBQb3J0dWd1w6pzIGNvbSBTZXBhcmFkb3IgRGVjaW1hbCBbLF0nIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogJ0lQJywgTm9tZTogJ0V4Y2VsIEluZ2zDqnMgY29tIFNlcGFyYWRvciBEZWNpbWFsIFsuXScgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiAnSVYnLCBOb21lOiAnRXhjZWwgSW5nbMOqcyBjb20gU2VwYXJhZG9yIERlY2ltYWwgWyxdJyB9IF07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3RhdHVzKCk6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gWyB7IElkOiBcIkFcIiwgTm9tZTogXCJBdGl2b1wiIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogXCJQXCIsIE5vbWU6IFwiUGVuZGVudGVcIiB9IF07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3RhdHVzQ29tcGxldG8oKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiBbIHsgSWQ6IFwiQ1wiLCBOb21lOiBcIkNhZGFzdHJhZG9cIiwgU2VsZWNpb25hZG86IHRydWUgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiBcIkZcIiwgTm9tZTogXCJGZWl0b1wiLCBTZWxlY2lvbmFkbzogZmFsc2UgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiBcIk9cIiwgTm9tZTogXCJDb25mZXJpZG9cIiwgU2VsZWNpb25hZG86IHRydWUgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiBcIlJcIiwgTm9tZTogXCJSZWplaXRhZG9cIiwgU2VsZWNpb25hZG86IGZhbHNlIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogXCJJXCIsIE5vbWU6IFwiSW5hdGl2b1wiLCBTZWxlY2lvbmFkbzogZmFsc2UgfSBdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFN0YXR1c1Byb2Nlc3NhbWVudG8oKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiBbIHsgSWQ6IFwiQVwiLCBOb21lOiBcIkFndWFyZGFuZG9Qcm9jZXNzYW1lbnRvXCIgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiBcIkVcIiwgTm9tZTogXCJFbVByb2Nlc3NhbWVudG9cIiB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwiUFwiLCBOb21lOiBcIlByb2Nlc3NhZG9cIiB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwiSVwiLCBOb21lOiBcIkluYXRpdm9cIiB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwiWlwiLCBOb21lOiBcIkVycm9cIiB9IF07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Rm9ybWF0b0lkaW9tYXMoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiBbIHsgSWQ6IFwiZW5cIiwgTm9tZTogXCJFbmdsaXNoXCIgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiBcInB0LUJSXCIsIE5vbWU6IFwiUG9ydHVndcOqc1wiIH0gXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRHZW5lcm9zKCk6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gWyB7IElkOiAnTScsIE5vbWU6ICdNYXNjdWxpbm8nIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogJ0YnLCBOb21lOiAnRmVtaW5pbm8nIH0gXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRUaXBvc0V2aWRlbmNpYSgpOiBhbnlbXSB7XHJcbiAgICAgICAgcmV0dXJuIFsgeyBJZDogMSwgTm9tZTogJ1RlbGVmb25lJ30sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogMiwgTm9tZTogJ0VtYWlsJ30sXHJcbiAgICAgICAgICAgICAgICAge0lkOiAzLCBOb21lOiAnRG9jdW1lbnRvJ30gXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRPcmRlbnMoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiBbIHtJZDogXCJub21lLWFzY1wiLCBOb21lOiBcIk5vbWVDcmVzY2VudGVcIn0sXHJcbiAgICAgICAgICAgICAgICAge0lkOiBcIm5vbWUtZGVzY1wiLCBOb21lOiBcIk5vbWVEZWNyZXNjZW50ZVwifSxcclxuICAgICAgICAgICAgICAgICB7SWQ6IFwidmFsb3ItYXNjXCIsIE5vbWU6IFwiVmFsb3JDcmVzY2VudGVcIn0sXHJcbiAgICAgICAgICAgICAgICAge0lkOiBcInZhbG9yLWRlc2NcIiwgTm9tZTogXCJWYWxvckRlY3Jlc2NlbnRlXCJ9IF07XHJcbiAgICB9XHJcblxyXG4gICAgdmFsaWRhckVtYWlsKGZvcm0sIHZhbHVlLCBjb250cm9sKSB7XHJcbiAgICAgICAgaWYgKCF2YWx1ZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGxldCBwYXR0ZXJuID0gL14oW2EtekEtWjAtOV9cXC1cXC5dKylAKFthLXpBLVowLTlfXFwtXFwuXSspXFwuKFthLXpBLVpdezIsNX0pJC87XHJcbiAgICAgICAgbGV0IGVtYWlsczogc3RyaW5nW10gPSB2YWx1ZS5zcGxpdCgnOycpO1xyXG4gICAgICAgIGxldCBpbnZhbGlkbyA9IGVtYWlscy5zb21lKGVtYWlsID0+IGVtYWlsICYmICFwYXR0ZXJuLnRlc3QoZW1haWwudHJpbSgpKSk7XHJcblxyXG4gICAgICAgIGlmIChpbnZhbGlkbylcclxuICAgICAgICAgICAgZm9ybS5mb3JtLmNvbnRyb2xzW2NvbnRyb2xdLnNldEVycm9ycyggeyAnaW52YWxpZCc6IHRydWUgfSApO1xyXG4gICAgfVxyXG5cclxuICAgIHNldExvY2FsU3RvcmFnZShrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdGhpcy5jcmlwdG9ncmFmYXIodmFsdWUpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRMb2NhbFN0b3JhZ2Uoa2V5OiBzdHJpbmcpOiBhbnkge1xyXG4gICAgICAgIHZhciBkYXRhID0gdGhpcy5kZXNjcmlwdG9ncmFmYXIobG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSk7XHJcbiAgICAgICAgaWYgKGRhdGEgPT0gbnVsbCB8fCBkYXRhID09ICcnKSByZXR1cm4gbnVsbDtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBpc0lFKCkge1xyXG4gICAgICAgIHZhciB1c2VyQWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50O1xyXG4gICAgICAgIHJldHVybiB1c2VyQWdlbnQuaW5kZXhPZihcIk1TSUUgXCIpID4gLTEgfHwgdXNlckFnZW50LmluZGV4T2YoXCJUcmlkZW50L1wiKSA+IC0xO1xyXG4gICAgfVxyXG5cclxuICAgIHJldG9ybmFUZXh0byh0ZXh0bykge1xyXG4gICAgICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpXHJcbiAgICAgICAgZGl2LmlubmVySFRNTCA9IHRleHRvO1xyXG4gICAgICAgIHJldHVybiBkaXYuaW5uZXJUZXh0IHx8IGRpdi50ZXh0Q29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICBjcmlwdG9ncmFmYXIodGV4dG8pIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gQ3J5cHRvSlMuQUVTLmVuY3J5cHQodGV4dG8sIFwiR0t4THRRZzJhdFwiKS50b1N0cmluZygpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBkZXNjcmlwdG9ncmFmYXIodGV4dG8pIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gQ3J5cHRvSlMuQUVTLmRlY3J5cHQodGV4dG8sIFwiR0t4THRRZzJhdFwiKS50b1N0cmluZyhDcnlwdG9KUy5lbmMuVXRmOCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=
|