PreviewGroup.js 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  2. import _extends from "@babel/runtime/helpers/esm/extends";
  3. import { resolveDirective as _resolveDirective, createVNode as _createVNode } from "vue";
  4. import PreviewGroup from '../vc-image/src/PreviewGroup';
  5. import { computed, defineComponent } from 'vue';
  6. import useConfigInject from '../config-provider/hooks/useConfigInject';
  7. import RotateLeftOutlined from "@ant-design/icons-vue/es/icons/RotateLeftOutlined";
  8. import RotateRightOutlined from "@ant-design/icons-vue/es/icons/RotateRightOutlined";
  9. import ZoomInOutlined from "@ant-design/icons-vue/es/icons/ZoomInOutlined";
  10. import ZoomOutOutlined from "@ant-design/icons-vue/es/icons/ZoomOutOutlined";
  11. import CloseOutlined from "@ant-design/icons-vue/es/icons/CloseOutlined";
  12. import LeftOutlined from "@ant-design/icons-vue/es/icons/LeftOutlined";
  13. import RightOutlined from "@ant-design/icons-vue/es/icons/RightOutlined";
  14. import SwapOutlined from "@ant-design/icons-vue/es/icons/SwapOutlined";
  15. import { getTransitionName } from '../_util/transition';
  16. import useStyle from './style';
  17. import { anyType } from '../_util/type';
  18. export const icons = {
  19. rotateLeft: _createVNode(RotateLeftOutlined, null, null),
  20. rotateRight: _createVNode(RotateRightOutlined, null, null),
  21. zoomIn: _createVNode(ZoomInOutlined, null, null),
  22. zoomOut: _createVNode(ZoomOutOutlined, null, null),
  23. close: _createVNode(CloseOutlined, null, null),
  24. left: _createVNode(LeftOutlined, null, null),
  25. right: _createVNode(RightOutlined, null, null),
  26. flipX: _createVNode(SwapOutlined, null, null),
  27. flipY: _createVNode(SwapOutlined, {
  28. "rotate": 90
  29. }, null)
  30. };
  31. const previewGroupProps = () => ({
  32. previewPrefixCls: String,
  33. preview: anyType()
  34. });
  35. const InternalPreviewGroup = defineComponent({
  36. compatConfig: {
  37. MODE: 3
  38. },
  39. name: 'AImagePreviewGroup',
  40. inheritAttrs: false,
  41. props: previewGroupProps(),
  42. setup(props, _ref) {
  43. let {
  44. attrs,
  45. slots
  46. } = _ref;
  47. const {
  48. prefixCls,
  49. rootPrefixCls
  50. } = useConfigInject('image', props);
  51. const previewPrefixCls = computed(() => `${prefixCls.value}-preview`);
  52. const [wrapSSR, hashId] = useStyle(prefixCls);
  53. const mergedPreview = computed(() => {
  54. const {
  55. preview
  56. } = props;
  57. if (preview === false) {
  58. return preview;
  59. }
  60. const _preview = typeof preview === 'object' ? preview : {};
  61. return _extends(_extends({}, _preview), {
  62. rootClassName: hashId.value,
  63. transitionName: getTransitionName(rootPrefixCls.value, 'zoom', _preview.transitionName),
  64. maskTransitionName: getTransitionName(rootPrefixCls.value, 'fade', _preview.maskTransitionName)
  65. });
  66. });
  67. return () => {
  68. return wrapSSR(_createVNode(PreviewGroup, _objectSpread(_objectSpread({}, _extends(_extends({}, attrs), props)), {}, {
  69. "preview": mergedPreview.value,
  70. "icons": icons,
  71. "previewPrefixCls": previewPrefixCls.value
  72. }), slots));
  73. };
  74. }
  75. });
  76. export default InternalPreviewGroup;