@semcore/select 2.7.6 → 2.7.9
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 +18 -0
- package/lib/cjs/Select.js +7 -11
- package/lib/cjs/Select.js.map +1 -1
- package/lib/cjs/index.d.ts +144 -0
- package/lib/cjs/index.js +1 -22
- package/lib/cjs/index.js.map +1 -1
- package/lib/es6/Select.js +8 -12
- package/lib/es6/Select.js.map +1 -1
- package/lib/es6/index.d.ts +144 -0
- package/lib/es6/index.js +0 -1
- package/lib/es6/index.js.map +1 -1
- package/package.json +6 -2
- package/src/Select.jsx +2 -2
- package/src/index.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
|
5
|
+
## [2.7.9] - 2022-04-21
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Version patch update due to children dependencies update (`@semcore/dropdown-menu` [2.3.10 ~> 2.3.11]).
|
|
10
|
+
|
|
11
|
+
## [2.7.8] - 2022-03-21
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Version patch update due to children dependencies update (`@semcore/base-trigger` [2.6.2 ~> 2.6.3], `@semcore/icon` [2.19.4 ~> 2.20.0]).
|
|
16
|
+
|
|
17
|
+
## [2.7.7] - 2022-03-14
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Version patch update due to children dependencies update (`@semcore/utils` [3.31.2 ~> 3.31.2], `@semcore/base-trigger` [2.6.1 ~> 2.6.2], `@semcore/icon` [2.19.3 ~> 2.19.4], `@semcore/dropdown-menu` [2.3.9 ~> 2.3.10], `@semcore/input` [2.2.4 ~> 2.2.5], `@semcore/checkbox` [5.2.6 ~> 5.2.7], `@semcore/flex-box` [4.5.0 ~> 4.5.1], `@semcore/divider` [2.2.4 ~> 2.2.5]).
|
|
22
|
+
|
|
5
23
|
## [2.7.6] - 2022-03-10
|
|
6
24
|
|
|
7
25
|
### Changed
|
package/lib/cjs/Select.js
CHANGED
|
@@ -31,7 +31,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
31
31
|
|
|
32
32
|
var _core = _interopRequireWildcard(require("@semcore/core"));
|
|
33
33
|
|
|
34
|
-
var _react =
|
|
34
|
+
var _react = _interopRequireDefault(require("react"));
|
|
35
35
|
|
|
36
36
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
37
37
|
|
|
@@ -114,7 +114,7 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
117
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "firstSelectedOptionRef",
|
|
117
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "firstSelectedOptionRef", _react["default"].createRef());
|
|
118
118
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "isScrolledToFirstOption", false);
|
|
119
119
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "bindHandlerOptionClick", function (optionValue) {
|
|
120
120
|
return function (e) {
|
|
@@ -302,9 +302,7 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
302
302
|
var _this2 = this;
|
|
303
303
|
|
|
304
304
|
setTimeout(function () {
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
(_this2$firstSelectedO = _this2.firstSelectedOptionRef.current) === null || _this2$firstSelectedO === void 0 ? void 0 : _this2$firstSelectedO.scrollIntoView({
|
|
305
|
+
_this2.firstSelectedOptionRef.current?.scrollIntoView({
|
|
308
306
|
block: 'nearest',
|
|
309
307
|
inline: 'nearest'
|
|
310
308
|
});
|
|
@@ -338,8 +336,7 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
338
336
|
}, {
|
|
339
337
|
key: "render",
|
|
340
338
|
value: function render() {
|
|
341
|
-
var _ref2 = this
|
|
342
|
-
|
|
339
|
+
var _ref2 = this.asProps;
|
|
343
340
|
var _this$asProps4 = this.asProps,
|
|
344
341
|
Children = _this$asProps4.Children,
|
|
345
342
|
options = _this$asProps4.options,
|
|
@@ -353,7 +350,7 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
353
350
|
_logger["default"].warn(options && advanceMode, "Don't use at the same time 'options' property and '<Select.Trigger/>/<Select.Popper/>'", other['data-ui-name'] || Select.displayName);
|
|
354
351
|
|
|
355
352
|
if (options) {
|
|
356
|
-
var _ref =
|
|
353
|
+
var _ref = arguments[0];
|
|
357
354
|
|
|
358
355
|
var _Component2 = multiselect ? Select.OptionCheckbox : Select.Option;
|
|
359
356
|
|
|
@@ -383,8 +380,7 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
383
380
|
});
|
|
384
381
|
|
|
385
382
|
function Trigger(_ref5) {
|
|
386
|
-
var _ref3 =
|
|
387
|
-
|
|
383
|
+
var _ref3 = arguments[0];
|
|
388
384
|
var Children = _ref5.Children,
|
|
389
385
|
name = _ref5.name,
|
|
390
386
|
value = _ref5.value,
|
|
@@ -441,7 +437,7 @@ function OptionCheckbox(props) {
|
|
|
441
437
|
}
|
|
442
438
|
|
|
443
439
|
var InputSearchWrapper = function InputSearchWrapper(props) {
|
|
444
|
-
var _ref4 =
|
|
440
|
+
var _ref4 = arguments[0];
|
|
445
441
|
|
|
446
442
|
_logger["default"].warn(true, "'<".concat(props['data-ui-name'], "/>' is deprecated, use the named import 'import { InputSearch }'"), props['data-ui-name'] || Select.InputSearch.displayName);
|
|
447
443
|
|
package/lib/cjs/Select.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Select.jsx"],"names":["isSelectedOption","value","valueOption","Array","isArray","includes","isEmptyValue","length","getEmptyValue","multiselect","RootSelect","React","createRef","optionValue","e","newValue","asProps","filter","v","concat","handlers","visible","props","selectedOptions","optionProps","fallbackDeprecatedValue","o","emptyValue","isFallback","defaultSelectedOptions","undefined","map","label","size","disabled","state","placeholder","options","forwardRef","name","empty","$hiddenRef","active","onClear","handlerClear","children","renderChildrenTrigger","selected","other","_optionSelected","isScrolledToFirstOption","ref","firstSelectedOptionRef","onClick","bindHandlerOptionFallbackClick","bindHandlerOptionClick","hasOption","getOptionProps","my","reduce","acc","selectedOption","find","push","fallbackDeprecatedLabel","setTimeout","current","scrollIntoView","block","inline","scrollToSelectedOption","prevProps","prevState","Children","advanceMode","Select","Trigger","displayName","Popper","logger","warn","Component","OptionCheckbox","Option","DropdownMenu","option","i","style","defaultValue","defaultVisible","tag","Tag","ButtonTrigger","Text","Addon","Checkbox","SOptionCheckbox","componentProps","theme","styles","cn","checked","className","InputSearchWrapper","InputSearch","List","Menu","Item","OptionTitle","ItemTitle","OptionHint","ItemHint","Divider","Input","parent"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\nimport cn from 'classnames';\nimport createComponent, { Component, CONTEXT_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';\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\n static defaultProps = (props) => ({\n placeholder: props.multiselect ? 'Select options' : 'Select option',\n size: 'm',\n defaultValue: getEmptyValue(props.multiselect),\n defaultSelectedOptions: [],\n defaultVisible: false,\n });\n\n firstSelectedOptionRef = React.createRef();\n\n isScrolledToFirstOption = false;\n\n uncontrolledProps() {\n return {\n visible: null,\n value: null,\n selectedOptions: null,\n };\n }\n\n isFallback() {\n const { selectedOptions, defaultSelectedOptions } = this.props;\n return selectedOptions !== undefined || defaultSelectedOptions.length !== 0;\n }\n\n fallbackDeprecatedValue(value) {\n return this.isFallback() ? this.asProps.selectedOptions.map((o) => o.value) : value;\n }\n\n fallbackDeprecatedLabel(value) {\n return this.isFallback() ? this.asProps.selectedOptions.map((o) => o.label || o.value) : value;\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 } = this.asProps;\n\n return {\n empty: isEmptyValue(this.fallbackDeprecatedValue(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(this.fallbackDeprecatedValue(value), options),\n };\n }\n\n getOptionProps(props) {\n const { value } = this.asProps;\n const selected = isSelectedOption(this.fallbackDeprecatedValue(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 onClick: this.isFallback()\n ? this.bindHandlerOptionFallbackClick(props)\n : 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 value = this.fallbackDeprecatedValue(value);\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 value = this.fallbackDeprecatedLabel(value);\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 bindHandlerOptionFallbackClick = (props) => (e) => {\n const { selectedOptions, multiselect } = this.asProps;\n let optionProps = [props];\n if (multiselect) {\n if (isSelectedOption(this.fallbackDeprecatedValue(selectedOptions), props.value)) {\n optionProps = selectedOptions.filter((o) => o.value !== props.value);\n } else {\n optionProps = selectedOptions.concat(props);\n }\n }\n this.handlers.value(optionProps, e);\n if (!multiselect) this.handlers.visible(false);\n };\n\n handlerClear = (e) => {\n const { value } = this.asProps;\n const emptyValue = getEmptyValue(Array.isArray(this.fallbackDeprecatedValue(value)));\n if (this.isFallback()) {\n this.handlers.value(Array.isArray(emptyValue) ? emptyValue : [], e);\n } else {\n this.handlers.value(emptyValue, e);\n }\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 // TODO: вынести в хелпер\n // Если открыли\n if (visible) {\n this.isScrolledToFirstOption = false;\n\n // Если uncontroll\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, ...other } = this.asProps;\n const advanceMode = findComponent(Children, [\n Select.Trigger.displayName,\n Select.Popper.displayName,\n ]);\n\n logger.warn(\n // @ts-ignore\n this.isFallback(),\n \"'selectedOptions'/'defaultSelectedOptions' changed to 'value/defaultValue' and take only values, not objects.\",\n other['data-ui-name'] || Select.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 const Component = multiselect ? Select.OptionCheckbox : Select.Option;\n return (\n <Root render={DropdownMenu}>\n <Select.Trigger {...other} />\n <Select.Menu>\n {options.map((option, i) => {\n return <Component key={i} {...option} />;\n })}\n </Select.Menu>\n </Root>\n );\n }\n\n return (\n <Root render={DropdownMenu}>\n <Children />\n </Root>\n );\n }\n}\n\nfunction Trigger({ Children, name, value, $hiddenRef, tag: Tag = ButtonTrigger }) {\n return (\n <Root render={DropdownMenu.Trigger} tag={Tag} placeholder=\"Select option\">\n {addonTextChildren(\n Children,\n Tag.Text || ButtonTrigger.Text,\n Tag.Addon || ButtonTrigger.Addon,\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 />\n );\n}\n\nfunction OptionCheckbox(props) {\n const { selected, size, theme, children } = props;\n\n return (\n <DropdownMenu.Item {...props}>\n <Checkbox selected={selected} size={size} theme={theme} styles={props.styles} />\n {children}\n </DropdownMenu.Item>\n );\n}\n\nconst InputSearchWrapper = function (props) {\n logger.warn(\n true,\n `\\'<${props['data-ui-name']}/>\\' is deprecated, use the named import \\'import { InputSearch }\\'`,\n props['data-ui-name'] || Select.InputSearch.displayName,\n );\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 OptionCheckbox: [\n OptionCheckbox,\n {\n Addon: DropdownMenu.Item.Addon,\n },\n ],\n Divider,\n InputSearch: InputSearchWrapper,\n Input: InputSearchWrapper,\n },\n { parent: DropdownMenu },\n);\n\nexport default Select;\n"],"file":"Select.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/Select.jsx"],"names":["isSelectedOption","value","valueOption","Array","isArray","includes","isEmptyValue","length","getEmptyValue","multiselect","RootSelect","React","createRef","optionValue","e","newValue","asProps","filter","v","concat","handlers","visible","props","selectedOptions","optionProps","fallbackDeprecatedValue","o","emptyValue","isFallback","defaultSelectedOptions","undefined","map","label","size","disabled","state","placeholder","options","forwardRef","name","empty","$hiddenRef","active","onClear","handlerClear","children","renderChildrenTrigger","selected","other","_optionSelected","isScrolledToFirstOption","ref","firstSelectedOptionRef","onClick","bindHandlerOptionFallbackClick","bindHandlerOptionClick","hasOption","getOptionProps","my","reduce","acc","selectedOption","find","push","fallbackDeprecatedLabel","setTimeout","current","scrollIntoView","block","inline","scrollToSelectedOption","prevProps","prevState","Children","advanceMode","Select","Trigger","displayName","Popper","logger","warn","Component","OptionCheckbox","Option","DropdownMenu","option","i","style","defaultValue","defaultVisible","tag","Tag","ButtonTrigger","Text","Addon","Checkbox","SOptionCheckbox","componentProps","theme","styles","cn","checked","className","InputSearchWrapper","InputSearch","List","Menu","Item","OptionTitle","ItemTitle","OptionHint","ItemHint","Divider","Input","parent"],"mappings":"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","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';\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\n static defaultProps = (props) => ({\n placeholder: props.multiselect ? 'Select options' : 'Select option',\n size: 'm',\n defaultValue: getEmptyValue(props.multiselect),\n defaultSelectedOptions: [],\n defaultVisible: false,\n });\n\n firstSelectedOptionRef = React.createRef();\n\n isScrolledToFirstOption = false;\n\n uncontrolledProps() {\n return {\n visible: null,\n value: null,\n selectedOptions: null,\n };\n }\n\n isFallback() {\n const { selectedOptions, defaultSelectedOptions } = this.props;\n return selectedOptions !== undefined || defaultSelectedOptions.length !== 0;\n }\n\n fallbackDeprecatedValue(value) {\n return this.isFallback() ? this.asProps.selectedOptions.map((o) => o.value) : value;\n }\n\n fallbackDeprecatedLabel(value) {\n return this.isFallback() ? this.asProps.selectedOptions.map((o) => o.label || o.value) : value;\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 } = this.asProps;\n\n return {\n empty: isEmptyValue(this.fallbackDeprecatedValue(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(this.fallbackDeprecatedValue(value), options),\n };\n }\n\n getOptionProps(props) {\n const { value } = this.asProps;\n const selected = isSelectedOption(this.fallbackDeprecatedValue(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 onClick: this.isFallback()\n ? this.bindHandlerOptionFallbackClick(props)\n : 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 value = this.fallbackDeprecatedValue(value);\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 value = this.fallbackDeprecatedLabel(value);\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 bindHandlerOptionFallbackClick = (props) => (e) => {\n const { selectedOptions, multiselect } = this.asProps;\n let optionProps = [props];\n if (multiselect) {\n if (isSelectedOption(this.fallbackDeprecatedValue(selectedOptions), props.value)) {\n optionProps = selectedOptions.filter((o) => o.value !== props.value);\n } else {\n optionProps = selectedOptions.concat(props);\n }\n }\n this.handlers.value(optionProps, e);\n if (!multiselect) this.handlers.visible(false);\n };\n\n handlerClear = (e) => {\n const { value } = this.asProps;\n const emptyValue = getEmptyValue(Array.isArray(this.fallbackDeprecatedValue(value)));\n if (this.isFallback()) {\n this.handlers.value(Array.isArray(emptyValue) ? emptyValue : [], e);\n } else {\n this.handlers.value(emptyValue, e);\n }\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 // TODO: вынести в хелпер\n // Если открыли\n if (visible) {\n this.isScrolledToFirstOption = false;\n\n // Если uncontroll\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, ...other } = this.asProps;\n const advanceMode = findComponent(Children, [\n Select.Trigger.displayName,\n Select.Popper.displayName,\n ]);\n\n logger.warn(\n // @ts-ignore\n this.isFallback(),\n \"'selectedOptions'/'defaultSelectedOptions' changed to 'value/defaultValue' and take only values, not objects.\",\n other['data-ui-name'] || Select.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 const Component = multiselect ? Select.OptionCheckbox : Select.Option;\n return (\n <Root render={DropdownMenu}>\n <Select.Trigger {...other} />\n <Select.Menu>\n {options.map((option, i) => {\n return <Component key={i} {...option} />;\n })}\n </Select.Menu>\n </Root>\n );\n }\n\n return (\n <Root render={DropdownMenu}>\n <Children />\n </Root>\n );\n }\n}\n\nfunction Trigger({ Children, name, value, $hiddenRef, tag: Tag = ButtonTrigger }) {\n return (\n <Root render={DropdownMenu.Trigger} tag={Tag} placeholder=\"Select option\">\n {addonTextChildren(\n Children,\n Tag.Text || ButtonTrigger.Text,\n Tag.Addon || ButtonTrigger.Addon,\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 />\n );\n}\n\nfunction OptionCheckbox(props) {\n const { selected, size, theme, children } = props;\n\n return (\n <DropdownMenu.Item {...props}>\n <Checkbox selected={selected} size={size} theme={theme} styles={props.styles} />\n {children}\n </DropdownMenu.Item>\n );\n}\n\nconst InputSearchWrapper = function (props) {\n logger.warn(\n true,\n `\\'<${props['data-ui-name']}/>\\' is deprecated, use the named import \\'import { InputSearch }\\'`,\n props['data-ui-name'] || Select.InputSearch.displayName,\n );\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 OptionCheckbox: [\n OptionCheckbox,\n {\n Addon: DropdownMenu.Item.Addon,\n },\n ],\n Divider,\n InputSearch: InputSearchWrapper,\n Input: InputSearchWrapper,\n },\n { parent: DropdownMenu },\n);\n\nexport default Select;\n"],"file":"Select.js"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import React, { ComponentProps } from 'react';
|
|
2
|
+
import { CProps, Merge, PropGetterFn, ReturnEl } from '@semcore/core';
|
|
3
|
+
import DropdownMenu, {
|
|
4
|
+
IDropdownMenuContext,
|
|
5
|
+
IDropdownMenuItemProps,
|
|
6
|
+
IDropdownMenuProps,
|
|
7
|
+
IDropdownMenuHandlers,
|
|
8
|
+
} from '@semcore/dropdown-menu';
|
|
9
|
+
import { ButtonTrigger, IBaseTriggerProps } from '@semcore/base-trigger';
|
|
10
|
+
import Divider from '@semcore/divider';
|
|
11
|
+
import { IInputValueProps } from '@semcore/input';
|
|
12
|
+
import { IBoxProps } from '@semcore/flex-box';
|
|
13
|
+
|
|
14
|
+
export interface ISelectInputSearch extends IInputValueProps {}
|
|
15
|
+
|
|
16
|
+
export type OptionValue = string | number;
|
|
17
|
+
export type SelectValue = string | number | Array<string | number> | null;
|
|
18
|
+
|
|
19
|
+
export type SelectOption = {
|
|
20
|
+
value: OptionValue;
|
|
21
|
+
children?: React.ReactNode;
|
|
22
|
+
label?: React.ReactNode;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export interface ISelectProps<T extends SelectValue = SelectValue>
|
|
26
|
+
extends IDropdownMenuProps,
|
|
27
|
+
IBaseTriggerProps {
|
|
28
|
+
/**
|
|
29
|
+
* Multiple select
|
|
30
|
+
*/
|
|
31
|
+
multiselect?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Options array
|
|
34
|
+
*/
|
|
35
|
+
options?: SelectOption[];
|
|
36
|
+
/**
|
|
37
|
+
* The value or values array selected by default when using multiselect
|
|
38
|
+
* @type SelectValue
|
|
39
|
+
*/
|
|
40
|
+
defaultValue?: T;
|
|
41
|
+
/**
|
|
42
|
+
* The selected value or values array when using multiselect
|
|
43
|
+
* @type SelectValue
|
|
44
|
+
*/
|
|
45
|
+
value?: T;
|
|
46
|
+
/**
|
|
47
|
+
* Callback on value change
|
|
48
|
+
* @type (value: SelectValue, e: React.SyntheticEvent) => boolean | void
|
|
49
|
+
*/
|
|
50
|
+
onChange?: (value: T, e: React.SyntheticEvent) => boolean | void;
|
|
51
|
+
/**
|
|
52
|
+
* Trigger placeholder at not selected value
|
|
53
|
+
*/
|
|
54
|
+
placeholder?: React.ReactNode;
|
|
55
|
+
/**
|
|
56
|
+
* Trigger state
|
|
57
|
+
*/
|
|
58
|
+
state?: 'normal' | 'valid' | 'invalid';
|
|
59
|
+
/**
|
|
60
|
+
* Disables select
|
|
61
|
+
*/
|
|
62
|
+
disabled?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Input name
|
|
65
|
+
*/
|
|
66
|
+
name?: string;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* The list of options selected by default
|
|
70
|
+
* @deprecated v2.0.0 {@link ISelectProps.defaultValue}
|
|
71
|
+
*/
|
|
72
|
+
defaultSelectedOptions?: ISelectOption[];
|
|
73
|
+
/**
|
|
74
|
+
* List of the selected options
|
|
75
|
+
* @deprecated v2.0.0 {@link ISelectProps.value}
|
|
76
|
+
*/
|
|
77
|
+
selectedOptions?: ISelectOption[];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface ISelectOption {
|
|
81
|
+
value?: string | number;
|
|
82
|
+
[key: string]: any;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export interface ISelectOptionProps extends IDropdownMenuItemProps {
|
|
86
|
+
/** Value of the option */
|
|
87
|
+
value: string | number;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface ISelectOptionCheckboxProps extends ISelectOptionProps {
|
|
91
|
+
/** Checkbox theme */
|
|
92
|
+
theme?: string;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
declare const InputSearch: <T>(props: ISelectInputSearch & T) => ReturnEl;
|
|
96
|
+
|
|
97
|
+
export interface ISelectContext extends IDropdownMenuContext {
|
|
98
|
+
getOptionProps: PropGetterFn;
|
|
99
|
+
getOptionCheckboxProps: PropGetterFn;
|
|
100
|
+
getDividerProps: PropGetterFn;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export interface ISelectHandlers extends IDropdownMenuHandlers {
|
|
104
|
+
value: (index: SelectValue) => void;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
declare const Select: (<T, V extends SelectValue = SelectValue>(
|
|
108
|
+
props: CProps<ISelectProps<V> & T, ISelectContext, ISelectHandlers>,
|
|
109
|
+
) => ReturnEl) & {
|
|
110
|
+
Trigger: (<T>(
|
|
111
|
+
props: Merge<
|
|
112
|
+
ComponentProps<typeof DropdownMenu.Trigger>,
|
|
113
|
+
ComponentProps<typeof ButtonTrigger>
|
|
114
|
+
> &
|
|
115
|
+
T,
|
|
116
|
+
) => ReturnEl) & {
|
|
117
|
+
Addon: typeof ButtonTrigger.Addon;
|
|
118
|
+
Text: typeof ButtonTrigger.Text;
|
|
119
|
+
};
|
|
120
|
+
Popper: typeof DropdownMenu.Popper;
|
|
121
|
+
List: typeof DropdownMenu.List;
|
|
122
|
+
Menu: typeof DropdownMenu.Menu;
|
|
123
|
+
Option: (<T>(
|
|
124
|
+
props: CProps<ISelectOptionProps & T, ISelectContext, ISelectHandlers>,
|
|
125
|
+
) => ReturnEl) & {
|
|
126
|
+
Addon: typeof DropdownMenu.Item.Addon;
|
|
127
|
+
Checkbox: <T>(
|
|
128
|
+
props: CProps<IBoxProps & { theme?: string; selected?: boolean } & T>,
|
|
129
|
+
) => ReturnEl;
|
|
130
|
+
};
|
|
131
|
+
OptionTitle: typeof DropdownMenu.ItemTitle;
|
|
132
|
+
OptionHint: typeof DropdownMenu.ItemHint;
|
|
133
|
+
OptionCheckbox: (<T>(
|
|
134
|
+
props: CProps<ISelectOptionCheckboxProps & T, ISelectContext, ISelectHandlers>,
|
|
135
|
+
) => ReturnEl) & {
|
|
136
|
+
Addon: typeof DropdownMenu.Item.Addon;
|
|
137
|
+
};
|
|
138
|
+
Divider: typeof Divider;
|
|
139
|
+
InputSearch: typeof InputSearch;
|
|
140
|
+
Input: typeof InputSearch;
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
export { InputSearch };
|
|
144
|
+
export default Select;
|
package/lib/cjs/index.js
CHANGED
|
@@ -2,14 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
|
-
var _exportNames = {
|
|
11
|
-
InputSearch: true
|
|
12
|
-
};
|
|
13
8
|
Object.defineProperty(exports, "InputSearch", {
|
|
14
9
|
enumerable: true,
|
|
15
10
|
get: function get() {
|
|
@@ -25,21 +20,5 @@ Object.defineProperty(exports, "default", {
|
|
|
25
20
|
|
|
26
21
|
var _InputSearch = _interopRequireDefault(require("./InputSearch"));
|
|
27
22
|
|
|
28
|
-
var _Select =
|
|
29
|
-
|
|
30
|
-
Object.keys(_Select).forEach(function (key) {
|
|
31
|
-
if (key === "default" || key === "__esModule") return;
|
|
32
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
33
|
-
if (key in exports && exports[key] === _Select[key]) return;
|
|
34
|
-
Object.defineProperty(exports, key, {
|
|
35
|
-
enumerable: true,
|
|
36
|
-
get: function get() {
|
|
37
|
-
return _Select[key];
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
43
|
-
|
|
44
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
+
var _Select = _interopRequireDefault(require("./Select"));
|
|
45
24
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;AACA","sourcesContent":["export { default as InputSearch } from './InputSearch';\nexport { default } from './Select';\n"],"file":"index.js"}
|
package/lib/es6/Select.js
CHANGED
|
@@ -23,9 +23,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
23
23
|
|
|
24
24
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
25
25
|
|
|
26
|
-
import React
|
|
26
|
+
import React from 'react';
|
|
27
27
|
import cn from 'classnames';
|
|
28
|
-
import createComponent, { Component,
|
|
28
|
+
import createComponent, { Component, Root, sstyled } from '@semcore/core';
|
|
29
29
|
import DropdownMenu from '@semcore/dropdown-menu';
|
|
30
30
|
import { ButtonTrigger } from '@semcore/base-trigger';
|
|
31
31
|
import Divider from '@semcore/divider';
|
|
@@ -84,7 +84,7 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
84
84
|
|
|
85
85
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
86
86
|
|
|
87
|
-
_defineProperty(_assertThisInitialized(_this), "firstSelectedOptionRef",
|
|
87
|
+
_defineProperty(_assertThisInitialized(_this), "firstSelectedOptionRef", React.createRef());
|
|
88
88
|
|
|
89
89
|
_defineProperty(_assertThisInitialized(_this), "isScrolledToFirstOption", false);
|
|
90
90
|
|
|
@@ -277,9 +277,7 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
277
277
|
var _this2 = this;
|
|
278
278
|
|
|
279
279
|
setTimeout(function () {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
(_this2$firstSelectedO = _this2.firstSelectedOptionRef.current) === null || _this2$firstSelectedO === void 0 ? void 0 : _this2$firstSelectedO.scrollIntoView({
|
|
280
|
+
_this2.firstSelectedOptionRef.current?.scrollIntoView({
|
|
283
281
|
block: 'nearest',
|
|
284
282
|
inline: 'nearest'
|
|
285
283
|
});
|
|
@@ -313,7 +311,7 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
313
311
|
}, {
|
|
314
312
|
key: "render",
|
|
315
313
|
value: function render() {
|
|
316
|
-
var _ref2 = this
|
|
314
|
+
var _ref2 = this.asProps;
|
|
317
315
|
|
|
318
316
|
var _this$asProps4 = this.asProps,
|
|
319
317
|
Children = _this$asProps4.Children,
|
|
@@ -327,7 +325,7 @@ var RootSelect = /*#__PURE__*/function (_Component) {
|
|
|
327
325
|
logger.warn(options && advanceMode, "Don't use at the same time 'options' property and '<Select.Trigger/>/<Select.Popper/>'", other['data-ui-name'] || Select.displayName);
|
|
328
326
|
|
|
329
327
|
if (options) {
|
|
330
|
-
var _ref =
|
|
328
|
+
var _ref = arguments[0];
|
|
331
329
|
|
|
332
330
|
var _Component2 = multiselect ? Select.OptionCheckbox : Select.Option;
|
|
333
331
|
|
|
@@ -360,8 +358,7 @@ _defineProperty(RootSelect, "defaultProps", function (props) {
|
|
|
360
358
|
});
|
|
361
359
|
|
|
362
360
|
function Trigger(_ref5) {
|
|
363
|
-
var _ref3 =
|
|
364
|
-
|
|
361
|
+
var _ref3 = arguments[0];
|
|
365
362
|
var Children = _ref5.Children,
|
|
366
363
|
name = _ref5.name,
|
|
367
364
|
value = _ref5.value,
|
|
@@ -418,8 +415,7 @@ function OptionCheckbox(props) {
|
|
|
418
415
|
}
|
|
419
416
|
|
|
420
417
|
var InputSearchWrapper = function InputSearchWrapper(props) {
|
|
421
|
-
var _ref4 =
|
|
422
|
-
|
|
418
|
+
var _ref4 = arguments[0];
|
|
423
419
|
logger.warn(true, "'<".concat(props['data-ui-name'], "/>' is deprecated, use the named import 'import { InputSearch }'"), props['data-ui-name'] || Select.InputSearch.displayName);
|
|
424
420
|
return /*#__PURE__*/React.createElement(InputSearch, _assignProps4({}, _ref4));
|
|
425
421
|
};
|
package/lib/es6/Select.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Select.jsx"],"names":["React","useContext","cn","createComponent","Component","CONTEXT_COMPONENT","Root","sstyled","DropdownMenu","ButtonTrigger","Divider","findComponent","logger","resolveColor","addonTextChildren","InputSearch","useBox","isSelectedOption","value","valueOption","Array","isArray","includes","isEmptyValue","length","getEmptyValue","multiselect","RootSelect","createRef","optionValue","e","newValue","asProps","filter","v","concat","handlers","visible","props","selectedOptions","optionProps","fallbackDeprecatedValue","o","emptyValue","isFallback","defaultSelectedOptions","undefined","map","label","size","disabled","state","placeholder","options","forwardRef","name","empty","$hiddenRef","active","onClear","handlerClear","children","renderChildrenTrigger","selected","other","_optionSelected","isScrolledToFirstOption","ref","firstSelectedOptionRef","onClick","bindHandlerOptionFallbackClick","bindHandlerOptionClick","hasOption","getOptionProps","my","reduce","acc","selectedOption","find","push","fallbackDeprecatedLabel","setTimeout","current","scrollIntoView","block","inline","scrollToSelectedOption","prevProps","prevState","Children","advanceMode","Select","Trigger","displayName","Popper","warn","OptionCheckbox","Option","option","i","style","defaultValue","defaultVisible","tag","Tag","Text","Addon","Checkbox","SOptionCheckbox","componentProps","theme","styles","checked","className","InputSearchWrapper","List","Menu","Item","OptionTitle","ItemTitle","OptionHint","ItemHint","Input","parent"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\nimport cn from 'classnames';\nimport createComponent, { Component, CONTEXT_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';\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\n static defaultProps = (props) => ({\n placeholder: props.multiselect ? 'Select options' : 'Select option',\n size: 'm',\n defaultValue: getEmptyValue(props.multiselect),\n defaultSelectedOptions: [],\n defaultVisible: false,\n });\n\n firstSelectedOptionRef = React.createRef();\n\n isScrolledToFirstOption = false;\n\n uncontrolledProps() {\n return {\n visible: null,\n value: null,\n selectedOptions: null,\n };\n }\n\n isFallback() {\n const { selectedOptions, defaultSelectedOptions } = this.props;\n return selectedOptions !== undefined || defaultSelectedOptions.length !== 0;\n }\n\n fallbackDeprecatedValue(value) {\n return this.isFallback() ? this.asProps.selectedOptions.map((o) => o.value) : value;\n }\n\n fallbackDeprecatedLabel(value) {\n return this.isFallback() ? this.asProps.selectedOptions.map((o) => o.label || o.value) : value;\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 } = this.asProps;\n\n return {\n empty: isEmptyValue(this.fallbackDeprecatedValue(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(this.fallbackDeprecatedValue(value), options),\n };\n }\n\n getOptionProps(props) {\n const { value } = this.asProps;\n const selected = isSelectedOption(this.fallbackDeprecatedValue(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 onClick: this.isFallback()\n ? this.bindHandlerOptionFallbackClick(props)\n : 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 value = this.fallbackDeprecatedValue(value);\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 value = this.fallbackDeprecatedLabel(value);\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 bindHandlerOptionFallbackClick = (props) => (e) => {\n const { selectedOptions, multiselect } = this.asProps;\n let optionProps = [props];\n if (multiselect) {\n if (isSelectedOption(this.fallbackDeprecatedValue(selectedOptions), props.value)) {\n optionProps = selectedOptions.filter((o) => o.value !== props.value);\n } else {\n optionProps = selectedOptions.concat(props);\n }\n }\n this.handlers.value(optionProps, e);\n if (!multiselect) this.handlers.visible(false);\n };\n\n handlerClear = (e) => {\n const { value } = this.asProps;\n const emptyValue = getEmptyValue(Array.isArray(this.fallbackDeprecatedValue(value)));\n if (this.isFallback()) {\n this.handlers.value(Array.isArray(emptyValue) ? emptyValue : [], e);\n } else {\n this.handlers.value(emptyValue, e);\n }\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 // TODO: вынести в хелпер\n // Если открыли\n if (visible) {\n this.isScrolledToFirstOption = false;\n\n // Если uncontroll\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, ...other } = this.asProps;\n const advanceMode = findComponent(Children, [\n Select.Trigger.displayName,\n Select.Popper.displayName,\n ]);\n\n logger.warn(\n // @ts-ignore\n this.isFallback(),\n \"'selectedOptions'/'defaultSelectedOptions' changed to 'value/defaultValue' and take only values, not objects.\",\n other['data-ui-name'] || Select.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 const Component = multiselect ? Select.OptionCheckbox : Select.Option;\n return (\n <Root render={DropdownMenu}>\n <Select.Trigger {...other} />\n <Select.Menu>\n {options.map((option, i) => {\n return <Component key={i} {...option} />;\n })}\n </Select.Menu>\n </Root>\n );\n }\n\n return (\n <Root render={DropdownMenu}>\n <Children />\n </Root>\n );\n }\n}\n\nfunction Trigger({ Children, name, value, $hiddenRef, tag: Tag = ButtonTrigger }) {\n return (\n <Root render={DropdownMenu.Trigger} tag={Tag} placeholder=\"Select option\">\n {addonTextChildren(\n Children,\n Tag.Text || ButtonTrigger.Text,\n Tag.Addon || ButtonTrigger.Addon,\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 />\n );\n}\n\nfunction OptionCheckbox(props) {\n const { selected, size, theme, children } = props;\n\n return (\n <DropdownMenu.Item {...props}>\n <Checkbox selected={selected} size={size} theme={theme} styles={props.styles} />\n {children}\n </DropdownMenu.Item>\n );\n}\n\nconst InputSearchWrapper = function (props) {\n logger.warn(\n true,\n `\\'<${props['data-ui-name']}/>\\' is deprecated, use the named import \\'import { InputSearch }\\'`,\n props['data-ui-name'] || Select.InputSearch.displayName,\n );\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 OptionCheckbox: [\n OptionCheckbox,\n {\n Addon: DropdownMenu.Item.Addon,\n },\n ],\n Divider,\n InputSearch: InputSearchWrapper,\n Input: InputSearchWrapper,\n },\n { parent: DropdownMenu },\n);\n\nexport default Select;\n"],"file":"Select.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/Select.jsx"],"names":["React","cn","createComponent","Component","Root","sstyled","DropdownMenu","ButtonTrigger","Divider","findComponent","logger","resolveColor","addonTextChildren","InputSearch","useBox","isSelectedOption","value","valueOption","Array","isArray","includes","isEmptyValue","length","getEmptyValue","multiselect","RootSelect","createRef","optionValue","e","newValue","asProps","filter","v","concat","handlers","visible","props","selectedOptions","optionProps","fallbackDeprecatedValue","o","emptyValue","isFallback","defaultSelectedOptions","undefined","map","label","size","disabled","state","placeholder","options","forwardRef","name","empty","$hiddenRef","active","onClear","handlerClear","children","renderChildrenTrigger","selected","other","_optionSelected","isScrolledToFirstOption","ref","firstSelectedOptionRef","onClick","bindHandlerOptionFallbackClick","bindHandlerOptionClick","hasOption","getOptionProps","my","reduce","acc","selectedOption","find","push","fallbackDeprecatedLabel","setTimeout","current","scrollIntoView","block","inline","scrollToSelectedOption","prevProps","prevState","Children","advanceMode","Select","Trigger","displayName","Popper","warn","OptionCheckbox","Option","option","i","style","defaultValue","defaultVisible","tag","Tag","Text","Addon","Checkbox","SOptionCheckbox","componentProps","theme","styles","checked","className","InputSearchWrapper","List","Menu","Item","OptionTitle","ItemTitle","OptionHint","ItemHint","Input","parent"],"mappings":"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","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';\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\n static defaultProps = (props) => ({\n placeholder: props.multiselect ? 'Select options' : 'Select option',\n size: 'm',\n defaultValue: getEmptyValue(props.multiselect),\n defaultSelectedOptions: [],\n defaultVisible: false,\n });\n\n firstSelectedOptionRef = React.createRef();\n\n isScrolledToFirstOption = false;\n\n uncontrolledProps() {\n return {\n visible: null,\n value: null,\n selectedOptions: null,\n };\n }\n\n isFallback() {\n const { selectedOptions, defaultSelectedOptions } = this.props;\n return selectedOptions !== undefined || defaultSelectedOptions.length !== 0;\n }\n\n fallbackDeprecatedValue(value) {\n return this.isFallback() ? this.asProps.selectedOptions.map((o) => o.value) : value;\n }\n\n fallbackDeprecatedLabel(value) {\n return this.isFallback() ? this.asProps.selectedOptions.map((o) => o.label || o.value) : value;\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 } = this.asProps;\n\n return {\n empty: isEmptyValue(this.fallbackDeprecatedValue(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(this.fallbackDeprecatedValue(value), options),\n };\n }\n\n getOptionProps(props) {\n const { value } = this.asProps;\n const selected = isSelectedOption(this.fallbackDeprecatedValue(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 onClick: this.isFallback()\n ? this.bindHandlerOptionFallbackClick(props)\n : 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 value = this.fallbackDeprecatedValue(value);\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 value = this.fallbackDeprecatedLabel(value);\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 bindHandlerOptionFallbackClick = (props) => (e) => {\n const { selectedOptions, multiselect } = this.asProps;\n let optionProps = [props];\n if (multiselect) {\n if (isSelectedOption(this.fallbackDeprecatedValue(selectedOptions), props.value)) {\n optionProps = selectedOptions.filter((o) => o.value !== props.value);\n } else {\n optionProps = selectedOptions.concat(props);\n }\n }\n this.handlers.value(optionProps, e);\n if (!multiselect) this.handlers.visible(false);\n };\n\n handlerClear = (e) => {\n const { value } = this.asProps;\n const emptyValue = getEmptyValue(Array.isArray(this.fallbackDeprecatedValue(value)));\n if (this.isFallback()) {\n this.handlers.value(Array.isArray(emptyValue) ? emptyValue : [], e);\n } else {\n this.handlers.value(emptyValue, e);\n }\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 // TODO: вынести в хелпер\n // Если открыли\n if (visible) {\n this.isScrolledToFirstOption = false;\n\n // Если uncontroll\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, ...other } = this.asProps;\n const advanceMode = findComponent(Children, [\n Select.Trigger.displayName,\n Select.Popper.displayName,\n ]);\n\n logger.warn(\n // @ts-ignore\n this.isFallback(),\n \"'selectedOptions'/'defaultSelectedOptions' changed to 'value/defaultValue' and take only values, not objects.\",\n other['data-ui-name'] || Select.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 const Component = multiselect ? Select.OptionCheckbox : Select.Option;\n return (\n <Root render={DropdownMenu}>\n <Select.Trigger {...other} />\n <Select.Menu>\n {options.map((option, i) => {\n return <Component key={i} {...option} />;\n })}\n </Select.Menu>\n </Root>\n );\n }\n\n return (\n <Root render={DropdownMenu}>\n <Children />\n </Root>\n );\n }\n}\n\nfunction Trigger({ Children, name, value, $hiddenRef, tag: Tag = ButtonTrigger }) {\n return (\n <Root render={DropdownMenu.Trigger} tag={Tag} placeholder=\"Select option\">\n {addonTextChildren(\n Children,\n Tag.Text || ButtonTrigger.Text,\n Tag.Addon || ButtonTrigger.Addon,\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 />\n );\n}\n\nfunction OptionCheckbox(props) {\n const { selected, size, theme, children } = props;\n\n return (\n <DropdownMenu.Item {...props}>\n <Checkbox selected={selected} size={size} theme={theme} styles={props.styles} />\n {children}\n </DropdownMenu.Item>\n );\n}\n\nconst InputSearchWrapper = function (props) {\n logger.warn(\n true,\n `\\'<${props['data-ui-name']}/>\\' is deprecated, use the named import \\'import { InputSearch }\\'`,\n props['data-ui-name'] || Select.InputSearch.displayName,\n );\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 OptionCheckbox: [\n OptionCheckbox,\n {\n Addon: DropdownMenu.Item.Addon,\n },\n ],\n Divider,\n InputSearch: InputSearchWrapper,\n Input: InputSearchWrapper,\n },\n { parent: DropdownMenu },\n);\n\nexport default Select;\n"],"file":"Select.js"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import React, { ComponentProps } from 'react';
|
|
2
|
+
import { CProps, Merge, PropGetterFn, ReturnEl } from '@semcore/core';
|
|
3
|
+
import DropdownMenu, {
|
|
4
|
+
IDropdownMenuContext,
|
|
5
|
+
IDropdownMenuItemProps,
|
|
6
|
+
IDropdownMenuProps,
|
|
7
|
+
IDropdownMenuHandlers,
|
|
8
|
+
} from '@semcore/dropdown-menu';
|
|
9
|
+
import { ButtonTrigger, IBaseTriggerProps } from '@semcore/base-trigger';
|
|
10
|
+
import Divider from '@semcore/divider';
|
|
11
|
+
import { IInputValueProps } from '@semcore/input';
|
|
12
|
+
import { IBoxProps } from '@semcore/flex-box';
|
|
13
|
+
|
|
14
|
+
export interface ISelectInputSearch extends IInputValueProps {}
|
|
15
|
+
|
|
16
|
+
export type OptionValue = string | number;
|
|
17
|
+
export type SelectValue = string | number | Array<string | number> | null;
|
|
18
|
+
|
|
19
|
+
export type SelectOption = {
|
|
20
|
+
value: OptionValue;
|
|
21
|
+
children?: React.ReactNode;
|
|
22
|
+
label?: React.ReactNode;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export interface ISelectProps<T extends SelectValue = SelectValue>
|
|
26
|
+
extends IDropdownMenuProps,
|
|
27
|
+
IBaseTriggerProps {
|
|
28
|
+
/**
|
|
29
|
+
* Multiple select
|
|
30
|
+
*/
|
|
31
|
+
multiselect?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Options array
|
|
34
|
+
*/
|
|
35
|
+
options?: SelectOption[];
|
|
36
|
+
/**
|
|
37
|
+
* The value or values array selected by default when using multiselect
|
|
38
|
+
* @type SelectValue
|
|
39
|
+
*/
|
|
40
|
+
defaultValue?: T;
|
|
41
|
+
/**
|
|
42
|
+
* The selected value or values array when using multiselect
|
|
43
|
+
* @type SelectValue
|
|
44
|
+
*/
|
|
45
|
+
value?: T;
|
|
46
|
+
/**
|
|
47
|
+
* Callback on value change
|
|
48
|
+
* @type (value: SelectValue, e: React.SyntheticEvent) => boolean | void
|
|
49
|
+
*/
|
|
50
|
+
onChange?: (value: T, e: React.SyntheticEvent) => boolean | void;
|
|
51
|
+
/**
|
|
52
|
+
* Trigger placeholder at not selected value
|
|
53
|
+
*/
|
|
54
|
+
placeholder?: React.ReactNode;
|
|
55
|
+
/**
|
|
56
|
+
* Trigger state
|
|
57
|
+
*/
|
|
58
|
+
state?: 'normal' | 'valid' | 'invalid';
|
|
59
|
+
/**
|
|
60
|
+
* Disables select
|
|
61
|
+
*/
|
|
62
|
+
disabled?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Input name
|
|
65
|
+
*/
|
|
66
|
+
name?: string;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* The list of options selected by default
|
|
70
|
+
* @deprecated v2.0.0 {@link ISelectProps.defaultValue}
|
|
71
|
+
*/
|
|
72
|
+
defaultSelectedOptions?: ISelectOption[];
|
|
73
|
+
/**
|
|
74
|
+
* List of the selected options
|
|
75
|
+
* @deprecated v2.0.0 {@link ISelectProps.value}
|
|
76
|
+
*/
|
|
77
|
+
selectedOptions?: ISelectOption[];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface ISelectOption {
|
|
81
|
+
value?: string | number;
|
|
82
|
+
[key: string]: any;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export interface ISelectOptionProps extends IDropdownMenuItemProps {
|
|
86
|
+
/** Value of the option */
|
|
87
|
+
value: string | number;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface ISelectOptionCheckboxProps extends ISelectOptionProps {
|
|
91
|
+
/** Checkbox theme */
|
|
92
|
+
theme?: string;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
declare const InputSearch: <T>(props: ISelectInputSearch & T) => ReturnEl;
|
|
96
|
+
|
|
97
|
+
export interface ISelectContext extends IDropdownMenuContext {
|
|
98
|
+
getOptionProps: PropGetterFn;
|
|
99
|
+
getOptionCheckboxProps: PropGetterFn;
|
|
100
|
+
getDividerProps: PropGetterFn;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export interface ISelectHandlers extends IDropdownMenuHandlers {
|
|
104
|
+
value: (index: SelectValue) => void;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
declare const Select: (<T, V extends SelectValue = SelectValue>(
|
|
108
|
+
props: CProps<ISelectProps<V> & T, ISelectContext, ISelectHandlers>,
|
|
109
|
+
) => ReturnEl) & {
|
|
110
|
+
Trigger: (<T>(
|
|
111
|
+
props: Merge<
|
|
112
|
+
ComponentProps<typeof DropdownMenu.Trigger>,
|
|
113
|
+
ComponentProps<typeof ButtonTrigger>
|
|
114
|
+
> &
|
|
115
|
+
T,
|
|
116
|
+
) => ReturnEl) & {
|
|
117
|
+
Addon: typeof ButtonTrigger.Addon;
|
|
118
|
+
Text: typeof ButtonTrigger.Text;
|
|
119
|
+
};
|
|
120
|
+
Popper: typeof DropdownMenu.Popper;
|
|
121
|
+
List: typeof DropdownMenu.List;
|
|
122
|
+
Menu: typeof DropdownMenu.Menu;
|
|
123
|
+
Option: (<T>(
|
|
124
|
+
props: CProps<ISelectOptionProps & T, ISelectContext, ISelectHandlers>,
|
|
125
|
+
) => ReturnEl) & {
|
|
126
|
+
Addon: typeof DropdownMenu.Item.Addon;
|
|
127
|
+
Checkbox: <T>(
|
|
128
|
+
props: CProps<IBoxProps & { theme?: string; selected?: boolean } & T>,
|
|
129
|
+
) => ReturnEl;
|
|
130
|
+
};
|
|
131
|
+
OptionTitle: typeof DropdownMenu.ItemTitle;
|
|
132
|
+
OptionHint: typeof DropdownMenu.ItemHint;
|
|
133
|
+
OptionCheckbox: (<T>(
|
|
134
|
+
props: CProps<ISelectOptionCheckboxProps & T, ISelectContext, ISelectHandlers>,
|
|
135
|
+
) => ReturnEl) & {
|
|
136
|
+
Addon: typeof DropdownMenu.Item.Addon;
|
|
137
|
+
};
|
|
138
|
+
Divider: typeof Divider;
|
|
139
|
+
InputSearch: typeof InputSearch;
|
|
140
|
+
Input: typeof InputSearch;
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
export { InputSearch };
|
|
144
|
+
export default Select;
|
package/lib/es6/index.js
CHANGED
package/lib/es6/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.js"],"names":["default","InputSearch"],"mappings":"AAAA,SAASA,OAAO,IAAIC,WAApB,QAAuC,eAAvC;AACA,SAASD,OAAT,QAAwB,UAAxB
|
|
1
|
+
{"version":3,"sources":["../../src/index.js"],"names":["default","InputSearch"],"mappings":"AAAA,SAASA,OAAO,IAAIC,WAApB,QAAuC,eAAvC;AACA,SAASD,OAAT,QAAwB,UAAxB","sourcesContent":["export { default as InputSearch } from './InputSearch';\nexport { default } from './Select';\n"],"file":"index.js"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/select",
|
|
3
3
|
"description": "SEMRush Select Component",
|
|
4
|
-
"version": "2.7.
|
|
4
|
+
"version": "2.7.9",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
"@semcore/input": "^2",
|
|
20
20
|
"@semcore/checkbox": "^5",
|
|
21
21
|
"@semcore/flex-box": "^4",
|
|
22
|
-
"@semcore/divider": "^2"
|
|
22
|
+
"@semcore/divider": "^2",
|
|
23
|
+
"classnames": "2.2.6"
|
|
23
24
|
},
|
|
24
25
|
"peerDependencies": {
|
|
25
26
|
"@semcore/core": "^1.11",
|
|
@@ -32,5 +33,8 @@
|
|
|
32
33
|
"type": "git",
|
|
33
34
|
"url": "https://github.com/semrush/intergalactic.git",
|
|
34
35
|
"directory": "semcore/select"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@semcore/jest-preset-ui": "1.0.0"
|
|
35
39
|
}
|
|
36
40
|
}
|
package/src/Select.jsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import cn from 'classnames';
|
|
3
|
-
import createComponent, { Component,
|
|
3
|
+
import createComponent, { Component, Root, sstyled } from '@semcore/core';
|
|
4
4
|
import DropdownMenu from '@semcore/dropdown-menu';
|
|
5
5
|
import { ButtonTrigger } from '@semcore/base-trigger';
|
|
6
6
|
import Divider from '@semcore/divider';
|
package/src/index.js
CHANGED