dts-backoffice-util 18.3.0 → 19.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 (29) hide show
  1. package/README.md +1 -0
  2. package/fesm2022/dts-backoffice-util.mjs +44 -43
  3. package/fesm2022/dts-backoffice-util.mjs.map +1 -1
  4. package/package.json +4 -6
  5. package/esm2022/dts-backoffice-util.mjs +0 -5
  6. package/esm2022/lib/components/totvs-map/totvs-map.component.mjs +0 -97
  7. package/esm2022/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.mjs +0 -305
  8. package/esm2022/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.mjs +0 -7
  9. package/esm2022/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.mjs +0 -208
  10. package/esm2022/lib/dts-backoffice-util.module.mjs +0 -57
  11. package/esm2022/lib/interfaces/filter-range.interface.mjs +0 -2
  12. package/esm2022/lib/interfaces/totvs-response.interface.mjs +0 -2
  13. package/esm2022/lib/model/session-info.model.mjs +0 -67
  14. package/esm2022/lib/pipes/dts-date-format.pipe.mjs +0 -20
  15. package/esm2022/lib/services/breadcrumb-control.service.mjs +0 -99
  16. package/esm2022/lib/services/cache-params.service.mjs +0 -25
  17. package/esm2022/lib/services/menu-datasul.service.mjs +0 -118
  18. package/esm2022/lib/services/profile.service.mjs +0 -55
  19. package/esm2022/lib/services/report.service.mjs +0 -57
  20. package/esm2022/lib/services/session-info.service.mjs +0 -36
  21. package/esm2022/lib/services/translate.service.mjs +0 -23
  22. package/esm2022/lib/services/validate.service.mjs +0 -42
  23. package/esm2022/lib/utils/date.util.mjs +0 -56
  24. package/esm2022/lib/utils/disclaimer.util.mjs +0 -490
  25. package/esm2022/lib/utils/field-validation.util.mjs +0 -179
  26. package/esm2022/lib/utils/file.util.mjs +0 -151
  27. package/esm2022/lib/utils/filter-range.util.mjs +0 -33
  28. package/esm2022/lib/utils/generic-functions.utils.mjs +0 -170
  29. package/esm2022/public-api.mjs +0 -40
@@ -1,179 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdmFsaWRhdGlvbi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvbGliL3V0aWxzL2ZpZWxkLXZhbGlkYXRpb24udXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0VBR0U7QUFHRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsTUFBTSxPQUFPLG1CQUFtQjtJQU81QixZQUNJLGNBQXFDLEVBQ3JDLFVBQXNCLEVBQ3RCLFFBQWdCO1FBUHBCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFTZixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ2pELElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ2hHLENBQUMsQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsZ0VBQWdFO0lBQ3pELGlCQUFpQixDQUFDLFlBQW9CLEVBQUUsVUFBa0IsRUFBRSxZQUFvQixFQUFFLFVBQWtCO1FBQ3ZHLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBRUQsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDdEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUM3RCxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2FBQ2hFLENBQUMsQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQWEsRUFBRSxLQUFhLEVBQUUsUUFBUSxHQUFHLEtBQUssRUFBRSxVQUFVLEdBQUcsS0FBSztRQUNwRixJQUFJLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNoRyxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ2hELElBQUksS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FDckIsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2SCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFFLFFBQVEsR0FBRyxLQUFLO1FBQ2pFLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BELE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ2pELElBQUksS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FDckIsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2SCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBRUQsSUFBSSxLQUFLLElBQUksS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUNyQixFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZILE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsNkRBQTZEO0lBQ3RELGNBQWMsQ0FBQyxZQUFvQixFQUFFLFVBQWtCLEVBQUUsWUFBb0IsRUFBRSxVQUFrQjtRQUNwRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUVwQyxJQUFJLFlBQVksR0FBRyxVQUFVLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQzdELENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7YUFDaEUsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxZQUFZLENBQUMsS0FBYSxFQUFFLEtBQVc7UUFDMUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFckQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQzVGLENBQUMsQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsMkRBQTJEO0lBQ3BELFlBQVksQ0FBQyxZQUFvQixFQUFFLFVBQWtCLEVBQUUsWUFBa0IsRUFBRSxVQUFnQjtRQUM5RixJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzdFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXpFLElBQUksY0FBYyxHQUFHLFlBQVksRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFDN0QsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUNoRSxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEtBQWEsRUFBRSxLQUFpQjtRQUN2RCxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDaEcsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsS0FBb0I7UUFDdkQsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ2hHLENBQUMsQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQseUdBQXlHO0lBQ2xHLGNBQWMsQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxZQUFZLEdBQUcsS0FBSztRQUNwRixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFDZixJQUFJLFNBQWlCLENBQUM7UUFFdEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQUMsT0FBTyxHQUFHLENBQUM7UUFBQyxDQUFDO1FBRTNCLCtCQUErQjtRQUMvQixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2YsU0FBUyxHQUFHLE1BQU0sQ0FBQztZQUNuQixNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakMsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNoQixDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7Z0JBQzNDLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUN0QixJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO3dCQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7d0JBQUMsTUFBTTtvQkFBQyxDQUFDO2dCQUN6RSxDQUFDO2dCQUVELElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUN0QixJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO3dCQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7d0JBQUMsTUFBTTtvQkFBQyxDQUFDO2dCQUN6RSxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2YsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUN2QixDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ3RHLENBQUMsQ0FBQztRQUNQLENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcblZlcnPDo286IDEuMDAyXHJcbkRhdGEgQ3JpYcOnw6NvOiAxOS8wMi8yMDE5XHJcbiovXHJcblxyXG5pbXBvcnQgeyBQb05vdGlmaWNhdGlvblNlcnZpY2UsIFBvSTE4blBpcGUgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IERpc2NsYWltZXJVdGlsIH0gZnJvbSAnLi9kaXNjbGFpbWVyLnV0aWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpZWxkVmFsaWRhdGlvblV0aWwge1xyXG4gICAgcG9Ob3RpZmljYXRpb246IFBvTm90aWZpY2F0aW9uU2VydmljZTtcclxuICAgIHBvSTE4blBpcGU6IFBvSTE4blBpcGU7XHJcbiAgICBsaXRlcmFsczogYW55ID0ge307XHJcblxyXG4gICAgZGlzY2xhaW1lclV0aWw6IERpc2NsYWltZXJVdGlsO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHBvTm90aWZpY2F0aW9uOiBQb05vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcG9JMThuUGlwZTogUG9JMThuUGlwZSxcclxuICAgICAgICBsaXRlcmFsczogT2JqZWN0XHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uID0gcG9Ob3RpZmljYXRpb247XHJcbiAgICAgICAgdGhpcy5wb0kxOG5QaXBlID0gcG9JMThuUGlwZTtcclxuICAgICAgICB0aGlzLmxpdGVyYWxzID0gbGl0ZXJhbHM7XHJcbiAgICAgICAgdGhpcy5kaXNjbGFpbWVyVXRpbCA9IG5ldyBEaXNjbGFpbWVyVXRpbCh0aGlzLnBvTm90aWZpY2F0aW9uLCB0aGlzLnBvSTE4blBpcGUsIHRoaXMubGl0ZXJhbHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRGaWVsZENoYXJhY3RlcihmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFJlcXVlcmVkJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhbGlkYSB1bWEgZmFpeGEgZGUgY2FyYWN0ZXJlcyBzZSBvIGluaWNpYWwgw6kgbWVub3IgcXVlIGZpbmFsXHJcbiAgICBwdWJsaWMgdmxkUmFuZ2VDaGFyYWN0ZXIoaW5pdGlhbEZpZWxkOiBzdHJpbmcsIGZpbmFsRmllbGQ6IHN0cmluZywgaW5pdGlhbFZhbHVlOiBzdHJpbmcsIGZpbmFsVmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghaW5pdGlhbFZhbHVlIHx8ICFmaW5hbFZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGluaXRpYWxWYWx1ZS50cmltKCkudG9VcHBlckNhc2UoKSA+IGZpbmFsVmFsdWUudHJpbSgpLnRvVXBwZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmFuZ2UnXSxcclxuICAgICAgICAgICAgICAgICAgICBbdGhpcy5saXRlcmFsc1tpbml0aWFsRmllbGRdLCB0aGlzLmxpdGVyYWxzW2ZpbmFsRmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkTnVtYmVyKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIsIHZsZFZhbHVlID0gZmFsc2UsIHplcm9BY2NlcHQgPSBmYWxzZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2bGRWYWx1ZSAmJiAhdGhpcy52bGRWYWx1ZU9mTnVtYmVyKGZpZWxkLCB2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCghdmFsdWUpIHx8IHZhbHVlIDw9IDApIHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlID09PSAwICYmIHplcm9BY2NlcHQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRSZXF1ZXJlZCddLCBbdGhpcy5saXRlcmFsc1tmaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkVmFsdWVPZk51bWJlcihmaWVsZDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgeyBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkTnVtYmVyJ10sIFt2YWx1ZS50b1N0cmluZygpLCB0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRGaWVsZFBlcmNlbnQoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlciwgdmxkVmFsdWUgPSBmYWxzZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2bGRWYWx1ZSAmJiAhdGhpcy52bGRWYWx1ZU9mUGVyY2VudChmaWVsZCwgdmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy52bGRGaWVsZE51bWJlcihmaWVsZCwgdmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZFZhbHVlT2ZQZXJjZW50KGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoXHJcbiAgICAgICAgICAgICAgICB7IG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGROdW1iZXInXSwgW3ZhbHVlLnRvU3RyaW5nKCksIHRoaXMubGl0ZXJhbHNbZmllbGRdXSkgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA+IDEwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgeyBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkTnVtYmVyJ10sIFt2YWx1ZS50b1N0cmluZygpLCB0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhbGlkYSB1bWEgZmFpeGEgZGUgbsO6bWVyb3Mgc2UgbyBpbmljaWFsIMOpIG1lbm9yIHF1ZSBmaW5hbFxyXG4gICAgcHVibGljIHZsZFJhbmdlTnVtYmVyKGluaXRpYWxGaWVsZDogc3RyaW5nLCBmaW5hbEZpZWxkOiBzdHJpbmcsIGluaXRpYWxWYWx1ZTogbnVtYmVyLCBmaW5hbFZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIWluaXRpYWxWYWx1ZSkgeyBpbml0aWFsVmFsdWUgPSAwOyB9XHJcbiAgICAgICAgaWYgKCFmaW5hbFZhbHVlKSB7IGZpbmFsVmFsdWUgPSAwOyB9XHJcblxyXG4gICAgICAgIGlmIChpbml0aWFsVmFsdWUgPiBmaW5hbFZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFJhbmdlJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgW3RoaXMubGl0ZXJhbHNbaW5pdGlhbEZpZWxkXSwgdGhpcy5saXRlcmFsc1tmaW5hbEZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRGaWVsZERhdGUoZmllbGQ6IHN0cmluZywgdmFsdWU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCB2YWxEYXRlID0gdGhpcy5kaXNjbGFpbWVyVXRpbC5hanVzdERhdGUodmFsdWUpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuZGlzY2xhaW1lclV0aWwuaXNWYWxpZERhdGUodmFsRGF0ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkRGF0ZSddLCBbdGhpcy5saXRlcmFsc1tmaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBWYWxpZGEgdW1hIGZhaXhhIGRlIGRhdGFzIHNlIG8gaW5pY2lhbCDDqSBtZW5vciBxdWUgZmluYWxcclxuICAgIHB1YmxpYyB2bGRSYW5nZURhdGUoaW5pdGlhbEZpZWxkOiBzdHJpbmcsIGZpbmFsRmllbGQ6IHN0cmluZywgaW5pdGlhbFZhbHVlOiBEYXRlLCBmaW5hbFZhbHVlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFpbml0aWFsVmFsdWUgfHwgIWZpbmFsVmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB2YWxJbml0aWFsRGF0ZSA9IHRoaXMuZGlzY2xhaW1lclV0aWwuYWp1c3REYXRlKGluaXRpYWxWYWx1ZSkuZ2V0VGltZSgpO1xyXG4gICAgICAgIGNvbnN0IHZhbEZpbmFsRGF0ZSA9IHRoaXMuZGlzY2xhaW1lclV0aWwuYWp1c3REYXRlKGZpbmFsVmFsdWUpLmdldFRpbWUoKTtcclxuXHJcbiAgICAgICAgaWYgKHZhbEluaXRpYWxEYXRlID4gdmFsRmluYWxEYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFJhbmdlJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgW3RoaXMubGl0ZXJhbHNbaW5pdGlhbEZpZWxkXSwgdGhpcy5saXRlcmFsc1tmaW5hbEZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRGaWVsZE11bHRpU2VsZWN0KGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBBcnJheTxhbnk+KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkU2VsZWN0ZWQnXSwgW3RoaXMubGl0ZXJhbHNbZmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkQ2hlY2tib3goZmllbGQ6IHN0cmluZywgdmFsdWU6IEFycmF5PHN0cmluZz4pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRTZWxlY3RlZCddLCBbdGhpcy5saXRlcmFsc1tmaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBWYWxpZGEgZm9ybWF0byBjb25mb3JtZSByZWdyYTogXCI5XCIgYXBlbmFzIG7Dum1lcm9zLCBcIlhcIiBxdWFscXVlciBjYXJhY3RlciwgXCIhXCIgYXBlbmFzIGxldHJhcyBtYWnDunNjdWxhc1xyXG4gICAgcHVibGljIHZsZEZpZWxkRm9ybWF0KGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nLCByZXBsYWNlUG9pbnQgPSBmYWxzZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCBsT0sgPSB0cnVlO1xyXG4gICAgICAgIGxldCBvbGRGb3JtYXQ6IHN0cmluZztcclxuXHJcbiAgICAgICAgaWYgKCF2YWx1ZSkgeyByZXR1cm4gbE9LOyB9XHJcblxyXG4gICAgICAgIC8qUmV0aXJhIG9zIHBvbnRvcyBkbyBmb3JtYXRvKi9cclxuICAgICAgICBpZiAocmVwbGFjZVBvaW50KSB7XHJcbiAgICAgICAgICAgIG9sZEZvcm1hdCA9IGZvcm1hdDtcclxuICAgICAgICAgICAgZm9ybWF0ID0gZm9ybWF0LnJlcGxhY2UoL1xcLi9nLCAnJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmFsdWUubGVuZ3RoICE9PSBmb3JtYXQubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGxPSyA9IGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGZvcm1hdC5sZW5ndGg7IGlkeCsrKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZm9ybWF0W2lkeF0gPT09ICc5Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVtpZHhdLnJlcGxhY2UoL1swLTldLywgJzknKSAhPT0gJzknKSB7IGxPSyA9IGZhbHNlOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChmb3JtYXRbaWR4XSA9PT0gJyEnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW2lkeF0ucmVwbGFjZSgvW0EtWl0vLCAnQScpICE9PSAnQScpIHsgbE9LID0gZmFsc2U7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZXBsYWNlUG9pbnQpIHtcclxuICAgICAgICAgICAgZm9ybWF0ID0gb2xkRm9ybWF0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFsT0spIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkRm9ybWF0J10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXSwgZm9ybWF0XSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbE9LO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,151 +0,0 @@
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
- /* Verifica se é ie ou edge, pois o mesmo tem tratamento próprio para arquivos blob */
38
- const nav = window.navigator;
39
- if (nav && nav.msSaveOrOpenBlob) {
40
- nav.msSaveOrOpenBlob(file, fileName);
41
- }
42
- else {
43
- downloadLink.href = urlDownload;
44
- downloadLink.setAttribute('download', fileName);
45
- document.body.appendChild(downloadLink);
46
- downloadLink.click();
47
- window.URL.revokeObjectURL(urlDownload);
48
- downloadLink.remove();
49
- }
50
- }
51
- static b64toBlob(b64Data, contentType, sliceSize) {
52
- contentType = contentType || '';
53
- sliceSize = sliceSize || 512;
54
- const byteCharacters = atob(b64Data);
55
- const byteArrays = [];
56
- for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
57
- const slice = byteCharacters.slice(offset, offset + sliceSize);
58
- const byteNumbers = new Array(slice.length);
59
- for (let i = 0; i < slice.length; i++) {
60
- byteNumbers[i] = slice.charCodeAt(i);
61
- }
62
- const byteArray = new Uint8Array(byteNumbers);
63
- byteArrays.push(byteArray);
64
- }
65
- const blob = new Blob(byteArrays, { type: contentType });
66
- return blob;
67
- }
68
- static jsonToString(jsonData, dwldDataParam) {
69
- if (!jsonData || jsonData.length === 0) {
70
- return '';
71
- }
72
- const lineDelimiter = '\n';
73
- let columnOrig = null;
74
- let columnHeader = null;
75
- const keys = [];
76
- let includeKey;
77
- if (dwldDataParam.columnList &&
78
- dwldDataParam.columnList.length > 0) {
79
- columnOrig = dwldDataParam.columnList;
80
- }
81
- else {
82
- columnOrig = Object.keys(jsonData[0]);
83
- }
84
- columnOrig.forEach(key => {
85
- includeKey = true;
86
- if (dwldDataParam.columnExclude &&
87
- dwldDataParam.columnExclude.length > 0 &&
88
- dwldDataParam.columnExclude.indexOf(key) !== -1) {
89
- includeKey = false;
90
- }
91
- if (includeKey) {
92
- keys.push(key);
93
- columnHeader = (!columnHeader) ? '' : columnHeader + dwldDataParam.columnDelimiter;
94
- columnHeader += (dwldDataParam.literals[key]) ? dwldDataParam.literals[key] : key;
95
- }
96
- });
97
- const lineStr = jsonData.reduce((accLineStr, currentItem) => {
98
- let first = true;
99
- let columnValue = null;
100
- keys.forEach(key => {
101
- if (!first) {
102
- accLineStr += dwldDataParam.columnDelimiter;
103
- }
104
- columnValue = currentItem[key];
105
- if (columnValue === null || columnValue === undefined) {
106
- columnValue = '';
107
- }
108
- switch (typeof (columnValue)) {
109
- case 'number':
110
- columnValue = columnValue.toLocaleString();
111
- break;
112
- case 'boolean':
113
- columnValue = (dwldDataParam.literals[`${columnValue}`]) ?
114
- dwldDataParam.literals[`${columnValue}`] : columnValue;
115
- break;
116
- case 'object':
117
- columnValue = JSON.stringify(columnValue);
118
- }
119
- accLineStr += columnValue;
120
- first = false;
121
- });
122
- return accLineStr + lineDelimiter;
123
- }, columnHeader + lineDelimiter);
124
- return lineStr;
125
- }
126
- static fileToB64(file) {
127
- return new Promise((resolve, reject) => {
128
- const reader = new FileReader();
129
- reader.readAsDataURL(file);
130
- reader.onload = () => {
131
- let cntFile;
132
- cntFile = reader.result;
133
- if (!cntFile) {
134
- reject('File not found or Empty');
135
- return;
136
- }
137
- const aCnt = cntFile.split(',');
138
- if (aCnt && aCnt.length >= 2) {
139
- resolve(aCnt[1]);
140
- }
141
- else {
142
- reject('File not found or Empty');
143
- }
144
- };
145
- reader.onerror = error => reject(error);
146
- });
147
- }
148
- }
149
- export class DownloadDataParams {
150
- }
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvbGliL3V0aWxzL2ZpbGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQUVqQixnQkFDSSxDQUFDO0lBRUwsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFTLEVBQUUsUUFBZ0IsRUFBRSxXQUFvQixFQUFFLE1BQWdCO1FBQ25GLE1BQU0sR0FBRyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDM0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQWdCLEVBQUUsZ0JBQXFDLElBQUk7UUFDM0UsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQUMsT0FBTztRQUFDLENBQUM7UUFFdEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQUMsYUFBYSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLENB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T0FBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBVUQsTUFBTSxPQUFPLGtCQUFrQjtDQU05QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBGaWxlVXRpbCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHN0YXRpYyBkb3dubG9hZEZpbGUoZGF0YTogYW55LCBmaWxlTmFtZTogc3RyaW5nLCBjb250ZW50VHlwZT86IHN0cmluZywgYmFzZTY0PzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGJhc2U2NCA9IChiYXNlNjQgPT09IGZhbHNlKSA/IGZhbHNlIDogdHJ1ZTtcclxuICAgICAgICBjb25zdCBkYXRhQmxvYiA9IGJhc2U2NCA/IHRoaXMuYjY0dG9CbG9iKGRhdGEsIGNvbnRlbnRUeXBlKSA6IGRhdGE7XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZChkYXRhQmxvYiwgZmlsZU5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBkb3dubG9hZERhdGEoZGF0YTogQXJyYXk8YW55PiwgZHdsZERhdGFQYXJhbTogSURvd25sb2FkRGF0YVBhcmFtcyA9IG51bGwpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWRhdGEpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbSkgeyBkd2xkRGF0YVBhcmFtID0gbmV3IERvd25sb2FkRGF0YVBhcmFtcygpOyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmZpbGVOYW1lKSB7IGR3bGREYXRhUGFyYW0uZmlsZU5hbWUgPSAnZGF0YS5jc3YnOyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmxpdGVyYWxzKSB7IGR3bGREYXRhUGFyYW0ubGl0ZXJhbHMgPSB7fTsgfVxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbS5jb2x1bW5EZWxpbWl0ZXIpIHsgZHdsZERhdGFQYXJhbS5jb2x1bW5EZWxpbWl0ZXIgPSAnOyc7IH1cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0uY29sdW1uTGlzdCkgeyBkd2xkRGF0YVBhcmFtLmNvbHVtbkxpc3QgPSBbXTsgfVxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlKSB7IGR3bGREYXRhUGFyYW0uY29sdW1uRXhjbHVkZSA9IFtdOyB9XHJcblxyXG4gICAgICAgIGNvbnN0IGRhdGFiNjQgPSBidG9hKHRoaXMuanNvblRvU3RyaW5nKGRhdGEsIGR3bGREYXRhUGFyYW0pKTtcclxuICAgICAgICB0aGlzLmRvd25sb2FkRmlsZShkYXRhYjY0LCBkd2xkRGF0YVBhcmFtLmZpbGVOYW1lLCAndGV4dC9jc3YnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBkb3dubG9hZChmaWxlOiBCbG9iLCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgYmluYXJ5RGF0YSA9IFtmaWxlXTtcclxuICAgICAgICBjb25zdCBkb3dubG9hZExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgICAgY29uc3QgdXJsRG93bmxvYWQgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihiaW5hcnlEYXRhLCB7IHR5cGU6IGZpbGUudHlwZSB9KSk7XHJcblxyXG4gICAgICAgIC8qIFZlcmlmaWNhIHNlIMOpIGllIG91IGVkZ2UsIHBvaXMgbyBtZXNtbyB0ZW0gdHJhdGFtZW50byBwcsOzcHJpbyBwYXJhIGFycXVpdm9zIGJsb2IgKi9cclxuICAgICAgICBjb25zdCBuYXYgPSAod2luZG93Lm5hdmlnYXRvciBhcyBhbnkpO1xyXG4gICAgICAgIGlmIChuYXYgJiYgbmF2Lm1zU2F2ZU9yT3BlbkJsb2IpIHtcclxuICAgICAgICAgICAgbmF2Lm1zU2F2ZU9yT3BlbkJsb2IoZmlsZSwgZmlsZU5hbWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRvd25sb2FkTGluay5ocmVmID0gdXJsRG93bmxvYWQ7XHJcbiAgICAgICAgICAgIGRvd25sb2FkTGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpO1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkTGluayk7XHJcbiAgICAgICAgICAgIGRvd25sb2FkTGluay5jbGljaygpO1xyXG4gICAgICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmxEb3dubG9hZCk7XHJcbiAgICAgICAgICAgIGRvd25sb2FkTGluay5yZW1vdmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGI2NHRvQmxvYihiNjREYXRhOiBhbnksIGNvbnRlbnRUeXBlPzogc3RyaW5nLCBzbGljZVNpemU/OiBudW1iZXIpOiBCbG9iIHtcclxuICAgICAgICBjb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlIHx8ICcnO1xyXG4gICAgICAgIHNsaWNlU2l6ZSA9IHNsaWNlU2l6ZSB8fCA1MTI7XHJcblxyXG4gICAgICAgIGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYihiNjREYXRhKTtcclxuICAgICAgICBjb25zdCBieXRlQXJyYXlzID0gW107XHJcblxyXG4gICAgICAgIGZvciAobGV0IG9mZnNldCA9IDA7IG9mZnNldCA8IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDsgb2Zmc2V0ICs9IHNsaWNlU2l6ZSkge1xyXG4gICAgICAgICAgICBjb25zdCBzbGljZSA9IGJ5dGVDaGFyYWN0ZXJzLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgc2xpY2VTaXplKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KHNsaWNlLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpY2UubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGJ5dGVOdW1iZXJzW2ldID0gc2xpY2UuY2hhckNvZGVBdChpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xyXG4gICAgICAgICAgICBieXRlQXJyYXlzLnB1c2goYnl0ZUFycmF5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihieXRlQXJyYXlzLCB7IHR5cGU6IGNvbnRlbnRUeXBlIH0pO1xyXG4gICAgICAgIHJldHVybiBibG9iO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGpzb25Ub1N0cmluZyhqc29uRGF0YTogQXJyYXk8YW55PiwgZHdsZERhdGFQYXJhbTogSURvd25sb2FkRGF0YVBhcmFtcyk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCFqc29uRGF0YSB8fCBqc29uRGF0YS5sZW5ndGggPT09IDApIHsgcmV0dXJuICcnOyB9XHJcblxyXG4gICAgICAgIGNvbnN0IGxpbmVEZWxpbWl0ZXIgPSAnXFxuJztcclxuXHJcbiAgICAgICAgbGV0IGNvbHVtbk9yaWcgPSBudWxsO1xyXG4gICAgICAgIGxldCBjb2x1bW5IZWFkZXIgPSBudWxsO1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSBbXTtcclxuICAgICAgICBsZXQgaW5jbHVkZUtleTogYm9vbGVhbjtcclxuXHJcbiAgICAgICAgaWYgKGR3bGREYXRhUGFyYW0uY29sdW1uTGlzdCAmJlxyXG4gICAgICAgICAgICBkd2xkRGF0YVBhcmFtLmNvbHVtbkxpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb2x1bW5PcmlnID0gZHdsZERhdGFQYXJhbS5jb2x1bW5MaXN0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbHVtbk9yaWcgPSBPYmplY3Qua2V5cyhqc29uRGF0YVswXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb2x1bW5PcmlnLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgaW5jbHVkZUtleSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICBpZiAoZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlICYmXHJcbiAgICAgICAgICAgICAgICBkd2xkRGF0YVBhcmFtLmNvbHVtbkV4Y2x1ZGUubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgICAgICAgZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlLmluZGV4T2Yoa2V5KSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIGluY2x1ZGVLZXkgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGluY2x1ZGVLZXkpIHtcclxuICAgICAgICAgICAgICAgIGtleXMucHVzaChrZXkpO1xyXG4gICAgICAgICAgICAgICAgY29sdW1uSGVhZGVyID0gKCFjb2x1bW5IZWFkZXIpID8gJycgOiBjb2x1bW5IZWFkZXIgKyBkd2xkRGF0YVBhcmFtLmNvbHVtbkRlbGltaXRlcjtcclxuICAgICAgICAgICAgICAgIGNvbHVtbkhlYWRlciArPSAoZHdsZERhdGFQYXJhbS5saXRlcmFsc1trZXldKSA/IGR3bGREYXRhUGFyYW0ubGl0ZXJhbHNba2V5XSA6IGtleTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBsaW5lU3RyID0ganNvbkRhdGEucmVkdWNlKChhY2NMaW5lU3RyLCBjdXJyZW50SXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZmlyc3QgPSB0cnVlO1xyXG4gICAgICAgICAgICBsZXQgY29sdW1uVmFsdWUgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWZpcnN0KSB7IGFjY0xpbmVTdHIgKz0gZHdsZERhdGFQYXJhbS5jb2x1bW5EZWxpbWl0ZXI7IH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb2x1bW5WYWx1ZSA9IGN1cnJlbnRJdGVtW2tleV07XHJcbiAgICAgICAgICAgICAgICBpZiAoY29sdW1uVmFsdWUgPT09IG51bGwgfHwgY29sdW1uVmFsdWUgPT09IHVuZGVmaW5lZCkgeyBjb2x1bW5WYWx1ZSA9ICcnOyB9XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiAoY29sdW1uVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVmFsdWUgPSBjb2x1bW5WYWx1ZS50b0xvY2FsZVN0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVmFsdWUgPSAoZHdsZERhdGFQYXJhbS5saXRlcmFsc1tgJHtjb2x1bW5WYWx1ZX1gXSkgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdsZERhdGFQYXJhbS5saXRlcmFsc1tgJHtjb2x1bW5WYWx1ZX1gXSA6IGNvbHVtblZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdvYmplY3QnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5WYWx1ZSA9IEpTT04uc3RyaW5naWZ5KGNvbHVtblZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGFjY0xpbmVTdHIgKz0gY29sdW1uVmFsdWU7XHJcblxyXG4gICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gYWNjTGluZVN0ciArIGxpbmVEZWxpbWl0ZXI7XHJcblxyXG4gICAgICAgIH0sIGNvbHVtbkhlYWRlciArIGxpbmVEZWxpbWl0ZXIpO1xyXG5cclxuICAgICAgICByZXR1cm4gbGluZVN0cjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZmlsZVRvQjY0KGZpbGU6IEZpbGUpIHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuXHJcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgY250RmlsZTogYW55O1xyXG4gICAgICAgICAgICAgICAgY250RmlsZSA9IHJlYWRlci5yZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWNudEZpbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICByZWplY3QoJ0ZpbGUgbm90IGZvdW5kIG9yIEVtcHR5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGFDbnQgPSBjbnRGaWxlLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoYUNudCAmJiBhQ250Lmxlbmd0aCA+PSAyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShhQ250WzFdKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCdGaWxlIG5vdCBmb3VuZCBvciBFbXB0eScpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gZXJyb3IgPT4gcmVqZWN0KGVycm9yKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRG93bmxvYWREYXRhUGFyYW1zIHtcclxuICAgIGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgICBsaXRlcmFsczogYW55O1xyXG4gICAgY29sdW1uRGVsaW1pdGVyOiBzdHJpbmc7XHJcbiAgICBjb2x1bW5MaXN0OiBBcnJheTxzdHJpbmc+O1xyXG4gICAgY29sdW1uRXhjbHVkZTogQXJyYXk8c3RyaW5nPjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERvd25sb2FkRGF0YVBhcmFtcyBpbXBsZW1lbnRzIElEb3dubG9hZERhdGFQYXJhbXMge1xyXG4gICAgZmlsZU5hbWU6IHN0cmluZztcclxuICAgIGxpdGVyYWxzOiBhbnk7XHJcbiAgICBjb2x1bW5EZWxpbWl0ZXI6IHN0cmluZztcclxuICAgIGNvbHVtbkxpc3Q6IEFycmF5PHN0cmluZz47XHJcbiAgICBjb2x1bW5FeGNsdWRlOiBBcnJheTxzdHJpbmc+O1xyXG59XHJcbiJdfQ==
@@ -1,33 +0,0 @@
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==
@@ -1,170 +0,0 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1mdW5jdGlvbnMudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy9saWIvdXRpbHMvZ2VuZXJpYy1mdW5jdGlvbnMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztFQUdFO0FBYUYsTUFBTSxPQUFPLHFCQUFxQjtJQUk5QixZQUNJLFFBQWdCO1FBSHBCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFLZixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixDQUFDO0lBRUQsdURBQXVEO0lBQ3ZELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFZO1FBQ3BDLElBQUksV0FBVyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFFdEMsSUFBSSxJQUFJLElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3RCLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRUQsd0RBQXdEO0lBQ3hELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFvQjtRQUM1QyxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFFZCxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVCLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFjO1FBQ3pCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztRQUVuQixLQUFLLE1BQU0sT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzNCLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENB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TUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXhELE9BQU8sR0FBRyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVNLEdBQUcsQ0FBQyxNQUFNO1FBQ2IsSUFBSSxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDZCxPQUFPLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU0sa0JBQWtCLENBQUMsT0FBZTtRQUNyQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELE1BQU0sVUFBVSxHQUE4QixjQUFjLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEcsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcblZlcnPDo286IDEuMDAzXHJcbkRhdGEgQ3JpYcOnw6NvOiAxOC8wNC8yMDE5XHJcbiovXHJcblxyXG5pbXBvcnQgeyBQb011bHRpc2VsZWN0T3B0aW9uLCBQb1NlbGVjdE9wdGlvbiB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhcnRTZXJpZXMge1xyXG4gICAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgICBkYXRhPzogQXJyYXk8bnVtYmVyPjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENoYXJ0VmFsdWVzIHtcclxuICAgIG1pblZhbHVlOiBudW1iZXI7XHJcbiAgICBtYXhWYWx1ZTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgR2VuZXJpY0Z1bmN0aW9uc1V0aWxzIHtcclxuXHJcbiAgICBsaXRlcmFsczogYW55ID0ge307XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgbGl0ZXJhbHM6IE9iamVjdFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5saXRlcmFscyA9IGxpdGVyYWxzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIFRyYW5zZm9ybWEgdW1hIExpc3RhIHNlcGFyYWRhIHBvciBcIixcIiBlbSB1bSBBcnJheSAqL1xyXG4gICAgc3RhdGljIGxpc3RUb0FycmF5Q2hhcmFjdGVyKGxpc3Q6IHN0cmluZyk6IEFycmF5PHN0cmluZz4ge1xyXG4gICAgICAgIGxldCByZXR1cm5BcnJheSA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XHJcblxyXG4gICAgICAgIGlmIChsaXN0ICYmIGxpc3QgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybkFycmF5ID0gbGlzdC5zcGxpdCgnLCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHJldHVybkFycmF5O1xyXG4gICAgfVxyXG5cclxuICAgIC8qIFRyYW5zZm9ybWEgdW0gQXJyYXkgZW0gdW1hIExpc3RhIHNlcGFyYWRhIHBvciBcIixcIiAgKi9cclxuICAgIHN0YXRpYyBBcnJheVRvTGlzdENoYXJhY3RlcihhcnJheTogQXJyYXk8c3RyaW5nPik6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IGxpc3QgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKGFycmF5ICYmIGFycmF5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgbGlzdCA9IGFycmF5LmpvaW4oJywnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBsaXN0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0VtcHR5KG9iamVjdDogb2JqZWN0KTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGV0IGlzRW1wdHkgPSB0cnVlO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGNvbnRlbnQgaW4gb2JqZWN0KSB7XHJcbiAgICAgICAgICAgIGlmIChvYmplY3QuaGFzT3duUHJvcGVydHkoY29udGVudCkpIHtcclxuICAgICAgICAgICAgICAgIGlzRW1wdHkgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGlzRW1wdHk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldENoYXJ0VmFsdWVzKGNoYXJ0RGF0YTogQXJyYXk8Q2hhcnRTZXJpZXM+KTogQ2hhcnRWYWx1ZXMge1xyXG5cclxuICAgICAgICBsZXQgY2hhcnRWYWx1ZXM6IENoYXJ0VmFsdWVzO1xyXG5cclxuICAgICAgICBsZXQgbWF4VmFsdWUsXHJcbiAgICAgICAgICAgIG1pblZhbHVlO1xyXG5cclxuICAgICAgICBtYXhWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICBtaW5WYWx1ZSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgICAgY2hhcnREYXRhLm1hcChpdGVtID0+IHtcclxuICAgICAgICAgICAgaWYgKG1heFZhbHVlID09PSB1bmRlZmluZWQgJiYgbWluVmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgbWF4VmFsdWUgPSBpdGVtLmRhdGFbMF07XHJcbiAgICAgICAgICAgICAgICBtaW5WYWx1ZSA9IGl0ZW0uZGF0YVswXTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmRhdGEgPCBtaW5WYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIG1pblZhbHVlID0gaXRlbS5kYXRhWzBdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uZGF0YSA+IG1heFZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbWF4VmFsdWUgPSBpdGVtLmRhdGFbMF07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKG1heFZhbHVlID4gMCAmJiBtaW5WYWx1ZSA+IDApIHtcclxuICAgICAgICAgICAgY2hhcnRWYWx1ZXMgPSB7IG1heFZhbHVlOiBtYXhWYWx1ZSwgbWluVmFsdWU6IDAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChtYXhWYWx1ZSA+IDAgJiYgbWluVmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgIGNoYXJ0VmFsdWVzID0geyBtYXhWYWx1ZTogbWF4VmFsdWUsIG1pblZhbHVlOiBtaW5WYWx1ZSB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG1heFZhbHVlIDwgMCAmJiBtaW5WYWx1ZSA8IDApIHtcclxuICAgICAgICAgICAgY29uc3QgbWF4ID0gKG1pblZhbHVlIC8gMykgKiAoLSAxKTtcclxuICAgICAgICAgICAgY2hhcnRWYWx1ZXMgPSB7IG1heFZhbHVlOiBtYXgsIG1pblZhbHVlOiBtaW5WYWx1ZSB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG1heFZhbHVlID4gMCAmJiBtaW5WYWx1ZSA9PT0gMCkge1xyXG4gICAgICAgICAgICBjaGFydFZhbHVlcyA9IHsgbWF4VmFsdWU6IG1heFZhbHVlLCBtaW5WYWx1ZTogMCB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG1heFZhbHVlID09PSAwICYmIG1pblZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgICBjb25zdCBtYXggPSAobWluVmFsdWUgLyAzKSAqICgtIDEpO1xyXG4gICAgICAgICAgICBjaGFydFZhbHVlcyA9IHsgbWF4VmFsdWU6IG1heCwgbWluVmFsdWU6IG1pblZhbHVlIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobWF4VmFsdWUgPT09IDAgJiYgbWluVmFsdWUgPT09IDApIHtcclxuICAgICAgICAgICAgY2hhcnRWYWx1ZXMgPSB7IG1heFZhbHVlOiB1bmRlZmluZWQsIG1pblZhbHVlOiB1bmRlZmluZWQgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNoYXJ0VmFsdWVzLm1heFZhbHVlID0gTWF0aC5yb3VuZChjaGFydFZhbHVlcy5tYXhWYWx1ZSk7XHJcbiAgICAgICAgY2hhcnRWYWx1ZXMubWluVmFsdWUgPSBNYXRoLnJvdW5kKGNoYXJ0VmFsdWVzLm1pblZhbHVlKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGNoYXJ0VmFsdWVzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qRGVpeGEgbm8gbGlzdCBhcGVuYXMgbyBpdGVucyBxdWUgZXhpc3RlbSBubyBvcHRpb25zKi9cclxuICAgIHN0YXRpYyBhdHpNdWx0aVNlbGVjdExpc3RCeU9wdGlvbnMob3B0aW9uczogQXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbj4sIGxpc3Q6IEFycmF5PHN0cmluZz4pOiBBcnJheTxzdHJpbmc+IHtcclxuICAgICAgICBsZXQgaWR4OiBudW1iZXI7XHJcbiAgICAgICAgbGV0IG5ld0xpc3Q6IEFycmF5PHN0cmluZz47XHJcblxyXG4gICAgICAgIGlmICghbGlzdCkge1xyXG4gICAgICAgICAgICByZXR1cm4gbGlzdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIG5ld0xpc3QgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xyXG5cclxuICAgICAgICBsaXN0Lm1hcChpdGVtID0+IHtcclxuICAgICAgICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICAgICAgICAgIGlkeCA9IG9wdGlvbnMuZmluZEluZGV4KGl0ZW1PcHRpb25zID0+IGl0ZW1PcHRpb25zLnZhbHVlID09PSBpdGVtKTtcclxuICAgICAgICAgICAgICAgIGlmIChpZHggPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIG5ld0xpc3QucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gbmV3TGlzdDtcclxuICAgIH1cclxuXHJcbiAgICAvKkNhcnJlZ2EgbyBPcHRpb25zIGNvbSBvcyB2YWxvcmVzIGRlZmF1bHRzIHBhc3NhZG9zIGNvbW8gcGFyw6JtZXRybyAobGlzdCkqL1xyXG4gICAgcHVibGljIGxvYWRPcHRpb25zTXVsdGlTZWxlY3Qob3B0aW9uczogQXJyYXk8UG9NdWx0aXNlbGVjdE9wdGlvbj4sIGxpc3Q6IEFycmF5PHN0cmluZz4pOiB2b2lkIHtcclxuICAgICAgICBsZXQgaWR4OiBudW1iZXI7XHJcblxyXG4gICAgICAgIGlmICghbGlzdCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsaXN0Lm1hcChpdGVtID0+IHtcclxuICAgICAgICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICAgICAgICAgIGlkeCA9IG9wdGlvbnMuZmluZEluZGV4KGl0ZW1PcHRpb25zID0+IGl0ZW1PcHRpb25zLnZhbHVlID09PSBpdGVtKTtcclxuICAgICAgICAgICAgICAgIGlmIChpZHggPT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wdXNoKHsgbGFiZWw6IGl0ZW0gPT09ICdhbGwnID8gdGhpcy5saXRlcmFsc1snYWxsJ10gOiBpdGVtLCB2YWx1ZTogaXRlbSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qQ2FycmVnYSBvIE9wdGlvbnMgY29tIG9zIHZhbG9yZXMgZGVmYXVsdHMgcGFzc2Fkb3MgY29tbyBwYXLDom1ldHJvIChsaXN0KSovXHJcbiAgICBwdWJsaWMgbG9hZE9wdGlvbnNTZWxlY3Qob3B0aW9uczogQXJyYXk8UG9TZWxlY3RPcHRpb24+LCBzZWxlY3RWYWx1ZTogc3RyaW5nLCB0cmFkVmFsdWUgPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgICAgIGxldCBpZHg6IG51bWJlcjtcclxuXHJcbiAgICAgICAgaWYgKCFzZWxlY3RWYWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoc2VsZWN0VmFsdWUpIHtcclxuICAgICAgICAgICAgaWR4ID0gb3B0aW9ucy5maW5kSW5kZXgoaXRlbU9wdGlvbnMgPT4gaXRlbU9wdGlvbnMudmFsdWUgPT09IHNlbGVjdFZhbHVlKTtcclxuICAgICAgICAgICAgaWYgKGlkeCA9PT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIG9wdGlvbnMucHVzaCh7IGxhYmVsOiB0cmFkVmFsdWUgPyB0aGlzLmxpdGVyYWxzW3NlbGVjdFZhbHVlXSA6IHNlbGVjdFZhbHVlLCB2YWx1ZTogc2VsZWN0VmFsdWUgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLypNw6l0b2RvIHF1ZSBjb21wYXJhIDIgb2JqZXRvcyBlIHJldG9ybmEgc2Ugc8OjbyBpZ3VhaXMgb3UgZGlmZXJlbnRlcyovXHJcbiAgICBwdWJsaWMgY29tcGFyZU9iamVjdHMoZmlyc3RPYmplY3Q6IE9iamVjdCwgc2Vjb25kT2JqZWN0OiBPYmplY3QpOiBib29sZWFuIHtcclxuXHJcbiAgICAgICAgaWYgKCFmaXJzdE9iamVjdCB8fCAhc2Vjb25kT2JqZWN0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qUGVnYSBhIGxpc3RhIGRlIG5vbWVzIGRvcyBjYW1wb3MgZG8gb2JqZXRvcyBlIGNvbXBhcmEqL1xyXG4gICAgICAgIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhmaXJzdE9iamVjdCkubGVuZ3RoICE9PSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzZWNvbmRPYmplY3QpLmxlbmd0aCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGNvbnRlbnQgaW4gZmlyc3RPYmplY3QpIHtcclxuICAgICAgICAgICAgaWYgKGNvbnRlbnQuc3Vic3RyKDAsIDEpID09PSAnJCcgfHwgY29udGVudC5zdWJzdHIoMCwgMSkgPT09ICdfJykge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChmaXJzdE9iamVjdFtjb250ZW50XSAhPT0gc2Vjb25kT2JqZWN0W2NvbnRlbnRdKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVmZXJlbmNlR2VuZXJhdGlvbihjaGFySW5kOiBzdHJpbmcsIGRhdGVSZWY6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCByZWZlcmVuY2U6IHN0cmluZztcclxuICAgICAgICBsZXQgcmFuZG9tOiBzdHJpbmc7XHJcblxyXG4gICAgICAgIGNvbnN0IGlEYXkgPSBkYXRlUmVmLmdldERhdGUoKTtcclxuICAgICAgICBjb25zdCBpTW9udGggPSBkYXRlUmVmLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgICAgIGNvbnN0IGlZZWFyID0gZGF0ZVJlZi5nZXRGdWxsWWVhcigpO1xyXG5cclxuICAgICAgICByZWZlcmVuY2UgPSBgJHt0aGlzLnBhZChpWWVhcil9JHt0aGlzLnBhZChpTW9udGgpfSR7dGhpcy5wYWQoaURheSl9JHtjaGFySW5kfWA7XHJcblxyXG4gICAgICAgIHJhbmRvbSA9IGJ0b2EoYCR7KG5ldyBEYXRlKCkpLmdldFRpbWUoKX1gKTtcclxuICAgICAgICByYW5kb20gPSByYW5kb20ucmVwbGFjZSgvWz1dL2csICcnKTtcclxuICAgICAgICByYW5kb20gPSByYW5kb20uc2xpY2UocmFuZG9tLmxlbmd0aCAtIDMsIHJhbmRvbS5sZW5ndGgpO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7cmVmZXJlbmNlfSR7cmFuZG9tfWA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHBhZChudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmIChudW1iZXIgPCAxMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gJzAnICsgbnVtYmVyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobnVtYmVyID4gOTkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIChudW1iZXIgKyAnJykuc2xpY2UoMiwgNCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudW1iZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvY3VzSW50ZXJuYWxJbnB1dChpZEZpZWxkOiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBmaWVsZENvbXBvbmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkRmllbGQpO1xyXG4gICAgICAgIGNvbnN0IGZpZWxkSW5wdXQgPSAoPEhUTUxTY3JpcHRFbGVtZW50W10+PGFueT5maWVsZENvbXBvbmVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwby1pbnB1dCcpKVswXTtcclxuICAgICAgICBmaWVsZElucHV0LmZvY3VzKCk7XHJcbiAgICB9XHJcbn1cclxuIl19