@pixum/combobox 0.28.1 → 0.29.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/lib/ComboBox.js CHANGED
@@ -1,119 +1,118 @@
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 clsx_1 = __importDefault(require("clsx"));
27
- require("./styles.css");
28
- var user_input_1 = require("@pixum/user-input");
29
- var useIsDesktop_1 = require("./helper/useIsDesktop");
30
- var react_2 = require("react");
31
- var bottom_sheet_1 = __importDefault(require("@pixum/bottom-sheet"));
32
- var menu_1 = __importDefault(require("@pixum/menu"));
33
- var ComboBoxOptions_1 = __importDefault(require("./ComboBoxOptions"));
34
- var text_1 = __importStar(require("@pixum/text"));
35
- var ComboBox = function (_a) {
36
- var _b = _a.className, className = _b === void 0 ? '' : _b, headline = _a.headline, label = _a.label, _c = _a.onClick, onClick = _c === void 0 ? function () { } : _c, _d = _a.onChange, onChange = _d === void 0 ? function () { } : _d, _e = _a.onOutsideClick, onOutsideClick = _e === void 0 ? function () { } : _e, _f = _a.onOptionItemClick, onOptionItemClick = _f === void 0 ? function () { } : _f, onSheetClose = _a.onSheetClose, _g = _a.searchPattern, searchPattern = _g === void 0 ? '' : _g, _h = _a.open, open = _h === void 0 ? false : _h, options = _a.options, placeholder = _a.placeholder, value = _a.value, inputMode = _a.inputMode, noResultsText = _a.noResultsText;
37
- var comboBoxRef = (0, react_1.useRef)(null);
38
- var isDesktop = (0, useIsDesktop_1.useIsDesktop)();
39
- var _j = (0, react_2.useState)(''), searchQuery = _j[0], setSearchQuery = _j[1];
40
- var _k = (0, react_2.useState)(''), selectedValue = _k[0], setSelectedValue = _k[1];
41
- var _l = (0, react_2.useState)(placeholder), inputPlaceholder = _l[0], setPlaceholder = _l[1];
42
- var _m = (0, react_2.useState)(open), isOpen = _m[0], setIsOpen = _m[1];
43
- var optionsExist = Object.keys(options).length > 0;
44
- var defaultValue = !selectedValue && value ? value : selectedValue;
45
- var showSelectField = (isDesktop && !isOpen) || !isDesktop;
46
- (0, react_1.useEffect)(function () {
47
- !isOpen && (onSheetClose === null || onSheetClose === void 0 ? void 0 : onSheetClose());
48
- }, [isOpen]);
49
- var handleChange = function (e) {
50
- var searchValue = e.target.value;
51
- setSearchQuery(searchValue);
52
- onChange(searchValue);
53
- };
54
- var handleClearInput = function () {
55
- setIsOpen(true);
56
- setSearchQuery('');
57
- onClick();
58
- };
59
- var handleSelectInputClick = function () {
60
- handleClearInput();
61
- };
62
- var clearAndClose = function () {
63
- setIsOpen(false);
64
- setSearchQuery('');
65
- onOutsideClick();
66
- };
67
- var handleClickOutside = function (event) {
68
- setPlaceholder(placeholder);
69
- if (comboBoxRef.current &&
70
- !comboBoxRef.current.contains(event.target)) {
71
- clearAndClose();
72
- }
73
- };
74
- var handleBottomSheetOnClose = function () {
75
- setIsOpen(false);
76
- };
77
- var handleOptionItemClick = function (optionValue) {
78
- if (optionValue) {
79
- setSelectedValue(optionValue);
80
- onOptionItemClick(optionValue);
81
- }
82
- setIsOpen(false);
83
- };
84
- var handleOnArrowClick = function () {
85
- clearAndClose();
86
- };
87
- var NoResultsTextComponent = function () {
88
- return (react_1.default.createElement(text_1.default, { variant: text_1.TextVariant.SUBHEADLINE, className: "combobox--no-results-text" }, noResultsText));
89
- };
90
- var removePlaceholder = function () {
91
- setPlaceholder('');
92
- };
93
- var handleKeyDown = function (e) {
94
- var _a;
95
- if (e.key === 'Tab') {
96
- e.preventDefault();
97
- (_a = document.querySelector('.combobox__options .menu-item')) === null || _a === void 0 ? void 0 : _a.focus();
98
- }
99
- };
100
- (0, react_1.useEffect)(function () {
101
- document.addEventListener('mousedown', handleClickOutside);
102
- return function () {
103
- document.removeEventListener('mousedown', handleClickOutside);
104
- };
105
- }, []);
106
- return (react_1.default.createElement(react_1.default.Fragment, null,
107
- showSelectField && (react_1.default.createElement(user_input_1.SelectInput, { label: label, value: defaultValue, onClick: handleSelectInputClick, isCompact: true, readOnly: true })),
108
- isDesktop && isOpen && (react_1.default.createElement("div", { className: (0, clsx_1.default)("combobox", className), ref: comboBoxRef },
109
- 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 }),
110
- react_1.default.createElement(menu_1.default, { className: (0, clsx_1.default)('combobox__options') }, optionsExist ? (react_1.default.createElement(ComboBoxOptions_1.default, { options: options, onClick: handleOptionItemClick, selectedOption: defaultValue })) : (react_1.default.createElement(NoResultsTextComponent, null))),
111
- react_1.default.createElement("div", null))),
112
- !isDesktop && isOpen && (react_1.default.createElement(bottom_sheet_1.default, { open: isOpen, onClose: handleBottomSheetOnClose },
113
- react_1.default.createElement("div", { className: "combobox--header" },
114
- react_1.default.createElement(text_1.default, { variant: text_1.TextVariant.HEADLINE, className: "combobox--headline" }, headline),
115
- react_1.default.createElement(user_input_1.SmallSearchInput, { value: searchQuery, pattern: searchPattern, onChange: handleChange, onClear: handleClearInput, onFocus: function () { return removePlaceholder(); }, placeholder: inputPlaceholder, inputMode: inputMode, show: isOpen, isCompact: true })),
116
- react_1.default.createElement("div", { className: "combobox__options scrollable" }, optionsExist ? (react_1.default.createElement(ComboBoxOptions_1.default, { options: options, onClick: handleOptionItemClick, selectedOption: defaultValue })) : (react_1.default.createElement(NoResultsTextComponent, null)))))));
117
- };
118
- exports.default = ComboBox;
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 clsx_1 = __importDefault(require("clsx"));
27
+ require("./styles.css");
28
+ var user_input_1 = require("@pixum/user-input");
29
+ var useIsDesktop_1 = require("./helper/useIsDesktop");
30
+ var react_2 = require("react");
31
+ var bottom_sheet_1 = __importDefault(require("@pixum/bottom-sheet"));
32
+ var ComboboxOptions_1 = __importDefault(require("./ComboboxOptions"));
33
+ var text_1 = __importStar(require("@pixum/text"));
34
+ var ComboBox = function (_a) {
35
+ var _b = _a.className, className = _b === void 0 ? '' : _b, headline = _a.headline, label = _a.label, _c = _a.onClick, onClick = _c === void 0 ? function () { } : _c, _d = _a.onChange, onChange = _d === void 0 ? function () { } : _d, _e = _a.onOutsideClick, onOutsideClick = _e === void 0 ? function () { } : _e, _f = _a.onOptionItemClick, onOptionItemClick = _f === void 0 ? function () { } : _f, onSheetClose = _a.onSheetClose, _g = _a.searchPattern, searchPattern = _g === void 0 ? '' : _g, _h = _a.open, open = _h === void 0 ? false : _h, options = _a.options, placeholder = _a.placeholder, value = _a.value, inputMode = _a.inputMode, noResultsText = _a.noResultsText, leadingType = _a.leadingType, optionDetails = _a.optionDetails, _j = _a.withSearch, withSearch = _j === void 0 ? true : _j;
36
+ var comboBoxRef = (0, react_1.useRef)(null);
37
+ var isDesktop = (0, useIsDesktop_1.useIsDesktop)();
38
+ var _k = (0, react_2.useState)(''), searchQuery = _k[0], setSearchQuery = _k[1];
39
+ var _l = (0, react_2.useState)(''), selectedValue = _l[0], setSelectedValue = _l[1];
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];
42
+ var optionsExist = Object.keys(options).length > 0;
43
+ var defaultValue = !selectedValue && value ? value : selectedValue;
44
+ var showSelectField = !withSearch || (isDesktop && !isOpen) || !isDesktop;
45
+ (0, react_1.useEffect)(function () {
46
+ !isOpen && (onSheetClose === null || onSheetClose === void 0 ? void 0 : onSheetClose());
47
+ }, [isOpen]);
48
+ var handleChange = function (e) {
49
+ var searchValue = e.target.value;
50
+ setSearchQuery(searchValue);
51
+ onChange(searchValue);
52
+ };
53
+ var handleClearInput = function () {
54
+ setIsOpen(true);
55
+ setSearchQuery('');
56
+ onClick();
57
+ };
58
+ var handleSelectInputClick = function () {
59
+ handleClearInput();
60
+ };
61
+ var clearAndClose = function () {
62
+ setIsOpen(false);
63
+ setSearchQuery('');
64
+ onOutsideClick();
65
+ };
66
+ var handleClickOutside = function (event) {
67
+ setPlaceholder(placeholder);
68
+ if (comboBoxRef.current &&
69
+ !comboBoxRef.current.contains(event.target)) {
70
+ clearAndClose();
71
+ }
72
+ };
73
+ var handleBottomSheetOnClose = function () {
74
+ setIsOpen(false);
75
+ };
76
+ var handleOptionItemClick = function (optionValue) {
77
+ if (optionValue) {
78
+ setSelectedValue(optionValue);
79
+ onOptionItemClick(optionValue);
80
+ }
81
+ setIsOpen(false);
82
+ };
83
+ var handleOnArrowClick = function () {
84
+ clearAndClose();
85
+ };
86
+ var NoResultsTextComponent = function () {
87
+ return (react_1.default.createElement(text_1.default, { variant: text_1.TextVariant.SUBHEADLINE, className: "combobox--no-results-text" }, noResultsText));
88
+ };
89
+ var removePlaceholder = function () {
90
+ setPlaceholder('');
91
+ };
92
+ var handleKeyDown = function (e) {
93
+ var _a;
94
+ if (e.key === 'Tab') {
95
+ e.preventDefault();
96
+ (_a = document.querySelector('.combobox__options .menu-item')) === null || _a === void 0 ? void 0 : _a.focus();
97
+ }
98
+ };
99
+ (0, react_1.useEffect)(function () {
100
+ document.addEventListener('mousedown', handleClickOutside);
101
+ return function () {
102
+ document.removeEventListener('mousedown', handleClickOutside);
103
+ };
104
+ }, []);
105
+ return (react_1.default.createElement(react_1.default.Fragment, null,
106
+ showSelectField && (react_1.default.createElement(user_input_1.SelectInput, { label: label, value: defaultValue, onClick: handleSelectInputClick, isCompact: true, readOnly: true })),
107
+ isDesktop && isOpen && (react_1.default.createElement("div", { className: (0, clsx_1.default)("combobox", className), ref: comboBoxRef },
108
+ 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: defaultValue, leadingType: leadingType, optionDetails: optionDetails })) : (react_1.default.createElement(NoResultsTextComponent, null)),
110
+ react_1.default.createElement("div", null))),
111
+ !isDesktop && isOpen && (react_1.default.createElement(bottom_sheet_1.default, { open: isOpen, onClose: handleBottomSheetOnClose },
112
+ react_1.default.createElement("div", { className: "combobox--header" },
113
+ react_1.default.createElement(text_1.default, { variant: text_1.TextVariant.HEADLINE, className: "combobox--headline" }, headline),
114
+ 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: defaultValue, leadingType: leadingType, optionDetails: optionDetails })) : (react_1.default.createElement(NoResultsTextComponent, null)))))));
116
+ };
117
+ exports.default = ComboBox;
119
118
  //# sourceMappingURL=ComboBox.js.map
@@ -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,qDAA8B;AAC9B,sEAA+C;AAC/C,kDAA+C;AAE/C,IAAM,QAAQ,GAA4B,UAAC,EAgB1C;QAfC,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,QAAQ,cAAA,EACR,KAAK,WAAA,EACL,eAAkB,EAAlB,OAAO,mBAAG,cAAO,CAAC,KAAA,EAClB,gBAAmB,EAAnB,QAAQ,mBAAG,cAAO,CAAC,KAAA,EACnB,sBAAyB,EAAzB,cAAc,mBAAG,cAAO,CAAC,KAAA,EACzB,yBAA4B,EAA5B,iBAAiB,mBAAG,cAAO,CAAC,KAAA,EAC5B,YAAY,kBAAA,EACZ,qBAAkB,EAAlB,aAAa,mBAAG,EAAE,KAAA,EAClB,YAAY,EAAZ,IAAI,mBAAG,KAAK,KAAA,EACZ,OAAO,aAAA,EACP,WAAW,iBAAA,EACX,KAAK,WAAA,EACL,SAAS,eAAA,EACT,aAAa,mBAAA;IAEb,IAAM,WAAW,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAA;IAChD,IAAM,SAAS,GAAG,IAAA,2BAAY,GAAE,CAAA;IAC1B,IAAA,KAAgC,IAAA,gBAAQ,EAAC,EAAE,CAAC,EAA3C,WAAW,QAAA,EAAE,cAAc,QAAgB,CAAA;IAC5C,IAAA,KAAoC,IAAA,gBAAQ,EAAC,EAAE,CAAC,EAA/C,aAAa,QAAA,EAAE,gBAAgB,QAAgB,CAAA;IAChD,IAAA,KAAqC,IAAA,gBAAQ,EAAC,WAAW,CAAC,EAAzD,gBAAgB,QAAA,EAAE,cAAc,QAAyB,CAAA;IAC1D,IAAA,KAAsB,IAAA,gBAAQ,EAAC,IAAI,CAAC,EAAnC,MAAM,QAAA,EAAE,SAAS,QAAkB,CAAA;IAC1C,IAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IACpD,IAAM,YAAY,GAAG,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAA;IACpE,IAAM,eAAe,GAAG,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAA;IAE5D,IAAA,iBAAS,EAAC;QACR,CAAC,MAAM,KAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,EAAI,CAAA,CAAA;IAC7B,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IAEZ,IAAM,YAAY,GAAG,UAAC,CAAsC;QAClD,IAAO,WAAW,GAAK,CAAC,CAAC,MAAM,MAAb,CAAa;QAEvC,cAAc,CAAC,WAAW,CAAC,CAAA;QAC3B,QAAQ,CAAC,WAAW,CAAC,CAAA;IACvB,CAAC,CAAA;IAED,IAAM,gBAAgB,GAAG;QACvB,SAAS,CAAC,IAAI,CAAC,CAAA;QACf,cAAc,CAAC,EAAE,CAAC,CAAA;QAClB,OAAO,EAAE,CAAA;IACX,CAAC,CAAA;IAED,IAAM,sBAAsB,GAAG;QAC7B,gBAAgB,EAAE,CAAA;IACpB,CAAC,CAAA;IAED,IAAM,aAAa,GAAG;QACpB,SAAS,CAAC,KAAK,CAAC,CAAA;QAChB,cAAc,CAAC,EAAE,CAAC,CAAA;QAClB,cAAc,EAAE,CAAA;IAClB,CAAC,CAAA;IAED,IAAM,kBAAkB,GAAG,UAAC,KAAiB;QAC3C,cAAc,CAAC,WAAW,CAAC,CAAA;QAC3B,IACE,WAAW,CAAC,OAAO;YACnB,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EACnD;YACA,aAAa,EAAE,CAAA;SAChB;IACH,CAAC,CAAA;IAED,IAAM,wBAAwB,GAAG;QAC/B,SAAS,CAAC,KAAK,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,IAAM,qBAAqB,GAAG,UAAC,WAAoB;QACjD,IAAI,WAAW,EAAE;YACf,gBAAgB,CAAC,WAAW,CAAC,CAAA;YAC7B,iBAAiB,CAAC,WAAW,CAAC,CAAA;SAC/B;QAED,SAAS,CAAC,KAAK,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,IAAM,kBAAkB,GAAG;QACzB,aAAa,EAAE,CAAA;IACjB,CAAC,CAAA;IAED,IAAM,sBAAsB,GAAG;QAC7B,OAAO,CACL,8BAAC,cAAI,IAAC,OAAO,EAAE,kBAAW,CAAC,WAAW,EAAE,SAAS,EAAC,2BAA2B,IAC1E,aAAa,CACT,CACR,CAAA;IACH,CAAC,CAAA;IAED,IAAM,iBAAiB,GAAG;QACxB,cAAc,CAAC,EAAE,CAAC,CAAA;IACpB,CAAC,CAAA;IAED,IAAM,aAAa,GAAG,UAAC,CAAwC;;QAC7D,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE;YACjB,CAAC,CAAC,cAAc,EAAE,CAAC;YACrB,MAAC,QAAQ,CAAC,aAAa,CAAC,+BAA+B,CAAiB,0CAAE,KAAK,EAAE,CAAC;SACnF;IACH,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC;QACR,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;QAE1D,OAAO;YACL,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;QAC/D,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,CACL;QACG,eAAe,IAAI,CAClB,8BAAC,wBAAW,IACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,sBAAsB,EAC/B,SAAS,QACT,QAAQ,SACR,CACH;QACA,SAAS,IAAI,MAAM,IAAI,CACtB,uCAAK,SAAS,EAAE,IAAA,cAAI,EAAC,UAAU,EAAE,SAAS,CAAC,EAAE,GAAG,EAAE,WAAW;YAC3D,8BAAC,6BAAgB,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,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,EACpB,SAAS,QACT,SAAS,SACT;YAEF,8BAAC,cAAI,IAAC,SAAS,EAAE,IAAA,cAAI,EAAC,mBAAmB,CAAC,IACvC,YAAY,CAAC,CAAC,CAAC,CACd,8BAAC,yBAAe,IACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,qBAAqB,EAC9B,cAAc,EAAE,YAAY,GAC5B,CACH,CAAC,CAAC,CAAC,CACF,8BAAC,sBAAsB,OAAG,CAC3B,CACI;YACP,0CAAO,CACH,CACP;QACA,CAAC,SAAS,IAAI,MAAM,IAAI,CACvB,8BAAC,sBAAW,IAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB;YAC1D,uCAAK,SAAS,EAAC,kBAAkB;gBAC/B,8BAAC,cAAI,IAAC,OAAO,EAAE,kBAAW,CAAC,QAAQ,EAAE,SAAS,EAAC,oBAAoB,IAChE,QAAQ,CACJ;gBACP,8BAAC,6BAAgB,IACf,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,cAAM,OAAA,iBAAiB,EAAE,EAAnB,CAAmB,EAClC,WAAW,EAAE,gBAAgB,EAC7B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,MAAM,EACZ,SAAS,SACT,CACE;YACN,uCAAK,SAAS,EAAC,8BAA8B,IAC1C,YAAY,CAAC,CAAC,CAAC,CACd,8BAAC,yBAAe,IACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,qBAAqB,EAC9B,cAAc,EAAE,YAAY,GAC5B,CACH,CAAC,CAAC,CAAC,CACF,8BAAC,sBAAsB,OAAG,CAC3B,CACG,CACM,CACf,CACA,CACJ,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"ComboBox.js","sourceRoot":"","sources":["../src/ComboBox.tsx"],"names":[],"mappings":"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"}
@@ -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,65 +1,65 @@
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;
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
65
  //# sourceMappingURL=ComboBoxOptions.js.map
@@ -0,0 +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
+ onKeyDown: (e: React.KeyboardEvent, value?: string) => void;
9
+ leadingType?: LeadingType;
10
+ }
11
+ declare const Options: React.FC<OptionsProps>;
12
+ export default Options;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var menu_item_1 = __importDefault(require("@pixum/menu-item"));
7
+ var clsx_1 = __importDefault(require("clsx"));
8
+ var react_1 = __importDefault(require("react"));
9
+ var Options = function (_a) {
10
+ var items = _a.items, selectedOption = _a.selectedOption, onClick = _a.onClick, onKeyDown = _a.onKeyDown, leadingType = _a.leadingType;
11
+ return (react_1.default.createElement(react_1.default.Fragment, null, items.map(function (item, index) {
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
14
+ ? {
15
+ name: item.text,
16
+ type: leadingType,
17
+ }
18
+ : undefined, selected: selectedOption === item.text, text: item.text, subtext: item.subtext, subItemProps: {
19
+ text: (_a = item.subItemProps) === null || _a === void 0 ? void 0 : _a.text,
20
+ } }));
21
+ })));
22
+ };
23
+ exports.default = Options;
24
+ //# sourceMappingURL=Options.js.map
@@ -0,0 +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;AA1BK,CA0BL,CAAA;AAED,kBAAe,OAAO,CAAA"}
@@ -0,0 +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
+ onKeyDown: (e: React.KeyboardEvent, value?: string) => void;
10
+ leadingType?: LeadingType;
11
+ }
12
+ declare const OptionsGroup: React.FC<OptionsGroupProps>;
13
+ export default OptionsGroup;
@@ -0,0 +1,35 @@
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 text_1 = __importStar(require("@pixum/text"));
26
+ var react_1 = __importDefault(require("react"));
27
+ var Options_1 = __importDefault(require("./Options"));
28
+ var OptionsGroup = function (_a) {
29
+ var group = _a.group, items = _a.items, selectedOption = _a.selectedOption, onClick = _a.onClick, onKeyDown = _a.onKeyDown, leadingType = _a.leadingType;
30
+ return (react_1.default.createElement("div", { className: "combobox__options-group", key: "combobox__options-group-" + group },
31
+ react_1.default.createElement(text_1.default, { variant: text_1.TextVariant.HEADLINE, className: "combobox__sticky-header" }, group),
32
+ react_1.default.createElement(Options_1.default, { items: items, selectedOption: selectedOption, onClick: onClick, onKeyDown: onKeyDown, leadingType: leadingType })));
33
+ };
34
+ exports.default = OptionsGroup;
35
+ //# sourceMappingURL=OptionsGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptionsGroup.js","sourceRoot":"","sources":["../../src/ComboboxOptions/OptionsGroup.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAA+C;AAC/C,gDAAyB;AACzB,sDAA+B;AAY/B,IAAM,YAAY,GAAgC,UAAC,EAOlD;QANC,KAAK,WAAA,EACL,KAAK,WAAA,EACL,cAAc,oBAAA,EACd,OAAO,aAAA,EACP,SAAS,eAAA,EACT,WAAW,iBAAA;IACP,OAAA,CACJ,uCACE,SAAS,EAAC,yBAAyB,EACnC,GAAG,EAAE,6BAA2B,KAAO;QAEvC,8BAAC,cAAI,IAAC,OAAO,EAAE,kBAAW,CAAC,QAAQ,EAAE,SAAS,EAAC,yBAAyB,IACrE,KAAK,CACD;QACP,8BAAC,iBAAO,IACN,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,GACxB,CACE,CACP;AAhBK,CAgBL,CAAA;AAED,kBAAe,YAAY,CAAA"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ComboBoxOptionsProps } from '../types';
3
+ declare const ComboBoxOptions: React.FC<ComboBoxOptionsProps>;
4
+ export default ComboBoxOptions;
@@ -0,0 +1,53 @@
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 menu_1 = __importDefault(require("@pixum/menu"));
27
+ var useIsDesktop_1 = require("../helper/useIsDesktop");
28
+ var scrollOptionToViewport_1 = require("../helper/scrollOptionToViewport");
29
+ var OptionsGroup_1 = __importDefault(require("./OptionsGroup"));
30
+ var Options_1 = __importDefault(require("./Options"));
31
+ var ComboBoxOptions = function (_a) {
32
+ var options = _a.options, selectedOption = _a.selectedOption, onClick = _a.onClick, leadingType = _a.leadingType, optionDetails = _a.optionDetails, _b = _a.withSearch, withSearch = _b === void 0 ? true : _b;
33
+ var isDesktop = (0, useIsDesktop_1.useIsDesktop)();
34
+ var handleOnItemClick = function (value) {
35
+ value && (onClick === null || onClick === void 0 ? void 0 : onClick(value));
36
+ };
37
+ var handleOnKeyDown = function (e, value) {
38
+ if (e.key === 'Enter') {
39
+ handleOnItemClick(value);
40
+ }
41
+ };
42
+ (0, react_1.useEffect)(function () {
43
+ (0, scrollOptionToViewport_1.scrollOptionToViewport)(isDesktop);
44
+ }, [isDesktop]);
45
+ return (react_1.default.createElement(menu_1.default, { className: "combobox__options" },
46
+ Array.isArray(options) ? (react_1.default.createElement(Options_1.default, { items: options, selectedOption: selectedOption, onClick: handleOnItemClick, onKeyDown: handleOnKeyDown, leadingType: leadingType })) : (react_1.default.createElement(react_1.default.Fragment, null, Object.entries(options).map(function (_a) {
47
+ var group = _a[0], items = _a[1];
48
+ return (react_1.default.createElement(OptionsGroup_1.default, { group: group, items: items, selectedOption: selectedOption, onClick: handleOnItemClick, onKeyDown: handleOnKeyDown, leadingType: leadingType }));
49
+ }))),
50
+ optionDetails && (react_1.default.createElement("div", { className: "combobox__option-details" }, optionDetails))));
51
+ };
52
+ exports.default = ComboBoxOptions;
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ComboboxOptions/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAwC;AACxC,qDAA8B;AAG9B,uDAAqD;AACrD,2EAAyE;AACzE,gEAAyC;AACzC,sDAA+B;AAE/B,IAAM,eAAe,GAAmC,UAAC,EAOxD;QANC,OAAO,aAAA,EACP,cAAc,oBAAA,EACd,OAAO,aAAA,EACP,WAAW,iBAAA,EACX,aAAa,mBAAA,EACb,kBAAiB,EAAjB,UAAU,mBAAG,IAAI,KAAA;IAEjB,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,0BAA0B,IAAE,aAAa,CAAO,CAChE,CACI,CACR,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,eAAe,CAAA"}
@@ -1 +1 @@
1
- export declare const calculateListMaxHeight: () => number;
1
+ export declare const calculateListMaxHeight: () => number;
@@ -1,12 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateListMaxHeight = void 0;
4
- var calculateListMaxHeight = function () {
5
- var windowHeight = window.innerHeight;
6
- var headerHeight = 50;
7
- var inputFieldHeight = 35;
8
- var maxListHeight = windowHeight - headerHeight - inputFieldHeight;
9
- return maxListHeight;
10
- };
11
- exports.calculateListMaxHeight = calculateListMaxHeight;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateListMaxHeight = void 0;
4
+ var calculateListMaxHeight = function () {
5
+ var windowHeight = window.innerHeight;
6
+ var headerHeight = 50;
7
+ var inputFieldHeight = 35;
8
+ var maxListHeight = windowHeight - headerHeight - inputFieldHeight;
9
+ return maxListHeight;
10
+ };
11
+ exports.calculateListMaxHeight = calculateListMaxHeight;
12
12
  //# sourceMappingURL=calculateListMaxHeight.js.map
@@ -1 +1 @@
1
- export declare const scrollOptionToViewport: (isDesktop: boolean) => void;
1
+ export declare const scrollOptionToViewport: (isDesktop: boolean) => void;