@jobber/components 4.0.2 → 4.1.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/dist/Autocomplete/Autocomplete.d.ts +1 -1
- package/dist/Autocomplete/Option.d.ts +2 -2
- package/dist/Autocomplete/index.js +51 -67
- package/dist/Avatar/Avatar.d.ts +2 -2
- package/dist/Avatar/index.js +2 -2
- package/dist/{Avatar-cfd04e86.js → Avatar-89cfd0a6.js} +14 -18
- package/dist/Banner/Banner.d.ts +1 -1
- package/dist/Banner/index.js +15 -19
- package/dist/Button/Button.d.ts +1 -1
- package/dist/Button/index.js +3 -4
- package/dist/{Button-cd30df0f.js → Button-16e043ec.js} +21 -24
- package/dist/ButtonDismiss/index.js +4 -5
- package/dist/{ButtonDismiss-a9590195.js → ButtonDismiss-3fb1eaf9.js} +2 -3
- package/dist/Card/Card.d.ts +1 -1
- package/dist/Card/index.js +6 -7
- package/dist/Card/types.d.ts +1 -1
- package/dist/{Card-b9f8d6f3.js → Card-edab9c3c.js} +18 -22
- package/dist/Checkbox/Checkbox.d.ts +1 -1
- package/dist/Checkbox/index.js +4 -5
- package/dist/{Checkbox-5103d2b9.js → Checkbox-c1efc2f6.js} +10 -12
- package/dist/Chips/ChipsTypes.d.ts +1 -1
- package/dist/Chips/InternalChipDismissible/InternalChipDismissibleTypes.d.ts +1 -1
- package/dist/Chips/InternalChipDismissible/hooks/useInternalChipDismissible.d.ts +1 -1
- package/dist/Chips/InternalChipDismissible/hooks/useInternalChipDismissibleInput.d.ts +3 -3
- package/dist/Chips/InternalChipMultiSelect.d.ts +1 -1
- package/dist/Chips/InternalChipSingleSelect.d.ts +1 -1
- package/dist/Chips/index.js +165 -185
- package/dist/ConfirmationModal/ConfirmationModal.d.ts +1 -1
- package/dist/ConfirmationModal/index.js +11 -12
- package/dist/{ConfirmationModal-e95f46d7.js → ConfirmationModal-6a7beee2.js} +28 -31
- package/dist/Content/index.js +1 -1
- package/dist/{Content-18de5fbb.js → Content-05df8f7f.js} +2 -3
- package/dist/Countdown/Countdown.d.ts +1 -1
- package/dist/Countdown/computeTimeUnit.d.ts +1 -1
- package/dist/Countdown/index.js +15 -18
- package/dist/DataDump/index.js +9 -11
- package/dist/DataTable/Footer.d.ts +1 -1
- package/dist/DataTable/createTableSettings.d.ts +2 -2
- package/dist/DataTable/index.js +74 -106
- package/dist/DataTable/test-utilities/helpers.d.ts +1 -1
- package/dist/DataTable/types.d.ts +2 -2
- package/dist/DatePicker/DatePicker.d.ts +10 -2
- package/dist/DatePicker/index.js +4 -5
- package/dist/{DatePicker-7c67e8d2.js → DatePicker-0696b0f0.js} +41 -38
- package/dist/DescriptionList/index.js +5 -10
- package/dist/Disclosure/index.js +8 -10
- package/dist/Divider/index.js +8 -10
- package/dist/Drawer/index.js +10 -14
- package/dist/Emphasis/index.js +2 -3
- package/dist/{Emphasis-75a3f411.js → Emphasis-23dc2a0a.js} +4 -6
- package/dist/FeatureSwitch/index.js +15 -17
- package/dist/Form/index.js +23 -33
- package/dist/FormField/FormFieldTypes.d.ts +2 -2
- package/dist/FormField/index.js +8 -8
- package/dist/{FormField-ac310b6f.js → FormField-79a0a375.js} +68 -76
- package/dist/FormatDate/index.js +2 -3
- package/dist/FormatEmail/index.js +2 -3
- package/dist/FormatFile/index.js +13 -14
- package/dist/{FormatFile-18e8a54a.js → FormatFile-3512f838.js} +33 -40
- package/dist/FormatRelativeDateTime/index.js +5 -6
- package/dist/FormatTime/index.js +6 -7
- package/dist/Gallery/GalleryTypes.d.ts +2 -2
- package/dist/Gallery/index.js +31 -33
- package/dist/Heading/index.js +2 -3
- package/dist/{Heading-a9a66964.js → Heading-7b203f7f.js} +4 -6
- package/dist/Icon/index.js +1 -1
- package/dist/{Icon-d5ad1a6d.js → Icon-405a216c.js} +7 -8
- package/dist/InlineLabel/InlineLabel.d.ts +1 -1
- package/dist/InlineLabel/index.js +4 -6
- package/dist/InputAvatar/index.js +15 -20
- package/dist/InputDate/index.js +15 -15
- package/dist/InputEmail/InputEmail.d.ts +1 -1
- package/dist/InputEmail/index.js +12 -12
- package/dist/InputFile/index.js +6 -6
- package/dist/{InputFile-e108a7f8.js → InputFile-5e0ed2b5.js} +48 -62
- package/dist/InputGroup/index.js +4 -5
- package/dist/InputNumber/index.js +22 -22
- package/dist/InputPassword/index.js +12 -12
- package/dist/InputText/InputText.d.ts +1 -1
- package/dist/InputText/index.js +9 -9
- package/dist/{InputText-70f7d947.js → InputText-95ea24f9.js} +23 -24
- package/dist/InputTime/index.js +27 -27
- package/dist/InputValidation/index.js +4 -5
- package/dist/{InputValidation-06a8a7ba.js → InputValidation-97dd0dcf.js} +7 -8
- package/dist/LightBox/index.js +5 -6
- package/dist/{LightBox-1ad62669.js → LightBox-dd1afa97.js} +22 -26
- package/dist/List/index.js +26 -32
- package/dist/Markdown/index.js +6 -7
- package/dist/{Markdown-b53e0308.js → Markdown-be2dcd0c.js} +12 -18
- package/dist/Menu/index.js +4 -5
- package/dist/{Menu-826cfb89.js → Menu-d6a7d17b.js} +31 -36
- package/dist/Modal/index.js +6 -7
- package/dist/{Modal-cc3bd7bf.js → Modal-757e83fd.js} +13 -17
- package/dist/MultiSelect/index.js +53 -60
- package/dist/MultiSelect/types.d.ts +1 -1
- package/dist/{Option-7d5de76b.js → Option-4b665afd.js} +3 -5
- package/dist/Page/Page.d.ts +1 -1
- package/dist/Page/index.js +21 -24
- package/dist/Popover/index.js +11 -13
- package/dist/ProgressBar/index.js +1 -1
- package/dist/{ProgressBar-e9a49129.js → ProgressBar-f028b159.js} +3 -4
- package/dist/RadioGroup/RadioOption.d.ts +2 -2
- package/dist/RadioGroup/index.js +9 -13
- package/dist/RecurringSelect/types.d.ts +2 -2
- package/dist/Select/Select.d.ts +1 -1
- package/dist/Select/index.js +9 -9
- package/dist/Spinner/index.js +1 -1
- package/dist/{Spinner-e4e9c8eb.js → Spinner-ae4c8a85.js} +5 -7
- package/dist/StatusLabel/StatusLabel.d.ts +1 -1
- package/dist/StatusLabel/index.js +6 -9
- package/dist/Switch/index.js +2 -3
- package/dist/{Switch-f03b70fc.js → Switch-7ac32f7b.js} +12 -16
- package/dist/Table/index.js +9 -17
- package/dist/Tabs/index.js +28 -34
- package/dist/Text/index.js +2 -3
- package/dist/{Text-e012fb46.js → Text-7ce00adb.js} +4 -5
- package/dist/Toast/Toast.d.ts +2 -2
- package/dist/Toast/index.js +31 -32
- package/dist/Tooltip/index.js +3 -4
- package/dist/Tooltip/useTooltipPositioning.d.ts +1 -1
- package/dist/{Tooltip-041feb00.js → Tooltip-1090a43d.js} +25 -28
- package/dist/Typography/Typography.d.ts +1 -1
- package/dist/Typography/index.js +1 -2
- package/dist/{Typography-fbe0ed6e.js → Typography-9262511f.js} +5 -7
- package/dist/tslib.es6-efe27175.js +38 -0
- package/package.json +3 -3
- package/dist/tslib.es6-5b50eb8e.js +0 -103
package/dist/Gallery/index.js
CHANGED
|
@@ -2,31 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib_es6 = require('../tslib.es6-5b50eb8e.js');
|
|
6
5
|
var React = require('react');
|
|
7
6
|
var classnames = require('classnames');
|
|
8
7
|
var styleInject_es = require('../style-inject.es-dcee06b6.js');
|
|
9
|
-
var LightBox = require('../LightBox-
|
|
10
|
-
var FormatFile = require('../FormatFile-
|
|
11
|
-
var Button = require('../Button-
|
|
8
|
+
var LightBox = require('../LightBox-dd1afa97.js');
|
|
9
|
+
var FormatFile = require('../FormatFile-3512f838.js');
|
|
10
|
+
var Button = require('../Button-16e043ec.js');
|
|
12
11
|
require('framer-motion');
|
|
13
12
|
require('react-dom');
|
|
14
13
|
require('lodash/debounce');
|
|
15
14
|
require('@jobber/hooks');
|
|
16
|
-
require('../ButtonDismiss-
|
|
15
|
+
require('../ButtonDismiss-3fb1eaf9.js');
|
|
17
16
|
require('filesize');
|
|
18
|
-
require('../ConfirmationModal-
|
|
19
|
-
require('../Modal-
|
|
20
|
-
require('../Heading-
|
|
21
|
-
require('../Typography-
|
|
22
|
-
require('../Content-
|
|
23
|
-
require('../Markdown-
|
|
17
|
+
require('../ConfirmationModal-6a7beee2.js');
|
|
18
|
+
require('../Modal-757e83fd.js');
|
|
19
|
+
require('../Heading-7b203f7f.js');
|
|
20
|
+
require('../Typography-9262511f.js');
|
|
21
|
+
require('../Content-05df8f7f.js');
|
|
22
|
+
require('../Markdown-be2dcd0c.js');
|
|
24
23
|
require('react-markdown');
|
|
25
|
-
require('../Text-
|
|
26
|
-
require('../Emphasis-
|
|
27
|
-
require('../Icon-
|
|
24
|
+
require('../Text-7ce00adb.js');
|
|
25
|
+
require('../Emphasis-23dc2a0a.js');
|
|
26
|
+
require('../Icon-405a216c.js');
|
|
28
27
|
require('@jobber/design');
|
|
29
|
-
require('../ProgressBar-
|
|
28
|
+
require('../ProgressBar-f028b159.js');
|
|
30
29
|
require('react-router-dom');
|
|
31
30
|
|
|
32
31
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -38,22 +37,21 @@ var css = ".oLHYkzv718LqMvtqFZFcZ,\n._2JSG0uYj1HSXFads63nptQ {\n display: -ms-f
|
|
|
38
37
|
var styles = {"gallery":"oLHYkzv718LqMvtqFZFcZ","galleryLarge":"_2JSG0uYj1HSXFads63nptQ","showMoreButton":"_3LkQj1p9wvHbrfXfz2nUYp","baseShowMoreButton":"FG8mZ6UcMPRsMC9HQinY2","largeShowMoreButton":"_1cTzKosWc22qxWZSiI0CzZ"};
|
|
39
38
|
styleInject_es.styleInject(css);
|
|
40
39
|
|
|
41
|
-
function Gallery(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
var visibleFiles = displayPastMax ? files : files.slice(0, max);
|
|
40
|
+
function Gallery({ files, size = "base", max, onDelete }) {
|
|
41
|
+
const { images, filesToImageIndex } = generateImagesArray(files);
|
|
42
|
+
const [lightboxOpen, setLightboxOpen] = React.useState(false);
|
|
43
|
+
const [lightboxIndex, setLightboxIndex] = React.useState(0);
|
|
44
|
+
const [displayPastMax, setDisplayPastMax] = React.useState(max ? false : true);
|
|
45
|
+
const visibleFiles = displayPastMax ? files : files.slice(0, max);
|
|
48
46
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
49
47
|
React__default["default"].createElement("div", { className: size === "large" ? styles.galleryLarge : styles.gallery },
|
|
50
|
-
visibleFiles.map(
|
|
51
|
-
return (React__default["default"].createElement(FormatFile.FormatFile, { key: file.key, file:
|
|
48
|
+
visibleFiles.map((file, index) => {
|
|
49
|
+
return (React__default["default"].createElement(FormatFile.FormatFile, { key: file.key, file: Object.assign(Object.assign({}, file), { src: () => Promise.resolve(file.src) }), display: "compact", displaySize: size, onClick: () => {
|
|
52
50
|
handleThumbnailClicked(index);
|
|
53
|
-
}, onDelete: onDelete ?
|
|
51
|
+
}, onDelete: onDelete ? () => onDelete === null || onDelete === void 0 ? void 0 : onDelete(file) : undefined }));
|
|
54
52
|
}),
|
|
55
|
-
max && files.length > max && !displayPastMax && (React__default["default"].createElement("div", { className: classnames__default["default"](styles.showMoreButton, styles[size
|
|
56
|
-
React__default["default"].createElement(Button.Button, { type: "tertiary", size: size, label:
|
|
53
|
+
max && files.length > max && !displayPastMax && (React__default["default"].createElement("div", { className: classnames__default["default"](styles.showMoreButton, styles[`${size}ShowMoreButton`]) },
|
|
54
|
+
React__default["default"].createElement(Button.Button, { type: "tertiary", size: size, label: `+ ${files.length - max}`, fullWidth: true, onClick: () => {
|
|
57
55
|
setDisplayPastMax(true);
|
|
58
56
|
} })))),
|
|
59
57
|
React__default["default"].createElement(LightBox.LightBox, { open: lightboxOpen, images: images, imageIndex: lightboxIndex, onRequestClose: handleLightboxClose })));
|
|
@@ -66,7 +64,7 @@ function Gallery(_a) {
|
|
|
66
64
|
}
|
|
67
65
|
}
|
|
68
66
|
function handleLightboxOpen(index) {
|
|
69
|
-
|
|
67
|
+
const fileToImageIndex = filesToImageIndex[index];
|
|
70
68
|
if (fileToImageIndex !== undefined) {
|
|
71
69
|
setLightboxIndex(fileToImageIndex);
|
|
72
70
|
setLightboxOpen(true);
|
|
@@ -77,10 +75,10 @@ function Gallery(_a) {
|
|
|
77
75
|
}
|
|
78
76
|
}
|
|
79
77
|
function generateImagesArray(files) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
for (
|
|
78
|
+
const images = [];
|
|
79
|
+
const filesToImageIndex = [];
|
|
80
|
+
let imageIndex = 0;
|
|
81
|
+
for (let i = 0; i < files.length; i++) {
|
|
84
82
|
if (files[i].type.startsWith("image/")) {
|
|
85
83
|
images.push({ title: files[i].name, url: files[i].src });
|
|
86
84
|
filesToImageIndex.push(imageIndex);
|
|
@@ -90,7 +88,7 @@ function generateImagesArray(files) {
|
|
|
90
88
|
filesToImageIndex.push(undefined);
|
|
91
89
|
}
|
|
92
90
|
}
|
|
93
|
-
return { images
|
|
91
|
+
return { images, filesToImageIndex };
|
|
94
92
|
}
|
|
95
93
|
|
|
96
94
|
exports.Gallery = Gallery;
|
package/dist/Heading/index.js
CHANGED
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var Heading = require('../Heading-
|
|
6
|
-
require('../tslib.es6-5b50eb8e.js');
|
|
5
|
+
var Heading = require('../Heading-7b203f7f.js');
|
|
7
6
|
require('react');
|
|
8
|
-
require('../Typography-
|
|
7
|
+
require('../Typography-9262511f.js');
|
|
9
8
|
require('classnames');
|
|
10
9
|
require('../style-inject.es-dcee06b6.js');
|
|
11
10
|
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib_es6 = require('./tslib.es6-5b50eb8e.js');
|
|
4
3
|
var React = require('react');
|
|
5
|
-
var Typography = require('./Typography-
|
|
4
|
+
var Typography = require('./Typography-9262511f.js');
|
|
6
5
|
|
|
7
6
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
7
|
|
|
9
8
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
10
9
|
|
|
11
|
-
function Heading(
|
|
12
|
-
|
|
13
|
-
var levelMap = {
|
|
10
|
+
function Heading({ level = 5, children }) {
|
|
11
|
+
const levelMap = {
|
|
14
12
|
1: {
|
|
15
13
|
element: "h1",
|
|
16
14
|
size: "jumbo",
|
|
@@ -49,7 +47,7 @@ function Heading(_a) {
|
|
|
49
47
|
textColor: "heading",
|
|
50
48
|
},
|
|
51
49
|
};
|
|
52
|
-
return React__default["default"].createElement(Typography.Typography,
|
|
50
|
+
return React__default["default"].createElement(Typography.Typography, Object.assign({}, levelMap[level]), children);
|
|
53
51
|
}
|
|
54
52
|
|
|
55
53
|
exports.Heading = Heading;
|
package/dist/Icon/index.js
CHANGED
|
@@ -7,19 +7,18 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
7
7
|
|
|
8
8
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
9
9
|
|
|
10
|
-
function Icon(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
name: name,
|
|
10
|
+
function Icon({ name, color, customColor, size = "base" }) {
|
|
11
|
+
let icon;
|
|
12
|
+
const { svgClassNames, pathClassNames, paths, viewBox } = design.getIcon({
|
|
13
|
+
name,
|
|
15
14
|
color: getIconColor(name, color),
|
|
16
|
-
size
|
|
17
|
-
})
|
|
15
|
+
size,
|
|
16
|
+
});
|
|
18
17
|
if (name === "truck") {
|
|
19
18
|
icon = getTruck(pathClassNames, customColor);
|
|
20
19
|
}
|
|
21
20
|
else {
|
|
22
|
-
icon = paths.map(
|
|
21
|
+
icon = paths.map((path) => (React__default["default"].createElement("path", { key: path, className: pathClassNames, d: path, fill: customColor })));
|
|
23
22
|
}
|
|
24
23
|
return (React__default["default"].createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: viewBox, className: svgClassNames, "data-testid": name }, icon));
|
|
25
24
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from "react";
|
|
2
|
-
export
|
|
2
|
+
export type InlineLabelColors = "greyBlue" | "red" | "orange" | "green" | "blue" | "yellow" | "lime" | "purple" | "pink" | "teal" | "yellowGreen" | "blueDark" | "lightBlue" | "indigo";
|
|
3
3
|
interface InlineLabelProps {
|
|
4
4
|
/**
|
|
5
5
|
* The size of the label
|
|
@@ -5,8 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var classnames = require('classnames');
|
|
7
7
|
var styleInject_es = require('../style-inject.es-dcee06b6.js');
|
|
8
|
-
var Typography = require('../Typography-
|
|
9
|
-
require('../tslib.es6-5b50eb8e.js');
|
|
8
|
+
var Typography = require('../Typography-9262511f.js');
|
|
10
9
|
|
|
11
10
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
12
11
|
|
|
@@ -17,10 +16,9 @@ var css = "._2CX7X_wH5lb0fioNTuYTB3 {\n display: -ms-inline-flexbox;\n display
|
|
|
17
16
|
var styles = {"inlineLabel":"_2CX7X_wH5lb0fioNTuYTB3","base":"hIEzl9j3x8azFGCx53-RF","large":"_2FEAdHSbQ1julTQlXKcU9G","larger":"y2IZqgoDbEVd68JUw74_V","greyBlue":"_3ayhjHoV55pJnCyceIIodY","red":"_1NRX5K08cyefHFTjmEY7JC","orange":"_2WqpAFlUhWh2Wycr-r2uMn","green":"EM3QGMlc1v7pjfVBR2j82","blue":"LuBWHY5BJNh4RnEPozKgA","navy":"_36P3W4wMGeF6ObMYI87q2b","yellow":"z7yJ1rNuOTksBtZ0cr3ys","lime":"_2jRJWXkl2av1GzSTdc4GS","purple":"_2DSYzUVBgtIaB1xsMr7rVj","pink":"_27cvq6AfdeOP6SUuX5Ex_T","teal":"eImPpTsVAb13A3dFkEkBc","yellowGreen":"_1AcWxzfWcjE71_gRrEo-J_","blueDark":"J21zEr7ZIvGwt6R5-MZQ7","lightBlue":"_27HNFihCeydE5HUcbCskQ4","indigo":"_3_dDXhHTqG9pa_au-60pWR"};
|
|
18
17
|
styleInject_es.styleInject(css);
|
|
19
18
|
|
|
20
|
-
function InlineLabel(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
var sizeMapper = {
|
|
19
|
+
function InlineLabel({ size = "base", color = "greyBlue", children, }) {
|
|
20
|
+
const className = classnames__default["default"](styles.inlineLabel, styles[size], styles[color]);
|
|
21
|
+
const sizeMapper = {
|
|
24
22
|
base: "small",
|
|
25
23
|
large: "large",
|
|
26
24
|
larger: "large",
|
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib_es6 = require('../tslib.es6-
|
|
5
|
+
var tslib_es6 = require('../tslib.es6-efe27175.js');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var styleInject_es = require('../style-inject.es-dcee06b6.js');
|
|
8
|
-
var Avatar = require('../Avatar-
|
|
9
|
-
var InputFile = require('../InputFile-
|
|
10
|
-
var ProgressBar = require('../ProgressBar-
|
|
11
|
-
var Button = require('../Button-
|
|
8
|
+
var Avatar = require('../Avatar-89cfd0a6.js');
|
|
9
|
+
var InputFile = require('../InputFile-5e0ed2b5.js');
|
|
10
|
+
var ProgressBar = require('../ProgressBar-f028b159.js');
|
|
11
|
+
var Button = require('../Button-16e043ec.js');
|
|
12
12
|
require('classnames');
|
|
13
13
|
require('color');
|
|
14
|
-
require('../Icon-
|
|
14
|
+
require('../Icon-405a216c.js');
|
|
15
15
|
require('@jobber/design');
|
|
16
16
|
require('react-dropzone');
|
|
17
17
|
require('axios');
|
|
18
18
|
require('uuid');
|
|
19
|
-
require('../Content-
|
|
20
|
-
require('../Typography-
|
|
19
|
+
require('../Content-05df8f7f.js');
|
|
20
|
+
require('../Typography-9262511f.js');
|
|
21
21
|
require('react-router-dom');
|
|
22
22
|
|
|
23
23
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -29,11 +29,11 @@ var styles = {"inputAvatar":"_1e1D2becaB2vzZJ8QkTQFY","preview":"TQgDlkCH4_o4LkH
|
|
|
29
29
|
styleInject_es.styleInject(css);
|
|
30
30
|
|
|
31
31
|
function InputAvatar(_a) {
|
|
32
|
-
var
|
|
33
|
-
|
|
32
|
+
var { getUploadParams, onUploadComplete, onChange } = _a, avatarProps = tslib_es6.__rest(_a, ["getUploadParams", "onUploadComplete", "onChange"]);
|
|
33
|
+
const [progress, setProgress] = React.useState(1);
|
|
34
34
|
return (React__default["default"].createElement("div", { className: styles.inputAvatar },
|
|
35
35
|
React__default["default"].createElement("div", { className: styles.preview },
|
|
36
|
-
React__default["default"].createElement(Avatar.Avatar,
|
|
36
|
+
React__default["default"].createElement(Avatar.Avatar, Object.assign({ size: "large" }, avatarProps)),
|
|
37
37
|
progress < 1 && (React__default["default"].createElement(Overlay, null,
|
|
38
38
|
React__default["default"].createElement(Centered, null,
|
|
39
39
|
React__default["default"].createElement(ProgressBar.ProgressBar, { size: "small", currentStep: progress * 100, totalSteps: 100 }))))),
|
|
@@ -48,11 +48,8 @@ function InputAvatar(_a) {
|
|
|
48
48
|
handleUpload(newFile);
|
|
49
49
|
}
|
|
50
50
|
function handleUpload(newFile) {
|
|
51
|
-
return tslib_es6.__awaiter(this, void 0, void 0, function () {
|
|
52
|
-
|
|
53
|
-
setProgress(newFile.progress);
|
|
54
|
-
return [2 /*return*/];
|
|
55
|
-
});
|
|
51
|
+
return tslib_es6.__awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
setProgress(newFile.progress);
|
|
56
53
|
});
|
|
57
54
|
}
|
|
58
55
|
function clearAvatar() {
|
|
@@ -60,12 +57,10 @@ function InputAvatar(_a) {
|
|
|
60
57
|
setProgress(1);
|
|
61
58
|
}
|
|
62
59
|
}
|
|
63
|
-
function Overlay(
|
|
64
|
-
var children = _a.children;
|
|
60
|
+
function Overlay({ children }) {
|
|
65
61
|
return React__default["default"].createElement("div", { className: styles.overlay }, children);
|
|
66
62
|
}
|
|
67
|
-
function Centered(
|
|
68
|
-
var children = _a.children;
|
|
63
|
+
function Centered({ children }) {
|
|
69
64
|
// Note: this HIGHLY experimental Centered component is applying margin.
|
|
70
65
|
return React__default["default"].createElement("div", { className: styles.centered }, children);
|
|
71
66
|
}
|
package/dist/InputDate/index.js
CHANGED
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib_es6 = require('../tslib.es6-5b50eb8e.js');
|
|
6
5
|
var lodash = require('lodash');
|
|
7
6
|
var React = require('react');
|
|
8
|
-
var FormField = require('../FormField-
|
|
9
|
-
var DatePicker = require('../DatePicker-
|
|
7
|
+
var FormField = require('../FormField-79a0a375.js');
|
|
8
|
+
var DatePicker = require('../DatePicker-0696b0f0.js');
|
|
9
|
+
require('../tslib.es6-efe27175.js');
|
|
10
10
|
require('uuid');
|
|
11
11
|
require('react-hook-form');
|
|
12
12
|
require('../style-inject.es-dcee06b6.js');
|
|
13
13
|
require('classnames');
|
|
14
|
-
require('../Button-
|
|
14
|
+
require('../Button-16e043ec.js');
|
|
15
15
|
require('react-router-dom');
|
|
16
|
-
require('../Icon-
|
|
16
|
+
require('../Icon-405a216c.js');
|
|
17
17
|
require('@jobber/design');
|
|
18
|
-
require('../Typography-
|
|
19
|
-
require('../Text-
|
|
20
|
-
require('../InputValidation-
|
|
18
|
+
require('../Typography-9262511f.js');
|
|
19
|
+
require('../Text-7ce00adb.js');
|
|
20
|
+
require('../InputValidation-97dd0dcf.js');
|
|
21
21
|
require('framer-motion');
|
|
22
|
-
require('../Spinner-
|
|
22
|
+
require('../Spinner-ae4c8a85.js');
|
|
23
23
|
require('react-datepicker');
|
|
24
24
|
require('@jobber/hooks');
|
|
25
25
|
|
|
@@ -28,17 +28,17 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
28
28
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
29
29
|
|
|
30
30
|
function InputDate(inputProps) {
|
|
31
|
-
return (React__default["default"].createElement(DatePicker.DatePicker, { selected: inputProps.value, onChange: inputProps.onChange, disabled: inputProps.disabled, readonly: inputProps.readonly, fullWidth: !inputProps.inline, minDate: inputProps.minDate, maxDate: inputProps.maxDate, smartAutofocus: false, activator:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
return (React__default["default"].createElement(DatePicker.DatePicker, { selected: inputProps.value, onChange: inputProps.onChange, disabled: inputProps.disabled, readonly: inputProps.readonly, fullWidth: !inputProps.inline, minDate: inputProps.minDate, maxDate: inputProps.maxDate, smartAutofocus: false, activator: activatorProps => {
|
|
32
|
+
const { onChange, onClick, value } = activatorProps;
|
|
33
|
+
const newActivatorProps = lodash.omit(activatorProps, ["activator"]);
|
|
34
|
+
const suffix = Object.assign({ icon: "calendar" }, (onClick && {
|
|
35
35
|
onClick: onClick,
|
|
36
36
|
ariaLabel: "Show calendar",
|
|
37
37
|
}));
|
|
38
|
-
return (React__default["default"].createElement(FormField.FormField,
|
|
38
|
+
return (React__default["default"].createElement(FormField.FormField, Object.assign({}, newActivatorProps, inputProps, { value: value, onChange: (_, event) => onChange && onChange(event), onBlur: () => {
|
|
39
39
|
inputProps.onBlur && inputProps.onBlur();
|
|
40
40
|
activatorProps.onBlur && activatorProps.onBlur();
|
|
41
|
-
}, onFocus:
|
|
41
|
+
}, onFocus: () => {
|
|
42
42
|
inputProps.onFocus && inputProps.onFocus();
|
|
43
43
|
activatorProps.onFocus && activatorProps.onFocus();
|
|
44
44
|
}, suffix: suffix })));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { CommonFormFieldProps, FormFieldProps } from "../FormField";
|
|
3
|
-
|
|
3
|
+
type InputEmailProps = CommonFormFieldProps & Pick<FormFieldProps, "maxLength" | "readonly" | "validations" | "defaultValue">;
|
|
4
4
|
export declare const validationMessage = "Please enter a valid email";
|
|
5
5
|
export declare function InputEmail(props: InputEmailProps): JSX.Element;
|
|
6
6
|
export {};
|
package/dist/InputEmail/index.js
CHANGED
|
@@ -2,33 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib_es6 = require('../tslib.es6-5b50eb8e.js');
|
|
6
5
|
var React = require('react');
|
|
7
|
-
var FormField = require('../FormField-
|
|
6
|
+
var FormField = require('../FormField-79a0a375.js');
|
|
7
|
+
require('../tslib.es6-efe27175.js');
|
|
8
8
|
require('uuid');
|
|
9
9
|
require('react-hook-form');
|
|
10
10
|
require('../style-inject.es-dcee06b6.js');
|
|
11
11
|
require('classnames');
|
|
12
|
-
require('../Button-
|
|
12
|
+
require('../Button-16e043ec.js');
|
|
13
13
|
require('react-router-dom');
|
|
14
|
-
require('../Icon-
|
|
14
|
+
require('../Icon-405a216c.js');
|
|
15
15
|
require('@jobber/design');
|
|
16
|
-
require('../Typography-
|
|
17
|
-
require('../Text-
|
|
18
|
-
require('../InputValidation-
|
|
16
|
+
require('../Typography-9262511f.js');
|
|
17
|
+
require('../Text-7ce00adb.js');
|
|
18
|
+
require('../InputValidation-97dd0dcf.js');
|
|
19
19
|
require('framer-motion');
|
|
20
|
-
require('../Spinner-
|
|
20
|
+
require('../Spinner-ae4c8a85.js');
|
|
21
21
|
|
|
22
22
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
23
23
|
|
|
24
24
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
const validationMessage = "Please enter a valid email";
|
|
27
27
|
function InputEmail(props) {
|
|
28
|
-
|
|
29
|
-
return (React__default["default"].createElement(FormField.FormField,
|
|
28
|
+
const { validations } = props;
|
|
29
|
+
return (React__default["default"].createElement(FormField.FormField, Object.assign({}, props, { type: "email", validations: Object.assign(Object.assign({}, validations), { validate: checkForValidEmail }) })));
|
|
30
30
|
function checkForValidEmail(value) {
|
|
31
|
-
|
|
31
|
+
const emailRegex = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
32
32
|
if (!value) {
|
|
33
33
|
return true;
|
|
34
34
|
}
|
package/dist/InputFile/index.js
CHANGED
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var InputFile = require('../InputFile-
|
|
6
|
-
require('../tslib.es6-
|
|
5
|
+
var InputFile = require('../InputFile-5e0ed2b5.js');
|
|
6
|
+
require('../tslib.es6-efe27175.js');
|
|
7
7
|
require('react');
|
|
8
8
|
require('classnames');
|
|
9
9
|
require('react-dropzone');
|
|
10
10
|
require('axios');
|
|
11
11
|
require('uuid');
|
|
12
12
|
require('../style-inject.es-dcee06b6.js');
|
|
13
|
-
require('../Button-
|
|
13
|
+
require('../Button-16e043ec.js');
|
|
14
14
|
require('react-router-dom');
|
|
15
|
-
require('../Icon-
|
|
15
|
+
require('../Icon-405a216c.js');
|
|
16
16
|
require('@jobber/design');
|
|
17
|
-
require('../Typography-
|
|
18
|
-
require('../Content-
|
|
17
|
+
require('../Typography-9262511f.js');
|
|
18
|
+
require('../Content-05df8f7f.js');
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib_es6 = require('./tslib.es6-
|
|
3
|
+
var tslib_es6 = require('./tslib.es6-efe27175.js');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var classnames = require('classnames');
|
|
6
6
|
var reactDropzone = require('react-dropzone');
|
|
7
7
|
var axios = require('axios');
|
|
8
8
|
var uuid = require('uuid');
|
|
9
9
|
var styleInject_es = require('./style-inject.es-dcee06b6.js');
|
|
10
|
-
var Button = require('./Button-
|
|
11
|
-
var Content = require('./Content-
|
|
12
|
-
var Typography = require('./Typography-
|
|
10
|
+
var Button = require('./Button-16e043ec.js');
|
|
11
|
+
var Content = require('./Content-05df8f7f.js');
|
|
12
|
+
var Typography = require('./Typography-9262511f.js');
|
|
13
13
|
|
|
14
14
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
15
15
|
|
|
@@ -21,10 +21,8 @@ var css = "._2CgKZHQp30gXtQyW8h2Ex_ {\n font-size: 0;\n line-height: 0;\n -we
|
|
|
21
21
|
var styles = {"dropZoneBase":"_2CgKZHQp30gXtQyW8h2Ex_","dropZone":"_3nre5MPe67v_oDs44x2IDC","active":"_1wLTm5Es7oqZzzwFiOySeN"};
|
|
22
22
|
styleInject_es.styleInject(css);
|
|
23
23
|
|
|
24
|
-
function InputFile(
|
|
25
|
-
|
|
26
|
-
var _c = _a.variation, variation = _c === void 0 ? "dropzone" : _c, _d = _a.size, size = _d === void 0 ? "base" : _d, providedButtonLabel = _a.buttonLabel, _e = _a.allowMultiple, allowMultiple = _e === void 0 ? false : _e, _f = _a.allowedTypes, allowedTypes = _f === void 0 ? "all" : _f, getUploadParams = _a.getUploadParams, onUploadStart = _a.onUploadStart, onUploadProgress = _a.onUploadProgress, onUploadComplete = _a.onUploadComplete;
|
|
27
|
-
var options = {
|
|
24
|
+
function InputFile({ variation = "dropzone", size = "base", buttonLabel: providedButtonLabel, allowMultiple = false, allowedTypes = "all", getUploadParams, onUploadStart, onUploadProgress, onUploadComplete, }) {
|
|
25
|
+
const options = {
|
|
28
26
|
multiple: allowMultiple,
|
|
29
27
|
onDrop: React.useCallback(handleDrop, []),
|
|
30
28
|
};
|
|
@@ -34,66 +32,54 @@ function InputFile(_a) {
|
|
|
34
32
|
else if (allowedTypes === "basicImages") {
|
|
35
33
|
options.accept = "image/png, image/jpg, image/jpeg";
|
|
36
34
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return (React__default["default"].createElement("div",
|
|
44
|
-
React__default["default"].createElement("input",
|
|
35
|
+
const { getRootProps, getInputProps, isDragActive } = reactDropzone.useDropzone(options);
|
|
36
|
+
const { buttonLabel, hintText } = getLabels(providedButtonLabel, allowMultiple, allowedTypes);
|
|
37
|
+
const dropZone = classnames__default["default"](styles.dropZoneBase, {
|
|
38
|
+
[styles.dropZone]: variation === "dropzone",
|
|
39
|
+
[styles.active]: isDragActive,
|
|
40
|
+
});
|
|
41
|
+
return (React__default["default"].createElement("div", Object.assign({}, getRootProps({ className: dropZone }), { tabIndex: variation === "button" ? -1 : 0 }),
|
|
42
|
+
React__default["default"].createElement("input", Object.assign({}, getInputProps())),
|
|
45
43
|
variation === "dropzone" && (React__default["default"].createElement(Content.Content, { spacing: "small" },
|
|
46
44
|
React__default["default"].createElement(Button.Button, { label: buttonLabel, size: "small", type: "secondary" }),
|
|
47
45
|
size === "base" && (React__default["default"].createElement(Typography.Typography, { size: "small", textColor: "textSecondary" }, hintText)))),
|
|
48
46
|
variation === "button" && (React__default["default"].createElement(Button.Button, { label: buttonLabel, size: size, type: "secondary", fullWidth: true }))));
|
|
49
47
|
function handleDrop(acceptedFiles) {
|
|
50
|
-
acceptedFiles.forEach(
|
|
48
|
+
acceptedFiles.forEach(file => {
|
|
51
49
|
uploadFile(file);
|
|
52
50
|
});
|
|
53
51
|
}
|
|
54
52
|
function uploadFile(file) {
|
|
55
|
-
return tslib_es6.__awaiter(this, void 0, void 0, function () {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
url: url,
|
|
73
|
-
httpMethod: httpMethod,
|
|
74
|
-
fields: fields,
|
|
75
|
-
file: file,
|
|
76
|
-
handleUploadProgress: handleUploadProgress,
|
|
77
|
-
});
|
|
78
|
-
axios__default["default"].request(axiosConfig).then(handleUploadComplete);
|
|
79
|
-
return [2 /*return*/];
|
|
80
|
-
}
|
|
53
|
+
return tslib_es6.__awaiter(this, void 0, void 0, function* () {
|
|
54
|
+
const { url, key = uuid.v1(), fields = {}, httpMethod = "POST", } = yield getUploadParams(file);
|
|
55
|
+
const fileUpload = getFileUpload(file, key);
|
|
56
|
+
onUploadStart && onUploadStart(Object.assign({}, fileUpload));
|
|
57
|
+
const handleUploadProgress = (progressEvent) => {
|
|
58
|
+
onUploadProgress &&
|
|
59
|
+
onUploadProgress(Object.assign(Object.assign({}, fileUpload), { progress: progressEvent.loaded / progressEvent.total }));
|
|
60
|
+
};
|
|
61
|
+
const handleUploadComplete = () => {
|
|
62
|
+
onUploadComplete === null || onUploadComplete === void 0 ? void 0 : onUploadComplete(Object.assign(Object.assign({}, fileUpload), { progress: 1 }));
|
|
63
|
+
};
|
|
64
|
+
const axiosConfig = createAxiosConfig({
|
|
65
|
+
url,
|
|
66
|
+
httpMethod,
|
|
67
|
+
fields,
|
|
68
|
+
file,
|
|
69
|
+
handleUploadProgress,
|
|
81
70
|
});
|
|
71
|
+
axios__default["default"].request(axiosConfig).then(handleUploadComplete);
|
|
82
72
|
});
|
|
83
73
|
}
|
|
84
74
|
}
|
|
85
|
-
function createAxiosConfig(
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
var headers;
|
|
75
|
+
function createAxiosConfig({ url, httpMethod = "POST", fields = {}, file, handleUploadProgress, }) {
|
|
76
|
+
let data;
|
|
77
|
+
let headers;
|
|
89
78
|
if (httpMethod === "POST") {
|
|
90
|
-
|
|
91
|
-
Object.entries(fields).forEach(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
});
|
|
95
|
-
formData_1.append("file", file);
|
|
96
|
-
data = formData_1;
|
|
79
|
+
const formData = new FormData();
|
|
80
|
+
Object.entries(fields).forEach(([field, value]) => formData.append(field, value));
|
|
81
|
+
formData.append("file", file);
|
|
82
|
+
data = formData;
|
|
97
83
|
headers = { "X-Requested-With": "XMLHttpRequest" };
|
|
98
84
|
}
|
|
99
85
|
else {
|
|
@@ -109,8 +95,8 @@ function createAxiosConfig(_a) {
|
|
|
109
95
|
};
|
|
110
96
|
}
|
|
111
97
|
function getLabels(providedButtonLabel, multiple, allowedTypes) {
|
|
112
|
-
|
|
113
|
-
|
|
98
|
+
let buttonLabel = multiple ? "Upload Files" : "Upload File";
|
|
99
|
+
let hintText = multiple
|
|
114
100
|
? "or drag files here to upload"
|
|
115
101
|
: "or drag a file here to upload";
|
|
116
102
|
if (allowedTypes === "images" || allowedTypes === "basicImages") {
|
|
@@ -121,7 +107,7 @@ function getLabels(providedButtonLabel, multiple, allowedTypes) {
|
|
|
121
107
|
}
|
|
122
108
|
if (providedButtonLabel)
|
|
123
109
|
buttonLabel = providedButtonLabel;
|
|
124
|
-
return { buttonLabel
|
|
110
|
+
return { buttonLabel, hintText };
|
|
125
111
|
}
|
|
126
112
|
function getFileUpload(file, key) {
|
|
127
113
|
return {
|
|
@@ -133,9 +119,9 @@ function getFileUpload(file, key) {
|
|
|
133
119
|
src: getSrc,
|
|
134
120
|
};
|
|
135
121
|
function getSrc() {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
reader.onload =
|
|
122
|
+
const promise = new Promise((resolve, reject) => {
|
|
123
|
+
const reader = new FileReader();
|
|
124
|
+
reader.onload = event => {
|
|
139
125
|
if (event.target &&
|
|
140
126
|
event.target.result &&
|
|
141
127
|
typeof event.target.result === "string") {
|
|
@@ -159,8 +145,8 @@ function getFileUpload(file, key) {
|
|
|
159
145
|
* @returns FileUpload[] updated set of files.
|
|
160
146
|
*/
|
|
161
147
|
function updateFiles(updatedFile, files) {
|
|
162
|
-
|
|
163
|
-
|
|
148
|
+
const newFiles = [...files];
|
|
149
|
+
const index = files.findIndex(file => file.key === updatedFile.key);
|
|
164
150
|
if (index !== -1) {
|
|
165
151
|
newFiles[index] = updatedFile;
|
|
166
152
|
}
|