UNPKG

@delon/form

Version:

Angular form generation based on JSON-Schema.

1 lines 14.4 kB
{"version":3,"file":"widgets-upload.mjs","sources":["../../../../packages/form/widgets/upload/widget.ts","../../../../packages/form/widgets/upload/module.ts","../../../../packages/form/widgets/upload/index.ts","../../../../packages/form/widgets/upload/widgets-upload.ts"],"sourcesContent":["import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { of } from 'rxjs';\n\nimport { ControlUIWidget, DelonFormModule, SFValue, getData, toBool } from '@delon/form';\nimport { deepGet } from '@delon/util/other';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzImageService } from 'ng-zorro-antd/image';\nimport { NzUploadChangeParam, NzUploadFile, NzUploadModule } from 'ng-zorro-antd/upload';\n\nimport type { SFUploadWidgetSchema } from './schema';\n\n@Component({\n selector: 'sf-upload',\n template: `<sf-item-wrap\n [id]=\"id\"\n [schema]=\"schema\"\n [ui]=\"ui\"\n [showError]=\"showError\"\n [error]=\"error\"\n [showTitle]=\"schema.title\"\n >\n <nz-upload\n [nzType]=\"i.type\"\n [(nzFileList)]=\"fileList\"\n [nzDisabled]=\"disabled\"\n [nzAction]=\"i.action\"\n [nzDirectory]=\"i.directory\"\n [nzOpenFileDialogOnClick]=\"i.openFileDialogOnClick\"\n [nzAccept]=\"i.accept\"\n [nzLimit]=\"i.limit\"\n [nzFilter]=\"i.filter\"\n [nzSize]=\"i.size\"\n [nzFileType]=\"i.fileType\"\n [nzHeaders]=\"ui.headers\"\n [nzData]=\"ui.data\"\n [nzListType]=\"i.listType\"\n [nzMultiple]=\"i.multiple\"\n [nzName]=\"i.name\"\n [nzShowUploadList]=\"i.showUploadList\"\n [nzWithCredentials]=\"i.withCredentials\"\n [nzBeforeUpload]=\"i.beforeUpload\"\n [nzCustomRequest]=\"i.customRequest\"\n [nzRemove]=\"ui.remove || handleRemove\"\n [nzPreview]=\"handlePreview\"\n [nzPreviewFile]=\"ui.previewFile\"\n [nzDownload]=\"ui.download\"\n [nzTransformFile]=\"ui.transformFile\"\n (nzChange)=\"change($event)\"\n [nzShowButton]=\"fileList.length < i.limitFileCount\"\n >\n @switch (btnType) {\n @case ('plus') {\n <nz-icon nzType=\"plus\" />\n <div class=\"ant-upload-text\" [innerHTML]=\"i.text\"></div>\n }\n @case ('drag') {\n <p class=\"ant-upload-drag-icon\"><nz-icon nzType=\"inbox\" /></p>\n <p class=\"ant-upload-text\" [innerHTML]=\"i.text\"></p>\n <p class=\"ant-upload-hint\" [innerHTML]=\"i.hint\"></p>\n }\n @default {\n <button type=\"button\" nz-button><nz-icon nzType=\"upload\" /><span [innerHTML]=\"i.text\"></span></button>\n }\n }\n </nz-upload>\n </sf-item-wrap>`,\n encapsulation: ViewEncapsulation.None,\n imports: [FormsModule, DelonFormModule, NzUploadModule, NzIconModule, NzButtonModule]\n})\nexport class UploadWidget extends ControlUIWidget<SFUploadWidgetSchema> implements OnInit {\n static readonly KEY = 'upload';\n\n i: NzSafeAny;\n fileList: NzUploadFile[] = [];\n btnType = '';\n\n ngOnInit(): void {\n const {\n type,\n text,\n hint,\n action,\n accept,\n limit,\n filter,\n fileSize,\n fileType,\n listType,\n multiple,\n name,\n showUploadList,\n withCredentials,\n resReName,\n urlReName,\n beforeUpload,\n customRequest,\n directory,\n openFileDialogOnClick,\n limitFileCount\n } = this.ui;\n const res: NzSafeAny = {\n type: type || 'select',\n text: text || '点击上传',\n action: action || '',\n accept: accept || '',\n directory: toBool(directory, false),\n openFileDialogOnClick: toBool(openFileDialogOnClick, true),\n limit: limit == null ? 0 : +limit,\n filter: filter == null ? [] : filter,\n size: fileSize == null ? 0 : +fileSize,\n fileType: fileType || '',\n listType: listType || 'text',\n multiple: toBool(multiple, false),\n name: name || 'file',\n showUploadList: showUploadList == null ? true : showUploadList,\n withCredentials: toBool(withCredentials, false),\n resReName: (resReName || '').split('.'),\n urlReName: (urlReName || '').split('.'),\n beforeUpload: typeof beforeUpload === 'function' ? beforeUpload : null,\n customRequest: typeof customRequest === 'function' ? customRequest : null,\n limitFileCount: limitFileCount || 999\n };\n if (res.listType === 'picture-card') {\n this.btnType = 'plus';\n }\n if (res.type === 'drag') {\n res.listType = null;\n this.btnType = 'drag';\n res.text = text || `单击或拖动文件到该区域上传`;\n res.hint = hint || `支持单个或批量,严禁上传公司数据或其他安全文件`;\n }\n this.i = res;\n }\n\n change(args: NzUploadChangeParam): void {\n if (this.ui.change) this.ui.change(args);\n if (args.type !== 'success') return;\n this._setValue(args.fileList);\n }\n\n reset(value: SFValue): void {\n const { fileList } = this.ui;\n (fileList ? of(fileList) : Array.isArray(value) ? of(value) : getData(this.schema, this.ui, null)).subscribe(\n list => {\n this.fileList = list as NzUploadFile[];\n this.formProperty._value = this.pureValue(list);\n this.formProperty.updateValueAndValidity({ onlySelf: false, emitValueEvent: false, emitValidator: false });\n this.detectChanges();\n }\n );\n }\n\n private _getValue(file: NzUploadFile): NzSafeAny {\n return deepGet(file.response, this.i.resReName, file.response);\n }\n\n private pureValue(fileList: NzUploadFile[]): NzSafeAny {\n fileList\n .filter(file => !file.url)\n .forEach(file => {\n file.url = deepGet(file.response, this.i.urlReName);\n });\n const res = fileList.filter(w => w.status === 'done').map(file => this._getValue(file));\n return this.i.multiple === true ? res : res.pop();\n }\n\n private _setValue(fileList: NzUploadFile[]): void {\n this.setValue(this.pureValue(fileList));\n }\n\n handleRemove = (): boolean => {\n this._setValue(this.fileList);\n return true;\n };\n\n handlePreview = (file: NzUploadFile): void => {\n if (this.ui.preview) {\n this.ui.preview(file);\n return;\n }\n const _url = file.thumbUrl || file.url;\n if (!_url) {\n return;\n }\n this.injector.get(NzImageService, null)?.preview([{ src: _url }]);\n };\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { DelonFormModule, WidgetRegistry } from '@delon/form';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzUploadModule } from 'ng-zorro-antd/upload';\n\nimport { UploadWidget } from './widget';\n\n@NgModule({\n imports: [FormsModule, CommonModule, DelonFormModule, NzUploadModule, NzIconModule, NzButtonModule, UploadWidget]\n})\nexport class UploadWidgetModule {\n constructor(widgetRegistry: WidgetRegistry) {\n widgetRegistry.register(UploadWidget.KEY, UploadWidget);\n }\n}\n","import type { SFWidgetProvideConfig } from '@delon/form';\n\nimport { UploadWidget } from './widget';\n\nexport * from './widget';\nexport * from './schema';\nexport * from './module';\n\nexport function withUploadWidget(): SFWidgetProvideConfig {\n return { KEY: UploadWidget.KEY, type: UploadWidget };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}