@pixum/combobox 5.0.2 → 5.0.3-alpha.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/CHANGELOG.md +722 -0
- package/lib/ComboBox.d.ts +5 -11
- package/lib/ComboBox.js +76 -99
- package/lib/ComboBox.js.map +1 -1
- package/lib/ComboboxOptions/Options.d.ts +12 -11
- package/lib/ComboboxOptions/Options.js +15 -18
- package/lib/ComboboxOptions/Options.js.map +1 -1
- package/lib/ComboboxOptions/OptionsGroup.d.ts +13 -12
- package/lib/ComboboxOptions/OptionsGroup.js +7 -7
- package/lib/ComboboxOptions/OptionsGroup.js.map +1 -1
- package/lib/ComboboxOptions/index.d.ts +4 -4
- package/lib/ComboboxOptions/index.js +21 -18
- package/lib/ComboboxOptions/index.js.map +1 -1
- package/lib/helper/calculateListMaxHeight.d.ts +1 -1
- package/lib/helper/calculateListMaxHeight.js +7 -7
- package/lib/helper/scrollOptionToViewport.d.ts +1 -1
- package/lib/helper/scrollOptionToViewport.js +17 -18
- package/lib/helper/scrollOptionToViewport.js.map +1 -1
- package/lib/helper/useIsDesktopScreenWidth.d.ts +2 -2
- package/lib/helper/useIsDesktopScreenWidth.js +19 -19
- package/lib/helper/useIsDesktopScreenWidth.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/styles.css +1 -1
- package/lib/types.d.ts +34 -70
- package/lib/types.js +1 -1
- package/package.json +9 -11
- package/lib/hooks/index.d.ts +0 -1
- package/lib/hooks/index.js +0 -2
- package/lib/hooks/index.js.map +0 -1
- package/lib/hooks/useIsDesktopScreenWidth.d.ts +0 -1
- package/lib/hooks/useIsDesktopScreenWidth.js +0 -36
- package/lib/hooks/useIsDesktopScreenWidth.js.map +0 -1
- package/lib/partials/ComboBoxOptions.d.ts +0 -10
- package/lib/partials/ComboBoxOptions.js +0 -25
- package/lib/partials/ComboBoxOptions.js.map +0 -1
- package/lib/partials/ComboBoxOptionsItems.d.ts +0 -24
- package/lib/partials/ComboBoxOptionsItems.js +0 -24
- package/lib/partials/ComboBoxOptionsItems.js.map +0 -1
- package/lib/partials/ComboBoxOptionsWithGrouping.d.ts +0 -26
- package/lib/partials/ComboBoxOptionsWithGrouping.js +0 -14
- package/lib/partials/ComboBoxOptionsWithGrouping.js.map +0 -1
- package/lib/partials/index.d.ts +0 -3
- package/lib/partials/index.js +0 -4
- package/lib/partials/index.js.map +0 -1
- package/lib/utils/calculateListMaxHeight.d.ts +0 -7
- package/lib/utils/calculateListMaxHeight.js +0 -14
- package/lib/utils/calculateListMaxHeight.js.map +0 -1
- package/lib/utils/index.d.ts +0 -2
- package/lib/utils/index.js +0 -3
- package/lib/utils/index.js.map +0 -1
- package/lib/utils/scrollOptionToViewport.d.ts +0 -7
- package/lib/utils/scrollOptionToViewport.js +0 -26
- package/lib/utils/scrollOptionToViewport.js.map +0 -1
package/lib/ComboBox.d.ts
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import './
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* Supports both flat and grouped options, search functionality, and keyboard navigation.
|
|
7
|
-
*
|
|
8
|
-
* @param props - The props for the ComboBox component
|
|
9
|
-
* @returns A responsive combobox component with search and selection capabilities
|
|
10
|
-
*/
|
|
11
|
-
export declare function ComboBox({ className, name, headline, label, searchPattern, id, isOpen, options, placeholder, value, inputMode, noResultsText, leadingType, optionDetails, withSearch, theme, setIsOpen, onClick, onChange, onOutsideClick, onOptionItemClick, onSheetClose, }: ComboBoxProps): import("react/jsx-runtime").JSX.Element;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ComboBoxProps } from './types';
|
|
3
|
+
import './styles.css';
|
|
4
|
+
declare const ComboBox: React.FC<ComboBoxProps>;
|
|
5
|
+
export default ComboBox;
|
package/lib/ComboBox.js
CHANGED
|
@@ -1,100 +1,77 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
};
|
|
78
|
-
/**
|
|
79
|
-
* Handles click on the input field
|
|
80
|
-
*/
|
|
81
|
-
const handleOnClick = () => {
|
|
82
|
-
onClick === null || onClick === void 0 ? void 0 : onClick();
|
|
83
|
-
};
|
|
84
|
-
/**
|
|
85
|
-
* Renders the "no results" message when no options match the search
|
|
86
|
-
*
|
|
87
|
-
* @returns A text component displaying the no results message
|
|
88
|
-
*/
|
|
89
|
-
const NoResultsTextComponent = () => {
|
|
90
|
-
return (_jsx(Text, { variant: TextVariant.SUBHEADLINE, className: "combobox--no-results-text", children: noResultsText }));
|
|
91
|
-
};
|
|
92
|
-
/**
|
|
93
|
-
* Removes the placeholder text from the input field
|
|
94
|
-
*/
|
|
95
|
-
const removePlaceholder = () => {
|
|
96
|
-
setPlaceholder('');
|
|
97
|
-
};
|
|
98
|
-
return (_jsxs(ThemeProvider, { theme: theme, children: [showSelectField && (_jsx(SelectInput, { className: clsx(isOpen && 'active', className), name: name, label: label, value: value, onClick: handleOnClick, onOutsideClick: handleClickOutside, isCompact: true, id: id, readOnly: true })), isDesktop && isOpen && (_jsxs("div", { className: "combobox", ref: comboBoxRef, children: [withSearch && (_jsx(SearchInput, { name: name, value: searchQuery, pattern: searchPattern, label: label, onChange: handleChange, onClear: handleClearInput, onOutsideClick: handleClickOutside, displayLeadingIcon: isOpen, isCompact: true, inputMode: inputMode, autoFocus: true })), optionsExist ? (_jsx(ComboBoxOptions, { options: options, onClick: handleOptionItemClick, selectedOption: value, leadingType: leadingType })) : (_jsx(NoResultsTextComponent, {})), _jsx("div", {})] })), !isDesktop && isOpen && (_jsxs(BottomSheet, { open: isOpen, onClose: clearAndClose, ref: bottomSheetRef, children: [_jsxs("div", { className: "combobox--header", children: [_jsx(Text, { variant: TextVariant.HEADLINE, className: "combobox--headline", children: headline }), withSearch && (_jsx(SearchInput, { name: name, value: searchQuery, pattern: searchPattern, onChange: handleChange, onClear: handleClearInput, onFocus: removePlaceholder, placeholder: inputPlaceholder, isCompact: true, inputMode: inputMode, displayLeadingIcon: isOpen }))] }), _jsx("div", { className: "combobox__options scrollable", children: optionsExist ? (_jsx(ComboBoxOptions, { options: options, onClick: handleOptionItemClick, selectedOption: value, leadingType: leadingType, optionDetails: optionDetails })) : (_jsx(NoResultsTextComponent, {})) })] }))] }));
|
|
99
|
-
}
|
|
1
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import BottomSheet from '@pixum/bottom-sheet';
|
|
3
|
+
import Text, { TextVariant } from '@pixum/text';
|
|
4
|
+
import { SelectInput, SmallSearchInput } from '@pixum/user-input';
|
|
5
|
+
import ComboBoxOptions from './ComboboxOptions';
|
|
6
|
+
import useIsDesktopScreenWidth from './helper/useIsDesktopScreenWidth';
|
|
7
|
+
import './styles.css';
|
|
8
|
+
import clsx from 'clsx';
|
|
9
|
+
const ComboBox = ({ className = '', headline, label, onClick, onChange, onOutsideClick, onOptionItemClick, onSheetClose, searchPattern = '', id, isOpen, setIsOpen, options, placeholder, value, inputMode, noResultsText, leadingType, optionDetails, withSearch = true, }) => {
|
|
10
|
+
const comboBoxRef = useRef(null);
|
|
11
|
+
const bottomSheetRef = useRef(null);
|
|
12
|
+
const [searchQuery, setSearchQuery] = useState('');
|
|
13
|
+
const [inputPlaceholder, setPlaceholder] = useState(placeholder);
|
|
14
|
+
const isDesktop = useIsDesktopScreenWidth();
|
|
15
|
+
const optionsExist = Object.keys(options).length > 0;
|
|
16
|
+
const showSelectField = !withSearch || (isDesktop && !isOpen) || !isDesktop;
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
!isOpen && (onSheetClose === null || onSheetClose === void 0 ? void 0 : onSheetClose());
|
|
19
|
+
}, [isOpen]);
|
|
20
|
+
const handleChange = (e) => {
|
|
21
|
+
const { value: searchValue } = e.target;
|
|
22
|
+
setSearchQuery(searchValue);
|
|
23
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(searchValue);
|
|
24
|
+
};
|
|
25
|
+
const handleClearInput = () => {
|
|
26
|
+
setSearchQuery('');
|
|
27
|
+
};
|
|
28
|
+
const clearAndClose = () => {
|
|
29
|
+
setSearchQuery('');
|
|
30
|
+
setIsOpen(false);
|
|
31
|
+
};
|
|
32
|
+
const handleClickOutside = useCallback((event) => {
|
|
33
|
+
var _a;
|
|
34
|
+
const node = event === null || event === void 0 ? void 0 : event.target;
|
|
35
|
+
const isOutside = !((_a = comboBoxRef.current) === null || _a === void 0 ? void 0 : _a.contains(node));
|
|
36
|
+
setPlaceholder(placeholder);
|
|
37
|
+
isOutside && isDesktop && clearAndClose();
|
|
38
|
+
isOutside && isDesktop && (onOutsideClick === null || onOutsideClick === void 0 ? void 0 : onOutsideClick());
|
|
39
|
+
}, [comboBoxRef, bottomSheetRef, placeholder]);
|
|
40
|
+
const handleOptionItemClick = (optionValue) => {
|
|
41
|
+
onOptionItemClick === null || onOptionItemClick === void 0 ? void 0 : onOptionItemClick(optionValue);
|
|
42
|
+
};
|
|
43
|
+
const handleOnArrowClick = () => {
|
|
44
|
+
clearAndClose();
|
|
45
|
+
};
|
|
46
|
+
const handleOnClick = () => {
|
|
47
|
+
onClick === null || onClick === void 0 ? void 0 : onClick();
|
|
48
|
+
};
|
|
49
|
+
const NoResultsTextComponent = () => {
|
|
50
|
+
return (React.createElement(Text, { variant: TextVariant.SUBHEADLINE, className: "combobox--no-results-text" }, noResultsText));
|
|
51
|
+
};
|
|
52
|
+
const removePlaceholder = () => {
|
|
53
|
+
setPlaceholder('');
|
|
54
|
+
};
|
|
55
|
+
const handleKeyDown = (e) => {
|
|
56
|
+
var _a;
|
|
57
|
+
if (e.key === 'Tab') {
|
|
58
|
+
e.preventDefault();
|
|
59
|
+
(_a = document.querySelector('.combobox__options .menu-item')) === null || _a === void 0 ? void 0 : _a.focus();
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
return (React.createElement(React.Fragment, null,
|
|
63
|
+
showSelectField && (React.createElement(SelectInput, { className: clsx(isOpen && 'active', className), label: label, value: value, onClick: handleOnClick, onOutsideClick: handleClickOutside, isCompact: true, id: id, readOnly: true })),
|
|
64
|
+
isDesktop && isOpen && (React.createElement("div", { className: "combobox", ref: comboBoxRef },
|
|
65
|
+
withSearch && (React.createElement(SmallSearchInput, { value: searchQuery, pattern: searchPattern, label: label, onChange: handleChange, onClear: handleClearInput, onKeyDown: handleKeyDown, onArrowClick: handleOnArrowClick, onOutsideClick: handleClickOutside, show: isOpen, inputMode: inputMode, autoFocus: true, isCompact: true })),
|
|
66
|
+
optionsExist ? (React.createElement(ComboBoxOptions, { options: options, onClick: handleOptionItemClick, selectedOption: value, leadingType: leadingType, optionDetails: optionDetails })) : (React.createElement(NoResultsTextComponent, null)),
|
|
67
|
+
React.createElement("div", null))),
|
|
68
|
+
!isDesktop && isOpen && (React.createElement(BottomSheet, { open: isOpen, onClose: () => {
|
|
69
|
+
setIsOpen(false);
|
|
70
|
+
}, ref: bottomSheetRef },
|
|
71
|
+
React.createElement("div", { className: "combobox--header" },
|
|
72
|
+
React.createElement(Text, { variant: TextVariant.HEADLINE, className: "combobox--headline" }, headline),
|
|
73
|
+
withSearch && (React.createElement(SmallSearchInput, { value: searchQuery, pattern: searchPattern, onChange: handleChange, onClear: handleClearInput, onFocus: removePlaceholder, placeholder: inputPlaceholder, inputMode: inputMode, show: isOpen, isCompact: true }))),
|
|
74
|
+
React.createElement("div", { className: "combobox__options scrollable" }, optionsExist ? (React.createElement(ComboBoxOptions, { options: options, onClick: handleOptionItemClick, selectedOption: value, leadingType: leadingType, optionDetails: optionDetails })) : (React.createElement(NoResultsTextComponent, null)))))));
|
|
75
|
+
};
|
|
76
|
+
export default ComboBox;
|
|
100
77
|
//# sourceMappingURL=ComboBox.js.map
|
package/lib/ComboBox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../src/ComboBox.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../src/ComboBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAW,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChF,OAAO,WAAW,MAAM,qBAAqB,CAAA;AAC7C,OAAO,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAE/C,OAAO,uBAAuB,MAAM,kCAAkC,CAAA;AACtE,OAAO,cAAc,CAAA;AACrB,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,QAAQ,GAA4B,CAAC,EACzC,SAAS,GAAG,EAAE,EACd,QAAQ,EACR,KAAK,EACL,OAAO,EACP,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,aAAa,GAAG,EAAE,EAClB,EAAE,EACF,MAAM,EACN,SAAS,EACT,OAAO,EACP,WAAW,EACX,KAAK,EACL,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,EACb,UAAU,GAAG,IAAI,GAClB,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAChD,MAAM,cAAc,GAAG,MAAM,CAAc,IAAI,CAAC,CAAA;IAEhD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAClD,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;IAEhE,MAAM,SAAS,GAAG,uBAAuB,EAAE,CAAA;IAE3C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IACpD,MAAM,eAAe,GAAG,CAAC,UAAU,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAA;IAE3E,SAAS,CAAC,GAAG,EAAE;QACb,CAAC,MAAM,KAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,EAAI,CAAA,CAAA;IAC7B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,MAAM,YAAY,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC9D,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,MAAM,CAAA;QAEvC,cAAc,CAAC,WAAW,CAAC,CAAA;QAC3B,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,WAAW,CAAC,CAAA;IACzB,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,cAAc,CAAC,EAAE,CAAC,CAAA;IACpB,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,cAAc,CAAC,EAAE,CAAC,CAAA;QAClB,SAAS,CAAC,KAAK,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,KAAkB,EAAE,EAAE;;QACrB,MAAM,IAAI,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAc,CAAA;QAClC,MAAM,SAAS,GAAG,CAAC,CAAA,MAAA,WAAW,CAAC,OAAO,0CAAE,QAAQ,CAAC,IAAI,CAAC,CAAA,CAAA;QAEtD,cAAc,CAAC,WAAW,CAAC,CAAA;QAC3B,SAAS,IAAI,SAAS,IAAI,aAAa,EAAE,CAAA;QACzC,SAAS,IAAI,SAAS,KAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,EAAI,CAAA,CAAA;IAC9C,CAAC,EACD,CAAC,WAAW,EAAE,cAAc,EAAE,WAAW,CAAC,CAC3C,CAAA;IAED,MAAM,qBAAqB,GAAG,CAAC,WAAmB,EAAE,EAAE;QACpD,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAG,WAAW,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,aAAa,EAAE,CAAA;IACjB,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI,CAAA;IACb,CAAC,CAAA;IAED,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAClC,OAAO,CACL,oBAAC,IAAI,IACH,OAAO,EAAE,WAAW,CAAC,WAAW,EAChC,SAAS,EAAC,2BAA2B,IAEpC,aAAa,CACT,CACR,CAAA;IACH,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,cAAc,CAAC,EAAE,CAAC,CAAA;IACpB,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,CAAwC,EAAE,EAAE;;QACjE,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE;YACnB,CAAC,CAAC,cAAc,EAAE,CACjB;YAAA,MACC,QAAQ,CAAC,aAAa,CAAC,+BAA+B,CACvD,0CAAE,KAAK,EAAE,CAAA;SACX;IACH,CAAC,CAAA;IAED,OAAO,CACL;QACG,eAAe,IAAI,CAClB,oBAAC,WAAW,IACV,SAAS,EAAE,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,SAAS,CAAC,EAC9C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,aAAa,EACtB,cAAc,EAAE,kBAAkB,EAClC,SAAS,QACT,EAAE,EAAE,EAAE,EACN,QAAQ,SACR,CACH;QACA,SAAS,IAAI,MAAM,IAAI,CACtB,6BAAK,SAAS,EAAC,UAAU,EAAC,GAAG,EAAE,WAAW;YACvC,UAAU,IAAI,CACb,oBAAC,gBAAgB,IACf,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,kBAAkB,EAChC,cAAc,EAAE,kBAAkB,EAClC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,EACpB,SAAS,QACT,SAAS,SACT,CACH;YACA,YAAY,CAAC,CAAC,CAAC,CACd,oBAAC,eAAe,IACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,qBAAqB,EAC9B,cAAc,EAAE,KAAK,EACrB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,GAC5B,CACH,CAAC,CAAC,CAAC,CACF,oBAAC,sBAAsB,OAAG,CAC3B;YACD,gCAAO,CACH,CACP;QACA,CAAC,SAAS,IAAI,MAAM,IAAI,CACvB,oBAAC,WAAW,IACV,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,GAAG,EAAE;gBACZ,SAAS,CAAC,KAAK,CAAC,CAAA;YAClB,CAAC,EACD,GAAG,EAAE,cAAc;YAEnB,6BAAK,SAAS,EAAC,kBAAkB;gBAC/B,oBAAC,IAAI,IAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAC,oBAAoB,IAChE,QAAQ,CACJ;gBACN,UAAU,IAAI,CACb,oBAAC,gBAAgB,IACf,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,iBAAiB,EAC1B,WAAW,EAAE,gBAAgB,EAC7B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,MAAM,EACZ,SAAS,SACT,CACH,CACG;YACN,6BAAK,SAAS,EAAC,8BAA8B,IAC1C,YAAY,CAAC,CAAC,CAAC,CACd,oBAAC,eAAe,IACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,qBAAqB,EAC9B,cAAc,EAAE,KAAK,EACrB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,GAC5B,CACH,CAAC,CAAC,CAAC,CACF,oBAAC,sBAAsB,OAAG,CAC3B,CACG,CACM,CACf,CACA,CACJ,CAAA;AACH,CAAC,CAAA;AAED,eAAe,QAAQ,CAAA"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { LeadingType } from '@pixum/menu-item';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { ComboBoxOptionProps } from '../types';
|
|
4
|
-
interface OptionsProps {
|
|
5
|
-
items: ComboBoxOptionProps[];
|
|
6
|
-
selectedOption?: string;
|
|
7
|
-
onClick?: (value: string) => void;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
import { LeadingType } from '@pixum/menu-item';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ComboBoxOptionProps } from '../types';
|
|
4
|
+
interface OptionsProps {
|
|
5
|
+
items: ComboBoxOptionProps[];
|
|
6
|
+
selectedOption?: string;
|
|
7
|
+
onClick?: (value: string) => void;
|
|
8
|
+
onKeyDown: (e: React.KeyboardEvent, value: string) => void;
|
|
9
|
+
leadingType?: LeadingType;
|
|
10
|
+
}
|
|
11
|
+
declare const Options: React.FC<OptionsProps>;
|
|
12
|
+
export default Options;
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
import MenuItem from '@pixum/menu-item';
|
|
2
|
-
import clsx from 'clsx';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
const Options = ({ items, selectedOption, onClick, leadingType, }) => (React.createElement(React.Fragment, null, items.map((item) => {
|
|
5
|
-
var _a;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
} })));
|
|
17
|
-
})));
|
|
18
|
-
export default Options;
|
|
1
|
+
import MenuItem from '@pixum/menu-item';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
const Options = ({ items, selectedOption, onClick, onKeyDown, leadingType, }) => (React.createElement(React.Fragment, null, items.map((item, index) => {
|
|
5
|
+
var _a;
|
|
6
|
+
return (React.createElement(MenuItem, { key: `combobox-item-${item.text}`, tabIndex: index, className: clsx(selectedOption === item.text && 'selected'), onClick: () => onClick === null || onClick === void 0 ? void 0 : onClick(item.text), onKeyDown: e => onKeyDown(e, item.text), onMouseEnter: item.onMouseEnter, leadingProps: leadingType
|
|
7
|
+
? {
|
|
8
|
+
name: item.text,
|
|
9
|
+
type: leadingType,
|
|
10
|
+
}
|
|
11
|
+
: undefined, selected: selectedOption === item.text, text: item.text, subtext: item.subtext, subItemProps: {
|
|
12
|
+
text: (_a = item.subItemProps) === null || _a === void 0 ? void 0 : _a.text,
|
|
13
|
+
} }));
|
|
14
|
+
})));
|
|
15
|
+
export default Options;
|
|
19
16
|
//# sourceMappingURL=Options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Options.js","sourceRoot":"","sources":["../../src/ComboboxOptions/Options.tsx"],"names":[],"mappings":"AAAA,OAAO,QAAwC,MAAM,kBAAkB,CAAA;AACvE,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Options.js","sourceRoot":"","sources":["../../src/ComboboxOptions/Options.tsx"],"names":[],"mappings":"AAAA,OAAO,QAAwC,MAAM,kBAAkB,CAAA;AACvE,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,KAAK,MAAM,OAAO,CAAA;AAWzB,MAAM,OAAO,GAA2B,CAAC,EACvC,KAAK,EACL,cAAc,EACd,OAAO,EACP,SAAS,EACT,WAAW,GACZ,EAAE,EAAE,CAAC,CACJ,0CACG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAmB,EAAE,KAAa,EAAE,EAAE;;IAAC,OAAA,CACjD,oBAAC,QAAQ,IACP,GAAG,EAAE,iBAAiB,IAAI,CAAC,IAAI,EAAE,EACjC,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,EAC3D,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,IAAI,CAAC,EACnC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EACvC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,YAAY,EACV,WAAW;YACT,CAAC,CAAC;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,WAAW;aAClB;YACH,CAAC,CAAC,SAAS,EAEf,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC,IAAI,EACtC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,YAAY,EAAE;YACZ,IAAI,EAAE,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI;SAC9B,GACD,CACH,CAAA;CAAA,CAAC,CACD,CACJ,CAAA;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { LeadingType } from '@pixum/menu-item';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { ComboBoxOptionProps } from '../types';
|
|
4
|
-
interface OptionsGroupProps {
|
|
5
|
-
group: string;
|
|
6
|
-
items: ComboBoxOptionProps[];
|
|
7
|
-
selectedOption?: string;
|
|
8
|
-
onClick?: (value: string) => void;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import { LeadingType } from '@pixum/menu-item';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { ComboBoxOptionProps } from '../types';
|
|
4
|
+
interface OptionsGroupProps {
|
|
5
|
+
group: string;
|
|
6
|
+
items: ComboBoxOptionProps[];
|
|
7
|
+
selectedOption?: string;
|
|
8
|
+
onClick?: (value: string) => void;
|
|
9
|
+
onKeyDown: (e: React.KeyboardEvent, value: string) => void;
|
|
10
|
+
leadingType?: LeadingType;
|
|
11
|
+
}
|
|
12
|
+
declare const OptionsGroup: React.FC<OptionsGroupProps>;
|
|
13
|
+
export default OptionsGroup;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import Text, { TextVariant } from '@pixum/text';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import Options from './Options';
|
|
4
|
-
const OptionsGroup = ({ group, items, selectedOption, onClick, leadingType, }) => (React.createElement("div", { className: "combobox__options-group", key: `combobox__options-group-${group}` },
|
|
5
|
-
React.createElement(Text, { variant: TextVariant.HEADLINE, className: "combobox__sticky-header" }, group),
|
|
6
|
-
React.createElement(Options, { items: items, selectedOption: selectedOption, onClick: onClick, leadingType: leadingType })));
|
|
7
|
-
export default OptionsGroup;
|
|
1
|
+
import Text, { TextVariant } from '@pixum/text';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import Options from './Options';
|
|
4
|
+
const OptionsGroup = ({ group, items, selectedOption, onClick, onKeyDown, leadingType, }) => (React.createElement("div", { className: "combobox__options-group", key: `combobox__options-group-${group}` },
|
|
5
|
+
React.createElement(Text, { variant: TextVariant.HEADLINE, className: "combobox__sticky-header" }, group),
|
|
6
|
+
React.createElement(Options, { items: items, selectedOption: selectedOption, onClick: onClick, onKeyDown: onKeyDown, leadingType: leadingType })));
|
|
7
|
+
export default OptionsGroup;
|
|
8
8
|
//# sourceMappingURL=OptionsGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OptionsGroup.js","sourceRoot":"","sources":["../../src/ComboboxOptions/OptionsGroup.tsx"],"names":[],"mappings":"AACA,OAAO,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,OAAO,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"OptionsGroup.js","sourceRoot":"","sources":["../../src/ComboboxOptions/OptionsGroup.tsx"],"names":[],"mappings":"AACA,OAAO,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,OAAO,MAAM,WAAW,CAAA;AAY/B,MAAM,YAAY,GAAgC,CAAC,EACjD,KAAK,EACL,KAAK,EACL,cAAc,EACd,OAAO,EACP,SAAS,EACT,WAAW,GACZ,EAAE,EAAE,CAAC,CACJ,6BACE,SAAS,EAAC,yBAAyB,EACnC,GAAG,EAAE,2BAA2B,KAAK,EAAE;IAEvC,oBAAC,IAAI,IAAC,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAC,yBAAyB,IACrE,KAAK,CACD;IACP,oBAAC,OAAO,IACN,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,GACxB,CACE,CACP,CAAA;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { ComboBoxOptionsProps } from '../types';
|
|
3
|
-
declare const ComboBoxOptions: React.FC<ComboBoxOptionsProps>;
|
|
4
|
-
export default ComboBoxOptions;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ComboBoxOptionsProps } from '../types';
|
|
3
|
+
declare const ComboBoxOptions: React.FC<ComboBoxOptionsProps>;
|
|
4
|
+
export default ComboBoxOptions;
|
|
@@ -1,19 +1,22 @@
|
|
|
1
|
-
import React, { useEffect } from 'react';
|
|
2
|
-
import Menu from '@pixum/menu';
|
|
3
|
-
import { scrollOptionToViewport } from '../helper/scrollOptionToViewport';
|
|
4
|
-
import OptionsGroup from './OptionsGroup';
|
|
5
|
-
import Options from './Options';
|
|
6
|
-
import useIsDesktopScreenWidth from '../helper/useIsDesktopScreenWidth';
|
|
7
|
-
const ComboBoxOptions = ({ options, onClick, selectedOption, leadingType, optionDetails, }) => {
|
|
8
|
-
const isDesktop = useIsDesktopScreenWidth();
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
import Menu from '@pixum/menu';
|
|
3
|
+
import { scrollOptionToViewport } from '../helper/scrollOptionToViewport';
|
|
4
|
+
import OptionsGroup from './OptionsGroup';
|
|
5
|
+
import Options from './Options';
|
|
6
|
+
import useIsDesktopScreenWidth from '../helper/useIsDesktopScreenWidth';
|
|
7
|
+
const ComboBoxOptions = ({ options, onClick, selectedOption, leadingType, optionDetails, }) => {
|
|
8
|
+
const isDesktop = useIsDesktopScreenWidth();
|
|
9
|
+
const handleOnKeyDown = (e, value) => {
|
|
10
|
+
if (e.key === 'Enter') {
|
|
11
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(value);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
scrollOptionToViewport(isDesktop);
|
|
16
|
+
}, [isDesktop]);
|
|
17
|
+
return (React.createElement(Menu, { className: "combobox__options" },
|
|
18
|
+
Array.isArray(options) ? (React.createElement(Options, { items: options, selectedOption: selectedOption, onClick: onClick, onKeyDown: handleOnKeyDown, leadingType: leadingType })) : (React.createElement(React.Fragment, null, Object.entries(options).map(([group, items]) => (React.createElement(OptionsGroup, { group: group, items: items, selectedOption: selectedOption, onClick: onClick, onKeyDown: handleOnKeyDown, leadingType: leadingType }))))),
|
|
19
|
+
optionDetails && (React.createElement("div", { className: "combobox__option-details text--caption" }, optionDetails))));
|
|
20
|
+
};
|
|
21
|
+
export default ComboBoxOptions;
|
|
19
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ComboboxOptions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ComboboxOptions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAW,MAAM,OAAO,CAAA;AACjD,OAAO,IAAI,MAAM,aAAa,CAAA;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAEzE,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,OAAO,MAAM,WAAW,CAAA;AAC/B,OAAO,uBAAuB,MAAM,mCAAmC,CAAA;AAEvE,MAAM,eAAe,GAAmC,CAAC,EACvD,OAAO,EACP,OAAO,EACP,cAAc,EACd,WAAW,EACX,aAAa,GACd,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,uBAAuB,EAAE,CAAA;IAE3C,MAAM,eAAe,GAAG,CAAC,CAAsB,EAAE,KAAa,EAAE,EAAE;QAChE,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACrB,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAA;SACjB;IACH,CAAC,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,sBAAsB,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,OAAO,CACL,oBAAC,IAAI,IAAC,SAAS,EAAC,mBAAmB;QAChC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CACxB,oBAAC,OAAO,IACN,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,WAAW,GACxB,CACH,CAAC,CAAC,CAAC,CACF,0CACG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAC/C,oBAAC,YAAY,IACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,WAAW,GACxB,CACH,CAAC,CACD,CACJ;QACA,aAAa,IAAI,CAChB,6BAAK,SAAS,EAAC,wCAAwC,IACpD,aAAa,CACV,CACP,CACI,CACR,CAAA;AACH,CAAC,CAAA;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const calculateListMaxHeight: () => number;
|
|
1
|
+
export declare const calculateListMaxHeight: () => number;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export const calculateListMaxHeight = () => {
|
|
2
|
-
const windowHeight = window.innerHeight;
|
|
3
|
-
const headerHeight = 50;
|
|
4
|
-
const inputFieldHeight = 35;
|
|
5
|
-
const maxListHeight = windowHeight - headerHeight - inputFieldHeight;
|
|
6
|
-
return maxListHeight;
|
|
7
|
-
};
|
|
1
|
+
export const calculateListMaxHeight = () => {
|
|
2
|
+
const windowHeight = window.innerHeight;
|
|
3
|
+
const headerHeight = 50;
|
|
4
|
+
const inputFieldHeight = 35;
|
|
5
|
+
const maxListHeight = windowHeight - headerHeight - inputFieldHeight;
|
|
6
|
+
return maxListHeight;
|
|
7
|
+
};
|
|
8
8
|
//# sourceMappingURL=calculateListMaxHeight.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const scrollOptionToViewport: (isDesktop: boolean) => void;
|
|
1
|
+
export declare const scrollOptionToViewport: (isDesktop: boolean) => void;
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
export const scrollOptionToViewport = (isDesktop) => {
|
|
2
|
-
const comboboxOptions = isDesktop
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
};
|
|
1
|
+
export const scrollOptionToViewport = (isDesktop) => {
|
|
2
|
+
const comboboxOptions = isDesktop ? document.querySelector('.menu') :
|
|
3
|
+
document.querySelector('.combobox__options');
|
|
4
|
+
const selectedItem = document.querySelector(".menu-item.selected");
|
|
5
|
+
if (selectedItem && comboboxOptions) {
|
|
6
|
+
let comboboxOptionsGroup = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.parentElement;
|
|
7
|
+
if (comboboxOptionsGroup) {
|
|
8
|
+
const stickyHeader = comboboxOptionsGroup === null || comboboxOptionsGroup === void 0 ? void 0 : comboboxOptionsGroup.querySelector('.sticky-header');
|
|
9
|
+
const stickyHeaderOffset = stickyHeader === null || stickyHeader === void 0 ? void 0 : stickyHeader.offsetTop;
|
|
10
|
+
comboboxOptions === null || comboboxOptions === void 0 ? void 0 : comboboxOptions.scrollTo({ top: stickyHeaderOffset });
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
const selectedItemOffset = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.offsetTop;
|
|
14
|
+
comboboxOptions === null || comboboxOptions === void 0 ? void 0 : comboboxOptions.scrollTo({ top: selectedItemOffset });
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
};
|
|
19
18
|
//# sourceMappingURL=scrollOptionToViewport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollOptionToViewport.js","sourceRoot":"","sources":["../../src/helper/scrollOptionToViewport.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAAkB,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"scrollOptionToViewport.js","sourceRoot":"","sources":["../../src/helper/scrollOptionToViewport.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,SAAkB,EAAE,EAAE;IACzD,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAgB,CAAC,CAAC;QAChF,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAgB,CAAA;IAC/D,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAgB,CAAC;IAElF,IAAI,YAAY,IAAI,eAAe,EAAE;QACjC,IAAI,oBAAoB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,aAAa,CAAA;QAEtD,IAAI,oBAAoB,EAAE;YACtB,MAAM,YAAY,GAAG,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,aAAa,CAAC,gBAAgB,CAAgB,CAAA;YACzF,MAAM,kBAAkB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,CAAA;YAElD,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAG,CAAC,CAAA;SAC1D;aAAM;YACH,MAAM,kBAAkB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,CAAA;YAElD,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAA;SACzD;KACJ;AACL,CAAC,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const useIsDesktopScreenWidth: () => boolean;
|
|
2
|
-
export default useIsDesktopScreenWidth;
|
|
1
|
+
declare const useIsDesktopScreenWidth: () => boolean;
|
|
2
|
+
export default useIsDesktopScreenWidth;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { useState, useEffect } from 'react';
|
|
2
|
-
const useIsDesktopScreenWidth = () => {
|
|
3
|
-
const hasWindowObject = typeof window !== 'undefined';
|
|
4
|
-
if (hasWindowObject) {
|
|
5
|
-
const [screenWidth, setScreenWidth] = useState(window.innerWidth);
|
|
6
|
-
useEffect(() => {
|
|
7
|
-
const handleResize = () => {
|
|
8
|
-
setScreenWidth(window.innerWidth);
|
|
9
|
-
};
|
|
10
|
-
window.addEventListener('resize', handleResize);
|
|
11
|
-
return () => {
|
|
12
|
-
window.removeEventListener('resize', handleResize);
|
|
13
|
-
};
|
|
14
|
-
}, []);
|
|
15
|
-
return screenWidth > 960;
|
|
16
|
-
}
|
|
17
|
-
return false;
|
|
18
|
-
};
|
|
19
|
-
export default useIsDesktopScreenWidth;
|
|
1
|
+
import { useState, useEffect } from 'react';
|
|
2
|
+
const useIsDesktopScreenWidth = () => {
|
|
3
|
+
const hasWindowObject = typeof window !== 'undefined';
|
|
4
|
+
if (hasWindowObject) {
|
|
5
|
+
const [screenWidth, setScreenWidth] = useState(window.innerWidth);
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
const handleResize = () => {
|
|
8
|
+
setScreenWidth(window.innerWidth);
|
|
9
|
+
};
|
|
10
|
+
window.addEventListener('resize', handleResize);
|
|
11
|
+
return () => {
|
|
12
|
+
window.removeEventListener('resize', handleResize);
|
|
13
|
+
};
|
|
14
|
+
}, []);
|
|
15
|
+
return screenWidth > 960;
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
18
|
+
};
|
|
19
|
+
export default useIsDesktopScreenWidth;
|
|
20
20
|
//# sourceMappingURL=useIsDesktopScreenWidth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIsDesktopScreenWidth.js","sourceRoot":"","sources":["../../src/helper/useIsDesktopScreenWidth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE3C,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACnC,MAAM,eAAe,GAAG,OAAO,MAAM,KAAK,WAAW,CAAA;IAErD,IAAI,eAAe,EAAE
|
|
1
|
+
{"version":3,"file":"useIsDesktopScreenWidth.js","sourceRoot":"","sources":["../../src/helper/useIsDesktopScreenWidth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE3C,MAAM,uBAAuB,GAAG,GAAG,EAAE;IACnC,MAAM,eAAe,GAAG,OAAO,MAAM,KAAK,WAAW,CAAA;IAErD,IAAI,eAAe,EAAE;QACnB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAEjE,SAAS,CAAC,GAAG,EAAE;YACb,MAAM,YAAY,GAAG,GAAG,EAAE;gBACxB,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YACnC,CAAC,CAAA;YAED,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YAE/C,OAAO,GAAG,EAAE;gBACV,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;YACpD,CAAC,CAAA;QACH,CAAC,EAAE,EAAE,CAAC,CAAA;QAEN,OAAO,WAAW,GAAG,GAAG,CAAA;KACzB;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,eAAe,uBAAuB,CAAA"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
export default ComboBox;
|
|
3
|
-
export * from './types';
|
|
1
|
+
import ComboBox from './ComboBox';
|
|
2
|
+
export default ComboBox;
|
|
3
|
+
export * from './types';
|
package/lib/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
export default ComboBox;
|
|
3
|
-
export * from './types';
|
|
1
|
+
import ComboBox from './ComboBox';
|
|
2
|
+
export default ComboBox;
|
|
3
|
+
export * from './types';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,eAAe,QAAQ,CAAA;AACvB,cAAc,SAAS,CAAA"}
|
package/lib/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.combobox{position:relative
|
|
1
|
+
.combobox{width:100%;position:relative}.combobox--headline[class*=text--]+*{margin-top:var(--spacing-2)}.combobox--header,.combobox__options{position:relative}.combobox--header{width:100%;align-items:flex-start;flex-direction:column;gap:var(--spacing-1_5);height:auto;padding:var(--spacing-3) var(--spacing) var(--spacing-2)}.combobox__options{width:100%;max-height:none;display:flex;flex-direction:column;overflow:scroll}.combobox .user-input__label-container{align-self:baseline;padding-left:var(--spacing-2)}.combobox__options .combobox__sticky-header,.combobox__options .menu-item[data-background-color=default]{padding-left:0}.combobox .search.user-input__compact{margin-bottom:var(--spacing-2)}.combobox__options .combobox__sticky-header{position:-webkit-sticky;position:sticky;top:0;padding-left:var(--spacing);padding-right:var(--spacing);background-color:var(--color-surface)}.combobox__options .menu-item[data-background-color=default]{padding:var(--spacing)}.combobox__options .text--caption{color:var(--color-on-secondary)}.combobox__options .item-header{display:flex;justify-content:space-between}.combobox .combobox__options .combobox__option-details{position:-webkit-sticky;position:sticky;bottom:0;padding-left:var(--spacing);padding-right:var(--spacing);background-color:var(--color-surface)}.combobox .user-input__label.user-input__label--active{color:var(--color-on)}.combobox--no-results-text{text-align:center;padding:var(--spacing-2) var(--spacing)}@media screen and (min-width:960px){.combobox .user-input__container.search{border-radius:var(--spacing-0_5) var(--spacing-0_5) 0 0}.combobox__options{position:absolute;overflow-x:auto;max-height:330px}.combobox .user-input__label-container{padding-left:0}.combobox .search.user-input__compact{margin-bottom:0}}
|