@esfaenza/extensions 15.2.44 → 15.2.45
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/esm2020/lib/services/extensions.exports.service.mjs +17 -15
- package/esm2020/lib/services/extensions.utilities.service.mjs +3 -3
- package/fesm2015/esfaenza-extensions.mjs +18 -16
- package/fesm2015/esfaenza-extensions.mjs.map +1 -1
- package/fesm2020/esfaenza-extensions.mjs +18 -16
- package/fesm2020/esfaenza-extensions.mjs.map +1 -1
- package/lib/services/extensions.exports.service.d.ts +1 -1
- package/lib/services/extensions.utilities.service.d.ts +1 -1
- package/package.json +2 -2
|
@@ -1521,7 +1521,7 @@ class UtilityService {
|
|
|
1521
1521
|
*
|
|
1522
1522
|
* @return {any} Clone dell'oggetto passato
|
|
1523
1523
|
*/
|
|
1524
|
-
deepClone(source) {
|
|
1524
|
+
deepClone(source, type = null) {
|
|
1525
1525
|
// Valori semplici
|
|
1526
1526
|
if (source == null || typeof source !== 'object')
|
|
1527
1527
|
return source;
|
|
@@ -1538,7 +1538,7 @@ class UtilityService {
|
|
|
1538
1538
|
default: break;
|
|
1539
1539
|
}
|
|
1540
1540
|
// Oggetti Complessi
|
|
1541
|
-
return this.recursiveStep(source, Array.isArray(source) || source instanceof Array ? [] : Object.create(Object.getPrototypeOf(source)));
|
|
1541
|
+
return this.recursiveStep(source, Array.isArray(source) || source instanceof Array ? [] : (type == null ? Object.create(Object.getPrototypeOf(source)) : new type()));
|
|
1542
1542
|
}
|
|
1543
1543
|
/**
|
|
1544
1544
|
* @ignore
|
|
@@ -1664,10 +1664,13 @@ const Export = (order, header, format = null, tableid = null) => (target, proper
|
|
|
1664
1664
|
* @param {any} type Tipo da esportare
|
|
1665
1665
|
*/
|
|
1666
1666
|
const ExportAs = (order, type, prefix) => (target, propertyKey) => {
|
|
1667
|
+
var addedHere = {};
|
|
1667
1668
|
var t = new type();
|
|
1668
1669
|
var props = t[exportList];
|
|
1669
1670
|
for (let i = 0; i < props.length; i++) {
|
|
1670
1671
|
let prop = props[i].replace(csvVisPrefix, '');
|
|
1672
|
+
if (addedHere[prop])
|
|
1673
|
+
continue;
|
|
1671
1674
|
if (typeof t[prop + csvVisPrefix] !== "undefined") {
|
|
1672
1675
|
var toEmit = t[prop + csvVisPrefix];
|
|
1673
1676
|
var lbl = t[prop + csvHdrPrefix];
|
|
@@ -1675,16 +1678,18 @@ const ExportAs = (order, type, prefix) => (target, propertyKey) => {
|
|
|
1675
1678
|
var orderProp = t[prop + csvOrdPrefix];
|
|
1676
1679
|
if (format)
|
|
1677
1680
|
Object.defineProperty(target, propertyKey + prop + csvFormatPrefix, { value: format, writable: false });
|
|
1678
|
-
|
|
1679
|
-
Object.defineProperty(target,
|
|
1680
|
-
Object.defineProperty(target,
|
|
1681
|
-
Object.defineProperty(target,
|
|
1682
|
-
Object.defineProperty(target,
|
|
1683
|
-
Object.defineProperty(target,
|
|
1681
|
+
let ppp = propertyKey + "$_$" + prop;
|
|
1682
|
+
Object.defineProperty(target, ppp + csvOrdPrefix, { value: orderProp + order, writable: false });
|
|
1683
|
+
Object.defineProperty(target, ppp, { value: null, writable: true, enumerable: true });
|
|
1684
|
+
Object.defineProperty(target, ppp + csvValueNavigator, { value: propertyKey + "." + prop.replace(/\$_\$/g, '.'), writable: false });
|
|
1685
|
+
Object.defineProperty(target, ppp + csvVisPrefix, { value: toEmit, writable: false });
|
|
1686
|
+
Object.defineProperty(target, ppp + csvHdrPrefix, { value: (prefix ? prefix + ' ' : '') + lbl, writable: false });
|
|
1687
|
+
Object.defineProperty(target, ppp + csvValueType, { value: type, writable: false });
|
|
1684
1688
|
if (target[exportList])
|
|
1685
|
-
target[exportList].push(
|
|
1689
|
+
target[exportList].push(ppp + csvVisPrefix);
|
|
1686
1690
|
else
|
|
1687
|
-
target[exportList] = [
|
|
1691
|
+
target[exportList] = [ppp + csvVisPrefix];
|
|
1692
|
+
addedHere[ppp] = true;
|
|
1688
1693
|
}
|
|
1689
1694
|
}
|
|
1690
1695
|
};
|
|
@@ -2166,14 +2171,11 @@ class ExportService {
|
|
|
2166
2171
|
* @param {any[]} items Oggetti da esportare
|
|
2167
2172
|
*/
|
|
2168
2173
|
export(items, format, fileName, type, columnsFilter, genericHeaders) {
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
for (let property in t)
|
|
2172
|
-
tmp[property] = t[property];
|
|
2173
|
-
return tmp;
|
|
2174
|
-
});
|
|
2174
|
+
// Deepclone con assegnatura del tipo
|
|
2175
|
+
var createdItems = items.map(t => this.utiExts.deepClone(t, type));
|
|
2175
2176
|
let headers = genericHeaders ? this.setupForGenericExport(createdItems, genericHeaders) : this.setupForExport(createdItems, columnsFilter);
|
|
2176
2177
|
(format == "CSV" ? this.exportCSV : this.exportExcel).bind(this)(fileName, headers, createdItems);
|
|
2178
|
+
return headers;
|
|
2177
2179
|
}
|
|
2178
2180
|
}
|
|
2179
2181
|
ExportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ExportService, deps: [{ token: DateService }, { token: UtilityService }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
|