UNPKG

carbon-react

Version:

A library of reusable React components for easily building user interfaces.

2 lines (1 loc) 3.6 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),n=require("./input.style.js"),r=require("../input-behaviour/input-behaviour.component.js"),o=require("../input-behaviour/input-group-behaviour.component.js"),u=require("../../components/select/__internal__/select-textbox/select-textbox.context.js");function i(e){return e&&e.__esModule?e:{default:e}}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const c=i(t).default.forwardRef(((i,c)=>{var{align:a,"aria-labelledby":s,"aria-describedby":d,placeholder:p,disabled:b,readOnly:f,autoFocus:y,onClick:O,onChangeDeferred:v,onChange:h,onBlur:g,onFocus:j,deferTimeout:m,type:x="text",id:C,name:P,validationIconId:B,inputBorderRadius:w="borderRadius050",enterKeyHint:I}=i,F=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},u=Object.keys(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r<u.length;r++)n=u[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(i,["align","aria-labelledby","aria-describedby","placeholder","disabled","readOnly","autoFocus","onClick","onChangeDeferred","onChange","onBlur","onFocus","deferTimeout","type","id","name","validationIconId","inputBorderRadius","enterKeyHint"]);const S=t.useContext(r.InputContext),R=t.useContext(o.InputGroupContext),{isInputInSelect:k}=t.useContext(u.SelectTextboxContext),_=t.useRef(null);let E=t.useRef(null);c&&"current"in c&&(E=c);const q=t.useCallback((e=>{E.current=e,"function"==typeof c&&c(e),y&&e&&e.focus(),I&&e&&e.setAttribute("enterkeyhint",I)}),[y,c,I]);t.useEffect((()=>{S.inputRef&&S.inputRef(E)}),[S,E]),t.useEffect((()=>{b&&S.onBlur&&S.onBlur()}),[b,S]);const D=d?[d]:[];(S.hasFocus||R.hasFocus||S.hasMouseOver||R.hasMouseOver)&&B&&D.push(B);const T=D.length?D.filter(Boolean).join(" "):void 0;return e.jsx(n.default,(M=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){l(e,t,n[t])}))}return e}({},F),H={isInputInSelect:k,"data-has-autofocus":!!y||void 0,"aria-describedby":T,"aria-labelledby":s,align:a,placeholder:p,disabled:b,readOnly:f,name:P,type:x,id:C||P,ref:q,"data-element":"input",onFocus:e=>{j&&j(e),S.onFocus&&S.onFocus(),R.onFocus&&R.onFocus(),"text"===x&&function(e){setTimeout((()=>{if(null==e?void 0:e.current){const{selectionStart:t,selectionEnd:n,value:r}=e.current,{length:o}=r;(0===t&&0===n||t===o&&n===o)&&document.activeElement===e.current&&e.current.setSelectionRange(0,o)}}))}(E)},onBlur:e=>{g&&g(e),S.onBlur&&S.onBlur(),R.onBlur&&R.onBlur()},onClick:b||f?void 0:e=>{var t;O&&O(e),null==E||null===(t=E.current)||void 0===t||t.focus()},onChange:e=>{h&&h(e),(e=>{v&&(_.current&&clearTimeout(_.current),_.current=setTimeout((()=>{v(e)}),m||750))})(e)},inputBorderRadius:w},H=null!=H?H:{},Object.getOwnPropertyDescriptors?Object.defineProperties(M,Object.getOwnPropertyDescriptors(H)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(H)).forEach((function(e){Object.defineProperty(M,e,Object.getOwnPropertyDescriptor(H,e))})),M));var M,H}));c.displayName="Input",exports.default=c;