@esfaenza/extensions 11.2.39 → 11.2.40

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.
@@ -805,6 +805,10 @@
805
805
  * Suffisso della proprietà da generare in cui salvare il nome della colonna in cui salvare questa proprietà
806
806
  */
807
807
  var csvHdrPrefix = "_csvhdr";
808
+ /**
809
+ * Suffisso della proprietà da generare in cui salvare il codice del th a cui si riferisce questo campo
810
+ */
811
+ var csvPropKey = "_csvkey";
808
812
  /**
809
813
  * Suffisso della proprietà da generare in cui salvare il valore da prendere per una proprietà di tipo Lista
810
814
  */
@@ -860,7 +864,7 @@
860
864
  * @param {string} header Titolo della colonna nel file CSV esportato
861
865
  * @param {string} format Formato di esportazione. Può essere un formato data per i campi data o 'F' per i campi floating point
862
866
  */
863
- var Export = function (order, header, format) {
867
+ var Export = function (order, header, format, tableid) {
864
868
  if (format === void 0) { format = null; }
865
869
  return function (target, propertyKey) {
866
870
  if (format)
@@ -868,6 +872,7 @@
868
872
  Object.defineProperty(target, propertyKey + csvOrdPrefix, { value: order, writable: false });
869
873
  Object.defineProperty(target, propertyKey + csvVisPrefix, { value: !!header, writable: false });
870
874
  Object.defineProperty(target, propertyKey + csvHdrPrefix, { value: header, writable: false });
875
+ Object.defineProperty(target, propertyKey + csvPropKey, { value: tableid, writable: false });
871
876
  if (target[exportList])
872
877
  target[exportList].push(propertyKey + csvVisPrefix);
873
878
  else
@@ -1001,15 +1006,20 @@
1001
1006
  *
1002
1007
  * @returns {CsvHeaders[]} Header di esportazione già ordinati correttamente
1003
1008
  */
1004
- ExportService.prototype.setupForExport = function (objs) {
1009
+ ExportService.prototype.setupForExport = function (objs, columns) {
1010
+ if (columns === void 0) { columns = []; }
1005
1011
  var headers = [];
1006
1012
  var headersCache = {};
1007
1013
  if (!objs || objs.length == 0)
1008
1014
  return headers;
1009
1015
  // Devo per forza farlo per tutti gli oggetti dato che devo esporre le proprietà che mi servono da esportare
1010
1016
  // Gli header li raccolgo tutti poi faccio uan distinct in modo da esportare tutte le proprietà per bene
1017
+ var columnSelectionDictionary = {};
1018
+ if ((columns === null || columns === void 0 ? void 0 : columns.length) > 0)
1019
+ for (var i = 0; i < (columns === null || columns === void 0 ? void 0 : columns.length); i++)
1020
+ columnSelectionDictionary[columns[i]] = true;
1011
1021
  for (var i = 0; i < objs.length; i++) {
1012
- var hds = this.parseAndGetHeaders(objs[i]);
1022
+ var hds = this.parseAndGetHeaders(objs[i], columnSelectionDictionary);
1013
1023
  // Aggiungo gli header facendo in modo di non aggiungerne mai due uguali per non dover fare una distinct dopo
1014
1024
  // che costerebbe comunque risorse. Utilizzo un dizionario d'appoggio per lookup istantanei
1015
1025
  for (var k = 0; k < hds.length; k++) {
@@ -1075,7 +1085,7 @@
1075
1085
  *
1076
1086
  * @returns {CsvHeaders[]} Header di esportazione già ordinati correttamente
1077
1087
  */
1078
- ExportService.prototype.parseAndGetHeaders = function (obj) {
1088
+ ExportService.prototype.parseAndGetHeaders = function (obj, columnsSelection) {
1079
1089
  var headers = [];
1080
1090
  // Miracle incoming
1081
1091
  var exportProps = obj[exportList];
@@ -1099,7 +1109,7 @@
1099
1109
  toCall = this.parseProperty.bind(this);
1100
1110
  }
1101
1111
  if (toCall)
1102
- toCall(obj, propBase, headers);
1112
+ toCall(obj, propBase, headers, columnsSelection);
1103
1113
  }
1104
1114
  return headers;
1105
1115
  };
@@ -1111,9 +1121,12 @@
1111
1121
  * @param {string} prop Proprietà da esportare
1112
1122
  * @param {CsvHeaders} headers Contenitore degli header, verrà riempito da questa funzione
1113
1123
  */
1114
- ExportService.prototype.parseProperty = function (obj, prop, headers) {
1124
+ ExportService.prototype.parseProperty = function (obj, prop, headers, columnsSelection) {
1115
1125
  var toEmit = obj[prop + csvVisPrefix];
1116
1126
  var format = obj[prop + csvFormatPrefix];
1127
+ var propKey = obj[prop + csvPropKey];
1128
+ if (propKey && !columnsSelection[propKey])
1129
+ return;
1117
1130
  var lbl = obj[prop + csvHdrPrefix];
1118
1131
  var order = obj[prop + csvOrdPrefix];
1119
1132
  if (toEmit && lbl !== "undefined") {