index.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  2. import _typeof from "@babel/runtime/helpers/esm/typeof";
  3. import { resolveDirective as _resolveDirective, createVNode as _createVNode } from "vue";
  4. import { defineComponent, computed } from 'vue';
  5. import ImageInternal from '../vc-image';
  6. import { imageProps } from '../vc-image/src/Image';
  7. import defaultLocale from '../locale/en_US';
  8. import useConfigInject from '../_util/hooks/useConfigInject';
  9. import PreviewGroup, { icons } from './PreviewGroup';
  10. import EyeOutlined from "@ant-design/icons-vue/es/icons/EyeOutlined";
  11. import { getTransitionName } from '../_util/transition';
  12. var Image = defineComponent({
  13. name: 'AImage',
  14. inheritAttrs: false,
  15. props: imageProps(),
  16. setup: function setup(props, _ref) {
  17. var slots = _ref.slots,
  18. attrs = _ref.attrs;
  19. var _useConfigInject = useConfigInject('image', props),
  20. prefixCls = _useConfigInject.prefixCls,
  21. rootPrefixCls = _useConfigInject.rootPrefixCls,
  22. configProvider = _useConfigInject.configProvider;
  23. var mergedPreview = computed(function () {
  24. var preview = props.preview;
  25. if (preview === false) {
  26. return preview;
  27. }
  28. var _preview = _typeof(preview) === 'object' ? preview : {};
  29. return _objectSpread(_objectSpread({
  30. icons: icons
  31. }, _preview), {}, {
  32. transitionName: getTransitionName(rootPrefixCls.value, 'zoom', _preview.transitionName),
  33. maskTransitionName: getTransitionName(rootPrefixCls.value, 'fade', _preview.maskTransitionName)
  34. });
  35. });
  36. return function () {
  37. var _configProvider$local;
  38. var imageLocale = ((_configProvider$local = configProvider.locale) === null || _configProvider$local === void 0 ? void 0 : _configProvider$local.Image) || defaultLocale.Image;
  39. var defaultPreviewMask = function defaultPreviewMask() {
  40. return _createVNode("div", {
  41. "class": "".concat(prefixCls.value, "-mask-info")
  42. }, [_createVNode(EyeOutlined, null, null), imageLocale === null || imageLocale === void 0 ? void 0 : imageLocale.preview]);
  43. };
  44. var _props$previewMask = props.previewMask,
  45. previewMask = _props$previewMask === void 0 ? slots.previewMask || defaultPreviewMask : _props$previewMask;
  46. return _createVNode(ImageInternal, _objectSpread(_objectSpread({}, _objectSpread(_objectSpread(_objectSpread({}, attrs), props), {}, {
  47. prefixCls: prefixCls.value
  48. })), {}, {
  49. "preview": mergedPreview.value
  50. }), _objectSpread(_objectSpread({}, slots), {}, {
  51. previewMask: typeof previewMask === 'function' ? previewMask : null
  52. }));
  53. };
  54. }
  55. });
  56. export { imageProps };
  57. Image.PreviewGroup = PreviewGroup;
  58. Image.install = function (app) {
  59. app.component(Image.name, Image);
  60. app.component(Image.PreviewGroup.name, Image.PreviewGroup);
  61. return app;
  62. };
  63. export { PreviewGroup as ImagePreviewGroup };
  64. export default Image;