apeman-react-sign
Version:
apeman react package for sign components
322 lines (279 loc) • 24 kB
JavaScript
/**
* Form for signup
* @class ApSignupForm
*/
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ApSigninForm = undefined;
var _assign = require('babel-runtime/core-js/object/assign');
var _assign2 = _interopRequireDefault(_assign);
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
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');
var _apemanReactCaptcha = require('apeman-react-captcha');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var noop = function noop(e) {
return console.log(e);
};
/** @lends ApSigninForm */
var ApSigninForm = function (_Component) {
(0, _inherits3.default)(ApSigninForm, _Component);
function ApSigninForm(props) {
(0, _classCallCheck3.default)(this, ApSigninForm);
var _this = (0, _possibleConstructorReturn3.default)(this, (ApSigninForm.__proto__ || (0, _getPrototypeOf2.default)(ApSigninForm)).call(this, props));
var s = _this;
s.state = {};
return _this;
}
(0, _createClass3.default)(ApSigninForm, [{
key: 'render',
value: function render() {
var s = this;
var props = s.props;
var id = props.id,
idOf = props.idOf,
labels = props.labels,
values = props.values,
images = props.images,
actions = props.actions,
placeholders = props.placeholders,
onUpdate = props.onUpdate,
onSubmit = props.onSubmit,
spinning = props.spinning,
errorList = props.errorList,
errorStyle = props.errorStyle,
centered = props.centered,
captchaSpinning = props.captchaSpinning;
return _react2.default.createElement(
_apemanReactForm.ApForm,
{ id: id,
spinning: spinning,
centered: centered,
className: (0, _classnames2.default)('ap-signin-form', props.className),
style: (0, _assign2.default)({}, props.style)
},
_react2.default.createElement(
_apemanReactField.ApFieldSet,
{ plain: true },
errorList,
errorStyle,
_react2.default.createElement(ApSigninForm.KeyField, { idOf: idOf, labels: labels, values: values, onUpdate: onUpdate }),
_react2.default.createElement(ApSigninForm.EmailField, { idOf: idOf, labels: labels, values: values, onUpdate: onUpdate }),
_react2.default.createElement(ApSigninForm.PasswordField, { idOf: idOf, labels: labels, values: values, onUpdate: onUpdate })
),
_react2.default.createElement(
_apemanReactField.ApFieldSet,
{ plain: true },
_react2.default.createElement(ApSigninForm.CaptchaField, {
idOf: idOf,
labels: labels,
values: values,
onUpdate: onUpdate,
placeholders: placeholders,
images: images,
actions: actions,
captchaSpinning: captchaSpinning
})
),
_react2.default.createElement(
_apemanReactField.ApFieldSet,
{ plain: true },
props.children
),
_react2.default.createElement(
_apemanReactField.ApFieldSet,
{ plain: true },
_react2.default.createElement(ApSigninForm.ButtonField, { idOf: idOf, labels: labels, values: values, onSubmit: onSubmit })
)
);
}
}]);
return ApSigninForm;
}(_react.Component);
(0, _assign2.default)(ApSigninForm, {
// --------------------
// Specs
// --------------------
propTypes: {
captchaSpinning: _react.PropTypes.bool
},
defaultProps: {
labels: {
key: 'Username',
email: 'Email',
password: 'Password',
captcha: 'Captcha',
captchaRefresh: 'refresh',
submit: 'Sign Up'
},
placeholders: {
captcha: '(Type numbers above)'
},
images: {
captcha: ''
},
actions: {
captchaRefresh: noop
},
captchaSpinning: false
},
// --------------------
// Sub Component
// --------------------
KeyField: function KeyField(_ref) {
var idOf = _ref.idOf,
labels = _ref.labels,
values = _ref.values,
onUpdate = _ref.onUpdate;
return _react2.default.createElement(
_apemanReactField.ApField,
null,
_react2.default.createElement(
_apemanReactField.ApFieldLabel,
{ htmlFor: idOf('key') },
labels['key']
),
_react2.default.createElement(
_apemanReactField.ApFieldValue,
null,
_react2.default.createElement(_apemanReactText.ApText, { autoFocus: true,
id: idOf('key'),
name: 'key',
value: values['key'],
onChange: function onChange(e) {
return onUpdate({ key: e.target.value });
}
})
)
);
},
EmailField: function EmailField(_ref2) {
var idOf = _ref2.idOf,
labels = _ref2.labels,
values = _ref2.values,
onUpdate = _ref2.onUpdate;
return _react2.default.createElement(
_apemanReactField.ApField,
null,
_react2.default.createElement(
_apemanReactField.ApFieldLabel,
{ htmlFor: idOf('email') },
labels['email']
),
_react2.default.createElement(
_apemanReactField.ApFieldValue,
null,
_react2.default.createElement(_apemanReactText.ApText, { id: idOf('email'),
name: 'email',
value: values['email'],
onChange: function onChange(e) {
return onUpdate({ email: e.target.value });
}
})
)
);
},
PasswordField: function PasswordField(_ref3) {
var idOf = _ref3.idOf,
labels = _ref3.labels,
values = _ref3.values,
onUpdate = _ref3.onUpdate;
return _react2.default.createElement(
_apemanReactField.ApField,
null,
_react2.default.createElement(
_apemanReactField.ApFieldLabel,
{ htmlFor: idOf('password') },
labels['password']
),
_react2.default.createElement(
_apemanReactField.ApFieldValue,
null,
_react2.default.createElement(_apemanReactPassword.ApPassword, { id: idOf('password'),
name: 'password',
value: values['password'],
onChange: function onChange(e) {
return onUpdate({ password: e.target.value });
}
})
)
);
},
CaptchaField: function CaptchaField(_ref4) {
var idOf = _ref4.idOf,
labels = _ref4.labels,
values = _ref4.values,
onUpdate = _ref4.onUpdate,
placeholders = _ref4.placeholders,
images = _ref4.images,
actions = _ref4.actions,
captchaSpinning = _ref4.captchaSpinning;
return _react2.default.createElement(
_apemanReactField.ApField,
null,
_react2.default.createElement(
_apemanReactField.ApFieldLabel,
{ htmlFor: idOf('captcha') },
labels['captcha']
),
_react2.default.createElement(
_apemanReactField.ApFieldValue,
null,
_react2.default.createElement(_apemanReactCaptcha.ApCaptcha, { src: images['captcha'],
spinning: captchaSpinning,
refreshText: labels['captchaRefresh'],
onRefresh: actions['captchaRefresh'] }),
_react2.default.createElement(_apemanReactText.ApText, { id: idOf('captcha'),
name: 'captcha',
value: values['captcha'],
onChange: function onChange(e) {
return onUpdate({ captcha: e.target.value });
},
placeholder: placeholders['captcha']
})
)
);
},
ButtonField: function ButtonField(_ref5) {
var idOf = _ref5.idOf,
labels = _ref5.labels,
values = _ref5.values,
onSubmit = _ref5.onSubmit;
return _react2.default.createElement(
_apemanReactField.ApField,
{ center: true, className: 'ap-signup-form-button-field' },
_react2.default.createElement(
_apemanReactButton.ApButton,
{ id: idOf('submit'),
onTap: function onTap() {
return onSubmit(values);
},
wide: true,
primary: true
},
labels['submit']
)
);
}
});
exports.ApSigninForm = ApSigninForm;
exports.default = (0, _apemanReactForm.withForm)(ApSigninForm);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwX3NpZ251cF9mb3JtLmpzeCJdLCJuYW1lcyI6WyJub29wIiwiZSIsImNvbnNvbGUiLCJsb2ciLCJBcFNpZ25pbkZvcm0iLCJwcm9wcyIsInMiLCJzdGF0ZSIsImlkIiwiaWRPZiIsImxhYmVscyIsInZhbHVlcyIsImltYWdlcyIsImFjdGlvbnMiLCJwbGFjZWhvbGRlcnMiLCJvblVwZGF0ZSIsIm9uU3VibWl0Iiwic3Bpbm5pbmciLCJlcnJvckxpc3QiLCJlcnJvclN0eWxlIiwiY2VudGVyZWQiLCJjYXB0Y2hhU3Bpbm5pbmciLCJjbGFzc05hbWUiLCJzdHlsZSIsImNoaWxkcmVuIiwicHJvcFR5cGVzIiwiYm9vbCIsImRlZmF1bHRQcm9wcyIsImtleSIsImVtYWlsIiwicGFzc3dvcmQiLCJjYXB0Y2hhIiwiY2FwdGNoYVJlZnJlc2giLCJzdWJtaXQiLCJLZXlGaWVsZCIsInRhcmdldCIsInZhbHVlIiwiRW1haWxGaWVsZCIsIlBhc3N3b3JkRmllbGQiLCJDYXB0Y2hhRmllbGQiLCJCdXR0b25GaWVsZCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0FBS0E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7OztBQUNBOzs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxJQUFNQSxPQUFPLFNBQVBBLElBQU8sQ0FBQ0MsQ0FBRDtBQUFBLFNBQU9DLFFBQVFDLEdBQVIsQ0FBWUYsQ0FBWixDQUFQO0FBQUEsQ0FBYjs7QUFFQTs7SUFDTUcsWTs7O0FBQ0osd0JBQWFDLEtBQWIsRUFBb0I7QUFBQTs7QUFBQSxrSkFDWkEsS0FEWTs7QUFFbEIsUUFBTUMsU0FBTjtBQUNBQSxNQUFFQyxLQUFGLEdBQVUsRUFBVjtBQUhrQjtBQUluQjs7Ozs2QkFFUztBQUNSLFVBQU1ELElBQUksSUFBVjtBQURRLFVBRUZELEtBRkUsR0FFUUMsQ0FGUixDQUVGRCxLQUZFO0FBQUEsVUFJTkcsRUFKTSxHQWtCSkgsS0FsQkksQ0FJTkcs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QUFZRyxRQUFTLGdCQUFULENBSHZCLEdBREY7QUFNRSxpRUFBUSxJQUFLSixLQUFLLFNBQUwsQ0FBYjtBQUNRLGdCQUFPLFNBRGY7QUFFUSxpQkFBUUUsT0FBUSxTQUFSLENBRmhCO0FBR1Esb0JBQVcsa0JBQUNWLENBQUQ7QUFBQSxtQkFBT2MsU0FBUyxFQUFFZ0IsU0FBUzlCLEVBQUVrQyxNQUFGLENBQVNDLEtBQXBCLEVBQVQsQ0FBUDtBQUFBLFdBSG5CO0FBSVEsdUJBQWN0QixhQUFjLFNBQWQ7QUFKdEI7QUFORjtBQUpGLEtBREY7QUFvQkQsR0ExR3lCO0FBNEcxQjBCLGFBNUcwQiw4QkE0R3VCO0FBQUEsUUFBbEMvQixJQUFrQyxTQUFsQ0EsSUFBa0M7QUFBQSxRQUE1QkMsTUFBNEIsU0FBNUJBLE1BQTRCO0FBQUEsUUFBcEJDLE1BQW9CLFNBQXBCQSxNQUFvQjtBQUFBLFFBQVpLLFFBQVksU0FBWkEsUUFBWTs7QUFDL0MsV0FDRTtBQUFBO0FBQUEsUUFBUyxZQUFULEVBQWdCLFdBQVUsNkJBQTFCO0FBQ0U7QUFBQTtBQUFBLFVBQVUsSUFBS1AsS0FBSyxRQUFMLENBQWY7QUFDVSxpQkFBUTtBQUFBLG1CQUFNTyxTQUFTTCxNQUFULENBQU47QUFBQSxXQURsQjtBQUVVLG9CQUZWO0FBR1U7QUFIVjtBQUlHRCxlQUFRLFFBQVI7QUFKSDtBQURGLEtBREY7QUFTRDtBQXRIeUIsQ0FBNUI7O1FBeUhTTixZLEdBQUFBLFk7a0JBQ00sK0JBQVNBLFlBQVQsQyIsImZpbGUiOiJhcF9zaWdudXBfZm9ybS5qc3giLCJzb3VyY2VSb290IjoibGliIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3JtIGZvciBzaWdudXBcbiAqIEBjbGFzcyBBcFNpZ251cEZvcm1cbiAqL1xuXG4ndXNlIHN0cmljdCdcblxuaW1wb3J0IFJlYWN0LCB7IENvbXBvbmVudCwgUHJvcFR5cGVzIGFzIHR5cGVzIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJ1xuXG5pbXBvcnQgeyBBcEZvcm0sIHdpdGhGb3JtIH0gZnJvbSAnYXBlbWFuLXJlYWN0LWZvcm0nXG5pbXBvcnQgeyBBcEZpZWxkU2V0LCBBcEZpZWxkLCBBcEZpZWxkTGFiZWwsIEFwRmllbGRWYWx1ZSB9IGZyb20gJ2FwZW1hbi1yZWFjdC1maWVsZCdcbmltcG9ydCB7IEFwQnV0dG9uLCBBcENlbGxCdXR0b24sIEFwQ2VsbEJ1dHRvblJvdywgQXBJY29uQnV0dG9uLCBBcEljb25CdXR0b25Sb3cgfSBmcm9tICdhcGVtYW4tcmVhY3QtYnV0dG9uJ1xuaW1wb3J0IHsgQXBUZXh0IH0gZnJvbSAnYXBlbWFuLXJlYWN0LXRleHQnXG5pbXBvcnQgeyBBcFBhc3N3b3JkIH0gZnJvbSAnYXBlbWFuLXJlYWN0LXBhc3N3b3JkJ1xuaW1wb3J0IHsgQXBDYXB0Y2hhIH0gZnJvbSAnYXBlbWFuLXJlYWN0LWNhcHRjaGEnXG5cbmNvbnN0IG5vb3AgPSAoZSkgPT4gY29uc29sZS5sb2coZSlcblxuLyoqIEBsZW5kcyBBcFNpZ25pbkZvcm0gKi9cbmNsYXNzIEFwU2lnbmluRm9ybSBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yIChwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKVxuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgcy5zdGF0ZSA9IHt9XG4gIH1cblxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHMgPSB0aGlzXG4gICAgbGV0IHsgcHJvcHMgfSA9IHNcbiAgICBsZXQge1xuICAgICAgaWQsXG4gICAgICBpZE9mLFxuICAgICAgbGFiZWxzLFxuICAgICAgdmFsdWVzLFxuICAgICAgaW1hZ2VzLFxuICAgICAgYWN0aW9ucyxcbiAgICAgIHBsYWNlaG9sZGVycyxcbiAgICAgIG9uVXBkYXRlLFxuICAgICAgb25TdWJtaXQsXG4gICAgICBzcGlubmluZyxcbiAgICAgIGVycm9yTGlzdCxcbiAgICAgIGVycm9yU3R5bGUsXG4gICAgICBjZW50ZXJlZCxcbiAgICAgIGNhcHRjaGFTcGlubmluZ1xuICAgIH0gPSBwcm9wc1xuICAgIHJldHVybiAoXG4gICAgICA8QXBGb3JtIGlkPXsgaWQgfVxuICAgICAgICAgICAgICBzcGlubmluZz17IHNwaW5uaW5nIH1cbiAgICAgICAgICAgICAgY2VudGVyZWQ9eyBjZW50ZXJlZCB9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17IGNsYXNzbmFtZXMoJ2FwLXNpZ25pbi1mb3JtJywgcHJvcHMuY2xhc3NOYW1lKX1cbiAgICAgICAgICAgICAgc3R5bGU9eyBPYmplY3QuYXNzaWduKHt9LCBwcm9wcy5zdHlsZSkgfVxuICAgICAgPlxuICAgICAgICA8QXBGaWVsZFNldCBwbGFpbj5cbiAgICAgICAgICB7IGVycm9yTGlzdCB9XG4gICAgICAgICAgeyBlcnJvclN0eWxlIH1cbiAgICAgICAgICA8QXBTaWduaW5Gb3JtLktleUZpZWxkIHsgLi4ueyBpZE9mLCBsYWJlbHMsIHZhbHVlcywgb25VcGRhdGUgfSB9Lz5cbiAgICAgICAgICA8QXBTaWduaW5Gb3JtLkVtYWlsRmllbGQgeyAuLi57IGlkT2YsIGxhYmVscywgdmFsdWVzLCBvblVwZGF0ZSB9IH0vPlxuICAgICAgICAgIDxBcFNpZ25pbkZvcm0uUGFzc3dvcmRGaWVsZCB7IC4uLnsgaWRPZiwgbGFiZWxzLCB2YWx1ZXMsIG9uVXBkYXRlIH0gfS8+XG4gICAgICAgIDwvQXBGaWVsZFNldD5cbiAgICAgICAgPEFwRmllbGRTZXQgcGxhaW4+XG4gICAgICAgICAgPEFwU2lnbmluRm9ybS5DYXB0Y2hhRmllbGQgeyAuLi57XG4gICAgICAgICAgICBpZE9mLFxuICAgICAgICAgICAgbGFiZWxzLFxuICAgICAgICAgICAgdmFsdWVzLFxuICAgICAgICAgICAgb25VcGRhdGUsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcnMsXG4gICAgICAgICAgICBpbWFnZXMsXG4gICAgICAgICAgICBhY3Rpb25zLFxuICAgICAgICAgICAgY2FwdGNoYVNwaW5uaW5nXG4gICAgICAgICAgfSB9Lz5cbiAgICAgICAgPC9BcEZpZWxkU2V0PlxuICAgICAgICA8QXBGaWVsZFNldCBwbGFpbj5cbiAgICAgICAgICB7IHByb3BzLmNoaWxkcmVuIH1cbiAgICAgICAgPC9BcEZpZWxkU2V0PlxuICAgICAgICA8QXBGaWVsZFNldCBwbGFpbj5cbiAgICAgICAgICA8QXBTaWduaW5Gb3JtLkJ1dHRvbkZpZWxkIHsgLi4ueyBpZE9mLCBsYWJlbHMsIHZhbHVlcywgb25TdWJtaXQgfSB9Lz5cbiAgICAgICAgPC9BcEZpZWxkU2V0PlxuICAgICAgPC9BcEZvcm0+XG4gICAgKVxuICB9XG59XG5PYmplY3QuYXNzaWduKEFwU2lnbmluRm9ybSwge1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBTcGVjc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIHByb3BUeXBlczoge1xuICAgIGNhcHRjaGFTcGlubmluZzogdHlwZXMuYm9vbFxuICB9LFxuXG4gIGRlZmF1bHRQcm9wczoge1xuICAgIGxhYmVsczoge1xuICAgICAga2V5OiAnVXNlcm5hbWUnLFxuICAgICAgZW1haWw6ICdFbWFpbCcsXG4gICAgICBwYXNzd29yZDogJ1Bhc3N3b3JkJyxcbiAgICAgIGNhcHRjaGE6ICdDYXB0Y2hhJyxcbiAgICAgIGNhcHRjaGFSZWZyZXNoOiAncmVmcmVzaCcsXG4gICAgICBzdWJtaXQ6ICdTaWduIFVwJ1xuICAgIH0sXG4gICAgcGxhY2Vob2xkZXJzOiB7XG4gICAgICBjYXB0Y2hhOiAnKFR5cGUgbnVtYmVycyBhYm92ZSknXG4gICAgfSxcbiAgICBpbWFnZXM6IHtcbiAgICAgIGNhcHRjaGE6ICcnXG4gICAgfSxcbiAgICBhY3Rpb25zOiB7XG4gICAgICBjYXB0Y2hhUmVmcmVzaDogbm9vcFxuICAgIH0sXG4gICAgY2FwdGNoYVNwaW5uaW5nOiBmYWxzZVxuICB9LFxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIFN1YiBDb21wb25lbnRcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgS2V5RmllbGQgKHsgaWRPZiwgbGFiZWxzLCB2YWx1ZXMsIG9uVXBkYXRlIH0pIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEFwRmllbGQ+XG4gICAgICAgIDxBcEZpZWxkTGFiZWwgaHRtbEZvcj17IGlkT2YoJ2tleScpIH0+XG4gICAgICAgICAgeyBsYWJlbHNbICdrZXknIF0gfVxuICAgICAgICA8L0FwRmllbGRMYWJlbD5cbiAgICAgICAgPEFwRmllbGRWYWx1ZT5cbiAgICAgICAgICA8QXBUZXh0IGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgaWQ9eyBpZE9mKCdrZXknKSB9XG4gICAgICAgICAgICAgICAgICBuYW1lPXsgJ2tleScgfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9eyB2YWx1ZXNbICdrZXknIF0gfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyAoZSkgPT4gb25VcGRhdGUoeyBrZXk6IGUudGFyZ2V0LnZhbHVlIH0pIH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0FwRmllbGRWYWx1ZT5cbiAgICAgIDwvQXBGaWVsZD5cbiAgICApXG4gIH0sXG5cbiAgRW1haWxGaWVsZCAoeyBpZE9mLCBsYWJlbHMsIHZhbHVlcywgb25VcGRhdGUgfSkge1xuICAgIHJldHVybiAoXG4gICAgICA8QXBGaWVsZD5cbiAgICAgICAgPEFwRmllbGRMYWJlbCBodG1sRm9yPXsgaWRPZignZW1haWwnKSB9PlxuICAgICAgICAgIHsgbGFiZWxzWyAnZW1haWwnIF0gfVxuICAgICAgICA8L0FwRmllbGRMYWJlbD5cbiAgICAgICAgPEFwRmllbGRWYWx1ZT5cbiAgICAgICAgICA8QXBUZXh0IGlkPXsgaWRPZignZW1haWwnKSB9XG4gICAgICAgICAgICAgICAgICBuYW1lPXsgJ2VtYWlsJyB9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17IHZhbHVlc1sgJ2VtYWlsJyBdIH1cbiAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsgKGUpID0+IG9uVXBkYXRlKHsgZW1haWw6IGUudGFyZ2V0LnZhbHVlIH0pIH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0FwRmllbGRWYWx1ZT5cbiAgICAgIDwvQXBGaWVsZD5cbiAgICApXG4gIH0sXG5cbiAgUGFzc3dvcmRGaWVsZCAoeyBpZE9mLCBsYWJlbHMsIHZhbHVlcywgb25VcGRhdGUgfSkge1xuICAgIHJldHVybiAoXG4gICAgICA8QXBGaWVsZD5cbiAgICAgICAgPEFwRmllbGRMYWJlbCBodG1sRm9yPXsgaWRPZigncGFzc3dvcmQnKSB9PlxuICAgICAgICAgIHsgbGFiZWxzWyAncGFzc3dvcmQnIF0gfVxuICAgICAgICA8L0FwRmllbGRMYWJlbD5cbiAgICAgICAgPEFwRmllbGRWYWx1ZT5cbiAgICAgICAgICA8QXBQYXNzd29yZCBpZD17IGlkT2YoJ3Bhc3N3b3JkJykgfVxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9eyAncGFzc3dvcmQnIH1cbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17IHZhbHVlc1sgJ3Bhc3N3b3JkJyBdIH1cbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17IChlKSA9PiBvblVwZGF0ZSh7IHBhc3N3b3JkOiBlLnRhcmdldC52YWx1ZSB9KSB9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9BcEZpZWxkVmFsdWU+XG4gICAgICA8L0FwRmllbGQ+XG4gICAgKVxuICB9LFxuXG4gIENhcHRjaGFGaWVsZCAoeyBpZE9mLCBsYWJlbHMsIHZhbHVlcywgb25VcGRhdGUsIHBsYWNlaG9sZGVycywgaW1hZ2VzLCBhY3Rpb25zLCBjYXB0Y2hhU3Bpbm5pbmcgfSkge1xuICAgIHJldHVybiAoXG4gICAgICA8QXBGaWVsZD5cbiAgICAgICAgPEFwRmllbGRMYWJlbCBodG1sRm9yPXsgaWRPZignY2FwdGNoYScpIH0+XG4gICAgICAgICAgeyBsYWJlbHNbICdjYXB0Y2hhJyBdIH1cbiAgICAgICAgPC9BcEZpZWxkTGFiZWw+XG4gICAgICAgIDxBcEZpZWxkVmFsdWU+XG4gICAgICAgICAgPEFwQ2FwdGNoYSBzcmM9eyBpbWFnZXNbICdjYXB0Y2hhJyBdIH1cbiAgICAgICAgICAgICAgICAgICAgIHNwaW5uaW5nPXsgY2FwdGNoYVNwaW5uaW5nIH1cbiAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hUZXh0PXsgbGFiZWxzWyAnY2FwdGNoYVJlZnJlc2gnIF0gfVxuICAgICAgICAgICAgICAgICAgICAgb25SZWZyZXNoPXsgYWN0aW9uc1sgJ2NhcHRjaGFSZWZyZXNoJyBdIH0+XG4gICAgICAgICAgPC9BcENhcHRjaGE+XG4gICAgICAgICAgPEFwVGV4dCBpZD17IGlkT2YoJ2NhcHRjaGEnKSB9XG4gICAgICAgICAgICAgICAgICBuYW1lPXsgJ2NhcHRjaGEnIH1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXsgdmFsdWVzWyAnY2FwdGNoYScgXSB9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17IChlKSA9PiBvblVwZGF0ZSh7IGNhcHRjaGE6IGUudGFyZ2V0LnZhbHVlIH0pIH1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXsgcGxhY2Vob2xkZXJzWyAnY2FwdGNoYScgXSB9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9BcEZpZWxkVmFsdWU+XG4gICAgICA8L0FwRmllbGQ+XG4gICAgKVxuICB9LFxuXG4gIEJ1dHRvbkZpZWxkICh7IGlkT2YsIGxhYmVscywgdmFsdWVzLCBvblN1Ym1pdCB9KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxBcEZpZWxkIGNlbnRlciBjbGFzc05hbWU9J2FwLXNpZ251cC1mb3JtLWJ1dHRvbi1maWVsZCc+XG4gICAgICAgIDxBcEJ1dHRvbiBpZD17IGlkT2YoJ3N1Ym1pdCcpIH1cbiAgICAgICAgICAgICAgICAgIG9uVGFwPXsgKCkgPT4gb25TdWJtaXQodmFsdWVzKSB9XG4gICAgICAgICAgICAgICAgICB3aWRlXG4gICAgICAgICAgICAgICAgICBwcmltYXJ5XG4gICAgICAgID57IGxhYmVsc1sgJ3N1Ym1pdCcgXSB9PC9BcEJ1dHRvbj5cbiAgICAgIDwvQXBGaWVsZD5cbiAgICApXG4gIH1cbn0pXG5cbmV4cG9ydCB7IEFwU2lnbmluRm9ybSB9XG5leHBvcnQgZGVmYXVsdCB3aXRoRm9ybShBcFNpZ25pbkZvcm0pXG4iXX0=