import * as _ng_nest_ui_core from '@ng-nest/ui/core'; import { XBoolean, XTemplate, XNumber, XPosition, XCorner } from '@ng-nest/ui/core'; import * as _angular_core from '@angular/core'; import { ElementRef, AfterViewInit, OnDestroy } from '@angular/core'; import { HttpEvent } from '@angular/common/http'; import * as rxjs from 'rxjs'; import { XI18nUpload } from '@ng-nest/ui/i18n'; import { XPortalOverlayRef } from '@ng-nest/ui/portal'; /** * Upload * @selector x-upload * @decorator component */ declare const XUploadPrefix = "x-upload"; declare const XUploadProperty_base: new () => { config: _ng_nest_ui_core.XUploadConfig | undefined; cdr: _angular_core.ChangeDetectorRef; invalid: _angular_core.Signal; invalidPattern: _angular_core.Signal; requiredIsEmpty: _angular_core.Signal; invalidMessage: _angular_core.Signal; value: _angular_core.WritableSignal; valueObservable: rxjs.Observable; validatorSignal: _angular_core.WritableSignal; disabledSignal: _angular_core.WritableSignal; requiredSignal: _angular_core.WritableSignal; patternSignal: _angular_core.WritableSignal; messageSignal: _angular_core.WritableSignal; requiredComputed: _angular_core.Signal; disabledComputed: _angular_core.Signal; validatorComputed: _angular_core.Signal; patternComputed: _angular_core.Signal; messageComputed: _angular_core.Signal; invalidInputValidator: _angular_core.WritableSignal; onChange: (value: any) => void; onTouched: () => void; writeValue(value: any): void; registerOnChange(fn: (value: any) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(disabled: boolean): void; formControlValidator(): void; readonly validator: _angular_core.InputSignalWithTransform; readonly label: _angular_core.InputSignal; readonly labelWidth: _angular_core.InputSignalWithTransform; readonly labelAlign: _angular_core.InputSignal<_ng_nest_ui_core.XAlign>; readonly justify: _angular_core.InputSignal<_ng_nest_ui_core.XJustify>; readonly align: _angular_core.InputSignal<_ng_nest_ui_core.XAlign>; readonly direction: _angular_core.InputSignal<_ng_nest_ui_core.XDirection>; readonly size: _angular_core.InputSignal<_ng_nest_ui_core.XSize>; readonly placeholder: _angular_core.InputSignal; readonly disabled: _angular_core.InputSignalWithTransform; readonly required: _angular_core.InputSignalWithTransform; readonly readonly: _angular_core.InputSignalWithTransform; readonly valueTpl: _angular_core.InputSignal<_angular_core.TemplateRef | undefined>; readonly valueTplContext: _angular_core.InputSignal; readonly before: _angular_core.InputSignal; readonly after: _angular_core.InputSignal; readonly pattern: _angular_core.InputSignal; readonly message: _angular_core.InputSignal; readonly active: _angular_core.ModelSignal; readonly pointer: _angular_core.InputSignalWithTransform; readonly inputValidator: _angular_core.InputSignal<((value: any) => boolean) | undefined>; }; /** * Upload Property */ declare class XUploadProperty extends XUploadProperty_base { /** * @zh_CN 显示文字 * @en_US Display text */ readonly text: _angular_core.InputSignal; /** * @zh_CN 请求地址 * @en_US Request address */ readonly action: _angular_core.InputSignal; /** * @zh_CN 可拖拽上传的区域 * @en_US Drag and drop upload area */ readonly dropContainer: _angular_core.InputSignal | HTMLElement | undefined>; /** * @zh_CN 可拖拽上传的区域的图标 * @en_US Drag and drop upload area icon */ readonly dropIcon: _angular_core.InputSignal; /** * @zh_CN 可拖拽上传的区域的标题 * @en_US Drag and drop upload area title */ readonly dropTitle: _angular_core.InputSignal; /** * @zh_CN 可拖拽上传的区域的描述 * @en_US Drag and drop upload area description */ readonly dropDescription: _angular_core.InputSignal; /** * @zh_CN 直接显示可拖拽上传的区域 * @en_US Show the drag and drop upload area directly */ readonly showDrop: _angular_core.InputSignalWithTransform; /** * @zh_CN 上传文件类型,与原生的 input file 组件一致 * @en_US Upload file type, consistent with native input file component */ readonly accept: _angular_core.InputSignal; /** * @zh_CN 文件显示类型 * @en_US File display type */ readonly type: _angular_core.InputSignal; /** * @zh_CN 图片类型下面加载失败显示 * @en_US Photo type below loading failed display */ readonly imgFallback: _angular_core.InputSignal; /** * @zh_CN 图片剪裁 * @en_US Picture cropping */ readonly imgCut: _angular_core.InputSignalWithTransform; /** * @zh_CN 多文件上传 * @en_US Multiple file upload */ readonly multiple: _angular_core.InputSignalWithTransform; /** * @zh_CN 点击下载 * @en_US click download */ readonly download: _angular_core.InputSignalWithTransform; /** * @zh_CN 多次上传的模式,cover 覆盖现有, add 继续添加 * @en_US For many upload mode, 'cover' covers the existing, 'add' continue to add */ readonly multipleModel: _angular_core.InputSignal; /** * @zh_CN 文件列表自定义显示模板 * @en_US File list custom display template */ readonly filesTpl: _angular_core.InputSignal; /** * @zh_CN 限制单次上传文件个数,只有开启多文件上传 multiple 时生效,默认不做限制 * @en_US Limit the number of files uploaded files. Do not restrict the default */ readonly maxLimit: _angular_core.InputSignalWithTransform; /** * @zh_CN 设置上传的请求头部 * @en_US Set the upload request header */ readonly headers: _angular_core.InputSignal<{ [key: string]: any; } | undefined>; /** * @zh_CN 删除按钮的事件 * @en_US Delete button event */ readonly removeClick: _angular_core.OutputEmitterRef<{ file: XUploadNode; index: number; }>; /** * @zh_CN 开始上传事件 * @en_US Start upload event */ readonly uploadReady: _angular_core.OutputEmitterRef; /** * @zh_CN 正在上传事件 * @en_US Start upload event */ readonly uploading: _angular_core.OutputEmitterRef; /** * @zh_CN 上传成功事件 * @en_US Start upload event */ readonly uploadSuccess: _angular_core.OutputEmitterRef; /** * @zh_CN 上传失败事件 * @en_US Start upload event */ readonly uploadError: _angular_core.OutputEmitterRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * @zh_CN Upload 数据对象 * @en_US Upload data object */ interface XUploadNode extends File { /** * @zh_CN 地址 * @en_US address */ url?: string; /** * @zh_CN 状态 * @en_US status */ state?: XStateType; /** * @zh_CN 上传进度 * @en_US Upload progress */ percent?: XNumber; /** * @zh_CN 上传返回数据 * @en_US Upload body */ body?: any; } /** * @zh_CN 文件状态 * @en_US File status */ type XStateType = 'ready' | 'uploading' | 'success' | 'error'; /** * @zh_CN 文件显示类型 * @en_US File display type */ type XUploadType = 'list' | 'img'; /** * @zh_CN 多次上传的模式,cover 覆盖现有 add 继续添加 * @en_US For many upload mode, 'cover' covers the existing, 'add' continue to add */ type XUploadMultipleModel = 'cover' | 'add'; /** * @zh_CN 剪裁的方位 * @en_US Tailored orientation */ type XUploadCutType = XPosition | XCorner | ''; /** * @zh_CN 上传显示窗口 * @en_US Upload portal * @selector x-upload-portal * @decorator component */ declare const XUploadPortalPrefix = "x-upload-portal"; declare class XUploadPortalComponent implements AfterViewInit, OnDestroy { file: _angular_core.InputSignal; name: _angular_core.Signal; url: _angular_core.Signal; imgRef: _angular_core.Signal>; imgClipRef: _angular_core.Signal>; boundaryRef: _angular_core.Signal>; cutRef: _angular_core.Signal>; ready: _angular_core.WritableSignal; cutType: _angular_core.WritableSignal; proportion: _angular_core.WritableSignal; originalSize: { width: number; height: number; }; boundaryBox: { width: number; height: number; }; cutBox: { width: number; height: number; x: number; y: number; }; clipRect: { top: number; right: number; bottom: number; left: number; }; doc: Document; closePortal: _angular_core.OutputEmitterRef; surePortal: _angular_core.OutputEmitterRef; private unSubject; private renderer; ngAfterViewInit(): void; ngOnDestroy(): void; setCut(): void; setOriginalSize(): void; setCutEle(position: XUploadCutType, x: number, y: number): void; sure(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class XUploadComponent extends XUploadProperty { private http; private portalService; private viewContainerRef; private i18n; private renderer; private dragOverlayService; private dropSubscription?; private dragCounter; elementRef: ElementRef; get getShowDrop(): boolean; file: _angular_core.Signal>; files: _angular_core.WritableSignal; showUpload: _angular_core.WritableSignal; uploadNodes: _angular_core.WritableSignal; locale: _angular_core.Signal; portal: XPortalOverlayRef; getText: _angular_core.Signal<_ng_nest_ui_core.XTemplate | undefined>; isTemplateText: _angular_core.Signal; writeValue(value: XUploadNode[]): void; acceptSignal: _angular_core.Signal; constructor(); ngAfterViewInit(): void; ngOnDestory(): void; private setupDropContainer; private addDragOverStyle; private removeDragOverStyle; setFiles(): void; change(event: Event): void; handleFiles(fileList: FileList): void; remove(file: XUploadNode, index: number): void; uploadClick(): void; onUploading(): void; uploadFile(file: XUploadNode, index?: number): void; getEventMessage(event: HttpEvent, file: XUploadNode, successFunc: Function): string | undefined; onImgCut(file: XUploadNode, index: number): void; setInstance(file: XUploadNode, index: number): void; portalAttached(): boolean | undefined; closePortal(): boolean; imgError(_event: ErrorEvent, file: XUploadNode): void; imgLoad(file: XUploadNode): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class XUploadModule { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵmod: _angular_core.ɵɵNgModuleDeclaration; static ɵinj: _angular_core.ɵɵInjectorDeclaration; } export { XUploadComponent, XUploadModule, XUploadPortalComponent, XUploadPortalPrefix, XUploadPrefix, XUploadProperty }; export type { XStateType, XUploadCutType, XUploadMultipleModel, XUploadNode, XUploadType };