react-google-recaptcha-v3
Version:
React component for google-recaptcha v3
11 lines (10 loc) • 12.1 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),r=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,o=function(){return o=Object.assign||function(e){for(var t,r=1,o=arguments.length;r<o;r++)for(var n in t=arguments[r])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},o.apply(this,arguments)};function n(e,t,r,o){return new(r||(r=Promise))((function(n,a){function c(e){try{s(o.next(e))}catch(e){a(e)}}function i(e){try{s(o.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(c,i)}s((o=o.apply(e,t||[])).next())}))}function a(e,t){var r,o,n,a,c={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(a){return function(i){return function(a){if(r)throw new TypeError("Generator is already executing.");for(;c;)try{if(r=1,o&&(n=2&a[0]?o.return:a[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,a[1])).done)return n;switch(o=0,n&&(a=[2&a[0],n.value]),a[0]){case 0:case 1:n=a;break;case 4:return c.label++,{value:a[1],done:!1};case 5:c.label++,o=a[1],a=[0];continue;case 7:a=c.ops.pop(),c.trys.pop();continue;default:if(!(n=c.trys,(n=n.length>0&&n[n.length-1])||6!==a[0]&&2!==a[0])){c=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]<n[3])){c.label=a[1];break}if(6===a[0]&&c.label<n[1]){c.label=n[1],n=a;break}if(n&&c.label<n[2]){c.label=n[2],c.ops.push(a);break}n[2]&&c.ops.pop(),c.trys.pop();continue}a=t.call(e,c)}catch(e){a=[6,e],o=0}finally{r=n=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,i])}}}var c,i=function(e){var t;e?function(e){if(e)for(;e.lastChild;)e.lastChild.remove()}("string"==typeof e?document.getElementById(e):e):(t=document.querySelector(".grecaptcha-badge"))&&t.parentNode&&document.body.removeChild(t.parentNode)},s=function(e,t){i(t),window.___grecaptcha_cfg=void 0;var r=document.querySelector("#"+e);r&&r.remove(),function(){var e=document.querySelector('script[src^="https://www.gstatic.com/recaptcha/releases"]');e&&e.remove()}()},u=function(e){var t=e.render,r=e.onLoadCallbackName,o=e.language,n=e.onLoad,a=e.useRecaptchaNet,c=e.useEnterprise,i=e.scriptProps,s=void 0===i?{}:i,u=s.nonce,l=void 0===u?"":u,f=s.defer,p=void 0!==f&&f,d=s.async,y=void 0!==d&&d,m=s.id,v=void 0===m?"":m,h=s.appendTo,b=v||"google-recaptcha-v3";if(function(e){return!!document.querySelector("#"+e)}(b))n();else{var g=function(e){return"https://www."+(e.useRecaptchaNet?"recaptcha.net":"google.com")+"/recaptcha/"+(e.useEnterprise?"enterprise.js":"api.js")}({useEnterprise:c,useRecaptchaNet:a}),S=document.createElement("script");S.id=b,S.src=g+"?render="+t+("explicit"===t?"&onload="+r:"")+(o?"&hl="+o:""),l&&(S.nonce=l),S.defer=!!p,S.async=!!y,S.onload=n,("body"===h?document.body:document.getElementsByTagName("head")[0]).appendChild(S)}},l=function(e){"undefined"!=typeof process&&!!process.env&&"production"!==process.env.NODE_ENV||console.warn(e)};!function(e){e.SCRIPT_NOT_AVAILABLE="Recaptcha script is not available"}(c||(c={}));var f=t.createContext({executeRecaptcha:function(){throw Error("GoogleReCaptcha Context has not yet been implemented, if you are using useGoogleReCaptcha hook, make sure the hook is called inside component wrapped by GoogleRecaptchaProvider")}}),p=f.Consumer;var d=function(){return t.useContext(f)};function y(e,t){return e(t={exports:{}},t.exports),t.exports
/** @license React v16.13.1
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/}var m="function"==typeof Symbol&&Symbol.for,v=m?Symbol.for("react.element"):60103,h=m?Symbol.for("react.portal"):60106,b=m?Symbol.for("react.fragment"):60107,g=m?Symbol.for("react.strict_mode"):60108,S=m?Symbol.for("react.profiler"):60114,w=m?Symbol.for("react.provider"):60109,C=m?Symbol.for("react.context"):60110,$=m?Symbol.for("react.async_mode"):60111,x=m?Symbol.for("react.concurrent_mode"):60111,P=m?Symbol.for("react.forward_ref"):60112,R=m?Symbol.for("react.suspense"):60113,E=m?Symbol.for("react.suspense_list"):60120,M=m?Symbol.for("react.memo"):60115,N=m?Symbol.for("react.lazy"):60116,O=m?Symbol.for("react.block"):60121,_=m?Symbol.for("react.fundamental"):60117,j=m?Symbol.for("react.responder"):60118,T=m?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case v:switch(e=e.type){case $:case x:case b:case S:case g:case R:return e;default:switch(e=e&&e.$$typeof){case C:case P:case N:case M:case w:return e;default:return t}}case h:return t}}}function L(e){return k(e)===x}var F={AsyncMode:$,ConcurrentMode:x,ContextConsumer:C,ContextProvider:w,Element:v,ForwardRef:P,Fragment:b,Lazy:N,Memo:M,Portal:h,Profiler:S,StrictMode:g,Suspense:R,isAsyncMode:function(e){return L(e)||k(e)===$},isConcurrentMode:L,isContextConsumer:function(e){return k(e)===C},isContextProvider:function(e){return k(e)===w},isElement:function(e){return"object"==typeof e&&null!==e&&e.$$typeof===v},isForwardRef:function(e){return k(e)===P},isFragment:function(e){return k(e)===b},isLazy:function(e){return k(e)===N},isMemo:function(e){return k(e)===M},isPortal:function(e){return k(e)===h},isProfiler:function(e){return k(e)===S},isStrictMode:function(e){return k(e)===g},isSuspense:function(e){return k(e)===R},isValidElementType:function(e){return"string"==typeof e||"function"==typeof e||e===b||e===x||e===S||e===g||e===R||e===E||"object"==typeof e&&null!==e&&(e.$$typeof===N||e.$$typeof===M||e.$$typeof===w||e.$$typeof===C||e.$$typeof===P||e.$$typeof===_||e.$$typeof===j||e.$$typeof===T||e.$$typeof===O)},typeOf:k},G=y((function(e,t){"production"!==process.env.NODE_ENV&&function(){var e="function"==typeof Symbol&&Symbol.for,r=e?Symbol.for("react.element"):60103,o=e?Symbol.for("react.portal"):60106,n=e?Symbol.for("react.fragment"):60107,a=e?Symbol.for("react.strict_mode"):60108,c=e?Symbol.for("react.profiler"):60114,i=e?Symbol.for("react.provider"):60109,s=e?Symbol.for("react.context"):60110,u=e?Symbol.for("react.async_mode"):60111,l=e?Symbol.for("react.concurrent_mode"):60111,f=e?Symbol.for("react.forward_ref"):60112,p=e?Symbol.for("react.suspense"):60113,d=e?Symbol.for("react.suspense_list"):60120,y=e?Symbol.for("react.memo"):60115,m=e?Symbol.for("react.lazy"):60116,v=e?Symbol.for("react.block"):60121,h=e?Symbol.for("react.fundamental"):60117,b=e?Symbol.for("react.responder"):60118,g=e?Symbol.for("react.scope"):60119;function S(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:var d=e.type;switch(d){case u:case l:case n:case c:case a:case p:return d;default:var v=d&&d.$$typeof;switch(v){case s:case f:case m:case y:case i:return v;default:return t}}case o:return t}}}var w=u,C=l,$=s,x=i,P=r,R=f,E=n,M=m,N=y,O=o,_=c,j=a,T=p,k=!1;function L(e){return S(e)===l}t.AsyncMode=w,t.ConcurrentMode=C,t.ContextConsumer=$,t.ContextProvider=x,t.Element=P,t.ForwardRef=R,t.Fragment=E,t.Lazy=M,t.Memo=N,t.Portal=O,t.Profiler=_,t.StrictMode=j,t.Suspense=T,t.isAsyncMode=function(e){return k||(k=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),L(e)||S(e)===u},t.isConcurrentMode=L,t.isContextConsumer=function(e){return S(e)===s},t.isContextProvider=function(e){return S(e)===i},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return S(e)===f},t.isFragment=function(e){return S(e)===n},t.isLazy=function(e){return S(e)===m},t.isMemo=function(e){return S(e)===y},t.isPortal=function(e){return S(e)===o},t.isProfiler=function(e){return S(e)===c},t.isStrictMode=function(e){return S(e)===a},t.isSuspense=function(e){return S(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===n||e===l||e===c||e===a||e===p||e===d||"object"==typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===y||e.$$typeof===i||e.$$typeof===s||e.$$typeof===f||e.$$typeof===h||e.$$typeof===b||e.$$typeof===g||e.$$typeof===v)},t.typeOf=S}()})),A=(G.AsyncMode,G.ConcurrentMode,G.ContextConsumer,G.ContextProvider,G.Element,G.ForwardRef,G.Fragment,G.Lazy,G.Memo,G.Portal,G.Profiler,G.StrictMode,G.Suspense,G.isAsyncMode,G.isConcurrentMode,G.isContextConsumer,G.isContextProvider,G.isElement,G.isForwardRef,G.isFragment,G.isLazy,G.isMemo,G.isPortal,G.isProfiler,G.isStrictMode,G.isSuspense,G.isValidElementType,G.typeOf,y((function(e){"production"===process.env.NODE_ENV?e.exports=F:e.exports=G}))),V={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},z={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},I={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},D={};function q(e){return A.isMemo(e)?I:D[e.$$typeof]||V}D[A.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},D[A.Memo]=I;var B=Object.defineProperty,J=Object.getOwnPropertyNames,K=Object.getOwnPropertySymbols,U=Object.getOwnPropertyDescriptor,H=Object.getPrototypeOf,Q=Object.prototype;var W=function e(t,r,o){if("string"!=typeof r){if(Q){var n=H(r);n&&n!==Q&&e(t,n,o)}var a=J(r);K&&(a=a.concat(K(r)));for(var c=q(t),i=q(r),s=0;s<a.length;++s){var u=a[s];if(!(z[u]||o&&o[u]||i&&i[u]||c&&c[u])){var l=U(r,u);try{B(t,u,l)}catch(e){}}}}return t};exports.GoogleReCaptcha=function(e){var o=this,c=e.action,i=e.onVerify,s=e.refreshReCaptcha,u=d();t.useEffect((function(){var e=u.executeRecaptcha;if(e){n(o,void 0,void 0,(function(){var t;return a(this,(function(r){switch(r.label){case 0:return[4,e(c)];case 1:return t=r.sent(),i?(i(t),[2]):(l("Please define an onVerify function"),[2])}}))}))}}),[c,i,s,u]);var f=u.container;return"string"==typeof f?r.createElement("div",{id:f}):null},exports.GoogleReCaptchaConsumer=p,exports.GoogleReCaptchaContext=f,exports.GoogleReCaptchaProvider=function(e){var n=e.reCaptchaKey,a=e.useEnterprise,i=void 0!==a&&a,p=e.useRecaptchaNet,d=void 0!==p&&p,y=e.scriptProps,m=e.language,v=e.container,h=e.children,b=t.useState(null),g=b[0],S=b[1],w=t.useRef(n),C=JSON.stringify(y),$=JSON.stringify(null==v?void 0:v.parameters);t.useEffect((function(){if(n){var e=(null==y?void 0:y.id)||"google-recaptcha-v3",t=(null==y?void 0:y.onLoadCallbackName)||"onRecaptchaLoadCallback";window[t]=function(){var e=i?window.grecaptcha.enterprise:window.grecaptcha,t=o({badge:"inline",size:"invisible",sitekey:n},(null==v?void 0:v.parameters)||{});w.current=e.render(null==v?void 0:v.element,t)};return u({render:(null==v?void 0:v.element)?"explicit":n,onLoadCallbackName:t,useEnterprise:i,useRecaptchaNet:d,scriptProps:y,language:m,onLoad:function(){if(window&&window.grecaptcha){var e=i?window.grecaptcha.enterprise:window.grecaptcha;e.ready((function(){S(e)}))}else l("<GoogleRecaptchaProvider /> "+c.SCRIPT_NOT_AVAILABLE)},onError:function(){l("Error loading google recaptcha script")}}),function(){s(e,null==v?void 0:v.element)}}l("<GoogleReCaptchaProvider /> recaptcha key not provided")}),[i,d,C,$,m,n,null==v?void 0:v.element]);var x=t.useCallback((function(e){if(!g||!g.execute)throw new Error("<GoogleReCaptchaProvider /> Google Recaptcha has not been loaded");return g.execute(w.current,{action:e})}),[g,w]),P=t.useMemo((function(){return{executeRecaptcha:g?x:void 0,container:null==v?void 0:v.element}}),[x,g,null==v?void 0:v.element]);return r.createElement(f.Provider,{value:P},h)},exports.useGoogleReCaptcha=d,exports.withGoogleReCaptcha=function(e){var t=function(t){return r.createElement(p,null,(function(n){return r.createElement(e,o({},t,{googleReCaptchaProps:n}))}))};return t.displayName="withGoogleReCaptcha("+(e.displayName||e.name||"Component")+")",W(t,e),t};
//# sourceMappingURL=react-google-recaptcha-v3.cjs.js.map