@pixum/combobox 1.1.1 → 1.2.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/CHANGELOG.md +24 -0
- package/lib/ComboBox.js +14 -23
- package/lib/ComboBox.js.map +1 -1
- package/lib/ComboboxOptions/Options.js +1 -1
- package/lib/ComboboxOptions/Options.js.map +1 -1
- package/lib/ComboboxOptions/index.js +1 -1
- package/lib/ComboboxOptions/index.js.map +1 -1
- package/lib/styles.css +1 -1
- package/lib/types.d.ts +2 -1
- package/package.json +2 -2
- package/lib/ComboBoxOptions.d.ts +0 -4
- package/lib/ComboBoxOptions.js +0 -65
- package/lib/ComboBoxOptions.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [1.2.1](https://git.pixum.net/design-system/component-library/compare/@pixum/combobox@1.2.0...@pixum/combobox@1.2.1) (2023-10-13)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **Combobox:** set dynamic height based on content ([28b2d8d](https://git.pixum.net/design-system/component-library/commits/28b2d8d6684f4f1af8fb4efc8f1c1dc8a282f26c))
|
|
12
|
+
* **ComboBox:** set value from outside ([aaae213](https://git.pixum.net/design-system/component-library/commits/aaae213eb381514df21937b94757f1a8ebf61f7c))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# [1.2.0](https://git.pixum.net/design-system/component-library/compare/@pixum/combobox@1.1.1...@pixum/combobox@1.2.0) (2023-10-11)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
* **Combobox:** add onMouseEnter for menu items ([fea2a09](https://git.pixum.net/design-system/component-library/commits/fea2a090977fd915911271935b51b4962fff0870))
|
|
24
|
+
* **ComboBox:** make open state controllable from outside the component ([0a9ed8d](https://git.pixum.net/design-system/component-library/commits/0a9ed8d1151b47c09b5c0dd25845fee935f54a99))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
6
30
|
## [1.1.1](https://git.pixum.net/design-system/component-library/compare/@pixum/combobox@1.1.0...@pixum/combobox@1.1.1) (2023-10-11)
|
|
7
31
|
|
|
8
32
|
**Note:** Version bump only for package @pixum/combobox
|
package/lib/ComboBox.js
CHANGED
|
@@ -32,15 +32,12 @@ var bottom_sheet_1 = __importDefault(require("@pixum/bottom-sheet"));
|
|
|
32
32
|
var ComboboxOptions_1 = __importDefault(require("./ComboboxOptions"));
|
|
33
33
|
var text_1 = __importStar(require("@pixum/text"));
|
|
34
34
|
var ComboBox = function (_a) {
|
|
35
|
-
var _b = _a.className, className = _b === void 0 ? '' : _b, headline = _a.headline, label = _a.label,
|
|
35
|
+
var _b = _a.className, className = _b === void 0 ? '' : _b, headline = _a.headline, label = _a.label, onClick = _a.onClick, onChange = _a.onChange, onOutsideClick = _a.onOutsideClick, onOptionItemClick = _a.onOptionItemClick, onSheetClose = _a.onSheetClose, _c = _a.searchPattern, searchPattern = _c === void 0 ? '' : _c, isOpen = _a.isOpen, setIsOpen = _a.setIsOpen, options = _a.options, placeholder = _a.placeholder, value = _a.value, inputMode = _a.inputMode, noResultsText = _a.noResultsText, leadingType = _a.leadingType, optionDetails = _a.optionDetails, _d = _a.withSearch, withSearch = _d === void 0 ? true : _d;
|
|
36
36
|
var comboBoxRef = (0, react_1.useRef)(null);
|
|
37
37
|
var isDesktop = (0, useIsDesktop_1.useIsDesktop)();
|
|
38
|
-
var
|
|
39
|
-
var
|
|
40
|
-
var _m = (0, react_2.useState)(placeholder), inputPlaceholder = _m[0], setPlaceholder = _m[1];
|
|
41
|
-
var _o = (0, react_2.useState)(open), isOpen = _o[0], setIsOpen = _o[1];
|
|
38
|
+
var _e = (0, react_2.useState)(''), searchQuery = _e[0], setSearchQuery = _e[1];
|
|
39
|
+
var _f = (0, react_2.useState)(placeholder), inputPlaceholder = _f[0], setPlaceholder = _f[1];
|
|
42
40
|
var optionsExist = Object.keys(options).length > 0;
|
|
43
|
-
var defaultValue = !selectedValue && value ? value : selectedValue;
|
|
44
41
|
var showSelectField = !withSearch || (isDesktop && !isOpen) || !isDesktop;
|
|
45
42
|
(0, react_1.useEffect)(function () {
|
|
46
43
|
!isOpen && (onSheetClose === null || onSheetClose === void 0 ? void 0 : onSheetClose());
|
|
@@ -48,20 +45,17 @@ var ComboBox = function (_a) {
|
|
|
48
45
|
var handleChange = function (e) {
|
|
49
46
|
var searchValue = e.target.value;
|
|
50
47
|
setSearchQuery(searchValue);
|
|
51
|
-
onChange(searchValue);
|
|
48
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(searchValue);
|
|
52
49
|
};
|
|
53
50
|
var handleClearInput = function () {
|
|
54
|
-
setIsOpen(
|
|
51
|
+
setIsOpen(function (prev) { return !prev; });
|
|
55
52
|
setSearchQuery('');
|
|
56
|
-
onClick();
|
|
57
|
-
};
|
|
58
|
-
var handleSelectInputClick = function () {
|
|
59
|
-
handleClearInput();
|
|
53
|
+
onClick === null || onClick === void 0 ? void 0 : onClick();
|
|
60
54
|
};
|
|
61
55
|
var clearAndClose = function () {
|
|
62
56
|
setIsOpen(false);
|
|
63
57
|
setSearchQuery('');
|
|
64
|
-
onOutsideClick();
|
|
58
|
+
onOutsideClick === null || onOutsideClick === void 0 ? void 0 : onOutsideClick();
|
|
65
59
|
};
|
|
66
60
|
var handleClickOutside = function (event) {
|
|
67
61
|
setPlaceholder(placeholder);
|
|
@@ -70,15 +64,10 @@ var ComboBox = function (_a) {
|
|
|
70
64
|
clearAndClose();
|
|
71
65
|
}
|
|
72
66
|
};
|
|
73
|
-
var handleBottomSheetOnClose = function () {
|
|
74
|
-
setIsOpen(false);
|
|
75
|
-
};
|
|
76
67
|
var handleOptionItemClick = function (optionValue) {
|
|
77
68
|
if (optionValue) {
|
|
78
|
-
|
|
79
|
-
onOptionItemClick(optionValue);
|
|
69
|
+
onOptionItemClick === null || onOptionItemClick === void 0 ? void 0 : onOptionItemClick(optionValue);
|
|
80
70
|
}
|
|
81
|
-
setIsOpen(false);
|
|
82
71
|
};
|
|
83
72
|
var handleOnArrowClick = function () {
|
|
84
73
|
clearAndClose();
|
|
@@ -103,16 +92,18 @@ var ComboBox = function (_a) {
|
|
|
103
92
|
};
|
|
104
93
|
}, []);
|
|
105
94
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
106
|
-
showSelectField && (react_1.default.createElement(user_input_1.SelectInput, { label: label, value:
|
|
95
|
+
showSelectField && (react_1.default.createElement(user_input_1.SelectInput, { label: label, value: value, onClick: function () { return setIsOpen(function (prev) { return !prev; }); }, isCompact: true, readOnly: true })),
|
|
107
96
|
isDesktop && isOpen && (react_1.default.createElement("div", { className: (0, clsx_1.default)("combobox", className), ref: comboBoxRef },
|
|
108
97
|
withSearch && (react_1.default.createElement(user_input_1.SmallSearchInput, { value: searchQuery, pattern: searchPattern, label: label, onChange: handleChange, onClear: handleClearInput, onKeyDown: handleKeyDown, onArrowClick: handleOnArrowClick, show: isOpen, inputMode: inputMode, autoFocus: true, isCompact: true })),
|
|
109
|
-
optionsExist ? (react_1.default.createElement(ComboboxOptions_1.default, { options: options, onClick: handleOptionItemClick, selectedOption:
|
|
98
|
+
optionsExist ? (react_1.default.createElement(ComboboxOptions_1.default, { options: options, onClick: handleOptionItemClick, selectedOption: value, leadingType: leadingType, optionDetails: optionDetails })) : (react_1.default.createElement(NoResultsTextComponent, null)),
|
|
110
99
|
react_1.default.createElement("div", null))),
|
|
111
|
-
!isDesktop && isOpen && (react_1.default.createElement(bottom_sheet_1.default, { open: isOpen, onClose:
|
|
100
|
+
!isDesktop && isOpen && (react_1.default.createElement(bottom_sheet_1.default, { open: isOpen, onClose: function () {
|
|
101
|
+
setIsOpen(false);
|
|
102
|
+
} },
|
|
112
103
|
react_1.default.createElement("div", { className: "combobox--header" },
|
|
113
104
|
react_1.default.createElement(text_1.default, { variant: text_1.TextVariant.HEADLINE, className: "combobox--headline" }, headline),
|
|
114
105
|
withSearch && (react_1.default.createElement(user_input_1.SmallSearchInput, { value: searchQuery, pattern: searchPattern, onChange: handleChange, onClear: handleClearInput, onFocus: removePlaceholder, placeholder: inputPlaceholder, inputMode: inputMode, show: isOpen, isCompact: true }))),
|
|
115
|
-
react_1.default.createElement("div", { className: "combobox__options scrollable" }, optionsExist ? (react_1.default.createElement(ComboboxOptions_1.default, { options: options, onClick: handleOptionItemClick, selectedOption:
|
|
106
|
+
react_1.default.createElement("div", { className: "combobox__options scrollable" }, optionsExist ? (react_1.default.createElement(ComboboxOptions_1.default, { options: options, onClick: handleOptionItemClick, selectedOption: value, leadingType: leadingType, optionDetails: optionDetails })) : (react_1.default.createElement(NoResultsTextComponent, null)))))));
|
|
116
107
|
};
|
|
117
108
|
exports.default = ComboBox;
|
|
118
109
|
//# 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,6CAAgD;AAChD,8CAAuB;AAEvB,wBAAqB;AACrB,gDAAiE;AACjE,sDAAoD;AACpD,+BAAgC;AAChC,qEAA6C;AAC7C,sEAA+C;AAC/C,kDAA+C;AAE/C,IAAM,QAAQ,GAA4B,UAAC,
|
|
1
|
+
{"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../src/ComboBox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ var Options = function (_a) {
|
|
|
10
10
|
var items = _a.items, selectedOption = _a.selectedOption, onClick = _a.onClick, onKeyDown = _a.onKeyDown, leadingType = _a.leadingType;
|
|
11
11
|
return (react_1.default.createElement(react_1.default.Fragment, null, items.map(function (item, index) {
|
|
12
12
|
var _a;
|
|
13
|
-
return (react_1.default.createElement(menu_item_1.default, { key: "combobox-item-" + item.text, tabIndex: index, className: (0, clsx_1.default)(selectedOption === item.text && 'selected'), onClick: function () { return onClick(item.text); }, onKeyDown: function (e) { return onKeyDown(e, item.text); }, leadingProps: leadingType
|
|
13
|
+
return (react_1.default.createElement(menu_item_1.default, { key: "combobox-item-" + item.text, tabIndex: index, className: (0, clsx_1.default)(selectedOption === item.text && 'selected'), onClick: function () { return onClick(item.text); }, onKeyDown: function (e) { return onKeyDown(e, item.text); }, onMouseEnter: item.onMouseEnter, leadingProps: leadingType
|
|
14
14
|
? {
|
|
15
15
|
name: item.text,
|
|
16
16
|
type: leadingType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Options.js","sourceRoot":"","sources":["../../src/ComboboxOptions/Options.tsx"],"names":[],"mappings":";;;;;AAAA,+DAAuE;AACvE,8CAAuB;AACvB,gDAAyB;AAWzB,IAAM,OAAO,GAA2B,UAAC,EAMxC;QALC,KAAK,WAAA,EACL,cAAc,oBAAA,EACd,OAAO,aAAA,EACP,SAAS,eAAA,EACT,WAAW,iBAAA;IACP,OAAA,CACJ,8DACG,KAAK,CAAC,GAAG,CAAC,UAAC,IAAmB,EAAE,KAAa;;QAAK,OAAA,CACjD,8BAAC,mBAAQ,IACP,GAAG,EAAE,mBAAiB,IAAI,CAAC,IAAM,EACjC,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,IAAA,cAAI,EAAC,cAAc,KAAK,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,EAC3D,OAAO,EAAE,cAAM,OAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACjC,SAAS,EAAE,UAAA,CAAC,IAAI,OAAA,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAvB,CAAuB,EACvC,YAAY,EACV,WAAW;gBACT,CAAC,CAAC;oBACE,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,WAAW;iBAClB;gBACH,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;gBACZ,IAAI,EAAE,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI;aAC9B,GACD,CACH,CAAA;KAAA,CAAC,CACD,CACJ;
|
|
1
|
+
{"version":3,"file":"Options.js","sourceRoot":"","sources":["../../src/ComboboxOptions/Options.tsx"],"names":[],"mappings":";;;;;AAAA,+DAAuE;AACvE,8CAAuB;AACvB,gDAAyB;AAWzB,IAAM,OAAO,GAA2B,UAAC,EAMxC;QALC,KAAK,WAAA,EACL,cAAc,oBAAA,EACd,OAAO,aAAA,EACP,SAAS,eAAA,EACT,WAAW,iBAAA;IACP,OAAA,CACJ,8DACG,KAAK,CAAC,GAAG,CAAC,UAAC,IAAmB,EAAE,KAAa;;QAAK,OAAA,CACjD,8BAAC,mBAAQ,IACP,GAAG,EAAE,mBAAiB,IAAI,CAAC,IAAM,EACjC,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,IAAA,cAAI,EAAC,cAAc,KAAK,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,EAC3D,OAAO,EAAE,cAAM,OAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAlB,CAAkB,EACjC,SAAS,EAAE,UAAA,CAAC,IAAI,OAAA,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAvB,CAAuB,EACvC,YAAY,EAAE,IAAI,CAAC,YAAY,EAC/B,YAAY,EACV,WAAW;gBACT,CAAC,CAAC;oBACE,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,WAAW;iBAClB;gBACH,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;gBACZ,IAAI,EAAE,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI;aAC9B,GACD,CACH,CAAA;KAAA,CAAC,CACD,CACJ;AA3BK,CA2BL,CAAA;AAED,kBAAe,OAAO,CAAA"}
|
|
@@ -47,7 +47,7 @@ var ComboBoxOptions = function (_a) {
|
|
|
47
47
|
var group = _a[0], items = _a[1];
|
|
48
48
|
return (react_1.default.createElement(OptionsGroup_1.default, { group: group, items: items, selectedOption: selectedOption, onClick: handleOnItemClick, onKeyDown: handleOnKeyDown, leadingType: leadingType }));
|
|
49
49
|
}))),
|
|
50
|
-
optionDetails && (react_1.default.createElement("div", { className: "combobox__option-details" }, optionDetails))));
|
|
50
|
+
optionDetails && (react_1.default.createElement("div", { className: "combobox__option-details text--caption" }, optionDetails))));
|
|
51
51
|
};
|
|
52
52
|
exports.default = ComboBoxOptions;
|
|
53
53
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ComboboxOptions/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwC;AACxC,qDAA8B;AAC9B,uDAAqD;AACrD,2EAAyE;AAEzE,gEAAyC;AACzC,sDAA+B;AAE/B,IAAM,eAAe,GAAmC,UAAC,EAMxD;QALC,OAAO,aAAA,EACP,OAAO,aAAA,EACP,cAAc,oBAAA,EACd,WAAW,iBAAA,EACX,aAAa,mBAAA;IAEb,IAAM,SAAS,GAAG,IAAA,2BAAY,GAAE,CAAA;IAEhC,IAAM,iBAAiB,GAAG,UAAC,KAAc;QACvC,KAAK,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAA,CAAA;IAC3B,CAAC,CAAA;IAED,IAAM,eAAe,GAAG,UAAC,CAAsB,EAAE,KAAc;QAC7D,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACrB,iBAAiB,CAAC,KAAK,CAAC,CAAA;SACzB;IACH,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC;QACR,IAAA,+CAAsB,EAAC,SAAS,CAAC,CAAA;IACnC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,OAAO,CACL,8BAAC,cAAI,IAAC,SAAS,EAAC,mBAAmB;QAChC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CACxB,8BAAC,iBAAO,IACN,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,WAAW,GACxB,CACH,CAAC,CAAC,CAAC,CACF,8DACG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAC,EAAc;gBAAb,KAAK,QAAA,EAAE,KAAK,QAAA;YAAM,OAAA,CAC/C,8BAAC,sBAAY,IACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,WAAW,GACxB,CACH;QATgD,CAShD,CAAC,CACD,CACJ;QACA,aAAa,IAAI,CAChB,uCAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ComboboxOptions/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwC;AACxC,qDAA8B;AAC9B,uDAAqD;AACrD,2EAAyE;AAEzE,gEAAyC;AACzC,sDAA+B;AAE/B,IAAM,eAAe,GAAmC,UAAC,EAMxD;QALC,OAAO,aAAA,EACP,OAAO,aAAA,EACP,cAAc,oBAAA,EACd,WAAW,iBAAA,EACX,aAAa,mBAAA;IAEb,IAAM,SAAS,GAAG,IAAA,2BAAY,GAAE,CAAA;IAEhC,IAAM,iBAAiB,GAAG,UAAC,KAAc;QACvC,KAAK,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,KAAK,CAAC,CAAA,CAAA;IAC3B,CAAC,CAAA;IAED,IAAM,eAAe,GAAG,UAAC,CAAsB,EAAE,KAAc;QAC7D,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACrB,iBAAiB,CAAC,KAAK,CAAC,CAAA;SACzB;IACH,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC;QACR,IAAA,+CAAsB,EAAC,SAAS,CAAC,CAAA;IACnC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,OAAO,CACL,8BAAC,cAAI,IAAC,SAAS,EAAC,mBAAmB;QAChC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CACxB,8BAAC,iBAAO,IACN,KAAK,EAAE,OAAO,EACd,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,WAAW,GACxB,CACH,CAAC,CAAC,CAAC,CACF,8DACG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAC,EAAc;gBAAb,KAAK,QAAA,EAAE,KAAK,QAAA;YAAM,OAAA,CAC/C,8BAAC,sBAAY,IACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,eAAe,EAC1B,WAAW,EAAE,WAAW,GACxB,CACH;QATgD,CAShD,CAAC,CACD,CACJ;QACA,aAAa,IAAI,CAChB,uCAAK,SAAS,EAAC,wCAAwC,IACpD,aAAa,CACV,CACP,CACI,CACR,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,eAAe,CAAA"}
|
package/lib/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.combobox{width:100%;position:relative}.combobox--headline[class*=text--]{margin-bottom: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;height:
|
|
1
|
+
.combobox{width:100%;position:relative}.combobox--headline[class*=text--]{margin-bottom: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;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.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}}
|
package/lib/types.d.ts
CHANGED
|
@@ -14,6 +14,8 @@ interface ComboBoxProps extends ComboBoxOptionsProps {
|
|
|
14
14
|
helperText?: string;
|
|
15
15
|
id?: string;
|
|
16
16
|
label?: string;
|
|
17
|
+
isOpen: boolean;
|
|
18
|
+
setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
|
|
17
19
|
onChange?: (value: string) => void;
|
|
18
20
|
onOptionItemClick?: (value: string) => void;
|
|
19
21
|
onOutsideClick?: () => void;
|
|
@@ -21,7 +23,6 @@ interface ComboBoxProps extends ComboBoxOptionsProps {
|
|
|
21
23
|
onSheetClose?: () => void;
|
|
22
24
|
placeholder?: string;
|
|
23
25
|
searchPattern?: string;
|
|
24
|
-
open?: boolean;
|
|
25
26
|
value?: string;
|
|
26
27
|
noResultsText?: string;
|
|
27
28
|
inputMode?: InputMode;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pixum/combobox",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"module": "lib/index.js",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -17,5 +17,5 @@
|
|
|
17
17
|
"files": [
|
|
18
18
|
"lib"
|
|
19
19
|
],
|
|
20
|
-
"gitHead": "
|
|
20
|
+
"gitHead": "c8ae7e0e67020e842cd692822aa6c38aa2c40c70"
|
|
21
21
|
}
|
package/lib/ComboBoxOptions.d.ts
DELETED
package/lib/ComboBoxOptions.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
-
};
|
|
24
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
var react_1 = __importStar(require("react"));
|
|
26
|
-
var text_1 = __importStar(require("@pixum/text"));
|
|
27
|
-
var menu_item_1 = __importDefault(require("@pixum/menu-item"));
|
|
28
|
-
var useIsDesktop_1 = require("./helper/useIsDesktop");
|
|
29
|
-
var scrollOptionToViewport_1 = require("./helper/scrollOptionToViewport");
|
|
30
|
-
var ComboBoxOptions = function (_a) {
|
|
31
|
-
var options = _a.options, selectedOption = _a.selectedOption, onClick = _a.onClick;
|
|
32
|
-
var isDesktop = (0, useIsDesktop_1.useIsDesktop)();
|
|
33
|
-
var handleOnItemClick = function (value) {
|
|
34
|
-
if (value && onClick) {
|
|
35
|
-
onClick(value);
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
var handleOnKeyDown = function (e, value) {
|
|
39
|
-
if (e.key === 'Enter') {
|
|
40
|
-
handleOnItemClick(value);
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
(0, react_1.useEffect)(function () {
|
|
44
|
-
(0, scrollOptionToViewport_1.scrollOptionToViewport)(isDesktop);
|
|
45
|
-
}, [isDesktop]);
|
|
46
|
-
return (react_1.default.createElement(react_1.default.Fragment, null, Object.entries(options).map(function (_a) {
|
|
47
|
-
var _b;
|
|
48
|
-
var group = _a[0], items = _a[1];
|
|
49
|
-
return (react_1.default.createElement(react_1.default.Fragment, null, isNaN(Number(group)) ? (react_1.default.createElement("div", { className: "combobox--options-group", key: "combobox--options-group-" + group },
|
|
50
|
-
react_1.default.createElement(text_1.default, { variant: text_1.TextVariant.HEADLINE, className: "sticky-header" }, group),
|
|
51
|
-
items.map(function (item, index) {
|
|
52
|
-
var _a;
|
|
53
|
-
return (react_1.default.createElement(menu_item_1.default, { key: "combobox-item-" + group + "-" + index, tabIndex: 0, className: selectedOption === item.text ? 'selected' : '', onClick: function () { return handleOnItemClick(item.text); }, onKeyDown: function (e) { return handleOnKeyDown(e, item.text); }, text: item.text, subtext: item.subtext, subItemProps: {
|
|
54
|
-
text: (_a = item.subItemProps) === null || _a === void 0 ? void 0 : _a.text,
|
|
55
|
-
} }));
|
|
56
|
-
})))
|
|
57
|
-
:
|
|
58
|
-
react_1.default.createElement(react_1.default.Fragment, null,
|
|
59
|
-
react_1.default.createElement(menu_item_1.default, { key: "combobox-item-" + items.text, className: selectedOption === items.text ? 'selected' : '', onClick: function () { return handleOnItemClick(items.text); }, text: items.text, tabIndex: 0, subtext: items.subtext, subItemProps: {
|
|
60
|
-
text: (_b = items.subItemProps) === null || _b === void 0 ? void 0 : _b.text,
|
|
61
|
-
} }))));
|
|
62
|
-
})));
|
|
63
|
-
};
|
|
64
|
-
exports.default = ComboBoxOptions;
|
|
65
|
-
//# sourceMappingURL=ComboBoxOptions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBoxOptions.js","sourceRoot":"","sources":["../src/ComboBoxOptions.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA0C;AAC1C,kDAAgD;AAChD,+DAAyD;AAEzD,sDAAoD;AACpD,0EAAyE;AAEzE,IAAM,eAAe,GAAmC,UAAC,EAIxD;QAHG,OAAO,aAAA,EACP,cAAc,oBAAA,EACd,OAAO,aAAA;IAEP,IAAM,SAAS,GAAG,IAAA,2BAAY,GAAE,CAAA;IAEhC,IAAM,iBAAiB,GAAG,UAAC,KAAc;QACrC,IAAI,KAAK,IAAI,OAAO,EAAE;YAClB,OAAO,CAAC,KAAK,CAAC,CAAA;SACjB;IACL,CAAC,CAAA;IAED,IAAM,eAAe,GAAG,UAAC,CAAsB,EAAE,KAAc;QAC3D,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACnB,iBAAiB,CAAC,KAAK,CAAC,CAAA;SAC3B;IACL,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC;QACN,IAAA,+CAAsB,EAAC,SAAS,CAAC,CAAA;IACrC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEf,OAAO,CACH,8DACK,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAC,EAAc;;YAAb,KAAK,QAAA,EAAE,KAAK,QAAA;QAAM,OAAA,CAC7C,8DACK,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CACjB,uCAAK,SAAS,EAAC,yBAAyB,EAAC,GAAG,EAAE,6BAA2B,KAAO;YAC5E,8BAAC,cAAI,IAAC,OAAO,EAAE,kBAAW,CAAC,QAAQ,EAAE,SAAS,EAAC,eAAe,IAAE,KAAK,CAAQ;YAC5E,KAAK,CAAC,GAAG,CAAC,UAAC,IAAmB,EAAE,KAAa;;gBAAK,OAAA,CAC/C,8BAAC,mBAAQ,IAAC,GAAG,EAAE,mBAAiB,KAAK,SAAI,KAAO,EAC9C,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,cAAc,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EACzD,OAAO,EAAE,cAAM,OAAA,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAA5B,CAA4B,EAC3C,SAAS,EAAE,UAAC,CAAC,IAAK,OAAA,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAA7B,CAA6B,EAC/C,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,YAAY,EAAE;wBACV,IAAI,EAAE,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI;qBAChC,GACD,CACL,CAAA;aAAA,CAAC,CACA,CACT;YACJ,CAAC;gBACE;oBACI,8BAAC,mBAAQ,IAAC,GAAG,EAAE,mBAAiB,KAAK,CAAC,IAAM,EAC1C,SAAS,EAAE,cAAc,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAC1D,OAAO,EAAE,cAAM,OAAA,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAA7B,CAA6B,EAC5C,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,YAAY,EAAE;4BACV,IAAI,EAAE,MAAA,KAAK,CAAC,YAAY,0CAAE,IAAI;yBACjC,GACD,CACH,CAER,CACN,CAAA;KAAA,CAAC,CACH,CACN,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,eAAe,CAAC"}
|