@pixum/combobox 1.0.2 → 1.1.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.d.ts CHANGED
@@ -1,5 +1,5 @@
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;
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,118 +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 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;
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;
118
118
  //# sourceMappingURL=ComboBox.js.map
@@ -1,12 +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;
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,24 +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;
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
24
  //# sourceMappingURL=Options.js.map
@@ -1,13 +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;
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,35 +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;
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
35
  //# sourceMappingURL=OptionsGroup.js.map
@@ -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,53 +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;
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;
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, onClick = _a.onClick, selectedOption = _a.selectedOption, leadingType = _a.leadingType, optionDetails = _a.optionDetails;
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
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,cAAc,oBAAA,EACd,OAAO,aAAA,EACP,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,0BAA0B,IAAE,aAAa,CAAO,CAChE,CACI,CACR,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,eAAe,CAAA"}
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,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;
@@ -1,22 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.scrollOptionToViewport = void 0;
4
- var scrollOptionToViewport = function (isDesktop) {
5
- var comboboxOptions = isDesktop ? document.querySelector('.menu') :
6
- document.querySelector('.combobox__options');
7
- var selectedItem = document.querySelector(".menu-item.selected");
8
- if (selectedItem && comboboxOptions) {
9
- var comboboxOptionsGroup = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.parentElement;
10
- if (comboboxOptionsGroup) {
11
- var stickyHeader = comboboxOptionsGroup === null || comboboxOptionsGroup === void 0 ? void 0 : comboboxOptionsGroup.querySelector('.sticky-header');
12
- var stickyHeaderOffset = stickyHeader === null || stickyHeader === void 0 ? void 0 : stickyHeader.offsetTop;
13
- comboboxOptions === null || comboboxOptions === void 0 ? void 0 : comboboxOptions.scrollTo({ top: stickyHeaderOffset });
14
- }
15
- else {
16
- var selectedItemOffset = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.offsetTop;
17
- comboboxOptions === null || comboboxOptions === void 0 ? void 0 : comboboxOptions.scrollTo({ top: selectedItemOffset });
18
- }
19
- }
20
- };
21
- exports.scrollOptionToViewport = scrollOptionToViewport;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.scrollOptionToViewport = void 0;
4
+ var scrollOptionToViewport = function (isDesktop) {
5
+ var comboboxOptions = isDesktop ? document.querySelector('.menu') :
6
+ document.querySelector('.combobox__options');
7
+ var selectedItem = document.querySelector(".menu-item.selected");
8
+ if (selectedItem && comboboxOptions) {
9
+ var comboboxOptionsGroup = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.parentElement;
10
+ if (comboboxOptionsGroup) {
11
+ var stickyHeader = comboboxOptionsGroup === null || comboboxOptionsGroup === void 0 ? void 0 : comboboxOptionsGroup.querySelector('.sticky-header');
12
+ var stickyHeaderOffset = stickyHeader === null || stickyHeader === void 0 ? void 0 : stickyHeader.offsetTop;
13
+ comboboxOptions === null || comboboxOptions === void 0 ? void 0 : comboboxOptions.scrollTo({ top: stickyHeaderOffset });
14
+ }
15
+ else {
16
+ var selectedItemOffset = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.offsetTop;
17
+ comboboxOptions === null || comboboxOptions === void 0 ? void 0 : comboboxOptions.scrollTo({ top: selectedItemOffset });
18
+ }
19
+ }
20
+ };
21
+ exports.scrollOptionToViewport = scrollOptionToViewport;
22
22
  //# sourceMappingURL=scrollOptionToViewport.js.map