@jobber/components 3.4.4 → 3.4.5
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/CHANGELOG.md +8 -0
- package/dist/Gallery/index.js +6 -7
- package/dist/LightBox/LightBox.d.ts +2 -2
- package/dist/LightBox/index.js +12 -3
- package/dist/LightBox-4eb2e6f0.js +118 -0
- package/package.json +2 -3
- package/rollup.config.js +0 -2
- package/dist/LightBox-6aea2128.js +0 -42
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.4.5](https://github.com/GetJobber/atlantis/compare/@jobber/components@3.4.4...@jobber/components@3.4.5) (2023-03-06)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @jobber/components
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [3.4.4](https://github.com/GetJobber/atlantis/compare/@jobber/components@3.4.3...@jobber/components@3.4.4) (2023-03-03)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @jobber/components
|
package/dist/Gallery/index.js
CHANGED
|
@@ -6,20 +6,19 @@ var tslib_es6 = require('../tslib.es6-5b50eb8e.js');
|
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var classnames = require('classnames');
|
|
8
8
|
var styleInject_es = require('../style-inject.es-dcee06b6.js');
|
|
9
|
-
var LightBox = require('../LightBox-
|
|
9
|
+
var LightBox = require('../LightBox-4eb2e6f0.js');
|
|
10
10
|
var FormatFile = require('../FormatFile-44fc7b58.js');
|
|
11
11
|
var Button = require('../Button-cd30df0f.js');
|
|
12
|
-
require('
|
|
13
|
-
require('react-
|
|
12
|
+
require('framer-motion');
|
|
13
|
+
require('react-dom');
|
|
14
|
+
require('lodash/debounce');
|
|
15
|
+
require('@jobber/hooks');
|
|
16
|
+
require('../ButtonDismiss-a9590195.js');
|
|
14
17
|
require('filesize');
|
|
15
18
|
require('../ConfirmationModal-e95f46d7.js');
|
|
16
|
-
require('@jobber/hooks');
|
|
17
19
|
require('../Modal-cc3bd7bf.js');
|
|
18
|
-
require('react-dom');
|
|
19
|
-
require('framer-motion');
|
|
20
20
|
require('../Heading-a9a66964.js');
|
|
21
21
|
require('../Typography-fbe0ed6e.js');
|
|
22
|
-
require('../ButtonDismiss-a9590195.js');
|
|
23
22
|
require('../Content-18de5fbb.js');
|
|
24
23
|
require('../Markdown-b53e0308.js');
|
|
25
24
|
require('react-markdown');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "react
|
|
1
|
+
import React from "react";
|
|
2
2
|
interface PresentedImage {
|
|
3
3
|
title?: string;
|
|
4
4
|
caption?: string;
|
|
@@ -33,5 +33,5 @@ interface LightBoxProps {
|
|
|
33
33
|
*/
|
|
34
34
|
onRequestClose(options: RequestCloseOptions): void;
|
|
35
35
|
}
|
|
36
|
-
export declare function LightBox({ open, images, imageIndex, onRequestClose, }: LightBoxProps):
|
|
36
|
+
export declare function LightBox({ open, images, imageIndex, onRequestClose, }: LightBoxProps): React.ReactPortal;
|
|
37
37
|
export {};
|
package/dist/LightBox/index.js
CHANGED
|
@@ -2,12 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var LightBox = require('../LightBox-
|
|
5
|
+
var LightBox = require('../LightBox-4eb2e6f0.js');
|
|
6
6
|
require('../tslib.es6-5b50eb8e.js');
|
|
7
7
|
require('react');
|
|
8
|
-
require('
|
|
8
|
+
require('framer-motion');
|
|
9
|
+
require('react-dom');
|
|
10
|
+
require('lodash/debounce');
|
|
11
|
+
require('@jobber/hooks');
|
|
9
12
|
require('../style-inject.es-dcee06b6.js');
|
|
10
|
-
require('
|
|
13
|
+
require('../ButtonDismiss-a9590195.js');
|
|
14
|
+
require('../Button-cd30df0f.js');
|
|
15
|
+
require('classnames');
|
|
16
|
+
require('react-router-dom');
|
|
17
|
+
require('../Icon-d5ad1a6d.js');
|
|
18
|
+
require('@jobber/design');
|
|
19
|
+
require('../Typography-fbe0ed6e.js');
|
|
11
20
|
|
|
12
21
|
|
|
13
22
|
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib_es6 = require('./tslib.es6-5b50eb8e.js');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var framerMotion = require('framer-motion');
|
|
6
|
+
var ReactDOM = require('react-dom');
|
|
7
|
+
var debounce = require('lodash/debounce');
|
|
8
|
+
var jobberHooks = require('@jobber/hooks');
|
|
9
|
+
var styleInject_es = require('./style-inject.es-dcee06b6.js');
|
|
10
|
+
var ButtonDismiss = require('./ButtonDismiss-a9590195.js');
|
|
11
|
+
var Button = require('./Button-cd30df0f.js');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
|
+
|
|
15
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
16
|
+
var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
|
|
17
|
+
var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
|
|
18
|
+
|
|
19
|
+
var css = "._2qgU3ylcPWUJGRthB18cb,\n._27gh3HPkx5J1Ru4Tqp_1tF {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n top: 50%;\n z-index: var(--elevation-base);\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n}\n\n._2qgU3ylcPWUJGRthB18cb {\n right: var(--space-base);\n}\n\n._27gh3HPkx5J1Ru4Tqp_1tF {\n left: var(--space-base);\n}\n\n._3FuSx2b8rfxjzTQKeVn6MW {\n display: -ms-flexbox;\n display: flex;\n position: fixed;\n top: 0;\n left: 0;\n z-index: var(--elevation-modal);\n width: 100%;\n height: 100%;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n._2gGRj41uQJhcl0zcSNgsOA {\n display: -ms-flexbox;\n display: flex;\n z-index: var(--elevation-base);\n padding: var(--space-small) var(--space-base);\n color: var(--color-text--reverse--secondary);\n font-size: var(--typography--fontSize-large);\n background-color: var(--color-surface--reverse);\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.oyIA3-aR1Fvwn0lpp1Mgx {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n._1PPDSsP7v3FAZG3DA--Oq3 {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n position: relative;\n -ms-flex: 1 1 0px;\n flex: 1 1 0;\n min-height: 0;\n}\n\n._23IH8HE3ZATpurQqLyWj-l {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: var(--color-overlay);\n}\n\n._2UNyNw_u8HDWIzzxcSLUU6 {\n position: absolute;\n top: 50%;\n max-width: 100%;\n max-height: 100%;\n margin: auto;\n}\n";
|
|
20
|
+
var styles = {"next":"_2qgU3ylcPWUJGRthB18cb","prev":"_27gh3HPkx5J1Ru4Tqp_1tF","lightboxWrapper":"_3FuSx2b8rfxjzTQKeVn6MW","toolbar":"_2gGRj41uQJhcl0zcSNgsOA","title":"oyIA3-aR1Fvwn0lpp1Mgx","imagesWrapper":"_1PPDSsP7v3FAZG3DA--Oq3","overlay":"_23IH8HE3ZATpurQqLyWj-l","image":"_2UNyNw_u8HDWIzzxcSLUU6"};
|
|
21
|
+
styleInject_es.styleInject(css);
|
|
22
|
+
|
|
23
|
+
var swipeConfidenceThreshold = 10000;
|
|
24
|
+
var swipePower = function (offset, velocity) {
|
|
25
|
+
return Math.abs(offset) * velocity;
|
|
26
|
+
};
|
|
27
|
+
var variants = {
|
|
28
|
+
enter: function (direction) {
|
|
29
|
+
return {
|
|
30
|
+
x: direction > 0 ? 1000 : -1000,
|
|
31
|
+
opacity: 0,
|
|
32
|
+
};
|
|
33
|
+
},
|
|
34
|
+
center: {
|
|
35
|
+
zIndex: 1,
|
|
36
|
+
x: 0,
|
|
37
|
+
opacity: 1,
|
|
38
|
+
},
|
|
39
|
+
exit: function (direction) {
|
|
40
|
+
return {
|
|
41
|
+
zIndex: 0,
|
|
42
|
+
x: direction < 0 ? 1000 : -1000,
|
|
43
|
+
opacity: 0,
|
|
44
|
+
};
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
var imageTransition = {
|
|
48
|
+
x: { type: "spring", stiffness: 300, damping: 30 },
|
|
49
|
+
opacity: { duration: 0.2 },
|
|
50
|
+
};
|
|
51
|
+
// A little bit more than the transition's duration
|
|
52
|
+
// We're doing this to prevent a bug from framer-motion
|
|
53
|
+
// https://github.com/framer/motion/issues/1769
|
|
54
|
+
var debounceDuration = 250;
|
|
55
|
+
function LightBox(_a) {
|
|
56
|
+
var open = _a.open, images = _a.images, _b = _a.imageIndex, imageIndex = _b === void 0 ? 0 : _b, onRequestClose = _a.onRequestClose;
|
|
57
|
+
var _c = tslib_es6.__read(React.useState(imageIndex), 2), currentImageIndex = _c[0], setCurrentImageIndex = _c[1];
|
|
58
|
+
var _d = tslib_es6.__read(React.useState(0), 2), direction = _d[0], setDirection = _d[1];
|
|
59
|
+
var lightboxRef = jobberHooks.useFocusTrap(open);
|
|
60
|
+
var debouncedHandleNext = debounce__default["default"](handleMoveNext, debounceDuration);
|
|
61
|
+
var debouncedHandlePrevious = debounce__default["default"](handleMovePrevious, debounceDuration);
|
|
62
|
+
jobberHooks.useRefocusOnActivator(open);
|
|
63
|
+
jobberHooks.useOnKeyDown(handleRequestClose, "Escape");
|
|
64
|
+
jobberHooks.useOnKeyDown(debouncedHandlePrevious, {
|
|
65
|
+
key: "ArrowLeft",
|
|
66
|
+
});
|
|
67
|
+
jobberHooks.useOnKeyDown(debouncedHandleNext, {
|
|
68
|
+
key: "ArrowRight",
|
|
69
|
+
});
|
|
70
|
+
React.useEffect(function () {
|
|
71
|
+
setCurrentImageIndex(imageIndex);
|
|
72
|
+
}, [imageIndex, open]);
|
|
73
|
+
var template = (React__default["default"].createElement(React__default["default"].Fragment, null, open && (React__default["default"].createElement("div", { className: styles.lightboxWrapper, tabIndex: 0, "aria-label": "Lightbox", key: "Lightbox", ref: lightboxRef },
|
|
74
|
+
React__default["default"].createElement("div", { className: styles.toolbar },
|
|
75
|
+
React__default["default"].createElement("span", { className: styles.title }, images[currentImageIndex].title),
|
|
76
|
+
React__default["default"].createElement(ButtonDismiss.ButtonDismiss, { ariaLabel: "Close", onClick: handleRequestClose })),
|
|
77
|
+
React__default["default"].createElement("div", { className: styles.imagesWrapper },
|
|
78
|
+
React__default["default"].createElement(framerMotion.AnimatePresence, { initial: false },
|
|
79
|
+
React__default["default"].createElement(framerMotion.motion.img, { key: currentImageIndex, variants: variants, src: images[currentImageIndex].url, custom: direction, className: styles.image, style: { y: "-50%" }, initial: "enter", animate: "center", exit: "exit", transition: imageTransition, drag: "x", dragConstraints: { left: 0, right: 0 }, dragElastic: 1, onDragEnd: handleOnDragEnd }))),
|
|
80
|
+
React__default["default"].createElement(PreviousButton, { onClick: debouncedHandlePrevious }),
|
|
81
|
+
React__default["default"].createElement(NextButton, { onClick: debouncedHandleNext }),
|
|
82
|
+
React__default["default"].createElement("div", { className: styles.toolbar }, images[currentImageIndex].caption),
|
|
83
|
+
React__default["default"].createElement("div", { className: styles.overlay, onClick: handleRequestClose })))));
|
|
84
|
+
return ReactDOM__default["default"].createPortal(template, document.body);
|
|
85
|
+
function handleMovePrevious() {
|
|
86
|
+
setDirection(-1);
|
|
87
|
+
setCurrentImageIndex((currentImageIndex + images.length - 1) % images.length);
|
|
88
|
+
}
|
|
89
|
+
function handleMoveNext() {
|
|
90
|
+
setDirection(1);
|
|
91
|
+
setCurrentImageIndex((currentImageIndex + 1) % images.length);
|
|
92
|
+
}
|
|
93
|
+
function handleRequestClose() {
|
|
94
|
+
onRequestClose({ lastPosition: currentImageIndex });
|
|
95
|
+
}
|
|
96
|
+
function handleOnDragEnd(event, _a) {
|
|
97
|
+
var offset = _a.offset, velocity = _a.velocity;
|
|
98
|
+
var swipe = swipePower(offset.x, velocity.x);
|
|
99
|
+
if (swipe < -swipeConfidenceThreshold) {
|
|
100
|
+
handleMoveNext();
|
|
101
|
+
}
|
|
102
|
+
else if (swipe > swipeConfidenceThreshold) {
|
|
103
|
+
handleMovePrevious();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
function PreviousButton(_a) {
|
|
108
|
+
var onClick = _a.onClick;
|
|
109
|
+
return (React__default["default"].createElement("div", { className: styles.prev },
|
|
110
|
+
React__default["default"].createElement(Button.Button, { size: "large", variation: "subtle", type: "secondary", icon: "arrowLeft", ariaLabel: "Previous image", onClick: onClick })));
|
|
111
|
+
}
|
|
112
|
+
function NextButton(_a) {
|
|
113
|
+
var onClick = _a.onClick;
|
|
114
|
+
return (React__default["default"].createElement("div", { className: styles.next },
|
|
115
|
+
React__default["default"].createElement(Button.Button, { size: "large", variation: "subtle", type: "secondary", icon: "arrowRight", ariaLabel: "Next image", onClick: onClick })));
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
exports.LightBox = LightBox;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jobber/components",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -41,7 +41,6 @@
|
|
|
41
41
|
"react-datepicker": "^4.10.0",
|
|
42
42
|
"react-dropzone": "^11.0.2",
|
|
43
43
|
"react-hook-form": "^6.15.8",
|
|
44
|
-
"react-image-lightbox": "^5.1.1",
|
|
45
44
|
"react-markdown": "^8.0.3",
|
|
46
45
|
"react-popper": "^2.2.5",
|
|
47
46
|
"react-router-dom": "~5.2.0",
|
|
@@ -85,5 +84,5 @@
|
|
|
85
84
|
"> 1%",
|
|
86
85
|
"IE 10"
|
|
87
86
|
],
|
|
88
|
-
"gitHead": "
|
|
87
|
+
"gitHead": "34fab41222c5603f7babe5bb58867c12a9175854"
|
|
89
88
|
}
|
package/rollup.config.js
CHANGED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var tslib_es6 = require('./tslib.es6-5b50eb8e.js');
|
|
4
|
-
var React = require('react');
|
|
5
|
-
var ExternalLightBox = require('react-image-lightbox');
|
|
6
|
-
var styleInject_es = require('./style-inject.es-dcee06b6.js');
|
|
7
|
-
require('react-image-lightbox/style.css');
|
|
8
|
-
|
|
9
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
10
|
-
|
|
11
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
12
|
-
var ExternalLightBox__default = /*#__PURE__*/_interopDefaultLegacy(ExternalLightBox);
|
|
13
|
-
|
|
14
|
-
var css = "._23H2TI8rNmnv0zlHOHZooa.ril__outer {\n font-family: var(--typography--fontFamily-normal);\n background-color: transparent;\n}\n\n._23H2TI8rNmnv0zlHOHZooa.ril__outer:before {\n content: \"\";\n display: block;\n width: 100%;\n height: 100%;\n background-color: var(--color-overlay);\n}\n\n._23H2TI8rNmnv0zlHOHZooa.ril__outer .ril__captionContent {\n color: var(--color-greyBlue--lighter);\n}\n\n._23H2TI8rNmnv0zlHOHZooa.ril__outer .ril__toolbarItem {\n color: var(--color-greyBlue--lighter);\n}\n";
|
|
15
|
-
var styles = {"wrapper":"_23H2TI8rNmnv0zlHOHZooa"};
|
|
16
|
-
styleInject_es.styleInject(css);
|
|
17
|
-
|
|
18
|
-
function LightBox(_a) {
|
|
19
|
-
var open = _a.open, images = _a.images, _b = _a.imageIndex, imageIndex = _b === void 0 ? 0 : _b, onRequestClose = _a.onRequestClose;
|
|
20
|
-
var _c = tslib_es6.__read(React.useState(imageIndex), 2), currentImageIndex = _c[0], setCurrentImageIndex = _c[1];
|
|
21
|
-
var nextSrc = undefined;
|
|
22
|
-
var prevSrc = undefined;
|
|
23
|
-
if (images.length > 1) {
|
|
24
|
-
nextSrc = images[(currentImageIndex + 1) % images.length].url;
|
|
25
|
-
prevSrc =
|
|
26
|
-
images[(currentImageIndex + images.length - 1) % images.length].url;
|
|
27
|
-
}
|
|
28
|
-
React.useEffect(function () {
|
|
29
|
-
setCurrentImageIndex(imageIndex);
|
|
30
|
-
}, [imageIndex]);
|
|
31
|
-
return (React__default["default"].createElement(React__default["default"].Fragment, null, open && (React__default["default"].createElement(ExternalLightBox__default["default"], { wrapperClassName: styles.wrapper, mainSrc: images[currentImageIndex].url, enableZoom: false, nextSrc: nextSrc, prevSrc: prevSrc, imageTitle: images[currentImageIndex].title, imageCaption: images[currentImageIndex].caption, onCloseRequest: function () {
|
|
32
|
-
return onRequestClose({ lastPosition: currentImageIndex });
|
|
33
|
-
}, onMovePrevRequest: handleMovePrevious, onMoveNextRequest: handleMoveNext }))));
|
|
34
|
-
function handleMovePrevious() {
|
|
35
|
-
setCurrentImageIndex((currentImageIndex + images.length - 1) % images.length);
|
|
36
|
-
}
|
|
37
|
-
function handleMoveNext() {
|
|
38
|
-
setCurrentImageIndex((currentImageIndex + 1) % images.length);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
exports.LightBox = LightBox;
|