{"version":3,"file":"index.mjs","sources":["../../../../../../package/formily/upload/src/index.ts"],"sourcesContent":["import { Field } from \"@formily/core\";\nimport { defineComponent, h } from \"vue\";\nimport { connect, mapProps, useField, FragmentComponent } from \"@formily/vue\";\nimport { UploadFilled, Upload as UploadIcon, Plus } from \"@element-plus/icons-vue\";\nimport { ElUpload, ElButton, ElIcon } from \"element-plus\";\nimport type { UploadFile } from \"element-plus/es/components/upload/src/upload\";\n\nexport type UploadProps = typeof ElUpload & {\n  textContent?: string;\n  errorAdaptor?: (error?: ErrorEvent) => string;\n};\n\nconst UploadWrapper = defineComponent({\n  name: \"FUpload\",\n  props: {\n    textContent: {\n      type: String,\n      default: \"\"\n    },\n    errorAdaptor: {\n      type: Function,\n      default(error?: ErrorEvent) {\n        return error?.message || \"\";\n      }\n    },\n    fileList: {\n      type: Array\n    }\n  },\n  emits: [\"change\"],\n  setup(curProps: any, { slots, attrs, emit }) {\n    return () => {\n      const fieldRef = useField<Field>();\n      const setFeedBack = (error?: ErrorEvent) => {\n        const message = curProps.errorAdaptor(error);\n\n        fieldRef.value.setFeedback({\n          type: \"error\",\n          code: \"UploadError\",\n          messages: message ? [message] : []\n        });\n      };\n\n      type Fn = (...args: any[]) => any;\n      const props = {\n        ...attrs,\n        onChange(file: UploadFile, fileList: UploadFile[]) {\n          !(attrs.onChange as Fn)?.(file, fileList);\n          setFeedBack();\n          emit(\"change\", fileList);\n        },\n\n        onRemove(file: UploadFile, fileList: UploadFile[]) {\n          !(attrs.onRemove as Fn)?.(file, fileList);\n          setFeedBack();\n          emit(\"change\", fileList);\n        },\n\n        onError(error: ErrorEvent, file: UploadFile, fileList: UploadFile[]) {\n          !(attrs.onError as Fn)?.(error, file, fileList);\n\n          setTimeout(() => {\n            setFeedBack(error);\n          }, 0);\n        }\n      };\n      const children = {\n        ...slots\n      } as any;\n      if (!slots.default) {\n        children.default = () => {\n          const listType = attrs.listType;\n          const drag = attrs.drag;\n\n          if (drag) {\n            return h(\n              FragmentComponent,\n              {},\n              {\n                default: () => [\n                  h(\n                    ElIcon,\n                    { style: { fontSize: \"60px\", margin: \"40px 0 16px\" } },\n                    { default: () => h(UploadFilled, { color: \"gray\" }, {}) }\n                  ),\n                  h(\n                    \"div\",\n                    { staticClass: \"el-upload__text\" },\n                    { default: () => [curProps.textContent] }\n                  )\n                ]\n              }\n            );\n          }\n\n          if (listType === \"picture-card\") {\n            return h(\n              Plus,\n              {\n                style: {\n                  width: \"28px\",\n                  height: \"28px\",\n                  marginTop: \"60px\",\n                  color: \"gray\"\n                }\n              },\n              {}\n            );\n          }\n\n          return h(\n            ElButton,\n            {},\n            {\n              default: () => [\n                h(UploadIcon, { style: { width: \"12px\", height: \"12px\" } }),\n                curProps.textContent\n              ]\n            }\n          );\n        };\n      }\n      return h(ElUpload as any, { ...props, ...attrs }, children);\n    };\n  }\n});\n\nexport const Upload = connect(UploadWrapper, mapProps({ readOnly: \"readonly\", value: \"fileList\" }));\n\nexport default Upload;\n"],"names":["UploadIcon"],"mappings":"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"}