UNPKG

tdesign-vue-next

Version:
163 lines (159 loc) 5.63 kB
/** * tdesign v1.13.2 * (c) 2025 tdesign * @license MIT */ import { defineComponent, computed, createVNode } from 'vue'; import { MirrorIcon, RotationIcon, ZoomOutIcon, ZoomInIcon, ImageIcon, DownloadIcon } from 'tdesign-icons-vue-next'; import TImageViewerIcon from './ImageModalIcon.mjs'; import { Tooltip } from '../../tooltip/index.mjs'; import { u as usePrefixClass, q as useImagePreviewUrl } from '../../_chunks/dep-9c4aef07.mjs'; import { l as largeNumberToFixed } from '../../_chunks/dep-be0a3cf3.mjs'; import { useConfig } from '../../config-provider/hooks/useConfig.mjs'; import '../../_chunks/dep-0bb39574.mjs'; import '../../_chunks/dep-a81129ec.mjs'; import 'lodash-es'; import '../../_chunks/dep-b981148e.mjs'; import '../../_chunks/dep-f1895f5a.mjs'; import '../../utils/render-tnode.mjs'; import '../../config-provider/utils/context.mjs'; import '../../_chunks/dep-466a0666.mjs'; import '../../_chunks/dep-24ce1cec.mjs'; import '../../_chunks/dep-160caab6.mjs'; import '../../_chunks/dep-e497214e.mjs'; import '../../_chunks/dep-98cd1e2d.mjs'; import '../../_chunks/dep-23a929e8.mjs'; import '../../_chunks/dep-48e13ca0.mjs'; import '../../_chunks/dep-033df8e6.mjs'; import '../../utils/dom.mjs'; import '../../_chunks/dep-20550dcc.mjs'; import '../../tooltip/tooltip.mjs'; import '../../tooltip/props.mjs'; import '../../popup/props.mjs'; import '../../popup/index.mjs'; import '../../popup/popup.mjs'; import '@popperjs/core'; import '../../popup/container.mjs'; import '../../utils/withInstall.mjs'; import './style/css.mjs'; import '../../tooltip/utils/index.mjs'; var TImageViewerUtils = defineComponent({ name: "TImageViewerUtils", props: { scale: Number, onRotate: Function, onZoomIn: Function, onZoomOut: Function, onMirror: Function, onReset: Function, onDownload: Function, currentImage: { type: Object, "default": function _default() { return {}; } } }, setup: function setup(props) { var classPrefix = usePrefixClass(); var imageUrl = computed(function () { return props.currentImage.mainImage; }); var _useImagePreviewUrl = useImagePreviewUrl(imageUrl), previewUrl = _useImagePreviewUrl.previewUrl; var _useConfig = useConfig("imageViewer"), globalConfig = _useConfig.globalConfig; return function () { return createVNode("div", { "class": "".concat(classPrefix.value, "-image-viewer__utils") }, [createVNode("div", { "class": "".concat(classPrefix.value, "-image-viewer__utils-content") }, [createVNode(Tooltip, { "overlayClassName": "".concat(classPrefix.value, "-image-viewer__utils--tip"), "content": globalConfig.value.mirrorTipText, "destroyOnClose": true, "placement": "top", "showArrow": true, "theme": "default" }, { "default": function _default() { return [createVNode(TImageViewerIcon, { "onClick": props.onMirror, "icon": function icon() { return createVNode(MirrorIcon, { "size": "medium" }, null); } }, null)]; } }), createVNode(Tooltip, { "overlayClassName": "".concat(classPrefix.value, "-image-viewer__utils--tip"), "content": globalConfig.value.rotateTipText, "destroyOnClose": true, "placement": "top", "showArrow": true, "theme": "default" }, { "default": function _default() { return [createVNode(TImageViewerIcon, { "onClick": props.onRotate, "icon": function icon() { return createVNode(RotationIcon, { "size": "medium" }, null); } }, null)]; } }), createVNode(TImageViewerIcon, { "icon": function icon() { return createVNode(ZoomOutIcon, { "size": "medium" }, null); }, "onClick": props.onZoomOut }, null), createVNode(TImageViewerIcon, { "class": "".concat(classPrefix.value, "-image-viewer__utils-scale"), "size": "medium", "label": "".concat(largeNumberToFixed(String(props.scale * 100)), "%") }, null), createVNode(TImageViewerIcon, { "icon": function icon() { return createVNode(ZoomInIcon, { "size": "medium" }, null); }, "onClick": props.onZoomIn }, null), createVNode(Tooltip, { "overlayClassName": "".concat(classPrefix.value, "-image-viewer__utils--tip"), "content": globalConfig.value.originalSizeTipText, "destroyOnClose": true, "placement": "top", "showArrow": true, "theme": "default" }, { "default": function _default() { return [createVNode("div", { "class": "".concat(classPrefix.value, "-image-viewer__modal-icon") }, [createVNode(TImageViewerIcon, { "icon": function icon() { return createVNode(ImageIcon, { "size": "medium" }, null); }, "onClick": props.onReset }, null)])]; } }), props.currentImage.download && createVNode(TImageViewerIcon, { "icon": function icon() { return createVNode(DownloadIcon, { "size": "medium" }, null); }, "onClick": function onClick() { props.onDownload(previewUrl.value); } }, null)])]); }; } }); export { TImageViewerUtils as default }; //# sourceMappingURL=ImageViewerUtils.mjs.map