import { Subject, BehaviorSubject } from 'rxjs'; import { ActivatedRoute, Router } from '@angular/router'; import { CRUDPagination, CRUDPayloadData, CRUDResolverInterface } from './types/crud.types'; import { Filtro } from './filtri/filtri.type'; import { FiltriParser } from './filtri/services/parser/filtri-parser'; import { ElencoFiltriService } from './filtri/ElencoFiltri.service'; import { CRUDColumn } from './crud-dom/crud-column'; import { SpreadSheetsExporter } from './exports/spreadsheets/spreadsheets-exporter.class'; import { PDFExporter } from './exports/pdf/pdf-exporter.class'; import { IcsExporter } from './exports/ics/ics-exporter.class'; import { SessionHandler } from './session-handler/session-handler.service'; import { UriHandler } from './uri-handler/uri-handler.service'; import { TranslateService } from '@ngx-translate/core'; import { AppLocaleService } from '@alfercom/common-utils'; export declare class CRUDService { protected router: Router; protected activatedRoute: ActivatedRoute; protected translateService: TranslateService; protected appLocale: AppLocaleService; private spreadSheetsExporter; private pdfExporter; private icsExporter; protected sessionHandler: SessionHandler; protected uriHandler: UriHandler; serverSideDriver: CRUDResolverInterface; serverSideDriverParams: any; originData: any[]; dataset: any[]; rows: any[]; hasBeenInit: boolean; hasBeenInitSub: Subject; isDataAccumulati: boolean; protected searchFilterName: string; protected filterSearchValue: string; protected searchFilterValueSub: BehaviorSubject; protected useFilters: boolean; protected filters: any[]; protected filtersSettings: any[]; protected hasFiltersSettings: boolean; protected filtersService: ElencoFiltriService; protected filterParser: FiltriParser; protected columns: CRUDColumn[]; protected exportColumns: CRUDColumn[]; protected allColumns: CRUDColumn[]; defaultCRUDSettings: CRUDPayloadData; private isLoading; private currentQuery; private currentQuerySubject; private isLoadingSubject; private isServerSideSubject; private pagingDataSubject; private rowsSubject; private pagingData; lastQuery: any; lastQueryParsed: any; protected exportFormats: { id: string; text: string; }[]; private searchFilterLabelPrefix; constructor(router: Router, activatedRoute: ActivatedRoute, translateService: TranslateService, appLocale: AppLocaleService); init(serverSideDriver?: any, serverSideDriverParams?: any, data?: CRUDPayloadData, columns?: CRUDColumn[], exportColumns?: CRUDColumn[]): void; checkCurrentQuery(isUndefinedLimitForced?: boolean): void; setIsLoading(value: boolean): void; query(where: any, goToPageZero?: boolean): void; order(orderBy: { prop: string; dir: string; }, goToPageZero?: boolean): void; runQuery(input?: { getAll?: boolean; returnData?: boolean; forceRunQuery?: boolean; }): import("rxjs").Observable; /** * Centralizzato. Taccone per evitare di fare due chiamate uguali ❤️ * @param query * @param returnData * @param subRes */ getData(query: any, returnData: any, forceRunQuery: any, subRes: any): void; handleServerResponse(data: any): void; setServerSideDriverParams(params: any): void; setServerSideDriver(service: any): void; getCurrentQuery(): import("rxjs").Observable<{ where?: any; order?: any; limit?: number; offset?: number; }>; getRows(): import("rxjs").Observable; getPagination(): import("rxjs").Observable; emitConfigData(): void; /** * Ha il compito di fare il parsing delle rows */ private parseRows; getIsServerSide(): import("rxjs").Observable; getIsLoading(): import("rxjs").Observable; changeLimit(limit: any, runQuery?: boolean): void; changeOffset(offset: any): void; changeOrder(order: { prop: string; dir: string; }): void; setCRUDSettings(settings: { limit?: number; offset?: number; order?: { prop: string; dir: string; }; }, runQuery: boolean): void; getCurrentQuerySnapshot(): { where?: any; order?: any; limit?: number; offset?: number; }; export(type: string, fileName: string, columns?: any[]): import("rxjs").Observable<{ data: any[]; }>; initExporter(type: string, columns?: any[]): void; setDataset(data: any[], runParse?: boolean): void; setDefaultCRUDSettings(value: CRUDPayloadData): void; private getCRUDSettings; /** * Ottiene filter dall'url * @param route */ getFiltersFromURI(route: ActivatedRoute): Filtro[]; /** * Aggiorno i filters di crud service guardando ai filtri su filterService */ updateFiltersFromElencoFiltriService(): void; protected initSearchField(): void; /** * @deprecated * @param filtersSettings */ initFiltersConfig(filtersSettings?: any[]): void; /** * Centralizzata l'init dei filtri * Vengono prese le config in input, dopo aver controllato se son presenti anche filtri dall'URI, * aggiorno le config di ciascun filtro, oppure creo dei filtri ex novo dalle config * @param filtersSettings */ initFiltersAndCheckConfigs(filtersSettings?: any[]): void; /** * Si abbona a filtersService per ottenere i filtri aggiornati */ private initNewFiltersSettedByUserListener; getSearchValue(): import("rxjs").Observable; searchValueSnapshot(): string; /** * * @param value */ setSearchValue(value: any): void; setSearchFilterName(value: string): void; triggerSearch(): void; applyFilters(filters: any, executeQuery?: boolean): void; onUpdatedFilters(filters: any): void; getFiltersService(): ElencoFiltriService; getFiltersSettings(): any[]; getFilters(): any[]; setExportFormats(formats: { id: string; text: string; }[]): void; getSpreadSheetExporter(): SpreadSheetsExporter; getPDFExporter(): PDFExporter; getIcsExporter(): IcsExporter; /** * */ getI18nCaptions(): void; }