@esfaenza/extensions 11.2.36 → 11.2.38

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.
@@ -412,21 +412,31 @@ class ClipboardService {
412
412
  return;
413
413
  }
414
414
  if (window.clipboardData) {
415
+ console.log("[@esfaenza/extensions] Found clipboardData");
415
416
  let data = window.clipboardData.getData("Text");
417
+ console.log("[@esfaenza/extensions] Retrieved clipboard values: " + data);
416
418
  var value = style == "array" ? this.getClipboardLines(data) :
417
419
  style == "matrix" ? this.getClipboardMatrix(data) : [];
420
+ console.log(`[@esfaenza/extensions] Adapted for ${style}: ${JSON.stringify(value)}`);
418
421
  if (valueFoundCallback)
419
422
  valueFoundCallback(value);
420
423
  }
421
424
  else if (window.navigator.clipboard) {
425
+ console.log("[@esfaenza/extensions] Found navigator clipboard");
422
426
  window.navigator.permissions.query({ name: 'clipboard-read' }).then(result => {
423
- if (!(result.state === 'granted' || result.state === 'prompt'))
427
+ if (!(result.state === 'granted' || result.state === 'prompt')) {
428
+ console.error("[@esfaenza/extensions] Clipboard permission not granted");
424
429
  if (valueFoundCallback)
425
430
  valueFoundCallback([]);
431
+ return;
432
+ }
433
+ console.log("[@esfaenza/extensions] Clipboard permission granted, retrieving values");
426
434
  window.navigator.clipboard.readText()
427
435
  .then(t => {
436
+ console.log("[@esfaenza/extensions] Retrieved clipboard values: " + t);
428
437
  var value = style == "array" ? this.getClipboardLines(t) :
429
438
  style == "matrix" ? this.getClipboardMatrix(t) : [];
439
+ console.log(`[@esfaenza/extensions] Adapted for ${style}: ${JSON.stringify(value)}`);
430
440
  if (valueFoundCallback)
431
441
  valueFoundCallback(value);
432
442
  })
@@ -789,7 +799,11 @@ const dictionaryCsvHdrPrefix = "_flatlistcsvhdr";
789
799
  /**
790
800
  * Suffisso della proprietà da generare in cui salvare il formato della proprietà che si sta esportando
791
801
  */
792
- const csvFormatPrefix = "_csvfmt";
802
+ const csvFormatPrefix = "_csvfmt";
803
+ /**
804
+ * Nome della proprietà che contiene tutti i nomi di tutte le proprietà da esportare
805
+ */
806
+ const exportList = "__export_list__";
793
807
 
794
808
  // Angular
795
809
  /**
@@ -823,6 +837,10 @@ const Export = (order, header, format = null) => (target, propertyKey) => {
823
837
  Object.defineProperty(target, propertyKey + csvOrdPrefix, { value: order, writable: false });
824
838
  Object.defineProperty(target, propertyKey + csvVisPrefix, { value: !!header, writable: false });
825
839
  Object.defineProperty(target, propertyKey + csvHdrPrefix, { value: header, writable: false });
840
+ if (target[exportList])
841
+ target[exportList].push(propertyKey);
842
+ else
843
+ target[exportList] = [propertyKey];
826
844
  };
827
845
  /**
828
846
  * Decoratore di esportazione utilizzabile su un oggetto.
@@ -870,6 +888,10 @@ const ExportAs = (order, type) => (target, propertyKey) => {
870
888
  Object.defineProperty(target, propertyKey + prop + csvValueNavigator, { value: propertyKey + "." + prop, writable: false });
871
889
  Object.defineProperty(target, propertyKey + prop + csvVisPrefix, { value: toEmit, writable: false });
872
890
  Object.defineProperty(target, propertyKey + prop + csvHdrPrefix, { value: lbl, writable: false });
891
+ if (target[exportList])
892
+ target[exportList].push(propertyKey + prop);
893
+ else
894
+ target[exportList] = [propertyKey + prop];
873
895
  }
874
896
  }
875
897
  };
@@ -896,6 +918,10 @@ const ExportList = (order, headernavigator, valuenavigator, valueformat = null)
896
918
  Object.defineProperty(target, propertyKey + listCsvValPrefix, { value: valuenavigator, writable: false });
897
919
  Object.defineProperty(target, propertyKey + listCsvHdrPrefix, { value: headernavigator, writable: false });
898
920
  Object.defineProperty(target, propertyKey + listCsvValFormat, { value: valueformat, writable: false });
921
+ if (target[exportList])
922
+ target[exportList].push(propertyKey + listCsvHdrPrefix);
923
+ else
924
+ target[exportList] = [propertyKey + listCsvHdrPrefix];
899
925
  };
900
926
  /**
901
927
  * Decoratore di esportazione utilizzabile su un dizionario. Se ad esempio si vogliono generare le colonne
@@ -916,6 +942,10 @@ const ExportDictionary = (order, headernavigator, valuenavigator) => (target, pr
916
942
  Object.defineProperty(target, propertyKey + csvOrdPrefix, { value: order, writable: false });
917
943
  Object.defineProperty(target, propertyKey + dictionaryCsvValPrefix, { value: valuenavigator, writable: false });
918
944
  Object.defineProperty(target, propertyKey + dictionaryCsvHdrPrefix, { value: headernavigator, writable: false });
945
+ if (target[exportList])
946
+ target[exportList].push(propertyKey + dictionaryCsvHdrPrefix);
947
+ else
948
+ target[exportList] = [propertyKey + dictionaryCsvHdrPrefix];
919
949
  };
920
950
  /**
921
951
  * Service che si occupa dell'esportazione degli oggetti marcati dai Decoratori **ExportDictionary**, **ExportList**, **ExportAs** o **Export**
@@ -1012,11 +1042,9 @@ class ExportService {
1012
1042
  parseAndGetHeaders(obj) {
1013
1043
  var headers = [];
1014
1044
  // Miracle incoming
1015
- let propsDictionary = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
1016
- for (var propId in propsDictionary) {
1017
- if (!propsDictionary.hasOwnProperty(propId))
1018
- continue;
1019
- let prop = propsDictionary[propId];
1045
+ let exportProps = obj[exportList];
1046
+ for (let i = 0; i < exportProps.length; i++) {
1047
+ let prop = exportProps[i];
1020
1048
  let propBase = "";
1021
1049
  let toCall;
1022
1050
  if (prop.endsWith(listCsvHdrPrefix)) {