@vibe/core 3.0.0-alpha.5 → 3.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{slicedToArray as e,defineProperty as n,toConsumableArray as o}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{getTestId as t,ComponentDefaultTestId as r}from"../../tests/testIds.js";import i from"classnames";import{BaseSizes as a}from"../../constants/sizes.js";import s,{forwardRef as l,useRef as c,useMemo as u,useState as d,useEffect as p,useCallback as m}from"react";import f,{createFilter as O,components as v}from"react-select";import b from"react-select/async";import g from"react-select/base";import{noop as j}from"lodash-es";import C from"./components/menu/menu.js";import M from"./components/DropdownIndicator/DropdownIndicator.js";import y from"./components/option/option.js";import h from"./components/singleValue/singleValue.js";import w from"./components/ClearIndicator/ClearIndicator.js";import S from"./components/MultiValueContainer/MultiValueContainer.js";import{isClient as I}from"../../utils/ssr-utils.js";import{DROPDOWN_CHIP_COLORS as D,DROPDOWN_MENU_PLACEMENT as R,DROPDOWN_MENU_POSITION as V,ADD_AUTO_HEIGHT_COMPONENTS as P,defaultCustomStyles as W,DROPDOWN_ID as A,DROPDOWN_MENU_ID as L,DROPDOWN_MENU_ARIA_LABEL as x}from"./DropdownConstants.js";import z,{customTheme as E}from"./Dropdown.styles.js";import N from"./components/Control/Control.js";import F from"./components/menu/menu.module.scss.js";import T from"./Dropdown.module.scss.js";import{withStaticProps as B}from"../../types/withStaticProps.js";import"../../utils/colors-vars-map.js";var k=B(l((function(a,l){var O=a.className,D=a.optionWrapperClassName,R=a.singleValueWrapperClassName,V=a.dropdownMenuWrapperClassName,B=a.placeholder,k=void 0===B?"":B,H=a.disabled,G=void 0!==H&&H,K=a.readOnly,_=void 0!==K&&K,q=a.onMenuOpen,J=void 0===q?j:q,Q=a.onMenuClose,U=void 0===Q?j:Q,X=a.onFocus,Y=void 0===X?j:X,Z=a.onBlur,$=void 0===Z?j:Z,ee=a.onScroll,ne=void 0===ee?j:ee,oe=a.onMenuScrollToBottom,te=void 0===oe?j:oe,re=a.onChange,ie=void 0===re?j:re,ae=a.searchable,se=void 0===ae||ae,le=a.captureMenuScroll,ce=void 0!==le&&le,ue=a.options,de=void 0===ue?[]:ue,pe=a.defaultValue,me=a.value,fe=a.noOptionsMessage,Oe=a.openMenuOnFocus,ve=a.openMenuOnClick,be=a.clearable,ge=void 0===be||be,je=a.OptionRenderer,Ce=a.optionRenderer,Me=a.ValueRenderer,ye=a.valueRenderer,he=a.menuRenderer,we=a.menuPlacement,Se=void 0===we?"bottom":we,Ie=a.rtl,De=a.size,Re=void 0===De?"medium":De,Ve=a.asyncOptions,Pe=a.cacheOptions,We=a.defaultOptions,Ae=a.isVirtualized,Le=a.menuPortalTarget,xe=a.extraStyles,ze=void 0===xe?W:xe,Ee=a.maxMenuHeight,Ne=a.menuIsOpen,Fe=a.tabIndex,Te=void 0===Fe?"0":Fe,Be=a.id,ke=void 0===Be?A:Be,He=a.menuId,Ge=void 0===He?L:He,Ke=a.menuAriaLabel,_e=void 0===Ke?x:Ke,qe=a.autoFocus,Je=void 0!==qe&&qe,Qe=a.multi,Ue=void 0!==Qe&&Qe,Xe=a.multiline,Ye=void 0!==Xe&&Xe,Ze=a.onOptionRemove,$e=a.onOptionSelect,en=a.onClear,nn=a.onInputChange,on=void 0===nn?j:nn,tn=a.closeMenuOnSelect,rn=void 0===tn?!Ue:tn,an=a.closeMenuOnScroll,sn=void 0!==an&&an,ln=a.withMandatoryDefaultOptions,cn=void 0!==ln&&ln,un=a.isOptionSelected,dn=a.insideOverflowContainer,pn=void 0!==dn&&dn,mn=a.insideOverflowWithTransformContainer,fn=void 0!==mn&&mn,On=a.tooltipContent,vn=void 0===On?"":On,bn=a.onKeyDown,gn=void 0===bn?j:bn,jn=a.isLoading,Cn=void 0!==jn&&jn,Mn=a.loadingMessage,yn=a.ariaLabel,hn=a.tabSelectsValue,wn=void 0===hn||hn,Sn=a.popupsContainerSelector,In=a.filterOption,Dn=a.menuPosition,Rn=void 0===Dn?"absolute":Dn,Vn=a["data-testid"],Pn=a.withGroupDivider,Wn=void 0!==Pn&&Pn,An=c(),Ln=Le||Sn&&document.querySelector(Sn),xn=u((function(){return pe?Array.isArray(pe)?pe.map((function(e){return Object.assign(Object.assign({},e),{isMandatory:!0})})):Object.assign(Object.assign({},pe),{isMandatory:!0}):pe}),[pe]);g.prototype.renderLiveRegion=function(){return null};var zn=d(null),En=e(zn,2),Nn=En[0],Fn=En[1];p((function(){I()&&import("react-windowed-select").then((function(e){Fn((function(){return e.WindowedMenuList}))}))}),[]);var Tn=d(xn||[]),Bn=e(Tn,2),kn=Bn[0],Hn=Bn[1],Gn=d(""),Kn=e(Gn,2),_n=Kn[0],qn=Kn[1],Jn=Ce||je,Qn=ye||Me,Un=!!me,Xn=null!=me?me:kn,Yn=u((function(){return Array.isArray(Xn)?Xn.reduce((function(e,o){return Object.assign(Object.assign({},e),n({},o.value,o))}),{}):{}}),[Xn]),Zn=u((function(){return yn||"".concat(_?"Readonly ":""," ").concat(vn," ").concat(Array.isArray(Xn)?"Selected: ".concat(Xn.map((function(e){return e.label})).join(", ")):"Select")}),[yn,_,Xn,vn]),$n=Ue?Xn:me,eo=u((function(){var o=z({size:Re,rtl:Ie,insideOverflowContainer:pn,controlRef:An,insideOverflowWithTransformContainer:fn,withGroupDivider:Wn}),t=ze(o),r=Object.entries(t).reduce((function(t,r){var i=e(r,2),a=i[0],s=i[1];return Object.assign(Object.assign({},t),n({},a,(function(e,n){var t=o[a],r=t?t(e,n):e;return s(r,n)})))}),{});if(Ue){Ye&&P.forEach((function(e){var n=r[e];r[e]=function(e,o){return Object.assign(Object.assign({},n(e,o)),{height:"auto"})}}));var i=r.valueContainer;r.valueContainer=function(e,n){return Object.assign(Object.assign({},i(e,n)),{paddingLeft:6})}}return r}),[Re,Ie,pn,fn,ze,Ue,Ye]),no=m((function(e){return s.createElement(C,Object.assign({},e,{id:Ge,ariaLabel:_e,Renderer:he,dropdownMenuWrapperClassName:V,onScroll:ne}))}),[V,he,Ge,_e,ne]),oo=m((function(e){return s.createElement(M,Object.assign({},e,{size:Re}))}),[Re]),to=m((function(e){return s.createElement(y,Object.assign({setFocusedOptionId:qn},e,{Renderer:Jn,optionWrapperClassName:D}))}),[Jn,D,qn]),ro=m((function(e){var n=e.selectProps,o=n.focusedOptionId,t=n.menuIsOpen;return s.createElement(v.Input,Object.assign({},e,{"aria-activedescendant":o&&t?o:"",role:"combobox","aria-expanded":!_&&t,"aria-label":"Dropdown input","aria-controls":Ge}))}),[Ge,_]),io=m((function(e){return s.createElement(h,Object.assign({},e,{readOnly:_,Renderer:Qn,selectedOption:Xn[0],singleValueWrapperClassName:R}))}),[Qn,_,Xn,R]),ao=m((function(e){return s.createElement(w,Object.assign({},e,{size:Re}))}),[Re]),so=u((function(){return function(e,n){Ze&&Ze(Yn[e]);var o=Array.isArray(Xn)?Xn.filter((function(n){return n.value!==e})):Xn;ie&&ie(o,n),Hn(o)}}),[ie,Ze,Xn,Yn]),lo=u((function(){return{selectedOptions:Xn,onSelectedDelete:so,isMultiline:Ye,insideOverflowContainer:pn,insideOverflowWithTransformContainer:fn,controlRef:An,tooltipContent:vn,popupsContainerSelector:Sn,size:Re}}),[Xn,so,Ye,pn,fn,vn,Sn,Re]),co=Ve?b:f,uo=Object.assign({},Ve&&Object.assign({loadOptions:Ve,cacheOptions:Pe},We&&{defaultOptions:We})),po=Object.assign(Object.assign({},!Ve&&{options:de}),Ue&&{isMulti:!0}),mo=m((function(e){var n,o=e.target;return!(null===(n=null==o?void 0:o.parentElement)||void 0===n?void 0:n.classList.contains(F.dropdownMenuWrapper))&&(sn||pn||fn)}),[pn,fn,sn]);return s.createElement(co,Object.assign({className:i(T.dropdown,O),selectProps:lo,components:Object.assign(Object.assign({DropdownIndicator:oo,Menu:no,ClearIndicator:ao,Input:ro,Option:to,Control:N,SingleValue:io},Ue&&{MultiValue:j,ValueContainer:S}),Ae&&Nn&&{MenuList:Nn}),closeMenuOnScroll:mo,size:Re,noOptionsMessage:fe,placeholder:k,isDisabled:G,isClearable:!_&&ge,isSearchable:!_&&se,readOnly:_,"aria-readonly":_,"aria-label":Zn,"aria-details":vn,"aria-haspopup":"listbox",defaultValue:pe,value:$n,onMenuOpen:J,onMenuClose:U,onFocus:Y,onBlur:$,onMenuScrollToBottom:te,captureMenuScroll:ce,onChange:function(e,n){switch(ie&&ie(e,n),n.action){case"select-option":var t=Ue?n.option:e;$e&&$e(t),Un||Hn([].concat(o(Xn),[t]));break;case"clear":en&&en(),Un||Hn(cn?xn:[])}},onKeyDown:gn,onInputChange:on,openMenuOnFocus:Oe,openMenuOnClick:ve,focusedOptionId:_n,isRtl:Ie,styles:eo,theme:E,maxMenuHeight:Ee,menuPortalTarget:Ln,menuPlacement:Se,menuPosition:Rn,menuIsOpen:!_&&Ne,tabIndex:Te,id:ke,"data-testid":Vn||t(r.DROPDOWN,ke),autoFocus:Je,closeMenuOnSelect:rn,ref:l,withMandatoryDefaultOptions:cn,isOptionSelected:un,isLoading:Cn,loadingMessage:Mn,tabSelectsValue:wn,filterOption:In},uo,po))})),{sizes:a,chipColors:D,menuPlacements:R,menuPositions:V,createFilter:O});export{k as default};
|
|
1
|
+
import{slicedToArray as e,defineProperty as n,toConsumableArray as o}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{getTestId as t,ComponentDefaultTestId as r}from"../../tests/testIds.js";import i from"classnames";import{BaseSizes as a}from"../../constants/sizes.js";import s,{forwardRef as l,useRef as c,useMemo as u,useState as d,useEffect as p,useCallback as m}from"react";import f,{createFilter as O,components as v}from"react-select";import b from"react-select/async/dist/react-select.cjs.js";import g from"react-select/base/dist/react-select.cjs.js";import{noop as j}from"lodash-es";import C from"./components/menu/menu.js";import M from"./components/DropdownIndicator/DropdownIndicator.js";import y from"./components/option/option.js";import h from"./components/singleValue/singleValue.js";import w from"./components/ClearIndicator/ClearIndicator.js";import S from"./components/MultiValueContainer/MultiValueContainer.js";import{isClient as I}from"../../utils/ssr-utils.js";import{DROPDOWN_CHIP_COLORS as D,DROPDOWN_MENU_PLACEMENT as R,DROPDOWN_MENU_POSITION as V,ADD_AUTO_HEIGHT_COMPONENTS as P,defaultCustomStyles as W,DROPDOWN_ID as A,DROPDOWN_MENU_ID as L,DROPDOWN_MENU_ARIA_LABEL as x}from"./DropdownConstants.js";import z,{customTheme as E}from"./Dropdown.styles.js";import N from"./components/Control/Control.js";import F from"./components/menu/menu.module.scss.js";import T from"./Dropdown.module.scss.js";import{withStaticProps as B}from"../../types/withStaticProps.js";import"../../utils/colors-vars-map.js";var k=B(l((function(a,l){var O=a.className,D=a.optionWrapperClassName,R=a.singleValueWrapperClassName,V=a.dropdownMenuWrapperClassName,B=a.placeholder,k=void 0===B?"":B,H=a.disabled,G=void 0!==H&&H,K=a.readOnly,_=void 0!==K&&K,q=a.onMenuOpen,J=void 0===q?j:q,Q=a.onMenuClose,U=void 0===Q?j:Q,X=a.onFocus,Y=void 0===X?j:X,Z=a.onBlur,$=void 0===Z?j:Z,ee=a.onScroll,ne=void 0===ee?j:ee,oe=a.onMenuScrollToBottom,te=void 0===oe?j:oe,re=a.onChange,ie=void 0===re?j:re,ae=a.searchable,se=void 0===ae||ae,le=a.captureMenuScroll,ce=void 0!==le&&le,ue=a.options,de=void 0===ue?[]:ue,pe=a.defaultValue,me=a.value,fe=a.noOptionsMessage,Oe=a.openMenuOnFocus,ve=a.openMenuOnClick,be=a.clearable,ge=void 0===be||be,je=a.OptionRenderer,Ce=a.optionRenderer,Me=a.ValueRenderer,ye=a.valueRenderer,he=a.menuRenderer,we=a.menuPlacement,Se=void 0===we?"bottom":we,Ie=a.rtl,De=a.size,Re=void 0===De?"medium":De,Ve=a.asyncOptions,Pe=a.cacheOptions,We=a.defaultOptions,Ae=a.isVirtualized,Le=a.menuPortalTarget,xe=a.extraStyles,ze=void 0===xe?W:xe,Ee=a.maxMenuHeight,Ne=a.menuIsOpen,Fe=a.tabIndex,Te=void 0===Fe?"0":Fe,Be=a.id,ke=void 0===Be?A:Be,He=a.menuId,Ge=void 0===He?L:He,Ke=a.menuAriaLabel,_e=void 0===Ke?x:Ke,qe=a.autoFocus,Je=void 0!==qe&&qe,Qe=a.multi,Ue=void 0!==Qe&&Qe,Xe=a.multiline,Ye=void 0!==Xe&&Xe,Ze=a.onOptionRemove,$e=a.onOptionSelect,en=a.onClear,nn=a.onInputChange,on=void 0===nn?j:nn,tn=a.closeMenuOnSelect,rn=void 0===tn?!Ue:tn,an=a.closeMenuOnScroll,sn=void 0!==an&&an,ln=a.withMandatoryDefaultOptions,cn=void 0!==ln&&ln,un=a.isOptionSelected,dn=a.insideOverflowContainer,pn=void 0!==dn&&dn,mn=a.insideOverflowWithTransformContainer,fn=void 0!==mn&&mn,On=a.tooltipContent,vn=void 0===On?"":On,bn=a.onKeyDown,gn=void 0===bn?j:bn,jn=a.isLoading,Cn=void 0!==jn&&jn,Mn=a.loadingMessage,yn=a.ariaLabel,hn=a.tabSelectsValue,wn=void 0===hn||hn,Sn=a.popupsContainerSelector,In=a.filterOption,Dn=a.menuPosition,Rn=void 0===Dn?"absolute":Dn,Vn=a["data-testid"],Pn=a.withGroupDivider,Wn=void 0!==Pn&&Pn,An=c(),Ln=Le||Sn&&document.querySelector(Sn),xn=u((function(){return pe?Array.isArray(pe)?pe.map((function(e){return Object.assign(Object.assign({},e),{isMandatory:!0})})):Object.assign(Object.assign({},pe),{isMandatory:!0}):pe}),[pe]);g.prototype.renderLiveRegion=function(){return null};var zn=d(null),En=e(zn,2),Nn=En[0],Fn=En[1];p((function(){I()&&import("react-windowed-select").then((function(e){Fn((function(){return e.WindowedMenuList}))}))}),[]);var Tn=d(xn||[]),Bn=e(Tn,2),kn=Bn[0],Hn=Bn[1],Gn=d(""),Kn=e(Gn,2),_n=Kn[0],qn=Kn[1],Jn=Ce||je,Qn=ye||Me,Un=!!me,Xn=null!=me?me:kn,Yn=u((function(){return Array.isArray(Xn)?Xn.reduce((function(e,o){return Object.assign(Object.assign({},e),n({},o.value,o))}),{}):{}}),[Xn]),Zn=u((function(){return yn||"".concat(_?"Readonly ":""," ").concat(vn," ").concat(Array.isArray(Xn)?"Selected: ".concat(Xn.map((function(e){return e.label})).join(", ")):"Select")}),[yn,_,Xn,vn]),$n=Ue?Xn:me,eo=u((function(){var o=z({size:Re,rtl:Ie,insideOverflowContainer:pn,controlRef:An,insideOverflowWithTransformContainer:fn,withGroupDivider:Wn}),t=ze(o),r=Object.entries(t).reduce((function(t,r){var i=e(r,2),a=i[0],s=i[1];return Object.assign(Object.assign({},t),n({},a,(function(e,n){var t=o[a],r=t?t(e,n):e;return s(r,n)})))}),{});if(Ue){Ye&&P.forEach((function(e){var n=r[e];r[e]=function(e,o){return Object.assign(Object.assign({},n(e,o)),{height:"auto"})}}));var i=r.valueContainer;r.valueContainer=function(e,n){return Object.assign(Object.assign({},i(e,n)),{paddingLeft:6})}}return r}),[Re,Ie,pn,fn,ze,Ue,Ye]),no=m((function(e){return s.createElement(C,Object.assign({},e,{id:Ge,ariaLabel:_e,Renderer:he,dropdownMenuWrapperClassName:V,onScroll:ne}))}),[V,he,Ge,_e,ne]),oo=m((function(e){return s.createElement(M,Object.assign({},e,{size:Re}))}),[Re]),to=m((function(e){return s.createElement(y,Object.assign({setFocusedOptionId:qn},e,{Renderer:Jn,optionWrapperClassName:D}))}),[Jn,D,qn]),ro=m((function(e){var n=e.selectProps,o=n.focusedOptionId,t=n.menuIsOpen;return s.createElement(v.Input,Object.assign({},e,{"aria-activedescendant":o&&t?o:"",role:"combobox","aria-expanded":!_&&t,"aria-label":"Dropdown input","aria-controls":Ge}))}),[Ge,_]),io=m((function(e){return s.createElement(h,Object.assign({},e,{readOnly:_,Renderer:Qn,selectedOption:Xn[0],singleValueWrapperClassName:R}))}),[Qn,_,Xn,R]),ao=m((function(e){return s.createElement(w,Object.assign({},e,{size:Re}))}),[Re]),so=u((function(){return function(e,n){Ze&&Ze(Yn[e]);var o=Array.isArray(Xn)?Xn.filter((function(n){return n.value!==e})):Xn;ie&&ie(o,n),Hn(o)}}),[ie,Ze,Xn,Yn]),lo=u((function(){return{selectedOptions:Xn,onSelectedDelete:so,isMultiline:Ye,insideOverflowContainer:pn,insideOverflowWithTransformContainer:fn,controlRef:An,tooltipContent:vn,popupsContainerSelector:Sn,size:Re}}),[Xn,so,Ye,pn,fn,vn,Sn,Re]),co=Ve?b:f,uo=Object.assign({},Ve&&Object.assign({loadOptions:Ve,cacheOptions:Pe},We&&{defaultOptions:We})),po=Object.assign(Object.assign({},!Ve&&{options:de}),Ue&&{isMulti:!0}),mo=m((function(e){var n,o=e.target;return!(null===(n=null==o?void 0:o.parentElement)||void 0===n?void 0:n.classList.contains(F.dropdownMenuWrapper))&&(sn||pn||fn)}),[pn,fn,sn]);return s.createElement(co,Object.assign({className:i(T.dropdown,O),selectProps:lo,components:Object.assign(Object.assign({DropdownIndicator:oo,Menu:no,ClearIndicator:ao,Input:ro,Option:to,Control:N,SingleValue:io},Ue&&{MultiValue:j,ValueContainer:S}),Ae&&Nn&&{MenuList:Nn}),closeMenuOnScroll:mo,size:Re,noOptionsMessage:fe,placeholder:k,isDisabled:G,isClearable:!_&&ge,isSearchable:!_&&se,readOnly:_,"aria-readonly":_,"aria-label":Zn,"aria-details":vn,"aria-haspopup":"listbox",defaultValue:pe,value:$n,onMenuOpen:J,onMenuClose:U,onFocus:Y,onBlur:$,onMenuScrollToBottom:te,captureMenuScroll:ce,onChange:function(e,n){switch(ie&&ie(e,n),n.action){case"select-option":var t=Ue?n.option:e;$e&&$e(t),Un||Hn([].concat(o(Xn),[t]));break;case"clear":en&&en(),Un||Hn(cn?xn:[])}},onKeyDown:gn,onInputChange:on,openMenuOnFocus:Oe,openMenuOnClick:ve,focusedOptionId:_n,isRtl:Ie,styles:eo,theme:E,maxMenuHeight:Ee,menuPortalTarget:Ln,menuPlacement:Se,menuPosition:Rn,menuIsOpen:!_&&Ne,tabIndex:Te,id:ke,"data-testid":Vn||t(r.DROPDOWN,ke),autoFocus:Je,closeMenuOnSelect:rn,ref:l,withMandatoryDefaultOptions:cn,isOptionSelected:un,isLoading:Cn,loadingMessage:Mn,tabSelectsValue:wn,filterOption:In},uo,po))})),{sizes:a,chipColors:D,menuPlacements:R,menuPositions:V,createFilter:O});export{k as default};
|
|
2
2
|
//# sourceMappingURL=Dropdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.js","sources":["../../../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport { BaseSizes, SIZES_VALUES } from \"../../constants\";\nimport React, { forwardRef, useCallback, useMemo, useRef, useState, useEffect } from \"react\";\nimport Select, { InputProps, components, createFilter, ActionMeta } from \"react-select\";\nimport AsyncSelect from \"react-select/async\";\nimport BaseSelect from \"react-select/base\";\nimport { noop as NOOP } from \"lodash-es\";\nimport MenuComponent from \"./components/menu/menu\";\nimport DropdownIndicatorComponent from \"./components/DropdownIndicator/DropdownIndicator\";\nimport OptionComponent from \"./components/option/option\";\nimport SingleValueComponent from \"./components/singleValue/singleValue\";\nimport ClearIndicatorComponent from \"./components/ClearIndicator/ClearIndicator\";\nimport MultiValueContainer from \"./components/MultiValueContainer/MultiValueContainer\";\nimport { isClient } from \"../../utils/ssr-utils\";\nimport {\n ADD_AUTO_HEIGHT_COMPONENTS,\n defaultCustomStyles,\n DROPDOWN_CHIP_COLORS,\n DROPDOWN_ID,\n DROPDOWN_MENU_ARIA_LABEL,\n DROPDOWN_MENU_ID,\n DROPDOWN_MENU_PLACEMENT,\n DROPDOWN_MENU_POSITION\n} from \"./DropdownConstants\";\nimport generateBaseStyles, { customTheme } from \"./Dropdown.styles\";\nimport Control from \"./components/Control/Control\";\nimport menuStyles from \"./components/menu/menu.module.scss\";\nimport styles from \"./Dropdown.module.scss\";\nimport {\n DropdownOption,\n DropdownState,\n CustomMenuProps,\n CustomOptionProps,\n CustomSingleValueProps,\n DropdownComponentProps\n} from \"./Dropdown.types\";\nimport { VibeComponent, withStaticProps } from \"../../types\";\n\nconst Dropdown: VibeComponent<DropdownComponentProps, HTMLElement> & {\n sizes?: typeof BaseSizes;\n chipColors?: typeof DROPDOWN_CHIP_COLORS;\n menuPlacements?: typeof DROPDOWN_MENU_PLACEMENT;\n menuPositions?: typeof DROPDOWN_MENU_POSITION;\n createFilter?: typeof createFilter;\n} = forwardRef(\n (\n {\n className,\n optionWrapperClassName,\n singleValueWrapperClassName,\n dropdownMenuWrapperClassName,\n placeholder = \"\",\n disabled = false,\n readOnly = false,\n onMenuOpen = NOOP,\n onMenuClose = NOOP,\n onFocus = NOOP,\n onBlur = NOOP,\n onScroll = NOOP,\n onMenuScrollToBottom = NOOP,\n onChange: customOnChange = NOOP,\n searchable = true,\n captureMenuScroll = false,\n options = [],\n defaultValue,\n value: customValue,\n noOptionsMessage,\n openMenuOnFocus,\n openMenuOnClick,\n clearable = true,\n OptionRenderer,\n optionRenderer,\n ValueRenderer,\n valueRenderer,\n menuRenderer,\n menuPlacement = \"bottom\",\n rtl,\n size = \"medium\",\n asyncOptions,\n cacheOptions,\n defaultOptions,\n isVirtualized,\n menuPortalTarget,\n extraStyles = defaultCustomStyles,\n maxMenuHeight,\n menuIsOpen,\n tabIndex = \"0\",\n id = DROPDOWN_ID,\n menuId = DROPDOWN_MENU_ID,\n menuAriaLabel = DROPDOWN_MENU_ARIA_LABEL,\n autoFocus = false,\n multi = false,\n multiline = false,\n onOptionRemove: customOnOptionRemove,\n onOptionSelect,\n onClear,\n onInputChange = NOOP,\n closeMenuOnSelect = !multi,\n closeMenuOnScroll: customCloseMenuOnScroll = false,\n withMandatoryDefaultOptions = false,\n isOptionSelected,\n insideOverflowContainer = false,\n insideOverflowWithTransformContainer = false,\n tooltipContent = \"\",\n onKeyDown = NOOP,\n isLoading = false,\n loadingMessage,\n ariaLabel,\n tabSelectsValue = true,\n popupsContainerSelector,\n filterOption,\n menuPosition = \"absolute\",\n \"data-testid\": dataTestId,\n withGroupDivider = false\n }: DropdownComponentProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const controlRef = useRef();\n const overrideMenuPortalTarget =\n menuPortalTarget || (popupsContainerSelector && document.querySelector(popupsContainerSelector));\n const overrideDefaultValue = useMemo(() => {\n if (defaultValue) {\n return Array.isArray(defaultValue)\n ? (defaultValue as DropdownOption[]).map(df => ({ ...df, isMandatory: true }))\n : { ...(defaultValue as DropdownOption), isMandatory: true };\n }\n\n return defaultValue;\n }, [defaultValue]);\n\n BaseSelect.prototype.renderLiveRegion = (): null => {\n return null;\n };\n\n // SSR support\n const [WindowedMenuList, setWindowedMenuList] = useState(null);\n useEffect(() => {\n if (isClient()) {\n // Dynamically import the specific named export from react-windowed-select for SSR support\n import(\"react-windowed-select\").then(module => {\n setWindowedMenuList(() => module.WindowedMenuList);\n });\n }\n }, []);\n\n const [selected, setSelected] = useState(overrideDefaultValue || []);\n const [focusedOptionId, setFocusedOptionId] = useState(\"\");\n const finalOptionRenderer = optionRenderer || OptionRenderer;\n const finalValueRenderer = valueRenderer || ValueRenderer;\n const isControlled = !!customValue;\n const selectedOptions = customValue ?? selected;\n const selectedOptionsMap = useMemo(() => {\n if (Array.isArray(selectedOptions)) {\n return selectedOptions.reduce((acc, option) => ({ ...acc, [option.value]: option }), {});\n }\n return {};\n }, [selectedOptions]);\n\n const overrideAriaLabel = useMemo(() => {\n return (\n ariaLabel ||\n `${readOnly ? \"Readonly \" : \"\"} ${tooltipContent} ${\n Array.isArray(selectedOptions) ? `Selected: ${selectedOptions.map(o => o.label).join(\", \")}` : \"Select\"\n }`\n );\n }, [ariaLabel, readOnly, selectedOptions, tooltipContent]);\n const value = multi ? selectedOptions : customValue;\n\n const inlineStyles = useMemo(() => {\n // We first want to get the default stylized groups (e.g. \"container\", \"menu\").\n const baseStyles = generateBaseStyles({\n size,\n rtl,\n insideOverflowContainer,\n controlRef,\n insideOverflowWithTransformContainer,\n withGroupDivider\n });\n\n type BaseStyles = typeof baseStyles;\n\n // Then we want to run the consumer's root-level custom styles with our \"base\" override groups.\n const customStyles = extraStyles(baseStyles);\n\n // Lastly, we create a style groups object that makes sure we run each custom group with our basic overrides.\n const mergedStyles: any = Object.entries(customStyles).reduce((accumulator, [stylesGroup, stylesFn]) => {\n return {\n ...accumulator,\n [stylesGroup]: (defaultStyles: BaseStyles, state: DropdownState) => {\n const providedFn = baseStyles[stylesGroup as keyof BaseStyles];\n const provided = providedFn ? providedFn(defaultStyles, state) : defaultStyles;\n\n return stylesFn(provided, state);\n }\n };\n }, {} as BaseStyles);\n\n if (multi) {\n if (multiline) {\n ADD_AUTO_HEIGHT_COMPONENTS.forEach((component: string) => {\n const original = mergedStyles[component];\n mergedStyles[component] = (provided: BaseStyles, state: DropdownState) => ({\n ...original(provided, state),\n height: \"auto\"\n });\n });\n }\n\n const originalValueContainer = mergedStyles.valueContainer;\n mergedStyles.valueContainer = (provided: BaseStyles, state: DropdownState) => ({\n ...originalValueContainer(provided, state),\n paddingLeft: 6\n });\n }\n\n return mergedStyles;\n }, [size, rtl, insideOverflowContainer, insideOverflowWithTransformContainer, extraStyles, multi, multiline]);\n\n const Menu = useCallback(\n (props: CustomMenuProps) => (\n <MenuComponent\n {...props}\n id={menuId}\n ariaLabel={menuAriaLabel}\n Renderer={menuRenderer}\n dropdownMenuWrapperClassName={dropdownMenuWrapperClassName}\n onScroll={onScroll}\n />\n ),\n [dropdownMenuWrapperClassName, menuRenderer, menuId, menuAriaLabel, onScroll]\n );\n\n const DropdownIndicator = useCallback(\n (props: React.HTMLAttributes<HTMLElement> & { size?: SIZES_VALUES }) => (\n <DropdownIndicatorComponent {...props} size={size} />\n ),\n [size]\n );\n\n const Option = useCallback(\n (props: CustomOptionProps) => (\n <OptionComponent\n setFocusedOptionId={setFocusedOptionId}\n {...props}\n Renderer={finalOptionRenderer}\n optionWrapperClassName={optionWrapperClassName}\n />\n ),\n [finalOptionRenderer, optionWrapperClassName, setFocusedOptionId]\n );\n\n const Input = useCallback(\n (props: InputProps | any) => {\n const { focusedOptionId, menuIsOpen } = props.selectProps;\n const ariaActiveDescendant = focusedOptionId && menuIsOpen ? focusedOptionId : \"\";\n return (\n <components.Input\n {...props}\n aria-activedescendant={ariaActiveDescendant}\n role=\"combobox\"\n aria-expanded={!readOnly && menuIsOpen}\n aria-label=\"Dropdown input\"\n aria-controls={menuId}\n />\n );\n },\n [menuId, readOnly]\n );\n\n const SingleValue = useCallback(\n (props: CustomSingleValueProps) => (\n <SingleValueComponent\n {...props}\n readOnly={readOnly}\n Renderer={finalValueRenderer}\n selectedOption={selectedOptions[0]}\n singleValueWrapperClassName={singleValueWrapperClassName}\n />\n ),\n [finalValueRenderer, readOnly, selectedOptions, singleValueWrapperClassName]\n );\n\n const ClearIndicator = useCallback(\n (props: React.HTMLAttributes<HTMLElement> & { size?: SIZES_VALUES }) => (\n <ClearIndicatorComponent {...props} size={size} />\n ),\n [size]\n );\n\n const onOptionRemove = useMemo(() => {\n return function (optionValue: number, e: React.MouseEvent | React.KeyboardEvent) {\n if (customOnOptionRemove) {\n customOnOptionRemove(selectedOptionsMap[optionValue]);\n }\n const newSelectedOptions = Array.isArray(selectedOptions)\n ? selectedOptions.filter(option => option.value !== optionValue)\n : selectedOptions;\n\n if (customOnChange) {\n customOnChange(newSelectedOptions, e);\n }\n setSelected(newSelectedOptions);\n };\n }, [customOnChange, customOnOptionRemove, selectedOptions, selectedOptionsMap]);\n\n const customProps = useMemo(\n () => ({\n selectedOptions,\n onSelectedDelete: onOptionRemove,\n isMultiline: multiline,\n insideOverflowContainer,\n insideOverflowWithTransformContainer,\n controlRef,\n tooltipContent,\n popupsContainerSelector,\n size\n }),\n [\n selectedOptions,\n onOptionRemove,\n multiline,\n insideOverflowContainer,\n insideOverflowWithTransformContainer,\n tooltipContent,\n popupsContainerSelector,\n size\n ]\n );\n const onChange = (option: DropdownOption | DropdownOption[], meta: ActionMeta<DropdownOption>) => {\n if (customOnChange) {\n customOnChange(option, meta);\n }\n\n switch (meta.action) {\n case \"select-option\": {\n const selectedOption = multi ? meta.option : option;\n\n if (onOptionSelect) {\n onOptionSelect(selectedOption);\n }\n\n if (!isControlled) {\n setSelected([...selectedOptions, selectedOption]);\n }\n break;\n }\n\n case \"clear\":\n if (onClear) {\n onClear();\n }\n\n if (!isControlled) {\n if (withMandatoryDefaultOptions) setSelected(overrideDefaultValue);\n else setSelected([]);\n }\n break;\n }\n };\n\n const DropDownComponent: React.ElementType = asyncOptions ? AsyncSelect : Select;\n\n const asyncAdditions = {\n ...(asyncOptions && {\n loadOptions: asyncOptions,\n cacheOptions,\n ...(defaultOptions && { defaultOptions })\n })\n };\n\n const additions = {\n ...(!asyncOptions && { options }),\n ...(multi && {\n isMulti: true\n })\n };\n\n const closeMenuOnScroll = useCallback(\n (event: React.FocusEvent) => {\n const scrolledElement = event.target;\n if (scrolledElement?.parentElement?.classList.contains(menuStyles.dropdownMenuWrapper)) {\n return false;\n }\n return customCloseMenuOnScroll || insideOverflowContainer || insideOverflowWithTransformContainer;\n },\n [insideOverflowContainer, insideOverflowWithTransformContainer, customCloseMenuOnScroll]\n );\n\n return (\n <DropDownComponent\n className={cx(styles.dropdown, className)}\n selectProps={customProps}\n components={{\n DropdownIndicator,\n Menu,\n ClearIndicator,\n Input,\n Option,\n Control,\n SingleValue,\n ...(multi && {\n MultiValue: NOOP, // We need it for react-select to behave nice with \"multi\"\n ValueContainer: MultiValueContainer\n }),\n ...(isVirtualized && WindowedMenuList && { MenuList: WindowedMenuList })\n }}\n // When inside scroll we set the menu position by js and we can't follow the drop down location while use scrolling\n closeMenuOnScroll={closeMenuOnScroll}\n size={size}\n noOptionsMessage={noOptionsMessage}\n placeholder={placeholder}\n isDisabled={disabled}\n isClearable={!readOnly && clearable}\n isSearchable={!readOnly && searchable}\n readOnly={readOnly}\n aria-readonly={readOnly}\n aria-label={overrideAriaLabel}\n aria-details={tooltipContent}\n aria-haspopup=\"listbox\"\n defaultValue={defaultValue}\n value={value}\n onMenuOpen={onMenuOpen}\n onMenuClose={onMenuClose}\n onFocus={onFocus}\n onBlur={onBlur}\n onMenuScrollToBottom={onMenuScrollToBottom}\n captureMenuScroll={captureMenuScroll}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onInputChange={onInputChange}\n openMenuOnFocus={openMenuOnFocus}\n openMenuOnClick={openMenuOnClick}\n focusedOptionId={focusedOptionId}\n isRtl={rtl}\n styles={inlineStyles}\n theme={customTheme}\n maxMenuHeight={maxMenuHeight}\n menuPortalTarget={overrideMenuPortalTarget}\n menuPlacement={menuPlacement}\n menuPosition={menuPosition}\n menuIsOpen={!readOnly && menuIsOpen}\n tabIndex={tabIndex}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.DROPDOWN, id)}\n autoFocus={autoFocus}\n closeMenuOnSelect={closeMenuOnSelect}\n ref={ref as React.Ref<any>}\n withMandatoryDefaultOptions={withMandatoryDefaultOptions}\n isOptionSelected={isOptionSelected}\n isLoading={isLoading}\n loadingMessage={loadingMessage}\n tabSelectsValue={tabSelectsValue}\n filterOption={filterOption}\n {...asyncAdditions}\n {...additions}\n />\n );\n }\n);\n\nexport default withStaticProps(Dropdown, {\n sizes: BaseSizes,\n chipColors: DROPDOWN_CHIP_COLORS,\n menuPlacements: DROPDOWN_MENU_PLACEMENT,\n menuPositions: DROPDOWN_MENU_POSITION,\n createFilter: createFilter\n});\n"],"names":["withStaticProps","forwardRef","_ref","ref","className","optionWrapperClassName","singleValueWrapperClassName","dropdownMenuWrapperClassName","_ref$placeholder","placeholder","_ref$disabled","disabled","_ref$readOnly","readOnly","_ref$onMenuOpen","onMenuOpen","NOOP","_ref$onMenuClose","onMenuClose","_ref$onFocus","onFocus","_ref$onBlur","onBlur","_ref$onScroll","onScroll","_ref$onMenuScrollToBo","onMenuScrollToBottom","_ref$onChange","onChange","customOnChange","_ref$searchable","searchable","_ref$captureMenuScrol","captureMenuScroll","_ref$options","options","defaultValue","customValue","value","noOptionsMessage","openMenuOnFocus","openMenuOnClick","_ref$clearable","clearable","OptionRenderer","optionRenderer","ValueRenderer","valueRenderer","menuRenderer","_ref$menuPlacement","menuPlacement","rtl","_ref$size","size","asyncOptions","cacheOptions","defaultOptions","isVirtualized","menuPortalTarget","_ref$extraStyles","extraStyles","defaultCustomStyles","maxMenuHeight","menuIsOpen","_ref$tabIndex","tabIndex","_ref$id","id","DROPDOWN_ID","_ref$menuId","menuId","DROPDOWN_MENU_ID","_ref$menuAriaLabel","menuAriaLabel","DROPDOWN_MENU_ARIA_LABEL","_ref$autoFocus","autoFocus","_ref$multi","multi","_ref$multiline","multiline","customOnOptionRemove","onOptionRemove","onOptionSelect","onClear","_ref$onInputChange","onInputChange","_ref$closeMenuOnSelec","closeMenuOnSelect","_ref$closeMenuOnScrol","closeMenuOnScroll","customCloseMenuOnScroll","_ref$withMandatoryDef","withMandatoryDefaultOptions","isOptionSelected","_ref$insideOverflowCo","insideOverflowContainer","_ref$insideOverflowWi","insideOverflowWithTransformContainer","_ref$tooltipContent","tooltipContent","_ref$onKeyDown","onKeyDown","_ref$isLoading","isLoading","loadingMessage","ariaLabel","_ref$tabSelectsValue","tabSelectsValue","popupsContainerSelector","filterOption","_ref$menuPosition","menuPosition","dataTestId","_ref$withGroupDivider","withGroupDivider","controlRef","useRef","overrideMenuPortalTarget","document","querySelector","overrideDefaultValue","useMemo","Array","isArray","map","df","Object","assign","isMandatory","BaseSelect","prototype","renderLiveRegion","_useState","useState","_useState2","_slicedToArray","WindowedMenuList","setWindowedMenuList","useEffect","isClient","import","then","module","_useState3","_useState4","selected","setSelected","_useState5","_useState6","focusedOptionId","setFocusedOptionId","finalOptionRenderer","finalValueRenderer","isControlled","selectedOptions","selectedOptionsMap","reduce","acc","option","_defineProperty","overrideAriaLabel","concat","o","label","join","inlineStyles","baseStyles","generateBaseStyles","customStyles","mergedStyles","entries","accumulator","_ref2","_ref3","stylesGroup","stylesFn","defaultStyles","state","providedFn","provided","ADD_AUTO_HEIGHT_COMPONENTS","forEach","component","original","height","originalValueContainer","valueContainer","paddingLeft","Menu","useCallback","props","React","createElement","MenuComponent","Renderer","DropdownIndicator","DropdownIndicatorComponent","Option","OptionComponent","Input","_props$selectProps","selectProps","components","role","SingleValue","SingleValueComponent","selectedOption","ClearIndicator","ClearIndicatorComponent","optionValue","e","newSelectedOptions","filter","customProps","onSelectedDelete","isMultiline","DropDownComponent","AsyncSelect","Select","asyncAdditions","loadOptions","additions","isMulti","event","scrolledElement","target","parentElement","_a","classList","contains","menuStyles","dropdownMenuWrapper","cx","styles","dropdown","Control","MultiValue","ValueContainer","MultiValueContainer","MenuList","isDisabled","isClearable","isSearchable","meta","action","_toConsumableArray","isRtl","theme","customTheme","getTestId","ComponentDefaultTestId","DROPDOWN","sizes","BaseSizes","chipColors","DROPDOWN_CHIP_COLORS","menuPlacements","DROPDOWN_MENU_PLACEMENT","menuPositions","DROPDOWN_MENU_POSITION","createFilter"],"mappings":"g9CAuCA,IAsaeA,EAAAA,EAhaXC,GACF,SAAAC,EAsEEC,GACE,IArEAC,EAASF,EAATE,UACAC,EAAsBH,EAAtBG,uBACAC,EAA2BJ,EAA3BI,4BACAC,EAA4BL,EAA5BK,6BAA4BC,EAAAN,EAC5BO,YAAAA,OAAc,IAAHD,EAAG,GAAEA,EAAAE,EAAAR,EAChBS,SAAAA,OAAW,IAAHD,GAAQA,EAAAE,EAAAV,EAChBW,SAAAA,OAAW,IAAHD,GAAQA,EAAAE,EAAAZ,EAChBa,WAAAA,OAAaC,IAAHF,EAAGE,EAAIF,EAAAG,EAAAf,EACjBgB,YAAAA,OAAcF,IAAHC,EAAGD,EAAIC,EAAAE,EAAAjB,EAClBkB,QAAAA,OAAUJ,IAAHG,EAAGH,EAAIG,EAAAE,EAAAnB,EACdoB,OAAAA,OAASN,IAAHK,EAAGL,EAAIK,EAAAE,GAAArB,EACbsB,SAAAA,QAAWR,IAAHO,GAAGP,EAAIO,GAAAE,GAAAvB,EACfwB,qBAAAA,QAAuBV,IAAHS,GAAGT,EAAIS,GAAAE,GAAAzB,EAC3B0B,SAAUC,QAAiBb,IAAHW,GAAGX,EAAIW,GAAAG,GAAA5B,EAC/B6B,WAAAA,QAAa,IAAHD,IAAOA,GAAAE,GAAA9B,EACjB+B,kBAAAA,QAAoB,IAAHD,IAAQA,GAAAE,GAAAhC,EACzBiC,QAAAA,QAAU,IAAHD,GAAG,GAAEA,GACZE,GAAYlC,EAAZkC,aACOC,GAAWnC,EAAlBoC,MACAC,GAAgBrC,EAAhBqC,iBACAC,GAAetC,EAAfsC,gBACAC,GAAevC,EAAfuC,gBAAeC,GAAAxC,EACfyC,UAAAA,QAAY,IAAHD,IAAOA,GAChBE,GAAc1C,EAAd0C,eACAC,GAAc3C,EAAd2C,eACAC,GAAa5C,EAAb4C,cACAC,GAAa7C,EAAb6C,cACAC,GAAY9C,EAAZ8C,aAAYC,GAAA/C,EACZgD,cAAAA,QAAgB,IAAHD,GAAG,SAAQA,GACxBE,GAAGjD,EAAHiD,IAAGC,GAAAlD,EACHmD,KAAAA,QAAO,IAAHD,GAAG,SAAQA,GACfE,GAAYpD,EAAZoD,aACAC,GAAYrD,EAAZqD,aACAC,GAActD,EAAdsD,eACAC,GAAavD,EAAbuD,cACAC,GAAgBxD,EAAhBwD,iBAAgBC,GAAAzD,EAChB0D,YAAAA,QAAcC,IAAHF,GAAGE,EAAmBF,GACjCG,GAAa5D,EAAb4D,cACAC,GAAU7D,EAAV6D,WAAUC,GAAA9D,EACV+D,SAAAA,QAAW,IAAHD,GAAG,IAAGA,GAAAE,GAAAhE,EACdiE,GAAAA,QAAKC,IAAHF,GAAGE,EAAWF,GAAAG,GAAAnE,EAChBoE,OAAAA,QAASC,IAAHF,GAAGE,EAAgBF,GAAAG,GAAAtE,EACzBuE,cAAAA,QAAgBC,IAAHF,GAAGE,EAAwBF,GAAAG,GAAAzE,EACxC0E,UAAAA,QAAY,IAAHD,IAAQA,GAAAE,GAAA3E,EACjB4E,MAAAA,QAAQ,IAAHD,IAAQA,GAAAE,GAAA7E,EACb8E,UAAAA,QAAY,IAAHD,IAAQA,GACDE,GAAoB/E,EAApCgF,eACAC,GAAcjF,EAAdiF,eACAC,GAAOlF,EAAPkF,QAAOC,GAAAnF,EACPoF,cAAAA,QAAgBtE,IAAHqE,GAAGrE,EAAIqE,GAAAE,GAAArF,EACpBsF,kBAAAA,QAAiB,IAAAD,IAAIT,GAAKS,GAAAE,GAAAvF,EAC1BwF,kBAAmBC,QAA0B,IAAHF,IAAQA,GAAAG,GAAA1F,EAClD2F,4BAAAA,QAA8B,IAAHD,IAAQA,GACnCE,GAAgB5F,EAAhB4F,iBAAgBC,GAAA7F,EAChB8F,wBAAAA,QAA0B,IAAHD,IAAQA,GAAAE,GAAA/F,EAC/BgG,qCAAAA,QAAuC,IAAHD,IAAQA,GAAAE,GAAAjG,EAC5CkG,eAAAA,QAAiB,IAAHD,GAAG,GAAEA,GAAAE,GAAAnG,EACnBoG,UAAAA,QAAYtF,IAAHqF,GAAGrF,EAAIqF,GAAAE,GAAArG,EAChBsG,UAAAA,QAAY,IAAHD,IAAQA,GACjBE,GAAcvG,EAAduG,eACAC,GAASxG,EAATwG,UAASC,GAAAzG,EACT0G,gBAAAA,QAAkB,IAAHD,IAAOA,GACtBE,GAAuB3G,EAAvB2G,wBACAC,GAAY5G,EAAZ4G,aAAYC,GAAA7G,EACZ8G,aAAAA,QAAe,IAAHD,GAAG,WAAUA,GACVE,GAAU/G,EAAzB,eAAagH,GAAAhH,EACbiH,iBAAAA,QAAmB,IAAHD,IAAQA,GAIpBE,GAAaC,IACbC,GACJ5D,IAAqBmD,IAA2BU,SAASC,cAAcX,IACnEY,GAAuBC,GAAQ,WACnC,OAAItF,GACKuF,MAAMC,QAAQxF,IAChBA,GAAkCyF,KAAI,SAAAC,GAAE,OAAIC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAMF,GAAI,CAAAG,aAAa,sCAC9D7F,IAA+B,CAAE6F,aAAa,IAGnD7F,EACT,GAAG,CAACA,KAEJ8F,EAAWC,UAAUC,iBAAmB,WACtC,OAAO,MAIT,IAAAC,GAAgDC,EAAS,MAAKC,GAAAC,EAAAH,GAAA,GAAvDI,GAAgBF,GAAA,GAAEG,GAAmBH,GAAA,GAC5CI,GAAU,WACJC,KAEFC,OAAO,yBAAyBC,MAAK,SAAAC,GACnCL,IAAoB,WAAA,OAAMK,EAAON,mBACnC,GAEH,GAAE,IAEH,IAAAO,GAAgCV,EAASb,IAAwB,IAAGwB,GAAAT,EAAAQ,GAAA,GAA7DE,GAAQD,GAAA,GAAEE,GAAWF,GAAA,GAC5BG,GAA8Cd,EAAS,IAAGe,GAAAb,EAAAY,GAAA,GAAnDE,GAAeD,GAAA,GAAEE,GAAkBF,GAAA,GACpCG,GAAsB3G,IAAkBD,GACxC6G,GAAqB1G,IAAiBD,GACtC4G,KAAiBrH,GACjBsH,GAAkBtH,SAAAA,GAAe6G,GACjCU,GAAqBlC,GAAQ,WACjC,OAAIC,MAAMC,QAAQ+B,IACTA,GAAgBE,QAAO,SAACC,EAAKC,GAAM,OAAKhC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAM8B,GAAKE,EAACD,CAAAA,EAAAA,EAAOzH,MAAQyH,GAAS,GAAE,CAAE,GAElF,EACT,GAAG,CAACJ,KAEEM,GAAoBvC,GAAQ,WAChC,OACEhB,IAAS,GAAAwD,OACNrJ,EAAW,YAAc,GAAE,KAAAqJ,OAAI9D,GAAc8D,KAAAA,OAC9CvC,MAAMC,QAAQ+B,IAAgB,aAAAO,OAAgBP,GAAgB9B,KAAI,SAAAsC,GAAC,OAAIA,EAAEC,KAAK,IAAEC,KAAK,OAAU,SAGpG,GAAE,CAAC3D,GAAW7F,EAAU8I,GAAiBvD,KACpC9D,GAAQwC,GAAQ6E,GAAkBtH,GAElCiI,GAAe5C,GAAQ,WAE3B,IAAM6C,EAAaC,EAAmB,CACpCnH,KAAAA,GACAF,IAAAA,GACA6C,wBAAAA,GACAoB,WAAAA,GACAlB,qCAAAA,GACAiB,iBAAAA,KAMIsD,EAAe7G,GAAY2G,GAG3BG,EAAoB3C,OAAO4C,QAAQF,GAAcZ,QAAO,SAACe,EAAWC,GAA6B,IAAAC,EAAAtC,EAAAqC,EAAA,GAA1BE,EAAWD,EAAA,GAAEE,EAAQF,EAAA,GAChG,OACK/C,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAA4C,GACHZ,EAACe,CAAAA,EAAAA,GAAc,SAACE,EAA2BC,GACzC,IAAMC,EAAaZ,EAAWQ,GACxBK,EAAWD,EAAaA,EAAWF,EAAeC,GAASD,EAEjE,OAAOD,EAASI,EAAUF,EAC3B,IAEJ,GAAE,CAAgB,GAEnB,GAAIpG,GAAO,CACLE,IACFqG,EAA2BC,SAAQ,SAACC,GAClC,IAAMC,EAAWd,EAAaa,GAC9Bb,EAAaa,GAAa,SAACH,EAAsBF,GAAoB,sCAChEM,EAASJ,EAAUF,KACtBO,OAAQ,SAEZ,IAGF,IAAMC,EAAyBhB,EAAaiB,eAC5CjB,EAAaiB,eAAiB,SAACP,EAAsBF,GAAoB,OAAKnD,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACzE0D,EAAuBN,EAAUF,KACpCU,YAAa,IAEhB,CAED,OAAOlB,CACT,GAAG,CAACrH,GAAMF,GAAK6C,GAAyBE,GAAsCtC,GAAakB,GAAOE,KAE5F6G,GAAOC,GACX,SAACC,GAAsB,OACrBC,EAAAC,cAACC,EACKnE,OAAAC,OAAA,CAAA,EAAA+D,GACJ5H,GAAIG,GACJoC,UAAWjC,GACX0H,SAAUnJ,GACVzC,6BAA8BA,EAC9BiB,SAAUA,KACV,GAEJ,CAACjB,EAA8ByC,GAAcsB,GAAQG,GAAejD,KAGhE4K,GAAoBN,GACxB,SAACC,GAAkE,OACjEC,EAACC,cAAAI,mBAA+BN,EAAK,CAAE1I,KAAMA,KAAQ,GAEvD,CAACA,KAGGiJ,GAASR,GACb,SAACC,GAAwB,OACvBC,gBAACO,EAAexE,OAAAC,OAAA,CACduB,mBAAoBA,IAChBwC,EACJ,CAAAI,SAAU3C,GACVnJ,uBAAwBA,IAE3B,GACD,CAACmJ,GAAqBnJ,EAAwBkJ,KAG1CiD,GAAQV,GACZ,SAACC,GACC,IAAAU,EAAwCV,EAAMW,YAAtCpD,EAAemD,EAAfnD,gBAAiBvF,EAAU0I,EAAV1I,WAEzB,OACEiI,EAACC,cAAAU,EAAWH,uBACNT,EAAK,CAAA,wBAHgBzC,GAAmBvF,EAAauF,EAAkB,GAK3EsD,KAAK,WACU,iBAAC/L,GAAYkD,EAAU,aAC3B,iBACI,gBAAAO,KAGrB,GACA,CAACA,GAAQzD,IAGLgM,GAAcf,GAClB,SAACC,GAA6B,OAC5BC,gBAACc,EAAoB/E,OAAAC,OAAA,CAAA,EACf+D,EACJ,CAAAlL,SAAUA,EACVsL,SAAU1C,GACVsD,eAAgBpD,GAAgB,GAChCrJ,4BAA6BA,IAEhC,GACD,CAACmJ,GAAoB5I,EAAU8I,GAAiBrJ,IAG5C0M,GAAiBlB,GACrB,SAACC,GAAkE,OACjEC,EAACC,cAAAgB,mBAA4BlB,EAAK,CAAE1I,KAAMA,KAAQ,GAEpD,CAACA,KAGG6B,GAAiBwC,GAAQ,WAC7B,OAAO,SAAUwF,EAAqBC,GAChClI,IACFA,GAAqB2E,GAAmBsD,IAE1C,IAAME,EAAqBzF,MAAMC,QAAQ+B,IACrCA,GAAgB0D,QAAO,SAAAtD,GAAM,OAAIA,EAAOzH,QAAU4K,CAAW,IAC7DvD,GAEA9H,IACFA,GAAeuL,EAAoBD,GAErChE,GAAYiE,GAEf,GAAE,CAACvL,GAAgBoD,GAAsB0E,GAAiBC,KAErD0D,GAAc5F,GAClB,WAAA,MAAO,CACLiC,gBAAAA,GACA4D,iBAAkBrI,GAClBsI,YAAaxI,GACbgB,wBAAAA,GACAE,qCAAAA,GACAkB,WAAAA,GACAhB,eAAAA,GACAS,wBAAAA,GACAxD,KAAAA,GACD,GACD,CACEsG,GACAzE,GACAF,GACAgB,GACAE,GACAE,GACAS,GACAxD,KAmCEoK,GAAuCnK,GAAeoK,EAAcC,EAEpEC,oBACAtK,mBACFuK,YAAavK,GACbC,aAAAA,IACIC,IAAkB,CAAEA,eAAAA,MAItBsK,GAAS/F,OAAAC,OAAAD,OAAAC,OAAA,CAAA,GACR1E,IAAgB,CAAEnB,QAAAA,KACnB2C,IAAS,CACXiJ,SAAS,IAIPrI,GAAoBoG,GACxB,SAACkC,SACOC,EAAkBD,EAAME,OAC9B,QAAoC,UAAhCD,aAAe,EAAfA,EAAiBE,qBAAe,IAAAC,OAAA,EAAAA,EAAAC,UAAUC,SAASC,EAAWC,wBAG3D7I,IAA2BK,IAA2BE,GAC9D,GACD,CAACF,GAAyBE,GAAsCP,KAGlE,OACEqG,gBAACyB,GAAiB1F,OAAAC,OAAA,CAChB5H,UAAWqO,EAAGC,EAAOC,SAAUvO,GAC/BsM,YAAaY,GACbX,WAAU5E,OAAAC,OAAAD,OAAAC,OAAA,CACRoE,kBAAAA,GACAP,KAAAA,GACAmB,eAAAA,GACAR,MAAAA,GACAF,OAAAA,GACAsC,QAAAA,EACA/B,YAAAA,IACI/H,IAAS,CACX+J,WAAY7N,EACZ8N,eAAgBC,IAEdtL,IAAiBgF,IAAoB,CAAEuG,SAAUvG,KAGvD/C,kBAAmBA,GACnBrC,KAAMA,GACNd,iBAAkBA,GAClB9B,YAAaA,EACbwO,WAAYtO,EACZuO,aAAcrO,GAAY8B,GAC1BwM,cAAetO,GAAYkB,GAC3BlB,SAAUA,EACK,gBAAAA,eACHoJ,GAAiB,eACf7D,GACA,gBAAA,UACdhE,aAAcA,GACdE,MAAOA,GACPvB,WAAYA,EACZG,YAAaA,EACbE,QAASA,EACTE,OAAQA,EACRI,qBAAsBA,GACtBO,kBAAmBA,GACnBL,SAnGa,SAACmI,EAA2CqF,GAK3D,OAJIvN,IACFA,GAAekI,EAAQqF,GAGjBA,EAAKC,QACX,IAAK,gBACH,IAAMtC,EAAiBjI,GAAQsK,EAAKrF,OAASA,EAEzC5E,IACFA,GAAe4H,GAGZrD,IACHP,GAAW,GAAAe,OAAAoF,EAAK3F,IAAe,CAAEoD,KAEnC,MAGF,IAAK,QACC3H,IACFA,KAGGsE,IAC8BP,GAA7BtD,GAAyC4B,GAC5B,MA0ErBnB,UAAWA,GACXhB,cAAeA,GACf9C,gBAAiBA,GACjBC,gBAAiBA,GACjB6G,gBAAiBA,GACjBiG,MAAOpM,GACPuL,OAAQpE,GACRkF,MAAOC,EACP3L,cAAeA,GACfJ,iBAAkB4D,GAClBpE,cAAeA,GACf8D,aAAcA,GACdjD,YAAalD,GAAYkD,GACzBE,SAAUA,GACVE,GAAIA,GAAE,cACO8C,IAAcyI,EAAUC,EAAuBC,SAAUzL,IACtES,UAAWA,GACXY,kBAAmBA,GACnBrF,IAAKA,EACL0F,4BAA6BA,GAC7BC,iBAAkBA,GAClBU,UAAWA,GACXC,eAAgBA,GAChBG,gBAAiBA,GACjBE,aAAcA,IACV8G,GACAE,IAGV,IAGuC,CACvC+B,MAAOC,EACPC,WAAYC,EACZC,eAAgBC,EAChBC,cAAeC,EACfC,aAAcA"}
|
|
1
|
+
{"version":3,"file":"Dropdown.js","sources":["../../../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport { BaseSizes, SIZES_VALUES } from \"../../constants\";\nimport React, { forwardRef, useCallback, useMemo, useRef, useState, useEffect } from \"react\";\nimport Select, { InputProps, components, createFilter, ActionMeta } from \"react-select\";\nimport AsyncSelect from \"react-select/async/dist/react-select.cjs.js\";\nimport BaseSelect from \"react-select/base/dist/react-select.cjs.js\";\nimport { noop as NOOP } from \"lodash-es\";\nimport MenuComponent from \"./components/menu/menu\";\nimport DropdownIndicatorComponent from \"./components/DropdownIndicator/DropdownIndicator\";\nimport OptionComponent from \"./components/option/option\";\nimport SingleValueComponent from \"./components/singleValue/singleValue\";\nimport ClearIndicatorComponent from \"./components/ClearIndicator/ClearIndicator\";\nimport MultiValueContainer from \"./components/MultiValueContainer/MultiValueContainer\";\nimport { isClient } from \"../../utils/ssr-utils\";\nimport {\n ADD_AUTO_HEIGHT_COMPONENTS,\n defaultCustomStyles,\n DROPDOWN_CHIP_COLORS,\n DROPDOWN_ID,\n DROPDOWN_MENU_ARIA_LABEL,\n DROPDOWN_MENU_ID,\n DROPDOWN_MENU_PLACEMENT,\n DROPDOWN_MENU_POSITION\n} from \"./DropdownConstants\";\nimport generateBaseStyles, { customTheme } from \"./Dropdown.styles\";\nimport Control from \"./components/Control/Control\";\nimport menuStyles from \"./components/menu/menu.module.scss\";\nimport styles from \"./Dropdown.module.scss\";\nimport {\n DropdownOption,\n DropdownState,\n CustomMenuProps,\n CustomOptionProps,\n CustomSingleValueProps,\n DropdownComponentProps\n} from \"./Dropdown.types\";\nimport { VibeComponent, withStaticProps } from \"../../types\";\n\nconst Dropdown: VibeComponent<DropdownComponentProps, HTMLElement> & {\n sizes?: typeof BaseSizes;\n chipColors?: typeof DROPDOWN_CHIP_COLORS;\n menuPlacements?: typeof DROPDOWN_MENU_PLACEMENT;\n menuPositions?: typeof DROPDOWN_MENU_POSITION;\n createFilter?: typeof createFilter;\n} = forwardRef(\n (\n {\n className,\n optionWrapperClassName,\n singleValueWrapperClassName,\n dropdownMenuWrapperClassName,\n placeholder = \"\",\n disabled = false,\n readOnly = false,\n onMenuOpen = NOOP,\n onMenuClose = NOOP,\n onFocus = NOOP,\n onBlur = NOOP,\n onScroll = NOOP,\n onMenuScrollToBottom = NOOP,\n onChange: customOnChange = NOOP,\n searchable = true,\n captureMenuScroll = false,\n options = [],\n defaultValue,\n value: customValue,\n noOptionsMessage,\n openMenuOnFocus,\n openMenuOnClick,\n clearable = true,\n OptionRenderer,\n optionRenderer,\n ValueRenderer,\n valueRenderer,\n menuRenderer,\n menuPlacement = \"bottom\",\n rtl,\n size = \"medium\",\n asyncOptions,\n cacheOptions,\n defaultOptions,\n isVirtualized,\n menuPortalTarget,\n extraStyles = defaultCustomStyles,\n maxMenuHeight,\n menuIsOpen,\n tabIndex = \"0\",\n id = DROPDOWN_ID,\n menuId = DROPDOWN_MENU_ID,\n menuAriaLabel = DROPDOWN_MENU_ARIA_LABEL,\n autoFocus = false,\n multi = false,\n multiline = false,\n onOptionRemove: customOnOptionRemove,\n onOptionSelect,\n onClear,\n onInputChange = NOOP,\n closeMenuOnSelect = !multi,\n closeMenuOnScroll: customCloseMenuOnScroll = false,\n withMandatoryDefaultOptions = false,\n isOptionSelected,\n insideOverflowContainer = false,\n insideOverflowWithTransformContainer = false,\n tooltipContent = \"\",\n onKeyDown = NOOP,\n isLoading = false,\n loadingMessage,\n ariaLabel,\n tabSelectsValue = true,\n popupsContainerSelector,\n filterOption,\n menuPosition = \"absolute\",\n \"data-testid\": dataTestId,\n withGroupDivider = false\n }: DropdownComponentProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const controlRef = useRef();\n const overrideMenuPortalTarget =\n menuPortalTarget || (popupsContainerSelector && document.querySelector(popupsContainerSelector));\n const overrideDefaultValue = useMemo(() => {\n if (defaultValue) {\n return Array.isArray(defaultValue)\n ? (defaultValue as DropdownOption[]).map(df => ({ ...df, isMandatory: true }))\n : { ...(defaultValue as DropdownOption), isMandatory: true };\n }\n\n return defaultValue;\n }, [defaultValue]);\n\n BaseSelect.prototype.renderLiveRegion = (): null => {\n return null;\n };\n\n // SSR support\n const [WindowedMenuList, setWindowedMenuList] = useState(null);\n useEffect(() => {\n if (isClient()) {\n // Dynamically import the specific named export from react-windowed-select for SSR support\n import(\"react-windowed-select\").then(module => {\n setWindowedMenuList(() => module.WindowedMenuList);\n });\n }\n }, []);\n\n const [selected, setSelected] = useState(overrideDefaultValue || []);\n const [focusedOptionId, setFocusedOptionId] = useState(\"\");\n const finalOptionRenderer = optionRenderer || OptionRenderer;\n const finalValueRenderer = valueRenderer || ValueRenderer;\n const isControlled = !!customValue;\n const selectedOptions = customValue ?? selected;\n const selectedOptionsMap = useMemo(() => {\n if (Array.isArray(selectedOptions)) {\n return selectedOptions.reduce((acc, option) => ({ ...acc, [option.value]: option }), {});\n }\n return {};\n }, [selectedOptions]);\n\n const overrideAriaLabel = useMemo(() => {\n return (\n ariaLabel ||\n `${readOnly ? \"Readonly \" : \"\"} ${tooltipContent} ${\n Array.isArray(selectedOptions) ? `Selected: ${selectedOptions.map(o => o.label).join(\", \")}` : \"Select\"\n }`\n );\n }, [ariaLabel, readOnly, selectedOptions, tooltipContent]);\n const value = multi ? selectedOptions : customValue;\n\n const inlineStyles = useMemo(() => {\n // We first want to get the default stylized groups (e.g. \"container\", \"menu\").\n const baseStyles = generateBaseStyles({\n size,\n rtl,\n insideOverflowContainer,\n controlRef,\n insideOverflowWithTransformContainer,\n withGroupDivider\n });\n\n type BaseStyles = typeof baseStyles;\n\n // Then we want to run the consumer's root-level custom styles with our \"base\" override groups.\n const customStyles = extraStyles(baseStyles);\n\n // Lastly, we create a style groups object that makes sure we run each custom group with our basic overrides.\n const mergedStyles: any = Object.entries(customStyles).reduce((accumulator, [stylesGroup, stylesFn]) => {\n return {\n ...accumulator,\n [stylesGroup]: (defaultStyles: BaseStyles, state: DropdownState) => {\n const providedFn = baseStyles[stylesGroup as keyof BaseStyles];\n const provided = providedFn ? providedFn(defaultStyles, state) : defaultStyles;\n\n return stylesFn(provided, state);\n }\n };\n }, {} as BaseStyles);\n\n if (multi) {\n if (multiline) {\n ADD_AUTO_HEIGHT_COMPONENTS.forEach((component: string) => {\n const original = mergedStyles[component];\n mergedStyles[component] = (provided: BaseStyles, state: DropdownState) => ({\n ...original(provided, state),\n height: \"auto\"\n });\n });\n }\n\n const originalValueContainer = mergedStyles.valueContainer;\n mergedStyles.valueContainer = (provided: BaseStyles, state: DropdownState) => ({\n ...originalValueContainer(provided, state),\n paddingLeft: 6\n });\n }\n\n return mergedStyles;\n }, [size, rtl, insideOverflowContainer, insideOverflowWithTransformContainer, extraStyles, multi, multiline]);\n\n const Menu = useCallback(\n (props: CustomMenuProps) => (\n <MenuComponent\n {...props}\n id={menuId}\n ariaLabel={menuAriaLabel}\n Renderer={menuRenderer}\n dropdownMenuWrapperClassName={dropdownMenuWrapperClassName}\n onScroll={onScroll}\n />\n ),\n [dropdownMenuWrapperClassName, menuRenderer, menuId, menuAriaLabel, onScroll]\n );\n\n const DropdownIndicator = useCallback(\n (props: React.HTMLAttributes<HTMLElement> & { size?: SIZES_VALUES }) => (\n <DropdownIndicatorComponent {...props} size={size} />\n ),\n [size]\n );\n\n const Option = useCallback(\n (props: CustomOptionProps) => (\n <OptionComponent\n setFocusedOptionId={setFocusedOptionId}\n {...props}\n Renderer={finalOptionRenderer}\n optionWrapperClassName={optionWrapperClassName}\n />\n ),\n [finalOptionRenderer, optionWrapperClassName, setFocusedOptionId]\n );\n\n const Input = useCallback(\n (props: InputProps | any) => {\n const { focusedOptionId, menuIsOpen } = props.selectProps;\n const ariaActiveDescendant = focusedOptionId && menuIsOpen ? focusedOptionId : \"\";\n return (\n <components.Input\n {...props}\n aria-activedescendant={ariaActiveDescendant}\n role=\"combobox\"\n aria-expanded={!readOnly && menuIsOpen}\n aria-label=\"Dropdown input\"\n aria-controls={menuId}\n />\n );\n },\n [menuId, readOnly]\n );\n\n const SingleValue = useCallback(\n (props: CustomSingleValueProps) => (\n <SingleValueComponent\n {...props}\n readOnly={readOnly}\n Renderer={finalValueRenderer}\n selectedOption={selectedOptions[0]}\n singleValueWrapperClassName={singleValueWrapperClassName}\n />\n ),\n [finalValueRenderer, readOnly, selectedOptions, singleValueWrapperClassName]\n );\n\n const ClearIndicator = useCallback(\n (props: React.HTMLAttributes<HTMLElement> & { size?: SIZES_VALUES }) => (\n <ClearIndicatorComponent {...props} size={size} />\n ),\n [size]\n );\n\n const onOptionRemove = useMemo(() => {\n return function (optionValue: number, e: React.MouseEvent | React.KeyboardEvent) {\n if (customOnOptionRemove) {\n customOnOptionRemove(selectedOptionsMap[optionValue]);\n }\n const newSelectedOptions = Array.isArray(selectedOptions)\n ? selectedOptions.filter(option => option.value !== optionValue)\n : selectedOptions;\n\n if (customOnChange) {\n customOnChange(newSelectedOptions, e);\n }\n setSelected(newSelectedOptions);\n };\n }, [customOnChange, customOnOptionRemove, selectedOptions, selectedOptionsMap]);\n\n const customProps = useMemo(\n () => ({\n selectedOptions,\n onSelectedDelete: onOptionRemove,\n isMultiline: multiline,\n insideOverflowContainer,\n insideOverflowWithTransformContainer,\n controlRef,\n tooltipContent,\n popupsContainerSelector,\n size\n }),\n [\n selectedOptions,\n onOptionRemove,\n multiline,\n insideOverflowContainer,\n insideOverflowWithTransformContainer,\n tooltipContent,\n popupsContainerSelector,\n size\n ]\n );\n const onChange = (option: DropdownOption | DropdownOption[], meta: ActionMeta<DropdownOption>) => {\n if (customOnChange) {\n customOnChange(option, meta);\n }\n\n switch (meta.action) {\n case \"select-option\": {\n const selectedOption = multi ? meta.option : option;\n\n if (onOptionSelect) {\n onOptionSelect(selectedOption);\n }\n\n if (!isControlled) {\n setSelected([...selectedOptions, selectedOption]);\n }\n break;\n }\n\n case \"clear\":\n if (onClear) {\n onClear();\n }\n\n if (!isControlled) {\n if (withMandatoryDefaultOptions) setSelected(overrideDefaultValue);\n else setSelected([]);\n }\n break;\n }\n };\n\n const DropDownComponent: React.ElementType = asyncOptions ? AsyncSelect : Select;\n\n const asyncAdditions = {\n ...(asyncOptions && {\n loadOptions: asyncOptions,\n cacheOptions,\n ...(defaultOptions && { defaultOptions })\n })\n };\n\n const additions = {\n ...(!asyncOptions && { options }),\n ...(multi && {\n isMulti: true\n })\n };\n\n const closeMenuOnScroll = useCallback(\n (event: React.FocusEvent) => {\n const scrolledElement = event.target;\n if (scrolledElement?.parentElement?.classList.contains(menuStyles.dropdownMenuWrapper)) {\n return false;\n }\n return customCloseMenuOnScroll || insideOverflowContainer || insideOverflowWithTransformContainer;\n },\n [insideOverflowContainer, insideOverflowWithTransformContainer, customCloseMenuOnScroll]\n );\n\n return (\n <DropDownComponent\n className={cx(styles.dropdown, className)}\n selectProps={customProps}\n components={{\n DropdownIndicator,\n Menu,\n ClearIndicator,\n Input,\n Option,\n Control,\n SingleValue,\n ...(multi && {\n MultiValue: NOOP, // We need it for react-select to behave nice with \"multi\"\n ValueContainer: MultiValueContainer\n }),\n ...(isVirtualized && WindowedMenuList && { MenuList: WindowedMenuList })\n }}\n // When inside scroll we set the menu position by js and we can't follow the drop down location while use scrolling\n closeMenuOnScroll={closeMenuOnScroll}\n size={size}\n noOptionsMessage={noOptionsMessage}\n placeholder={placeholder}\n isDisabled={disabled}\n isClearable={!readOnly && clearable}\n isSearchable={!readOnly && searchable}\n readOnly={readOnly}\n aria-readonly={readOnly}\n aria-label={overrideAriaLabel}\n aria-details={tooltipContent}\n aria-haspopup=\"listbox\"\n defaultValue={defaultValue}\n value={value}\n onMenuOpen={onMenuOpen}\n onMenuClose={onMenuClose}\n onFocus={onFocus}\n onBlur={onBlur}\n onMenuScrollToBottom={onMenuScrollToBottom}\n captureMenuScroll={captureMenuScroll}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onInputChange={onInputChange}\n openMenuOnFocus={openMenuOnFocus}\n openMenuOnClick={openMenuOnClick}\n focusedOptionId={focusedOptionId}\n isRtl={rtl}\n styles={inlineStyles}\n theme={customTheme}\n maxMenuHeight={maxMenuHeight}\n menuPortalTarget={overrideMenuPortalTarget}\n menuPlacement={menuPlacement}\n menuPosition={menuPosition}\n menuIsOpen={!readOnly && menuIsOpen}\n tabIndex={tabIndex}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.DROPDOWN, id)}\n autoFocus={autoFocus}\n closeMenuOnSelect={closeMenuOnSelect}\n ref={ref as React.Ref<any>}\n withMandatoryDefaultOptions={withMandatoryDefaultOptions}\n isOptionSelected={isOptionSelected}\n isLoading={isLoading}\n loadingMessage={loadingMessage}\n tabSelectsValue={tabSelectsValue}\n filterOption={filterOption}\n {...asyncAdditions}\n {...additions}\n />\n );\n }\n);\n\nexport default withStaticProps(Dropdown, {\n sizes: BaseSizes,\n chipColors: DROPDOWN_CHIP_COLORS,\n menuPlacements: DROPDOWN_MENU_PLACEMENT,\n menuPositions: DROPDOWN_MENU_POSITION,\n createFilter: createFilter\n});\n"],"names":["withStaticProps","forwardRef","_ref","ref","className","optionWrapperClassName","singleValueWrapperClassName","dropdownMenuWrapperClassName","_ref$placeholder","placeholder","_ref$disabled","disabled","_ref$readOnly","readOnly","_ref$onMenuOpen","onMenuOpen","NOOP","_ref$onMenuClose","onMenuClose","_ref$onFocus","onFocus","_ref$onBlur","onBlur","_ref$onScroll","onScroll","_ref$onMenuScrollToBo","onMenuScrollToBottom","_ref$onChange","onChange","customOnChange","_ref$searchable","searchable","_ref$captureMenuScrol","captureMenuScroll","_ref$options","options","defaultValue","customValue","value","noOptionsMessage","openMenuOnFocus","openMenuOnClick","_ref$clearable","clearable","OptionRenderer","optionRenderer","ValueRenderer","valueRenderer","menuRenderer","_ref$menuPlacement","menuPlacement","rtl","_ref$size","size","asyncOptions","cacheOptions","defaultOptions","isVirtualized","menuPortalTarget","_ref$extraStyles","extraStyles","defaultCustomStyles","maxMenuHeight","menuIsOpen","_ref$tabIndex","tabIndex","_ref$id","id","DROPDOWN_ID","_ref$menuId","menuId","DROPDOWN_MENU_ID","_ref$menuAriaLabel","menuAriaLabel","DROPDOWN_MENU_ARIA_LABEL","_ref$autoFocus","autoFocus","_ref$multi","multi","_ref$multiline","multiline","customOnOptionRemove","onOptionRemove","onOptionSelect","onClear","_ref$onInputChange","onInputChange","_ref$closeMenuOnSelec","closeMenuOnSelect","_ref$closeMenuOnScrol","closeMenuOnScroll","customCloseMenuOnScroll","_ref$withMandatoryDef","withMandatoryDefaultOptions","isOptionSelected","_ref$insideOverflowCo","insideOverflowContainer","_ref$insideOverflowWi","insideOverflowWithTransformContainer","_ref$tooltipContent","tooltipContent","_ref$onKeyDown","onKeyDown","_ref$isLoading","isLoading","loadingMessage","ariaLabel","_ref$tabSelectsValue","tabSelectsValue","popupsContainerSelector","filterOption","_ref$menuPosition","menuPosition","dataTestId","_ref$withGroupDivider","withGroupDivider","controlRef","useRef","overrideMenuPortalTarget","document","querySelector","overrideDefaultValue","useMemo","Array","isArray","map","df","Object","assign","isMandatory","BaseSelect","prototype","renderLiveRegion","_useState","useState","_useState2","_slicedToArray","WindowedMenuList","setWindowedMenuList","useEffect","isClient","import","then","module","_useState3","_useState4","selected","setSelected","_useState5","_useState6","focusedOptionId","setFocusedOptionId","finalOptionRenderer","finalValueRenderer","isControlled","selectedOptions","selectedOptionsMap","reduce","acc","option","_defineProperty","overrideAriaLabel","concat","o","label","join","inlineStyles","baseStyles","generateBaseStyles","customStyles","mergedStyles","entries","accumulator","_ref2","_ref3","stylesGroup","stylesFn","defaultStyles","state","providedFn","provided","ADD_AUTO_HEIGHT_COMPONENTS","forEach","component","original","height","originalValueContainer","valueContainer","paddingLeft","Menu","useCallback","props","React","createElement","MenuComponent","Renderer","DropdownIndicator","DropdownIndicatorComponent","Option","OptionComponent","Input","_props$selectProps","selectProps","components","role","SingleValue","SingleValueComponent","selectedOption","ClearIndicator","ClearIndicatorComponent","optionValue","e","newSelectedOptions","filter","customProps","onSelectedDelete","isMultiline","DropDownComponent","AsyncSelect","Select","asyncAdditions","loadOptions","additions","isMulti","event","scrolledElement","target","parentElement","_a","classList","contains","menuStyles","dropdownMenuWrapper","cx","styles","dropdown","Control","MultiValue","ValueContainer","MultiValueContainer","MenuList","isDisabled","isClearable","isSearchable","meta","action","_toConsumableArray","isRtl","theme","customTheme","getTestId","ComponentDefaultTestId","DROPDOWN","sizes","BaseSizes","chipColors","DROPDOWN_CHIP_COLORS","menuPlacements","DROPDOWN_MENU_PLACEMENT","menuPositions","DROPDOWN_MENU_POSITION","createFilter"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{slicedToArray as e,defineProperty as n,toConsumableArray as o}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{getTestId as t,ComponentDefaultTestId as r}from"../../tests/testIds.js";import i from"classnames";import{BaseSizes as a}from"../../constants/sizes.js";import s,{forwardRef as l,useRef as c,useMemo as u,useState as d,useEffect as p,useCallback as m}from"react";import f,{createFilter as O,components as v}from"react-select";import b from"react-select/async";import g from"react-select/base";import{noop as j}from"lodash-es";import C from"./components/menu/menu.js";import M from"./components/DropdownIndicator/DropdownIndicator.js";import y from"./components/option/option.js";import h from"./components/singleValue/singleValue.js";import w from"./components/ClearIndicator/ClearIndicator.js";import S from"./components/MultiValueContainer/MultiValueContainer.js";import{isClient as I}from"../../utils/ssr-utils.js";import{DROPDOWN_CHIP_COLORS as D,DROPDOWN_MENU_PLACEMENT as R,DROPDOWN_MENU_POSITION as V,ADD_AUTO_HEIGHT_COMPONENTS as P,defaultCustomStyles as W,DROPDOWN_ID as A,DROPDOWN_MENU_ID as L,DROPDOWN_MENU_ARIA_LABEL as x}from"./DropdownConstants.js";import z,{customTheme as E}from"./Dropdown.styles.js";import N from"./components/Control/Control.js";import F from"./components/menu/menu.module.scss.js";import T from"./Dropdown.module.scss.js";import{withStaticProps as B}from"../../types/withStaticProps.js";import"../../utils/colors-vars-map.js";var k=B(l((function(a,l){var O=a.className,D=a.optionWrapperClassName,R=a.singleValueWrapperClassName,V=a.dropdownMenuWrapperClassName,B=a.placeholder,k=void 0===B?"":B,H=a.disabled,G=void 0!==H&&H,K=a.readOnly,_=void 0!==K&&K,q=a.onMenuOpen,J=void 0===q?j:q,Q=a.onMenuClose,U=void 0===Q?j:Q,X=a.onFocus,Y=void 0===X?j:X,Z=a.onBlur,$=void 0===Z?j:Z,ee=a.onScroll,ne=void 0===ee?j:ee,oe=a.onMenuScrollToBottom,te=void 0===oe?j:oe,re=a.onChange,ie=void 0===re?j:re,ae=a.searchable,se=void 0===ae||ae,le=a.captureMenuScroll,ce=void 0!==le&&le,ue=a.options,de=void 0===ue?[]:ue,pe=a.defaultValue,me=a.value,fe=a.noOptionsMessage,Oe=a.openMenuOnFocus,ve=a.openMenuOnClick,be=a.clearable,ge=void 0===be||be,je=a.OptionRenderer,Ce=a.optionRenderer,Me=a.ValueRenderer,ye=a.valueRenderer,he=a.menuRenderer,we=a.menuPlacement,Se=void 0===we?"bottom":we,Ie=a.rtl,De=a.size,Re=void 0===De?"medium":De,Ve=a.asyncOptions,Pe=a.cacheOptions,We=a.defaultOptions,Ae=a.isVirtualized,Le=a.menuPortalTarget,xe=a.extraStyles,ze=void 0===xe?W:xe,Ee=a.maxMenuHeight,Ne=a.menuIsOpen,Fe=a.tabIndex,Te=void 0===Fe?"0":Fe,Be=a.id,ke=void 0===Be?A:Be,He=a.menuId,Ge=void 0===He?L:He,Ke=a.menuAriaLabel,_e=void 0===Ke?x:Ke,qe=a.autoFocus,Je=void 0!==qe&&qe,Qe=a.multi,Ue=void 0!==Qe&&Qe,Xe=a.multiline,Ye=void 0!==Xe&&Xe,Ze=a.onOptionRemove,$e=a.onOptionSelect,en=a.onClear,nn=a.onInputChange,on=void 0===nn?j:nn,tn=a.closeMenuOnSelect,rn=void 0===tn?!Ue:tn,an=a.closeMenuOnScroll,sn=void 0!==an&&an,ln=a.withMandatoryDefaultOptions,cn=void 0!==ln&&ln,un=a.isOptionSelected,dn=a.insideOverflowContainer,pn=void 0!==dn&&dn,mn=a.insideOverflowWithTransformContainer,fn=void 0!==mn&&mn,On=a.tooltipContent,vn=void 0===On?"":On,bn=a.onKeyDown,gn=void 0===bn?j:bn,jn=a.isLoading,Cn=void 0!==jn&&jn,Mn=a.loadingMessage,yn=a.ariaLabel,hn=a.tabSelectsValue,wn=void 0===hn||hn,Sn=a.popupsContainerSelector,In=a.filterOption,Dn=a.menuPosition,Rn=void 0===Dn?"absolute":Dn,Vn=a["data-testid"],Pn=a.withGroupDivider,Wn=void 0!==Pn&&Pn,An=c(),Ln=Le||Sn&&document.querySelector(Sn),xn=u((function(){return pe?Array.isArray(pe)?pe.map((function(e){return Object.assign(Object.assign({},e),{isMandatory:!0})})):Object.assign(Object.assign({},pe),{isMandatory:!0}):pe}),[pe]);g.prototype.renderLiveRegion=function(){return null};var zn=d(null),En=e(zn,2),Nn=En[0],Fn=En[1];p((function(){I()&&import("react-windowed-select").then((function(e){Fn((function(){return e.WindowedMenuList}))}))}),[]);var Tn=d(xn||[]),Bn=e(Tn,2),kn=Bn[0],Hn=Bn[1],Gn=d(""),Kn=e(Gn,2),_n=Kn[0],qn=Kn[1],Jn=Ce||je,Qn=ye||Me,Un=!!me,Xn=null!=me?me:kn,Yn=u((function(){return Array.isArray(Xn)?Xn.reduce((function(e,o){return Object.assign(Object.assign({},e),n({},o.value,o))}),{}):{}}),[Xn]),Zn=u((function(){return yn||"".concat(_?"Readonly ":""," ").concat(vn," ").concat(Array.isArray(Xn)?"Selected: ".concat(Xn.map((function(e){return e.label})).join(", ")):"Select")}),[yn,_,Xn,vn]),$n=Ue?Xn:me,eo=u((function(){var o=z({size:Re,rtl:Ie,insideOverflowContainer:pn,controlRef:An,insideOverflowWithTransformContainer:fn,withGroupDivider:Wn}),t=ze(o),r=Object.entries(t).reduce((function(t,r){var i=e(r,2),a=i[0],s=i[1];return Object.assign(Object.assign({},t),n({},a,(function(e,n){var t=o[a],r=t?t(e,n):e;return s(r,n)})))}),{});if(Ue){Ye&&P.forEach((function(e){var n=r[e];r[e]=function(e,o){return Object.assign(Object.assign({},n(e,o)),{height:"auto"})}}));var i=r.valueContainer;r.valueContainer=function(e,n){return Object.assign(Object.assign({},i(e,n)),{paddingLeft:6})}}return r}),[Re,Ie,pn,fn,ze,Ue,Ye]),no=m((function(e){return s.createElement(C,Object.assign({},e,{id:Ge,ariaLabel:_e,Renderer:he,dropdownMenuWrapperClassName:V,onScroll:ne}))}),[V,he,Ge,_e,ne]),oo=m((function(e){return s.createElement(M,Object.assign({},e,{size:Re}))}),[Re]),to=m((function(e){return s.createElement(y,Object.assign({setFocusedOptionId:qn},e,{Renderer:Jn,optionWrapperClassName:D}))}),[Jn,D,qn]),ro=m((function(e){var n=e.selectProps,o=n.focusedOptionId,t=n.menuIsOpen;return s.createElement(v.Input,Object.assign({},e,{"aria-activedescendant":o&&t?o:"",role:"combobox","aria-expanded":!_&&t,"aria-label":"Dropdown input","aria-controls":Ge}))}),[Ge,_]),io=m((function(e){return s.createElement(h,Object.assign({},e,{readOnly:_,Renderer:Qn,selectedOption:Xn[0],singleValueWrapperClassName:R}))}),[Qn,_,Xn,R]),ao=m((function(e){return s.createElement(w,Object.assign({},e,{size:Re}))}),[Re]),so=u((function(){return function(e,n){Ze&&Ze(Yn[e]);var o=Array.isArray(Xn)?Xn.filter((function(n){return n.value!==e})):Xn;ie&&ie(o,n),Hn(o)}}),[ie,Ze,Xn,Yn]),lo=u((function(){return{selectedOptions:Xn,onSelectedDelete:so,isMultiline:Ye,insideOverflowContainer:pn,insideOverflowWithTransformContainer:fn,controlRef:An,tooltipContent:vn,popupsContainerSelector:Sn,size:Re}}),[Xn,so,Ye,pn,fn,vn,Sn,Re]),co=Ve?b:f,uo=Object.assign({},Ve&&Object.assign({loadOptions:Ve,cacheOptions:Pe},We&&{defaultOptions:We})),po=Object.assign(Object.assign({},!Ve&&{options:de}),Ue&&{isMulti:!0}),mo=m((function(e){var n,o=e.target;return!(null===(n=null==o?void 0:o.parentElement)||void 0===n?void 0:n.classList.contains(F.dropdownMenuWrapper))&&(sn||pn||fn)}),[pn,fn,sn]);return s.createElement(co,Object.assign({className:i(T.dropdown,O),selectProps:lo,components:Object.assign(Object.assign({DropdownIndicator:oo,Menu:no,ClearIndicator:ao,Input:ro,Option:to,Control:N,SingleValue:io},Ue&&{MultiValue:j,ValueContainer:S}),Ae&&Nn&&{MenuList:Nn}),closeMenuOnScroll:mo,size:Re,noOptionsMessage:fe,placeholder:k,isDisabled:G,isClearable:!_&&ge,isSearchable:!_&&se,readOnly:_,"aria-readonly":_,"aria-label":Zn,"aria-details":vn,"aria-haspopup":"listbox",defaultValue:pe,value:$n,onMenuOpen:J,onMenuClose:U,onFocus:Y,onBlur:$,onMenuScrollToBottom:te,captureMenuScroll:ce,onChange:function(e,n){switch(ie&&ie(e,n),n.action){case"select-option":var t=Ue?n.option:e;$e&&$e(t),Un||Hn([].concat(o(Xn),[t]));break;case"clear":en&&en(),Un||Hn(cn?xn:[])}},onKeyDown:gn,onInputChange:on,openMenuOnFocus:Oe,openMenuOnClick:ve,focusedOptionId:_n,isRtl:Ie,styles:eo,theme:E,maxMenuHeight:Ee,menuPortalTarget:Ln,menuPlacement:Se,menuPosition:Rn,menuIsOpen:!_&&Ne,tabIndex:Te,id:ke,"data-testid":Vn||t(r.DROPDOWN,ke),autoFocus:Je,closeMenuOnSelect:rn,ref:l,withMandatoryDefaultOptions:cn,isOptionSelected:un,isLoading:Cn,loadingMessage:Mn,tabSelectsValue:wn,filterOption:In},uo,po))})),{sizes:a,chipColors:D,menuPlacements:R,menuPositions:V,createFilter:O});export{k as default};
|
|
1
|
+
import{slicedToArray as e,defineProperty as n,toConsumableArray as o}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{getTestId as t,ComponentDefaultTestId as r}from"../../tests/testIds.js";import i from"classnames";import{BaseSizes as a}from"../../constants/sizes.js";import s,{forwardRef as l,useRef as c,useMemo as u,useState as d,useEffect as p,useCallback as m}from"react";import f,{createFilter as O,components as v}from"react-select";import b from"react-select/async/dist/react-select.cjs.js";import g from"react-select/base/dist/react-select.cjs.js";import{noop as j}from"lodash-es";import C from"./components/menu/menu.js";import M from"./components/DropdownIndicator/DropdownIndicator.js";import y from"./components/option/option.js";import h from"./components/singleValue/singleValue.js";import w from"./components/ClearIndicator/ClearIndicator.js";import S from"./components/MultiValueContainer/MultiValueContainer.js";import{isClient as I}from"../../utils/ssr-utils.js";import{DROPDOWN_CHIP_COLORS as D,DROPDOWN_MENU_PLACEMENT as R,DROPDOWN_MENU_POSITION as V,ADD_AUTO_HEIGHT_COMPONENTS as P,defaultCustomStyles as W,DROPDOWN_ID as A,DROPDOWN_MENU_ID as L,DROPDOWN_MENU_ARIA_LABEL as x}from"./DropdownConstants.js";import z,{customTheme as E}from"./Dropdown.styles.js";import N from"./components/Control/Control.js";import F from"./components/menu/menu.module.scss.js";import T from"./Dropdown.module.scss.js";import{withStaticProps as B}from"../../types/withStaticProps.js";import"../../utils/colors-vars-map.js";var k=B(l((function(a,l){var O=a.className,D=a.optionWrapperClassName,R=a.singleValueWrapperClassName,V=a.dropdownMenuWrapperClassName,B=a.placeholder,k=void 0===B?"":B,H=a.disabled,G=void 0!==H&&H,K=a.readOnly,_=void 0!==K&&K,q=a.onMenuOpen,J=void 0===q?j:q,Q=a.onMenuClose,U=void 0===Q?j:Q,X=a.onFocus,Y=void 0===X?j:X,Z=a.onBlur,$=void 0===Z?j:Z,ee=a.onScroll,ne=void 0===ee?j:ee,oe=a.onMenuScrollToBottom,te=void 0===oe?j:oe,re=a.onChange,ie=void 0===re?j:re,ae=a.searchable,se=void 0===ae||ae,le=a.captureMenuScroll,ce=void 0!==le&&le,ue=a.options,de=void 0===ue?[]:ue,pe=a.defaultValue,me=a.value,fe=a.noOptionsMessage,Oe=a.openMenuOnFocus,ve=a.openMenuOnClick,be=a.clearable,ge=void 0===be||be,je=a.OptionRenderer,Ce=a.optionRenderer,Me=a.ValueRenderer,ye=a.valueRenderer,he=a.menuRenderer,we=a.menuPlacement,Se=void 0===we?"bottom":we,Ie=a.rtl,De=a.size,Re=void 0===De?"medium":De,Ve=a.asyncOptions,Pe=a.cacheOptions,We=a.defaultOptions,Ae=a.isVirtualized,Le=a.menuPortalTarget,xe=a.extraStyles,ze=void 0===xe?W:xe,Ee=a.maxMenuHeight,Ne=a.menuIsOpen,Fe=a.tabIndex,Te=void 0===Fe?"0":Fe,Be=a.id,ke=void 0===Be?A:Be,He=a.menuId,Ge=void 0===He?L:He,Ke=a.menuAriaLabel,_e=void 0===Ke?x:Ke,qe=a.autoFocus,Je=void 0!==qe&&qe,Qe=a.multi,Ue=void 0!==Qe&&Qe,Xe=a.multiline,Ye=void 0!==Xe&&Xe,Ze=a.onOptionRemove,$e=a.onOptionSelect,en=a.onClear,nn=a.onInputChange,on=void 0===nn?j:nn,tn=a.closeMenuOnSelect,rn=void 0===tn?!Ue:tn,an=a.closeMenuOnScroll,sn=void 0!==an&&an,ln=a.withMandatoryDefaultOptions,cn=void 0!==ln&&ln,un=a.isOptionSelected,dn=a.insideOverflowContainer,pn=void 0!==dn&&dn,mn=a.insideOverflowWithTransformContainer,fn=void 0!==mn&&mn,On=a.tooltipContent,vn=void 0===On?"":On,bn=a.onKeyDown,gn=void 0===bn?j:bn,jn=a.isLoading,Cn=void 0!==jn&&jn,Mn=a.loadingMessage,yn=a.ariaLabel,hn=a.tabSelectsValue,wn=void 0===hn||hn,Sn=a.popupsContainerSelector,In=a.filterOption,Dn=a.menuPosition,Rn=void 0===Dn?"absolute":Dn,Vn=a["data-testid"],Pn=a.withGroupDivider,Wn=void 0!==Pn&&Pn,An=c(),Ln=Le||Sn&&document.querySelector(Sn),xn=u((function(){return pe?Array.isArray(pe)?pe.map((function(e){return Object.assign(Object.assign({},e),{isMandatory:!0})})):Object.assign(Object.assign({},pe),{isMandatory:!0}):pe}),[pe]);g.prototype.renderLiveRegion=function(){return null};var zn=d(null),En=e(zn,2),Nn=En[0],Fn=En[1];p((function(){I()&&import("react-windowed-select").then((function(e){Fn((function(){return e.WindowedMenuList}))}))}),[]);var Tn=d(xn||[]),Bn=e(Tn,2),kn=Bn[0],Hn=Bn[1],Gn=d(""),Kn=e(Gn,2),_n=Kn[0],qn=Kn[1],Jn=Ce||je,Qn=ye||Me,Un=!!me,Xn=null!=me?me:kn,Yn=u((function(){return Array.isArray(Xn)?Xn.reduce((function(e,o){return Object.assign(Object.assign({},e),n({},o.value,o))}),{}):{}}),[Xn]),Zn=u((function(){return yn||"".concat(_?"Readonly ":""," ").concat(vn," ").concat(Array.isArray(Xn)?"Selected: ".concat(Xn.map((function(e){return e.label})).join(", ")):"Select")}),[yn,_,Xn,vn]),$n=Ue?Xn:me,eo=u((function(){var o=z({size:Re,rtl:Ie,insideOverflowContainer:pn,controlRef:An,insideOverflowWithTransformContainer:fn,withGroupDivider:Wn}),t=ze(o),r=Object.entries(t).reduce((function(t,r){var i=e(r,2),a=i[0],s=i[1];return Object.assign(Object.assign({},t),n({},a,(function(e,n){var t=o[a],r=t?t(e,n):e;return s(r,n)})))}),{});if(Ue){Ye&&P.forEach((function(e){var n=r[e];r[e]=function(e,o){return Object.assign(Object.assign({},n(e,o)),{height:"auto"})}}));var i=r.valueContainer;r.valueContainer=function(e,n){return Object.assign(Object.assign({},i(e,n)),{paddingLeft:6})}}return r}),[Re,Ie,pn,fn,ze,Ue,Ye]),no=m((function(e){return s.createElement(C,Object.assign({},e,{id:Ge,ariaLabel:_e,Renderer:he,dropdownMenuWrapperClassName:V,onScroll:ne}))}),[V,he,Ge,_e,ne]),oo=m((function(e){return s.createElement(M,Object.assign({},e,{size:Re}))}),[Re]),to=m((function(e){return s.createElement(y,Object.assign({setFocusedOptionId:qn},e,{Renderer:Jn,optionWrapperClassName:D}))}),[Jn,D,qn]),ro=m((function(e){var n=e.selectProps,o=n.focusedOptionId,t=n.menuIsOpen;return s.createElement(v.Input,Object.assign({},e,{"aria-activedescendant":o&&t?o:"",role:"combobox","aria-expanded":!_&&t,"aria-label":"Dropdown input","aria-controls":Ge}))}),[Ge,_]),io=m((function(e){return s.createElement(h,Object.assign({},e,{readOnly:_,Renderer:Qn,selectedOption:Xn[0],singleValueWrapperClassName:R}))}),[Qn,_,Xn,R]),ao=m((function(e){return s.createElement(w,Object.assign({},e,{size:Re}))}),[Re]),so=u((function(){return function(e,n){Ze&&Ze(Yn[e]);var o=Array.isArray(Xn)?Xn.filter((function(n){return n.value!==e})):Xn;ie&&ie(o,n),Hn(o)}}),[ie,Ze,Xn,Yn]),lo=u((function(){return{selectedOptions:Xn,onSelectedDelete:so,isMultiline:Ye,insideOverflowContainer:pn,insideOverflowWithTransformContainer:fn,controlRef:An,tooltipContent:vn,popupsContainerSelector:Sn,size:Re}}),[Xn,so,Ye,pn,fn,vn,Sn,Re]),co=Ve?b:f,uo=Object.assign({},Ve&&Object.assign({loadOptions:Ve,cacheOptions:Pe},We&&{defaultOptions:We})),po=Object.assign(Object.assign({},!Ve&&{options:de}),Ue&&{isMulti:!0}),mo=m((function(e){var n,o=e.target;return!(null===(n=null==o?void 0:o.parentElement)||void 0===n?void 0:n.classList.contains(F.dropdownMenuWrapper))&&(sn||pn||fn)}),[pn,fn,sn]);return s.createElement(co,Object.assign({className:i(T.dropdown,O),selectProps:lo,components:Object.assign(Object.assign({DropdownIndicator:oo,Menu:no,ClearIndicator:ao,Input:ro,Option:to,Control:N,SingleValue:io},Ue&&{MultiValue:j,ValueContainer:S}),Ae&&Nn&&{MenuList:Nn}),closeMenuOnScroll:mo,size:Re,noOptionsMessage:fe,placeholder:k,isDisabled:G,isClearable:!_&&ge,isSearchable:!_&&se,readOnly:_,"aria-readonly":_,"aria-label":Zn,"aria-details":vn,"aria-haspopup":"listbox",defaultValue:pe,value:$n,onMenuOpen:J,onMenuClose:U,onFocus:Y,onBlur:$,onMenuScrollToBottom:te,captureMenuScroll:ce,onChange:function(e,n){switch(ie&&ie(e,n),n.action){case"select-option":var t=Ue?n.option:e;$e&&$e(t),Un||Hn([].concat(o(Xn),[t]));break;case"clear":en&&en(),Un||Hn(cn?xn:[])}},onKeyDown:gn,onInputChange:on,openMenuOnFocus:Oe,openMenuOnClick:ve,focusedOptionId:_n,isRtl:Ie,styles:eo,theme:E,maxMenuHeight:Ee,menuPortalTarget:Ln,menuPlacement:Se,menuPosition:Rn,menuIsOpen:!_&&Ne,tabIndex:Te,id:ke,"data-testid":Vn||t(r.DROPDOWN,ke),autoFocus:Je,closeMenuOnSelect:rn,ref:l,withMandatoryDefaultOptions:cn,isOptionSelected:un,isLoading:Cn,loadingMessage:Mn,tabSelectsValue:wn,filterOption:In},uo,po))})),{sizes:a,chipColors:D,menuPlacements:R,menuPositions:V,createFilter:O});export{k as default};
|
|
2
2
|
//# sourceMappingURL=Dropdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.js","sources":["../../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport { BaseSizes, SIZES_VALUES } from \"../../constants\";\nimport React, { forwardRef, useCallback, useMemo, useRef, useState, useEffect } from \"react\";\nimport Select, { InputProps, components, createFilter, ActionMeta } from \"react-select\";\nimport AsyncSelect from \"react-select/async\";\nimport BaseSelect from \"react-select/base\";\nimport { noop as NOOP } from \"lodash-es\";\nimport MenuComponent from \"./components/menu/menu\";\nimport DropdownIndicatorComponent from \"./components/DropdownIndicator/DropdownIndicator\";\nimport OptionComponent from \"./components/option/option\";\nimport SingleValueComponent from \"./components/singleValue/singleValue\";\nimport ClearIndicatorComponent from \"./components/ClearIndicator/ClearIndicator\";\nimport MultiValueContainer from \"./components/MultiValueContainer/MultiValueContainer\";\nimport { isClient } from \"../../utils/ssr-utils\";\nimport {\n ADD_AUTO_HEIGHT_COMPONENTS,\n defaultCustomStyles,\n DROPDOWN_CHIP_COLORS,\n DROPDOWN_ID,\n DROPDOWN_MENU_ARIA_LABEL,\n DROPDOWN_MENU_ID,\n DROPDOWN_MENU_PLACEMENT,\n DROPDOWN_MENU_POSITION\n} from \"./DropdownConstants\";\nimport generateBaseStyles, { customTheme } from \"./Dropdown.styles\";\nimport Control from \"./components/Control/Control\";\nimport menuStyles from \"./components/menu/menu.module.scss\";\nimport styles from \"./Dropdown.module.scss\";\nimport {\n DropdownOption,\n DropdownState,\n CustomMenuProps,\n CustomOptionProps,\n CustomSingleValueProps,\n DropdownComponentProps\n} from \"./Dropdown.types\";\nimport { VibeComponent, withStaticProps } from \"../../types\";\n\nconst Dropdown: VibeComponent<DropdownComponentProps, HTMLElement> & {\n sizes?: typeof BaseSizes;\n chipColors?: typeof DROPDOWN_CHIP_COLORS;\n menuPlacements?: typeof DROPDOWN_MENU_PLACEMENT;\n menuPositions?: typeof DROPDOWN_MENU_POSITION;\n createFilter?: typeof createFilter;\n} = forwardRef(\n (\n {\n className,\n optionWrapperClassName,\n singleValueWrapperClassName,\n dropdownMenuWrapperClassName,\n placeholder = \"\",\n disabled = false,\n readOnly = false,\n onMenuOpen = NOOP,\n onMenuClose = NOOP,\n onFocus = NOOP,\n onBlur = NOOP,\n onScroll = NOOP,\n onMenuScrollToBottom = NOOP,\n onChange: customOnChange = NOOP,\n searchable = true,\n captureMenuScroll = false,\n options = [],\n defaultValue,\n value: customValue,\n noOptionsMessage,\n openMenuOnFocus,\n openMenuOnClick,\n clearable = true,\n OptionRenderer,\n optionRenderer,\n ValueRenderer,\n valueRenderer,\n menuRenderer,\n menuPlacement = \"bottom\",\n rtl,\n size = \"medium\",\n asyncOptions,\n cacheOptions,\n defaultOptions,\n isVirtualized,\n menuPortalTarget,\n extraStyles = defaultCustomStyles,\n maxMenuHeight,\n menuIsOpen,\n tabIndex = \"0\",\n id = DROPDOWN_ID,\n menuId = DROPDOWN_MENU_ID,\n menuAriaLabel = DROPDOWN_MENU_ARIA_LABEL,\n autoFocus = false,\n multi = false,\n multiline = false,\n onOptionRemove: customOnOptionRemove,\n onOptionSelect,\n onClear,\n onInputChange = NOOP,\n closeMenuOnSelect = !multi,\n closeMenuOnScroll: customCloseMenuOnScroll = false,\n withMandatoryDefaultOptions = false,\n isOptionSelected,\n insideOverflowContainer = false,\n insideOverflowWithTransformContainer = false,\n tooltipContent = \"\",\n onKeyDown = NOOP,\n isLoading = false,\n loadingMessage,\n ariaLabel,\n tabSelectsValue = true,\n popupsContainerSelector,\n filterOption,\n menuPosition = \"absolute\",\n \"data-testid\": dataTestId,\n withGroupDivider = false\n }: DropdownComponentProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const controlRef = useRef();\n const overrideMenuPortalTarget =\n menuPortalTarget || (popupsContainerSelector && document.querySelector(popupsContainerSelector));\n const overrideDefaultValue = useMemo(() => {\n if (defaultValue) {\n return Array.isArray(defaultValue)\n ? (defaultValue as DropdownOption[]).map(df => ({ ...df, isMandatory: true }))\n : { ...(defaultValue as DropdownOption), isMandatory: true };\n }\n\n return defaultValue;\n }, [defaultValue]);\n\n BaseSelect.prototype.renderLiveRegion = (): null => {\n return null;\n };\n\n // SSR support\n const [WindowedMenuList, setWindowedMenuList] = useState(null);\n useEffect(() => {\n if (isClient()) {\n // Dynamically import the specific named export from react-windowed-select for SSR support\n import(\"react-windowed-select\").then(module => {\n setWindowedMenuList(() => module.WindowedMenuList);\n });\n }\n }, []);\n\n const [selected, setSelected] = useState(overrideDefaultValue || []);\n const [focusedOptionId, setFocusedOptionId] = useState(\"\");\n const finalOptionRenderer = optionRenderer || OptionRenderer;\n const finalValueRenderer = valueRenderer || ValueRenderer;\n const isControlled = !!customValue;\n const selectedOptions = customValue ?? selected;\n const selectedOptionsMap = useMemo(() => {\n if (Array.isArray(selectedOptions)) {\n return selectedOptions.reduce((acc, option) => ({ ...acc, [option.value]: option }), {});\n }\n return {};\n }, [selectedOptions]);\n\n const overrideAriaLabel = useMemo(() => {\n return (\n ariaLabel ||\n `${readOnly ? \"Readonly \" : \"\"} ${tooltipContent} ${\n Array.isArray(selectedOptions) ? `Selected: ${selectedOptions.map(o => o.label).join(\", \")}` : \"Select\"\n }`\n );\n }, [ariaLabel, readOnly, selectedOptions, tooltipContent]);\n const value = multi ? selectedOptions : customValue;\n\n const inlineStyles = useMemo(() => {\n // We first want to get the default stylized groups (e.g. \"container\", \"menu\").\n const baseStyles = generateBaseStyles({\n size,\n rtl,\n insideOverflowContainer,\n controlRef,\n insideOverflowWithTransformContainer,\n withGroupDivider\n });\n\n type BaseStyles = typeof baseStyles;\n\n // Then we want to run the consumer's root-level custom styles with our \"base\" override groups.\n const customStyles = extraStyles(baseStyles);\n\n // Lastly, we create a style groups object that makes sure we run each custom group with our basic overrides.\n const mergedStyles: any = Object.entries(customStyles).reduce((accumulator, [stylesGroup, stylesFn]) => {\n return {\n ...accumulator,\n [stylesGroup]: (defaultStyles: BaseStyles, state: DropdownState) => {\n const providedFn = baseStyles[stylesGroup as keyof BaseStyles];\n const provided = providedFn ? providedFn(defaultStyles, state) : defaultStyles;\n\n return stylesFn(provided, state);\n }\n };\n }, {} as BaseStyles);\n\n if (multi) {\n if (multiline) {\n ADD_AUTO_HEIGHT_COMPONENTS.forEach((component: string) => {\n const original = mergedStyles[component];\n mergedStyles[component] = (provided: BaseStyles, state: DropdownState) => ({\n ...original(provided, state),\n height: \"auto\"\n });\n });\n }\n\n const originalValueContainer = mergedStyles.valueContainer;\n mergedStyles.valueContainer = (provided: BaseStyles, state: DropdownState) => ({\n ...originalValueContainer(provided, state),\n paddingLeft: 6\n });\n }\n\n return mergedStyles;\n }, [size, rtl, insideOverflowContainer, insideOverflowWithTransformContainer, extraStyles, multi, multiline]);\n\n const Menu = useCallback(\n (props: CustomMenuProps) => (\n <MenuComponent\n {...props}\n id={menuId}\n ariaLabel={menuAriaLabel}\n Renderer={menuRenderer}\n dropdownMenuWrapperClassName={dropdownMenuWrapperClassName}\n onScroll={onScroll}\n />\n ),\n [dropdownMenuWrapperClassName, menuRenderer, menuId, menuAriaLabel, onScroll]\n );\n\n const DropdownIndicator = useCallback(\n (props: React.HTMLAttributes<HTMLElement> & { size?: SIZES_VALUES }) => (\n <DropdownIndicatorComponent {...props} size={size} />\n ),\n [size]\n );\n\n const Option = useCallback(\n (props: CustomOptionProps) => (\n <OptionComponent\n setFocusedOptionId={setFocusedOptionId}\n {...props}\n Renderer={finalOptionRenderer}\n optionWrapperClassName={optionWrapperClassName}\n />\n ),\n [finalOptionRenderer, optionWrapperClassName, setFocusedOptionId]\n );\n\n const Input = useCallback(\n (props: InputProps | any) => {\n const { focusedOptionId, menuIsOpen } = props.selectProps;\n const ariaActiveDescendant = focusedOptionId && menuIsOpen ? focusedOptionId : \"\";\n return (\n <components.Input\n {...props}\n aria-activedescendant={ariaActiveDescendant}\n role=\"combobox\"\n aria-expanded={!readOnly && menuIsOpen}\n aria-label=\"Dropdown input\"\n aria-controls={menuId}\n />\n );\n },\n [menuId, readOnly]\n );\n\n const SingleValue = useCallback(\n (props: CustomSingleValueProps) => (\n <SingleValueComponent\n {...props}\n readOnly={readOnly}\n Renderer={finalValueRenderer}\n selectedOption={selectedOptions[0]}\n singleValueWrapperClassName={singleValueWrapperClassName}\n />\n ),\n [finalValueRenderer, readOnly, selectedOptions, singleValueWrapperClassName]\n );\n\n const ClearIndicator = useCallback(\n (props: React.HTMLAttributes<HTMLElement> & { size?: SIZES_VALUES }) => (\n <ClearIndicatorComponent {...props} size={size} />\n ),\n [size]\n );\n\n const onOptionRemove = useMemo(() => {\n return function (optionValue: number, e: React.MouseEvent | React.KeyboardEvent) {\n if (customOnOptionRemove) {\n customOnOptionRemove(selectedOptionsMap[optionValue]);\n }\n const newSelectedOptions = Array.isArray(selectedOptions)\n ? selectedOptions.filter(option => option.value !== optionValue)\n : selectedOptions;\n\n if (customOnChange) {\n customOnChange(newSelectedOptions, e);\n }\n setSelected(newSelectedOptions);\n };\n }, [customOnChange, customOnOptionRemove, selectedOptions, selectedOptionsMap]);\n\n const customProps = useMemo(\n () => ({\n selectedOptions,\n onSelectedDelete: onOptionRemove,\n isMultiline: multiline,\n insideOverflowContainer,\n insideOverflowWithTransformContainer,\n controlRef,\n tooltipContent,\n popupsContainerSelector,\n size\n }),\n [\n selectedOptions,\n onOptionRemove,\n multiline,\n insideOverflowContainer,\n insideOverflowWithTransformContainer,\n tooltipContent,\n popupsContainerSelector,\n size\n ]\n );\n const onChange = (option: DropdownOption | DropdownOption[], meta: ActionMeta<DropdownOption>) => {\n if (customOnChange) {\n customOnChange(option, meta);\n }\n\n switch (meta.action) {\n case \"select-option\": {\n const selectedOption = multi ? meta.option : option;\n\n if (onOptionSelect) {\n onOptionSelect(selectedOption);\n }\n\n if (!isControlled) {\n setSelected([...selectedOptions, selectedOption]);\n }\n break;\n }\n\n case \"clear\":\n if (onClear) {\n onClear();\n }\n\n if (!isControlled) {\n if (withMandatoryDefaultOptions) setSelected(overrideDefaultValue);\n else setSelected([]);\n }\n break;\n }\n };\n\n const DropDownComponent: React.ElementType = asyncOptions ? AsyncSelect : Select;\n\n const asyncAdditions = {\n ...(asyncOptions && {\n loadOptions: asyncOptions,\n cacheOptions,\n ...(defaultOptions && { defaultOptions })\n })\n };\n\n const additions = {\n ...(!asyncOptions && { options }),\n ...(multi && {\n isMulti: true\n })\n };\n\n const closeMenuOnScroll = useCallback(\n (event: React.FocusEvent) => {\n const scrolledElement = event.target;\n if (scrolledElement?.parentElement?.classList.contains(menuStyles.dropdownMenuWrapper)) {\n return false;\n }\n return customCloseMenuOnScroll || insideOverflowContainer || insideOverflowWithTransformContainer;\n },\n [insideOverflowContainer, insideOverflowWithTransformContainer, customCloseMenuOnScroll]\n );\n\n return (\n <DropDownComponent\n className={cx(styles.dropdown, className)}\n selectProps={customProps}\n components={{\n DropdownIndicator,\n Menu,\n ClearIndicator,\n Input,\n Option,\n Control,\n SingleValue,\n ...(multi && {\n MultiValue: NOOP, // We need it for react-select to behave nice with \"multi\"\n ValueContainer: MultiValueContainer\n }),\n ...(isVirtualized && WindowedMenuList && { MenuList: WindowedMenuList })\n }}\n // When inside scroll we set the menu position by js and we can't follow the drop down location while use scrolling\n closeMenuOnScroll={closeMenuOnScroll}\n size={size}\n noOptionsMessage={noOptionsMessage}\n placeholder={placeholder}\n isDisabled={disabled}\n isClearable={!readOnly && clearable}\n isSearchable={!readOnly && searchable}\n readOnly={readOnly}\n aria-readonly={readOnly}\n aria-label={overrideAriaLabel}\n aria-details={tooltipContent}\n aria-haspopup=\"listbox\"\n defaultValue={defaultValue}\n value={value}\n onMenuOpen={onMenuOpen}\n onMenuClose={onMenuClose}\n onFocus={onFocus}\n onBlur={onBlur}\n onMenuScrollToBottom={onMenuScrollToBottom}\n captureMenuScroll={captureMenuScroll}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onInputChange={onInputChange}\n openMenuOnFocus={openMenuOnFocus}\n openMenuOnClick={openMenuOnClick}\n focusedOptionId={focusedOptionId}\n isRtl={rtl}\n styles={inlineStyles}\n theme={customTheme}\n maxMenuHeight={maxMenuHeight}\n menuPortalTarget={overrideMenuPortalTarget}\n menuPlacement={menuPlacement}\n menuPosition={menuPosition}\n menuIsOpen={!readOnly && menuIsOpen}\n tabIndex={tabIndex}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.DROPDOWN, id)}\n autoFocus={autoFocus}\n closeMenuOnSelect={closeMenuOnSelect}\n ref={ref as React.Ref<any>}\n withMandatoryDefaultOptions={withMandatoryDefaultOptions}\n isOptionSelected={isOptionSelected}\n isLoading={isLoading}\n loadingMessage={loadingMessage}\n tabSelectsValue={tabSelectsValue}\n filterOption={filterOption}\n {...asyncAdditions}\n {...additions}\n />\n );\n }\n);\n\nexport default withStaticProps(Dropdown, {\n sizes: BaseSizes,\n chipColors: DROPDOWN_CHIP_COLORS,\n menuPlacements: DROPDOWN_MENU_PLACEMENT,\n menuPositions: DROPDOWN_MENU_POSITION,\n createFilter: createFilter\n});\n"],"names":["withStaticProps","forwardRef","_ref","ref","className","optionWrapperClassName","singleValueWrapperClassName","dropdownMenuWrapperClassName","_ref$placeholder","placeholder","_ref$disabled","disabled","_ref$readOnly","readOnly","_ref$onMenuOpen","onMenuOpen","NOOP","_ref$onMenuClose","onMenuClose","_ref$onFocus","onFocus","_ref$onBlur","onBlur","_ref$onScroll","onScroll","_ref$onMenuScrollToBo","onMenuScrollToBottom","_ref$onChange","onChange","customOnChange","_ref$searchable","searchable","_ref$captureMenuScrol","captureMenuScroll","_ref$options","options","defaultValue","customValue","value","noOptionsMessage","openMenuOnFocus","openMenuOnClick","_ref$clearable","clearable","OptionRenderer","optionRenderer","ValueRenderer","valueRenderer","menuRenderer","_ref$menuPlacement","menuPlacement","rtl","_ref$size","size","asyncOptions","cacheOptions","defaultOptions","isVirtualized","menuPortalTarget","_ref$extraStyles","extraStyles","defaultCustomStyles","maxMenuHeight","menuIsOpen","_ref$tabIndex","tabIndex","_ref$id","id","DROPDOWN_ID","_ref$menuId","menuId","DROPDOWN_MENU_ID","_ref$menuAriaLabel","menuAriaLabel","DROPDOWN_MENU_ARIA_LABEL","_ref$autoFocus","autoFocus","_ref$multi","multi","_ref$multiline","multiline","customOnOptionRemove","onOptionRemove","onOptionSelect","onClear","_ref$onInputChange","onInputChange","_ref$closeMenuOnSelec","closeMenuOnSelect","_ref$closeMenuOnScrol","closeMenuOnScroll","customCloseMenuOnScroll","_ref$withMandatoryDef","withMandatoryDefaultOptions","isOptionSelected","_ref$insideOverflowCo","insideOverflowContainer","_ref$insideOverflowWi","insideOverflowWithTransformContainer","_ref$tooltipContent","tooltipContent","_ref$onKeyDown","onKeyDown","_ref$isLoading","isLoading","loadingMessage","ariaLabel","_ref$tabSelectsValue","tabSelectsValue","popupsContainerSelector","filterOption","_ref$menuPosition","menuPosition","dataTestId","_ref$withGroupDivider","withGroupDivider","controlRef","useRef","overrideMenuPortalTarget","document","querySelector","overrideDefaultValue","useMemo","Array","isArray","map","df","Object","assign","isMandatory","BaseSelect","prototype","renderLiveRegion","_useState","useState","_useState2","_slicedToArray","WindowedMenuList","setWindowedMenuList","useEffect","isClient","import","then","module","_useState3","_useState4","selected","setSelected","_useState5","_useState6","focusedOptionId","setFocusedOptionId","finalOptionRenderer","finalValueRenderer","isControlled","selectedOptions","selectedOptionsMap","reduce","acc","option","_defineProperty","overrideAriaLabel","concat","o","label","join","inlineStyles","baseStyles","generateBaseStyles","customStyles","mergedStyles","entries","accumulator","_ref2","_ref3","stylesGroup","stylesFn","defaultStyles","state","providedFn","provided","ADD_AUTO_HEIGHT_COMPONENTS","forEach","component","original","height","originalValueContainer","valueContainer","paddingLeft","Menu","useCallback","props","React","createElement","MenuComponent","Renderer","DropdownIndicator","DropdownIndicatorComponent","Option","OptionComponent","Input","_props$selectProps","selectProps","components","role","SingleValue","SingleValueComponent","selectedOption","ClearIndicator","ClearIndicatorComponent","optionValue","e","newSelectedOptions","filter","customProps","onSelectedDelete","isMultiline","DropDownComponent","AsyncSelect","Select","asyncAdditions","loadOptions","additions","isMulti","event","scrolledElement","target","parentElement","_a","classList","contains","menuStyles","dropdownMenuWrapper","cx","styles","dropdown","Control","MultiValue","ValueContainer","MultiValueContainer","MenuList","isDisabled","isClearable","isSearchable","meta","action","_toConsumableArray","isRtl","theme","customTheme","getTestId","ComponentDefaultTestId","DROPDOWN","sizes","BaseSizes","chipColors","DROPDOWN_CHIP_COLORS","menuPlacements","DROPDOWN_MENU_PLACEMENT","menuPositions","DROPDOWN_MENU_POSITION","createFilter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Dropdown.js","sources":["../../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import { ComponentDefaultTestId, getTestId } from \"../../tests/test-ids-utils\";\nimport cx from \"classnames\";\nimport { BaseSizes, SIZES_VALUES } from \"../../constants\";\nimport React, { forwardRef, useCallback, useMemo, useRef, useState, useEffect } from \"react\";\nimport Select, { InputProps, components, createFilter, ActionMeta } from \"react-select\";\nimport AsyncSelect from \"react-select/async/dist/react-select.cjs.js\";\nimport BaseSelect from \"react-select/base/dist/react-select.cjs.js\";\nimport { noop as NOOP } from \"lodash-es\";\nimport MenuComponent from \"./components/menu/menu\";\nimport DropdownIndicatorComponent from \"./components/DropdownIndicator/DropdownIndicator\";\nimport OptionComponent from \"./components/option/option\";\nimport SingleValueComponent from \"./components/singleValue/singleValue\";\nimport ClearIndicatorComponent from \"./components/ClearIndicator/ClearIndicator\";\nimport MultiValueContainer from \"./components/MultiValueContainer/MultiValueContainer\";\nimport { isClient } from \"../../utils/ssr-utils\";\nimport {\n ADD_AUTO_HEIGHT_COMPONENTS,\n defaultCustomStyles,\n DROPDOWN_CHIP_COLORS,\n DROPDOWN_ID,\n DROPDOWN_MENU_ARIA_LABEL,\n DROPDOWN_MENU_ID,\n DROPDOWN_MENU_PLACEMENT,\n DROPDOWN_MENU_POSITION\n} from \"./DropdownConstants\";\nimport generateBaseStyles, { customTheme } from \"./Dropdown.styles\";\nimport Control from \"./components/Control/Control\";\nimport menuStyles from \"./components/menu/menu.module.scss\";\nimport styles from \"./Dropdown.module.scss\";\nimport {\n DropdownOption,\n DropdownState,\n CustomMenuProps,\n CustomOptionProps,\n CustomSingleValueProps,\n DropdownComponentProps\n} from \"./Dropdown.types\";\nimport { VibeComponent, withStaticProps } from \"../../types\";\n\nconst Dropdown: VibeComponent<DropdownComponentProps, HTMLElement> & {\n sizes?: typeof BaseSizes;\n chipColors?: typeof DROPDOWN_CHIP_COLORS;\n menuPlacements?: typeof DROPDOWN_MENU_PLACEMENT;\n menuPositions?: typeof DROPDOWN_MENU_POSITION;\n createFilter?: typeof createFilter;\n} = forwardRef(\n (\n {\n className,\n optionWrapperClassName,\n singleValueWrapperClassName,\n dropdownMenuWrapperClassName,\n placeholder = \"\",\n disabled = false,\n readOnly = false,\n onMenuOpen = NOOP,\n onMenuClose = NOOP,\n onFocus = NOOP,\n onBlur = NOOP,\n onScroll = NOOP,\n onMenuScrollToBottom = NOOP,\n onChange: customOnChange = NOOP,\n searchable = true,\n captureMenuScroll = false,\n options = [],\n defaultValue,\n value: customValue,\n noOptionsMessage,\n openMenuOnFocus,\n openMenuOnClick,\n clearable = true,\n OptionRenderer,\n optionRenderer,\n ValueRenderer,\n valueRenderer,\n menuRenderer,\n menuPlacement = \"bottom\",\n rtl,\n size = \"medium\",\n asyncOptions,\n cacheOptions,\n defaultOptions,\n isVirtualized,\n menuPortalTarget,\n extraStyles = defaultCustomStyles,\n maxMenuHeight,\n menuIsOpen,\n tabIndex = \"0\",\n id = DROPDOWN_ID,\n menuId = DROPDOWN_MENU_ID,\n menuAriaLabel = DROPDOWN_MENU_ARIA_LABEL,\n autoFocus = false,\n multi = false,\n multiline = false,\n onOptionRemove: customOnOptionRemove,\n onOptionSelect,\n onClear,\n onInputChange = NOOP,\n closeMenuOnSelect = !multi,\n closeMenuOnScroll: customCloseMenuOnScroll = false,\n withMandatoryDefaultOptions = false,\n isOptionSelected,\n insideOverflowContainer = false,\n insideOverflowWithTransformContainer = false,\n tooltipContent = \"\",\n onKeyDown = NOOP,\n isLoading = false,\n loadingMessage,\n ariaLabel,\n tabSelectsValue = true,\n popupsContainerSelector,\n filterOption,\n menuPosition = \"absolute\",\n \"data-testid\": dataTestId,\n withGroupDivider = false\n }: DropdownComponentProps,\n ref: React.ForwardedRef<HTMLElement>\n ) => {\n const controlRef = useRef();\n const overrideMenuPortalTarget =\n menuPortalTarget || (popupsContainerSelector && document.querySelector(popupsContainerSelector));\n const overrideDefaultValue = useMemo(() => {\n if (defaultValue) {\n return Array.isArray(defaultValue)\n ? (defaultValue as DropdownOption[]).map(df => ({ ...df, isMandatory: true }))\n : { ...(defaultValue as DropdownOption), isMandatory: true };\n }\n\n return defaultValue;\n }, [defaultValue]);\n\n BaseSelect.prototype.renderLiveRegion = (): null => {\n return null;\n };\n\n // SSR support\n const [WindowedMenuList, setWindowedMenuList] = useState(null);\n useEffect(() => {\n if (isClient()) {\n // Dynamically import the specific named export from react-windowed-select for SSR support\n import(\"react-windowed-select\").then(module => {\n setWindowedMenuList(() => module.WindowedMenuList);\n });\n }\n }, []);\n\n const [selected, setSelected] = useState(overrideDefaultValue || []);\n const [focusedOptionId, setFocusedOptionId] = useState(\"\");\n const finalOptionRenderer = optionRenderer || OptionRenderer;\n const finalValueRenderer = valueRenderer || ValueRenderer;\n const isControlled = !!customValue;\n const selectedOptions = customValue ?? selected;\n const selectedOptionsMap = useMemo(() => {\n if (Array.isArray(selectedOptions)) {\n return selectedOptions.reduce((acc, option) => ({ ...acc, [option.value]: option }), {});\n }\n return {};\n }, [selectedOptions]);\n\n const overrideAriaLabel = useMemo(() => {\n return (\n ariaLabel ||\n `${readOnly ? \"Readonly \" : \"\"} ${tooltipContent} ${\n Array.isArray(selectedOptions) ? `Selected: ${selectedOptions.map(o => o.label).join(\", \")}` : \"Select\"\n }`\n );\n }, [ariaLabel, readOnly, selectedOptions, tooltipContent]);\n const value = multi ? selectedOptions : customValue;\n\n const inlineStyles = useMemo(() => {\n // We first want to get the default stylized groups (e.g. \"container\", \"menu\").\n const baseStyles = generateBaseStyles({\n size,\n rtl,\n insideOverflowContainer,\n controlRef,\n insideOverflowWithTransformContainer,\n withGroupDivider\n });\n\n type BaseStyles = typeof baseStyles;\n\n // Then we want to run the consumer's root-level custom styles with our \"base\" override groups.\n const customStyles = extraStyles(baseStyles);\n\n // Lastly, we create a style groups object that makes sure we run each custom group with our basic overrides.\n const mergedStyles: any = Object.entries(customStyles).reduce((accumulator, [stylesGroup, stylesFn]) => {\n return {\n ...accumulator,\n [stylesGroup]: (defaultStyles: BaseStyles, state: DropdownState) => {\n const providedFn = baseStyles[stylesGroup as keyof BaseStyles];\n const provided = providedFn ? providedFn(defaultStyles, state) : defaultStyles;\n\n return stylesFn(provided, state);\n }\n };\n }, {} as BaseStyles);\n\n if (multi) {\n if (multiline) {\n ADD_AUTO_HEIGHT_COMPONENTS.forEach((component: string) => {\n const original = mergedStyles[component];\n mergedStyles[component] = (provided: BaseStyles, state: DropdownState) => ({\n ...original(provided, state),\n height: \"auto\"\n });\n });\n }\n\n const originalValueContainer = mergedStyles.valueContainer;\n mergedStyles.valueContainer = (provided: BaseStyles, state: DropdownState) => ({\n ...originalValueContainer(provided, state),\n paddingLeft: 6\n });\n }\n\n return mergedStyles;\n }, [size, rtl, insideOverflowContainer, insideOverflowWithTransformContainer, extraStyles, multi, multiline]);\n\n const Menu = useCallback(\n (props: CustomMenuProps) => (\n <MenuComponent\n {...props}\n id={menuId}\n ariaLabel={menuAriaLabel}\n Renderer={menuRenderer}\n dropdownMenuWrapperClassName={dropdownMenuWrapperClassName}\n onScroll={onScroll}\n />\n ),\n [dropdownMenuWrapperClassName, menuRenderer, menuId, menuAriaLabel, onScroll]\n );\n\n const DropdownIndicator = useCallback(\n (props: React.HTMLAttributes<HTMLElement> & { size?: SIZES_VALUES }) => (\n <DropdownIndicatorComponent {...props} size={size} />\n ),\n [size]\n );\n\n const Option = useCallback(\n (props: CustomOptionProps) => (\n <OptionComponent\n setFocusedOptionId={setFocusedOptionId}\n {...props}\n Renderer={finalOptionRenderer}\n optionWrapperClassName={optionWrapperClassName}\n />\n ),\n [finalOptionRenderer, optionWrapperClassName, setFocusedOptionId]\n );\n\n const Input = useCallback(\n (props: InputProps | any) => {\n const { focusedOptionId, menuIsOpen } = props.selectProps;\n const ariaActiveDescendant = focusedOptionId && menuIsOpen ? focusedOptionId : \"\";\n return (\n <components.Input\n {...props}\n aria-activedescendant={ariaActiveDescendant}\n role=\"combobox\"\n aria-expanded={!readOnly && menuIsOpen}\n aria-label=\"Dropdown input\"\n aria-controls={menuId}\n />\n );\n },\n [menuId, readOnly]\n );\n\n const SingleValue = useCallback(\n (props: CustomSingleValueProps) => (\n <SingleValueComponent\n {...props}\n readOnly={readOnly}\n Renderer={finalValueRenderer}\n selectedOption={selectedOptions[0]}\n singleValueWrapperClassName={singleValueWrapperClassName}\n />\n ),\n [finalValueRenderer, readOnly, selectedOptions, singleValueWrapperClassName]\n );\n\n const ClearIndicator = useCallback(\n (props: React.HTMLAttributes<HTMLElement> & { size?: SIZES_VALUES }) => (\n <ClearIndicatorComponent {...props} size={size} />\n ),\n [size]\n );\n\n const onOptionRemove = useMemo(() => {\n return function (optionValue: number, e: React.MouseEvent | React.KeyboardEvent) {\n if (customOnOptionRemove) {\n customOnOptionRemove(selectedOptionsMap[optionValue]);\n }\n const newSelectedOptions = Array.isArray(selectedOptions)\n ? selectedOptions.filter(option => option.value !== optionValue)\n : selectedOptions;\n\n if (customOnChange) {\n customOnChange(newSelectedOptions, e);\n }\n setSelected(newSelectedOptions);\n };\n }, [customOnChange, customOnOptionRemove, selectedOptions, selectedOptionsMap]);\n\n const customProps = useMemo(\n () => ({\n selectedOptions,\n onSelectedDelete: onOptionRemove,\n isMultiline: multiline,\n insideOverflowContainer,\n insideOverflowWithTransformContainer,\n controlRef,\n tooltipContent,\n popupsContainerSelector,\n size\n }),\n [\n selectedOptions,\n onOptionRemove,\n multiline,\n insideOverflowContainer,\n insideOverflowWithTransformContainer,\n tooltipContent,\n popupsContainerSelector,\n size\n ]\n );\n const onChange = (option: DropdownOption | DropdownOption[], meta: ActionMeta<DropdownOption>) => {\n if (customOnChange) {\n customOnChange(option, meta);\n }\n\n switch (meta.action) {\n case \"select-option\": {\n const selectedOption = multi ? meta.option : option;\n\n if (onOptionSelect) {\n onOptionSelect(selectedOption);\n }\n\n if (!isControlled) {\n setSelected([...selectedOptions, selectedOption]);\n }\n break;\n }\n\n case \"clear\":\n if (onClear) {\n onClear();\n }\n\n if (!isControlled) {\n if (withMandatoryDefaultOptions) setSelected(overrideDefaultValue);\n else setSelected([]);\n }\n break;\n }\n };\n\n const DropDownComponent: React.ElementType = asyncOptions ? AsyncSelect : Select;\n\n const asyncAdditions = {\n ...(asyncOptions && {\n loadOptions: asyncOptions,\n cacheOptions,\n ...(defaultOptions && { defaultOptions })\n })\n };\n\n const additions = {\n ...(!asyncOptions && { options }),\n ...(multi && {\n isMulti: true\n })\n };\n\n const closeMenuOnScroll = useCallback(\n (event: React.FocusEvent) => {\n const scrolledElement = event.target;\n if (scrolledElement?.parentElement?.classList.contains(menuStyles.dropdownMenuWrapper)) {\n return false;\n }\n return customCloseMenuOnScroll || insideOverflowContainer || insideOverflowWithTransformContainer;\n },\n [insideOverflowContainer, insideOverflowWithTransformContainer, customCloseMenuOnScroll]\n );\n\n return (\n <DropDownComponent\n className={cx(styles.dropdown, className)}\n selectProps={customProps}\n components={{\n DropdownIndicator,\n Menu,\n ClearIndicator,\n Input,\n Option,\n Control,\n SingleValue,\n ...(multi && {\n MultiValue: NOOP, // We need it for react-select to behave nice with \"multi\"\n ValueContainer: MultiValueContainer\n }),\n ...(isVirtualized && WindowedMenuList && { MenuList: WindowedMenuList })\n }}\n // When inside scroll we set the menu position by js and we can't follow the drop down location while use scrolling\n closeMenuOnScroll={closeMenuOnScroll}\n size={size}\n noOptionsMessage={noOptionsMessage}\n placeholder={placeholder}\n isDisabled={disabled}\n isClearable={!readOnly && clearable}\n isSearchable={!readOnly && searchable}\n readOnly={readOnly}\n aria-readonly={readOnly}\n aria-label={overrideAriaLabel}\n aria-details={tooltipContent}\n aria-haspopup=\"listbox\"\n defaultValue={defaultValue}\n value={value}\n onMenuOpen={onMenuOpen}\n onMenuClose={onMenuClose}\n onFocus={onFocus}\n onBlur={onBlur}\n onMenuScrollToBottom={onMenuScrollToBottom}\n captureMenuScroll={captureMenuScroll}\n onChange={onChange}\n onKeyDown={onKeyDown}\n onInputChange={onInputChange}\n openMenuOnFocus={openMenuOnFocus}\n openMenuOnClick={openMenuOnClick}\n focusedOptionId={focusedOptionId}\n isRtl={rtl}\n styles={inlineStyles}\n theme={customTheme}\n maxMenuHeight={maxMenuHeight}\n menuPortalTarget={overrideMenuPortalTarget}\n menuPlacement={menuPlacement}\n menuPosition={menuPosition}\n menuIsOpen={!readOnly && menuIsOpen}\n tabIndex={tabIndex}\n id={id}\n data-testid={dataTestId || getTestId(ComponentDefaultTestId.DROPDOWN, id)}\n autoFocus={autoFocus}\n closeMenuOnSelect={closeMenuOnSelect}\n ref={ref as React.Ref<any>}\n withMandatoryDefaultOptions={withMandatoryDefaultOptions}\n isOptionSelected={isOptionSelected}\n isLoading={isLoading}\n loadingMessage={loadingMessage}\n tabSelectsValue={tabSelectsValue}\n filterOption={filterOption}\n {...asyncAdditions}\n {...additions}\n />\n );\n }\n);\n\nexport default withStaticProps(Dropdown, {\n sizes: BaseSizes,\n chipColors: DROPDOWN_CHIP_COLORS,\n menuPlacements: DROPDOWN_MENU_PLACEMENT,\n menuPositions: DROPDOWN_MENU_POSITION,\n createFilter: createFilter\n});\n"],"names":["withStaticProps","forwardRef","_ref","ref","className","optionWrapperClassName","singleValueWrapperClassName","dropdownMenuWrapperClassName","_ref$placeholder","placeholder","_ref$disabled","disabled","_ref$readOnly","readOnly","_ref$onMenuOpen","onMenuOpen","NOOP","_ref$onMenuClose","onMenuClose","_ref$onFocus","onFocus","_ref$onBlur","onBlur","_ref$onScroll","onScroll","_ref$onMenuScrollToBo","onMenuScrollToBottom","_ref$onChange","onChange","customOnChange","_ref$searchable","searchable","_ref$captureMenuScrol","captureMenuScroll","_ref$options","options","defaultValue","customValue","value","noOptionsMessage","openMenuOnFocus","openMenuOnClick","_ref$clearable","clearable","OptionRenderer","optionRenderer","ValueRenderer","valueRenderer","menuRenderer","_ref$menuPlacement","menuPlacement","rtl","_ref$size","size","asyncOptions","cacheOptions","defaultOptions","isVirtualized","menuPortalTarget","_ref$extraStyles","extraStyles","defaultCustomStyles","maxMenuHeight","menuIsOpen","_ref$tabIndex","tabIndex","_ref$id","id","DROPDOWN_ID","_ref$menuId","menuId","DROPDOWN_MENU_ID","_ref$menuAriaLabel","menuAriaLabel","DROPDOWN_MENU_ARIA_LABEL","_ref$autoFocus","autoFocus","_ref$multi","multi","_ref$multiline","multiline","customOnOptionRemove","onOptionRemove","onOptionSelect","onClear","_ref$onInputChange","onInputChange","_ref$closeMenuOnSelec","closeMenuOnSelect","_ref$closeMenuOnScrol","closeMenuOnScroll","customCloseMenuOnScroll","_ref$withMandatoryDef","withMandatoryDefaultOptions","isOptionSelected","_ref$insideOverflowCo","insideOverflowContainer","_ref$insideOverflowWi","insideOverflowWithTransformContainer","_ref$tooltipContent","tooltipContent","_ref$onKeyDown","onKeyDown","_ref$isLoading","isLoading","loadingMessage","ariaLabel","_ref$tabSelectsValue","tabSelectsValue","popupsContainerSelector","filterOption","_ref$menuPosition","menuPosition","dataTestId","_ref$withGroupDivider","withGroupDivider","controlRef","useRef","overrideMenuPortalTarget","document","querySelector","overrideDefaultValue","useMemo","Array","isArray","map","df","Object","assign","isMandatory","BaseSelect","prototype","renderLiveRegion","_useState","useState","_useState2","_slicedToArray","WindowedMenuList","setWindowedMenuList","useEffect","isClient","import","then","module","_useState3","_useState4","selected","setSelected","_useState5","_useState6","focusedOptionId","setFocusedOptionId","finalOptionRenderer","finalValueRenderer","isControlled","selectedOptions","selectedOptionsMap","reduce","acc","option","_defineProperty","overrideAriaLabel","concat","o","label","join","inlineStyles","baseStyles","generateBaseStyles","customStyles","mergedStyles","entries","accumulator","_ref2","_ref3","stylesGroup","stylesFn","defaultStyles","state","providedFn","provided","ADD_AUTO_HEIGHT_COMPONENTS","forEach","component","original","height","originalValueContainer","valueContainer","paddingLeft","Menu","useCallback","props","React","createElement","MenuComponent","Renderer","DropdownIndicator","DropdownIndicatorComponent","Option","OptionComponent","Input","_props$selectProps","selectProps","components","role","SingleValue","SingleValueComponent","selectedOption","ClearIndicator","ClearIndicatorComponent","optionValue","e","newSelectedOptions","filter","customProps","onSelectedDelete","isMultiline","DropDownComponent","AsyncSelect","Select","asyncAdditions","loadOptions","additions","isMulti","event","scrolledElement","target","parentElement","_a","classList","contains","menuStyles","dropdownMenuWrapper","cx","styles","dropdown","Control","MultiValue","ValueContainer","MultiValueContainer","MenuList","isDisabled","isClearable","isSearchable","meta","action","_toConsumableArray","isRtl","theme","customTheme","getTestId","ComponentDefaultTestId","DROPDOWN","sizes","BaseSizes","chipColors","DROPDOWN_CHIP_COLORS","menuPlacements","DROPDOWN_MENU_PLACEMENT","menuPositions","DROPDOWN_MENU_POSITION","createFilter"],"mappings":"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"}
|