@esfaenza/extensions 11.2.17 → 11.2.21

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.
@@ -2,7 +2,7 @@ import { InjectionToken, NgModule, Injectable, Optional, Inject } from '@angular
2
2
  import { ToastrService } from 'ngx-toastr';
3
3
  import swal from 'sweetalert2';
4
4
  import { Deserialize } from 'cerialize';
5
- import { tap } from 'rxjs/operators';
5
+ import { first, tap } from 'rxjs/operators';
6
6
  import { of } from 'rxjs';
7
7
 
8
8
  /**
@@ -982,7 +982,7 @@ class ExportService {
982
982
  columns.forEach(t => {
983
983
  var propValue = obj.properties[t.key];
984
984
  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 });
985
+ headers.push({ label: t.label, key: t.key + "_exp", order: t.order, type: t.type });
986
986
  });
987
987
  //Tirati fuori tutti gli header faccio sort sull'ordinamento
988
988
  return headers.sort((a, b) => { return a.order - b.order; });
@@ -1035,7 +1035,7 @@ class ExportService {
1035
1035
  // Se è un formato data mi assicuro di non stampare mai una data 00:00:00 altrimenti in esportazione viene uno schifo
1036
1036
  var val = obj[prop] ? this.dates.trimSeconds(obj[prop].toString()) : "";
1037
1037
  Object.defineProperty(obj, prop + "_nofmt", { value: val, writable: false, enumerable: true });
1038
- headers.push({ label: lbl ? lbl : prop + "_nofmt", key: prop + "_nofmt", order: order });
1038
+ headers.push({ label: lbl ? lbl : prop + "_nofmt", key: prop + "_nofmt", order: order, type: "string" });
1039
1039
  }
1040
1040
  else {
1041
1041
  // Caso formato numerico
@@ -1047,7 +1047,7 @@ class ExportService {
1047
1047
  // Il singolo punto che c'è, se presente (separatore decimali) lo trasformo in virgola
1048
1048
  let valConverted = val.replace(".", ",");
1049
1049
  Object.defineProperty(obj, prop + "_fmt", { value: valConverted, writable: false, enumerable: true });
1050
- headers.push({ label: lbl ? lbl : prop + "_fmt", key: prop + "_fmt", order: order });
1050
+ headers.push({ label: lbl ? lbl : prop + "_fmt", key: prop + "_fmt", order: order, type: "number" });
1051
1051
  }
1052
1052
  else {
1053
1053
  // Se ho un formato data trasformo in dayjs, formatto ed esporto
@@ -1055,7 +1055,7 @@ class ExportService {
1055
1055
  // Se non funziona provo a definirgli la formattazione standard del metering per quel linguaggio
1056
1056
  let val = this.dates.getFormatted(obj[prop], format.length <= 10, false);
1057
1057
  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 });
1058
+ headers.push({ label: lbl ? lbl : prop + "_fmt", key: prop + "_fmt", order: order, type: "date" });
1059
1059
  }
1060
1060
  }
1061
1061
  }
@@ -1088,16 +1088,19 @@ class ExportService {
1088
1088
  let order = obj[prop + csvOrdPrefix];
1089
1089
  //Se per questa proprietà ho un formato lo applico
1090
1090
  let format = obj[prop + csvFormatPrefix];
1091
+ let type = "string";
1091
1092
  if (format == "F") {
1092
1093
  let val = value.toString();
1093
1094
  val = val.replace(/,/, "");
1094
1095
  value = val.replace(".", ",");
1096
+ type = "number";
1095
1097
  }
1096
1098
  else if (format) {
1097
1099
  value = this.dates.getFormatted(value, format.length <= 10, false);
1100
+ type = "date";
1098
1101
  }
1099
1102
  Object.defineProperty(obj, prop, { value: value, writable: false, enumerable: true });
1100
- headers.push({ label: lbl ? lbl : prop, key: prop, order: order });
1103
+ headers.push({ label: lbl ? lbl : prop, key: prop, order: order, type: type });
1101
1104
  }
1102
1105
  /**
1103
1106
  * Setup per l'esportazione di una lista di valori pivottati dinamicamente:
@@ -1139,15 +1142,19 @@ class ExportService {
1139
1142
  tmpRes = JSON.parse(JSON.stringify(listitem));
1140
1143
  jumps.forEach(pp => { tmpRes = tmpRes[pp]; });
1141
1144
  let value = tmpRes;
1145
+ let type = "string";
1142
1146
  if (valueformat == "F") {
1143
1147
  let val = value != null ? value.toString() : "";
1144
1148
  val = val.replace(/,/, "");
1145
1149
  value = val.replace(".", ",");
1150
+ type = "number";
1146
1151
  }
1147
- else if (valueformat)
1152
+ else if (valueformat) {
1148
1153
  value = this.dates.getFormatted(obj[prop], valueformat.length <= 10, false);
1154
+ type = "date";
1155
+ }
1149
1156
  Object.defineProperty(obj, prop + idx, { value: value, writable: false });
1150
- headers.push({ label: header, key: prop + idx, order: order + idx });
1157
+ headers.push({ label: header, key: prop + idx, order: order + idx, type: type });
1151
1158
  }
1152
1159
  }
1153
1160
  /**
@@ -1194,7 +1201,7 @@ class ExportService {
1194
1201
  let value = tmpRes;
1195
1202
  let propname = prop + idx.toString() + idxinternal.toString();
1196
1203
  Object.defineProperty(obj, propname, { value: value, writable: false });
1197
- headers.push({ label: header + " " + desc, key: propname, order: order + idx });
1204
+ headers.push({ label: header + " " + desc, key: propname, order: order + idx, type: 'string' });
1198
1205
  });
1199
1206
  }
1200
1207
  }
@@ -1763,7 +1770,12 @@ class BaseSessionRetriever {
1763
1770
 
1764
1771
  // Angular
1765
1772
  /**
1773
+ * @deprecated Utilizzare "PreferencesService" dalla libreria "@esfaenza/preferences"
1774
+ *
1766
1775
  * Service che fornisce funzionalità di base per storicizzazione e recupero oggetti dallo Storage Locale
1776
+ *
1777
+ * N.B: In ogni chiamata è presente l'operatore rxjs **first()** per far sì che a prescindere dall'implementazione utente/default gli
1778
+ * observable effettuino l'unsubscribe automaticamente terminata la prima operazine
1767
1779
  */
1768
1780
  class StorageService {
1769
1781
  /**
@@ -1794,10 +1806,9 @@ class StorageService {
1794
1806
  }
1795
1807
  else
1796
1808
  finalItem = item;
1797
- return this._storage.setItem(storeName, finalItem).pipe(tap(res => {
1798
- if (res == false) {
1809
+ return this._storage.setItem(storeName, finalItem).pipe(first(), tap(res => {
1810
+ if (res == false)
1799
1811
  console.error("Impossibile effettuare il salvataggio dell'oggetto all'interno dello Storage Locale per la chiave " + storeName);
1800
- }
1801
1812
  }));
1802
1813
  }
1803
1814
  /**
@@ -1808,7 +1819,7 @@ class StorageService {
1808
1819
  * @returns {any} Oggetto recuperato e deserializzato
1809
1820
  */
1810
1821
  getItem(storeName) {
1811
- return this._storage.getItem(storeName).pipe(tap(res => {
1822
+ return this._storage.getItem(storeName).pipe(first(), tap(res => {
1812
1823
  if (res == null)
1813
1824
  console.warn("Impossibile ottenere l'oggetto salvato con chiave " + storeName);
1814
1825
  }));
@@ -1819,7 +1830,7 @@ class StorageService {
1819
1830
  * @param {string} storeName Chiave del localStorage da ripulire
1820
1831
  */
1821
1832
  removeItem(storeName) {
1822
- return this._storage.removeItem(storeName).pipe(tap(res => {
1833
+ return this._storage.removeItem(storeName).pipe(first(), tap(res => {
1823
1834
  if (res == false)
1824
1835
  console.warn("Impossibile rimuovere l'oggetto salvato con chiave " + storeName);
1825
1836
  }));
@@ -1830,7 +1841,7 @@ class StorageService {
1830
1841
  * @param {string} storeName Chiave del localStorage da ripulire
1831
1842
  */
1832
1843
  clear() {
1833
- return this._storage.clear().pipe(tap(res => {
1844
+ return this._storage.clear().pipe(first(), tap(res => {
1834
1845
  if (res == false)
1835
1846
  console.warn("Impossibile ripulire lo Storage Locale");
1836
1847
  }));
@@ -1841,7 +1852,7 @@ class StorageService {
1841
1852
  * @returns {Observable<{ [index: string]: string; }>} Risultato della query
1842
1853
  */
1843
1854
  getAll() {
1844
- return this._storage.getAll();
1855
+ return this._storage.getAll().pipe(first());
1845
1856
  }
1846
1857
  }
1847
1858
  StorageService.decorators = [