@trackunit/react-form-components 0.0.354 → 0.0.358
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/index.cjs.js
CHANGED
|
@@ -1020,6 +1020,8 @@ const validatePhoneNumber = (phoneNumber) => {
|
|
|
1020
1020
|
asYouType.input(phoneNumber);
|
|
1021
1021
|
const countryCode = asYouType.getCallingCode();
|
|
1022
1022
|
const national = asYouType.getNationalNumber();
|
|
1023
|
+
const safePhoneNumber = getPhoneNumberWithPlus(phoneNumber === null || phoneNumber === void 0 ? void 0 : phoneNumber.trim());
|
|
1024
|
+
const number = parsePhoneNumberFromString__default["default"](safePhoneNumber);
|
|
1023
1025
|
if (phoneNumber && parsePhoneNumberFromString.isValidPhoneNumber(phoneNumber)) {
|
|
1024
1026
|
return undefined;
|
|
1025
1027
|
}
|
|
@@ -1027,18 +1029,15 @@ const validatePhoneNumber = (phoneNumber) => {
|
|
|
1027
1029
|
return "REQUIRED_COUNTRY";
|
|
1028
1030
|
}
|
|
1029
1031
|
if (phoneNumber &&
|
|
1030
|
-
(checkIfPhoneNumberHasPlus(phoneNumber)
|
|
1032
|
+
(checkIfPhoneNumberHasPlus(phoneNumber)
|
|
1033
|
+
? isNaN(+phoneNumber.slice(1, phoneNumber.length))
|
|
1034
|
+
: isNaN(+phoneNumber) || !number)) {
|
|
1031
1035
|
return "NOT_A_NUMBER";
|
|
1032
1036
|
}
|
|
1033
|
-
const safePhoneNumber = getPhoneNumberWithPlus(phoneNumber === null || phoneNumber === void 0 ? void 0 : phoneNumber.trim());
|
|
1034
1037
|
if (safePhoneNumber.length <= 5) {
|
|
1035
1038
|
//needs to be handled manually, parsePhoneNumberFromString can't parse it
|
|
1036
1039
|
return "TOO_SHORT";
|
|
1037
1040
|
}
|
|
1038
|
-
const number = parsePhoneNumberFromString__default["default"](safePhoneNumber);
|
|
1039
|
-
if (!number) {
|
|
1040
|
-
return "NOT_A_NUMBER";
|
|
1041
|
-
}
|
|
1042
1041
|
return "INVALID_NUMBER";
|
|
1043
1042
|
};
|
|
1044
1043
|
/**
|
|
@@ -1361,7 +1360,7 @@ const TextInput = React.forwardRef((props, ref) => (jsxRuntime.jsx(BaseInput, Ob
|
|
|
1361
1360
|
|
|
1362
1361
|
const cvaSearch = cssClassVarianceUtilities.cvaMerge([
|
|
1363
1362
|
"shadow-none",
|
|
1364
|
-
"component-search-
|
|
1363
|
+
"component-search-border",
|
|
1365
1364
|
"component-search-background",
|
|
1366
1365
|
"hover:component-search-background",
|
|
1367
1366
|
"hover:component-search-focus-hover",
|
|
@@ -1371,7 +1370,7 @@ const cvaSearch = cssClassVarianceUtilities.cvaMerge([
|
|
|
1371
1370
|
"duration-300",
|
|
1372
1371
|
], {
|
|
1373
1372
|
variants: {
|
|
1374
|
-
border: { true: ["!component-search-
|
|
1373
|
+
border: { true: ["!component-search-borderless"], false: "" },
|
|
1375
1374
|
widenOnFocus: {
|
|
1376
1375
|
true: [
|
|
1377
1376
|
"component-search-width",
|
|
@@ -1392,8 +1391,8 @@ const cvaSearch = cssClassVarianceUtilities.cvaMerge([
|
|
|
1392
1391
|
* @returns {JSX.Element} Search component
|
|
1393
1392
|
*/
|
|
1394
1393
|
const Search = React.forwardRef((_a, ref) => {
|
|
1395
|
-
var { className, placeholder = "Search", value, widenInputOnFocus,
|
|
1396
|
-
return (jsxRuntime.jsx(TextInput, Object.assign({}, rest, { autoComplete: autoComplete, className: cvaSearch({ className, border:
|
|
1394
|
+
var { className, placeholder = "Search", value, widenInputOnFocus, hideBorderWhenNotInFocus = false, disabled, onKeyUp, onChange, onFocus, onBlur, name, onClear, dataTestId, autoComplete = "on" } = _a, rest = __rest(_a, ["className", "placeholder", "value", "widenInputOnFocus", "hideBorderWhenNotInFocus", "disabled", "onKeyUp", "onChange", "onFocus", "onBlur", "name", "onClear", "dataTestId", "autoComplete"]);
|
|
1395
|
+
return (jsxRuntime.jsx(TextInput, Object.assign({}, rest, { autoComplete: autoComplete, className: cvaSearch({ className, border: hideBorderWhenNotInFocus, widenOnFocus: widenInputOnFocus }), dataTestId: dataTestId, disabled: disabled, name: name, onBlur: onBlur, onChange: onChange, onFocus: onFocus, onKeyUp: onKeyUp, placeholder: placeholder, prefix: jsxRuntime.jsx(reactComponents.Icon, { name: "MagnifyingGlass", size: "medium" }), ref: ref, suffix: onClear ? (jsxRuntime.jsx("button", { className: "flex", "data-testid": dataTestId && `${dataTestId}_suffix_component`, onClick: () => {
|
|
1397
1396
|
onClear();
|
|
1398
1397
|
}, children: jsxRuntime.jsx(reactComponents.Icon, { name: "XMark", size: "small" }) })) : undefined, value: value })));
|
|
1399
1398
|
});
|
|
@@ -1824,7 +1823,7 @@ CreatableSelect.displayName = "CreatableSelect";
|
|
|
1824
1823
|
*/
|
|
1825
1824
|
const Select = (props) => {
|
|
1826
1825
|
const { className } = props, propsNoClassName = __rest(props, ["className"]);
|
|
1827
|
-
const { id, dataTestId = "select", prefix, async, maxMenuHeight = 200, label, hasError, disabled, isMulti, value, options, onChange, isLoading, classNamePrefix = dataTestId !== null && dataTestId !== void 0 ? dataTestId : "select", onMenuScrollToBottom, filterOption, onInputChange, isSearchable, isClearable = false, readOnly, openMenuOnClick = !disabled, openMenuOnFocus = !disabled, } = props;
|
|
1826
|
+
const { id, dataTestId = "select", prefix, async, maxMenuHeight = 200, label, hasError, disabled, isMulti, value, options, onChange, isLoading, classNamePrefix = dataTestId !== null && dataTestId !== void 0 ? dataTestId : "select", onMenuScrollToBottom, filterOption, onInputChange, isSearchable, isClearable = false, readOnly, openMenuOnClick = !disabled, openMenuOnFocus = !disabled, hideSelectedOptions = false, } = props;
|
|
1828
1827
|
const { refContainer, refPrefix, customStyles, menuIsOpen, customComponents, menuPlacement, openMenuHandler, closeMenuHandler, orderedOptions, } = useSelect(props);
|
|
1829
1828
|
const selectProps = {
|
|
1830
1829
|
value,
|
|
@@ -1852,8 +1851,9 @@ const Select = (props) => {
|
|
|
1852
1851
|
id,
|
|
1853
1852
|
onMenuScrollToBottom,
|
|
1854
1853
|
onInputChange,
|
|
1854
|
+
hideSelectedOptions,
|
|
1855
1855
|
};
|
|
1856
|
-
return (jsxRuntime.jsxs("div", { className: cvaSelect({ invalid: hasError, disabled: disabled || readOnly, className }), "data-testid": dataTestId, ref: refContainer, children: [prefix !== undefined && (jsxRuntime.jsx("div", { className: cvaSelectPrefix(), "data-testid": dataTestId && `${dataTestId}-prefix`, ref: refPrefix, children: prefix })), async ? (jsxRuntime.jsx(ReactAsyncSelect__default["default"], Object.assign({}, propsNoClassName, selectProps, async, { onMenuClose: closeMenuHandler, onMenuOpen: openMenuHandler }))) : (jsxRuntime.jsx(ReactSelect__default["default"], Object.assign({}, propsNoClassName, selectProps, {
|
|
1856
|
+
return (jsxRuntime.jsxs("div", { className: cvaSelect({ invalid: hasError, disabled: disabled || readOnly, className }), "data-testid": dataTestId, ref: refContainer, children: [prefix !== undefined && (jsxRuntime.jsx("div", { className: cvaSelectPrefix(), "data-testid": dataTestId && `${dataTestId}-prefix`, ref: refPrefix, children: prefix })), async ? (jsxRuntime.jsx(ReactAsyncSelect__default["default"], Object.assign({}, propsNoClassName, selectProps, async, { onMenuClose: closeMenuHandler, onMenuOpen: openMenuHandler }))) : (jsxRuntime.jsx(ReactSelect__default["default"], Object.assign({}, propsNoClassName, selectProps, { isMulti: isMulti, onMenuClose: closeMenuHandler, onMenuOpen: openMenuHandler, options: filterOption ? orderedOptions : options })))] }));
|
|
1857
1857
|
};
|
|
1858
1858
|
Select.displayName = "Select";
|
|
1859
1859
|
|
package/index.esm.js
CHANGED
|
@@ -990,6 +990,8 @@ const validatePhoneNumber = (phoneNumber) => {
|
|
|
990
990
|
asYouType.input(phoneNumber);
|
|
991
991
|
const countryCode = asYouType.getCallingCode();
|
|
992
992
|
const national = asYouType.getNationalNumber();
|
|
993
|
+
const safePhoneNumber = getPhoneNumberWithPlus(phoneNumber === null || phoneNumber === void 0 ? void 0 : phoneNumber.trim());
|
|
994
|
+
const number = parsePhoneNumberFromString(safePhoneNumber);
|
|
993
995
|
if (phoneNumber && isValidPhoneNumber(phoneNumber)) {
|
|
994
996
|
return undefined;
|
|
995
997
|
}
|
|
@@ -997,18 +999,15 @@ const validatePhoneNumber = (phoneNumber) => {
|
|
|
997
999
|
return "REQUIRED_COUNTRY";
|
|
998
1000
|
}
|
|
999
1001
|
if (phoneNumber &&
|
|
1000
|
-
(checkIfPhoneNumberHasPlus(phoneNumber)
|
|
1002
|
+
(checkIfPhoneNumberHasPlus(phoneNumber)
|
|
1003
|
+
? isNaN(+phoneNumber.slice(1, phoneNumber.length))
|
|
1004
|
+
: isNaN(+phoneNumber) || !number)) {
|
|
1001
1005
|
return "NOT_A_NUMBER";
|
|
1002
1006
|
}
|
|
1003
|
-
const safePhoneNumber = getPhoneNumberWithPlus(phoneNumber === null || phoneNumber === void 0 ? void 0 : phoneNumber.trim());
|
|
1004
1007
|
if (safePhoneNumber.length <= 5) {
|
|
1005
1008
|
//needs to be handled manually, parsePhoneNumberFromString can't parse it
|
|
1006
1009
|
return "TOO_SHORT";
|
|
1007
1010
|
}
|
|
1008
|
-
const number = parsePhoneNumberFromString(safePhoneNumber);
|
|
1009
|
-
if (!number) {
|
|
1010
|
-
return "NOT_A_NUMBER";
|
|
1011
|
-
}
|
|
1012
1011
|
return "INVALID_NUMBER";
|
|
1013
1012
|
};
|
|
1014
1013
|
/**
|
|
@@ -1331,7 +1330,7 @@ const TextInput = forwardRef((props, ref) => (jsx(BaseInput, Object.assign({ ref
|
|
|
1331
1330
|
|
|
1332
1331
|
const cvaSearch = cvaMerge([
|
|
1333
1332
|
"shadow-none",
|
|
1334
|
-
"component-search-
|
|
1333
|
+
"component-search-border",
|
|
1335
1334
|
"component-search-background",
|
|
1336
1335
|
"hover:component-search-background",
|
|
1337
1336
|
"hover:component-search-focus-hover",
|
|
@@ -1341,7 +1340,7 @@ const cvaSearch = cvaMerge([
|
|
|
1341
1340
|
"duration-300",
|
|
1342
1341
|
], {
|
|
1343
1342
|
variants: {
|
|
1344
|
-
border: { true: ["!component-search-
|
|
1343
|
+
border: { true: ["!component-search-borderless"], false: "" },
|
|
1345
1344
|
widenOnFocus: {
|
|
1346
1345
|
true: [
|
|
1347
1346
|
"component-search-width",
|
|
@@ -1362,8 +1361,8 @@ const cvaSearch = cvaMerge([
|
|
|
1362
1361
|
* @returns {JSX.Element} Search component
|
|
1363
1362
|
*/
|
|
1364
1363
|
const Search = forwardRef((_a, ref) => {
|
|
1365
|
-
var { className, placeholder = "Search", value, widenInputOnFocus,
|
|
1366
|
-
return (jsx(TextInput, Object.assign({}, rest, { autoComplete: autoComplete, className: cvaSearch({ className, border:
|
|
1364
|
+
var { className, placeholder = "Search", value, widenInputOnFocus, hideBorderWhenNotInFocus = false, disabled, onKeyUp, onChange, onFocus, onBlur, name, onClear, dataTestId, autoComplete = "on" } = _a, rest = __rest(_a, ["className", "placeholder", "value", "widenInputOnFocus", "hideBorderWhenNotInFocus", "disabled", "onKeyUp", "onChange", "onFocus", "onBlur", "name", "onClear", "dataTestId", "autoComplete"]);
|
|
1365
|
+
return (jsx(TextInput, Object.assign({}, rest, { autoComplete: autoComplete, className: cvaSearch({ className, border: hideBorderWhenNotInFocus, widenOnFocus: widenInputOnFocus }), dataTestId: dataTestId, disabled: disabled, name: name, onBlur: onBlur, onChange: onChange, onFocus: onFocus, onKeyUp: onKeyUp, placeholder: placeholder, prefix: jsx(Icon, { name: "MagnifyingGlass", size: "medium" }), ref: ref, suffix: onClear ? (jsx("button", { className: "flex", "data-testid": dataTestId && `${dataTestId}_suffix_component`, onClick: () => {
|
|
1367
1366
|
onClear();
|
|
1368
1367
|
}, children: jsx(Icon, { name: "XMark", size: "small" }) })) : undefined, value: value })));
|
|
1369
1368
|
});
|
|
@@ -1794,7 +1793,7 @@ CreatableSelect.displayName = "CreatableSelect";
|
|
|
1794
1793
|
*/
|
|
1795
1794
|
const Select = (props) => {
|
|
1796
1795
|
const { className } = props, propsNoClassName = __rest(props, ["className"]);
|
|
1797
|
-
const { id, dataTestId = "select", prefix, async, maxMenuHeight = 200, label, hasError, disabled, isMulti, value, options, onChange, isLoading, classNamePrefix = dataTestId !== null && dataTestId !== void 0 ? dataTestId : "select", onMenuScrollToBottom, filterOption, onInputChange, isSearchable, isClearable = false, readOnly, openMenuOnClick = !disabled, openMenuOnFocus = !disabled, } = props;
|
|
1796
|
+
const { id, dataTestId = "select", prefix, async, maxMenuHeight = 200, label, hasError, disabled, isMulti, value, options, onChange, isLoading, classNamePrefix = dataTestId !== null && dataTestId !== void 0 ? dataTestId : "select", onMenuScrollToBottom, filterOption, onInputChange, isSearchable, isClearable = false, readOnly, openMenuOnClick = !disabled, openMenuOnFocus = !disabled, hideSelectedOptions = false, } = props;
|
|
1798
1797
|
const { refContainer, refPrefix, customStyles, menuIsOpen, customComponents, menuPlacement, openMenuHandler, closeMenuHandler, orderedOptions, } = useSelect(props);
|
|
1799
1798
|
const selectProps = {
|
|
1800
1799
|
value,
|
|
@@ -1822,8 +1821,9 @@ const Select = (props) => {
|
|
|
1822
1821
|
id,
|
|
1823
1822
|
onMenuScrollToBottom,
|
|
1824
1823
|
onInputChange,
|
|
1824
|
+
hideSelectedOptions,
|
|
1825
1825
|
};
|
|
1826
|
-
return (jsxs("div", { className: cvaSelect({ invalid: hasError, disabled: disabled || readOnly, className }), "data-testid": dataTestId, ref: refContainer, children: [prefix !== undefined && (jsx("div", { className: cvaSelectPrefix(), "data-testid": dataTestId && `${dataTestId}-prefix`, ref: refPrefix, children: prefix })), async ? (jsx(ReactAsyncSelect, Object.assign({}, propsNoClassName, selectProps, async, { onMenuClose: closeMenuHandler, onMenuOpen: openMenuHandler }))) : (jsx(ReactSelect, Object.assign({}, propsNoClassName, selectProps, {
|
|
1826
|
+
return (jsxs("div", { className: cvaSelect({ invalid: hasError, disabled: disabled || readOnly, className }), "data-testid": dataTestId, ref: refContainer, children: [prefix !== undefined && (jsx("div", { className: cvaSelectPrefix(), "data-testid": dataTestId && `${dataTestId}-prefix`, ref: refPrefix, children: prefix })), async ? (jsx(ReactAsyncSelect, Object.assign({}, propsNoClassName, selectProps, async, { onMenuClose: closeMenuHandler, onMenuOpen: openMenuHandler }))) : (jsx(ReactSelect, Object.assign({}, propsNoClassName, selectProps, { isMulti: isMulti, onMenuClose: closeMenuHandler, onMenuOpen: openMenuHandler, options: filterOption ? orderedOptions : options })))] }));
|
|
1827
1827
|
};
|
|
1828
1828
|
Select.displayName = "Select";
|
|
1829
1829
|
|
package/package.json
CHANGED
|
@@ -18,7 +18,7 @@ export interface SearchProps extends CommonProps, TextInputProps {
|
|
|
18
18
|
/**
|
|
19
19
|
* Whether the border for the search box should be displayed while the search box is not in focus.
|
|
20
20
|
*/
|
|
21
|
-
|
|
21
|
+
hideBorderWhenNotInFocus?: boolean;
|
|
22
22
|
/**
|
|
23
23
|
* Value rendered in the search box.
|
|
24
24
|
*/
|
|
@@ -34,6 +34,7 @@ export declare const CreatableSelect: {
|
|
|
34
34
|
isClearable?: boolean | undefined;
|
|
35
35
|
isSearchable?: boolean | undefined;
|
|
36
36
|
isAsync?: IsAsync | undefined;
|
|
37
|
+
hideSelectedOptions?: boolean | undefined;
|
|
37
38
|
} & CreatableSelectProps): JSX.Element;
|
|
38
39
|
displayName: string;
|
|
39
40
|
};
|
|
@@ -113,6 +113,13 @@ export type SelectProps<Option, IsAsync extends boolean, IsMulti extends boolean
|
|
|
113
113
|
* @memberof SelectProps
|
|
114
114
|
*/
|
|
115
115
|
isAsync?: IsAsync;
|
|
116
|
+
/**
|
|
117
|
+
* A handler for menu close event
|
|
118
|
+
* use if you want to trigger custom logic
|
|
119
|
+
*
|
|
120
|
+
* @memberof SelectProps
|
|
121
|
+
*/
|
|
122
|
+
hideSelectedOptions?: boolean;
|
|
116
123
|
};
|
|
117
124
|
interface IUseSelect<Option, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>> {
|
|
118
125
|
customStyles: StylesConfig<Option, IsMulti, Group>;
|