@esfaenza/extensions 20.3.2 → 20.3.3

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.
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Classe che rappresenta una risposta ricevuta da un Backend
3
+ */
4
+ export declare class CallResult<T = never> {
5
+ /** Tempo impiegato perché la chiamata terminasse */
6
+ elapsedtime: string;
7
+ /** **true** se tutto è andato bene, **false** altrimenti */
8
+ success: boolean;
9
+ /** Indica se ci sono errori */
10
+ haserror: boolean;
11
+ /** Codice dell'eventuale errore restituito */
12
+ errorcode: string;
13
+ /** Log dell'eventuale errore restituito */
14
+ error: string;
15
+ /** ID dell'eventuale entità relativa a questa risposta */
16
+ entityid: any;
17
+ /** Indica se ci sono warning */
18
+ haswarning: boolean;
19
+ /** Log dell'eventuale warning restituito */
20
+ warning: string;
21
+ /** Entità collegata a questo CallResult */
22
+ entity: T;
23
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Header per il file CSV che sta venendo generato
3
+ */
4
+ export declare class CsvHeaders {
5
+ /**
6
+ * Intestazione della colonna
7
+ */
8
+ label: string;
9
+ /**
10
+ * Nome della proprietà visualizzata in questa colonna
11
+ */
12
+ key: string;
13
+ /**
14
+ * Ordine della colonna
15
+ */
16
+ order: number;
17
+ /**
18
+ * Nome della chiave della proprietà lato es-table
19
+ */
20
+ propKey: string;
21
+ /**
22
+ * Tipo della colonna (per eventuali formattazioni se si scarica in Excel)
23
+ */
24
+ type: 'string' | 'number' | 'date';
25
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Suffisso della proprietà da generare in cui salvare il navigatore
3
+ * utilizzato dal servizio di esportazione per prendere il valore delle proprietà di un oggetto
4
+ */
5
+ export declare const csvValueNavigator: string;
6
+ /** Suffisso con le informazioni del tipo per le esportazioni di oggetti */
7
+ export declare const csvValueType: string;
8
+ /** Suffisso della proprietà da generare in cui salvare l'ordine di esportazione */
9
+ export declare const csvOrdPrefix: string;
10
+ /** Suffisso della proprietà da generare in cui salvare la visibilità di questa proprietà */
11
+ export declare const csvVisPrefix: string;
12
+ /** Suffisso della proprietà da generare in cui salvare il nome della colonna in cui salvare questa proprietà */
13
+ export declare const csvHdrPrefix: string;
14
+ /** Suffisso della proprietà da generare in cui salvare il codice del th a cui si riferisce questo campo */
15
+ export declare const csvPropKey: string;
16
+ /** Suffisso della proprietà da generare in cui salvare il valore da prendere per una proprietà di tipo Lista */
17
+ export declare const listCsvValPrefix: string;
18
+ /** Suffisso della proprietà da generare in cui salvare l'Header della proprietà di tipo Lista relativo al valore esportato nella proprietà con suffisso **listCsvValPrefix** */
19
+ export declare const listCsvHdrPrefix: string;
20
+ /** Suffisso della proprietà da generare in cui salvare il formato della proprietà di tipo Lista relativo al valore esportato nella proprietà con suffisso **listCsvValPrefix** */
21
+ export declare const listCsvValFormat: string;
22
+ /** Suffisso della proprietà da generare in cui salvare il valore da prendere per una proprietà di tipo Dizionario */
23
+ export declare const dictionaryCsvValPrefix: string;
24
+ /** Suffisso della proprietà da generare in cui salvare l'Header della proprietà di un Dizionario relativo al valore esportato nella proprietà con suffisso **dictionaryCsvValPrefix** */
25
+ export declare const dictionaryCsvHdrPrefix: string;
26
+ /** Suffisso della proprietà da generare in cui salvare il formato della proprietà che si sta esportando */
27
+ export declare const csvFormatPrefix: string;
28
+ /** Nome della proprietà che contiene tutti i nomi di tutte le proprietà da esportare */
29
+ export declare const exportList: string;
30
+ /** Nome della proprietà che contiene la classe di localizzazione da utilizzare per una data esportazione */
31
+ export declare const locProperty: string;
@@ -0,0 +1,9 @@
1
+ /** Classe di configurazione per il modulo di estensione */
2
+ export declare class ExtensionsModuleConfig {
3
+ /** Indica se i metodi di estensione che utilizzano le date permettono l'uso di date in utc */
4
+ allow_utc?: boolean;
5
+ /** Prefisso delle searchView che serve per storicizzarle evitando di tirarsi in memoria anche tutti gli oggetti. Se vuoto viene supposto 'Hot' */
6
+ appsearch_prefix?: string;
7
+ /** Attiva la modalità di debug per l'esposizione di messaggi significativi */
8
+ debugMode?: boolean;
9
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Rappresentazione di un oggetto generico
3
+ */
4
+ export declare class GenericItem {
5
+ /**
6
+ * Dizionario Chiave - Valore delle proprietà di questo oggetto generico
7
+ */
8
+ properties: Record<string, string>;
9
+ }
@@ -0,0 +1,5 @@
1
+ /** Enumeratore dei tipi di messaggio che i moduli esterni possono contattare sull'applicazione principale */
2
+ export declare enum InboundMessageTypes {
3
+ /** Evento di navigazione */
4
+ Navigation = 0
5
+ }
@@ -0,0 +1,12 @@
1
+ /** Classe che rappresenta un generico messaggio scambiato fra applicazione e moduli */
2
+ export declare class InterComMessage {
3
+ type: any;
4
+ message: any;
5
+ /**
6
+ * Costruttore
7
+ *
8
+ * @param type Tipo di messaggio
9
+ * @param message Contenuto del messaggio
10
+ */
11
+ constructor(type: any, message: any);
12
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Mappatura del TypeCode del C#
3
+ */
4
+ export declare enum TypeCode {
5
+ /** @ignore */ Empty = 0,
6
+ /** @ignore */ Obj = 1,
7
+ /** @ignore */ DBNull = 2,
8
+ /** @ignore */ Boolean = 3,
9
+ /** @ignore */ Char = 4,
10
+ /** @ignore */ SByte = 5,
11
+ /** @ignore */ Byte = 6,
12
+ /** @ignore */ Int16 = 7,
13
+ /** @ignore */ UInt16 = 8,
14
+ /** @ignore */ Int32 = 9,
15
+ /** @ignore */ UInt32 = 10,
16
+ /** @ignore */ Int64 = 11,
17
+ /** @ignore */ UInt64 = 12,
18
+ /** @ignore */ Single = 13,
19
+ /** @ignore */ Double = 14,
20
+ /** @ignore */ Decimal = 15,
21
+ /** @ignore */ DateTime = 16,
22
+ /** @ignore */ String = 18
23
+ }
@@ -0,0 +1,11 @@
1
+ import { ModuleWithProviders } from '@angular/core';
2
+ import { ExtensionsModuleConfig } from '../models/ExtensionsModuleConfig';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../pipes/loc_date.pipe";
5
+ import * as i2 from "@esfaenza/localizations";
6
+ export declare class ExtensionsModule {
7
+ static forRoot(config?: ExtensionsModuleConfig): ModuleWithProviders<ExtensionsModule>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<ExtensionsModule, never>;
9
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ExtensionsModule, [typeof i1.LocDatePipe], [typeof i2.LocalizationModule], [typeof i1.LocDatePipe]>;
10
+ static ɵinj: i0.ɵɵInjectorDeclaration<ExtensionsModule>;
11
+ }
@@ -0,0 +1,24 @@
1
+ import { PipeTransform } from "@angular/core";
2
+ import { DateService } from "../services/extensions.dates.service";
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Pipe che permette di formattare una data in base al formato specificato. Utilizza il **DateService** di **@esfaenza/extensions** per ricondurre l'input a una data valida
6
+ */
7
+ export declare class LocDatePipe implements PipeTransform {
8
+ private dts;
9
+ /**
10
+ * @ignore
11
+ */
12
+ constructor(dts: DateService);
13
+ /**
14
+ * Trasformazione della data in input in base al formato richiesto
15
+ *
16
+ * @param {any} value Valore da ricondurre ad una data e formattare
17
+ * @param {string} format Formato in output della data da visualizzare
18
+ *
19
+ * @returns {string} Data formattata in base al formato
20
+ */
21
+ transform(value: any, format?: string): string;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<LocDatePipe, never>;
23
+ static ɵpipe: i0.ɵɵPipeDeclaration<LocDatePipe, "loc_date", false>;
24
+ }
@@ -0,0 +1,22 @@
1
+ import { AppEmbeddingExtensions } from "./extensions.embedding.service";
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * WIP: per razionalizzare il fill della routesmap (vedi CRM app.extensions.ts)
5
+ */
6
+ export declare class BaseExtensionsService {
7
+ private emb;
8
+ RedirectMap: {
9
+ [index: string]: {
10
+ url: string;
11
+ params: string[];
12
+ };
13
+ };
14
+ RoutesMap: {
15
+ [index: string]: {
16
+ route: (param: string) => any;
17
+ };
18
+ };
19
+ constructor(emb: AppEmbeddingExtensions);
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseExtensionsService, never>;
21
+ static ɵprov: i0.ɵɵInjectableDeclaration<BaseExtensionsService>;
22
+ }
@@ -0,0 +1,55 @@
1
+ import { BaseLocalization } from "@esfaenza/localizations";
2
+ import { MessageService } from './extensions.messages.service';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Service che fornisce un accesso base in lettura/scrittura sulla clipboard
6
+ */
7
+ export declare class ClipboardService {
8
+ private msgService;
9
+ private locProvider;
10
+ /**
11
+ * Oggetto statico di localizzazione per i messaggi di questa Service
12
+ */
13
+ private loc;
14
+ private isBrowser;
15
+ /**
16
+ * Costruttore
17
+ *
18
+ * @ignore
19
+ */
20
+ constructor(msgService: MessageService, locProvider: BaseLocalization, platformId: Object);
21
+ /**
22
+ * Prende il valore della clipboard.
23
+ * Si può specificare se ci si aspetta una lista o una matrice di valori in modo da ricevere già un risultato utilizzabile
24
+ *
25
+ * @param {'array' | 'matrix'} style Stile dell'output desiderato, se array o matrice
26
+ * @param {Function} valueFoundCallback Callback che questa funzione chiamerà una volta ottenuto i valori richiesti dalla clipboard
27
+ */
28
+ getClipboard(style: 'array' | 'matrix', valueFoundCallback: (values: string[] | string[][]) => void): Promise<void>;
29
+ /** @ignore */
30
+ private doClipboardDataGet;
31
+ /**
32
+ * Ottiene il contenuto della clipboard diviso per righe (separate da newline)
33
+ *
34
+ * @param {string} data contenuto letto dalla clipboard
35
+ *
36
+ * @returns {string[]} Array contenente il testo preso dalla clipboard diviso per riga
37
+ */
38
+ private getClipboardLines;
39
+ /**
40
+ * Ottiene il contenuto della clipboard diviso per righe (separate da newline) e colonne (separate da tab)
41
+ *
42
+ * @param {string} data contenuto letto dalla clipboard
43
+ *
44
+ * @returns {string[][]} Matrice contenente il testo preso dalla clipboard diviso per riga e colonna
45
+ */
46
+ private getClipboardMatrix;
47
+ /**
48
+ * Metodo che copia un testo all'interno della clipboard
49
+ *
50
+ * @param {string} text Testo da inserire nella clipboard
51
+ */
52
+ copyTextToClipboard(text: string): Promise<void>;
53
+ static ɵfac: i0.ɵɵFactoryDeclaration<ClipboardService, [null, { optional: true; }, null]>;
54
+ static ɵprov: i0.ɵɵInjectableDeclaration<ClipboardService>;
55
+ }
@@ -0,0 +1,103 @@
1
+ import { BaseLocalization } from "@esfaenza/localizations";
2
+ import { ReplaySubject } from "rxjs";
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Service che fornisce dei metodi di estensione per la gestione/manipolazione delle date
6
+ */
7
+ export declare class DateService {
8
+ private locProvider;
9
+ private allowUtc;
10
+ Initialized: ReplaySubject<void>;
11
+ /**
12
+ * Oggetto statico di localizzazione per i messaggi di questa Service
13
+ */
14
+ private loc;
15
+ /**
16
+ * Oggetto di configurazione per tenere da conto le informazioni sui formati
17
+ */
18
+ private cfg;
19
+ /**
20
+ * Costruttore
21
+ *
22
+ * @ignore
23
+ */
24
+ constructor(locProvider: BaseLocalization, allowUtc: boolean);
25
+ init(): Promise<void>;
26
+ /**
27
+ * Aggiusta una data in "istante finale" in base a qual è la parte di data significativa.
28
+ *
29
+ * Es. Istante finale delle ore: 05/10/1992 --> 04/10/1992 24:00(:00)
30
+ *
31
+ * @param {any} date Data qualsiasi (Date, stringa, dayjs...), verrà ricondotta ad un oggetto dayJs
32
+ * @param {'day' | 'hour' | 'minute'} timepart Parte significativa della data
33
+ * @param {boolean} printSeconds Indica se effettuare la stampa dei secondi o no
34
+ */
35
+ adjustDateToFinalInstant(date: any, timepart: 'day' | 'hour' | 'minute', printSeconds?: boolean): string;
36
+ /**
37
+ * Funzione che effettua l'ordinamento fra 2 date in base alla direzione specificata
38
+ *
39
+ * @param {any} a Prima data per il confronto
40
+ * @param {any} b Seconda data per il confronto
41
+ * @param {'asc' | 'desc'} direction Direzione rispetto a cui ordinare le due date
42
+ *
43
+ * @returns {number} 0 se le date sono uguali, 1 se la data A deve venire logicamente prima della data B, -1 altrimenti
44
+ */
45
+ dateSort(a: any, b: any, direction: 'asc' | 'desc'): number;
46
+ /**
47
+ * Effettua il trim dei secondi da una data espressa come stringa
48
+ *
49
+ * @param {string} value Data espressa come stringa
50
+ *
51
+ * @returns {string} Data senza i secondi
52
+ */
53
+ trimSeconds(value: string): string;
54
+ /**
55
+ * Data una lista di date Da e una lista di date A restituisce un oggetto rappresentante il range che include tutte le date passate
56
+ *
57
+ * @param {any[]} fromDates Lista dei Da
58
+ * @param {any[]} toDates Lista dei A
59
+ *
60
+ * @returns {{ from: any, to: any }} Range di date Da - A che include tutti i valori di **fromDates** e **toDates**
61
+ */
62
+ getMinMaxDatesRange(fromDates: any[], toDates: any[]): {
63
+ from: any;
64
+ to: any;
65
+ };
66
+ /**
67
+ * Ottiene la conversione di una data in qualsiasi formato al formato standard DayJs
68
+ *
69
+ * @param {any} date Oggetto rappresentante una data. Potrebbe essere una stringa, un Date o già un DayJs
70
+ * @param {boolean} useUtc Indica se usare l'estensione utc di Dayjs per parsare la data o no
71
+ * @param {string} format formato in cui emettere la conversione
72
+ *
73
+ * @returns {any} Data in modalità {format}
74
+ */
75
+ getDateConvertion(date: any, useUtc?: boolean, format?: 'date' | 'timestring' | 'dayjs', timestringSmall?: boolean): any;
76
+ private formattedDayjs;
77
+ /**
78
+ * Helper che restituisce **true** qualora l'oggetto passato fosse una data vera e propria, **false** altrimenti
79
+ *
80
+ * @param {any} check Oggetto da controllare
81
+ *
82
+ * @returns {boolean} Indicazione se l'oggetto è un vero Date di Javascript o no
83
+ */
84
+ private isJsDate;
85
+ /**
86
+ * Helper che restituisce **true** qualora l'oggetto passato fosse un DayJs vero e proprio, **false** altrimenti
87
+ *
88
+ * @param {any} check Oggetto da controllare
89
+ * @returns {boolean} Indicazione se l'oggetto è un vero DayJs o no
90
+ */
91
+ private isDayJs;
92
+ /**
93
+ * Ottiene la formattazione di una data in base alla versione richiesta "small" o "long" e a se stampare o meno i secondi
94
+ *
95
+ * @param {any} date Oggetto rappresentante una data. Potrebbe essere una stringa, un Date o già un DayJs
96
+ * @param {boolean} small Indica se formattarla con un formato breve (se **true**) o un formato più lungo (se **false**)
97
+ *
98
+ * @returns {string} Data formattata nel formato richiesto
99
+ */
100
+ getFormatted(date: any, small: boolean, seconds: boolean): string;
101
+ static ɵfac: i0.ɵɵFactoryDeclaration<DateService, [{ optional: true; }, { optional: true; }]>;
102
+ static ɵprov: i0.ɵɵInjectableDeclaration<DateService>;
103
+ }
@@ -0,0 +1,35 @@
1
+ import { Location } from "@angular/common";
2
+ import { Router } from "@angular/router";
3
+ import { MessageService } from "./extensions.messages.service";
4
+ import { ReplaySubject, Subject } from "rxjs";
5
+ import * as i0 from "@angular/core";
6
+ export declare class AppEmbeddingExtensions {
7
+ private msgService;
8
+ private router;
9
+ private location;
10
+ sidebarWidth: number;
11
+ EmbeddingSource: ReplaySubject<string>;
12
+ Embedded: boolean;
13
+ EmbeddingLevel: number;
14
+ MainWindow: any;
15
+ MessageObserver: Subject<{
16
+ event: any;
17
+ data: any;
18
+ }>;
19
+ private _reloadAllowed;
20
+ EmbeddedModule: string;
21
+ private pushedHistories;
22
+ private isBrowser;
23
+ constructor(msgService: MessageService, router: Router, location: Location, platformId: Object);
24
+ private waitForMyConfigAndForceEmbeddedModule;
25
+ IsReloadAllowed(): boolean;
26
+ private MessageBarrierDebouncMs;
27
+ private OnMessageCallBarrier;
28
+ private messageHash;
29
+ configureEmbeddability(): void;
30
+ private onNavigateBack;
31
+ replaceState(basePath: string, url: string): void;
32
+ refreshBoundariesOnMenuCollapse(): void;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppEmbeddingExtensions, never>;
34
+ static ɵprov: i0.ɵɵInjectableDeclaration<AppEmbeddingExtensions>;
35
+ }
@@ -0,0 +1,242 @@
1
+ import { Type } from "@angular/core";
2
+ import { LocalizationService } from "@esfaenza/localizations";
3
+ import { DateService } from './extensions.dates.service';
4
+ import { UtilityService } from "./extensions.utilities.service";
5
+ import { CsvHeaders } from "../models/CsvHeaders";
6
+ import { GenericItem } from "../models/GenericItem";
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * Decoratore che fornisce la classe di localizzazione per tutte le proprietà esportate con @Export e qualsiasi altro tag che richieda localizzazioni.
10
+ *
11
+ * Sostanzilamente aggiunge la proprietà **__loc__** all'oggetto creato dalla classe corrente assegnandogli come valore il tipo del LocalizationService da usare per la traduzione
12
+ *
13
+ * @param {Type<LocalizationService>} loc Tipo ereditato dal LocalizationService che può essere creato a runtime sotto contesto della DI di Angular
14
+ */
15
+ export declare function ExportLocalization(loc: Type<LocalizationService>): <T extends {
16
+ new (...args: any[]): {};
17
+ }>(constructor: T) => {
18
+ new (...args: any[]): {
19
+ __loc__: Type<LocalizationService>;
20
+ };
21
+ } & T;
22
+ /**
23
+ * Decoratore di esportazione utilizzabile su una proprietà singola.
24
+ * Verranno generate 3 proprietà che gestiranno l'esportazione: (prop, prop_csvvis, prop_csvhdr).
25
+ *
26
+ * Ad esempio, da questa configurazione:
27
+ *
28
+ * @example
29
+ * ```
30
+ * @Export(true, "MyHeader")
31
+ * ciao: string;
32
+ * ```
33
+ *
34
+ * Nasceranno le seguenti proprietà nell'oggetto esportabile:
35
+ *
36
+ * @example
37
+ * ```
38
+ * ciao_csvvis: string; => true
39
+ * ciao: string;
40
+ * ciao_csvhdr: string => "MyHeader"
41
+ * ```
42
+ *
43
+ * @param {number} order Ordine di esportazione. Più piccolo è, prima appare il valore
44
+ * @param {string} header Titolo della colonna nel file CSV esportato
45
+ * @param {string} format Formato di esportazione. Può essere un formato data per i campi data o 'F' per i campi floating point
46
+ */
47
+ export declare const Export: (order: number, header: string, format?: string, tableid?: string) => (target: Object, propertyKey: string) => void;
48
+ /**
49
+ * Decoratore di esportazione utilizzabile su un oggetto.
50
+ * Per ogni proprietà dell'oggetto verranno generate 3 proprietà che gestiranno l'esportazione: (prop, prop_csvvis, prop_csvhdr).
51
+ * Per essere esportate, le proprietà dell'oggetto devono essere marcate con i Decoratori di esportazione
52
+ *
53
+ * Ad esempio, da questa configurazione:
54
+ *
55
+ * @example
56
+ * ```
57
+ * MyObj {
58
+ * @Export(true, "MyHeader")
59
+ * ciao: string;
60
+ * }
61
+ *
62
+ * @ExportObject(true, "MyHeader")
63
+ * test: MyObj;
64
+ * ```
65
+ *
66
+ * Nasceranno le seguenti proprietà nell'oggetto esportabile:
67
+ *
68
+ * @example
69
+ * ```
70
+ * testciao: string; => Valore di MyObj.ciao
71
+ * testciao_csvvis: string; => true
72
+ * testciao_csvhdr: string => "MyHeader"
73
+ * ```
74
+ *
75
+ * @param {number} order Ordine di esportazione. Più piccolo è, prima appare il valore
76
+ * @param {any} type Tipo da esportare
77
+ */
78
+ export declare const ExportAs: (order: number, type: any, prefix?: string) => (target: Object, propertyKey: string) => void;
79
+ /**
80
+ * Decoratore di esportazione utilizzabile su una lista,
81
+ * si utilizzano 2 navigator rispettivamente per la valorizzazione dell'Header e del Valore e
82
+ * per ogni elemento dell'array verranno generate 3 proprietà che gestiranno l'esportazione: (prop, prop_csvvis, prop_csvhdr)
83
+ *
84
+ * ATTENZIONE: Gli oggetti esportati in questa modalità non devono presentare altri tag di tipo @Export{...} all'interno. Fa tutto questo decoratore
85
+ *
86
+ * I navigator hanno questa convenzione:
87
+ *
88
+ * . --> divide due proprietà da richiamare consecutivamente: "a.b" richiamerà "obj.a.b";
89
+ *
90
+ * | --> divide più proprietà per le concatenazioni con uno spazio fra una e l'altra: "regdesc|slice.slicename" diventerà obj.regdesc + " " + obj.slice.slicename
91
+ *
92
+ * @param {number} order Ordine di esportazione. Più piccolo è, prima appare il valore
93
+ * @param {string} headernavigator Navigator col compito di selezionare il titolo per la colonna
94
+ * @param {string} valuenavigator Navigator col compito di selezionare il valore per la colonna
95
+ * @param {string} valueformat Formato di esportazione per i valori selezionati dal **valuenavigator**. Può essere un formato data per i campi data o 'F' per i campi floating point
96
+ */
97
+ export declare const ExportList: (order: number, headernavigator: string, valuenavigator: string, valueformat?: string) => (target: Object, propertyKey: string) => void;
98
+ /**
99
+ * Decoratore di esportazione utilizzabile su un dizionario. Se ad esempio si vogliono generare le colonne
100
+ *
101
+ * Valore A = 1
102
+ *
103
+ * Valore B = 2
104
+ *
105
+ * Valore C = 3
106
+ *
107
+ * partendo da un oggetto iniziale { Valore { A: 1, B: 2, C: 3 } }
108
+ *
109
+ * @param {number} order Ordine di esportazione. Più piccolo è, prima appare il valore
110
+ * @param {string} headerprefix Prefisso per l'header
111
+ * @param {string} valueprefix Prefisso per il valore
112
+ */
113
+ export declare const ExportDictionary: (order: number, headerprefix: string, valueprefix: string) => (target: Object, propertyKey: string) => void;
114
+ /**
115
+ * Service che si occupa dell'esportazione degli oggetti marcati dai Decoratori **ExportDictionary**, **ExportList**, **ExportAs** o **Export**
116
+ */
117
+ export declare class ExportService {
118
+ private dates;
119
+ private utiExts;
120
+ private lc;
121
+ /**
122
+ * Costruttore
123
+ *
124
+ * @ignore
125
+ */
126
+ constructor(dates: DateService, utiExts: UtilityService, lc: LocalizationService);
127
+ /**
128
+ * Data una lista di oggetti genera gli header per l'esportazione e integra ogni oggetto con le proprietà esportabili dalla libreria **@ctrl/ngx-csv**
129
+ *
130
+ * @param {any[]} objs Oggetti da esportare
131
+ *
132
+ * @returns {CsvHeaders[]} Header di esportazione già ordinati correttamente
133
+ */
134
+ setupForExport(objs: any[], columns?: string[]): CsvHeaders[];
135
+ /**
136
+ * Data una lista di oggetti generici genera gli header per l'esportazione e integra ogni oggetto con le proprietà esportabili dalla libreria **@ctrl/ngx-csv**
137
+ *
138
+ * @param {GenericItem[]} objs Oggetti generici da esportare
139
+ * @param {CsvHeaders[]} columns Colonne richieste dall'esportazione
140
+ *
141
+ * @returns {CsvHeaders[]} Header di esportazione già ordinati correttamente
142
+ */
143
+ setupForGenericExport(objs: GenericItem[], columns: CsvHeaders[]): CsvHeaders[];
144
+ /**
145
+ * Dato un oggetto generico genera gli header per l'esportazione e lo integra con le proprietà esportabili dalla libreria **@ctrl/ngx-csv**
146
+ *
147
+ * Metodo interno richiamato da **setupForGenericExport**
148
+ *
149
+ * @param {GenericItem} obj Oggetto generico da esportare
150
+ * @param {CsvColumn[]} columns Colonne richieste dall'esportazione
151
+ *
152
+ * @returns {CsvHeaders[]} Header di esportazione già ordinati correttamente
153
+ */
154
+ private parseAndGetGenericHeaders;
155
+ /**
156
+ * Dato un oggetto genera gli header per l'esportazione e lo integra con le proprietà esportabili dalla libreria **@ctrl/ngx-csv**
157
+ *
158
+ * Metodo interno richiamato da **setupForExport**
159
+ *
160
+ * @param {any} obj Oggetto generico da esportare
161
+ *
162
+ * @returns {CsvHeaders[]} Header di esportazione già ordinati correttamente
163
+ */
164
+ private parseAndGetHeaders;
165
+ /**
166
+ * Setup per l'esportazione di una singola proprietà.
167
+ * Viene generato l'header e la proprietà relativa al valore formattato o no
168
+ *
169
+ * @param {any} obj Oggetto di cui esportare la proprietà **prop**
170
+ * @param {string} prop Proprietà da esportare
171
+ * @param {CsvHeaders} headers Contenitore degli header, verrà riempito da questa funzione
172
+ * @param {LocalizationService} loc Servizio di localizzazione che traduce tutti i nomi che può
173
+ */
174
+ private parseProperty;
175
+ /**
176
+ * Setup per l'esportazione di una singola proprietà da un oggetto.
177
+ * Viene generato l'header e la proprietà relativa al valore formattato o no.
178
+ *
179
+ * Per ottenere il valore e l'header della proprietà vengono utilizzati i navigatori auto-generati nel decoratore **ExportAs**
180
+ *
181
+ * @param {any} obj Oggetto di cui esportare la proprietà **prop**
182
+ * @param {string} prop Proprietà da esportare
183
+ * @param {CsvHeaders} headers Contenitore degli header, verrà riempito da questa funzione
184
+ * @param {LocalizationService} loc Servizio di localizzazione che traduce tutti i nomi che può
185
+ */
186
+ private parseObject;
187
+ /**
188
+ * Setup per l'esportazione di una lista di valori pivottati dinamicamente:
189
+ *
190
+ * => Recupero il valore utilizzando i navigatori
191
+ *
192
+ * => Recupero l'header utilizzando i navigatori
193
+ *
194
+ * => Con il valore ci creo la property
195
+ *
196
+ * => Con l'header e il riferimento alla property appena creata creo un record negli header da esportare
197
+ *
198
+ * @param {any} obj Oggetto di cui esportare la proprietà **prop**
199
+ * @param {string} prop Proprietà da esportare
200
+ * @param {CsvHeaders} headers Contenitore degli header, verrà riempito da questa funzione
201
+ * @param {LocalizationService} loc Servizio di localizzazione che traduce tutti i nomi che può
202
+ */
203
+ private parseList;
204
+ /**
205
+ * Setup per l'esportazione di una lista di valori pivottati dinamicamente:
206
+ *
207
+ * => Recupero il valore utilizzando i navigatori
208
+ *
209
+ * => Recupero l'header utilizzando i navigatori
210
+ *
211
+ * => Con il valore ci creo la property
212
+ *
213
+ * => Con l'header e il riferimento alla property appena creata creo un record negli header da esportare
214
+ *
215
+ * @param {any} obj Oggetto di cui esportare la proprietà **prop**
216
+ * @param {string} prop Proprietà da esportare
217
+ * @param {CsvHeaders} headers Contenitore degli header, verrà riempito da questa funzione
218
+ */
219
+ private parseDictionary;
220
+ /**
221
+ * Effettua l'esportazione in file CSV
222
+ */
223
+ private exportCSV;
224
+ private exportCSVBuffer;
225
+ /** Effettua l'esportazione del file Excel basandosi sul modulo **ExcelJS**, sugli header **headers** e sui dati **data** */
226
+ private exportExcel;
227
+ private exportExcelBuffer;
228
+ /**
229
+ * Metodo che effettivamente genera gli header e i dati per l'esportazione con **ngx-csv**
230
+ *
231
+ * @param {any[]} items Oggetti da esportare
232
+ */
233
+ export(items: any[], format: 'CSV' | 'XLSX', fileName: string, type: Type<any>, columnsFilter?: string[], genericHeaders?: CsvHeaders[]): CsvHeaders[];
234
+ /**
235
+ * Metodo che effettivamente genera gli header e i dati per l'esportazione con **ngx-csv**
236
+ *
237
+ * @param {any[]} items Oggetti da esportare
238
+ */
239
+ exportBuffer(items: any[], format: 'CSV' | 'XLSX', fileName: string, type: Type<any>, columnsFilter?: string[], genericHeaders?: CsvHeaders[]): Uint8Array;
240
+ static ɵfac: i0.ɵɵFactoryDeclaration<ExportService, never>;
241
+ static ɵprov: i0.ɵɵInjectableDeclaration<ExportService>;
242
+ }