@esfaenza/extensions 15.2.17 → 15.2.18
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/models/ExportConsts.mjs +3 -1
- package/esm2020/lib/services/extensions.exports.service.mjs +9 -4
- package/fesm2015/esfaenza-extensions.mjs +9 -2
- package/fesm2015/esfaenza-extensions.mjs.map +1 -1
- package/fesm2020/esfaenza-extensions.mjs +9 -2
- package/fesm2020/esfaenza-extensions.mjs.map +1 -1
- package/lib/models/ExportConsts.d.ts +2 -0
- package/package.json +1 -1
|
@@ -317,6 +317,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
317
317
|
* utilizzato dal servizio di esportazione per prendere il valore delle proprietà di un oggetto
|
|
318
318
|
*/
|
|
319
319
|
const csvValueNavigator = "_csvnav";
|
|
320
|
+
/** Suffisso con le informazioni del tipo per le esportazioni di oggetti */
|
|
321
|
+
const csvValueType = "_csvtype";
|
|
320
322
|
/** Suffisso della proprietà da generare in cui salvare l'ordine di esportazione */
|
|
321
323
|
const csvOrdPrefix = "_csvord";
|
|
322
324
|
/** Suffisso della proprietà da generare in cui salvare la visibilità di questa proprietà */
|
|
@@ -700,6 +702,7 @@ const ExportAs = (order, type, prefix) => (target, propertyKey) => {
|
|
|
700
702
|
Object.defineProperty(target, propertyKey + prop + csvValueNavigator, { value: propertyKey + "." + prop, writable: false });
|
|
701
703
|
Object.defineProperty(target, propertyKey + prop + csvVisPrefix, { value: toEmit, writable: false });
|
|
702
704
|
Object.defineProperty(target, propertyKey + prop + csvHdrPrefix, { value: (prefix ? prefix + ' ' : '') + lbl, writable: false });
|
|
705
|
+
Object.defineProperty(target, propertyKey + prop + csvValueType, { value: propertyKey + "." + prop, writable: false });
|
|
703
706
|
if (target[exportList])
|
|
704
707
|
target[exportList].push(propertyKey + prop + csvVisPrefix);
|
|
705
708
|
else
|
|
@@ -971,10 +974,14 @@ class ExportService {
|
|
|
971
974
|
parseObject(obj, prop, headers, loc) {
|
|
972
975
|
//se questa proprietà ha un navigator significa che deriva da un oggetto interno, recupero il valore in questa fase dato che prima non ce l'ho
|
|
973
976
|
let valuenavigator = obj[prop + csvValueNavigator];
|
|
974
|
-
// Localizzazione presa dalla classe base se c'è, altrimenti dalla classe interna
|
|
975
|
-
loc = loc || this.lc.generateFromType(obj[locProperty]);
|
|
976
977
|
//Es. di valuenavigator obj.subobj.subsubobj.property
|
|
977
978
|
let jmps = valuenavigator.split(".");
|
|
979
|
+
// Localizzazione presa dalla classe base se c'è, altrimenti dalla classe interna (cioè dal primo saltino)
|
|
980
|
+
if (!loc) {
|
|
981
|
+
let type = obj[prop + csvValueType];
|
|
982
|
+
let proto = new type();
|
|
983
|
+
loc = proto[locProperty];
|
|
984
|
+
}
|
|
978
985
|
//Mi clono l'oggetto originale per non uccidergli i riferimenti
|
|
979
986
|
let clone = JSON.parse(JSON.stringify(obj));
|
|
980
987
|
//Salto ricorsivamente su me stesso per arrivare alla proprietà
|