UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

134 lines (130 loc) 5.07 kB
/** * xdesign v1.0.6 * (c) 2023 xdesign * @license MIT */ import { _ as __unplugin_components_0 } from '../../_chunks/dep-e816f437.js'; import { defineComponent, toRefs, ref, computed, watch, createVNode } from 'vue'; import { usePrefixClass } from '../../hooks/useConfig.js'; import { useDrag } from '../hooks.js'; import { useImagePreviewUrl } from '../../hooks/useImagePreviewUrl.js'; import { useConfig } from '../../config-provider/useConfig.js'; import 'lodash/isFunction'; import 'lodash/cloneDeep'; import 'lodash/isString'; import '../../config-provider/context.js'; import 'lodash/mergeWith'; import 'lodash/merge'; import '../../_common/js/global-config/default-config.js'; import '../../_common/js/global-config/locale/en_US.js'; import '../../_chunks/dep-3a1cce9f.js'; import 'lodash/isArray'; import '@babel/runtime/helpers/defineProperty'; import '@babel/runtime/helpers/slicedToArray'; import '../../_common/js/upload/utils.js'; import '../../_common/js/log/log.js'; var TImageItem = defineComponent({ name: "XImageItem", props: { rotate: Number, scale: Number, mirror: Number, src: [String, Object], placementSrc: [String, Object] }, setup: function setup(props) { var _globalConfig$value$e; var _toRefs = toRefs(props), src = _toRefs.src, placementSrc = _toRefs.placementSrc; var classPrefix = usePrefixClass(); var error = ref(false); var loaded = ref(false); var _useDrag = useDrag({ translateX: 0, translateY: 0 }), transform = _useDrag.transform, mouseDownHandler = _useDrag.mouseDownHandler; var _useConfig = useConfig("imageViewer"), globalConfig = _useConfig.globalConfig; var errorText = (_globalConfig$value$e = globalConfig.value.errorText) !== null && _globalConfig$value$e !== void 0 ? _globalConfig$value$e : "\u56FE\u7247\u52A0\u8F7D\u5931\u8D25\uFF0C\u53EF\u5C1D\u8BD5\u91CD\u65B0\u52A0\u8F7D"; var imgStyle = computed(function () { return { transform: "rotate(".concat(props.rotate, "deg) scale(").concat(props.scale, ")"), display: !props.placementSrc || loaded.value ? "block" : "none" }; }); var placementImgStyle = computed(function () { return { transform: "rotate(".concat(props.rotate, "deg) scale(").concat(props.scale, ")"), display: !loaded.value ? "block" : "none" }; }); var boxStyle = computed(function () { var _transform$value = transform.value, translateX = _transform$value.translateX, translateY = _transform$value.translateY; return { transform: "translate(".concat(translateX, "px, ").concat(translateY, "px) scale(").concat(props.mirror, ", 1)") }; }); var resetStatus = function resetStatus() { error.value = false; loaded.value = false; }; watch(function () { return props.src; }, function () { resetStatus(); }); var _useImagePreviewUrl = useImagePreviewUrl(src), mainImagePreviewUrl = _useImagePreviewUrl.previewUrl; var _useImagePreviewUrl2 = useImagePreviewUrl(placementSrc), placementImagePreviewUrl = _useImagePreviewUrl2.previewUrl; return function () { return createVNode("div", { "class": "".concat(classPrefix.value, "-image-viewer__modal-pic") }, [createVNode("div", { "class": "".concat(classPrefix.value, "-image-viewer__modal-box"), "style": boxStyle.value }, [error.value && createVNode("div", { "class": "".concat(classPrefix.value, "-image-viewer__img-error") }, [createVNode("div", { "class": "".concat(classPrefix.value, "-image-viewer__img-error-content") }, [createVNode(__unplugin_components_0, { "size": "4em" }, null), createVNode("div", { "class": "".concat(classPrefix.value, "-image-viewer__img-error-text") }, [errorText])])]), !error.value && !!props.placementSrc && placementImagePreviewUrl.value && createVNode("img", { "class": "".concat(classPrefix.value, "-image-viewer__modal-image"), "onMousedown": function onMousedown(event) { event.stopPropagation(); mouseDownHandler(event); }, "src": placementImagePreviewUrl.value, "style": placementImgStyle.value, "alt": "image", "draggable": "false" }, null), !error.value && mainImagePreviewUrl.value && createVNode("img", { "class": "".concat(classPrefix.value, "-image-viewer__modal-image"), "onMousedown": function onMousedown(event) { event.stopPropagation(); mouseDownHandler(event); }, "src": mainImagePreviewUrl.value, "onLoad": function onLoad() { return loaded.value = true; }, "onError": function onError() { return error.value = true; }, "style": imgStyle.value, "alt": "image", "draggable": "false" }, null)])]); }; } }); export { TImageItem as default }; //# sourceMappingURL=ImageItem.js.map