UNPKG

@suolun/aliyun-captcha

Version:

aliyun-captcha

159 lines (143 loc) 5.76 kB
/** * Bundle of @auraxy/aliyun-captcha * Generated: 2019-11-06 * Version: 1.0.0 * License: MIT * Author: */ import React, { forwardRef, useImperativeHandle, useEffect } from 'react'; function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * Bundle of @livelybone/singleton * Generated: 2019-08-03 * Version: 1.1.1 * License: MIT * Author: 2631541504@qq.com */ /** * 每个单例的 id * * The id of a singleton * */ var ids = new Map(); /** * @desc 返回 id 对应的一个对象 * * Return a singleton of any object(such as Promise, Function, Object...) corresponding to the id * */ function singletonObj(id, defaultValue) { var k = "singleton-any-".concat(id || 'default'); if (!ids.has(k)) { ids.set(k, defaultValue ? defaultValue() : {}); } return ids.get(k); } function LoadAliyunCaptcha(name, src) { return singletonObj(name, function () { var dom = document.createElement('script'); dom.type = 'text/javascript'; dom.async = true; dom.src = src; document.head.appendChild(dom); return new Promise(function (res) { return dom.onload = res; }); }); } function LoadAliyunCaptchas() { return LoadAliyunCaptcha('smartCaptcha', '//g.alicdn.com/sd/smartCaptcha/0.0.4/index.js').then(function () { LoadAliyunCaptcha('quizCaptcha', '//g.alicdn.com/sd/quizCaptcha/0.0.1/index.js').then(function () { LoadAliyunCaptcha('guide', '//g.alicdn.com/sd/nvc/1.1.112/guide.js?t=2015052012'); }); }); } function resetAliyunCaptcha(sc) { try { if (sc) sc.reset(); } catch (error) { console.warn('AliyunCaptcha reset error', error); } } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var _smartCaptchaExtendConfig = { renderTo: 'sc', width: 280, height: 42, default_txt: '点击按钮开始智能验证', success_txt: '验证成功', fail_txt: '验证失败,请在此点击按钮刷新', scaning_txt: '智能检测中', fail: function fail() {} }; var _NVC_Opt = { renderTo: 'captcha', trans: { "key1": "code0", "nvcCode": 200 }, elements: ['//img.alicdn.com/tfs/TB17cwllsLJ8KJjy0FnXXcFDpXa-50-74.png', '//img.alicdn.com/tfs/TB17cwllsLJ8KJjy0FnXXcFDpXa-50-74.png'], bg_back_prepared: '//img.alicdn.com/tps/TB1skE5SFXXXXb3XXXXXXXXXXXX-100-80.png', bg_front: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABQCAMAAADY1yDdAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAADUExURefk5w+ruswAAAAfSURBVFjD7cExAQAAAMKg9U9tCU+gAAAAAAAAAIC3AR+QAAFPlUGoAAAAAElFTkSuQmCC', obj_ok: '//img.alicdn.com/tfs/TB1rmyTltfJ8KJjy0FeXXXKEXXa-50-74.png', bg_back_pass: '//img.alicdn.com/tfs/TB1KDxCSVXXXXasXFXXXXXXXXXX-100-80.png', obj_error: '//img.alicdn.com/tfs/TB1q9yTltfJ8KJjy0FeXXXKEXXa-50-74.png', bg_back_fail: '//img.alicdn.com/tfs/TB1w2oOSFXXXXb4XpXXXXXXXXXX-100-80.png', upLang: { "cn": { _ggk_guide: "请摁住鼠标左键,刮出两面盾牌", _ggk_success: "恭喜您成功刮出盾牌<br/>继续下一步操作吧", _ggk_loading: "加载中", _ggk_fail: ['呀,盾牌不见了<br/>请', "javascript:noCaptcha.reset()", '再来一次', '或', "http://survey.taobao.com/survey/QgzQDdDd?token=%TOKEN", '反馈问题'], _ggk_action_timeout: ['我等得太久啦<br/>请', "javascript:noCaptcha.reset()", '再来一次', '或', "http://survey.taobao.com/survey/QgzQDdDd?token=%TOKEN", '反馈问题'], _ggk_net_err: ['网络实在不给力<br/>请', "javascript:noCaptcha.reset()", '再来一次', '或', "http://survey.taobao.com/survey/QgzQDdDd?token=%TOKEN", '反馈问题'], _ggk_too_fast: ['您刮得太快啦<br/>请', "javascript:noCaptcha.reset()", '再来一次', '或', "http://survey.taobao.com/survey/QgzQDdDd?token=%TOKEN", '反馈问题'] } } }; var AliyunCaptcha = forwardRef(function (_ref, ref) { var appkey = _ref.appkey, scene = _ref.scene, success = _ref.success, NVC_Opt = _ref.NVC_Opt, smartCaptchaExtendConfig = _ref.smartCaptchaExtendConfig; var ic; useImperativeHandle(ref, function () { return { reset: function reset() { ic.reset(); } }; }); var smartConfig = _objectSpread({}, _smartCaptchaExtendConfig, {}, smartCaptchaExtendConfig); var init = function init() { window.NVC_Opt = _objectSpread({}, _NVC_Opt, {}, NVC_Opt, { appkey: appkey, scene: scene }); ic = new smartCaptcha(_objectSpread({}, smartConfig, {}, success)); ic.init(); }; useEffect(function () { LoadAliyunCaptchas().then(function () { init(); }); }, []); return React.createElement("div", { id: smartConfig.renderTo }); }); export default AliyunCaptcha; export { LoadAliyunCaptcha, LoadAliyunCaptchas, resetAliyunCaptcha };