carbon-react
Version:
A library of reusable React components for easily building user interfaces.
2 lines (1 loc) • 3.26 kB
JavaScript
import{jsx as e}from"react/jsx-runtime";import t from"react";import{SelectTextboxContext as r}from"./select-textbox.context.js";import{StyledSelectText as o,StyledSelectTextChildrenWrapper as n}from"./select-textbox.style.js";import{Textbox as a}from"../../../textbox/textbox.component.js";import l from"../../../../hooks/__internal__/useLocale/useLocale.js";function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),o.forEach((function(t){i(e,t,r[t])}))}return e}function s(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}function d(e,t){if(null==e)return{};var r,o,n=function(e,t){if(null==e)return{};var r,o,n={},a=Object.keys(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o<a.length;o++)r=a[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}const b=t.forwardRef(((t,i)=>{var{ariaLabel:b,ariaLabelledby:u,accessibilityLabelId:p,labelId:y,"aria-controls":f,disabled:O=!1,isOpen:m,id:h,readOnly:x=!1,placeholder:j,size:v="medium",onClick:g,onFocus:w,onBlur:P,formattedValue:I="",selectedValue:C,required:D,hasTextCursor:k,transparent:L=!1,activeDescendantId:S,onKeyDown:V,onChange:z}=t,_=d(t,["ariaLabel","ariaLabelledby","accessibilityLabelId","labelId","aria-controls","disabled","isOpen","id","readOnly","placeholder","size","onClick","onFocus","onBlur","formattedValue","selectedValue","required","hasTextCursor","transparent","activeDescendantId","onKeyDown","onChange"]);const q=l(),B=j||q.select.placeholder(),E=!O&&!x&&!I;function F(e){null==g||g(e)}const K=c({disabled:O,id:h,readOnly:x,required:D,onClick:F,onFocus:function(e){O||x||null==w||w(e)},onBlur:P,labelId:y,type:"text",ref:i,onKeyDown:V},_),{"aria-describedby":T}=_,A=d(_,["aria-describedby"]),$={"aria-expanded":x?void 0:m,"aria-labelledby":p?`${u||y} ${p}`:u,"aria-activedescendant":S,"aria-controls":f,"aria-autocomplete":k?"both":void 0,role:x?void 0:"combobox"},N="string"==typeof C||Array.isArray(C)&&"string"==typeof C[0];return e(r.Provider,{value:{isInputInSelect:!0},children:e(a,s(c({"aria-describedby":T,"aria-label":b,"data-element":"select-input","data-role":"select-textbox",inputIcon:"dropdown",autoComplete:"off",size:v,formattedValue:I,placeholder:k?B:void 0},$,K),{onChange:z,value:N?C:void 0,my:0,children:!k&&e(o,s(c({"aria-hidden":!0,"data-element":"select-text","data-role":"select-text",disabled:O,hasPlaceholder:E,onClick:O||x?void 0:F,readOnly:x,transparent:L,size:v},A),{children:e(n,{children:E?B:I})}))}))})}));b.displayName="SelectTextbox";export{b as default};