@esfaenza/extensions 12.2.13 → 13.1.1
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/esfaenza-extensions.d.ts +1 -2
- package/esm2020/esfaenza-extensions.mjs +5 -0
- package/{esm2015/lib/models/CallResult.js → esm2020/lib/models/CallResult.mjs} +0 -0
- package/{esm2015/lib/models/CsvHeaders.js → esm2020/lib/models/CsvHeaders.mjs} +1 -1
- package/{esm2015/lib/models/ExportConsts.js → esm2020/lib/models/ExportConsts.mjs} +0 -0
- package/{esm2015/lib/models/ExtensionsModuleConfig.js → esm2020/lib/models/ExtensionsModuleConfig.mjs} +0 -0
- package/{esm2015/lib/models/GenericItem.js → esm2020/lib/models/GenericItem.mjs} +0 -0
- package/{esm2015/lib/models/TypeCode.js → esm2020/lib/models/TypeCode.mjs} +0 -0
- package/{esm2015/lib/models/providers/base/BaseStorageProvider.js → esm2020/lib/models/providers/base/BaseStorageProvider.mjs} +0 -0
- package/esm2020/lib/models/providers/implementation/DefaultStorageProvider.mjs +79 -0
- package/{esm2015/lib/models/session/base/BaseSessionRetriever.js → esm2020/lib/models/session/base/BaseSessionRetriever.mjs} +0 -0
- package/esm2020/lib/models/session/implementation/DefaultSessionRetriever.mjs +28 -0
- package/esm2020/lib/modules/extensions.full.module.mjs +58 -0
- package/esm2020/lib/modules/extensions.module.mjs +28 -0
- package/esm2020/lib/services/extensions.clipboard.service.mjs +165 -0
- package/esm2020/lib/services/extensions.dates.service.mjs +232 -0
- package/{esm2015/lib/services/extensions.exports.service.js → esm2020/lib/services/extensions.exports.service.mjs} +24 -17
- package/esm2020/lib/services/extensions.hashing.service.mjs +309 -0
- package/esm2020/lib/services/extensions.messages.service.mjs +323 -0
- package/esm2020/lib/services/extensions.storage.service.mjs +103 -0
- package/esm2020/lib/services/extensions.utilities.service.mjs +188 -0
- package/{esm2015/lib/tokens.js → esm2020/lib/tokens.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/{esfaenza-extensions.js → esfaenza-extensions.mjs} +120 -75
- package/fesm2015/esfaenza-extensions.mjs.map +1 -0
- package/fesm2020/esfaenza-extensions.mjs +2055 -0
- package/fesm2020/esfaenza-extensions.mjs.map +1 -0
- package/lib/models/CsvHeaders.d.ts +4 -0
- package/lib/models/providers/implementation/DefaultStorageProvider.d.ts +3 -0
- package/lib/models/session/implementation/DefaultSessionRetriever.d.ts +3 -0
- package/lib/modules/extensions.full.module.d.ts +4 -0
- package/lib/modules/extensions.module.d.ts +4 -0
- package/lib/services/extensions.clipboard.service.d.ts +3 -0
- package/lib/services/extensions.dates.service.d.ts +3 -0
- package/lib/services/extensions.exports.service.d.ts +3 -0
- package/lib/services/extensions.hashing.service.d.ts +3 -0
- package/lib/services/extensions.messages.service.d.ts +3 -0
- package/lib/services/extensions.storage.service.d.ts +3 -0
- package/lib/services/extensions.utilities.service.d.ts +3 -0
- package/package.json +22 -10
- package/bundles/esfaenza-extensions.umd.js +0 -2435
- package/bundles/esfaenza-extensions.umd.js.map +0 -1
- package/esfaenza-extensions.metadata.json +0 -1
- package/esm2015/esfaenza-extensions.js +0 -7
- package/esm2015/lib/models/providers/implementation/DefaultStorageProvider.js +0 -79
- package/esm2015/lib/models/session/implementation/DefaultSessionRetriever.js +0 -26
- package/esm2015/lib/modules/extensions.full.module.js +0 -54
- package/esm2015/lib/modules/extensions.module.js +0 -24
- package/esm2015/lib/services/extensions.clipboard.service.js +0 -165
- package/esm2015/lib/services/extensions.dates.service.js +0 -224
- package/esm2015/lib/services/extensions.hashing.service.js +0 -306
- package/esm2015/lib/services/extensions.messages.service.js +0 -317
- package/esm2015/lib/services/extensions.storage.service.js +0 -100
- package/esm2015/lib/services/extensions.utilities.service.js +0 -185
- package/fesm2015/esfaenza-extensions.js.map +0 -1
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Injectable } from "@angular/core";
|
|
3
|
+
// Modelli
|
|
4
|
+
import { TypeCode } from '../models/TypeCode';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* Service che fornisce metodi di pubblica utilità
|
|
8
|
+
*/
|
|
9
|
+
export class UtilityService {
|
|
10
|
+
/**
|
|
11
|
+
* Deseleziona il testo eventualmente selezionato
|
|
12
|
+
*/
|
|
13
|
+
clearTextSelection() {
|
|
14
|
+
if (window.getSelection) {
|
|
15
|
+
if (window.getSelection().empty) // Chrome
|
|
16
|
+
window.getSelection().empty();
|
|
17
|
+
else if (window.getSelection().removeAllRanges) // Firefox
|
|
18
|
+
window.getSelection().removeAllRanges();
|
|
19
|
+
}
|
|
20
|
+
else if (document.selection) // IE?
|
|
21
|
+
document.selection.empty();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Partendo da una lista, dato il nome della proprietà chiave e il valore della chiave selezionata,
|
|
25
|
+
* trova e restituisce l'oggetto desiderato
|
|
26
|
+
*
|
|
27
|
+
* @param {T[]} sourceList Lista di oggetti dentro cui cercare
|
|
28
|
+
* @param {string} sourceItemIdField Nome della proprietà che rappresenta la chiave di un oggetto di tipo T
|
|
29
|
+
* @param {string} selectedValue Valore di chiave selezionato
|
|
30
|
+
*
|
|
31
|
+
* @returns {T} Oggetto la cui proprietà **sourceItemIdField** assume il valore **selectedValue**
|
|
32
|
+
*/
|
|
33
|
+
getSelectedItem(sourceList, sourceItemIdField, selectedValue) {
|
|
34
|
+
for (let i = 0; i < sourceList.length; i++) {
|
|
35
|
+
var item = sourceList[i];
|
|
36
|
+
if (item[sourceItemIdField] == selectedValue)
|
|
37
|
+
return item;
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Effettua il reset di un Form di Angular
|
|
43
|
+
*
|
|
44
|
+
* @param {NgForm} form Form da resettare
|
|
45
|
+
* @param {string} exception1 Campo da non resettare
|
|
46
|
+
* @param {string} exception2 Campo da non resettare
|
|
47
|
+
*/
|
|
48
|
+
cleanForm(form, exception1 = null, exception2 = null) {
|
|
49
|
+
for (let name in form.controls) {
|
|
50
|
+
if (name && name != exception1 && name != exception1 + "_internal" && name != exception2 && name != exception2 + "_internal") {
|
|
51
|
+
form.controls[name].reset();
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
form.controls[name].markAsPristine();
|
|
55
|
+
form.controls[name].markAsUntouched();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//Reimposto il submitted
|
|
59
|
+
form.submitted = false;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Helper che permette di scaricare un file dato un URL (Generato da una chiamata ad **window.URL.createObjectURL**)
|
|
63
|
+
*
|
|
64
|
+
* @param {string} url ObjectURL che rappresenta il file da scaricare
|
|
65
|
+
* @param {string} filename Nome del file suggerito in fase di salvataggio
|
|
66
|
+
*/
|
|
67
|
+
fileDownload(url, fileName) {
|
|
68
|
+
var a = document.createElement("a");
|
|
69
|
+
document.body.appendChild(a);
|
|
70
|
+
a.className = "ta-display-none";
|
|
71
|
+
a.href = url;
|
|
72
|
+
a.download = fileName;
|
|
73
|
+
a.click();
|
|
74
|
+
window.URL.revokeObjectURL(url);
|
|
75
|
+
document.body.removeChild(a);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Helper per la formattazione di un numero di millisecondi in una stringa più comprensibile per un umano
|
|
79
|
+
*
|
|
80
|
+
* @param {number} duration Tempo espresso in millisecondi
|
|
81
|
+
*
|
|
82
|
+
* @returns {string} Durata formattata
|
|
83
|
+
*/
|
|
84
|
+
msToTime(duration) {
|
|
85
|
+
if (!duration)
|
|
86
|
+
return "";
|
|
87
|
+
var milliseconds = parseInt(((duration % 1000) / 100).toString()), seconds = parseInt(((duration / 1000) % 60).toString()), minutes = parseInt(((duration / (1000 * 60)) % 60).toString()), hours = parseInt(((duration / (1000 * 60 * 60)) % 24).toString());
|
|
88
|
+
var st_hours = (hours < 10) ? "0" + hours : hours;
|
|
89
|
+
var st_minutes = (minutes < 10) ? "0" + minutes : minutes;
|
|
90
|
+
var st_seconds = (seconds < 10) ? "0" + seconds : seconds;
|
|
91
|
+
return st_hours + ":" + st_minutes + ":" + st_seconds + "." + milliseconds;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Helper che permette di scaricare un file in Base64
|
|
95
|
+
*
|
|
96
|
+
* @param {string} base64Data Base64 che rappresenta il file da scaricare
|
|
97
|
+
* @param {string} filename Nome del file suggerito in fase di salvataggio
|
|
98
|
+
*/
|
|
99
|
+
saveFile(base64Data, filename) {
|
|
100
|
+
var sampleArr = this.base64ToArrayBuffer(base64Data);
|
|
101
|
+
this.saveByteArray(sampleArr, filename);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Trasforma un Base64 in un ArrayBuffer
|
|
105
|
+
*
|
|
106
|
+
* @param {string} base64Data Base64 da trasformare
|
|
107
|
+
*
|
|
108
|
+
* @returns {Uint8Array} Array UTF8
|
|
109
|
+
*/
|
|
110
|
+
base64ToArrayBuffer(base64Data) {
|
|
111
|
+
var binaryString = window.atob(base64Data);
|
|
112
|
+
var binaryLen = binaryString.length;
|
|
113
|
+
var bytes = new Uint8Array(binaryLen);
|
|
114
|
+
for (var i = 0; i < binaryLen; i++) {
|
|
115
|
+
var ascii = binaryString.charCodeAt(i);
|
|
116
|
+
bytes[i] = ascii;
|
|
117
|
+
}
|
|
118
|
+
return bytes;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Helper che permette di scaricare un file dato un array di Byte (**Uint8Array**)
|
|
122
|
+
*
|
|
123
|
+
* @param {Uint8Array} byte Rappresentazione del file da scaricare
|
|
124
|
+
* @param {string} filename Nome del file suggerito in fase di salvataggio
|
|
125
|
+
*/
|
|
126
|
+
saveByteArray(byte, filename) {
|
|
127
|
+
var blob = new Blob([byte]);
|
|
128
|
+
var link = document.createElement("a");
|
|
129
|
+
document.body.appendChild(link);
|
|
130
|
+
link.href = window.URL.createObjectURL(blob);
|
|
131
|
+
var fileName = filename;
|
|
132
|
+
link.download = fileName;
|
|
133
|
+
link.click();
|
|
134
|
+
document.body.removeChild(link);
|
|
135
|
+
}
|
|
136
|
+
;
|
|
137
|
+
/**
|
|
138
|
+
* Utility per lo swap di due elementi di un array
|
|
139
|
+
*
|
|
140
|
+
* @param {any[]} array Array di cui invertire due elementi
|
|
141
|
+
* @param {number} x Indice del primo elemento
|
|
142
|
+
* @param {number} y Indice del secondo elemento
|
|
143
|
+
*/
|
|
144
|
+
swap(array, x, y) {
|
|
145
|
+
var b = array[x];
|
|
146
|
+
array[x] = array[y];
|
|
147
|
+
array[y] = b;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Helper di trascodifica da tipo c# a tipo Typescript
|
|
151
|
+
*
|
|
152
|
+
* @param {TypeCode} type Tipo da trascodificare
|
|
153
|
+
*
|
|
154
|
+
* @returns {"boolean" | "number" | "string" | "date"} Tipo Typescript corrispondente
|
|
155
|
+
*/
|
|
156
|
+
getJsTypeFromTypeCode(type) {
|
|
157
|
+
switch (type) {
|
|
158
|
+
case TypeCode.Boolean:
|
|
159
|
+
return "boolean";
|
|
160
|
+
case TypeCode.Decimal:
|
|
161
|
+
case TypeCode.Double:
|
|
162
|
+
case TypeCode.Single:
|
|
163
|
+
case TypeCode.Int16:
|
|
164
|
+
case TypeCode.Int32:
|
|
165
|
+
case TypeCode.Int64:
|
|
166
|
+
case TypeCode.Byte:
|
|
167
|
+
case TypeCode.SByte:
|
|
168
|
+
case TypeCode.UInt16:
|
|
169
|
+
case TypeCode.UInt32:
|
|
170
|
+
case TypeCode.UInt64:
|
|
171
|
+
return "number";
|
|
172
|
+
case TypeCode.Char:
|
|
173
|
+
case TypeCode.String:
|
|
174
|
+
return "string";
|
|
175
|
+
case TypeCode.DateTime:
|
|
176
|
+
return "date";
|
|
177
|
+
default:
|
|
178
|
+
console.log("Unrecognized input type. Typecode:" + type);
|
|
179
|
+
return "string";
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
UtilityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: UtilityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
184
|
+
UtilityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: UtilityService });
|
|
185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: UtilityService, decorators: [{
|
|
186
|
+
type: Injectable
|
|
187
|
+
}] });
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy51dGlsaXRpZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2xpYi9zZXJ2aWNlcy9leHRlbnNpb25zLnV0aWxpdGllcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLFVBQVU7QUFDVixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRTlDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGNBQWM7SUFFdkI7O09BRUc7SUFDSSxrQkFBa0I7UUFDckIsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBSSxTQUFTO2dCQUN4QyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQzdCLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRyxVQUFVO2dCQUN2RCxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUM7U0FFL0M7YUFBTSxJQUFVLFFBQVMsQ0FBQyxTQUFTLEVBQUcsTUFBTTtZQUNuQyxRQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxlQUFlLENBQUksVUFBZSxFQUFFLGlCQUF5QixFQUFFLGFBQXFCO1FBQ3ZGLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hDLElBQUksSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLGFB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UUFBUSxDQUFDO1lBQ3BCLEtBQUssUUFBUSxDQUFDLFFBQVE7Z0JBQ2xCLE9BQU8sTUFBTSxDQUFDO1lBQ2xCO2dCQUNJLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLEdBQUcsSUFBSSxDQUFDLENBQUM7Z0JBQ3pELE9BQU8sUUFBUSxDQUFDO1NBQ3ZCO0lBQ0wsQ0FBQzs7MkdBN0xRLGNBQWM7K0dBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vLyBNb2RlbGxpXHJcbmltcG9ydCB7IFR5cGVDb2RlIH0gZnJvbSAnLi4vbW9kZWxzL1R5cGVDb2RlJztcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIGNoZSBmb3JuaXNjZSBtZXRvZGkgZGkgcHViYmxpY2EgdXRpbGl0w6BcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFV0aWxpdHlTZXJ2aWNlIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlc2VsZXppb25hIGlsIHRlc3RvIGV2ZW50dWFsbWVudGUgc2VsZXppb25hdG9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNsZWFyVGV4dFNlbGVjdGlvbigpIHtcclxuICAgICAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbikge1xyXG4gICAgICAgICAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbigpLmVtcHR5KSAgIC8vIENocm9tZVxyXG4gICAgICAgICAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLmVtcHR5KCk7XHJcbiAgICAgICAgICAgIGVsc2UgaWYgKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMpICAvLyBGaXJlZm94XHJcbiAgICAgICAgICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7XHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAoKDxhbnk+ZG9jdW1lbnQpLnNlbGVjdGlvbikgIC8vIElFP1xyXG4gICAgICAgICAgICAoPGFueT5kb2N1bWVudCkuc2VsZWN0aW9uLmVtcHR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXJ0ZW5kbyBkYSB1bmEgbGlzdGEsIGRhdG8gaWwgbm9tZSBkZWxsYSBwcm9wcmlldMOgIGNoaWF2ZSBlIGlsIHZhbG9yZSBkZWxsYSBjaGlhdmUgc2VsZXppb25hdGEsIFxyXG4gICAgICogdHJvdmEgZSByZXN0aXR1aXNjZSBsJ29nZ2V0dG8gZGVzaWRlcmF0b1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge1RbXX0gc291cmNlTGlzdCBMaXN0YSBkaSBvZ2dldHRpIGRlbnRybyBjdWkgY2VyY2FyZVxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNvdXJjZUl0ZW1JZEZpZWxkIE5vbWUgZGVsbGEgcHJvcHJpZXTDoCBjaGUgcmFwcHJlc2VudGEgbGEgY2hpYXZlIGRpIHVuIG9nZ2V0dG8gZGkgdGlwbyBUXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0ZWRWYWx1ZSBWYWxvcmUgZGkgY2hpYXZlIHNlbGV6aW9uYXRvXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtUfSBPZ2dldHRvIGxhIGN1aSBwcm9wcmlldMOgICoqc291cmNlSXRlbUlkRmllbGQqKiBhc3N1bWUgaWwgdmFsb3JlICoqc2VsZWN0ZWRWYWx1ZSoqXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTZWxlY3RlZEl0ZW08VD4oc291cmNlTGlzdDogVFtdLCBzb3VyY2VJdGVtSWRGaWVsZDogc3RyaW5nLCBzZWxlY3RlZFZhbHVlOiBzdHJpbmcpOiBUIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNvdXJjZUxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgdmFyIGl0ZW0gPSBzb3VyY2VMaXN0W2ldO1xyXG4gICAgICAgICAgICBpZiAoaXRlbVtzb3VyY2VJdGVtSWRGaWVsZF0gPT0gc2VsZWN0ZWRWYWx1ZSlcclxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVmZmV0dHVhIGlsIHJlc2V0IGRpIHVuIEZvcm0gZGkgQW5ndWxhclxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge05nRm9ybX0gZm9ybSBGb3JtIGRhIHJlc2V0dGFyZVxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGV4Y2VwdGlvbjEgQ2FtcG8gZGEgbm9uIHJlc2V0dGFyZVxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGV4Y2VwdGlvbjIgQ2FtcG8gZGEgbm9uIHJlc2V0dGFyZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2xlYW5Gb3JtKGZvcm06IE5nRm9ybSwgZXhjZXB0aW9uMTogc3RyaW5nID0gbnVsbCwgZXhjZXB0aW9uMjogc3RyaW5nID0gbnVsbCkge1xyXG4gICAgICAgIGZvciAobGV0IG5hbWUgaW4gZm9ybS5jb250cm9scykge1xyXG4gICAgICAgICAgICBpZiAobmFtZSAmJiBuYW1lICE9IGV4Y2VwdGlvbjEgJiYgbmFtZSAhPSBleGNlcHRpb24xICsgXCJfaW50ZXJuYWxcIiAmJiBuYW1lICE9IGV4Y2VwdGlvbjIgJiYgbmFtZSAhPSBleGNlcHRpb24yICsgXCJfaW50ZXJuYWxcIikge1xyXG4gICAgICAgICAgICAgICAgZm9ybS5jb250cm9sc1tuYW1lXS5yZXNldCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZm9ybS5jb250cm9sc1tuYW1lXS5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgICAgICAgICAgICAgZm9ybS5jb250cm9sc1tuYW1lXS5tYXJrQXNVbnRvdWNoZWQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9SZWltcG9zdG8gaWwgc3VibWl0dGVkXHJcbiAgICAgICAgKGZvcm0gYXMgeyBzdWJtaXR0ZWQ6IGJvb2xlYW4gfSkuc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIZWxwZXIgY2hlIHBlcm1ldHRlIGRpIHNjYXJpY2FyZSB1biBmaWxlIGRhdG8gdW4gVVJMIChHZW5lcmF0byBkYSB1bmEgY2hpYW1hdGEgYWQgKip3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTCoqKVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIE9iamVjdFVSTCBjaGUgcmFwcHJlc2VudGEgaWwgZmlsZSBkYSBzY2FyaWNhcmVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlbmFtZSBOb21lIGRlbCBmaWxlIHN1Z2dlcml0byBpbiBmYXNlIGRpIHNhbHZhdGFnZ2lvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBmaWxlRG93bmxvYWQodXJsOiBzdHJpbmcsIGZpbGVOYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XHJcbiAgICAgICAgYS5jbGFzc05hbWUgPSBcInRhLWRpc3BsYXktbm9uZVwiO1xyXG4gICAgICAgIGEuaHJlZiA9IHVybDtcclxuICAgICAgICBhLmRvd25sb2FkID0gZmlsZU5hbWU7XHJcbiAgICAgICAgYS5jbGljaygpO1xyXG4gICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBwZXIgbGEgZm9ybWF0dGF6aW9uZSBkaSB1biBudW1lcm8gZGkgbWlsbGlzZWNvbmRpIGluIHVuYSBzdHJpbmdhIHBpw7kgY29tcHJlbnNpYmlsZSBwZXIgdW4gdW1hbm9cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IGR1cmF0aW9uIFRlbXBvIGVzcHJlc3NvIGluIG1pbGxpc2Vjb25kaVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBEdXJhdGEgZm9ybWF0dGF0YVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbXNUb1RpbWUoZHVyYXRpb246IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCFkdXJhdGlvbilcclxuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcblxyXG4gICAgICAgIHZhciBtaWxsaXNlY29uZHMgPSBwYXJzZUludCgoKGR1cmF0aW9uICUgMTAwMCkgLyAxMDApLnRvU3RyaW5nKCkpLFxyXG4gICAgICAgICAgICBzZWNvbmRzID0gcGFyc2VJbnQoKChkdXJhdGlvbiAvIDEwMDApICUgNjApLnRvU3RyaW5nKCkpLFxyXG4gICAgICAgICAgICBtaW51dGVzID0gcGFyc2VJbnQoKChkdXJhdGlvbiAvICgxMDAwICogNjApKSAlIDYwKS50b1N0cmluZygpKSxcclxuICAgICAgICAgICAgaG91cnMgPSBwYXJzZUludCgoKGR1cmF0aW9uIC8gKDEwMDAgKiA2MCAqIDYwKSkgJSAyNCkudG9TdHJpbmcoKSk7XHJcblxyXG4gICAgICAgIHZhciBzdF9ob3VycyA9IChob3VycyA8IDEwKSA/IFwiMFwiICsgaG91cnMgOiBob3VycztcclxuICAgICAgICB2YXIgc3RfbWludXRlcyA9IChtaW51dGVzIDwgMTApID8gXCIwXCIgKyBtaW51dGVzIDogbWludXRlcztcclxuICAgICAgICB2YXIgc3Rfc2Vjb25kcyA9IChzZWNvbmRzIDwgMTApID8gXCIwXCIgKyBzZWNvbmRzIDogc2Vjb25kcztcclxuXHJcbiAgICAgICAgcmV0dXJuIHN0X2hvdXJzICsgXCI6XCIgKyBzdF9taW51dGVzICsgXCI6XCIgKyBzdF9zZWNvbmRzICsgXCIuXCIgKyBtaWxsaXNlY29uZHM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIZWxwZXIgY2hlIHBlcm1ldHRlIGRpIHNjYXJpY2FyZSB1biBmaWxlIGluIEJhc2U2NFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gYmFzZTY0RGF0YSBCYXNlNjQgY2hlIHJhcHByZXNlbnRhIGlsIGZpbGUgZGEgc2NhcmljYXJlXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsZW5hbWUgTm9tZSBkZWwgZmlsZSBzdWdnZXJpdG8gaW4gZmFzZSBkaSBzYWx2YXRhZ2dpb1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2F2ZUZpbGUoYmFzZTY0RGF0YTogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdmFyIHNhbXBsZUFyciA9IHRoaXMuYmFzZTY0VG9BcnJheUJ1ZmZlcihiYXNlNjREYXRhKTtcclxuICAgICAgICB0aGlzLnNhdmVCeXRlQXJyYXkoc2FtcGxlQXJyLCBmaWxlbmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmFzZm9ybWEgdW4gQmFzZTY0IGluIHVuIEFycmF5QnVmZmVyXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBiYXNlNjREYXRhIEJhc2U2NCBkYSB0cmFzZm9ybWFyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7VWludDhBcnJheX0gQXJyYXkgVVRGOFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGJhc2U2NFRvQXJyYXlCdWZmZXIoYmFzZTY0RGF0YTogc3RyaW5nKTogVWludDhBcnJheSB7XHJcbiAgICAgICAgdmFyIGJpbmFyeVN0cmluZyA9IHdpbmRvdy5hdG9iKGJhc2U2NERhdGEpO1xyXG4gICAgICAgIHZhciBiaW5hcnlMZW4gPSBiaW5hcnlTdHJpbmcubGVuZ3RoO1xyXG4gICAgICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGJpbmFyeUxlbik7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBiaW5hcnlMZW47IGkrKykge1xyXG4gICAgICAgICAgICB2YXIgYXNjaWkgPSBiaW5hcnlTdHJpbmcuY2hhckNvZGVBdChpKTtcclxuICAgICAgICAgICAgYnl0ZXNbaV0gPSBhc2NpaTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGJ5dGVzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVscGVyIGNoZSBwZXJtZXR0ZSBkaSBzY2FyaWNhcmUgdW4gZmlsZSBkYXRvIHVuIGFycmF5IGRpIEJ5dGUgKCoqVWludDhBcnJheSoqKVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGJ5dGUgUmFwcHJlc2VudGF6aW9uZSBkZWwgZmlsZSBkYSBzY2FyaWNhcmVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmaWxlbmFtZSBOb21lIGRlbCBmaWxlIHN1Z2dlcml0byBpbiBmYXNlIGRpIHNhbHZhdGFnZ2lvXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc2F2ZUJ5dGVBcnJheShieXRlOiBVaW50OEFycmF5LCBmaWxlbmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbYnl0ZV0pO1xyXG4gICAgICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcclxuICAgICAgICBsaW5rLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICB2YXIgZmlsZU5hbWUgPSBmaWxlbmFtZTtcclxuICAgICAgICBsaW5rLmRvd25sb2FkID0gZmlsZU5hbWU7XHJcbiAgICAgICAgbGluay5jbGljaygpO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XHJcbiAgICB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXRpbGl0eSBwZXIgbG8gc3dhcCBkaSBkdWUgZWxlbWVudGkgZGkgdW4gYXJyYXlcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHthbnlbXX0gYXJyYXkgQXJyYXkgZGkgY3VpIGludmVydGlyZSBkdWUgZWxlbWVudGlcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB4IEluZGljZSBkZWwgcHJpbW8gZWxlbWVudG9cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5IEluZGljZSBkZWwgc2Vjb25kbyBlbGVtZW50b1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3dhcChhcnJheTogYW55W10sIHg6IG51bWJlciwgeTogbnVtYmVyKSB7XHJcbiAgICAgICAgdmFyIGIgPSBhcnJheVt4XTtcclxuICAgICAgICBhcnJheVt4XSA9IGFycmF5W3ldO1xyXG4gICAgICAgIGFycmF5W3ldID0gYjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBkaSB0cmFzY29kaWZpY2EgZGEgdGlwbyBjIyBhIHRpcG8gVHlwZXNjcmlwdFxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge1R5cGVDb2RlfSB0eXBlIFRpcG8gZGEgdHJhc2NvZGlmaWNhcmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge1wiYm9vbGVhblwiIHwgXCJudW1iZXJcIiB8IFwic3RyaW5nXCIgfCBcImRhdGVcIn0gVGlwbyBUeXBlc2NyaXB0IGNvcnJpc3BvbmRlbnRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRKc1R5cGVGcm9tVHlwZUNvZGUodHlwZTogVHlwZUNvZGUpOiBcImJvb2xlYW5cIiB8IFwibnVtYmVyXCIgfCBcInN0cmluZ1wiIHwgXCJkYXRlXCIgIHtcclxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgY2FzZSBUeXBlQ29kZS5Cb29sZWFuOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYm9vbGVhblwiO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBUeXBlQ29kZS5EZWNpbWFsOlxyXG4gICAgICAgICAgICBjYXNlIFR5cGVDb2RlLkRvdWJsZTpcclxuICAgICAgICAgICAgY2FzZSBUeXBlQ29kZS5TaW5nbGU6XHJcbiAgICAgICAgICAgIGNhc2UgVHlwZUNvZGUuSW50MTY6XHJcbiAgICAgICAgICAgIGNhc2UgVHlwZUNvZGUuSW50MzI6XHJcbiAgICAgICAgICAgIGNhc2UgVHlwZUNvZGUuSW50NjQ6XHJcbiAgICAgICAgICAgIGNhc2UgVHlwZUNvZGUuQnl0ZTpcclxuICAgICAgICAgICAgY2FzZSBUeXBlQ29kZS5TQnl0ZTpcclxuICAgICAgICAgICAgY2FzZSBUeXBlQ29kZS5VSW50MTY6XHJcbiAgICAgICAgICAgIGNhc2UgVHlwZUNvZGUuVUludDMyOlxyXG4gICAgICAgICAgICBjYXNlIFR5cGVDb2RlLlVJbnQ2NDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBcIm51bWJlclwiO1xyXG4gICAgICAgICAgICBjYXNlIFR5cGVDb2RlLkNoYXI6XHJcbiAgICAgICAgICAgIGNhc2UgVHlwZUNvZGUuU3RyaW5nOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwic3RyaW5nXCI7XHJcbiAgICAgICAgICAgIGNhc2UgVHlwZUNvZGUuRGF0ZVRpbWU6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJkYXRlXCI7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIlVucmVjb2duaXplZCBpbnB1dCB0eXBlLiBUeXBlY29kZTpcIiArIHR5cGUpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFwic3RyaW5nXCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
|
|
File without changes
|
|
File without changes
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
1
2
|
import { InjectionToken, NgModule, Injectable, Optional, Inject } from '@angular/core';
|
|
2
|
-
import { ToastrService } from 'ngx-toastr';
|
|
3
3
|
import swal from 'sweetalert2';
|
|
4
|
+
import * as i1 from 'ngx-toastr';
|
|
4
5
|
import { Deserialize } from 'cerialize';
|
|
5
6
|
import { first, tap } from 'rxjs/operators';
|
|
6
7
|
import { of } from 'rxjs';
|
|
@@ -39,9 +40,12 @@ class ExtensionsModule {
|
|
|
39
40
|
};
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
|
-
ExtensionsModule
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
ExtensionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
44
|
+
ExtensionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ExtensionsModule });
|
|
45
|
+
ExtensionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ExtensionsModule });
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ExtensionsModule, decorators: [{
|
|
47
|
+
type: NgModule
|
|
48
|
+
}] });
|
|
45
49
|
|
|
46
50
|
// Angular
|
|
47
51
|
/**
|
|
@@ -345,14 +349,23 @@ class MessageService {
|
|
|
345
349
|
}
|
|
346
350
|
}
|
|
347
351
|
}
|
|
348
|
-
MessageService
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
352
|
+
MessageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MessageService, deps: [{ token: i1.ToastrService }, { token: EXT_FANCY_ALERTS, optional: true }, { token: EXT_LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
353
|
+
MessageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MessageService });
|
|
354
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: MessageService, decorators: [{
|
|
355
|
+
type: Injectable
|
|
356
|
+
}], ctorParameters: function () {
|
|
357
|
+
return [{ type: i1.ToastrService }, { type: undefined, decorators: [{
|
|
358
|
+
type: Optional
|
|
359
|
+
}, {
|
|
360
|
+
type: Inject,
|
|
361
|
+
args: [EXT_FANCY_ALERTS]
|
|
362
|
+
}] }, { type: undefined, decorators: [{
|
|
363
|
+
type: Optional
|
|
364
|
+
}, {
|
|
365
|
+
type: Inject,
|
|
366
|
+
args: [EXT_LOCALE]
|
|
367
|
+
}] }];
|
|
368
|
+
} });
|
|
356
369
|
|
|
357
370
|
// Angular
|
|
358
371
|
/**
|
|
@@ -507,13 +520,18 @@ class ClipboardService {
|
|
|
507
520
|
document.body.removeChild(textArea);
|
|
508
521
|
}
|
|
509
522
|
}
|
|
510
|
-
ClipboardService
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
523
|
+
ClipboardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ClipboardService, deps: [{ token: MessageService }, { token: EXT_LOCALE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
524
|
+
ClipboardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ClipboardService });
|
|
525
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ClipboardService, decorators: [{
|
|
526
|
+
type: Injectable
|
|
527
|
+
}], ctorParameters: function () {
|
|
528
|
+
return [{ type: MessageService }, { type: undefined, decorators: [{
|
|
529
|
+
type: Optional
|
|
530
|
+
}, {
|
|
531
|
+
type: Inject,
|
|
532
|
+
args: [EXT_LOCALE]
|
|
533
|
+
}] }];
|
|
534
|
+
} });
|
|
517
535
|
|
|
518
536
|
// Angular
|
|
519
537
|
/**
|
|
@@ -728,13 +746,23 @@ class DateService {
|
|
|
728
746
|
return date.format(small ? this.cfg.smallDate : seconds ? this.cfg.fulldateDisplay : this.cfg.fulldateDisplayNoSS);
|
|
729
747
|
}
|
|
730
748
|
}
|
|
731
|
-
DateService
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
749
|
+
DateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DateService, deps: [{ token: EXT_LOCALE, optional: true }, { token: EXT_ALLOW_UTC, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
750
|
+
DateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DateService });
|
|
751
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DateService, decorators: [{
|
|
752
|
+
type: Injectable
|
|
753
|
+
}], ctorParameters: function () {
|
|
754
|
+
return [{ type: undefined, decorators: [{
|
|
755
|
+
type: Optional
|
|
756
|
+
}, {
|
|
757
|
+
type: Inject,
|
|
758
|
+
args: [EXT_LOCALE]
|
|
759
|
+
}] }, { type: undefined, decorators: [{
|
|
760
|
+
type: Optional
|
|
761
|
+
}, {
|
|
762
|
+
type: Inject,
|
|
763
|
+
args: [EXT_ALLOW_UTC]
|
|
764
|
+
}] }];
|
|
765
|
+
} });
|
|
738
766
|
|
|
739
767
|
/**
|
|
740
768
|
* Suffisso della proprietà da generare in cui salvare il navigatore
|
|
@@ -982,7 +1010,7 @@ class ExportService {
|
|
|
982
1010
|
columns.forEach(t => {
|
|
983
1011
|
var propValue = obj.properties[t.key];
|
|
984
1012
|
Object.defineProperty(obj, t.key + "_exp", { value: propValue, writable: false, enumerable: true });
|
|
985
|
-
headers.push({ label: t.label, key: t.key + "_exp", order: t.order });
|
|
1013
|
+
headers.push({ label: t.label, key: t.key + "_exp", order: t.order, type: t.type });
|
|
986
1014
|
});
|
|
987
1015
|
//Tirati fuori tutti gli header faccio sort sull'ordinamento
|
|
988
1016
|
return headers.sort((a, b) => { return a.order - b.order; });
|
|
@@ -1035,7 +1063,7 @@ class ExportService {
|
|
|
1035
1063
|
// Se è un formato data mi assicuro di non stampare mai una data 00:00:00 altrimenti in esportazione viene uno schifo
|
|
1036
1064
|
var val = obj[prop] ? this.dates.trimSeconds(obj[prop].toString()) : "";
|
|
1037
1065
|
Object.defineProperty(obj, prop + "_nofmt", { value: val, writable: false, enumerable: true });
|
|
1038
|
-
headers.push({ label: lbl ? lbl : prop + "_nofmt", key: prop + "_nofmt", order: order });
|
|
1066
|
+
headers.push({ label: lbl ? lbl : prop + "_nofmt", key: prop + "_nofmt", order: order, type: "string" });
|
|
1039
1067
|
}
|
|
1040
1068
|
else {
|
|
1041
1069
|
// Caso formato numerico
|
|
@@ -1047,7 +1075,7 @@ class ExportService {
|
|
|
1047
1075
|
// Il singolo punto che c'è, se presente (separatore decimali) lo trasformo in virgola
|
|
1048
1076
|
let valConverted = val.replace(".", ",");
|
|
1049
1077
|
Object.defineProperty(obj, prop + "_fmt", { value: valConverted, writable: false, enumerable: true });
|
|
1050
|
-
headers.push({ label: lbl ? lbl : prop + "_fmt", key: prop + "_fmt", order: order });
|
|
1078
|
+
headers.push({ label: lbl ? lbl : prop + "_fmt", key: prop + "_fmt", order: order, type: "number" });
|
|
1051
1079
|
}
|
|
1052
1080
|
else {
|
|
1053
1081
|
// Se ho un formato data trasformo in dayjs, formatto ed esporto
|
|
@@ -1055,7 +1083,7 @@ class ExportService {
|
|
|
1055
1083
|
// Se non funziona provo a definirgli la formattazione standard del metering per quel linguaggio
|
|
1056
1084
|
let val = this.dates.getFormatted(obj[prop], format.length <= 10, false);
|
|
1057
1085
|
Object.defineProperty(obj, prop + "_fmt", { value: val !== null && val !== void 0 ? val : "", writable: false, enumerable: true });
|
|
1058
|
-
headers.push({ label: lbl ? lbl : prop + "_fmt", key: prop + "_fmt", order: order });
|
|
1086
|
+
headers.push({ label: lbl ? lbl : prop + "_fmt", key: prop + "_fmt", order: order, type: "date" });
|
|
1059
1087
|
}
|
|
1060
1088
|
}
|
|
1061
1089
|
}
|
|
@@ -1088,16 +1116,19 @@ class ExportService {
|
|
|
1088
1116
|
let order = obj[prop + csvOrdPrefix];
|
|
1089
1117
|
//Se per questa proprietà ho un formato lo applico
|
|
1090
1118
|
let format = obj[prop + csvFormatPrefix];
|
|
1119
|
+
let type = "string";
|
|
1091
1120
|
if (format == "F") {
|
|
1092
1121
|
let val = value.toString();
|
|
1093
1122
|
val = val.replace(/,/, "");
|
|
1094
1123
|
value = val.replace(".", ",");
|
|
1124
|
+
type = "number";
|
|
1095
1125
|
}
|
|
1096
1126
|
else if (format) {
|
|
1097
1127
|
value = this.dates.getFormatted(value, format.length <= 10, false);
|
|
1128
|
+
type = "date";
|
|
1098
1129
|
}
|
|
1099
1130
|
Object.defineProperty(obj, prop, { value: value, writable: false, enumerable: true });
|
|
1100
|
-
headers.push({ label: lbl ? lbl : prop, key: prop, order: order });
|
|
1131
|
+
headers.push({ label: lbl ? lbl : prop, key: prop, order: order, type: type });
|
|
1101
1132
|
}
|
|
1102
1133
|
/**
|
|
1103
1134
|
* Setup per l'esportazione di una lista di valori pivottati dinamicamente:
|
|
@@ -1139,15 +1170,19 @@ class ExportService {
|
|
|
1139
1170
|
tmpRes = JSON.parse(JSON.stringify(listitem));
|
|
1140
1171
|
jumps.forEach(pp => { tmpRes = tmpRes[pp]; });
|
|
1141
1172
|
let value = tmpRes;
|
|
1173
|
+
let type = "string";
|
|
1142
1174
|
if (valueformat == "F") {
|
|
1143
1175
|
let val = value != null ? value.toString() : "";
|
|
1144
1176
|
val = val.replace(/,/, "");
|
|
1145
1177
|
value = val.replace(".", ",");
|
|
1178
|
+
type = "number";
|
|
1146
1179
|
}
|
|
1147
|
-
else if (valueformat)
|
|
1180
|
+
else if (valueformat) {
|
|
1148
1181
|
value = this.dates.getFormatted(obj[prop], valueformat.length <= 10, false);
|
|
1182
|
+
type = "date";
|
|
1183
|
+
}
|
|
1149
1184
|
Object.defineProperty(obj, prop + idx, { value: value, writable: false });
|
|
1150
|
-
headers.push({ label: header, key: prop + idx, order: order + idx });
|
|
1185
|
+
headers.push({ label: header, key: prop + idx, order: order + idx, type: type });
|
|
1151
1186
|
}
|
|
1152
1187
|
}
|
|
1153
1188
|
/**
|
|
@@ -1194,7 +1229,7 @@ class ExportService {
|
|
|
1194
1229
|
let value = tmpRes;
|
|
1195
1230
|
let propname = prop + idx.toString() + idxinternal.toString();
|
|
1196
1231
|
Object.defineProperty(obj, propname, { value: value, writable: false });
|
|
1197
|
-
headers.push({ label: header + " " + desc, key: propname, order: order + idx });
|
|
1232
|
+
headers.push({ label: header + " " + desc, key: propname, order: order + idx, type: 'string' });
|
|
1198
1233
|
});
|
|
1199
1234
|
}
|
|
1200
1235
|
}
|
|
@@ -1211,12 +1246,11 @@ class ExportService {
|
|
|
1211
1246
|
return Deserialize(items, type);
|
|
1212
1247
|
}
|
|
1213
1248
|
}
|
|
1214
|
-
ExportService
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
];
|
|
1249
|
+
ExportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ExportService, deps: [{ token: DateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1250
|
+
ExportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ExportService });
|
|
1251
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: ExportService, decorators: [{
|
|
1252
|
+
type: Injectable
|
|
1253
|
+
}], ctorParameters: function () { return [{ type: DateService }]; } });
|
|
1220
1254
|
|
|
1221
1255
|
// Angular
|
|
1222
1256
|
/**
|
|
@@ -1519,9 +1553,11 @@ class HashingService {
|
|
|
1519
1553
|
return (a + b) & 0xFFFFFFFF;
|
|
1520
1554
|
}
|
|
1521
1555
|
}
|
|
1522
|
-
HashingService
|
|
1523
|
-
|
|
1524
|
-
|
|
1556
|
+
HashingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: HashingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1557
|
+
HashingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: HashingService });
|
|
1558
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: HashingService, decorators: [{
|
|
1559
|
+
type: Injectable
|
|
1560
|
+
}] });
|
|
1525
1561
|
|
|
1526
1562
|
/**
|
|
1527
1563
|
* Mappatura del TypeCode del C#
|
|
@@ -1726,9 +1762,17 @@ class UtilityService {
|
|
|
1726
1762
|
}
|
|
1727
1763
|
}
|
|
1728
1764
|
}
|
|
1729
|
-
UtilityService
|
|
1730
|
-
|
|
1731
|
-
|
|
1765
|
+
UtilityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: UtilityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1766
|
+
UtilityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: UtilityService });
|
|
1767
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: UtilityService, decorators: [{
|
|
1768
|
+
type: Injectable
|
|
1769
|
+
}] });
|
|
1770
|
+
|
|
1771
|
+
/**
|
|
1772
|
+
* Classe astratta che si occupa di recuperare l'Id sessione univoco per applicazione ed utente collegato
|
|
1773
|
+
*/
|
|
1774
|
+
class BaseSessionRetriever {
|
|
1775
|
+
}
|
|
1732
1776
|
|
|
1733
1777
|
/**
|
|
1734
1778
|
* Classe che gestisce la scrittura delle informazioni nello store locale.
|
|
@@ -1755,12 +1799,6 @@ class BaseStorageProvider {
|
|
|
1755
1799
|
}
|
|
1756
1800
|
}
|
|
1757
1801
|
|
|
1758
|
-
/**
|
|
1759
|
-
* Classe astratta che si occupa di recuperare l'Id sessione univoco per applicazione ed utente collegato
|
|
1760
|
-
*/
|
|
1761
|
-
class BaseSessionRetriever {
|
|
1762
|
-
}
|
|
1763
|
-
|
|
1764
1802
|
// Angular
|
|
1765
1803
|
/**
|
|
1766
1804
|
* Service che fornisce funzionalità di base per storicizzazione e recupero oggetti dallo Storage Locale
|
|
@@ -1846,14 +1884,18 @@ class StorageService {
|
|
|
1846
1884
|
return this._storage.getAll().pipe(first());
|
|
1847
1885
|
}
|
|
1848
1886
|
}
|
|
1849
|
-
StorageService
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1887
|
+
StorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: StorageService, deps: [{ token: APPSEARCH_PREFIX, optional: true }, { token: BaseSessionRetriever }, { token: BaseStorageProvider }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1888
|
+
StorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: StorageService });
|
|
1889
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: StorageService, decorators: [{
|
|
1890
|
+
type: Injectable
|
|
1891
|
+
}], ctorParameters: function () {
|
|
1892
|
+
return [{ type: undefined, decorators: [{
|
|
1893
|
+
type: Optional
|
|
1894
|
+
}, {
|
|
1895
|
+
type: Inject,
|
|
1896
|
+
args: [APPSEARCH_PREFIX]
|
|
1897
|
+
}] }, { type: BaseSessionRetriever }, { type: BaseStorageProvider }];
|
|
1898
|
+
} });
|
|
1857
1899
|
|
|
1858
1900
|
/**
|
|
1859
1901
|
* Implementazione di default per la classe **BaseSessionRetriever**
|
|
@@ -1874,10 +1916,11 @@ class DefaultSessionRetriever extends BaseSessionRetriever {
|
|
|
1874
1916
|
return "DUMMY_SESSION";
|
|
1875
1917
|
}
|
|
1876
1918
|
}
|
|
1877
|
-
DefaultSessionRetriever
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1919
|
+
DefaultSessionRetriever.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DefaultSessionRetriever, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1920
|
+
DefaultSessionRetriever.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DefaultSessionRetriever });
|
|
1921
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DefaultSessionRetriever, decorators: [{
|
|
1922
|
+
type: Injectable
|
|
1923
|
+
}], ctorParameters: function () { return []; } });
|
|
1881
1924
|
|
|
1882
1925
|
/** Implementazione di default per la classe **BaseStorageProvider** */
|
|
1883
1926
|
class DefaultStorageProvider extends BaseStorageProvider {
|
|
@@ -1947,12 +1990,11 @@ class DefaultStorageProvider extends BaseStorageProvider {
|
|
|
1947
1990
|
return of(ret);
|
|
1948
1991
|
}
|
|
1949
1992
|
}
|
|
1950
|
-
DefaultStorageProvider
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
];
|
|
1993
|
+
DefaultStorageProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DefaultStorageProvider, deps: [{ token: BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1994
|
+
DefaultStorageProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DefaultStorageProvider });
|
|
1995
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DefaultStorageProvider, decorators: [{
|
|
1996
|
+
type: Injectable
|
|
1997
|
+
}], ctorParameters: function () { return [{ type: BaseSessionRetriever }]; } });
|
|
1956
1998
|
|
|
1957
1999
|
// Angular
|
|
1958
2000
|
/**
|
|
@@ -1989,9 +2031,12 @@ class FullExtensionsModule {
|
|
|
1989
2031
|
};
|
|
1990
2032
|
}
|
|
1991
2033
|
}
|
|
1992
|
-
FullExtensionsModule
|
|
1993
|
-
|
|
1994
|
-
|
|
2034
|
+
FullExtensionsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FullExtensionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2035
|
+
FullExtensionsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FullExtensionsModule });
|
|
2036
|
+
FullExtensionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FullExtensionsModule });
|
|
2037
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FullExtensionsModule, decorators: [{
|
|
2038
|
+
type: NgModule
|
|
2039
|
+
}] });
|
|
1995
2040
|
|
|
1996
2041
|
/**
|
|
1997
2042
|
* Classe che rappresenta una risposta ricevuta da un Backend
|
|
@@ -2019,5 +2064,5 @@ class GenericItem {
|
|
|
2019
2064
|
* Generated bundle index. Do not edit.
|
|
2020
2065
|
*/
|
|
2021
2066
|
|
|
2022
|
-
export { APPSEARCH_PREFIX, BaseSessionRetriever, BaseStorageProvider, CallResult, ClipboardService, CsvHeaders, DateService, EXT_ALLOW_UTC, EXT_FANCY_ALERTS, EXT_LOCALE, Export, ExportAs, ExportDictionary, ExportList, ExportService, ExtensionsModule, FullExtensionsModule, GenericItem, HashingService, MessageService, StorageService, UtilityService
|
|
2023
|
-
//# sourceMappingURL=esfaenza-extensions.
|
|
2067
|
+
export { APPSEARCH_PREFIX, BaseSessionRetriever, BaseStorageProvider, CallResult, ClipboardService, CsvHeaders, DateService, EXT_ALLOW_UTC, EXT_FANCY_ALERTS, EXT_LOCALE, Export, ExportAs, ExportDictionary, ExportList, ExportService, ExtensionsModule, FullExtensionsModule, GenericItem, HashingService, MessageService, StorageService, UtilityService };
|
|
2068
|
+
//# sourceMappingURL=esfaenza-extensions.mjs.map
|