@consta/uikit 4.30.0 → 4.30.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsCanary.js +1 -1
- package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsCanary.js.map +1 -1
- package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.js +1 -1
- package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.js.map +1 -1
- package/__internal__/src/components/Combobox/Combobox.js +1 -1
- package/__internal__/src/components/Combobox/Combobox.js.map +1 -1
- package/__internal__/src/components/ComboboxCanary/ComboboxCanary.js +1 -1
- package/__internal__/src/components/ComboboxCanary/ComboboxCanary.js.map +1 -1
- package/__internal__/src/components/ListCanary/ListItem/ListItem.css +1 -1
- package/__internal__/src/components/Select/Select.js +1 -1
- package/__internal__/src/components/Select/Select.js.map +1 -1
- package/__internal__/src/components/SelectCanary/SelectCanary.js +1 -1
- package/__internal__/src/components/SelectCanary/SelectCanary.js.map +1 -1
- package/__internal__/src/components/ThemeToggler/ThemeToggler.js +1 -1
- package/__internal__/src/components/ThemeToggler/ThemeToggler.js.map +1 -1
- package/__internal__/src/components/UserSelect/UserSelect.js +1 -1
- package/__internal__/src/components/UserSelect/UserSelect.js.map +1 -1
- package/__internal__/src/components/UserSelectCanary/UserSelectCanary.js +1 -1
- package/__internal__/src/components/UserSelectCanary/UserSelectCanary.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["item","attributes","as"],_excluded2=["items","value","onCreate","getItemKey","getItemLabel","getItemLeftIcon","getItemRightIcon","getItemAs","getItemRef","getItemAttributes","getItemFixed","onChange","onRemove","renderItem","size","form","view","withNavigationButtons","className","id"];import"./BookmarkTabs.css";import{IconAdd}from"@consta/icons/IconAdd";import{IconArrowLeft}from"@consta/icons/IconArrowLeft";import{IconArrowRight}from"@consta/icons/IconArrowRight";import React,{forwardRef,useMemo}from"react";import{useComponentSize}from"../../hooks/useComponentSize";import{useForkRef}from"../../hooks/useForkRef";import{cnCanary as cn}from"../../utils/bem";import{Button}from"../Button";import{BookmarkTabsTab}from"./BookmarkTabsTab";import{withDefaultGetters}from"./helper";import{bookmarkTabsPropFormDefault,bookmarkTabsPropSizeDefault,bookmarkTabsPropViewDefault}from"./types";import{useBookmarkTabs}from"./useBookmarkTabs";export var cnBookmarkTabs=cn("BookmarkTabs");var renderItemDefault=function(a){var b=a.item,c=a.attributes,d=void 0===c?{}:c,e=a.as,f=_objectWithoutProperties(a,_excluded);return React.createElement(BookmarkTabsTab,Object.assign({},d,f,{as:e}))},BookmarkTabsRender=function(a,b){var c=withDefaultGetters(a),d=c.items,e=void 0===d?[]:d,f=c.value,g=c.onCreate,h=c.getItemKey,i=c.getItemLabel,j=c.getItemLeftIcon,k=c.getItemRightIcon,l=c.getItemAs,m=c.getItemRef,n=c.getItemAttributes,o=c.getItemFixed,p=c.onChange,q=c.onRemove,r=c.renderItem,s=void 0===r?renderItemDefault:r,t=c.size,u=void 0===t?bookmarkTabsPropSizeDefault:t,v=c.form,w=void 0===v?bookmarkTabsPropFormDefault:v,x=c.view,y=void 0===x?bookmarkTabsPropViewDefault:x,z=c.withNavigationButtons,A=c.className,B=c.id,C=_objectWithoutProperties(c,_excluded2),D=function(a){return!!f&&h(a)===h(f)},E=useBookmarkTabs({items:e,getItemFixed:o,size:u,withNavigationButtons:z,withAddButton:!!g}),F=E.refs,G=E.fixedTabs,H=E.fixedTabsRef,I=E.otherTabs,J=E.otherTabsRef,K=E.showControls,L=E.wrapperRef,M=E.containerRef,N=E.controlsRef,O=E.addButtonRef,P=E.navigate,Q=E.sizes,R=useComponentSize(H),S=R.width,T=function(a,b,c,d,e){var f;return s({item:a,onClick:function onClick(b){return null===p||void 0===p?void 0:p(a,{e:b})},active:D(a),label:i(a),leftIcon:j(a),rightIcon:k(a),as:null!==(f=l(a))&&void 0!==f?f:"button",attributes:n(a),tabRef:m(a),controlRef:c,fixed:b,bordered:d,onClose:q?function(b){return q(a,{e:b})}:void 0,size:u,view:y,form:w,tabWidth:e})},U=useMemo(function(){var a=[].concat(_toConsumableArray(G),_toConsumableArray(I)),b=f?a.indexOf(f):-1;return Array.from(Array(a.length-1).keys()).filter(function(a){return"round"!==w||a!==b&&a!==b-1})},[G,I,f,w]);return React.createElement("div",Object.assign({className:cnBookmarkTabs({size:u,view:y,form:w},[A]),ref:useForkRef([b,M]),id:B},C),K&&React.createElement("div",{ref:N,className:cnBookmarkTabs("ScrollControls")},React.createElement("div",{className:cnBookmarkTabs("Button")},React.createElement(Button,{view:"clear",size:"xs",type:"button",onClick:function onClick(){return P("prev")},iconLeft:IconArrowLeft,onlyIcon:!0})),React.createElement("div",{className:cnBookmarkTabs("Button")},React.createElement(Button,{view:"clear",size:"xs",onClick:function onClick(){return P("next")},iconLeft:IconArrowRight,onlyIcon:!0}))),React.createElement("div",{ref:L,className:cnBookmarkTabs("Wrapper")},React.createElement("div",{style:_defineProperty({},"--bookmarks-list-width","max-content"),ref:H,className:cnBookmarkTabs("List")},G.map(function(a,b){return React.createElement(React.Fragment,{key:h(a)},T(a,!0,F[b],U.includes(b)))})),React.createElement("div",{style:_defineProperty({},"--bookmarks-list-width","calc(100% - ".concat(S,"px)")),className:cnBookmarkTabs("List"),ref:J},I.map(function(a,b){return React.createElement(React.Fragment,{key:h(a)},T(a,!1,F[G.length+b],U.includes(G.length+b),Q[b]))}))),g&&React.createElement("div",{ref:O,className:cnBookmarkTabs("Button",{type:"add"})},React.createElement(Button,{view:"clear",size:"xs",onClick:g,iconLeft:IconAdd,onlyIcon:!0})),React.createElement("div",{className:cnBookmarkTabs("Empty")}))};export var BookmarkTabs=forwardRef(BookmarkTabsRender);
|
|
1
|
+
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["item","attributes","as"],_excluded2=["items","value","onCreate","getItemKey","getItemLabel","getItemLeftIcon","getItemRightIcon","getItemAs","getItemRef","getItemAttributes","getItemFixed","onChange","onRemove","renderItem","size","form","view","withNavigationButtons","className","id"];import"./BookmarkTabs.css";import{IconAdd}from"@consta/icons/IconAdd";import{IconArrowLeft}from"@consta/icons/IconArrowLeft";import{IconArrowRight}from"@consta/icons/IconArrowRight";import React,{forwardRef,useMemo}from"react";import{useComponentSize}from"../../hooks/useComponentSize";import{useForkRef}from"../../hooks/useForkRef";import{cnCanary as cn}from"../../utils/bem";import{Button}from"../Button";import{BookmarkTabsTab}from"./BookmarkTabsTab";import{withDefaultGetters}from"./helper";import{bookmarkTabsPropFormDefault,bookmarkTabsPropSizeDefault,bookmarkTabsPropViewDefault}from"./types";import{useBookmarkTabs}from"./useBookmarkTabs";export var cnBookmarkTabs=cn("BookmarkTabs");var renderItemDefault=function(a){var b=a.item,c=a.attributes,d=void 0===c?{}:c,e=a.as,f=_objectWithoutProperties(a,_excluded);return React.createElement(BookmarkTabsTab,Object.assign({},d,f,{as:e}))},BookmarkTabsRender=function(a,b){var c=withDefaultGetters(a),d=c.items,e=void 0===d?[]:d,f=c.value,g=c.onCreate,h=c.getItemKey,i=c.getItemLabel,j=c.getItemLeftIcon,k=c.getItemRightIcon,l=c.getItemAs,m=c.getItemRef,n=c.getItemAttributes,o=c.getItemFixed,p=c.onChange,q=c.onRemove,r=c.renderItem,s=void 0===r?renderItemDefault:r,t=c.size,u=void 0===t?bookmarkTabsPropSizeDefault:t,v=c.form,w=void 0===v?bookmarkTabsPropFormDefault:v,x=c.view,y=void 0===x?bookmarkTabsPropViewDefault:x,z=c.withNavigationButtons,A=c.className,B=c.id,C=_objectWithoutProperties(c,_excluded2),D=function(a){return!!f&&h(a)===h(f)},E=useBookmarkTabs({items:e,getItemFixed:o,size:u,withNavigationButtons:z,withAddButton:!!g}),F=E.refs,G=E.fixedTabs,H=E.fixedTabsRef,I=E.otherTabs,J=E.otherTabsRef,K=E.showControls,L=E.wrapperRef,M=E.containerRef,N=E.controlsRef,O=E.addButtonRef,P=E.navigate,Q=E.sizes,R=useComponentSize(H),S=R.width,T=function(a,b,c,d,e){var f;return s({item:a,onClick:function onClick(b){return null===p||void 0===p?void 0:p(a,{e:b})},active:D(a),label:i(a),leftIcon:j(a),rightIcon:k(a),as:null!==(f=l(a))&&void 0!==f?f:"button",attributes:n(a),tabRef:m(a),controlRef:c,fixed:b,bordered:d,onClose:q?function(b){return q(a,{e:b})}:void 0,size:u,view:y,form:w,tabWidth:e})},U=useMemo(function(){var a=[].concat(_toConsumableArray(G),_toConsumableArray(I)),b=f?a.indexOf(f):-1;return Array.from(Array(a.length-1).keys()).filter(function(a){return"round"!==w||a!==b&&a!==b-1})},[G,I,f,w]);return React.createElement("div",Object.assign({className:cnBookmarkTabs({size:u,view:y,form:w},[A]),ref:useForkRef([b,M]),id:B},C),K&&React.createElement("div",{ref:N,className:cnBookmarkTabs("ScrollControls")},React.createElement("div",{className:cnBookmarkTabs("Button")},React.createElement(Button,{view:"clear",size:"xs",type:"button",onClick:function onClick(){return P("prev")},iconLeft:IconArrowLeft,onlyIcon:!0})),React.createElement("div",{className:cnBookmarkTabs("Button")},React.createElement(Button,{view:"clear",size:"xs",type:"button",onClick:function onClick(){return P("next")},iconLeft:IconArrowRight,onlyIcon:!0}))),React.createElement("div",{ref:L,className:cnBookmarkTabs("Wrapper")},React.createElement("div",{style:_defineProperty({},"--bookmarks-list-width","max-content"),ref:H,className:cnBookmarkTabs("List")},G.map(function(a,b){return React.createElement(React.Fragment,{key:h(a)},T(a,!0,F[b],U.includes(b)))})),React.createElement("div",{style:_defineProperty({},"--bookmarks-list-width","calc(100% - ".concat(S,"px)")),className:cnBookmarkTabs("List"),ref:J},I.map(function(a,b){return React.createElement(React.Fragment,{key:h(a)},T(a,!1,F[G.length+b],U.includes(G.length+b),Q[b]))}))),g&&React.createElement("div",{ref:O,className:cnBookmarkTabs("Button",{type:"add"})},React.createElement(Button,{view:"clear",size:"xs",type:"button",onClick:g,iconLeft:IconAdd,onlyIcon:!0})),React.createElement("div",{className:cnBookmarkTabs("Empty")}))};export var BookmarkTabs=forwardRef(BookmarkTabsRender);
|
|
2
2
|
//# sourceMappingURL=BookmarkTabsCanary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BookmarkTabsCanary.js","names":["IconAdd","IconArrowLeft","IconArrowRight","React","forwardRef","useMemo","useComponentSize","useForkRef","cnCanary","cn","Button","BookmarkTabsTab","withDefaultGetters","bookmarkTabsPropFormDefault","bookmarkTabsPropSizeDefault","bookmarkTabsPropViewDefault","useBookmarkTabs","cnBookmarkTabs","renderItemDefault","props","_item","item","attributes","as","otherProps","BookmarkTabsRender","ref","items","value","onCreate","getItemKey","getItemLabel","getItemLeftIcon","getItemRightIcon","getItemAs","getItemRef","getItemAttributes","getItemFixed","onChange","onRemove","renderItem","renderItemProp","size","form","view","withNavigationButtons","className","id","getItemActive","withAddButton","refs","fixedTabs","fixedTabsRef","otherTabs","otherTabsRef","showControls","wrapperRef","containerRef","controlsRef","addButtonRef","navigate","sizes","fixedWidth","width","fixed","controlRef","bordered","tabWidth","onClick","e","active","label","leftIcon","rightIcon","tabRef","onClose","borderedIndexes","arr","activeIndex","indexOf","Array","from","length","keys","filter","el","map","index","includes","type","BookmarkTabs"],"sources":["../../../../../src/components/BookmarkTabsCanary/BookmarkTabsCanary.tsx"],"sourcesContent":["import './BookmarkTabs.css';\n\nimport { IconAdd } from '@consta/icons/IconAdd';\nimport { IconArrowLeft } from '@consta/icons/IconArrowLeft';\nimport { IconArrowRight } from '@consta/icons/IconArrowRight';\nimport React, { forwardRef, useMemo } from 'react';\n\nimport { useComponentSize } from '##/hooks/useComponentSize';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnCanary as cn } from '##/utils/bem';\n\nimport { Button } from '../Button';\nimport { BookmarkTabsTab } from './BookmarkTabsTab';\nimport { withDefaultGetters } from './helper';\nimport {\n BookmarkTabsComponent,\n bookmarkTabsPropFormDefault,\n BookmarkTabsProps,\n bookmarkTabsPropSizeDefault,\n bookmarkTabsPropViewDefault,\n BookmarkTabsRenderItemProps,\n} from './types';\nimport { useBookmarkTabs } from './useBookmarkTabs';\n\nexport const cnBookmarkTabs = cn('BookmarkTabs');\n\nconst renderItemDefault = <ITEM,>(\n props: BookmarkTabsRenderItemProps<ITEM>,\n): React.ReactElement => {\n const { item: _item, attributes = {}, as, ...otherProps } = props;\n return <BookmarkTabsTab {...attributes} {...otherProps} as={as} />;\n};\n\nconst BookmarkTabsRender = (\n props: BookmarkTabsProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n items = [],\n value,\n onCreate,\n getItemKey,\n getItemLabel,\n getItemLeftIcon,\n getItemRightIcon,\n getItemAs,\n getItemRef,\n getItemAttributes,\n getItemFixed,\n onChange,\n onRemove,\n renderItem: renderItemProp = renderItemDefault,\n size = bookmarkTabsPropSizeDefault,\n form = bookmarkTabsPropFormDefault,\n view = bookmarkTabsPropViewDefault,\n withNavigationButtons,\n className,\n id,\n ...otherProps\n } = withDefaultGetters(props);\n\n type Item = typeof items[number];\n\n const getItemActive = (item: Item) => {\n return value ? getItemKey(item) === getItemKey(value) : false;\n };\n\n const {\n refs,\n fixedTabs,\n fixedTabsRef,\n otherTabs,\n otherTabsRef,\n showControls,\n wrapperRef,\n containerRef,\n controlsRef,\n addButtonRef,\n navigate,\n sizes,\n } = useBookmarkTabs({\n items,\n getItemFixed,\n size,\n withNavigationButtons,\n withAddButton: !!onCreate,\n });\n\n const { width: fixedWidth } = useComponentSize(fixedTabsRef);\n\n const renderItem = (\n item: Item,\n fixed: boolean,\n controlRef: React.RefObject<HTMLElement>,\n bordered: boolean,\n tabWidth?: string,\n ) =>\n renderItemProp({\n item,\n onClick: (e) => onChange?.(item, { e }),\n active: getItemActive(item),\n label: getItemLabel(item),\n leftIcon: getItemLeftIcon(item),\n rightIcon: getItemRightIcon(item),\n as: getItemAs(item) ?? 'button',\n attributes: getItemAttributes(item),\n tabRef: getItemRef(item),\n controlRef,\n fixed,\n bordered,\n onClose: onRemove ? (e) => onRemove(item, { e }) : undefined,\n size,\n view,\n form,\n tabWidth,\n });\n\n const borderedIndexes = useMemo(() => {\n const arr = [...fixedTabs, ...otherTabs];\n const activeIndex = value ? arr.indexOf(value) : -1;\n return Array.from(Array(arr.length - 1).keys()).filter((el) =>\n form === 'round' ? el !== activeIndex && el !== activeIndex - 1 : true,\n );\n }, [fixedTabs, otherTabs, value, form]);\n\n return (\n <div\n className={cnBookmarkTabs({ size, view, form }, [className])}\n ref={useForkRef([ref, containerRef])}\n id={id}\n {...otherProps}\n >\n {showControls && (\n <div ref={controlsRef} className={cnBookmarkTabs('ScrollControls')}>\n <div className={cnBookmarkTabs('Button')}>\n <Button\n view=\"clear\"\n size=\"xs\"\n type=\"button\"\n onClick={() => navigate('prev')}\n iconLeft={IconArrowLeft}\n onlyIcon\n />\n </div>\n <div className={cnBookmarkTabs('Button')}>\n <Button\n view=\"clear\"\n size=\"xs\"\n onClick={() => navigate('next')}\n iconLeft={IconArrowRight}\n onlyIcon\n />\n </div>\n </div>\n )}\n <div ref={wrapperRef} className={cnBookmarkTabs('Wrapper')}>\n <div\n style={{\n ['--bookmarks-list-width' as string]: `max-content`,\n }}\n ref={fixedTabsRef}\n className={cnBookmarkTabs('List')}\n >\n {fixedTabs.map((item, index) => (\n <React.Fragment key={getItemKey(item)}>\n {renderItem(\n item,\n true,\n refs[index],\n borderedIndexes.includes(index),\n )}\n </React.Fragment>\n ))}\n </div>\n <div\n style={{\n ['--bookmarks-list-width' as string]: `calc(100% - ${fixedWidth}px)`,\n }}\n className={cnBookmarkTabs('List')}\n ref={otherTabsRef}\n >\n {otherTabs.map((item, index) => (\n <React.Fragment key={getItemKey(item)}>\n {renderItem(\n item,\n false,\n refs[fixedTabs.length + index],\n borderedIndexes.includes(fixedTabs.length + index),\n sizes[index],\n )}\n </React.Fragment>\n ))}\n </div>\n </div>\n {onCreate && (\n <div\n ref={addButtonRef}\n className={cnBookmarkTabs('Button', { type: 'add' })}\n >\n <Button\n view=\"clear\"\n size=\"xs\"\n onClick={onCreate}\n iconLeft={IconAdd}\n onlyIcon\n />\n </div>\n )}\n <div className={cnBookmarkTabs('Empty')} />\n </div>\n );\n};\n\nexport const BookmarkTabs = forwardRef(\n BookmarkTabsRender,\n) as BookmarkTabsComponent;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BookmarkTabsCanary.js","names":["IconAdd","IconArrowLeft","IconArrowRight","React","forwardRef","useMemo","useComponentSize","useForkRef","cnCanary","cn","Button","BookmarkTabsTab","withDefaultGetters","bookmarkTabsPropFormDefault","bookmarkTabsPropSizeDefault","bookmarkTabsPropViewDefault","useBookmarkTabs","cnBookmarkTabs","renderItemDefault","props","_item","item","attributes","as","otherProps","BookmarkTabsRender","ref","items","value","onCreate","getItemKey","getItemLabel","getItemLeftIcon","getItemRightIcon","getItemAs","getItemRef","getItemAttributes","getItemFixed","onChange","onRemove","renderItem","renderItemProp","size","form","view","withNavigationButtons","className","id","getItemActive","withAddButton","refs","fixedTabs","fixedTabsRef","otherTabs","otherTabsRef","showControls","wrapperRef","containerRef","controlsRef","addButtonRef","navigate","sizes","fixedWidth","width","fixed","controlRef","bordered","tabWidth","onClick","e","active","label","leftIcon","rightIcon","tabRef","onClose","borderedIndexes","arr","activeIndex","indexOf","Array","from","length","keys","filter","el","map","index","includes","type","BookmarkTabs"],"sources":["../../../../../src/components/BookmarkTabsCanary/BookmarkTabsCanary.tsx"],"sourcesContent":["import './BookmarkTabs.css';\n\nimport { IconAdd } from '@consta/icons/IconAdd';\nimport { IconArrowLeft } from '@consta/icons/IconArrowLeft';\nimport { IconArrowRight } from '@consta/icons/IconArrowRight';\nimport React, { forwardRef, useMemo } from 'react';\n\nimport { useComponentSize } from '##/hooks/useComponentSize';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnCanary as cn } from '##/utils/bem';\n\nimport { Button } from '../Button';\nimport { BookmarkTabsTab } from './BookmarkTabsTab';\nimport { withDefaultGetters } from './helper';\nimport {\n BookmarkTabsComponent,\n bookmarkTabsPropFormDefault,\n BookmarkTabsProps,\n bookmarkTabsPropSizeDefault,\n bookmarkTabsPropViewDefault,\n BookmarkTabsRenderItemProps,\n} from './types';\nimport { useBookmarkTabs } from './useBookmarkTabs';\n\nexport const cnBookmarkTabs = cn('BookmarkTabs');\n\nconst renderItemDefault = <ITEM,>(\n props: BookmarkTabsRenderItemProps<ITEM>,\n): React.ReactElement => {\n const { item: _item, attributes = {}, as, ...otherProps } = props;\n return <BookmarkTabsTab {...attributes} {...otherProps} as={as} />;\n};\n\nconst BookmarkTabsRender = (\n props: BookmarkTabsProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n items = [],\n value,\n onCreate,\n getItemKey,\n getItemLabel,\n getItemLeftIcon,\n getItemRightIcon,\n getItemAs,\n getItemRef,\n getItemAttributes,\n getItemFixed,\n onChange,\n onRemove,\n renderItem: renderItemProp = renderItemDefault,\n size = bookmarkTabsPropSizeDefault,\n form = bookmarkTabsPropFormDefault,\n view = bookmarkTabsPropViewDefault,\n withNavigationButtons,\n className,\n id,\n ...otherProps\n } = withDefaultGetters(props);\n\n type Item = typeof items[number];\n\n const getItemActive = (item: Item) => {\n return value ? getItemKey(item) === getItemKey(value) : false;\n };\n\n const {\n refs,\n fixedTabs,\n fixedTabsRef,\n otherTabs,\n otherTabsRef,\n showControls,\n wrapperRef,\n containerRef,\n controlsRef,\n addButtonRef,\n navigate,\n sizes,\n } = useBookmarkTabs({\n items,\n getItemFixed,\n size,\n withNavigationButtons,\n withAddButton: !!onCreate,\n });\n\n const { width: fixedWidth } = useComponentSize(fixedTabsRef);\n\n const renderItem = (\n item: Item,\n fixed: boolean,\n controlRef: React.RefObject<HTMLElement>,\n bordered: boolean,\n tabWidth?: string,\n ) =>\n renderItemProp({\n item,\n onClick: (e) => onChange?.(item, { e }),\n active: getItemActive(item),\n label: getItemLabel(item),\n leftIcon: getItemLeftIcon(item),\n rightIcon: getItemRightIcon(item),\n as: getItemAs(item) ?? 'button',\n attributes: getItemAttributes(item),\n tabRef: getItemRef(item),\n controlRef,\n fixed,\n bordered,\n onClose: onRemove ? (e) => onRemove(item, { e }) : undefined,\n size,\n view,\n form,\n tabWidth,\n });\n\n const borderedIndexes = useMemo(() => {\n const arr = [...fixedTabs, ...otherTabs];\n const activeIndex = value ? arr.indexOf(value) : -1;\n return Array.from(Array(arr.length - 1).keys()).filter((el) =>\n form === 'round' ? el !== activeIndex && el !== activeIndex - 1 : true,\n );\n }, [fixedTabs, otherTabs, value, form]);\n\n return (\n <div\n className={cnBookmarkTabs({ size, view, form }, [className])}\n ref={useForkRef([ref, containerRef])}\n id={id}\n {...otherProps}\n >\n {showControls && (\n <div ref={controlsRef} className={cnBookmarkTabs('ScrollControls')}>\n <div className={cnBookmarkTabs('Button')}>\n <Button\n view=\"clear\"\n size=\"xs\"\n type=\"button\"\n onClick={() => navigate('prev')}\n iconLeft={IconArrowLeft}\n onlyIcon\n />\n </div>\n <div className={cnBookmarkTabs('Button')}>\n <Button\n view=\"clear\"\n size=\"xs\"\n type=\"button\"\n onClick={() => navigate('next')}\n iconLeft={IconArrowRight}\n onlyIcon\n />\n </div>\n </div>\n )}\n <div ref={wrapperRef} className={cnBookmarkTabs('Wrapper')}>\n <div\n style={{\n ['--bookmarks-list-width' as string]: `max-content`,\n }}\n ref={fixedTabsRef}\n className={cnBookmarkTabs('List')}\n >\n {fixedTabs.map((item, index) => (\n <React.Fragment key={getItemKey(item)}>\n {renderItem(\n item,\n true,\n refs[index],\n borderedIndexes.includes(index),\n )}\n </React.Fragment>\n ))}\n </div>\n <div\n style={{\n ['--bookmarks-list-width' as string]: `calc(100% - ${fixedWidth}px)`,\n }}\n className={cnBookmarkTabs('List')}\n ref={otherTabsRef}\n >\n {otherTabs.map((item, index) => (\n <React.Fragment key={getItemKey(item)}>\n {renderItem(\n item,\n false,\n refs[fixedTabs.length + index],\n borderedIndexes.includes(fixedTabs.length + index),\n sizes[index],\n )}\n </React.Fragment>\n ))}\n </div>\n </div>\n {onCreate && (\n <div\n ref={addButtonRef}\n className={cnBookmarkTabs('Button', { type: 'add' })}\n >\n <Button\n view=\"clear\"\n size=\"xs\"\n type=\"button\"\n onClick={onCreate}\n iconLeft={IconAdd}\n onlyIcon\n />\n </div>\n )}\n <div className={cnBookmarkTabs('Empty')} />\n </div>\n );\n};\n\nexport const BookmarkTabs = forwardRef(\n BookmarkTabsRender,\n) as BookmarkTabsComponent;\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["label","leftIcon","rightIcon","as","onClick","size","form","active","fixed","tabRef","controlRef","onClose","onKeyDown","view","className","bordered","tabWidth","style"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./BookmarkTabsTab.css";import{IconClose}from"@consta/icons/IconClose";import React,{forwardRef,useRef}from"react";import{Button}from"../../Button";import{Text}from"../../Text";import{useForkRef}from"../../../hooks/useForkRef";import{cnMixSpace}from"../../../mixs/MixSpace";import{cnCanary as cn}from"../../../utils/bem";export var cnBookmarkTabsTab=cn("BookmarkTabsTab");var BookmarkTabsTabRender=function(a,b){var c=a.label,d=a.leftIcon,e=a.rightIcon,f=a.as,g=void 0===f?"div":f,h=a.onClick,i=a.size,j=a.form,k=a.active,l=a.fixed,m=a.tabRef,n=a.controlRef,o=a.onClose,p=a.onKeyDown,q=a.view,r=a.className,s=a.bordered,t=a.tabWidth,u=void 0===t?"100%":t,v=a.style,w=_objectWithoutProperties(a,_excluded),x=useRef(null),y=useRef(null);return React.createElement(g,Object.assign({className:cnBookmarkTabsTab({size:i,form:j,view:q,active:k,fixed:l,bordered:s,withCloseButton:!!o,withLeftIcon:!!d,withRightIcon:!!e},[r]),role:"button",onClick:h,onKeyDown:function onKeyDown(a){var b=a.code;if(null===p||void 0===p?void 0:p(a),o&&"Enter"===b){var c;a.stopPropagation(),a.preventDefault(),null===(c=x.current)||void 0===c?void 0:c.focus()}},ref:useForkRef([b,m,n,y]),style:_objectSpread(_defineProperty({},"--bookmarks-tab-width",u),v)},w),d&&React.createElement(d,{className:cnBookmarkTabsTab("Icon",{side:"left"},[l?void 0:cnMixSpace({mR:"s"===i?"2xs":"xs"})]),size:i}),!l&&React.createElement(React.Fragment,null,React.createElement(Text,{align:"left",className:cnBookmarkTabsTab("Label"),size:i},c),e&&React.createElement(e,{className:cnBookmarkTabsTab("Icon",{side:"right"},[cnMixSpace({mL:"xs"})]),size:"xs",view:"secondary"}),o&&React.createElement(Button,{size:"xs",onlyIcon:!0,ref:x,view:"clear",onKeyDown:function onCloseKeydown(a){var b=a.code;if(a.stopPropagation(),a.preventDefault(),"Tab"===b||"Escape"===b){var c;null===y||void 0===y||null===(c=y.current)||void 0===c?void 0:c.focus()}("Enter"===b||"Space"===b)&&(null===o||void 0===o?void 0:o(a))},tabIndex:-1,className:cnBookmarkTabsTab("Button",[cnMixSpace({mL:"xs"})]),onClick:o,iconLeft:IconClose})))};export var BookmarkTabsTab=forwardRef(BookmarkTabsTabRender);
|
|
1
|
+
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["label","leftIcon","rightIcon","as","onClick","size","form","active","fixed","tabRef","controlRef","onClose","onKeyDown","view","className","bordered","tabWidth","style"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import"./BookmarkTabsTab.css";import{IconClose}from"@consta/icons/IconClose";import React,{forwardRef,useRef}from"react";import{Button}from"../../Button";import{Text}from"../../Text";import{useForkRef}from"../../../hooks/useForkRef";import{cnMixSpace}from"../../../mixs/MixSpace";import{cnCanary as cn}from"../../../utils/bem";export var cnBookmarkTabsTab=cn("BookmarkTabsTab");var BookmarkTabsTabRender=function(a,b){var c=a.label,d=a.leftIcon,e=a.rightIcon,f=a.as,g=void 0===f?"div":f,h=a.onClick,i=a.size,j=a.form,k=a.active,l=a.fixed,m=a.tabRef,n=a.controlRef,o=a.onClose,p=a.onKeyDown,q=a.view,r=a.className,s=a.bordered,t=a.tabWidth,u=void 0===t?"100%":t,v=a.style,w=_objectWithoutProperties(a,_excluded),x=useRef(null),y=useRef(null);return React.createElement(g,Object.assign({className:cnBookmarkTabsTab({size:i,form:j,view:q,active:k,fixed:l,bordered:s,withCloseButton:!!o,withLeftIcon:!!d,withRightIcon:!!e},[r]),role:"button",onClick:h,onKeyDown:function onKeyDown(a){var b=a.code;if(null===p||void 0===p?void 0:p(a),o&&"Enter"===b){var c;a.stopPropagation(),a.preventDefault(),null===(c=x.current)||void 0===c?void 0:c.focus()}},ref:useForkRef([b,m,n,y]),style:_objectSpread(_defineProperty({},"--bookmarks-tab-width",u),v)},w),d&&React.createElement(d,{className:cnBookmarkTabsTab("Icon",{side:"left"},[l?void 0:cnMixSpace({mR:"s"===i?"2xs":"xs"})]),size:i}),!l&&React.createElement(React.Fragment,null,React.createElement(Text,{align:"left",className:cnBookmarkTabsTab("Label"),size:i},c),e&&React.createElement(e,{className:cnBookmarkTabsTab("Icon",{side:"right"},[cnMixSpace({mL:"xs"})]),size:"xs",view:"secondary"}),o&&React.createElement(Button,{size:"xs",onlyIcon:!0,ref:x,type:"button",view:"clear",onKeyDown:function onCloseKeydown(a){var b=a.code;if(a.stopPropagation(),a.preventDefault(),"Tab"===b||"Escape"===b){var c;null===y||void 0===y||null===(c=y.current)||void 0===c?void 0:c.focus()}("Enter"===b||"Space"===b)&&(null===o||void 0===o?void 0:o(a))},tabIndex:-1,className:cnBookmarkTabsTab("Button",[cnMixSpace({mL:"xs"})]),onClick:o,iconLeft:IconClose})))};export var BookmarkTabsTab=forwardRef(BookmarkTabsTabRender);
|
|
2
2
|
//# sourceMappingURL=BookmarkTabsTab.js.map
|
package/__internal__/src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BookmarkTabsTab.js","names":["IconClose","React","forwardRef","useRef","Button","Text","useForkRef","cnMixSpace","cnCanary","cn","cnBookmarkTabsTab","BookmarkTabsTabRender","props","ref","label","LeftIcon","leftIcon","RightIcon","rightIcon","as","Tag","onClick","size","form","active","fixed","tabRef","controlRef","onClose","onKeyDownProp","onKeyDown","view","className","bordered","tabWidth","style","otherProps","closeButtonRef","tagRef","withCloseButton","withLeftIcon","withRightIcon","e","code","stopPropagation","preventDefault","current","focus","side","mR","mL","onCloseKeydown","BookmarkTabsTab"],"sources":["../../../../../../src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.tsx"],"sourcesContent":["import './BookmarkTabsTab.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { Button } from '##/components/Button';\nimport { Text } from '##/components/Text';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixSpace } from '##/mixs/MixSpace';\nimport { cnCanary as cn } from '##/utils/bem';\n\nimport { BookmarkTabsTabComponent, BookmarkTabsTabProps } from '../types';\n\nexport const cnBookmarkTabsTab = cn('BookmarkTabsTab');\n\nconst BookmarkTabsTabRender = (\n props: BookmarkTabsTabProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n label,\n leftIcon: LeftIcon,\n rightIcon: RightIcon,\n as: Tag = 'div',\n onClick,\n size,\n form,\n active,\n fixed,\n tabRef,\n controlRef,\n onClose,\n onKeyDown: onKeyDownProp,\n view,\n className,\n bordered,\n tabWidth = '100%',\n style,\n ...otherProps\n } = props;\n\n const closeButtonRef = useRef<HTMLButtonElement>(null);\n const tagRef = useRef<HTMLDivElement>(null);\n\n const onCloseKeydown: React.KeyboardEventHandler = (e) => {\n const { code } = e;\n e.stopPropagation();\n e.preventDefault();\n if (code === 'Tab' || code === 'Escape') {\n tagRef?.current?.focus();\n }\n if (code === 'Enter' || code === 'Space') {\n onClose?.(e);\n }\n };\n\n const onKeyDown: React.KeyboardEventHandler<HTMLDivElement> = (e) => {\n const { code } = e;\n onKeyDownProp?.(e);\n if (onClose && code === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n closeButtonRef.current?.focus();\n }\n };\n\n return (\n <Tag\n className={cnBookmarkTabsTab(\n {\n size,\n form,\n view,\n active,\n fixed,\n bordered,\n withCloseButton: !!onClose,\n withLeftIcon: !!LeftIcon,\n withRightIcon: !!RightIcon,\n },\n [className],\n )}\n role=\"button\"\n onClick={onClick}\n onKeyDown={onKeyDown}\n ref={useForkRef([ref, tabRef, controlRef, tagRef])}\n style={{\n ['--bookmarks-tab-width' as string]: tabWidth,\n ...style,\n }}\n {...otherProps}\n >\n {LeftIcon && (\n <LeftIcon\n className={cnBookmarkTabsTab('Icon', { side: 'left' }, [\n fixed ? undefined : cnMixSpace({ mR: size === 's' ? '2xs' : 'xs' }),\n ])}\n size={size}\n />\n )}\n {!fixed && (\n <>\n <Text align=\"left\" className={cnBookmarkTabsTab('Label')} size={size}>\n {label}\n </Text>\n {RightIcon && (\n <RightIcon\n className={cnBookmarkTabsTab('Icon', { side: 'right' }, [\n cnMixSpace({ mL: 'xs' }),\n ])}\n size=\"xs\"\n view=\"secondary\"\n />\n )}\n {onClose && (\n <Button\n size=\"xs\"\n onlyIcon\n ref={closeButtonRef}\n view=\"clear\"\n onKeyDown={onCloseKeydown}\n tabIndex={-1}\n className={cnBookmarkTabsTab('Button', [\n cnMixSpace({ mL: 'xs' }),\n ])}\n onClick={onClose}\n iconLeft={IconClose}\n />\n )}\n </>\n )}\n </Tag>\n );\n};\n\nexport const BookmarkTabsTab = forwardRef(\n BookmarkTabsTabRender,\n) as BookmarkTabsTabComponent;\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"BookmarkTabsTab.js","names":["IconClose","React","forwardRef","useRef","Button","Text","useForkRef","cnMixSpace","cnCanary","cn","cnBookmarkTabsTab","BookmarkTabsTabRender","props","ref","label","LeftIcon","leftIcon","RightIcon","rightIcon","as","Tag","onClick","size","form","active","fixed","tabRef","controlRef","onClose","onKeyDownProp","onKeyDown","view","className","bordered","tabWidth","style","otherProps","closeButtonRef","tagRef","withCloseButton","withLeftIcon","withRightIcon","e","code","stopPropagation","preventDefault","current","focus","side","mR","mL","onCloseKeydown","BookmarkTabsTab"],"sources":["../../../../../../src/components/BookmarkTabsCanary/BookmarkTabsTab/BookmarkTabsTab.tsx"],"sourcesContent":["import './BookmarkTabsTab.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { Button } from '##/components/Button';\nimport { Text } from '##/components/Text';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixSpace } from '##/mixs/MixSpace';\nimport { cnCanary as cn } from '##/utils/bem';\n\nimport { BookmarkTabsTabComponent, BookmarkTabsTabProps } from '../types';\n\nexport const cnBookmarkTabsTab = cn('BookmarkTabsTab');\n\nconst BookmarkTabsTabRender = (\n props: BookmarkTabsTabProps,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n label,\n leftIcon: LeftIcon,\n rightIcon: RightIcon,\n as: Tag = 'div',\n onClick,\n size,\n form,\n active,\n fixed,\n tabRef,\n controlRef,\n onClose,\n onKeyDown: onKeyDownProp,\n view,\n className,\n bordered,\n tabWidth = '100%',\n style,\n ...otherProps\n } = props;\n\n const closeButtonRef = useRef<HTMLButtonElement>(null);\n const tagRef = useRef<HTMLDivElement>(null);\n\n const onCloseKeydown: React.KeyboardEventHandler = (e) => {\n const { code } = e;\n e.stopPropagation();\n e.preventDefault();\n if (code === 'Tab' || code === 'Escape') {\n tagRef?.current?.focus();\n }\n if (code === 'Enter' || code === 'Space') {\n onClose?.(e);\n }\n };\n\n const onKeyDown: React.KeyboardEventHandler<HTMLDivElement> = (e) => {\n const { code } = e;\n onKeyDownProp?.(e);\n if (onClose && code === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n closeButtonRef.current?.focus();\n }\n };\n\n return (\n <Tag\n className={cnBookmarkTabsTab(\n {\n size,\n form,\n view,\n active,\n fixed,\n bordered,\n withCloseButton: !!onClose,\n withLeftIcon: !!LeftIcon,\n withRightIcon: !!RightIcon,\n },\n [className],\n )}\n role=\"button\"\n onClick={onClick}\n onKeyDown={onKeyDown}\n ref={useForkRef([ref, tabRef, controlRef, tagRef])}\n style={{\n ['--bookmarks-tab-width' as string]: tabWidth,\n ...style,\n }}\n {...otherProps}\n >\n {LeftIcon && (\n <LeftIcon\n className={cnBookmarkTabsTab('Icon', { side: 'left' }, [\n fixed ? undefined : cnMixSpace({ mR: size === 's' ? '2xs' : 'xs' }),\n ])}\n size={size}\n />\n )}\n {!fixed && (\n <>\n <Text align=\"left\" className={cnBookmarkTabsTab('Label')} size={size}>\n {label}\n </Text>\n {RightIcon && (\n <RightIcon\n className={cnBookmarkTabsTab('Icon', { side: 'right' }, [\n cnMixSpace({ mL: 'xs' }),\n ])}\n size=\"xs\"\n view=\"secondary\"\n />\n )}\n {onClose && (\n <Button\n size=\"xs\"\n onlyIcon\n ref={closeButtonRef}\n type=\"button\"\n view=\"clear\"\n onKeyDown={onCloseKeydown}\n tabIndex={-1}\n className={cnBookmarkTabsTab('Button', [\n cnMixSpace({ mL: 'xs' }),\n ])}\n onClick={onClose}\n iconLeft={IconClose}\n />\n )}\n </>\n )}\n </Tag>\n );\n};\n\nexport const BookmarkTabsTab = forwardRef(\n BookmarkTabsTabRender,\n) as BookmarkTabsTabComponent;\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","searchValue","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","onInputChange","searchFunction","selectAll","isLoading","multiple","style","dropdownForm"];import"../SelectComponents/Select.css";import{IconClose}from"@consta/icons/IconClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useSelect}from"../../hooks/useSelect/useSelect";import{cnMixFocus}from"../../mixs/MixFocus/MixFocus";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponents/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown/SelectDropdown";import{SelectItem}from"../SelectComponents/SelectItem/SelectItem";import{SelectValueTag}from"../SelectComponents/SelectValueTag/SelectValueTag";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{isMultipleParams,isNotMultipleParams,withDefaultGetters}from"./helpers";export var COMPONENT_NAME="Combobox";var ComboboxRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.required,r=g.dropdownRef,s=g.form,t=void 0===s?defaultPropForm:s,u=g.view,v=void 0===u?defaultPropView:u,w=g.size,x=void 0===w?defaultPropSize:w,y=g.dropdownClassName,z=g.name,A=g.groups,B=void 0===A?[]:A,C=g.getItemLabel,D=g.getItemKey,E=g.getItemGroupKey,F=g.getItemDisabled,G=g.getGroupKey,H=g.getGroupLabel,I=g.renderItem,J=g.searchValue,K=g.renderValue,L=g.onCreate,M=g.inputRef,N=g.labelForNotFound,O=void 0===N?defaultlabelForNotFound:N,P=g.labelForCreate,Q=void 0===P?defaultlabelForCreate:P,R=g.labelForEmptyItems,S=void 0===R?defaultLabelForEmptyItems:R,T=g.onInputChange,U=g.searchFunction,V=g.selectAll,W=g.isLoading,X=g.multiple,Y=void 0!==X&&X,Z=g.style,$=g.dropdownForm,_=void 0===$?"default":$,aa=_objectWithoutProperties(g,_excluded),ba=useSelect({items:k,groups:B,value:m,onChange:l,selectAll:V,dropdownRef:c,controlRef:f,disabled:n,getItemLabel:C,getItemKey:D,getGroupKey:G,searchValue:J,getItemGroupKey:E,getItemDisabled:F,multiple:Y,onBlur:i,onFocus:j,onCreate:L,searchFunction:U}),ca=ba.getKeyProps,da=ba.getOptionProps,ea=ba.isOpen,fa=ba.visibleItems,ga=ba.isFocused,ha=ba.handleInputFocus,ia=ba.handleInputBlur,ja=ba.handleToggleDropdown,ka=ba.inputRef,la=ba.handleInputClick,ma=ba.handleInputChange,na=ba.searchValue,oa=ba.clearValue,pa=ba.getHandleRemoveValue,qa=ba.notFound,ra=ba.hasItems,sa=p?"".concat(p,"-input"):p,ta=K||(Y?function renderValueDefaultMultiple(a){var b=a.item,c=a.handleRemove;return React.createElement(SelectValueTag,{label:C(b),key:D(b),size:x,disabled:n||F(b),handleRemove:c})}:function renderValueDefaultNotMultiple(a){var b=C(a.item);return React.createElement("span",{className:cnSelect("ControlValue"),title:b},b)}),ua=useForkRef([ka,M]),va=function(a){ma(a);var b=a.target.value;n||(null===T||void 0===T?void 0:T({e:a,id:p,name:z,value:b||null}))},wa=function(){var b=Y?getInputWidth(d,e):void 0;return React.createElement(React.Fragment,null,isMultipleParams(a)&&Array.isArray(a.value)&&a.value.map(function(a){return ta({item:a,handleRemove:pa(a)})}),isNotMultipleParams(a)&&a.value&&ta({item:a.value}),(!m||Array.isArray(m)&&0===m.length)&&!na&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},ca(),{type:"text",name:z,id:sa,onFocus:ha,onBlur:ia,"aria-label":o,onChange:va,ref:ua,className:cnSelect("Input",{size:x,hide:!Y
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","searchValue","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","onInputChange","searchFunction","selectAll","isLoading","multiple","style","dropdownForm"];import"../SelectComponents/Select.css";import{IconClose}from"@consta/icons/IconClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{isNotNil}from"../../utils/type-guards";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useSelect}from"../../hooks/useSelect/useSelect";import{cnMixFocus}from"../../mixs/MixFocus/MixFocus";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponents/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown/SelectDropdown";import{SelectItem}from"../SelectComponents/SelectItem/SelectItem";import{SelectValueTag}from"../SelectComponents/SelectValueTag/SelectValueTag";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{isMultipleParams,isNotMultipleParams,withDefaultGetters}from"./helpers";export var COMPONENT_NAME="Combobox";var ComboboxRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.required,r=g.dropdownRef,s=g.form,t=void 0===s?defaultPropForm:s,u=g.view,v=void 0===u?defaultPropView:u,w=g.size,x=void 0===w?defaultPropSize:w,y=g.dropdownClassName,z=g.name,A=g.groups,B=void 0===A?[]:A,C=g.getItemLabel,D=g.getItemKey,E=g.getItemGroupKey,F=g.getItemDisabled,G=g.getGroupKey,H=g.getGroupLabel,I=g.renderItem,J=g.searchValue,K=g.renderValue,L=g.onCreate,M=g.inputRef,N=g.labelForNotFound,O=void 0===N?defaultlabelForNotFound:N,P=g.labelForCreate,Q=void 0===P?defaultlabelForCreate:P,R=g.labelForEmptyItems,S=void 0===R?defaultLabelForEmptyItems:R,T=g.onInputChange,U=g.searchFunction,V=g.selectAll,W=g.isLoading,X=g.multiple,Y=void 0!==X&&X,Z=g.style,$=g.dropdownForm,_=void 0===$?"default":$,aa=_objectWithoutProperties(g,_excluded),ba=useSelect({items:k,groups:B,value:m,onChange:l,selectAll:V,dropdownRef:c,controlRef:f,disabled:n,getItemLabel:C,getItemKey:D,getGroupKey:G,searchValue:J,getItemGroupKey:E,getItemDisabled:F,multiple:Y,onBlur:i,onFocus:j,onCreate:L,searchFunction:U}),ca=ba.getKeyProps,da=ba.getOptionProps,ea=ba.isOpen,fa=ba.visibleItems,ga=ba.isFocused,ha=ba.handleInputFocus,ia=ba.handleInputBlur,ja=ba.handleToggleDropdown,ka=ba.inputRef,la=ba.handleInputClick,ma=ba.handleInputChange,na=ba.searchValue,oa=ba.clearValue,pa=ba.getHandleRemoveValue,qa=ba.notFound,ra=ba.hasItems,sa=p?"".concat(p,"-input"):p,ta=K||(Y?function renderValueDefaultMultiple(a){var b=a.item,c=a.handleRemove;return React.createElement(SelectValueTag,{label:C(b),key:D(b),size:x,disabled:n||F(b),handleRemove:c})}:function renderValueDefaultNotMultiple(a){var b=C(a.item);return React.createElement("span",{className:cnSelect("ControlValue"),title:b},b)}),ua=useForkRef([ka,M]),va=function(a){ma(a);var b=a.target.value;n||(null===T||void 0===T?void 0:T({e:a,id:p,name:z,value:b||null}))},wa=function(){var b=Y?getInputWidth(d,e):void 0;return React.createElement(React.Fragment,null,isMultipleParams(a)&&Array.isArray(a.value)&&a.value.map(function(a){return ta({item:a,handleRemove:pa(a)})}),isNotMultipleParams(a)&&isNotNil(a.value)&&ta({item:a.value}),(!isNotNil(m)||Array.isArray(m)&&0===m.length)&&!na&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},ca(),{type:"text",name:z,id:sa,onFocus:ha,onBlur:ia,"aria-label":o,onChange:va,ref:ua,className:cnSelect("Input",{size:x,hide:!Y&&isNotNil(m),multiple:Y}),value:na,style:{width:b}})))};return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:ga,disabled:n,size:x,view:v,required:q,form:t,multiple:Y,ref:b,type:"combobox",style:Z,id:sa},aa),React.createElement("div",{className:cnSelect("Control",{hasInput:!0}),ref:f,"aria-expanded":ea,"aria-haspopup":"listbox",id:p},React.createElement("div",{className:cnSelect("ControlInner"),onClick:la,role:"button",ref:d,"aria-hidden":"true"},React.createElement("div",{className:cnSelect("ControlValueContainer")},Y?React.createElement("div",{className:cnSelect("ControlValue")},wa()):wa())),React.createElement("span",{className:cnSelect("Indicators")},isNotNil(m)&&React.createElement("button",{type:"button",onClick:oa,className:cnSelect("ClearIndicator",[cnMixFocus()])},React.createElement(IconClose,{size:"xs",className:cnSelect("ClearIndicatorIcon")})),React.createElement("span",{className:cnSelect("Delimiter")}),React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:ja},React.createElement(IconSelect,{size:"xs",className:cnSelect("DropdownIndicatorIcon")})))),React.createElement("div",{className:cnSelect("HelperInputFakeElement"),ref:e},na)),React.createElement(SelectDropdown,{isOpen:ea,size:x,controlRef:f,getOptionProps:da,dropdownRef:useForkRef([r,c]),form:_,className:y,renderItem:I||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter;return React.createElement(SelectItem,{label:C(b),active:c,hovered:d,multiple:Y,size:x,indent:"round"===_?"increased":"normal",onClick:e,onMouseEnter:f,disabled:F(b)})},getGroupLabel:H,visibleItems:fa,labelForNotFound:O,labelForCreate:Q,isLoading:W,labelForEmptyItems:S,notFound:qa,hasItems:ra,style:"number"==typeof(null===Z||void 0===Z?void 0:Z.zIndex)?{zIndex:Z.zIndex+1}:void 0}))};export var Combobox=forwardRef(ComboboxRender);export*from"./helpers";
|
|
2
2
|
//# sourceMappingURL=Combobox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.js","names":["IconClose","IconSelect","React","forwardRef","useRef","useForkRef","useSelect","cnMixFocus","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","SelectItem","SelectValueTag","defaultPropForm","defaultPropSize","defaultPropView","isMultipleParams","isNotMultipleParams","withDefaultGetters","COMPONENT_NAME","ComboboxRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","searchValueProp","searchValue","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","onInputChange","searchFunction","selectAll","isLoading","multiple","style","dropdownForm","otherProps","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","inputId","renderValueDefaultMultiple","item","handleRemove","renderValueDefaultNotMultiple","valueLable","inputRefForRender","handleChangeValue","e","target","renderControlValue","width","Array","isArray","map","length","hide","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","Combobox"],"sources":["../../../../../src/components/Combobox/Combobox.tsx"],"sourcesContent":["import '../SelectComponents/Select.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useSelect } from '../../hooks/useSelect/useSelect';\nimport { cnMixFocus } from '../../mixs/MixFocus/MixFocus';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { cnSelect } from '../SelectComponents/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '../SelectComponents/helpers';\nimport { SelectContainer } from '../SelectComponents/SelectContainer/SelectContainer';\nimport { SelectDropdown } from '../SelectComponents/SelectDropdown/SelectDropdown';\nimport { SelectItem } from '../SelectComponents/SelectItem/SelectItem';\nimport { SelectValueTag } from '../SelectComponents/SelectValueTag/SelectValueTag';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '../SelectComponents/types';\nimport {\n ComboboxComponent,\n ComboboxProps,\n DefaultGroup,\n DefaultItem,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n withDefaultGetters,\n} from './helpers';\n\nexport const COMPONENT_NAME = 'Combobox' as const;\n\nconst ComboboxRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: ComboboxProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n required,\n dropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n name,\n groups = [],\n getItemLabel,\n getItemKey,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n searchValue: searchValueProp,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n onInputChange,\n searchFunction,\n selectAll,\n isLoading,\n multiple = false,\n style,\n dropdownForm = 'default',\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n selectAll,\n dropdownRef: defaultDropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n searchValue: searchValueProp,\n getItemGroupKey,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={multiple}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disabled={getItemDisabled(item)}\n />\n );\n };\n\n const renderValueDefaultMultiple: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <SelectValueTag\n label={getItemLabel(item)}\n key={getItemKey(item)}\n size={size}\n disabled={disabled || getItemDisabled(item)}\n handleRemove={handleRemove}\n />\n );\n };\n\n const renderValueDefaultNotMultiple: PropRenderValue<ITEM> = (props) => {\n const valueLable = getItemLabel(props.item);\n\n return (\n <span className={cnSelect('ControlValue')} title={valueLable}>\n {valueLable}\n </span>\n );\n };\n\n const renderValue =\n renderValueProp ||\n (multiple ? renderValueDefaultMultiple : renderValueDefaultNotMultiple);\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const handleChangeValue = (e: React.ChangeEvent<HTMLInputElement>) => {\n handleInputChange(e);\n const { value } = e.target;\n !disabled && onInputChange?.({ e, id, name, value: value || null });\n };\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n props.value &&\n renderValue({ item: props.value })}\n {(!value || (Array.isArray(value) && value.length === 0)) &&\n !searchValue &&\n placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n <input\n {...getKeyProps()}\n type=\"text\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleChangeValue}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && !!value,\n multiple,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n view={view}\n required={required}\n form={form}\n multiple={multiple}\n ref={ref}\n type=\"combobox\"\n style={style}\n id={inputId}\n {...otherProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {multiple ? (\n <div className={cnSelect('ControlValue')}>\n {renderControlValue()}\n </div>\n ) : (\n renderControlValue()\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {value && (\n <button\n type=\"button\"\n onClick={clearValue}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClose\n size=\"xs\"\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={useForkRef([dropdownRef, defaultDropdownRef])}\n form={dropdownForm}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n isLoading={isLoading}\n labelForEmptyItems={labelForEmptyItems}\n notFound={notFound}\n hasItems={hasItems}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const Combobox = forwardRef(ComboboxRender) as ComboboxComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Combobox.js","names":["IconClose","IconSelect","React","forwardRef","useRef","isNotNil","useForkRef","useSelect","cnMixFocus","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","SelectItem","SelectValueTag","defaultPropForm","defaultPropSize","defaultPropView","isMultipleParams","isNotMultipleParams","withDefaultGetters","COMPONENT_NAME","ComboboxRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","searchValueProp","searchValue","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","onInputChange","searchFunction","selectAll","isLoading","multiple","style","dropdownForm","otherProps","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","inputId","renderValueDefaultMultiple","item","handleRemove","renderValueDefaultNotMultiple","valueLable","inputRefForRender","handleChangeValue","e","target","renderControlValue","width","Array","isArray","map","length","hide","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","Combobox"],"sources":["../../../../../src/components/Combobox/Combobox.tsx"],"sourcesContent":["import '../SelectComponents/Select.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { isNotNil } from '##/utils/type-guards';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useSelect } from '../../hooks/useSelect/useSelect';\nimport { cnMixFocus } from '../../mixs/MixFocus/MixFocus';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { cnSelect } from '../SelectComponents/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '../SelectComponents/helpers';\nimport { SelectContainer } from '../SelectComponents/SelectContainer/SelectContainer';\nimport { SelectDropdown } from '../SelectComponents/SelectDropdown/SelectDropdown';\nimport { SelectItem } from '../SelectComponents/SelectItem/SelectItem';\nimport { SelectValueTag } from '../SelectComponents/SelectValueTag/SelectValueTag';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '../SelectComponents/types';\nimport {\n ComboboxComponent,\n ComboboxProps,\n DefaultGroup,\n DefaultItem,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n withDefaultGetters,\n} from './helpers';\n\nexport const COMPONENT_NAME = 'Combobox' as const;\n\nconst ComboboxRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: ComboboxProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n required,\n dropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n name,\n groups = [],\n getItemLabel,\n getItemKey,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n searchValue: searchValueProp,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n onInputChange,\n searchFunction,\n selectAll,\n isLoading,\n multiple = false,\n style,\n dropdownForm = 'default',\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n selectAll,\n dropdownRef: defaultDropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n searchValue: searchValueProp,\n getItemGroupKey,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={multiple}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disabled={getItemDisabled(item)}\n />\n );\n };\n\n const renderValueDefaultMultiple: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <SelectValueTag\n label={getItemLabel(item)}\n key={getItemKey(item)}\n size={size}\n disabled={disabled || getItemDisabled(item)}\n handleRemove={handleRemove}\n />\n );\n };\n\n const renderValueDefaultNotMultiple: PropRenderValue<ITEM> = (props) => {\n const valueLable = getItemLabel(props.item);\n\n return (\n <span className={cnSelect('ControlValue')} title={valueLable}>\n {valueLable}\n </span>\n );\n };\n\n const renderValue =\n renderValueProp ||\n (multiple ? renderValueDefaultMultiple : renderValueDefaultNotMultiple);\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const handleChangeValue = (e: React.ChangeEvent<HTMLInputElement>) => {\n handleInputChange(e);\n const { value } = e.target;\n !disabled && onInputChange?.({ e, id, name, value: value || null });\n };\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n isNotNil(props.value) &&\n renderValue({ item: props.value })}\n {(!isNotNil(value) || (Array.isArray(value) && value.length === 0)) &&\n !searchValue &&\n placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n <input\n {...getKeyProps()}\n type=\"text\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleChangeValue}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && isNotNil(value),\n multiple,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n view={view}\n required={required}\n form={form}\n multiple={multiple}\n ref={ref}\n type=\"combobox\"\n style={style}\n id={inputId}\n {...otherProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {multiple ? (\n <div className={cnSelect('ControlValue')}>\n {renderControlValue()}\n </div>\n ) : (\n renderControlValue()\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {isNotNil(value) && (\n <button\n type=\"button\"\n onClick={clearValue}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClose\n size=\"xs\"\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={useForkRef([dropdownRef, defaultDropdownRef])}\n form={dropdownForm}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n isLoading={isLoading}\n labelForEmptyItems={labelForEmptyItems}\n notFound={notFound}\n hasItems={hasItems}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const Combobox = forwardRef(ComboboxRender) as ComboboxComponent;\n\nexport * from './helpers';\n"],"mappings":"gkBAAA,uCAEA,OAASA,SAAT,KAA0B,yBAA1B,CACA,OAASC,UAAT,KAA2B,0BAA3B,CACA,MAAOC,MAAP,EAAgBC,UAAhB,CAA4BC,MAA5B,KAA0C,OAA1C,CAEA,OAASC,QAAT,+BAEA,OAASC,UAAT,yCACA,OAASC,SAAT,uCACA,OAASC,UAAT,oCACA,OAASC,eAAT,2CACA,OAASC,QAAT,oCACA,OACEC,qBADF,CAEEC,yBAFF,CAGEC,uBAHF,CAIEC,aAJF,mCAMA,OAASC,eAAT,2DACA,OAASC,cAAT,yDACA,OAASC,UAAT,iDACA,OAASC,cAAT,yDACA,OACEC,eADF,CAEEC,eAFF,CAGEC,eAHF,iCAKA,OAKEC,gBALF,CAMEC,mBANF,CASEC,kBATF,iBAYA,MAAO,IAAMC,eAAc,CAAG,UAAvB,CAEP,GAAMC,eAAc,CAAG,SAKrBC,CALqB,CAMrBC,CANqB,CAOlB,IACGC,EAAkB,CAAGzB,MAAM,CAAwB,IAAxB,CAD9B,CAEG0B,CAAe,CAAG1B,MAAM,CAAiB,IAAjB,CAF3B,CAGG2B,CAAsB,CAAG3B,MAAM,CAAiB,IAAjB,CAHlC,CAIG4B,CAAU,CAAG5B,MAAM,CAAwB,IAAxB,CAJtB,GA8CCK,eAAe,CAACgB,cAAD,CAAiBD,kBAAkB,CAACG,CAAD,CAAnC,CAA4CK,CAA5C,CA9ChB,CAODC,CAPC,GAODA,WAPC,CAQDC,CARC,GAQDA,MARC,CASDC,CATC,GASDA,OATC,CAUDC,CAVC,GAUDA,KAVC,CAWDC,CAXC,GAWDA,QAXC,CAYDC,CAZC,GAYDA,KAZC,CAaDC,CAbC,GAaDA,QAbC,CAcDC,CAdC,GAcDA,SAdC,CAeDC,CAfC,GAeDA,EAfC,CAgBDC,CAhBC,GAgBDA,QAhBC,CAiBDC,CAjBC,GAiBDA,WAjBC,KAkBDC,IAlBC,CAkBDA,CAlBC,YAkBMzB,eAlBN,OAmBD0B,IAnBC,CAmBDA,CAnBC,YAmBMxB,eAnBN,OAoBDyB,IApBC,CAoBDA,CApBC,YAoBM1B,eApBN,GAqBD2B,CArBC,GAqBDA,iBArBC,CAsBDC,CAtBC,GAsBDA,IAtBC,KAuBDC,MAvBC,CAuBDA,CAvBC,YAuBQ,EAvBR,GAwBDC,CAxBC,GAwBDA,YAxBC,CAyBDC,CAzBC,GAyBDA,UAzBC,CA0BDC,CA1BC,GA0BDA,eA1BC,CA2BDC,CA3BC,GA2BDA,eA3BC,CA4BDC,CA5BC,GA4BDA,WA5BC,CA6BDC,CA7BC,GA6BDA,aA7BC,CA8BDC,CA9BC,GA8BDA,UA9BC,CA+BYC,CA/BZ,GA+BDC,WA/BC,CAgCYC,CAhCZ,GAgCDC,WAhCC,CAiCDC,CAjCC,GAiCDA,QAjCC,CAkCSC,CAlCT,GAkCDC,QAlCC,KAmCDC,gBAnCC,CAmCDA,CAnCC,YAmCkBnD,uBAnClB,OAoCDoD,cApCC,CAoCDA,CApCC,YAoCgBtD,qBApChB,OAqCDuD,kBArCC,CAqCDA,CArCC,YAqCoBtD,yBArCpB,GAsCDuD,CAtCC,GAsCDA,aAtCC,CAuCDC,CAvCC,GAuCDA,cAvCC,CAwCDC,CAxCC,GAwCDA,SAxCC,CAyCDC,CAzCC,GAyCDA,SAzCC,KA0CDC,QA1CC,CA0CDA,CA1CC,eA2CDC,CA3CC,GA2CDA,KA3CC,KA4CDC,YA5CC,CA4CDA,CA5CC,YA4Cc,SA5Cd,GA6CEC,EA7CF,0CAiECnE,SAAS,CAAC,CACZ6B,KAAK,CAALA,CADY,CAEZa,MAAM,CAANA,CAFY,CAGZX,KAAK,CAALA,CAHY,CAIZD,QAAQ,CAARA,CAJY,CAKZgC,SAAS,CAATA,CALY,CAMZ1B,WAAW,CAAEd,CAND,CAOZG,UAAU,CAAVA,CAPY,CAQZO,QAAQ,CAARA,CARY,CASZW,YAAY,CAAZA,CATY,CAUZC,UAAU,CAAVA,CAVY,CAWZG,WAAW,CAAXA,CAXY,CAYZI,WAAW,CAAED,CAZD,CAaZL,eAAe,CAAfA,CAbY,CAcZC,eAAe,CAAfA,CAdY,CAeZkB,QAAQ,CAARA,CAfY,CAgBZrC,MAAM,CAANA,CAhBY,CAiBZC,OAAO,CAAPA,CAjBY,CAkBZ0B,QAAQ,CAARA,CAlBY,CAmBZO,cAAc,CAAdA,CAnBY,CAAD,CAjEV,CAiDDO,EAjDC,IAiDDA,WAjDC,CAkDDC,EAlDC,IAkDDA,cAlDC,CAmDDC,EAnDC,IAmDDA,MAnDC,CAoDDC,EApDC,IAoDDA,YApDC,CAqDDC,EArDC,IAqDDA,SArDC,CAsDDC,EAtDC,IAsDDA,gBAtDC,CAuDDC,EAvDC,IAuDDA,eAvDC,CAwDDC,EAxDC,IAwDDA,oBAxDC,CAyDDnB,EAzDC,IAyDDA,QAzDC,CA0DDoB,EA1DC,IA0DDA,gBA1DC,CA2DDC,EA3DC,IA2DDA,iBA3DC,CA4DD1B,EA5DC,IA4DDA,WA5DC,CA6DD2B,EA7DC,IA6DDA,UA7DC,CA8DDC,EA9DC,IA8DDA,oBA9DC,CA+DDC,EA/DC,IA+DDA,QA/DC,CAgEDC,EAhEC,IAgEDA,QAhEC,CAuFGC,EAAO,CAAGhD,CAAE,WAAMA,CAAN,WAAmBA,CAvFlC,CAoIGmB,EAAW,CACfD,CAAe,GACdY,CAAQ,CA3B+C,QAApDmB,2BAAoD,GAGpD,IAFJC,EAEI,GAFJA,IAEI,CADJC,CACI,GADJA,YACI,CACJ,MACE,qBAAC,cAAD,EACE,KAAK,CAAE1C,CAAY,CAACyC,CAAD,CADrB,CAEE,GAAG,CAAExC,CAAU,CAACwC,CAAD,CAFjB,CAGE,IAAI,CAAE7C,CAHR,CAIE,QAAQ,CAAEP,CAAQ,EAAIc,CAAe,CAACsC,CAAD,CAJvC,CAKE,YAAY,CAAEC,CALhB,EAQH,CAcU,CAZkD,QAAvDC,8BAAuD,CAAClE,CAAD,CAAW,CACtE,GAAMmE,EAAU,CAAG5C,CAAY,CAACvB,CAAK,CAACgE,IAAP,CAA/B,CAEA,MACE,6BAAM,SAAS,CAAEjF,QAAQ,CAAC,cAAD,CAAzB,CAA2C,KAAK,CAAEoF,CAAlD,EACGA,CADH,CAIH,CAGgB,CArId,CAwIGC,EAAiB,CAAGzF,UAAU,CAAC,CAACyD,EAAD,CAAWD,CAAX,CAAD,CAxIjC,CA0IGkC,EAAiB,CAAG,SAACC,CAAD,CAA4C,CACpEb,EAAiB,CAACa,CAAD,CADmD,CAEpE,GAAQ3D,EAAR,CAAkB2D,CAAC,CAACC,MAApB,CAAQ5D,KAAR,CACCC,CAAD,UAAa4B,CAAb,WAAaA,CAAb,QAAaA,CAAa,CAAG,CAAE8B,CAAC,CAADA,CAAF,CAAKxD,EAAE,CAAFA,CAAL,CAASO,IAAI,CAAJA,CAAT,CAAeV,KAAK,CAAEA,CAAK,EAAI,IAA/B,CAAH,CAA1B,CACD,CA9IE,CAgJG6D,EAAkB,CAAG,UAAM,CAC/B,GAAMC,EAAK,CAAG7B,CAAQ,CAClBzD,aAAa,CAACgB,CAAD,CAAkBC,CAAlB,CADK,OAAtB,CAGA,MACE,yCACGT,gBAAgB,CAACK,CAAD,CAAhB,EACC0E,KAAK,CAACC,OAAN,CAAc3E,CAAK,CAACW,KAApB,CADD,EAECX,CAAK,CAACW,KAAN,CAAYiE,GAAZ,CAAgB,SAACZ,CAAD,QACd/B,GAAW,CAAC,CAAE+B,IAAI,CAAJA,CAAF,CAAQC,YAAY,CAAEN,EAAoB,CAACK,CAAD,CAA1C,CAAD,CADG,CAAhB,CAHJ,CAMGpE,mBAAmB,CAACI,CAAD,CAAnB,EACCtB,QAAQ,CAACsB,CAAK,CAACW,KAAP,CADT,EAECsB,EAAW,CAAC,CAAE+B,IAAI,CAAEhE,CAAK,CAACW,KAAd,CAAD,CARf,CASG,CAAC,CAACjC,QAAQ,CAACiC,CAAD,CAAT,EAAqB+D,KAAK,CAACC,OAAN,CAAchE,CAAd,GAAyC,CAAjB,GAAAA,CAAK,CAACkE,MAApD,GACC,CAAC9C,EADF,EAECzB,CAFD,EAGG,4BAAM,SAAS,CAAEvB,QAAQ,CAAC,aAAD,CAAzB,CAA0C,KAAK,CAAC,aAAhD,EACGuB,CADH,CAZN,CAgBE,6CACM0C,EAAW,EADjB,EAEE,IAAI,CAAC,MAFP,CAGE,IAAI,CAAE3B,CAHR,CAIE,EAAE,CAAEyC,EAJN,CAKE,OAAO,CAAET,EALX,CAME,MAAM,CAAEC,EANV,CAOE,aAAYzC,CAPd,CAQE,QAAQ,CAAEwD,EARZ,CASE,GAAG,CAAED,EATP,CAUE,SAAS,CAAErF,QAAQ,CAAC,OAAD,CAAU,CAC3BoC,IAAI,CAAJA,CAD2B,CAE3B2D,IAAI,CAAE,CAAClC,CAAD,EAAalE,QAAQ,CAACiC,CAAD,CAFA,CAG3BiC,QAAQ,CAARA,CAH2B,CAAV,CAVrB,CAeE,KAAK,CAAEb,EAfT,CAgBE,KAAK,CAAE,CAAE0C,KAAK,CAALA,CAAF,CAhBT,GAhBF,CAoCH,CAzLE,CA2LH,MACE,yCACE,oBAAC,eAAD,gBACE,OAAO,CAAErB,EADX,CAEE,QAAQ,CAAExC,CAFZ,CAGE,IAAI,CAAEO,CAHR,CAIE,IAAI,CAAED,CAJR,CAKE,QAAQ,CAAEH,CALZ,CAME,IAAI,CAAEE,CANR,CAOE,QAAQ,CAAE2B,CAPZ,CAQE,GAAG,CAAE3C,CARP,CASE,IAAI,CAAC,UATP,CAUE,KAAK,CAAE4C,CAVT,CAWE,EAAE,CAAEiB,EAXN,EAYMf,EAZN,EAcE,2BACE,SAAS,CAAEhE,QAAQ,CAAC,SAAD,CAAY,CAAEgG,QAAQ,GAAV,CAAZ,CADrB,CAEE,GAAG,CAAE1E,CAFP,CAGE,gBAAe6C,EAHjB,CAIE,gBAAc,SAJhB,CAKE,EAAE,CAAEpC,CALN,EAOE,2BACE,SAAS,CAAE/B,QAAQ,CAAC,cAAD,CADrB,CAEE,OAAO,CAAEyE,EAFX,CAGE,IAAI,CAAC,QAHP,CAIE,GAAG,CAAErD,CAJP,CAKE,cAAY,MALd,EAOE,2BAAK,SAAS,CAAEpB,QAAQ,CAAC,uBAAD,CAAxB,EACG6D,CAAQ,CACP,2BAAK,SAAS,CAAE7D,QAAQ,CAAC,cAAD,CAAxB,EACGyF,EAAkB,EADrB,CADO,CAKPA,EAAkB,EANtB,CAPF,CAPF,CAwBE,4BAAM,SAAS,CAAEzF,QAAQ,CAAC,YAAD,CAAzB,EACGL,QAAQ,CAACiC,CAAD,CAAR,EACC,8BACE,IAAI,CAAC,QADP,CAEE,OAAO,CAAE+C,EAFX,CAGE,SAAS,CAAE3E,QAAQ,CAAC,gBAAD,CAAmB,CAACF,UAAU,EAAX,CAAnB,CAHrB,EAKE,oBAAC,SAAD,EACE,IAAI,CAAC,IADP,CAEE,SAAS,CAAEE,QAAQ,CAAC,oBAAD,CAFrB,EALF,CAFJ,CAaE,4BAAM,SAAS,CAAEA,QAAQ,CAAC,WAAD,CAAzB,EAbF,CAcE,8BACE,IAAI,CAAC,QADP,CAEE,SAAS,CAAEA,QAAQ,CAAC,oBAAD,CAFrB,CAGE,QAAQ,CAAE,CAAC,CAHb,CAIE,OAAO,CAAEwE,EAJX,EAME,oBAAC,UAAD,EACE,IAAI,CAAC,IADP,CAEE,SAAS,CAAExE,QAAQ,CAAC,uBAAD,CAFrB,EANF,CAdF,CAxBF,CAdF,CAiEE,2BACE,SAAS,CAAEA,QAAQ,CAAC,wBAAD,CADrB,CAEE,GAAG,CAAEqB,CAFP,EAIG2B,EAJH,CAjEF,CADF,CAyEE,oBAAC,cAAD,EACE,MAAM,CAAEmB,EADV,CAEE,IAAI,CAAE/B,CAFR,CAGE,UAAU,CAAEd,CAHd,CAIE,cAAc,CAAE4C,EAJlB,CAKE,WAAW,CAAEtE,UAAU,CAAC,CAACqC,CAAD,CAAcd,CAAd,CAAD,CALzB,CAME,IAAI,CAAE4C,CANR,CAOE,SAAS,CAAE1B,CAPb,CAQE,UAAU,CAAES,CAAU,EApLoB,QAA1CmD,kBAA0C,CAAChF,CAAD,CAAW,CACzD,GAAQgE,EAAR,CAAyDhE,CAAzD,CAAQgE,IAAR,CAAciB,CAAd,CAAyDjF,CAAzD,CAAciF,MAAd,CAAsBC,CAAtB,CAAyDlF,CAAzD,CAAsBkF,OAAtB,CAA+BC,CAA/B,CAAyDnF,CAAzD,CAA+BmF,OAA/B,CAAwCC,CAAxC,CAAyDpF,CAAzD,CAAwCoF,YAAxC,CAEA,MACE,qBAAC,UAAD,EACE,KAAK,CAAE7D,CAAY,CAACyC,CAAD,CADrB,CAEE,MAAM,CAAEiB,CAFV,CAGE,OAAO,CAAEC,CAHX,CAIE,QAAQ,CAAEtC,CAJZ,CAKE,IAAI,CAAEzB,CALR,CAME,MAAM,CAAmB,OAAjB,GAAA2B,CAAY,CAAe,WAAf,CAA6B,QANnD,CAOE,OAAO,CAAEqC,CAPX,CAQE,YAAY,CAAEC,CARhB,CASE,QAAQ,CAAE1D,CAAe,CAACsC,CAAD,CAT3B,EAYH,CA4JG,CASE,aAAa,CAAEpC,CATjB,CAUE,YAAY,CAAEuB,EAVhB,CAWE,gBAAgB,CAAEd,CAXpB,CAYE,cAAc,CAAEC,CAZlB,CAaE,SAAS,CAAEK,CAbb,CAcE,kBAAkB,CAAEJ,CAdtB,CAeE,QAAQ,CAAEqB,EAfZ,CAgBE,QAAQ,CAAEC,EAhBZ,CAiBE,KAAK,CACsB,QAAzB,gBAAOhB,CAAP,WAAOA,CAAP,QAAOA,CAAK,CAAEwC,MAAd,EACI,CAAEA,MAAM,CAAExC,CAAK,CAACwC,MAAN,CAAe,CAAzB,CADJ,OAlBJ,EAzEF,CAkGH,CArSD,CAuSA,MAAO,IAAMC,SAAQ,CAAG9G,UAAU,CAACuB,cAAD,CAA3B,CAEP"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","allSelectedAllLabel","searchValue","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","searchFunction","selectAll","isLoading","multiple","style","dropdownForm","virtualScroll","onScrollToBottom","onDropdownOpen","onSearchValueChange","dropdownOpen","ignoreOutsideClicksRefs"];import"../SelectComponents/Select.css";import{IconClose}from"@consta/icons/IconClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponentsCanary/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponentsCanary/helpers";import{SelectContainer}from"../SelectComponentsCanary/SelectContainer";import{SelectDropdown}from"../SelectComponentsCanary/SelectDropdown";import{SelectItem}from"../SelectComponentsCanary/SelectItem";import{SelectValueTag}from"../SelectComponentsCanary/SelectValueTag";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponentsCanary/types";import{useSelect}from"../SelectComponentsCanary/useSelect";import{useForkRef}from"../../hooks/useForkRef";import{Text}from"../Text";import{isMultipleParams,isNotMultipleParams,withDefaultGetters}from"./helpers";export var COMPONENT_NAME="Combobox";var ComboboxRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.required,r=g.dropdownRef,s=g.form,t=void 0===s?defaultPropForm:s,u=g.view,v=void 0===u?defaultPropView:u,w=g.size,x=void 0===w?defaultPropSize:w,y=g.dropdownClassName,z=g.name,A=g.groups,B=void 0===A?[]:A,C=g.getItemLabel,D=g.getItemKey,E=g.getItemGroupKey,F=g.getItemDisabled,G=g.getGroupKey,H=g.getGroupLabel,I=g.renderItem,J=g.allSelectedAllLabel,K=void 0===J?"\u0412\u0441\u0435":J,L=g.searchValue,M=g.renderValue,N=g.onCreate,O=g.inputRef,P=g.labelForNotFound,Q=void 0===P?defaultlabelForNotFound:P,R=g.labelForCreate,S=void 0===R?defaultlabelForCreate:R,T=g.labelForEmptyItems,U=void 0===T?defaultLabelForEmptyItems:T,V=g.searchFunction,W=g.selectAll,X=g.isLoading,Y=g.multiple,Z=void 0!==Y&&Y,$=g.style,_=g.dropdownForm,aa=void 0===_?"default":_,ba=g.virtualScroll,ca=g.onScrollToBottom,da=g.onDropdownOpen,ea=g.onSearchValueChange,fa=g.dropdownOpen,ga=g.ignoreOutsideClicksRefs,ha=_objectWithoutProperties(g,_excluded),ia=useSelect({items:k,groups:B,value:m,onChange:l,selectAll:W,dropdownRef:c,controlRef:f,disabled:n,getItemLabel:C,getItemKey:D,getGroupKey:G,searchValue:L,getItemGroupKey:E,getItemDisabled:F,multiple:Z,onBlur:i,onFocus:j,onCreate:N,searchFunction:V,onDropdownOpen:da,onSearchValueChange:ea,dropdownOpen:fa,ignoreOutsideClicksRefs:ga}),ja=ia.getKeyProps,ka=ia.getOptionProps,la=ia.isOpen,ma=ia.visibleItems,na=ia.isFocused,oa=ia.handleInputFocus,pa=ia.handleInputBlur,qa=ia.handleToggleDropdown,ra=ia.inputRef,sa=ia.handleInputClick,ta=ia.handleInputChange,ua=ia.searchValue,va=ia.clearValue,wa=ia.getHandleRemoveValue,xa=ia.notFound,ya=ia.hasItems,za=ia.optionsRefs,Aa=ia.allItemsSelected,Ba=p?"".concat(p,"-input"):p,Ca=M||(Z?function renderValueDefaultMultiple(a){var b=a.item,c=a.handleRemove;return React.createElement(SelectValueTag,{label:C(b),key:D(b),size:x,disabled:n||F(b),handleRemove:c})}:function renderValueDefaultNotMultiple(a){var b=C(a.item);return React.createElement("span",{className:cnSelect("ControlValue"),title:b},b)}),Da=useForkRef([ra,O]),Ea=function(){var b=Z?getInputWidth(d,e):void 0;return React.createElement(React.Fragment,null,isMultipleParams(a)&&Array.isArray(a.value)&&a.value.map(function(a){return Ca({item:a,handleRemove:wa(a)})}),isNotMultipleParams(a)&&a.value&&Ca({item:a.value}),(!m||Array.isArray(m)&&0===m.length)&&!ua&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},ja(),{type:"text",name:z,id:Ba,onFocus:oa,onBlur:pa,"aria-label":o,onChange:ta,ref:Da,className:cnSelect("Input",{size:x,hide:!Z
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","allSelectedAllLabel","searchValue","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","searchFunction","selectAll","isLoading","multiple","style","dropdownForm","virtualScroll","onScrollToBottom","onDropdownOpen","onSearchValueChange","dropdownOpen","ignoreOutsideClicksRefs"];import"../SelectComponents/Select.css";import{IconClose}from"@consta/icons/IconClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponentsCanary/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponentsCanary/helpers";import{SelectContainer}from"../SelectComponentsCanary/SelectContainer";import{SelectDropdown}from"../SelectComponentsCanary/SelectDropdown";import{SelectItem}from"../SelectComponentsCanary/SelectItem";import{SelectValueTag}from"../SelectComponentsCanary/SelectValueTag";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponentsCanary/types";import{useSelect}from"../SelectComponentsCanary/useSelect";import{useForkRef}from"../../hooks/useForkRef";import{isNotNil}from"../../utils/type-guards";import{Text}from"../Text";import{isMultipleParams,isNotMultipleParams,withDefaultGetters}from"./helpers";export var COMPONENT_NAME="Combobox";var ComboboxRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.required,r=g.dropdownRef,s=g.form,t=void 0===s?defaultPropForm:s,u=g.view,v=void 0===u?defaultPropView:u,w=g.size,x=void 0===w?defaultPropSize:w,y=g.dropdownClassName,z=g.name,A=g.groups,B=void 0===A?[]:A,C=g.getItemLabel,D=g.getItemKey,E=g.getItemGroupKey,F=g.getItemDisabled,G=g.getGroupKey,H=g.getGroupLabel,I=g.renderItem,J=g.allSelectedAllLabel,K=void 0===J?"\u0412\u0441\u0435":J,L=g.searchValue,M=g.renderValue,N=g.onCreate,O=g.inputRef,P=g.labelForNotFound,Q=void 0===P?defaultlabelForNotFound:P,R=g.labelForCreate,S=void 0===R?defaultlabelForCreate:R,T=g.labelForEmptyItems,U=void 0===T?defaultLabelForEmptyItems:T,V=g.searchFunction,W=g.selectAll,X=g.isLoading,Y=g.multiple,Z=void 0!==Y&&Y,$=g.style,_=g.dropdownForm,aa=void 0===_?"default":_,ba=g.virtualScroll,ca=g.onScrollToBottom,da=g.onDropdownOpen,ea=g.onSearchValueChange,fa=g.dropdownOpen,ga=g.ignoreOutsideClicksRefs,ha=_objectWithoutProperties(g,_excluded),ia=useSelect({items:k,groups:B,value:m,onChange:l,selectAll:W,dropdownRef:c,controlRef:f,disabled:n,getItemLabel:C,getItemKey:D,getGroupKey:G,searchValue:L,getItemGroupKey:E,getItemDisabled:F,multiple:Z,onBlur:i,onFocus:j,onCreate:N,searchFunction:V,onDropdownOpen:da,onSearchValueChange:ea,dropdownOpen:fa,ignoreOutsideClicksRefs:ga}),ja=ia.getKeyProps,ka=ia.getOptionProps,la=ia.isOpen,ma=ia.visibleItems,na=ia.isFocused,oa=ia.handleInputFocus,pa=ia.handleInputBlur,qa=ia.handleToggleDropdown,ra=ia.inputRef,sa=ia.handleInputClick,ta=ia.handleInputChange,ua=ia.searchValue,va=ia.clearValue,wa=ia.getHandleRemoveValue,xa=ia.notFound,ya=ia.hasItems,za=ia.optionsRefs,Aa=ia.allItemsSelected,Ba=p?"".concat(p,"-input"):p,Ca=M||(Z?function renderValueDefaultMultiple(a){var b=a.item,c=a.handleRemove;return React.createElement(SelectValueTag,{label:C(b),key:D(b),size:x,disabled:n||F(b),handleRemove:c})}:function renderValueDefaultNotMultiple(a){var b=C(a.item);return React.createElement("span",{className:cnSelect("ControlValue"),title:b},b)}),Da=useForkRef([ra,O]),Ea=function(){var b=Z?getInputWidth(d,e):void 0;return React.createElement(React.Fragment,null,isMultipleParams(a)&&Array.isArray(a.value)&&a.value.map(function(a){return Ca({item:a,handleRemove:wa(a)})}),isNotMultipleParams(a)&&isNotNil(a.value)&&Ca({item:a.value}),(!isNotNil(m)||Array.isArray(m)&&0===m.length)&&!ua&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},ja(),{type:"text",name:z,id:Ba,onFocus:oa,onBlur:pa,"aria-label":o,onChange:ta,ref:Da,className:cnSelect("Input",{size:x,hide:!Z&&isNotNil(m),multiple:Z}),value:ua,style:{width:b}})))};return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:na,disabled:n,size:x,view:v,required:q,form:t,multiple:Z,ref:b,type:"combobox",style:$,id:Ba},ha),React.createElement("div",{className:cnSelect("Control",{hasInput:!0}),ref:f,"aria-expanded":la,"aria-haspopup":"listbox",id:p},React.createElement("div",{className:cnSelect("ControlInner"),onClick:sa,role:"button",ref:d,"aria-hidden":"true"},React.createElement("div",{className:cnSelect("ControlValueContainer")},function renderValueList(){return Aa?React.createElement(Text,{size:x,className:cnSelect("SelectAll")},K):Z?React.createElement("div",{className:cnSelect("ControlValue")},Ea()):Ea()}())),React.createElement("span",{className:cnSelect("Indicators")},isNotNil(m)&&React.createElement("button",{type:"button",onClick:va,tabIndex:-1,className:cnSelect("ClearIndicator")},React.createElement(IconClose,{size:"xs",className:cnSelect("ClearIndicatorIcon")})),React.createElement("span",{className:cnSelect("Delimiter")}),React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:qa},React.createElement(IconSelect,{size:"xs",className:cnSelect("DropdownIndicatorIcon")})))),React.createElement("div",{className:cnSelect("HelperInputFakeElement"),ref:e},ua)),React.createElement(SelectDropdown,{isOpen:la,size:x,controlRef:f,getOptionProps:ka,dropdownRef:useForkRef([r,c]),form:aa,className:y,renderItem:I||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter,g=a.ref;return React.createElement(SelectItem,{label:C(b),active:c,hovered:d,multiple:Z,size:x,indent:"round"===aa?"increased":"normal",onClick:e,onMouseEnter:f,disabled:F(b),ref:g})},getGroupLabel:H,visibleItems:ma,labelForNotFound:Q,labelForCreate:S,isLoading:X,labelForEmptyItems:U,notFound:xa,hasItems:ya,itemsRefs:za,virtualScroll:ba,onScrollToBottom:ca,style:"number"==typeof(null===$||void 0===$?void 0:$.zIndex)?{zIndex:$.zIndex+1}:void 0}))};export var Combobox=forwardRef(ComboboxRender);
|
|
2
2
|
//# sourceMappingURL=ComboboxCanary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboboxCanary.js","names":["IconClose","IconSelect","React","forwardRef","useRef","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","SelectItem","SelectValueTag","defaultPropForm","defaultPropSize","defaultPropView","useSelect","useForkRef","Text","isMultipleParams","isNotMultipleParams","withDefaultGetters","COMPONENT_NAME","ComboboxRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","allSelectedAllLabel","searchValueProp","searchValue","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","searchFunction","selectAll","isLoading","multiple","style","dropdownForm","virtualScroll","onScrollToBottom","onDropdownOpen","onSearchValueChange","dropdownOpen","ignoreOutsideClicksRefs","otherProps","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","optionsRefs","allItemsSelected","inputId","renderValueDefaultMultiple","item","handleRemove","renderValueDefaultNotMultiple","valueLable","inputRefForRender","renderControlValue","width","Array","isArray","map","length","hide","hasInput","renderValueList","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","Combobox"],"sources":["../../../../../src/components/ComboboxCanary/ComboboxCanary.tsx"],"sourcesContent":["import '##/components/SelectComponents/Select.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { cnSelect } from '##/components/SelectComponentsCanary/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '##/components/SelectComponentsCanary/helpers';\nimport { SelectContainer } from '##/components/SelectComponentsCanary/SelectContainer';\nimport { SelectDropdown } from '##/components/SelectComponentsCanary/SelectDropdown';\nimport { SelectItem } from '##/components/SelectComponentsCanary/SelectItem';\nimport { SelectValueTag } from '##/components/SelectComponentsCanary/SelectValueTag';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '##/components/SelectComponentsCanary/types';\nimport { useSelect } from '##/components/SelectComponentsCanary/useSelect';\nimport { useForkRef } from '##/hooks/useForkRef';\n\nimport { Text } from '../Text';\nimport {\n ComboboxComponent,\n ComboboxProps,\n DefaultGroup,\n DefaultItem,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n withDefaultGetters,\n} from './helpers';\n\nexport const COMPONENT_NAME = 'Combobox' as const;\n\nconst ComboboxRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: ComboboxProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n required,\n dropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n name,\n groups = [],\n getItemLabel,\n getItemKey,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n allSelectedAllLabel = 'Все',\n searchValue: searchValueProp,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n searchFunction,\n selectAll,\n isLoading,\n multiple = false,\n style,\n dropdownForm = 'default',\n virtualScroll,\n onScrollToBottom,\n onDropdownOpen,\n onSearchValueChange,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n optionsRefs,\n allItemsSelected,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n selectAll,\n dropdownRef: defaultDropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n searchValue: searchValueProp,\n getItemGroupKey,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction,\n onDropdownOpen,\n onSearchValueChange,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter, ref } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={multiple}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disabled={getItemDisabled(item)}\n ref={ref}\n />\n );\n };\n\n const renderValueDefaultMultiple: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <SelectValueTag\n label={getItemLabel(item)}\n key={getItemKey(item)}\n size={size}\n disabled={disabled || getItemDisabled(item)}\n handleRemove={handleRemove}\n />\n );\n };\n\n const renderValueDefaultNotMultiple: PropRenderValue<ITEM> = (props) => {\n const valueLable = getItemLabel(props.item);\n\n return (\n <span className={cnSelect('ControlValue')} title={valueLable}>\n {valueLable}\n </span>\n );\n };\n\n const renderValue =\n renderValueProp ||\n (multiple ? renderValueDefaultMultiple : renderValueDefaultNotMultiple);\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n props.value &&\n renderValue({ item: props.value })}\n {(!value || (Array.isArray(value) && value.length === 0)) &&\n !searchValue &&\n placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n <input\n {...getKeyProps()}\n type=\"text\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleInputChange}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && !!value,\n multiple,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n const renderValueList = () => {\n if (allItemsSelected) {\n return (\n <Text size={size} className={cnSelect('SelectAll')}>\n {allSelectedAllLabel}\n </Text>\n );\n }\n if (multiple) {\n return (\n <div className={cnSelect('ControlValue')}>{renderControlValue()}</div>\n );\n }\n return renderControlValue();\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n view={view}\n required={required}\n form={form}\n multiple={multiple}\n ref={ref}\n type=\"combobox\"\n style={style}\n id={inputId}\n {...otherProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {renderValueList()}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {value && (\n <button\n type=\"button\"\n onClick={clearValue}\n tabIndex={-1}\n className={cnSelect('ClearIndicator')}\n >\n <IconClose\n size=\"xs\"\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={useForkRef([dropdownRef, defaultDropdownRef])}\n form={dropdownForm}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n isLoading={isLoading}\n labelForEmptyItems={labelForEmptyItems}\n notFound={notFound}\n hasItems={hasItems}\n itemsRefs={optionsRefs}\n virtualScroll={virtualScroll}\n onScrollToBottom={onScrollToBottom}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const Combobox = forwardRef(ComboboxRender) as ComboboxComponent;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ComboboxCanary.js","names":["IconClose","IconSelect","React","forwardRef","useRef","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","SelectItem","SelectValueTag","defaultPropForm","defaultPropSize","defaultPropView","useSelect","useForkRef","isNotNil","Text","isMultipleParams","isNotMultipleParams","withDefaultGetters","COMPONENT_NAME","ComboboxRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","required","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","allSelectedAllLabel","searchValueProp","searchValue","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","searchFunction","selectAll","isLoading","multiple","style","dropdownForm","virtualScroll","onScrollToBottom","onDropdownOpen","onSearchValueChange","dropdownOpen","ignoreOutsideClicksRefs","otherProps","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","optionsRefs","allItemsSelected","inputId","renderValueDefaultMultiple","item","handleRemove","renderValueDefaultNotMultiple","valueLable","inputRefForRender","renderControlValue","width","Array","isArray","map","length","hide","hasInput","renderValueList","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","Combobox"],"sources":["../../../../../src/components/ComboboxCanary/ComboboxCanary.tsx"],"sourcesContent":["import '##/components/SelectComponents/Select.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { cnSelect } from '##/components/SelectComponentsCanary/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '##/components/SelectComponentsCanary/helpers';\nimport { SelectContainer } from '##/components/SelectComponentsCanary/SelectContainer';\nimport { SelectDropdown } from '##/components/SelectComponentsCanary/SelectDropdown';\nimport { SelectItem } from '##/components/SelectComponentsCanary/SelectItem';\nimport { SelectValueTag } from '##/components/SelectComponentsCanary/SelectValueTag';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '##/components/SelectComponentsCanary/types';\nimport { useSelect } from '##/components/SelectComponentsCanary/useSelect';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { isNotNil } from '##/utils/type-guards';\n\nimport { Text } from '../Text';\nimport {\n ComboboxComponent,\n ComboboxProps,\n DefaultGroup,\n DefaultItem,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n withDefaultGetters,\n} from './helpers';\n\nexport const COMPONENT_NAME = 'Combobox' as const;\n\nconst ComboboxRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: ComboboxProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n required,\n dropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n name,\n groups = [],\n getItemLabel,\n getItemKey,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n allSelectedAllLabel = 'Все',\n searchValue: searchValueProp,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n searchFunction,\n selectAll,\n isLoading,\n multiple = false,\n style,\n dropdownForm = 'default',\n virtualScroll,\n onScrollToBottom,\n onDropdownOpen,\n onSearchValueChange,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n optionsRefs,\n allItemsSelected,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n selectAll,\n dropdownRef: defaultDropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n searchValue: searchValueProp,\n getItemGroupKey,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction,\n onDropdownOpen,\n onSearchValueChange,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter, ref } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={multiple}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disabled={getItemDisabled(item)}\n ref={ref}\n />\n );\n };\n\n const renderValueDefaultMultiple: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <SelectValueTag\n label={getItemLabel(item)}\n key={getItemKey(item)}\n size={size}\n disabled={disabled || getItemDisabled(item)}\n handleRemove={handleRemove}\n />\n );\n };\n\n const renderValueDefaultNotMultiple: PropRenderValue<ITEM> = (props) => {\n const valueLable = getItemLabel(props.item);\n\n return (\n <span className={cnSelect('ControlValue')} title={valueLable}>\n {valueLable}\n </span>\n );\n };\n\n const renderValue =\n renderValueProp ||\n (multiple ? renderValueDefaultMultiple : renderValueDefaultNotMultiple);\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n isNotNil(props.value) &&\n renderValue({ item: props.value })}\n {(!isNotNil(value) || (Array.isArray(value) && value.length === 0)) &&\n !searchValue &&\n placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n <input\n {...getKeyProps()}\n type=\"text\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleInputChange}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && isNotNil(value),\n multiple,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n const renderValueList = () => {\n if (allItemsSelected) {\n return (\n <Text size={size} className={cnSelect('SelectAll')}>\n {allSelectedAllLabel}\n </Text>\n );\n }\n if (multiple) {\n return (\n <div className={cnSelect('ControlValue')}>{renderControlValue()}</div>\n );\n }\n return renderControlValue();\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n view={view}\n required={required}\n form={form}\n multiple={multiple}\n ref={ref}\n type=\"combobox\"\n style={style}\n id={inputId}\n {...otherProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {renderValueList()}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {isNotNil(value) && (\n <button\n type=\"button\"\n onClick={clearValue}\n tabIndex={-1}\n className={cnSelect('ClearIndicator')}\n >\n <IconClose\n size=\"xs\"\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={useForkRef([dropdownRef, defaultDropdownRef])}\n form={dropdownForm}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n isLoading={isLoading}\n labelForEmptyItems={labelForEmptyItems}\n notFound={notFound}\n hasItems={hasItems}\n itemsRefs={optionsRefs}\n virtualScroll={virtualScroll}\n onScrollToBottom={onScrollToBottom}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const Combobox = forwardRef(ComboboxRender) as ComboboxComponent;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.ListItem{background:var(--color-control-bg-clear);position:relative;text-decoration:none;transition:color .3s}.ListItem_interactive{cursor:pointer}.
|
|
1
|
+
.ListItem{background:var(--color-control-bg-clear);position:relative;text-decoration:none;transition:color .3s}.ListItem_active{background:var(--color-bg-stripe)}.ListItem_interactive{cursor:pointer}.ListItem_interactive:hover{background:var(--color-control-bg-clear-hover)}.ListItem:before{background-color:var(--color-control-typo-secondary);bottom:0;content:"";left:0;opacity:0;position:absolute;top:0;transition:opacity .2s;width:var(--space-3xs)}.ListItem_checked.Text{color:var(--color-control-typo-secondary)}.ListItem_checked.Text:before{opacity:1}.ListItem_disabled.Text{color:var(--color-control-typo-disable);cursor:auto}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","required","disabled","ariaLabel","id","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","labelForEmptyItems","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","isLoading","renderValue","inputRef","style","dropdownForm"];import"../SelectComponents/Select.css";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useSelect}from"../../hooks/useSelect/useSelect";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect,COMPONENT_NAME}from"../SelectComponents/cnSelect";import{defaultLabelForEmptyItems}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown/SelectDropdown";import{SelectItem}from"../SelectComponents/SelectItem/SelectItem";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{withDefaultGetters}from"./helpers";var SelectRender=function(a,b){var c=useRef(null),d=useRef(null),e=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),d),f=e.placeholder,g=e.onBlur,h=e.onFocus,i=e.items,j=e.onChange,k=e.value,l=e.required,m=e.disabled,n=e.ariaLabel,o=e.id,p=e.dropdownRef,q=void 0===p?c:p,r=e.form,s=void 0===r?defaultPropForm:r,t=e.view,u=void 0===t?defaultPropView:t,v=e.size,w=void 0===v?defaultPropSize:v,x=e.dropdownClassName,y=e.name,z=e.groups,A=void 0===z?[]:z,B=e.getItemLabel,C=e.labelForEmptyItems,D=void 0===C?defaultLabelForEmptyItems:C,E=e.getItemKey,F=e.getItemGroupKey,G=e.getItemDisabled,H=e.getGroupKey,I=e.getGroupLabel,J=e.renderItem,K=e.isLoading,L=e.renderValue,M=e.inputRef,N=e.style,O=e.dropdownForm,P=void 0===O?"default":O,Q=_objectWithoutProperties(e,_excluded),R=useSelect({items:i,groups:A,value:k,onChange:j,dropdownRef:q,controlRef:d,disabled:m,getItemLabel:B,getItemKey:E,getGroupKey:H,getItemGroupKey:F,getItemDisabled:G,multiple:!1,onBlur:g,onFocus:h}),S=R.getKeyProps,T=R.getOptionProps,U=R.isOpen,V=R.visibleItems,W=R.isFocused,X=R.handleInputFocus,Y=R.handleInputBlur,Z=R.handleToggleDropdown,$=R.inputRef,_=R.handleInputClick,aa=R.notFound,ba=R.hasItems,ca=o?"".concat(o,"-input"):o;return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:W,disabled:m,size:w,view:u,form:s,required:l,ref:b,style:N,id:ca},Q),React.createElement("div",{className:cnSelect("Control"),ref:d,"aria-expanded":U,"aria-haspopup":"listbox",id:o},React.createElement("div",{className:cnSelect("ControlInner")},React.createElement("div",{className:cnSelect("ControlValueContainer")},React.createElement("input",Object.assign({},S(),{type:"button",name:y,id:ca,onFocus:X,onBlur:Y,"aria-label":n,onClick:_,ref:useForkRef([$,M]),className:cnSelect("FakeField"),readOnly:!0})),k&&(L||function renderValueDefault(a){var b=B(a.item);return React.createElement("span",{className:cnSelect("ControlValue"),title:b},b)})({item:k})
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","required","disabled","ariaLabel","id","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","labelForEmptyItems","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","isLoading","renderValue","inputRef","style","dropdownForm"];import"../SelectComponents/Select.css";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{isNotNil}from"../../utils/type-guards";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useSelect}from"../../hooks/useSelect/useSelect";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect,COMPONENT_NAME}from"../SelectComponents/cnSelect";import{defaultLabelForEmptyItems}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown/SelectDropdown";import{SelectItem}from"../SelectComponents/SelectItem/SelectItem";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{withDefaultGetters}from"./helpers";var SelectRender=function(a,b){var c=useRef(null),d=useRef(null),e=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),d),f=e.placeholder,g=e.onBlur,h=e.onFocus,i=e.items,j=e.onChange,k=e.value,l=e.required,m=e.disabled,n=e.ariaLabel,o=e.id,p=e.dropdownRef,q=void 0===p?c:p,r=e.form,s=void 0===r?defaultPropForm:r,t=e.view,u=void 0===t?defaultPropView:t,v=e.size,w=void 0===v?defaultPropSize:v,x=e.dropdownClassName,y=e.name,z=e.groups,A=void 0===z?[]:z,B=e.getItemLabel,C=e.labelForEmptyItems,D=void 0===C?defaultLabelForEmptyItems:C,E=e.getItemKey,F=e.getItemGroupKey,G=e.getItemDisabled,H=e.getGroupKey,I=e.getGroupLabel,J=e.renderItem,K=e.isLoading,L=e.renderValue,M=e.inputRef,N=e.style,O=e.dropdownForm,P=void 0===O?"default":O,Q=_objectWithoutProperties(e,_excluded),R=useSelect({items:i,groups:A,value:k,onChange:j,dropdownRef:q,controlRef:d,disabled:m,getItemLabel:B,getItemKey:E,getGroupKey:H,getItemGroupKey:F,getItemDisabled:G,multiple:!1,onBlur:g,onFocus:h}),S=R.getKeyProps,T=R.getOptionProps,U=R.isOpen,V=R.visibleItems,W=R.isFocused,X=R.handleInputFocus,Y=R.handleInputBlur,Z=R.handleToggleDropdown,$=R.inputRef,_=R.handleInputClick,aa=R.notFound,ba=R.hasItems,ca=o?"".concat(o,"-input"):o;return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:W,disabled:m,size:w,view:u,form:s,required:l,ref:b,style:N,id:ca},Q),React.createElement("div",{className:cnSelect("Control"),ref:d,"aria-expanded":U,"aria-haspopup":"listbox",id:o},React.createElement("div",{className:cnSelect("ControlInner")},React.createElement("div",{className:cnSelect("ControlValueContainer")},React.createElement("input",Object.assign({},S(),{type:"button",name:y,id:ca,onFocus:X,onBlur:Y,"aria-label":n,onClick:_,ref:useForkRef([$,M]),className:cnSelect("FakeField"),readOnly:!0})),isNotNil(k)&&(L||function renderValueDefault(a){var b=B(a.item);return React.createElement("span",{className:cnSelect("ControlValue"),title:b},b)})({item:k}),!isNotNil(k)&&f&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},f))),React.createElement("span",{className:cnSelect("Indicators")},React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:Z},React.createElement(IconSelect,{size:"xs",className:cnSelect("DropdownIndicatorIcon")}))))),React.createElement(SelectDropdown,{isOpen:U,size:w,controlRef:d,getOptionProps:T,dropdownRef:q,form:P,className:x,renderItem:J||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter;return React.createElement(SelectItem,{label:B(b),active:c,hovered:d,multiple:!1,size:w,indent:"round"===P?"increased":"normal",onClick:e,onMouseEnter:f,disabled:G(b)})},getGroupLabel:I,visibleItems:V,notFound:aa,isLoading:K,labelForEmptyItems:D,hasItems:ba,style:"number"==typeof(null===N||void 0===N?void 0:N.zIndex)?{zIndex:N.zIndex+1}:void 0}))};export var Select=forwardRef(SelectRender);export*from"./helpers";
|
|
2
2
|
//# sourceMappingURL=Select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","names":["IconSelect","React","forwardRef","useRef","useForkRef","useSelect","usePropsHandler","cnSelect","COMPONENT_NAME","defaultLabelForEmptyItems","SelectContainer","SelectDropdown","SelectItem","defaultPropForm","defaultPropSize","defaultPropView","withDefaultGetters","SelectRender","props","ref","defaultDropdownRef","controlRef","placeholder","onBlur","onFocus","items","onChange","value","required","disabled","ariaLabel","id","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","labelForEmptyItems","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","isLoading","renderValueProp","renderValue","inputRefProp","inputRef","style","dropdownForm","restProps","multiple","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","notFound","hasItems","inputId","renderValueDefault","label","item","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","Select"],"sources":["../../../../../src/components/Select/Select.tsx"],"sourcesContent":["import '../SelectComponents/Select.css';\n\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useSelect } from '../../hooks/useSelect/useSelect';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { cnSelect, COMPONENT_NAME } from '../SelectComponents/cnSelect';\nimport { defaultLabelForEmptyItems } from '../SelectComponents/helpers';\nimport { SelectContainer } from '../SelectComponents/SelectContainer/SelectContainer';\nimport { SelectDropdown } from '../SelectComponents/SelectDropdown/SelectDropdown';\nimport { SelectItem } from '../SelectComponents/SelectItem/SelectItem';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '../SelectComponents/types';\nimport {\n DefaultGroup,\n DefaultItem,\n PropRenderItem,\n PropRenderValue,\n SelectComponent,\n SelectProps,\n withDefaultGetters,\n} from './helpers';\n\nconst SelectRender = <ITEM = DefaultItem, GROUP = DefaultGroup>(\n props: SelectProps<ITEM, GROUP>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n required,\n disabled,\n ariaLabel,\n id,\n dropdownRef = defaultDropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n name,\n groups = [],\n getItemLabel,\n labelForEmptyItems = defaultLabelForEmptyItems,\n getItemKey,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n isLoading,\n renderValue: renderValueProp,\n inputRef: inputRefProp,\n style,\n dropdownForm = 'default',\n ...restProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n notFound,\n hasItems,\n } = useSelect<ITEM, GROUP, false>({\n items,\n groups,\n value,\n onChange,\n dropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n getItemGroupKey,\n getItemDisabled,\n multiple: false,\n onBlur,\n onFocus,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={false}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disabled={getItemDisabled(item)}\n />\n );\n };\n\n const renderValueDefault: PropRenderValue<ITEM> = (props) => {\n const label = getItemLabel(props.item);\n\n return (\n <span className={cnSelect('ControlValue')} title={label}>\n {label}\n </span>\n );\n };\n\n const renderValue = renderValueProp || renderValueDefault;\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n view={view}\n form={form}\n required={required}\n ref={ref}\n style={style}\n id={inputId}\n {...restProps}\n >\n <div\n className={cnSelect('Control')}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div className={cnSelect('ControlInner')}>\n <div className={cnSelect('ControlValueContainer')}>\n <input\n {...getKeyProps()}\n type=\"button\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onClick={handleInputClick}\n ref={useForkRef([inputRef, inputRefProp])}\n className={cnSelect('FakeField')}\n readOnly\n />\n {value && renderValue({ item: value })}\n {(typeof value === 'undefined' || value === null) && placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n notFound={notFound}\n isLoading={isLoading}\n labelForEmptyItems={labelForEmptyItems}\n hasItems={hasItems}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const Select = forwardRef(SelectRender) as SelectComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.js","names":["IconSelect","React","forwardRef","useRef","isNotNil","useForkRef","useSelect","usePropsHandler","cnSelect","COMPONENT_NAME","defaultLabelForEmptyItems","SelectContainer","SelectDropdown","SelectItem","defaultPropForm","defaultPropSize","defaultPropView","withDefaultGetters","SelectRender","props","ref","defaultDropdownRef","controlRef","placeholder","onBlur","onFocus","items","onChange","value","required","disabled","ariaLabel","id","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","labelForEmptyItems","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","isLoading","renderValueProp","renderValue","inputRefProp","inputRef","style","dropdownForm","restProps","multiple","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","notFound","hasItems","inputId","renderValueDefault","label","item","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","Select"],"sources":["../../../../../src/components/Select/Select.tsx"],"sourcesContent":["import '../SelectComponents/Select.css';\n\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { isNotNil } from '##/utils/type-guards';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useSelect } from '../../hooks/useSelect/useSelect';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { cnSelect, COMPONENT_NAME } from '../SelectComponents/cnSelect';\nimport { defaultLabelForEmptyItems } from '../SelectComponents/helpers';\nimport { SelectContainer } from '../SelectComponents/SelectContainer/SelectContainer';\nimport { SelectDropdown } from '../SelectComponents/SelectDropdown/SelectDropdown';\nimport { SelectItem } from '../SelectComponents/SelectItem/SelectItem';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '../SelectComponents/types';\nimport {\n DefaultGroup,\n DefaultItem,\n PropRenderItem,\n PropRenderValue,\n SelectComponent,\n SelectProps,\n withDefaultGetters,\n} from './helpers';\n\nconst SelectRender = <ITEM = DefaultItem, GROUP = DefaultGroup>(\n props: SelectProps<ITEM, GROUP>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n required,\n disabled,\n ariaLabel,\n id,\n dropdownRef = defaultDropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n name,\n groups = [],\n getItemLabel,\n labelForEmptyItems = defaultLabelForEmptyItems,\n getItemKey,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n isLoading,\n renderValue: renderValueProp,\n inputRef: inputRefProp,\n style,\n dropdownForm = 'default',\n ...restProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n notFound,\n hasItems,\n } = useSelect<ITEM, GROUP, false>({\n items,\n groups,\n value,\n onChange,\n dropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n getItemGroupKey,\n getItemDisabled,\n multiple: false,\n onBlur,\n onFocus,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={false}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disabled={getItemDisabled(item)}\n />\n );\n };\n\n const renderValueDefault: PropRenderValue<ITEM> = (props) => {\n const label = getItemLabel(props.item);\n\n return (\n <span className={cnSelect('ControlValue')} title={label}>\n {label}\n </span>\n );\n };\n\n const renderValue = renderValueProp || renderValueDefault;\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n view={view}\n form={form}\n required={required}\n ref={ref}\n style={style}\n id={inputId}\n {...restProps}\n >\n <div\n className={cnSelect('Control')}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div className={cnSelect('ControlInner')}>\n <div className={cnSelect('ControlValueContainer')}>\n <input\n {...getKeyProps()}\n type=\"button\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onClick={handleInputClick}\n ref={useForkRef([inputRef, inputRefProp])}\n className={cnSelect('FakeField')}\n readOnly\n />\n {isNotNil(value) && renderValue({ item: value })}\n {!isNotNil(value) && placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n notFound={notFound}\n isLoading={isLoading}\n labelForEmptyItems={labelForEmptyItems}\n hasItems={hasItems}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const Select = forwardRef(SelectRender) as SelectComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","required","disabled","ariaLabel","id","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","labelForEmptyItems","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","isLoading","renderValue","inputRef","style","dropdownForm","onDropdownOpen","onScrollToBottom","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs"];import"../SelectComponents/Select.css";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect,COMPONENT_NAME}from"../SelectComponentsCanary/cnSelect";import{defaultLabelForEmptyItems}from"../SelectComponentsCanary/helpers";import{SelectContainer}from"../SelectComponentsCanary/SelectContainer";import{SelectDropdown}from"../SelectComponentsCanary/SelectDropdown";import{SelectItem}from"../SelectComponentsCanary/SelectItem";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponentsCanary/types";import{useSelect}from"../SelectComponentsCanary/useSelect";import{useForkRef}from"../../hooks/useForkRef";import{withDefaultGetters}from"./helpers";var SelectRender=function(a,b){var c=useRef(null),d=useRef(null),e=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),d),f=e.placeholder,g=e.onBlur,h=e.onFocus,i=e.items,j=e.onChange,k=e.value,l=e.required,m=e.disabled,n=e.ariaLabel,o=e.id,p=e.dropdownRef,q=e.form,r=void 0===q?defaultPropForm:q,s=e.view,t=void 0===s?defaultPropView:s,u=e.size,v=void 0===u?defaultPropSize:u,w=e.dropdownClassName,x=e.name,y=e.groups,z=void 0===y?[]:y,A=e.getItemLabel,B=e.labelForEmptyItems,C=void 0===B?defaultLabelForEmptyItems:B,D=e.getItemKey,E=e.getItemGroupKey,F=e.getItemDisabled,G=e.getGroupKey,H=e.getGroupLabel,I=e.renderItem,J=e.isLoading,K=e.renderValue,L=e.inputRef,M=e.style,N=e.dropdownForm,O=void 0===N?"default":N,P=e.onDropdownOpen,Q=e.onScrollToBottom,R=e.virtualScroll,S=e.dropdownOpen,T=e.ignoreOutsideClicksRefs,U=_objectWithoutProperties(e,_excluded),V=useSelect({items:i,groups:z,value:k,onChange:j,dropdownRef:c,controlRef:d,disabled:m,getItemLabel:A,getItemKey:D,getGroupKey:G,getItemGroupKey:E,getItemDisabled:F,multiple:!1,onBlur:g,onFocus:h,onDropdownOpen:P,dropdownOpen:S,ignoreOutsideClicksRefs:T}),W=V.getKeyProps,X=V.getOptionProps,Y=V.isOpen,Z=V.visibleItems,$=V.isFocused,_=V.handleInputFocus,aa=V.handleInputBlur,ba=V.handleToggleDropdown,ca=V.inputRef,da=V.handleInputClick,ea=V.notFound,fa=V.hasItems,ga=V.optionsRefs,ha=o?"".concat(o,"-input"):o;return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:$,disabled:m,size:v,view:t,form:r,required:l,ref:b,style:M,id:ha},U),React.createElement("div",{className:cnSelect("Control"),ref:d,"aria-expanded":Y,"aria-haspopup":"listbox",id:o},React.createElement("div",{className:cnSelect("ControlInner")},React.createElement("div",{className:cnSelect("ControlValueContainer")},React.createElement("input",Object.assign({},W(),{className:cnSelect("FakeField"),type:"text",name:x,id:ha,onFocus:_,onBlur:aa,"aria-label":n,onClick:da,ref:useForkRef([ca,L]),readOnly:!0})),k&&(K||function renderValueDefault(a){var b=A(a.item);return React.createElement("span",{className:cnSelect("ControlValue"),title:b},b)})({item:k})
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","required","disabled","ariaLabel","id","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","labelForEmptyItems","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","isLoading","renderValue","inputRef","style","dropdownForm","onDropdownOpen","onScrollToBottom","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs"];import"../SelectComponents/Select.css";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect,COMPONENT_NAME}from"../SelectComponentsCanary/cnSelect";import{defaultLabelForEmptyItems}from"../SelectComponentsCanary/helpers";import{SelectContainer}from"../SelectComponentsCanary/SelectContainer";import{SelectDropdown}from"../SelectComponentsCanary/SelectDropdown";import{SelectItem}from"../SelectComponentsCanary/SelectItem";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponentsCanary/types";import{useSelect}from"../SelectComponentsCanary/useSelect";import{useForkRef}from"../../hooks/useForkRef";import{isNotNil}from"../../utils/type-guards";import{withDefaultGetters}from"./helpers";var SelectRender=function(a,b){var c=useRef(null),d=useRef(null),e=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),d),f=e.placeholder,g=e.onBlur,h=e.onFocus,i=e.items,j=e.onChange,k=e.value,l=e.required,m=e.disabled,n=e.ariaLabel,o=e.id,p=e.dropdownRef,q=e.form,r=void 0===q?defaultPropForm:q,s=e.view,t=void 0===s?defaultPropView:s,u=e.size,v=void 0===u?defaultPropSize:u,w=e.dropdownClassName,x=e.name,y=e.groups,z=void 0===y?[]:y,A=e.getItemLabel,B=e.labelForEmptyItems,C=void 0===B?defaultLabelForEmptyItems:B,D=e.getItemKey,E=e.getItemGroupKey,F=e.getItemDisabled,G=e.getGroupKey,H=e.getGroupLabel,I=e.renderItem,J=e.isLoading,K=e.renderValue,L=e.inputRef,M=e.style,N=e.dropdownForm,O=void 0===N?"default":N,P=e.onDropdownOpen,Q=e.onScrollToBottom,R=e.virtualScroll,S=e.dropdownOpen,T=e.ignoreOutsideClicksRefs,U=_objectWithoutProperties(e,_excluded),V=useSelect({items:i,groups:z,value:k,onChange:j,dropdownRef:c,controlRef:d,disabled:m,getItemLabel:A,getItemKey:D,getGroupKey:G,getItemGroupKey:E,getItemDisabled:F,multiple:!1,onBlur:g,onFocus:h,onDropdownOpen:P,dropdownOpen:S,ignoreOutsideClicksRefs:T}),W=V.getKeyProps,X=V.getOptionProps,Y=V.isOpen,Z=V.visibleItems,$=V.isFocused,_=V.handleInputFocus,aa=V.handleInputBlur,ba=V.handleToggleDropdown,ca=V.inputRef,da=V.handleInputClick,ea=V.notFound,fa=V.hasItems,ga=V.optionsRefs,ha=o?"".concat(o,"-input"):o;return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:$,disabled:m,size:v,view:t,form:r,required:l,ref:b,style:M,id:ha},U),React.createElement("div",{className:cnSelect("Control"),ref:d,"aria-expanded":Y,"aria-haspopup":"listbox",id:o},React.createElement("div",{className:cnSelect("ControlInner")},React.createElement("div",{className:cnSelect("ControlValueContainer")},React.createElement("input",Object.assign({},W(),{className:cnSelect("FakeField"),type:"text",name:x,id:ha,onFocus:_,onBlur:aa,"aria-label":n,onClick:da,ref:useForkRef([ca,L]),readOnly:!0})),isNotNil(k)&&(K||function renderValueDefault(a){var b=A(a.item);return React.createElement("span",{className:cnSelect("ControlValue"),title:b},b)})({item:k}),!isNotNil(k)&&f&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},f))),React.createElement("span",{className:cnSelect("Indicators")},React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:ba},React.createElement(IconSelect,{size:"xs",className:cnSelect("DropdownIndicatorIcon")}))))),React.createElement(SelectDropdown,{isOpen:Y,size:v,controlRef:d,getOptionProps:X,dropdownRef:useForkRef([p,c]),form:O,className:w,renderItem:I||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter,g=a.ref;return React.createElement(SelectItem,{label:A(b),active:c,hovered:d,multiple:!1,size:v,indent:"round"===O?"increased":"normal",onClick:e,onMouseEnter:f,disabled:F(b),ref:g})},getGroupLabel:H,visibleItems:Z,notFound:ea,isLoading:J,labelForEmptyItems:C,hasItems:fa,itemsRefs:ga,virtualScroll:R,onScrollToBottom:Q,style:"number"==typeof(null===M||void 0===M?void 0:M.zIndex)?{zIndex:M.zIndex+1}:void 0}))};export var Select=forwardRef(SelectRender);export*from"./helpers";
|
|
2
2
|
//# sourceMappingURL=SelectCanary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectCanary.js","names":["IconSelect","React","forwardRef","useRef","usePropsHandler","cnSelect","COMPONENT_NAME","defaultLabelForEmptyItems","SelectContainer","SelectDropdown","SelectItem","defaultPropForm","defaultPropSize","defaultPropView","useSelect","useForkRef","withDefaultGetters","SelectRender","props","ref","defaultDropdownRef","controlRef","placeholder","onBlur","onFocus","items","onChange","value","required","disabled","ariaLabel","id","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","labelForEmptyItems","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","isLoading","renderValueProp","renderValue","inputRefProp","inputRef","style","dropdownForm","onDropdownOpen","onScrollToBottom","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs","restProps","multiple","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","notFound","hasItems","optionsRefs","inputId","renderValueDefault","label","item","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","Select"],"sources":["../../../../../src/components/SelectCanary/SelectCanary.tsx"],"sourcesContent":["import '##/components/SelectComponents/Select.css';\n\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport {\n cnSelect,\n COMPONENT_NAME,\n} from '##/components/SelectComponentsCanary/cnSelect';\nimport { defaultLabelForEmptyItems } from '##/components/SelectComponentsCanary/helpers';\nimport { SelectContainer } from '##/components/SelectComponentsCanary/SelectContainer';\nimport { SelectDropdown } from '##/components/SelectComponentsCanary/SelectDropdown';\nimport { SelectItem } from '##/components/SelectComponentsCanary/SelectItem';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '##/components/SelectComponentsCanary/types';\nimport { useSelect } from '##/components/SelectComponentsCanary/useSelect';\nimport { useForkRef } from '##/hooks/useForkRef';\n\nimport {\n DefaultGroup,\n DefaultItem,\n PropRenderItem,\n PropRenderValue,\n SelectComponent,\n SelectProps,\n withDefaultGetters,\n} from './helpers';\n\nconst SelectRender = <ITEM = DefaultItem, GROUP = DefaultGroup>(\n props: SelectProps<ITEM, GROUP>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n required,\n disabled,\n ariaLabel,\n id,\n dropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n name,\n groups = [],\n getItemLabel,\n labelForEmptyItems = defaultLabelForEmptyItems,\n getItemKey,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n isLoading,\n renderValue: renderValueProp,\n inputRef: inputRefProp,\n style,\n dropdownForm = 'default',\n onDropdownOpen,\n onScrollToBottom,\n virtualScroll,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n ...restProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n notFound,\n hasItems,\n optionsRefs,\n } = useSelect<ITEM, GROUP, false>({\n items,\n groups,\n value,\n onChange,\n dropdownRef: defaultDropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n getItemGroupKey,\n getItemDisabled,\n multiple: false,\n onBlur,\n onFocus,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter, ref } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={false}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disabled={getItemDisabled(item)}\n ref={ref}\n />\n );\n };\n\n const renderValueDefault: PropRenderValue<ITEM> = (props) => {\n const label = getItemLabel(props.item);\n\n return (\n <span className={cnSelect('ControlValue')} title={label}>\n {label}\n </span>\n );\n };\n\n const renderValue = renderValueProp || renderValueDefault;\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n view={view}\n form={form}\n required={required}\n ref={ref}\n style={style}\n id={inputId}\n {...restProps}\n >\n <div\n className={cnSelect('Control')}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div className={cnSelect('ControlInner')}>\n <div className={cnSelect('ControlValueContainer')}>\n <input\n {...getKeyProps()}\n className={cnSelect('FakeField')}\n type=\"text\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onClick={handleInputClick}\n ref={useForkRef([inputRef, inputRefProp])}\n readOnly\n />\n {value && renderValue({ item: value })}\n {(typeof value === 'undefined' || value === null) && placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={useForkRef([dropdownRef, defaultDropdownRef])}\n form={dropdownForm}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n notFound={notFound}\n isLoading={isLoading}\n labelForEmptyItems={labelForEmptyItems}\n hasItems={hasItems}\n itemsRefs={optionsRefs}\n virtualScroll={virtualScroll}\n onScrollToBottom={onScrollToBottom}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const Select = forwardRef(SelectRender) as SelectComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SelectCanary.js","names":["IconSelect","React","forwardRef","useRef","usePropsHandler","cnSelect","COMPONENT_NAME","defaultLabelForEmptyItems","SelectContainer","SelectDropdown","SelectItem","defaultPropForm","defaultPropSize","defaultPropView","useSelect","useForkRef","isNotNil","withDefaultGetters","SelectRender","props","ref","defaultDropdownRef","controlRef","placeholder","onBlur","onFocus","items","onChange","value","required","disabled","ariaLabel","id","dropdownRef","form","view","size","dropdownClassName","name","groups","getItemLabel","labelForEmptyItems","getItemKey","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","isLoading","renderValueProp","renderValue","inputRefProp","inputRef","style","dropdownForm","onDropdownOpen","onScrollToBottom","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs","restProps","multiple","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","notFound","hasItems","optionsRefs","inputId","renderValueDefault","label","item","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","Select"],"sources":["../../../../../src/components/SelectCanary/SelectCanary.tsx"],"sourcesContent":["import '##/components/SelectComponents/Select.css';\n\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport {\n cnSelect,\n COMPONENT_NAME,\n} from '##/components/SelectComponentsCanary/cnSelect';\nimport { defaultLabelForEmptyItems } from '##/components/SelectComponentsCanary/helpers';\nimport { SelectContainer } from '##/components/SelectComponentsCanary/SelectContainer';\nimport { SelectDropdown } from '##/components/SelectComponentsCanary/SelectDropdown';\nimport { SelectItem } from '##/components/SelectComponentsCanary/SelectItem';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '##/components/SelectComponentsCanary/types';\nimport { useSelect } from '##/components/SelectComponentsCanary/useSelect';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { isNotNil } from '##/utils/type-guards';\n\nimport {\n DefaultGroup,\n DefaultItem,\n PropRenderItem,\n PropRenderValue,\n SelectComponent,\n SelectProps,\n withDefaultGetters,\n} from './helpers';\n\nconst SelectRender = <ITEM = DefaultItem, GROUP = DefaultGroup>(\n props: SelectProps<ITEM, GROUP>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n required,\n disabled,\n ariaLabel,\n id,\n dropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n name,\n groups = [],\n getItemLabel,\n labelForEmptyItems = defaultLabelForEmptyItems,\n getItemKey,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n isLoading,\n renderValue: renderValueProp,\n inputRef: inputRefProp,\n style,\n dropdownForm = 'default',\n onDropdownOpen,\n onScrollToBottom,\n virtualScroll,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n ...restProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n notFound,\n hasItems,\n optionsRefs,\n } = useSelect<ITEM, GROUP, false>({\n items,\n groups,\n value,\n onChange,\n dropdownRef: defaultDropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n getItemGroupKey,\n getItemDisabled,\n multiple: false,\n onBlur,\n onFocus,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter, ref } = props;\n\n return (\n <SelectItem\n label={getItemLabel(item)}\n active={active}\n hovered={hovered}\n multiple={false}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disabled={getItemDisabled(item)}\n ref={ref}\n />\n );\n };\n\n const renderValueDefault: PropRenderValue<ITEM> = (props) => {\n const label = getItemLabel(props.item);\n\n return (\n <span className={cnSelect('ControlValue')} title={label}>\n {label}\n </span>\n );\n };\n\n const renderValue = renderValueProp || renderValueDefault;\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n view={view}\n form={form}\n required={required}\n ref={ref}\n style={style}\n id={inputId}\n {...restProps}\n >\n <div\n className={cnSelect('Control')}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div className={cnSelect('ControlInner')}>\n <div className={cnSelect('ControlValueContainer')}>\n <input\n {...getKeyProps()}\n className={cnSelect('FakeField')}\n type=\"text\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onClick={handleInputClick}\n ref={useForkRef([inputRef, inputRefProp])}\n readOnly\n />\n {isNotNil(value) && renderValue({ item: value })}\n {!isNotNil(value) && placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={useForkRef([dropdownRef, defaultDropdownRef])}\n form={dropdownForm}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n notFound={notFound}\n isLoading={isLoading}\n labelForEmptyItems={labelForEmptyItems}\n hasItems={hasItems}\n itemsRefs={optionsRefs}\n virtualScroll={virtualScroll}\n onScrollToBottom={onScrollToBottom}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const Select = forwardRef(SelectRender) as SelectComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","items","value","onChange","getItemKey","getItemLabel","getItemIcon","direction","possibleDirections","style","view"];import{IconCheck}from"@consta/icons/IconCheck";import React,{forwardRef,useRef}from"react";import{Button}from"../Button";import{ContextMenu}from"../ContextMenu";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{useChoiceGroup}from"../../hooks/useChoiceGroup";import{useFlag}from"../../hooks/useFlag";import{useForkRef}from"../../hooks/useForkRef";import{contextMenuSizeMap,iconSizeMap,withDefaultGetters}from"./helpers";import{themeTogglerPropSizeDefault}from"./types";export var COMPONENT_NAME="ThemeToggler";var ThemeTogglerRender=function(a,b){var c=useRef(null),d=useForkRef([c,b]),e=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),d),f=e.size,g=void 0===f?themeTogglerPropSizeDefault:f,h=e.items,i=e.value,j=e.onChange,k=e.getItemKey,l=e.getItemLabel,m=e.getItemIcon,n=e.direction,o=e.possibleDirections,p=e.style,q=e.view,r=void 0===q?"clear":q,s=_objectWithoutProperties(e,_excluded),t=useFlag(!1),u=_slicedToArray(t,2),v=u[0],w=u[1],x=useChoiceGroup({value:i,getKey:k||l,callBack:j,multiple:!1}),y=x.getOnChange,z=x.getChecked,A=iconSizeMap[g],B=contextMenuSizeMap[g];return 1>=h.length?null:React.createElement(React.Fragment,null,React.createElement(Button,Object.assign({},s,{ref:d,iconLeft:function getButtonIcon(){var a;return m(null!==(a=h.find(function(a){return z(a)}))&&void 0!==a?a:h[0])}(),onClick:function onButtonClick(a){2<h.length?w.toggle():y(h[z(h[0])?1:0])(a)},onlyIcon:!0,size:g,view:r,style:p})),2<h.length&&React.createElement(ContextMenu,{isOpen:v,offset:"s",items:h,getItemLabel:l,getItemKey:k||l,anchorRef:c,direction:n,possibleDirections:o,getItemLeftSide:function renderIcons(a){var b=m(a);if(b)return React.createElement(b,{size:A})},getItemRightSide:function renderChecks(a){if(z(a))return React.createElement(IconCheck,{size:A})},onClickOutside:w.off,onItemClick:function onItemClick(a){return y(a.item)(a.e)},size:B,style:"number"==typeof(null===p||void 0===p?void 0:p.zIndex)?{zIndex:p.zIndex+1}:void 0}))};export var ThemeToggler=forwardRef(ThemeTogglerRender);export*from"./types";
|
|
1
|
+
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","items","value","onChange","getItemKey","getItemLabel","getItemIcon","direction","possibleDirections","style","view"];import{IconCheck}from"@consta/icons/IconCheck";import React,{forwardRef,useRef}from"react";import{Button}from"../Button";import{ContextMenu}from"../ContextMenu";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{useChoiceGroup}from"../../hooks/useChoiceGroup";import{useFlag}from"../../hooks/useFlag";import{useForkRef}from"../../hooks/useForkRef";import{contextMenuSizeMap,iconSizeMap,withDefaultGetters}from"./helpers";import{themeTogglerPropSizeDefault}from"./types";export var COMPONENT_NAME="ThemeToggler";var ThemeTogglerRender=function(a,b){var c=useRef(null),d=useForkRef([c,b]),e=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),d),f=e.size,g=void 0===f?themeTogglerPropSizeDefault:f,h=e.items,i=e.value,j=e.onChange,k=e.getItemKey,l=e.getItemLabel,m=e.getItemIcon,n=e.direction,o=e.possibleDirections,p=e.style,q=e.view,r=void 0===q?"clear":q,s=_objectWithoutProperties(e,_excluded),t=useFlag(!1),u=_slicedToArray(t,2),v=u[0],w=u[1],x=useChoiceGroup({value:i,getKey:k||l,callBack:j,multiple:!1}),y=x.getOnChange,z=x.getChecked,A=iconSizeMap[g],B=contextMenuSizeMap[g];return 1>=h.length?null:React.createElement(React.Fragment,null,React.createElement(Button,Object.assign({},s,{ref:d,iconLeft:function getButtonIcon(){var a;return m(null!==(a=h.find(function(a){return z(a)}))&&void 0!==a?a:h[0])}(),onClick:function onButtonClick(a){2<h.length?w.toggle():y(h[z(h[0])?1:0])(a)},onlyIcon:!0,type:"button",size:g,view:r,style:p})),2<h.length&&React.createElement(ContextMenu,{isOpen:v,offset:"s",items:h,getItemLabel:l,getItemKey:k||l,anchorRef:c,direction:n,possibleDirections:o,getItemLeftSide:function renderIcons(a){var b=m(a);if(b)return React.createElement(b,{size:A})},getItemRightSide:function renderChecks(a){if(z(a))return React.createElement(IconCheck,{size:A})},onClickOutside:w.off,onItemClick:function onItemClick(a){return y(a.item)(a.e)},size:B,style:"number"==typeof(null===p||void 0===p?void 0:p.zIndex)?{zIndex:p.zIndex+1}:void 0}))};export var ThemeToggler=forwardRef(ThemeTogglerRender);export*from"./types";
|
|
2
2
|
//# sourceMappingURL=ThemeToggler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeToggler.js","names":["IconCheck","React","forwardRef","useRef","Button","ContextMenu","usePropsHandler","useChoiceGroup","useFlag","useForkRef","contextMenuSizeMap","iconSizeMap","withDefaultGetters","themeTogglerPropSizeDefault","COMPONENT_NAME","ThemeTogglerRender","props","ref","anchorRef","buttonRef","size","items","value","onChange","getItemKey","getItemLabel","getItemIcon","direction","possibleDirections","style","view","otherProps","isOpen","setIsOpen","getKey","callBack","multiple","getOnChange","getChecked","iconSize","contextMenuSize","length","getButtonIcon","find","theme","onButtonClick","e","toggle","renderIcons","item","Icon","renderChecks","off","params","zIndex","ThemeToggler"],"sources":["../../../../../src/components/ThemeToggler/ThemeToggler.tsx"],"sourcesContent":["import { IconCheck } from '@consta/icons/IconCheck';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { Button } from '##/components/Button';\nimport { ContextMenu } from '##/components/ContextMenu';\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { useChoiceGroup } from '##/hooks/useChoiceGroup';\nimport { useFlag } from '##/hooks/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef';\n\nimport { contextMenuSizeMap, iconSizeMap, withDefaultGetters } from './helpers';\nimport {\n ThemeTogglerComponent,\n ThemeTogglerProps,\n themeTogglerPropSizeDefault,\n} from './types';\n\nexport const COMPONENT_NAME = 'ThemeToggler' as const;\n\nconst ThemeTogglerRender = (\n props: ThemeTogglerProps,\n ref: React.Ref<HTMLButtonElement>,\n) => {\n const anchorRef = useRef<HTMLButtonElement>(null);\n const buttonRef = useForkRef([anchorRef, ref]);\n\n const {\n size = themeTogglerPropSizeDefault,\n items,\n value,\n onChange,\n getItemKey,\n getItemLabel,\n getItemIcon,\n direction,\n possibleDirections,\n style,\n view = 'clear',\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), buttonRef);\n\n const [isOpen, setIsOpen] = useFlag(false);\n\n const { getOnChange, getChecked } = useChoiceGroup({\n value,\n getKey: getItemKey || getItemLabel,\n callBack: onChange,\n multiple: false,\n });\n\n type Item = typeof items[number];\n\n const iconSize = iconSizeMap[size];\n const contextMenuSize = contextMenuSizeMap[size];\n\n const getButtonIcon = () =>\n getItemIcon(items.find((theme) => getChecked(theme)) ?? items[0]);\n\n const onButtonClick = (e: React.MouseEvent<Element, MouseEvent>) => {\n if (items.length > 2) {\n setIsOpen.toggle();\n } else {\n getOnChange(items[getChecked(items[0]) ? 1 : 0])(e);\n }\n };\n\n const renderIcons = (item: Item) => {\n const Icon = getItemIcon(item);\n\n if (Icon) {\n return <Icon size={iconSize} />;\n }\n };\n\n const renderChecks = (item: Item) => {\n if (getChecked(item)) {\n return <IconCheck size={iconSize} />;\n }\n };\n\n if (items.length <= 1) {\n return null;\n }\n\n return (\n <>\n <Button\n {...otherProps}\n ref={buttonRef}\n iconLeft={getButtonIcon()}\n onClick={onButtonClick}\n onlyIcon\n size={size}\n view={view}\n style={style}\n />\n {items.length > 2 && (\n <ContextMenu\n isOpen={isOpen}\n offset=\"s\"\n items={items}\n getItemLabel={getItemLabel}\n getItemKey={getItemKey || getItemLabel}\n anchorRef={anchorRef}\n direction={direction}\n possibleDirections={possibleDirections}\n getItemLeftSide={renderIcons}\n getItemRightSide={renderChecks}\n onClickOutside={setIsOpen.off}\n onItemClick={(params) => getOnChange(params.item)(params.e)}\n size={contextMenuSize}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n )}\n </>\n );\n};\n\nexport const ThemeToggler = forwardRef(\n ThemeTogglerRender,\n) as ThemeTogglerComponent;\n\nexport * from './types';\n"],"mappings":"kSAAA,OAASA,SAAT,KAA0B,yBAA1B,CACA,MAAOC,MAAP,EAAgBC,UAAhB,CAA4BC,MAA5B,KAA0C,OAA1C,CAEA,OAASC,MAAT,iBACA,OAASC,WAAT,sBACA,OAASC,eAAT,2CACA,OAASC,cAAT,kCACA,OAASC,OAAT,2BACA,OAASC,UAAT,8BAEA,OAASC,kBAAT,CAA6BC,WAA7B,CAA0CC,kBAA1C,iBACA,OAGEC,2BAHF,eAMA,MAAO,IAAMC,eAAc,CAAG,cAAvB,CAEP,GAAMC,mBAAkB,CAAG,SACzBC,CADyB,CAEzBC,CAFyB,CAGtB,IACGC,EAAS,CAAGf,MAAM,CAAoB,IAApB,CADrB,CAEGgB,CAAS,CAAGV,UAAU,CAAC,CAACS,CAAD,CAAYD,CAAZ,CAAD,CAFzB,GAiBCX,eAAe,CAACQ,cAAD,CAAiBF,kBAAkB,CAACI,CAAD,CAAnC,CAA4CG,CAA5C,CAjBhB,KAKDC,IALC,CAKDA,CALC,YAKMP,2BALN,GAMDQ,CANC,GAMDA,KANC,CAODC,CAPC,GAODA,KAPC,CAQDC,CARC,GAQDA,QARC,CASDC,CATC,GASDA,UATC,CAUDC,CAVC,GAUDA,YAVC,CAWDC,CAXC,GAWDA,WAXC,CAYDC,CAZC,GAYDA,SAZC,CAaDC,CAbC,GAaDA,kBAbC,CAcDC,CAdC,GAcDA,KAdC,KAeDC,IAfC,CAeDA,CAfC,YAeM,OAfN,GAgBEC,CAhBF,yCAmByBvB,OAAO,IAnBhC,uBAmBIwB,CAnBJ,MAmBYC,CAnBZ,QAqBiC1B,cAAc,CAAC,CACjDe,KAAK,CAALA,CADiD,CAEjDY,MAAM,CAAEV,CAAU,EAAIC,CAF2B,CAGjDU,QAAQ,CAAEZ,CAHuC,CAIjDa,QAAQ,GAJyC,CAAD,CArB/C,CAqBKC,CArBL,GAqBKA,WArBL,CAqBkBC,CArBlB,GAqBkBA,UArBlB,CA8BGC,CAAQ,CAAG5B,WAAW,CAACS,CAAD,CA9BzB,CA+BGoB,CAAe,CAAG9B,kBAAkB,CAACU,CAAD,CA/BvC,OA0DiB,EAAhB,EAAAC,CAAK,CAACoB,MA1DP,CA2DM,IA3DN,CA+DD,wCACE,oBAAC,MAAD,kBACMV,CADN,EAEE,GAAG,CAAEZ,CAFP,CAGE,QAAQ,CAlCQ,QAAhBuB,cAAgB,eACpBhB,EAAW,WAACL,CAAK,CAACsB,IAAN,CAAW,SAACC,CAAD,QAAWN,EAAU,CAACM,CAAD,CAArB,CAAX,CAAD,gBAA6CvB,CAAK,CAAC,CAAD,CAAlD,CADS,CAkCN,EAHZ,CAIE,OAAO,CAhCS,QAAhBwB,cAAgB,CAACC,CAAD,CAA8C,CAC/C,CAAf,CAAAzB,CAAK,CAACoB,MADwD,CAEhER,CAAS,CAACc,MAAV,EAFgE,CAIhEV,CAAW,CAAChB,CAAK,CAACiB,CAAU,CAACjB,CAAK,CAAC,CAAD,CAAN,CAAV,CAAuB,CAAvB,CAA2B,CAA5B,CAAN,CAAX,CAAiDyB,CAAjD,CAEH,CAsBG,CAKE,QAAQ,GALV,CAME,IAAI,
|
|
1
|
+
{"version":3,"file":"ThemeToggler.js","names":["IconCheck","React","forwardRef","useRef","Button","ContextMenu","usePropsHandler","useChoiceGroup","useFlag","useForkRef","contextMenuSizeMap","iconSizeMap","withDefaultGetters","themeTogglerPropSizeDefault","COMPONENT_NAME","ThemeTogglerRender","props","ref","anchorRef","buttonRef","size","items","value","onChange","getItemKey","getItemLabel","getItemIcon","direction","possibleDirections","style","view","otherProps","isOpen","setIsOpen","getKey","callBack","multiple","getOnChange","getChecked","iconSize","contextMenuSize","length","getButtonIcon","find","theme","onButtonClick","e","toggle","renderIcons","item","Icon","renderChecks","off","params","zIndex","ThemeToggler"],"sources":["../../../../../src/components/ThemeToggler/ThemeToggler.tsx"],"sourcesContent":["import { IconCheck } from '@consta/icons/IconCheck';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { Button } from '##/components/Button';\nimport { ContextMenu } from '##/components/ContextMenu';\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { useChoiceGroup } from '##/hooks/useChoiceGroup';\nimport { useFlag } from '##/hooks/useFlag';\nimport { useForkRef } from '##/hooks/useForkRef';\n\nimport { contextMenuSizeMap, iconSizeMap, withDefaultGetters } from './helpers';\nimport {\n ThemeTogglerComponent,\n ThemeTogglerProps,\n themeTogglerPropSizeDefault,\n} from './types';\n\nexport const COMPONENT_NAME = 'ThemeToggler' as const;\n\nconst ThemeTogglerRender = (\n props: ThemeTogglerProps,\n ref: React.Ref<HTMLButtonElement>,\n) => {\n const anchorRef = useRef<HTMLButtonElement>(null);\n const buttonRef = useForkRef([anchorRef, ref]);\n\n const {\n size = themeTogglerPropSizeDefault,\n items,\n value,\n onChange,\n getItemKey,\n getItemLabel,\n getItemIcon,\n direction,\n possibleDirections,\n style,\n view = 'clear',\n ...otherProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), buttonRef);\n\n const [isOpen, setIsOpen] = useFlag(false);\n\n const { getOnChange, getChecked } = useChoiceGroup({\n value,\n getKey: getItemKey || getItemLabel,\n callBack: onChange,\n multiple: false,\n });\n\n type Item = typeof items[number];\n\n const iconSize = iconSizeMap[size];\n const contextMenuSize = contextMenuSizeMap[size];\n\n const getButtonIcon = () =>\n getItemIcon(items.find((theme) => getChecked(theme)) ?? items[0]);\n\n const onButtonClick = (e: React.MouseEvent<Element, MouseEvent>) => {\n if (items.length > 2) {\n setIsOpen.toggle();\n } else {\n getOnChange(items[getChecked(items[0]) ? 1 : 0])(e);\n }\n };\n\n const renderIcons = (item: Item) => {\n const Icon = getItemIcon(item);\n\n if (Icon) {\n return <Icon size={iconSize} />;\n }\n };\n\n const renderChecks = (item: Item) => {\n if (getChecked(item)) {\n return <IconCheck size={iconSize} />;\n }\n };\n\n if (items.length <= 1) {\n return null;\n }\n\n return (\n <>\n <Button\n {...otherProps}\n ref={buttonRef}\n iconLeft={getButtonIcon()}\n onClick={onButtonClick}\n onlyIcon\n type=\"button\"\n size={size}\n view={view}\n style={style}\n />\n {items.length > 2 && (\n <ContextMenu\n isOpen={isOpen}\n offset=\"s\"\n items={items}\n getItemLabel={getItemLabel}\n getItemKey={getItemKey || getItemLabel}\n anchorRef={anchorRef}\n direction={direction}\n possibleDirections={possibleDirections}\n getItemLeftSide={renderIcons}\n getItemRightSide={renderChecks}\n onClickOutside={setIsOpen.off}\n onItemClick={(params) => getOnChange(params.item)(params.e)}\n size={contextMenuSize}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n )}\n </>\n );\n};\n\nexport const ThemeToggler = forwardRef(\n ThemeTogglerRender,\n) as ThemeTogglerComponent;\n\nexport * from './types';\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm"];import"../SelectComponents/Select.css";import{IconClose}from"@consta/icons/IconClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useSelect}from"../../hooks/useSelect/useSelect";import{cnMixFocus}from"../../mixs/MixFocus/MixFocus";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponents/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown/SelectDropdown";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{isMultipleParams,isNotMultipleParams,searchCompare,withDefaultGetters}from"./helpers";import{UserSelectItem}from"./UserSelectItem/UserSelectItem";import{UserSelectValue}from"./UserSelectValue/UserSelectValue";export var COMPONENT_NAME="UserSelect";var UserSelectRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.isLoading,r=g.required,s=g.dropdownRef,t=void 0===s?c:s,u=g.form,v=void 0===u?defaultPropForm:u,w=g.view,x=void 0===w?defaultPropView:w,y=g.size,z=void 0===y?defaultPropSize:y,A=g.dropdownClassName,B=g.searchValue,C=g.name,D=g.groups,E=void 0===D?[]:D,F=g.getItemKey,G=g.getItemLabel,H=g.getItemSubLabel,I=g.getItemAvatarUrl,J=g.getItemGroupKey,K=g.getItemDisabled,L=g.getGroupKey,M=g.getGroupLabel,N=g.renderItem,O=g.renderValue,P=g.onCreate,Q=g.inputRef,R=g.labelForNotFound,S=void 0===R?defaultlabelForNotFound:R,T=g.labelForCreate,U=void 0===T?defaultlabelForCreate:T,V=g.labelForEmptyItems,W=void 0===V?defaultLabelForEmptyItems:V,X=g.multiple,Y=void 0!==X&&X,Z=g.searchFunction,$=g.style,_=g.dropdownForm,aa=void 0===_?"default":_,ba=_objectWithoutProperties(g,_excluded),ca=useSelect({items:k,groups:E,value:m,onChange:l,dropdownRef:t,controlRef:f,disabled:n,getItemLabel:G,getItemKey:F,getGroupKey:L,getItemGroupKey:J,searchValue:B,getItemDisabled:K,multiple:Y,onBlur:i,onFocus:j,onCreate:P,searchFunction:Z||function searchFunctionDefault(a,b){var c=searchCompare(b,G(a));return c?c:searchCompare(b,H(a))}}),da=ca.getKeyProps,ea=ca.getOptionProps,fa=ca.isOpen,ga=ca.visibleItems,ha=ca.isFocused,ia=ca.handleInputFocus,ja=ca.handleInputBlur,ka=ca.handleToggleDropdown,la=ca.inputRef,ma=ca.handleInputClick,na=ca.handleInputChange,oa=ca.searchValue,pa=ca.clearValue,qa=ca.getHandleRemoveValue,ra=ca.notFound,sa=ca.hasItems,ta=p?"".concat(p,"-input"):p,ua=O||function renderValueDefault(a){var b=a.item,c=a.handleRemove;return React.createElement(UserSelectValue,{label:G(b),subLabel:H(b),avatarUrl:I(b),key:F(b),size:z,handleRemove:c,multiple:Y,disabled:n||K(b)})},va=useForkRef([la,Q]),wa=function(){var b=Y?getInputWidth(d,e):void 0;return React.createElement(React.Fragment,null,isMultipleParams(a)&&Array.isArray(a.value)&&a.value.map(function(a){return ua({item:a,handleRemove:qa(a)})}),isNotMultipleParams(a)&&a.value&&ua({item:a.value}),(!m||Array.isArray(m)&&0===m.length)&&!oa&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},da(),{type:"text",name:C,id:ta,onFocus:ia,onBlur:ja,"aria-label":o,onChange:na,ref:va,className:cnSelect("Input",{size:z,hide:!Y
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm"];import"../SelectComponents/Select.css";import{IconClose}from"@consta/icons/IconClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{isNotNil}from"../../utils/type-guards";import{useForkRef}from"../../hooks/useForkRef/useForkRef";import{useSelect}from"../../hooks/useSelect/useSelect";import{cnMixFocus}from"../../mixs/MixFocus/MixFocus";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponents/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponents/helpers";import{SelectContainer}from"../SelectComponents/SelectContainer/SelectContainer";import{SelectDropdown}from"../SelectComponents/SelectDropdown/SelectDropdown";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponents/types";import{isMultipleParams,isNotMultipleParams,searchCompare,withDefaultGetters}from"./helpers";import{UserSelectItem}from"./UserSelectItem/UserSelectItem";import{UserSelectValue}from"./UserSelectValue/UserSelectValue";export var COMPONENT_NAME="UserSelect";var UserSelectRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.isLoading,r=g.required,s=g.dropdownRef,t=void 0===s?c:s,u=g.form,v=void 0===u?defaultPropForm:u,w=g.view,x=void 0===w?defaultPropView:w,y=g.size,z=void 0===y?defaultPropSize:y,A=g.dropdownClassName,B=g.searchValue,C=g.name,D=g.groups,E=void 0===D?[]:D,F=g.getItemKey,G=g.getItemLabel,H=g.getItemSubLabel,I=g.getItemAvatarUrl,J=g.getItemGroupKey,K=g.getItemDisabled,L=g.getGroupKey,M=g.getGroupLabel,N=g.renderItem,O=g.renderValue,P=g.onCreate,Q=g.inputRef,R=g.labelForNotFound,S=void 0===R?defaultlabelForNotFound:R,T=g.labelForCreate,U=void 0===T?defaultlabelForCreate:T,V=g.labelForEmptyItems,W=void 0===V?defaultLabelForEmptyItems:V,X=g.multiple,Y=void 0!==X&&X,Z=g.searchFunction,$=g.style,_=g.dropdownForm,aa=void 0===_?"default":_,ba=_objectWithoutProperties(g,_excluded),ca=useSelect({items:k,groups:E,value:m,onChange:l,dropdownRef:t,controlRef:f,disabled:n,getItemLabel:G,getItemKey:F,getGroupKey:L,getItemGroupKey:J,searchValue:B,getItemDisabled:K,multiple:Y,onBlur:i,onFocus:j,onCreate:P,searchFunction:Z||function searchFunctionDefault(a,b){var c=searchCompare(b,G(a));return c?c:searchCompare(b,H(a))}}),da=ca.getKeyProps,ea=ca.getOptionProps,fa=ca.isOpen,ga=ca.visibleItems,ha=ca.isFocused,ia=ca.handleInputFocus,ja=ca.handleInputBlur,ka=ca.handleToggleDropdown,la=ca.inputRef,ma=ca.handleInputClick,na=ca.handleInputChange,oa=ca.searchValue,pa=ca.clearValue,qa=ca.getHandleRemoveValue,ra=ca.notFound,sa=ca.hasItems,ta=p?"".concat(p,"-input"):p,ua=O||function renderValueDefault(a){var b=a.item,c=a.handleRemove;return React.createElement(UserSelectValue,{label:G(b),subLabel:H(b),avatarUrl:I(b),key:F(b),size:z,handleRemove:c,multiple:Y,disabled:n||K(b)})},va=useForkRef([la,Q]),wa=function(){var b=Y?getInputWidth(d,e):void 0;return React.createElement(React.Fragment,null,isMultipleParams(a)&&Array.isArray(a.value)&&a.value.map(function(a){return ua({item:a,handleRemove:qa(a)})}),isNotMultipleParams(a)&&isNotNil(a.value)&&ua({item:a.value}),(!isNotNil(m)||Array.isArray(m)&&0===m.length)&&!oa&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},da(),{type:"text",name:C,id:ta,onFocus:ia,onBlur:ja,"aria-label":o,onChange:na,ref:va,className:cnSelect("Input",{size:z,hide:!Y&&isNotNil(m),multiple:Y,isUserSelect:!0}),value:oa,style:{width:b}})))};return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:ha,disabled:n,size:z,required:r,id:ta,view:x,type:"userselect",form:v,multiple:!0,ref:b,style:$},ba),React.createElement("div",{className:cnSelect("Control",{hasInput:!0}),ref:f,"aria-expanded":fa,"aria-haspopup":"listbox",id:p},React.createElement("div",{className:cnSelect("ControlInner"),onClick:ma,role:"button",ref:d,"aria-hidden":"true"},React.createElement("div",{className:cnSelect("ControlValueContainer")},Y?React.createElement("div",{className:cnSelect("ControlValue",{isUserSelect:!0})},wa()):wa())),React.createElement("span",{className:cnSelect("Indicators")},isNotNil(m)&&React.createElement("button",{type:"button",onClick:pa,className:cnSelect("ClearIndicator",[cnMixFocus()])},React.createElement(IconClose,{size:"xs",className:cnSelect("ClearIndicatorIcon")})),React.createElement("span",{className:cnSelect("Delimiter")}),React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:ka},React.createElement(IconSelect,{size:"xs",className:cnSelect("DropdownIndicatorIcon")})))),React.createElement("div",{className:cnSelect("HelperInputFakeElement"),ref:e},oa)),React.createElement(SelectDropdown,{isOpen:fa,size:z,controlRef:f,getOptionProps:ea,dropdownRef:t,form:aa,isLoading:q,className:A,renderItem:N||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter;return React.createElement(UserSelectItem,{label:G(b),subLabel:H(b),avatarUrl:I(b),active:c,hovered:d,size:z,indent:"round"===aa?"increased":"normal",onClick:e,onMouseEnter:f,disable:K(b),multiple:Y})},getGroupLabel:M,visibleItems:ga,labelForNotFound:S,labelForCreate:U,notFound:ra,hasItems:sa,labelForEmptyItems:W,style:"number"==typeof(null===$||void 0===$?void 0:$.zIndex)?{zIndex:$.zIndex+1}:void 0}))};export var UserSelect=forwardRef(UserSelectRender);export*from"./helpers";
|
|
2
2
|
//# sourceMappingURL=UserSelect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSelect.js","names":["IconClose","IconSelect","React","forwardRef","useRef","useForkRef","useSelect","cnMixFocus","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","defaultPropForm","defaultPropSize","defaultPropView","isMultipleParams","isNotMultipleParams","searchCompare","withDefaultGetters","UserSelectItem","UserSelectValue","COMPONENT_NAME","UserSelectRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValueProp","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm","restProps","searchFunctionDefault","item","searchOfLabel","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","inputId","renderValueDefault","handleRemove","inputRefForRender","renderControlValue","width","Array","isArray","map","length","hide","isUserSelect","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","UserSelect"],"sources":["../../../../../src/components/UserSelect/UserSelect.tsx"],"sourcesContent":["import '../SelectComponents/Select.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useSelect } from '../../hooks/useSelect/useSelect';\nimport { cnMixFocus } from '../../mixs/MixFocus/MixFocus';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { cnSelect } from '../SelectComponents/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '../SelectComponents/helpers';\nimport { SelectContainer } from '../SelectComponents/SelectContainer/SelectContainer';\nimport { SelectDropdown } from '../SelectComponents/SelectDropdown/SelectDropdown';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '../SelectComponents/types';\nimport {\n DefaultGroup,\n DefaultItem,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n searchCompare,\n UserSelectComponent,\n UserSelectProps,\n withDefaultGetters,\n} from './helpers';\nimport { UserSelectItem } from './UserSelectItem/UserSelectItem';\nimport { UserSelectValue } from './UserSelectValue/UserSelectValue';\n\nexport const COMPONENT_NAME = 'UserSelect' as const;\n\nconst UserSelectRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n isLoading,\n required,\n dropdownRef = defaultDropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n searchValue: searchValueProp,\n name,\n groups = [],\n getItemKey,\n getItemLabel,\n getItemSubLabel,\n getItemAvatarUrl,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n multiple = false,\n searchFunction,\n style,\n dropdownForm = 'default',\n ...restProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string): boolean => {\n const searchOfLabel = searchCompare(searchValue, getItemLabel(item));\n\n if (searchOfLabel) {\n return searchOfLabel;\n }\n\n return searchCompare(searchValue, getItemSubLabel(item));\n };\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n dropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n getItemGroupKey,\n searchValue: searchValueProp,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction: searchFunction || searchFunctionDefault,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <UserSelectItem\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n active={active}\n hovered={hovered}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disable={getItemDisabled(item)}\n multiple={multiple}\n />\n );\n };\n\n const renderValueDefault: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <UserSelectValue\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n key={getItemKey(item)}\n size={size}\n handleRemove={handleRemove}\n multiple={multiple}\n disabled={disabled || getItemDisabled(item)}\n />\n );\n };\n\n const renderValue = renderValueProp || renderValueDefault;\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n props.value &&\n renderValue({ item: props.value })}\n {(!value || (Array.isArray(value) && value.length === 0)) &&\n !searchValue &&\n placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n <input\n {...getKeyProps()}\n type=\"text\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleInputChange}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && !!value,\n multiple,\n isUserSelect: true,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n required={required}\n id={inputId}\n view={view}\n type=\"userselect\"\n form={form}\n multiple\n ref={ref}\n style={style}\n {...restProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {multiple ? (\n <div\n className={cnSelect('ControlValue', { isUserSelect: true })}\n >\n {renderControlValue()}\n </div>\n ) : (\n renderControlValue()\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {value && (\n <button\n type=\"button\"\n onClick={clearValue}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClose\n size=\"xs\"\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n isLoading={isLoading}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n notFound={notFound}\n hasItems={hasItems}\n labelForEmptyItems={labelForEmptyItems}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const UserSelect = forwardRef(UserSelectRender) as UserSelectComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UserSelect.js","names":["IconClose","IconSelect","React","forwardRef","useRef","isNotNil","useForkRef","useSelect","cnMixFocus","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","defaultPropForm","defaultPropSize","defaultPropView","isMultipleParams","isNotMultipleParams","searchCompare","withDefaultGetters","UserSelectItem","UserSelectValue","COMPONENT_NAME","UserSelectRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValueProp","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm","restProps","searchFunctionDefault","item","searchOfLabel","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","inputId","renderValueDefault","handleRemove","inputRefForRender","renderControlValue","width","Array","isArray","map","length","hide","isUserSelect","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","UserSelect"],"sources":["../../../../../src/components/UserSelect/UserSelect.tsx"],"sourcesContent":["import '../SelectComponents/Select.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { isNotNil } from '##/utils/type-guards';\n\nimport { useForkRef } from '../../hooks/useForkRef/useForkRef';\nimport { useSelect } from '../../hooks/useSelect/useSelect';\nimport { cnMixFocus } from '../../mixs/MixFocus/MixFocus';\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\nimport { cnSelect } from '../SelectComponents/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '../SelectComponents/helpers';\nimport { SelectContainer } from '../SelectComponents/SelectContainer/SelectContainer';\nimport { SelectDropdown } from '../SelectComponents/SelectDropdown/SelectDropdown';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '../SelectComponents/types';\nimport {\n DefaultGroup,\n DefaultItem,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n searchCompare,\n UserSelectComponent,\n UserSelectProps,\n withDefaultGetters,\n} from './helpers';\nimport { UserSelectItem } from './UserSelectItem/UserSelectItem';\nimport { UserSelectValue } from './UserSelectValue/UserSelectValue';\n\nexport const COMPONENT_NAME = 'UserSelect' as const;\n\nconst UserSelectRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n isLoading,\n required,\n dropdownRef = defaultDropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n searchValue: searchValueProp,\n name,\n groups = [],\n getItemKey,\n getItemLabel,\n getItemSubLabel,\n getItemAvatarUrl,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n multiple = false,\n searchFunction,\n style,\n dropdownForm = 'default',\n ...restProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string): boolean => {\n const searchOfLabel = searchCompare(searchValue, getItemLabel(item));\n\n if (searchOfLabel) {\n return searchOfLabel;\n }\n\n return searchCompare(searchValue, getItemSubLabel(item));\n };\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n dropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n getItemGroupKey,\n searchValue: searchValueProp,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction: searchFunction || searchFunctionDefault,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter } = props;\n\n return (\n <UserSelectItem\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n active={active}\n hovered={hovered}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disable={getItemDisabled(item)}\n multiple={multiple}\n />\n );\n };\n\n const renderValueDefault: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <UserSelectValue\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n key={getItemKey(item)}\n size={size}\n handleRemove={handleRemove}\n multiple={multiple}\n disabled={disabled || getItemDisabled(item)}\n />\n );\n };\n\n const renderValue = renderValueProp || renderValueDefault;\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n isNotNil(props.value) &&\n renderValue({ item: props.value })}\n {(!isNotNil(value) || (Array.isArray(value) && value.length === 0)) &&\n !searchValue &&\n placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n <input\n {...getKeyProps()}\n type=\"text\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleInputChange}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && isNotNil(value),\n multiple,\n isUserSelect: true,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n required={required}\n id={inputId}\n view={view}\n type=\"userselect\"\n form={form}\n multiple\n ref={ref}\n style={style}\n {...restProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {multiple ? (\n <div\n className={cnSelect('ControlValue', { isUserSelect: true })}\n >\n {renderControlValue()}\n </div>\n ) : (\n renderControlValue()\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {isNotNil(value) && (\n <button\n type=\"button\"\n onClick={clearValue}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClose\n size=\"xs\"\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n isLoading={isLoading}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n notFound={notFound}\n hasItems={hasItems}\n labelForEmptyItems={labelForEmptyItems}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const UserSelect = forwardRef(UserSelectRender) as UserSelectComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm","onScrollToBottom","onSearchValueChange","onDropdownOpen","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs"];import"../SelectComponentsCanary/Select.css";import{IconClose}from"@consta/icons/IconClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponentsCanary/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponentsCanary/helpers";import{SelectContainer}from"../SelectComponentsCanary/SelectContainer";import{SelectDropdown}from"../SelectComponentsCanary/SelectDropdown";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponentsCanary/types";import{useSelect}from"../SelectComponentsCanary/useSelect";import{useForkRef}from"../../hooks/useForkRef";import{cnMixFocus}from"../../mixs/MixFocus";import{isMultipleParams,isNotMultipleParams,searchCompare,withDefaultGetters}from"./helpers";import{UserSelectItem}from"./UserSelectItem/UserSelectItem";import{UserSelectValue}from"./UserSelectValue/UserSelectValue";export var COMPONENT_NAME="UserSelect";var UserSelectRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.isLoading,r=g.required,s=g.dropdownRef,t=void 0===s?c:s,u=g.form,v=void 0===u?defaultPropForm:u,w=g.view,x=void 0===w?defaultPropView:w,y=g.size,z=void 0===y?defaultPropSize:y,A=g.dropdownClassName,B=g.searchValue,C=g.name,D=g.groups,E=void 0===D?[]:D,F=g.getItemKey,G=g.getItemLabel,H=g.getItemSubLabel,I=g.getItemAvatarUrl,J=g.getItemGroupKey,K=g.getItemDisabled,L=g.getGroupKey,M=g.getGroupLabel,N=g.renderItem,O=g.renderValue,P=g.onCreate,Q=g.inputRef,R=g.labelForNotFound,S=void 0===R?defaultlabelForNotFound:R,T=g.labelForCreate,U=void 0===T?defaultlabelForCreate:T,V=g.labelForEmptyItems,W=void 0===V?defaultLabelForEmptyItems:V,X=g.multiple,Y=void 0!==X&&X,Z=g.searchFunction,$=g.style,_=g.dropdownForm,aa=void 0===_?"default":_,ba=g.onScrollToBottom,ca=g.onSearchValueChange,da=g.onDropdownOpen,ea=g.virtualScroll,fa=g.dropdownOpen,ga=g.ignoreOutsideClicksRefs,ha=_objectWithoutProperties(g,_excluded),ia=useSelect({items:k,groups:E,value:m,onChange:l,dropdownRef:t,controlRef:f,disabled:n,getItemLabel:G,getItemKey:F,getGroupKey:L,getItemGroupKey:J,searchValue:B,getItemDisabled:K,multiple:Y,onBlur:i,onFocus:j,onCreate:P,searchFunction:Z||function searchFunctionDefault(a,b){var c=searchCompare(b,G(a));return c?c:searchCompare(b,H(a))},onSearchValueChange:ca,onDropdownOpen:da,dropdownOpen:fa,ignoreOutsideClicksRefs:ga}),ja=ia.getKeyProps,ka=ia.getOptionProps,la=ia.isOpen,ma=ia.visibleItems,na=ia.isFocused,oa=ia.handleInputFocus,pa=ia.handleInputBlur,qa=ia.handleToggleDropdown,ra=ia.inputRef,sa=ia.handleInputClick,ta=ia.handleInputChange,ua=ia.searchValue,va=ia.clearValue,wa=ia.getHandleRemoveValue,xa=ia.notFound,ya=ia.hasItems,za=ia.optionsRefs,Aa=p?"".concat(p,"-input"):p,Ba=O||function renderValueDefault(a){var b=a.item,c=a.handleRemove;return React.createElement(UserSelectValue,{label:G(b),subLabel:H(b),avatarUrl:I(b),key:F(b),size:z,handleRemove:c,multiple:Y,disabled:n||K(b)})},Ca=useForkRef([ra,Q]),Da=function(){var b=Y?getInputWidth(d,e):void 0;return React.createElement(React.Fragment,null,isMultipleParams(a)&&Array.isArray(a.value)&&a.value.map(function(a){return Ba({item:a,handleRemove:wa(a)})}),isNotMultipleParams(a)&&a.value&&Ba({item:a.value}),(!m||Array.isArray(m)&&0===m.length)&&!ua&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},ja(),{type:"text",name:C,id:Aa,onFocus:oa,onBlur:pa,"aria-label":o,onChange:ta,ref:Ca,className:cnSelect("Input",{size:z,hide:!Y
|
|
1
|
+
import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValue","onCreate","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm","onScrollToBottom","onSearchValueChange","onDropdownOpen","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs"];import"../SelectComponentsCanary/Select.css";import{IconClose}from"@consta/icons/IconClose";import{IconSelect}from"@consta/icons/IconSelect";import React,{forwardRef,useRef}from"react";import{usePropsHandler}from"../EventInterceptor/usePropsHandler";import{cnSelect}from"../SelectComponentsCanary/cnSelect";import{defaultlabelForCreate,defaultLabelForEmptyItems,defaultlabelForNotFound,getInputWidth}from"../SelectComponentsCanary/helpers";import{SelectContainer}from"../SelectComponentsCanary/SelectContainer";import{SelectDropdown}from"../SelectComponentsCanary/SelectDropdown";import{defaultPropForm,defaultPropSize,defaultPropView}from"../SelectComponentsCanary/types";import{useSelect}from"../SelectComponentsCanary/useSelect";import{useForkRef}from"../../hooks/useForkRef";import{cnMixFocus}from"../../mixs/MixFocus";import{isNotNil}from"../../utils/type-guards";import{isMultipleParams,isNotMultipleParams,searchCompare,withDefaultGetters}from"./helpers";import{UserSelectItem}from"./UserSelectItem/UserSelectItem";import{UserSelectValue}from"./UserSelectValue/UserSelectValue";export var COMPONENT_NAME="UserSelect";var UserSelectRender=function(a,b){var c=useRef(null),d=useRef(null),e=useRef(null),f=useRef(null),g=usePropsHandler(COMPONENT_NAME,withDefaultGetters(a),f),h=g.placeholder,i=g.onBlur,j=g.onFocus,k=g.items,l=g.onChange,m=g.value,n=g.disabled,o=g.ariaLabel,p=g.id,q=g.isLoading,r=g.required,s=g.dropdownRef,t=void 0===s?c:s,u=g.form,v=void 0===u?defaultPropForm:u,w=g.view,x=void 0===w?defaultPropView:w,y=g.size,z=void 0===y?defaultPropSize:y,A=g.dropdownClassName,B=g.searchValue,C=g.name,D=g.groups,E=void 0===D?[]:D,F=g.getItemKey,G=g.getItemLabel,H=g.getItemSubLabel,I=g.getItemAvatarUrl,J=g.getItemGroupKey,K=g.getItemDisabled,L=g.getGroupKey,M=g.getGroupLabel,N=g.renderItem,O=g.renderValue,P=g.onCreate,Q=g.inputRef,R=g.labelForNotFound,S=void 0===R?defaultlabelForNotFound:R,T=g.labelForCreate,U=void 0===T?defaultlabelForCreate:T,V=g.labelForEmptyItems,W=void 0===V?defaultLabelForEmptyItems:V,X=g.multiple,Y=void 0!==X&&X,Z=g.searchFunction,$=g.style,_=g.dropdownForm,aa=void 0===_?"default":_,ba=g.onScrollToBottom,ca=g.onSearchValueChange,da=g.onDropdownOpen,ea=g.virtualScroll,fa=g.dropdownOpen,ga=g.ignoreOutsideClicksRefs,ha=_objectWithoutProperties(g,_excluded),ia=useSelect({items:k,groups:E,value:m,onChange:l,dropdownRef:t,controlRef:f,disabled:n,getItemLabel:G,getItemKey:F,getGroupKey:L,getItemGroupKey:J,searchValue:B,getItemDisabled:K,multiple:Y,onBlur:i,onFocus:j,onCreate:P,searchFunction:Z||function searchFunctionDefault(a,b){var c=searchCompare(b,G(a));return c?c:searchCompare(b,H(a))},onSearchValueChange:ca,onDropdownOpen:da,dropdownOpen:fa,ignoreOutsideClicksRefs:ga}),ja=ia.getKeyProps,ka=ia.getOptionProps,la=ia.isOpen,ma=ia.visibleItems,na=ia.isFocused,oa=ia.handleInputFocus,pa=ia.handleInputBlur,qa=ia.handleToggleDropdown,ra=ia.inputRef,sa=ia.handleInputClick,ta=ia.handleInputChange,ua=ia.searchValue,va=ia.clearValue,wa=ia.getHandleRemoveValue,xa=ia.notFound,ya=ia.hasItems,za=ia.optionsRefs,Aa=p?"".concat(p,"-input"):p,Ba=O||function renderValueDefault(a){var b=a.item,c=a.handleRemove;return React.createElement(UserSelectValue,{label:G(b),subLabel:H(b),avatarUrl:I(b),key:F(b),size:z,handleRemove:c,multiple:Y,disabled:n||K(b)})},Ca=useForkRef([ra,Q]),Da=function(){var b=Y?getInputWidth(d,e):void 0;return React.createElement(React.Fragment,null,isMultipleParams(a)&&Array.isArray(a.value)&&a.value.map(function(a){return Ba({item:a,handleRemove:wa(a)})}),isNotMultipleParams(a)&&isNotNil(a.value)&&Ba({item:a.value}),(!isNotNil(m)||Array.isArray(m)&&0===m.length)&&!ua&&h&&React.createElement("span",{className:cnSelect("Placeholder"),title:"placeholder"},h),React.createElement("input",Object.assign({},ja(),{type:"text",name:C,id:Aa,onFocus:oa,onBlur:pa,"aria-label":o,onChange:ta,ref:Ca,className:cnSelect("Input",{size:z,hide:!Y&&isNotNil(m),multiple:Y,isUserSelect:!0}),value:ua,style:{width:b}})))};return React.createElement(React.Fragment,null,React.createElement(SelectContainer,Object.assign({focused:na,disabled:n,size:z,required:r,id:Aa,view:x,type:"userselect",form:v,multiple:!0,ref:b,style:$},ha),React.createElement("div",{className:cnSelect("Control",{hasInput:!0}),ref:f,"aria-expanded":la,"aria-haspopup":"listbox",id:p},React.createElement("div",{className:cnSelect("ControlInner"),onClick:sa,role:"button",ref:d,"aria-hidden":"true"},React.createElement("div",{className:cnSelect("ControlValueContainer")},Y?React.createElement("div",{className:cnSelect("ControlValue",{isUserSelect:!0})},Da()):Da())),React.createElement("span",{className:cnSelect("Indicators")},isNotNil(m)&&React.createElement("button",{type:"button",onClick:va,tabIndex:-1,className:cnSelect("ClearIndicator",[cnMixFocus()])},React.createElement(IconClose,{size:"xs",className:cnSelect("ClearIndicatorIcon")})),React.createElement("span",{className:cnSelect("Delimiter")}),React.createElement("button",{type:"button",className:cnSelect("IndicatorsDropdown"),tabIndex:-1,onClick:qa},React.createElement(IconSelect,{size:"xs",className:cnSelect("DropdownIndicatorIcon")})))),React.createElement("div",{className:cnSelect("HelperInputFakeElement"),ref:e},ua)),React.createElement(SelectDropdown,{isOpen:la,size:z,controlRef:f,getOptionProps:ka,dropdownRef:t,form:aa,isLoading:q,className:A,renderItem:N||function renderItemDefault(a){var b=a.item,c=a.active,d=a.hovered,e=a.onClick,f=a.onMouseEnter,g=a.ref;return React.createElement(UserSelectItem,{label:G(b),subLabel:H(b),avatarUrl:I(b),active:c,hovered:d,size:z,indent:"round"===aa?"increased":"normal",onClick:e,onMouseEnter:f,disable:K(b),multiple:Y,ref:g})},getGroupLabel:M,visibleItems:ma,labelForNotFound:S,labelForCreate:U,notFound:xa,hasItems:ya,labelForEmptyItems:W,itemsRefs:za,onScrollToBottom:ba,virtualScroll:ea,style:"number"==typeof(null===$||void 0===$?void 0:$.zIndex)?{zIndex:$.zIndex+1}:void 0}))};export var UserSelect=forwardRef(UserSelectRender);export*from"./helpers";
|
|
2
2
|
//# sourceMappingURL=UserSelectCanary.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserSelectCanary.js","names":["IconClose","IconSelect","React","forwardRef","useRef","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","defaultPropForm","defaultPropSize","defaultPropView","useSelect","useForkRef","cnMixFocus","isMultipleParams","isNotMultipleParams","searchCompare","withDefaultGetters","UserSelectItem","UserSelectValue","COMPONENT_NAME","UserSelectRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValueProp","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm","onScrollToBottom","onSearchValueChange","onDropdownOpen","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs","restProps","searchFunctionDefault","item","searchOfLabel","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","optionsRefs","inputId","renderValueDefault","handleRemove","inputRefForRender","renderControlValue","width","Array","isArray","map","length","hide","isUserSelect","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","UserSelect"],"sources":["../../../../../src/components/UserSelectCanary/UserSelectCanary.tsx"],"sourcesContent":["import '##/components/SelectComponentsCanary/Select.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { cnSelect } from '##/components/SelectComponentsCanary/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '##/components/SelectComponentsCanary/helpers';\nimport { SelectContainer } from '##/components/SelectComponentsCanary/SelectContainer';\nimport { SelectDropdown } from '##/components/SelectComponentsCanary/SelectDropdown';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '##/components/SelectComponentsCanary/types';\nimport { useSelect } from '##/components/SelectComponentsCanary/useSelect';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixFocus } from '##/mixs/MixFocus';\n\nimport {\n DefaultGroup,\n DefaultItem,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n searchCompare,\n UserSelectComponent,\n UserSelectProps,\n withDefaultGetters,\n} from './helpers';\nimport { UserSelectItem } from './UserSelectItem/UserSelectItem';\nimport { UserSelectValue } from './UserSelectValue/UserSelectValue';\n\nexport const COMPONENT_NAME = 'UserSelect' as const;\n\nconst UserSelectRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n isLoading,\n required,\n dropdownRef = defaultDropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n searchValue: searchValueProp,\n name,\n groups = [],\n getItemKey,\n getItemLabel,\n getItemSubLabel,\n getItemAvatarUrl,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n multiple = false,\n searchFunction,\n style,\n dropdownForm = 'default',\n onScrollToBottom,\n onSearchValueChange,\n onDropdownOpen,\n virtualScroll,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n ...restProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string): boolean => {\n const searchOfLabel = searchCompare(searchValue, getItemLabel(item));\n\n if (searchOfLabel) {\n return searchOfLabel;\n }\n\n return searchCompare(searchValue, getItemSubLabel(item));\n };\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n optionsRefs,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n dropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n getItemGroupKey,\n searchValue: searchValueProp,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction: searchFunction || searchFunctionDefault,\n onSearchValueChange,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter, ref } = props;\n\n return (\n <UserSelectItem\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n active={active}\n hovered={hovered}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disable={getItemDisabled(item)}\n multiple={multiple}\n ref={ref}\n />\n );\n };\n\n const renderValueDefault: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <UserSelectValue\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n key={getItemKey(item)}\n size={size}\n handleRemove={handleRemove}\n multiple={multiple}\n disabled={disabled || getItemDisabled(item)}\n />\n );\n };\n\n const renderValue = renderValueProp || renderValueDefault;\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n props.value &&\n renderValue({ item: props.value })}\n {(!value || (Array.isArray(value) && value.length === 0)) &&\n !searchValue &&\n placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n <input\n {...getKeyProps()}\n type=\"text\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleInputChange}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && !!value,\n multiple,\n isUserSelect: true,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n required={required}\n id={inputId}\n view={view}\n type=\"userselect\"\n form={form}\n multiple\n ref={ref}\n style={style}\n {...restProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {multiple ? (\n <div\n className={cnSelect('ControlValue', { isUserSelect: true })}\n >\n {renderControlValue()}\n </div>\n ) : (\n renderControlValue()\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {value && (\n <button\n type=\"button\"\n onClick={clearValue}\n tabIndex={-1}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClose\n size=\"xs\"\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n isLoading={isLoading}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n notFound={notFound}\n hasItems={hasItems}\n labelForEmptyItems={labelForEmptyItems}\n itemsRefs={optionsRefs}\n onScrollToBottom={onScrollToBottom}\n virtualScroll={virtualScroll}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const UserSelect = forwardRef(UserSelectRender) as UserSelectComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UserSelectCanary.js","names":["IconClose","IconSelect","React","forwardRef","useRef","usePropsHandler","cnSelect","defaultlabelForCreate","defaultLabelForEmptyItems","defaultlabelForNotFound","getInputWidth","SelectContainer","SelectDropdown","defaultPropForm","defaultPropSize","defaultPropView","useSelect","useForkRef","cnMixFocus","isNotNil","isMultipleParams","isNotMultipleParams","searchCompare","withDefaultGetters","UserSelectItem","UserSelectValue","COMPONENT_NAME","UserSelectRender","props","ref","defaultDropdownRef","controlInnerRef","helperInputFakeElement","controlRef","placeholder","onBlur","onFocus","items","onChange","value","disabled","ariaLabel","id","isLoading","required","dropdownRef","form","view","size","dropdownClassName","searchValueProp","searchValue","name","groups","getItemKey","getItemLabel","getItemSubLabel","getItemAvatarUrl","getItemGroupKey","getItemDisabled","getGroupKey","getGroupLabel","renderItem","renderValueProp","renderValue","onCreate","inputRefProp","inputRef","labelForNotFound","labelForCreate","labelForEmptyItems","multiple","searchFunction","style","dropdownForm","onScrollToBottom","onSearchValueChange","onDropdownOpen","virtualScroll","dropdownOpen","ignoreOutsideClicksRefs","restProps","searchFunctionDefault","item","searchOfLabel","getKeyProps","getOptionProps","isOpen","visibleItems","isFocused","handleInputFocus","handleInputBlur","handleToggleDropdown","handleInputClick","handleInputChange","clearValue","getHandleRemoveValue","notFound","hasItems","optionsRefs","inputId","renderValueDefault","handleRemove","inputRefForRender","renderControlValue","width","Array","isArray","map","length","hide","isUserSelect","hasInput","renderItemDefault","active","hovered","onClick","onMouseEnter","zIndex","UserSelect"],"sources":["../../../../../src/components/UserSelectCanary/UserSelectCanary.tsx"],"sourcesContent":["import '##/components/SelectComponentsCanary/Select.css';\n\nimport { IconClose } from '@consta/icons/IconClose';\nimport { IconSelect } from '@consta/icons/IconSelect';\nimport React, { forwardRef, useRef } from 'react';\n\nimport { usePropsHandler } from '##/components/EventInterceptor/usePropsHandler';\nimport { cnSelect } from '##/components/SelectComponentsCanary/cnSelect';\nimport {\n defaultlabelForCreate,\n defaultLabelForEmptyItems,\n defaultlabelForNotFound,\n getInputWidth,\n} from '##/components/SelectComponentsCanary/helpers';\nimport { SelectContainer } from '##/components/SelectComponentsCanary/SelectContainer';\nimport { SelectDropdown } from '##/components/SelectComponentsCanary/SelectDropdown';\nimport {\n defaultPropForm,\n defaultPropSize,\n defaultPropView,\n} from '##/components/SelectComponentsCanary/types';\nimport { useSelect } from '##/components/SelectComponentsCanary/useSelect';\nimport { useForkRef } from '##/hooks/useForkRef';\nimport { cnMixFocus } from '##/mixs/MixFocus';\nimport { isNotNil } from '##/utils/type-guards';\n\nimport {\n DefaultGroup,\n DefaultItem,\n isMultipleParams,\n isNotMultipleParams,\n PropRenderItem,\n PropRenderValue,\n searchCompare,\n UserSelectComponent,\n UserSelectProps,\n withDefaultGetters,\n} from './helpers';\nimport { UserSelectItem } from './UserSelectItem/UserSelectItem';\nimport { UserSelectValue } from './UserSelectValue/UserSelectValue';\n\nexport const COMPONENT_NAME = 'UserSelect' as const;\n\nconst UserSelectRender = <\n ITEM = DefaultItem,\n GROUP = DefaultGroup,\n MULTIPLE extends boolean = false,\n>(\n props: UserSelectProps<ITEM, GROUP, MULTIPLE>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const defaultDropdownRef = useRef<HTMLDivElement | null>(null);\n const controlInnerRef = useRef<HTMLDivElement>(null);\n const helperInputFakeElement = useRef<HTMLDivElement>(null);\n const controlRef = useRef<HTMLDivElement | null>(null);\n\n const {\n placeholder,\n onBlur,\n onFocus,\n items,\n onChange,\n value,\n disabled,\n ariaLabel,\n id,\n isLoading,\n required,\n dropdownRef = defaultDropdownRef,\n form = defaultPropForm,\n view = defaultPropView,\n size = defaultPropSize,\n dropdownClassName,\n searchValue: searchValueProp,\n name,\n groups = [],\n getItemKey,\n getItemLabel,\n getItemSubLabel,\n getItemAvatarUrl,\n getItemGroupKey,\n getItemDisabled,\n getGroupKey,\n getGroupLabel,\n renderItem,\n renderValue: renderValueProp,\n onCreate,\n inputRef: inputRefProp,\n labelForNotFound = defaultlabelForNotFound,\n labelForCreate = defaultlabelForCreate,\n labelForEmptyItems = defaultLabelForEmptyItems,\n multiple = false,\n searchFunction,\n style,\n dropdownForm = 'default',\n onScrollToBottom,\n onSearchValueChange,\n onDropdownOpen,\n virtualScroll,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n ...restProps\n } = usePropsHandler(COMPONENT_NAME, withDefaultGetters(props), controlRef);\n\n const searchFunctionDefault = (item: ITEM, searchValue: string): boolean => {\n const searchOfLabel = searchCompare(searchValue, getItemLabel(item));\n\n if (searchOfLabel) {\n return searchOfLabel;\n }\n\n return searchCompare(searchValue, getItemSubLabel(item));\n };\n\n const {\n getKeyProps,\n getOptionProps,\n isOpen,\n visibleItems,\n isFocused,\n handleInputFocus,\n handleInputBlur,\n handleToggleDropdown,\n inputRef,\n handleInputClick,\n handleInputChange,\n searchValue,\n clearValue,\n getHandleRemoveValue,\n notFound,\n hasItems,\n optionsRefs,\n } = useSelect({\n items,\n groups,\n value,\n onChange,\n dropdownRef,\n controlRef,\n disabled,\n getItemLabel,\n getItemKey,\n getGroupKey,\n getItemGroupKey,\n searchValue: searchValueProp,\n getItemDisabled,\n multiple,\n onBlur,\n onFocus,\n onCreate,\n searchFunction: searchFunction || searchFunctionDefault,\n onSearchValueChange,\n onDropdownOpen,\n dropdownOpen,\n ignoreOutsideClicksRefs,\n });\n\n const inputId = id ? `${id}-input` : id;\n\n const renderItemDefault: PropRenderItem<ITEM> = (props) => {\n const { item, active, hovered, onClick, onMouseEnter, ref } = props;\n\n return (\n <UserSelectItem\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n active={active}\n hovered={hovered}\n size={size}\n indent={dropdownForm === 'round' ? 'increased' : 'normal'}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n disable={getItemDisabled(item)}\n multiple={multiple}\n ref={ref}\n />\n );\n };\n\n const renderValueDefault: PropRenderValue<ITEM> = ({\n item,\n handleRemove,\n }) => {\n return (\n <UserSelectValue\n label={getItemLabel(item)}\n subLabel={getItemSubLabel(item)}\n avatarUrl={getItemAvatarUrl(item)}\n key={getItemKey(item)}\n size={size}\n handleRemove={handleRemove}\n multiple={multiple}\n disabled={disabled || getItemDisabled(item)}\n />\n );\n };\n\n const renderValue = renderValueProp || renderValueDefault;\n\n const inputRefForRender = useForkRef([inputRef, inputRefProp]);\n\n const renderControlValue = () => {\n const width = multiple\n ? getInputWidth(controlInnerRef, helperInputFakeElement)\n : undefined;\n return (\n <>\n {isMultipleParams(props) &&\n Array.isArray(props.value) &&\n props.value.map((item) =>\n renderValue({ item, handleRemove: getHandleRemoveValue(item) }),\n )}\n {isNotMultipleParams(props) &&\n isNotNil(props.value) &&\n renderValue({ item: props.value })}\n {(!isNotNil(value) || (Array.isArray(value) && value.length === 0)) &&\n !searchValue &&\n placeholder && (\n <span className={cnSelect('Placeholder')} title=\"placeholder\">\n {placeholder}\n </span>\n )}\n <input\n {...getKeyProps()}\n type=\"text\"\n name={name}\n id={inputId}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n aria-label={ariaLabel}\n onChange={handleInputChange}\n ref={inputRefForRender}\n className={cnSelect('Input', {\n size,\n hide: !multiple && isNotNil(value),\n multiple,\n isUserSelect: true,\n })}\n value={searchValue}\n style={{ width }}\n />\n </>\n );\n };\n\n return (\n <>\n <SelectContainer\n focused={isFocused}\n disabled={disabled}\n size={size}\n required={required}\n id={inputId}\n view={view}\n type=\"userselect\"\n form={form}\n multiple\n ref={ref}\n style={style}\n {...restProps}\n >\n <div\n className={cnSelect('Control', { hasInput: true })}\n ref={controlRef}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n id={id}\n >\n <div\n className={cnSelect('ControlInner')}\n onClick={handleInputClick}\n role=\"button\"\n ref={controlInnerRef}\n aria-hidden=\"true\"\n >\n <div className={cnSelect('ControlValueContainer')}>\n {multiple ? (\n <div\n className={cnSelect('ControlValue', { isUserSelect: true })}\n >\n {renderControlValue()}\n </div>\n ) : (\n renderControlValue()\n )}\n </div>\n </div>\n <span className={cnSelect('Indicators')}>\n {isNotNil(value) && (\n <button\n type=\"button\"\n onClick={clearValue}\n tabIndex={-1}\n className={cnSelect('ClearIndicator', [cnMixFocus()])}\n >\n <IconClose\n size=\"xs\"\n className={cnSelect('ClearIndicatorIcon')}\n />\n </button>\n )}\n <span className={cnSelect('Delimiter')} />\n <button\n type=\"button\"\n className={cnSelect('IndicatorsDropdown')}\n tabIndex={-1}\n onClick={handleToggleDropdown}\n >\n <IconSelect\n size=\"xs\"\n className={cnSelect('DropdownIndicatorIcon')}\n />\n </button>\n </span>\n </div>\n <div\n className={cnSelect('HelperInputFakeElement')}\n ref={helperInputFakeElement}\n >\n {searchValue}\n </div>\n </SelectContainer>\n <SelectDropdown\n isOpen={isOpen}\n size={size}\n controlRef={controlRef}\n getOptionProps={getOptionProps}\n dropdownRef={dropdownRef}\n form={dropdownForm}\n isLoading={isLoading}\n className={dropdownClassName}\n renderItem={renderItem || renderItemDefault}\n getGroupLabel={getGroupLabel}\n visibleItems={visibleItems}\n labelForNotFound={labelForNotFound}\n labelForCreate={labelForCreate}\n notFound={notFound}\n hasItems={hasItems}\n labelForEmptyItems={labelForEmptyItems}\n itemsRefs={optionsRefs}\n onScrollToBottom={onScrollToBottom}\n virtualScroll={virtualScroll}\n style={\n typeof style?.zIndex === 'number'\n ? { zIndex: style.zIndex + 1 }\n : undefined\n }\n />\n </>\n );\n};\n\nexport const UserSelect = forwardRef(UserSelectRender) as UserSelectComponent;\n\nexport * from './helpers';\n"],"mappings":"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"}
|