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.
Files changed (71) hide show
  1. package/README.md +1 -1
  2. package/dts-backoffice-util.d.ts +1 -0
  3. package/esm2020/dts-backoffice-util.mjs +5 -0
  4. package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.mjs +269 -0
  5. package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.mjs +7 -0
  6. package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.mjs +183 -0
  7. package/esm2020/lib/dts-backoffice-util.module.mjs +56 -0
  8. package/esm2020/lib/interfaces/filter-range.interface.mjs +2 -0
  9. package/esm2020/lib/interfaces/totvs-response.interface.mjs +2 -0
  10. package/esm2020/lib/model/session-info.model.mjs +67 -0
  11. package/esm2020/lib/pipes/dts-date-format.pipe.mjs +20 -0
  12. package/esm2020/lib/services/breadcrumb-control.service.mjs +82 -0
  13. package/esm2020/lib/services/cache-params.service.mjs +25 -0
  14. package/esm2020/lib/services/menu-datasul.service.mjs +41 -0
  15. package/esm2020/lib/services/profile.service.mjs +55 -0
  16. package/esm2020/lib/services/report.service.mjs +57 -0
  17. package/esm2020/lib/services/session-info.service.mjs +36 -0
  18. package/esm2020/lib/services/translate.service.mjs +23 -0
  19. package/esm2020/lib/utils/date.util.mjs +56 -0
  20. package/esm2020/lib/utils/disclaimer.util.mjs +453 -0
  21. package/esm2020/lib/utils/field-validation.util.mjs +179 -0
  22. package/esm2020/lib/utils/file.util.mjs +122 -0
  23. package/esm2020/lib/utils/filter-range.util.mjs +33 -0
  24. package/esm2020/lib/utils/generic-functions.utils.mjs +170 -0
  25. package/esm2020/public-api.mjs +34 -0
  26. package/fesm2015/{dts-backoffice-util.js → dts-backoffice-util.mjs} +230 -1626
  27. package/fesm2015/dts-backoffice-util.mjs.map +1 -0
  28. package/fesm2020/dts-backoffice-util.mjs +1844 -0
  29. package/fesm2020/dts-backoffice-util.mjs.map +1 -0
  30. package/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.d.ts +3 -0
  31. package/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.d.ts +3 -0
  32. package/lib/dts-backoffice-util.module.d.ts +10 -0
  33. package/lib/pipes/dts-date-format.pipe.d.ts +3 -0
  34. package/lib/services/breadcrumb-control.service.d.ts +3 -0
  35. package/lib/services/cache-params.service.d.ts +3 -0
  36. package/lib/services/menu-datasul.service.d.ts +3 -0
  37. package/lib/services/profile.service.d.ts +3 -0
  38. package/lib/services/report.service.d.ts +3 -0
  39. package/lib/services/session-info.service.d.ts +3 -0
  40. package/lib/services/translate.service.d.ts +3 -0
  41. package/package.json +23 -11
  42. package/CHANGELOG.md +0 -159
  43. package/bundles/dts-backoffice-util.umd.js +0 -3296
  44. package/bundles/dts-backoffice-util.umd.js.map +0 -1
  45. package/bundles/dts-backoffice-util.umd.min.js +0 -2
  46. package/bundles/dts-backoffice-util.umd.min.js.map +0 -1
  47. package/dts-backoffice-util.metadata.json +0 -1
  48. package/esm2015/dts-backoffice-util.js +0 -10
  49. package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.js +0 -391
  50. package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.js +0 -132
  51. package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.js +0 -344
  52. package/esm2015/lib/dts-backoffice-util.module.js +0 -47
  53. package/esm2015/lib/interfaces/filter-range.interface.js +0 -48
  54. package/esm2015/lib/interfaces/totvs-response.interface.js +0 -17
  55. package/esm2015/lib/model/session-info.model.js +0 -183
  56. package/esm2015/lib/pipes/dts-date-format.pipe.js +0 -27
  57. package/esm2015/lib/services/breadcrumb-control.service.js +0 -124
  58. package/esm2015/lib/services/cache-params.service.js +0 -47
  59. package/esm2015/lib/services/menu-datasul.service.js +0 -57
  60. package/esm2015/lib/services/profile.service.js +0 -127
  61. package/esm2015/lib/services/report.service.js +0 -127
  62. package/esm2015/lib/services/session-info.service.js +0 -62
  63. package/esm2015/lib/services/translate.service.js +0 -35
  64. package/esm2015/lib/utils/date.util.js +0 -95
  65. package/esm2015/lib/utils/disclaimer.util.js +0 -738
  66. package/esm2015/lib/utils/field-validation.util.js +0 -275
  67. package/esm2015/lib/utils/file.util.js +0 -224
  68. package/esm2015/lib/utils/filter-range.util.js +0 -53
  69. package/esm2015/lib/utils/generic-functions.utils.js +0 -296
  70. package/esm2015/public-api.js +0 -38
  71. 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==