tdesign-vue-next
Version:
TDesign Component for vue-next
187 lines (183 loc) • 6.16 kB
JavaScript
/**
* tdesign v1.11.5
* (c) 2025 tdesign
* @license MIT
*/
import { defineComponent, computed, createVNode } from 'vue';
import { Dialog } from '../../dialog/index.mjs';
import { u as useTNodeJSX } from '../../_chunks/dep-46ec3e86.mjs';
import { usePrefixClass } from '../../hooks/useConfig.mjs';
import props from '../props.mjs';
import TImageItem from './ImageItem.mjs';
import TImageViewerUtils from './ImageViewerUtils.mjs';
import '../../dialog/dialog.mjs';
import '../../_chunks/dep-da95471f.mjs';
import '../../_chunks/dep-4ed7019e.mjs';
import '../../_chunks/dep-6a79c950.mjs';
import '../../dialog/props.mjs';
import '../../dialog/hooks/index.mjs';
import '../../dialog/hooks/useAction.mjs';
import 'lodash-es';
import '../../button/index.mjs';
import '../../button/button.mjs';
import '../../_chunks/dep-03e058e5.mjs';
import '../../_chunks/dep-9f375e51.mjs';
import '../../loading/index.mjs';
import '../../loading/directive.mjs';
import '../../loading/plugin.mjs';
import '../../loading/loading.mjs';
import '../../_chunks/dep-6d9c1bfc.mjs';
import '../../loading/icon/gradient.mjs';
import '../../_chunks/dep-6cfc5734.mjs';
import '../../_chunks/dep-3d81ac0a.mjs';
import '../../utils/dom.mjs';
import '../../_chunks/dep-82d2a14f.mjs';
import '../../hooks/useTeleport.mjs';
import '../../loading/props.mjs';
import '../../utils/render-tnode.mjs';
import '../../config-provider/hooks/useConfig.mjs';
import '../../config-provider/utils/context.mjs';
import '../../_chunks/dep-a5ae2f3f.mjs';
import '../../_chunks/dep-37fa6ccb.mjs';
import '../../_chunks/dep-7fb24b17.mjs';
import '../../utils/withInstall.mjs';
import './style/css.mjs';
import '../../button/props.mjs';
import '../../hooks/useRipple.mjs';
import '../../hooks/useKeepAnimation.mjs';
import '../../hooks/useDisabled.mjs';
import '../../dialog/hooks/useSameTarget.mjs';
import '../../hooks/useDestroyOnClose.mjs';
import '../../_chunks/dep-57b3d767.mjs';
import '../../hooks/usePopupManager.mjs';
import '../../_chunks/dep-7dcc7954.mjs';
import '../../dialog/utils/index.mjs';
import '../../dialog/dialog-card.mjs';
import 'tdesign-icons-vue-next';
import '../../dialog/dialog-card-props.mjs';
import '../../hooks/useGlobalIcon.mjs';
import '../../dialog/plugin.mjs';
import '../../_chunks/dep-3630a49c.mjs';
import '../../hooks/useImagePreviewUrl.mjs';
import '../../_chunks/dep-dda40c90.mjs';
import '../../_chunks/dep-88187fb2.mjs';
import '../hooks/index.mjs';
import '../../_chunks/dep-3c4ddaaf.mjs';
import '../../_chunks/dep-aa6dbb70.mjs';
import '../../_chunks/dep-198540b0.mjs';
import './ImageModalIcon.mjs';
import '../../tooltip/index.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 '../../hooks/index.mjs';
import '../../hooks/icon.mjs';
import '../../hooks/slot.mjs';
import '../../hooks/useCommonClassName.mjs';
import '../../hooks/useDefaultValue.mjs';
import '../../hooks/useVirtualScroll.mjs';
import '../../hooks/useVModel.mjs';
import '../../popup/container.mjs';
import '../../hooks/useResizeObserver.mjs';
import '../../tooltip/utils/index.mjs';
var TImageViewerModal = defineComponent({
name: "TImageViewerModal",
props: {
zIndex: Number,
visible: Boolean,
index: Number,
images: props.images,
scale: Number,
rotate: Number,
mirror: Number,
title: props.title,
currentImage: {
type: Object,
"default": function _default() {
return {};
}
},
onRotate: Function,
onZoomIn: Function,
onZoomOut: Function,
onMirror: Function,
onReset: Function,
onClose: props.onClose,
onDownload: props.onDownload,
draggable: {
type: Boolean,
"default": true
},
viewerScale: {
type: Object,
"default": function _default() {
return {};
}
},
showOverlay: Boolean,
closeBtn: props.closeBtn,
imageReferrerpolicy: props.imageReferrerpolicy
},
setup: function setup(props2) {
var classPrefix = usePrefixClass();
var renderJSX = useTNodeJSX();
var style = computed(function () {
return {
minWidth: props2.viewerScale.minWidth,
minHeight: props2.viewerScale.minHeight
};
});
return function () {
return createVNode(Dialog, {
"destroyOnClose": true,
"attach": "body",
"onClose": props2.onClose,
"visible": props2.visible,
"placement": "center",
"mode": "modeless",
"width": 1e3,
"cancelBtn": null,
"confirmBtn": null,
"draggable": props2.draggable,
"zIndex": props2.zIndex,
"showOverlay": props2.showOverlay,
"class": "".concat(classPrefix.value, "-image-viewer__dialog"),
"header": renderJSX("title", ""),
"footer": function footer() {
return createVNode("div", {
"class": "".concat(classPrefix.value, "-image-viewer-mini__footer")
}, [createVNode(TImageViewerUtils, {
"onZoomIn": props2.onZoomIn,
"onZoomOut": props2.onZoomOut,
"scale": props2.scale,
"currentImage": props2.currentImage,
"onRotate": props2.onRotate,
"onMirror": props2.onMirror,
"onReset": props2.onReset,
"onDownload": props2.onDownload
}, null)]);
}
}, {
"default": function _default() {
return [createVNode("div", {
"class": "".concat(classPrefix.value, "-image-viewer-mini__content"),
"style": style.value
}, [createVNode(TImageItem, {
"rotate": props2.rotate,
"scale": props2.scale,
"mirror": props2.mirror,
"src": props2.currentImage.mainImage,
"placementSrc": props2.currentImage.thumbnail,
"isSvg": props2.currentImage.isSvg,
"imageReferrerpolicy": props2.imageReferrerpolicy
}, null)])];
}
});
};
}
});
export { TImageViewerModal as default };
//# sourceMappingURL=ImageViewerModal.mjs.map