{"version":3,"file":"ImageViewerUtils.mjs","sources":["../../../../components/image-viewer/base/ImageViewerUtils.tsx"],"sourcesContent":["import { computed, defineComponent, PropType } from 'vue';\nimport { ImageIcon, ZoomInIcon, ZoomOutIcon, DownloadIcon, MirrorIcon, RotationIcon } from 'tdesign-icons-vue-next';\nimport TImageViewerIcon from './ImageModalIcon';\nimport TToolTip from '../../tooltip';\nimport { useConfig, usePrefixClass, useImagePreviewUrl } from '@tdesign/shared-hooks';\n\nimport { ImageInfo } from '../type';\nimport { largeNumberToFixed } from '@tdesign/common-js/input-number/large-number';\n\nexport default defineComponent({\n  name: 'TImageViewerUtils',\n  props: {\n    zIndex: Number,\n    scale: Number,\n    onRotate: Function as PropType<() => void>,\n    onZoomIn: Function as PropType<() => void>,\n    onZoomOut: Function as PropType<() => void>,\n    onMirror: Function as PropType<() => void>,\n    onReset: Function as PropType<() => void>,\n    onDownload: Function as PropType<(url: string) => void>,\n    currentImage: {\n      type: Object as PropType<ImageInfo>,\n      default() {\n        return {};\n      },\n    },\n  },\n  setup(props) {\n    const classPrefix = usePrefixClass();\n    const imageUrl = computed(() => props.currentImage.mainImage);\n\n    const { previewUrl } = useImagePreviewUrl(imageUrl);\n    const { globalConfig } = useConfig('imageViewer');\n\n    return () => (\n      <div class={`${classPrefix.value}-image-viewer__utils`}>\n        <div class={`${classPrefix.value}-image-viewer__utils-content`}>\n          <TToolTip\n            overlayClassName={`${classPrefix.value}-image-viewer__utils--tip`}\n            content={globalConfig.value.mirrorTipText}\n            destroyOnClose\n            placement=\"top\"\n            showArrow\n            theme=\"default\"\n            zIndex={props.zIndex}\n          >\n            <TImageViewerIcon onClick={props.onMirror} icon={() => <MirrorIcon size=\"medium\" />} />\n          </TToolTip>\n          <TToolTip\n            overlayClassName={`${classPrefix.value}-image-viewer__utils--tip`}\n            content={globalConfig.value.rotateTipText}\n            destroyOnClose\n            placement=\"top\"\n            showArrow\n            theme=\"default\"\n            zIndex={props.zIndex}\n          >\n            <TImageViewerIcon onClick={props.onRotate} icon={() => <RotationIcon size=\"medium\" />} />\n          </TToolTip>\n          <TImageViewerIcon icon={() => <ZoomOutIcon size=\"medium\" />} onClick={props.onZoomOut} />\n          <TImageViewerIcon\n            class={`${classPrefix.value}-image-viewer__utils-scale`}\n            label={`${largeNumberToFixed(String(props.scale * 100))}%`}\n          />\n\n          <TImageViewerIcon icon={() => <ZoomInIcon size=\"medium\" />} onClick={props.onZoomIn} />\n          <TToolTip\n            overlayClassName={`${classPrefix.value}-image-viewer__utils--tip`}\n            content={globalConfig.value.originalSizeTipText}\n            destroyOnClose\n            placement=\"top\"\n            showArrow\n            theme=\"default\"\n            zIndex={props.zIndex}\n          >\n            <div class={`${classPrefix.value}-image-viewer__modal-icon`}>\n              <TImageViewerIcon icon={() => <ImageIcon size=\"medium\" />} onClick={props.onReset} />\n            </div>\n          </TToolTip>\n          {props.currentImage.download && (\n            <TImageViewerIcon\n              icon={() => <DownloadIcon size=\"medium\" />}\n              onClick={() => {\n                props.onDownload(previewUrl.value);\n              }}\n            />\n          )}\n        </div>\n      </div>\n    );\n  },\n});\n"],"names":["defineComponent","name","props","zIndex","Number","scale","onRotate","Function","onZoomIn","onZoomOut","onMirror","onReset","onDownload","currentImage","type","Object","default","setup","classPrefix","usePrefixClass","imageUrl","computed","mainImage","_useImagePreviewUrl","useImagePreviewUrl","previewUrl","_useConfig","useConfig","globalConfig","_createVNode","concat","value","TToolTip","mirrorTipText","_default","TImageViewerIcon","icon","MirrorIcon","rotateTipText","RotationIcon","ZoomOutIcon","largeNumberToFixed","String","ZoomInIcon","originalSizeTipText","ImageIcon","download","DownloadIcon","onClick"],"mappings":"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"}