@senior-agronegocio/angular-components 0.0.88 → 0.0.90
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/bundles/senior-agronegocio-angular-components.umd.js +370 -357
- package/bundles/senior-agronegocio-angular-components.umd.js.map +1 -1
- package/bundles/senior-agronegocio-angular-components.umd.min.js +2 -2
- package/bundles/senior-agronegocio-angular-components.umd.min.js.map +1 -1
- package/common/agro-platform-utils.class.d.ts +9 -0
- package/common/agro-string-utils.class.d.ts +46 -146
- package/common/colors.class.d.ts +2 -0
- package/components/cancel-event-dialog/cancel-event-dialog.component.d.ts +2 -2
- package/components/event-control-board/common/event-operation.d.ts +0 -1
- package/components/event-control-board/common/event-origin.d.ts +0 -1
- package/enums/agro-numbers.enum.d.ts +3 -2
- package/esm2015/common/agro-cookie-utils.class.js +7 -3
- package/esm2015/common/agro-date-utils.class.js +7 -3
- package/esm2015/common/agro-logics.class.js +22 -20
- package/esm2015/common/agro-name-utils.class.js +5 -4
- package/esm2015/common/agro-number-utils.class.js +20 -10
- package/esm2015/common/agro-object-utils.class.js +9 -7
- package/esm2015/common/agro-platform-utils.class.js +46 -50
- package/esm2015/common/agro-string-utils.class.js +217 -215
- package/esm2015/common/colors.class.js +3 -1
- package/esm2015/components/cancel-event-dialog/cancel-event-dialog.component.js +8 -8
- package/esm2015/components/event-control-board/common/event-control-constants.js +1 -6
- package/esm2015/components/event-control-board/common/event-operation.js +1 -2
- package/esm2015/components/event-control-board/common/event-origin.js +1 -2
- package/esm2015/components/event-control-board/event-control-board.component.js +3 -4
- package/esm2015/components/event-steps/index.js +1 -1
- package/esm2015/enums/agro-numbers.enum.js +3 -2
- package/esm2015/services/i18n/en-US.js +9 -3
- package/esm2015/services/i18n/es-CO.js +9 -3
- package/esm2015/services/i18n/pt-BR.js +9 -3
- package/esm2015/services/websocket/websocket.service.js +2 -2
- package/esm5/common/agro-cookie-utils.class.js +7 -3
- package/esm5/common/agro-date-utils.class.js +7 -3
- package/esm5/common/agro-logics.class.js +34 -42
- package/esm5/common/agro-name-utils.class.js +5 -4
- package/esm5/common/agro-number-utils.class.js +20 -10
- package/esm5/common/agro-object-utils.class.js +9 -7
- package/esm5/common/agro-platform-utils.class.js +46 -50
- package/esm5/common/agro-string-utils.class.js +217 -215
- package/esm5/common/colors.class.js +3 -1
- package/esm5/components/cancel-event-dialog/cancel-event-dialog.component.js +8 -8
- package/esm5/components/event-control-board/common/event-control-constants.js +1 -6
- package/esm5/components/event-control-board/common/event-operation.js +1 -2
- package/esm5/components/event-control-board/common/event-origin.js +1 -2
- package/esm5/components/event-control-board/event-control-board.component.js +3 -4
- package/esm5/components/event-steps/index.js +1 -1
- package/esm5/enums/agro-numbers.enum.js +3 -2
- package/esm5/services/i18n/en-US.js +9 -3
- package/esm5/services/i18n/es-CO.js +9 -3
- package/esm5/services/i18n/pt-BR.js +9 -3
- package/esm5/services/websocket/websocket.service.js +2 -2
- package/fesm2015/senior-agronegocio-angular-components.js +359 -336
- package/fesm2015/senior-agronegocio-angular-components.js.map +1 -1
- package/fesm5/senior-agronegocio-angular-components.js +370 -357
- package/fesm5/senior-agronegocio-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/services/i18n/en-US.d.ts +8 -2
- package/services/i18n/es-CO.d.ts +8 -2
- package/services/i18n/pt-BR.d.ts +8 -2
- package/common/numbers.d.ts +0 -6
- package/esm2015/common/numbers.js +0 -8
- package/esm5/common/numbers.js +0 -8
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Classe de utilitários para operações com números.
|
|
3
3
|
*/
|
|
4
|
+
import { AGRO_NUMBERS } from "../enums";
|
|
4
5
|
export class AgroNumberUtils {
|
|
5
6
|
/**
|
|
6
7
|
* Verifica se um número é nulo ou indefinido.
|
|
@@ -25,7 +26,7 @@ export class AgroNumberUtils {
|
|
|
25
26
|
* @returns True se for par, false caso contrário.
|
|
26
27
|
*/
|
|
27
28
|
static isEven(value) {
|
|
28
|
-
return value %
|
|
29
|
+
return value % AGRO_NUMBERS.TWO === AGRO_NUMBERS.ZERO;
|
|
29
30
|
}
|
|
30
31
|
/**
|
|
31
32
|
* Verifica se um número é ímpar.
|
|
@@ -34,7 +35,7 @@ export class AgroNumberUtils {
|
|
|
34
35
|
* @returns True se for ímpar, false caso contrário.
|
|
35
36
|
*/
|
|
36
37
|
static isOdd(value) {
|
|
37
|
-
return value %
|
|
38
|
+
return value % AGRO_NUMBERS.TWO !== AGRO_NUMBERS.ZERO;
|
|
38
39
|
}
|
|
39
40
|
/**
|
|
40
41
|
* Calcula a porcentagem de um valor em relação a um total.
|
|
@@ -44,9 +45,10 @@ export class AgroNumberUtils {
|
|
|
44
45
|
* @returns A porcentagem calculada.
|
|
45
46
|
*/
|
|
46
47
|
static percentage(partial, total) {
|
|
47
|
-
if (total ===
|
|
48
|
+
if (total === AGRO_NUMBERS.ZERO) {
|
|
48
49
|
throw new Error("O total não pode ser zero.");
|
|
49
|
-
|
|
50
|
+
}
|
|
51
|
+
return (partial / total) * AGRO_NUMBERS.ONE_HUNDRED;
|
|
50
52
|
}
|
|
51
53
|
/**
|
|
52
54
|
* Formata um número para o formato monetário.
|
|
@@ -70,6 +72,9 @@ export class AgroNumberUtils {
|
|
|
70
72
|
* @returns Um número aleatório no intervalo.
|
|
71
73
|
*/
|
|
72
74
|
static randomInRange(min, max) {
|
|
75
|
+
if (max <= min) {
|
|
76
|
+
throw new Error("O valor máximo deve ser maior que o mínimo.");
|
|
77
|
+
}
|
|
73
78
|
return Math.random() * (max - min) + min;
|
|
74
79
|
}
|
|
75
80
|
/**
|
|
@@ -79,11 +84,13 @@ export class AgroNumberUtils {
|
|
|
79
84
|
* @returns True se for primo, false caso contrário.
|
|
80
85
|
*/
|
|
81
86
|
static isPrime(value) {
|
|
82
|
-
if (value <=
|
|
87
|
+
if (value <= AGRO_NUMBERS.ONE) {
|
|
83
88
|
return false;
|
|
84
|
-
|
|
85
|
-
|
|
89
|
+
}
|
|
90
|
+
for (let i = AGRO_NUMBERS.TWO; i <= Math.sqrt(value); i++) {
|
|
91
|
+
if (value % i === AGRO_NUMBERS.ZERO) {
|
|
86
92
|
return false;
|
|
93
|
+
}
|
|
87
94
|
}
|
|
88
95
|
return true;
|
|
89
96
|
}
|
|
@@ -94,9 +101,12 @@ export class AgroNumberUtils {
|
|
|
94
101
|
* @param decimals O número de casas decimais (padrão: 2).
|
|
95
102
|
* @returns O número arredondado.
|
|
96
103
|
*/
|
|
97
|
-
static roundTo(value, decimals =
|
|
98
|
-
|
|
104
|
+
static roundTo(value, decimals = AGRO_NUMBERS.TWO) {
|
|
105
|
+
if (decimals < AGRO_NUMBERS.ZERO) {
|
|
106
|
+
throw new Error("O número de casas decimais não pode ser negativo.");
|
|
107
|
+
}
|
|
108
|
+
const factor = Math.pow(AGRO_NUMBERS.TEN, decimals);
|
|
99
109
|
return Math.round(value * factor) / factor;
|
|
100
110
|
}
|
|
101
111
|
}
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1udW1iZXItdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW51bWJlci11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFeEMsTUFBTSxPQUFPLGVBQWU7SUFDeEI7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFRO1FBQzdCLE9BQU8sR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssU0FBUyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEdBQVE7UUFDaEMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQWE7UUFDM0IsT0FBTyxLQUFLLEdBQUcsWUFBWSxDQUFDLEdBQUcsS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBYTtRQUMxQixPQUFPLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxLQUFLLFlBQVksQ0FBQyxJQUFJLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBZSxFQUFFLEtBQWE7UUFDNUMsSUFBSSxLQUFLLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDakQ7UUFDTCxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQWEsRUFBRSxXQUFtQixLQUFLLEVBQUUsU0FBaUIsT0FBTztRQUMvRSxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7WUFDakMsS0FBSyxFQUFFLFVBQVU7WUFDakIsUUFBUSxFQUFFLFFBQVE7U0FDckIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUN6QyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUU7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7U0FDbEU7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFhO1FBQ3hCLElBQUksS0FBSyxJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUU7WUFDM0IsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdkQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxLQUFLLFlBQVksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pDLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFhLEVBQUUsV0FBbUIsWUFBWSxDQUFDLEdBQUc7UUFDN0QsSUFBSSxRQUFRLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRTtZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7U0FDeEU7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDL0MsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENsYXNzZSBkZSB1dGlsaXTDoXJpb3MgcGFyYSBvcGVyYcOnw7VlcyBjb20gbsO6bWVyb3MuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQUdST19OVU1CRVJTIH0gZnJvbSBcIi4uL2VudW1zXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQWdyb051bWJlclV0aWxzIHtcclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyDDqSBudWxvIG91IGluZGVmaW5pZG8uXHJcbiAgICAgKiBAcGFyYW0gbnVtIC0gTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gbsO6bWVybyBmb3IgbnVsbyBvdSBpbmRlZmluaWRvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc051bGxPclVuZGVmaW5lZChudW06IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBudW0gPT09IG51bGwgfHwgbnVtID09PSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBuw7ptZXJvIG7Do28gw6kgbnVsbyBlIG7Do28gw6kgaW5kZWZpbmlkby5cclxuICAgICAqIEBwYXJhbSBudW0gLSBPIG7Dum1lcm8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBuw7ptZXJvIG7Do28gZm9yIG51bG8gZSBuw6NvIGZvciBpbmRlZmluaWRvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc05vdE51bGxPclVuZGVmaW5lZChudW06IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhQWdyb051bWJlclV0aWxzLmlzTnVsbE9yVW5kZWZpbmVkKG51bSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBuw7ptZXJvIMOpIHBhci5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGZvciBwYXIsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRXZlbih2YWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdmFsdWUgJSBBR1JPX05VTUJFUlMuVFdPID09PSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG7Dum1lcm8gw6kgw61tcGFyLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBPIG7Dum1lcm8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgZm9yIMOtbXBhciwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNPZGQodmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHZhbHVlICUgQUdST19OVU1CRVJTLlRXTyAhPT0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxjdWxhIGEgcG9yY2VudGFnZW0gZGUgdW0gdmFsb3IgZW0gcmVsYcOnw6NvIGEgdW0gdG90YWwuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHBhcnRpYWwgTyB2YWxvciBwYXJjaWFsLlxyXG4gICAgICogQHBhcmFtIHRvdGFsIE8gdmFsb3IgdG90YWwuXHJcbiAgICAgKiBAcmV0dXJucyBBIHBvcmNlbnRhZ2VtIGNhbGN1bGFkYS5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHBlcmNlbnRhZ2UocGFydGlhbDogbnVtYmVyLCB0b3RhbDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAodG90YWwgPT09IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk8gdG90YWwgbsOjbyBwb2RlIHNlciB6ZXJvLlwiKTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gKHBhcnRpYWwgLyB0b3RhbCkgKiBBR1JPX05VTUJFUlMuT05FX0hVTkRSRUQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGb3JtYXRhIHVtIG7Dum1lcm8gcGFyYSBvIGZvcm1hdG8gbW9uZXTDoXJpby5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIGZvcm1hdGFkby5cclxuICAgICAqIEBwYXJhbSBjdXJyZW5jeSBPIHPDrW1ib2xvIGRhIG1vZWRhIChwYWRyw6NvOiBcIkJSTFwiKS5cclxuICAgICAqIEBwYXJhbSBsb2NhbGUgTyBjw7NkaWdvIGRhIGxvY2FsaWRhZGUgKHBhZHLDo286IFwicHQtQlJcIikuXHJcbiAgICAgKiBAcmV0dXJucyBVbWEgc3RyaW5nIG5vIGZvcm1hdG8gbW9uZXTDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHRvQ3VycmVuY3kodmFsdWU6IG51bWJlciwgY3VycmVuY3k6IHN0cmluZyA9IFwiQlJMXCIsIGxvY2FsZTogc3RyaW5nID0gXCJwdC1CUlwiKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gbmV3IEludGwuTnVtYmVyRm9ybWF0KGxvY2FsZSwge1xyXG4gICAgICAgICAgICBzdHlsZTogXCJjdXJyZW5jeVwiLFxyXG4gICAgICAgICAgICBjdXJyZW5jeTogY3VycmVuY3ksXHJcbiAgICAgICAgfSkuZm9ybWF0KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdlcmEgdW0gbsO6bWVybyBhbGVhdMOzcmlvIG5vIGludGVydmFsbyBlc3BlY2lmaWNhZG8uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG1pbiBPIHZhbG9yIG3DrW5pbW8gKGluY2x1c2l2bykuXHJcbiAgICAgKiBAcGFyYW0gbWF4IE8gdmFsb3IgbcOheGltbyAoZXhjbHVzaXZvKS5cclxuICAgICAqIEByZXR1cm5zIFVtIG7Dum1lcm8gYWxlYXTDs3JpbyBubyBpbnRlcnZhbG8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyByYW5kb21JblJhbmdlKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKG1heCA8PSBtaW4pIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTyB2YWxvciBtw6F4aW1vIGRldmUgc2VyIG1haW9yIHF1ZSBvIG3DrW5pbW8uXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4pICsgbWluO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gbsO6bWVybyDDqSBwcmltby5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgTyBuw7ptZXJvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIGZvciBwcmltbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNQcmltZSh2YWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZhbHVlIDw9IEFHUk9fTlVNQkVSUy5PTkUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IgKGxldCBpID0gQUdST19OVU1CRVJTLlRXTzsgaSA8PSBNYXRoLnNxcnQodmFsdWUpOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlICUgaSA9PT0gQUdST19OVU1CRVJTLlpFUk8pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFycmVkb25kYSB1bSBuw7ptZXJvIHBhcmEgYG5gIGNhc2FzIGRlY2ltYWlzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBPIG7Dum1lcm8gYSBzZXIgYXJyZWRvbmRhZG8uXHJcbiAgICAgKiBAcGFyYW0gZGVjaW1hbHMgTyBuw7ptZXJvIGRlIGNhc2FzIGRlY2ltYWlzIChwYWRyw6NvOiAyKS5cclxuICAgICAqIEByZXR1cm5zIE8gbsO6bWVybyBhcnJlZG9uZGFkby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHJvdW5kVG8odmFsdWU6IG51bWJlciwgZGVjaW1hbHM6IG51bWJlciA9IEFHUk9fTlVNQkVSUy5UV08pOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChkZWNpbWFscyA8IEFHUk9fTlVNQkVSUy5aRVJPKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk8gbsO6bWVybyBkZSBjYXNhcyBkZWNpbWFpcyBuw6NvIHBvZGUgc2VyIG5lZ2F0aXZvLlwiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZmFjdG9yID0gTWF0aC5wb3coQUdST19OVU1CRVJTLlRFTiwgZGVjaW1hbHMpO1xyXG4gICAgICAgIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlICogZmFjdG9yKSAvIGZhY3RvcjtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -123,10 +123,7 @@ export class AgroObjectUtils {
|
|
|
123
123
|
* @returns True se os objetos forem iguais, false caso contrário.
|
|
124
124
|
*/
|
|
125
125
|
static isEqual(obj1, obj2) {
|
|
126
|
-
|
|
127
|
-
return true;
|
|
128
|
-
}
|
|
129
|
-
return false;
|
|
126
|
+
return JSON.stringify(obj1) === JSON.stringify(obj2);
|
|
130
127
|
}
|
|
131
128
|
/**
|
|
132
129
|
* Verifica se um objeto é nulo.
|
|
@@ -161,7 +158,7 @@ export class AgroObjectUtils {
|
|
|
161
158
|
if (!AgroObjectUtils.isObject(obj)) {
|
|
162
159
|
return false;
|
|
163
160
|
}
|
|
164
|
-
return Object.keys(obj).length !==
|
|
161
|
+
return Object.keys(obj).length !== AGRO_NUMBERS.ZERO;
|
|
165
162
|
}
|
|
166
163
|
/**
|
|
167
164
|
* Verifica se um objeto é vazio.
|
|
@@ -239,7 +236,12 @@ export class AgroObjectUtils {
|
|
|
239
236
|
* @param value
|
|
240
237
|
*/
|
|
241
238
|
static fromString(value) {
|
|
242
|
-
|
|
239
|
+
try {
|
|
240
|
+
return JSON.parse(value);
|
|
241
|
+
}
|
|
242
|
+
catch (e) {
|
|
243
|
+
return undefined;
|
|
244
|
+
}
|
|
243
245
|
}
|
|
244
246
|
}
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1vYmplY3QtdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW9iamVjdC11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxlQUFlLElBQUksR0FBRyxFQUFFLGVBQWUsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUVsRTs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQ3hCOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBUTtRQUM3QixPQUFPLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFRO1FBQ2hDLE9BQU8sQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQVE7UUFDcEIsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQVE7UUFDcEIsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQVE7UUFDckIsT0FBTyxPQUFPLEdBQUcsS0FBSyxTQUFTLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQVE7UUFDdEIsT0FBTyxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09B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TUFBTSxJQUFJLElBQUksR0FBRyxFQUFFO2dCQUNwQixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFO29CQUMzRCxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQ3hFLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTt3QkFDdEIsT0FBTyxNQUFNLENBQUM7cUJBQ2pCO2lCQUNKO2FBQ0o7U0FDSjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQWE7UUFDM0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQztJQUMxQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBR1JPX05VTUJFUlMgfSBmcm9tIFwiLi4vZW51bXNcIjtcclxuXHJcbmV4cG9ydCB7IEFncm9PYmplY3RVdGlscyBhcyBBT1UsIEFncm9PYmplY3RVdGlscyBhcyBPYmplY3RVdGlscyB9O1xyXG5cclxuLyoqXHJcbiAqIENsYXNzZSB1dGlsaXTDoXJpYSBwYXJhIG9wZXJhw6fDtWVzIGRlIG9iamV0by5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBBZ3JvT2JqZWN0VXRpbHMge1xyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgbnVsbyBvdSBpbmRlZmluaWRvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciBudWxvIG91IGluZGVmaW5pZG8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTnVsbE9yVW5kZWZpbmVkKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIG9iaiA9PT0gbnVsbCB8fCBvYmogPT09IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byBuw6NvIMOpIG51bG8gZSBuw6NvIMOpIGluZGVmaW5pZG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gbsOjbyBmb3IgbnVsbyBlIG7Do28gZm9yIGluZGVmaW5pZG8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTm90TnVsbE9yVW5kZWZpbmVkKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvT2JqZWN0VXRpbHMuaXNOdWxsT3JVbmRlZmluZWQob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bWEgc3RyaW5nLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bWEgc3RyaW5nLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc1N0cmluZyhvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtIG7Dum1lcm8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIG7Dum1lcm8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTnVtYmVyKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBvYmogPT09IFwibnVtYmVyXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gYm9vbGVhbm8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIGJvb2xlYW5vLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0Jvb2xlYW4ob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJib29sZWFuXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW1hIGZ1bsOnw6NvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bWEgZnVuw6fDo28sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRnVuY3Rpb24ob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJmdW5jdGlvblwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtIGFycmF5LlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bSBhcnJheSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNBcnJheShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSBvIHZhbG9yIGluZm9ybWFkbyDDqSB1bSBvYmpldG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIG9iamV0bywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNPYmplY3Qob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bWEgZGF0YS5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW1hIGRhdGEsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRGF0ZShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtIGVycm8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIGVycm8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRXJyb3Iob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRXJyb3I7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW1hIGV4cHJlc3PDo28gcmVndWxhci5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW1hIGV4cHJlc3PDo28gcmVndWxhciwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNSZWdFeHAob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgUmVnRXhwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtIHZhbG9yIHByaW1pdGl2by5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gdmFsb3IgcHJpbWl0aXZvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc1ByaW1pdGl2ZShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBZ3JvT2JqZWN0VXRpbHMuaXNTdHJpbmcob2JqKSB8fCBBZ3JvT2JqZWN0VXRpbHMuaXNOdW1iZXIob2JqKSB8fCBBZ3JvT2JqZWN0VXRpbHMuaXNCb29sZWFuKG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB0b2RvcyBvcyB2YWxvcmVzIGRlIHVtIG9iamV0byBzw6NvIG51bG9zIG91IGluZGVmaW5pZG9zLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIHRvZG9zIG9zIHZhbG9yZXMgZG8gb2JqZXRvIGZvcmVtIG51bG9zIG91IGluZGVmaW5pZG9zLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhbGxOdWxsKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFBZ3JvT2JqZWN0VXRpbHMuaXNPYmplY3Qob2JqKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcclxuICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpICYmICFBZ3JvT2JqZWN0VXRpbHMuaXNOdWxsT3JVbmRlZmluZWQob2JqW2tleV0pKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGFyYSBkb2lzIG9iamV0b3MgcGFyYSB2ZXJpZmljYXIgc2Ugc8OjbyBpZ3VhaXMuXHJcbiAgICAgKiBAcGFyYW0gb2JqMSAtIE8gcHJpbWVpcm8gb2JqZXRvIGEgc2VyIGNvbXBhcmFkby5cclxuICAgICAqIEBwYXJhbSBvYmoyIC0gTyBzZWd1bmRvIG9iamV0byBhIHNlciBjb21wYXJhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG9zIG9iamV0b3MgZm9yZW0gaWd1YWlzLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0VxdWFsKG9iajE6IGFueSwgb2JqMjogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KG9iajEpID09PSBKU09OLnN0cmluZ2lmeShvYmoyKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSBudWxvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciBudWxvIG91IHVtIG9iamV0byB2YXppbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOdWxsKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIG9iaiA9PT0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byBuw6NvIMOpIG51bG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gbsOjbyBmb3IgbnVsbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOb3ROdWxsKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvT2JqZWN0VXRpbHMuaXNOdWxsKG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb252ZXJ0ZSB1bSBvYmpldG8gcGFyYSB1bWEgc3RyaW5nIEpTT04uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgY29udmVydGlkby5cclxuICAgICAqIEByZXR1cm5zIEEgc3RyaW5nIEpTT04gcmVwcmVzZW50YW5kbyBvIG9iamV0by5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHRvSlNPTihvYmo6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gbsOjbyDDqSB2YXppby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBuw6NvIGZvciB2YXppbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOb3RFbXB0eShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghQWdyb09iamVjdFV0aWxzLmlzT2JqZWN0KG9iaikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoICE9PSAwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHZhemlvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB2YXppbywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNFbXB0eShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhQWdyb09iamVjdFV0aWxzLmlzTm90RW1wdHkob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byBuw6NvIGVzdMOhIHZhemlvIGUgY29udMOpbSB1bWEgZGV0ZXJtaW5hZGEgcHJvcHJpZWRhZGUuXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eSAtIEEgcHJvcHJpZWRhZGUgYSBzZXIgdmVyaWZpY2FkYS5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gbsOjbyBlc3RpdmVyIHZhemlvIGUgY29udGl2ZXIgYSBwcm9wcmllZGFkZSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgY29udGFpbnNQcm9wZXJ0eShvYmo6IGFueSwgcHJvcGVydHk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBZ3JvT2JqZWN0VXRpbHMuaXNOb3RFbXB0eShvYmopICYmIG9iai5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSBvIHBhcsOibWV0cm8gcmVjZWJpZG8gw6kgdW0gb2JqZXRvIGUgc2UgZWxlIGNvbnTDqW0gYSBwcm9wcmllZGFkZSBJRC5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGhhc0lkKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFncm9PYmplY3RVdGlscy5pc05vdEVtcHR5KG9iaikgJiYgb2JqLmhhc093blByb3BlcnR5KFwiaWRcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSBvIHZhbG9yIGluZm9ybWFkbyBubyBwYXLDom1ldHJvIHBvc3N1aSBhcyBwcm9wcmllZGFkZXMgZGUgdW1hIGVudGlkYWRlIFNETCAoaWQgZSBjcmVhdGVkQXQpLlxyXG4gICAgICogQHBhcmFtIG9ialxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzU0RMRW50aXR5KG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFncm9PYmplY3RVdGlscy5pc05vdEVtcHR5KG9iaikgJiYgb2JqLmhhc093blByb3BlcnR5KFwiaWRcIikgJiYgb2JqLmhhc093blByb3BlcnR5KFwiY3JlYXRlZEF0XCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHZhbGlkbywgY29uc2lkZXJhbmRvIHF1ZSBoYWphIG5vIG3DrW5pbW8gMSBwcm9wcmllZGFkZVxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNWYWxpZChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCA+IEFHUk9fTlVNQkVSUy5aRVJPICYmIEFncm9PYmplY3RVdGlscy5pc05vdEVtcHR5KG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgaW52w6FsaWRvLCBjb25zaWRlcmFuZG8gcXVlIG7Do28gaGFqYSBuZW5odW1hIHByb3ByaWVkYWRlXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0ludmFsaWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9PYmplY3RVdGlscy5pc1ZhbGlkKG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbmNvbnRyYSB1bWEgcHJvcHJpZWRhZGUgZW0gdW0gb2JqZXRvIHBlbG8gbm9tZSBlIHJldG9ybmEgc2V1IHZhbG9yLlxyXG4gICAgICogU2UgbyB2YWxvciBmb3IgdW0gb2JqZXRvLCByZXRvcm5hIG8gcHLDs3ByaW8gb2JqZXRvLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvYmogTyBvYmpldG8gb25kZSBidXNjYXIuXHJcbiAgICAgKiBAcGFyYW0ga2V5IE8gbm9tZSBkYSBwcm9wcmllZGFkZSBhIHNlciBlbmNvbnRyYWRhLlxyXG4gICAgICogQHBhcmFtIGRlZXBTZWFyY2ggSW5kaWNhIHNlIGEgYnVzY2EgZGV2ZSBzZXIgZW0gcHJvZnVuZGlkYWRlIChwYWRyw6NvOiB0cnVlKS5cclxuICAgICAqIEByZXR1cm5zIE8gdmFsb3IgZGEgcHJvcHJpZWRhZGUsIG91IHVuZGVmaW5lZCBzZSBuw6NvIGZvciBlbmNvbnRyYWRhLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZmluZFByb3BlcnR5KG9iajogUmVjb3JkPHN0cmluZywgYW55Piwga2V5OiBzdHJpbmcsIGRlZXBTZWFyY2g6IGJvb2xlYW4gPSB0cnVlKTogYW55IHtcclxuICAgICAgICBpZiAoQWdyb09iamVjdFV0aWxzLmlzSW52YWxpZChvYmopKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk8gcHJpbWVpcm8gYXJndW1lbnRvIGRldmUgc2VyIHVtIG9iamV0by5cIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoa2V5IGluIG9iaikge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JqW2tleV07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZGVlcFNlYXJjaCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gb2JqKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KHByb3ApICYmIHR5cGVvZiBvYmpbcHJvcF0gPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBBZ3JvT2JqZWN0VXRpbHMuZmluZFByb3BlcnR5KG9ialtwcm9wXSwga2V5LCBkZWVwU2VhcmNoKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWNlYmUgdW1hIHN0cmluZyAoSlNPTikgZSB0ZW50YSBjb252ZXJ0ZXIgcGFyYSB1bSBvYmpldG8uXHJcbiAgICAgKiBAcGFyYW0gdmFsdWVcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGZyb21TdHJpbmcodmFsdWU6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWUpIHx8IHVuZGVmaW5lZDtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1vYmplY3QtdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLW9iamVjdC11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxlQUFlLElBQUksR0FBRyxFQUFFLGVBQWUsSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUVsRTs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQ3hCOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBUTtRQUM3QixPQUFPLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFRO1FBQ2hDLE9BQU8sQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQVE7UUFDcEIsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQVE7UUFDcEIsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQVE7UUFDckIsT0FBTyxPQUFPLEdBQUcsS0FBSyxTQUFTLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQVE7UUFDdEIsT0FBTyxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09B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LEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFO29CQUMzRCxNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQ3hFLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTt3QkFDdEIsT0FBTyxNQUFNLENBQUM7cUJBQ2pCO2lCQUNKO2FBQ0o7U0FDSjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQWE7UUFDM0IsSUFBSTtZQUNBLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1IsT0FBTyxTQUFTLENBQUM7U0FDcEI7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBR1JPX05VTUJFUlMgfSBmcm9tIFwiLi4vZW51bXNcIjtcclxuXHJcbmV4cG9ydCB7IEFncm9PYmplY3RVdGlscyBhcyBBT1UsIEFncm9PYmplY3RVdGlscyBhcyBPYmplY3RVdGlscyB9O1xyXG5cclxuLyoqXHJcbiAqIENsYXNzZSB1dGlsaXTDoXJpYSBwYXJhIG9wZXJhw6fDtWVzIGRlIG9iamV0by5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBBZ3JvT2JqZWN0VXRpbHMge1xyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgbnVsbyBvdSBpbmRlZmluaWRvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciBudWxvIG91IGluZGVmaW5pZG8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTnVsbE9yVW5kZWZpbmVkKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIG9iaiA9PT0gbnVsbCB8fCBvYmogPT09IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byBuw6NvIMOpIG51bG8gZSBuw6NvIMOpIGluZGVmaW5pZG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gbsOjbyBmb3IgbnVsbyBlIG7Do28gZm9yIGluZGVmaW5pZG8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTm90TnVsbE9yVW5kZWZpbmVkKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvT2JqZWN0VXRpbHMuaXNOdWxsT3JVbmRlZmluZWQob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bWEgc3RyaW5nLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bWEgc3RyaW5nLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc1N0cmluZyhvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtIG7Dum1lcm8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIG7Dum1lcm8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzTnVtYmVyKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBvYmogPT09IFwibnVtYmVyXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW0gYm9vbGVhbm8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIGJvb2xlYW5vLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0Jvb2xlYW4ob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJib29sZWFuXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW1hIGZ1bsOnw6NvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bWEgZnVuw6fDo28sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRnVuY3Rpb24ob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJmdW5jdGlvblwiO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtIGFycmF5LlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIGZvciB1bSBhcnJheSwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNBcnJheShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSBvIHZhbG9yIGluZm9ybWFkbyDDqSB1bSBvYmpldG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIG9iamV0bywgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNPYmplY3Qob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB1bWEgZGF0YS5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW1hIGRhdGEsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRGF0ZShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBvYmogaW5zdGFuY2VvZiBEYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtIGVycm8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIHVtIGVycm8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRXJyb3Iob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRXJyb3I7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgdW1hIGV4cHJlc3PDo28gcmVndWxhci5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW1hIGV4cHJlc3PDo28gcmVndWxhciwgZmFsc2UgY2FzbyBjb250csOhcmlvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNSZWdFeHAob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgUmVnRXhwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIHVtIHZhbG9yIHByaW1pdGl2by5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdW0gdmFsb3IgcHJpbWl0aXZvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc1ByaW1pdGl2ZShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBZ3JvT2JqZWN0VXRpbHMuaXNTdHJpbmcob2JqKSB8fCBBZ3JvT2JqZWN0VXRpbHMuaXNOdW1iZXIob2JqKSB8fCBBZ3JvT2JqZWN0VXRpbHMuaXNCb29sZWFuKG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB0b2RvcyBvcyB2YWxvcmVzIGRlIHVtIG9iamV0byBzw6NvIG51bG9zIG91IGluZGVmaW5pZG9zLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIHRvZG9zIG9zIHZhbG9yZXMgZG8gb2JqZXRvIGZvcmVtIG51bG9zIG91IGluZGVmaW5pZG9zLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhbGxOdWxsKG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFBZ3JvT2JqZWN0VXRpbHMuaXNPYmplY3Qob2JqKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcclxuICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpICYmICFBZ3JvT2JqZWN0VXRpbHMuaXNOdWxsT3JVbmRlZmluZWQob2JqW2tleV0pKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGFyYSBkb2lzIG9iamV0b3MgcGFyYSB2ZXJpZmljYXIgc2Ugc8OjbyBpZ3VhaXMuXHJcbiAgICAgKiBAcGFyYW0gb2JqMSAtIE8gcHJpbWVpcm8gb2JqZXRvIGEgc2VyIGNvbXBhcmFkby5cclxuICAgICAqIEBwYXJhbSBvYmoyIC0gTyBzZWd1bmRvIG9iamV0byBhIHNlciBjb21wYXJhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG9zIG9iamV0b3MgZm9yZW0gaWd1YWlzLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0VxdWFsKG9iajE6IGFueSwgb2JqMjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqMSkgPT09IEpTT04uc3RyaW5naWZ5KG9iajIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIMOpIG51bG8uXHJcbiAgICAgKiBAcGFyYW0gb2JqIC0gTyBvYmpldG8gYSBzZXIgdmVyaWZpY2Fkby5cclxuICAgICAqIEByZXR1cm5zIFRydWUgc2UgbyBvYmpldG8gZm9yIG51bG8gb3UgdW0gb2JqZXRvIHZhemlvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc051bGwob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gb2JqID09PSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgdW0gb2JqZXRvIG7Do28gw6kgbnVsby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBuw6NvIGZvciBudWxvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc05vdE51bGwob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9PYmplY3RVdGlscy5pc051bGwob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnZlcnRlIHVtIG9iamV0byBwYXJhIHVtYSBzdHJpbmcgSlNPTi5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciBjb252ZXJ0aWRvLlxyXG4gICAgICogQHJldHVybnMgQSBzdHJpbmcgSlNPTiByZXByZXNlbnRhbmRvIG8gb2JqZXRvLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgdG9KU09OKG9iajogYW55KTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byBuw6NvIMOpIHZhemlvLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIG7Do28gZm9yIHZhemlvLCBmYWxzZSBjYXNvIGNvbnRyw6FyaW8uXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc05vdEVtcHR5KG9iajogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFBZ3JvT2JqZWN0VXRpbHMuaXNPYmplY3Qob2JqKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaikubGVuZ3RoICE9PSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB2YXppby5cclxuICAgICAqIEBwYXJhbSBvYmogLSBPIG9iamV0byBhIHNlciB2ZXJpZmljYWRvLlxyXG4gICAgICogQHJldHVybnMgVHJ1ZSBzZSBvIG9iamV0byBmb3IgdmF6aW8sIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzRW1wdHkob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9PYmplY3RVdGlscy5pc05vdEVtcHR5KG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gbsOjbyBlc3TDoSB2YXppbyBlIGNvbnTDqW0gdW1hIGRldGVybWluYWRhIHByb3ByaWVkYWRlLlxyXG4gICAgICogQHBhcmFtIG9iaiAtIE8gb2JqZXRvIGEgc2VyIHZlcmlmaWNhZG8uXHJcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkgLSBBIHByb3ByaWVkYWRlIGEgc2VyIHZlcmlmaWNhZGEuXHJcbiAgICAgKiBAcmV0dXJucyBUcnVlIHNlIG8gb2JqZXRvIG7Do28gZXN0aXZlciB2YXppbyBlIGNvbnRpdmVyIGEgcHJvcHJpZWRhZGUsIGZhbHNlIGNhc28gY29udHLDoXJpby5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGNvbnRhaW5zUHJvcGVydHkob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQWdyb09iamVjdFV0aWxzLmlzTm90RW1wdHkob2JqKSAmJiBvYmouaGFzT3duUHJvcGVydHkocHJvcGVydHkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgbyBwYXLDom1ldHJvIHJlY2ViaWRvIMOpIHVtIG9iamV0byBlIHNlIGVsZSBjb250w6ltIGEgcHJvcHJpZWRhZGUgSUQuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBoYXNJZChvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBZ3JvT2JqZWN0VXRpbHMuaXNOb3RFbXB0eShvYmopICYmIG9iai5oYXNPd25Qcm9wZXJ0eShcImlkXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgbyB2YWxvciBpbmZvcm1hZG8gbm8gcGFyw6JtZXRybyBwb3NzdWkgYXMgcHJvcHJpZWRhZGVzIGRlIHVtYSBlbnRpZGFkZSBTREwgKGlkIGUgY3JlYXRlZEF0KS5cclxuICAgICAqIEBwYXJhbSBvYmpcclxuICAgICAqIEByZXR1cm5zXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc1NETEVudGl0eShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBZ3JvT2JqZWN0VXRpbHMuaXNOb3RFbXB0eShvYmopICYmIG9iai5oYXNPd25Qcm9wZXJ0eShcImlkXCIpICYmIG9iai5oYXNPd25Qcm9wZXJ0eShcImNyZWF0ZWRBdFwiKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIHVtIG9iamV0byDDqSB2YWxpZG8sIGNvbnNpZGVyYW5kbyBxdWUgaGFqYSBubyBtw61uaW1vIDEgcHJvcHJpZWRhZGVcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGlzVmFsaWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCA+IEFHUk9fTlVNQkVSUy5aRVJPICYmIEFncm9PYmplY3RVdGlscy5pc05vdEVtcHR5KG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSB1bSBvYmpldG8gw6kgaW52w6FsaWRvLCBjb25zaWRlcmFuZG8gcXVlIG7Do28gaGFqYSBuZW5odW1hIHByb3ByaWVkYWRlXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0ludmFsaWQob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9PYmplY3RVdGlscy5pc1ZhbGlkKG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbmNvbnRyYSB1bWEgcHJvcHJpZWRhZGUgZW0gdW0gb2JqZXRvIHBlbG8gbm9tZSBlIHJldG9ybmEgc2V1IHZhbG9yLlxyXG4gICAgICogU2UgbyB2YWxvciBmb3IgdW0gb2JqZXRvLCByZXRvcm5hIG8gcHLDs3ByaW8gb2JqZXRvLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvYmogTyBvYmpldG8gb25kZSBidXNjYXIuXHJcbiAgICAgKiBAcGFyYW0ga2V5IE8gbm9tZSBkYSBwcm9wcmllZGFkZSBhIHNlciBlbmNvbnRyYWRhLlxyXG4gICAgICogQHBhcmFtIGRlZXBTZWFyY2ggSW5kaWNhIHNlIGEgYnVzY2EgZGV2ZSBzZXIgZW0gcHJvZnVuZGlkYWRlIChwYWRyw6NvOiB0cnVlKS5cclxuICAgICAqIEByZXR1cm5zIE8gdmFsb3IgZGEgcHJvcHJpZWRhZGUsIG91IHVuZGVmaW5lZCBzZSBuw6NvIGZvciBlbmNvbnRyYWRhLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZmluZFByb3BlcnR5KG9iajogUmVjb3JkPHN0cmluZywgYW55Piwga2V5OiBzdHJpbmcsIGRlZXBTZWFyY2g6IGJvb2xlYW4gPSB0cnVlKTogYW55IHtcclxuICAgICAgICBpZiAoQWdyb09iamVjdFV0aWxzLmlzSW52YWxpZChvYmopKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk8gcHJpbWVpcm8gYXJndW1lbnRvIGRldmUgc2VyIHVtIG9iamV0by5cIik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoa2V5IGluIG9iaikge1xyXG4gICAgICAgICAgICByZXR1cm4gb2JqW2tleV07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZGVlcFNlYXJjaCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gb2JqKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KHByb3ApICYmIHR5cGVvZiBvYmpbcHJvcF0gPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBBZ3JvT2JqZWN0VXRpbHMuZmluZFByb3BlcnR5KG9ialtwcm9wXSwga2V5LCBkZWVwU2VhcmNoKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWNlYmUgdW1hIHN0cmluZyAoSlNPTikgZSB0ZW50YSBjb252ZXJ0ZXIgcGFyYSB1bSBvYmpldG8uXHJcbiAgICAgKiBAcGFyYW0gdmFsdWVcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGZyb21TdHJpbmcodmFsdWU6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWUpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { AgroCookieUtils } from "./agro-cookie-utils.class";
|
|
2
|
-
import { AgroObjectUtils } from "./agro-object-utils.class";
|
|
3
2
|
import { StringUtils } from "./agro-string-utils.class";
|
|
3
|
+
// Cookie name constants
|
|
4
|
+
const COOKIE_TOKEN = 'com.senior.token';
|
|
5
|
+
const COOKIE_BASE_URL = 'com.senior.base.url';
|
|
6
|
+
const COOKIE_SERVICES_URL = 'com.senior.services.url';
|
|
4
7
|
export { AgroPlatformUtils as APU, AgroPlatformUtils as PlatformUtils };
|
|
5
8
|
export class AgroPlatformUtils {
|
|
6
9
|
/**
|
|
@@ -9,31 +12,30 @@ export class AgroPlatformUtils {
|
|
|
9
12
|
* @returns
|
|
10
13
|
*/
|
|
11
14
|
static getCurrentTenant() {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const str = (_a = AgroObjectUtils.fromString(cookie)) === null || _a === void 0 ? void 0 : _a.tenantName;
|
|
16
|
-
if (str) {
|
|
17
|
-
return str;
|
|
18
|
-
}
|
|
15
|
+
const tenant = AgroPlatformUtils.getTokenField('tenantName');
|
|
16
|
+
if (tenant) {
|
|
17
|
+
return tenant;
|
|
19
18
|
}
|
|
20
|
-
throw new Error(
|
|
19
|
+
throw new Error(`Cookie: "${COOKIE_TOKEN}" não encontrado.`);
|
|
21
20
|
}
|
|
22
21
|
/**
|
|
23
22
|
* Retorna o locale do tenant atual
|
|
24
23
|
*
|
|
25
24
|
* @returns
|
|
26
25
|
*/
|
|
27
|
-
static
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const str = (_a = AgroObjectUtils.fromString(cookie)) === null || _a === void 0 ? void 0 : _a.locale;
|
|
32
|
-
if (str) {
|
|
33
|
-
return str;
|
|
34
|
-
}
|
|
26
|
+
static getCurrentTenantLocale() {
|
|
27
|
+
const locale = AgroPlatformUtils.getTokenField('locale');
|
|
28
|
+
if (locale) {
|
|
29
|
+
return locale;
|
|
35
30
|
}
|
|
36
|
-
throw new Error(
|
|
31
|
+
throw new Error(`Cookie: "${COOKIE_TOKEN}" não encontrado.`);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* @deprecated Use getCurrentTenantLocale()
|
|
35
|
+
* Mantido por compatibilidade retroativa.
|
|
36
|
+
*/
|
|
37
|
+
static getCurrenTenantLocale() {
|
|
38
|
+
return AgroPlatformUtils.getCurrentTenantLocale();
|
|
37
39
|
}
|
|
38
40
|
/**
|
|
39
41
|
* Retorna o usuário logado
|
|
@@ -41,15 +43,8 @@ export class AgroPlatformUtils {
|
|
|
41
43
|
* @returns string || null
|
|
42
44
|
*/
|
|
43
45
|
static getCurrentUserName() {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (cookie) {
|
|
47
|
-
const str = (_a = AgroCookieUtils.parseCookieToObject(cookie, true)) === null || _a === void 0 ? void 0 : _a.fullName;
|
|
48
|
-
if (str) {
|
|
49
|
-
return str;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return null;
|
|
46
|
+
const name = AgroPlatformUtils.getTokenField('fullName');
|
|
47
|
+
return name || null;
|
|
53
48
|
}
|
|
54
49
|
/**
|
|
55
50
|
* Retorna o e-mail do usuário logado
|
|
@@ -57,16 +52,11 @@ export class AgroPlatformUtils {
|
|
|
57
52
|
* @returns string
|
|
58
53
|
*/
|
|
59
54
|
static getCurrentUserEmail() {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const str = (_a = AgroCookieUtils.parseCookieToObject(cookie, true)) === null || _a === void 0 ? void 0 : _a.email;
|
|
64
|
-
if (str) {
|
|
65
|
-
return str;
|
|
66
|
-
}
|
|
55
|
+
const email = AgroPlatformUtils.getTokenField('email');
|
|
56
|
+
if (!email) {
|
|
57
|
+
console.info(`Cookie: "${COOKIE_TOKEN}" não encontrado.`);
|
|
67
58
|
}
|
|
68
|
-
|
|
69
|
-
return null;
|
|
59
|
+
return email || null;
|
|
70
60
|
}
|
|
71
61
|
/**
|
|
72
62
|
* Retorna uma string com a baseURL atual
|
|
@@ -74,11 +64,11 @@ export class AgroPlatformUtils {
|
|
|
74
64
|
* @example "https://cloud-leaf.senior.com.br" || "https://platform.senior.com.br"
|
|
75
65
|
*/
|
|
76
66
|
static getBaseURL() {
|
|
77
|
-
const cookie = AgroCookieUtils.getCookie(
|
|
67
|
+
const cookie = AgroCookieUtils.getCookie(COOKIE_BASE_URL);
|
|
78
68
|
if (cookie) {
|
|
79
69
|
return decodeURIComponent(cookie);
|
|
80
70
|
}
|
|
81
|
-
throw new Error(
|
|
71
|
+
throw new Error(`Cookie: "${COOKIE_BASE_URL}" não encontrado.`);
|
|
82
72
|
}
|
|
83
73
|
/**
|
|
84
74
|
* Retorna uma string com a URL dos serviços
|
|
@@ -86,27 +76,33 @@ export class AgroPlatformUtils {
|
|
|
86
76
|
* @example "https://cloud-leaf.senior.com.br/t/senior.com.br/bridge/1.0/"
|
|
87
77
|
*/
|
|
88
78
|
static getServicesURL() {
|
|
89
|
-
const cookie = AgroCookieUtils.getCookie(
|
|
79
|
+
const cookie = AgroCookieUtils.getCookie(COOKIE_SERVICES_URL);
|
|
90
80
|
if (StringUtils.isNotEmpty(cookie)) {
|
|
91
81
|
return decodeURIComponent(cookie);
|
|
92
82
|
}
|
|
93
|
-
throw new Error(
|
|
83
|
+
throw new Error(`Cookie: "${COOKIE_SERVICES_URL}" não encontrado.`);
|
|
94
84
|
}
|
|
95
85
|
/**
|
|
96
86
|
* Retorna uma string com o token de acesso atual
|
|
97
87
|
* Caso contrário, retorna uma instância de Error
|
|
98
88
|
*/
|
|
99
89
|
static getCurrentAccessToken() {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
90
|
+
const token = AgroPlatformUtils.getTokenField('access_token');
|
|
91
|
+
if (!token) {
|
|
92
|
+
console.info(`Cookie: "${COOKIE_TOKEN}" não encontrado.`);
|
|
93
|
+
}
|
|
94
|
+
return token || null;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Helper para extrair um campo do cookie de token.
|
|
98
|
+
*/
|
|
99
|
+
static getTokenField(field) {
|
|
100
|
+
const cookie = AgroCookieUtils.getCookie(COOKIE_TOKEN);
|
|
101
|
+
if (!cookie) {
|
|
102
|
+
return undefined;
|
|
107
103
|
}
|
|
108
|
-
|
|
109
|
-
return
|
|
104
|
+
const obj = AgroCookieUtils.parseCookieToObject(cookie, true);
|
|
105
|
+
return obj[field];
|
|
110
106
|
}
|
|
111
107
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1wbGF0Zm9ybS11dGlscy5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tbW9uL2Fncm8tcGxhdGZvcm0tdXRpbHMuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV4RCx3QkFBd0I7QUFDeEIsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUM7QUFDeEMsTUFBTSxlQUFlLEdBQUcscUJBQXFCLENBQUM7QUFDOUMsTUFBTSxtQkFBbUIsR0FBRyx5QkFBeUIsQ0FBQztBQUV0RCxPQUFPLEVBQUMsaUJBQWlCLElBQUksR0FBRyxFQUFFLGlCQUFpQixJQUFJLGFBQWEsRUFBQyxDQUFDO0FBRXRFLE1BQU0sT0FBTyxpQkFBaUI7SUFFMUI7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxnQkFBZ0I7UUFDbkIsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdELElBQUksTUFBTSxFQUFFO1lBQ1IsT0FBTyxNQUFNLENBQUM7U0FDakI7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksWUFBWSxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLHNCQUFzQjtRQUN6QixNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekQsSUFBSSxNQUFNLEVBQUU7WUFDUixPQUFPLE1BQU0sQ0FBQztTQUNqQjtRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxZQUFZLG1CQUFtQixDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxxQkFBcUI7UUFDeEIsT0FBTyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLGtCQUFrQjtRQUNyQixNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLG1CQUFtQjtRQUN0QixNQUFNLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxZQUFZLG1CQUFtQixDQUFDLENBQUM7U0FDN0Q7UUFDRCxPQUFPLEtBQUssSUFBSSxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVTtRQUNiLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUQsSUFBSSxNQUFNLEVBQUU7WUFDUixPQUFPLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLGVBQWUsbUJBQW1CLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxjQUFjO1FBQ2pCLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM5RCxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDaEMsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNyQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsWUFBWSxtQkFBbUIsbUJBQW1CLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLHFCQUFxQjtRQUN4QixNQUFNLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxZQUFZLG1CQUFtQixDQUFDLENBQUM7U0FDN0Q7UUFDRCxPQUFPLEtBQUssSUFBSSxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFhO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBQ0QsTUFBTSxHQUFHLEdBQUcsZUFBZSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5RCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZ3JvQ29va2llVXRpbHMgfSBmcm9tIFwiLi9hZ3JvLWNvb2tpZS11dGlscy5jbGFzc1wiO1xyXG5pbXBvcnQgeyBBZ3JvT2JqZWN0VXRpbHMgfSBmcm9tIFwiLi9hZ3JvLW9iamVjdC11dGlscy5jbGFzc1wiO1xyXG5pbXBvcnQgeyBTdHJpbmdVdGlscyB9IGZyb20gXCIuL2Fncm8tc3RyaW5nLXV0aWxzLmNsYXNzXCI7XHJcblxyXG4vLyBDb29raWUgbmFtZSBjb25zdGFudHNcclxuY29uc3QgQ09PS0lFX1RPS0VOID0gJ2NvbS5zZW5pb3IudG9rZW4nO1xyXG5jb25zdCBDT09LSUVfQkFTRV9VUkwgPSAnY29tLnNlbmlvci5iYXNlLnVybCc7XHJcbmNvbnN0IENPT0tJRV9TRVJWSUNFU19VUkwgPSAnY29tLnNlbmlvci5zZXJ2aWNlcy51cmwnO1xyXG5cclxuZXhwb3J0IHtBZ3JvUGxhdGZvcm1VdGlscyBhcyBBUFUsIEFncm9QbGF0Zm9ybVV0aWxzIGFzIFBsYXRmb3JtVXRpbHN9O1xyXG5cclxuZXhwb3J0IGNsYXNzIEFncm9QbGF0Zm9ybVV0aWxzIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldG9ybmEgbyB0ZW5hbnQgYXR1YWxcclxuICAgICAqIENhc28gY29udHLDoXJpbywgcmV0b3JuYSB1bWEgaW5zdMOibmNpYSBkZSBFcnJvclxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldEN1cnJlbnRUZW5hbnQoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB0ZW5hbnQgPSBBZ3JvUGxhdGZvcm1VdGlscy5nZXRUb2tlbkZpZWxkKCd0ZW5hbnROYW1lJyk7XHJcbiAgICAgICAgaWYgKHRlbmFudCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGVuYW50O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvb2tpZTogXCIke0NPT0tJRV9UT0tFTn1cIiBuw6NvIGVuY29udHJhZG8uYCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRvcm5hIG8gbG9jYWxlIGRvIHRlbmFudCBhdHVhbFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRDdXJyZW50VGVuYW50TG9jYWxlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgbG9jYWxlID0gQWdyb1BsYXRmb3JtVXRpbHMuZ2V0VG9rZW5GaWVsZCgnbG9jYWxlJyk7XHJcbiAgICAgICAgaWYgKGxvY2FsZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbG9jYWxlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvb2tpZTogXCIke0NPT0tJRV9UT0tFTn1cIiBuw6NvIGVuY29udHJhZG8uYCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgZ2V0Q3VycmVudFRlbmFudExvY2FsZSgpXHJcbiAgICAgKiBNYW50aWRvIHBvciBjb21wYXRpYmlsaWRhZGUgcmV0cm9hdGl2YS5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldEN1cnJlblRlbmFudExvY2FsZSgpOiBzdHJpbmcgeyAvLyBsZWdhY3kgdHlwbyByZXRhaW5lZFxyXG4gICAgICAgIHJldHVybiBBZ3JvUGxhdGZvcm1VdGlscy5nZXRDdXJyZW50VGVuYW50TG9jYWxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRvcm5hIG8gdXN1w6FyaW8gbG9nYWRvXHJcbiAgICAgKiBDYXNvIGNvbnRyw6FyaW8sIHJldG9ybmEgdW1hIGluc3TDom5jaWEgZGUgRXJyb3JcclxuICAgICAqIEByZXR1cm5zIHN0cmluZyB8fCBudWxsXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRDdXJyZW50VXNlck5hbWUoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IEFncm9QbGF0Zm9ybVV0aWxzLmdldFRva2VuRmllbGQoJ2Z1bGxOYW1lJyk7XHJcbiAgICAgICAgcmV0dXJuIG5hbWUgfHwgbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldG9ybmEgbyBlLW1haWwgZG8gdXN1w6FyaW8gbG9nYWRvXHJcbiAgICAgKiBDYXNvIGNvbnRyw6FyaW8sIHJldG9ybmEgdW1hIGluc3TDom5jaWEgZGUgRXJyb3JcclxuICAgICAqIEByZXR1cm5zIHN0cmluZ1xyXG4gICAgICovXHJcbiAgICBzdGF0aWMgZ2V0Q3VycmVudFVzZXJFbWFpbCgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICBjb25zdCBlbWFpbCA9IEFncm9QbGF0Zm9ybVV0aWxzLmdldFRva2VuRmllbGQoJ2VtYWlsJyk7XHJcbiAgICAgICAgaWYgKCFlbWFpbCkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmluZm8oYENvb2tpZTogXCIke0NPT0tJRV9UT0tFTn1cIiBuw6NvIGVuY29udHJhZG8uYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBlbWFpbCB8fCBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0b3JuYSB1bWEgc3RyaW5nIGNvbSBhIGJhc2VVUkwgYXR1YWxcclxuICAgICAqIENhc28gY29udHLDoXJpbywgcmV0b3JuYSB1bWEgaW5zdMOibmNpYSBkZSBFcnJvclxyXG4gICAgICogQGV4YW1wbGUgXCJodHRwczovL2Nsb3VkLWxlYWYuc2VuaW9yLmNvbS5iclwiIHx8IFwiaHR0cHM6Ly9wbGF0Zm9ybS5zZW5pb3IuY29tLmJyXCJcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldEJhc2VVUkwoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBjb29raWUgPSBBZ3JvQ29va2llVXRpbHMuZ2V0Q29va2llKENPT0tJRV9CQVNFX1VSTCk7XHJcbiAgICAgICAgaWYgKGNvb2tpZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGNvb2tpZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ29va2llOiBcIiR7Q09PS0lFX0JBU0VfVVJMfVwiIG7Do28gZW5jb250cmFkby5gKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldG9ybmEgdW1hIHN0cmluZyBjb20gYSBVUkwgZG9zIHNlcnZpw6dvc1xyXG4gICAgICogQ2FzbyBjb250csOhcmlvLCByZXRvcm5hIHVtYSBpbnN0w6JuY2lhIGRlIEVycm9yXHJcbiAgICAgKiBAZXhhbXBsZSBcImh0dHBzOi8vY2xvdWQtbGVhZi5zZW5pb3IuY29tLmJyL3Qvc2VuaW9yLmNvbS5ici9icmlkZ2UvMS4wL1wiXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBnZXRTZXJ2aWNlc1VSTCgpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGNvb2tpZSA9IEFncm9Db29raWVVdGlscy5nZXRDb29raWUoQ09PS0lFX1NFUlZJQ0VTX1VSTCk7XHJcbiAgICAgICAgaWYgKFN0cmluZ1V0aWxzLmlzTm90RW1wdHkoY29va2llKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGNvb2tpZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ29va2llOiBcIiR7Q09PS0lFX1NFUlZJQ0VTX1VSTH1cIiBuw6NvIGVuY29udHJhZG8uYCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRvcm5hIHVtYSBzdHJpbmcgY29tIG8gdG9rZW4gZGUgYWNlc3NvIGF0dWFsXHJcbiAgICAgKiBDYXNvIGNvbnRyw6FyaW8sIHJldG9ybmEgdW1hIGluc3TDom5jaWEgZGUgRXJyb3JcclxuICAgICAqL1xyXG4gICAgc3RhdGljIGdldEN1cnJlbnRBY2Nlc3NUb2tlbigpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgICAgICBjb25zdCB0b2tlbiA9IEFncm9QbGF0Zm9ybVV0aWxzLmdldFRva2VuRmllbGQoJ2FjY2Vzc190b2tlbicpO1xyXG4gICAgICAgIGlmICghdG9rZW4pIHtcclxuICAgICAgICAgICAgY29uc29sZS5pbmZvKGBDb29raWU6IFwiJHtDT09LSUVfVE9LRU59XCIgbsOjbyBlbmNvbnRyYWRvLmApO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdG9rZW4gfHwgbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBwYXJhIGV4dHJhaXIgdW0gY2FtcG8gZG8gY29va2llIGRlIHRva2VuLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBnZXRUb2tlbkZpZWxkKGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGNvbnN0IGNvb2tpZSA9IEFncm9Db29raWVVdGlscy5nZXRDb29raWUoQ09PS0lFX1RPS0VOKTtcclxuICAgICAgICBpZiAoIWNvb2tpZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBvYmogPSBBZ3JvQ29va2llVXRpbHMucGFyc2VDb29raWVUb09iamVjdChjb29raWUsIHRydWUpO1xyXG4gICAgICAgIHJldHVybiBvYmpbZmllbGRdO1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=
|