UNPKG

@ebay/ui-core-react

Version:

Skin components build off React

2 lines (1 loc) 2.55 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("../tslib.es6-C4EgNkz1.js"),t=require("react"),S=require("classnames"),b=require("../textbox-Bp4UkkZJ.js"),v=require("../icon-button-B1aE4GTn.js"),j=p=>{const{className:E="",value:s=1,min:u=1,max:r=1/0,label:y="",a11yDeleteText:o="",onChange:h=()=>{},onInputChange:N=()=>{},onFocus:f=()=>{},onBlur:C=()=>{},onKeyDown:D=()=>{},onKeyPress:K=()=>{},onKeyUp:g=()=>{},onDeleteClick:w=()=>{},onIncrement:B=()=>{},onDecrement:_=()=>{}}=p,c=R.__rest(p,["className","value","min","max","label","a11yDeleteText","onChange","onInputChange","onFocus","onBlur","onKeyDown","onKeyPress","onKeyUp","onDeleteClick","onIncrement","onDecrement"]),k=o?1:0,[a,i]=t.useState(s??k),m=t.useRef(null),d=(n,e=0)=>{const M=o?1:0;let l=parseInt(n,10)+e;return isNaN(l)?l=M:l>r?l=r:l<u&&(l=u),l},I=n=>{if(!m.current)return;const e=m.current;e.classList.remove("number-input--increment"),e.classList.remove("number-input--decrement"),e.classList.remove("number-input--increment-disabled"),e.classList.remove("number-input--decrement-disabled"),e.offsetWidth,e.classList.add(`number-input--${n}`)},P=n=>{const e=d(a,1);I(e>=r?"increment-disabled":"increment"),i(e),B(n,{value:e}),h(n,{value:e})},T=n=>{const e=d(a,-1);I(e<=u?"decrement-disabled":"decrement"),i(e),_(n,{value:e}),h(n,{value:e})},x=n=>{const e=d(n.target.value,0);i(e),N(n,{value:e})},V=(n,e)=>{f(n,{value:Number(e.value)})},q=(n,e)=>{C(n,{value:Number(e.value)})},F=(n,e)=>{D(n,{value:Number(e.value)})},L=(n,e)=>{K(n,{value:Number(e.value)})},U=(n,e)=>{g(n,{value:Number(e.value)})},z=n=>{w(n,{value:a})};return t.createElement("span",{ref:m,className:S("number-input",o&&a===1&&"number-input--show-delete",E)},t.createElement(b.EbayTextbox,{max:r,min:u,onBlur:q,onChange:x,onFocus:V,onInputChange:x,onKeyDown:F,onKeyPress:L,onKeyUp:U,type:"number",value:a},t.createElement(b.EbayTextboxPrefixIcon,null,y&&t.createElement("label",{htmlFor:c?.id||"number-input"},y),t.createElement(v.EbayIconButton,{"aria-hidden":!0,className:"number-input__decrement",disabled:a<=u,icon:"remove24",onClick:T,size:"small",tabIndex:-1,transparent:!0})),t.createElement(b.EbayTextboxPostfixIcon,null,o&&t.createElement(v.EbayIconButton,{"aria-label":o,className:"number-input__delete",icon:"delete24",onClick:z,size:"small",transparent:!0}),t.createElement(v.EbayIconButton,{"aria-hidden":!0,className:"number-input__increment",disabled:a>=r,icon:"add24",onClick:P,size:"small",tabIndex:-1,transparent:!0}))))};exports.EbayNumberInput=j;