UNPKG

monday-ui-react-core

Version:

Official monday.com UI resources for application development in React.js

3 lines (2 loc) 3.88 kB
import{defineProperty as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{__rest as t}from"../../../../_virtual/_tslib.js";import o,{useMemo as i}from"react";import n from"classnames";import r from"../components/ComboboxOption/ComboboxOption.js";import s from"../components/ComboboxCategory/ComboboxCategory.js";import a from"../../Divider/Divider.js";import{COMBOBOX_DIVIDER_ITEM as c,COMBOBOX_CATEGORY_ITEM as l,COMBOBOX_OPTION_ITEM as m}from"../components/ComboboxConstants.js";import d from"../../../hooks/useActiveDescendantListFocus/index.js";import{getOptionsByCategories as u}from"../ComboboxService.js";import p from"../components/ComboboxItems/ComboboxItems.module.scss.js";import g from"./ComboboxHelpers.module.scss.js";var h=17,v=32;function f(t){var o=t.categories,r=t.options,s=t.filterValue,a=t.withCategoriesDivider,c=t.optionLineHeight;return i((function(){var t=[],i=[],l=new Map;if(o){var m=u(r,o,s),d=0;Object.keys(m).forEach((function(r,s){var u=a&&0!==s;u&&t.push(I({categoryId:r}));var g=m[r].length>0,h=0===s,v=b({categoryId:r,categoryData:o[r],withDivider:u,className:n(e(e(e({},p.categoryWithOptions,g),p.categoryWithoutOptions,!g),p.firstCategory,h))});t.push(v),l.set(r,v),m[r].forEach((function(e){var o=C({height:c,option:e,index:d,categoryId:v.id});l.set(o.id,o),t.push(o),i.push(e),d++}))}))}else i=r,t=r.map((function(e,t){return C({height:c,option:e,index:t})}));return{items:t,itemsMap:l,selectableItems:i}}),[o,r,s,a,c])}function y(e){var t=e.defaultVisualFocusFirstIndex,o=e.inputRef,n=e.onClick,r=e.isChildSelectable,s=e.options,a=e.getOptionId,c=i((function(){return s.map((function(e,t){return a(null==e?void 0:e.id,t)}))}),[a,s]),l=d({defaultVisualFocusFirstIndex:t,focusedElementRef:o,focusedElementRole:d.roles.COMBOBOX,itemsIds:c,onItemClick:n,isItemSelectable:r,isIgnoreSpaceAsItemSelection:!0});return{visualFocusItemIndex:l.visualFocusItemIndex,visualFocusItemId:l.visualFocusItemId,onOptionClick:l.onItemClickCallback}}function I(e){return{type:c,height:h,id:"".concat(e.categoryId,"-divider")}}function b(e){return{height:v,type:l,category:e.categoryData,id:e.categoryId,withDivider:e.withDivider,className:e.className}}function C(e){var t=e.option,o=e.index;return{type:m,height:e.height,belongToCategory:!0,index:o,option:t,id:t.id||""+o,optionRenderer:e.optionRenderer,isActive:e.isActive,optionLineHeight:e.optionLineHeight,shouldScrollToSelectedItem:e.shouldScrollToSelectedItem,categoryId:e.categoryId}}function x(e){var i,r,s=e.item,a=e.style,d=e.optionEvents,u=e.optionRenderData,p=e.isVirtualized,h=e.stickyCategories,v=s.type,f=t(s,["type"]);switch(v){case c:r=O({id:f.id,height:f.height});break;case l:r=k({id:f.id,category:f.category,className:f.className}),h&&!p&&(i=g.sticky);break;case m:r=j(Object.assign(Object.assign(Object.assign({},f),d),u))}return o.createElement("div",{key:f.id,className:n(g.comboboxItemContainer,i),style:a},r)}function O(e){return o.createElement("div",{className:g.dividerContainer,style:{height:e.height}},o.createElement(a,{className:g.divider,key:e.id}))}function k(e){return o.createElement(s,{key:e.id,category:e.category,className:e.className})}function j(e){var t=e.index,i=e.onOptionEnter;return o.createElement(r,{className:e.className,index:t,key:e.id,option:e.option,optionRenderer:e.optionRenderer,scrollRef:e.scrollRef,isActive:e.activeItemIndex===t,visualFocus:t===e.visualFocusItemIndex,onOptionClick:e.onOptionClick,onOptionHover:i,onOptionLeave:e.onOptionLeave,onOptionEnter:i,optionLineHeight:e.optionLineHeight,shouldScrollWhenActive:e.shouldScrollToSelectedItem})}export{k as categoryItemRenderer,x as comboboxItemRenderer,b as createCategoryItemObject,I as createDividerItemObject,C as createOptionItemObject,O as dividerItemRenderer,j as optionItemRenderer,f as useItemsData,y as useKeyboardNavigation}; //# sourceMappingURL=ComboboxHelpers.js.map