tdesign-react 0.42.7-alpha.1 → 0.42.7-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/_chunks/dep-6a672006.js +515 -0
- package/cjs/_chunks/dep-6a672006.js.map +1 -0
- package/cjs/_chunks/dep-b5df8873.js +198 -0
- package/cjs/_chunks/dep-b5df8873.js.map +1 -0
- package/cjs/avatar/AvararGroup.js +1 -1
- package/cjs/avatar/Avatar.js +1 -1
- package/cjs/avatar/index.js +1 -1
- package/cjs/form/Form.js +1 -1
- package/cjs/form/FormItem.js +1 -1
- package/cjs/form/index.js +1 -1
- package/cjs/form/useInitialData.js +1 -1
- package/cjs/image-viewer/ImageViewer.js +1 -1
- package/cjs/image-viewer/ImageViewerMini.js +1 -1
- package/cjs/image-viewer/ImageViewerModel.js +1 -1
- package/cjs/image-viewer/index.js +1 -1
- package/cjs/index-lib.js +2 -2
- package/cjs/index.js +2 -2
- package/cjs/popup/hooks/useTrigger.js +3 -29
- package/cjs/popup/hooks/useTrigger.js.map +1 -1
- package/cjs/upload/index.js +1 -1
- package/cjs/upload/themes/DraggerFile.js +1 -1
- package/cjs/upload/themes/ImageCard.js +1 -1
- package/cjs/upload/themes/MultipleFlowList.js +1 -1
- package/cjs/upload/upload.js +1 -1
- package/dist/tdesign.css +317 -301
- package/dist/tdesign.css.map +1 -1
- package/dist/tdesign.js +3 -5
- package/dist/tdesign.js.map +1 -1
- package/dist/tdesign.min.css +1 -1
- package/dist/tdesign.min.css.map +1 -1
- package/dist/tdesign.min.js +1 -1
- package/dist/tdesign.min.js.map +1 -1
- package/es/_chunks/{dep-51336096.js → dep-26aef3c9.js} +1 -1
- package/{lib/_chunks/dep-db75b5b6.js.map → es/_chunks/dep-26aef3c9.js.map} +1 -1
- package/{esm/_chunks/dep-8e115ca7.js → es/_chunks/dep-5e0eb6ae.js} +1 -1
- package/{esm/_chunks/dep-8e115ca7.js.map → es/_chunks/dep-5e0eb6ae.js.map} +1 -1
- package/es/alert/style/index.css +26 -14
- package/es/anchor/style/index.css +5 -12
- package/es/avatar/AvararGroup.js +1 -1
- package/es/avatar/Avatar.js +1 -1
- package/es/avatar/index.js +1 -1
- package/es/breadcrumb/style/index.css +4 -4
- package/es/button/style/index.css +10 -10
- package/es/dialog/style/index.css +4 -4
- package/es/divider/style/index.css +2 -2
- package/es/drawer/style/index.css +16 -11
- package/es/dropdown/style/index.css +11 -10
- package/es/form/Form.js +1 -1
- package/es/form/FormItem.js +1 -1
- package/es/form/index.js +1 -1
- package/es/form/style/index.css +2 -2
- package/es/form/useInitialData.js +1 -1
- package/es/guide/style/index.css +9 -9
- package/es/image-viewer/ImageViewer.js +1 -1
- package/es/image-viewer/ImageViewerMini.js +1 -1
- package/es/image-viewer/ImageViewerModel.js +1 -1
- package/es/image-viewer/index.js +1 -1
- package/es/index.js +2 -2
- package/es/input/style/index.css +1 -1
- package/es/layout/style/index.css +3 -3
- package/es/link/style/index.css +6 -6
- package/es/list/style/index.css +1 -1
- package/es/menu/style/index.css +26 -26
- package/es/message/style/index.css +6 -6
- package/es/notification/style/index.css +8 -13
- package/es/pagination/style/index.css +23 -23
- package/es/popconfirm/style/index.css +7 -7
- package/es/popup/hooks/useTrigger.js +3 -33
- package/es/popup/hooks/useTrigger.js.map +1 -1
- package/es/popup/style/index.css +1 -1
- package/es/radio/style/index.css +16 -1
- package/es/rate/style/index.css +5 -4
- package/es/steps/style/index.css +34 -43
- package/es/style/index.css +4 -3
- package/es/swiper/style/index.css +42 -42
- package/es/tabs/style/index.css +12 -12
- package/es/tag-input/style/index.css +7 -7
- package/es/tree/style/index.css +26 -24
- package/es/upload/index.js +1 -1
- package/es/upload/themes/DraggerFile.js +1 -1
- package/es/upload/themes/ImageCard.js +1 -1
- package/es/upload/themes/MultipleFlowList.js +1 -1
- package/es/upload/upload.js +1 -1
- package/{es/_chunks/dep-8e115ca7.js → esm/_chunks/dep-5e0eb6ae.js} +1 -1
- package/{es/_chunks/dep-8e115ca7.js.map → esm/_chunks/dep-5e0eb6ae.js.map} +1 -1
- package/esm/_chunks/{dep-fad7989c.js → dep-72461c3f.js} +1 -1
- package/{es/_chunks/dep-51336096.js.map → esm/_chunks/dep-72461c3f.js.map} +1 -1
- package/esm/_common/style/web/_variables.less +7 -6
- package/esm/_common/style/web/components/alert/_index.less +12 -6
- package/esm/_common/style/web/components/alert/_var.less +19 -10
- package/esm/_common/style/web/components/anchor/_index.less +4 -10
- package/esm/_common/style/web/components/anchor/_var.less +9 -23
- package/esm/_common/style/web/components/breadcrumb/_index.less +4 -4
- package/esm/_common/style/web/components/breadcrumb/_var.less +2 -2
- package/esm/_common/style/web/components/button/_var.less +2 -2
- package/esm/_common/style/web/components/dialog/_var.less +2 -2
- package/esm/_common/style/web/components/divider/_var.less +2 -2
- package/esm/_common/style/web/components/drawer/_index.less +2 -1
- package/esm/_common/style/web/components/drawer/_var.less +9 -10
- package/esm/_common/style/web/components/dropdown-new/_index.less +7 -6
- package/esm/_common/style/web/components/dropdown-new/_var.less +8 -4
- package/esm/_common/style/web/components/form/_index.less +1 -1
- package/esm/_common/style/web/components/guide/_index.less +8 -8
- package/esm/_common/style/web/components/guide/_var.less +10 -0
- package/esm/_common/style/web/components/layout/_var.less +2 -5
- package/esm/_common/style/web/components/link/_var.less +5 -5
- package/esm/_common/style/web/components/menu/_index-v2.less +26 -26
- package/esm/_common/style/web/components/menu/_index.less +25 -25
- package/esm/_common/style/web/components/menu/_var.less +1 -7
- package/esm/_common/style/web/components/message/_index.less +1 -1
- package/esm/_common/style/web/components/message/_var.less +7 -10
- package/esm/_common/style/web/components/notification/_index.less +0 -5
- package/esm/_common/style/web/components/notification/_var.less +9 -11
- package/esm/_common/style/web/components/pagination/_index.less +1 -1
- package/esm/_common/style/web/components/pagination/_var.less +8 -8
- package/esm/_common/style/web/components/popconfirm/_index.less +3 -3
- package/esm/_common/style/web/components/popconfirm/_var.less +12 -11
- package/esm/_common/style/web/components/radio/_index.less +26 -0
- package/esm/_common/style/web/components/radio/_var.less +4 -1
- package/esm/_common/style/web/components/rate/_index.less +2 -3
- package/esm/_common/style/web/components/rate/_var.less +2 -8
- package/esm/_common/style/web/components/steps/_index.less +1 -7
- package/esm/_common/style/web/components/steps/_mixin.less +10 -11
- package/esm/_common/style/web/components/steps/_var.less +14 -17
- package/esm/_common/style/web/components/swiper/_mixin.less +1 -1
- package/esm/_common/style/web/components/tabs/_var.less +2 -2
- package/esm/_common/style/web/components/tag-input/_index.less +5 -4
- package/esm/_common/style/web/components/tree/_index.less +8 -8
- package/esm/_common/style/web/components/tree/_var.less +17 -13
- package/esm/_common/style/web/theme/_size.less +4 -3
- package/esm/avatar/AvararGroup.js +1 -1
- package/esm/avatar/Avatar.js +1 -1
- package/esm/avatar/index.js +1 -1
- package/esm/form/Form.js +1 -1
- package/esm/form/FormItem.js +1 -1
- package/esm/form/index.js +1 -1
- package/esm/form/useInitialData.js +1 -1
- package/esm/image-viewer/ImageViewer.js +1 -1
- package/esm/image-viewer/ImageViewerMini.js +1 -1
- package/esm/image-viewer/ImageViewerModel.js +1 -1
- package/esm/image-viewer/index.js +1 -1
- package/esm/index.js +2 -2
- package/esm/popup/hooks/useTrigger.js +3 -33
- package/esm/popup/hooks/useTrigger.js.map +1 -1
- package/esm/upload/index.js +1 -1
- package/esm/upload/themes/DraggerFile.js +1 -1
- package/esm/upload/themes/ImageCard.js +1 -1
- package/esm/upload/themes/MultipleFlowList.js +1 -1
- package/esm/upload/upload.js +1 -1
- package/lib/_chunks/{dep-db75b5b6.js → dep-1b32736a.js} +1 -1
- package/{esm/_chunks/dep-fad7989c.js.map → lib/_chunks/dep-1b32736a.js.map} +1 -1
- package/lib/_chunks/{dep-75db5f2e.js → dep-61f02037.js} +1 -1
- package/lib/_chunks/{dep-75db5f2e.js.map → dep-61f02037.js.map} +1 -1
- package/lib/avatar/AvararGroup.js +1 -1
- package/lib/avatar/Avatar.js +1 -1
- package/lib/avatar/index.js +1 -1
- package/lib/form/Form.js +1 -1
- package/lib/form/FormItem.js +1 -1
- package/lib/form/index.js +1 -1
- package/lib/form/useInitialData.js +1 -1
- package/lib/image-viewer/ImageViewer.js +1 -1
- package/lib/image-viewer/ImageViewerMini.js +1 -1
- package/lib/image-viewer/ImageViewerModel.js +1 -1
- package/lib/image-viewer/index.js +1 -1
- package/lib/index.js +2 -2
- package/lib/popup/hooks/useTrigger.js +3 -29
- package/lib/popup/hooks/useTrigger.js.map +1 -1
- package/lib/upload/index.js +1 -1
- package/lib/upload/themes/DraggerFile.js +1 -1
- package/lib/upload/themes/ImageCard.js +1 -1
- package/lib/upload/themes/MultipleFlowList.js +1 -1
- package/lib/upload/upload.js +1 -1
- package/package.json +1 -1
- package/esm/_common/style/web/components/dropdown/_index.less +0 -99
- package/esm/_common/style/web/components/dropdown/_mixin.less +0 -0
- package/esm/_common/style/web/components/dropdown/_var.less +0 -22
|
@@ -0,0 +1,515 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdesign v0.42.6
|
|
3
|
+
* (c) 2022 tdesign
|
|
4
|
+
* @license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
var objectWithoutProperties = require('./dep-307e29a6.js');
|
|
10
|
+
var defineProperty = require('./dep-22a6a92c.js');
|
|
11
|
+
var slicedToArray = require('./dep-19ba0d4f.js');
|
|
12
|
+
var React = require('react');
|
|
13
|
+
var isArray = require('./dep-3a9fb6f9.js');
|
|
14
|
+
var isFunction = require('./dep-20769bfb.js');
|
|
15
|
+
var tdesignIconsReact = require('tdesign-icons-react');
|
|
16
|
+
var classNames = require('classnames');
|
|
17
|
+
var tooltip_index = require('../tooltip/index.js');
|
|
18
|
+
var hooks_useConfig = require('../hooks/useConfig.js');
|
|
19
|
+
var imageViewer_utils = require('../image-viewer/utils.js');
|
|
20
|
+
var dialog_index = require('../dialog/index.js');
|
|
21
|
+
var imageViewer_hooks_useMirror = require('../image-viewer/hooks/useMirror.js');
|
|
22
|
+
var imageViewer_hooks_usePosition = require('../image-viewer/hooks/usePosition.js');
|
|
23
|
+
var imageViewer_hooks_useIndex = require('../image-viewer/hooks/useIndex.js');
|
|
24
|
+
var imageViewer_hooks_useRotate = require('../image-viewer/hooks/useRotate.js');
|
|
25
|
+
var imageViewer_hooks_useScale = require('../image-viewer/hooks/useScale.js');
|
|
26
|
+
var hooks_useGlobalIcon = require('../hooks/useGlobalIcon.js');
|
|
27
|
+
var imageViewer_hooks_useIconMap = require('../image-viewer/hooks/useIconMap.js');
|
|
28
|
+
|
|
29
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
30
|
+
|
|
31
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
32
|
+
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
|
33
|
+
|
|
34
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
35
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { defineProperty._defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
36
|
+
var ImageModelMiniContent = function ImageModelMiniContent(props) {
|
|
37
|
+
var _useConfig = hooks_useConfig["default"](),
|
|
38
|
+
classPrefix = _useConfig.classPrefix;
|
|
39
|
+
return /* @__PURE__ */React__default["default"].createElement("div", {
|
|
40
|
+
className: "".concat(classPrefix, "-image-viewer-mini__content")
|
|
41
|
+
}, /* @__PURE__ */React__default["default"].createElement(ImageModelItem, {
|
|
42
|
+
rotateZ: props.rotateZ,
|
|
43
|
+
scale: props.scale,
|
|
44
|
+
mirror: props.mirror,
|
|
45
|
+
src: props.currentImage.mainImage,
|
|
46
|
+
preSrc: props.currentImage.thumbnail
|
|
47
|
+
}));
|
|
48
|
+
};
|
|
49
|
+
var DIALOG_CSS_PADDING = {
|
|
50
|
+
padding: 0
|
|
51
|
+
};
|
|
52
|
+
var ImageModelMini = function ImageModelMini(props) {
|
|
53
|
+
var visible = props.visible,
|
|
54
|
+
title = props.title,
|
|
55
|
+
index = props.index,
|
|
56
|
+
images = props.images,
|
|
57
|
+
scale = props.scale,
|
|
58
|
+
currentImage = props.currentImage,
|
|
59
|
+
draggable = props.draggable,
|
|
60
|
+
onZoomOut = props.onZoomOut,
|
|
61
|
+
onZoom = props.onZoom,
|
|
62
|
+
onClose = props.onClose,
|
|
63
|
+
onRotate = props.onRotate,
|
|
64
|
+
onMirror = props.onMirror,
|
|
65
|
+
onReset = props.onReset;
|
|
66
|
+
var _useConfig2 = hooks_useConfig["default"](),
|
|
67
|
+
classPrefix = _useConfig2.classPrefix;
|
|
68
|
+
var _useGlobalIcon = hooks_useGlobalIcon["default"]({
|
|
69
|
+
CloseIcon: tdesignIconsReact.CloseIcon
|
|
70
|
+
}),
|
|
71
|
+
CloseIcon = _useGlobalIcon.CloseIcon;
|
|
72
|
+
var header = /* @__PURE__ */React__default["default"].createElement("div", {
|
|
73
|
+
className: "".concat(classPrefix, "-image-viewer__mini-header")
|
|
74
|
+
}, /* @__PURE__ */React__default["default"].createElement("span", null, title), "".concat(index + 1, "/").concat(images.length), /* @__PURE__ */React__default["default"].createElement("span", {
|
|
75
|
+
className: "".concat(classPrefix, "-image-viewer__mini-close")
|
|
76
|
+
}, /* @__PURE__ */React__default["default"].createElement(CloseIcon, {
|
|
77
|
+
size: "1.5rem",
|
|
78
|
+
onClick: function onClick(e) {
|
|
79
|
+
return onClose({
|
|
80
|
+
trigger: "close-btn",
|
|
81
|
+
e: e
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
})));
|
|
85
|
+
var footer = /* @__PURE__ */React__default["default"].createElement("div", {
|
|
86
|
+
className: "".concat(classPrefix, "-image-viewer-mini__footer")
|
|
87
|
+
}, /* @__PURE__ */React__default["default"].createElement(ImageViewerUtils, {
|
|
88
|
+
onZoom: onZoom,
|
|
89
|
+
onZoomOut: onZoomOut,
|
|
90
|
+
scale: scale,
|
|
91
|
+
currentImage: currentImage,
|
|
92
|
+
onRotate: onRotate,
|
|
93
|
+
onMirror: onMirror,
|
|
94
|
+
onReset: onReset
|
|
95
|
+
}));
|
|
96
|
+
return /* @__PURE__ */React__default["default"].createElement(dialog_index.Dialog, {
|
|
97
|
+
className: "".concat(classPrefix, "-image-viewer__dialog"),
|
|
98
|
+
draggable: draggable,
|
|
99
|
+
visible: visible,
|
|
100
|
+
width: "min(90vw, 1000px)",
|
|
101
|
+
placement: "center",
|
|
102
|
+
mode: "modeless",
|
|
103
|
+
cancelBtn: null,
|
|
104
|
+
confirmBtn: null,
|
|
105
|
+
closeBtn: false,
|
|
106
|
+
header: header,
|
|
107
|
+
footer: footer,
|
|
108
|
+
onClose: onClose,
|
|
109
|
+
style: DIALOG_CSS_PADDING
|
|
110
|
+
}, /* @__PURE__ */React__default["default"].createElement(ImageModelMiniContent, _objectSpread({}, props)));
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
var _excluded = ["closeOnOverlay", "showOverlay", "zIndex", "images", "isMini", "imageScale", "viewerScale", "closeBtn", "draggable", "onOpen", "onClose", "visible", "title"];
|
|
114
|
+
var ImageError = function ImageError() {
|
|
115
|
+
var _useConfig = hooks_useConfig["default"](),
|
|
116
|
+
classPrefix = _useConfig.classPrefix;
|
|
117
|
+
var _useGlobalIcon = hooks_useGlobalIcon["default"]({
|
|
118
|
+
ImageErrorIcon: tdesignIconsReact.ImageErrorIcon
|
|
119
|
+
}),
|
|
120
|
+
ImageErrorIcon = _useGlobalIcon.ImageErrorIcon;
|
|
121
|
+
return /* @__PURE__ */React__default["default"].createElement("div", {
|
|
122
|
+
className: "".concat(classPrefix, "-image-viewer__img-error")
|
|
123
|
+
}, /* @__PURE__ */React__default["default"].createElement("div", {
|
|
124
|
+
className: "".concat(classPrefix, "-image-viewer__img-error-content")
|
|
125
|
+
}, /* @__PURE__ */React__default["default"].createElement(ImageErrorIcon, {
|
|
126
|
+
size: "4em"
|
|
127
|
+
}), /* @__PURE__ */React__default["default"].createElement("div", {
|
|
128
|
+
className: "".concat(classPrefix, "-image-viewer__img-error-text")
|
|
129
|
+
}, "\u56FE\u7247\u52A0\u8F7D\u5931\u8D25\uFF0C\u53EF\u5C1D\u8BD5\u91CD\u65B0\u52A0\u8F7D")));
|
|
130
|
+
};
|
|
131
|
+
var ImageModelItem = function ImageModelItem(_ref) {
|
|
132
|
+
var rotateZ = _ref.rotateZ,
|
|
133
|
+
scale = _ref.scale,
|
|
134
|
+
src = _ref.src,
|
|
135
|
+
preSrc = _ref.preSrc,
|
|
136
|
+
mirror = _ref.mirror;
|
|
137
|
+
var _useConfig2 = hooks_useConfig["default"](),
|
|
138
|
+
classPrefix = _useConfig2.classPrefix;
|
|
139
|
+
var _usePosition = imageViewer_hooks_usePosition["default"]({
|
|
140
|
+
initPosition: [0, 0]
|
|
141
|
+
}),
|
|
142
|
+
_usePosition2 = slicedToArray._slicedToArray(_usePosition, 2),
|
|
143
|
+
position = _usePosition2[0],
|
|
144
|
+
_onMouseDown = _usePosition2[1];
|
|
145
|
+
var _useState = React.useState(false),
|
|
146
|
+
_useState2 = slicedToArray._slicedToArray(_useState, 2),
|
|
147
|
+
loaded = _useState2[0],
|
|
148
|
+
setLoaded = _useState2[1];
|
|
149
|
+
var _useState3 = React.useState(false),
|
|
150
|
+
_useState4 = slicedToArray._slicedToArray(_useState3, 2),
|
|
151
|
+
error = _useState4[0],
|
|
152
|
+
setError = _useState4[1];
|
|
153
|
+
var imgStyle = {
|
|
154
|
+
transform: "rotateZ(".concat(rotateZ, "deg) scale(").concat(scale, ")"),
|
|
155
|
+
display: !preSrc || loaded ? "block" : "none"
|
|
156
|
+
};
|
|
157
|
+
var preImgStyle = {
|
|
158
|
+
transform: "rotateZ(".concat(rotateZ, "deg) scale(").concat(scale, ")"),
|
|
159
|
+
display: !loaded ? "block" : "none"
|
|
160
|
+
};
|
|
161
|
+
var boxStyle = {
|
|
162
|
+
transform: "translate(".concat(position[0], "px, ").concat(position[1], "px) scale(").concat(mirror, ", 1)")
|
|
163
|
+
};
|
|
164
|
+
React.useEffect(function () {
|
|
165
|
+
setError(false);
|
|
166
|
+
}, [src]);
|
|
167
|
+
return /* @__PURE__ */React__default["default"].createElement("div", {
|
|
168
|
+
className: "".concat(classPrefix, "-image-viewer__modal-pic")
|
|
169
|
+
}, /* @__PURE__ */React__default["default"].createElement("div", {
|
|
170
|
+
className: "".concat(classPrefix, "-image-viewer__modal-box"),
|
|
171
|
+
style: boxStyle
|
|
172
|
+
}, error && /* @__PURE__ */React__default["default"].createElement(ImageError, null), !error && !!preSrc && /* @__PURE__ */React__default["default"].createElement("img", {
|
|
173
|
+
className: "".concat(classPrefix, "-image-viewer__modal-image"),
|
|
174
|
+
onMouseDown: function onMouseDown(event) {
|
|
175
|
+
event.stopPropagation();
|
|
176
|
+
_onMouseDown(event);
|
|
177
|
+
},
|
|
178
|
+
src: preSrc,
|
|
179
|
+
style: preImgStyle,
|
|
180
|
+
"data-testid": "img-drag",
|
|
181
|
+
alt: "image",
|
|
182
|
+
draggable: "false"
|
|
183
|
+
}), !error && /* @__PURE__ */React__default["default"].createElement("img", {
|
|
184
|
+
className: "".concat(classPrefix, "-image-viewer__modal-image"),
|
|
185
|
+
onMouseDown: function onMouseDown(event) {
|
|
186
|
+
event.stopPropagation();
|
|
187
|
+
_onMouseDown(event);
|
|
188
|
+
},
|
|
189
|
+
src: src,
|
|
190
|
+
onLoad: function onLoad() {
|
|
191
|
+
return setLoaded(true);
|
|
192
|
+
},
|
|
193
|
+
onError: function onError() {
|
|
194
|
+
return setError(true);
|
|
195
|
+
},
|
|
196
|
+
style: imgStyle,
|
|
197
|
+
"data-testid": "img-drag",
|
|
198
|
+
alt: "image",
|
|
199
|
+
draggable: "false"
|
|
200
|
+
})));
|
|
201
|
+
};
|
|
202
|
+
var ROTATE_COUNT = 90;
|
|
203
|
+
var ImageModelIcon = function ImageModelIcon(_ref2) {
|
|
204
|
+
var onClick = _ref2.onClick,
|
|
205
|
+
className = _ref2.className,
|
|
206
|
+
disabled = _ref2.disabled,
|
|
207
|
+
isRange = _ref2.isRange,
|
|
208
|
+
name = _ref2.name,
|
|
209
|
+
label = _ref2.label,
|
|
210
|
+
_ref2$size = _ref2.size,
|
|
211
|
+
size = _ref2$size === void 0 ? "3em" : _ref2$size;
|
|
212
|
+
var _useConfig3 = hooks_useConfig["default"](),
|
|
213
|
+
classPrefix = _useConfig3.classPrefix;
|
|
214
|
+
var Icons = imageViewer_hooks_useIconMap["default"]();
|
|
215
|
+
var Icon = Icons[name];
|
|
216
|
+
return /* @__PURE__ */React__default["default"].createElement("div", {
|
|
217
|
+
className: classNames__default["default"]("".concat(classPrefix, "-image-viewer__modal-icon"), className, defineProperty._defineProperty({}, "".concat(classPrefix, "-is-disabled"), disabled)),
|
|
218
|
+
onClick: onClick
|
|
219
|
+
}, name && /* @__PURE__ */React__default["default"].createElement(Icon, {
|
|
220
|
+
size: size,
|
|
221
|
+
className: isRange ? "is-range" : null
|
|
222
|
+
}), label && /* @__PURE__ */React__default["default"].createElement("span", {
|
|
223
|
+
className: "".concat(classPrefix, "-image-viewer__modal-icon-label")
|
|
224
|
+
}, label));
|
|
225
|
+
};
|
|
226
|
+
var ImageViewerUtils = function ImageViewerUtils(_ref3) {
|
|
227
|
+
var onZoom = _ref3.onZoom,
|
|
228
|
+
scale = _ref3.scale,
|
|
229
|
+
onZoomOut = _ref3.onZoomOut,
|
|
230
|
+
currentImage = _ref3.currentImage,
|
|
231
|
+
onRotate = _ref3.onRotate,
|
|
232
|
+
onMirror = _ref3.onMirror,
|
|
233
|
+
onReset = _ref3.onReset;
|
|
234
|
+
var _useConfig4 = hooks_useConfig["default"](),
|
|
235
|
+
classPrefix = _useConfig4.classPrefix;
|
|
236
|
+
var _useGlobalIcon2 = hooks_useGlobalIcon["default"]({
|
|
237
|
+
MirrorIcon: tdesignIconsReact.MirrorIcon,
|
|
238
|
+
RotationIcon: tdesignIconsReact.RotationIcon,
|
|
239
|
+
ImageIcon: tdesignIconsReact.ImageIcon
|
|
240
|
+
}),
|
|
241
|
+
MirrorIcon = _useGlobalIcon2.MirrorIcon,
|
|
242
|
+
RotationIcon = _useGlobalIcon2.RotationIcon,
|
|
243
|
+
ImageIcon = _useGlobalIcon2.ImageIcon;
|
|
244
|
+
return /* @__PURE__ */React__default["default"].createElement("div", {
|
|
245
|
+
className: "".concat(classPrefix, "-image-viewer__utils")
|
|
246
|
+
}, /* @__PURE__ */React__default["default"].createElement("div", {
|
|
247
|
+
className: "".concat(classPrefix, "-image-viewer__utils-content")
|
|
248
|
+
}, /* @__PURE__ */React__default["default"].createElement(tooltip_index.TooltipLite, {
|
|
249
|
+
className: "".concat(classPrefix, "-image-viewer__utils--tip"),
|
|
250
|
+
content: "\u955C\u50CF",
|
|
251
|
+
showShadow: false
|
|
252
|
+
}, /* @__PURE__ */React__default["default"].createElement("div", {
|
|
253
|
+
className: "".concat(classPrefix, "-image-viewer__modal-icon")
|
|
254
|
+
}, /* @__PURE__ */React__default["default"].createElement(MirrorIcon, {
|
|
255
|
+
size: "medium",
|
|
256
|
+
onClick: onMirror
|
|
257
|
+
}))), /* @__PURE__ */React__default["default"].createElement(tooltip_index.TooltipLite, {
|
|
258
|
+
className: "".concat(classPrefix, "-image-viewer__utils--tip"),
|
|
259
|
+
content: "\u65CB\u8F6C",
|
|
260
|
+
showShadow: false
|
|
261
|
+
}, /* @__PURE__ */React__default["default"].createElement("div", {
|
|
262
|
+
className: "".concat(classPrefix, "-image-viewer__modal-icon")
|
|
263
|
+
}, /* @__PURE__ */React__default["default"].createElement(RotationIcon, {
|
|
264
|
+
size: "medium",
|
|
265
|
+
onClick: function onClick() {
|
|
266
|
+
return onRotate(-ROTATE_COUNT);
|
|
267
|
+
}
|
|
268
|
+
}))), /* @__PURE__ */React__default["default"].createElement(ImageModelIcon, {
|
|
269
|
+
size: "medium",
|
|
270
|
+
name: "zoom-out",
|
|
271
|
+
onClick: onZoomOut
|
|
272
|
+
}), /* @__PURE__ */React__default["default"].createElement(ImageModelIcon, {
|
|
273
|
+
className: "".concat(classPrefix, "-image-viewer__utils-scale"),
|
|
274
|
+
size: "medium",
|
|
275
|
+
label: "".concat(scale * 100, "%")
|
|
276
|
+
}), /* @__PURE__ */React__default["default"].createElement(ImageModelIcon, {
|
|
277
|
+
size: "medium",
|
|
278
|
+
name: "zoom-in",
|
|
279
|
+
onClick: onZoom
|
|
280
|
+
}), /* @__PURE__ */React__default["default"].createElement(tooltip_index.TooltipLite, {
|
|
281
|
+
className: "".concat(classPrefix, "-image-viewer__utils--tip"),
|
|
282
|
+
content: "\u539F\u59CB\u5927\u5C0F",
|
|
283
|
+
showShadow: false
|
|
284
|
+
}, /* @__PURE__ */React__default["default"].createElement("div", {
|
|
285
|
+
className: "".concat(classPrefix, "-image-viewer__modal-icon")
|
|
286
|
+
}, /* @__PURE__ */React__default["default"].createElement(ImageIcon, {
|
|
287
|
+
size: "medium",
|
|
288
|
+
name: "image",
|
|
289
|
+
onClick: function onClick() {
|
|
290
|
+
onReset();
|
|
291
|
+
}
|
|
292
|
+
}))), currentImage.download && /* @__PURE__ */React__default["default"].createElement(ImageModelIcon, {
|
|
293
|
+
size: "medium",
|
|
294
|
+
name: "download",
|
|
295
|
+
onClick: function onClick() {
|
|
296
|
+
imageViewer_utils.downloadFile(currentImage.mainImage);
|
|
297
|
+
}
|
|
298
|
+
})));
|
|
299
|
+
};
|
|
300
|
+
var ImageViewerHeader = function ImageViewerHeader(props) {
|
|
301
|
+
var _useConfig5 = hooks_useConfig["default"](),
|
|
302
|
+
classPrefix = _useConfig5.classPrefix;
|
|
303
|
+
var images = props.images,
|
|
304
|
+
currentIndex = props.currentIndex,
|
|
305
|
+
onImgClick = props.onImgClick;
|
|
306
|
+
var _useState5 = React.useState(true),
|
|
307
|
+
_useState6 = slicedToArray._slicedToArray(_useState5, 2),
|
|
308
|
+
isExpand = _useState6[0],
|
|
309
|
+
setIsExpand = _useState6[1];
|
|
310
|
+
var transStyle = {
|
|
311
|
+
transform: "translateX(-".concat(currentIndex * 62, "px)")
|
|
312
|
+
};
|
|
313
|
+
return /* @__PURE__ */React__default["default"].createElement("div", {
|
|
314
|
+
className: classNames__default["default"]("".concat(classPrefix, "-image-viewer__modal-header"), defineProperty._defineProperty({}, "".concat(classPrefix, "-is-show"), isExpand))
|
|
315
|
+
}, /* @__PURE__ */React__default["default"].createElement(ImageModelIcon, {
|
|
316
|
+
size: "20px",
|
|
317
|
+
name: "chevron-down",
|
|
318
|
+
className: "".concat(classPrefix, "-image-viewer__header-pre-bt"),
|
|
319
|
+
onClick: function onClick() {
|
|
320
|
+
return setIsExpand(!isExpand);
|
|
321
|
+
}
|
|
322
|
+
}), /* @__PURE__ */React__default["default"].createElement("div", {
|
|
323
|
+
className: "".concat(classPrefix, "-image-viewer__header-prev")
|
|
324
|
+
}, /* @__PURE__ */React__default["default"].createElement("div", {
|
|
325
|
+
className: "".concat(classPrefix, "-image-viewer__bokeh-left")
|
|
326
|
+
}), /* @__PURE__ */React__default["default"].createElement("div", {
|
|
327
|
+
className: "".concat(classPrefix, "-image-viewer__bokeh-right")
|
|
328
|
+
}), /* @__PURE__ */React__default["default"].createElement("div", {
|
|
329
|
+
className: "".concat(classPrefix, "-image-viewer__header-trans"),
|
|
330
|
+
style: transStyle
|
|
331
|
+
}, images.map(function (image, index) {
|
|
332
|
+
return /* @__PURE__ */React__default["default"].createElement("div", {
|
|
333
|
+
key: index,
|
|
334
|
+
className: classNames__default["default"]("".concat(classPrefix, "-image-viewer__header-box"), defineProperty._defineProperty({}, "".concat(classPrefix, "-is-active"), index === currentIndex)),
|
|
335
|
+
onClick: function onClick() {
|
|
336
|
+
return onImgClick(index);
|
|
337
|
+
}
|
|
338
|
+
}, /* @__PURE__ */React__default["default"].createElement("img", {
|
|
339
|
+
alt: "",
|
|
340
|
+
src: image.thumbnail || image.mainImage,
|
|
341
|
+
className: "".concat(classPrefix, "-image-viewer__header-img")
|
|
342
|
+
}));
|
|
343
|
+
}))));
|
|
344
|
+
};
|
|
345
|
+
var ImageModal = function ImageModal(props) {
|
|
346
|
+
var closeOnOverlay = props.closeOnOverlay,
|
|
347
|
+
_props$showOverlay = props.showOverlay,
|
|
348
|
+
showOverlay = _props$showOverlay === void 0 ? true : _props$showOverlay,
|
|
349
|
+
zIndex = props.zIndex,
|
|
350
|
+
images = props.images,
|
|
351
|
+
isMini = props.isMini,
|
|
352
|
+
imageScale = props.imageScale,
|
|
353
|
+
viewerScale = props.viewerScale,
|
|
354
|
+
closeBtn = props.closeBtn,
|
|
355
|
+
draggable = props.draggable,
|
|
356
|
+
onOpen = props.onOpen,
|
|
357
|
+
onClose = props.onClose,
|
|
358
|
+
visible = props.visible,
|
|
359
|
+
title = props.title,
|
|
360
|
+
resProps = objectWithoutProperties._objectWithoutProperties(props, _excluded);
|
|
361
|
+
var _useConfig6 = hooks_useConfig["default"](),
|
|
362
|
+
classPrefix = _useConfig6.classPrefix;
|
|
363
|
+
if (resProps.index === void 0) delete resProps.index;
|
|
364
|
+
var _useIndex = imageViewer_hooks_useIndex["default"](resProps, images),
|
|
365
|
+
index = _useIndex.index,
|
|
366
|
+
next = _useIndex.next,
|
|
367
|
+
prev = _useIndex.prev,
|
|
368
|
+
setIndex = _useIndex.setIndex;
|
|
369
|
+
var _useRotate = imageViewer_hooks_useRotate["default"](),
|
|
370
|
+
rotateZ = _useRotate.rotateZ,
|
|
371
|
+
onResetRotate = _useRotate.onResetRotate,
|
|
372
|
+
onRotate = _useRotate.onRotate;
|
|
373
|
+
var _useScale = imageViewer_hooks_useScale["default"](imageScale),
|
|
374
|
+
scale = _useScale.scale,
|
|
375
|
+
onZoom = _useScale.onZoom,
|
|
376
|
+
onZoomOut = _useScale.onZoomOut,
|
|
377
|
+
onResetScale = _useScale.onResetScale;
|
|
378
|
+
var _useMirror = imageViewer_hooks_useMirror["default"](),
|
|
379
|
+
mirror = _useMirror.mirror,
|
|
380
|
+
onResetMirror = _useMirror.onResetMirror,
|
|
381
|
+
onMirror = _useMirror.onMirror;
|
|
382
|
+
var onReset = React.useCallback(function () {
|
|
383
|
+
onResetScale();
|
|
384
|
+
onResetRotate();
|
|
385
|
+
onResetMirror();
|
|
386
|
+
}, [onResetMirror, onResetScale, onResetRotate]);
|
|
387
|
+
var onScroll = React.useCallback(function (e) {
|
|
388
|
+
var deltaY = e.deltaY;
|
|
389
|
+
deltaY > 0 ? onZoom() : onZoomOut();
|
|
390
|
+
}, [onZoom, onZoomOut]);
|
|
391
|
+
var onKeyDown = React.useCallback(function (event) {
|
|
392
|
+
switch (event.key) {
|
|
393
|
+
case "ArrowRight":
|
|
394
|
+
return next();
|
|
395
|
+
case "ArrowLeft":
|
|
396
|
+
return prev();
|
|
397
|
+
case "ArrowUp":
|
|
398
|
+
return onZoom();
|
|
399
|
+
case "ArrowDown":
|
|
400
|
+
return onZoomOut();
|
|
401
|
+
case "Escape":
|
|
402
|
+
return onClose === null || onClose === void 0 ? void 0 : onClose({
|
|
403
|
+
trigger: "esc",
|
|
404
|
+
e: event
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
}, [next, onClose, prev, onZoom, onZoomOut]);
|
|
408
|
+
React.useEffect(function () {
|
|
409
|
+
document.addEventListener("keydown", onKeyDown);
|
|
410
|
+
return function () {
|
|
411
|
+
return document.removeEventListener("keydown", onKeyDown);
|
|
412
|
+
};
|
|
413
|
+
}, [onKeyDown]);
|
|
414
|
+
React.useEffect(function () {
|
|
415
|
+
onReset();
|
|
416
|
+
}, [index, onReset]);
|
|
417
|
+
if (!isArray.isArray_1(images) || images.length < 1) return null;
|
|
418
|
+
var currentImage = images[index];
|
|
419
|
+
if (isMini) {
|
|
420
|
+
return /* @__PURE__ */React__default["default"].createElement(ImageModelMini, {
|
|
421
|
+
visible: visible,
|
|
422
|
+
draggable: draggable,
|
|
423
|
+
index: index,
|
|
424
|
+
images: images,
|
|
425
|
+
imageScale: imageScale,
|
|
426
|
+
viewerScale: viewerScale,
|
|
427
|
+
rotateZ: rotateZ,
|
|
428
|
+
zIndex: zIndex,
|
|
429
|
+
currentImage: currentImage,
|
|
430
|
+
prev: prev,
|
|
431
|
+
next: next,
|
|
432
|
+
mirror: mirror,
|
|
433
|
+
scale: scale,
|
|
434
|
+
title: title,
|
|
435
|
+
onMirror: onMirror,
|
|
436
|
+
onZoom: onZoom,
|
|
437
|
+
onClose: onClose,
|
|
438
|
+
onZoomOut: onZoomOut,
|
|
439
|
+
onScroll: onScroll,
|
|
440
|
+
onReset: onReset,
|
|
441
|
+
onRotate: onRotate
|
|
442
|
+
});
|
|
443
|
+
}
|
|
444
|
+
var closeNode = closeBtn;
|
|
445
|
+
if (closeBtn === true) {
|
|
446
|
+
closeNode = /* @__PURE__ */React__default["default"].createElement(ImageModelIcon, {
|
|
447
|
+
name: "close",
|
|
448
|
+
size: "24px",
|
|
449
|
+
className: "".concat(classPrefix, "-image-viewer__modal-close-bt "),
|
|
450
|
+
onClick: function onClick(e) {
|
|
451
|
+
return onClose && onClose({
|
|
452
|
+
trigger: "close-btn",
|
|
453
|
+
e: e
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
});
|
|
457
|
+
} else if (isFunction.isFunction_1(closeBtn)) closeNode = closeBtn({
|
|
458
|
+
onClose: onClose,
|
|
459
|
+
onOpen: onOpen
|
|
460
|
+
});
|
|
461
|
+
return /* @__PURE__ */React__default["default"].createElement("div", {
|
|
462
|
+
className: classNames__default["default"]("".concat(classPrefix, "-image-viewer-preview-image"), defineProperty._defineProperty({}, "".concat(classPrefix, "-is-hide"), !visible)),
|
|
463
|
+
onWheel: onScroll,
|
|
464
|
+
style: {
|
|
465
|
+
zIndex: zIndex
|
|
466
|
+
}
|
|
467
|
+
}, !!showOverlay && /* @__PURE__ */React__default["default"].createElement("div", {
|
|
468
|
+
className: "".concat(classPrefix, "-image-viewer__modal-mask"),
|
|
469
|
+
onClick: function onClick(e) {
|
|
470
|
+
return closeOnOverlay && (onClose === null || onClose === void 0 ? void 0 : onClose({
|
|
471
|
+
trigger: "overlay",
|
|
472
|
+
e: e
|
|
473
|
+
}));
|
|
474
|
+
}
|
|
475
|
+
}), images.length > 1 && /* @__PURE__ */React__default["default"].createElement(React__default["default"].Fragment, null, /* @__PURE__ */React__default["default"].createElement(ImageViewerHeader, {
|
|
476
|
+
images: images,
|
|
477
|
+
currentIndex: index,
|
|
478
|
+
onImgClick: setIndex
|
|
479
|
+
}), /* @__PURE__ */React__default["default"].createElement("div", {
|
|
480
|
+
className: "".concat(classPrefix, "-image-viewer__modal-index")
|
|
481
|
+
}, /* @__PURE__ */React__default["default"].createElement("span", null, title), "".concat(index + 1, "/").concat(images.length)), /* @__PURE__ */React__default["default"].createElement(ImageModelIcon, {
|
|
482
|
+
size: "24px",
|
|
483
|
+
name: "chevron-left",
|
|
484
|
+
className: "".concat(classPrefix, "-image-viewer__modal-prev-bt"),
|
|
485
|
+
onClick: prev,
|
|
486
|
+
disabled: index <= 0
|
|
487
|
+
}), /* @__PURE__ */React__default["default"].createElement(ImageModelIcon, {
|
|
488
|
+
size: "24px",
|
|
489
|
+
name: "chevron-right",
|
|
490
|
+
className: "".concat(classPrefix, "-image-viewer__modal-next-bt"),
|
|
491
|
+
onClick: next,
|
|
492
|
+
disabled: index >= images.length - 1
|
|
493
|
+
})), /* @__PURE__ */React__default["default"].createElement(ImageViewerUtils, {
|
|
494
|
+
onZoom: onZoom,
|
|
495
|
+
onZoomOut: onZoomOut,
|
|
496
|
+
scale: scale,
|
|
497
|
+
currentImage: currentImage,
|
|
498
|
+
onRotate: onRotate,
|
|
499
|
+
onMirror: onMirror,
|
|
500
|
+
onReset: onReset
|
|
501
|
+
}), closeNode, /* @__PURE__ */React__default["default"].createElement(ImageModelItem, {
|
|
502
|
+
scale: scale,
|
|
503
|
+
rotateZ: rotateZ,
|
|
504
|
+
mirror: mirror,
|
|
505
|
+
preSrc: currentImage.thumbnail,
|
|
506
|
+
src: currentImage.mainImage
|
|
507
|
+
}));
|
|
508
|
+
};
|
|
509
|
+
|
|
510
|
+
exports.ImageModal = ImageModal;
|
|
511
|
+
exports.ImageModelItem = ImageModelItem;
|
|
512
|
+
exports.ImageModelMini = ImageModelMini;
|
|
513
|
+
exports.ImageModelMiniContent = ImageModelMiniContent;
|
|
514
|
+
exports.ImageViewerUtils = ImageViewerUtils;
|
|
515
|
+
//# sourceMappingURL=dep-6a672006.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dep-6a672006.js","sources":["../../src/image-viewer/ImageViewerMini.tsx","../../src/image-viewer/ImageViewerModel.tsx"],"sourcesContent":["import React, { KeyboardEvent, MouseEvent } from 'react';\nimport { CloseIcon as TdCloseIcon } from 'tdesign-icons-react';\nimport { TNode } from 'tdesign-react/common';\nimport Dialog from '../dialog';\nimport { ImageInfo, ImageScale, ImageViewerScale } from './type';\nimport { ImageModelItem, ImageViewerUtils } from './ImageViewerModel';\nimport useConfig from '../hooks/useConfig';\nimport useGlobalIcon from '../hooks/useGlobalIcon';\n\nexport interface ImageModelMiniProps {\n visible: boolean;\n title?: TNode;\n draggable: boolean;\n index: number;\n scale: number;\n mirror: number;\n images: ImageInfo[];\n onClose: (context: { trigger: 'close-btn' | 'overlay' | 'esc'; e: MouseEvent<HTMLElement> | KeyboardEvent }) => void;\n onScroll: (e: any) => void;\n imageScale: ImageScale;\n viewerScale: ImageViewerScale;\n rotateZ: number;\n currentImage: ImageInfo;\n prev: () => void;\n next: () => void;\n onMirror: () => void;\n onZoom: () => void;\n onZoomOut: () => void;\n onReset: () => void;\n onRotate: (red: number) => void;\n zIndex: number;\n}\n\nexport const ImageModelMiniContent = (props: ImageModelMiniProps) => {\n const { classPrefix } = useConfig();\n\n return (\n <div className={`${classPrefix}-image-viewer-mini__content`}>\n <ImageModelItem\n rotateZ={props.rotateZ}\n scale={props.scale}\n mirror={props.mirror}\n src={props.currentImage.mainImage}\n preSrc={props.currentImage.thumbnail}\n />\n </div>\n );\n};\n\nconst DIALOG_CSS_PADDING = {\n padding: 0,\n};\n\nexport const ImageModelMini = (props: ImageModelMiniProps) => {\n const {\n visible,\n title,\n index,\n images,\n scale,\n currentImage,\n draggable,\n onZoomOut,\n onZoom,\n onClose,\n onRotate,\n onMirror,\n onReset,\n } = props;\n\n const { classPrefix } = useConfig();\n const { CloseIcon } = useGlobalIcon({ CloseIcon: TdCloseIcon });\n\n const header = (\n <div className={`${classPrefix}-image-viewer__mini-header`}>\n <span>{title}</span>\n {`${index + 1}/${images.length}`}\n <span className={`${classPrefix}-image-viewer__mini-close`}>\n <CloseIcon size=\"1.5rem\" onClick={(e: MouseEvent<any>) => onClose({ trigger: 'close-btn', e })} />\n </span>\n </div>\n );\n\n const footer = (\n <div className={`${classPrefix}-image-viewer-mini__footer`}>\n <ImageViewerUtils\n onZoom={onZoom}\n onZoomOut={onZoomOut}\n scale={scale}\n currentImage={currentImage}\n onRotate={onRotate}\n onMirror={onMirror}\n onReset={onReset}\n />\n </div>\n );\n\n return (\n <Dialog\n className={`${classPrefix}-image-viewer__dialog`}\n draggable={draggable}\n visible={visible}\n width=\"min(90vw, 1000px)\"\n placement=\"center\"\n mode=\"modeless\"\n cancelBtn={null}\n confirmBtn={null}\n closeBtn={false}\n header={header}\n footer={footer}\n onClose={onClose}\n style={DIALOG_CSS_PADDING}\n >\n <ImageModelMiniContent {...props} />\n </Dialog>\n );\n};\n","import React, { useState, useEffect, useCallback, WheelEventHandler, MouseEvent, KeyboardEvent } from 'react';\nimport isArray from 'lodash/isArray';\nimport isFunction from 'lodash/isFunction';\nimport {\n ImageErrorIcon as TdImageErrorIcon,\n ImageIcon as TdImageIcon,\n MirrorIcon as TdMirrorIcon,\n RotationIcon as TdRotationIcon,\n} from 'tdesign-icons-react';\nimport classNames from 'classnames';\nimport { TooltipLite } from '../tooltip';\nimport useConfig from '../hooks/useConfig';\nimport { TNode } from '../common';\nimport { downloadFile } from './utils';\nimport { ImageInfo, ImageScale, ImageViewerScale } from './type';\nimport { ImageModelMini } from './ImageViewerMini';\nimport useMirror from './hooks/useMirror';\nimport usePosition from './hooks/usePosition';\nimport useIndex from './hooks/useIndex';\nimport useRotate from './hooks/useRotate';\nimport useScale from './hooks/useScale';\nimport useGlobalIcon from '../hooks/useGlobalIcon';\nimport useIconMap from './hooks/useIconMap';\n\nconst ImageError = () => {\n const { classPrefix } = useConfig();\n const { ImageErrorIcon } = useGlobalIcon({ ImageErrorIcon: TdImageErrorIcon });\n return (\n <div className={`${classPrefix}-image-viewer__img-error`}>\n {/* 脱离文档流 */}\n <div className={`${classPrefix}-image-viewer__img-error-content`}>\n <ImageErrorIcon size=\"4em\" />\n <div className={`${classPrefix}-image-viewer__img-error-text`}>图片加载失败,可尝试重新加载</div>\n </div>\n </div>\n );\n};\n\ninterface ImageModelItemProps {\n rotateZ: number;\n scale: number;\n mirror: number;\n src: string;\n preSrc?: string;\n}\n\n// 单个弹窗实例\nexport const ImageModelItem = ({ rotateZ, scale, src, preSrc, mirror }: ImageModelItemProps) => {\n const { classPrefix } = useConfig();\n\n const [position, onMouseDown] = usePosition({ initPosition: [0, 0] });\n const [loaded, setLoaded] = useState(false);\n const [error, setError] = useState(false);\n\n const imgStyle = {\n transform: `rotateZ(${rotateZ}deg) scale(${scale})`,\n display: !preSrc || loaded ? 'block' : 'none',\n };\n const preImgStyle = { transform: `rotateZ(${rotateZ}deg) scale(${scale})`, display: !loaded ? 'block' : 'none' };\n const boxStyle = { transform: `translate(${position[0]}px, ${position[1]}px) scale(${mirror}, 1)` };\n\n useEffect(() => {\n setError(false);\n }, [src]);\n\n return (\n <div className={`${classPrefix}-image-viewer__modal-pic`}>\n <div className={`${classPrefix}-image-viewer__modal-box`} style={boxStyle}>\n {error && <ImageError />}\n {!error && !!preSrc && (\n <img\n className={`${classPrefix}-image-viewer__modal-image`}\n onMouseDown={(event) => {\n event.stopPropagation();\n onMouseDown(event);\n }}\n src={preSrc}\n style={preImgStyle}\n data-testid=\"img-drag\"\n alt=\"image\"\n draggable=\"false\"\n />\n )}\n {!error && (\n <img\n className={`${classPrefix}-image-viewer__modal-image`}\n onMouseDown={(event) => {\n event.stopPropagation();\n onMouseDown(event);\n }}\n src={src}\n onLoad={() => setLoaded(true)}\n onError={() => setError(true)}\n style={imgStyle}\n data-testid=\"img-drag\"\n alt=\"image\"\n draggable=\"false\"\n />\n )}\n </div>\n </div>\n );\n};\n\n// 旋转角度单位\nconst ROTATE_COUNT = 90;\n\ninterface ImageModelIconProps {\n name?: string;\n size?: string;\n label?: string;\n className?: string;\n disabled?: boolean;\n isRange?: boolean;\n onClick?: (e: MouseEvent<HTMLElement>) => void;\n}\n\nconst ImageModelIcon = ({ onClick, className, disabled, isRange, name, label, size = '3em' }: ImageModelIconProps) => {\n const { classPrefix } = useConfig();\n\n const Icons = useIconMap();\n\n const Icon = Icons[name];\n return (\n <div\n className={classNames(`${classPrefix}-image-viewer__modal-icon`, className, {\n [`${classPrefix}-is-disabled`]: disabled,\n })}\n onClick={onClick}\n >\n {name && <Icon size={size} className={isRange ? 'is-range' : null} />}\n {label && <span className={`${classPrefix}-image-viewer__modal-icon-label`}>{label}</span>}\n </div>\n );\n};\n\ninterface ImageViewerUtilsProps {\n scale: number;\n currentImage: ImageInfo;\n onRotate: (ROTATE_COUNT: number) => void;\n onZoom: () => void;\n onZoomOut: () => void;\n onMirror: () => void;\n onReset: () => void;\n}\n\nexport const ImageViewerUtils = ({\n onZoom,\n scale,\n onZoomOut,\n currentImage,\n onRotate,\n onMirror,\n onReset,\n}: ImageViewerUtilsProps) => {\n const { classPrefix } = useConfig();\n const { MirrorIcon, RotationIcon, ImageIcon } = useGlobalIcon({\n MirrorIcon: TdMirrorIcon,\n RotationIcon: TdRotationIcon,\n ImageIcon: TdImageIcon,\n });\n\n return (\n <div className={`${classPrefix}-image-viewer__utils`}>\n <div className={`${classPrefix}-image-viewer__utils-content`}>\n <TooltipLite className={`${classPrefix}-image-viewer__utils--tip`} content=\"镜像\" showShadow={false}>\n <div className={`${classPrefix}-image-viewer__modal-icon`}>\n <MirrorIcon size=\"medium\" onClick={onMirror} />\n </div>\n </TooltipLite>\n <TooltipLite className={`${classPrefix}-image-viewer__utils--tip`} content=\"旋转\" showShadow={false}>\n <div className={`${classPrefix}-image-viewer__modal-icon`}>\n <RotationIcon size=\"medium\" onClick={() => onRotate(-ROTATE_COUNT)} />\n </div>\n </TooltipLite>\n <ImageModelIcon size=\"medium\" name=\"zoom-out\" onClick={onZoomOut} />\n <ImageModelIcon\n className={`${classPrefix}-image-viewer__utils-scale`}\n size=\"medium\"\n label={`${scale * 100}%`}\n />\n <ImageModelIcon size=\"medium\" name=\"zoom-in\" onClick={onZoom} />\n <TooltipLite className={`${classPrefix}-image-viewer__utils--tip`} content=\"原始大小\" showShadow={false}>\n <div className={`${classPrefix}-image-viewer__modal-icon`}>\n <ImageIcon\n size=\"medium\"\n name=\"image\"\n onClick={() => {\n onReset();\n }}\n />\n </div>\n </TooltipLite>\n {currentImage.download && (\n <ImageModelIcon\n size=\"medium\"\n name=\"download\"\n onClick={() => {\n downloadFile(currentImage.mainImage);\n }}\n />\n )}\n </div>\n {/* <IconFont size=\"3em\" name=\"page-last\" onClick={() => onRotate(ROTATE_COUNT)} /> */}\n </div>\n );\n};\n\ntype ImageViewerHeaderProps = {\n onImgClick: (index: number) => void;\n images: ImageInfo[];\n currentIndex: number;\n};\n\nconst ImageViewerHeader = (props: ImageViewerHeaderProps) => {\n const { classPrefix } = useConfig();\n const { images, currentIndex, onImgClick } = props;\n\n const [isExpand, setIsExpand] = useState(true);\n\n const transStyle = { transform: `translateX(-${currentIndex * 62}px)` };\n\n return (\n <div\n className={classNames(`${classPrefix}-image-viewer__modal-header`, {\n [`${classPrefix}-is-show`]: isExpand,\n })}\n >\n <ImageModelIcon\n size=\"20px\"\n name=\"chevron-down\"\n className={`${classPrefix}-image-viewer__header-pre-bt`}\n onClick={() => setIsExpand(!isExpand)}\n />\n <div className={`${classPrefix}-image-viewer__header-prev`}>\n <div className={`${classPrefix}-image-viewer__bokeh-left`} />\n <div className={`${classPrefix}-image-viewer__bokeh-right`} />\n <div className={`${classPrefix}-image-viewer__header-trans`} style={transStyle}>\n {images.map((image, index) => (\n <div\n key={index}\n className={classNames(`${classPrefix}-image-viewer__header-box`, {\n [`${classPrefix}-is-active`]: index === currentIndex,\n })}\n onClick={() => onImgClick(index)}\n >\n <img\n alt=\"\"\n src={image.thumbnail || image.mainImage}\n className={`${classPrefix}-image-viewer__header-img`}\n />\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n};\n\ninterface ImageModalProps {\n title?: TNode;\n visible: boolean;\n closeOnOverlay: boolean;\n showOverlay: boolean;\n index: number;\n defaultIndex?: number;\n images: ImageInfo[];\n onClose: (context: { trigger: 'close-btn' | 'overlay' | 'esc'; e: MouseEvent<HTMLElement> | KeyboardEvent }) => void;\n onOpen: () => void;\n imageScale: ImageScale;\n viewerScale: ImageViewerScale;\n zIndex: number;\n isMini: boolean;\n draggable: boolean;\n closeBtn: boolean | TNode;\n onIndexChange?: (index: number, context: { trigger: 'prev' | 'next' }) => void;\n}\n\n// 弹窗基础组件\nexport const ImageModal = (props: ImageModalProps) => {\n const {\n closeOnOverlay,\n showOverlay = true,\n zIndex,\n images,\n isMini,\n imageScale,\n viewerScale,\n closeBtn,\n draggable,\n onOpen,\n onClose,\n visible,\n title,\n ...resProps\n } = props;\n const { classPrefix } = useConfig();\n if (resProps.index === undefined) delete resProps.index;\n const { index, next, prev, setIndex } = useIndex(resProps, images);\n const { rotateZ, onResetRotate, onRotate } = useRotate();\n const { scale, onZoom, onZoomOut, onResetScale } = useScale(imageScale);\n const { mirror, onResetMirror, onMirror } = useMirror();\n\n const onReset = useCallback(() => {\n onResetScale();\n onResetRotate();\n onResetMirror();\n }, [onResetMirror, onResetScale, onResetRotate]);\n\n const onScroll: WheelEventHandler<HTMLDivElement> = useCallback(\n (e) => {\n const { deltaY } = e;\n deltaY > 0 ? onZoom() : onZoomOut();\n },\n [onZoom, onZoomOut],\n );\n\n const onKeyDown = useCallback(\n (event) => {\n switch (event.key) {\n case 'ArrowRight':\n return next();\n case 'ArrowLeft':\n return prev();\n case 'ArrowUp':\n return onZoom();\n case 'ArrowDown':\n return onZoomOut();\n case 'Escape':\n return onClose?.({ trigger: 'esc', e: event });\n }\n },\n [next, onClose, prev, onZoom, onZoomOut],\n );\n\n useEffect(() => {\n document.addEventListener('keydown', onKeyDown);\n return () => document.removeEventListener('keydown', onKeyDown);\n }, [onKeyDown]);\n\n useEffect(() => {\n onReset();\n }, [index, onReset]);\n\n if (!isArray(images) || images.length < 1) return null;\n\n const currentImage: ImageInfo = images[index];\n\n if (isMini) {\n return (\n <ImageModelMini\n visible={visible}\n draggable={draggable}\n index={index}\n images={images}\n imageScale={imageScale}\n viewerScale={viewerScale}\n rotateZ={rotateZ}\n zIndex={zIndex}\n currentImage={currentImage}\n prev={prev}\n next={next}\n mirror={mirror}\n scale={scale}\n title={title}\n onMirror={onMirror}\n onZoom={onZoom}\n onClose={onClose}\n onZoomOut={onZoomOut}\n onScroll={onScroll}\n onReset={onReset}\n onRotate={onRotate}\n />\n );\n }\n\n // boolean控制显示,tnode直接展示\n let closeNode: TNode = closeBtn;\n if (closeBtn === true) {\n closeNode = (\n <ImageModelIcon\n name=\"close\"\n size=\"24px\"\n className={`${classPrefix}-image-viewer__modal-close-bt `}\n onClick={(e: MouseEvent<HTMLElement>) => onClose && onClose({ trigger: 'close-btn', e })}\n />\n );\n } else if (isFunction(closeBtn)) closeNode = closeBtn({ onClose, onOpen });\n\n return (\n <div\n className={classNames(`${classPrefix}-image-viewer-preview-image`, {\n [`${classPrefix}-is-hide`]: !visible,\n })}\n onWheel={onScroll}\n style={{ zIndex }}\n >\n {!!showOverlay && (\n <div\n className={`${classPrefix}-image-viewer__modal-mask`}\n onClick={(e: MouseEvent<HTMLElement>) => closeOnOverlay && onClose?.({ trigger: 'overlay', e })}\n />\n )}\n {images.length > 1 && (\n <>\n <ImageViewerHeader images={images} currentIndex={index} onImgClick={setIndex} />\n <div className={`${classPrefix}-image-viewer__modal-index`}>\n <span>{title}</span>\n {`${index + 1}/${images.length}`}\n </div>\n <ImageModelIcon\n size=\"24px\"\n name=\"chevron-left\"\n className={`${classPrefix}-image-viewer__modal-prev-bt`}\n onClick={prev}\n disabled={index <= 0}\n />\n <ImageModelIcon\n size=\"24px\"\n name=\"chevron-right\"\n className={`${classPrefix}-image-viewer__modal-next-bt`}\n onClick={next}\n disabled={index >= images.length - 1}\n />\n </>\n )}\n <ImageViewerUtils\n onZoom={onZoom}\n onZoomOut={onZoomOut}\n scale={scale}\n currentImage={currentImage}\n onRotate={onRotate}\n onMirror={onMirror}\n onReset={onReset}\n />\n {closeNode}\n <ImageModelItem\n scale={scale}\n rotateZ={rotateZ}\n mirror={mirror}\n preSrc={currentImage.thumbnail}\n src={currentImage.mainImage}\n />\n </div>\n );\n};\n"],"names":["ImageModelMiniContent","props","useConfig","classPrefix","React","createElement","className","ImageModelItem","rotateZ","scale","mirror","src","currentImage","mainImage","preSrc","thumbnail","DIALOG_CSS_PADDING","padding","ImageModelMini","visible","title","index","images","draggable","onZoomOut","onZoom","onClose","onRotate","onMirror","onReset","useGlobalIcon","CloseIcon","TdCloseIcon","header","length","size","onClick","e","trigger","footer","ImageViewerUtils","Dialog","width","placement","mode","cancelBtn","confirmBtn","closeBtn","style","ImageError","ImageErrorIcon","TdImageErrorIcon","usePosition","initPosition","_slicedToArray","position","onMouseDown","useState","loaded","setLoaded","error","setError","imgStyle","transform","display","preImgStyle","boxStyle","useEffect","event","stopPropagation","alt","onLoad","onError","ROTATE_COUNT","ImageModelIcon","disabled","isRange","name","label","Icons","useIconMap","Icon","classNames","MirrorIcon","TdMirrorIcon","RotationIcon","TdRotationIcon","ImageIcon","TdImageIcon","TooltipLite","content","showShadow","download","downloadFile","ImageViewerHeader","currentIndex","onImgClick","isExpand","setIsExpand","transStyle","map","image","key","_defineProperty","ImageModal","closeOnOverlay","showOverlay","zIndex","isMini","imageScale","viewerScale","onOpen","resProps","useIndex","next","prev","setIndex","useRotate","onResetRotate","useScale","onResetScale","useMirror","onResetMirror","useCallback","onScroll","deltaY","onKeyDown","document","addEventListener","removeEventListener","isArray","closeNode","isFunction","onWheel"],"mappings":"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"}
|