UNPKG

apeman-react-sign

Version:
194 lines (164 loc) 14.4 kB
/** * Form for signmod * @class ApSignmodForm */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.ApSignmodForm = undefined; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _apemanReactForm = require('apeman-react-form'); var _apemanReactField = require('apeman-react-field'); var _apemanReactButton = require('apeman-react-button'); var _apemanReactText = require('apeman-react-text'); var _apemanReactPassword = require('apeman-react-password'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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; } /** @lends ApSignmodForm */ var ApSignmodForm = _react2.default.createClass({ displayName: 'ApSignmodForm', // -------------------- // Specs // -------------------- propTypes: { email: _react.PropTypes.bool, password: _react.PropTypes.bool }, mixins: [], statics: {}, getInitialState: function getInitialState() { return {}; }, getDefaultProps: function getDefaultProps() { return { labels: { email: 'Email', password: 'Password', submit: 'Update' }, email: true, password: true }; }, render: function render() { var s = this; var props = s.props; var id = props.id; var idOf = props.idOf; var labels = props.labels; var values = props.values; var onUpdate = props.onUpdate; var onSubmit = props.onSubmit; var spinning = props.spinning; var errorList = props.errorList; var errorStyle = props.errorStyle; var centered = props.centered; return _react2.default.createElement( _apemanReactForm.ApForm, { id: id, spinning: spinning, centered: centered, className: (0, _classnames2.default)('ap-signin-form', props.className), style: Object.assign({}, props.style) }, _react2.default.createElement( _apemanReactField.ApFieldSet, { plain: true }, errorList, errorStyle, props.email ? s.renderEmailField() : null, props.password ? s.renderPasswordField() : null ), _react2.default.createElement( _apemanReactField.ApFieldSet, { plain: true }, _react2.default.createElement( _apemanReactField.ApField, { center: true, className: 'ap-signmod-form-button-field' }, _react2.default.createElement( _apemanReactButton.ApButton, { id: idOf('submit'), onTap: function onTap() { return onSubmit(s.props.values); }, wide: true, primary: true }, labels['submit'] ) ) ) ); }, // -------------------- // Lifecycle // -------------------- // ------------------ // Custom // ------------------ renderEmailField: function renderEmailField() { var name = 'email'; var s = this; var props = s.props; var idOf = props.idOf; var labels = props.labels; var values = props.values; var onUpdate = props.onUpdate; return _react2.default.createElement( _apemanReactField.ApField, { className: 'ap-signmod-form-email-field' }, _react2.default.createElement( _apemanReactField.ApFieldLabel, { htmlFor: idOf(name) }, labels[name] ), _react2.default.createElement( _apemanReactField.ApFieldValue, null, _react2.default.createElement(_apemanReactText.ApText, { id: idOf(name), name: name, value: values[name], onChange: function onChange(e) { return onUpdate(_defineProperty({}, name, e.target.value)); } }) ) ); }, renderPasswordField: function renderPasswordField() { var name = 'password'; var s = this; var props = s.props; var idOf = props.idOf; var labels = props.labels; var values = props.values; var onUpdate = props.onUpdate; return _react2.default.createElement( _apemanReactField.ApField, null, _react2.default.createElement( _apemanReactField.ApFieldLabel, { htmlFor: idOf(name) }, labels[name] ), _react2.default.createElement( _apemanReactField.ApFieldValue, null, _react2.default.createElement(_apemanReactPassword.ApPassword, { id: idOf(name), value: values[name], name: name, onChange: function onChange(e) { return onUpdate(_defineProperty({}, name, e.target.value)); } }) ) ); } }); exports.ApSignmodForm = ApSignmodForm; exports.default = (0, _apemanReactForm.withForm)(ApSignmodForm); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwX3NpZ25tb2RfZm9ybS5qc3giXSwibmFtZXMiOlsiQXBTaWdubW9kRm9ybSIsImNyZWF0ZUNsYXNzIiwicHJvcFR5cGVzIiwiZW1haWwiLCJib29sIiwicGFzc3dvcmQiLCJtaXhpbnMiLCJzdGF0aWNzIiwiZ2V0SW5pdGlhbFN0YXRlIiwiZ2V0RGVmYXVsdFByb3BzIiwibGFiZWxzIiwic3VibWl0IiwicmVuZGVyIiwicyIsInByb3BzIiwiaWQiLCJpZE9mIiwidmFsdWVzIiwib25VcGRhdGUiLCJvblN1Ym1pdCIsInNwaW5uaW5nIiwiZXJyb3JMaXN0IiwiZXJyb3JTdHlsZSIsImNlbnRlcmVkIiwiY2xhc3NOYW1lIiwiT2JqZWN0IiwiYXNzaWduIiwic3R5bGUiLCJyZW5kZXJFbWFpbEZpZWxkIiwicmVuZGVyUGFzc3dvcmRGaWVsZCIsIm5hbWUiLCJlIiwidGFyZ2V0IiwidmFsdWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OztBQUtBOzs7Ozs7O0FBRUE7Ozs7QUFDQTs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFQTtBQUNBLElBQU1BLGdCQUFnQixnQkFBTUMsV0FBTixDQUFrQjtBQUFBOzs7QUFFdEM7QUFDQTtBQUNBOztBQUVBQyxhQUFXO0FBQ1RDLFdBQU8saUJBQU1DLElBREo7QUFFVEMsY0FBVSxpQkFBTUQ7QUFGUCxHQU4yQjs7QUFXdENFLFVBQVEsRUFYOEI7O0FBYXRDQyxXQUFTLEVBYjZCOztBQWV0Q0MsaUJBZnNDLDZCQWVuQjtBQUNqQixXQUFPLEVBQVA7QUFDRCxHQWpCcUM7QUFtQnRDQyxpQkFuQnNDLDZCQW1CbkI7QUFDakIsV0FBTztBQUNMQyxjQUFRO0FBQ05QLGVBQU8sT0FERDtBQUVORSxrQkFBVSxVQUZKO0FBR05NLGdCQUFRO0FBSEYsT0FESDtBQU1MUixhQUFPLElBTkY7QUFPTEUsZ0JBQVU7QUFQTCxLQUFQO0FBU0QsR0E3QnFDO0FBK0J0Q08sUUEvQnNDLG9CQStCNUI7QUFDUixRQUFNQyxJ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QUxtQjtBQUFBLFFBTW5CTixNQU5tQixHQVNqQkksS0FUaUIsQ0FNbkJKLE1BTm1CO0FBQUEsUUFPbkJPLE1BUG1CLEdBU2pCSCxLQVRpQixDQU9uQkcsTUFQbUI7QUFBQSxRQVFuQkMsUUFSbUIsR0FTakJKLEtBVGlCLENBUW5CSSxRQVJtQjs7O0FBV3JCLFdBQ0U7QUFBQTtBQUFBO0FBQ0U7QUFBQTtBQUFBLFVBQWMsU0FBVUYsS0FBS2MsSUFBTCxDQUF4QjtBQUNJcEIsZUFBUW9CLElBQVI7QUFESixPQURGO0FBSUU7QUFBQTtBQUFBO0FBQ0UseUVBQVksSUFBS2QsS0FBS2MsSUFBTCxDQUFqQjtBQUNZLGlCQUFRYixPQUFRYSxJQUFSLENBRHBCO0FBRVksZ0JBQU9BLElBRm5CO0FBR1ksb0JBQVcsa0JBQUNDLENBQUQ7QUFBQSxtQkFBT2IsNkJBQVlZLElBQVosRUFBbUJDLEVBQUVDLE1BQUYsQ0FBU0MsS0FBNUIsRUFBUDtBQUFBO0FBSHZCO0FBREY7QUFKRixLQURGO0FBY0Q7QUF4SXFDLENBQWxCLENBQXRCOztRQTRJU2pDLGEsR0FBQUEsYTtrQkFDTSwrQkFBU0EsYUFBVCxDIiwiZmlsZSI6ImFwX3NpZ25tb2RfZm9ybS5qc3giLCJzb3VyY2VSb290IjoibGliIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3JtIGZvciBzaWdubW9kXG4gKiBAY2xhc3MgQXBTaWdubW9kRm9ybVxuICovXG5cbid1c2Ugc3RyaWN0J1xuXG5pbXBvcnQgUmVhY3QsIHsgUHJvcFR5cGVzIGFzIHR5cGVzIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJ1xuXG5pbXBvcnQgeyBBcEZvcm0sIHdpdGhGb3JtIH0gZnJvbSAnYXBlbWFuLXJlYWN0LWZvcm0nXG5pbXBvcnQgeyBBcEZpZWxkU2V0LCBBcEZpZWxkLCBBcEZpZWxkTGFiZWwsIEFwRmllbGRWYWx1ZSB9IGZyb20gJ2FwZW1hbi1yZWFjdC1maWVsZCdcbmltcG9ydCB7IEFwQnV0dG9uLCBBcENlbGxCdXR0b24sIEFwQ2VsbEJ1dHRvblJvdywgQXBJY29uQnV0dG9uLCBBcEljb25CdXR0b25Sb3cgfSBmcm9tICdhcGVtYW4tcmVhY3QtYnV0dG9uJ1xuaW1wb3J0IHsgQXBUZXh0IH0gZnJvbSAnYXBlbWFuLXJlYWN0LXRleHQnXG5pbXBvcnQgeyBBcFBhc3N3b3JkIH0gZnJvbSAnYXBlbWFuLXJlYWN0LXBhc3N3b3JkJ1xuXG4vKiogQGxlbmRzIEFwU2lnbm1vZEZvcm0gKi9cbmNvbnN0IEFwU2lnbm1vZEZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU3BlY3NcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICBwcm9wVHlwZXM6IHtcbiAgICBlbWFpbDogdHlwZXMuYm9vbCxcbiAgICBwYXNzd29yZDogdHlwZXMuYm9vbFxuICB9LFxuXG4gIG1peGluczogW10sXG5cbiAgc3RhdGljczoge30sXG5cbiAgZ2V0SW5pdGlhbFN0YXRlICgpIHtcbiAgICByZXR1cm4ge31cbiAgfSxcblxuICBnZXREZWZhdWx0UHJvcHMgKCkge1xuICAgIHJldHVybiB7XG4gICAgICBsYWJlbHM6IHtcbiAgICAgICAgZW1haWw6ICdFbWFpbCcsXG4gICAgICAgIHBhc3N3b3JkOiAnUGFzc3dvcmQnLFxuICAgICAgICBzdWJtaXQ6ICdVcGRhdGUnXG4gICAgICB9LFxuICAgICAgZW1haWw6IHRydWUsXG4gICAgICBwYXNzd29yZDogdHJ1ZVxuICAgIH1cbiAgfSxcblxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHsgcHJvcHMgfSA9IHNcbiAgICBsZXQge1xuICAgICAgaWQsXG4gICAgICBpZE9mLFxuICAgICAgbGFiZWxzLFxuICAgICAgdmFsdWVzLFxuICAgICAgb25VcGRhdGUsXG4gICAgICBvblN1Ym1pdCxcbiAgICAgIHNwaW5uaW5nLFxuICAgICAgZXJyb3JMaXN0LFxuICAgICAgZXJyb3JTdHlsZSxcbiAgICAgIGNlbnRlcmVkXG4gICAgfSA9IHByb3BzXG4gICAgcmV0dXJuIChcbiAgICAgIDxBcEZvcm0gaWQ9eyBpZCB9XG4gICAgICAgICAgICAgIHNwaW5uaW5nPXsgc3Bpbm5pbmcgfVxuICAgICAgICAgICAgICBjZW50ZXJlZD17IGNlbnRlcmVkIH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXsgY2xhc3NuYW1lcygnYXAtc2lnbmluLWZvcm0nLCBwcm9wcy5jbGFzc05hbWUpfVxuICAgICAgICAgICAgICBzdHlsZT17IE9iamVjdC5hc3NpZ24oe30sIHByb3BzLnN0eWxlKSB9XG4gICAgICA+XG4gICAgICAgIDxBcEZpZWxkU2V0IHBsYWluPlxuICAgICAgICAgIHsgZXJyb3JMaXN0IH1cbiAgICAgICAgICB7IGVycm9yU3R5bGUgfVxuICAgICAgICAgIHsgcHJvcHMuZW1haWwgPyBzLnJlbmRlckVtYWlsRmllbGQoKSA6IG51bGwgfVxuICAgICAgICAgIHsgcHJvcHMucGFzc3dvcmQgPyBzLnJlbmRlclBhc3N3b3JkRmllbGQoKSA6IG51bGwgfVxuICAgICAgICA8L0FwRmllbGRTZXQ+XG4gICAgICAgIDxBcEZpZWxkU2V0IHBsYWluPlxuICAgICAgICAgIHtcbiAgICAgICAgICAgIDxBcEZpZWxkIGNlbnRlciBjbGFzc05hbWU9J2FwLXNpZ25tb2QtZm9ybS1idXR0b24tZmllbGQnPlxuICAgICAgICAgICAgICA8QXBCdXR0b24gaWQ9eyBpZE9mKCdzdWJtaXQnKSB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvblRhcD17ICgpID0+IG9uU3VibWl0KHMucHJvcHMudmFsdWVzKSB9XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWRlXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7IGxhYmVsc1sgJ3N1Ym1pdCcgXSB9XG4gICAgICAgICAgICAgIDwvQXBCdXR0b24+XG4gICAgICAgICAgICA8L0FwRmllbGQ+XG4gICAgICAgICAgfVxuICAgICAgICA8L0FwRmllbGRTZXQ+XG4gICAgICA8L0FwRm9ybSA+XG4gICAgKVxuICB9LFxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIExpZmVjeWNsZVxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBDdXN0b21cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgcmVuZGVyRW1haWxGaWVsZCAoKSB7XG4gICAgY29uc3QgbmFtZSA9ICdlbWFpbCdcbiAgICBjb25zdCBzID0gdGhpc1xuICAgIGxldCB7IHByb3BzIH0gPSBzXG4gICAgbGV0IHtcbiAgICAgIGlkT2YsXG4gICAgICBsYWJlbHMsXG4gICAgICB2YWx1ZXMsXG4gICAgICBvblVwZGF0ZVxuICAgIH0gPSBwcm9wc1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxBcEZpZWxkIGNsYXNzTmFtZT0nYXAtc2lnbm1vZC1mb3JtLWVtYWlsLWZpZWxkJz5cbiAgICAgICAgPEFwRmllbGRMYWJlbCBodG1sRm9yPXsgaWRPZihuYW1lKSB9PlxuICAgICAgICAgIHsgbGFiZWxzWyBuYW1lIF0gfVxuICAgICAgICA8L0FwRmllbGRMYWJlbD5cbiAgICAgICAgPEFwRmllbGRWYWx1ZT5cbiAgICAgICAgICA8QXBUZXh0IGlkPXsgaWRPZihuYW1lKSB9XG4gICAgICAgICAgICAgICAgICBuYW1lPXsgbmFtZSB9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17IHZhbHVlc1sgbmFtZSBdIH1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsgKGUpID0+IG9uVXBkYXRlKHsgW25hbWVdOiBlLnRhcmdldC52YWx1ZSB9KSB9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9BcEZpZWxkVmFsdWU+XG4gICAgICA8L0FwRmllbGQ+XG4gICAgKVxuICB9LFxuXG4gIHJlbmRlclBhc3N3b3JkRmllbGQgKCkge1xuICAgIGNvbnN0IG5hbWUgPSAncGFzc3dvcmQnXG4gICAgY29uc3QgcyA9IHRoaXNcbiAgICBsZXQgeyBwcm9wcyB9ID0gc1xuICAgIGxldCB7XG4gICAgICBpZE9mLFxuICAgICAgbGFiZWxzLFxuICAgICAgdmFsdWVzLFxuICAgICAgb25VcGRhdGVcbiAgICB9ID0gcHJvcHNcblxuICAgIHJldHVybiAoXG4gICAgICA8QXBGaWVsZD5cbiAgICAgICAgPEFwRmllbGRMYWJlbCBodG1sRm9yPXsgaWRPZihuYW1lKSB9PlxuICAgICAgICAgIHsgbGFiZWxzWyBuYW1lIF0gfVxuICAgICAgICA8L0FwRmllbGRMYWJlbD5cbiAgICAgICAgPEFwRmllbGRWYWx1ZT5cbiAgICAgICAgICA8QXBQYXNzd29yZCBpZD17IGlkT2YobmFtZSkgfVxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXsgdmFsdWVzWyBuYW1lIF0gfVxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9eyBuYW1lIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17IChlKSA9PiBvblVwZGF0ZSh7IFtuYW1lXTogZS50YXJnZXQudmFsdWUgfSkgfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvQXBGaWVsZFZhbHVlPlxuICAgICAgPC9BcEZpZWxkPlxuICAgIClcbiAgfVxuXG59KVxuXG5leHBvcnQgeyBBcFNpZ25tb2RGb3JtIH1cbmV4cG9ydCBkZWZhdWx0IHdpdGhGb3JtKEFwU2lnbm1vZEZvcm0pXG4iXX0=