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) 2.25 kB
this.primereact=this.primereact||{},this.primereact.captcha=function(e,t,n,r){"use strict";function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var a=c(t);function u(){return u=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},u.apply(this,arguments)}var i=a.memo(a.forwardRef((function(e,t){var c=a.useRef(null),o=a.useRef(null),s=a.useRef(null),l=a.useRef(!1),p=function(){o.current=window.grecaptcha.render(c.current,{sitekey:e.siteKey,theme:e.theme,type:e.type,size:e.size,tabindex:e.tabIndex,hl:e.language,callback:h,"expired-callback":g})},f=function(){o.current&&window.grecaptcha.reset(o.current)},d=function(){return o.current?window.grecaptcha.getResponse(o.current):null},h=function(t){e.onResponse&&e.onResponse({response:t})},g=function(){e.onExpire&&e.onExpire()},m=function(){if(s.current=null,!window.grecaptcha){var e=document.head||document.getElementsByTagName("head")[0],t=document.createElement("script");t.src="https://www.google.com/recaptcha/api.js?render=explicit",t.async=!0,t.defer=!0,t.onload=function(){window.grecaptcha?window.grecaptcha.ready((function(){p()})):console.warn("Recaptcha is not loaded")},s.current=t,e.appendChild(s.current)}};n.useMountEffect((function(){l.current||(m(),window.grecaptcha&&p(),l.current=!0)})),n.useUnmountEffect((function(){s.current&&s.current.parentNode&&s.current.parentNode.removeChild(s.current)})),a.useImperativeHandle(t,(function(){return{props:e,reset:f,getResponse:d,getElement:function(){return c.current}}}));var w=r.ObjectUtils.findDiffKeys(e,i.defaultProps);return a.createElement("div",u({ref:c,id:e.id},w))})));return i.displayName="Captcha",i.defaultProps={__TYPE:"Captcha",id:null,siteKey:null,theme:"light",type:"image",size:"normal",tabIndex:0,language:"en",onResponse:null,onExpire:null},e.Captcha=i,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.hooks,primereact.utils);