{"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      (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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"}