@symply.io/basic-components 1.3.11-alpha.9 → 1.4.0-beta.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/AlertDialog/index.js +30 -8
- package/Autocomplete/index.js +32 -10
- package/Autocomplete/useInteractions.js +3 -3
- package/AutocompleteWithFilter/index.js +35 -12
- package/BasicModal/Content.js +16 -5
- package/BasicModal/index.js +31 -9
- package/BreadCrumbs/index.js +19 -8
- package/CheckBox/CheckBox.js +26 -4
- package/CheckBox/CheckBoxGroup.js +24 -2
- package/Copyright/index.js +14 -3
- package/DataTable/TableBody.js +24 -2
- package/DataTable/TableBodyRow.js +52 -41
- package/DataTable/TableFooter.js +41 -30
- package/DataTable/TableHeader.js +47 -36
- package/DataTable/index.js +28 -17
- package/DataTable/useTable.js +54 -46
- package/DateInput/FullDateInput/index.js +42 -20
- package/DateInput/FullDateInput/useInteractions.js +10 -10
- package/DateInput/MonthDayInput/index.js +36 -14
- package/DateInput/MonthDayInput/useInteractions.js +9 -9
- package/DateInput/MonthYearInput/index.js +36 -14
- package/DateInput/MonthYearInput/useInteractions.js +9 -9
- package/DigitInput/index.js +28 -6
- package/DigitInput/useInteractions.js +9 -9
- package/DynamicHeaderBar/HeaderBar.js +17 -6
- package/DynamicHeaderBar/HeaderButtons.js +24 -13
- package/DynamicHeaderBar/HeaderLine.js +2 -2
- package/DynamicHeaderBar/index.js +26 -15
- package/FeinInput/index.js +38 -16
- package/FeinInput/useInteractions.js +9 -9
- package/FileUploader/index.js +33 -11
- package/FileUploader/useInteractions.js +44 -29
- package/FormRadioGroup/index.js +29 -4
- package/FormSelector/MultipleSelector.js +32 -9
- package/FormSelector/SimpleSelector.js +32 -9
- package/FormSelector/useInteractions.js +7 -7
- package/HelpCaption/index.js +17 -6
- package/HelpCaption/useInteractions.js +2 -2
- package/LoadingModal/Modal.js +15 -4
- package/LoadingModal/useLoadingModal.js +33 -15
- package/MenuButtonGroup/MenuItem.js +14 -3
- package/MenuButtonGroup/index.js +82 -14
- package/NumberInput/index.js +27 -5
- package/NumberInput/useInteractions.js +17 -17
- package/PasswordInput/ConfirmPassword.js +28 -6
- package/PasswordInput/Password.js +37 -15
- package/PhoneNumberInput/index.js +39 -17
- package/PhoneNumberInput/useInteractions.js +10 -10
- package/Sidebar/SidebarItem.js +17 -6
- package/Sidebar/SidebarItemsGroup.js +21 -10
- package/Sidebar/SidebarLink.js +27 -5
- package/Sidebar/index.js +17 -6
- package/SocialInput/index.js +40 -18
- package/SocialInput/useInteractions.js +14 -14
- package/TabGroup/index.js +25 -14
- package/TablePagination/Actions.js +15 -4
- package/TablePagination/index.js +14 -3
- package/TablePagination/useInteractions.js +9 -9
- package/TextInput/index.js +30 -8
- package/TextInput/useInteractions.js +4 -4
- package/ToastPrompt/Prompt.d.ts +2 -1
- package/ToastPrompt/Prompt.js +20 -55
- package/ToastPrompt/index.js +18 -7
- package/ToastPrompt/types.d.ts +2 -8
- package/ToastPrompt/useInteractions.d.ts +2 -1
- package/ToastPrompt/useInteractions.js +21 -10
- package/VideoPlayerModal/index.js +27 -5
- package/package.json +1 -1
- package/useCustomTheme.js +16 -11
- package/utils/uuid.js +11 -10
@@ -1,15 +1,35 @@
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
2
|
+
__assign = Object.assign || function(t) {
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
4
|
+
s = arguments[i];
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
6
|
+
t[p] = s[p];
|
7
|
+
}
|
8
|
+
return t;
|
9
|
+
};
|
10
|
+
return __assign.apply(this, arguments);
|
11
|
+
};
|
12
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
13
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
14
|
+
if (ar || !(i in from)) {
|
15
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
16
|
+
ar[i] = from[i];
|
17
|
+
}
|
18
|
+
}
|
19
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
20
|
+
};
|
1
21
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
2
22
|
import { cloneElement, useMemo, useState, useContext, useCallback, createContext } from "react";
|
3
23
|
import generateUUID from "../utils/uuid";
|
4
24
|
import LoadingModal from "./Modal";
|
5
|
-
|
6
|
-
onOpenLoadingModal: ()
|
7
|
-
onCloseLoadingModal: ()
|
25
|
+
var LoadingModalContext = createContext({
|
26
|
+
onOpenLoadingModal: function () { return null; },
|
27
|
+
onCloseLoadingModal: function () { }
|
8
28
|
});
|
9
29
|
export function LoadingModalProvider(props) {
|
10
|
-
|
11
|
-
|
12
|
-
|
30
|
+
var children = props.children, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor;
|
31
|
+
var _a = useState([]), instances = _a[0], setInstances = _a[1];
|
32
|
+
var modalArgs = useMemo(function () {
|
13
33
|
return instances.length > 0
|
14
34
|
? {
|
15
35
|
open: true,
|
@@ -17,22 +37,20 @@ export function LoadingModalProvider(props) {
|
|
17
37
|
}
|
18
38
|
: { open: false, text: "Loading..." };
|
19
39
|
}, [instances]);
|
20
|
-
|
21
|
-
|
40
|
+
var onOpenLoadingModal = useCallback(function (loadingText) {
|
41
|
+
var instance = {
|
22
42
|
id: generateUUID(),
|
23
43
|
text: loadingText || "Loading..."
|
24
44
|
};
|
25
|
-
setInstances(insts
|
45
|
+
setInstances(function (insts) { return __spreadArray(__spreadArray([], insts, true), [instance], false); });
|
26
46
|
return instance;
|
27
47
|
}, []);
|
28
|
-
|
29
|
-
if (instance
|
30
|
-
setInstances(insts
|
31
|
-
...insts.filter(inst => inst.id !== instance.id)
|
32
|
-
]);
|
48
|
+
var onCloseLoadingModal = useCallback(function (instance) {
|
49
|
+
if (instance === null || instance === void 0 ? void 0 : instance.id) {
|
50
|
+
setInstances(function (insts) { return __spreadArray([], insts.filter(function (inst) { return inst.id !== instance.id; }), true); });
|
33
51
|
}
|
34
52
|
}, []);
|
35
|
-
return (_jsx(LoadingModalContext.Provider, { value: { onOpenLoadingModal, onCloseLoadingModal }, children: _jsxs(_Fragment, { children: [cloneElement(children), _jsx(LoadingModal, {
|
53
|
+
return (_jsx(LoadingModalContext.Provider, __assign({ value: { onOpenLoadingModal: onOpenLoadingModal, onCloseLoadingModal: onCloseLoadingModal } }, { children: _jsxs(_Fragment, { children: [cloneElement(children), _jsx(LoadingModal, __assign({}, modalArgs, { primaryColor: primaryColor, secondaryColor: secondaryColor }))] }) })));
|
36
54
|
}
|
37
55
|
export function useLoadingModal() {
|
38
56
|
return useContext(LoadingModalContext);
|
@@ -1,3 +1,14 @@
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
2
|
+
__assign = Object.assign || function(t) {
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
4
|
+
s = arguments[i];
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
6
|
+
t[p] = s[p];
|
7
|
+
}
|
8
|
+
return t;
|
9
|
+
};
|
10
|
+
return __assign.apply(this, arguments);
|
11
|
+
};
|
1
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
13
|
import MenuItem from "@mui/material/MenuItem";
|
3
14
|
import ListItemIcon from "@mui/material/ListItemIcon";
|
@@ -5,8 +16,8 @@ import ListItemText from "@mui/material/ListItemText";
|
|
5
16
|
import ThemeProvider from "@mui/material/styles/ThemeProvider";
|
6
17
|
import useCustomTheme from "../useCustomTheme";
|
7
18
|
function ButtonMenuItem(props) {
|
8
|
-
|
9
|
-
|
10
|
-
return (_jsx(ThemeProvider, { theme: theme, children: _jsxs(MenuItem, { onClick: onClick, disabled: disabled, children: [buttonIcon && _jsx(ListItemIcon, { children: buttonIcon }), _jsx(ListItemText, { primary: buttonText })] }) }));
|
19
|
+
var buttonText = props.buttonText, buttonIcon = props.buttonIcon, _a = props.disabled, disabled = _a === void 0 ? false : _a, onClick = props.onClick;
|
20
|
+
var theme = useCustomTheme();
|
21
|
+
return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsxs(MenuItem, __assign({ onClick: onClick, disabled: disabled }, { children: [buttonIcon && _jsx(ListItemIcon, { children: buttonIcon }), _jsx(ListItemText, { primary: buttonText })] })) })));
|
11
22
|
}
|
12
23
|
export default ButtonMenuItem;
|
package/MenuButtonGroup/index.js
CHANGED
@@ -1,3 +1,61 @@
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
2
|
+
__assign = Object.assign || function(t) {
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
4
|
+
s = arguments[i];
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
6
|
+
t[p] = s[p];
|
7
|
+
}
|
8
|
+
return t;
|
9
|
+
};
|
10
|
+
return __assign.apply(this, arguments);
|
11
|
+
};
|
12
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
13
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
14
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
15
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
16
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
17
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
18
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
19
|
+
});
|
20
|
+
};
|
21
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
22
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
23
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
24
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
25
|
+
function step(op) {
|
26
|
+
if (f) throw new TypeError("Generator is already executing.");
|
27
|
+
while (_) try {
|
28
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
29
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
30
|
+
switch (op[0]) {
|
31
|
+
case 0: case 1: t = op; break;
|
32
|
+
case 4: _.label++; return { value: op[1], done: false };
|
33
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
34
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
35
|
+
default:
|
36
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
37
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
38
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
39
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
40
|
+
if (t[2]) _.ops.pop();
|
41
|
+
_.trys.pop(); continue;
|
42
|
+
}
|
43
|
+
op = body.call(thisArg, _);
|
44
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
45
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
46
|
+
}
|
47
|
+
};
|
48
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
49
|
+
var t = {};
|
50
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
51
|
+
t[p] = s[p];
|
52
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
53
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
54
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
55
|
+
t[p[i]] = s[p[i]];
|
56
|
+
}
|
57
|
+
return t;
|
58
|
+
};
|
1
59
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
60
|
import { useState } from "react";
|
3
61
|
import Menu from "@mui/material/Menu";
|
@@ -7,29 +65,39 @@ import ArrowDropDownIcon from "@mui/icons-material/ArrowDropDown";
|
|
7
65
|
import ButtonItem from "./MenuItem";
|
8
66
|
import useCustomTheme from "../useCustomTheme";
|
9
67
|
function MenuButtonGroup(props) {
|
10
|
-
|
11
|
-
|
12
|
-
|
68
|
+
var _this = this;
|
69
|
+
var buttonText = props.buttonText, buttons = props.buttons, size = props.size, _a = props.color, color = _a === void 0 ? "primary" : _a, _b = props.disabled, disabled = _b === void 0 ? false : _b, _c = props.variant, variant = _c === void 0 ? "outlined" : _c, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor;
|
70
|
+
var theme = useCustomTheme({ primaryColor: primaryColor, secondaryColor: secondaryColor });
|
71
|
+
var _d = useState(null), anchorEl = _d[0], setAnchorEl = _d[1];
|
13
72
|
function onClick(event) {
|
14
73
|
setAnchorEl(event.currentTarget);
|
15
74
|
}
|
16
|
-
|
75
|
+
var onClose = function () {
|
17
76
|
setAnchorEl(null);
|
18
77
|
};
|
19
|
-
return (_jsxs(ThemeProvider, { theme: theme, children: [_jsx(Button, { "aria-haspopup": "true", variant: variant, color: color, onClick: onClick, fullWidth: true, size: size, endIcon: _jsx(ArrowDropDownIcon, { fontSize: "small" }), disabled: disabled, children: buttonText }), _jsx(Menu, { id: "button-menu", anchorEl: anchorEl, keepMounted: true, elevation: 2, anchorOrigin: {
|
78
|
+
return (_jsxs(ThemeProvider, __assign({ theme: theme }, { children: [_jsx(Button, __assign({ "aria-haspopup": "true", variant: variant, color: color, onClick: onClick, fullWidth: true, size: size, endIcon: _jsx(ArrowDropDownIcon, { fontSize: "small" }), disabled: disabled }, { children: buttonText })), _jsx(Menu, __assign({ id: "button-menu", anchorEl: anchorEl, keepMounted: true, elevation: 2, anchorOrigin: {
|
20
79
|
vertical: "bottom",
|
21
80
|
horizontal: "center"
|
22
81
|
}, transformOrigin: {
|
23
82
|
vertical: "top",
|
24
83
|
horizontal: "center"
|
25
|
-
}, open: Boolean(anchorEl), onClose: onClose, children: buttons.map(button
|
26
|
-
|
27
|
-
return (_jsx(ButtonItem, { buttonText: buttonText,
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
84
|
+
}, open: Boolean(anchorEl), onClose: onClose }, { children: buttons.map(function (button) {
|
85
|
+
var onClick = button.onClick, buttonText = button.buttonText, rest = __rest(button, ["onClick", "buttonText"]);
|
86
|
+
return (_jsx(ButtonItem, __assign({ buttonText: buttonText }, rest, { onClick: function (event) { return __awaiter(_this, void 0, void 0, function () {
|
87
|
+
return __generator(this, function (_a) {
|
88
|
+
switch (_a.label) {
|
89
|
+
case 0:
|
90
|
+
if (!onClick) return [3, 2];
|
91
|
+
return [4, onClick(event)];
|
92
|
+
case 1:
|
93
|
+
_a.sent();
|
94
|
+
_a.label = 2;
|
95
|
+
case 2:
|
96
|
+
onClose();
|
97
|
+
return [2];
|
98
|
+
}
|
99
|
+
});
|
100
|
+
}); } }), buttonText));
|
101
|
+
}) }))] })));
|
34
102
|
}
|
35
103
|
export default MenuButtonGroup;
|
package/NumberInput/index.js
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
2
|
+
__assign = Object.assign || function(t) {
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
4
|
+
s = arguments[i];
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
6
|
+
t[p] = s[p];
|
7
|
+
}
|
8
|
+
return t;
|
9
|
+
};
|
10
|
+
return __assign.apply(this, arguments);
|
11
|
+
};
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
13
|
+
var t = {};
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
15
|
+
t[p] = s[p];
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
19
|
+
t[p[i]] = s[p[i]];
|
20
|
+
}
|
21
|
+
return t;
|
22
|
+
};
|
1
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
2
24
|
import Tooltip from "@mui/material/Tooltip";
|
3
25
|
import Field from "@mui/material/TextField";
|
@@ -5,12 +27,12 @@ import ThemeProvider from "@mui/material/styles/ThemeProvider";
|
|
5
27
|
import useInteractions from "./useInteractions";
|
6
28
|
import useCustomTheme from "../useCustomTheme";
|
7
29
|
function NumberInput(props) {
|
8
|
-
|
9
|
-
|
10
|
-
|
30
|
+
var onChange = props.onChange, value = props.value, _a = props.size, size = _a === void 0 ? "small" : _a, tooltip = props.tooltip, _b = props.integerOnly, integerOnly = _b === void 0 ? false : _b, _c = props.minValue, minValue = _c === void 0 ? Number.MIN_SAFE_INTEGER : _c, _d = props.maxValue, maxValue = _d === void 0 ? Number.MAX_SAFE_INTEGER : _d, error = props.error, helperText = props.helperText, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor, rest = __rest(props, ["onChange", "value", "size", "tooltip", "integerOnly", "minValue", "maxValue", "error", "helperText", "primaryColor", "secondaryColor"]);
|
31
|
+
var theme = useCustomTheme({ primaryColor: primaryColor, secondaryColor: secondaryColor });
|
32
|
+
var EXCEED_ERROR = "Your value exceeds the exceptable input range";
|
11
33
|
if (maxValue < minValue)
|
12
34
|
throw new Error("Max should be bigger than the `miniValue`!");
|
13
|
-
|
14
|
-
return (_jsx(ThemeProvider, { theme: theme, children: _jsx(Tooltip, { arrow: true, placement: "top", title: tooltip
|
35
|
+
var _e = useInteractions({ maxValue: maxValue, minValue: minValue, value: value, onChange: onChange }), exceedError = _e.exceedError, tooltipOpen = _e.tooltipOpen, handleBlur = _e.handleBlur, handleChange = _e.handleChange, onOpenTooltip = _e.onOpenTooltip, onCloseTooltip = _e.onCloseTooltip;
|
36
|
+
return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(Tooltip, __assign({ arrow: true, placement: "top", title: tooltip !== null && tooltip !== void 0 ? tooltip : "", open: !!tooltip && tooltipOpen }, { children: _jsx(Field, __assign({ size: size, margin: "dense", type: "number", value: value === undefined || value === null ? "" : value, onMouseEnter: onOpenTooltip, onMouseLeave: onCloseTooltip, onBlur: handleBlur, onChange: handleChange, error: error || exceedError, helperText: helperText || (exceedError ? EXCEED_ERROR : "") }, rest)) })) })));
|
15
37
|
}
|
16
38
|
export default NumberInput;
|
@@ -1,11 +1,11 @@
|
|
1
1
|
import { useState, useCallback, useMemo } from "react";
|
2
2
|
function useInteractions(props) {
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
var value = props.value, integerOnly = props.integerOnly, _a = props.minValue, minValue = _a === void 0 ? Number.MIN_SAFE_INTEGER : _a, _b = props.maxValue, maxValue = _b === void 0 ? Number.MAX_SAFE_INTEGER : _b, onChange = props.onChange;
|
4
|
+
var _c = useState(false), tooltipOpen = _c[0], setTooltipOpen = _c[1];
|
5
|
+
var exceedError = useMemo(function () { return !!value && (Number(value) < minValue || Number(value) > maxValue); }, [value, minValue, maxValue]);
|
6
|
+
var handleChange = useCallback(function (event) {
|
7
7
|
event.preventDefault();
|
8
|
-
|
8
|
+
var val = event.currentTarget.value;
|
9
9
|
if (val !== "" && minValue >= 0 && val.includes("-"))
|
10
10
|
return;
|
11
11
|
if (integerOnly) {
|
@@ -16,8 +16,8 @@ function useInteractions(props) {
|
|
16
16
|
return;
|
17
17
|
onChange(val);
|
18
18
|
}, [onChange, minValue, integerOnly]);
|
19
|
-
|
20
|
-
|
19
|
+
var handleBlur = useCallback(function () {
|
20
|
+
var excludedValue = [
|
21
21
|
null,
|
22
22
|
undefined,
|
23
23
|
".",
|
@@ -27,9 +27,9 @@ function useInteractions(props) {
|
|
27
27
|
"null",
|
28
28
|
"undefined"
|
29
29
|
];
|
30
|
-
|
30
|
+
var strVal = String(value).trim();
|
31
31
|
if (strVal !== null && strVal.lastIndexOf(".") === strVal.length - 1) {
|
32
|
-
|
32
|
+
var newValue = strVal.substring(0, String(value).length - 1);
|
33
33
|
onChange(newValue);
|
34
34
|
}
|
35
35
|
else if (excludedValue.includes(strVal)) {
|
@@ -39,19 +39,19 @@ function useInteractions(props) {
|
|
39
39
|
onChange(Number(strVal).toString());
|
40
40
|
}
|
41
41
|
}, [value, onChange]);
|
42
|
-
|
42
|
+
var onOpenTooltip = useCallback(function () {
|
43
43
|
setTooltipOpen(true);
|
44
44
|
}, []);
|
45
|
-
|
45
|
+
var onCloseTooltip = useCallback(function () {
|
46
46
|
setTooltipOpen(false);
|
47
47
|
}, []);
|
48
48
|
return {
|
49
|
-
exceedError,
|
50
|
-
tooltipOpen,
|
51
|
-
handleBlur,
|
52
|
-
handleChange,
|
53
|
-
onOpenTooltip,
|
54
|
-
onCloseTooltip
|
49
|
+
exceedError: exceedError,
|
50
|
+
tooltipOpen: tooltipOpen,
|
51
|
+
handleBlur: handleBlur,
|
52
|
+
handleChange: handleChange,
|
53
|
+
onOpenTooltip: onOpenTooltip,
|
54
|
+
onCloseTooltip: onCloseTooltip
|
55
55
|
};
|
56
56
|
}
|
57
57
|
export default useInteractions;
|
@@ -1,20 +1,42 @@
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
2
|
+
__assign = Object.assign || function(t) {
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
4
|
+
s = arguments[i];
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
6
|
+
t[p] = s[p];
|
7
|
+
}
|
8
|
+
return t;
|
9
|
+
};
|
10
|
+
return __assign.apply(this, arguments);
|
11
|
+
};
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
13
|
+
var t = {};
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
15
|
+
t[p] = s[p];
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
19
|
+
t[p[i]] = s[p[i]];
|
20
|
+
}
|
21
|
+
return t;
|
22
|
+
};
|
1
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
2
24
|
import { useMemo } from "react";
|
3
25
|
import TextField from "@mui/material/TextField";
|
4
26
|
import ThemeProvider from "@mui/material/styles/ThemeProvider";
|
5
27
|
import useCustomTheme from "../useCustomTheme";
|
6
28
|
function ConfirmPassword(props) {
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
if (value
|
29
|
+
var password = props.password, _a = props.helperText, helperText = _a === void 0 ? "Passwords do not match" : _a, value = props.value, _b = props.label, label = _b === void 0 ? "Confirm Password" : _b, _c = props.name, name = _c === void 0 ? "confirmPassword" : _c, _d = props.variant, variant = _d === void 0 ? "outlined" : _d, _e = props.margin, margin = _e === void 0 ? "dense" : _e, disabled = props.disabled, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor, onChange = props.onChange, rest = __rest(props, ["password", "helperText", "value", "label", "name", "variant", "margin", "disabled", "primaryColor", "secondaryColor", "onChange"]);
|
30
|
+
var theme = useCustomTheme({ primaryColor: primaryColor, secondaryColor: secondaryColor });
|
31
|
+
var isMatched = useMemo(function () {
|
32
|
+
if ((value === null || value === void 0 ? void 0 : value.length) > 0) {
|
11
33
|
return password === value;
|
12
34
|
}
|
13
35
|
return true;
|
14
36
|
}, [value, password]);
|
15
|
-
return (_jsx(ThemeProvider, { theme: theme, children: _jsx(TextField, { error: !isMatched, label: label, value: value, variant: variant, margin: margin, disabled: disabled, type: "password", size: "small", helperText: !isMatched && helperText, onChange: event
|
37
|
+
return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(TextField, __assign({ error: !isMatched, label: label, value: value, variant: variant, margin: margin, disabled: disabled, type: "password", size: "small", helperText: !isMatched && helperText, onChange: function (event) {
|
16
38
|
event.preventDefault();
|
17
39
|
onChange(event.target.value);
|
18
|
-
}, fullWidth: true, required: true,
|
40
|
+
}, fullWidth: true, required: true }, rest)) })));
|
19
41
|
}
|
20
42
|
export default ConfirmPassword;
|
@@ -1,3 +1,25 @@
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
2
|
+
__assign = Object.assign || function(t) {
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
4
|
+
s = arguments[i];
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
6
|
+
t[p] = s[p];
|
7
|
+
}
|
8
|
+
return t;
|
9
|
+
};
|
10
|
+
return __assign.apply(this, arguments);
|
11
|
+
};
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
13
|
+
var t = {};
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
15
|
+
t[p] = s[p];
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
19
|
+
t[p[i]] = s[p[i]];
|
20
|
+
}
|
21
|
+
return t;
|
22
|
+
};
|
1
23
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
2
24
|
import { useMemo } from "react";
|
3
25
|
import TextField from "@mui/material/TextField";
|
@@ -5,11 +27,11 @@ import Typography from "@mui/material/Typography";
|
|
5
27
|
import ThemeProvider from "@mui/material/styles/ThemeProvider";
|
6
28
|
import useCustomTheme from "../useCustomTheme";
|
7
29
|
export function onValidatePassword(password) {
|
8
|
-
|
30
|
+
var reg = /^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~])([!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~a-zA-z0-9]{8,})$/;
|
9
31
|
return reg.test(password);
|
10
32
|
}
|
11
33
|
function Password(props) {
|
12
|
-
|
34
|
+
var _a = props.strategies, strategies = _a === void 0 ? {
|
13
35
|
uppercaseLetter: { label: "1 Uppercase Letter", regex: /[A-Z]+/ },
|
14
36
|
lowercaseLetter: { label: "1 Lowercase Letter", regex: /[a-z]+/ },
|
15
37
|
specialCharacter: {
|
@@ -18,17 +40,17 @@ function Password(props) {
|
|
18
40
|
},
|
19
41
|
number: { label: "1 Number", regex: /\d+/ },
|
20
42
|
minimum8: { label: "Minimum 8 characters", regex: /.{8,}/ }
|
21
|
-
}, successColor = "green", value, error, primaryColor, secondaryColor, onValidate, onChange,
|
22
|
-
|
23
|
-
|
24
|
-
if (value
|
43
|
+
} : _a, _b = props.successColor, successColor = _b === void 0 ? "green" : _b, value = props.value, error = props.error, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor, onValidate = props.onValidate, onChange = props.onChange, rest = __rest(props, ["strategies", "successColor", "value", "error", "primaryColor", "secondaryColor", "onValidate", "onChange"]);
|
44
|
+
var theme = useCustomTheme({ primaryColor: primaryColor, secondaryColor: secondaryColor });
|
45
|
+
var isValidPassword = useMemo(function () {
|
46
|
+
if ((value === null || value === void 0 ? void 0 : value.length) > 0) {
|
25
47
|
return onValidate ? onValidate(value) : onValidatePassword(value);
|
26
48
|
}
|
27
49
|
return true;
|
28
50
|
}, [value, onValidate, onValidatePassword]);
|
29
|
-
|
30
|
-
|
31
|
-
|
51
|
+
var helperTextColor = useMemo(function () {
|
52
|
+
var textColors = Object.keys(strategies).reduce(function (temp, key) {
|
53
|
+
var regex = strategies[key].regex;
|
32
54
|
if (value === "") {
|
33
55
|
temp[key] = undefined;
|
34
56
|
}
|
@@ -42,15 +64,15 @@ function Password(props) {
|
|
42
64
|
}, {});
|
43
65
|
return textColors;
|
44
66
|
}, [value, strategies]);
|
45
|
-
|
46
|
-
return (_jsx(_Fragment, { children: Object.keys(strategies).map(key
|
47
|
-
|
48
|
-
return (_jsx(Typography, { component: "li", variant: "caption", style: { color: helperTextColor[key] }, children: label }, key));
|
67
|
+
var helperText = useMemo(function () {
|
68
|
+
return (_jsx(_Fragment, { children: Object.keys(strategies).map(function (key) {
|
69
|
+
var label = strategies[key].label;
|
70
|
+
return (_jsx(Typography, __assign({ component: "li", variant: "caption", style: { color: helperTextColor[key] } }, { children: label }), key));
|
49
71
|
}) }));
|
50
72
|
}, [helperTextColor, strategies]);
|
51
|
-
return (_jsx(ThemeProvider, { theme: theme, children: _jsx(TextField, { error: !isValidPassword || error, helperText: helperText, type: "password", label: "Password", size: "small", margin: "dense", value: value, onChange: event
|
73
|
+
return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(TextField, __assign({ error: !isValidPassword || error, helperText: helperText, type: "password", label: "Password", size: "small", margin: "dense", value: value, onChange: function (event) {
|
52
74
|
event.preventDefault();
|
53
75
|
onChange(event.target.value);
|
54
|
-
}, fullWidth: true, required: true,
|
76
|
+
}, fullWidth: true, required: true }, rest)) })));
|
55
77
|
}
|
56
78
|
export default Password;
|
@@ -1,3 +1,25 @@
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
2
|
+
__assign = Object.assign || function(t) {
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
4
|
+
s = arguments[i];
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
6
|
+
t[p] = s[p];
|
7
|
+
}
|
8
|
+
return t;
|
9
|
+
};
|
10
|
+
return __assign.apply(this, arguments);
|
11
|
+
};
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
13
|
+
var t = {};
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
15
|
+
t[p] = s[p];
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
19
|
+
t[p[i]] = s[p[i]];
|
20
|
+
}
|
21
|
+
return t;
|
22
|
+
};
|
1
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
2
24
|
import { useRifm } from "rifm";
|
3
25
|
import Typography from "@mui/material/Typography";
|
@@ -7,38 +29,38 @@ import ThemeProvider from "@mui/material/styles/ThemeProvider";
|
|
7
29
|
import useInteractions from "./useInteractions";
|
8
30
|
import useCustomTheme from "../useCustomTheme";
|
9
31
|
export function onValidatePhone(str) {
|
10
|
-
|
32
|
+
var reg = /^\(\d{3}\)\s?\d{3}\s?-\s?\d{4}$/g;
|
11
33
|
return reg.test(str);
|
12
34
|
}
|
13
35
|
export function phoneFormat(str) {
|
14
|
-
|
15
|
-
|
16
|
-
return chars.reduce((prev, curr, index)
|
36
|
+
var digits = (str.match(/\d+/g) || []).join("");
|
37
|
+
var chars = digits.split("");
|
38
|
+
return chars.reduce(function (prev, curr, index) {
|
17
39
|
if (index === 3) {
|
18
|
-
return
|
40
|
+
return "".concat(prev, ") ").concat(curr);
|
19
41
|
}
|
20
42
|
else if (index === 6) {
|
21
|
-
return
|
43
|
+
return "".concat(prev, "-").concat(curr);
|
22
44
|
}
|
23
45
|
else {
|
24
|
-
return
|
46
|
+
return "".concat(prev).concat(curr);
|
25
47
|
}
|
26
|
-
},
|
48
|
+
}, "(");
|
27
49
|
}
|
28
50
|
function PhoneInput(props) {
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
51
|
+
var value = props.value, error = props.error, endAdornment = props.endAdornment, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor, _a = props.helperText, helperText = _a === void 0 ? "Please enter a valid phone number" : _a, onChange = props.onChange, onValidate = props.onValidate, rest = __rest(props, ["value", "error", "endAdornment", "primaryColor", "secondaryColor", "helperText", "onChange", "onValidate"]);
|
52
|
+
var theme = useCustomTheme({ primaryColor: primaryColor, secondaryColor: secondaryColor });
|
53
|
+
var _b = useInteractions({ value: value }), valLength = _b.valLength, addMask = _b.addMask;
|
54
|
+
var rifm = useRifm({
|
33
55
|
mask: true,
|
34
56
|
value: String(value),
|
35
|
-
onChange,
|
57
|
+
onChange: onChange,
|
36
58
|
replace: addMask,
|
37
59
|
format: phoneFormat
|
38
60
|
});
|
39
|
-
return (_jsx(ThemeProvider, { theme: theme, children: _jsx(TextField, { value: rifm.value, InputProps: {
|
40
|
-
startAdornment: (_jsx(InputAdornment, { position: "start", children: _jsx(Typography, { sx: { fontSize: 16, fontWeight: 500 }, children: "+1" }) })),
|
41
|
-
endAdornment
|
61
|
+
return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(TextField, __assign({ value: rifm.value, InputProps: {
|
62
|
+
startAdornment: (_jsx(InputAdornment, __assign({ position: "start" }, { children: _jsx(Typography, __assign({ sx: { fontSize: 16, fontWeight: 500 } }, { children: "+1" })) }))),
|
63
|
+
endAdornment: endAdornment
|
42
64
|
}, onChange: rifm.onChange, helperText: valLength > 0 &&
|
43
65
|
(onValidate ? !onValidate(rifm.value) : !onValidatePhone(rifm.value))
|
44
66
|
? helperText
|
@@ -46,6 +68,6 @@ function PhoneInput(props) {
|
|
46
68
|
(valLength > 0 &&
|
47
69
|
(onValidate
|
48
70
|
? !onValidate(rifm.value)
|
49
|
-
: !onValidatePhone(rifm.value))),
|
71
|
+
: !onValidatePhone(rifm.value))) }, rest)) })));
|
50
72
|
}
|
51
73
|
export default PhoneInput;
|
@@ -1,17 +1,17 @@
|
|
1
1
|
import { useCallback, useMemo } from "react";
|
2
2
|
function useInteractions(props) {
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
return
|
3
|
+
var value = props.value;
|
4
|
+
var addMask = useCallback(function (str) {
|
5
|
+
var digits = (str.match(/\d+/g) || []).join("");
|
6
|
+
var areaCode = digits.slice(0, 3).padEnd(3, "_");
|
7
|
+
var prefixCode = digits.slice(3, 6).padEnd(3, "_");
|
8
|
+
var subscriber = digits.slice(6, 10).padEnd(4, "_");
|
9
|
+
return "(".concat(areaCode, ") ").concat(prefixCode, "-").concat(subscriber);
|
10
10
|
}, []);
|
11
|
-
|
12
|
-
|
11
|
+
var valLength = useMemo(function () {
|
12
|
+
var digitsArr = String(value).match(/\d/g);
|
13
13
|
return digitsArr ? digitsArr.length : 0;
|
14
14
|
}, [value]);
|
15
|
-
return { valLength, addMask };
|
15
|
+
return { valLength: valLength, addMask: addMask };
|
16
16
|
}
|
17
17
|
export default useInteractions;
|