@semcore/select 3.4.24 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,32 +2,24 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
- ## [3.4.24] - 2023-03-03
6
-
7
- ### Changed
8
-
9
- - 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]).
5
+ ## [3.5.0] - 2023-03-03
10
6
 
11
- ## [3.4.22] - 2023-03-01
12
-
13
- ## [3.4.21] - 2023-02-24
7
+ ### Fixed
14
8
 
15
- ### Changed
9
+ - Fixed automatic scrolling to selected option on popper open wasn't working.
16
10
 
17
- - Version patch update due to children dependencies update (`@semcore/base-trigger` [3.5.2 ~> 3.5.3], `@semcore/icon` [3.12.0 ~> 3.13.0]).
11
+ ### Added
18
12
 
19
- ## [3.4.20] - 2023-02-22
13
+ - Added prop `scrollToSelected` to control automatic scroll to selected option on popper open.
20
14
 
21
- ## [3.4.19] - 2023-02-21
15
+ ## [3.4.24] - 2023-03-03
22
16
 
23
17
  ### Changed
24
18
 
25
- - Version patch update due to children dependencies update (`@semcore/base-trigger` [3.5.0 ~> 3.5.1], `@semcore/checkbox` [6.4.0 ~> 6.4.1], `@semcore/divider` [3.2.9 ~> 3.2.10], `@semcore/dropdown-menu` [3.6.11 ~> 3.6.12], `@semcore/flex-box` [4.7.9 ~> 4.7.10], `@semcore/icon` [3.10.1 ~> 3.10.2], `@semcore/input` [3.5.9 ~> 3.5.10], `@semcore/utils` [3.47.0 ~> 3.47.1]).
19
+ - 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
20
 
27
21
  ## [3.4.16] - 2023-02-13
28
22
 
29
- ## [3.4.15] - 2023-02-09
30
-
31
23
  ### Changed
32
24
 
33
25
  - Renamed rounding design token (`--intergalactic-rounded-medium` -> `--intergalactic-control-rounded`).
@@ -50,14 +42,6 @@ CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangel
50
42
 
51
43
  - Version patch update due to children dependencies update (`@semcore/dropdown-menu` [3.6.5 ~> 3.6.6]).
52
44
 
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
45
  ## [3.4.2] - 2022-12-21
62
46
 
63
47
  ### Fixed
@@ -44,16 +44,16 @@ var style = (
44
44
  /*__reshadow_css_start__*/
45
45
  _core.sstyled.insert(
46
46
  /*__inner_css_start__*/
47
- ".___SInputSearch_1weyh_gg_._size_m_1weyh_gg_{height:32px}.___SClose_1weyh_gg_.__hide_1weyh_gg_{visibility:hidden}.___SOutline_1weyh_gg_{top:-1px;left:-1px;width:100%;border-radius:var(--intergalactic-control-rounded, 6px) var(--intergalactic-control-rounded, 6px)0 0}"
47
+ ".___SInputSearch_1fogq_gg_._size_m_1fogq_gg_{height:32px}.___SClose_1fogq_gg_.__hide_1fogq_gg_{visibility:hidden}.___SOutline_1fogq_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
- , "1weyh_gg_")
49
+ , "1fogq_gg_")
50
50
  /*__reshadow_css_end__*/
51
51
  , {
52
- "__SInputSearch": "___SInputSearch_1weyh_gg_",
53
- "_size_m": "_size_m_1weyh_gg_",
54
- "__SClose": "___SClose_1weyh_gg_",
55
- "_hide": "__hide_1weyh_gg_",
56
- "__SOutline": "___SOutline_1weyh_gg_"
52
+ "__SInputSearch": "___SInputSearch_1fogq_gg_",
53
+ "_size_m": "_size_m_1fogq_gg_",
54
+ "__SClose": "___SClose_1fogq_gg_",
55
+ "_hide": "__hide_1fogq_gg_",
56
+ "__SOutline": "___SOutline_1fogq_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
- ".___SOptionCheckbox_w3xgc_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_w3xgc_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_w3xgc_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_w3xgc_gg_._size_l_w3xgc_gg_{width:20px;height:20px}.___SOptionCheckbox_w3xgc_gg_._size_l_w3xgc_gg_::after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDEyIDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMSAxLjVMNC43NSA3Ljc1TDEgNCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==)}.___SOptionCheckbox_w3xgc_gg_.__checked_w3xgc_gg_:before{background-color:var(--intergalactic-control-primary-info, #008ff8);border-color:var(--intergalactic-control-primary-info, #008ff8)}.___SOptionCheckbox_w3xgc_gg_.__theme_w3xgc_gg_:before{border-color:var(--theme_w3xgc)}.___SOptionCheckbox_w3xgc_gg_.__theme_w3xgc_gg_.__checked_w3xgc_gg_:before{background-color:var(--theme_w3xgc);border-color:var(--theme_w3xgc)}.___SOptionCheckbox_w3xgc_gg_.__selected_w3xgc_gg_{background-color:var(--intergalactic-dropdown-menu-item-selected, rgba(196, 229, 254, 0.7))}@media (hover:hover){.___SOptionCheckbox_w3xgc_gg_.__selected_w3xgc_gg_:hover{background-color:var(--intergalactic-dropdown-menu-item-selected-hover, #c4e5fe)}}"
73
+ ".___SOptionCheckbox_unw7l_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_unw7l_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_unw7l_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_unw7l_gg_._size_l_unw7l_gg_{width:20px;height:20px}.___SOptionCheckbox_unw7l_gg_._size_l_unw7l_gg_::after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDEyIDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMSAxLjVMNC43NSA3Ljc1TDEgNCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==)}.___SOptionCheckbox_unw7l_gg_.__checked_unw7l_gg_:before{background-color:var(--intergalactic-control-primary-info, #008ff8);border-color:var(--intergalactic-control-primary-info, #008ff8)}.___SOptionCheckbox_unw7l_gg_.__theme_unw7l_gg_:before{border-color:var(--theme_unw7l)}.___SOptionCheckbox_unw7l_gg_.__theme_unw7l_gg_.__checked_unw7l_gg_:before{background-color:var(--theme_unw7l);border-color:var(--theme_unw7l)}.___SOptionCheckbox_unw7l_gg_.__selected_unw7l_gg_{background-color:var(--intergalactic-dropdown-menu-item-selected, rgba(196, 229, 254, 0.7))}@media (hover:hover){.___SOptionCheckbox_unw7l_gg_.__selected_unw7l_gg_:hover{background-color:var(--intergalactic-dropdown-menu-item-selected-hover, #c4e5fe)}}"
74
74
  /*__inner_css_end__*/
75
- , "w3xgc_gg_")
75
+ , "unw7l_gg_")
76
76
  /*__reshadow_css_end__*/
77
77
  , {
78
- "__SOptionCheckbox": "___SOptionCheckbox_w3xgc_gg_",
79
- "_size_l": "_size_l_w3xgc_gg_",
80
- "_checked": "__checked_w3xgc_gg_",
81
- "_theme": "__theme_w3xgc_gg_",
82
- "--theme": "--theme_w3xgc",
83
- "_selected": "__selected_w3xgc_gg_"
78
+ "__SOptionCheckbox": "___SOptionCheckbox_unw7l_gg_",
79
+ "_size_l": "_size_l_unw7l_gg_",
80
+ "_checked": "__checked_unw7l_gg_",
81
+ "_theme": "__theme_unw7l_gg_",
82
+ "--theme": "--theme_unw7l",
83
+ "_selected": "__selected_unw7l_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 && !this.isScrolledToFirstOption) {
232
- other.ref = this.firstSelectedOptionRef;
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
  };
@@ -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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"}
@@ -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":""}
@@ -21,16 +21,16 @@ var style = (
21
21
  /*__reshadow_css_start__*/
22
22
  _sstyled.insert(
23
23
  /*__inner_css_start__*/
24
- ".___SInputSearch_1weyh_gg_._size_m_1weyh_gg_{height:32px}.___SClose_1weyh_gg_.__hide_1weyh_gg_{visibility:hidden}.___SOutline_1weyh_gg_{top:-1px;left:-1px;width:100%;border-radius:var(--intergalactic-control-rounded, 6px) var(--intergalactic-control-rounded, 6px)0 0}"
24
+ ".___SInputSearch_1fogq_gg_._size_m_1fogq_gg_{height:32px}.___SClose_1fogq_gg_.__hide_1fogq_gg_{visibility:hidden}.___SOutline_1fogq_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
- , "1weyh_gg_")
26
+ , "1fogq_gg_")
27
27
  /*__reshadow_css_end__*/
28
28
  , {
29
- "__SInputSearch": "___SInputSearch_1weyh_gg_",
30
- "_size_m": "_size_m_1weyh_gg_",
31
- "__SClose": "___SClose_1weyh_gg_",
32
- "_hide": "__hide_1weyh_gg_",
33
- "__SOutline": "___SOutline_1weyh_gg_"
29
+ "__SInputSearch": "___SInputSearch_1fogq_gg_",
30
+ "_size_m": "_size_m_1fogq_gg_",
31
+ "__SClose": "___SClose_1fogq_gg_",
32
+ "_hide": "__hide_1fogq_gg_",
33
+ "__SOutline": "___SOutline_1fogq_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
- ".___SOptionCheckbox_w3xgc_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_w3xgc_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_w3xgc_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_w3xgc_gg_._size_l_w3xgc_gg_{width:20px;height:20px}.___SOptionCheckbox_w3xgc_gg_._size_l_w3xgc_gg_::after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDEyIDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMSAxLjVMNC43NSA3Ljc1TDEgNCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==)}.___SOptionCheckbox_w3xgc_gg_.__checked_w3xgc_gg_:before{background-color:var(--intergalactic-control-primary-info, #008ff8);border-color:var(--intergalactic-control-primary-info, #008ff8)}.___SOptionCheckbox_w3xgc_gg_.__theme_w3xgc_gg_:before{border-color:var(--theme_w3xgc)}.___SOptionCheckbox_w3xgc_gg_.__theme_w3xgc_gg_.__checked_w3xgc_gg_:before{background-color:var(--theme_w3xgc);border-color:var(--theme_w3xgc)}.___SOptionCheckbox_w3xgc_gg_.__selected_w3xgc_gg_{background-color:var(--intergalactic-dropdown-menu-item-selected, rgba(196, 229, 254, 0.7))}@media (hover:hover){.___SOptionCheckbox_w3xgc_gg_.__selected_w3xgc_gg_:hover{background-color:var(--intergalactic-dropdown-menu-item-selected-hover, #c4e5fe)}}"
40
+ ".___SOptionCheckbox_unw7l_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_unw7l_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_unw7l_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_unw7l_gg_._size_l_unw7l_gg_{width:20px;height:20px}.___SOptionCheckbox_unw7l_gg_._size_l_unw7l_gg_::after{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDEyIDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xMSAxLjVMNC43NSA3Ljc1TDEgNCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==)}.___SOptionCheckbox_unw7l_gg_.__checked_unw7l_gg_:before{background-color:var(--intergalactic-control-primary-info, #008ff8);border-color:var(--intergalactic-control-primary-info, #008ff8)}.___SOptionCheckbox_unw7l_gg_.__theme_unw7l_gg_:before{border-color:var(--theme_unw7l)}.___SOptionCheckbox_unw7l_gg_.__theme_unw7l_gg_.__checked_unw7l_gg_:before{background-color:var(--theme_unw7l);border-color:var(--theme_unw7l)}.___SOptionCheckbox_unw7l_gg_.__selected_unw7l_gg_{background-color:var(--intergalactic-dropdown-menu-item-selected, rgba(196, 229, 254, 0.7))}@media (hover:hover){.___SOptionCheckbox_unw7l_gg_.__selected_unw7l_gg_:hover{background-color:var(--intergalactic-dropdown-menu-item-selected-hover, #c4e5fe)}}"
41
41
  /*__inner_css_end__*/
42
- , "w3xgc_gg_")
42
+ , "unw7l_gg_")
43
43
  /*__reshadow_css_end__*/
44
44
  , {
45
- "__SOptionCheckbox": "___SOptionCheckbox_w3xgc_gg_",
46
- "_size_l": "_size_l_w3xgc_gg_",
47
- "_checked": "__checked_w3xgc_gg_",
48
- "_theme": "__theme_w3xgc_gg_",
49
- "--theme": "--theme_w3xgc",
50
- "_selected": "__selected_w3xgc_gg_"
45
+ "__SOptionCheckbox": "___SOptionCheckbox_unw7l_gg_",
46
+ "_size_l": "_size_l_unw7l_gg_",
47
+ "_checked": "__checked_unw7l_gg_",
48
+ "_theme": "__theme_unw7l_gg_",
49
+ "--theme": "--theme_unw7l",
50
+ "_selected": "__selected_unw7l_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 && !this.isScrolledToFirstOption) {
204
- other.ref = this.firstSelectedOptionRef;
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
  };
@@ -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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"}
@@ -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":""}
@@ -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 {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/select",
3
3
  "description": "Semrush Select Component",
4
- "version": "3.4.24",
4
+ "version": "3.5.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",