UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

138 lines (132 loc) 5.32 kB
/** * xdesign v1.0.6 * (c) 2023 xdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var fileCloseLine = require('../../_chunks/dep-6085e357.js'); var vue = require('vue'); var hooks_useConfig = require('../../hooks/useConfig.js'); var imageViewer_hooks = require('../hooks.js'); var hooks_useImagePreviewUrl = require('../../hooks/useImagePreviewUrl.js'); var configProvider_useConfig = require('../../config-provider/useConfig.js'); require('lodash/isFunction'); require('lodash/cloneDeep'); require('lodash/isString'); require('../../config-provider/context.js'); require('lodash/mergeWith'); require('lodash/merge'); require('../../_common/js/global-config/default-config.js'); require('../../_common/js/global-config/locale/en_US.js'); require('../../_chunks/dep-8d10b59f.js'); require('lodash/isArray'); require('@babel/runtime/helpers/defineProperty'); require('@babel/runtime/helpers/slicedToArray'); require('../../_common/js/upload/utils.js'); require('../../_common/js/log/log.js'); var TImageItem = vue.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 = vue.toRefs(props), src = _toRefs.src, placementSrc = _toRefs.placementSrc; var classPrefix = hooks_useConfig.usePrefixClass(); var error = vue.ref(false); var loaded = vue.ref(false); var _useDrag = imageViewer_hooks.useDrag({ translateX: 0, translateY: 0 }), transform = _useDrag.transform, mouseDownHandler = _useDrag.mouseDownHandler; var _useConfig = configProvider_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 = vue.computed(function () { return { transform: "rotate(".concat(props.rotate, "deg) scale(").concat(props.scale, ")"), display: !props.placementSrc || loaded.value ? "block" : "none" }; }); var placementImgStyle = vue.computed(function () { return { transform: "rotate(".concat(props.rotate, "deg) scale(").concat(props.scale, ")"), display: !loaded.value ? "block" : "none" }; }); var boxStyle = vue.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; }; vue.watch(function () { return props.src; }, function () { resetStatus(); }); var _useImagePreviewUrl = hooks_useImagePreviewUrl.useImagePreviewUrl(src), mainImagePreviewUrl = _useImagePreviewUrl.previewUrl; var _useImagePreviewUrl2 = hooks_useImagePreviewUrl.useImagePreviewUrl(placementSrc), placementImagePreviewUrl = _useImagePreviewUrl2.previewUrl; return function () { return vue.createVNode("div", { "class": "".concat(classPrefix.value, "-image-viewer__modal-pic") }, [vue.createVNode("div", { "class": "".concat(classPrefix.value, "-image-viewer__modal-box"), "style": boxStyle.value }, [error.value && vue.createVNode("div", { "class": "".concat(classPrefix.value, "-image-viewer__img-error") }, [vue.createVNode("div", { "class": "".concat(classPrefix.value, "-image-viewer__img-error-content") }, [vue.createVNode(fileCloseLine.__unplugin_components_0, { "size": "4em" }, null), vue.createVNode("div", { "class": "".concat(classPrefix.value, "-image-viewer__img-error-text") }, [errorText])])]), !error.value && !!props.placementSrc && placementImagePreviewUrl.value && vue.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 && vue.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)])]); }; } }); exports["default"] = TImageItem; //# sourceMappingURL=ImageItem.js.map