import { ElementRef, EventEmitter, OnDestroy, OnInit, Renderer2 } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; import { BehaviorSubject } from 'rxjs'; export declare class GasUploaderDirective implements OnInit, ControlValueAccessor, OnDestroy { private elementRef; private renderer; onChangeFile$: EventEmitter; type: string; isDragAndDrop: string | boolean; activeDraggedClass: string; clickable: boolean; maxFileSize: number; /** * Требуется указывать MIME тип */ accept: string; multi: boolean; errorSubject$: BehaviorSubject; private input; constructor(elementRef: ElementRef, renderer: Renderer2); upload(): void; dragOverFile(event: DragEvent): void; dragLeaveFile(event: DragEvent): void; dropFile(event: DragEvent): void; /** * метод получает загруженный файл и сообщает через метод onChange * что значение изменилось */ uploadFile(event: any, isDrag?: boolean): void; ngOnInit(): void; selectFile(): void; ngOnDestroy(): void; writeValue(value: File | File[]): void; registerOnTouched(fn: () => void): void; registerOnChange(fn: () => void): void; /** * Данный метод создает и помещает в конец body тег * ставит ему display = 'none'и навешивает обработчик события input * далее при загрузке файла срабатывает метод uploadFile */ createInputFile(): void; /** * Проверяет загружаемый файл на соответсвие типу расширения * если тип не был передан будет возвращаться true * если тип передан то происходит проверка */ checkFileType(type: string, file: File): boolean; /** * если elementRef.nativeElement.nodeName равен GAS-UPLOADER, значит мы имеем дело с компонентом uploadera * он всегда должен быть dragAndDrop */ setIsDragAndDropValue(): void; onChange: (value: File | File[]) => void; onTouched: () => void; private getFileArray; }