@semcore/select 3.4.24 → 3.5.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 +9 -19
- package/lib/cjs/InputSearch.js +7 -7
- package/lib/cjs/Select.js +34 -49
- package/lib/cjs/Select.js.map +1 -1
- package/lib/cjs/index.d.js.map +1 -1
- package/lib/es6/InputSearch.js +7 -7
- package/lib/es6/Select.js +36 -49
- package/lib/es6/Select.js.map +1 -1
- package/lib/es6/index.d.js.map +1 -1
- package/lib/types/index.d.ts +5 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,32 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
-
## [3.
|
|
5
|
+
## [3.5.1] - 2023-03-06
|
|
6
6
|
|
|
7
7
|
### Changed
|
|
8
8
|
|
|
9
|
-
- Version patch update due to children dependencies update (`@semcore/
|
|
9
|
+
- Version patch update due to children dependencies update (`@semcore/dropdown-menu` [3.6.14 ~> 3.6.15]).
|
|
10
10
|
|
|
11
|
-
## [3.
|
|
11
|
+
## [3.5.0] - 2023-03-03
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
### Fixed
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
- Fixed automatic scrolling to selected option on popper open wasn't working.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
### Added
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
- Added prop `scrollToSelected` to control automatic scroll to selected option on popper open.
|
|
20
20
|
|
|
21
|
-
## [3.4.
|
|
21
|
+
## [3.4.24] - 2023-03-03
|
|
22
22
|
|
|
23
23
|
### Changed
|
|
24
24
|
|
|
25
|
-
- Version patch update due to children dependencies update (`@semcore/base-trigger` [3.5.
|
|
25
|
+
- Version patch update due to children dependencies update (`@semcore/base-trigger` [3.5.4 ~> 3.5.5], `@semcore/icon` [3.13.1 ~> 3.13.2]).
|
|
26
26
|
|
|
27
27
|
## [3.4.16] - 2023-02-13
|
|
28
28
|
|
|
29
|
-
## [3.4.15] - 2023-02-09
|
|
30
|
-
|
|
31
29
|
### Changed
|
|
32
30
|
|
|
33
31
|
- Renamed rounding design token (`--intergalactic-rounded-medium` -> `--intergalactic-control-rounded`).
|
|
@@ -50,14 +48,6 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangel
|
|
|
50
48
|
|
|
51
49
|
- Version patch update due to children dependencies update (`@semcore/dropdown-menu` [3.6.5 ~> 3.6.6]).
|
|
52
50
|
|
|
53
|
-
## [3.4.8] - 2023-01-10
|
|
54
|
-
|
|
55
|
-
## [3.4.7] - 2023-01-09
|
|
56
|
-
|
|
57
|
-
### Changed
|
|
58
|
-
|
|
59
|
-
- Version patch update due to children dependencies update (`@semcore/base-trigger` [3.4.3 ~> 3.4.4], `@semcore/checkbox` [6.3.3 ~> 6.3.4], `@semcore/divider` [3.2.3 ~> 3.2.4], `@semcore/dropdown-menu` [3.6.3 ~> 3.6.4], `@semcore/flex-box` [4.7.3 ~> 4.7.4], `@semcore/icon` [3.5.0 ~> 3.5.1], `@semcore/input` [3.5.3 ~> 3.5.4], `@semcore/utils` [3.44.1 ~> 3.44.2]).
|
|
60
|
-
|
|
61
51
|
## [3.4.2] - 2022-12-21
|
|
62
52
|
|
|
63
53
|
### Fixed
|
package/lib/cjs/InputSearch.js
CHANGED
|
@@ -44,16 +44,16 @@ var style = (
|
|
|
44
44
|
/*__reshadow_css_start__*/
|
|
45
45
|
_core.sstyled.insert(
|
|
46
46
|
/*__inner_css_start__*/
|
|
47
|
-
".
|
|
47
|
+
".___SInputSearch_1c6a0_gg_._size_m_1c6a0_gg_{height:32px}.___SClose_1c6a0_gg_.__hide_1c6a0_gg_{visibility:hidden}.___SOutline_1c6a0_gg_{top:-1px;left:-1px;width:100%;border-radius:var(--intergalactic-control-rounded, 6px) var(--intergalactic-control-rounded, 6px)0 0}"
|
|
48
48
|
/*__inner_css_end__*/
|
|
49
|
-
, "
|
|
49
|
+
, "1c6a0_gg_")
|
|
50
50
|
/*__reshadow_css_end__*/
|
|
51
51
|
, {
|
|
52
|
-
"__SInputSearch": "
|
|
53
|
-
"_size_m": "
|
|
54
|
-
"__SClose": "
|
|
55
|
-
"_hide": "
|
|
56
|
-
"__SOutline": "
|
|
52
|
+
"__SInputSearch": "___SInputSearch_1c6a0_gg_",
|
|
53
|
+
"_size_m": "_size_m_1c6a0_gg_",
|
|
54
|
+
"__SClose": "___SClose_1c6a0_gg_",
|
|
55
|
+
"_hide": "__hide_1c6a0_gg_",
|
|
56
|
+
"__SOutline": "___SOutline_1c6a0_gg_"
|
|
57
57
|
});
|
|
58
58
|
var MAP_SIZE_TO_ICON = {
|
|
59
59
|
m: [_m["default"], _m2["default"]],
|
package/lib/cjs/Select.js
CHANGED
|
@@ -70,17 +70,17 @@ var style = (
|
|
|
70
70
|
/*__reshadow_css_start__*/
|
|
71
71
|
_core.sstyled.insert(
|
|
72
72
|
/*__inner_css_start__*/
|
|
73
|
-
".
|
|
73
|
+
".___SOptionCheckbox_1aeug_gg_{margin-top:var(--intergalactic-spacing-05x, 2px);margin-right:var(--intergalactic-spacing-2x, 8px);margin-bottom:auto;position:relative;flex-shrink:0;width:16px;height:16px}.___SOptionCheckbox_1aeug_gg_::before{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--intergalactic-bg-primary-neutral, #ffffff);border:1px solid;border-radius:var(--intergalactic-addon-rounded, 4px);border-color:var(--intergalactic-border-primary, #c4c7cf)}.___SOptionCheckbox_1aeug_gg_::after{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;margin:0 var(--intergalactic-spacing-05x, 2px);background-repeat:no-repeat;background-position:center center;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iNyIgdmlld0JveD0iMCAwIDEwIDciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik04LjI1IDFMNCA1LjI1TDEuNzUgMyIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==)}.___SOptionCheckbox_1aeug_gg_._size_l_1aeug_gg_{width:20px;height:20px}.___SOptionCheckbox_1aeug_gg_._size_l_1aeug_gg_::after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDEyIDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMSAxLjVMNC43NSA3Ljc1TDEgNCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==)}.___SOptionCheckbox_1aeug_gg_.__checked_1aeug_gg_:before{background-color:var(--intergalactic-control-primary-info, #008ff8);border-color:var(--intergalactic-control-primary-info, #008ff8)}.___SOptionCheckbox_1aeug_gg_.__theme_1aeug_gg_:before{border-color:var(--theme_1aeug)}.___SOptionCheckbox_1aeug_gg_.__theme_1aeug_gg_.__checked_1aeug_gg_:before{background-color:var(--theme_1aeug);border-color:var(--theme_1aeug)}.___SOptionCheckbox_1aeug_gg_.__selected_1aeug_gg_{background-color:var(--intergalactic-dropdown-menu-item-selected, rgba(196, 229, 254, 0.7))}@media (hover:hover){.___SOptionCheckbox_1aeug_gg_.__selected_1aeug_gg_:hover{background-color:var(--intergalactic-dropdown-menu-item-selected-hover, #c4e5fe)}}"
|
|
74
74
|
/*__inner_css_end__*/
|
|
75
|
-
, "
|
|
75
|
+
, "1aeug_gg_")
|
|
76
76
|
/*__reshadow_css_end__*/
|
|
77
77
|
, {
|
|
78
|
-
"__SOptionCheckbox": "
|
|
79
|
-
"_size_l": "
|
|
80
|
-
"_checked": "
|
|
81
|
-
"_theme": "
|
|
82
|
-
"--theme": "--
|
|
83
|
-
"_selected": "
|
|
78
|
+
"__SOptionCheckbox": "___SOptionCheckbox_1aeug_gg_",
|
|
79
|
+
"_size_l": "_size_l_1aeug_gg_",
|
|
80
|
+
"_checked": "__checked_1aeug_gg_",
|
|
81
|
+
"_theme": "__theme_1aeug_gg_",
|
|
82
|
+
"--theme": "--theme_1aeug",
|
|
83
|
+
"_selected": "__selected_1aeug_gg_"
|
|
84
84
|
});
|
|
85
85
|
|
|
86
86
|
function isSelectedOption(value, valueOption) {
|
|
@@ -95,6 +95,15 @@ function getEmptyValue(multiselect) {
|
|
|
95
95
|
return multiselect ? [] : null;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
+
var scrollToNode = function scrollToNode(node) {
|
|
99
|
+
if (!node) return;
|
|
100
|
+
if (!node.scrollIntoView) return;
|
|
101
|
+
node.scrollIntoView({
|
|
102
|
+
block: 'nearest',
|
|
103
|
+
inline: 'nearest'
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
|
|
98
107
|
var RootSelect = /*#__PURE__*/function (_Component) {
|
|
99
108
|
(0, _inherits2["default"])(RootSelect, _Component);
|
|
100
109
|
|
|
@@ -112,6 +121,20 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
112
121
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
113
122
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "firstSelectedOptionRef", /*#__PURE__*/_react["default"].createRef());
|
|
114
123
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "isScrolledToFirstOption", false);
|
|
124
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "lastHandleOptionNodeCall", -1);
|
|
125
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleOptionNode", function (node) {
|
|
126
|
+
if (!_this.asProps.scrollToSelected) return;
|
|
127
|
+
if (Date.now() - _this.lastHandleOptionNodeCall < 30) return;
|
|
128
|
+
_this.lastHandleOptionNodeCall = Date.now();
|
|
129
|
+
setTimeout(function () {
|
|
130
|
+
// in most cases 10ms timeout works perfectly and scrolls before user can see it
|
|
131
|
+
if (_this.asProps.visible) scrollToNode(node);
|
|
132
|
+
}, 10);
|
|
133
|
+
setTimeout(function () {
|
|
134
|
+
// in rare cases 10ms timeout it not enough so 30ms timeout saves the day
|
|
135
|
+
if (_this.asProps.visible) scrollToNode(node);
|
|
136
|
+
}, 30);
|
|
137
|
+
});
|
|
115
138
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "bindHandlerOptionClick", function (optionValue) {
|
|
116
139
|
return function (e) {
|
|
117
140
|
var newValue = optionValue;
|
|
@@ -228,9 +251,8 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
228
251
|
var other = {};
|
|
229
252
|
this._optionSelected = selected;
|
|
230
253
|
|
|
231
|
-
if (selected
|
|
232
|
-
other.ref = this.
|
|
233
|
-
this.isScrolledToFirstOption = true;
|
|
254
|
+
if (selected) {
|
|
255
|
+
other.ref = this.handleOptionNode;
|
|
234
256
|
}
|
|
235
257
|
|
|
236
258
|
return (0, _objectSpread2["default"])({
|
|
@@ -282,44 +304,6 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
282
304
|
return acc;
|
|
283
305
|
}, []) : value;
|
|
284
306
|
}
|
|
285
|
-
}, {
|
|
286
|
-
key: "scrollToSelectedOption",
|
|
287
|
-
value: function scrollToSelectedOption() {
|
|
288
|
-
var _this2 = this;
|
|
289
|
-
|
|
290
|
-
setTimeout(function () {
|
|
291
|
-
var _this2$firstSelectedO;
|
|
292
|
-
|
|
293
|
-
(_this2$firstSelectedO = _this2.firstSelectedOptionRef.current) === null || _this2$firstSelectedO === void 0 ? void 0 : _this2$firstSelectedO.scrollIntoView({
|
|
294
|
-
block: 'nearest',
|
|
295
|
-
inline: 'nearest'
|
|
296
|
-
});
|
|
297
|
-
}, 0);
|
|
298
|
-
}
|
|
299
|
-
}, {
|
|
300
|
-
key: "componentDidMount",
|
|
301
|
-
value: function componentDidMount() {
|
|
302
|
-
var visible = this.asProps.visible;
|
|
303
|
-
|
|
304
|
-
if (visible) {
|
|
305
|
-
this.scrollToSelectedOption();
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
}, {
|
|
309
|
-
key: "componentDidUpdate",
|
|
310
|
-
value: function componentDidUpdate(prevProps, prevState) {
|
|
311
|
-
var visible = this.asProps.visible;
|
|
312
|
-
|
|
313
|
-
if (visible) {
|
|
314
|
-
this.isScrolledToFirstOption = false;
|
|
315
|
-
|
|
316
|
-
if (prevProps.visible === undefined) {
|
|
317
|
-
if (prevState.visible !== visible) this.scrollToSelectedOption();
|
|
318
|
-
} else {
|
|
319
|
-
if (prevProps.visible !== visible) this.scrollToSelectedOption();
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
307
|
}, {
|
|
324
308
|
key: "render",
|
|
325
309
|
value: function render() {
|
|
@@ -363,6 +347,7 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
363
347
|
size: 'm',
|
|
364
348
|
defaultValue: getEmptyValue(props.multiselect),
|
|
365
349
|
defaultVisible: false,
|
|
350
|
+
scrollToSelected: true,
|
|
366
351
|
i18n: _intergalacticDynamicLocales.localizedMessages,
|
|
367
352
|
locale: 'en'
|
|
368
353
|
};
|
package/lib/cjs/Select.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","names":["isSelectedOption","value","valueOption","Array","isArray","includes","isEmptyValue","length","getEmptyValue","multiselect","RootSelect","React","createRef","optionValue","e","newValue","asProps","filter","v","concat","handlers","visible","emptyValue","size","disabled","state","placeholder","options","forwardRef","name","uid","disablePortal","getI18nText","id","undefined","empty","$hiddenRef","active","onClear","handlerClear","children","renderChildrenTrigger","role","props","selected","other","_optionSelected","isScrolledToFirstOption","ref","firstSelectedOptionRef","onClick","bindHandlerOptionClick","hasOption","optionProps","getOptionProps","my","reduce","acc","selectedOption","find","o","push","label","setTimeout","current","scrollIntoView","block","inline","scrollToSelectedOption","prevProps","prevState","Children","advanceMode","findComponent","Select","Trigger","displayName","Popper","logger","warn","DropdownMenu","map","option","i","Component","style","uniqueIDEnhancement","i18nEnhance","localizedMessages","defaultValue","defaultVisible","i18n","locale","isInputTriggerTag","tag","toLowerCase","render","Tag","ButtonTrigger","hasInputTrigger","addonTextChildren","Text","Addon","Checkbox","useBox","SOptionCheckbox","componentProps","theme","styles","sstyled","cn","resolveColor","checked","className","InputSearchWrapper","InputSearch","createComponent","List","Menu","Option","Item","OptionTitle","ItemTitle","OptionHint","ItemHint","Divider","Input","parent","context","selectContext"],"sources":["../../src/Select.jsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport createComponent, { Component, Root, sstyled } from '@semcore/core';\nimport DropdownMenu from '@semcore/dropdown-menu';\nimport { ButtonTrigger } from '@semcore/base-trigger';\nimport Divider from '@semcore/divider';\nimport findComponent from '@semcore/utils/lib/findComponent';\nimport logger from '@semcore/utils/lib/logger';\nimport resolveColor from '@semcore/utils/lib/color';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport InputSearch from './InputSearch';\nimport { useBox } from '@semcore/flex-box';\nimport { selectContext } from './context';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nimport style from './style/select.shadow.css';\n\nfunction isSelectedOption(value, valueOption) {\n return Array.isArray(value) ? value.includes(valueOption) : valueOption === value;\n}\n\nfunction isEmptyValue(value) {\n return Array.isArray(value) ? value.length === 0 : value === null;\n}\n\nfunction getEmptyValue(multiselect) {\n return multiselect ? [] : null;\n}\n\nclass RootSelect extends Component {\n static displayName = 'Select';\n\n static style = style;\n static enhance = [uniqueIDEnhancement(), i18nEnhance(localizedMessages)];\n\n static defaultProps = (props) => ({\n placeholder: props.multiselect ? 'Select options' : 'Select option',\n size: 'm',\n defaultValue: getEmptyValue(props.multiselect),\n defaultVisible: false,\n i18n: localizedMessages,\n locale: 'en',\n });\n\n firstSelectedOptionRef = React.createRef();\n\n isScrolledToFirstOption = false;\n\n uncontrolledProps() {\n return {\n visible: null,\n value: null,\n };\n }\n\n getTriggerProps() {\n const {\n size,\n disabled,\n visible,\n state,\n placeholder,\n value,\n options,\n forwardRef,\n name,\n multiselect,\n uid,\n disablePortal,\n getI18nText,\n } = this.asProps;\n\n return {\n id: `igc-${uid}-trigger`,\n 'aria-controls': visible ? `igc-${uid}-list` : undefined,\n 'aria-flowto': visible && !disablePortal ? `igc-${uid}-list` : undefined,\n 'aria-label': visible && !disablePortal ? getI18nText('triggerHint') : undefined,\n 'aria-haspopup': 'listbox',\n empty: isEmptyValue(value),\n size,\n value,\n name,\n $hiddenRef: forwardRef,\n multiselect,\n state,\n placeholder,\n disabled,\n active: visible,\n onClear: this.handlerClear,\n children: this.renderChildrenTrigger(value, options),\n getI18nText,\n };\n }\n\n getListProps() {\n const { multiselect, uid } = this.asProps;\n return {\n 'aria-multiselectable': multiselect ? 'true' : undefined,\n id: `igc-${uid}-list`,\n role: 'listbox',\n 'aria-label': 'List of options',\n 'aria-flowto': `igc-${uid}-trigger`,\n };\n }\n\n getMenuProps() {\n const { uid, getI18nText } = this.asProps;\n\n return {\n id: `igc-${uid}-list`,\n role: 'listbox',\n 'aria-label': getI18nText('optionsList'),\n 'aria-flowto': `igc-${uid}-trigger`,\n };\n }\n\n getOptionProps(props) {\n const { value, uid } = this.asProps;\n const selected = isSelectedOption(value, props.value);\n const other = {};\n this._optionSelected = selected;\n\n if (selected && !this.isScrolledToFirstOption) {\n other.ref = this.firstSelectedOptionRef;\n this.isScrolledToFirstOption = true;\n }\n\n return {\n selected,\n 'aria-selected': selected ? 'true' : 'false',\n id: `igc-${uid}-option-${props.value}`,\n role: 'option',\n onClick: this.bindHandlerOptionClick(props.value),\n ...other,\n };\n }\n\n getOptionCheckboxProps(props) {\n const { size } = this.asProps;\n const hasOption = props.value === undefined;\n const optionProps = hasOption ? {} : this.getOptionProps(props);\n const selected = this._optionSelected;\n this._optionSelected = null;\n return {\n ...optionProps,\n size,\n selected,\n };\n }\n\n getDividerProps() {\n return { my: 1 };\n }\n\n renderChildrenTrigger(value, options) {\n if (options) {\n return [].concat(value).reduce((acc, value) => {\n const selectedOption = options.find((o) => isSelectedOption(value, o.value));\n if (!selectedOption) return acc;\n if (acc.length) acc.push(', ');\n acc.push(selectedOption.label || selectedOption.value);\n return acc;\n }, []);\n }\n return Array.isArray(value)\n ? value.reduce((acc, value) => {\n if (acc.length) acc.push(', ');\n acc.push(value);\n return acc;\n }, [])\n : value;\n }\n\n bindHandlerOptionClick = (optionValue) => (e) => {\n let newValue = optionValue;\n const { value, multiselect } = this.asProps;\n if (Array.isArray(value)) {\n if (value.includes(optionValue)) {\n newValue = value.filter((v) => v !== optionValue);\n } else {\n newValue = value.concat(optionValue);\n }\n }\n this.handlers.value(newValue, e);\n if (!multiselect) this.handlers.visible(false);\n };\n\n handlerClear = (e) => {\n const { value } = this.asProps;\n const emptyValue = getEmptyValue(Array.isArray(value));\n this.handlers.value(emptyValue, e);\n this.handlers.visible(false);\n };\n\n scrollToSelectedOption() {\n setTimeout(() => {\n this.firstSelectedOptionRef.current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n }, 0);\n }\n\n componentDidMount() {\n const { visible } = this.asProps;\n if (visible) {\n this.scrollToSelectedOption();\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { visible } = this.asProps;\n if (visible) {\n this.isScrolledToFirstOption = false;\n\n if (prevProps.visible === undefined) {\n if (prevState.visible !== visible) this.scrollToSelectedOption();\n } else {\n if (prevProps.visible !== visible) this.scrollToSelectedOption();\n }\n }\n }\n\n render() {\n const { Children, options, multiselect, value, ...other } = this.asProps;\n const advanceMode = findComponent(Children, [\n Select.Trigger.displayName,\n Select.Popper.displayName,\n ]);\n\n logger.warn(\n options && advanceMode,\n \"Don't use at the same time 'options' property and '<Select.Trigger/>/<Select.Popper/>'\",\n other['data-ui-name'] || Select.displayName,\n );\n\n if (options) {\n return (\n <Root render={DropdownMenu}>\n <Select.Trigger {...other} tabIndex={-1} role=\"button\" />\n <Select.Menu>\n {options.map((option, i) => {\n return (\n <Select.Option key={i} id={option.value} aria-selected={value === i} {...option}>\n {multiselect && <Select.Option.Checkbox />}\n {option.children}\n </Select.Option>\n );\n })}\n </Select.Menu>\n </Root>\n );\n }\n\n return (\n <Root render={DropdownMenu}>\n <Children />\n </Root>\n );\n }\n}\n\nconst isInputTriggerTag = (tag) => {\n if (typeof tag === 'string') return tag.toLowerCase().includes('input');\n if (typeof tag === 'object' && tag !== null && typeof tag.displayName === 'string')\n return tag.displayName.toLowerCase().includes('input');\n if (typeof tag === 'object' && tag !== null && typeof tag.render?.displayName === 'string')\n return tag.render.displayName.toLowerCase().includes('input');\n return false;\n};\n\nfunction Trigger({\n Children,\n name,\n uid,\n value,\n $hiddenRef,\n tag: Tag = ButtonTrigger,\n getI18nText,\n}) {\n const hasInputTrigger = isInputTriggerTag(Tag);\n\n return (\n <Root\n render={DropdownMenu.Trigger}\n tag={Tag}\n placeholder={getI18nText('selectPlaceholder')}\n aria-autocomplete={(hasInputTrigger && 'list') || undefined}\n role={(hasInputTrigger && 'combobox') || undefined}\n aria-activedescendant={\n (hasInputTrigger && value && `igc-${uid}-option-${value}`) || undefined\n }\n >\n {addonTextChildren(\n Children,\n Tag.Text || ButtonTrigger.Text,\n Tag.Addon || ButtonTrigger.Addon,\n true,\n )}\n {name && <input type=\"hidden\" defaultValue={value} name={name} ref={$hiddenRef} />}\n </Root>\n );\n}\n\nfunction Checkbox(props) {\n const [SOptionCheckbox, componentProps] = useBox(props, props.forwardRef);\n const { size, theme, selected } = props;\n const styles = sstyled(props.styles);\n\n const { className, style } = styles.cn('SOptionCheckbox', {\n size,\n 'use:theme': resolveColor(theme),\n checked: selected,\n });\n\n return (\n <SOptionCheckbox\n {...componentProps}\n className={cn(className, componentProps.className) || undefined}\n style={{ ...style, ...componentProps.style }}\n role=\"checkbox\"\n tabIndex={0}\n aria-checked={selected}\n />\n );\n}\n\nconst InputSearchWrapper = function () {\n return <Root render={InputSearch} />;\n};\n\nconst Select = createComponent(\n RootSelect,\n {\n Trigger: [\n Trigger,\n {\n Addon: ButtonTrigger.Addon,\n Text: ButtonTrigger.Text,\n },\n ],\n Popper: DropdownMenu.Popper,\n List: DropdownMenu.List,\n Menu: DropdownMenu.Menu,\n Option: [\n DropdownMenu.Item,\n {\n Addon: DropdownMenu.Item.Addon,\n Checkbox,\n },\n ],\n OptionTitle: DropdownMenu.ItemTitle,\n OptionHint: DropdownMenu.ItemHint,\n Divider,\n InputSearch: InputSearchWrapper,\n Input: InputSearchWrapper,\n },\n { parent: DropdownMenu, context: selectContext },\n);\n\nexport default Select;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.js","names":["isSelectedOption","value","valueOption","Array","isArray","includes","isEmptyValue","length","getEmptyValue","multiselect","scrollToNode","node","scrollIntoView","block","inline","RootSelect","React","createRef","asProps","scrollToSelected","Date","now","lastHandleOptionNodeCall","setTimeout","visible","optionValue","e","newValue","filter","v","concat","handlers","emptyValue","size","disabled","state","placeholder","options","forwardRef","name","uid","disablePortal","getI18nText","id","undefined","empty","$hiddenRef","active","onClear","handlerClear","children","renderChildrenTrigger","role","props","selected","other","_optionSelected","ref","handleOptionNode","onClick","bindHandlerOptionClick","hasOption","optionProps","getOptionProps","my","reduce","acc","selectedOption","find","o","push","label","Children","advanceMode","findComponent","Select","Trigger","displayName","Popper","logger","warn","DropdownMenu","map","option","i","Component","style","uniqueIDEnhancement","i18nEnhance","localizedMessages","defaultValue","defaultVisible","i18n","locale","isInputTriggerTag","tag","toLowerCase","render","Tag","ButtonTrigger","hasInputTrigger","addonTextChildren","Text","Addon","Checkbox","useBox","SOptionCheckbox","componentProps","theme","styles","sstyled","cn","resolveColor","checked","className","InputSearchWrapper","InputSearch","createComponent","List","Menu","Option","Item","OptionTitle","ItemTitle","OptionHint","ItemHint","Divider","Input","parent","context","selectContext"],"sources":["../../src/Select.jsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport createComponent, { Component, Root, sstyled } from '@semcore/core';\nimport DropdownMenu from '@semcore/dropdown-menu';\nimport { ButtonTrigger } from '@semcore/base-trigger';\nimport Divider from '@semcore/divider';\nimport findComponent from '@semcore/utils/lib/findComponent';\nimport logger from '@semcore/utils/lib/logger';\nimport resolveColor from '@semcore/utils/lib/color';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport InputSearch from './InputSearch';\nimport { useBox } from '@semcore/flex-box';\nimport { selectContext } from './context';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nimport style from './style/select.shadow.css';\n\nfunction isSelectedOption(value, valueOption) {\n return Array.isArray(value) ? value.includes(valueOption) : valueOption === value;\n}\n\nfunction isEmptyValue(value) {\n return Array.isArray(value) ? value.length === 0 : value === null;\n}\n\nfunction getEmptyValue(multiselect) {\n return multiselect ? [] : null;\n}\n\nconst scrollToNode = (node) => {\n if (!node) return;\n if (!node.scrollIntoView) return;\n node.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n};\n\nclass RootSelect extends Component {\n static displayName = 'Select';\n\n static style = style;\n static enhance = [uniqueIDEnhancement(), i18nEnhance(localizedMessages)];\n\n static defaultProps = (props) => ({\n placeholder: props.multiselect ? 'Select options' : 'Select option',\n size: 'm',\n defaultValue: getEmptyValue(props.multiselect),\n defaultVisible: false,\n scrollToSelected: true,\n i18n: localizedMessages,\n locale: 'en',\n });\n\n firstSelectedOptionRef = React.createRef();\n\n isScrolledToFirstOption = false;\n\n uncontrolledProps() {\n return {\n visible: null,\n value: null,\n };\n }\n\n getTriggerProps() {\n const {\n size,\n disabled,\n visible,\n state,\n placeholder,\n value,\n options,\n forwardRef,\n name,\n multiselect,\n uid,\n disablePortal,\n getI18nText,\n } = this.asProps;\n\n return {\n id: `igc-${uid}-trigger`,\n 'aria-controls': visible ? `igc-${uid}-list` : undefined,\n 'aria-flowto': visible && !disablePortal ? `igc-${uid}-list` : undefined,\n 'aria-label': visible && !disablePortal ? getI18nText('triggerHint') : undefined,\n 'aria-haspopup': 'listbox',\n empty: isEmptyValue(value),\n size,\n value,\n name,\n $hiddenRef: forwardRef,\n multiselect,\n state,\n placeholder,\n disabled,\n active: visible,\n onClear: this.handlerClear,\n children: this.renderChildrenTrigger(value, options),\n getI18nText,\n };\n }\n\n getListProps() {\n const { multiselect, uid } = this.asProps;\n return {\n 'aria-multiselectable': multiselect ? 'true' : undefined,\n id: `igc-${uid}-list`,\n role: 'listbox',\n 'aria-label': 'List of options',\n 'aria-flowto': `igc-${uid}-trigger`,\n };\n }\n\n getMenuProps() {\n const { uid, getI18nText } = this.asProps;\n\n return {\n id: `igc-${uid}-list`,\n role: 'listbox',\n 'aria-label': getI18nText('optionsList'),\n 'aria-flowto': `igc-${uid}-trigger`,\n };\n }\n\n getOptionProps(props) {\n const { value, uid } = this.asProps;\n const selected = isSelectedOption(value, props.value);\n const other = {};\n this._optionSelected = selected;\n\n if (selected) {\n other.ref = this.handleOptionNode;\n }\n\n return {\n selected,\n 'aria-selected': selected ? 'true' : 'false',\n id: `igc-${uid}-option-${props.value}`,\n role: 'option',\n onClick: this.bindHandlerOptionClick(props.value),\n ...other,\n };\n }\n\n lastHandleOptionNodeCall = -1;\n handleOptionNode = (node) => {\n if (!this.asProps.scrollToSelected) return;\n if (Date.now() - this.lastHandleOptionNodeCall < 30) return;\n this.lastHandleOptionNodeCall = Date.now();\n setTimeout(() => {\n // in most cases 10ms timeout works perfectly and scrolls before user can see it\n if (this.asProps.visible) scrollToNode(node);\n }, 10);\n setTimeout(() => {\n // in rare cases 10ms timeout it not enough so 30ms timeout saves the day\n if (this.asProps.visible) scrollToNode(node);\n }, 30);\n };\n\n getOptionCheckboxProps(props) {\n const { size } = this.asProps;\n const hasOption = props.value === undefined;\n const optionProps = hasOption ? {} : this.getOptionProps(props);\n const selected = this._optionSelected;\n this._optionSelected = null;\n return {\n ...optionProps,\n size,\n selected,\n };\n }\n\n getDividerProps() {\n return { my: 1 };\n }\n\n renderChildrenTrigger(value, options) {\n if (options) {\n return [].concat(value).reduce((acc, value) => {\n const selectedOption = options.find((o) => isSelectedOption(value, o.value));\n if (!selectedOption) return acc;\n if (acc.length) acc.push(', ');\n acc.push(selectedOption.label || selectedOption.value);\n return acc;\n }, []);\n }\n return Array.isArray(value)\n ? value.reduce((acc, value) => {\n if (acc.length) acc.push(', ');\n acc.push(value);\n return acc;\n }, [])\n : value;\n }\n\n bindHandlerOptionClick = (optionValue) => (e) => {\n let newValue = optionValue;\n const { value, multiselect } = this.asProps;\n if (Array.isArray(value)) {\n if (value.includes(optionValue)) {\n newValue = value.filter((v) => v !== optionValue);\n } else {\n newValue = value.concat(optionValue);\n }\n }\n this.handlers.value(newValue, e);\n if (!multiselect) this.handlers.visible(false);\n };\n\n handlerClear = (e) => {\n const { value } = this.asProps;\n const emptyValue = getEmptyValue(Array.isArray(value));\n this.handlers.value(emptyValue, e);\n this.handlers.visible(false);\n };\n\n render() {\n const { Children, options, multiselect, value, ...other } = this.asProps;\n const advanceMode = findComponent(Children, [\n Select.Trigger.displayName,\n Select.Popper.displayName,\n ]);\n\n logger.warn(\n options && advanceMode,\n \"Don't use at the same time 'options' property and '<Select.Trigger/>/<Select.Popper/>'\",\n other['data-ui-name'] || Select.displayName,\n );\n\n if (options) {\n return (\n <Root render={DropdownMenu}>\n <Select.Trigger {...other} tabIndex={-1} role=\"button\" />\n <Select.Menu>\n {options.map((option, i) => {\n return (\n <Select.Option key={i} id={option.value} aria-selected={value === i} {...option}>\n {multiselect && <Select.Option.Checkbox />}\n {option.children}\n </Select.Option>\n );\n })}\n </Select.Menu>\n </Root>\n );\n }\n\n return (\n <Root render={DropdownMenu}>\n <Children />\n </Root>\n );\n }\n}\n\nconst isInputTriggerTag = (tag) => {\n if (typeof tag === 'string') return tag.toLowerCase().includes('input');\n if (typeof tag === 'object' && tag !== null && typeof tag.displayName === 'string')\n return tag.displayName.toLowerCase().includes('input');\n if (typeof tag === 'object' && tag !== null && typeof tag.render?.displayName === 'string')\n return tag.render.displayName.toLowerCase().includes('input');\n return false;\n};\n\nfunction Trigger({\n Children,\n name,\n uid,\n value,\n $hiddenRef,\n tag: Tag = ButtonTrigger,\n getI18nText,\n}) {\n const hasInputTrigger = isInputTriggerTag(Tag);\n\n return (\n <Root\n render={DropdownMenu.Trigger}\n tag={Tag}\n placeholder={getI18nText('selectPlaceholder')}\n aria-autocomplete={(hasInputTrigger && 'list') || undefined}\n role={(hasInputTrigger && 'combobox') || undefined}\n aria-activedescendant={\n (hasInputTrigger && value && `igc-${uid}-option-${value}`) || undefined\n }\n >\n {addonTextChildren(\n Children,\n Tag.Text || ButtonTrigger.Text,\n Tag.Addon || ButtonTrigger.Addon,\n true,\n )}\n {name && <input type=\"hidden\" defaultValue={value} name={name} ref={$hiddenRef} />}\n </Root>\n );\n}\n\nfunction Checkbox(props) {\n const [SOptionCheckbox, componentProps] = useBox(props, props.forwardRef);\n const { size, theme, selected } = props;\n const styles = sstyled(props.styles);\n\n const { className, style } = styles.cn('SOptionCheckbox', {\n size,\n 'use:theme': resolveColor(theme),\n checked: selected,\n });\n\n return (\n <SOptionCheckbox\n {...componentProps}\n className={cn(className, componentProps.className) || undefined}\n style={{ ...style, ...componentProps.style }}\n role=\"checkbox\"\n tabIndex={0}\n aria-checked={selected}\n />\n );\n}\n\nconst InputSearchWrapper = function () {\n return <Root render={InputSearch} />;\n};\n\nconst Select = createComponent(\n RootSelect,\n {\n Trigger: [\n Trigger,\n {\n Addon: ButtonTrigger.Addon,\n Text: ButtonTrigger.Text,\n },\n ],\n Popper: DropdownMenu.Popper,\n List: DropdownMenu.List,\n Menu: DropdownMenu.Menu,\n Option: [\n DropdownMenu.Item,\n {\n Addon: DropdownMenu.Item.Addon,\n Checkbox,\n },\n ],\n OptionTitle: DropdownMenu.ItemTitle,\n OptionHint: DropdownMenu.ItemHint,\n Divider,\n InputSearch: InputSearchWrapper,\n Input: InputSearchWrapper,\n },\n { parent: DropdownMenu, context: selectContext },\n);\n\nexport default Select;\n"],"mappings":"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"}
|
package/lib/cjs/index.d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React, { ComponentProps } from 'react';\nimport { CProps, Merge, PropGetterFn, ReturnEl } from '@semcore/core';\nimport DropdownMenu, {\n IDropdownMenuContext,\n IDropdownMenuItemProps,\n IDropdownMenuProps,\n IDropdownMenuHandlers,\n} from '@semcore/dropdown-menu';\nimport { ButtonTrigger, IBaseTriggerProps } from '@semcore/base-trigger';\nimport Divider from '@semcore/divider';\nimport { IInputValueProps } from '@semcore/input';\nimport { IBoxProps } from '@semcore/flex-box';\n\nexport interface ISelectInputSearch extends IInputValueProps {}\n\nexport type OptionValue = string | number;\nexport type SelectValue = string | number | Array<string | number> | null;\n\nexport type SelectOption = {\n value: OptionValue;\n children?: React.ReactNode;\n label?: React.ReactNode;\n};\n\nexport interface ISelectProps<T extends SelectValue = SelectValue>\n extends IDropdownMenuProps,\n IBaseTriggerProps {\n /**\n * Multiple select\n */\n multiselect?: boolean;\n /**\n * Options array\n */\n options?: SelectOption[];\n /**\n * The value or values array selected by default when using multiselect\n * @type SelectValue\n */\n defaultValue?: T;\n /**\n * The selected value or values array when using multiselect\n * @type SelectValue\n */\n value?: T;\n /**\n * Callback on value change\n * @type (value: SelectValue, e: React.SyntheticEvent) => boolean | void\n */\n onChange?: (value: T, e: React.SyntheticEvent) => boolean | void;\n /**\n * Trigger placeholder at not selected value\n */\n placeholder?: React.ReactNode;\n /**\n * Trigger state\n */\n state?: 'normal' | 'valid' | 'invalid';\n /**\n * Disables select\n */\n disabled?: boolean;\n /**\n * Input name\n */\n name?: string;\n locale?: string;\n}\n\nexport interface ISelectOption {\n value?: string | number;\n [key: string]: any;\n}\n\nexport interface ISelectOptionProps extends IDropdownMenuItemProps {\n /** Value of the option */\n value: string | number;\n}\n\nexport interface ISelectOptionCheckboxProps extends ISelectOptionProps {\n /** Checkbox theme */\n theme?: string;\n}\n\ndeclare const InputSearch: <T>(props: ISelectInputSearch & T) => ReturnEl;\n\nexport interface ISelectContext extends IDropdownMenuContext {\n getOptionProps: PropGetterFn;\n getOptionCheckboxProps: PropGetterFn;\n getDividerProps: PropGetterFn;\n}\n\nexport interface ISelectHandlers extends IDropdownMenuHandlers {\n value: (index: SelectValue) => void;\n}\n\ndeclare const Select: (<T, V extends SelectValue = SelectValue>(\n props: CProps<ISelectProps<V> & T, ISelectContext, ISelectHandlers>,\n) => ReturnEl) & {\n Trigger: (<T>(\n props: Merge<\n ComponentProps<typeof DropdownMenu.Trigger>,\n ComponentProps<typeof ButtonTrigger>\n > &\n T,\n ) => ReturnEl) & {\n Addon: typeof ButtonTrigger.Addon;\n Text: typeof ButtonTrigger.Text;\n };\n Popper: typeof DropdownMenu.Popper;\n List: typeof DropdownMenu.List;\n Menu: typeof DropdownMenu.Menu;\n Option: (<T>(\n props: CProps<ISelectOptionProps & T, ISelectContext, ISelectHandlers>,\n ) => ReturnEl) & {\n Addon: typeof DropdownMenu.Item.Addon;\n Checkbox: <T>(\n props: CProps<IBoxProps & { theme?: string; selected?: boolean } & T>,\n ) => ReturnEl;\n };\n OptionTitle: typeof DropdownMenu.ItemTitle;\n OptionHint: typeof DropdownMenu.ItemHint;\n Divider: typeof Divider;\n InputSearch: typeof InputSearch;\n Input: typeof InputSearch;\n};\n\nexport { InputSearch };\nexport default Select;\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React, { ComponentProps } from 'react';\nimport { CProps, Merge, PropGetterFn, ReturnEl } from '@semcore/core';\nimport DropdownMenu, {\n IDropdownMenuContext,\n IDropdownMenuItemProps,\n IDropdownMenuProps,\n IDropdownMenuHandlers,\n} from '@semcore/dropdown-menu';\nimport { ButtonTrigger, IBaseTriggerProps } from '@semcore/base-trigger';\nimport Divider from '@semcore/divider';\nimport { IInputValueProps } from '@semcore/input';\nimport { IBoxProps } from '@semcore/flex-box';\n\nexport interface ISelectInputSearch extends IInputValueProps {}\n\nexport type OptionValue = string | number;\nexport type SelectValue = string | number | Array<string | number> | null;\n\nexport type SelectOption = {\n value: OptionValue;\n children?: React.ReactNode;\n label?: React.ReactNode;\n};\n\nexport interface ISelectProps<T extends SelectValue = SelectValue>\n extends IDropdownMenuProps,\n IBaseTriggerProps {\n /**\n * Multiple select\n */\n multiselect?: boolean;\n /**\n * Options array\n */\n options?: SelectOption[];\n /**\n * The value or values array selected by default when using multiselect\n * @type SelectValue\n */\n defaultValue?: T;\n /**\n * The selected value or values array when using multiselect\n * @type SelectValue\n */\n value?: T;\n /**\n * Callback on value change\n * @type (value: SelectValue, e: React.SyntheticEvent) => boolean | void\n */\n onChange?: (value: T, e: React.SyntheticEvent) => boolean | void;\n /**\n * Trigger placeholder at not selected value\n */\n placeholder?: React.ReactNode;\n /**\n * Trigger state\n */\n state?: 'normal' | 'valid' | 'invalid';\n /**\n * Disables select\n */\n disabled?: boolean;\n /**\n * Input name\n */\n name?: string;\n locale?: string;\n /**\n * If enabled, after opening select popper view will be scrolled to selected option or, if there are multiple selected options, to the first selected option.\n * @default true\n */\n scrollToSelected?: boolean;\n}\n\nexport interface ISelectOption {\n value?: string | number;\n [key: string]: any;\n}\n\nexport interface ISelectOptionProps extends IDropdownMenuItemProps {\n /** Value of the option */\n value: string | number;\n}\n\nexport interface ISelectOptionCheckboxProps extends ISelectOptionProps {\n /** Checkbox theme */\n theme?: string;\n}\n\ndeclare const InputSearch: <T>(props: ISelectInputSearch & T) => ReturnEl;\n\nexport interface ISelectContext extends IDropdownMenuContext {\n getOptionProps: PropGetterFn;\n getOptionCheckboxProps: PropGetterFn;\n getDividerProps: PropGetterFn;\n}\n\nexport interface ISelectHandlers extends IDropdownMenuHandlers {\n value: (index: SelectValue) => void;\n}\n\ndeclare const Select: (<T, V extends SelectValue = SelectValue>(\n props: CProps<ISelectProps<V> & T, ISelectContext, ISelectHandlers>,\n) => ReturnEl) & {\n Trigger: (<T>(\n props: Merge<\n ComponentProps<typeof DropdownMenu.Trigger>,\n ComponentProps<typeof ButtonTrigger>\n > &\n T,\n ) => ReturnEl) & {\n Addon: typeof ButtonTrigger.Addon;\n Text: typeof ButtonTrigger.Text;\n };\n Popper: typeof DropdownMenu.Popper;\n List: typeof DropdownMenu.List;\n Menu: typeof DropdownMenu.Menu;\n Option: (<T>(\n props: CProps<ISelectOptionProps & T, ISelectContext, ISelectHandlers>,\n ) => ReturnEl) & {\n Addon: typeof DropdownMenu.Item.Addon;\n Checkbox: <T>(\n props: CProps<IBoxProps & { theme?: string; selected?: boolean } & T>,\n ) => ReturnEl;\n };\n OptionTitle: typeof DropdownMenu.ItemTitle;\n OptionHint: typeof DropdownMenu.ItemHint;\n Divider: typeof Divider;\n InputSearch: typeof InputSearch;\n Input: typeof InputSearch;\n};\n\nexport { InputSearch };\nexport default Select;\n"],"mappings":""}
|
package/lib/es6/InputSearch.js
CHANGED
|
@@ -21,16 +21,16 @@ var style = (
|
|
|
21
21
|
/*__reshadow_css_start__*/
|
|
22
22
|
_sstyled.insert(
|
|
23
23
|
/*__inner_css_start__*/
|
|
24
|
-
".
|
|
24
|
+
".___SInputSearch_1c6a0_gg_._size_m_1c6a0_gg_{height:32px}.___SClose_1c6a0_gg_.__hide_1c6a0_gg_{visibility:hidden}.___SOutline_1c6a0_gg_{top:-1px;left:-1px;width:100%;border-radius:var(--intergalactic-control-rounded, 6px) var(--intergalactic-control-rounded, 6px)0 0}"
|
|
25
25
|
/*__inner_css_end__*/
|
|
26
|
-
, "
|
|
26
|
+
, "1c6a0_gg_")
|
|
27
27
|
/*__reshadow_css_end__*/
|
|
28
28
|
, {
|
|
29
|
-
"__SInputSearch": "
|
|
30
|
-
"_size_m": "
|
|
31
|
-
"__SClose": "
|
|
32
|
-
"_hide": "
|
|
33
|
-
"__SOutline": "
|
|
29
|
+
"__SInputSearch": "___SInputSearch_1c6a0_gg_",
|
|
30
|
+
"_size_m": "_size_m_1c6a0_gg_",
|
|
31
|
+
"__SClose": "___SClose_1c6a0_gg_",
|
|
32
|
+
"_hide": "__hide_1c6a0_gg_",
|
|
33
|
+
"__SOutline": "___SOutline_1c6a0_gg_"
|
|
34
34
|
});
|
|
35
35
|
var MAP_SIZE_TO_ICON = {
|
|
36
36
|
m: [SearchM, CloseM],
|
package/lib/es6/Select.js
CHANGED
|
@@ -37,17 +37,17 @@ var style = (
|
|
|
37
37
|
/*__reshadow_css_start__*/
|
|
38
38
|
_sstyled.insert(
|
|
39
39
|
/*__inner_css_start__*/
|
|
40
|
-
".
|
|
40
|
+
".___SOptionCheckbox_1aeug_gg_{margin-top:var(--intergalactic-spacing-05x, 2px);margin-right:var(--intergalactic-spacing-2x, 8px);margin-bottom:auto;position:relative;flex-shrink:0;width:16px;height:16px}.___SOptionCheckbox_1aeug_gg_::before{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--intergalactic-bg-primary-neutral, #ffffff);border:1px solid;border-radius:var(--intergalactic-addon-rounded, 4px);border-color:var(--intergalactic-border-primary, #c4c7cf)}.___SOptionCheckbox_1aeug_gg_::after{content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;margin:0 var(--intergalactic-spacing-05x, 2px);background-repeat:no-repeat;background-position:center center;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iNyIgdmlld0JveD0iMCAwIDEwIDciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik04LjI1IDFMNCA1LjI1TDEuNzUgMyIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==)}.___SOptionCheckbox_1aeug_gg_._size_l_1aeug_gg_{width:20px;height:20px}.___SOptionCheckbox_1aeug_gg_._size_l_1aeug_gg_::after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDEyIDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMSAxLjVMNC43NSA3Ljc1TDEgNCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==)}.___SOptionCheckbox_1aeug_gg_.__checked_1aeug_gg_:before{background-color:var(--intergalactic-control-primary-info, #008ff8);border-color:var(--intergalactic-control-primary-info, #008ff8)}.___SOptionCheckbox_1aeug_gg_.__theme_1aeug_gg_:before{border-color:var(--theme_1aeug)}.___SOptionCheckbox_1aeug_gg_.__theme_1aeug_gg_.__checked_1aeug_gg_:before{background-color:var(--theme_1aeug);border-color:var(--theme_1aeug)}.___SOptionCheckbox_1aeug_gg_.__selected_1aeug_gg_{background-color:var(--intergalactic-dropdown-menu-item-selected, rgba(196, 229, 254, 0.7))}@media (hover:hover){.___SOptionCheckbox_1aeug_gg_.__selected_1aeug_gg_:hover{background-color:var(--intergalactic-dropdown-menu-item-selected-hover, #c4e5fe)}}"
|
|
41
41
|
/*__inner_css_end__*/
|
|
42
|
-
, "
|
|
42
|
+
, "1aeug_gg_")
|
|
43
43
|
/*__reshadow_css_end__*/
|
|
44
44
|
, {
|
|
45
|
-
"__SOptionCheckbox": "
|
|
46
|
-
"_size_l": "
|
|
47
|
-
"_checked": "
|
|
48
|
-
"_theme": "
|
|
49
|
-
"--theme": "--
|
|
50
|
-
"_selected": "
|
|
45
|
+
"__SOptionCheckbox": "___SOptionCheckbox_1aeug_gg_",
|
|
46
|
+
"_size_l": "_size_l_1aeug_gg_",
|
|
47
|
+
"_checked": "__checked_1aeug_gg_",
|
|
48
|
+
"_theme": "__theme_1aeug_gg_",
|
|
49
|
+
"--theme": "--theme_1aeug",
|
|
50
|
+
"_selected": "__selected_1aeug_gg_"
|
|
51
51
|
});
|
|
52
52
|
|
|
53
53
|
function isSelectedOption(value, valueOption) {
|
|
@@ -62,6 +62,15 @@ function getEmptyValue(multiselect) {
|
|
|
62
62
|
return multiselect ? [] : null;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
+
var scrollToNode = function scrollToNode(node) {
|
|
66
|
+
if (!node) return;
|
|
67
|
+
if (!node.scrollIntoView) return;
|
|
68
|
+
node.scrollIntoView({
|
|
69
|
+
block: 'nearest',
|
|
70
|
+
inline: 'nearest'
|
|
71
|
+
});
|
|
72
|
+
};
|
|
73
|
+
|
|
65
74
|
var RootSelect = /*#__PURE__*/function (_Component) {
|
|
66
75
|
_inherits(RootSelect, _Component);
|
|
67
76
|
|
|
@@ -82,6 +91,22 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
82
91
|
|
|
83
92
|
_defineProperty(_assertThisInitialized(_this), "isScrolledToFirstOption", false);
|
|
84
93
|
|
|
94
|
+
_defineProperty(_assertThisInitialized(_this), "lastHandleOptionNodeCall", -1);
|
|
95
|
+
|
|
96
|
+
_defineProperty(_assertThisInitialized(_this), "handleOptionNode", function (node) {
|
|
97
|
+
if (!_this.asProps.scrollToSelected) return;
|
|
98
|
+
if (Date.now() - _this.lastHandleOptionNodeCall < 30) return;
|
|
99
|
+
_this.lastHandleOptionNodeCall = Date.now();
|
|
100
|
+
setTimeout(function () {
|
|
101
|
+
// in most cases 10ms timeout works perfectly and scrolls before user can see it
|
|
102
|
+
if (_this.asProps.visible) scrollToNode(node);
|
|
103
|
+
}, 10);
|
|
104
|
+
setTimeout(function () {
|
|
105
|
+
// in rare cases 10ms timeout it not enough so 30ms timeout saves the day
|
|
106
|
+
if (_this.asProps.visible) scrollToNode(node);
|
|
107
|
+
}, 30);
|
|
108
|
+
});
|
|
109
|
+
|
|
85
110
|
_defineProperty(_assertThisInitialized(_this), "bindHandlerOptionClick", function (optionValue) {
|
|
86
111
|
return function (e) {
|
|
87
112
|
var newValue = optionValue;
|
|
@@ -200,9 +225,8 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
200
225
|
var other = {};
|
|
201
226
|
this._optionSelected = selected;
|
|
202
227
|
|
|
203
|
-
if (selected
|
|
204
|
-
other.ref = this.
|
|
205
|
-
this.isScrolledToFirstOption = true;
|
|
228
|
+
if (selected) {
|
|
229
|
+
other.ref = this.handleOptionNode;
|
|
206
230
|
}
|
|
207
231
|
|
|
208
232
|
return _objectSpread({
|
|
@@ -254,44 +278,6 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
254
278
|
return acc;
|
|
255
279
|
}, []) : value;
|
|
256
280
|
}
|
|
257
|
-
}, {
|
|
258
|
-
key: "scrollToSelectedOption",
|
|
259
|
-
value: function scrollToSelectedOption() {
|
|
260
|
-
var _this2 = this;
|
|
261
|
-
|
|
262
|
-
setTimeout(function () {
|
|
263
|
-
var _this2$firstSelectedO;
|
|
264
|
-
|
|
265
|
-
(_this2$firstSelectedO = _this2.firstSelectedOptionRef.current) === null || _this2$firstSelectedO === void 0 ? void 0 : _this2$firstSelectedO.scrollIntoView({
|
|
266
|
-
block: 'nearest',
|
|
267
|
-
inline: 'nearest'
|
|
268
|
-
});
|
|
269
|
-
}, 0);
|
|
270
|
-
}
|
|
271
|
-
}, {
|
|
272
|
-
key: "componentDidMount",
|
|
273
|
-
value: function componentDidMount() {
|
|
274
|
-
var visible = this.asProps.visible;
|
|
275
|
-
|
|
276
|
-
if (visible) {
|
|
277
|
-
this.scrollToSelectedOption();
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}, {
|
|
281
|
-
key: "componentDidUpdate",
|
|
282
|
-
value: function componentDidUpdate(prevProps, prevState) {
|
|
283
|
-
var visible = this.asProps.visible;
|
|
284
|
-
|
|
285
|
-
if (visible) {
|
|
286
|
-
this.isScrolledToFirstOption = false;
|
|
287
|
-
|
|
288
|
-
if (prevProps.visible === undefined) {
|
|
289
|
-
if (prevState.visible !== visible) this.scrollToSelectedOption();
|
|
290
|
-
} else {
|
|
291
|
-
if (prevProps.visible !== visible) this.scrollToSelectedOption();
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
281
|
}, {
|
|
296
282
|
key: "render",
|
|
297
283
|
value: function render() {
|
|
@@ -340,6 +326,7 @@ _defineProperty(RootSelect, "defaultProps", function (props) {
|
|
|
340
326
|
size: 'm',
|
|
341
327
|
defaultValue: getEmptyValue(props.multiselect),
|
|
342
328
|
defaultVisible: false,
|
|
329
|
+
scrollToSelected: true,
|
|
343
330
|
i18n: localizedMessages,
|
|
344
331
|
locale: 'en'
|
|
345
332
|
};
|
package/lib/es6/Select.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","names":["React","cn","createComponent","Component","Root","sstyled","DropdownMenu","ButtonTrigger","Divider","findComponent","logger","resolveColor","addonTextChildren","InputSearch","useBox","selectContext","uniqueIDEnhancement","i18nEnhance","localizedMessages","isSelectedOption","value","valueOption","Array","isArray","includes","isEmptyValue","length","getEmptyValue","multiselect","RootSelect","createRef","optionValue","e","newValue","asProps","filter","v","concat","handlers","visible","emptyValue","size","disabled","state","placeholder","options","forwardRef","name","uid","disablePortal","getI18nText","id","undefined","empty","$hiddenRef","active","onClear","handlerClear","children","renderChildrenTrigger","role","props","selected","other","_optionSelected","isScrolledToFirstOption","ref","firstSelectedOptionRef","onClick","bindHandlerOptionClick","hasOption","optionProps","getOptionProps","my","reduce","acc","selectedOption","find","o","push","label","setTimeout","current","scrollIntoView","block","inline","scrollToSelectedOption","prevProps","prevState","Children","advanceMode","Select","Trigger","displayName","Popper","warn","map","option","i","style","defaultValue","defaultVisible","i18n","locale","isInputTriggerTag","tag","toLowerCase","render","Tag","hasInputTrigger","Text","Addon","Checkbox","SOptionCheckbox","componentProps","theme","styles","checked","className","InputSearchWrapper","List","Menu","Option","Item","OptionTitle","ItemTitle","OptionHint","ItemHint","Input","parent","context"],"sources":["../../src/Select.jsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport createComponent, { Component, Root, sstyled } from '@semcore/core';\nimport DropdownMenu from '@semcore/dropdown-menu';\nimport { ButtonTrigger } from '@semcore/base-trigger';\nimport Divider from '@semcore/divider';\nimport findComponent from '@semcore/utils/lib/findComponent';\nimport logger from '@semcore/utils/lib/logger';\nimport resolveColor from '@semcore/utils/lib/color';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport InputSearch from './InputSearch';\nimport { useBox } from '@semcore/flex-box';\nimport { selectContext } from './context';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nimport style from './style/select.shadow.css';\n\nfunction isSelectedOption(value, valueOption) {\n return Array.isArray(value) ? value.includes(valueOption) : valueOption === value;\n}\n\nfunction isEmptyValue(value) {\n return Array.isArray(value) ? value.length === 0 : value === null;\n}\n\nfunction getEmptyValue(multiselect) {\n return multiselect ? [] : null;\n}\n\nclass RootSelect extends Component {\n static displayName = 'Select';\n\n static style = style;\n static enhance = [uniqueIDEnhancement(), i18nEnhance(localizedMessages)];\n\n static defaultProps = (props) => ({\n placeholder: props.multiselect ? 'Select options' : 'Select option',\n size: 'm',\n defaultValue: getEmptyValue(props.multiselect),\n defaultVisible: false,\n i18n: localizedMessages,\n locale: 'en',\n });\n\n firstSelectedOptionRef = React.createRef();\n\n isScrolledToFirstOption = false;\n\n uncontrolledProps() {\n return {\n visible: null,\n value: null,\n };\n }\n\n getTriggerProps() {\n const {\n size,\n disabled,\n visible,\n state,\n placeholder,\n value,\n options,\n forwardRef,\n name,\n multiselect,\n uid,\n disablePortal,\n getI18nText,\n } = this.asProps;\n\n return {\n id: `igc-${uid}-trigger`,\n 'aria-controls': visible ? `igc-${uid}-list` : undefined,\n 'aria-flowto': visible && !disablePortal ? `igc-${uid}-list` : undefined,\n 'aria-label': visible && !disablePortal ? getI18nText('triggerHint') : undefined,\n 'aria-haspopup': 'listbox',\n empty: isEmptyValue(value),\n size,\n value,\n name,\n $hiddenRef: forwardRef,\n multiselect,\n state,\n placeholder,\n disabled,\n active: visible,\n onClear: this.handlerClear,\n children: this.renderChildrenTrigger(value, options),\n getI18nText,\n };\n }\n\n getListProps() {\n const { multiselect, uid } = this.asProps;\n return {\n 'aria-multiselectable': multiselect ? 'true' : undefined,\n id: `igc-${uid}-list`,\n role: 'listbox',\n 'aria-label': 'List of options',\n 'aria-flowto': `igc-${uid}-trigger`,\n };\n }\n\n getMenuProps() {\n const { uid, getI18nText } = this.asProps;\n\n return {\n id: `igc-${uid}-list`,\n role: 'listbox',\n 'aria-label': getI18nText('optionsList'),\n 'aria-flowto': `igc-${uid}-trigger`,\n };\n }\n\n getOptionProps(props) {\n const { value, uid } = this.asProps;\n const selected = isSelectedOption(value, props.value);\n const other = {};\n this._optionSelected = selected;\n\n if (selected && !this.isScrolledToFirstOption) {\n other.ref = this.firstSelectedOptionRef;\n this.isScrolledToFirstOption = true;\n }\n\n return {\n selected,\n 'aria-selected': selected ? 'true' : 'false',\n id: `igc-${uid}-option-${props.value}`,\n role: 'option',\n onClick: this.bindHandlerOptionClick(props.value),\n ...other,\n };\n }\n\n getOptionCheckboxProps(props) {\n const { size } = this.asProps;\n const hasOption = props.value === undefined;\n const optionProps = hasOption ? {} : this.getOptionProps(props);\n const selected = this._optionSelected;\n this._optionSelected = null;\n return {\n ...optionProps,\n size,\n selected,\n };\n }\n\n getDividerProps() {\n return { my: 1 };\n }\n\n renderChildrenTrigger(value, options) {\n if (options) {\n return [].concat(value).reduce((acc, value) => {\n const selectedOption = options.find((o) => isSelectedOption(value, o.value));\n if (!selectedOption) return acc;\n if (acc.length) acc.push(', ');\n acc.push(selectedOption.label || selectedOption.value);\n return acc;\n }, []);\n }\n return Array.isArray(value)\n ? value.reduce((acc, value) => {\n if (acc.length) acc.push(', ');\n acc.push(value);\n return acc;\n }, [])\n : value;\n }\n\n bindHandlerOptionClick = (optionValue) => (e) => {\n let newValue = optionValue;\n const { value, multiselect } = this.asProps;\n if (Array.isArray(value)) {\n if (value.includes(optionValue)) {\n newValue = value.filter((v) => v !== optionValue);\n } else {\n newValue = value.concat(optionValue);\n }\n }\n this.handlers.value(newValue, e);\n if (!multiselect) this.handlers.visible(false);\n };\n\n handlerClear = (e) => {\n const { value } = this.asProps;\n const emptyValue = getEmptyValue(Array.isArray(value));\n this.handlers.value(emptyValue, e);\n this.handlers.visible(false);\n };\n\n scrollToSelectedOption() {\n setTimeout(() => {\n this.firstSelectedOptionRef.current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n }, 0);\n }\n\n componentDidMount() {\n const { visible } = this.asProps;\n if (visible) {\n this.scrollToSelectedOption();\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { visible } = this.asProps;\n if (visible) {\n this.isScrolledToFirstOption = false;\n\n if (prevProps.visible === undefined) {\n if (prevState.visible !== visible) this.scrollToSelectedOption();\n } else {\n if (prevProps.visible !== visible) this.scrollToSelectedOption();\n }\n }\n }\n\n render() {\n const { Children, options, multiselect, value, ...other } = this.asProps;\n const advanceMode = findComponent(Children, [\n Select.Trigger.displayName,\n Select.Popper.displayName,\n ]);\n\n logger.warn(\n options && advanceMode,\n \"Don't use at the same time 'options' property and '<Select.Trigger/>/<Select.Popper/>'\",\n other['data-ui-name'] || Select.displayName,\n );\n\n if (options) {\n return (\n <Root render={DropdownMenu}>\n <Select.Trigger {...other} tabIndex={-1} role=\"button\" />\n <Select.Menu>\n {options.map((option, i) => {\n return (\n <Select.Option key={i} id={option.value} aria-selected={value === i} {...option}>\n {multiselect && <Select.Option.Checkbox />}\n {option.children}\n </Select.Option>\n );\n })}\n </Select.Menu>\n </Root>\n );\n }\n\n return (\n <Root render={DropdownMenu}>\n <Children />\n </Root>\n );\n }\n}\n\nconst isInputTriggerTag = (tag) => {\n if (typeof tag === 'string') return tag.toLowerCase().includes('input');\n if (typeof tag === 'object' && tag !== null && typeof tag.displayName === 'string')\n return tag.displayName.toLowerCase().includes('input');\n if (typeof tag === 'object' && tag !== null && typeof tag.render?.displayName === 'string')\n return tag.render.displayName.toLowerCase().includes('input');\n return false;\n};\n\nfunction Trigger({\n Children,\n name,\n uid,\n value,\n $hiddenRef,\n tag: Tag = ButtonTrigger,\n getI18nText,\n}) {\n const hasInputTrigger = isInputTriggerTag(Tag);\n\n return (\n <Root\n render={DropdownMenu.Trigger}\n tag={Tag}\n placeholder={getI18nText('selectPlaceholder')}\n aria-autocomplete={(hasInputTrigger && 'list') || undefined}\n role={(hasInputTrigger && 'combobox') || undefined}\n aria-activedescendant={\n (hasInputTrigger && value && `igc-${uid}-option-${value}`) || undefined\n }\n >\n {addonTextChildren(\n Children,\n Tag.Text || ButtonTrigger.Text,\n Tag.Addon || ButtonTrigger.Addon,\n true,\n )}\n {name && <input type=\"hidden\" defaultValue={value} name={name} ref={$hiddenRef} />}\n </Root>\n );\n}\n\nfunction Checkbox(props) {\n const [SOptionCheckbox, componentProps] = useBox(props, props.forwardRef);\n const { size, theme, selected } = props;\n const styles = sstyled(props.styles);\n\n const { className, style } = styles.cn('SOptionCheckbox', {\n size,\n 'use:theme': resolveColor(theme),\n checked: selected,\n });\n\n return (\n <SOptionCheckbox\n {...componentProps}\n className={cn(className, componentProps.className) || undefined}\n style={{ ...style, ...componentProps.style }}\n role=\"checkbox\"\n tabIndex={0}\n aria-checked={selected}\n />\n );\n}\n\nconst InputSearchWrapper = function () {\n return <Root render={InputSearch} />;\n};\n\nconst Select = createComponent(\n RootSelect,\n {\n Trigger: [\n Trigger,\n {\n Addon: ButtonTrigger.Addon,\n Text: ButtonTrigger.Text,\n },\n ],\n Popper: DropdownMenu.Popper,\n List: DropdownMenu.List,\n Menu: DropdownMenu.Menu,\n Option: [\n DropdownMenu.Item,\n {\n Addon: DropdownMenu.Item.Addon,\n Checkbox,\n },\n ],\n OptionTitle: DropdownMenu.ItemTitle,\n OptionHint: DropdownMenu.ItemHint,\n Divider,\n InputSearch: InputSearchWrapper,\n Input: InputSearchWrapper,\n },\n { parent: DropdownMenu, context: selectContext },\n);\n\nexport default Select;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.js","names":["React","cn","createComponent","Component","Root","sstyled","DropdownMenu","ButtonTrigger","Divider","findComponent","logger","resolveColor","addonTextChildren","InputSearch","useBox","selectContext","uniqueIDEnhancement","i18nEnhance","localizedMessages","isSelectedOption","value","valueOption","Array","isArray","includes","isEmptyValue","length","getEmptyValue","multiselect","scrollToNode","node","scrollIntoView","block","inline","RootSelect","createRef","asProps","scrollToSelected","Date","now","lastHandleOptionNodeCall","setTimeout","visible","optionValue","e","newValue","filter","v","concat","handlers","emptyValue","size","disabled","state","placeholder","options","forwardRef","name","uid","disablePortal","getI18nText","id","undefined","empty","$hiddenRef","active","onClear","handlerClear","children","renderChildrenTrigger","role","props","selected","other","_optionSelected","ref","handleOptionNode","onClick","bindHandlerOptionClick","hasOption","optionProps","getOptionProps","my","reduce","acc","selectedOption","find","o","push","label","Children","advanceMode","Select","Trigger","displayName","Popper","warn","map","option","i","style","defaultValue","defaultVisible","i18n","locale","isInputTriggerTag","tag","toLowerCase","render","Tag","hasInputTrigger","Text","Addon","Checkbox","SOptionCheckbox","componentProps","theme","styles","checked","className","InputSearchWrapper","List","Menu","Option","Item","OptionTitle","ItemTitle","OptionHint","ItemHint","Input","parent","context"],"sources":["../../src/Select.jsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport createComponent, { Component, Root, sstyled } from '@semcore/core';\nimport DropdownMenu from '@semcore/dropdown-menu';\nimport { ButtonTrigger } from '@semcore/base-trigger';\nimport Divider from '@semcore/divider';\nimport findComponent from '@semcore/utils/lib/findComponent';\nimport logger from '@semcore/utils/lib/logger';\nimport resolveColor from '@semcore/utils/lib/color';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport InputSearch from './InputSearch';\nimport { useBox } from '@semcore/flex-box';\nimport { selectContext } from './context';\nimport uniqueIDEnhancement from '@semcore/utils/lib/uniqueID';\nimport i18nEnhance from '@semcore/utils/lib/enhances/i18nEnhance';\nimport { localizedMessages } from './translations/__intergalactic-dynamic-locales';\n\nimport style from './style/select.shadow.css';\n\nfunction isSelectedOption(value, valueOption) {\n return Array.isArray(value) ? value.includes(valueOption) : valueOption === value;\n}\n\nfunction isEmptyValue(value) {\n return Array.isArray(value) ? value.length === 0 : value === null;\n}\n\nfunction getEmptyValue(multiselect) {\n return multiselect ? [] : null;\n}\n\nconst scrollToNode = (node) => {\n if (!node) return;\n if (!node.scrollIntoView) return;\n node.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n};\n\nclass RootSelect extends Component {\n static displayName = 'Select';\n\n static style = style;\n static enhance = [uniqueIDEnhancement(), i18nEnhance(localizedMessages)];\n\n static defaultProps = (props) => ({\n placeholder: props.multiselect ? 'Select options' : 'Select option',\n size: 'm',\n defaultValue: getEmptyValue(props.multiselect),\n defaultVisible: false,\n scrollToSelected: true,\n i18n: localizedMessages,\n locale: 'en',\n });\n\n firstSelectedOptionRef = React.createRef();\n\n isScrolledToFirstOption = false;\n\n uncontrolledProps() {\n return {\n visible: null,\n value: null,\n };\n }\n\n getTriggerProps() {\n const {\n size,\n disabled,\n visible,\n state,\n placeholder,\n value,\n options,\n forwardRef,\n name,\n multiselect,\n uid,\n disablePortal,\n getI18nText,\n } = this.asProps;\n\n return {\n id: `igc-${uid}-trigger`,\n 'aria-controls': visible ? `igc-${uid}-list` : undefined,\n 'aria-flowto': visible && !disablePortal ? `igc-${uid}-list` : undefined,\n 'aria-label': visible && !disablePortal ? getI18nText('triggerHint') : undefined,\n 'aria-haspopup': 'listbox',\n empty: isEmptyValue(value),\n size,\n value,\n name,\n $hiddenRef: forwardRef,\n multiselect,\n state,\n placeholder,\n disabled,\n active: visible,\n onClear: this.handlerClear,\n children: this.renderChildrenTrigger(value, options),\n getI18nText,\n };\n }\n\n getListProps() {\n const { multiselect, uid } = this.asProps;\n return {\n 'aria-multiselectable': multiselect ? 'true' : undefined,\n id: `igc-${uid}-list`,\n role: 'listbox',\n 'aria-label': 'List of options',\n 'aria-flowto': `igc-${uid}-trigger`,\n };\n }\n\n getMenuProps() {\n const { uid, getI18nText } = this.asProps;\n\n return {\n id: `igc-${uid}-list`,\n role: 'listbox',\n 'aria-label': getI18nText('optionsList'),\n 'aria-flowto': `igc-${uid}-trigger`,\n };\n }\n\n getOptionProps(props) {\n const { value, uid } = this.asProps;\n const selected = isSelectedOption(value, props.value);\n const other = {};\n this._optionSelected = selected;\n\n if (selected) {\n other.ref = this.handleOptionNode;\n }\n\n return {\n selected,\n 'aria-selected': selected ? 'true' : 'false',\n id: `igc-${uid}-option-${props.value}`,\n role: 'option',\n onClick: this.bindHandlerOptionClick(props.value),\n ...other,\n };\n }\n\n lastHandleOptionNodeCall = -1;\n handleOptionNode = (node) => {\n if (!this.asProps.scrollToSelected) return;\n if (Date.now() - this.lastHandleOptionNodeCall < 30) return;\n this.lastHandleOptionNodeCall = Date.now();\n setTimeout(() => {\n // in most cases 10ms timeout works perfectly and scrolls before user can see it\n if (this.asProps.visible) scrollToNode(node);\n }, 10);\n setTimeout(() => {\n // in rare cases 10ms timeout it not enough so 30ms timeout saves the day\n if (this.asProps.visible) scrollToNode(node);\n }, 30);\n };\n\n getOptionCheckboxProps(props) {\n const { size } = this.asProps;\n const hasOption = props.value === undefined;\n const optionProps = hasOption ? {} : this.getOptionProps(props);\n const selected = this._optionSelected;\n this._optionSelected = null;\n return {\n ...optionProps,\n size,\n selected,\n };\n }\n\n getDividerProps() {\n return { my: 1 };\n }\n\n renderChildrenTrigger(value, options) {\n if (options) {\n return [].concat(value).reduce((acc, value) => {\n const selectedOption = options.find((o) => isSelectedOption(value, o.value));\n if (!selectedOption) return acc;\n if (acc.length) acc.push(', ');\n acc.push(selectedOption.label || selectedOption.value);\n return acc;\n }, []);\n }\n return Array.isArray(value)\n ? value.reduce((acc, value) => {\n if (acc.length) acc.push(', ');\n acc.push(value);\n return acc;\n }, [])\n : value;\n }\n\n bindHandlerOptionClick = (optionValue) => (e) => {\n let newValue = optionValue;\n const { value, multiselect } = this.asProps;\n if (Array.isArray(value)) {\n if (value.includes(optionValue)) {\n newValue = value.filter((v) => v !== optionValue);\n } else {\n newValue = value.concat(optionValue);\n }\n }\n this.handlers.value(newValue, e);\n if (!multiselect) this.handlers.visible(false);\n };\n\n handlerClear = (e) => {\n const { value } = this.asProps;\n const emptyValue = getEmptyValue(Array.isArray(value));\n this.handlers.value(emptyValue, e);\n this.handlers.visible(false);\n };\n\n render() {\n const { Children, options, multiselect, value, ...other } = this.asProps;\n const advanceMode = findComponent(Children, [\n Select.Trigger.displayName,\n Select.Popper.displayName,\n ]);\n\n logger.warn(\n options && advanceMode,\n \"Don't use at the same time 'options' property and '<Select.Trigger/>/<Select.Popper/>'\",\n other['data-ui-name'] || Select.displayName,\n );\n\n if (options) {\n return (\n <Root render={DropdownMenu}>\n <Select.Trigger {...other} tabIndex={-1} role=\"button\" />\n <Select.Menu>\n {options.map((option, i) => {\n return (\n <Select.Option key={i} id={option.value} aria-selected={value === i} {...option}>\n {multiselect && <Select.Option.Checkbox />}\n {option.children}\n </Select.Option>\n );\n })}\n </Select.Menu>\n </Root>\n );\n }\n\n return (\n <Root render={DropdownMenu}>\n <Children />\n </Root>\n );\n }\n}\n\nconst isInputTriggerTag = (tag) => {\n if (typeof tag === 'string') return tag.toLowerCase().includes('input');\n if (typeof tag === 'object' && tag !== null && typeof tag.displayName === 'string')\n return tag.displayName.toLowerCase().includes('input');\n if (typeof tag === 'object' && tag !== null && typeof tag.render?.displayName === 'string')\n return tag.render.displayName.toLowerCase().includes('input');\n return false;\n};\n\nfunction Trigger({\n Children,\n name,\n uid,\n value,\n $hiddenRef,\n tag: Tag = ButtonTrigger,\n getI18nText,\n}) {\n const hasInputTrigger = isInputTriggerTag(Tag);\n\n return (\n <Root\n render={DropdownMenu.Trigger}\n tag={Tag}\n placeholder={getI18nText('selectPlaceholder')}\n aria-autocomplete={(hasInputTrigger && 'list') || undefined}\n role={(hasInputTrigger && 'combobox') || undefined}\n aria-activedescendant={\n (hasInputTrigger && value && `igc-${uid}-option-${value}`) || undefined\n }\n >\n {addonTextChildren(\n Children,\n Tag.Text || ButtonTrigger.Text,\n Tag.Addon || ButtonTrigger.Addon,\n true,\n )}\n {name && <input type=\"hidden\" defaultValue={value} name={name} ref={$hiddenRef} />}\n </Root>\n );\n}\n\nfunction Checkbox(props) {\n const [SOptionCheckbox, componentProps] = useBox(props, props.forwardRef);\n const { size, theme, selected } = props;\n const styles = sstyled(props.styles);\n\n const { className, style } = styles.cn('SOptionCheckbox', {\n size,\n 'use:theme': resolveColor(theme),\n checked: selected,\n });\n\n return (\n <SOptionCheckbox\n {...componentProps}\n className={cn(className, componentProps.className) || undefined}\n style={{ ...style, ...componentProps.style }}\n role=\"checkbox\"\n tabIndex={0}\n aria-checked={selected}\n />\n );\n}\n\nconst InputSearchWrapper = function () {\n return <Root render={InputSearch} />;\n};\n\nconst Select = createComponent(\n RootSelect,\n {\n Trigger: [\n Trigger,\n {\n Addon: ButtonTrigger.Addon,\n Text: ButtonTrigger.Text,\n },\n ],\n Popper: DropdownMenu.Popper,\n List: DropdownMenu.List,\n Menu: DropdownMenu.Menu,\n Option: [\n DropdownMenu.Item,\n {\n Addon: DropdownMenu.Item.Addon,\n Checkbox,\n },\n ],\n OptionTitle: DropdownMenu.ItemTitle,\n OptionHint: DropdownMenu.ItemHint,\n Divider,\n InputSearch: InputSearchWrapper,\n Input: InputSearchWrapper,\n },\n { parent: DropdownMenu, context: selectContext },\n);\n\nexport default Select;\n"],"mappings":"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"}
|
package/lib/es6/index.d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React, { ComponentProps } from 'react';\nimport { CProps, Merge, PropGetterFn, ReturnEl } from '@semcore/core';\nimport DropdownMenu, {\n IDropdownMenuContext,\n IDropdownMenuItemProps,\n IDropdownMenuProps,\n IDropdownMenuHandlers,\n} from '@semcore/dropdown-menu';\nimport { ButtonTrigger, IBaseTriggerProps } from '@semcore/base-trigger';\nimport Divider from '@semcore/divider';\nimport { IInputValueProps } from '@semcore/input';\nimport { IBoxProps } from '@semcore/flex-box';\n\nexport interface ISelectInputSearch extends IInputValueProps {}\n\nexport type OptionValue = string | number;\nexport type SelectValue = string | number | Array<string | number> | null;\n\nexport type SelectOption = {\n value: OptionValue;\n children?: React.ReactNode;\n label?: React.ReactNode;\n};\n\nexport interface ISelectProps<T extends SelectValue = SelectValue>\n extends IDropdownMenuProps,\n IBaseTriggerProps {\n /**\n * Multiple select\n */\n multiselect?: boolean;\n /**\n * Options array\n */\n options?: SelectOption[];\n /**\n * The value or values array selected by default when using multiselect\n * @type SelectValue\n */\n defaultValue?: T;\n /**\n * The selected value or values array when using multiselect\n * @type SelectValue\n */\n value?: T;\n /**\n * Callback on value change\n * @type (value: SelectValue, e: React.SyntheticEvent) => boolean | void\n */\n onChange?: (value: T, e: React.SyntheticEvent) => boolean | void;\n /**\n * Trigger placeholder at not selected value\n */\n placeholder?: React.ReactNode;\n /**\n * Trigger state\n */\n state?: 'normal' | 'valid' | 'invalid';\n /**\n * Disables select\n */\n disabled?: boolean;\n /**\n * Input name\n */\n name?: string;\n locale?: string;\n}\n\nexport interface ISelectOption {\n value?: string | number;\n [key: string]: any;\n}\n\nexport interface ISelectOptionProps extends IDropdownMenuItemProps {\n /** Value of the option */\n value: string | number;\n}\n\nexport interface ISelectOptionCheckboxProps extends ISelectOptionProps {\n /** Checkbox theme */\n theme?: string;\n}\n\ndeclare const InputSearch: <T>(props: ISelectInputSearch & T) => ReturnEl;\n\nexport interface ISelectContext extends IDropdownMenuContext {\n getOptionProps: PropGetterFn;\n getOptionCheckboxProps: PropGetterFn;\n getDividerProps: PropGetterFn;\n}\n\nexport interface ISelectHandlers extends IDropdownMenuHandlers {\n value: (index: SelectValue) => void;\n}\n\ndeclare const Select: (<T, V extends SelectValue = SelectValue>(\n props: CProps<ISelectProps<V> & T, ISelectContext, ISelectHandlers>,\n) => ReturnEl) & {\n Trigger: (<T>(\n props: Merge<\n ComponentProps<typeof DropdownMenu.Trigger>,\n ComponentProps<typeof ButtonTrigger>\n > &\n T,\n ) => ReturnEl) & {\n Addon: typeof ButtonTrigger.Addon;\n Text: typeof ButtonTrigger.Text;\n };\n Popper: typeof DropdownMenu.Popper;\n List: typeof DropdownMenu.List;\n Menu: typeof DropdownMenu.Menu;\n Option: (<T>(\n props: CProps<ISelectOptionProps & T, ISelectContext, ISelectHandlers>,\n ) => ReturnEl) & {\n Addon: typeof DropdownMenu.Item.Addon;\n Checkbox: <T>(\n props: CProps<IBoxProps & { theme?: string; selected?: boolean } & T>,\n ) => ReturnEl;\n };\n OptionTitle: typeof DropdownMenu.ItemTitle;\n OptionHint: typeof DropdownMenu.ItemHint;\n Divider: typeof Divider;\n InputSearch: typeof InputSearch;\n Input: typeof InputSearch;\n};\n\nexport { InputSearch };\nexport default Select;\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React, { ComponentProps } from 'react';\nimport { CProps, Merge, PropGetterFn, ReturnEl } from '@semcore/core';\nimport DropdownMenu, {\n IDropdownMenuContext,\n IDropdownMenuItemProps,\n IDropdownMenuProps,\n IDropdownMenuHandlers,\n} from '@semcore/dropdown-menu';\nimport { ButtonTrigger, IBaseTriggerProps } from '@semcore/base-trigger';\nimport Divider from '@semcore/divider';\nimport { IInputValueProps } from '@semcore/input';\nimport { IBoxProps } from '@semcore/flex-box';\n\nexport interface ISelectInputSearch extends IInputValueProps {}\n\nexport type OptionValue = string | number;\nexport type SelectValue = string | number | Array<string | number> | null;\n\nexport type SelectOption = {\n value: OptionValue;\n children?: React.ReactNode;\n label?: React.ReactNode;\n};\n\nexport interface ISelectProps<T extends SelectValue = SelectValue>\n extends IDropdownMenuProps,\n IBaseTriggerProps {\n /**\n * Multiple select\n */\n multiselect?: boolean;\n /**\n * Options array\n */\n options?: SelectOption[];\n /**\n * The value or values array selected by default when using multiselect\n * @type SelectValue\n */\n defaultValue?: T;\n /**\n * The selected value or values array when using multiselect\n * @type SelectValue\n */\n value?: T;\n /**\n * Callback on value change\n * @type (value: SelectValue, e: React.SyntheticEvent) => boolean | void\n */\n onChange?: (value: T, e: React.SyntheticEvent) => boolean | void;\n /**\n * Trigger placeholder at not selected value\n */\n placeholder?: React.ReactNode;\n /**\n * Trigger state\n */\n state?: 'normal' | 'valid' | 'invalid';\n /**\n * Disables select\n */\n disabled?: boolean;\n /**\n * Input name\n */\n name?: string;\n locale?: string;\n /**\n * If enabled, after opening select popper view will be scrolled to selected option or, if there are multiple selected options, to the first selected option.\n * @default true\n */\n scrollToSelected?: boolean;\n}\n\nexport interface ISelectOption {\n value?: string | number;\n [key: string]: any;\n}\n\nexport interface ISelectOptionProps extends IDropdownMenuItemProps {\n /** Value of the option */\n value: string | number;\n}\n\nexport interface ISelectOptionCheckboxProps extends ISelectOptionProps {\n /** Checkbox theme */\n theme?: string;\n}\n\ndeclare const InputSearch: <T>(props: ISelectInputSearch & T) => ReturnEl;\n\nexport interface ISelectContext extends IDropdownMenuContext {\n getOptionProps: PropGetterFn;\n getOptionCheckboxProps: PropGetterFn;\n getDividerProps: PropGetterFn;\n}\n\nexport interface ISelectHandlers extends IDropdownMenuHandlers {\n value: (index: SelectValue) => void;\n}\n\ndeclare const Select: (<T, V extends SelectValue = SelectValue>(\n props: CProps<ISelectProps<V> & T, ISelectContext, ISelectHandlers>,\n) => ReturnEl) & {\n Trigger: (<T>(\n props: Merge<\n ComponentProps<typeof DropdownMenu.Trigger>,\n ComponentProps<typeof ButtonTrigger>\n > &\n T,\n ) => ReturnEl) & {\n Addon: typeof ButtonTrigger.Addon;\n Text: typeof ButtonTrigger.Text;\n };\n Popper: typeof DropdownMenu.Popper;\n List: typeof DropdownMenu.List;\n Menu: typeof DropdownMenu.Menu;\n Option: (<T>(\n props: CProps<ISelectOptionProps & T, ISelectContext, ISelectHandlers>,\n ) => ReturnEl) & {\n Addon: typeof DropdownMenu.Item.Addon;\n Checkbox: <T>(\n props: CProps<IBoxProps & { theme?: string; selected?: boolean } & T>,\n ) => ReturnEl;\n };\n OptionTitle: typeof DropdownMenu.ItemTitle;\n OptionHint: typeof DropdownMenu.ItemHint;\n Divider: typeof Divider;\n InputSearch: typeof InputSearch;\n Input: typeof InputSearch;\n};\n\nexport { InputSearch };\nexport default Select;\n"],"mappings":""}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -65,6 +65,11 @@ export interface ISelectProps<T extends SelectValue = SelectValue>
|
|
|
65
65
|
*/
|
|
66
66
|
name?: string;
|
|
67
67
|
locale?: string;
|
|
68
|
+
/**
|
|
69
|
+
* If enabled, after opening select popper view will be scrolled to selected option or, if there are multiple selected options, to the first selected option.
|
|
70
|
+
* @default true
|
|
71
|
+
*/
|
|
72
|
+
scrollToSelected?: boolean;
|
|
68
73
|
}
|
|
69
74
|
|
|
70
75
|
export interface ISelectOption {
|