@semcore/select 2.7.3 → 2.7.6
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 +13 -1
- package/lib/cjs/InputSearch.js.map +1 -1
- package/lib/cjs/Select.js.map +1 -1
- package/lib/es6/InputSearch.js.map +1 -1
- package/lib/es6/Select.js.map +1 -1
- package/package.json +1 -1
- /package/src/{InputSearch.js → InputSearch.jsx} +0 -0
- /package/src/{Select.js → Select.jsx} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.
|
|
3
|
+
CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
|
|
4
|
+
|
|
5
|
+
## [2.7.6] - 2022-03-10
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Version patch update due to children dependencies update (`@semcore/dropdown-menu` [2.3.8 ~> 2.3.9]).
|
|
10
|
+
|
|
11
|
+
## [2.7.5] - 2022-03-05
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- Version patch update due to children dependencies update (`@semcore/base-trigger` [2.6.0 ~> 2.6.1]).
|
|
4
16
|
|
|
5
17
|
## [2.7.2] - 2022-02-24
|
|
6
18
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/InputSearch.
|
|
1
|
+
{"version":3,"sources":["../../src/InputSearch.jsx"],"names":["MAP_SIZE_TO_ICON","m","SearchM","CloseM","l","xl","SearchL","CloseL","InputSearch","e","handlers","value","SInputSearch","Box","asProps","size","forwardRef","styles","finalSize","context","visibility","handleClear","Component","style","defaultValue","Select","CONTEXT_COMPONENT"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AADA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,gBAAgB,GAAG;AACvBC,EAAAA,CAAC,EAAE,CAACC,aAAD,EAAUC,cAAV,CADoB;AAEvBC,EAAAA,CAAC,EAAE,CAACF,aAAD,EAAUC,cAAV,CAFoB;AAGvBE,EAAAA,EAAE,EAAE,CAACC,aAAD,EAAUC,cAAV;AAHmB,CAAzB;;IAMMC,W;;;;;;;;;;;;;;;oGAiBU,UAACC,CAAD,EAAO;AACnB,YAAKC,QAAL,CAAcC,KAAd,CAAoB,EAApB,EAAwBF,CAAxB;AACD,K;;;;;;WARD,6BAAoB;AAClB,aAAO;AACLE,QAAAA,KAAK,EAAE;AADF,OAAP;AAGD;;;WAMD,kBAAS;AAAA;;AACP,UAAMC,YAAY,GAAGC,YAArB;AACA,0BAA4C,KAAKC,OAAjD;AAAA,UAAQC,IAAR,iBAAQA,IAAR;AAAA,UAAcJ,KAAd,iBAAcA,KAAd;AAAA,UAAqBK,UAArB,iBAAqBA,UAArB;AAAA,UAAiCC,MAAjC,iBAAiCA,MAAjC;AACA,UAAMC,SAAS,GAAGH,IAAI,IAAI,KAAKI,OAAL,CAAaJ,IAAvC;AAEA,oBAAO,mBAAQE,MAAR,CAAP,eACE,+EACE,gCAAC,YAAD;AAAA,gBAAoBC;AAApB,uBACE,gCAAC,iBAAD;AAAA,gBAAaA;AAAb,uBACE,gCAAC,iBAAD,CAAO,KAAP;AAAa,QAAA,GAAG,EAAElB,gBAAgB,CAACkB,SAAD,CAAhB,CAA4B,CAA5B;AAAlB,QADF,eAEE,gCAAC,iBAAD,CAAO,KAAP;AAAa,QAAA,GAAG,EAAEF,UAAlB;AAA8B,QAAA,SAAS;AAAvC,SAA4C,KAAKF,OAAjD,EAFF,eAGE,gCAAC,iBAAD,CAAO,KAAP;AACE,QAAA,GAAG,EAAEd,gBAAgB,CAACkB,SAAD,CAAhB,CAA4B,CAA5B,CADP;AAEE,QAAA,IAAI,EAAC,QAFP;AAGE,QAAA,WAAW,MAHb;AAIE,QAAA,KAAK,EAAE;AAAEE,UAAAA,UAAU,EAAET,KAAK,GAAG,SAAH,GAAe;AAAlC,SAJT;AAKE,QAAA,OAAO,EAAE,KAAKU;AALhB,QAHF,CADF,CADF,eAcE,gCAAC,mBAAD,yBAdF,CADF;AAkBD;;;EA5CuBC,e;;iCAApBd,W,iBACiB,a;iCADjBA,W,WAGWe,K;iCAHXf,W,kBAKkB;AACpBgB,EAAAA,YAAY,EAAE;AADM,C;iCALlBhB,W,iBASiBiB,mBAAOC,uBAAP,C;;eAsCR,sBAAgBlB,WAAhB,C","sourcesContent":["import React from 'react';\nimport createComponent, { Component, CONTEXT_COMPONENT, sstyled } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport Input from '@semcore/input';\nimport Divider from '@semcore/divider';\nimport SearchM from '@semcore/icon/Search/m';\nimport CloseM from '@semcore/icon/Close/m';\nimport SearchL from '@semcore/icon/Search/l';\nimport CloseL from '@semcore/icon/Close/l';\nimport Select from './Select';\n\nimport style from './style/input-search.shadow.css';\n\nconst MAP_SIZE_TO_ICON = {\n m: [SearchM, CloseM],\n l: [SearchM, CloseM],\n xl: [SearchL, CloseL],\n};\n\nclass InputSearch extends Component {\n static displayName = 'InputSearch';\n\n static style = style;\n\n static defaultProps = {\n defaultValue: '',\n };\n\n static contextType = Select[CONTEXT_COMPONENT];\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n handleClear = (e) => {\n this.handlers.value('', e);\n };\n\n render() {\n const SInputSearch = Box;\n const { size, value, forwardRef, styles } = this.asProps;\n const finalSize = size || this.context.size;\n\n return sstyled(styles)(\n <>\n <SInputSearch size={finalSize}>\n <Input size={finalSize}>\n <Input.Addon tag={MAP_SIZE_TO_ICON[finalSize][0]} />\n <Input.Value ref={forwardRef} autoFocus {...this.asProps} />\n <Input.Addon\n tag={MAP_SIZE_TO_ICON[finalSize][1]}\n role=\"button\"\n interactive\n style={{ visibility: value ? 'visible' : 'hidden' }}\n onClick={this.handleClear}\n />\n </Input>\n </SInputSearch>\n <Divider />\n </>,\n );\n }\n}\n\nexport default createComponent(InputSearch);\n"],"file":"InputSearch.js"}
|
package/lib/cjs/Select.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/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","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AAFA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAASA,gBAAT,CAA0BC,KAA1B,EAAiCC,WAAjC,EAA8C;AAC5C,SAAOC,KAAK,CAACC,OAAN,CAAcH,KAAd,IAAuBA,KAAK,CAACI,QAAN,CAAeH,WAAf,CAAvB,GAAqDA,WAAW,KAAKD,KAA5E;AACD;;AAED,SAASK,YAAT,CAAsBL,KAAtB,EAA6B;AAC3B,SAAOE,KAAK,CAACC,OAAN,CAAcH,KAAd,IAAuBA,KAAK,CAACM,MAAN,KAAiB,CAAxC,GAA4CN,KAAK,KAAK,IAA7D;AACD;;AAED,SAASO,aAAT,CAAuBC,WAAvB,EAAoC;AAClC,SAAOA,WAAW,GAAG,EAAH,GAAQ,IAA1B;AACD;;IAEKC,U;;;;;;;;;;;;;;;4HAaqBC,kBAAMC,SAAN,E;gHAEC,K;+GA+GD,UAACC,WAAD;AAAA,aAAiB,UAACC,CAAD,EAAO;AAC/C,YAAIC,QAAQ,GAAGF,WAAf;AACA,4BAA+B,MAAKG,OAApC;AAAA,YAAQf,KAAR,iBAAQA,KAAR;AAAA,YAAeQ,WAAf,iBAAeA,WAAf;;AACA,YAAIN,KAAK,CAACC,OAAN,CAAcH,KAAd,CAAJ,EAA0B;AACxB,cAAIA,KAAK,CAACI,QAAN,CAAeQ,WAAf,CAAJ,EAAiC;AAC/BE,YAAAA,QAAQ,GAAGd,KAAK,CAACgB,MAAN,CAAa,UAACC,CAAD;AAAA,qBAAOA,CAAC,KAAKL,WAAb;AAAA,aAAb,CAAX;AACD,WAFD,MAEO;AACLE,YAAAA,QAAQ,GAAGd,KAAK,CAACkB,MAAN,CAAaN,WAAb,CAAX;AACD;AACF;;AACD,cAAKO,QAAL,CAAcnB,KAAd,CAAoBc,QAApB,EAA8BD,CAA9B;;AACA,YAAI,CAACL,WAAL,EAAkB,MAAKW,QAAL,CAAcC,OAAd,CAAsB,KAAtB;AACnB,OAZwB;AAAA,K;uHAcQ,UAACC,KAAD;AAAA,aAAW,UAACR,CAAD,EAAO;AACjD,6BAAyC,MAAKE,OAA9C;AAAA,YAAQO,eAAR,kBAAQA,eAAR;AAAA,YAAyBd,WAAzB,kBAAyBA,WAAzB;AACA,YAAIe,WAAW,GAAG,CAACF,KAAD,CAAlB;;AACA,YAAIb,WAAJ,EAAiB;AACf,cAAIT,gBAAgB,CAAC,MAAKyB,uBAAL,CAA6BF,eAA7B,CAAD,EAAgDD,KAAK,CAACrB,KAAtD,CAApB,EAAkF;AAChFuB,YAAAA,WAAW,GAAGD,eAAe,CAACN,MAAhB,CAAuB,UAACS,CAAD;AAAA,qBAAOA,CAAC,CAACzB,KAAF,KAAYqB,KAAK,CAACrB,KAAzB;AAAA,aAAvB,CAAd;AACD,WAFD,MAEO;AACLuB,YAAAA,WAAW,GAAGD,eAAe,CAACJ,MAAhB,CAAuBG,KAAvB,CAAd;AACD;AACF;;AACD,cAAKF,QAAL,CAAcnB,KAAd,CAAoBuB,WAApB,EAAiCV,CAAjC;;AACA,YAAI,CAACL,WAAL,EAAkB,MAAKW,QAAL,CAAcC,OAAd,CAAsB,KAAtB;AACnB,OAZgC;AAAA,K;qGAclB,UAACP,CAAD,EAAO;AACpB,UAAQb,KAAR,GAAkB,MAAKe,OAAvB,CAAQf,KAAR;AACA,UAAM0B,UAAU,GAAGnB,aAAa,CAACL,KAAK,CAACC,OAAN,CAAc,MAAKqB,uBAAL,CAA6BxB,KAA7B,CAAd,CAAD,CAAhC;;AACA,UAAI,MAAK2B,UAAL,EAAJ,EAAuB;AACrB,cAAKR,QAAL,CAAcnB,KAAd,CAAoBE,KAAK,CAACC,OAAN,CAAcuB,UAAd,IAA4BA,UAA5B,GAAyC,EAA7D,EAAiEb,CAAjE;AACD,OAFD,MAEO;AACL,cAAKM,QAAL,CAAcnB,KAAd,CAAoB0B,UAApB,EAAgCb,CAAhC;AACD;;AACD,YAAKM,QAAL,CAAcC,OAAd,CAAsB,KAAtB;AACD,K;;;;;;WAlJD,6BAAoB;AAClB,aAAO;AACLA,QAAAA,OAAO,EAAE,IADJ;AAELpB,QAAAA,KAAK,EAAE,IAFF;AAGLsB,QAAAA,eAAe,EAAE;AAHZ,OAAP;AAKD;;;WAED,sBAAa;AACX,wBAAoD,KAAKD,KAAzD;AAAA,UAAQC,eAAR,eAAQA,eAAR;AAAA,UAAyBM,sBAAzB,eAAyBA,sBAAzB;AACA,aAAON,eAAe,KAAKO,SAApB,IAAiCD,sBAAsB,CAACtB,MAAvB,KAAkC,CAA1E;AACD;;;WAED,iCAAwBN,KAAxB,EAA+B;AAC7B,aAAO,KAAK2B,UAAL,KAAoB,KAAKZ,OAAL,CAAaO,eAAb,CAA6BQ,GAA7B,CAAiC,UAACL,CAAD;AAAA,eAAOA,CAAC,CAACzB,KAAT;AAAA,OAAjC,CAApB,GAAuEA,KAA9E;AACD;;;WAED,iCAAwBA,KAAxB,EAA+B;AAC7B,aAAO,KAAK2B,UAAL,KAAoB,KAAKZ,OAAL,CAAaO,eAAb,CAA6BQ,GAA7B,CAAiC,UAACL,CAAD;AAAA,eAAOA,CAAC,CAACM,KAAF,IAAWN,CAAC,CAACzB,KAApB;AAAA,OAAjC,CAApB,GAAkFA,KAAzF;AACD;;;WAED,2BAAkB;AAChB,2BAWI,KAAKe,OAXT;AAAA,UACEiB,IADF,kBACEA,IADF;AAAA,UAEEC,QAFF,kBAEEA,QAFF;AAAA,UAGEb,OAHF,kBAGEA,OAHF;AAAA,UAIEc,KAJF,kBAIEA,KAJF;AAAA,UAKEC,WALF,kBAKEA,WALF;AAAA,UAMEnC,KANF,kBAMEA,KANF;AAAA,UAOEoC,OAPF,kBAOEA,OAPF;AAAA,UAQEC,UARF,kBAQEA,UARF;AAAA,UASEC,IATF,kBASEA,IATF;AAAA,UAUE9B,WAVF,kBAUEA,WAVF;AAaA,aAAO;AACL+B,QAAAA,KAAK,EAAElC,YAAY,CAAC,KAAKmB,uBAAL,CAA6BxB,KAA7B,CAAD,CADd;AAELgC,QAAAA,IAAI,EAAJA,IAFK;AAGLhC,QAAAA,KAAK,EAALA,KAHK;AAILsC,QAAAA,IAAI,EAAJA,IAJK;AAKLE,QAAAA,UAAU,EAAEH,UALP;AAML7B,QAAAA,WAAW,EAAXA,WANK;AAOL0B,QAAAA,KAAK,EAALA,KAPK;AAQLC,QAAAA,WAAW,EAAXA,WARK;AASLF,QAAAA,QAAQ,EAARA,QATK;AAULQ,QAAAA,MAAM,EAAErB,OAVH;AAWLsB,QAAAA,OAAO,EAAE,KAAKC,YAXT;AAYLC,QAAAA,QAAQ,EAAE,KAAKC,qBAAL,CAA2B,KAAKrB,uBAAL,CAA6BxB,KAA7B,CAA3B,EAAgEoC,OAAhE;AAZL,OAAP;AAcD;;;WAED,wBAAef,KAAf,EAAsB;AACpB,UAAQrB,KAAR,GAAkB,KAAKe,OAAvB,CAAQf,KAAR;AACA,UAAM8C,QAAQ,GAAG/C,gBAAgB,CAAC,KAAKyB,uBAAL,CAA6BxB,KAA7B,CAAD,EAAsCqB,KAAK,CAACrB,KAA5C,CAAjC;AACA,UAAM+C,KAAK,GAAG,EAAd;AACA,WAAKC,eAAL,GAAuBF,QAAvB;;AAEA,UAAIA,QAAQ,IAAI,CAAC,KAAKG,uBAAtB,EAA+C;AAC7CF,QAAAA,KAAK,CAACG,GAAN,GAAY,KAAKC,sBAAjB;AACA,aAAKF,uBAAL,GAA+B,IAA/B;AACD;;AAED;AACEH,QAAAA,QAAQ,EAARA,QADF;AAEEM,QAAAA,OAAO,EAAE,KAAKzB,UAAL,KACL,KAAK0B,8BAAL,CAAoChC,KAApC,CADK,GAEL,KAAKiC,sBAAL,CAA4BjC,KAAK,CAACrB,KAAlC;AAJN,SAKK+C,KALL;AAOD;;;WAED,gCAAuB1B,KAAvB,EAA8B;AAC5B,UAAQW,IAAR,GAAiB,KAAKjB,OAAtB,CAAQiB,IAAR;AACA,UAAMuB,SAAS,GAAGlC,KAAK,CAACrB,KAAN,KAAgB6B,SAAlC;AACA,UAAMN,WAAW,GAAGgC,SAAS,GAAG,EAAH,GAAQ,KAAKC,cAAL,CAAoBnC,KAApB,CAArC;AACA,UAAMyB,QAAQ,GAAG,KAAKE,eAAtB;AACA,WAAKA,eAAL,GAAuB,IAAvB;AACA,6CACKzB,WADL;AAEES,QAAAA,IAAI,EAAJA,IAFF;AAGEc,QAAAA,QAAQ,EAARA;AAHF;AAKD;;;WAED,2BAAkB;AAChB,aAAO;AAAEW,QAAAA,EAAE,EAAE;AAAN,OAAP;AACD;;;WAED,+BAAsBzD,KAAtB,EAA6BoC,OAA7B,EAAsC;AACpC,UAAIA,OAAJ,EAAa;AACXpC,QAAAA,KAAK,GAAG,KAAKwB,uBAAL,CAA6BxB,KAA7B,CAAR;AACA,eAAO,GAAGkB,MAAH,CAAUlB,KAAV,EAAiB0D,MAAjB,CAAwB,UAACC,GAAD,EAAM3D,KAAN,EAAgB;AAC7C,cAAM4D,cAAc,GAAGxB,OAAO,CAACyB,IAAR,CAAa,UAACpC,CAAD;AAAA,mBAAO1B,gBAAgB,CAACC,KAAD,EAAQyB,CAAC,CAACzB,KAAV,CAAvB;AAAA,WAAb,CAAvB;AACA,cAAI,CAAC4D,cAAL,EAAqB,OAAOD,GAAP;AACrB,cAAIA,GAAG,CAACrD,MAAR,EAAgBqD,GAAG,CAACG,IAAJ,CAAS,IAAT;AAChBH,UAAAA,GAAG,CAACG,IAAJ,CAASF,cAAc,CAAC7B,KAAf,IAAwB6B,cAAc,CAAC5D,KAAhD;AACA,iBAAO2D,GAAP;AACD,SANM,EAMJ,EANI,CAAP;AAOD;;AACD3D,MAAAA,KAAK,GAAG,KAAK+D,uBAAL,CAA6B/D,KAA7B,CAAR;AACA,aAAOE,KAAK,CAACC,OAAN,CAAcH,KAAd,IACHA,KAAK,CAAC0D,MAAN,CAAa,UAACC,GAAD,EAAM3D,KAAN,EAAgB;AAC3B,YAAI2D,GAAG,CAACrD,MAAR,EAAgBqD,GAAG,CAACG,IAAJ,CAAS,IAAT;AAChBH,QAAAA,GAAG,CAACG,IAAJ,CAAS9D,KAAT;AACA,eAAO2D,GAAP;AACD,OAJD,EAIG,EAJH,CADG,GAMH3D,KANJ;AAOD;;;WAyCD,kCAAyB;AAAA;;AACvBgE,MAAAA,UAAU,CAAC,YAAM;AAAA;;AACf,iCAAA,MAAI,CAACb,sBAAL,CAA4Bc,OAA5B,gFAAqCC,cAArC,CAAoD;AAClDC,UAAAA,KAAK,EAAE,SAD2C;AAElDC,UAAAA,MAAM,EAAE;AAF0C,SAApD;AAID,OALS,EAKP,CALO,CAAV;AAMD;;;WAED,6BAAoB;AAClB,UAAQhD,OAAR,GAAoB,KAAKL,OAAzB,CAAQK,OAAR;;AACA,UAAIA,OAAJ,EAAa;AACX,aAAKiD,sBAAL;AACD;AACF;;;WAED,4BAAmBC,SAAnB,EAA8BC,SAA9B,EAAyC;AACvC,UAAQnD,OAAR,GAAoB,KAAKL,OAAzB,CAAQK,OAAR,CADuC,CAEvC;AACA;;AACA,UAAIA,OAAJ,EAAa;AACX,aAAK6B,uBAAL,GAA+B,KAA/B,CADW,CAGX;;AACA,YAAIqB,SAAS,CAAClD,OAAV,KAAsBS,SAA1B,EAAqC;AACnC,cAAI0C,SAAS,CAACnD,OAAV,KAAsBA,OAA1B,EAAmC,KAAKiD,sBAAL;AACpC,SAFD,MAEO;AACL,cAAIC,SAAS,CAAClD,OAAV,KAAsBA,OAA1B,EAAmC,KAAKiD,sBAAL;AACpC;AACF;AACF;;;WAED,kBAAS;AAAA;;AACP,2BAAqD,KAAKtD,OAA1D;AAAA,UAAQyD,QAAR,kBAAQA,QAAR;AAAA,UAAkBpC,OAAlB,kBAAkBA,OAAlB;AAAA,UAA2B5B,WAA3B,kBAA2BA,WAA3B;AAAA,UAA2CuC,KAA3C;AACA,UAAM0B,WAAW,GAAG,+BAAcD,QAAd,EAAwB,CAC1CE,MAAM,CAACC,OAAP,CAAeC,WAD2B,EAE1CF,MAAM,CAACG,MAAP,CAAcD,WAF4B,CAAxB,CAApB;;AAKAE,yBAAOC,IAAP,EACE;AACA,WAAKpD,UAAL,EAFF,EAGE,+GAHF,EAIEoB,KAAK,CAAC,cAAD,CAAL,IAAyB2B,MAAM,CAACE,WAJlC;;AAOAE,yBAAOC,IAAP,CACE3C,OAAO,IAAIqC,WADb,EAEE,wFAFF,EAGE1B,KAAK,CAAC,cAAD,CAAL,IAAyB2B,MAAM,CAACE,WAHlC;;AAMA,UAAIxC,OAAJ,EAAa;AAAA;;AACX,YAAM4C,WAAS,GAAGxE,WAAW,GAAGkE,MAAM,CAACO,cAAV,GAA2BP,MAAM,CAACQ,MAA/D;;AACA,4BACE,gCAAcC,wBAAd,iDACE,gCAAC,MAAD,CAAQ,OAAR,EAAoBpC,KAApB,CADF,eAEE,gCAAC,MAAD,CAAQ,IAAR,QACGX,OAAO,CAACN,GAAR,CAAY,UAACsD,MAAD,EAASC,CAAT,EAAe;AAC1B,8BAAO,gCAAC,WAAD;AAAW,YAAA,GAAG,EAAEA;AAAhB,aAAuBD,MAAvB,EAAP;AACD,SAFA,CADH,CAFF,CADF;AAUD;;AAED,0BACE,gCAAcD,wBAAd,kDACE,gCAAC,QAAD,OADF,CADF;AAKD;;;EA5OsBH,e;;iCAAnBvE,U,iBACiB,Q;iCADjBA,U,WAGW6E,K;iCAHX7E,U,kBAKkB,UAACY,KAAD;AAAA,SAAY;AAChCc,IAAAA,WAAW,EAAEd,KAAK,CAACb,WAAN,GAAoB,gBAApB,GAAuC,eADpB;AAEhCwB,IAAAA,IAAI,EAAE,GAF0B;AAGhCuD,IAAAA,YAAY,EAAEhF,aAAa,CAACc,KAAK,CAACb,WAAP,CAHK;AAIhCoB,IAAAA,sBAAsB,EAAE,EAJQ;AAKhC4D,IAAAA,cAAc,EAAE;AALgB,GAAZ;AAAA,C;;AA0OxB,SAASb,OAAT,QAAkF;AAAA;;AAAA,MAA/DH,QAA+D,SAA/DA,QAA+D;AAAA,MAArDlC,IAAqD,SAArDA,IAAqD;AAAA,MAA/CtC,KAA+C,SAA/CA,KAA+C;AAAA,MAAxCwC,UAAwC,SAAxCA,UAAwC;AAAA,wBAA5BiD,GAA4B;AAAA,MAAvBC,GAAuB,0BAAjBC,0BAAiB;AAChF,sBACE,gCAAcR,yBAAaR,OAA3B;AAAA,WAAyCe,GAAzC;AAAA,mBAA0D;AAA1D,aACG,mCACClB,QADD,EAECkB,GAAG,CAACE,IAAJ,IAAYD,2BAAcC,IAF3B,EAGCF,GAAG,CAACG,KAAJ,IAAaF,2BAAcE,KAH5B,CADH,EAMGvD,IAAI,iBAAI;AAAO,IAAA,IAAI,EAAC,QAAZ;AAAqB,IAAA,YAAY,EAAEtC,KAAnC;AAA0C,IAAA,IAAI,EAAEsC,IAAhD;AAAsD,IAAA,GAAG,EAAEE;AAA3D,IANX,CADF;AAUD;;AAED,SAASsD,QAAT,CAAkBzE,KAAlB,EAAyB;AACvB,gBAA0C,qBAAOA,KAAP,EAAcA,KAAK,CAACgB,UAApB,CAA1C;AAAA;AAAA,MAAO0D,eAAP;AAAA,MAAwBC,cAAxB;;AACA,MAAQhE,IAAR,GAAkCX,KAAlC,CAAQW,IAAR;AAAA,MAAciE,KAAd,GAAkC5E,KAAlC,CAAc4E,KAAd;AAAA,MAAqBnD,QAArB,GAAkCzB,KAAlC,CAAqByB,QAArB;AACA,MAAMoD,MAAM,GAAG,mBAAQ7E,KAAK,CAAC6E,MAAd,CAAf;;AAEA,mBAA6BA,MAAM,CAACC,EAAP,CAAU,iBAAV,EAA6B;AACxDnE,IAAAA,IAAI,EAAJA,IADwD;AAExD,iBAAa,uBAAaiE,KAAb,CAF2C;AAGxDG,IAAAA,OAAO,EAAEtD;AAH+C,GAA7B,CAA7B;AAAA,MAAQuD,SAAR,cAAQA,SAAR;AAAA,MAAmBf,KAAnB,cAAmBA,KAAnB;;AAMA,sBACE,gCAAC,eAAD,gCACMU,cADN;AAEE,IAAA,SAAS,EAAE,4BAAGK,SAAH,EAAcL,cAAc,CAACK,SAA7B,KAA2CxE,SAFxD;AAGE,IAAA,KAAK,kCAAOyD,KAAP,GAAiBU,cAAc,CAACV,KAAhC;AAHP,KADF;AAOD;;AAED,SAASL,cAAT,CAAwB5D,KAAxB,EAA+B;AAC7B,MAAQyB,QAAR,GAA4CzB,KAA5C,CAAQyB,QAAR;AAAA,MAAkBd,IAAlB,GAA4CX,KAA5C,CAAkBW,IAAlB;AAAA,MAAwBiE,KAAxB,GAA4C5E,KAA5C,CAAwB4E,KAAxB;AAAA,MAA+BrD,QAA/B,GAA4CvB,KAA5C,CAA+BuB,QAA/B;AAEA,sBACE,gCAAC,wBAAD,CAAc,IAAd,EAAuBvB,KAAvB,eACE,gCAAC,QAAD;AAAU,IAAA,QAAQ,EAAEyB,QAApB;AAA8B,IAAA,IAAI,EAAEd,IAApC;AAA0C,IAAA,KAAK,EAAEiE,KAAjD;AAAwD,IAAA,MAAM,EAAE5E,KAAK,CAAC6E;AAAtE,IADF,EAEGtD,QAFH,CADF;AAMD;;AAED,IAAM0D,kBAAkB,GAAG,SAArBA,kBAAqB,CAAUjF,KAAV,EAAiB;AAAA;;AAC1CyD,qBAAOC,IAAP,CACE,IADF,cAEQ1D,KAAK,CAAC,cAAD,CAFb,uEAGEA,KAAK,CAAC,cAAD,CAAL,IAAyBqD,MAAM,CAAC6B,WAAP,CAAmB3B,WAH9C;;AAKA,sBAAO,gCAAc2B,uBAAd,oCAAP;AACD,CAPD;;AASA,IAAM7B,MAAM,GAAG,sBACbjE,UADa,EAEb;AACEkE,EAAAA,OAAO,EAAE,CACPA,OADO,EAEP;AACEkB,IAAAA,KAAK,EAAEF,2BAAcE,KADvB;AAEED,IAAAA,IAAI,EAAED,2BAAcC;AAFtB,GAFO,CADX;AAQEf,EAAAA,MAAM,EAAEM,yBAAaN,MARvB;AASE2B,EAAAA,IAAI,EAAErB,yBAAaqB,IATrB;AAUEC,EAAAA,IAAI,EAAEtB,yBAAasB,IAVrB;AAWEvB,EAAAA,MAAM,EAAE,CACNC,yBAAauB,IADP,EAEN;AACEb,IAAAA,KAAK,EAAEV,yBAAauB,IAAb,CAAkBb,KAD3B;AAEEC,IAAAA,QAAQ,EAARA;AAFF,GAFM,CAXV;AAkBEa,EAAAA,WAAW,EAAExB,yBAAayB,SAlB5B;AAmBEC,EAAAA,UAAU,EAAE1B,yBAAa2B,QAnB3B;AAoBE7B,EAAAA,cAAc,EAAE,CACdA,cADc,EAEd;AACEY,IAAAA,KAAK,EAAEV,yBAAauB,IAAb,CAAkBb;AAD3B,GAFc,CApBlB;AA0BEkB,EAAAA,OAAO,EAAPA,mBA1BF;AA2BER,EAAAA,WAAW,EAAED,kBA3Bf;AA4BEU,EAAAA,KAAK,EAAEV;AA5BT,CAFa,EAgCb;AAAEW,EAAAA,MAAM,EAAE9B;AAAV,CAhCa,CAAf;eAmCeT,M","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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/InputSearch.
|
|
1
|
+
{"version":3,"sources":["../../src/InputSearch.jsx"],"names":["React","createComponent","Component","CONTEXT_COMPONENT","sstyled","Box","Input","Divider","SearchM","CloseM","SearchL","CloseL","Select","MAP_SIZE_TO_ICON","m","l","xl","InputSearch","e","handlers","value","SInputSearch","asProps","size","forwardRef","styles","finalSize","context","visibility","handleClear","style","defaultValue"],"mappings":";;;;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,eAAP,IAA0BC,SAA1B,EAAqCC,iBAArC,EAAwDC,OAAxD,QAAuE,eAAvE;AACA,SAASC,GAAT,QAAoB,mBAApB;AACA,OAAOC,KAAP,MAAkB,gBAAlB;AACA,OAAOC,OAAP,MAAoB,kBAApB;AACA,OAAOC,OAAP,MAAoB,wBAApB;AACA,OAAOC,MAAP,MAAmB,uBAAnB;AACA,OAAOC,OAAP,MAAoB,wBAApB;AACA,OAAOC,MAAP,MAAmB,uBAAnB;AACA,OAAOC,MAAP,MAAmB,UAAnB;;;;;;;;;;;;;;;;;AAIA,IAAMC,gBAAgB,GAAG;AACvBC,EAAAA,CAAC,EAAE,CAACN,OAAD,EAAUC,MAAV,CADoB;AAEvBM,EAAAA,CAAC,EAAE,CAACP,OAAD,EAAUC,MAAV,CAFoB;AAGvBO,EAAAA,EAAE,EAAE,CAACN,OAAD,EAAUC,MAAV;AAHmB,CAAzB;;IAMMM,W;;;;;;;;;;;;;;;;kEAiBU,UAACC,CAAD,EAAO;AACnB,YAAKC,QAAL,CAAcC,KAAd,CAAoB,EAApB,EAAwBF,CAAxB;AACD,K;;;;;;;WARD,6BAAoB;AAClB,aAAO;AACLE,QAAAA,KAAK,EAAE;AADF,OAAP;AAGD;;;WAMD,kBAAS;AAAA;;AACP,UAAMC,YAAY,GAAGhB,GAArB;AACA,0BAA4C,KAAKiB,OAAjD;AAAA,UAAQC,IAAR,iBAAQA,IAAR;AAAA,UAAcH,KAAd,iBAAcA,KAAd;AAAA,UAAqBI,UAArB,iBAAqBA,UAArB;AAAA,UAAiCC,MAAjC,iBAAiCA,MAAjC;AACA,UAAMC,SAAS,GAAGH,IAAI,IAAI,KAAKI,OAAL,CAAaJ,IAAvC;AAEA,oBAAOnB,OAAO,CAACqB,MAAD,CAAd,eACE,uDACE,oBAAC,YAAD;AAAA,gBAAoBC;AAApB,uBACE,oBAAC,KAAD;AAAA,gBAAaA;AAAb,uBACE,oBAAC,KAAD,CAAO,KAAP;AAAa,QAAA,GAAG,EAAEb,gBAAgB,CAACa,SAAD,CAAhB,CAA4B,CAA5B;AAAlB,QADF,eAEE,oBAAC,KAAD,CAAO,KAAP;AAAa,QAAA,GAAG,EAAEF,UAAlB;AAA8B,QAAA,SAAS;AAAvC,SAA4C,KAAKF,OAAjD,EAFF,eAGE,oBAAC,KAAD,CAAO,KAAP;AACE,QAAA,GAAG,EAAET,gBAAgB,CAACa,SAAD,CAAhB,CAA4B,CAA5B,CADP;AAEE,QAAA,IAAI,EAAC,QAFP;AAGE,QAAA,WAAW,MAHb;AAIE,QAAA,KAAK,EAAE;AAAEE,UAAAA,UAAU,EAAER,KAAK,GAAG,SAAH,GAAe;AAAlC,SAJT;AAKE,QAAA,OAAO,EAAE,KAAKS;AALhB,QAHF,CADF,CADF,eAcE,oBAAC,OAAD,yBAdF,CADF;AAkBD;;;;EA5CuB3B,S;;gBAApBe,W,iBACiB,a;;gBADjBA,W,WAGWa,K;;gBAHXb,W,kBAKkB;AACpBc,EAAAA,YAAY,EAAE;AADM,C;;gBALlBd,W,iBASiBL,MAAM,CAACT,iBAAD,C;;AAsC7B,eAAeF,eAAe,CAACgB,WAAD,CAA9B","sourcesContent":["import React from 'react';\nimport createComponent, { Component, CONTEXT_COMPONENT, sstyled } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport Input from '@semcore/input';\nimport Divider from '@semcore/divider';\nimport SearchM from '@semcore/icon/Search/m';\nimport CloseM from '@semcore/icon/Close/m';\nimport SearchL from '@semcore/icon/Search/l';\nimport CloseL from '@semcore/icon/Close/l';\nimport Select from './Select';\n\nimport style from './style/input-search.shadow.css';\n\nconst MAP_SIZE_TO_ICON = {\n m: [SearchM, CloseM],\n l: [SearchM, CloseM],\n xl: [SearchL, CloseL],\n};\n\nclass InputSearch extends Component {\n static displayName = 'InputSearch';\n\n static style = style;\n\n static defaultProps = {\n defaultValue: '',\n };\n\n static contextType = Select[CONTEXT_COMPONENT];\n\n uncontrolledProps() {\n return {\n value: null,\n };\n }\n\n handleClear = (e) => {\n this.handlers.value('', e);\n };\n\n render() {\n const SInputSearch = Box;\n const { size, value, forwardRef, styles } = this.asProps;\n const finalSize = size || this.context.size;\n\n return sstyled(styles)(\n <>\n <SInputSearch size={finalSize}>\n <Input size={finalSize}>\n <Input.Addon tag={MAP_SIZE_TO_ICON[finalSize][0]} />\n <Input.Value ref={forwardRef} autoFocus {...this.asProps} />\n <Input.Addon\n tag={MAP_SIZE_TO_ICON[finalSize][1]}\n role=\"button\"\n interactive\n style={{ visibility: value ? 'visible' : 'hidden' }}\n onClick={this.handleClear}\n />\n </Input>\n </SInputSearch>\n <Divider />\n </>,\n );\n }\n}\n\nexport default createComponent(InputSearch);\n"],"file":"InputSearch.js"}
|
package/lib/es6/Select.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Select.js"],"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","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"}
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|