UNPKG

12.5 kBJavaScriptView Raw
1/**
2 * Captcha component.
3 * @class ApCaptcha
4 */
5
6'use strict';
7
8Object.defineProperty(exports, "__esModule", {
9 value: true
10});
11
12var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
13
14var _react = require('react');
15
16var _react2 = _interopRequireDefault(_react);
17
18var _classnames = require('classnames');
19
20var _classnames2 = _interopRequireDefault(_classnames);
21
22var _apemanReactIcon = require('apeman-react-icon');
23
24var _apemanReactImage = require('apeman-react-image');
25
26var _apemanReactSpinner = require('apeman-react-spinner');
27
28var _apemanReactTouchable = require('apeman-react-touchable');
29
30var _breact = require('breact');
31
32function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
34function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
35
36function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
37
38function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
39
40/** @lends ApCaptcha */
41var ApCaptcha = function (_Component) {
42 _inherits(ApCaptcha, _Component);
43
44 function ApCaptcha(props) {
45 _classCallCheck(this, ApCaptcha);
46
47 var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ApCaptcha).call(this, props));
48
49 var s = _this;
50 (0, _breact.autobind)(s);
51 return _this;
52 }
53
54 _createClass(ApCaptcha, [{
55 key: 'render',
56 value: function render() {
57 var s = this;
58 var props = s.props;
59
60 return _react2.default.createElement(
61 'div',
62 { className: (0, _classnames2.default)('ap-captcha', props.className),
63 style: Object.assign({}, props.style) },
64 _react2.default.createElement(
65 'div',
66 null,
67 _react2.default.createElement(_apemanReactSpinner.ApSpinner, { className: 'ap-captcha-spinner',
68 enabled: props.spinning,
69 theme: props.spinnerTheme
70 }),
71 _react2.default.createElement(_apemanReactImage.ApImage, { className: 'ap-captcha-image',
72 src: props.src,
73 width: props.imageWidth,
74 height: props.imageHeight,
75 onLoad: s.handleImageLoad,
76 onError: s.handleImageError,
77 alt: ''
78 })
79 ),
80 _react2.default.createElement(
81 'div',
82 null,
83 _react2.default.createElement(
84 'a',
85 { className: 'ap-captcha-refresh-button' },
86 _react2.default.createElement(
87 _apemanReactTouchable.ApTouchable,
88 { onTap: s.handleTap },
89 _react2.default.createElement(
90 'span',
91 null,
92 _react2.default.createElement(_apemanReactIcon.ApIcon, { className: (0, _classnames2.default)('ap-captcha-refresh-icon', props.refreshIcon, {
93 'fa-spin': props.spinning
94 }) }),
95 _react2.default.createElement(
96 'span',
97 null,
98 props.refreshText
99 )
100 )
101 )
102 )
103 )
104 );
105 }
106
107 // ------------------
108 // Custom
109 // ------------------
110
111 }, {
112 key: 'handleTap',
113 value: function handleTap() {
114 var s = this;
115 var props = s.props;
116
117 if (props.onRefresh) {
118 props.onRefresh();
119 }
120 }
121 }, {
122 key: 'handleImageLoad',
123 value: function handleImageLoad(ev) {
124 var s = this;
125 var props = s.props;
126
127 if (props.onImageLoad) {
128 props.onImageLoad(ev);
129 }
130 }
131 }, {
132 key: 'handleImageError',
133 value: function handleImageError(err) {
134 var s = this;
135 var props = s.props;
136
137 if (props.onImageError) {
138 props.onImageError(err);
139 }
140 }
141 }]);
142
143 return ApCaptcha;
144}(_react.Component);
145
146Object.assign(_react.Component, {
147 // --------------------
148 // Specs
149 // --------------------
150 propTypes: {
151 /** Image source url */
152 src: _react.PropTypes.string,
153 /** Handler for refresh */
154 onRefresh: _react.PropTypes.func,
155 refreshIcon: _react.PropTypes.string,
156 refreshText: _react.PropTypes.string,
157 imageWidth: _react.PropTypes.number,
158 imageHeight: _react.PropTypes.number,
159 onImageLoad: _react.PropTypes.func,
160 onImageError: _react.PropTypes.func,
161 spinning: _react.PropTypes.bool,
162 spinnerTheme: _react.PropTypes.string
163 },
164
165 defaultProps: {
166 src: null,
167 onRefresh: null,
168 refreshIcon: 'fa fa-refresh',
169 refreshText: '',
170 imageWidth: 240,
171 imageHeight: 94,
172 onImageLoad: null,
173 onImageError: null,
174 spinning: false,
175 spinnerTheme: _apemanReactSpinner.ApSpinner.DEFAULT_THEME
176 }
177
178});
179
180exports.default = ApCaptcha;
181//# sourceMappingURL=data:application/json;base64,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QVZaOztBQW5CUyxDQUF6Qjs7a0JBa0NlLFMiLCJmaWxlIjoiYXBfY2FwdGNoYS5qc3giLCJzb3VyY2VSb290IjoibGliIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYXB0Y2hhIGNvbXBvbmVudC5cbiAqIEBjbGFzcyBBcENhcHRjaGFcbiAqL1xuXG4ndXNlIHN0cmljdCdcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBQcm9wVHlwZXMgYXMgdHlwZXN9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcydcblxuaW1wb3J0IHtBcEljb259IGZyb20gJ2FwZW1hbi1yZWFjdC1pY29uJ1xuaW1wb3J0IHtBcEltYWdlfSBmcm9tICdhcGVtYW4tcmVhY3QtaW1hZ2UnXG5pbXBvcnQge0FwU3Bpbm5lcn0gZnJvbSAnYXBlbWFuLXJlYWN0LXNwaW5uZXInXG5pbXBvcnQge0FwVG91Y2hhYmxlfSBmcm9tICdhcGVtYW4tcmVhY3QtdG91Y2hhYmxlJ1xuaW1wb3J0IHthdXRvYmluZH0gZnJvbSAnYnJlYWN0J1xuXG4vKiogQGxlbmRzIEFwQ2FwdGNoYSAqL1xuY2xhc3MgQXBDYXB0Y2hhIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IgKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpXG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBhdXRvYmluZChzKVxuICB9XG5cbiAgcmVuZGVyICgpIHtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIGxldCB7IHByb3BzIH0gPSBzXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXsgY2xhc3NuYW1lcygnYXAtY2FwdGNoYScsIHByb3BzLmNsYXNzTmFtZSl9XG4gICAgICAgICAgIHN0eWxlPXtPYmplY3QuYXNzaWduKHt9LCBwcm9wcy5zdHlsZSkgfT5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8QXBTcGlubmVyIGNsYXNzTmFtZT1cImFwLWNhcHRjaGEtc3Bpbm5lclwiXG4gICAgICAgICAgICAgICAgICAgICBlbmFibGVkPXsgcHJvcHMuc3Bpbm5pbmcgfVxuICAgICAgICAgICAgICAgICAgICAgdGhlbWU9eyBwcm9wcy5zcGlubmVyVGhlbWUgfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPEFwSW1hZ2UgY2xhc3NOYW1lPVwiYXAtY2FwdGNoYS1pbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgc3JjPXsgcHJvcHMuc3JjIH1cbiAgICAgICAgICAgICAgICAgICB3aWR0aD17IHByb3BzLmltYWdlV2lkdGggfVxuICAgICAgICAgICAgICAgICAgIGhlaWdodD17IHByb3BzLmltYWdlSGVpZ2h0IH1cbiAgICAgICAgICAgICAgICAgICBvbkxvYWQ9eyBzLmhhbmRsZUltYWdlTG9hZCB9XG4gICAgICAgICAgICAgICAgICAgb25FcnJvcj17IHMuaGFuZGxlSW1hZ2VFcnJvciB9XG4gICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8YSBjbGFzc05hbWU9XCJhcC1jYXB0Y2hhLXJlZnJlc2gtYnV0dG9uXCI+XG4gICAgICAgICAgICA8QXBUb3VjaGFibGUgb25UYXA9eyBzLmhhbmRsZVRhcCB9PlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxBcEljb24gY2xhc3NOYW1lPXsgY2xhc3NuYW1lcygnYXAtY2FwdGNoYS1yZWZyZXNoLWljb24nLCBwcm9wcy5yZWZyZXNoSWNvbiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAnZmEtc3Bpbic6IHByb3BzLnNwaW5uaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSB9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnsgcHJvcHMucmVmcmVzaFRleHQgfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9BcFRvdWNoYWJsZT5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEN1c3RvbVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS1cblxuICBoYW5kbGVUYXAgKCkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHsgcHJvcHMgfSA9IHNcbiAgICBpZiAocHJvcHMub25SZWZyZXNoKSB7XG4gICAgICBwcm9wcy5vblJlZnJlc2goKVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUltYWdlTG9hZCAoZXYpIHtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIGxldCB7IHByb3BzIH0gPSBzXG4gICAgaWYgKHByb3BzLm9uSW1hZ2VMb2FkKSB7XG4gICAgICBwcm9wcy5vbkltYWdlTG9hZChldilcbiAgICB9XG4gIH1cblxuICBoYW5kbGVJbWFnZUVycm9yIChlcnIpIHtcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIGxldCB7IHByb3BzIH0gPSBzXG4gICAgaWYgKHByb3BzLm9uSW1hZ2VFcnJvcikge1xuICAgICAgcHJvcHMub25JbWFnZUVycm9yKGVycilcbiAgICB9XG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihDb21wb25lbnQsIHtcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU3BlY3NcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgcHJvcFR5cGVzOiB7XG4gICAgLyoqIEltYWdlIHNvdXJjZSB1cmwgKi9cbiAgICBzcmM6IHR5cGVzLnN0cmluZyxcbiAgICAvKiogSGFuZGxlciBmb3IgcmVmcmVzaCAqL1xuICAgIG9uUmVmcmVzaDogdHlwZXMuZnVuYyxcbiAgICByZWZyZXNoSWNvbjogdHlwZXMuc3RyaW5nLFxuICAgIHJlZnJlc2hUZXh0OiB0eXBlcy5zdHJpbmcsXG4gICAgaW1hZ2VXaWR0aDogdHlwZXMubnVtYmVyLFxuICAgIGltYWdlSGVpZ2h0OiB0eXBlcy5udW1iZXIsXG4gICAgb25JbWFnZUxvYWQ6IHR5cGVzLmZ1bmMsXG4gICAgb25JbWFnZUVycm9yOiB0eXBlcy5mdW5jLFxuICAgIHNwaW5uaW5nOiB0eXBlcy5ib29sLFxuICAgIHNwaW5uZXJUaGVtZTogdHlwZXMuc3RyaW5nXG4gIH0sXG5cbiAgZGVmYXVsdFByb3BzOiB7XG4gICAgc3JjOiBudWxsLFxuICAgIG9uUmVmcmVzaDogbnVsbCxcbiAgICByZWZyZXNoSWNvbjogJ2ZhIGZhLXJlZnJlc2gnLFxuICAgIHJlZnJlc2hUZXh0OiAnJyxcbiAgICBpbWFnZVdpZHRoOiAyNDAsXG4gICAgaW1hZ2VIZWlnaHQ6IDk0LFxuICAgIG9uSW1hZ2VMb2FkOiBudWxsLFxuICAgIG9uSW1hZ2VFcnJvcjogbnVsbCxcbiAgICBzcGlubmluZzogZmFsc2UsXG4gICAgc3Bpbm5lclRoZW1lOiBBcFNwaW5uZXIuREVGQVVMVF9USEVNRVxuICB9XG5cbn0pXG5cbmV4cG9ydCBkZWZhdWx0IEFwQ2FwdGNoYVxuIl19
\No newline at end of file