import * as i0 from '@angular/core'; import { OnChanges, OnDestroy, ChangeDetectorRef, EventEmitter, ElementRef, SimpleChanges } from '@angular/core'; import { HttpResponse, HttpErrorResponse, HttpClient } from '@angular/common/http'; import { NgControl, NgForm, FormGroupDirective } from '@angular/forms'; import { DestroyCtor, I18nCtor, FormAccessorCtor, ErrorStateCtor } from '@usitsdasdesign/dds-ng/core/common-behaviors'; import { SizePipe } from '@usitsdasdesign/dds-ng/core/size'; import { ThemeClassesMap } from '@usitsdasdesign/dds-ng/core/theme'; import { Themes, ErrorState, ButtonKind } from '@usitsdasdesign/dds-ng/shared'; import { DdsConfigService } from '@usitsdasdesign/dds-ng/shared/dds-config'; import { I18nService, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n'; import { Subscription, BehaviorSubject } from 'rxjs'; interface UploaderOptions { heading?: string; description?: string; url?: string; dragAndDropIcon?: string; dragAndDropText?: string; customClass?: string; isDragAndDrop?: boolean; isMultiple?: boolean; isDownloadable?: boolean; maxSize?: number; maxTotalSize?: number; maxFiles?: number; maxSymbolsName?: number; maxSymbolsNameError?: number; acceptFormats?: MimeType | string; acceptExtensions?: string; restrictedFormats?: MimeType | string; restrictedExtensions?: string; theme?: Themes | string; exceptSymbols?: string; btnLabel?: string; isError?: boolean; isInverse?: boolean; errorState?: string | ErrorState; errorMessage?: string; itemErrorMessage?: string; itemSuccessMessage?: string; knownExtensions?: ExtensionsMap; unknownExtensionsIcon?: string; disabled?: boolean; isRequired?: boolean; allowFilesWithoutType?: boolean; chooseFileBtnKind?: ButtonKind | string; downloadBtnText?: string; removeBtnText?: string; refreshText?: string; maxSizeError?: string; maxFilesErrorText?: string; specialSymbolsErrorText?: string; fileTypeErrorText?: string; noFileTypeErrorText?: string; maxTotalSizeErrorText?: string; nameLengthErrorText?: string; } interface ExtensionsMap { [key: string]: string; } interface UploadedFile { name?: string; type?: string; size?: number; [key: string]: any; } declare enum UploadFileStatus { progress = 0, success = 1, error = 2 } declare class UploadFile { file: T; message: string; fileName: string; fileExtenstion: string; status: UploadFileStatus; successInfoStatus: boolean; errorMessage: string[]; progress: number; description: string; request: Subscription; response: HttpResponse | HttpErrorResponse; isDownloadable: boolean; constructor(file: T); remove: () => void; update: () => void; isSuccess: () => boolean; isError: () => boolean; inProgress: () => boolean; } declare const UploaderBase: DestroyCtor & I18nCtor & FormAccessorCtor & ErrorStateCtor; declare class UploaderComponent extends UploaderBase implements OnChanges, OnDestroy { private ddsConfig; i18n: I18nService; cdr: ChangeDetectorRef; ngControl: NgControl; parentForm: NgForm; parentFormGroup: FormGroupDirective; private http; private sizePipe; disabled: boolean | undefined; theme: Themes | string | undefined; description: string | undefined; url: string | undefined; exceptSymbols: string | undefined; heading: string | undefined; btnLabel: string | undefined; errorMessage: string | undefined; itemErrorMessage: string | undefined; itemSuccessMessage: string | undefined; dragAndDropIcon: string | undefined; dragAndDropText: string | undefined; customClass: string | undefined; acceptFormats: MimeType | string | undefined; acceptExtensions: string | undefined; isDragAndDrop: boolean | undefined; isMultiple: boolean | undefined; isError: boolean | undefined; errorState: string | ErrorState | undefined; maxSize: number | undefined; maxTotalSize: number | undefined; maxFiles: number | undefined; maxSymbolsName: number | undefined; maxSymbolsNameError: number | undefined; knownExtensions: ExtensionsMap | undefined; unknownExtensionsIcon: string | undefined; isInverse: boolean | undefined; isDownloadable: boolean | undefined; isRequired: boolean | undefined; allowFilesWithoutType: boolean | undefined; chooseFileBtnKind: ButtonKind | string | undefined; value: FileList | UploadedFile[] | undefined; set restrictedFormats(formats: MimeType | string | undefined); set restrictedExtensions(extensions: string | undefined); downloadBtnText: string | undefined; removeBtnText: string | undefined; refreshText: string | undefined; maxSizeError: string | undefined; maxFilesErrorText: string | undefined; specialSymbolsErrorText: string | undefined; fileTypeErrorText: string | undefined; noFileTypeErrorText: string | undefined; maxTotalSizeErrorText: string | undefined; nameLengthErrorText: string | undefined; extensionErrorText: string | undefined; uploadedItems: EventEmitter; removedItem: EventEmitter; downloadedItem: EventEmitter; fileInput: ElementRef; uploadList: BehaviorSubject; errorMaxFiles: string; errorMaxTotalSize: string; errorDuplicate: string[]; errorSpecialSymbols: string[]; invalidExtensionFileNames: string[]; convertedMaxSize: number; convertedMaxTotalSize: number; uploadBtnDisabled: boolean; dragAreaActive: boolean; dragAndDropTextInternal: string; duplicateErrorText: string[]; themeConfig: ThemeClassesMap; themeBtnConfig: ThemeClassesMap; private uploadFiles; private shownFiles; private addedTotalSize; private restrictedFormatsList; private restrictedExtensionsList; get notMaxTotalSize(): boolean; get isErrorMessageShown(): boolean; constructor(ddsConfig: DdsConfigService, i18n: I18nService, cdr: ChangeDetectorRef, ngControl: NgControl, parentForm: NgForm, parentFormGroup: FormGroupDirective, http: HttpClient, sizePipe: SizePipe); ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; writeValue(fileList: FileList): void; setDisabledState(disabled: boolean): void; dropFiles(event: DragEvent): void; toggleActiveDragArea(status: boolean): void; dragoverFiles(event: DragEvent): void; addToListAndLoad(fileList?: FileList | UploadedFile[], isModelChange?: boolean): void; cleanInput(fileList: HTMLInputElement): void; getFileExtensionIcon(name: string): string; refreshUploadFile(file: UploadFile): void; reset(): void; download(item: UploadFile): void; private checkAndSetMaxSize; private checkDublicateFile; private checkFilesFormat; private checkForLimitation; private setDisabledUploadBtn; private validateLengthFiles; private truncateFileName; private _addToUploadList; private _remove; private uploadAll; private _upload; private _uploadProgress; private _uploadComplete; private _uploadFailed; private fieldInputReset; private changeHandle; private eventDefault; protected setI18nTexts(translation: ITranslation): void; downloadBtnAriaLabel(filename: string): string; removeBtnAriaLabel(filename: string): string; private duplicateNameErrorText; private invalidExtensionErrorText; private getRestrictedArray; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class UploaderModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { UploadFile, UploadFileStatus, UploaderComponent, UploaderModule }; export type { ExtensionsMap, UploadedFile, UploaderOptions };