gdx-ui 1.15.3 → 2.0.1
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/base.css +1 -1
- package/components/autocomplete/Autocomplete.js +64 -53
- package/components/badge/Badge.js +2 -2
- package/components/box/Box.js +34 -31
- package/components/dialog/Dialog.js +15 -26
- package/components/editable/Editable.js +105 -95
- package/components/editable/EditableArea.js +3 -0
- package/components/flex/Flex.js +51 -22
- package/components/forms/LabelInput.js +13 -4
- package/components/forms/LabelValue.js +13 -4
- package/components/images/CarouselImages.js +11 -12
- package/components/images/Img.js +14 -26
- package/components/images/Thumb.js +16 -40
- package/components/images/{ImageZoom.js → ZoomImage.js} +74 -111
- package/components/images/{PictureZoomBtns.js → ZoomImageButtons.js} +50 -63
- package/components/images/{Picture.js → ZoomImageSquare.js} +3 -3
- package/components/images/index.js +33 -11
- package/components/images/useImageLoader.js +76 -0
- package/components/list/ScrollableList.js +1 -1
- package/components/snackbar/Snackbar.js +1 -1
- package/components/table/Table.js +14 -1
- package/components/util/Note.js +14 -5
- package/components/util/Text.js +41 -9
- package/components/util/Title.js +35 -8
- package/components/util/index.js +0 -11
- package/components/widget/Widget.js +16 -5
- package/hooks/index.js +11 -0
- package/hooks/useAutocomplete.js +103 -0
- package/package.json +1 -1
- package/stories/box/Box.stories.js +32 -0
- package/stories/editable/Editable.stories.js +26 -0
- package/stories/editable/Editor.stories.js +33 -0
- package/stories/forms/Autocomplete.stories.js +101 -0
- package/stories/images/CarouselImages.stories.js +31 -0
- package/stories/images/{images.stories.js → Images.stories.js} +1 -1
- package/stories/images/ZoomImage.stories.js +24 -0
- package/stories/images/ZoomImageButtons.stories.js +23 -0
- package/stories/images/ZoomImageSquare.stories.js +23 -0
- package/stories/layout/Flex.stories.js +180 -0
- package/stories/list/ScrollableList.stories.js +37 -8
- package/stories/utils/Badge.stories.js +29 -0
- package/stories/utils/Expanded.stories.js +18 -7
- package/stories/utils/Loader.stories.js +32 -0
- package/stories/utils/Note.stories.js +38 -0
- package/stories/utils/Snackbar.stories.js +46 -0
- package/stories/utils/Text.stories.js +40 -0
- package/stories/utils/Tooltip.stories.js +22 -0
- package/stories/widget/Widget.stories.js +59 -0
- package/components/images/PictureZoomSquare.js +0 -60
- package/components/list/SortableList.js +0 -138
- package/components/list/SortableListOLD.js +0 -121
- package/components/scroller/ListScroller.js +0 -113
- package/components/util/Anchor.js +0 -30
- package/stories/flex/Flex.stories.js +0 -35
- package/stories/list/SorteableList.stories.js +0 -45
- /package/stories/images/{thumb.stories.js → Thumb.stories.js} +0 -0
|
@@ -1,61 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.Thumb = void 0;
|
|
8
|
-
var _react =
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
9
|
var _util = require("../util");
|
|
10
|
+
var _useImageLoader2 = require("./useImageLoader");
|
|
11
11
|
var _noImage = _interopRequireDefault(require("../../assets/no-image.jpg"));
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
16
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
17
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
18
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
19
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
20
|
-
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } // import noImage from '../../../assets/logo.svg';
|
|
13
|
+
// import noImage from '../../../assets/logo.svg';
|
|
14
|
+
|
|
21
15
|
var Thumb = exports.Thumb = function Thumb(_ref) {
|
|
22
16
|
var src = _ref.src,
|
|
23
17
|
alt = _ref.alt,
|
|
24
18
|
_ref$bordered = _ref.bordered,
|
|
25
19
|
bordered = _ref$bordered === void 0 ? false : _ref$bordered,
|
|
26
20
|
_ref$size = _ref.size,
|
|
27
|
-
size = _ref$size === void 0 ? 'medium' : _ref$size
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
height = image.height;
|
|
39
|
-
setImageData({
|
|
40
|
-
width: width,
|
|
41
|
-
height: height
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
}, [src]);
|
|
45
|
-
var isClickable = typeof onClick === 'function';
|
|
46
|
-
return /*#__PURE__*/_react["default"].createElement("div", _extends({
|
|
47
|
-
className: "thumb thumb-".concat(size, " ").concat(bordered ? 'thumb-bordered' : '', " ").concat(isClickable ? 'clickable bordered-hover' : '')
|
|
48
|
-
}, isClickable && {
|
|
49
|
-
onClick: onClick,
|
|
50
|
-
role: 'button',
|
|
51
|
-
tabIndex: 0,
|
|
52
|
-
onKeyDown: function onKeyDown(e) {
|
|
53
|
-
if (e.key === 'Enter' || e.key === ' ') onClick(e);
|
|
54
|
-
}
|
|
55
|
-
}), imageData ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
21
|
+
size = _ref$size === void 0 ? 'medium' : _ref$size;
|
|
22
|
+
var _useImageLoader = (0, _useImageLoader2.useImageLoader)(src),
|
|
23
|
+
isLoading = _useImageLoader.isLoading,
|
|
24
|
+
hasError = _useImageLoader.hasError,
|
|
25
|
+
width = _useImageLoader.width,
|
|
26
|
+
height = _useImageLoader.height;
|
|
27
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
28
|
+
className: "thumb thumb-".concat(size, " ").concat(bordered ? 'thumb-bordered' : '')
|
|
29
|
+
}, isLoading ? /*#__PURE__*/_react["default"].createElement(_util.Loader, {
|
|
30
|
+
inline: true
|
|
31
|
+
}) : !hasError ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
56
32
|
src: src,
|
|
57
33
|
alt: alt,
|
|
58
|
-
className: "center-by-".concat(
|
|
34
|
+
className: "center-by-".concat(width > height ? 'width' : 'height')
|
|
59
35
|
}) : /*#__PURE__*/_react["default"].createElement("img", {
|
|
60
36
|
src: _noImage["default"],
|
|
61
37
|
alt: alt,
|
|
@@ -4,12 +4,11 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.ZoomImage = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _util = require("../util");
|
|
11
|
-
var
|
|
12
|
-
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
11
|
+
var _useImageLoader2 = require("./useImageLoader");
|
|
13
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
14
13
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
15
14
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
@@ -18,7 +17,7 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
18
17
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
19
18
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
20
19
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
21
|
-
var
|
|
20
|
+
var ZoomImage = exports.ZoomImage = function ZoomImage(_ref) {
|
|
22
21
|
var src = _ref.src,
|
|
23
22
|
alt = _ref.alt,
|
|
24
23
|
_ref$width = _ref.width,
|
|
@@ -29,81 +28,59 @@ var ImageZoom = exports.ImageZoom = function ImageZoom(_ref) {
|
|
|
29
28
|
bordered = _ref$bordered === void 0 ? false : _ref$bordered,
|
|
30
29
|
_ref$maxZoom = _ref.maxZoom,
|
|
31
30
|
maxZoom = _ref$maxZoom === void 0 ? 1.5 : _ref$maxZoom,
|
|
32
|
-
_ref$
|
|
33
|
-
|
|
34
|
-
var
|
|
31
|
+
_ref$showHelper = _ref.showHelper,
|
|
32
|
+
showHelper = _ref$showHelper === void 0 ? true : _ref$showHelper;
|
|
33
|
+
var normalizedMaxZoom = Math.min(5, Math.max(1, Number(maxZoom) || 1));
|
|
34
|
+
var _useImageLoader = (0, _useImageLoader2.useImageLoader)(src),
|
|
35
|
+
isLoading = _useImageLoader.isLoading,
|
|
36
|
+
hasError = _useImageLoader.hasError,
|
|
37
|
+
imageWidth = _useImageLoader.width,
|
|
38
|
+
imageHeight = _useImageLoader.height;
|
|
39
|
+
var imageData = (0, _react.useMemo)(function () {
|
|
40
|
+
return !isLoading && !hasError && imageWidth > 0 && imageHeight > 0 ? {
|
|
41
|
+
width: imageWidth,
|
|
42
|
+
height: imageHeight
|
|
43
|
+
} : null;
|
|
44
|
+
}, [isLoading, hasError, imageWidth, imageHeight]);
|
|
45
|
+
var _useState = (0, _react.useState)(1),
|
|
35
46
|
_useState2 = _slicedToArray(_useState, 2),
|
|
36
|
-
|
|
37
|
-
|
|
47
|
+
zoom = _useState2[0],
|
|
48
|
+
setZoom = _useState2[1];
|
|
38
49
|
var _useState3 = (0, _react.useState)(1),
|
|
39
50
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
var _useState5 = (0, _react.useState)(
|
|
51
|
+
minZoom = _useState4[0],
|
|
52
|
+
setMinZoom = _useState4[1];
|
|
53
|
+
var _useState5 = (0, _react.useState)(normalizedMaxZoom),
|
|
43
54
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
var _useState7 = (0, _react.useState)(
|
|
47
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
48
|
-
maxZoomState = _useState8[0],
|
|
49
|
-
setMaxZoomState = _useState8[1];
|
|
50
|
-
var _useState9 = (0, _react.useState)({
|
|
55
|
+
maxZoomState = _useState6[0],
|
|
56
|
+
setMaxZoomState = _useState6[1];
|
|
57
|
+
var _useState7 = (0, _react.useState)({
|
|
51
58
|
x: 0,
|
|
52
59
|
y: 0
|
|
53
60
|
}),
|
|
61
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
62
|
+
offset = _useState8[0],
|
|
63
|
+
setOffset = _useState8[1];
|
|
64
|
+
var _useState9 = (0, _react.useState)(false),
|
|
54
65
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
var _useState1 = (0, _react.useState)(
|
|
58
|
-
_useState10 = _slicedToArray(_useState1, 2),
|
|
59
|
-
dragging = _useState10[0],
|
|
60
|
-
setDragging = _useState10[1];
|
|
61
|
-
var _useState11 = (0, _react.useState)({
|
|
66
|
+
dragging = _useState0[0],
|
|
67
|
+
setDragging = _useState0[1];
|
|
68
|
+
var _useState1 = (0, _react.useState)({
|
|
62
69
|
x: 0,
|
|
63
70
|
y: 0
|
|
64
71
|
}),
|
|
65
|
-
|
|
66
|
-
dragStart =
|
|
67
|
-
setDragStart =
|
|
68
|
-
var
|
|
72
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
73
|
+
dragStart = _useState10[0],
|
|
74
|
+
setDragStart = _useState10[1];
|
|
75
|
+
var _useState11 = (0, _react.useState)({
|
|
69
76
|
x: 0,
|
|
70
77
|
y: 0
|
|
71
78
|
}),
|
|
72
|
-
|
|
73
|
-
imgStart =
|
|
74
|
-
setImgStart =
|
|
79
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
80
|
+
imgStart = _useState12[0],
|
|
81
|
+
setImgStart = _useState12[1];
|
|
75
82
|
var containerRef = (0, _react.useRef)(null);
|
|
76
83
|
|
|
77
|
-
// Cuando la imagen y el wrapper están listos, calcula el zoom mínimo y máximo
|
|
78
|
-
(0, _react.useEffect)(function () {
|
|
79
|
-
if (!src) return;
|
|
80
|
-
var image = new Image();
|
|
81
|
-
image.src = src;
|
|
82
|
-
image.onload = function () {
|
|
83
|
-
setImageData({
|
|
84
|
-
width: image.width,
|
|
85
|
-
height: image.height
|
|
86
|
-
});
|
|
87
|
-
};
|
|
88
|
-
}, [src]);
|
|
89
|
-
(0, _react.useEffect)(function () {
|
|
90
|
-
if (!imageData || !containerRef.current) return;
|
|
91
|
-
var wrapper = containerRef.current;
|
|
92
|
-
var dispW = wrapper.clientWidth;
|
|
93
|
-
var dispH = wrapper.clientHeight;
|
|
94
|
-
var zoomW = dispW / imageData.width;
|
|
95
|
-
var zoomH = dispH / imageData.height;
|
|
96
|
-
var fitZoom = Math.min(zoomW, zoomH);
|
|
97
|
-
setMinZoom(fitZoom);
|
|
98
|
-
setZoom(fitZoom);
|
|
99
|
-
setMaxZoomState(Math.max(fitZoom, maxZoom));
|
|
100
|
-
setOffset({
|
|
101
|
-
x: 0,
|
|
102
|
-
y: 0
|
|
103
|
-
});
|
|
104
|
-
// eslint-disable-next-line
|
|
105
|
-
}, [imageData, maxZoom, width, height]);
|
|
106
|
-
|
|
107
84
|
// Limita el offset para que la imagen no se salga del área visible
|
|
108
85
|
var clampOffset = function clampOffset(ox, oy, zoomVal) {
|
|
109
86
|
if (!imageData || !containerRef.current) return {
|
|
@@ -164,51 +141,28 @@ var ImageZoom = exports.ImageZoom = function ImageZoom(_ref) {
|
|
|
164
141
|
var onTouchEnd = function onTouchEnd() {
|
|
165
142
|
return setDragging(false);
|
|
166
143
|
};
|
|
144
|
+
var applyZoomFromPoint = function applyZoomFromPoint(newZoom, anchorX, anchorY) {
|
|
145
|
+
if (!imageData || !containerRef.current) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
setOffset(function (current) {
|
|
149
|
+
var relX = (anchorX - current.x) / zoom;
|
|
150
|
+
var relY = (anchorY - current.y) / zoom;
|
|
151
|
+
var nextX = anchorX - relX * newZoom;
|
|
152
|
+
var nextY = anchorY - relY * newZoom;
|
|
153
|
+
return clampOffset(nextX, nextY, newZoom);
|
|
154
|
+
});
|
|
155
|
+
setZoom(newZoom);
|
|
156
|
+
};
|
|
167
157
|
var handleDoubleClick = function handleDoubleClick(e) {
|
|
168
158
|
if (!imageData || !containerRef.current) return;
|
|
169
|
-
var
|
|
170
|
-
var
|
|
171
|
-
var
|
|
172
|
-
var clickY = e.clientY - rect.top;
|
|
159
|
+
var rect = containerRef.current.getBoundingClientRect();
|
|
160
|
+
var anchorX = e.clientX - rect.left;
|
|
161
|
+
var anchorY = e.clientY - rect.top;
|
|
173
162
|
if (zoom < maxZoomState) {
|
|
174
|
-
|
|
175
|
-
var newZoom = maxZoomState;
|
|
176
|
-
var dispW = wrapper.clientWidth;
|
|
177
|
-
var dispH = wrapper.clientHeight;
|
|
178
|
-
|
|
179
|
-
// Calcula el punto relativo en la imagen original
|
|
180
|
-
var relX = (clickX - offset.x) / zoom;
|
|
181
|
-
var relY = (clickY - offset.y) / zoom;
|
|
182
|
-
|
|
183
|
-
// Calcula el nuevo offset para centrar ese punto
|
|
184
|
-
var offsetX = dispW / 2 - relX * newZoom;
|
|
185
|
-
var offsetY = dispH / 2 - relY * newZoom;
|
|
186
|
-
|
|
187
|
-
// Limita el offset para no salirte del área visible
|
|
188
|
-
var imgW = imageData.width * newZoom;
|
|
189
|
-
var imgH = imageData.height * newZoom;
|
|
190
|
-
var minX = Math.min(0, dispW - imgW);
|
|
191
|
-
var minY = Math.min(0, dispH - imgH);
|
|
192
|
-
offsetX = Math.max(minX, Math.min(offsetX, 0));
|
|
193
|
-
offsetY = Math.max(minY, Math.min(offsetY, 0));
|
|
194
|
-
setZoom(newZoom);
|
|
195
|
-
setOffset({
|
|
196
|
-
x: offsetX,
|
|
197
|
-
y: offsetY
|
|
198
|
-
});
|
|
163
|
+
applyZoomFromPoint(maxZoomState, anchorX, anchorY);
|
|
199
164
|
} else {
|
|
200
|
-
|
|
201
|
-
var _dispW = wrapper.clientWidth;
|
|
202
|
-
var _dispH = wrapper.clientHeight;
|
|
203
|
-
var _imgW = imageData.width * minZoom;
|
|
204
|
-
var _imgH = imageData.height * minZoom;
|
|
205
|
-
var _offsetX = (_dispW - _imgW) / 2;
|
|
206
|
-
var _offsetY = (_dispH - _imgH) / 2;
|
|
207
|
-
setZoom(minZoom);
|
|
208
|
-
setOffset({
|
|
209
|
-
x: _offsetX,
|
|
210
|
-
y: _offsetY
|
|
211
|
-
});
|
|
165
|
+
applyZoomFromPoint(minZoom, anchorX, anchorY);
|
|
212
166
|
}
|
|
213
167
|
};
|
|
214
168
|
(0, _react.useEffect)(function () {
|
|
@@ -221,7 +175,7 @@ var ImageZoom = exports.ImageZoom = function ImageZoom(_ref) {
|
|
|
221
175
|
var fitZoom = Math.min(zoomW, zoomH);
|
|
222
176
|
setMinZoom(fitZoom);
|
|
223
177
|
setZoom(fitZoom);
|
|
224
|
-
setMaxZoomState(Math.max(fitZoom,
|
|
178
|
+
setMaxZoomState(Math.max(fitZoom, normalizedMaxZoom));
|
|
225
179
|
|
|
226
180
|
// Centra la imagen al inicio
|
|
227
181
|
var imgW = imageData.width * fitZoom;
|
|
@@ -232,8 +186,7 @@ var ImageZoom = exports.ImageZoom = function ImageZoom(_ref) {
|
|
|
232
186
|
x: offsetX,
|
|
233
187
|
y: offsetY
|
|
234
188
|
});
|
|
235
|
-
|
|
236
|
-
}, [imageData, maxZoom, width, height]);
|
|
189
|
+
}, [imageData, normalizedMaxZoom, width, height]);
|
|
237
190
|
(0, _react.useEffect)(function () {
|
|
238
191
|
if (zoom === minZoom && imageData && containerRef.current) {
|
|
239
192
|
var dispW = containerRef.current.clientWidth;
|
|
@@ -262,7 +215,7 @@ var ImageZoom = exports.ImageZoom = function ImageZoom(_ref) {
|
|
|
262
215
|
onTouchMove: onTouchMove,
|
|
263
216
|
onTouchEnd: onTouchEnd,
|
|
264
217
|
className: "image-zoom ".concat(bordered ? 'bordered' : '', " margin-bottom")
|
|
265
|
-
},
|
|
218
|
+
}, showHelper && /*#__PURE__*/_react["default"].createElement("div", {
|
|
266
219
|
className: "image-zoom-caption"
|
|
267
220
|
}, "Doble click para ampliar o reducir la imagen"), imageData ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
268
221
|
src: src,
|
|
@@ -274,7 +227,7 @@ var ImageZoom = exports.ImageZoom = function ImageZoom(_ref) {
|
|
|
274
227
|
left: offset.x,
|
|
275
228
|
top: offset.y,
|
|
276
229
|
cursor: zoom > minZoom ? dragging ? 'grabbing' : 'grab' : 'default',
|
|
277
|
-
transition: dragging ? 'none' : 'left 0.
|
|
230
|
+
transition: dragging ? 'none' : 'left 0.18s ease-out, top 0.18s ease-out, width 0.18s ease-out, height 0.18s ease-out'
|
|
278
231
|
},
|
|
279
232
|
onMouseDown: zoom > minZoom ? onMouseDown : undefined,
|
|
280
233
|
onTouchStart: zoom > minZoom ? onTouchStart : undefined
|
|
@@ -283,11 +236,21 @@ var ImageZoom = exports.ImageZoom = function ImageZoom(_ref) {
|
|
|
283
236
|
height: height
|
|
284
237
|
}));
|
|
285
238
|
};
|
|
286
|
-
|
|
239
|
+
ZoomImage.propTypes = {
|
|
287
240
|
src: _propTypes["default"].string.isRequired,
|
|
288
241
|
alt: _propTypes["default"].string,
|
|
289
242
|
width: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
290
243
|
height: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
291
244
|
bordered: _propTypes["default"].bool,
|
|
292
|
-
maxZoom:
|
|
245
|
+
maxZoom: function maxZoom(props, propName, componentName) {
|
|
246
|
+
var value = props[propName];
|
|
247
|
+
if (value === undefined || value === null) {
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
if (typeof value !== 'number' || Number.isNaN(value) || value < 1 || value > 5) {
|
|
251
|
+
return new Error("Invalid prop `".concat(propName, "` supplied to `").concat(componentName, "`. Expected a number between 1 and 5."));
|
|
252
|
+
}
|
|
253
|
+
return null;
|
|
254
|
+
},
|
|
255
|
+
showHelper: _propTypes["default"].bool
|
|
293
256
|
};
|
|
@@ -4,12 +4,13 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.ZoomImageButtons = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _util = require("../util");
|
|
11
11
|
var _button = require("../button");
|
|
12
12
|
var _freeSolidSvgIcons = require("@fortawesome/free-solid-svg-icons");
|
|
13
|
+
var _useImageLoader2 = require("./useImageLoader");
|
|
13
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
14
15
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
15
16
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
@@ -18,7 +19,7 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
18
19
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
19
20
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
20
21
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
21
|
-
var
|
|
22
|
+
var ZoomImageButtons = exports.ZoomImageButtons = function ZoomImageButtons(_ref) {
|
|
22
23
|
var src = _ref.src,
|
|
23
24
|
alt = _ref.alt,
|
|
24
25
|
_ref$width = _ref.width,
|
|
@@ -29,79 +30,56 @@ var PictureZoom = exports.PictureZoom = function PictureZoom(_ref) {
|
|
|
29
30
|
bordered = _ref$bordered === void 0 ? false : _ref$bordered,
|
|
30
31
|
_ref$maxZoom = _ref.maxZoom,
|
|
31
32
|
maxZoom = _ref$maxZoom === void 0 ? 1.5 : _ref$maxZoom;
|
|
32
|
-
var
|
|
33
|
+
var _useImageLoader = (0, _useImageLoader2.useImageLoader)(src),
|
|
34
|
+
isLoading = _useImageLoader.isLoading,
|
|
35
|
+
hasError = _useImageLoader.hasError,
|
|
36
|
+
imageWidth = _useImageLoader.width,
|
|
37
|
+
imageHeight = _useImageLoader.height;
|
|
38
|
+
var imageData = (0, _react.useMemo)(function () {
|
|
39
|
+
return !isLoading && !hasError && imageWidth > 0 && imageHeight > 0 ? {
|
|
40
|
+
width: imageWidth,
|
|
41
|
+
height: imageHeight
|
|
42
|
+
} : null;
|
|
43
|
+
}, [isLoading, hasError, imageWidth, imageHeight]);
|
|
44
|
+
var _useState = (0, _react.useState)(1),
|
|
33
45
|
_useState2 = _slicedToArray(_useState, 2),
|
|
34
|
-
|
|
35
|
-
|
|
46
|
+
zoom = _useState2[0],
|
|
47
|
+
setZoom = _useState2[1];
|
|
36
48
|
var _useState3 = (0, _react.useState)(1),
|
|
37
49
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
var _useState5 = (0, _react.useState)(
|
|
50
|
+
minZoom = _useState4[0],
|
|
51
|
+
setMinZoom = _useState4[1];
|
|
52
|
+
var _useState5 = (0, _react.useState)(maxZoom),
|
|
41
53
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
var _useState7 = (0, _react.useState)(
|
|
45
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
46
|
-
maxZoomState = _useState8[0],
|
|
47
|
-
setMaxZoomState = _useState8[1];
|
|
48
|
-
var _useState9 = (0, _react.useState)({
|
|
54
|
+
maxZoomState = _useState6[0],
|
|
55
|
+
setMaxZoomState = _useState6[1];
|
|
56
|
+
var _useState7 = (0, _react.useState)({
|
|
49
57
|
x: 0,
|
|
50
58
|
y: 0
|
|
51
59
|
}),
|
|
60
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
61
|
+
offset = _useState8[0],
|
|
62
|
+
setOffset = _useState8[1];
|
|
63
|
+
var _useState9 = (0, _react.useState)(false),
|
|
52
64
|
_useState0 = _slicedToArray(_useState9, 2),
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
var _useState1 = (0, _react.useState)(
|
|
56
|
-
_useState10 = _slicedToArray(_useState1, 2),
|
|
57
|
-
dragging = _useState10[0],
|
|
58
|
-
setDragging = _useState10[1];
|
|
59
|
-
var _useState11 = (0, _react.useState)({
|
|
65
|
+
dragging = _useState0[0],
|
|
66
|
+
setDragging = _useState0[1];
|
|
67
|
+
var _useState1 = (0, _react.useState)({
|
|
60
68
|
x: 0,
|
|
61
69
|
y: 0
|
|
62
70
|
}),
|
|
63
|
-
|
|
64
|
-
dragStart =
|
|
65
|
-
setDragStart =
|
|
66
|
-
var
|
|
71
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
72
|
+
dragStart = _useState10[0],
|
|
73
|
+
setDragStart = _useState10[1];
|
|
74
|
+
var _useState11 = (0, _react.useState)({
|
|
67
75
|
x: 0,
|
|
68
76
|
y: 0
|
|
69
77
|
}),
|
|
70
|
-
|
|
71
|
-
imgStart =
|
|
72
|
-
setImgStart =
|
|
78
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
79
|
+
imgStart = _useState12[0],
|
|
80
|
+
setImgStart = _useState12[1];
|
|
73
81
|
var containerRef = (0, _react.useRef)(null);
|
|
74
82
|
|
|
75
|
-
// Cuando la imagen y el wrapper están listos, calcula el zoom mínimo y máximo
|
|
76
|
-
(0, _react.useEffect)(function () {
|
|
77
|
-
if (!src) return;
|
|
78
|
-
var image = new Image();
|
|
79
|
-
image.src = src;
|
|
80
|
-
image.onload = function () {
|
|
81
|
-
setImageData({
|
|
82
|
-
width: image.width,
|
|
83
|
-
height: image.height
|
|
84
|
-
});
|
|
85
|
-
};
|
|
86
|
-
}, [src]);
|
|
87
|
-
(0, _react.useEffect)(function () {
|
|
88
|
-
if (!imageData || !containerRef.current) return;
|
|
89
|
-
var wrapper = containerRef.current;
|
|
90
|
-
var dispW = wrapper.clientWidth;
|
|
91
|
-
var dispH = wrapper.clientHeight;
|
|
92
|
-
var zoomW = dispW / imageData.width;
|
|
93
|
-
var zoomH = dispH / imageData.height;
|
|
94
|
-
var fitZoom = Math.min(zoomW, zoomH);
|
|
95
|
-
setMinZoom(fitZoom);
|
|
96
|
-
setZoom(fitZoom);
|
|
97
|
-
setMaxZoomState(Math.max(fitZoom, maxZoom));
|
|
98
|
-
setOffset({
|
|
99
|
-
x: 0,
|
|
100
|
-
y: 0
|
|
101
|
-
});
|
|
102
|
-
// eslint-disable-next-line
|
|
103
|
-
}, [imageData, maxZoom, width, height]);
|
|
104
|
-
|
|
105
83
|
// Limita el offset para que la imagen no se salga del área visible
|
|
106
84
|
var clampOffset = function clampOffset(ox, oy, zoomVal) {
|
|
107
85
|
if (!imageData || !containerRef.current) return {
|
|
@@ -124,8 +102,18 @@ var PictureZoom = exports.PictureZoom = function PictureZoom(_ref) {
|
|
|
124
102
|
var handleZoom = function handleZoom(delta) {
|
|
125
103
|
setZoom(function (prev) {
|
|
126
104
|
var next = Math.max(minZoom, Math.min(prev + delta, maxZoomState));
|
|
105
|
+
if (!containerRef.current || !imageData) {
|
|
106
|
+
return next;
|
|
107
|
+
}
|
|
108
|
+
var wrapper = containerRef.current;
|
|
109
|
+
var centerX = wrapper.clientWidth / 2;
|
|
110
|
+
var centerY = wrapper.clientHeight / 2;
|
|
127
111
|
setOffset(function (current) {
|
|
128
|
-
|
|
112
|
+
var relX = (centerX - current.x) / prev;
|
|
113
|
+
var relY = (centerY - current.y) / prev;
|
|
114
|
+
var nextX = centerX - relX * next;
|
|
115
|
+
var nextY = centerY - relY * next;
|
|
116
|
+
return clampOffset(nextX, nextY, next);
|
|
129
117
|
});
|
|
130
118
|
return next;
|
|
131
119
|
});
|
|
@@ -207,7 +195,6 @@ var PictureZoom = exports.PictureZoom = function PictureZoom(_ref) {
|
|
|
207
195
|
x: offsetX,
|
|
208
196
|
y: offsetY
|
|
209
197
|
});
|
|
210
|
-
// eslint-disable-next-line
|
|
211
198
|
}, [imageData, maxZoom, width, height]);
|
|
212
199
|
(0, _react.useEffect)(function () {
|
|
213
200
|
if (zoom === minZoom && imageData && containerRef.current) {
|
|
@@ -253,7 +240,7 @@ var PictureZoom = exports.PictureZoom = function PictureZoom(_ref) {
|
|
|
253
240
|
left: offset.x,
|
|
254
241
|
top: offset.y,
|
|
255
242
|
cursor: zoom > minZoom ? dragging ? 'grabbing' : 'grab' : 'default',
|
|
256
|
-
transition: dragging ? 'none' : 'left 0.
|
|
243
|
+
transition: dragging ? 'none' : 'left 0.18s ease-out, top 0.18s ease-out, width 0.18s ease-out, height 0.18s ease-out',
|
|
257
244
|
userSelect: 'none'
|
|
258
245
|
},
|
|
259
246
|
onMouseDown: zoom > minZoom ? onMouseDown : undefined,
|
|
@@ -297,7 +284,7 @@ var PictureZoom = exports.PictureZoom = function PictureZoom(_ref) {
|
|
|
297
284
|
}
|
|
298
285
|
})));
|
|
299
286
|
};
|
|
300
|
-
|
|
287
|
+
ZoomImageButtons.propTypes = {
|
|
301
288
|
src: _propTypes["default"].string.isRequired,
|
|
302
289
|
alt: _propTypes["default"].string,
|
|
303
290
|
width: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
@@ -4,7 +4,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.
|
|
7
|
+
exports.ZoomImageSquare = void 0;
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _util = require("../util");
|
|
@@ -16,7 +16,7 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
|
|
|
16
16
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
17
17
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
18
18
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
19
|
-
var
|
|
19
|
+
var ZoomImageSquare = exports.ZoomImageSquare = function ZoomImageSquare(_ref) {
|
|
20
20
|
var src = _ref.src,
|
|
21
21
|
alt = _ref.alt,
|
|
22
22
|
width = _ref.width,
|
|
@@ -148,7 +148,7 @@ var Picture = exports.Picture = function Picture(_ref) {
|
|
|
148
148
|
height: height
|
|
149
149
|
}));
|
|
150
150
|
};
|
|
151
|
-
|
|
151
|
+
ZoomImageSquare.propTypes = {
|
|
152
152
|
src: _propTypes["default"].string.isRequired,
|
|
153
153
|
alt: _propTypes["default"].string,
|
|
154
154
|
width: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
|
|
@@ -14,17 +14,6 @@ Object.keys(_CarouselImages).forEach(function (key) {
|
|
|
14
14
|
}
|
|
15
15
|
});
|
|
16
16
|
});
|
|
17
|
-
var _ImageZoom = require("./ImageZoom");
|
|
18
|
-
Object.keys(_ImageZoom).forEach(function (key) {
|
|
19
|
-
if (key === "default" || key === "__esModule") return;
|
|
20
|
-
if (key in exports && exports[key] === _ImageZoom[key]) return;
|
|
21
|
-
Object.defineProperty(exports, key, {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
get: function get() {
|
|
24
|
-
return _ImageZoom[key];
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
17
|
var _Img = require("./Img");
|
|
29
18
|
Object.keys(_Img).forEach(function (key) {
|
|
30
19
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -46,4 +35,37 @@ Object.keys(_Thumb).forEach(function (key) {
|
|
|
46
35
|
return _Thumb[key];
|
|
47
36
|
}
|
|
48
37
|
});
|
|
38
|
+
});
|
|
39
|
+
var _ZoomImage = require("./ZoomImage");
|
|
40
|
+
Object.keys(_ZoomImage).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _ZoomImage[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function get() {
|
|
46
|
+
return _ZoomImage[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
var _ZoomImageButtons = require("./ZoomImageButtons");
|
|
51
|
+
Object.keys(_ZoomImageButtons).forEach(function (key) {
|
|
52
|
+
if (key === "default" || key === "__esModule") return;
|
|
53
|
+
if (key in exports && exports[key] === _ZoomImageButtons[key]) return;
|
|
54
|
+
Object.defineProperty(exports, key, {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function get() {
|
|
57
|
+
return _ZoomImageButtons[key];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
var _ZoomImageSquare = require("./ZoomImageSquare");
|
|
62
|
+
Object.keys(_ZoomImageSquare).forEach(function (key) {
|
|
63
|
+
if (key === "default" || key === "__esModule") return;
|
|
64
|
+
if (key in exports && exports[key] === _ZoomImageSquare[key]) return;
|
|
65
|
+
Object.defineProperty(exports, key, {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function get() {
|
|
68
|
+
return _ZoomImageSquare[key];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
49
71
|
});
|