@ebay/ui-core-react
Version:
Skin components build off React
2 lines (1 loc) • 2.13 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S=require("../tslib.es6-C4EgNkz1.js"),n=require("react"),R=require("classnames"),V=require("../icon-CR8ApQBy.js"),j=require("../forwardRef-DBQKIlPy.js"),k=require("../utils-C9NL3q0j.js"),x=require("../hooks-uidlIIid.js"),d=t=>{var{children:e}=t,l=S.__rest(t,["children"]);return n.createElement("option",Object.assign({},l),e)},N=t=>typeof t<"u",z=t=>{var{value:e,defaultValue:l,className:o,borderless:u,name:i,disabled:r,onChange:f=()=>{},onBlur:p=()=>{},onFocus:h=()=>{},floatingLabel:m,forwardedRef:b,children:s,inputSize:g,invalid:v}=t,a=S.__rest(t,["value","defaultValue","className","borderless","name","disabled","onChange","onBlur","onFocus","floatingLabel","forwardedRef","children","inputSize","invalid"]);const w=v||a["aria-invalid"]==="true",[C,O]=n.useState(l),E=x.useFloatingLabel({text:m,disabled:r,size:g,invalid:w}),F=c=>{const{value:y,selectedIndex:B}=c.target;N(e)||O(y),f(c,{index:B,selected:[y]})},G=c=>{p(c)},q=c=>{h(c)},L=R("select",o,{"select--borderless":u,"select--large":g==="large"});return n.createElement(E.Container,null,n.createElement(E.Label,{htmlFor:a.id}),n.createElement("span",{className:L},n.createElement("select",Object.assign({},a,{name:i,value:N(e)?e:C,disabled:r,onChange:F,onBlur:G,onFocus:q,ref:b}),_(s)),n.createElement(V.EbayIcon,{name:"chevronDown12",height:"8",width:"8"})))},I=j.withForwardRef(z);function T(t){const e={};return t.forEach(l=>{const o=l.props;o.optgroup&&(Object.prototype.hasOwnProperty.call(e,o.optgroup)||(e[o.optgroup]=[]),e[o.optgroup].push(o))}),e}function _(t){const e=[],l=[];let o={},u=!1;const i=k.filterByType(t,d).map(r=>n.cloneElement(r,{}));if(i){o=T(i);let r;return i.forEach((f,p)=>{const{value:h,className:m,children:b,optgroup:s}=f.props;if(u=s&&e.indexOf(s)===-1,u){r=s;const v=o[r].map(a=>n.createElement(d,{key:`opt-${a.value}`,value:a.value,className:a.className},a.children));l.push(n.createElement("optgroup",{key:p,label:s},v)),e.push(s)}else s||l.push(n.createElement(d,{key:p,value:h,className:m},b))}),l}}exports.EbaySelect=I;exports.EbaySelectOption=d;