@jobber/components 6.13.2 → 6.14.1-aidenfix--e9ec00c.0
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/dist/Gallery/GalleryTypes.d.ts +4 -4
- package/dist/Gallery/index.cjs +1 -1
- package/dist/Gallery/index.d.ts +1 -0
- package/dist/Gallery/index.mjs +1 -1
- package/dist/Gallery-cjs.js +39 -22
- package/dist/Gallery-es.js +39 -22
- package/dist/Popover/index.cjs +1 -0
- package/dist/Popover/index.mjs +1 -0
- package/dist/Popover-cjs.js +7 -2
- package/dist/Popover-es.js +7 -2
- package/package.json +2 -2
|
@@ -11,7 +11,7 @@ export interface GalleryProps {
|
|
|
11
11
|
/**
|
|
12
12
|
* The files for the Gallery to display
|
|
13
13
|
*/
|
|
14
|
-
files:
|
|
14
|
+
files: GalleryFile[];
|
|
15
15
|
/**
|
|
16
16
|
* The max number of thumbnails before no more thumbnails are displayed
|
|
17
17
|
* unless the user clicks an action to display the rest
|
|
@@ -21,9 +21,9 @@ export interface GalleryProps {
|
|
|
21
21
|
* onDelete callback - this function will be called when the delete action is
|
|
22
22
|
* triggered on a Gallery image
|
|
23
23
|
*/
|
|
24
|
-
onDelete?(file:
|
|
24
|
+
onDelete?(file: GalleryFile): void;
|
|
25
25
|
}
|
|
26
|
-
export interface
|
|
26
|
+
export interface GalleryFile extends Pick<FileUpload, "key" | "name" | "type" | "size" | "progress"> {
|
|
27
27
|
/**
|
|
28
28
|
* The thumbnail url of the file.
|
|
29
29
|
*/
|
|
@@ -31,5 +31,5 @@ export interface File extends Pick<FileUpload, "key" | "name" | "type" | "size"
|
|
|
31
31
|
/**
|
|
32
32
|
* The data url of the file.
|
|
33
33
|
*/
|
|
34
|
-
readonly src: string;
|
|
34
|
+
readonly src: string | (() => Promise<string>);
|
|
35
35
|
}
|
package/dist/Gallery/index.cjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var Gallery = require('../Gallery-cjs.js');
|
|
4
|
+
require('../tslib.es6-cjs.js');
|
|
4
5
|
require('react');
|
|
5
6
|
require('classnames');
|
|
6
7
|
require('../LightBox-cjs.js');
|
|
@@ -33,7 +34,6 @@ require('../Emphasis-cjs.js');
|
|
|
33
34
|
require('../index-cjs.js');
|
|
34
35
|
require('../_polyfill-node.process-cjs.js');
|
|
35
36
|
require('../Glimmer-cjs.js');
|
|
36
|
-
require('../tslib.es6-cjs.js');
|
|
37
37
|
require('../ProgressBar-cjs.js');
|
|
38
38
|
|
|
39
39
|
|
package/dist/Gallery/index.d.ts
CHANGED
package/dist/Gallery/index.mjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { G as Gallery } from '../Gallery-es.js';
|
|
2
|
+
import '../tslib.es6-es.js';
|
|
2
3
|
import 'react';
|
|
3
4
|
import 'classnames';
|
|
4
5
|
import '../LightBox-es.js';
|
|
@@ -31,5 +32,4 @@ import '../Emphasis-es.js';
|
|
|
31
32
|
import '../index-es.js';
|
|
32
33
|
import '../_polyfill-node.process-es.js';
|
|
33
34
|
import '../Glimmer-es.js';
|
|
34
|
-
import '../tslib.es6-es.js';
|
|
35
35
|
import '../ProgressBar-es.js';
|
package/dist/Gallery-cjs.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var tslib_es6 = require('./tslib.es6-cjs.js');
|
|
3
4
|
var React = require('react');
|
|
4
5
|
var classnames = require('classnames');
|
|
5
6
|
var LightBox = require('./LightBox-cjs.js');
|
|
@@ -9,7 +10,14 @@ var Button = require('./Button-cjs.js');
|
|
|
9
10
|
var styles = {"gallery":"_6UhvrmKZdns-","galleryLarge":"f0hnJ8v-iHE-","showMoreButton":"EvHA4-Q7O9g-","baseShowMoreButton":"VWW-3mSlumg-","largeShowMoreButton":"DNhegGxB75M-","spinning":"aqCoXiyvGKw-"};
|
|
10
11
|
|
|
11
12
|
function Gallery({ files, size = "base", max, onDelete }) {
|
|
12
|
-
const
|
|
13
|
+
const [images, setImages] = React.useState([]);
|
|
14
|
+
const [filesToImageIndex, setFilesToImageIndex] = React.useState([]);
|
|
15
|
+
React.useEffect(() => {
|
|
16
|
+
generateImagesArray(files).then(result => {
|
|
17
|
+
setImages(result.images);
|
|
18
|
+
setFilesToImageIndex(result.filesToImageIndex);
|
|
19
|
+
});
|
|
20
|
+
}, [files]);
|
|
13
21
|
const [lightboxOpen, setLightboxOpen] = React.useState(false);
|
|
14
22
|
const [lightboxIndex, setLightboxIndex] = React.useState(0);
|
|
15
23
|
const [displayPastMax, setDisplayPastMax] = React.useState(max ? false : true);
|
|
@@ -17,7 +25,7 @@ function Gallery({ files, size = "base", max, onDelete }) {
|
|
|
17
25
|
return (React.createElement(React.Fragment, null,
|
|
18
26
|
React.createElement("div", { className: size === "large" ? styles.galleryLarge : styles.gallery },
|
|
19
27
|
visibleFiles.map((file, index) => {
|
|
20
|
-
return (React.createElement(FormatFile.FormatFile, { key: file.key, file: Object.assign(Object.assign({}, file), { src: () => Promise.resolve(file.thumbnailSrc || file
|
|
28
|
+
return (React.createElement(FormatFile.FormatFile, { key: file.key, file: Object.assign(Object.assign({}, file), { src: () => Promise.resolve(file.thumbnailSrc || getFileSrc(file)) }), display: "compact", displaySize: size, onClick: () => {
|
|
21
29
|
handleThumbnailClicked(index);
|
|
22
30
|
}, onDelete: onDelete ? () => onDelete === null || onDelete === void 0 ? void 0 : onDelete(file) : undefined }));
|
|
23
31
|
}),
|
|
@@ -27,13 +35,15 @@ function Gallery({ files, size = "base", max, onDelete }) {
|
|
|
27
35
|
} })))),
|
|
28
36
|
React.createElement(LightBox.LightBox, { open: lightboxOpen, images: images, imageIndex: lightboxIndex, onRequestClose: handleLightboxClose })));
|
|
29
37
|
function handleThumbnailClicked(index) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
return tslib_es6.__awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
if (files[index].type.startsWith("image/") &&
|
|
40
|
+
isSupportedImageType(files[index])) {
|
|
41
|
+
handleLightboxOpen(index);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
window.open(yield getFileSrc(files[index]), "_blank");
|
|
45
|
+
}
|
|
46
|
+
});
|
|
37
47
|
}
|
|
38
48
|
function handleLightboxOpen(index) {
|
|
39
49
|
const fileToImageIndex = filesToImageIndex[index];
|
|
@@ -46,6 +56,11 @@ function Gallery({ files, size = "base", max, onDelete }) {
|
|
|
46
56
|
setLightboxOpen(false);
|
|
47
57
|
}
|
|
48
58
|
}
|
|
59
|
+
function getFileSrc(file) {
|
|
60
|
+
return tslib_es6.__awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
return typeof file.src === "string" ? file.src : file.src();
|
|
62
|
+
});
|
|
63
|
+
}
|
|
49
64
|
function isSupportedImageType(file) {
|
|
50
65
|
const userAgent = typeof document === "undefined" ? "" : window.navigator.userAgent;
|
|
51
66
|
const nonHeicImage = !file.type.startsWith("image/heic");
|
|
@@ -53,20 +68,22 @@ function isSupportedImageType(file) {
|
|
|
53
68
|
return (nonHeicImage || FormatFile.isSafari(userAgent)) && nonSVGImage;
|
|
54
69
|
}
|
|
55
70
|
function generateImagesArray(files) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
71
|
+
return tslib_es6.__awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
const images = [];
|
|
73
|
+
const filesToImageIndex = [];
|
|
74
|
+
let imageIndex = 0;
|
|
75
|
+
for (let i = 0; i < files.length; i++) {
|
|
76
|
+
if (files[i].type.startsWith("image/") && isSupportedImageType(files[i])) {
|
|
77
|
+
images.push({ title: files[i].name, url: yield getFileSrc(files[i]) });
|
|
78
|
+
filesToImageIndex.push(imageIndex);
|
|
79
|
+
imageIndex++;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
filesToImageIndex.push(undefined);
|
|
83
|
+
}
|
|
64
84
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return { images, filesToImageIndex };
|
|
85
|
+
return { images, filesToImageIndex };
|
|
86
|
+
});
|
|
70
87
|
}
|
|
71
88
|
|
|
72
89
|
exports.Gallery = Gallery;
|
package/dist/Gallery-es.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { a as __awaiter } from './tslib.es6-es.js';
|
|
1
2
|
import React, { useState } from 'react';
|
|
2
3
|
import classnames from 'classnames';
|
|
3
4
|
import { L as LightBox } from './LightBox-es.js';
|
|
@@ -7,7 +8,14 @@ import { B as Button } from './Button-es.js';
|
|
|
7
8
|
var styles = {"gallery":"_6UhvrmKZdns-","galleryLarge":"f0hnJ8v-iHE-","showMoreButton":"EvHA4-Q7O9g-","baseShowMoreButton":"VWW-3mSlumg-","largeShowMoreButton":"DNhegGxB75M-","spinning":"aqCoXiyvGKw-"};
|
|
8
9
|
|
|
9
10
|
function Gallery({ files, size = "base", max, onDelete }) {
|
|
10
|
-
const
|
|
11
|
+
const [images, setImages] = useState([]);
|
|
12
|
+
const [filesToImageIndex, setFilesToImageIndex] = useState([]);
|
|
13
|
+
React.useEffect(() => {
|
|
14
|
+
generateImagesArray(files).then(result => {
|
|
15
|
+
setImages(result.images);
|
|
16
|
+
setFilesToImageIndex(result.filesToImageIndex);
|
|
17
|
+
});
|
|
18
|
+
}, [files]);
|
|
11
19
|
const [lightboxOpen, setLightboxOpen] = useState(false);
|
|
12
20
|
const [lightboxIndex, setLightboxIndex] = useState(0);
|
|
13
21
|
const [displayPastMax, setDisplayPastMax] = useState(max ? false : true);
|
|
@@ -15,7 +23,7 @@ function Gallery({ files, size = "base", max, onDelete }) {
|
|
|
15
23
|
return (React.createElement(React.Fragment, null,
|
|
16
24
|
React.createElement("div", { className: size === "large" ? styles.galleryLarge : styles.gallery },
|
|
17
25
|
visibleFiles.map((file, index) => {
|
|
18
|
-
return (React.createElement(FormatFile, { key: file.key, file: Object.assign(Object.assign({}, file), { src: () => Promise.resolve(file.thumbnailSrc || file
|
|
26
|
+
return (React.createElement(FormatFile, { key: file.key, file: Object.assign(Object.assign({}, file), { src: () => Promise.resolve(file.thumbnailSrc || getFileSrc(file)) }), display: "compact", displaySize: size, onClick: () => {
|
|
19
27
|
handleThumbnailClicked(index);
|
|
20
28
|
}, onDelete: onDelete ? () => onDelete === null || onDelete === void 0 ? void 0 : onDelete(file) : undefined }));
|
|
21
29
|
}),
|
|
@@ -25,13 +33,15 @@ function Gallery({ files, size = "base", max, onDelete }) {
|
|
|
25
33
|
} })))),
|
|
26
34
|
React.createElement(LightBox, { open: lightboxOpen, images: images, imageIndex: lightboxIndex, onRequestClose: handleLightboxClose })));
|
|
27
35
|
function handleThumbnailClicked(index) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
if (files[index].type.startsWith("image/") &&
|
|
38
|
+
isSupportedImageType(files[index])) {
|
|
39
|
+
handleLightboxOpen(index);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
window.open(yield getFileSrc(files[index]), "_blank");
|
|
43
|
+
}
|
|
44
|
+
});
|
|
35
45
|
}
|
|
36
46
|
function handleLightboxOpen(index) {
|
|
37
47
|
const fileToImageIndex = filesToImageIndex[index];
|
|
@@ -44,6 +54,11 @@ function Gallery({ files, size = "base", max, onDelete }) {
|
|
|
44
54
|
setLightboxOpen(false);
|
|
45
55
|
}
|
|
46
56
|
}
|
|
57
|
+
function getFileSrc(file) {
|
|
58
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
return typeof file.src === "string" ? file.src : file.src();
|
|
60
|
+
});
|
|
61
|
+
}
|
|
47
62
|
function isSupportedImageType(file) {
|
|
48
63
|
const userAgent = typeof document === "undefined" ? "" : window.navigator.userAgent;
|
|
49
64
|
const nonHeicImage = !file.type.startsWith("image/heic");
|
|
@@ -51,20 +66,22 @@ function isSupportedImageType(file) {
|
|
|
51
66
|
return (nonHeicImage || isSafari(userAgent)) && nonSVGImage;
|
|
52
67
|
}
|
|
53
68
|
function generateImagesArray(files) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
const images = [];
|
|
71
|
+
const filesToImageIndex = [];
|
|
72
|
+
let imageIndex = 0;
|
|
73
|
+
for (let i = 0; i < files.length; i++) {
|
|
74
|
+
if (files[i].type.startsWith("image/") && isSupportedImageType(files[i])) {
|
|
75
|
+
images.push({ title: files[i].name, url: yield getFileSrc(files[i]) });
|
|
76
|
+
filesToImageIndex.push(imageIndex);
|
|
77
|
+
imageIndex++;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
filesToImageIndex.push(undefined);
|
|
81
|
+
}
|
|
62
82
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
return { images, filesToImageIndex };
|
|
83
|
+
return { images, filesToImageIndex };
|
|
84
|
+
});
|
|
68
85
|
}
|
|
69
86
|
|
|
70
87
|
export { Gallery as G };
|
package/dist/Popover/index.cjs
CHANGED
package/dist/Popover/index.mjs
CHANGED
package/dist/Popover-cjs.js
CHANGED
|
@@ -4,6 +4,7 @@ var React = require('react');
|
|
|
4
4
|
var reactPopper = require('react-popper');
|
|
5
5
|
var useRefocusOnActivator = require('./useRefocusOnActivator-cjs.js');
|
|
6
6
|
var classnames = require('classnames');
|
|
7
|
+
var ReactDOM = require('react-dom');
|
|
7
8
|
var ButtonDismiss = require('./ButtonDismiss-cjs.js');
|
|
8
9
|
|
|
9
10
|
var classes = {"popover":"rY8OtuArIi0-","header":"UI1AohefbSo-","dismissButton":"HyA0TM5soDM-","arrow":"uClo-5-xhAc-","spinning":"VA0ROLmpLPs-"};
|
|
@@ -20,11 +21,15 @@ function Popover({ onRequestClose, children, attachTo, open, preferredPlacement
|
|
|
20
21
|
const popoverClassNames = classnames(classes.popover, UNSAFE_className.container);
|
|
21
22
|
const dismissButtonClassNames = classnames(classes.dismissButton, UNSAFE_className.dismissButtonContainer);
|
|
22
23
|
const arrowClassNames = classnames(classes.arrow, UNSAFE_className.arrow);
|
|
23
|
-
|
|
24
|
+
const popoverContent = (React.createElement("div", Object.assign({ role: "dialog", "data-elevation": "elevated", ref: setPopperElement, style: Object.assign(Object.assign({}, popperStyles.popper), ((_a = UNSAFE_style.container) !== null && _a !== void 0 ? _a : {})), className: popoverClassNames }, attributes.popper, { "data-testid": "popover-container" }),
|
|
24
25
|
React.createElement("div", { className: dismissButtonClassNames, style: (_b = UNSAFE_style.dismissButtonContainer) !== null && _b !== void 0 ? _b : {}, "data-testid": "popover-dismiss-button-container" },
|
|
25
26
|
React.createElement(ButtonDismiss.ButtonDismiss, { onClick: onRequestClose, ariaLabel: "Close dialog" })),
|
|
26
27
|
children,
|
|
27
|
-
React.createElement("div", { ref: setArrowElement, className: arrowClassNames, style: Object.assign(Object.assign({}, popperStyles.arrow), ((_c = UNSAFE_style.arrow) !== null && _c !== void 0 ? _c : {})), "data-testid": "popover-arrow" })))
|
|
28
|
+
React.createElement("div", { ref: setArrowElement, className: arrowClassNames, style: Object.assign(Object.assign({}, popperStyles.arrow), ((_c = UNSAFE_style.arrow) !== null && _c !== void 0 ? _c : {})), "data-testid": "popover-arrow" })));
|
|
29
|
+
return React.createElement(React.Fragment, null, open && React.createElement(PopoverPortal, null, popoverContent));
|
|
30
|
+
}
|
|
31
|
+
function PopoverPortal({ children }) {
|
|
32
|
+
return ReactDOM.createPortal(children, document.body);
|
|
28
33
|
}
|
|
29
34
|
function buildModifiers(arrowElement) {
|
|
30
35
|
const modifiers = [
|
package/dist/Popover-es.js
CHANGED
|
@@ -2,6 +2,7 @@ import React, { useState } from 'react';
|
|
|
2
2
|
import { usePopper } from 'react-popper';
|
|
3
3
|
import { u as useRefocusOnActivator_2 } from './useRefocusOnActivator-es.js';
|
|
4
4
|
import classnames from 'classnames';
|
|
5
|
+
import ReactDOM from 'react-dom';
|
|
5
6
|
import { B as ButtonDismiss } from './ButtonDismiss-es.js';
|
|
6
7
|
|
|
7
8
|
var classes = {"popover":"rY8OtuArIi0-","header":"UI1AohefbSo-","dismissButton":"HyA0TM5soDM-","arrow":"uClo-5-xhAc-","spinning":"VA0ROLmpLPs-"};
|
|
@@ -18,11 +19,15 @@ function Popover({ onRequestClose, children, attachTo, open, preferredPlacement
|
|
|
18
19
|
const popoverClassNames = classnames(classes.popover, UNSAFE_className.container);
|
|
19
20
|
const dismissButtonClassNames = classnames(classes.dismissButton, UNSAFE_className.dismissButtonContainer);
|
|
20
21
|
const arrowClassNames = classnames(classes.arrow, UNSAFE_className.arrow);
|
|
21
|
-
|
|
22
|
+
const popoverContent = (React.createElement("div", Object.assign({ role: "dialog", "data-elevation": "elevated", ref: setPopperElement, style: Object.assign(Object.assign({}, popperStyles.popper), ((_a = UNSAFE_style.container) !== null && _a !== void 0 ? _a : {})), className: popoverClassNames }, attributes.popper, { "data-testid": "popover-container" }),
|
|
22
23
|
React.createElement("div", { className: dismissButtonClassNames, style: (_b = UNSAFE_style.dismissButtonContainer) !== null && _b !== void 0 ? _b : {}, "data-testid": "popover-dismiss-button-container" },
|
|
23
24
|
React.createElement(ButtonDismiss, { onClick: onRequestClose, ariaLabel: "Close dialog" })),
|
|
24
25
|
children,
|
|
25
|
-
React.createElement("div", { ref: setArrowElement, className: arrowClassNames, style: Object.assign(Object.assign({}, popperStyles.arrow), ((_c = UNSAFE_style.arrow) !== null && _c !== void 0 ? _c : {})), "data-testid": "popover-arrow" })))
|
|
26
|
+
React.createElement("div", { ref: setArrowElement, className: arrowClassNames, style: Object.assign(Object.assign({}, popperStyles.arrow), ((_c = UNSAFE_style.arrow) !== null && _c !== void 0 ? _c : {})), "data-testid": "popover-arrow" })));
|
|
27
|
+
return React.createElement(React.Fragment, null, open && React.createElement(PopoverPortal, null, popoverContent));
|
|
28
|
+
}
|
|
29
|
+
function PopoverPortal({ children }) {
|
|
30
|
+
return ReactDOM.createPortal(children, document.body);
|
|
26
31
|
}
|
|
27
32
|
function buildModifiers(arrowElement) {
|
|
28
33
|
const modifiers = [
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jobber/components",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.14.1-aidenfix--e9ec00c.0+e9ec00ce",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -489,5 +489,5 @@
|
|
|
489
489
|
"> 1%",
|
|
490
490
|
"IE 10"
|
|
491
491
|
],
|
|
492
|
-
"gitHead": "
|
|
492
|
+
"gitHead": "e9ec00ce31bcd08dc7f334f2f8c7672e133ed1a2"
|
|
493
493
|
}
|