UNPKG

primereact

Version:

PrimeReact is an open source UI library for React featuring a rich set of 80+ 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.07 kB
import*as e from"react";import{Tooltip as t}from"primereact/tooltip";import{ObjectUtils as n,DomHandler as r,classNames as l}from"primereact/utils";function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}function o(e){if(Array.isArray(e))return e}function u(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,l,a=[],o=!0,u=!1;try{for(n=n.call(e);!(o=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);o=!0);}catch(e){u=!0,l=e}finally{try{o||null==n.return||n.return()}finally{if(u)throw l}}return a}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function c(e,t){if(e){if("string"==typeof e)return i(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(e,t):void 0}}function s(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var p=e.memo(e.forwardRef((function(i,f){var d,m,h=e.useState(!1),y=(m=2,o(d=h)||u(d,m)||c(d,m)||s()),b=y[0],v=y[1],g=e.useRef(null),I=e.useRef(i.inputRef),w=i.checked===i.trueValue,E=function(e){if(i.onChange){var t=w?i.falseValue:i.trueValue;i.onChange({originalEvent:e,value:t,stopPropagation:function(){},preventDefault:function(){},target:{name:i.name,id:i.id,value:t}})}};e.useImperativeHandle(f,(function(){return{props:i,getElement:function(){return g.current},getInput:function(){return g.current}}})),e.useEffect((function(){n.combinedRefs(I,i.inputRef)}),[I,i.inputRef]);var R=n.isNotEmpty(i.tooltip),k=n.findDiffKeys(i,p.defaultProps),O=n.reduceKeys(k,r.ARIA_PROPS),S=l("p-inputswitch p-component",{"p-inputswitch-checked":w,"p-disabled":i.disabled,"p-focus":b},i.className);return e.createElement(e.Fragment,null,e.createElement("div",a({ref:g,id:i.id,className:S,style:i.style},k,{onClick:function(e){i.disabled||(E(e),r.focus(I.current),e.preventDefault())},role:"checkbox","aria-checked":w}),e.createElement("div",{className:"p-hidden-accessible"},e.createElement("input",a({ref:I,type:"checkbox",id:i.inputId,name:i.name,checked:w,onChange:E,onFocus:function(e){v(!0),i.onFocus&&i.onFocus(e)},onBlur:function(e){v(!1),i.onBlur&&i.onBlur(e)},disabled:i.disabled,role:"switch",tabIndex:i.tabIndex,"aria-checked":w},O))),e.createElement("span",{className:"p-inputswitch-slider"})),R&&e.createElement(t,a({target:g,content:i.tooltip},i.tooltipOptions)))})));p.displayName="InputSwitch",p.defaultProps={__TYPE:"InputSwitch",checked:!1,className:null,disabled:!1,falseValue:!1,id:null,inputId:null,inputRef:null,name:null,onBlur:null,onChange:null,onFocus:null,style:null,tabIndex:null,tooltip:null,tooltipOptions:null,trueValue:!0};export{p as InputSwitch};