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,179 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Versão: 1.002
|
|
3
|
+
Data Criação: 19/02/2019
|
|
4
|
+
*/
|
|
5
|
+
import { DisclaimerUtil } from './disclaimer.util';
|
|
6
|
+
export class FieldValidationUtil {
|
|
7
|
+
constructor(poNotification, poI18nPipe, literals) {
|
|
8
|
+
this.literals = {};
|
|
9
|
+
this.poNotification = poNotification;
|
|
10
|
+
this.poI18nPipe = poI18nPipe;
|
|
11
|
+
this.literals = literals;
|
|
12
|
+
this.disclaimerUtil = new DisclaimerUtil(this.poNotification, this.poI18nPipe, this.literals);
|
|
13
|
+
}
|
|
14
|
+
vldFieldCharacter(field, value) {
|
|
15
|
+
if (!value || value.trim() === '') {
|
|
16
|
+
this.poNotification.error({
|
|
17
|
+
message: this.poI18nPipe.transform(this.literals['fieldVldRequered'], [this.literals[field]])
|
|
18
|
+
});
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
// Valida uma faixa de caracteres se o inicial é menor que final
|
|
24
|
+
vldRangeCharacter(initialField, finalField, initialValue, finalValue) {
|
|
25
|
+
if (!initialValue || !finalValue) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
if (initialValue.trim().toUpperCase() > finalValue.trim().toUpperCase()) {
|
|
29
|
+
this.poNotification.error({
|
|
30
|
+
message: this.poI18nPipe.transform(this.literals['fieldVldRange'], [this.literals[initialField], this.literals[finalField]])
|
|
31
|
+
});
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
vldFieldNumber(field, value, vldValue = false, zeroAccept = false) {
|
|
37
|
+
if (vldValue && !this.vldValueOfNumber(field, value)) {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
if ((!value) || value <= 0) {
|
|
41
|
+
if (value === 0 && zeroAccept === true) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
this.poNotification.error({
|
|
45
|
+
message: this.poI18nPipe.transform(this.literals['fieldVldRequered'], [this.literals[field]])
|
|
46
|
+
});
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
vldValueOfNumber(field, value) {
|
|
52
|
+
if (value && value < 0) {
|
|
53
|
+
this.poNotification.error({ message: this.poI18nPipe.transform(this.literals['fieldVldNumber'], [value.toString(), this.literals[field]]) });
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
vldFieldPercent(field, value, vldValue = false) {
|
|
59
|
+
if (vldValue && !this.vldValueOfPercent(field, value)) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
if (!this.vldFieldNumber(field, value)) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
vldValueOfPercent(field, value) {
|
|
68
|
+
if (value && value < 0) {
|
|
69
|
+
this.poNotification.error({ message: this.poI18nPipe.transform(this.literals['fieldVldNumber'], [value.toString(), this.literals[field]]) });
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
if (value && value > 100) {
|
|
73
|
+
this.poNotification.error({ message: this.poI18nPipe.transform(this.literals['fieldVldNumber'], [value.toString(), this.literals[field]]) });
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
// Valida uma faixa de números se o inicial é menor que final
|
|
79
|
+
vldRangeNumber(initialField, finalField, initialValue, finalValue) {
|
|
80
|
+
if (!initialValue) {
|
|
81
|
+
initialValue = 0;
|
|
82
|
+
}
|
|
83
|
+
if (!finalValue) {
|
|
84
|
+
finalValue = 0;
|
|
85
|
+
}
|
|
86
|
+
if (initialValue > finalValue) {
|
|
87
|
+
this.poNotification.error({
|
|
88
|
+
message: this.poI18nPipe.transform(this.literals['fieldVldRange'], [this.literals[initialField], this.literals[finalField]])
|
|
89
|
+
});
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
vldFieldDate(field, value) {
|
|
95
|
+
const valDate = this.disclaimerUtil.ajustDate(value);
|
|
96
|
+
if (!this.disclaimerUtil.isValidDate(valDate)) {
|
|
97
|
+
this.poNotification.error({
|
|
98
|
+
message: this.poI18nPipe.transform(this.literals['fieldVldDate'], [this.literals[field]])
|
|
99
|
+
});
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
// Valida uma faixa de datas se o inicial é menor que final
|
|
105
|
+
vldRangeDate(initialField, finalField, initialValue, finalValue) {
|
|
106
|
+
if (!initialValue || !finalValue) {
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
const valInitialDate = this.disclaimerUtil.ajustDate(initialValue).getTime();
|
|
110
|
+
const valFinalDate = this.disclaimerUtil.ajustDate(finalValue).getTime();
|
|
111
|
+
if (valInitialDate > valFinalDate) {
|
|
112
|
+
this.poNotification.error({
|
|
113
|
+
message: this.poI18nPipe.transform(this.literals['fieldVldRange'], [this.literals[initialField], this.literals[finalField]])
|
|
114
|
+
});
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
vldFieldMultiSelect(field, value) {
|
|
120
|
+
if (!value || value.length === 0) {
|
|
121
|
+
this.poNotification.error({
|
|
122
|
+
message: this.poI18nPipe.transform(this.literals['fieldVldSelected'], [this.literals[field]])
|
|
123
|
+
});
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
vldFieldCheckbox(field, value) {
|
|
129
|
+
if (!value || value.length === 0) {
|
|
130
|
+
this.poNotification.error({
|
|
131
|
+
message: this.poI18nPipe.transform(this.literals['fieldVldSelected'], [this.literals[field]])
|
|
132
|
+
});
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
// Valida formato conforme regra: "9" apenas números, "X" qualquer caracter, "!" apenas letras maiúsculas
|
|
138
|
+
vldFieldFormat(field, value, format, replacePoint = false) {
|
|
139
|
+
let lOK = true;
|
|
140
|
+
let oldFormat;
|
|
141
|
+
if (!value) {
|
|
142
|
+
return lOK;
|
|
143
|
+
}
|
|
144
|
+
/*Retira os pontos do formato*/
|
|
145
|
+
if (replacePoint) {
|
|
146
|
+
oldFormat = format;
|
|
147
|
+
format = format.replace(/\./g, '');
|
|
148
|
+
}
|
|
149
|
+
if (value.length !== format.length) {
|
|
150
|
+
lOK = false;
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
for (let idx = 0; idx < format.length; idx++) {
|
|
154
|
+
if (format[idx] === '9') {
|
|
155
|
+
if (value[idx].replace(/[0-9]/, '9') !== '9') {
|
|
156
|
+
lOK = false;
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
if (format[idx] === '!') {
|
|
161
|
+
if (value[idx].replace(/[A-Z]/, 'A') !== 'A') {
|
|
162
|
+
lOK = false;
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (replacePoint) {
|
|
169
|
+
format = oldFormat;
|
|
170
|
+
}
|
|
171
|
+
if (!lOK) {
|
|
172
|
+
this.poNotification.error({
|
|
173
|
+
message: this.poI18nPipe.transform(this.literals['fieldVldFormat'], [this.literals[field], format])
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
return lOK;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdmFsaWRhdGlvbi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvbGliL3V0aWxzL2ZpZWxkLXZhbGlkYXRpb24udXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0VBR0U7QUFHRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsTUFBTSxPQUFPLG1CQUFtQjtJQU81QixZQUNJLGNBQXFDLEVBQ3JDLFVBQXNCLEVBQ3RCLFFBQWdCO1FBUHBCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFTZixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ2pELElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNoRyxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxnRUFBZ0U7SUFDekQs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LFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN0RyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuVmVyc8OjbzogMS4wMDJcclxuRGF0YSBDcmlhw6fDo286IDE5LzAyLzIwMTlcclxuKi9cclxuXHJcbmltcG9ydCB7IFBvTm90aWZpY2F0aW9uU2VydmljZSwgUG9JMThuUGlwZSB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgRGlzY2xhaW1lclV0aWwgfSBmcm9tICcuL2Rpc2NsYWltZXIudXRpbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmllbGRWYWxpZGF0aW9uVXRpbCB7XHJcbiAgICBwb05vdGlmaWNhdGlvbjogUG9Ob3RpZmljYXRpb25TZXJ2aWNlO1xyXG4gICAgcG9JMThuUGlwZTogUG9JMThuUGlwZTtcclxuICAgIGxpdGVyYWxzOiBhbnkgPSB7fTtcclxuXHJcbiAgICBkaXNjbGFpbWVyVXRpbDogRGlzY2xhaW1lclV0aWw7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcG9Ob3RpZmljYXRpb246IFBvTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgICAgICBwb0kxOG5QaXBlOiBQb0kxOG5QaXBlLFxyXG4gICAgICAgIGxpdGVyYWxzOiBPYmplY3RcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24gPSBwb05vdGlmaWNhdGlvbjtcclxuICAgICAgICB0aGlzLnBvSTE4blBpcGUgPSBwb0kxOG5QaXBlO1xyXG4gICAgICAgIHRoaXMubGl0ZXJhbHMgPSBsaXRlcmFscztcclxuICAgICAgICB0aGlzLmRpc2NsYWltZXJVdGlsID0gbmV3IERpc2NsYWltZXJVdGlsKHRoaXMucG9Ob3RpZmljYXRpb24sIHRoaXMucG9JMThuUGlwZSwgdGhpcy5saXRlcmFscyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkQ2hhcmFjdGVyKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmVxdWVyZWQnXSwgW3RoaXMubGl0ZXJhbHNbZmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsaWRhIHVtYSBmYWl4YSBkZSBjYXJhY3RlcmVzIHNlIG8gaW5pY2lhbCDDqSBtZW5vciBxdWUgZmluYWxcclxuICAgIHB1YmxpYyB2bGRSYW5nZUNoYXJhY3Rlcihpbml0aWFsRmllbGQ6IHN0cmluZywgZmluYWxGaWVsZDogc3RyaW5nLCBpbml0aWFsVmFsdWU6IHN0cmluZywgZmluYWxWYWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFpbml0aWFsVmFsdWUgfHwgIWZpbmFsVmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLnRyaW0oKS50b1VwcGVyQ2FzZSgpID4gZmluYWxWYWx1ZS50cmltKCkudG9VcHBlckNhc2UoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRSYW5nZSddLFxyXG4gICAgICAgICAgICAgICAgICAgIFt0aGlzLmxpdGVyYWxzW2luaXRpYWxGaWVsZF0sIHRoaXMubGl0ZXJhbHNbZmluYWxGaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkRmllbGROdW1iZXIoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlciwgdmxkVmFsdWUgPSBmYWxzZSwgemVyb0FjY2VwdCA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZsZFZhbHVlICYmICF0aGlzLnZsZFZhbHVlT2ZOdW1iZXIoZmllbGQsIHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoKCF2YWx1ZSkgfHwgdmFsdWUgPD0gMCkge1xyXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IDAgJiYgemVyb0FjY2VwdCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFJlcXVlcmVkJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRWYWx1ZU9mTnVtYmVyKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoXHJcbiAgICAgICAgICAgICAgICB7IG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGROdW1iZXInXSwgW3ZhbHVlLnRvU3RyaW5nKCksIHRoaXMubGl0ZXJhbHNbZmllbGRdXSkgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkUGVyY2VudChmaWVsZDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyLCB2bGRWYWx1ZSA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZsZFZhbHVlICYmICF0aGlzLnZsZFZhbHVlT2ZQZXJjZW50KGZpZWxkLCB2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnZsZEZpZWxkTnVtYmVyKGZpZWxkLCB2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkVmFsdWVPZlBlcmNlbnQoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA8IDApIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcihcclxuICAgICAgICAgICAgICAgIHsgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZE51bWJlciddLCBbdmFsdWUudG9TdHJpbmcoKSwgdGhpcy5saXRlcmFsc1tmaWVsZF1dKSB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlID4gMTAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoXHJcbiAgICAgICAgICAgICAgICB7IG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGROdW1iZXInXSwgW3ZhbHVlLnRvU3RyaW5nKCksIHRoaXMubGl0ZXJhbHNbZmllbGRdXSkgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsaWRhIHVtYSBmYWl4YSBkZSBuw7ptZXJvcyBzZSBvIGluaWNpYWwgw6kgbWVub3IgcXVlIGZpbmFsXHJcbiAgICBwdWJsaWMgdmxkUmFuZ2VOdW1iZXIoaW5pdGlhbEZpZWxkOiBzdHJpbmcsIGZpbmFsRmllbGQ6IHN0cmluZywgaW5pdGlhbFZhbHVlOiBudW1iZXIsIGZpbmFsVmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghaW5pdGlhbFZhbHVlKSB7IGluaXRpYWxWYWx1ZSA9IDA7IH1cclxuICAgICAgICBpZiAoIWZpbmFsVmFsdWUpIHsgZmluYWxWYWx1ZSA9IDA7IH1cclxuXHJcbiAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSA+IGZpbmFsVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmFuZ2UnXSxcclxuICAgICAgICAgICAgICAgICAgICBbdGhpcy5saXRlcmFsc1tpbml0aWFsRmllbGRdLCB0aGlzLmxpdGVyYWxzW2ZpbmFsRmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkRGF0ZShmaWVsZDogc3RyaW5nLCB2YWx1ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHZhbERhdGUgPSB0aGlzLmRpc2NsYWltZXJVdGlsLmFqdXN0RGF0ZSh2YWx1ZSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5kaXNjbGFpbWVyVXRpbC5pc1ZhbGlkRGF0ZSh2YWxEYXRlKSkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGREYXRlJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhbGlkYSB1bWEgZmFpeGEgZGUgZGF0YXMgc2UgbyBpbmljaWFsIMOpIG1lbm9yIHF1ZSBmaW5hbFxyXG4gICAgcHVibGljIHZsZFJhbmdlRGF0ZShpbml0aWFsRmllbGQ6IHN0cmluZywgZmluYWxGaWVsZDogc3RyaW5nLCBpbml0aWFsVmFsdWU6IERhdGUsIGZpbmFsVmFsdWU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIWluaXRpYWxWYWx1ZSB8fCAhZmluYWxWYWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbEluaXRpYWxEYXRlID0gdGhpcy5kaXNjbGFpbWVyVXRpbC5hanVzdERhdGUoaW5pdGlhbFZhbHVlKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgY29uc3QgdmFsRmluYWxEYXRlID0gdGhpcy5kaXNjbGFpbWVyVXRpbC5hanVzdERhdGUoZmluYWxWYWx1ZSkuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgICBpZiAodmFsSW5pdGlhbERhdGUgPiB2YWxGaW5hbERhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmFuZ2UnXSxcclxuICAgICAgICAgICAgICAgICAgICBbdGhpcy5saXRlcmFsc1tpbml0aWFsRmllbGRdLCB0aGlzLmxpdGVyYWxzW2ZpbmFsRmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkTXVsdGlTZWxlY3QoZmllbGQ6IHN0cmluZywgdmFsdWU6IEFycmF5PGFueT4pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRTZWxlY3RlZCddLCBbdGhpcy5saXRlcmFsc1tmaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkRmllbGRDaGVja2JveChmaWVsZDogc3RyaW5nLCB2YWx1ZTogQXJyYXk8c3RyaW5nPik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFNlbGVjdGVkJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhbGlkYSBmb3JtYXRvIGNvbmZvcm1lIHJlZ3JhOiBcIjlcIiBhcGVuYXMgbsO6bWVyb3MsIFwiWFwiIHF1YWxxdWVyIGNhcmFjdGVyLCBcIiFcIiBhcGVuYXMgbGV0cmFzIG1hacO6c2N1bGFzXHJcbiAgICBwdWJsaWMgdmxkRmllbGRGb3JtYXQoZmllbGQ6IHN0cmluZywgdmFsdWU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcsIHJlcGxhY2VQb2ludCA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGV0IGxPSyA9IHRydWU7XHJcbiAgICAgICAgbGV0IG9sZEZvcm1hdDogc3RyaW5nO1xyXG5cclxuICAgICAgICBpZiAoIXZhbHVlKSB7IHJldHVybiBsT0s7IH1cclxuXHJcbiAgICAgICAgLypSZXRpcmEgb3MgcG9udG9zIGRvIGZvcm1hdG8qL1xyXG4gICAgICAgIGlmIChyZXBsYWNlUG9pbnQpIHtcclxuICAgICAgICAgICAgb2xkRm9ybWF0ID0gZm9ybWF0O1xyXG4gICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgvXFwuL2csICcnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggIT09IGZvcm1hdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgbE9LID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgZm9ybWF0Lmxlbmd0aDsgaWR4KyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChmb3JtYXRbaWR4XSA9PT0gJzknKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW2lkeF0ucmVwbGFjZSgvWzAtOV0vLCAnOScpICE9PSAnOScpIHsgbE9LID0gZmFsc2U7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGZvcm1hdFtpZHhdID09PSAnIScpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVbaWR4XS5yZXBsYWNlKC9bQS1aXS8sICdBJykgIT09ICdBJykgeyBsT0sgPSBmYWxzZTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlcGxhY2VQb2ludCkge1xyXG4gICAgICAgICAgICBmb3JtYXQgPSBvbGRGb3JtYXQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWxPSykge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRGb3JtYXQnXSwgW3RoaXMubGl0ZXJhbHNbZmllbGRdLCBmb3JtYXRdKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBsT0s7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
export class FileUtil {
|
|
2
|
+
constructor() { }
|
|
3
|
+
static downloadFile(data, fileName, contentType, base64) {
|
|
4
|
+
base64 = (base64 === false) ? false : true;
|
|
5
|
+
const dataBlob = base64 ? this.b64toBlob(data, contentType) : data;
|
|
6
|
+
this.download(dataBlob, fileName);
|
|
7
|
+
}
|
|
8
|
+
static downloadData(data, dwldDataParam = null) {
|
|
9
|
+
if (!data) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (!dwldDataParam) {
|
|
13
|
+
dwldDataParam = new DownloadDataParams();
|
|
14
|
+
}
|
|
15
|
+
if (!dwldDataParam.fileName) {
|
|
16
|
+
dwldDataParam.fileName = 'data.csv';
|
|
17
|
+
}
|
|
18
|
+
if (!dwldDataParam.literals) {
|
|
19
|
+
dwldDataParam.literals = {};
|
|
20
|
+
}
|
|
21
|
+
if (!dwldDataParam.columnDelimiter) {
|
|
22
|
+
dwldDataParam.columnDelimiter = ';';
|
|
23
|
+
}
|
|
24
|
+
if (!dwldDataParam.columnList) {
|
|
25
|
+
dwldDataParam.columnList = [];
|
|
26
|
+
}
|
|
27
|
+
if (!dwldDataParam.columnExclude) {
|
|
28
|
+
dwldDataParam.columnExclude = [];
|
|
29
|
+
}
|
|
30
|
+
const datab64 = btoa(this.jsonToString(data, dwldDataParam));
|
|
31
|
+
this.downloadFile(datab64, dwldDataParam.fileName, 'text/csv');
|
|
32
|
+
}
|
|
33
|
+
static download(file, fileName) {
|
|
34
|
+
const binaryData = [file];
|
|
35
|
+
const downloadLink = document.createElement('a');
|
|
36
|
+
const urlDownload = window.URL.createObjectURL(new Blob(binaryData, { type: file.type }));
|
|
37
|
+
downloadLink.href = urlDownload;
|
|
38
|
+
downloadLink.setAttribute('download', fileName);
|
|
39
|
+
document.body.appendChild(downloadLink);
|
|
40
|
+
downloadLink.click();
|
|
41
|
+
window.URL.revokeObjectURL(urlDownload);
|
|
42
|
+
downloadLink.remove();
|
|
43
|
+
}
|
|
44
|
+
static b64toBlob(b64Data, contentType, sliceSize) {
|
|
45
|
+
contentType = contentType || '';
|
|
46
|
+
sliceSize = sliceSize || 512;
|
|
47
|
+
const byteCharacters = atob(b64Data);
|
|
48
|
+
const byteArrays = [];
|
|
49
|
+
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
|
|
50
|
+
const slice = byteCharacters.slice(offset, offset + sliceSize);
|
|
51
|
+
const byteNumbers = new Array(slice.length);
|
|
52
|
+
for (let i = 0; i < slice.length; i++) {
|
|
53
|
+
byteNumbers[i] = slice.charCodeAt(i);
|
|
54
|
+
}
|
|
55
|
+
const byteArray = new Uint8Array(byteNumbers);
|
|
56
|
+
byteArrays.push(byteArray);
|
|
57
|
+
}
|
|
58
|
+
const blob = new Blob(byteArrays, { type: contentType });
|
|
59
|
+
return blob;
|
|
60
|
+
}
|
|
61
|
+
static jsonToString(jsonData, dwldDataParam) {
|
|
62
|
+
if (!jsonData || jsonData.length === 0) {
|
|
63
|
+
return '';
|
|
64
|
+
}
|
|
65
|
+
const lineDelimiter = '\n';
|
|
66
|
+
let columnOrig = null;
|
|
67
|
+
let columnHeader = null;
|
|
68
|
+
const keys = [];
|
|
69
|
+
let includeKey;
|
|
70
|
+
if (dwldDataParam.columnList &&
|
|
71
|
+
dwldDataParam.columnList.length > 0) {
|
|
72
|
+
columnOrig = dwldDataParam.columnList;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
columnOrig = Object.keys(jsonData[0]);
|
|
76
|
+
}
|
|
77
|
+
columnOrig.forEach(key => {
|
|
78
|
+
includeKey = true;
|
|
79
|
+
if (dwldDataParam.columnExclude &&
|
|
80
|
+
dwldDataParam.columnExclude.length > 0 &&
|
|
81
|
+
dwldDataParam.columnExclude.indexOf(key) !== -1) {
|
|
82
|
+
includeKey = false;
|
|
83
|
+
}
|
|
84
|
+
if (includeKey) {
|
|
85
|
+
keys.push(key);
|
|
86
|
+
columnHeader = (!columnHeader) ? '' : columnHeader + dwldDataParam.columnDelimiter;
|
|
87
|
+
columnHeader += (dwldDataParam.literals[key]) ? dwldDataParam.literals[key] : key;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
const lineStr = jsonData.reduce((accLineStr, currentItem) => {
|
|
91
|
+
let first = true;
|
|
92
|
+
let columnValue = null;
|
|
93
|
+
keys.forEach(key => {
|
|
94
|
+
if (!first) {
|
|
95
|
+
accLineStr += dwldDataParam.columnDelimiter;
|
|
96
|
+
}
|
|
97
|
+
columnValue = currentItem[key];
|
|
98
|
+
if (columnValue === null || columnValue === undefined) {
|
|
99
|
+
columnValue = '';
|
|
100
|
+
}
|
|
101
|
+
switch (typeof (columnValue)) {
|
|
102
|
+
case 'number':
|
|
103
|
+
columnValue = columnValue.toLocaleString();
|
|
104
|
+
break;
|
|
105
|
+
case 'boolean':
|
|
106
|
+
columnValue = (dwldDataParam.literals[`${columnValue}`]) ?
|
|
107
|
+
dwldDataParam.literals[`${columnValue}`] : columnValue;
|
|
108
|
+
break;
|
|
109
|
+
case 'object':
|
|
110
|
+
columnValue = JSON.stringify(columnValue);
|
|
111
|
+
}
|
|
112
|
+
accLineStr += columnValue;
|
|
113
|
+
first = false;
|
|
114
|
+
});
|
|
115
|
+
return accLineStr + lineDelimiter;
|
|
116
|
+
}, columnHeader + lineDelimiter);
|
|
117
|
+
return lineStr;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
export class DownloadDataParams {
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvbGliL3V0aWxzL2ZpbGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQUVqQixnQkFDSSxDQUFDO0lBRUwsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFTLEVBQUUsUUFBZ0IsRUFBRSxXQUFvQixFQUFFLE1BQWdCO1FBQ25GLE1BQU0sR0FBRyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDM0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQWdCLEVBQUUsZ0JBQXFDLElBQUk7UUFDM0UsSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU87U0FBRTtRQUV0QixJQUFJLENBQUMsYUFBYSxFQUFFO1lBQUUsYUFBYSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztTQUFFO1FBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO1lBQUUsYUFBYSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7U0FBRTtRQUNyRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUFFLGFBQWEsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1NBQUU7UUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUU7WUFBRSxhQUFhLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztTQUFFO1FB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IEZpbGVVdGlsIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICkgeyB9XHJcblxyXG4gICAgc3RhdGljIGRvd25sb2FkRmlsZShkYXRhOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcsIGNvbnRlbnRUeXBlPzogc3RyaW5nLCBiYXNlNjQ/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgYmFzZTY0ID0gKGJhc2U2NCA9PT0gZmFsc2UpID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGRhdGFCbG9iID0gYmFzZTY0ID8gdGhpcy5iNjR0b0Jsb2IoZGF0YSwgY29udGVudFR5cGUpIDogZGF0YTtcclxuICAgICAgICB0aGlzLmRvd25sb2FkKGRhdGFCbG9iLCBmaWxlTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGRvd25sb2FkRGF0YShkYXRhOiBBcnJheTxhbnk+LCBkd2xkRGF0YVBhcmFtOiBJRG93bmxvYWREYXRhUGFyYW1zID0gbnVsbCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghZGF0YSkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtKSB7IGR3bGREYXRhUGFyYW0gPSBuZXcgRG93bmxvYWREYXRhUGFyYW1zKCk7IH1cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0uZmlsZU5hbWUpIHsgZHdsZERhdGFQYXJhbS5maWxlTmFtZSA9ICdkYXRhLmNzdic7IH1cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0ubGl0ZXJhbHMpIHsgZHdsZERhdGFQYXJhbS5saXRlcmFscyA9IHt9OyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmNvbHVtbkRlbGltaXRlcikgeyBkd2xkRGF0YVBhcmFtLmNvbHVtbkRlbGltaXRlciA9ICc7JzsgfVxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbS5jb2x1bW5MaXN0KSB7IGR3bGREYXRhUGFyYW0uY29sdW1uTGlzdCA9IFtdOyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmNvbHVtbkV4Y2x1ZGUpIHsgZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlID0gW107IH1cclxuXHJcbiAgICAgICAgY29uc3QgZGF0YWI2NCA9IGJ0b2EodGhpcy5qc29uVG9TdHJpbmcoZGF0YSwgZHdsZERhdGFQYXJhbSkpO1xyXG4gICAgICAgIHRoaXMuZG93bmxvYWRGaWxlKGRhdGFiNjQsIGR3bGREYXRhUGFyYW0uZmlsZU5hbWUsICd0ZXh0L2NzdicpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGRvd25sb2FkKGZpbGU6IEJsb2IsIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBiaW5hcnlEYXRhID0gW2ZpbGVdO1xyXG4gICAgICAgIGNvbnN0IGRvd25sb2FkTGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICBjb25zdCB1cmxEb3dubG9hZCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKGJpbmFyeURhdGEsIHsgdHlwZTogZmlsZS50eXBlIH0pKTtcclxuXHJcbiAgICAgICAgZG93bmxvYWRMaW5rLmhyZWYgPSB1cmxEb3dubG9hZDtcclxuICAgICAgICBkb3dubG9hZExpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGZpbGVOYW1lKTtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkTGluayk7XHJcbiAgICAgICAgZG93bmxvYWRMaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsRG93bmxvYWQpO1xyXG4gICAgICAgIGRvd25sb2FkTGluay5yZW1vdmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBiNjR0b0Jsb2IoYjY0RGF0YTogYW55LCBjb250ZW50VHlwZT86IHN0cmluZywgc2xpY2VTaXplPzogbnVtYmVyKTogQmxvYiB7XHJcbiAgICAgICAgY29udGVudFR5cGUgPSBjb250ZW50VHlwZSB8fCAnJztcclxuICAgICAgICBzbGljZVNpemUgPSBzbGljZVNpemUgfHwgNTEyO1xyXG5cclxuICAgICAgICBjb25zdCBieXRlQ2hhcmFjdGVycyA9IGF0b2IoYjY0RGF0YSk7XHJcbiAgICAgICAgY29uc3QgYnl0ZUFycmF5cyA9IFtdO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBieXRlQ2hhcmFjdGVycy5sZW5ndGg7IG9mZnNldCArPSBzbGljZVNpemUpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2xpY2UgPSBieXRlQ2hhcmFjdGVycy5zbGljZShvZmZzZXQsIG9mZnNldCArIHNsaWNlU2l6ZSk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBBcnJheShzbGljZS5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWNlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBieXRlTnVtYmVyc1tpXSA9IHNsaWNlLmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGJ5dGVOdW1iZXJzKTtcclxuICAgICAgICAgICAgYnl0ZUFycmF5cy5wdXNoKGJ5dGVBcnJheSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoYnl0ZUFycmF5cywgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcclxuICAgICAgICByZXR1cm4gYmxvYjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBqc29uVG9TdHJpbmcoanNvbkRhdGE6IEFycmF5PGFueT4sIGR3bGREYXRhUGFyYW06IElEb3dubG9hZERhdGFQYXJhbXMpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghanNvbkRhdGEgfHwganNvbkRhdGEubGVuZ3RoID09PSAwKSB7IHJldHVybiAnJzsgfVxyXG5cclxuICAgICAgICBjb25zdCBsaW5lRGVsaW1pdGVyID0gJ1xcbic7XHJcblxyXG4gICAgICAgIGxldCBjb2x1bW5PcmlnID0gbnVsbDtcclxuICAgICAgICBsZXQgY29sdW1uSGVhZGVyID0gbnVsbDtcclxuICAgICAgICBjb25zdCBrZXlzID0gW107XHJcbiAgICAgICAgbGV0IGluY2x1ZGVLZXk6IGJvb2xlYW47XHJcblxyXG4gICAgICAgIGlmIChkd2xkRGF0YVBhcmFtLmNvbHVtbkxpc3QgJiZcclxuICAgICAgICAgICAgZHdsZERhdGFQYXJhbS5jb2x1bW5MaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29sdW1uT3JpZyA9IGR3bGREYXRhUGFyYW0uY29sdW1uTGlzdDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb2x1bW5PcmlnID0gT2JqZWN0LmtleXMoanNvbkRhdGFbMF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29sdW1uT3JpZy5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgIGluY2x1ZGVLZXkgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgaWYgKGR3bGREYXRhUGFyYW0uY29sdW1uRXhjbHVkZSAmJlxyXG4gICAgICAgICAgICAgICAgZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICAgIGR3bGREYXRhUGFyYW0uY29sdW1uRXhjbHVkZS5pbmRleE9mKGtleSkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBpbmNsdWRlS2V5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpbmNsdWRlS2V5KSB7XHJcbiAgICAgICAgICAgICAgICBrZXlzLnB1c2goa2V5KTtcclxuICAgICAgICAgICAgICAgIGNvbHVtbkhlYWRlciA9ICghY29sdW1uSGVhZGVyKSA/ICcnIDogY29sdW1uSGVhZGVyICsgZHdsZERhdGFQYXJhbS5jb2x1bW5EZWxpbWl0ZXI7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5IZWFkZXIgKz0gKGR3bGREYXRhUGFyYW0ubGl0ZXJhbHNba2V5XSkgPyBkd2xkRGF0YVBhcmFtLmxpdGVyYWxzW2tleV0gOiBrZXk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgbGluZVN0ciA9IGpzb25EYXRhLnJlZHVjZSgoYWNjTGluZVN0ciwgY3VycmVudEl0ZW0pID0+IHtcclxuICAgICAgICAgICAgbGV0IGZpcnN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgbGV0IGNvbHVtblZhbHVlID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFmaXJzdCkgeyBhY2NMaW5lU3RyICs9IGR3bGREYXRhUGFyYW0uY29sdW1uRGVsaW1pdGVyOyB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29sdW1uVmFsdWUgPSBjdXJyZW50SXRlbVtrZXldO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbHVtblZhbHVlID09PSBudWxsIHx8IGNvbHVtblZhbHVlID09PSB1bmRlZmluZWQpIHsgY29sdW1uVmFsdWUgPSAnJzsgfVxyXG4gICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlb2YgKGNvbHVtblZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblZhbHVlID0gY29sdW1uVmFsdWUudG9Mb2NhbGVTdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblZhbHVlID0gKGR3bGREYXRhUGFyYW0ubGl0ZXJhbHNbYCR7Y29sdW1uVmFsdWV9YF0pID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3bGREYXRhUGFyYW0ubGl0ZXJhbHNbYCR7Y29sdW1uVmFsdWV9YF0gOiBjb2x1bW5WYWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb2JqZWN0JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVmFsdWUgPSBKU09OLnN0cmluZ2lmeShjb2x1bW5WYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBhY2NMaW5lU3RyICs9IGNvbHVtblZhbHVlO1xyXG5cclxuICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGFjY0xpbmVTdHIgKyBsaW5lRGVsaW1pdGVyO1xyXG5cclxuICAgICAgICB9LCBjb2x1bW5IZWFkZXIgKyBsaW5lRGVsaW1pdGVyKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGxpbmVTdHI7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURvd25sb2FkRGF0YVBhcmFtcyB7XHJcbiAgICBmaWxlTmFtZTogc3RyaW5nO1xyXG4gICAgbGl0ZXJhbHM6IGFueTtcclxuICAgIGNvbHVtbkRlbGltaXRlcjogc3RyaW5nO1xyXG4gICAgY29sdW1uTGlzdDogQXJyYXk8c3RyaW5nPjtcclxuICAgIGNvbHVtbkV4Y2x1ZGU6IEFycmF5PHN0cmluZz47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEb3dubG9hZERhdGFQYXJhbXMgaW1wbGVtZW50cyBJRG93bmxvYWREYXRhUGFyYW1zIHtcclxuICAgIGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgICBsaXRlcmFsczogYW55O1xyXG4gICAgY29sdW1uRGVsaW1pdGVyOiBzdHJpbmc7XHJcbiAgICBjb2x1bW5MaXN0OiBBcnJheTxzdHJpbmc+O1xyXG4gICAgY29sdW1uRXhjbHVkZTogQXJyYXk8c3RyaW5nPjtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Versão: 1.000
|
|
3
|
+
Data Criação: 06/08/2018
|
|
4
|
+
*/
|
|
5
|
+
export class FilterRangeUtil {
|
|
6
|
+
constructor() {
|
|
7
|
+
}
|
|
8
|
+
static makeFilterRangeCharacter(iniInitial, iniFinal) {
|
|
9
|
+
return {
|
|
10
|
+
iniInitial,
|
|
11
|
+
iniFinal,
|
|
12
|
+
valInitial: iniInitial,
|
|
13
|
+
valFinal: iniFinal
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
static makeFilterRangeNumber(iniInitial, iniFinal) {
|
|
17
|
+
return {
|
|
18
|
+
iniInitial,
|
|
19
|
+
iniFinal,
|
|
20
|
+
valInitial: iniInitial,
|
|
21
|
+
valFinal: iniFinal
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
static makeFilterRangeDate(iniInitial, iniFinal) {
|
|
25
|
+
return {
|
|
26
|
+
iniInitial,
|
|
27
|
+
iniFinal,
|
|
28
|
+
valInitial: iniInitial,
|
|
29
|
+
valFinal: iniFinal
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXJhbmdlLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy9saWIvdXRpbHMvZmlsdGVyLXJhbmdlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztFQUdFO0FBSUYsTUFBTSxPQUFPLGVBQWU7SUFFeEI7SUFDQSxDQUFDO0lBRU0sTUFBTSxDQUFDLHdCQUF3QixDQUFDLFVBQWtCLEVBQUUsUUFBZ0I7UUFDdkUsT0FBTztZQUNILFVBQVU7WUFDVixRQUFRO1lBQ1IsVUFBVSxFQUFFLFVBQVU7WUFDdEIsUUFBUSxFQUFFLFFBQVE7U0FDckIsQ0FBQztJQUNOLENBQUM7SUFFTSxNQUFNLENBQUMscUJBQXFCLENBQUMsVUFBa0IsRUFBRSxRQUFnQjtRQUNwRSxPQUFPO1lBQ0gsVUFBVTtZQUNWLFFBQVE7WUFDUixVQUFVLEVBQUUsVUFBVTtZQUN0QixRQUFRLEVBQUUsUUFBUTtTQUNyQixDQUFDO0lBQ04sQ0FBQztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFnQixFQUFFLFFBQWM7UUFDOUQsT0FBTztZQUNILFVBQVU7WUFDVixRQUFRO1lBQ1IsVUFBVSxFQUFFLFVBQVU7WUFDdEIsUUFBUSxFQUFFLFFBQVE7U0FDckIsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcblZlcnPDo286IDEuMDAwXHJcbkRhdGEgQ3JpYcOnw6NvOiAwNi8wOC8yMDE4XHJcbiovXHJcblxyXG5pbXBvcnQgeyBJRmlsdGVyUmFuZ2VDaGFyYWN0ZXIsIElGaWx0ZXJSYW5nZU51bWJlciwgSUZpbHRlclJhbmdlRGF0ZSB9IGZyb20gJy4uLy4uL2xpYi9pbnRlcmZhY2VzL2ZpbHRlci1yYW5nZS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpbHRlclJhbmdlVXRpbCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBtYWtlRmlsdGVyUmFuZ2VDaGFyYWN0ZXIoaW5pSW5pdGlhbDogc3RyaW5nLCBpbmlGaW5hbDogc3RyaW5nKTogSUZpbHRlclJhbmdlQ2hhcmFjdGVyIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpbmlJbml0aWFsLFxyXG4gICAgICAgICAgICBpbmlGaW5hbCxcclxuICAgICAgICAgICAgdmFsSW5pdGlhbDogaW5pSW5pdGlhbCxcclxuICAgICAgICAgICAgdmFsRmluYWw6IGluaUZpbmFsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIG1ha2VGaWx0ZXJSYW5nZU51bWJlcihpbmlJbml0aWFsOiBudW1iZXIsIGluaUZpbmFsOiBudW1iZXIpOiBJRmlsdGVyUmFuZ2VOdW1iZXIge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGluaUluaXRpYWwsXHJcbiAgICAgICAgICAgIGluaUZpbmFsLFxyXG4gICAgICAgICAgICB2YWxJbml0aWFsOiBpbmlJbml0aWFsLFxyXG4gICAgICAgICAgICB2YWxGaW5hbDogaW5pRmluYWxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgbWFrZUZpbHRlclJhbmdlRGF0ZShpbmlJbml0aWFsOiBEYXRlLCBpbmlGaW5hbDogRGF0ZSk6IElGaWx0ZXJSYW5nZURhdGUge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGluaUluaXRpYWwsXHJcbiAgICAgICAgICAgIGluaUZpbmFsLFxyXG4gICAgICAgICAgICB2YWxJbml0aWFsOiBpbmlJbml0aWFsLFxyXG4gICAgICAgICAgICB2YWxGaW5hbDogaW5pRmluYWxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Versão: 1.003
|
|
3
|
+
Data Criação: 18/04/2019
|
|
4
|
+
*/
|
|
5
|
+
export class GenericFunctionsUtils {
|
|
6
|
+
constructor(literals) {
|
|
7
|
+
this.literals = {};
|
|
8
|
+
this.literals = literals;
|
|
9
|
+
}
|
|
10
|
+
/* Transforma uma Lista separada por "," em um Array */
|
|
11
|
+
static listToArrayCharacter(list) {
|
|
12
|
+
let returnArray = new Array();
|
|
13
|
+
if (list && list !== '') {
|
|
14
|
+
returnArray = list.split(',');
|
|
15
|
+
}
|
|
16
|
+
return returnArray;
|
|
17
|
+
}
|
|
18
|
+
/* Transforma um Array em uma Lista separada por "," */
|
|
19
|
+
static ArrayToListCharacter(array) {
|
|
20
|
+
let list = '';
|
|
21
|
+
if (array && array.length > 0) {
|
|
22
|
+
list = array.join(',');
|
|
23
|
+
}
|
|
24
|
+
return list;
|
|
25
|
+
}
|
|
26
|
+
static isEmpty(object) {
|
|
27
|
+
let isEmpty = true;
|
|
28
|
+
for (const content in object) {
|
|
29
|
+
if (object.hasOwnProperty(content)) {
|
|
30
|
+
isEmpty = false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return isEmpty;
|
|
34
|
+
}
|
|
35
|
+
static getChartValues(chartData) {
|
|
36
|
+
let chartValues;
|
|
37
|
+
let maxValue, minValue;
|
|
38
|
+
maxValue = undefined;
|
|
39
|
+
minValue = undefined;
|
|
40
|
+
chartData.map(item => {
|
|
41
|
+
if (maxValue === undefined && minValue === undefined) {
|
|
42
|
+
maxValue = item.data[0];
|
|
43
|
+
minValue = item.data[0];
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
if (item.data < minValue) {
|
|
47
|
+
minValue = item.data[0];
|
|
48
|
+
}
|
|
49
|
+
if (item.data > maxValue) {
|
|
50
|
+
maxValue = item.data[0];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
if (maxValue > 0 && minValue > 0) {
|
|
55
|
+
chartValues = { maxValue: maxValue, minValue: 0 };
|
|
56
|
+
}
|
|
57
|
+
if (maxValue > 0 && minValue < 0) {
|
|
58
|
+
chartValues = { maxValue: maxValue, minValue: minValue };
|
|
59
|
+
}
|
|
60
|
+
if (maxValue < 0 && minValue < 0) {
|
|
61
|
+
const max = (minValue / 3) * (-1);
|
|
62
|
+
chartValues = { maxValue: max, minValue: minValue };
|
|
63
|
+
}
|
|
64
|
+
if (maxValue > 0 && minValue === 0) {
|
|
65
|
+
chartValues = { maxValue: maxValue, minValue: 0 };
|
|
66
|
+
}
|
|
67
|
+
if (maxValue === 0 && minValue < 0) {
|
|
68
|
+
const max = (minValue / 3) * (-1);
|
|
69
|
+
chartValues = { maxValue: max, minValue: minValue };
|
|
70
|
+
}
|
|
71
|
+
if (maxValue === 0 && minValue === 0) {
|
|
72
|
+
chartValues = { maxValue: undefined, minValue: undefined };
|
|
73
|
+
}
|
|
74
|
+
chartValues.maxValue = Math.round(chartValues.maxValue);
|
|
75
|
+
chartValues.minValue = Math.round(chartValues.minValue);
|
|
76
|
+
return chartValues;
|
|
77
|
+
}
|
|
78
|
+
/*Deixa no list apenas o itens que existem no options*/
|
|
79
|
+
static atzMultiSelectListByOptions(options, list) {
|
|
80
|
+
let idx;
|
|
81
|
+
let newList;
|
|
82
|
+
if (!list) {
|
|
83
|
+
return list;
|
|
84
|
+
}
|
|
85
|
+
newList = new Array();
|
|
86
|
+
list.map(item => {
|
|
87
|
+
if (item) {
|
|
88
|
+
idx = options.findIndex(itemOptions => itemOptions.value === item);
|
|
89
|
+
if (idx >= 0) {
|
|
90
|
+
newList.push(item);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
return newList;
|
|
95
|
+
}
|
|
96
|
+
/*Carrega o Options com os valores defaults passados como parâmetro (list)*/
|
|
97
|
+
loadOptionsMultiSelect(options, list) {
|
|
98
|
+
let idx;
|
|
99
|
+
if (!list) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
list.map(item => {
|
|
103
|
+
if (item) {
|
|
104
|
+
idx = options.findIndex(itemOptions => itemOptions.value === item);
|
|
105
|
+
if (idx === -1) {
|
|
106
|
+
options.push({ label: item === 'all' ? this.literals['all'] : item, value: item });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
/*Carrega o Options com os valores defaults passados como parâmetro (list)*/
|
|
112
|
+
loadOptionsSelect(options, selectValue, tradValue = false) {
|
|
113
|
+
let idx;
|
|
114
|
+
if (!selectValue) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
if (selectValue) {
|
|
118
|
+
idx = options.findIndex(itemOptions => itemOptions.value === selectValue);
|
|
119
|
+
if (idx === -1) {
|
|
120
|
+
options.push({ label: tradValue ? this.literals[selectValue] : selectValue, value: selectValue });
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/*Método que compara 2 objetos e retorna se são iguais ou diferentes*/
|
|
125
|
+
compareObjects(firstObject, secondObject) {
|
|
126
|
+
if (!firstObject || !secondObject) {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
/*Pega a lista de nomes dos campos do objetos e compara*/
|
|
130
|
+
if (Object.getOwnPropertyNames(firstObject).length !== Object.getOwnPropertyNames(secondObject).length) {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
for (const content in firstObject) {
|
|
134
|
+
if (content.substr(0, 1) === '$' || content.substr(0, 1) === '_') {
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
if (firstObject[content] !== secondObject[content]) {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
referenceGeneration(charInd, dateRef) {
|
|
144
|
+
let reference;
|
|
145
|
+
let random;
|
|
146
|
+
const iDay = dateRef.getDate();
|
|
147
|
+
const iMonth = dateRef.getMonth() + 1;
|
|
148
|
+
const iYear = dateRef.getFullYear();
|
|
149
|
+
reference = `${this.pad(iYear)}${this.pad(iMonth)}${this.pad(iDay)}${charInd}`;
|
|
150
|
+
random = btoa(`${(new Date()).getTime()}`);
|
|
151
|
+
random = random.replace(/[=]/g, '');
|
|
152
|
+
random = random.slice(random.length - 3, random.length);
|
|
153
|
+
return `${reference}${random}`;
|
|
154
|
+
}
|
|
155
|
+
pad(number) {
|
|
156
|
+
if (number < 10) {
|
|
157
|
+
return '0' + number;
|
|
158
|
+
}
|
|
159
|
+
if (number > 99) {
|
|
160
|
+
return (number + '').slice(2, 4);
|
|
161
|
+
}
|
|
162
|
+
return number;
|
|
163
|
+
}
|
|
164
|
+
focusInternalInput(idField) {
|
|
165
|
+
const fieldComponent = document.getElementById(idField);
|
|
166
|
+
const fieldInput = fieldComponent.getElementsByClassName('po-input')[0];
|
|
167
|
+
fieldInput.focus();
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1mdW5jdGlvbnMudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy9saWIvdXRpbHMvZ2VuZXJpYy1mdW5jdGlvbnMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztFQUdFO0FBYUYsTUFBTSxPQUFPLHFCQUFxQjtJQUk5QixZQUNJLFFBQWdCO1FBSHBCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFLZixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0lBRUQsdURBQXVEO0lBQ3ZELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFZO1FBQ3BDLElBQUksV0FBVyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFFdEMsSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRTtZQUNyQixXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNqQztRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCx3REFBd0Q7SUFDeEQsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQW9CO1FBQzVDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUVkLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNCLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBYztRQUN6QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFbkIsS0FBSyxNQUFNLE9BQU8sSUFBSSxNQUFNLEVBQUU7WUFDMUIsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNoQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2FBQ25CO1NBQ0o7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUE2QjtRQUUvQyxJQUFJLFdBQXdCLENBQUM7UUFFN0IsSUFBSSxRQUFRLEVBQ1IsUUFBUSxDQUFDO1FBRWIsUUFBUSxHQUFHLFNBQVMsQ0FBQztRQUNyQixRQUFRLEdBQUcsU0FBUyxDQUFDO1FBRXJCLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakIsSUFBSSxRQUFRLEtBQUssU0FBUyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7Z0JBQ2xELFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzQjtpQkFBTTtnQkFDSCxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxFQUFFO29CQUN0QixRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDM0I7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsRUFBRTtvQkFDdEIsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzNCO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksUUFBUSxHQUFHLENBQUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLFdBQVcsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO1NBQ3JEO1FBRUQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUU7WUFDOUIsV0FBVyxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUM7U0FDNUQ7UUFFRCxJQUFJLFFBQVEsR0FBRyxDQUFDLElBQUksUUFBUSxHQUFHLENBQUMsRUFBRTtZQUM5QixNQUFNLEdBQUcsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkMsV0FBVyxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUM7U0FDdkQ7UUFFRCxJQUFJLFFBQVEsR0FBRyxDQUFDLElBQUksUUFBUSxLQUFLLENBQUMsRUFBRTtZQUNoQyxXQUFXLEdBQUcsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUNyRDtRQUVELElBQUksUUFBUSxLQUFLLENBQUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sR0FBRyxHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBRSxDQUFDLENBQUMsQ0FBQztZQUNuQyxXQUFXLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQztTQUN2RDtRQUVELElBQUksUUFBUSxLQUFLLENBQUMsSUFBSSxRQUFRLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLFdBQVcsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDO1NBQzlEO1FBRUQsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxXQUFXLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXhELE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCx1REFBdUQ7SUFDdkQsTUFBTSxDQUFDLDJCQUEyQixDQUFDLE9BQW1DLEVBQUUsSUFBbUI7UUFDdkYsSUFBSSxHQUFXLENBQUM7UUFDaEIsSUFBSSxPQUFzQixDQUFDO1FBRTNCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDUCxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsT0FBTyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFFOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNaLElBQUksSUFBSSxFQUFFO2dCQUNOLEdBQUcsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFO29CQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3RCO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRCw0RUFBNEU7SUFDckUsc0JBQXNCLENBQUMsT0FBbUMsRUFBRSxJQUFtQjtRQUNsRixJQUFJLEdBQVcsQ0FBQztRQUVoQixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNaLElBQUksSUFBSSxFQUFFO2dCQUNOLEdBQUcsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ3RGO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCw0RUFBNEU7SUFDckUsaUJBQWlCLENBQUMsT0FBOEIsRUFBRSxXQUFtQixFQUFFLFNBQVMsR0FBRyxLQUFLO1FBQzNGLElBQUksR0FBVyxDQUFDO1FBRWhCLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDZCxPQUFPO1NBQ1Y7UUFFRCxJQUFJLFdBQVcsRUFBRTtZQUNiLEdBQUcsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxXQUFXLENBQUMsQ0FBQztZQUMxRSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDWixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO2FBQ3JHO1NBQ0o7SUFDTCxDQUFDO0lBRUQsc0VBQXNFO0lBQy9ELGNBQWMsQ0FBQyxXQUFtQixFQUFFLFlBQW9CO1FBRTNELElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDL0IsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCx5REFBeUQ7UUFDekQsSUFBSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDcEcsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxLQUFLLE1BQU0sT0FBTyxJQUFJLFdBQVcsRUFBRTtZQUMvQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7Z0JBQzlELFNBQVM7YUFDWjtZQUVELElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDaEQsT0FBTyxLQUFLLENBQUM7YUFDaEI7U0FFSjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxPQUFlLEVBQUUsT0FBYTtRQUNyRCxJQUFJLFNBQWlCLENBQUM7UUFDdEIsSUFBSSxNQUFjLENBQUM7UUFFbkIsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDdEMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXBDLFNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDO1FBRS9FLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0MsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV4RCxPQUFPLEdBQUcsU0FBUyxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTSxHQUFHLENBQUMsTUFBTTtRQUNiLElBQUksTUFBTSxHQUFHLEVBQUUsRUFBRTtZQUNiLE9BQU8sR0FBRyxHQUFHLE1BQU0sQ0FBQztTQUN2QjtRQUNELElBQUksTUFBTSxHQUFHLEVBQUUsRUFBRTtZQUNiLE9BQU8sQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNwQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxPQUFlO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEQsTUFBTSxVQUFVLEdBQThCLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuVmVyc8OjbzogMS4wMDNcclxuRGF0YSBDcmlhw6fDo286IDE4LzA0LzIwMTlcclxuKi9cclxuXHJcbmltcG9ydCB7IFBvTXVsdGlzZWxlY3RPcHRpb24sIFBvU2VsZWN0T3B0aW9uIH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDaGFydFNlcmllcyB7XHJcbiAgICAgIG5hbWU/OiBzdHJpbmc7XHJcbiAgICAgIGRhdGE/OiBBcnJheTxudW1iZXI+O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcnRWYWx1ZXMge1xyXG4gICAgbWluVmFsdWU6IG51bWJlcjtcclxuICAgIG1heFZhbHVlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmljRnVuY3Rpb25zVXRpbHMge1xyXG5cclxuICAgIGxpdGVyYWxzOiBhbnkgPSB7fTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBsaXRlcmFsczogT2JqZWN0XHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLmxpdGVyYWxzID0gbGl0ZXJhbHM7XHJcbiAgICB9XHJcblxyXG4gICAgLyogVHJhbnNmb3JtYSB1bWEgTGlzdGEgc2VwYXJhZGEgcG9yIFwiLFwiIGVtIHVtIEFycmF5ICovXHJcbiAgICBzdGF0aWMgbGlzdFRvQXJyYXlDaGFyYWN0ZXIobGlzdDogc3RyaW5nKTogQXJyYXk8c3RyaW5nPiB7XHJcbiAgICAgICAgbGV0IHJldHVybkFycmF5ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcclxuXHJcbiAgICAgICAgaWYgKGxpc3QgJiYgbGlzdCAhPT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuQXJyYXkgPSBsaXN0LnNwbGl0KCcsJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmV0dXJuQXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogVHJhbnNmb3JtYSB1bSBBcnJheSBlbSB1bWEgTGlzdGEgc2VwYXJhZGEgcG9yIFwiLFwiICAqL1xyXG4gICAgc3RhdGljIEFycmF5VG9MaXN0Q2hhcmFjdGVyKGFycmF5OiBBcnJheTxzdHJpbmc+KTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgbGlzdCA9ICcnO1xyXG5cclxuICAgICAgICBpZiAoYXJyYXkgJiYgYXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBsaXN0ID0gYXJyYXkuam9pbignLCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGxpc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzRW1wdHkob2JqZWN0OiBvYmplY3QpOiBib29sZWFuIHtcclxuICAgICAgICBsZXQgaXNFbXB0eSA9IHRydWU7XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgY29udGVudCBpbiBvYmplY3QpIHtcclxuICAgICAgICAgICAgaWYgKG9iamVjdC5oYXNPd25Qcm9wZXJ0eShjb250ZW50KSkge1xyXG4gICAgICAgICAgICAgICAgaXNFbXB0eSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaXNFbXB0eTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0Q2hhcnRWYWx1ZXMoY2hhcnREYXRhOiBBcnJheTxDaGFydFNlcmllcz4pOiBDaGFydFZhbHVlcyB7XHJcblxyXG4gICAgICAgIGxldCBjaGFydFZhbHVlczogQ2hhcnRWYWx1ZXM7XHJcblxyXG4gICAgICAgIGxldCBtYXhWYWx1ZSxcclxuICAgICAgICAgICAgbWluVmFsdWU7XHJcblxyXG4gICAgICAgIG1heFZhbHVlID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIG1pblZhbHVlID0gdW5kZWZpbmVkO1xyXG5cclxuICAgICAgICBjaGFydERhdGEubWFwKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICBpZiAobWF4VmFsdWUgPT09IHVuZGVmaW5lZCAmJiBtaW5WYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IGl0ZW0uZGF0YVswXTtcclxuICAgICAgICAgICAgICAgIG1pblZhbHVlID0gaXRlbS5kYXRhWzBdO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uZGF0YSA8IG1pblZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWluVmFsdWUgPSBpdGVtLmRhdGFbMF07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5kYXRhID4gbWF4VmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICBtYXhWYWx1ZSA9IGl0ZW0uZGF0YVswXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAobWF4VmFsdWUgPiAwICYmIG1pblZhbHVlID4gMCkge1xyXG4gICAgICAgICAgICBjaGFydFZhbHVlcyA9IHsgbWF4VmFsdWU6IG1heFZhbHVlLCBtaW5WYWx1ZTogMCB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG1heFZhbHVlID4gMCAmJiBtaW5WYWx1ZSA8IDApIHtcclxuICAgICAgICAgICAgY2hhcnRWYWx1ZXMgPSB7IG1heFZhbHVlOiBtYXhWYWx1ZSwgbWluVmFsdWU6IG1pblZhbHVlIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobWF4VmFsdWUgPCAwICYmIG1pblZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgICBjb25zdCBtYXggPSAobWluVmFsdWUgLyAzKSAqICgtIDEpO1xyXG4gICAgICAgICAgICBjaGFydFZhbHVlcyA9IHsgbWF4VmFsdWU6IG1heCwgbWluVmFsdWU6IG1pblZhbHVlIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobWF4VmFsdWUgPiAwICYmIG1pblZhbHVlID09PSAwKSB7XHJcbiAgICAgICAgICAgIGNoYXJ0VmFsdWVzID0geyBtYXhWYWx1ZTogbWF4VmFsdWUsIG1pblZhbHVlOiAwIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobWF4VmFsdWUgPT09IDAgJiYgbWluVmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1heCA9IChtaW5WYWx1ZSAvIDMpICogKC0gMSk7XHJcbiAgICAgICAgICAgIGNoYXJ0VmFsdWVzID0geyBtYXhWYWx1ZTogbWF4LCBtaW5WYWx1ZTogbWluVmFsdWUgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChtYXhWYWx1ZSA9PT0gMCAmJiBtaW5WYWx1ZSA9PT0gMCkge1xyXG4gICAgICAgICAgICBjaGFydFZhbHVlcyA9IHsgbWF4VmFsdWU6IHVuZGVmaW5lZCwgbWluVmFsdWU6IHVuZGVmaW5lZCB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2hhcnRWYWx1ZXMubWF4VmFsdWUgPSBNYXRoLnJvdW5kKGNoYXJ0VmFsdWVzLm1heFZhbHVlKTtcclxuICAgICAgICBjaGFydFZhbHVlcy5taW5WYWx1ZSA9IE1hdGgucm91bmQoY2hhcnRWYWx1ZXMubWluVmFsdWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gY2hhcnRWYWx1ZXM7XHJcbiAgICB9XHJcblxyXG4gICAgLypEZWl4YSBubyBsaXN0IGFwZW5hcyBvIGl0ZW5zIHF1ZSBleGlzdGVtIG5vIG9wdGlvbnMqL1xyXG4gICAgc3RhdGljIGF0ek11bHRpU2VsZWN0TGlzdEJ5T3B0aW9ucyhvcHRpb25zOiBBcnJheTxQb011bHRpc2VsZWN0T3B0aW9uPiwgbGlzdDogQXJyYXk8c3RyaW5nPik6IEFycmF5PHN0cmluZz4ge1xyXG4gICAgICAgIGxldCBpZHg6IG51bWJlcjtcclxuICAgICAgICBsZXQgbmV3TGlzdDogQXJyYXk8c3RyaW5nPjtcclxuXHJcbiAgICAgICAgaWYgKCFsaXN0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBsaXN0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbmV3TGlzdCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XHJcblxyXG4gICAgICAgIGxpc3QubWFwKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgICAgICAgICAgaWR4ID0gb3B0aW9ucy5maW5kSW5kZXgoaXRlbU9wdGlvbnMgPT4gaXRlbU9wdGlvbnMudmFsdWUgPT09IGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlkeCA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmV3TGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBuZXdMaXN0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qQ2FycmVnYSBvIE9wdGlvbnMgY29tIG9zIHZhbG9yZXMgZGVmYXVsdHMgcGFzc2Fkb3MgY29tbyBwYXLDom1ldHJvIChsaXN0KSovXHJcbiAgICBwdWJsaWMgbG9hZE9wdGlvbnNNdWx0aVNlbGVjdChvcHRpb25zOiBBcnJheTxQb011bHRpc2VsZWN0T3B0aW9uPiwgbGlzdDogQXJyYXk8c3RyaW5nPik6IHZvaWQge1xyXG4gICAgICAgIGxldCBpZHg6IG51bWJlcjtcclxuXHJcbiAgICAgICAgaWYgKCFsaXN0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxpc3QubWFwKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgICAgICAgICAgaWR4ID0gb3B0aW9ucy5maW5kSW5kZXgoaXRlbU9wdGlvbnMgPT4gaXRlbU9wdGlvbnMudmFsdWUgPT09IGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlkeCA9PT0gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnB1c2goeyBsYWJlbDogaXRlbSA9PT0gJ2FsbCcgPyB0aGlzLmxpdGVyYWxzWydhbGwnXSA6IGl0ZW0sIHZhbHVlOiBpdGVtIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLypDYXJyZWdhIG8gT3B0aW9ucyBjb20gb3MgdmFsb3JlcyBkZWZhdWx0cyBwYXNzYWRvcyBjb21vIHBhcsOibWV0cm8gKGxpc3QpKi9cclxuICAgIHB1YmxpYyBsb2FkT3B0aW9uc1NlbGVjdChvcHRpb25zOiBBcnJheTxQb1NlbGVjdE9wdGlvbj4sIHNlbGVjdFZhbHVlOiBzdHJpbmcsIHRyYWRWYWx1ZSA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICAgICAgbGV0IGlkeDogbnVtYmVyO1xyXG5cclxuICAgICAgICBpZiAoIXNlbGVjdFZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzZWxlY3RWYWx1ZSkge1xyXG4gICAgICAgICAgICBpZHggPSBvcHRpb25zLmZpbmRJbmRleChpdGVtT3B0aW9ucyA9PiBpdGVtT3B0aW9ucy52YWx1ZSA9PT0gc2VsZWN0VmFsdWUpO1xyXG4gICAgICAgICAgICBpZiAoaWR4ID09PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgb3B0aW9ucy5wdXNoKHsgbGFiZWw6IHRyYWRWYWx1ZSA/IHRoaXMubGl0ZXJhbHNbc2VsZWN0VmFsdWVdIDogc2VsZWN0VmFsdWUsIHZhbHVlOiBzZWxlY3RWYWx1ZSB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKk3DqXRvZG8gcXVlIGNvbXBhcmEgMiBvYmpldG9zIGUgcmV0b3JuYSBzZSBzw6NvIGlndWFpcyBvdSBkaWZlcmVudGVzKi9cclxuICAgIHB1YmxpYyBjb21wYXJlT2JqZWN0cyhmaXJzdE9iamVjdDogT2JqZWN0LCBzZWNvbmRPYmplY3Q6IE9iamVjdCk6IGJvb2xlYW4ge1xyXG5cclxuICAgICAgICBpZiAoIWZpcnN0T2JqZWN0IHx8ICFzZWNvbmRPYmplY3QpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLypQZWdhIGEgbGlzdGEgZGUgbm9tZXMgZG9zIGNhbXBvcyBkbyBvYmpldG9zIGUgY29tcGFyYSovXHJcbiAgICAgICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGZpcnN0T2JqZWN0KS5sZW5ndGggIT09IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHNlY29uZE9iamVjdCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgY29udGVudCBpbiBmaXJzdE9iamVjdCkge1xyXG4gICAgICAgICAgICBpZiAoY29udGVudC5zdWJzdHIoMCwgMSkgPT09ICckJyB8fCBjb250ZW50LnN1YnN0cigwLCAxKSA9PT0gJ18nKSB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGZpcnN0T2JqZWN0W2NvbnRlbnRdICE9PSBzZWNvbmRPYmplY3RbY29udGVudF0pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZWZlcmVuY2VHZW5lcmF0aW9uKGNoYXJJbmQ6IHN0cmluZywgZGF0ZVJlZjogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHJlZmVyZW5jZTogc3RyaW5nO1xyXG4gICAgICAgIGxldCByYW5kb206IHN0cmluZztcclxuXHJcbiAgICAgICAgY29uc3QgaURheSA9IGRhdGVSZWYuZ2V0RGF0ZSgpO1xyXG4gICAgICAgIGNvbnN0IGlNb250aCA9IGRhdGVSZWYuZ2V0TW9udGgoKSArIDE7XHJcbiAgICAgICAgY29uc3QgaVllYXIgPSBkYXRlUmVmLmdldEZ1bGxZZWFyKCk7XHJcblxyXG4gICAgICAgIHJlZmVyZW5jZSA9IGAke3RoaXMucGFkKGlZZWFyKX0ke3RoaXMucGFkKGlNb250aCl9JHt0aGlzLnBhZChpRGF5KX0ke2NoYXJJbmR9YDtcclxuXHJcbiAgICAgICAgcmFuZG9tID0gYnRvYShgJHsobmV3IERhdGUoKSkuZ2V0VGltZSgpfWApO1xyXG4gICAgICAgIHJhbmRvbSA9IHJhbmRvbS5yZXBsYWNlKC9bPV0vZywgJycpO1xyXG4gICAgICAgIHJhbmRvbSA9IHJhbmRvbS5zbGljZShyYW5kb20ubGVuZ3RoIC0gMywgcmFuZG9tLmxlbmd0aCk7XHJcblxyXG4gICAgICAgIHJldHVybiBgJHtyZWZlcmVuY2V9JHtyYW5kb219YDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcGFkKG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKG51bWJlciA8IDEwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAnMCcgKyBudW1iZXI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChudW1iZXIgPiA5OSkge1xyXG4gICAgICAgICAgICByZXR1cm4gKG51bWJlciArICcnKS5zbGljZSgyLCA0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bWJlcjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZm9jdXNJbnRlcm5hbElucHV0KGlkRmllbGQ6IHN0cmluZykge1xyXG4gICAgICAgIGNvbnN0IGZpZWxkQ29tcG9uZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWRGaWVsZCk7XHJcbiAgICAgICAgY29uc3QgZmllbGRJbnB1dCA9ICg8SFRNTFNjcmlwdEVsZW1lbnRbXT48YW55PmZpZWxkQ29tcG9uZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3BvLWlucHV0JykpWzBdO1xyXG4gICAgICAgIGZpZWxkSW5wdXQuZm9jdXMoKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of dts-backoffice-util
|
|
3
|
+
*/
|
|
4
|
+
// Services
|
|
5
|
+
export * from './lib/services/session-info.service';
|
|
6
|
+
export * from './lib/services/profile.service';
|
|
7
|
+
export * from './lib/services/report.service';
|
|
8
|
+
export * from './lib/services/breadcrumb-control.service';
|
|
9
|
+
export * from './lib/services/menu-datasul.service';
|
|
10
|
+
export * from './lib/services/cache-params.service';
|
|
11
|
+
export * from './lib/services/translate.service';
|
|
12
|
+
// Services
|
|
13
|
+
// Utils
|
|
14
|
+
export * from './lib/utils/date.util';
|
|
15
|
+
export * from './lib/utils/disclaimer.util';
|
|
16
|
+
export * from './lib/utils/field-validation.util';
|
|
17
|
+
export * from './lib/utils/filter-range.util';
|
|
18
|
+
export * from './lib/utils/generic-functions.utils';
|
|
19
|
+
export * from './lib/utils/file.util';
|
|
20
|
+
// Utils
|
|
21
|
+
// Interfaces
|
|
22
|
+
export * from './lib/interfaces/totvs-response.interface';
|
|
23
|
+
export * from './lib/interfaces/filter-range.interface';
|
|
24
|
+
// Interfaces
|
|
25
|
+
// Schedule Execution
|
|
26
|
+
export * from './lib/components/totvs-schedule-execution/totvs-schedule-execution.component';
|
|
27
|
+
export * from './lib/components/totvs-schedule-execution/totvs-schedule-execution.model';
|
|
28
|
+
export * from './lib/components/totvs-schedule-execution/totvs-schedule-execution.service';
|
|
29
|
+
export * from './lib/dts-backoffice-util.module';
|
|
30
|
+
// Schedule Execution
|
|
31
|
+
// Pipes
|
|
32
|
+
export * from './lib/pipes/dts-date-format.pipe';
|
|
33
|
+
// Pipes
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2R0cy1iYWNrb2ZmaWNlLXV0aWwvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxXQUFXO0FBQ1gsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxXQUFXO0FBRVgsUUFBUTtBQUNSLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLFFBQVE7QUFFUixhQUFhO0FBQ2IsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGFBQWE7QUFFYixxQkFBcUI7QUFDckIsY0FBYyw4RUFBOEUsQ0FBQztBQUM3RixjQUFjLDBFQUEwRSxDQUFDO0FBQ3pGLGNBQWMsNEVBQTRFLENBQUM7QUFDM0YsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxxQkFBcUI7QUFFckIsUUFBUTtBQUNSLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBkdHMtYmFja29mZmljZS11dGlsXHJcbiAqL1xyXG5cclxuLy8gU2VydmljZXNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9wcm9maWxlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9yZXBvcnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2JyZWFkY3J1bWItY29udHJvbC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbWVudS1kYXRhc3VsLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9jYWNoZS1wYXJhbXMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuLy8gU2VydmljZXNcclxuXHJcbi8vIFV0aWxzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2RhdGUudXRpbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2Rpc2NsYWltZXIudXRpbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2ZpZWxkLXZhbGlkYXRpb24udXRpbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3V0aWxzL2ZpbHRlci1yYW5nZS51dGlsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMvZ2VuZXJpYy1mdW5jdGlvbnMudXRpbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscy9maWxlLnV0aWwnO1xyXG4vLyBVdGlsc1xyXG5cclxuLy8gSW50ZXJmYWNlc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL3RvdHZzLXJlc3BvbnNlLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvZmlsdGVyLXJhbmdlLmludGVyZmFjZSc7XHJcbi8vIEludGVyZmFjZXNcclxuXHJcbi8vIFNjaGVkdWxlIEV4ZWN1dGlvblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RvdHZzLXNjaGVkdWxlLWV4ZWN1dGlvbi90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24vdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24vdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kdHMtYmFja29mZmljZS11dGlsLm1vZHVsZSc7XHJcbi8vIFNjaGVkdWxlIEV4ZWN1dGlvblxyXG5cclxuLy8gUGlwZXNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvZHRzLWRhdGUtZm9ybWF0LnBpcGUnO1xyXG4vLyBQaXBlc1xyXG4iXX0=
|