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
|
@@ -0,0 +1,129 @@
|
|
|
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
|
+
_apiController;
|
|
17
|
+
_http;
|
|
18
|
+
_router;
|
|
19
|
+
_plataforma;
|
|
20
|
+
_utilities;
|
|
21
|
+
token;
|
|
22
|
+
constructor(_apiController, _http, _router, _plataforma, _utilities) {
|
|
23
|
+
this._apiController = _apiController;
|
|
24
|
+
this._http = _http;
|
|
25
|
+
this._router = _router;
|
|
26
|
+
this._plataforma = _plataforma;
|
|
27
|
+
this._utilities = _utilities;
|
|
28
|
+
}
|
|
29
|
+
getToken() {
|
|
30
|
+
this.token = this._utilities.getLocalStorage(this._plataforma.TokenKey);
|
|
31
|
+
if (this.token == null) {
|
|
32
|
+
this._router.navigateByUrl('');
|
|
33
|
+
return '';
|
|
34
|
+
}
|
|
35
|
+
else
|
|
36
|
+
return 'Bearer ' + this.token;
|
|
37
|
+
}
|
|
38
|
+
getHeaderDefault() {
|
|
39
|
+
let headers = new HttpHeaders();
|
|
40
|
+
if (this._plataforma.Config.headers != null)
|
|
41
|
+
this._plataforma.Config.headers.forEach(item => headers = headers.set(item.key, item.value));
|
|
42
|
+
return headers;
|
|
43
|
+
}
|
|
44
|
+
getHeaderToken() {
|
|
45
|
+
return this.getHeaderDefault().set('Authorization', this.getToken());
|
|
46
|
+
}
|
|
47
|
+
getAPIUrl(controller) {
|
|
48
|
+
let api = '';
|
|
49
|
+
if (typeof (controller) == 'number')
|
|
50
|
+
api = this._apiController[controller].toString();
|
|
51
|
+
else
|
|
52
|
+
api = controller == null ? '' : controller.toString();
|
|
53
|
+
return this._plataforma.Config.webapiUrl + (api.replace('_', '/') + '/').toLowerCase();
|
|
54
|
+
}
|
|
55
|
+
getNoToken(controller, method, param) {
|
|
56
|
+
return this._http
|
|
57
|
+
.get(this.getAPIUrl(controller) + this.getMethod(method || '') + (param == null ? '' : ('?' + encodeURIComponent(this._utilities.jsonToEncrypt(param.replace(/null/g, '').replace(/undefined/g, ''))))), { headers: this.getHeaderDefault(), responseType: 'text' })
|
|
58
|
+
.pipe(map(r => new InfoDataAccessModel(this._utilities.decryptToJson(r))), catchError((e) => this.errorHandling(e)));
|
|
59
|
+
}
|
|
60
|
+
get(controller, method, param) {
|
|
61
|
+
return this._http
|
|
62
|
+
.get(this.getAPIUrl(controller) + this.getMethod(method || '') + (param == null ? '' : ('?' + encodeURIComponent(this._utilities.jsonToEncrypt(param.replace(/null/g, '').replace(/undefined/g, ''))))), { headers: this.getHeaderToken(), responseType: 'text' })
|
|
63
|
+
.pipe(map(r => new InfoDataAccessModel(this._utilities.decryptToJson(r))), catchError((e) => this.errorHandling(e)));
|
|
64
|
+
}
|
|
65
|
+
getById(controller, id) {
|
|
66
|
+
return this._http
|
|
67
|
+
.get(this.getAPIUrl(controller) + id.toString(), { headers: this.getHeaderToken(), responseType: 'text' })
|
|
68
|
+
.pipe(map(r => new InfoDataAccessModel(this._utilities.decryptToJson(r))), catchError((e) => this.errorHandling(e)));
|
|
69
|
+
}
|
|
70
|
+
postNoToken(controller, model, method) {
|
|
71
|
+
return this._http
|
|
72
|
+
.post(this.getAPIUrl(controller) + this.getMethod(method || ''), this._utilities.jsonToEncrypt(model), { headers: this.getHeaderDefault(), responseType: 'text' })
|
|
73
|
+
.pipe(map(r => new InfoDataAccessModel(this._utilities.decryptToJson(r))), catchError((e) => this.errorHandling(e)));
|
|
74
|
+
}
|
|
75
|
+
post(controller, model, method) {
|
|
76
|
+
return this._http
|
|
77
|
+
.post(this.getAPIUrl(controller) + this.getMethod(method || ''), this._utilities.jsonToEncrypt(model), { headers: this.getHeaderToken(), responseType: 'text' })
|
|
78
|
+
.pipe(map(r => new InfoDataAccessModel(this._utilities.decryptToJson(r))), catchError((e) => this.errorHandling(e, false)));
|
|
79
|
+
}
|
|
80
|
+
delete(controller, id, method) {
|
|
81
|
+
if (id == undefined || id == null)
|
|
82
|
+
alert('Id não informado');
|
|
83
|
+
return this._http
|
|
84
|
+
.delete(this.getAPIUrl(controller) + this.getMethod(method || '') + "?" + encodeURIComponent(this._utilities.jsonToEncrypt("id=" + id.toString())), { headers: this.getHeaderToken(), responseType: 'text' })
|
|
85
|
+
.pipe(map(r => new InfoDataAccessModel(this._utilities.decryptToJson(r))), catchError((e) => this.errorHandling(e)));
|
|
86
|
+
}
|
|
87
|
+
deleteByModel(controller, model, method) {
|
|
88
|
+
let httpOptions = {
|
|
89
|
+
headers: this.getHeaderToken(),
|
|
90
|
+
body: this._utilities.jsonToEncrypt(model),
|
|
91
|
+
};
|
|
92
|
+
return this._http
|
|
93
|
+
.delete(this.getAPIUrl(controller) + this.getMethod(method || ''), httpOptions)
|
|
94
|
+
.pipe(map(r => new InfoDataAccessModel(this._utilities.decryptToJson(r))), catchError((e) => this.errorHandling(e)));
|
|
95
|
+
}
|
|
96
|
+
request(controller, model, method, param) {
|
|
97
|
+
let formData = new FormData();
|
|
98
|
+
for (let index = 0; index < model.length; index++)
|
|
99
|
+
formData.append(model[index].name, model[index]);
|
|
100
|
+
return this._http
|
|
101
|
+
.request('POST', this.getAPIUrl(controller) + this.getMethod(method || '') + (param == null ? '' : ('?' + encodeURIComponent(this._utilities.jsonToEncrypt(param)))), { headers: this.getHeaderToken(), body: formData, responseType: 'text' })
|
|
102
|
+
.pipe(map(r => new InfoDataAccessModel(this._utilities.decryptToJson(r))), catchError((e) => this.errorHandling(e)));
|
|
103
|
+
}
|
|
104
|
+
errorHandling(e, redirect = true) {
|
|
105
|
+
if (e.status == 401)
|
|
106
|
+
document.location.href = '/#/login';
|
|
107
|
+
else if (redirect)
|
|
108
|
+
document.location.href = '/#/500';
|
|
109
|
+
let messages = new Array(e.message);
|
|
110
|
+
return of(new InfoDataAccessModel(null, false, messages));
|
|
111
|
+
}
|
|
112
|
+
getMethod(method) {
|
|
113
|
+
if (method == null || method.trim() == '' || method.indexOf('?') < 0)
|
|
114
|
+
return method ?? '';
|
|
115
|
+
return method.substring(0, method.indexOf('?')) + '?' + encodeURIComponent(this._utilities.jsonToEncrypt(method.substring(method.indexOf('?') + 1).replace(/null/g, '').replace(/undefined/g, '')));
|
|
116
|
+
}
|
|
117
|
+
/** @nocollapse */ static ɵ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)); };
|
|
118
|
+
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: InfoDataService, factory: InfoDataService.ɵfac, providedIn: 'root' });
|
|
119
|
+
}
|
|
120
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoDataService, [{
|
|
121
|
+
type: Injectable,
|
|
122
|
+
args: [{
|
|
123
|
+
providedIn: 'root'
|
|
124
|
+
}]
|
|
125
|
+
}], function () { return [{ type: undefined, decorators: [{
|
|
126
|
+
type: Inject,
|
|
127
|
+
args: [APICONTROLLER_CONFIG]
|
|
128
|
+
}] }, { type: i1.HttpClient }, { type: i2.Router }, { type: i3.InfoPlatformModel }, { type: i4.Utilities }]; }, null); })();
|
|
129
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5mby1saWJyYXJ5L3NyYy9zZXJ2aWNlL2RhdGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQWMsRUFBRSxFQUFtQixNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQUsvQyxNQUFNLE9BQU8sZUFBZTtJQUkwQjtJQUM5QjtJQUNBO0lBQ0E7SUFDQTtJQU5aLEtBQUssQ0FBUztJQUV0QixZQUFrRCxjQUFtQixFQUNqRCxLQUFpQixFQUNqQixPQUFlLEVBQ2YsV0FBOEIsRUFDOUIsVUFBcUI7UUFKUyxtQkFBYyxHQUFkLGNBQWMsQ0FBSztRQUNqRCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFDOUIsZUFBVSxHQUFWLFVBQVUsQ0FBVztJQUFJLENBQUM7SUFFdkMsUUFBUTtRQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FB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R0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4TSxDQUFDOzRGQXBLUSxlQUFlLGNBSUosb0JBQW9COytGQUovQixlQUFlLFdBQWYsZUFBZSxtQkFGWixNQUFNOzt1RkFFVCxlQUFlO2NBSDNCLFVBQVU7ZUFBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7c0JBS2dCLE1BQU07dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5mb0RhdGFBY2Nlc3NNb2RlbCB9IGZyb20gJy4uL21vZGVsL2RhdGEtYWNjZXNzLm1vZGVsJztcclxuaW1wb3J0IHsgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgT2JzZXJ2YWJsZUlucHV0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFQSUNPTlRST0xMRVJfQ09ORklHIH0gZnJvbSAnLi4vZ2xvYmFsLWNvbmZpZyc7XHJcbmltcG9ydCB7IEluZm9QbGF0Zm9ybU1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvcGxhdGZvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBVdGlsaXRpZXMgfSBmcm9tICcuLi91dGlscy91dGlsaXRpZXMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmZvRGF0YVNlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgdG9rZW46IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEFQSUNPTlRST0xMRVJfQ09ORklHKSBwcml2YXRlIF9hcGlDb250cm9sbGVyOiBhbnksIFxyXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCwgXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlciwgXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9wbGF0YWZvcm1hOiBJbmZvUGxhdGZvcm1Nb2RlbCwgXHJcbiAgICAgICAgICAgICAgICBwcml2YXRlIF91dGlsaXRpZXM6IFV0aWxpdGllcykgeyB9XHJcblxyXG4gICAgcHVibGljIGdldFRva2VuKCk6IHN0cmluZyB7XHJcbiAgICAgICAgdGhpcy50b2tlbiA9IHRoaXMuX3V0aWxpdGllcy5nZXRMb2NhbFN0b3JhZ2UodGhpcy5fcGxhdGFmb3JtYS5Ub2tlbktleSk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMudG9rZW4gPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgnJyk7XHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuXHJcbiAgICAgICAgfSBlbHNlIHJldHVybiAnQmVhcmVyICcgKyB0aGlzLnRva2VuO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRIZWFkZXJEZWZhdWx0KCk6IEh0dHBIZWFkZXJzIHtcclxuICAgICAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gICAgICAgIGlmICh0aGlzLl9wbGF0YWZvcm1hLkNvbmZpZy5oZWFkZXJzICE9IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMuX3BsYXRhZm9ybWEuQ29uZmlnLmhlYWRlcnMuZm9yRWFjaChpdGVtID0+IGhlYWRlcnMgPSBoZWFkZXJzLnNldChpdGVtLmtleSwgaXRlbS52YWx1ZSkpOyAgIFxyXG4gICAgICAgIHJldHVybiBoZWFkZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRIZWFkZXJUb2tlbigpOiBIdHRwSGVhZGVycyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SGVhZGVyRGVmYXVsdCgpLnNldCgnQXV0aG9yaXphdGlvbicsIHRoaXMuZ2V0VG9rZW4oKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEFQSVVybChjb250cm9sbGVyOiBhbnkpIHtcclxuICAgICAgICBsZXQgYXBpID0gJyc7XHJcblxyXG5cdFx0aWYgKHR5cGVvZihjb250cm9sbGVyKSA9PSAnbnVtYmVyJylcclxuXHRcdFx0YXBpID0gIHRoaXMuX2FwaUNvbnRyb2xsZXJbY29udHJvbGxlcl0udG9TdHJpbmcoKTtcclxuXHJcbiAgICAgICAgZWxzZSBhcGkgPSBjb250cm9sbGVyID09IG51bGwgPyAnJyA6IGNvbnRyb2xsZXIudG9TdHJpbmcoKTtcclxuICAgICAgICBcclxuXHRcdHJldHVybiB0aGlzLl9wbGF0YWZvcm1hLkNvbmZpZy53ZWJhcGlVcmwgKyAoYXBpLnJlcGxhY2UoJ18nLCAnLycpICsgJy8nKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXROb1Rva2VuKGNvbnRyb2xsZXI6IGFueSk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD47XHJcbiAgICBwdWJsaWMgZ2V0Tm9Ub2tlbihjb250cm9sbGVyOiBhbnksIG1ldGhvZD86IHN0cmluZyk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD47XHJcbiAgICBwdWJsaWMgZ2V0Tm9Ub2tlbihjb250cm9sbGVyOiBhbnksIG1ldGhvZD86IHN0cmluZywgcGFyYW0/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEluZm9EYXRhQWNjZXNzTW9kZWw+O1xyXG4gICAgcHVibGljIGdldE5vVG9rZW4oY29udHJvbGxlcjogYW55LCBtZXRob2Q/OiBzdHJpbmcsIHBhcmFtPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPiB7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgICAgICAgIC5nZXQodGhpcy5nZXRBUElVcmwoY29udHJvbGxlcikgKyB0aGlzLmdldE1ldGhvZChtZXRob2QgfHwgJycpICsgKHBhcmFtID09IG51bGwgPyAnJyA6ICgnPycgKyBlbmNvZGVVUklDb21wb25lbnQodGhpcy5fdXRpbGl0aWVzLmpzb25Ub0VuY3J5cHQocGFyYW0ucmVwbGFjZSgvbnVsbC9nLCAnJykucmVwbGFjZSgvdW5kZWZpbmVkL2csICcnKSkpKSksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJEZWZhdWx0KCksIHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKHIgPT4gbmV3IEluZm9EYXRhQWNjZXNzTW9kZWwodGhpcy5fdXRpbGl0aWVzLmRlY3J5cHRUb0pzb24ocikpKSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGU6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLmVycm9ySGFuZGxpbmcoZSkpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldChjb250cm9sbGVyOiBhbnkpOiBPYnNlcnZhYmxlPEluZm9EYXRhQWNjZXNzTW9kZWw+O1xyXG4gICAgcHVibGljIGdldChjb250cm9sbGVyOiBhbnksIG1ldGhvZD86IHN0cmluZyk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD47XHJcbiAgICBwdWJsaWMgZ2V0KGNvbnRyb2xsZXI6IGFueSwgbWV0aG9kPzogc3RyaW5nLCBwYXJhbT86IHN0cmluZyk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD47XHJcbiAgICBwdWJsaWMgZ2V0KGNvbnRyb2xsZXI6IGFueSwgbWV0aG9kPzogc3RyaW5nLCBwYXJhbT86IHN0cmluZyk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD4ge1xyXG4gICAgICAgIFxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgICAgICAgIC5nZXQodGhpcy5nZXRBUElVcmwoY29udHJvbGxlcikgKyB0aGlzLmdldE1ldGhvZChtZXRob2QgfHwgJycpICsgKHBhcmFtID09IG51bGwgPyAnJyA6ICgnPycgKyBlbmNvZGVVUklDb21wb25lbnQodGhpcy5fdXRpbGl0aWVzLmpzb25Ub0VuY3J5cHQocGFyYW0ucmVwbGFjZSgvbnVsbC9nLCAnJykucmVwbGFjZSgvdW5kZWZpbmVkL2csICcnKSkpKSksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJUb2tlbigpLCByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcChyID0+IG5ldyBJbmZvRGF0YUFjY2Vzc01vZGVsKHRoaXMuX3V0aWxpdGllcy5kZWNyeXB0VG9Kc29uKHIpKSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5lcnJvckhhbmRsaW5nKGUpKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRCeUlkKGNvbnRyb2xsZXI6IGFueSwgaWQ6IG51bWJlcik6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD4ge1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cFxyXG4gICAgICAgICAgICAuZ2V0KHRoaXMuZ2V0QVBJVXJsKGNvbnRyb2xsZXIpICsgaWQudG9TdHJpbmcoKSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlclRva2VuKCksIHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKHIgPT4gbmV3IEluZm9EYXRhQWNjZXNzTW9kZWwodGhpcy5fdXRpbGl0aWVzLmRlY3J5cHRUb0pzb24ocikpKSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGU6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLmVycm9ySGFuZGxpbmcoZSkpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHBvc3ROb1Rva2VuKGNvbnRyb2xsZXI6IGFueSwgbW9kZWw6IGFueSk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD47XHJcbiAgICBwdWJsaWMgcG9zdE5vVG9rZW4oY29udHJvbGxlcjogYW55LCBtb2RlbDogYW55LCBtZXRob2Q/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEluZm9EYXRhQWNjZXNzTW9kZWw+O1xyXG4gICAgcHVibGljIHBvc3ROb1Rva2VuKGNvbnRyb2xsZXI6IGFueSwgbW9kZWw6IGFueSwgbWV0aG9kPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPiB7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgICAgICAgIC5wb3N0KHRoaXMuZ2V0QVBJVXJsKGNvbnRyb2xsZXIpICsgdGhpcy5nZXRNZXRob2QobWV0aG9kIHx8ICcnKSwgdGhpcy5fdXRpbGl0aWVzLmpzb25Ub0VuY3J5cHQobW9kZWwpLCB7IGhlYWRlcnM6IHRoaXMuZ2V0SGVhZGVyRGVmYXVsdCgpLCByZXNwb25zZVR5cGU6ICd0ZXh0JyB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcChyID0+IG5ldyBJbmZvRGF0YUFjY2Vzc01vZGVsKHRoaXMuX3V0aWxpdGllcy5kZWNyeXB0VG9Kc29uKHIpKSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gdGhpcy5lcnJvckhhbmRsaW5nKGUpKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBwb3N0KGNvbnRyb2xsZXI6IGFueSwgbW9kZWw6IGFueSk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD47XHJcbiAgICBwdWJsaWMgcG9zdChjb250cm9sbGVyOiBhbnksIG1vZGVsOiBhbnksIG1ldGhvZD86IHN0cmluZyk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD47XHJcbiAgICBwdWJsaWMgcG9zdChjb250cm9sbGVyOiBhbnksIG1vZGVsOiBhbnksIG1ldGhvZD86IHN0cmluZyk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD4ge1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cFxyXG4gICAgICAgICAgICAucG9zdCh0aGlzLmdldEFQSVVybChjb250cm9sbGVyKSArIHRoaXMuZ2V0TWV0aG9kKG1ldGhvZCB8fCAnJyksIHRoaXMuX3V0aWxpdGllcy5qc29uVG9FbmNyeXB0KG1vZGVsKSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlclRva2VuKCksIHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKHIgPT4gbmV3IEluZm9EYXRhQWNjZXNzTW9kZWwodGhpcy5fdXRpbGl0aWVzLmRlY3J5cHRUb0pzb24ocikpKSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGU6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLmVycm9ySGFuZGxpbmcoZSwgZmFsc2UpKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkZWxldGUoY29udHJvbGxlcjogYW55LCBpZDogYW55KTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPlxyXG4gICAgcHVibGljIGRlbGV0ZShjb250cm9sbGVyOiBhbnksIGlkOiBhbnksIG1ldGhvZD86IHN0cmluZyk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD47XHJcbiAgICBwdWJsaWMgZGVsZXRlKGNvbnRyb2xsZXI6IGFueSwgaWQ6IGFueSwgbWV0aG9kPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPiB7XHJcblxyXG4gICAgICAgIGlmIChpZCA9PSB1bmRlZmluZWQgfHwgaWQgPT0gbnVsbClcclxuICAgICAgICAgICAgYWxlcnQoJ0lkIG7Do28gaW5mb3JtYWRvJyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwXHJcbiAgICAgICAgICAgIC5kZWxldGUodGhpcy5nZXRBUElVcmwoY29udHJvbGxlcikgKyB0aGlzLmdldE1ldGhvZChtZXRob2QgfHwgJycpICsgXCI/XCIgKyBlbmNvZGVVUklDb21wb25lbnQodGhpcy5fdXRpbGl0aWVzLmpzb25Ub0VuY3J5cHQoXCJpZD1cIiArIGlkLnRvU3RyaW5nKCkpKSwgeyBoZWFkZXJzOiB0aGlzLmdldEhlYWRlclRva2VuKCksIHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKHIgPT4gbmV3IEluZm9EYXRhQWNjZXNzTW9kZWwodGhpcy5fdXRpbGl0aWVzLmRlY3J5cHRUb0pzb24ocikpKSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGU6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLmVycm9ySGFuZGxpbmcoZSkpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRlbGV0ZUJ5TW9kZWwoY29udHJvbGxlcjogYW55LCBtb2RlbDogYW55KTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPlxyXG4gICAgcHVibGljIGRlbGV0ZUJ5TW9kZWwoY29udHJvbGxlcjogYW55LCBtb2RlbDogYW55LCBtZXRob2Q/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEluZm9EYXRhQWNjZXNzTW9kZWw+O1xyXG4gICAgcHVibGljIGRlbGV0ZUJ5TW9kZWwoY29udHJvbGxlcjogYW55LCBtb2RlbDogYW55LCBtZXRob2Q/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEluZm9EYXRhQWNjZXNzTW9kZWw+IHtcclxuXHJcbiAgICAgICAgbGV0IGh0dHBPcHRpb25zID0ge1xyXG4gICAgICAgICAgICBoZWFkZXJzOiB0aGlzLmdldEhlYWRlclRva2VuKCksXHJcbiAgICAgICAgICAgIGJvZHk6IHRoaXMuX3V0aWxpdGllcy5qc29uVG9FbmNyeXB0KG1vZGVsKSwgXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cFxyXG4gICAgICAgICAgICAuZGVsZXRlKHRoaXMuZ2V0QVBJVXJsKGNvbnRyb2xsZXIpICsgdGhpcy5nZXRNZXRob2QobWV0aG9kIHx8ICcnKSwgaHR0cE9wdGlvbnMpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKHIgPT4gbmV3IEluZm9EYXRhQWNjZXNzTW9kZWwodGhpcy5fdXRpbGl0aWVzLmRlY3J5cHRUb0pzb24ocikpKSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGU6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB0aGlzLmVycm9ySGFuZGxpbmcoZSkpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlcXVlc3QoY29udHJvbGxlcjogYW55LCBtb2RlbDogYW55W10sIG1ldGhvZD86IHN0cmluZyk6IE9ic2VydmFibGU8SW5mb0RhdGFBY2Nlc3NNb2RlbD5cclxuICAgIHB1YmxpYyByZXF1ZXN0KGNvbnRyb2xsZXI6IGFueSwgbW9kZWw6IGFueVtdLCBtZXRob2Q/OiBzdHJpbmcsIHBhcmFtPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPjtcclxuICAgIHB1YmxpYyByZXF1ZXN0KGNvbnRyb2xsZXI6IGFueSwgbW9kZWw6IGFueVtdLCBtZXRob2Q/OiBzdHJpbmcsIHBhcmFtPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbmZvRGF0YUFjY2Vzc01vZGVsPiB7XHJcblxyXG4gICAgICAgIGxldCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtb2RlbC5sZW5ndGg7IGluZGV4KyspXHJcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChtb2RlbFtpbmRleF0ubmFtZSwgbW9kZWxbaW5kZXhdKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBcclxuICAgICAgICAgICAgLnJlcXVlc3QoJ1BPU1QnLCB0aGlzLmdldEFQSVVybChjb250cm9sbGVyKSArIHRoaXMuZ2V0TWV0aG9kKG1ldGhvZCB8fCAnJykgKyAocGFyYW0gPT0gbnVsbCA/ICcnIDogKCc/JyArIGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLl91dGlsaXRpZXMuanNvblRvRW5jcnlwdChwYXJhbSkpKSksIHsgaGVhZGVyczogdGhpcy5nZXRIZWFkZXJUb2tlbigpLCBib2R5OiBmb3JtRGF0YSwgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAociA9PiBuZXcgSW5mb0RhdGFBY2Nlc3NNb2RlbCh0aGlzLl91dGlsaXRpZXMuZGVjcnlwdFRvSnNvbihyKSkpLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZTogSHR0cEVycm9yUmVzcG9uc2UpID0+IHRoaXMuZXJyb3JIYW5kbGluZyhlKSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGVycm9ySGFuZGxpbmcoZTogSHR0cEVycm9yUmVzcG9uc2UsIHJlZGlyZWN0OiBib29sZWFuID0gdHJ1ZSk6IE9ic2VydmFibGVJbnB1dDxJbmZvRGF0YUFjY2Vzc01vZGVsPiB7XHJcbiAgICAgICAgaWYgKGUuc3RhdHVzID09IDQwMSkgXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSAnLyMvbG9naW4nO1xyXG4gICAgICAgIGVsc2UgaWYgKHJlZGlyZWN0KSBcclxuICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICcvIy81MDAnO1xyXG5cclxuICAgICAgICBsZXQgbWVzc2FnZXM6IHN0cmluZ1tdID0gbmV3IEFycmF5KGUubWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIG9mKG5ldyBJbmZvRGF0YUFjY2Vzc01vZGVsKG51bGwsIGZhbHNlLCBtZXNzYWdlcykpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0TWV0aG9kKG1ldGhvZDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAobWV0aG9kID09IG51bGwgfHwgbWV0aG9kLnRyaW0oKSA9PSAnJyB8fCBtZXRob2QuaW5kZXhPZignPycpIDwgMCkgcmV0dXJuIG1ldGhvZCA/PyAnJztcclxuICAgICAgICBcclxuICAgICAgICByZXR1cm4gbWV0aG9kLnN1YnN0cmluZygwLCBtZXRob2QuaW5kZXhPZignPycpKSArICc/JyArIGVuY29kZVVSSUNvbXBvbmVudCh0aGlzLl91dGlsaXRpZXMuanNvblRvRW5jcnlwdChtZXRob2Quc3Vic3RyaW5nKG1ldGhvZC5pbmRleE9mKCc/JykgKyAxKS5yZXBsYWNlKC9udWxsL2csICcnKS5yZXBsYWNlKC91bmRlZmluZWQvZywgJycpKSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { InfoAuthenticationService } from './authentication.service';
|
|
2
|
-
export { InfoConfigurationService } from './configuration.service';
|
|
3
|
-
export { InfoDataService } from './data.service';
|
|
4
|
-
export { InfoTranslateService } from './translate.service';
|
|
5
|
-
export { InfoThemeService } from './theme.service';
|
|
1
|
+
export { InfoAuthenticationService } from './authentication.service';
|
|
2
|
+
export { InfoConfigurationService } from './configuration.service';
|
|
3
|
+
export { InfoDataService } from './data.service';
|
|
4
|
+
export { InfoTranslateService } from './translate.service';
|
|
5
|
+
export { InfoThemeService } from './theme.service';
|
|
6
6
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL3NlcnZpY2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgSW5mb0F1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vYXV0aGVudGljYXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCB7IEluZm9Db25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0IHsgSW5mb0RhdGFTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhLnNlcnZpY2UnO1xyXG5leHBvcnQgeyBJbmZvVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4vdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5leHBvcnQgeyBJbmZvVGhlbWVTZXJ2aWNlIH0gZnJvbSAnLi90aGVtZS5zZXJ2aWNlJzsiXX0=
|
|
@@ -0,0 +1,89 @@
|
|
|
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
|
+
_overlay;
|
|
11
|
+
_plataform;
|
|
12
|
+
_session;
|
|
13
|
+
constructor(_overlay, _plataform, _session) {
|
|
14
|
+
this._overlay = _overlay;
|
|
15
|
+
this._plataform = _plataform;
|
|
16
|
+
this._session = _session;
|
|
17
|
+
}
|
|
18
|
+
setTheme(theme) {
|
|
19
|
+
if (this._plataform.Themes != null) {
|
|
20
|
+
let item = this._plataform.Themes.find(t => t.name == theme);
|
|
21
|
+
this._plataform.UnificarTopbar = item == null ? false : item.unificarTopbar;
|
|
22
|
+
}
|
|
23
|
+
let _overlay = this._overlay.getContainerElement().classList;
|
|
24
|
+
let themeClassesToRemove = Array.from(_overlay).filter((item) => item.includes('-theme'));
|
|
25
|
+
if (themeClassesToRemove && themeClassesToRemove.length > 0)
|
|
26
|
+
_overlay.remove(themeClassesToRemove);
|
|
27
|
+
_overlay.remove('alternative-layout');
|
|
28
|
+
document.body.removeAttribute('class');
|
|
29
|
+
if (!this._plataform.ModoPrime) {
|
|
30
|
+
document.body.classList.add(theme);
|
|
31
|
+
_overlay.add(theme);
|
|
32
|
+
}
|
|
33
|
+
if (this._plataform.UnificarTopbar)
|
|
34
|
+
document.body.classList.add('alternative-layout');
|
|
35
|
+
if (this._plataform.MenuMin)
|
|
36
|
+
document.body.classList.add('menu-min');
|
|
37
|
+
if (this._plataform.ModoPrime)
|
|
38
|
+
this.setModePrime(true);
|
|
39
|
+
document.body.classList.add('ux' + (this._plataform.Config.ux ? this._plataform.Config.ux : 2));
|
|
40
|
+
sessionStorage.setItem('at', theme);
|
|
41
|
+
localStorage.setItem('at', theme);
|
|
42
|
+
}
|
|
43
|
+
setThemeByLoggedCompany() {
|
|
44
|
+
this.setTheme(this._session.TemaId > 0 ? `_${this._session.TemaId}-theme` : 'default-theme');
|
|
45
|
+
}
|
|
46
|
+
setMenuMin(value = null) {
|
|
47
|
+
this._plataform.MenuMin = value == null ? !this._plataform.MenuMin : value;
|
|
48
|
+
document.body.classList.remove('menu-min');
|
|
49
|
+
if (this._plataform.MenuMin)
|
|
50
|
+
document.body.classList.add('menu-min');
|
|
51
|
+
sessionStorage.setItem('mm', this._plataform.MenuMin.toString());
|
|
52
|
+
localStorage.setItem('mm', this._plataform.MenuMin.toString());
|
|
53
|
+
}
|
|
54
|
+
setModePrime(prime = null) {
|
|
55
|
+
this._plataform.ModoPrime = prime == null ? !this._plataform.ModoPrime : prime;
|
|
56
|
+
let _overlay = this._overlay.getContainerElement().classList;
|
|
57
|
+
let themesClassToRemove = Array.from(_overlay).filter(item => item.includes('-theme'));
|
|
58
|
+
document.body.classList.remove('modo-prime');
|
|
59
|
+
if (this._plataform.ModoPrime) {
|
|
60
|
+
document.body.classList.add('modo-prime');
|
|
61
|
+
let themePrime = 'default-prime';
|
|
62
|
+
if (this._session.TemaId > 0)
|
|
63
|
+
themePrime = `_${this._session.TemaId}-prime`;
|
|
64
|
+
else if (localStorage.getItem('at') != null)
|
|
65
|
+
themePrime = localStorage.getItem('at').replace('-theme', '-prime');
|
|
66
|
+
document.body.classList.add(themePrime);
|
|
67
|
+
if (themesClassToRemove && themesClassToRemove.length > 0) {
|
|
68
|
+
for (let themeToRemove of themesClassToRemove) {
|
|
69
|
+
_overlay.remove(themeToRemove);
|
|
70
|
+
document.body.classList.remove(themeToRemove);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (this._session.TemaId != null) {
|
|
75
|
+
this.setThemeByLoggedCompany();
|
|
76
|
+
}
|
|
77
|
+
sessionStorage.setItem('mp', this._plataform.ModoPrime.toString());
|
|
78
|
+
localStorage.setItem('mp', this._plataform.ModoPrime.toString());
|
|
79
|
+
}
|
|
80
|
+
/** @nocollapse */ static ɵfac = function InfoThemeService_Factory(t) { return new (t || InfoThemeService)(i0.ɵɵinject(i1.OverlayContainer), i0.ɵɵinject(i2.InfoPlatformModel), i0.ɵɵinject(i3.InfoSessionModel)); };
|
|
81
|
+
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: InfoThemeService, factory: InfoThemeService.ɵfac, providedIn: 'root' });
|
|
82
|
+
}
|
|
83
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoThemeService, [{
|
|
84
|
+
type: Injectable,
|
|
85
|
+
args: [{
|
|
86
|
+
providedIn: 'root'
|
|
87
|
+
}]
|
|
88
|
+
}], function () { return [{ type: i1.OverlayContainer }, { type: i2.InfoPlatformModel }, { type: i3.InfoSessionModel }]; }, null); })();
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2luZm8tbGlicmFyeS9zcmMvc2VydmljZS90aGVtZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBSzFELE1BQU0sT0FBTyxnQkFBZ0I7SUFFTjtJQUFtQztJQUFzQztJQUE1RixZQUFtQixRQUEwQixFQUFTLFVBQTZCLEVBQVMsUUFBMEI7UUFBbkcsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUFTLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQUksQ0FBQztJQUVwSCxRQUFRLENBQUMsS0FBSztRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLElBQUksRUFBQztZQUMvQixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUMvRTtRQUVELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDN0QsSUFBSSxvQkFBb0IsR0FBUSxLQUFLLENB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aUJBQ2pEO2FBQ0o7U0FDSjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ3JDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ2xDO1FBRUQsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNuRSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7NkZBckZRLGdCQUFnQjsrRkFBaEIsZ0JBQWdCLFdBQWhCLGdCQUFnQixtQkFGYixNQUFNOzt1RkFFVCxnQkFBZ0I7Y0FINUIsVUFBVTtlQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE92ZXJsYXlDb250YWluZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcclxuaW1wb3J0IHsgSW5mb1BsYXRmb3JtTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9wbGF0Zm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IEluZm9TZXNzaW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9zZXNzaW9uLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5mb1RoZW1lU2VydmljZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIF9vdmVybGF5OiBPdmVybGF5Q29udGFpbmVyLCBwdWJsaWMgX3BsYXRhZm9ybTogSW5mb1BsYXRmb3JtTW9kZWwsIHB1YmxpYyBfc2Vzc2lvbjogSW5mb1Nlc3Npb25Nb2RlbCkgeyB9XHJcblxyXG4gICAgcHVibGljIHNldFRoZW1lKHRoZW1lKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybS5UaGVtZXMgIT0gbnVsbCl7XHJcbiAgICAgICAgICAgIGxldCBpdGVtID0gdGhpcy5fcGxhdGFmb3JtLlRoZW1lcy5maW5kKHQgPT4gdC5uYW1lID09IHRoZW1lKTtcclxuICAgICAgICAgICAgdGhpcy5fcGxhdGFmb3JtLlVuaWZpY2FyVG9wYmFyID0gaXRlbSA9PSBudWxsID8gZmFsc2UgOiBpdGVtLnVuaWZpY2FyVG9wYmFyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IF9vdmVybGF5ID0gdGhpcy5fb3ZlcmxheS5nZXRDb250YWluZXJFbGVtZW50KCkuY2xhc3NMaXN0O1xyXG4gICAgICAgIGxldCB0aGVtZUNsYXNzZXNUb1JlbW92ZTogYW55ID0gQXJyYXkuZnJvbShfb3ZlcmxheSkuZmlsdGVyKChpdGVtOiBzdHJpbmcpID0+IGl0ZW0uaW5jbHVkZXMoJy10aGVtZScpKTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAodGhlbWVDbGFzc2VzVG9SZW1vdmUgJiYgdGhlbWVDbGFzc2VzVG9SZW1vdmUubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgX292ZXJsYXkucmVtb3ZlKHRoZW1lQ2xhc3Nlc1RvUmVtb3ZlKTtcclxuXHJcbiAgICAgICAgX292ZXJsYXkucmVtb3ZlKCdhbHRlcm5hdGl2ZS1sYXlvdXQnKTtcclxuXHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGUoJ2NsYXNzJyk7XHJcblxyXG4gICAgICAgIGlmKCF0aGlzLl9wbGF0YWZvcm0uTW9kb1ByaW1lKXtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKHRoZW1lKTtcclxuICAgICAgICAgICAgX292ZXJsYXkuYWRkKHRoZW1lKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9wbGF0YWZvcm0uVW5pZmljYXJUb3BiYXIpXHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnYWx0ZXJuYXRpdmUtbGF5b3V0Jyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybS5NZW51TWluKVxyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ21lbnUtbWluJyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybS5Nb2RvUHJpbWUpXHJcbiAgICAgICAgICAgIHRoaXMuc2V0TW9kZVByaW1lKHRydWUpO1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ3V4JyArICh0aGlzLl9wbGF0YWZvcm0uQ29uZmlnLnV4ID8gdGhpcy5fcGxhdGFmb3JtLkNvbmZpZy51eCA6IDIpKTtcclxuXHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXQnLCB0aGVtZSk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2F0JywgdGhlbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRUaGVtZUJ5TG9nZ2VkQ29tcGFueSgpIHtcclxuICAgICAgICB0aGlzLnNldFRoZW1lKHRoaXMuX3Nlc3Npb24uVGVtYUlkID4gMCA/IGBfJHt0aGlzLl9zZXNzaW9uLlRlbWFJZH0tdGhlbWVgIDogJ2RlZmF1bHQtdGhlbWUnKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0TWVudU1pbih2YWx1ZTogYm9vbGVhbiA9IG51bGwpe1xyXG4gICAgICAgIHRoaXMuX3BsYXRhZm9ybS5NZW51TWluID0gdmFsdWUgPT0gbnVsbCA/ICF0aGlzLl9wbGF0YWZvcm0uTWVudU1pbiA6IHZhbHVlO1xyXG5cclxuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ21lbnUtbWluJyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuX3BsYXRhZm9ybS5NZW51TWluKVxyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ21lbnUtbWluJyk7XHJcblxyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ21tJywgdGhpcy5fcGxhdGFmb3JtLk1lbnVNaW4udG9TdHJpbmcoKSk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21tJywgdGhpcy5fcGxhdGFmb3JtLk1lbnVNaW4udG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldE1vZGVQcmltZShwcmltZTogYm9vbGVhbiA9IG51bGwpe1xyXG4gICAgICAgIHRoaXMuX3BsYXRhZm9ybS5Nb2RvUHJpbWUgPSBwcmltZSA9PSBudWxsID8gIXRoaXMuX3BsYXRhZm9ybS5Nb2RvUHJpbWUgOiBwcmltZTtcclxuICAgICAgICBsZXQgX292ZXJsYXkgPSB0aGlzLl9vdmVybGF5LmdldENvbnRhaW5lckVsZW1lbnQoKS5jbGFzc0xpc3Q7XHJcbiAgICAgICAgbGV0IHRoZW1lc0NsYXNzVG9SZW1vdmUgPSBBcnJheS5mcm9tKF9vdmVybGF5KS5maWx0ZXIoaXRlbSA9PiBpdGVtLmluY2x1ZGVzKCctdGhlbWUnKSk7XHJcblxyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgnbW9kby1wcmltZScpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIGlmICh0aGlzLl9wbGF0YWZvcm0uTW9kb1ByaW1lKXtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdtb2RvLXByaW1lJyk7XHJcblxyXG4gICAgICAgICAgICBsZXQgdGhlbWVQcmltZSA9ICdkZWZhdWx0LXByaW1lJztcclxuICAgICAgICAgICAgaWYgKHRoaXMuX3Nlc3Npb24uVGVtYUlkID4gMClcclxuICAgICAgICAgICAgICAgIHRoZW1lUHJpbWUgPSBgXyR7dGhpcy5fc2Vzc2lvbi5UZW1hSWR9LXByaW1lYDtcclxuICAgICAgICAgICAgZWxzZSBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2F0JykgIT0gbnVsbClcclxuICAgICAgICAgICAgICAgIHRoZW1lUHJpbWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYXQnKS5yZXBsYWNlKCctdGhlbWUnLCAnLXByaW1lJyk7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCh0aGVtZVByaW1lKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGVtZXNDbGFzc1RvUmVtb3ZlICYmIHRoZW1lc0NsYXNzVG9SZW1vdmUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgdGhlbWVUb1JlbW92ZSBvZiB0aGVtZXNDbGFzc1RvUmVtb3ZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgX292ZXJsYXkucmVtb3ZlKHRoZW1lVG9SZW1vdmUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSh0aGVtZVRvUmVtb3ZlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fc2Vzc2lvbi5UZW1hSWQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLnNldFRoZW1lQnlMb2dnZWRDb21wYW55KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdtcCcsIHRoaXMuX3BsYXRhZm9ybS5Nb2RvUHJpbWUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21wJywgdGhpcy5fcGxhdGFmb3JtLk1vZG9QcmltZS50b1N0cmluZygpKTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -0,0 +1,57 @@
|
|
|
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
|
+
_translations;
|
|
8
|
+
_plataforma;
|
|
9
|
+
_currentLang;
|
|
10
|
+
_key = 'currentLang';
|
|
11
|
+
get currentLang() {
|
|
12
|
+
return this._currentLang;
|
|
13
|
+
}
|
|
14
|
+
constructor(_translations, _plataforma) {
|
|
15
|
+
this._translations = _translations;
|
|
16
|
+
this._plataforma = _plataforma;
|
|
17
|
+
let lang = sessionStorage.getItem(this._key) || localStorage.getItem(this._key);
|
|
18
|
+
if (lang == null)
|
|
19
|
+
this._currentLang = 'pt-br';
|
|
20
|
+
else
|
|
21
|
+
this._currentLang = lang;
|
|
22
|
+
}
|
|
23
|
+
set(lang) {
|
|
24
|
+
this._currentLang = lang;
|
|
25
|
+
localStorage.setItem(this._key, lang);
|
|
26
|
+
sessionStorage.setItem(this._key, lang);
|
|
27
|
+
}
|
|
28
|
+
translate(key) {
|
|
29
|
+
let translation = key;
|
|
30
|
+
if (this._translations[this.currentLang] && this._translations[this.currentLang].Values && this._translations[this.currentLang].Values[key]) {
|
|
31
|
+
translation = (this._translations[this.currentLang].Values[this._plataforma.Config.dictionary] || {})[key] || this._translations[this.currentLang].Values[key];
|
|
32
|
+
if (typeof translation != 'string')
|
|
33
|
+
translation = key;
|
|
34
|
+
}
|
|
35
|
+
return translation;
|
|
36
|
+
}
|
|
37
|
+
getCalendar() {
|
|
38
|
+
if (this._translations[this.currentLang] && this._translations[this.currentLang].Calendar) {
|
|
39
|
+
return this._translations[this.currentLang].Calendar;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
instant(key) {
|
|
43
|
+
return this.translate(key);
|
|
44
|
+
}
|
|
45
|
+
/** @nocollapse */ static ɵfac = function InfoTranslateService_Factory(t) { return new (t || InfoTranslateService)(i0.ɵɵinject(DICTIONARIES_CONFIG), i0.ɵɵinject(i1.InfoPlatformModel)); };
|
|
46
|
+
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: InfoTranslateService, factory: InfoTranslateService.ɵfac, providedIn: 'root' });
|
|
47
|
+
}
|
|
48
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InfoTranslateService, [{
|
|
49
|
+
type: Injectable,
|
|
50
|
+
args: [{
|
|
51
|
+
providedIn: 'root'
|
|
52
|
+
}]
|
|
53
|
+
}], function () { return [{ type: undefined, decorators: [{
|
|
54
|
+
type: Inject,
|
|
55
|
+
args: [DICTIONARIES_CONFIG]
|
|
56
|
+
}] }, { type: i1.InfoPlatformModel }]; }, null); })();
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9pbmZvLWxpYnJhcnkvc3JjL3NlcnZpY2UvdHJhbnNsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUt2RCxNQUFNLE9BQU8sb0JBQW9CO0lBUW9CO0lBQTRCO0lBUHJFLFlBQVksQ0FBUztJQUNyQixJQUFJLEdBQVcsYUFBYSxDQUFDO0lBRXJDLElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQWlELGFBQWtCLEVBQVUsV0FBOEI7UUFBMUQsa0JBQWEsR0FBYixhQUFhLENBQUs7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFFdkcsSUFBSSxJQUFJLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEYsSUFBSSxJQUFJLElBQUksSUFBSTtZQUNaLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDOztZQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUNsQyxDQUFDO0lBRU0sR0FBRyxDQUFDLElBQVk7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sU0FBUyxDQUFDLEdBQVc7UUFDeEIsSUFBSSxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBRXRCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN6SSxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQy9KLElBQUksT0FBTyxXQUFXLElBQUksUUFBUTtnQkFDOUIsV0FBVyxHQUFHLEdBQUcsQ0FBQztTQUN6QjtRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUU7WUFDdkYsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUM7U0FDeEQ7SUFDTCxDQUFDO0lBRU0sT0FBTyxDQUFDLEdBQVc7UUFDdEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7aUdBMUNRLG9CQUFvQixjQVFULG1CQUFtQjsrRkFSOUIsb0JBQW9CLFdBQXBCLG9CQUFvQixtQkFGakIsTUFBTTs7dUZBRVQsb0JBQW9CO2NBSGhDLFVBQVU7ZUFBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7c0JBU2dCLE1BQU07dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSW5mb1BsYXRmb3JtTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9wbGF0Zm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IERJQ1RJT05BUklFU19DT05GSUcgfSBmcm9tIFwiLi4vZ2xvYmFsLWNvbmZpZ1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmZvVHJhbnNsYXRlU2VydmljZSB7XHJcbiAgICBwcml2YXRlIF9jdXJyZW50TGFuZzogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfa2V5OiBzdHJpbmcgPSAnY3VycmVudExhbmcnO1xyXG5cclxuICAgIHB1YmxpYyBnZXQgY3VycmVudExhbmcoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRMYW5nO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRElDVElPTkFSSUVTX0NPTkZJRykgcHJpdmF0ZSBfdHJhbnNsYXRpb25zOiBhbnksIHByaXZhdGUgX3BsYXRhZm9ybWE6IEluZm9QbGF0Zm9ybU1vZGVsKSB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGV0IGxhbmcgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuX2tleSkgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5fa2V5KTtcclxuICAgICAgICBpZiAobGFuZyA9PSBudWxsKVxyXG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50TGFuZyA9ICdwdC1icic7XHJcbiAgICAgICAgZWxzZSB0aGlzLl9jdXJyZW50TGFuZyA9IGxhbmc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldChsYW5nOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jdXJyZW50TGFuZyA9IGxhbmc7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5fa2V5LCBsYW5nKTtcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuX2tleSwgbGFuZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRyYW5zbGF0ZShrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHRyYW5zbGF0aW9uID0ga2V5O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fdHJhbnNsYXRpb25zW3RoaXMuY3VycmVudExhbmddICYmIHRoaXMuX3RyYW5zbGF0aW9uc1t0aGlzLmN1cnJlbnRMYW5nXS5WYWx1ZXMgJiYgdGhpcy5fdHJhbnNsYXRpb25zW3RoaXMuY3VycmVudExhbmddLlZhbHVlc1trZXldKSB7XHJcbiAgICAgICAgICAgIHRyYW5zbGF0aW9uID0gKHRoaXMuX3RyYW5zbGF0aW9uc1t0aGlzLmN1cnJlbnRMYW5nXS5WYWx1ZXNbdGhpcy5fcGxhdGFmb3JtYS5Db25maWcuZGljdGlvbmFyeV0gfHwge30pW2tleV0gfHwgdGhpcy5fdHJhbnNsYXRpb25zW3RoaXMuY3VycmVudExhbmddLlZhbHVlc1trZXldO1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHRyYW5zbGF0aW9uICE9ICdzdHJpbmcnKVxyXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb24gPSBrZXk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdHJhbnNsYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldENhbGVuZGFyKCk6IGFueSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3RyYW5zbGF0aW9uc1t0aGlzLmN1cnJlbnRMYW5nXSAmJiB0aGlzLl90cmFuc2xhdGlvbnNbdGhpcy5jdXJyZW50TGFuZ10uQ2FsZW5kYXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0aW9uc1t0aGlzLmN1cnJlbnRMYW5nXS5DYWxlbmRhcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGluc3RhbnQoa2V5OiBzdHJpbmcpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUoa2V5KTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,189 @@
|
|
|
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
|
+
jsonToEncrypt(object) {
|
|
28
|
+
return this.criptografar(unescape(JSON.stringify(object)));
|
|
29
|
+
}
|
|
30
|
+
decryptToJson(value) {
|
|
31
|
+
return JSON.parse(this.descriptografar(value));
|
|
32
|
+
}
|
|
33
|
+
openOrDownload(title, blob) {
|
|
34
|
+
let fileURL = URL.createObjectURL(blob);
|
|
35
|
+
if (title.indexOf("pdf") > -1)
|
|
36
|
+
window.open(fileURL, title);
|
|
37
|
+
else {
|
|
38
|
+
let elementA = document.createElement('a');
|
|
39
|
+
elementA.href = fileURL;
|
|
40
|
+
elementA.download = title;
|
|
41
|
+
document.body.appendChild(elementA);
|
|
42
|
+
elementA.click();
|
|
43
|
+
document.body.removeChild(elementA);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
removerAcentos(val) {
|
|
47
|
+
if (val == null)
|
|
48
|
+
return '';
|
|
49
|
+
var normalizeFunction = String.prototype.normalize ? (str) => str.normalize('NFD') : (str) => str;
|
|
50
|
+
return normalizeFunction(val).replace(/[\u0300-\u036f]/g, "");
|
|
51
|
+
}
|
|
52
|
+
getFormatos() {
|
|
53
|
+
return [{ Id: "EXCEL", Nome: "Excel", MimeType: "application/vnd.ms-excel", Extensao: "xls" },
|
|
54
|
+
{ Id: "PDF", Nome: "PDF", MimeType: "application/pdf", Extensao: "pdf" }];
|
|
55
|
+
}
|
|
56
|
+
getFormatosExcel() {
|
|
57
|
+
return [{ Id: 'PP', Nome: 'Excel Português com Separador Decimal [.]' },
|
|
58
|
+
{ Id: 'PV', Nome: 'Excel Português com Separador Decimal [,]' },
|
|
59
|
+
{ Id: 'IP', Nome: 'Excel Inglês com Separador Decimal [.]' },
|
|
60
|
+
{ Id: 'IV', Nome: 'Excel Inglês com Separador Decimal [,]' }];
|
|
61
|
+
}
|
|
62
|
+
getStatus() {
|
|
63
|
+
return [{ Id: "A", Nome: "Ativo" },
|
|
64
|
+
{ Id: "P", Nome: "Pendente" }];
|
|
65
|
+
}
|
|
66
|
+
getStatusCompleto() {
|
|
67
|
+
return [{ Id: "C", Nome: "Cadastrado", Selecionado: true },
|
|
68
|
+
{ Id: "F", Nome: "Feito", Selecionado: false },
|
|
69
|
+
{ Id: "O", Nome: "Conferido", Selecionado: true },
|
|
70
|
+
{ Id: "R", Nome: "Rejeitado", Selecionado: false },
|
|
71
|
+
{ Id: "I", Nome: "Inativo", Selecionado: false }];
|
|
72
|
+
}
|
|
73
|
+
getStatusProcessamento() {
|
|
74
|
+
return [{ Id: "A", Nome: "AguardandoProcessamento" },
|
|
75
|
+
{ Id: "E", Nome: "EmProcessamento" },
|
|
76
|
+
{ Id: "P", Nome: "Processado" },
|
|
77
|
+
{ Id: "I", Nome: "Inativo" },
|
|
78
|
+
{ Id: "Z", Nome: "Erro" }];
|
|
79
|
+
}
|
|
80
|
+
getFormatoIdiomas() {
|
|
81
|
+
return [{ Id: "en", Nome: "English" },
|
|
82
|
+
{ Id: "pt-BR", Nome: "Português" }];
|
|
83
|
+
}
|
|
84
|
+
getGeneros() {
|
|
85
|
+
return [{ Id: 'M', Nome: 'Masculino' },
|
|
86
|
+
{ Id: 'F', Nome: 'Feminino' }];
|
|
87
|
+
}
|
|
88
|
+
getTiposEvidencia() {
|
|
89
|
+
return [{ Id: 1, Nome: 'Telefone' },
|
|
90
|
+
{ Id: 2, Nome: 'Email' },
|
|
91
|
+
{ Id: 3, Nome: 'Documento' }];
|
|
92
|
+
}
|
|
93
|
+
getOrdens() {
|
|
94
|
+
return [{ Id: "nome-asc", Nome: "NomeCrescente" },
|
|
95
|
+
{ Id: "nome-desc", Nome: "NomeDecrescente" },
|
|
96
|
+
{ Id: "valor-asc", Nome: "ValorCrescente" },
|
|
97
|
+
{ Id: "valor-desc", Nome: "ValorDecrescente" }];
|
|
98
|
+
}
|
|
99
|
+
validarEmail(form, value, control) {
|
|
100
|
+
if (!value)
|
|
101
|
+
return;
|
|
102
|
+
let pattern = /^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$/;
|
|
103
|
+
let emails = value.split(';');
|
|
104
|
+
let invalido = emails.some(email => email && !pattern.test(email.trim()));
|
|
105
|
+
if (invalido)
|
|
106
|
+
form.form.controls[control].setErrors({ 'invalid': true });
|
|
107
|
+
}
|
|
108
|
+
setLocalStorage(key, value) {
|
|
109
|
+
localStorage.setItem(key, this.criptografar(value));
|
|
110
|
+
}
|
|
111
|
+
getLocalStorage(key) {
|
|
112
|
+
var data = this.descriptografar(localStorage.getItem(key));
|
|
113
|
+
if (data == null || data == '')
|
|
114
|
+
return null;
|
|
115
|
+
return data;
|
|
116
|
+
}
|
|
117
|
+
isIE() {
|
|
118
|
+
var userAgent = navigator.userAgent;
|
|
119
|
+
return userAgent.indexOf("MSIE ") > -1 || userAgent.indexOf("Trident/") > -1;
|
|
120
|
+
}
|
|
121
|
+
retornaTexto(texto) {
|
|
122
|
+
var div = document.createElement("div");
|
|
123
|
+
div.innerHTML = texto;
|
|
124
|
+
return div.innerText || div.textContent;
|
|
125
|
+
}
|
|
126
|
+
key = CryptoJS.enc.Utf8.parse("GKxLtQg2atgjkrer");
|
|
127
|
+
iv = CryptoJS.enc.Utf8.parse("e0Wg6l5GNdg29dvc");
|
|
128
|
+
criptografar(texto) {
|
|
129
|
+
try {
|
|
130
|
+
return CryptoJS.AES.encrypt(texto, this.key, {
|
|
131
|
+
iv: this.iv,
|
|
132
|
+
mode: CryptoJS.mode.CBC,
|
|
133
|
+
padding: CryptoJS.pad.Pkcs7
|
|
134
|
+
}).toString();
|
|
135
|
+
}
|
|
136
|
+
catch (e) {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
descriptografar(texto) {
|
|
141
|
+
try {
|
|
142
|
+
return CryptoJS.AES.decrypt(texto, this.key, {
|
|
143
|
+
iv: this.iv,
|
|
144
|
+
mode: CryptoJS.mode.CBC,
|
|
145
|
+
padding: CryptoJS.pad.Pkcs7
|
|
146
|
+
}).toString(CryptoJS.enc.Utf8);
|
|
147
|
+
}
|
|
148
|
+
catch (e) {
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/** @nocollapse */ static ɵfac = function Utilities_Factory(t) { return new (t || Utilities)(); };
|
|
153
|
+
/** @nocollapse */ static ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: Utilities, factory: Utilities.ɵfac });
|
|
154
|
+
}
|
|
155
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Utilities, [{
|
|
156
|
+
type: Injectable
|
|
157
|
+
}], null, null); })();
|
|
158
|
+
export class StaticUtils {
|
|
159
|
+
static validarCnpj(cnpj) {
|
|
160
|
+
const cnpjOriginal = (cnpj || '');
|
|
161
|
+
cnpj = cnpjOriginal.toUpperCase().slice(0, 12);
|
|
162
|
+
cnpj = cnpj + this.getDigito(this.getSomaCnpj(cnpj));
|
|
163
|
+
cnpj = cnpj + this.getDigito(this.getSomaCnpj(cnpj));
|
|
164
|
+
return cnpjOriginal == cnpj;
|
|
165
|
+
}
|
|
166
|
+
static validarCpf(cpf) {
|
|
167
|
+
const cpfOriginal = (cpf || '');
|
|
168
|
+
cpf = cpfOriginal.toUpperCase().slice(0, 9);
|
|
169
|
+
cpf = cpf + this.getDigito(this.getSomaCpf(cpf));
|
|
170
|
+
cpf = cpf + this.getDigito(this.getSomaCpf(cpf));
|
|
171
|
+
return cpfOriginal == cpf;
|
|
172
|
+
}
|
|
173
|
+
static getDigito(soma) {
|
|
174
|
+
return (soma % 11) <= 1 ? 0 : (11 - (soma % 11));
|
|
175
|
+
}
|
|
176
|
+
static getSomaCnpj(cnpj) {
|
|
177
|
+
const peso = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];
|
|
178
|
+
if (cnpj.length == 12)
|
|
179
|
+
peso.shift();
|
|
180
|
+
return Array.from(cnpj)
|
|
181
|
+
.map((c, i) => (isNaN(Number(c)) ? c.charCodeAt(0) - 48 : Number(c)) * peso[i])
|
|
182
|
+
.reduce((a, b) => a + b, 0);
|
|
183
|
+
}
|
|
184
|
+
static getSomaCpf(cpf) {
|
|
185
|
+
const fator = cpf.length == 9 ? 10 : 11;
|
|
186
|
+
return Array.from(cpf).map((c, i) => Number(c) * (fator - i)).reduce((a, b) => a + b, 0);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5mby1saWJyYXJ5L3NyYy91dGlscy91dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQzs7QUFHdEMsTUFBTSxPQUFPLFNBQVM7SUFDbEIsT0FBTztRQUNILE9BQU8sc0NBQXNDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFTLENBQUM7WUFDckUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBRSxDQUFDO1lBQ3hFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxZQUFZO1FBQ1IsT0FBTyxzQ0FBc0MsQ0FBQztJQUNsRCxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUs7UUFDUixPQUFPLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQywrRUFBK0UsQ0FBQyxLQUFLLElBQUksQ0FBQztJQUN4SCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBTTtRQUN0QixJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLElBQUksU0FBUyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDcEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFD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LElBQUksQ0FBQyxNQUFNLElBQUksRUFBRTtZQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVwQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2xCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBVztRQUNqQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDeEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBDcnlwdG9KUyBmcm9tICdjcnlwdG8tanMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVXRpbGl0aWVzIHtcclxuICAgIGdldEd1aWQoKSA6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICd4eHh4eHh4eC14eHh4LTR4eHgteXh4eC14eHh4eHh4eHh4eHgnLnJlcGxhY2UoL1t4eV0vZywgZnVuY3Rpb24oYykge1xyXG4gICAgICAgICAgICBjb25zdCByID0gTWF0aC5yYW5kb20oKSAqIDE2IHwgMCwgdiA9IGMgPT09ICd4JyA/IHIgOiAoIHIgJiAweDMgfCAweDggKTtcclxuICAgICAgICAgICAgcmV0dXJuIHYudG9TdHJpbmcoMTYpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBnZXRHdWlkRW1wdHkoKSA6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuICcwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAnO1xyXG4gICAgfVxyXG5cclxuICAgIGlzR3VpZCh2YWx1ZSkgOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFwiXCIgKyB2YWx1ZSkubWF0Y2goJ15bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kJykgIT09IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgYmFzZTY0VG9BcnJheUJ1ZmZlcihiYXNlNjQpOiBhbnkge1xyXG4gICAgICAgIHZhciBiaW5hcnlTdHJpbmcgPSB3aW5kb3cuYXRvYihiYXNlNjQpO1xyXG4gICAgICAgIHZhciBiaW5hcnlMZW4gPSBiaW5hcnlTdHJpbmcubGVuZ3RoO1xyXG4gICAgICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGJpbmFyeUxlbik7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiaW5hcnlMZW47IGkrKykge1xyXG4gICAgICAgICAgIHZhciBhc2NpaSA9IGJpbmFyeVN0cmluZy5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgICAgIGJ5dGVzW2ldID0gYXNjaWk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBieXRlcztcclxuICAgIH1cclxuICAgIFxyXG4gICAganNvblRvRW5jcnlwdChvYmplY3QpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNyaXB0b2dyYWZhcih1bmVzY2FwZShKU09OLnN0cmluZ2lmeShvYmplY3QpKSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGRlY3J5cHRUb0pzb24odmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh0aGlzLmRlc2NyaXB0b2dyYWZhcih2YWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5PckRvd25sb2FkKHRpdGxlLCBibG9iKSB7XHJcbiAgICAgICAgbGV0IGZpbGVVUkwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICBpZiAodGl0bGUuaW5kZXhPZihcInBkZlwiKSA+IC0xKVxyXG4gICAgICAgICAgICB3aW5kb3cub3BlbihmaWxlVVJMLCB0aXRsZSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBlbGVtZW50QTogSFRNTEFuY2hvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJykgYXMgSFRNTEFuY2hvckVsZW1lbnQ7XHJcbiAgICAgICAgICAgIGVsZW1lbnRBLmhyZWYgPSBmaWxlVVJMO1xyXG4gICAgICAgICAgICBlbGVtZW50QS5kb3dubG9hZCA9IHRpdGxlO1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnRBKTtcclxuICAgICAgICAgICAgZWxlbWVudEEuY2xpY2soKTsgICAgICAgIFxyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnRBKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlckFjZW50b3ModmFsOiBzdHJpbmcpIDogc3RyaW5nIHtcclxuICAgICAgICBpZiAodmFsID09IG51bGwpXHJcbiAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB2YXIgbm9ybWFsaXplRnVuY3Rpb24gPSBTdHJpbmcucHJvdG90eXBlLm5vcm1hbGl6ZSA/IChzdHIpID0+IHN0ci5ub3JtYWxpemUoJ05GRCcpIDogKHN0cikgPT4gc3RyO1xyXG4gICAgICAgIHJldHVybiBub3JtYWxpemVGdW5jdGlvbih2YWwpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csIFwiXCIpXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Rm9ybWF0b3MoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiBbIHsgSWQ6IFwiRVhDRUxcIiwgTm9tZTogXCJFeGNlbFwiLCBNaW1lVHlwZTogXCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWxcIiwgRXh0ZW5zYW86IFwieGxzXCIgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiBcIlBERlwiLCBOb21lOiBcIlBERlwiLCBNaW1lVHlwZTogXCJhcHBsaWNhdGlvbi9wZGZcIiwgRXh0ZW5zYW86IFwicGRmXCIgfSBdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZvcm1hdG9zRXhjZWwoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiBbIHsgSWQ6ICdQUCcsIE5vbWU6ICdFeGNlbCBQb3J0dWd1w6pzIGNvbSBTZXBhcmFkb3IgRGVjaW1hbCBbLl0nIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogJ1BWJywgTm9tZTogJ0V4Y2VsIFBvcnR1Z3XDqnMgY29tIFNlcGFyYWRvciBEZWNpbWFsIFssXScgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiAnSVAnLCBOb21lOiAnRXhjZWwgSW5nbMOqcyBjb20gU2VwYXJhZG9yIERlY2ltYWwgWy5dJyB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6ICdJVicsIE5vbWU6ICdFeGNlbCBJbmdsw6pzIGNvbSBTZXBhcmFkb3IgRGVjaW1hbCBbLF0nIH0gXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdGF0dXMoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiBbIHsgSWQ6IFwiQVwiLCBOb21lOiBcIkF0aXZvXCIgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiBcIlBcIiwgTm9tZTogXCJQZW5kZW50ZVwiIH0gXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdGF0dXNDb21wbGV0bygpOiBhbnlbXSB7XHJcbiAgICAgICAgcmV0dXJuIFsgeyBJZDogXCJDXCIsIE5vbWU6IFwiQ2FkYXN0cmFkb1wiLCBTZWxlY2lvbmFkbzogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwiRlwiLCBOb21lOiBcIkZlaXRvXCIsIFNlbGVjaW9uYWRvOiBmYWxzZSB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwiT1wiLCBOb21lOiBcIkNvbmZlcmlkb1wiLCBTZWxlY2lvbmFkbzogdHJ1ZSB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwiUlwiLCBOb21lOiBcIlJlamVpdGFkb1wiLCBTZWxlY2lvbmFkbzogZmFsc2UgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiBcIklcIiwgTm9tZTogXCJJbmF0aXZvXCIsIFNlbGVjaW9uYWRvOiBmYWxzZSB9IF07XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3RhdHVzUHJvY2Vzc2FtZW50bygpOiBhbnlbXSB7XHJcbiAgICAgICAgcmV0dXJuIFsgeyBJZDogXCJBXCIsIE5vbWU6IFwiQWd1YXJkYW5kb1Byb2Nlc3NhbWVudG9cIiB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwiRVwiLCBOb21lOiBcIkVtUHJvY2Vzc2FtZW50b1wiIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogXCJQXCIsIE5vbWU6IFwiUHJvY2Vzc2Fkb1wiIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogXCJJXCIsIE5vbWU6IFwiSW5hdGl2b1wiIH0sXHJcbiAgICAgICAgICAgICAgICAgeyBJZDogXCJaXCIsIE5vbWU6IFwiRXJyb1wiIH0gXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRGb3JtYXRvSWRpb21hcygpOiBhbnlbXSB7XHJcbiAgICAgICAgcmV0dXJuIFsgeyBJZDogXCJlblwiLCBOb21lOiBcIkVuZ2xpc2hcIiB9LFxyXG4gICAgICAgICAgICAgICAgIHsgSWQ6IFwicHQtQlJcIiwgTm9tZTogXCJQb3J0dWd1w6pzXCIgfSBdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEdlbmVyb3MoKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiBbIHsgSWQ6ICdNJywgTm9tZTogJ01hc2N1bGlubycgfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiAnRicsIE5vbWU6ICdGZW1pbmlubycgfSBdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFRpcG9zRXZpZGVuY2lhKCk6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gWyB7IElkOiAxLCBOb21lOiAnVGVsZWZvbmUnfSxcclxuICAgICAgICAgICAgICAgICB7IElkOiAyLCBOb21lOiAnRW1haWwnfSxcclxuICAgICAgICAgICAgICAgICB7SWQ6IDMsIE5vbWU6ICdEb2N1bWVudG8nfSBdO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE9yZGVucygpOiBhbnlbXSB7XHJcbiAgICAgICAgcmV0dXJuIFsge0lkOiBcIm5vbWUtYXNjXCIsIE5vbWU6IFwiTm9tZUNyZXNjZW50ZVwifSxcclxuICAgICAgICAgICAgICAgICB7SWQ6IFwibm9tZS1kZXNjXCIsIE5vbWU6IFwiTm9tZURlY3Jlc2NlbnRlXCJ9LFxyXG4gICAgICAgICAgICAgICAgIHtJZDogXCJ2YWxvci1hc2NcIiwgTm9tZTogXCJWYWxvckNyZXNjZW50ZVwifSxcclxuICAgICAgICAgICAgICAgICB7SWQ6IFwidmFsb3ItZGVzY1wiLCBOb21lOiBcIlZhbG9yRGVjcmVzY2VudGVcIn0gXTtcclxuICAgIH1cclxuXHJcbiAgICB2YWxpZGFyRW1haWwoZm9ybSwgdmFsdWUsIGNvbnRyb2wpIHtcclxuICAgICAgICBpZiAoIXZhbHVlKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGV0IHBhdHRlcm4gPSAvXihbYS16QS1aMC05X1xcLVxcLl0rKUAoW2EtekEtWjAtOV9cXC1cXC5dKylcXC4oW2EtekEtWl17Miw1fSkkLztcclxuICAgICAgICBsZXQgZW1haWxzOiBzdHJpbmdbXSA9IHZhbHVlLnNwbGl0KCc7Jyk7XHJcbiAgICAgICAgbGV0IGludmFsaWRvID0gZW1haWxzLnNvbWUoZW1haWwgPT4gZW1haWwgJiYgIXBhdHRlcm4udGVzdChlbWFpbC50cmltKCkpKTtcclxuXHJcbiAgICAgICAgaWYgKGludmFsaWRvKVxyXG4gICAgICAgICAgICBmb3JtLmZvcm0uY29udHJvbHNbY29udHJvbF0uc2V0RXJyb3JzKCB7ICdpbnZhbGlkJzogdHJ1ZSB9ICk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0TG9jYWxTdG9yYWdlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB0aGlzLmNyaXB0b2dyYWZhcih2YWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldExvY2FsU3RvcmFnZShrZXk6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgdmFyIGRhdGEgPSB0aGlzLmRlc2NyaXB0b2dyYWZhcihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpKTtcclxuICAgICAgICBpZiAoZGF0YSA9PSBudWxsIHx8IGRhdGEgPT0gJycpIHJldHVybiBudWxsO1xyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIGlzSUUoKSB7XHJcbiAgICAgICAgdmFyIHVzZXJBZ2VudCA9IG5hdmlnYXRvci51c2VyQWdlbnQ7XHJcbiAgICAgICAgcmV0dXJuIHVzZXJBZ2VudC5pbmRleE9mKFwiTVNJRSBcIikgPiAtMSB8fCB1c2VyQWdlbnQuaW5kZXhPZihcIlRyaWRlbnQvXCIpID4gLTE7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0b3JuYVRleHRvKHRleHRvKSB7XHJcbiAgICAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIilcclxuICAgICAgICBkaXYuaW5uZXJIVE1MID0gdGV4dG87XHJcbiAgICAgICAgcmV0dXJuIGRpdi5pbm5lclRleHQgfHwgZGl2LnRleHRDb250ZW50O1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwcml2YXRlIGtleSA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKFwiR0t4THRRZzJhdGdqa3JlclwiKTtcclxuICAgIHByaXZhdGUgaXYgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZShcImUwV2c2bDVHTmRnMjlkdmNcIik7XHJcblxyXG4gICAgY3JpcHRvZ3JhZmFyKHRleHRvKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmV0dXJuIENyeXB0b0pTLkFFUy5lbmNyeXB0KHRleHRvLCB0aGlzLmtleSwge1xyXG4gICAgICAgICAgICAgICAgaXY6IHRoaXMuaXYsXHJcbiAgICAgICAgICAgICAgICBtb2RlOiBDcnlwdG9KUy5tb2RlLkNCQyxcclxuICAgICAgICAgICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzN1xyXG4gICAgICAgICAgICB9KS50b1N0cmluZygpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBkZXNjcmlwdG9ncmFmYXIodGV4dG8pIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gQ3J5cHRvSlMuQUVTLmRlY3J5cHQodGV4dG8sIHRoaXMua2V5LCB7XHJcbiAgICAgICAgICAgICAgICBpdjogdGhpcy5pdixcclxuICAgICAgICAgICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuQ0JDLFxyXG4gICAgICAgICAgICAgICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlBrY3M3XHJcbiAgICAgICAgICAgIH0pLnRvU3RyaW5nKENyeXB0b0pTLmVuYy5VdGY4KTtcclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH0gIFxyXG59XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3RhdGljVXRpbHMge1xyXG4gICAgXHJcbiAgICBzdGF0aWMgdmFsaWRhckNucGooY25wajogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgY25wak9yaWdpbmFsID0gKGNucGogfHwgJycpO1xyXG4gICAgICAgIGNucGogPSBjbnBqT3JpZ2luYWwudG9VcHBlckNhc2UoKS5zbGljZSgwLCAxMik7XHJcbiAgICAgICAgY25waiA9IGNucGogKyB0aGlzLmdldERpZ2l0byh0aGlzLmdldFNvbWFDbnBqKGNucGopKTtcclxuICAgICAgICBjbnBqID0gY25waiArIHRoaXMuZ2V0RGlnaXRvKHRoaXMuZ2V0U29tYUNucGooY25waikpO1xyXG4gICAgXHJcbiAgICAgICAgcmV0dXJuIGNucGpPcmlnaW5hbCA9PSBjbnBqO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyB2YWxpZGFyQ3BmKGNwZjogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgY3BmT3JpZ2luYWwgPSAoY3BmIHx8ICcnKTtcclxuICAgICAgICBjcGYgPSBjcGZPcmlnaW5hbC50b1VwcGVyQ2FzZSgpLnNsaWNlKDAsIDkpO1xyXG4gICAgICAgIGNwZiA9IGNwZiArIHRoaXMuZ2V0RGlnaXRvKHRoaXMuZ2V0U29tYUNwZihjcGYpKTtcclxuICAgICAgICBjcGYgPSBjcGYgKyB0aGlzLmdldERpZ2l0byh0aGlzLmdldFNvbWFDcGYoY3BmKSk7XHJcblxyXG4gICAgICAgIHJldHVybiBjcGZPcmlnaW5hbCA9PSBjcGY7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHByaXZhdGUgc3RhdGljIGdldERpZ2l0byhzb21hOiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gKHNvbWEgJSAxMSkgPD0gMSA/IDAgOiAoMTEgLSAoc29tYSAlIDExKSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHByaXZhdGUgc3RhdGljIGdldFNvbWFDbnBqKGNucGo6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IHBlc28gPSBbNiwgNSwgNCwgMywgMiwgOSwgOCwgNywgNiwgNSwgNCwgMywgMl07XHJcbiAgICAgICAgaWYgKGNucGoubGVuZ3RoID09IDEyKSBwZXNvLnNoaWZ0KCk7XHJcbiAgICBcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShjbnBqKVxyXG4gICAgICAgICAgICAubWFwKChjLCBpKSA9PiAoaXNOYU4oTnVtYmVyKGMpKSA/IGMuY2hhckNvZGVBdCgwKSAtIDQ4IDogTnVtYmVyKGMpKSAqIHBlc29baV0pXHJcbiAgICAgICAgICAgIC5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBnZXRTb21hQ3BmKGNwZjogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgZmF0b3IgPSBjcGYubGVuZ3RoID09IDkgPyAxMCA6IDExO1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGNwZikubWFwKChjLCBpKSA9PiBOdW1iZXIoYykgKiAoZmF0b3IgLSBpKSkucmVkdWNlKChhLCBiKSA9PiBhICsgYiwgMCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|