UNPKG

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) 2.73 kB
this.primereact=this.primereact||{},this.primereact.togglebutton=function(e,t,n,o,l){"use strict";function r(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var c=r(t);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 o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},a.apply(this,arguments)}var i={defaultProps:{__TYPE:"ToggleButton",id:null,onIcon:null,offIcon:null,onLabel:"Yes",offLabel:"No",iconPos:"left",style:null,className:null,checked:!1,tabIndex:0,tooltip:null,tooltipOptions:null,onChange:null,onFocus:null,onBlur:null,children:void 0},getProps:function(e){return l.ObjectUtils.getMergedProps(e,i.defaultProps)},getOtherProps:function(e){return l.ObjectUtils.getDiffProps(e,i.defaultProps)}},u=c.memo(c.forwardRef((function(e,t){var r=i.getProps(e),u=c.useRef(null),s=r.onLabel&&r.onLabel.length>0&&r.offLabel&&r.offLabel.length>0,p=r.onIcon&&r.onIcon.length>0&&r.offIcon&&r.offIcon.length>0,f=s?r.checked?r.onLabel:r.offLabel:"&nbsp;",d=r.checked?r.onIcon:r.offIcon,g=function(e){!r.disabled&&r.onChange&&r.onChange({originalEvent:e,value:!r.checked,stopPropagation:function(){},preventDefault:function(){},target:{name:r.name,id:r.id,value:!r.checked}})};c.useImperativeHandle(t,(function(){return{props:r,focus:function(){return l.DomHandler.focusFirstElement(u.current)},getElement:function(){return u.current}}}));var b=l.ObjectUtils.isNotEmpty(r.tooltip),m=r.disabled?-1:r.tabIndex,h=i.getOtherProps(r),v=l.classNames("p-button p-togglebutton p-component",{"p-button-icon-only":p&&!s,"p-highlight":r.checked,"p-disabled":r.disabled},r.className),O=function(){if(p){var e=l.classNames("p-button-icon p-c",{"p-button-icon-left":"left"===r.iconPos&&f,"p-button-icon-right":"right"===r.iconPos&&f});return l.IconUtils.getJSXIcon(d,{className:e},{props:r})}return null}();return c.createElement(c.Fragment,null,c.createElement("div",a({ref:u,id:r.id,className:v,style:r.style},h,{onClick:g,onFocus:r.onFocus,onBlur:r.onBlur,onKeyDown:function(e){32===e.keyCode&&(g(e),e.preventDefault())},tabIndex:m,role:"button","aria-pressed":r.checked}),O,c.createElement("span",{className:"p-button-label"},f),c.createElement(n.Ripple,null)),b&&c.createElement(o.Tooltip,a({target:u,content:r.tooltip},r.tooltipOptions)))})));return u.displayName="ToggleButton",e.ToggleButton=u,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.ripple,primereact.tooltip,primereact.utils);