import * as i0 from '@angular/core'; import { OnInit, OnDestroy } from '@angular/core'; import { MatPaginator } from '@angular/material/paginator'; import { SdModal } from '@sdcorejs/angular/components/modal'; interface SdImportExcelValidation { idx: number; errorMessage?: string; warningMessage?: string; } interface SdImportExcelSheet { name: string; items: T[] | (() => Promise); headers: { value: Extract; display: string; }[]; } interface SdImportExcelOption { columns: SdUploadExcelColumn[]; accept: (items: T[], args: { file: File; }) => SdImportExcelValidation[] | Promise; title?: string; fileName?: string; limit?: number; sheets?: SdImportExcelSheet[]; transform?: (items: SdImportExcelItem[]) => SdImportExcelItem[] | Promise[]>; validateItem?: (item: T, idx: number, items: T[]) => SdImportExcelValidation | Promise; validateItems?: (items: T[]) => SdImportExcelValidation[] | Promise; } type SdUploadExcelColumn = SdUploadExcelColumnString | SdUploadExcelColumnNumber | SdUploadExcelColumnBool | SdUploadExcelColumnDate | SdUploadExcelColumnTime | SdUploadExcelColumnDateTime | SdUploadExcelColumnValues | SdUploadExcelColumnStringArray; interface SdUploadExcelBaseColumn { field: string; title: string; required?: boolean; width?: string; description?: string; hidden?: boolean | (() => boolean); fontColor?: string; fill?: string; transform?: (value: any, rowData: T) => string | Promise; } interface SdUploadExcelColumnString extends SdUploadExcelBaseColumn { type: 'string'; defaultValue?: string; pattern?: string; minlength?: number; maxlength?: number; } interface SdUploadExcelColumnNumber extends SdUploadExcelBaseColumn { type: 'number'; defaultValue?: number; min?: number; max?: number; } interface SdUploadExcelColumnBool extends SdUploadExcelBaseColumn { type: 'bool'; defaultValue?: boolean; parseToBool?: boolean; } interface SdUploadExcelColumnDate extends SdUploadExcelBaseColumn { type: 'date'; format?: 'dd/MM/yyyy'; defaultValue?: Date; minDate?: Date; maxDate?: Date; } interface SdUploadExcelColumnTime extends SdUploadExcelBaseColumn { type: 'time'; format?: 'HH:mm' | 'HH:mm:ss'; defaultValue?: Date; minDate?: Date; maxDate?: Date; } interface SdUploadExcelColumnDateTime extends SdUploadExcelBaseColumn { type: 'datetime'; format?: 'dd/MM/yyyy HH:mm' | 'dd/MM/yyyy'; defaultValue?: Date; minDate?: Date; maxDate?: Date; } interface SdUploadExcelColumnValues extends SdUploadExcelBaseColumn { type: 'values' | 'radio'; defaultValue?: string | number; values: (string | number)[]; checkValueInArray?: boolean; } interface SdUploadExcelColumnStringArray extends SdUploadExcelBaseColumn { type: 'array'; divideString: string | ';'; unitString: string | 'items'; defaultValue?: string; minlength?: number; maxlength?: number; } interface SdImportExcelItem { data: T; meta: { excelIndex: number; origin: T; error: Record; errorMessages: string[]; warning: Record; warningMessages: string[]; }; } declare class SdImportExcel implements OnInit, OnDestroy { #private; private ref; private excelService; private notifyService; private columnHiddenPipe; private loadingService; option: SdImportExcelOption; modal: SdModal; excelItems: SdImportExcelItem[]; hasDescription: boolean; showing: 'ALL' | 'SUCCESS' | 'WARNING' | 'ERROR'; filteredItems: SdImportExcelItem[]; viewItems: SdImportExcelItem[]; numberOfSuccess: number; numberOfError: number; numberOfWarning: number; file?: File; set paginator(paginator: MatPaginator); uploading: boolean; isUploaded: boolean; isDownloadTemplate: boolean; readonly sdClosed: i0.OutputEmitterRef; /** Inserted by Angular inject() migration for backwards compatibility */ constructor(...args: unknown[]); ngOnInit(): void; ngOnDestroy(): void; open: () => void; close: () => void; upload: () => Promise; accept: () => void; setValidation: (validations: SdImportExcelValidation[]) => void; view: (showing?: "ALL" | "SUCCESS" | "WARNING" | "ERROR") => void; downloadTemplate: () => Promise; export: () => Promise; onClosed: () => void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export { SdImportExcel }; export type { SdImportExcelItem, SdImportExcelOption, SdImportExcelSheet, SdImportExcelValidation, SdUploadExcelBaseColumn, SdUploadExcelColumn, SdUploadExcelColumnBool, SdUploadExcelColumnDate, SdUploadExcelColumnDateTime, SdUploadExcelColumnNumber, SdUploadExcelColumnString, SdUploadExcelColumnStringArray, SdUploadExcelColumnTime, SdUploadExcelColumnValues };