labsense-ui-kit 1.4.23 → 1.4.25
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/Dropdown/ButtonDropdown.d.ts +2 -0
- package/dist/index.js +51 -12
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +51 -12
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
|
@@ -11,6 +11,8 @@ interface ButtonDropdownProps {
|
|
|
11
11
|
variant?: 'primary' | 'outline-primary' | 'secondary';
|
|
12
12
|
placeholder?: string;
|
|
13
13
|
disabled?: boolean;
|
|
14
|
+
width?: string;
|
|
15
|
+
dropDownPosition?: 'left' | 'center' | 'right';
|
|
14
16
|
}
|
|
15
17
|
declare const ButtonDropdown: React.FC<ButtonDropdownProps>;
|
|
16
18
|
export default ButtonDropdown;
|
package/dist/index.js
CHANGED
|
@@ -9932,17 +9932,55 @@ var ButtonDropdown = function ButtonDropdown(_ref) {
|
|
|
9932
9932
|
_ref$placeholder = _ref.placeholder,
|
|
9933
9933
|
placeholder = _ref$placeholder === void 0 ? 'Select Option' : _ref$placeholder,
|
|
9934
9934
|
_ref$disabled = _ref.disabled,
|
|
9935
|
-
disabled = _ref$disabled === void 0 ? false : _ref$disabled
|
|
9935
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
9936
|
+
width = _ref.width,
|
|
9937
|
+
dropDownPosition = _ref.dropDownPosition;
|
|
9936
9938
|
var _useState = React.useState(false),
|
|
9937
9939
|
isOpen = _useState[0],
|
|
9938
9940
|
setIsOpen = _useState[1];
|
|
9939
|
-
var _useState2 = React.useState(
|
|
9940
|
-
|
|
9941
|
-
|
|
9941
|
+
var _useState2 = React.useState(false),
|
|
9942
|
+
dropUp = _useState2[0],
|
|
9943
|
+
setDropUp = _useState2[1];
|
|
9944
|
+
var _useState3 = React.useState('left'),
|
|
9945
|
+
dropdownPosition = _useState3[0],
|
|
9946
|
+
setDropdownPosition = _useState3[1];
|
|
9947
|
+
var _useState4 = React.useState(initialValue || ''),
|
|
9948
|
+
selected = _useState4[0],
|
|
9949
|
+
setSelected = _useState4[1];
|
|
9942
9950
|
var ref = React.useRef(null);
|
|
9943
9951
|
useClickOutside(ref, function () {
|
|
9944
9952
|
return setIsOpen(false);
|
|
9945
9953
|
});
|
|
9954
|
+
var toggleDropdown = function toggleDropdown() {
|
|
9955
|
+
if (ref.current) {
|
|
9956
|
+
var rect = ref.current.getBoundingClientRect();
|
|
9957
|
+
var windowHeight = window.innerHeight;
|
|
9958
|
+
var windowWidth = window.innerWidth;
|
|
9959
|
+
var spaceBelow = windowHeight - rect.bottom;
|
|
9960
|
+
var spaceAbove = rect.top;
|
|
9961
|
+
var dropdownHeight = 95;
|
|
9962
|
+
if (spaceBelow < dropdownHeight && spaceAbove > dropdownHeight) {
|
|
9963
|
+
setDropUp(true);
|
|
9964
|
+
} else {
|
|
9965
|
+
setDropUp(false);
|
|
9966
|
+
}
|
|
9967
|
+
if (!dropDownPosition) {
|
|
9968
|
+
var dropdownWidth = rect.width;
|
|
9969
|
+
var spaceRight = windowWidth - rect.left;
|
|
9970
|
+
var spaceLeft = rect.right;
|
|
9971
|
+
if (spaceRight < dropdownWidth && spaceLeft > dropdownWidth) {
|
|
9972
|
+
setDropdownPosition('right');
|
|
9973
|
+
} else if (rect.left < dropdownWidth / 2 && windowWidth - rect.right < dropdownWidth / 2) {
|
|
9974
|
+
setDropdownPosition('center');
|
|
9975
|
+
} else {
|
|
9976
|
+
setDropdownPosition('left');
|
|
9977
|
+
}
|
|
9978
|
+
}
|
|
9979
|
+
}
|
|
9980
|
+
setIsOpen(function (prev) {
|
|
9981
|
+
return !prev;
|
|
9982
|
+
});
|
|
9983
|
+
};
|
|
9946
9984
|
var handleSelect = function handleSelect(value, onClick) {
|
|
9947
9985
|
setSelected(value);
|
|
9948
9986
|
onClick();
|
|
@@ -9953,21 +9991,22 @@ var ButtonDropdown = function ButtonDropdown(_ref) {
|
|
|
9953
9991
|
})) === null || _options$find === void 0 ? void 0 : _options$find.label) || placeholder;
|
|
9954
9992
|
return React__default.createElement(Container, {
|
|
9955
9993
|
"$position": 'relative',
|
|
9956
|
-
ref: ref
|
|
9994
|
+
ref: ref,
|
|
9995
|
+
"$width": width
|
|
9957
9996
|
}, React__default.createElement(ButtonComponent, {
|
|
9958
9997
|
text: selectedLabel,
|
|
9959
9998
|
icon: isOpen ? 'UpArrow' : 'DownArrow',
|
|
9960
9999
|
size: size,
|
|
9961
10000
|
variant: variant,
|
|
9962
10001
|
disabled: disabled,
|
|
9963
|
-
onClick:
|
|
9964
|
-
|
|
9965
|
-
return !prev;
|
|
9966
|
-
});
|
|
9967
|
-
}
|
|
10002
|
+
onClick: toggleDropdown,
|
|
10003
|
+
buttonWidth: width
|
|
9968
10004
|
}), isOpen && React__default.createElement(DropdownMenu$1, {
|
|
9969
|
-
"$
|
|
9970
|
-
"$
|
|
10005
|
+
"$width": width,
|
|
10006
|
+
"$top": dropUp ? 'auto' : '126%',
|
|
10007
|
+
"$bottom": dropUp ? '126%' : 'auto',
|
|
10008
|
+
"$optionsAvailable": options.length > 0,
|
|
10009
|
+
"$dropDownPosition": dropDownPosition || dropdownPosition
|
|
9971
10010
|
}, options.map(function (option) {
|
|
9972
10011
|
return React__default.createElement(Options, {
|
|
9973
10012
|
key: option.value,
|