{"version":3,"file":"index.cjs","sources":["../../src/file-upload/index.ts"],"sourcesContent":["// @ts-nocheck\n//import \"./main.sass\";\nimport { Tag } from \"@blueprintjs/core\";\nimport h from \"@macrostrat/hyper\";\nimport classNames from \"classnames\";\nimport { Component } from \"react\";\nimport Dropzone from \"react-dropzone\";\n\nconst FileListItem = function (props) {\n  const { file } = props;\n  return h(Tag, { icon: \"document\" }, file.name);\n};\n\nconst FileList = function (props) {\n  let { files, placeholder } = props;\n  if (placeholder == null) {\n    placeholder = \"Choose file...\";\n  }\n  if (files == null || !(files.length > 0)) {\n    return placeholder;\n  }\n  return h(\n    \"div.files\",\n    files.map((file) => h(FileListItem, { file })),\n  );\n};\n\ninterface FileUploadProps {\n  files: any[];\n  onAddFile(): void;\n  onCancel(): void;\n}\n\nclass FileUploadComponent extends Component<FileUploadProps> {\n  static defaultProps = {\n    onAddFile() {},\n    onCancel() {},\n  };\n\n  constructor(props) {\n    super(props);\n    this.renderDropzone = this.renderDropzone.bind(this);\n  }\n\n  renderDropzone({ getRootProps, getInputProps, isDragActive }) {\n    const { files } = this.props;\n    const rootProps = getRootProps();\n    const className = classNames(\"file-upload\", {\n      \"dropzone-active\": isDragActive,\n    });\n    const inputProps = getInputProps();\n    inputProps.style = {};\n    inputProps.className = \"bp6-large\";\n    let msg = \"Drop files here\";\n    if (!isDragActive) {\n      msg += \", or click to upload\";\n    }\n\n    return h(\"div\", { className, ...rootProps }, [\n      h(\"label.bp6-file-input.bp6-large\", [\n        h(\"input\", inputProps),\n        h(\"div.bp6-file-upload-input\", [\n          h(FileList, { files, placeholder: msg }),\n        ]),\n      ]),\n    ]);\n  }\n\n  render() {\n    return h(\n      Dropzone,\n      {\n        onDrop: this.props.onAddFile,\n        onFileDialogCancel: this.props.onCancel,\n      },\n      this.renderDropzone,\n    );\n  }\n}\n\nexport { FileUploadComponent };\n"],"names":["h","Tag","Component","classNames","Dropzone"],"mappings":";;;;;;;;;;;AAQA,MAAM,eAAe,SAAU,OAAO;AACpC,QAAM,EAAE,SAAS;AACjB,SAAOA,WAAAA,QAAEC,KAAAA,KAAK,EAAE,MAAM,WAAA,GAAc,KAAK,IAAI;AAC/C;AAEA,MAAM,WAAW,SAAU,OAAO;AAChC,MAAI,EAAE,OAAO,YAAA,IAAgB;AAC7B,MAAI,eAAe,MAAM;AACvB,kBAAc;AAAA,EAChB;AACA,MAAI,SAAS,QAAQ,EAAE,MAAM,SAAS,IAAI;AACxC,WAAO;AAAA,EACT;AACA,SAAOD,WAAAA;AAAAA,IACL;AAAA,IACA,MAAM,IAAI,CAAC,SAASA,WAAAA,QAAE,cAAc,EAAE,MAAM,CAAC;AAAA,EAAA;AAEjD;AAQA,MAAM,4BAA4BE,MAAAA,UAA2B;AAAA,EAC3D,OAAO,eAAe;AAAA,IACpB,YAAY;AAAA,IAAC;AAAA,IACb,WAAW;AAAA,IAAC;AAAA,EAAA;AAAA,EAGd,YAAY,OAAO;AACjB,UAAM,KAAK;AACX,SAAK,iBAAiB,KAAK,eAAe,KAAK,IAAI;AAAA,EACrD;AAAA,EAEA,eAAe,EAAE,cAAc,eAAe,gBAAgB;AAC5D,UAAM,EAAE,UAAU,KAAK;AACvB,UAAM,YAAY,aAAA;AAClB,UAAM,YAAYC,oBAAAA,QAAW,eAAe;AAAA,MAC1C,mBAAmB;AAAA,IAAA,CACpB;AACD,UAAM,aAAa,cAAA;AACnB,eAAW,QAAQ,CAAA;AACnB,eAAW,YAAY;AACvB,QAAI,MAAM;AACV,QAAI,CAAC,cAAc;AACjB,aAAO;AAAA,IACT;AAEA,WAAOH,WAAAA,QAAE,OAAO,EAAE,WAAW,GAAG,aAAa;AAAA,MAC3CA,WAAAA,QAAE,kCAAkC;AAAA,QAClCA,WAAAA,QAAE,SAAS,UAAU;AAAA,QACrBA,WAAAA,QAAE,6BAA6B;AAAA,UAC7BA,WAAAA,QAAE,UAAU,EAAE,OAAO,aAAa,KAAK;AAAA,QAAA,CACxC;AAAA,MAAA,CACF;AAAA,IAAA,CACF;AAAA,EACH;AAAA,EAEA,SAAS;AACP,WAAOA,WAAAA;AAAAA,MACLI,kBAAAA;AAAAA,MACA;AAAA,QACE,QAAQ,KAAK,MAAM;AAAA,QACnB,oBAAoB,KAAK,MAAM;AAAA,MAAA;AAAA,MAEjC,KAAK;AAAA,IAAA;AAAA,EAET;AACF;;"}