primereact
Version:
PrimeReact is an open source UI library for React featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime
2 lines (1 loc) • 3.64 kB
JavaScript
import*as t from"react";import{PrimeReactContext as e}from"primereact/api";import{ComponentBase as r,useHandleStyle as n}from"primereact/componentbase";import{useMergeProps as o}from"primereact/hooks";import{KeyFilter as i}from"primereact/keyfilter";import{Tooltip as l}from"primereact/tooltip";import{classNames as a,ObjectUtils as p,DomHandler as u}from"primereact/utils";function s(){return s=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},s.apply(this,arguments)}function f(t){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},f(t)}function c(t,e){if("object"!==f(t)||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!==f(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}function y(t){var e=c(t,"string");return"symbol"===f(e)?e:String(e)}var m=r.extend({defaultProps:{__TYPE:"InputText",__parentMetadata:null,children:void 0,className:null,invalid:!1,variant:null,keyfilter:null,onBeforeInput:null,onInput:null,onKeyDown:null,onPaste:null,tooltip:null,tooltipOptions:null,validateOnly:!1},css:{classes:{root:function(t){var e=t.props,r=t.context;return a("p-inputtext p-component",{"p-disabled":e.disabled,"p-filled":t.isFilled,"p-invalid":e.invalid,"p-variant-filled":e.variant?"filled"===e.variant:r&&"filled"===r.inputStyle})}}}});function d(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function v(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?d(Object(r),!0).forEach((function(e){var n,o,i;n=t,i=r[e],(o=y(o=e))in n?Object.defineProperty(n,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[o]=i})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):d(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}var b=t.memo(t.forwardRef((function(r,f){var c=o(),y=t.useContext(e),d=m.getProps(r,y),b=m.setMetaData(v(v({props:d},d.__parentMetadata),{},{context:{disabled:d.disabled}})),O=b.ptm,P=b.cx;n(m.css.styles,b.isUnstyled,{name:"inputtext",styled:!0});var g=t.useRef(f);t.useEffect((function(){p.combinedRefs(g,f)}),[g,f]);var j=t.useMemo((function(){return p.isNotEmpty(d.value)||p.isNotEmpty(d.defaultValue)}),[d.value,d.defaultValue]),w=p.isNotEmpty(d.tooltip),k=c({className:a(d.className,P("root",{context:y,isFilled:j})),onBeforeInput:function(t){d.onBeforeInput&&d.onBeforeInput(t),d.keyfilter&&i.onBeforeInput(t,d.keyfilter,d.validateOnly)},onInput:function(t){var e=t.target,r=!0;d.keyfilter&&d.validateOnly&&(r=i.validate(t,d.keyfilter)),d.onInput&&d.onInput(t,r),p.isNotEmpty(e.value)?u.addClass(e,"p-filled"):u.removeClass(e,"p-filled")},onKeyDown:function(t){d.onKeyDown&&d.onKeyDown(t),d.keyfilter&&i.onKeyPress(t,d.keyfilter,d.validateOnly)},onPaste:function(t){d.onPaste&&d.onPaste(t),d.keyfilter&&i.onPaste(t,d.keyfilter,d.validateOnly)}},m.getOtherProps(d),O("root"));return t.createElement(t.Fragment,null,t.createElement("input",s({ref:g},k)),w&&t.createElement(l,s({target:g,content:d.tooltip,pt:O("tooltip")},d.tooltipOptions)))})));b.displayName="InputText";export{b as InputText};