UNPKG

@delon/form

Version:

Angular form generation based on JSON-Schema.

169 lines (163 loc) 6.1 kB
import * as i3 from '@delon/form'; import { SFUISchemaItem, SFSchemaEnumType, ControlUIWidget, SFValue, WidgetRegistry, SFWidgetProvideConfig } from '@delon/form'; import * as i0 from '@angular/core'; import { OnInit } from '@angular/core'; import { NzSafeAny } from 'ng-zorro-antd/core/types'; import * as i4 from 'ng-zorro-antd/upload'; import { NzUploadFile, UploadFilter, NzShowUploadList, NzUploadXHRArgs, NzUploadTransformFileType, NzUploadChangeParam } from 'ng-zorro-antd/upload'; import { Observable, Subscription } from 'rxjs'; import * as i1 from '@angular/forms'; import * as i2 from '@angular/common'; import * as i5 from 'ng-zorro-antd/icon'; import * as i6 from 'ng-zorro-antd/button'; interface SFUploadWidgetSchema extends SFUISchemaItem { /** * 异步数据源 */ asyncData?: () => Observable<SFSchemaEnumType[]>; /** * 上传类型,默认:`select` */ type?: 'select' | 'drag'; /** * 按钮文本,默认:`点击上传` */ text?: string; /** * 提醒文本,drag 时有效,默认:`支持单个或批量,严禁上传公司数据或其他安全文件` */ hint?: string; /** * 重命名返回参数,支持 `a.b.c` 的嵌套写法,若不指定表示整个返回体 */ resReName?: string; /** * 重命名预览图像URL返回参数,支持 `a.b.c` 的嵌套写法,若不指定表示使用文件对象的 `url`、`thumbUrl` 值 */ urlReName?: string; /** * **必选参数** 上传的地址 */ action?: string | ((file: NzUploadFile) => string | Observable<string>); /** * 接受上传的文件类型, 详见 [input accept Attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept) */ accept?: string | string[]; /** * 限制单次最多上传数量,`multiple` 打开时有效;`0` 表示不限,默认:`0` */ limit?: number; /** * 限制上传文件数量,超过数量隐藏上传按钮 */ limitFileCount?: number; /** * 自定义过滤器 */ filter?: UploadFilter[]; /** * 文件列表 */ fileList?: NzUploadFile[]; /** * 限制文件大小,单位:KB;`0` 表示不限,默认:`0` */ fileSize?: number; /** * 限制文件类型,例如:`image/png,image/jpeg,image/gif,image/bmp` */ fileType?: string; /** * 设置上传的请求头部 */ headers?: object | ((file: NzUploadFile) => object | Observable<object>); /** * 上传列表的内建样式,默认:`text` */ listType?: 'text' | 'picture' | 'picture-card'; /** * 是否展示列表, 可设为一个对象,用于单独设定 `showPreviewIcon` 和 `showRemoveIcon`,默认:`true` */ showUploadList?: boolean | NzShowUploadList; /** * 是否支持多选文件,`IE10+` 支持。开启后按住 `ctrl` 可选择多个文件,默认:`false` */ multiple?: boolean; /** * 发到后台的文件参数名,默认:`file` */ name?: string; /** * 上传所需参数或返回上传参数的方法 */ data?: object | ((file: NzUploadFile) => object | Observable<object>); /** * 上传请求时是否携带 cookie,默认:`false` */ withCredentials?: boolean; /** * 支持上传文件夹([caniuse](https://caniuse.com/#feat=input-file-directory)),默认:`false` */ directory?: boolean; /** * 点击打开文件对话框,默认:`true` */ openFileDialogOnClick?: boolean; /** * 上传文件之前的钩子,参数为上传的文件,若返回 `false` 则停止上传 */ beforeUpload?: (file: NzUploadFile, fileList: NzUploadFile[]) => boolean | Observable<boolean>; /** * 通过覆盖默认的上传行为,可以自定义自己的上传实现 */ customRequest?: (item: NzUploadXHRArgs) => Subscription; /** * 点击移除文件时的回调,返回值为 `false` 时不移除 */ remove?: (file: NzUploadFile) => boolean | Observable<boolean>; /** * 点击文件链接或预览图标时的回调 */ preview?: (file: NzUploadFile) => void; /** * 自定义文件预览逻辑 */ previewFile?: (file: NzUploadFile) => Observable<string>; /** * 点击下载文件时的回调,如果没有指定,则默认跳转到文件 url 对应的标签页 */ download?: (file: NzUploadFile) => void; /** * 在上传之前转换文件。支持返回一个 Observable 对象 */ transformFile?: (file: NzUploadFile) => NzUploadTransformFileType; /** * 上传文件改变时的状态 */ change?: (args: NzUploadChangeParam) => void; } declare class UploadWidget extends ControlUIWidget<SFUploadWidgetSchema> implements OnInit { static readonly KEY = "upload"; i: NzSafeAny; fileList: NzUploadFile[]; btnType: string; ngOnInit(): void; change(args: NzUploadChangeParam): void; reset(value: SFValue): void; private _getValue; private pureValue; private _setValue; handleRemove: () => boolean; handlePreview: (file: NzUploadFile) => void; static ɵfac: i0.ɵɵFactoryDeclaration<UploadWidget, never>; static ɵcmp: i0.ɵɵComponentDeclaration<UploadWidget, "sf-upload", never, {}, {}, never, never, true, never>; } declare class UploadWidgetModule { constructor(widgetRegistry: WidgetRegistry); static ɵfac: i0.ɵɵFactoryDeclaration<UploadWidgetModule, never>; static ɵmod: i0.ɵɵNgModuleDeclaration<UploadWidgetModule, never, [typeof i1.FormsModule, typeof i2.CommonModule, typeof i3.DelonFormModule, typeof i4.NzUploadModule, typeof i5.NzIconModule, typeof i6.NzButtonModule, typeof UploadWidget], never>; static ɵinj: i0.ɵɵInjectorDeclaration<UploadWidgetModule>; } declare function withUploadWidget(): SFWidgetProvideConfig; export { UploadWidget, UploadWidgetModule, withUploadWidget }; export type { SFUploadWidgetSchema };