{"version":3,"file":"custom-file.mjs","sources":["../../../src/upload/themes/custom-file.tsx"],"sourcesContent":["import { defineComponent, PropType, toRefs } from 'vue';\nimport useDrag, { UploadDragEvents } from '../hooks/useDrag';\nimport { CommonDisplayFileProps } from '../interface';\nimport { commonProps } from '../constants';\nimport { useContent } from '../../hooks/tnode';\nimport { TdUploadProps } from '../type';\n\nexport interface CustomFileProps extends CommonDisplayFileProps {\n  dragEvents: UploadDragEvents;\n  draggable?: boolean;\n  // 拖拽区域\n  dragContent?: TdUploadProps['dragContent'];\n  trigger?: TdUploadProps['trigger'];\n  triggerUpload?: (e: MouseEvent) => void;\n  childrenNode?: any;\n}\n\nexport default defineComponent({\n  name: 'UploadCustomFile',\n\n  props: {\n    ...commonProps,\n    dragEvents: Object as PropType<CustomFileProps['dragEvents']>,\n    draggable: Boolean,\n    // 拖拽区域\n    dragContent: Function as PropType<CustomFileProps['dragContent']>,\n    trigger: Function as PropType<CustomFileProps['trigger']>,\n    triggerUpload: Function as PropType<CustomFileProps['triggerUpload']>,\n    childrenNode: [String, Function] as PropType<CustomFileProps['childrenNode']>,\n  },\n\n  setup(props, { slots }) {\n    const { classPrefix, displayFiles, accept } = toRefs(props);\n    const drag = useDrag(props.dragEvents, accept);\n    const { dragActive } = drag;\n\n    const renderContent = useContent();\n\n    const renderDragContent = () => {\n      const params = { dragActive: dragActive.value || false, files: displayFiles.value };\n      return (\n        <div\n          class={`${classPrefix.value}-upload__dragger ${classPrefix.value}-upload__dragger-center`}\n          onDrop={drag.handleDrop}\n          onDragenter={drag.handleDragenter}\n          onDragover={drag.handleDragover}\n          onDragleave={drag.handleDragleave}\n          onClick={props.triggerUpload}\n        >\n          <div class={`${classPrefix.value}-upload__trigger`}>\n            {renderContent('dragContent', 'trigger', { params }) || props.childrenNode?.(params)}\n          </div>\n        </div>\n      );\n    };\n\n    return () => (\n      <>\n        {props.draggable ? (\n          renderDragContent()\n        ) : (\n          <div class={`${classPrefix.value}-upload__trigger`} onClick={props.triggerUpload}>\n            {props.childrenNode?.({ files: displayFiles.value }) || slots.default?.()}\n          </div>\n        )}\n      </>\n    );\n  },\n});\n"],"names":["name","props","dragEvents","draggable","dragContent","trigger","triggerUpload","childrenNode","setup","dragActive","_createVNode","params","_Fragment"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,iBAAA,eAAA,CAAA;AACEA,EAAAA,IAAAA,EAAAA,kBAAAA;AAEAC,EAAAA,KAAAA,EAAAA,aAAAA,CAAAA,aAAAA,CAAAA,EAAAA,EAAAA,WAAAA,CAAAA,EAAAA,EAAAA,EAAAA;AAEEC,IAAAA,UAAAA,EAAAA,MAAAA;AACAC,IAAAA,SAAAA,EAAAA,OAAAA;AAEAC,IAAAA,WAAAA,EAAAA,QAAAA;AACAC,IAAAA,OAAAA,EAAAA,QAAAA;AACAC,IAAAA,aAAAA,EAAAA,QAAAA;AACAC,IAAAA,YAAAA,EAAAA,CAAAA,MAAAA,EAAAA,QAAAA,CAAAA;;AAGFC,EAAAA,KAAAA,EAAAA,SAAAA,KAAAA,CAAAA,KAAAA,EAAAA,IAAAA,EAAAA;AAAwB,IAAA,IAAA,KAAA,GAAA,IAAA,CAAA,KAAA,CAAA;AACtB,IAAA,IAAA,OAAA,GAAA,MAAA,CAAA,KAAA,CAAA;;;;;AAEM,IAAA,IAAA,UAAA,GAAA,IAAA,CAAA,UAAA,CAAA;AAEN,IAAA,IAAA,aAAA,GAAA,UAAA,EAAA,CAAA;AAEA,IAAA,IAAA,iBAAA,GAAA,SAAA,iBAAA,GAAA;AAAgC,MAAA,IAAA,mBAAA,CAAA;AACxB,MAAA,IAAA,MAAA,GAAA;AAAWC,QAAAA,UAAAA,EAAAA,UAAAA,CAAAA,KAAAA,IAAAA,KAAAA;;;AACjB,MAAA,OAAAC,WAAA,CAAA,KAAA,EAAA;;;;;;AAOI,QAAA,SAAA,EAAA,KAAA,CAAA,aAAA;AAAe,OAAA,EAAA,CAAAA,WAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,EAAA,CAAA,MAAA,CAAA,WAAA,CAAA,KAAA,EAAA,kBAAA,CAAA;AAEY,OAAA,EAAA,CAAA,aAAA,CAAA,aAAA,EAAA,SAAA,EAAA;AACkBC,QAAAA,MAAAA,EAAAA,MAAAA;AAAO,OAAA,CAAA,KAAA,CAAA,mBAAA,GAAA,KAAA,CAAA,YAAA,MAAA,IAAA,IAAA,mBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,mBAAA,CAAA,IAAA,CAAA,KAAA,EAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;AAMnD,MAAA,OAAAD,WAAA,CAAAE,QAAA,EAAA,IAAA,EAAA,CAAA,KAAA,CAAA,SAAA,GAAA,iBAAA,EAAA,GAAAF,WAAA,CAAA,KAAA,EAAA;AAKD,QAAA,OAAA,EAAA,EAAA,CAAA,MAAA,CAAA,WAAA,CAAA,KAAA,EAAA,kBAAA,CAAA;AAAoD,QAAA,SAAA,EAAA,KAAA,CAAA,aAAA;AAAe,OAAA,EAAA,CAAA,CAAA,CAAA,oBAAA,GAAA,KAAA,CAAA,YAAA,MAAA,IAAA,IAAA,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,oBAAA,CAAA,IAAA,CAAA,KAAA,EAAA;;AACf,OAAA,CAAA,MAAA,CAAA,cAAA,GAAA,KAAA,CAAA,SAAA,CAAA,MAAA,IAAA,IAAA,cAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAA,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;AAK5D,GAAA;AACF,CAAA,CAAA;;;;"}