xdesign-vue-next
Version:
XDesign Component for vue-next
1 lines • 3.59 kB
Source Map (JSON)
{"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;;;;"}