@esfaenza/extensions 11.2.39 → 11.2.41

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,14 +864,17 @@
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; }
869
+ if (tableid === void 0) { tableid = null; }
865
870
  return function (target, propertyKey) {
866
871
  if (format)
867
872
  Object.defineProperty(target, propertyKey + csvFormatPrefix, { value: format, writable: false });
868
873
  Object.defineProperty(target, propertyKey + csvOrdPrefix, { value: order, writable: false });
869
874
  Object.defineProperty(target, propertyKey + csvVisPrefix, { value: !!header, writable: false });
870
875
  Object.defineProperty(target, propertyKey + csvHdrPrefix, { value: header, writable: false });
876
+ if (tableid)
877
+ Object.defineProperty(target, propertyKey + csvPropKey, { value: tableid, writable: false });
871
878
  if (target[exportList])
872
879
  target[exportList].push(propertyKey + csvVisPrefix);
873
880
  else
@@ -1001,15 +1008,20 @@
1001
1008
  *
1002
1009
  * @returns {CsvHeaders[]} Header di esportazione già ordinati correttamente
1003
1010
  */
1004
- ExportService.prototype.setupForExport = function (objs) {
1011
+ ExportService.prototype.setupForExport = function (objs, columns) {
1012
+ if (columns === void 0) { columns = []; }
1005
1013
  var headers = [];
1006
1014
  var headersCache = {};
1007
1015
  if (!objs || objs.length == 0)
1008
1016
  return headers;
1009
1017
  // Devo per forza farlo per tutti gli oggetti dato che devo esporre le proprietà che mi servono da esportare
1010
1018
  // Gli header li raccolgo tutti poi faccio uan distinct in modo da esportare tutte le proprietà per bene
1019
+ var columnSelectionDictionary = {};
1020
+ if ((columns === null || columns === void 0 ? void 0 : columns.length) > 0)
1021
+ for (var i = 0; i < (columns === null || columns === void 0 ? void 0 : columns.length); i++)
1022
+ columnSelectionDictionary[columns[i]] = true;
1011
1023
  for (var i = 0; i < objs.length; i++) {
1012
- var hds = this.parseAndGetHeaders(objs[i]);
1024
+ var hds = this.parseAndGetHeaders(objs[i], columnSelectionDictionary);
1013
1025
  // Aggiungo gli header facendo in modo di non aggiungerne mai due uguali per non dover fare una distinct dopo
1014
1026
  // che costerebbe comunque risorse. Utilizzo un dizionario d'appoggio per lookup istantanei
1015
1027
  for (var k = 0; k < hds.length; k++) {
@@ -1075,7 +1087,7 @@
1075
1087
  *
1076
1088
  * @returns {CsvHeaders[]} Header di esportazione già ordinati correttamente
1077
1089
  */
1078
- ExportService.prototype.parseAndGetHeaders = function (obj) {
1090
+ ExportService.prototype.parseAndGetHeaders = function (obj, columnsSelection) {
1079
1091
  var headers = [];
1080
1092
  // Miracle incoming
1081
1093
  var exportProps = obj[exportList];
@@ -1099,7 +1111,7 @@
1099
1111
  toCall = this.parseProperty.bind(this);
1100
1112
  }
1101
1113
  if (toCall)
1102
- toCall(obj, propBase, headers);
1114
+ toCall(obj, propBase, headers, columnsSelection);
1103
1115
  }
1104
1116
  return headers;
1105
1117
  };
@@ -1111,9 +1123,12 @@
1111
1123
  * @param {string} prop Proprietà da esportare
1112
1124
  * @param {CsvHeaders} headers Contenitore degli header, verrà riempito da questa funzione
1113
1125
  */
1114
- ExportService.prototype.parseProperty = function (obj, prop, headers) {
1126
+ ExportService.prototype.parseProperty = function (obj, prop, headers, columnsSelection) {
1115
1127
  var toEmit = obj[prop + csvVisPrefix];
1116
1128
  var format = obj[prop + csvFormatPrefix];
1129
+ var propKey = obj[prop + csvPropKey];
1130
+ if (propKey && !columnsSelection[propKey])
1131
+ return;
1117
1132
  var lbl = obj[prop + csvHdrPrefix];
1118
1133
  var order = obj[prop + csvOrdPrefix];
1119
1134
  if (toEmit && lbl !== "undefined") {