dts-backoffice-util 3.0.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dts-backoffice-util.d.ts +1 -0
- package/esm2020/dts-backoffice-util.mjs +5 -0
- package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.mjs +269 -0
- package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.mjs +7 -0
- package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.mjs +183 -0
- package/esm2020/lib/dts-backoffice-util.module.mjs +56 -0
- package/esm2020/lib/interfaces/filter-range.interface.mjs +2 -0
- package/esm2020/lib/interfaces/totvs-response.interface.mjs +2 -0
- package/esm2020/lib/model/session-info.model.mjs +67 -0
- package/esm2020/lib/pipes/dts-date-format.pipe.mjs +20 -0
- package/esm2020/lib/services/breadcrumb-control.service.mjs +82 -0
- package/esm2020/lib/services/cache-params.service.mjs +25 -0
- package/esm2020/lib/services/menu-datasul.service.mjs +41 -0
- package/esm2020/lib/services/profile.service.mjs +55 -0
- package/esm2020/lib/services/report.service.mjs +57 -0
- package/esm2020/lib/services/session-info.service.mjs +36 -0
- package/esm2020/lib/services/translate.service.mjs +23 -0
- package/esm2020/lib/utils/date.util.mjs +56 -0
- package/esm2020/lib/utils/disclaimer.util.mjs +453 -0
- package/esm2020/lib/utils/field-validation.util.mjs +179 -0
- package/esm2020/lib/utils/file.util.mjs +122 -0
- package/esm2020/lib/utils/filter-range.util.mjs +33 -0
- package/esm2020/lib/utils/generic-functions.utils.mjs +170 -0
- package/esm2020/public-api.mjs +34 -0
- package/fesm2015/{dts-backoffice-util.js → dts-backoffice-util.mjs} +230 -1626
- package/fesm2015/dts-backoffice-util.mjs.map +1 -0
- package/fesm2020/dts-backoffice-util.mjs +1844 -0
- package/fesm2020/dts-backoffice-util.mjs.map +1 -0
- package/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.d.ts +3 -0
- package/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.d.ts +3 -0
- package/lib/dts-backoffice-util.module.d.ts +10 -0
- package/lib/pipes/dts-date-format.pipe.d.ts +3 -0
- package/lib/services/breadcrumb-control.service.d.ts +3 -0
- package/lib/services/cache-params.service.d.ts +3 -0
- package/lib/services/menu-datasul.service.d.ts +3 -0
- package/lib/services/profile.service.d.ts +3 -0
- package/lib/services/report.service.d.ts +3 -0
- package/lib/services/session-info.service.d.ts +3 -0
- package/lib/services/translate.service.d.ts +3 -0
- package/package.json +23 -11
- package/CHANGELOG.md +0 -159
- package/bundles/dts-backoffice-util.umd.js +0 -3296
- package/bundles/dts-backoffice-util.umd.js.map +0 -1
- package/bundles/dts-backoffice-util.umd.min.js +0 -2
- package/bundles/dts-backoffice-util.umd.min.js.map +0 -1
- package/dts-backoffice-util.metadata.json +0 -1
- package/esm2015/dts-backoffice-util.js +0 -10
- package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.js +0 -391
- package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.js +0 -132
- package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.js +0 -344
- package/esm2015/lib/dts-backoffice-util.module.js +0 -47
- package/esm2015/lib/interfaces/filter-range.interface.js +0 -48
- package/esm2015/lib/interfaces/totvs-response.interface.js +0 -17
- package/esm2015/lib/model/session-info.model.js +0 -183
- package/esm2015/lib/pipes/dts-date-format.pipe.js +0 -27
- package/esm2015/lib/services/breadcrumb-control.service.js +0 -124
- package/esm2015/lib/services/cache-params.service.js +0 -47
- package/esm2015/lib/services/menu-datasul.service.js +0 -57
- package/esm2015/lib/services/profile.service.js +0 -127
- package/esm2015/lib/services/report.service.js +0 -127
- package/esm2015/lib/services/session-info.service.js +0 -62
- package/esm2015/lib/services/translate.service.js +0 -35
- package/esm2015/lib/utils/date.util.js +0 -95
- package/esm2015/lib/utils/disclaimer.util.js +0 -738
- package/esm2015/lib/utils/field-validation.util.js +0 -275
- package/esm2015/lib/utils/file.util.js +0 -224
- package/esm2015/lib/utils/filter-range.util.js +0 -53
- package/esm2015/lib/utils/generic-functions.utils.js +0 -296
- package/esm2015/public-api.js +0 -38
- package/fesm2015/dts-backoffice-util.js.map +0 -1
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common/http";
|
|
5
|
+
export var ReportFormats;
|
|
6
|
+
(function (ReportFormats) {
|
|
7
|
+
ReportFormats["XLSX"] = "xlsx";
|
|
8
|
+
ReportFormats["PDF"] = "pdf";
|
|
9
|
+
ReportFormats["DOCX"] = "docx";
|
|
10
|
+
ReportFormats["HTML"] = "html";
|
|
11
|
+
})(ReportFormats || (ReportFormats = {}));
|
|
12
|
+
export class ReportService {
|
|
13
|
+
constructor(httpClient) {
|
|
14
|
+
this.httpClient = httpClient;
|
|
15
|
+
this.URL = window.location.href.indexOf('totvs-menu') > 0 ? '/totvs-menu/rest/report/run/'
|
|
16
|
+
: '/dts/datasul-report/resources/run/';
|
|
17
|
+
}
|
|
18
|
+
generate(params, showLoading = true) {
|
|
19
|
+
const headers = { 'X-PO-Screen-Lock': showLoading ? 'true' : 'false' };
|
|
20
|
+
let reportURL = `${this.URL}${params.reportName}`;
|
|
21
|
+
if (params.properties.length > 0) {
|
|
22
|
+
reportURL += '?';
|
|
23
|
+
params.properties.forEach((property, index) => {
|
|
24
|
+
if (index > 0) {
|
|
25
|
+
reportURL += '&';
|
|
26
|
+
}
|
|
27
|
+
reportURL += `c_properties=${property.name}&c_values=${property.value}`;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
reportURL += `&dialect=${params.dialect}&format=${params.format}`;
|
|
31
|
+
reportURL += `&program=${params.programName}&resultFileName=${params.downloadName}`;
|
|
32
|
+
return this.httpClient.post(reportURL, {}, { headers, responseType: 'blob' })
|
|
33
|
+
.pipe(map(report => {
|
|
34
|
+
if (params.download) {
|
|
35
|
+
this.download(report, `${params.downloadName}.${params.format}`);
|
|
36
|
+
}
|
|
37
|
+
return report;
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
download(file, fileName) {
|
|
41
|
+
const binaryData = [file];
|
|
42
|
+
const downloadLink = document.createElement('a');
|
|
43
|
+
const urlDownload = window.URL.createObjectURL(new Blob(binaryData, { type: file.type }));
|
|
44
|
+
downloadLink.href = urlDownload;
|
|
45
|
+
downloadLink.setAttribute('download', fileName);
|
|
46
|
+
document.body.appendChild(downloadLink);
|
|
47
|
+
downloadLink.click();
|
|
48
|
+
window.URL.revokeObjectURL(urlDownload);
|
|
49
|
+
downloadLink.remove();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** @nocollapse */ ReportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ReportService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
53
|
+
/** @nocollapse */ ReportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ReportService });
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ReportService, decorators: [{
|
|
55
|
+
type: Injectable
|
|
56
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy9saWIvc2VydmljZXMvcmVwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQWlCckMsTUFBTSxDQUFOLElBQVksYUFLWDtBQUxELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsNEJBQVcsQ0FBQTtJQUNYLDhCQUFhLENBQUE7SUFDYiw4QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUxXLGFBQWEsS0FBYixhQUFhLFFBS3hCO0FBSUQsTUFBTSxPQUFPLGFBQWE7SUFJeEIsWUFBbUIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUh6QixRQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsOEJBQThCO1lBQy9FLENBQUMsQ0FBQyxvQ0FBb0MsQ0FBQztJQUVoQixDQUFDO0lBRTlDLFFBQVEsQ0FBQyxNQUE0QixFQUFFLGNBQXVCLElBQUk7UUFDaEUsTUFBTSxPQUFPLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFdkUsSUFBSSxTQUFTLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNoQyxTQUFTLElBQUksR0FBRyxDQUFDO1lBRWpCLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBbUIsRUFBRSxLQUFhLEVBQUUsRUFBRTtnQkFDL0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO29CQUNiLFNBQVMsSUFBSSxHQUFHLENBQUM7aUJBQ2xCO2dCQUNELFNBQVMsSUFBSSxnQkFBZ0IsUUFBUSxDQUFDLElBQUksYUFBYSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUUsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELFNBQVMsSUFBSSxZQUFZLE1BQU0sQ0FBQyxPQUFPLFdBQVcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xFLFNBQVMsSUFBSSxZQUFZLE1BQU0sQ0FBQyxXQUFXLG1CQUFtQixNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUMxRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pCLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ2xFO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBVSxFQUFFLFFBQWdCO1FBQ25DLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUxRixZQUFZLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztRQUNoQyxZQUFZLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoRCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4QyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3hCLENBQUM7OzhIQTdDVSxhQUFhO2tJQUFiLGFBQWE7NEZBQWIsYUFBYTtrQkFGekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElQcm9wZXJ0eSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVJlcG9ydFNlcnZpY2VQYXJhbXMge1xyXG4gIHJlcG9ydE5hbWU6IHN0cmluZzsgLy8gTm9tZSBkbyBycHREZXNpZ25cclxuICBwcm9ncmFtTmFtZTogc3RyaW5nOyAvLyBQcm9ncmFtYSBQcm9ncmVzc1xyXG4gIHByb3BlcnRpZXM6IEFycmF5PElQcm9wZXJ0eT47XHJcbiAgZGlhbGVjdDogc3RyaW5nO1xyXG4gIGRvd25sb2FkTmFtZTogc3RyaW5nO1xyXG4gIGRvd25sb2FkOiBib29sZWFuO1xyXG4gIGZvcm1hdDogUmVwb3J0Rm9ybWF0cztcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUmVwb3J0Rm9ybWF0cyB7XHJcbiAgWExTWCA9ICd4bHN4JyxcclxuICBQREYgPSAncGRmJyxcclxuICBET0NYID0gJ2RvY3gnLFxyXG4gIEhUTUwgPSAnaHRtbCdcclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5cclxuZXhwb3J0IGNsYXNzIFJlcG9ydFNlcnZpY2Uge1xyXG4gIHB1YmxpYyByZWFkb25seSBVUkwgPSB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCd0b3R2cy1tZW51JykgPiAwID8gJy90b3R2cy1tZW51L3Jlc3QvcmVwb3J0L3J1bi8nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJy9kdHMvZGF0YXN1bC1yZXBvcnQvcmVzb3VyY2VzL3J1bi8nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaHR0cENsaWVudDogSHR0cENsaWVudCkgeyB9XHJcblxyXG4gIGdlbmVyYXRlKHBhcmFtczogSVJlcG9ydFNlcnZpY2VQYXJhbXMsIHNob3dMb2FkaW5nOiBib29sZWFuID0gdHJ1ZSk6IE9ic2VydmFibGU8QmxvYj4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IHsgJ1gtUE8tU2NyZWVuLUxvY2snOiBzaG93TG9hZGluZyA/ICd0cnVlJyA6ICdmYWxzZScgfTtcclxuXHJcbiAgICBsZXQgcmVwb3J0VVJMID0gYCR7dGhpcy5VUkx9JHtwYXJhbXMucmVwb3J0TmFtZX1gO1xyXG5cclxuICAgIGlmIChwYXJhbXMucHJvcGVydGllcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJlcG9ydFVSTCArPSAnPyc7XHJcblxyXG4gICAgICBwYXJhbXMucHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eTogSVByb3BlcnR5LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGluZGV4ID4gMCkge1xyXG4gICAgICAgICAgcmVwb3J0VVJMICs9ICcmJztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVwb3J0VVJMICs9IGBjX3Byb3BlcnRpZXM9JHtwcm9wZXJ0eS5uYW1lfSZjX3ZhbHVlcz0ke3Byb3BlcnR5LnZhbHVlfWA7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJlcG9ydFVSTCArPSBgJmRpYWxlY3Q9JHtwYXJhbXMuZGlhbGVjdH0mZm9ybWF0PSR7cGFyYW1zLmZvcm1hdH1gO1xyXG4gICAgcmVwb3J0VVJMICs9IGAmcHJvZ3JhbT0ke3BhcmFtcy5wcm9ncmFtTmFtZX0mcmVzdWx0RmlsZU5hbWU9JHtwYXJhbXMuZG93bmxvYWROYW1lfWA7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KHJlcG9ydFVSTCwge30sIHsgaGVhZGVycywgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSlcclxuICAgICAgLnBpcGUobWFwKHJlcG9ydCA9PiB7XHJcbiAgICAgICAgaWYgKHBhcmFtcy5kb3dubG9hZCkge1xyXG4gICAgICAgICAgdGhpcy5kb3dubG9hZChyZXBvcnQsIGAke3BhcmFtcy5kb3dubG9hZE5hbWV9LiR7cGFyYW1zLmZvcm1hdH1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlcG9ydDtcclxuICAgICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWQoZmlsZTogQmxvYiwgZmlsZU5hbWU6IHN0cmluZykge1xyXG4gICAgY29uc3QgYmluYXJ5RGF0YSA9IFtmaWxlXTtcclxuICAgIGNvbnN0IGRvd25sb2FkTGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGNvbnN0IHVybERvd25sb2FkID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoYmluYXJ5RGF0YSwgeyB0eXBlOiBmaWxlLnR5cGUgfSkpO1xyXG5cclxuICAgIGRvd25sb2FkTGluay5ocmVmID0gdXJsRG93bmxvYWQ7XHJcbiAgICBkb3dubG9hZExpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGZpbGVOYW1lKTtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG93bmxvYWRMaW5rKTtcclxuICAgIGRvd25sb2FkTGluay5jbGljaygpO1xyXG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsRG93bmxvYWQpO1xyXG4gICAgZG93bmxvYWRMaW5rLnJlbW92ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { of } from 'rxjs';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
export class UserLoginService {
|
|
7
|
+
constructor(http) {
|
|
8
|
+
this.http = http;
|
|
9
|
+
this.apiUrl = '/totvs-menu/rest/getSessionInfo';
|
|
10
|
+
this.userLogin = undefined;
|
|
11
|
+
}
|
|
12
|
+
getUserLogin() {
|
|
13
|
+
if (localStorage.getItem('username')) {
|
|
14
|
+
return of(localStorage.getItem('username'));
|
|
15
|
+
}
|
|
16
|
+
if (this.userLogin) {
|
|
17
|
+
return of(this.userLogin);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return this.http.get(`${this.apiUrl}`)
|
|
21
|
+
.pipe(map((response) => {
|
|
22
|
+
this.userLogin = response.userName;
|
|
23
|
+
return response.userName;
|
|
24
|
+
}));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/** @nocollapse */ UserLoginService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: UserLoginService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
29
|
+
/** @nocollapse */ UserLoginService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: UserLoginService, providedIn: 'root' });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: UserLoginService, decorators: [{
|
|
31
|
+
type: Injectable,
|
|
32
|
+
args: [{
|
|
33
|
+
providedIn: 'root'
|
|
34
|
+
}]
|
|
35
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1pbmZvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy9saWIvc2VydmljZXMvc2Vzc2lvbi1pbmZvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBS3JDLE1BQU0sT0FBTyxnQkFBZ0I7SUFLekIsWUFBbUIsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUgxQixXQUFNLEdBQUcsaUNBQWlDLENBQUM7UUFDcEQsY0FBUyxHQUFHLFNBQVMsQ0FBQztJQUVpQixDQUFDO0lBRXhDLFlBQVk7UUFDUixJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQy9DO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztpQkFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQ25DLE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1g7SUFDTCxDQUFDOztpSUFyQlEsZ0JBQWdCO3FJQUFoQixnQkFBZ0IsY0FGYixNQUFNOzRGQUVULGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IElTZXNzaW9uSW5mbyB9IGZyb20gJy4uL21vZGVsL3Nlc3Npb24taW5mby5tb2RlbCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlckxvZ2luU2VydmljZSB7XHJcblxyXG4gICAgcmVhZG9ubHkgYXBpVXJsID0gJy90b3R2cy1tZW51L3Jlc3QvZ2V0U2Vzc2lvbkluZm8nO1xyXG4gICAgdXNlckxvZ2luID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50KSB7IH1cclxuXHJcbiAgICBnZXRVc2VyTG9naW4oKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3VzZXJuYW1lJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VybmFtZScpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnVzZXJMb2dpbikge1xyXG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy51c2VyTG9naW4pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PElTZXNzaW9uSW5mbz4oYCR7dGhpcy5hcGlVcmx9YClcclxuICAgICAgICAgICAgICAgIC5waXBlKG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJMb2dpbiA9IHJlc3BvbnNlLnVzZXJOYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS51c2VyTmFtZTtcclxuICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class TranslateService {
|
|
4
|
+
static getSuportLanguage() {
|
|
5
|
+
return ['pt-BR', 'pt', 'en-US', 'en', 'es'];
|
|
6
|
+
}
|
|
7
|
+
static getDefaultCurrencyCode() {
|
|
8
|
+
return '$';
|
|
9
|
+
}
|
|
10
|
+
static getCurrentLanguage() {
|
|
11
|
+
const locale = localStorage.getItem('user.language') || navigator.language;
|
|
12
|
+
if (locale && this.getSuportLanguage().includes(locale)) {
|
|
13
|
+
return locale;
|
|
14
|
+
}
|
|
15
|
+
return 'en-US';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/** @nocollapse */ TranslateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TranslateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19
|
+
/** @nocollapse */ TranslateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TranslateService });
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TranslateService, decorators: [{
|
|
21
|
+
type: Injectable
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy9saWIvc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUV6QixNQUFNLENBQUMsaUJBQWlCO1FBQ3BCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxzQkFBc0I7UUFDekIsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRUQsTUFBTSxDQUFDLGtCQUFrQjtRQUNyQixNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFFM0UsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQUUsT0FBTyxNQUFNLENBQUM7U0FBRTtRQUUzRSxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDOztpSUFoQlEsZ0JBQWdCO3FJQUFoQixnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZVNlcnZpY2Uge1xyXG5cclxuICAgIHN0YXRpYyBnZXRTdXBvcnRMYW5ndWFnZSgpIHtcclxuICAgICAgICByZXR1cm4gWydwdC1CUicsICdwdCcsICdlbi1VUycsICdlbicsICdlcyddO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXREZWZhdWx0Q3VycmVuY3lDb2RlKCkge1xyXG4gICAgICAgIHJldHVybiAnJCc7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldEN1cnJlbnRMYW5ndWFnZSgpIHtcclxuICAgICAgICBjb25zdCBsb2NhbGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlci5sYW5ndWFnZScpIHx8IG5hdmlnYXRvci5sYW5ndWFnZTtcclxuXHJcbiAgICAgICAgaWYgKGxvY2FsZSAmJiB0aGlzLmdldFN1cG9ydExhbmd1YWdlKCkuaW5jbHVkZXMobG9jYWxlKSkgeyByZXR1cm4gbG9jYWxlOyB9XHJcblxyXG4gICAgICAgIHJldHVybiAnZW4tVVMnO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Versão: 1.000
|
|
3
|
+
Data Criação: 18/04/2019
|
|
4
|
+
*/
|
|
5
|
+
export class DateUtil {
|
|
6
|
+
constructor() { }
|
|
7
|
+
/* Transforma data para o padrão YYYY-MM-DD */
|
|
8
|
+
static dateToQueryParam(date) {
|
|
9
|
+
const iDay = date.getDate();
|
|
10
|
+
const iMonth = date.getMonth() + 1;
|
|
11
|
+
const iYear = date.getFullYear();
|
|
12
|
+
return `${iYear}-${this.pad(iMonth)}-${this.pad(iDay)}`;
|
|
13
|
+
}
|
|
14
|
+
/* Transforma data no padrão YYYY-MM-DD para DATE */
|
|
15
|
+
static queryParamToDate(param) {
|
|
16
|
+
const iDay = +param.split('-')[2];
|
|
17
|
+
const iMonth = +param.split('-')[1];
|
|
18
|
+
const iYear = +param.split('-')[0];
|
|
19
|
+
return new Date(iYear, iMonth - 1, iDay);
|
|
20
|
+
}
|
|
21
|
+
/* Valida se foi informado uma data válida */
|
|
22
|
+
static isValidDate(date) {
|
|
23
|
+
return date instanceof Date && !isNaN(date.getTime());
|
|
24
|
+
}
|
|
25
|
+
/* Ajusta a data retornando o padrão DATE */
|
|
26
|
+
static ajustDate(param) {
|
|
27
|
+
if (param instanceof Date) {
|
|
28
|
+
return param;
|
|
29
|
+
}
|
|
30
|
+
if (!param) {
|
|
31
|
+
return param;
|
|
32
|
+
}
|
|
33
|
+
return this.queryParamToDate(param.split('T')[0]);
|
|
34
|
+
}
|
|
35
|
+
/* Ajusta a data para o padrão DATE - utilizada nos construtores dos modelos */
|
|
36
|
+
static ajustDateToModel(values = {}, fieldName) {
|
|
37
|
+
if (values.hasOwnProperty(fieldName) && (values[fieldName])) {
|
|
38
|
+
if (values[fieldName].indexOf('T') >= 0) {
|
|
39
|
+
return new Date(values[fieldName]);
|
|
40
|
+
}
|
|
41
|
+
const iDay = +values[fieldName].split('-')[2];
|
|
42
|
+
const iMonth = +values[fieldName].split('-')[1];
|
|
43
|
+
const iYear = +values[fieldName].split('-')[0];
|
|
44
|
+
return new Date(iYear, iMonth - 1, iDay);
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
/* Adicona zero a esquerda do número */
|
|
49
|
+
static pad(number) {
|
|
50
|
+
if (number < 10) {
|
|
51
|
+
return '0' + number;
|
|
52
|
+
}
|
|
53
|
+
return number;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvbGliL3V0aWxzL2RhdGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0VBR0U7QUFFRixNQUFNLE9BQU8sUUFBUTtJQUVqQixnQkFDSSxDQUFDO0lBRUwsOENBQThDO0lBQzlDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFVO1FBQzlCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVqQyxPQUFPLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxvREFBb0Q7SUFDcEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLEtBQWE7UUFDakMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxNQUFNLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBVTtRQUN6QixPQUFPLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELDRDQUE0QztJQUM1QyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxLQUFLLFlBQVksSUFBSSxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7U0FBRTtRQUM1QyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7U0FBRTtRQUU3QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELCtFQUErRTtJQUMvRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBaUIsRUFBRSxFQUFFLFNBQWlCO1FBQzFELElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFO1lBQ3pELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3JDLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7YUFDdEM7WUFFRCxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzVDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELHVDQUF1QztJQUN2QyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU07UUFDYixJQUFJLE1BQU0sR0FBRyxFQUFFLEVBQUU7WUFDYixPQUFPLEdBQUcsR0FBRyxNQUFNLENBQUM7U0FDdkI7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG5WZXJzw6NvOiAxLjAwMFxyXG5EYXRhIENyaWHDp8OjbzogMTgvMDQvMjAxOVxyXG4qL1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGVVdGlsIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICkgeyB9XHJcblxyXG4gICAgLyogVHJhbnNmb3JtYSBkYXRhIHBhcmEgbyBwYWRyw6NvIFlZWVktTU0tREQgKi9cclxuICAgIHN0YXRpYyBkYXRlVG9RdWVyeVBhcmFtKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGlEYXkgPSBkYXRlLmdldERhdGUoKTtcclxuICAgICAgICBjb25zdCBpTW9udGggPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgICAgIGNvbnN0IGlZZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7aVllYXJ9LSR7dGhpcy5wYWQoaU1vbnRoKX0tJHt0aGlzLnBhZChpRGF5KX1gO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIFRyYW5zZm9ybWEgZGF0YSBubyBwYWRyw6NvIFlZWVktTU0tREQgcGFyYSBEQVRFICovXHJcbiAgICBzdGF0aWMgcXVlcnlQYXJhbVRvRGF0ZShwYXJhbTogc3RyaW5nKTogRGF0ZSB7XHJcbiAgICAgICAgY29uc3QgaURheSA9ICtwYXJhbS5zcGxpdCgnLScpWzJdO1xyXG4gICAgICAgIGNvbnN0IGlNb250aCA9ICtwYXJhbS5zcGxpdCgnLScpWzFdO1xyXG4gICAgICAgIGNvbnN0IGlZZWFyID0gK3BhcmFtLnNwbGl0KCctJylbMF07XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZShpWWVhciwgaU1vbnRoIC0gMSwgaURheSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogVmFsaWRhIHNlIGZvaSBpbmZvcm1hZG8gdW1hIGRhdGEgdsOhbGlkYSAqL1xyXG4gICAgc3RhdGljIGlzVmFsaWREYXRlKGRhdGU6IERhdGUpIHtcclxuICAgICAgICByZXR1cm4gZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKGRhdGUuZ2V0VGltZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBBanVzdGEgYSBkYXRhIHJldG9ybmFuZG8gbyBwYWRyw6NvIERBVEUgKi9cclxuICAgIHN0YXRpYyBhanVzdERhdGUocGFyYW06IGFueSk6IERhdGUge1xyXG4gICAgICAgIGlmIChwYXJhbSBpbnN0YW5jZW9mIERhdGUpIHsgcmV0dXJuIHBhcmFtOyB9XHJcbiAgICAgICAgaWYgKCFwYXJhbSkgeyByZXR1cm4gcGFyYW07IH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnlQYXJhbVRvRGF0ZShwYXJhbS5zcGxpdCgnVCcpWzBdKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBBanVzdGEgYSBkYXRhIHBhcmEgbyBwYWRyw6NvIERBVEUgLSB1dGlsaXphZGEgbm9zIGNvbnN0cnV0b3JlcyBkb3MgbW9kZWxvcyAqL1xyXG4gICAgc3RhdGljIGFqdXN0RGF0ZVRvTW9kZWwodmFsdWVzOiBPYmplY3QgPSB7fSwgZmllbGROYW1lOiBzdHJpbmcpOiBEYXRlIHtcclxuICAgICAgICBpZiAodmFsdWVzLmhhc093blByb3BlcnR5KGZpZWxkTmFtZSkgJiYgKHZhbHVlc1tmaWVsZE5hbWVdKSkge1xyXG4gICAgICAgICAgICBpZiAodmFsdWVzW2ZpZWxkTmFtZV0uaW5kZXhPZignVCcpID49IDApIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWx1ZXNbZmllbGROYW1lXSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGlEYXkgPSArdmFsdWVzW2ZpZWxkTmFtZV0uc3BsaXQoJy0nKVsyXTtcclxuICAgICAgICAgICAgY29uc3QgaU1vbnRoID0gK3ZhbHVlc1tmaWVsZE5hbWVdLnNwbGl0KCctJylbMV07XHJcbiAgICAgICAgICAgIGNvbnN0IGlZZWFyID0gK3ZhbHVlc1tmaWVsZE5hbWVdLnNwbGl0KCctJylbMF07XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShpWWVhciwgaU1vbnRoIC0gMSwgaURheSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKiBBZGljb25hIHplcm8gYSBlc3F1ZXJkYSBkbyBuw7ptZXJvICovXHJcbiAgICBzdGF0aWMgcGFkKG51bWJlcikge1xyXG4gICAgICAgIGlmIChudW1iZXIgPCAxMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gJzAnICsgbnVtYmVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVtYmVyO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|