UNPKG

7.24 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4var _typeof = require("@babel/runtime/helpers/typeof");
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = void 0;
9var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11var _portal = _interopRequireDefault(require("@rc-component/portal"));
12var _classnames4 = _interopRequireDefault(require("classnames"));
13var _rcMotion = _interopRequireDefault(require("rc-motion"));
14var _KeyCode = _interopRequireDefault(require("rc-util/lib/KeyCode"));
15var React = _interopRequireWildcard(require("react"));
16var _context = require("./context");
17function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19var Operations = function Operations(props) {
20 var visible = props.visible,
21 maskTransitionName = props.maskTransitionName,
22 getContainer = props.getContainer,
23 prefixCls = props.prefixCls,
24 rootClassName = props.rootClassName,
25 icons = props.icons,
26 countRender = props.countRender,
27 showSwitch = props.showSwitch,
28 showProgress = props.showProgress,
29 current = props.current,
30 transform = props.transform,
31 count = props.count,
32 scale = props.scale,
33 minScale = props.minScale,
34 maxScale = props.maxScale,
35 closeIcon = props.closeIcon,
36 onSwitchLeft = props.onSwitchLeft,
37 onSwitchRight = props.onSwitchRight,
38 onClose = props.onClose,
39 onZoomIn = props.onZoomIn,
40 onZoomOut = props.onZoomOut,
41 onRotateRight = props.onRotateRight,
42 onRotateLeft = props.onRotateLeft,
43 onFlipX = props.onFlipX,
44 onFlipY = props.onFlipY,
45 toolbarRender = props.toolbarRender;
46 var groupContext = (0, React.useContext)(_context.PreviewGroupContext);
47 var rotateLeft = icons.rotateLeft,
48 rotateRight = icons.rotateRight,
49 zoomIn = icons.zoomIn,
50 zoomOut = icons.zoomOut,
51 close = icons.close,
52 left = icons.left,
53 right = icons.right,
54 flipX = icons.flipX,
55 flipY = icons.flipY;
56 var toolClassName = "".concat(prefixCls, "-operations-operation");
57 React.useEffect(function () {
58 var onKeyDown = function onKeyDown(e) {
59 if (e.keyCode === _KeyCode.default.ESC) {
60 onClose();
61 }
62 };
63 if (visible) {
64 window.addEventListener('keydown', onKeyDown);
65 }
66 return function () {
67 window.removeEventListener('keydown', onKeyDown);
68 };
69 }, [visible]);
70 var tools = [{
71 icon: flipY,
72 onClick: onFlipY,
73 type: 'flipY'
74 }, {
75 icon: flipX,
76 onClick: onFlipX,
77 type: 'flipX'
78 }, {
79 icon: rotateLeft,
80 onClick: onRotateLeft,
81 type: 'rotateLeft'
82 }, {
83 icon: rotateRight,
84 onClick: onRotateRight,
85 type: 'rotateRight'
86 }, {
87 icon: zoomOut,
88 onClick: onZoomOut,
89 type: 'zoomOut',
90 disabled: scale === minScale
91 }, {
92 icon: zoomIn,
93 onClick: onZoomIn,
94 type: 'zoomIn',
95 disabled: scale === maxScale
96 }];
97 var toolsNode = tools.map(function (_ref) {
98 var _classnames;
99 var icon = _ref.icon,
100 onClick = _ref.onClick,
101 type = _ref.type,
102 disabled = _ref.disabled;
103 return /*#__PURE__*/React.createElement("div", {
104 className: (0, _classnames4.default)(toolClassName, (_classnames = {}, (0, _defineProperty2.default)(_classnames, "".concat(prefixCls, "-operations-operation-").concat(type), true), (0, _defineProperty2.default)(_classnames, "".concat(prefixCls, "-operations-operation-disabled"), !!disabled), _classnames)),
105 onClick: onClick,
106 key: type
107 }, icon);
108 });
109 var toolbarNode = /*#__PURE__*/React.createElement("div", {
110 className: "".concat(prefixCls, "-operations")
111 }, toolsNode);
112 return /*#__PURE__*/React.createElement(_rcMotion.default, {
113 visible: visible,
114 motionName: maskTransitionName
115 }, function (_ref2) {
116 var className = _ref2.className,
117 style = _ref2.style;
118 return /*#__PURE__*/React.createElement(_portal.default, {
119 open: true,
120 getContainer: getContainer !== null && getContainer !== void 0 ? getContainer : document.body
121 }, /*#__PURE__*/React.createElement("div", {
122 className: (0, _classnames4.default)("".concat(prefixCls, "-operations-wrapper"), className, rootClassName),
123 style: style
124 }, closeIcon === null ? null : /*#__PURE__*/React.createElement("button", {
125 className: "".concat(prefixCls, "-close"),
126 onClick: onClose
127 }, closeIcon || close), showSwitch && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
128 className: (0, _classnames4.default)("".concat(prefixCls, "-switch-left"), (0, _defineProperty2.default)({}, "".concat(prefixCls, "-switch-left-disabled"), current === 0)),
129 onClick: onSwitchLeft
130 }, left), /*#__PURE__*/React.createElement("div", {
131 className: (0, _classnames4.default)("".concat(prefixCls, "-switch-right"), (0, _defineProperty2.default)({}, "".concat(prefixCls, "-switch-right-disabled"), current === count - 1)),
132 onClick: onSwitchRight
133 }, right)), /*#__PURE__*/React.createElement("div", {
134 className: "".concat(prefixCls, "-footer")
135 }, showProgress && /*#__PURE__*/React.createElement("div", {
136 className: "".concat(prefixCls, "-progress")
137 }, countRender ? countRender(current + 1, count) : "".concat(current + 1, " / ").concat(count)), toolbarRender ? toolbarRender(toolbarNode, (0, _objectSpread2.default)({
138 icons: {
139 flipYIcon: toolsNode[0],
140 flipXIcon: toolsNode[1],
141 rotateLeftIcon: toolsNode[2],
142 rotateRightIcon: toolsNode[3],
143 zoomOutIcon: toolsNode[4],
144 zoomInIcon: toolsNode[5]
145 },
146 actions: {
147 onFlipY: onFlipY,
148 onFlipX: onFlipX,
149 onRotateLeft: onRotateLeft,
150 onRotateRight: onRotateRight,
151 onZoomOut: onZoomOut,
152 onZoomIn: onZoomIn
153 },
154 transform: transform
155 }, groupContext ? {
156 current: current,
157 total: count
158 } : {})) : toolbarNode)));
159 });
160};
161var _default = Operations;
162exports.default = _default;
\No newline at end of file