@consta/uikit 4.30.0 → 4.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/MixFlex/index.d.ts +1 -0
- package/MixFlex/index.js +1 -0
- 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/ContextMenu/ContextMenuLevel/ContextMenuLevel.css +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevel/ContextMenuLevel.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.d.ts +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevelWrapper/ContextMenuLevelWrapper.js.map +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevels/ContextMenuLevels.js +1 -1
- package/__internal__/src/components/ContextMenu/ContextMenuLevels/ContextMenuLevels.js.map +1 -1
- package/__internal__/src/components/ContextMenu/helpers.d.ts +4 -2
- package/__internal__/src/components/ContextMenu/types.d.ts +3 -3
- package/__internal__/src/components/ContextMenu/types.js.map +1 -1
- package/__internal__/src/components/ContextMenu/useMenuNavigation.d.ts +23 -0
- package/__internal__/src/components/ContextMenu/useMenuNavigation.js +2 -0
- package/__internal__/src/components/ContextMenu/useMenuNavigation.js.map +1 -0
- package/__internal__/src/components/ListCanary/ListItem/ListItem.css +1 -1
- package/__internal__/src/components/ListCanary/ListItem/ListItem.js +1 -1
- package/__internal__/src/components/ListCanary/ListItem/ListItem.js.map +1 -1
- package/__internal__/src/components/Responses/Responses.d.ts +1 -1
- package/__internal__/src/components/Responses/Responses.js.map +1 -1
- package/__internal__/src/components/Responses/createResponses.d.ts +1 -1
- package/__internal__/src/components/Responses/createResponses.js.map +1 -1
- package/__internal__/src/components/Responses403/Responses403.js +1 -1
- package/__internal__/src/components/Responses403/Responses403.js.map +1 -1
- package/__internal__/src/components/Responses403/index.d.ts +1 -0
- package/__internal__/src/components/Responses403/index.js +1 -1
- package/__internal__/src/components/Responses403/index.js.map +1 -1
- package/__internal__/src/components/Responses404/Responses404.js +1 -1
- package/__internal__/src/components/Responses404/Responses404.js.map +1 -1
- package/__internal__/src/components/Responses404/index.d.ts +1 -0
- package/__internal__/src/components/Responses404/index.js +1 -1
- package/__internal__/src/components/Responses404/index.js.map +1 -1
- package/__internal__/src/components/Responses500/Responses500.js +1 -1
- package/__internal__/src/components/Responses500/Responses500.js.map +1 -1
- package/__internal__/src/components/Responses500/index.d.ts +1 -0
- package/__internal__/src/components/Responses500/index.js +1 -1
- package/__internal__/src/components/Responses500/index.js.map +1 -1
- package/__internal__/src/components/Responses503/Responses503.js +1 -1
- package/__internal__/src/components/Responses503/Responses503.js.map +1 -1
- package/__internal__/src/components/Responses503/index.d.ts +1 -0
- package/__internal__/src/components/Responses503/index.js +1 -1
- package/__internal__/src/components/Responses503/index.js.map +1 -1
- package/__internal__/src/components/ResponsesConnectionError/ResponsesConnectionError.js +1 -1
- package/__internal__/src/components/ResponsesConnectionError/ResponsesConnectionError.js.map +1 -1
- package/__internal__/src/components/ResponsesConnectionError/index.d.ts +1 -0
- package/__internal__/src/components/ResponsesConnectionError/index.js +1 -1
- package/__internal__/src/components/ResponsesConnectionError/index.js.map +1 -1
- package/__internal__/src/components/ResponsesDeleted/ResponsesDeleted.js +1 -1
- package/__internal__/src/components/ResponsesDeleted/ResponsesDeleted.js.map +1 -1
- package/__internal__/src/components/ResponsesDeleted/index.d.ts +1 -0
- package/__internal__/src/components/ResponsesDeleted/index.js +1 -1
- package/__internal__/src/components/ResponsesDeleted/index.js.map +1 -1
- package/__internal__/src/components/ResponsesEmptyBox/ResponsesEmptyBox.js +1 -1
- package/__internal__/src/components/ResponsesEmptyBox/ResponsesEmptyBox.js.map +1 -1
- package/__internal__/src/components/ResponsesEmptyBox/index.d.ts +1 -0
- package/__internal__/src/components/ResponsesEmptyBox/index.js +1 -1
- package/__internal__/src/components/ResponsesEmptyBox/index.js.map +1 -1
- package/__internal__/src/components/ResponsesEmptyPockets/ResponsesEmptyPockets.js +1 -1
- package/__internal__/src/components/ResponsesEmptyPockets/ResponsesEmptyPockets.js.map +1 -1
- package/__internal__/src/components/ResponsesEmptyPockets/index.d.ts +1 -0
- package/__internal__/src/components/ResponsesEmptyPockets/index.js +1 -1
- package/__internal__/src/components/ResponsesEmptyPockets/index.js.map +1 -1
- package/__internal__/src/components/ResponsesExit/ResponsesExit.js +1 -1
- package/__internal__/src/components/ResponsesExit/ResponsesExit.js.map +1 -1
- package/__internal__/src/components/ResponsesNothingFound/ResponsesNothingFound.js +1 -1
- package/__internal__/src/components/ResponsesNothingFound/ResponsesNothingFound.js.map +1 -1
- package/__internal__/src/components/ResponsesNothingFound/index.d.ts +1 -0
- package/__internal__/src/components/ResponsesNothingFound/index.js +1 -1
- package/__internal__/src/components/ResponsesNothingFound/index.js.map +1 -1
- package/__internal__/src/components/ResponsesSuccess/ResponsesSuccess.js +1 -1
- package/__internal__/src/components/ResponsesSuccess/ResponsesSuccess.js.map +1 -1
- package/__internal__/src/components/ResponsesSuccess/index.d.ts +1 -0
- package/__internal__/src/components/ResponsesSuccess/index.js +1 -1
- package/__internal__/src/components/ResponsesSuccess/index.js.map +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/__internal__/src/hocs/withTooltip/withTooltip.d.ts +1 -1
- package/__internal__/src/hocs/withTooltip/withTooltip.js +1 -1
- package/__internal__/src/hocs/withTooltip/withTooltip.js.map +1 -1
- package/__internal__/src/hooks/useDebounce/useDebounce.js +1 -1
- package/__internal__/src/hooks/useDebounce/useDebounce.js.map +1 -1
- package/__internal__/src/hooks/useMutableRef/useMutableRef.js +1 -1
- package/__internal__/src/hooks/useMutableRef/useMutableRef.js.map +1 -1
- package/__internal__/src/mixs/MixFlex/MixFlex.css +1 -0
- package/__internal__/src/mixs/MixFlex/MixFlex.d.ts +24 -0
- package/__internal__/src/mixs/MixFlex/MixFlex.js +2 -0
- package/__internal__/src/mixs/MixFlex/MixFlex.js.map +1 -0
- package/__internal__/src/mixs/MixFlex/index.d.ts +1 -0
- package/__internal__/src/mixs/MixFlex/index.js +2 -0
- package/__internal__/src/mixs/MixFlex/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../__internal__/src/mixs/MixFlex";
|
package/MixFlex/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../__internal__/src/mixs/MixFlex";
|
|
@@ -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":"gkBAAA,uCAEA,OAASA,SAAT,KAA0B,yBAA1B,CACA,OAASC,UAAT,KAA2B,0BAA3B,CACA,MAAOC,MAAP,EAAgBC,UAAhB,CAA4BC,MAA5B,KAA0C,OAA1C,CAEA,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,CAAGxB,MAAM,CAAwB,IAAxB,CAD9B,CAEGyB,CAAe,CAAGzB,MAAM,CAAiB,IAAjB,CAF3B,CAGG0B,CAAsB,CAAG1B,MAAM,CAAiB,IAAjB,CAHlC,CAIG2B,CAAU,CAAG3B,MAAM,CAAwB,IAAxB,CAJtB,GA8CCI,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,EACCA,CAAK,CAACW,KADP,EAECsB,EAAW,CAAC,CAAE+B,IAAI,CAAEhE,CAAK,CAACW,KAAd,CAAD,CARf,CASG,CAAC,CAACA,CAAD,EAAW+D,KAAK,CAACC,OAAN,CAAchE,CAAd,GAAyC,CAAjB,GAAAA,CAAK,CAACkE,MAA1C,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,EAAa,CAAC,CAACjC,CAFM,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,EACG4B,CAAK,EACJ,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,CAAG7G,UAAU,CAACsB,cAAD,CAA3B,CAEP"}
|
|
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":"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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","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
|
-
.Popover.ContextMenuLevel-Desktop{width:240px}.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entered.Popover_direction_leftStartUp,.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entered.Popover_direction_rightStartUp,.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entering.Popover_direction_leftStartUp,.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entering.Popover_direction_rightStartUp{transform:translateY(calc((var(--space-xs) + 1px)*-1))}.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entered.Popover_direction_leftStartDown,.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entered.Popover_direction_rightStartDown,.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entering.Popover_direction_leftStartDown,.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entering.Popover_direction_rightStartDown{transform:translateY(calc(var(--space-xs) + 1px))}.ContextMenuLevel-Mobile{bottom:0;left:0;position:absolute;right:0;top:0;width:240px}.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_entered,.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_entering,.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_exited,.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_exiting{pointer-events:none;transition:transform .2s,opacity .2s}.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_entered{pointer-events:all}.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_entered,.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_entering{opacity:1;transform:translate(0)}.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_exited{opacity:0;transform:translate(100%)}.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_exiting{opacity:0;transform:translate(-100%)}.ContextMenuWrapper_innerAnimation.ContextMenuWrapper_animationBack .ContextMenuLevel-Mobile_animate_exited{transform:translate(-100%)}.ContextMenuWrapper_innerAnimation.ContextMenuWrapper_animationBack .ContextMenuLevel-Mobile_animate_exiting{transform:translate(100%)}
|
|
1
|
+
.Popover.ContextMenuLevel-Desktop{width:240px}.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entered.Popover_direction_leftStartUp,.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entered.Popover_direction_rightStartUp,.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entering.Popover_direction_leftStartUp,.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entering.Popover_direction_rightStartUp{transform:translateY(calc((var(--space-xs) + 1px)*-1))}.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entered.Popover_direction_leftStartDown,.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entered.Popover_direction_rightStartDown,.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entering.Popover_direction_leftStartDown,.Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_firstLevel).Popover.ContextMenuLevel-Desktop:not(.Popover.ContextMenuLevel-Desktop_isMobile).MixPopoverAnimate_animate_entering.Popover_direction_rightStartDown{transform:translateY(calc(var(--space-xs) + 1px))}.ContextMenuLevel-Item:not(.ContextMenuLevel-Item_active):not(:focus).ListItem_interactive:hover{background:transparent}.ContextMenuLevel-Mobile{bottom:0;left:0;position:absolute;right:0;top:0;width:240px}.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_entered,.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_entering,.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_exited,.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_exiting{pointer-events:none;transition:transform .2s,opacity .2s}.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_entered{pointer-events:all}.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_entered,.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_entering{opacity:1;transform:translate(0)}.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_exited{opacity:0;transform:translate(100%)}.ContextMenuWrapper_innerAnimation .ContextMenuLevel-Mobile_animate_exiting{opacity:0;transform:translate(-100%)}.ContextMenuWrapper_innerAnimation.ContextMenuWrapper_animationBack .ContextMenuLevel-Mobile_animate_exited{transform:translate(-100%)}.ContextMenuWrapper_innerAnimation.ContextMenuWrapper_animationBack .ContextMenuLevel-Mobile_animate_exiting{transform:translate(100%)}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","items","groups","className","form","animate","levelDepth","activeItem","addLevel","deleteLevel","setHoveredParenLevel","hoveredParenLevel","sortGroup","onItemClick","isOpen","parent","isMobile","direction","possibleDirections","offset","onSetDirection","spareDirection","anchorRef","getItemLabel","getItemRightSide","getItemLeftSide","getItemSubMenu","getItemStatus","getItemDisabled","getItemKey","getItemOnClick","getItemAs","getItemAttributes","getItemGroupId","getItemLeftIcon","getItemRightIcon","getGroupLabel","getGroupId"];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}function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function e(a){throw a},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function e(a){h=!0,f=a},f:function f(){try{g||null==c["return"]||c["return"]()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}import"./ContextMenuLevel.css";import{IconArrowLeft}from"@consta/icons/IconArrowLeft";import{IconArrowRight}from"@consta/icons/IconArrowRight";import React,{forwardRef,useEffect}from"react";import{cnListBox,List,ListDivider,ListItem,mapIconSize,mapVerticalSpase}from"../../ListCanary";import{useFlag}from"../../../hooks/useFlag/useFlag";import{
|
|
1
|
+
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";var _excluded=["size","items","groups","className","form","animate","levelDepth","activeLevelDepth","activeItem","addLevel","deleteLevel","setHoveredParenLevel","hoveredParenLevel","sortGroup","onItemClick","onEsc","isOpen","parent","isMobile","direction","possibleDirections","offset","onSetDirection","spareDirection","anchorRef","getItemLabel","getItemRightSide","getItemLeftSide","getItemSubMenu","getItemStatus","getItemDisabled","getItemKey","getItemOnClick","getItemAs","getItemAttributes","getItemGroupId","getItemLeftIcon","getItemRightIcon","getGroupLabel","getGroupId"];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}function _createForOfIteratorHelper(a,b){var c="undefined"!=typeof Symbol&&a[Symbol.iterator]||a["@@iterator"];if(!c){if(Array.isArray(a)||(c=_unsupportedIterableToArray(a))||b&&a&&"number"==typeof a.length){c&&(a=c);var d=0,e=function(){};return{s:e,n:function n(){return d>=a.length?{done:!0}:{done:!1,value:a[d++]}},e:function e(a){throw a},f:e}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f,g=!0,h=!1;return{s:function s(){c=c.call(a)},n:function n(){var a=c.next();return g=a.done,a},e:function e(a){h=!0,f=a},f:function f(){try{g||null==c["return"]||c["return"]()}finally{if(h)throw f}}}}function _unsupportedIterableToArray(a,b){if(a){if("string"==typeof a)return _arrayLikeToArray(a,b);var c=Object.prototype.toString.call(a).slice(8,-1);return"Object"===c&&a.constructor&&(c=a.constructor.name),"Map"===c||"Set"===c?Array.from(a):"Arguments"===c||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?_arrayLikeToArray(a,b):void 0}}function _arrayLikeToArray(a,b){(null==b||b>a.length)&&(b=a.length);for(var c=0,d=Array(b);c<b;c++)d[c]=a[c];return d}import"./ContextMenuLevel.css";import{IconArrowLeft}from"@consta/icons/IconArrowLeft";import{IconArrowRight}from"@consta/icons/IconArrowRight";import React,{forwardRef,useEffect,useMemo}from"react";import{cnListBox,List,ListDivider,ListItem,mapIconSize,mapVerticalSpase}from"../../ListCanary";import{useFlag}from"../../../hooks/useFlag/useFlag";import{useForkRef}from"../../../hooks/useForkRef";import{cnMixPopoverAnimate}from"../../../mixs/MixPopoverAnimate";import{cnMixSpace}from"../../../mixs/MixSpace";import{cn}from"../../../utils/bem";import{ContextMenuLevelWrapper}from"../ContextMenuLevelWrapper";import{contextMenuDefaultSize}from"../types";import{useMenuNavigation}from"../useMenuNavigation";export var cnContextMenuLevel=cn("ContextMenuLevel");var timers=[];export function clearTimers(){var a,b=_createForOfIteratorHelper(timers);try{for(b.s();!(a=b.n()).done;){var c=a.value;clearTimeout(c)}}catch(a){b.e(a)}finally{b.f()}timers=[]}var closeDelay=300,ContextMenuLevelRender=function(a,b){var c=a.size,d=void 0===c?contextMenuDefaultSize:c,f=a.items,g=a.groups,h=a.className,i=a.form,j=void 0===i?"default":i,k=a.animate,l=a.levelDepth,m=a.activeLevelDepth,n=a.activeItem,o=a.addLevel,p=a.deleteLevel,q=a.setHoveredParenLevel,r=a.hoveredParenLevel,s=a.sortGroup,t=a.onItemClick,u=a.onEsc,v=a.isOpen,w=a.parent,x=a.isMobile,y=a.direction,z=a.possibleDirections,A=a.offset,B=a.onSetDirection,C=a.spareDirection,D=a.anchorRef,E=a.getItemLabel,F=a.getItemRightSide,G=a.getItemLeftSide,H=a.getItemSubMenu,I=a.getItemStatus,J=a.getItemDisabled,K=a.getItemKey,L=a.getItemOnClick,M=a.getItemAs,N=a.getItemAttributes,O=a.getItemGroupId,P=a.getItemLeftIcon,Q=a.getItemRightIcon,R=a.getGroupLabel,S=a.getGroupId,T=_objectWithoutProperties(a,_excluded),U=0===l,V=useFlag(!1),W=_slicedToArray(V,2),X=W[0],Y=W[1],Z=function(a){return(K(a)||E(a)).toString()},$=function(a){var b=H(a),c=J(a);if(Array.isArray(b)&&!c){var d=Z(a);o({level:l+1,items:b,anchorRef:ha[d],activeItem:d,parent:a}),q(l+1)}else q(l)},_=useMenuNavigation({items:f,getItemSubMenu:H,addLevel:$,active:m===l,deleteLevel:function deleteLevel(){return p(l)},onEsc:function handleEscClick(a){var b;null===u||void 0===u?void 0:u(a),null===D||void 0===D||null===(b=D.current)||void 0===b?void 0:b.focus()},level:l,isMobile:x}),aa=_.refs,ba=_.onKeyDown,ca=_.activeIndex,da=_.setActiveIndex,ea=_.setDirection,fa=_.parentRef,ga=_.containerRef,ha=useMemo(function(){return f.map(function(a){return Z(a)}).reduce(function(b,a,c){return _objectSpread(_objectSpread({},b),{},_defineProperty({},a,aa[c]))},{})},[g,aa]),ia=useMemo(function(){var a=f[ca];return a?Z(a):void 0},[f,ca]),ja=x?void 0:function(a){return function(b){var c;$(a);var d=null===(c=N(a))||void 0===c?void 0:c.onMouseEnter;da(f.indexOf(a)),null===d||void 0===d?void 0:d(b)}},ka=L?function(a){return function(b){var c;null===(c=L(a))||void 0===c?void 0:c({e:b,item:a})}}:void 0;return useEffect(function(){return 0!==l&&!X&&r<l&&(clearTimeout(timers[l]),timers[l]=setTimeout(function(){return p(l)},closeDelay)),function(){return clearTimeout(timers[l])}},[X,r]),useEffect(function(){v||clearTimeout(timers[l])},[v]),React.createElement(ContextMenuLevelWrapper,Object.assign({anchorRef:D,className:x?cnContextMenuLevel("Mobile",{animate:k},[h]):cnContextMenuLevel("Desktop",{firstLevel:U},[cnListBox({size:d,form:j,border:!0,shadow:!0}),cnMixSpace({pV:mapVerticalSpase[d]}),cnMixPopoverAnimate({animate:k}),U?h:void 0]),possibleDirections:z,spareDirection:C,direction:y,offset:A,tabIndex:0,onKeyDown:ba,onSetDirection:function onSetDirection(a){null===B||void 0===B?void 0:B(a),ea(a)},onMouseEnter:Y.on,onMouseLeave:function onMouseLeave(){Y.off(),da(-1)},ref:useForkRef([b,ga]),isMobile:x},T),w&&React.createElement(React.Fragment,null,React.createElement(ListItem,{label:E(w),size:d,tabIndex:0,ref:fa,leftIcon:IconArrowLeft,onClick:function onClick(){return p(l)},active:-1===ca,className:cnContextMenuLevel("Item",{active:-1===ca})}),React.createElement(ListDivider,{size:d,space:{mV:mapVerticalSpase[d]}})),React.createElement(List,{size:d,items:f,getItemLabel:E,onItemClick:function onItemClick(a,b){var c=b.e;x&&($(a),da(f.indexOf(a))),null===t||void 0===t?void 0:t({item:a,e:c})},sortGroup:s?function(c,a){return s(c.key,a.key)}:void 0,getItemOnClick:ka,getItemAs:M,getItemAttributes:function getItemAttributes(a){return _objectSpread(_objectSpread({},N(a)),{},{tabIndex:0,onMouseEnter:null===ja||void 0===ja?void 0:ja(a)})},getItemGroupKey:O,getItemLeftIcon:P,getItemRightIcon:Q,getItemLeftSide:G,getItemRightSide:function getItemRightSide(a){var b=F(a);if(!H(a))return b;var c=Array.isArray(b)?b:[b];return c.push(React.createElement(IconArrowRight,{size:mapIconSize[d]})),c},getGroupKey:S,getGroupLabel:R,getItemDisabled:J,getItemStatus:I,getItemActive:function getItemActive(a){var b=Z(a);return b===n||b===ia},getItemAdditionalClassName:function getItemAdditionalClassName(a){return cnContextMenuLevel("Item",{active:Z(a)===n})},getItemRef:function getItemRef(a){return ha[Z(a)]},groups:g,innerOffset:"round"===j?"increased":"normal"}))};export var ContextMenuLevel=forwardRef(ContextMenuLevelRender);
|
|
2
2
|
//# sourceMappingURL=ContextMenuLevel.js.map
|