{"version":3,"file":"utils.mjs","sources":["../../src/image-viewer/utils.ts"],"sourcesContent":["import isString from 'lodash/isString';\nimport isArray from 'lodash/isArray';\n\nimport { TdImageViewerProps, ImageInfo } from './type';\n\nexport const downloadFile = function (imgSrc: string) {\n  const image = new Image();\n  // fix #2935\n  // 当链接携带了参数时，需处理掉参数再取图片名称，否则扩展名会与参数链接导致原扩展名失效\n  // 例如：img.png?sign=xxx 不处理参数会被转成 img.png_sign=xxx\n  const name = imgSrc?.split?.('?')?.[0]?.split?.('#')?.[0]?.split?.('/').pop() || Math.random().toString(32).slice(2);\n\n  image.setAttribute('crossOrigin', 'anonymous');\n\n  image.onload = () => {\n    const canvas = document.createElement('canvas');\n    canvas.width = image.width;\n    canvas.height = image.height;\n\n    const context = canvas.getContext('2d');\n    context.drawImage(image, 0, 0, image.width, image.height);\n    canvas.toBlob((blob) => {\n      const url = URL.createObjectURL(blob);\n      const a = document.createElement('a');\n      a.download = name;\n      a.href = url;\n      a.click();\n      a.remove();\n      URL.revokeObjectURL(url);\n    });\n  };\n  image.src = imgSrc;\n};\n\nconst isImageInfo = (image: string | File | ImageInfo): image is ImageInfo => {\n  return !isString(image) && !(image instanceof File);\n};\n\nexport const formatImages = (images: TdImageViewerProps['images']): ImageInfo[] => {\n  if (!isArray(images)) return [];\n  return images.map((item) => {\n    if (isImageInfo(item)) {\n      return {\n        download: true,\n        thumbnail: item.mainImage,\n        ...item,\n      };\n    }\n    return {\n      mainImage: item,\n      thumbnail: item,\n      download: true,\n    };\n  });\n};\n\nexport const getOverlay = (props: TdImageViewerProps) => {\n  if (props.showOverlay !== undefined) {\n    return props.showOverlay;\n  }\n  return props.mode === 'modal';\n};\n"],"names":["image","canvas","context","URL","isArray","download","mainImage","thumbnail"],"mappings":";;;;;;;;;;;;;;;;;AAKO,IAAA,YAAA,GAAA,SAAA,YAAA,CAAA,MAAA,EAAA;AAA+C,EAAA,IAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,CAAA;AAC9C,EAAA,IAAA,KAAA,GAAA,IAAA,KAAA,EAAA,CAAA;;AAMAA,EAAAA,KAAAA,CAAAA,YAAAA,CAAAA,aAAAA,EAAAA,WAAAA,CAAAA,CAAAA;;AAGE,IAAA,IAAA,MAAA,GAAA,QAAA,CAAA,aAAA,CAAA,QAAA,CAAA,CAAA;AACNC,IAAAA,MAAAA,CAAAA,KAAAA,GAAAA,KAAAA,CAAAA,KAAAA,CAAAA;AACAA,IAAAA,MAAAA,CAAAA,MAAAA,GAAAA,KAAAA,CAAAA,MAAAA,CAAAA;AAEM,IAAA,IAAA,OAAA,GAAA,MAAA,CAAA,UAAA,CAAA,IAAA,CAAA,CAAA;AACNC,IAAAA,OAAAA,CAAAA,SAAAA,CAAAA,KAAAA,EAAAA,CAAAA,EAAAA,CAAAA,EAAAA,KAAAA,CAAAA,KAAAA,EAAAA,KAAAA,CAAAA,MAAAA,CAAAA,CAAAA;AACOD,IAAAA,MAAAA,CAAAA,MAAAA,CAAAA,UAAAA,IAAAA,EAAAA;AACC,MAAA,IAAA,GAAA,GAAA,GAAA,CAAA,eAAA,CAAA,IAAA,CAAA,CAAA;AACA,MAAA,IAAA,CAAA,GAAA,QAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA;;;;;AAKNE,MAAAA,GAAAA,CAAAA,eAAAA,CAAAA,GAAAA,CAAAA,CAAAA;AACF,KAAA,CAAA,CAAA;;;AAGJ,EAAA;AAEA,IAAA,WAAA,GAAA,SAAA,WAAA,CAAA,KAAA,EAAA;;AAEA,CAAA,CAAA;AAEO,IAAA,YAAA,GAAA,SAAA,YAAA,CAAA,MAAA,EAAA;AACD,EAAA,IAAA,CAAAC,SAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA;AACG,EAAA,OAAA,MAAA,CAAA,GAAA,CAAA,UAAA,IAAA,EAAA;AACD,IAAA,IAAA,WAAA,CAAA,IAAA,CAAA,EAAA;AACK,MAAA,OAAA,aAAA,CAAA;AACLC,QAAAA,QAAAA,EAAAA,IAAAA;;AACgB,OAAA,EAAA,IAAA,CAAA,CAAA;AAGpB,KAAA;;AAEEC,MAAAA,SAAAA,EAAAA,IAAAA;AACAC,MAAAA,SAAAA,EAAAA,IAAAA;AACAF,MAAAA,QAAAA,EAAAA,IAAAA;;AAEJ,GAAA,CAAA,CAAA;AACF,EAAA;AAEO,IAAA,UAAA,GAAA,SAAA,UAAA,CAAA,KAAA,EAAA;AACD,EAAA,IAAA,KAAA,CAAA,WAAA,KAAA,KAAA,CAAA,EAAA;;AAEJ,GAAA;AACA,EAAA,OAAA,KAAA,CAAA,IAAA,KAAA,OAAA,CAAA;AACF;;;;"}