react-form
Advanced tools
Comparing version 1.2.6 to 1.2.7
417
lib/form.js
@@ -10,2 +10,4 @@ 'use strict'; | ||
var _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; }; }(); | ||
var _react = require('react'); | ||
@@ -15,2 +17,6 @@ | ||
var _propTypes = require('prop-types'); | ||
var _propTypes2 = _interopRequireDefault(_propTypes); | ||
var _utils = require('./utils'); | ||
@@ -26,2 +32,8 @@ | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
function _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; } | ||
function _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; } | ||
var noop = function noop() {}; | ||
@@ -49,201 +61,266 @@ var reop = function reop(d) { | ||
exports.default = _react2.default.createClass({ | ||
displayName: 'Form', | ||
childContextTypes: { | ||
formAPI: _react2.default.PropTypes.object | ||
}, | ||
getChildContext: function getChildContext() { | ||
return { | ||
formAPI: this.getAPI() | ||
}; | ||
}, | ||
var Form = function (_React$Component) { | ||
_inherits(Form, _React$Component); | ||
// Lifecycle | ||
getDefaultProps: function getDefaultProps() { | ||
return FormDefaultProps; | ||
}, | ||
getInitialState: function getInitialState() { | ||
var _props = this.props, | ||
defaultValues = _props.defaultValues, | ||
values = _props.values, | ||
loadState = _props.loadState; | ||
function Form(props) { | ||
_classCallCheck(this, Form); | ||
var _this = _possibleConstructorReturn(this, (Form.__proto__ || Object.getPrototypeOf(Form)).call(this, props)); | ||
var _this$props = _this.props, | ||
defaultValues = _this$props.defaultValues, | ||
values = _this$props.values, | ||
loadState = _this$props.loadState; | ||
var mergedValues = _extends({}, defaultValues, values); | ||
return loadState(this.props, this) || { | ||
_this.state = loadState(_this.props, _this) || { | ||
values: mergedValues, | ||
touched: {}, | ||
errors: this.validate(mergedValues), | ||
errors: _this.validate(mergedValues), | ||
nestedErrors: {} | ||
}; | ||
}, | ||
componentWillMount: function componentWillMount() { | ||
this.emitChange(this.state, true); | ||
}, | ||
componentWillReceiveProps: function componentWillReceiveProps(props) { | ||
if (props.values === this.props.values) { | ||
return; | ||
_this.setAllValues = _this.setAllValues.bind(_this); | ||
_this.setValue = _this.setValue.bind(_this); | ||
_this.getValue = _this.getValue.bind(_this); | ||
_this.setNestedError = _this.setNestedError.bind(_this); | ||
_this.getError = _this.getError.bind(_this); | ||
_this.setTouched = _this.setTouched.bind(_this); | ||
_this.getTouched = _this.getTouched.bind(_this); | ||
_this.addValue = _this.addValue.bind(_this); | ||
_this.removeValue = _this.removeValue.bind(_this); | ||
_this.swapValues = _this.swapValues.bind(_this); | ||
_this.setAllTouched = _this.setAllTouched.bind(_this); | ||
_this.resetForm = _this.resetForm.bind(_this); | ||
_this.submitForm = _this.submitForm.bind(_this); | ||
return _this; | ||
} | ||
_createClass(Form, [{ | ||
key: 'getChildContext', | ||
value: function getChildContext() { | ||
return { | ||
formAPI: this.getAPI() | ||
}; | ||
} | ||
}, { | ||
key: 'componentWillMount', | ||
value: function componentWillMount() { | ||
this.emitChange(this.state, true); | ||
} | ||
}, { | ||
key: 'componentWillReceiveProps', | ||
value: function componentWillReceiveProps(props) { | ||
if (props.values === this.props.values) { | ||
return; | ||
} | ||
this.setFormState({ | ||
values: props.values || {} | ||
}, true); | ||
}, | ||
componentWillUnmount: function componentWillUnmount() { | ||
this.props.willUnmount(this.state, this.props, this); | ||
}, | ||
this.setFormState({ | ||
values: props.values || {} | ||
}, true); | ||
} | ||
}, { | ||
key: 'componentWillUmount', | ||
value: function componentWillUmount() { | ||
this.props.willUnmount(this.state, this.props, this); | ||
} | ||
// API | ||
// API | ||
setAllValues: function setAllValues(values, noTouch) { | ||
if (noTouch) { | ||
return this.setFormState({ values: values }); | ||
}, { | ||
key: 'setAllValues', | ||
value: function setAllValues(values, noTouch) { | ||
if (noTouch) { | ||
return this.setFormState({ values: values }); | ||
} | ||
this.setFormState({ values: values, touched: {} }); | ||
} | ||
this.setFormState({ values: values, touched: {} }); | ||
}, | ||
setValue: function setValue(field, value, noTouch) { | ||
var state = this.state; | ||
var values = _utils2.default.set(state.values, field, value); | ||
// Also set touched since the value is changing | ||
if (noTouch) { | ||
return this.setFormState({ values: values }); | ||
}, { | ||
key: 'setValue', | ||
value: function setValue(field, value, noTouch) { | ||
var state = this.state; | ||
var values = _utils2.default.set(state.values, field, value); | ||
// Also set touched since the value is changing | ||
if (noTouch) { | ||
return this.setFormState({ values: values }); | ||
} | ||
var touched = _utils2.default.set(state.touched, field); | ||
this.setFormState({ values: values, touched: touched }); | ||
} | ||
var touched = _utils2.default.set(state.touched, field); | ||
this.setFormState({ values: values, touched: touched }); | ||
}, | ||
getValue: function getValue(field, fallback) { | ||
var state = this.state; | ||
var val = _utils2.default.get(state.values, field); | ||
return typeof val !== 'undefined' ? val : fallback; | ||
}, | ||
setNestedError: function setNestedError(field) { | ||
var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; | ||
}, { | ||
key: 'getValue', | ||
value: function getValue(field, fallback) { | ||
var state = this.state; | ||
var val = _utils2.default.get(state.values, field); | ||
return typeof val !== 'undefined' ? val : fallback; | ||
} | ||
}, { | ||
key: 'setNestedError', | ||
value: function setNestedError(field) { | ||
var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; | ||
var nestedErrors = _utils2.default.set(this.state.nestedErrors, field, value); | ||
this.setFormState({ nestedErrors: nestedErrors }); | ||
}, | ||
getError: function getError(field) { | ||
return _utils2.default.get(this.state.errors, field); | ||
}, | ||
setTouched: function setTouched(field) { | ||
var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; | ||
var nestedErrors = _utils2.default.set(this.state.nestedErrors, field, value); | ||
this.setFormState({ nestedErrors: nestedErrors }); | ||
} | ||
}, { | ||
key: 'getError', | ||
value: function getError(field) { | ||
return _utils2.default.get(this.state.errors, field); | ||
} | ||
}, { | ||
key: 'setTouched', | ||
value: function setTouched(field) { | ||
var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; | ||
var touched = _utils2.default.set(this.state.touched, field, value); | ||
this.setFormState({ touched: touched }); | ||
}, | ||
getTouched: function getTouched(field) { | ||
var state = this.state; | ||
if (this.state.dirty === true || this.props.touched === true) { | ||
return true; | ||
var touched = _utils2.default.set(this.state.touched, field, value); | ||
this.setFormState({ touched: touched }); | ||
} | ||
return _utils2.default.get(state.touched, field); | ||
}, | ||
addValue: function addValue(field, value) { | ||
var state = this.state; | ||
var values = _utils2.default.set(state.values, field, [].concat(_toConsumableArray(_utils2.default.get(state.values, field, [])), [value])); | ||
this.setFormState({ values: values }); | ||
}, | ||
removeValue: function removeValue(field, index) { | ||
var state = this.state; | ||
var fieldValue = _utils2.default.get(state.values, field, []); | ||
var values = _utils2.default.set(state.values, field, [].concat(_toConsumableArray(fieldValue.slice(0, index)), _toConsumableArray(fieldValue.slice(index + 1)))); | ||
this.setFormState({ values: values }); | ||
}, | ||
swapValues: function swapValues(field, index, destIndex) { | ||
var state = this.state; | ||
}, { | ||
key: 'getTouched', | ||
value: function getTouched(field) { | ||
var state = this.state; | ||
if (this.state.dirty === true || this.props.touched === true) { | ||
return true; | ||
} | ||
return _utils2.default.get(state.touched, field); | ||
} | ||
}, { | ||
key: 'addValue', | ||
value: function addValue(field, value) { | ||
var state = this.state; | ||
var values = _utils2.default.set(state.values, field, [].concat(_toConsumableArray(_utils2.default.get(state.values, field, [])), [value])); | ||
this.setFormState({ values: values }); | ||
} | ||
}, { | ||
key: 'removeValue', | ||
value: function removeValue(field, index) { | ||
var state = this.state; | ||
var fieldValue = _utils2.default.get(state.values, field, []); | ||
var values = _utils2.default.set(state.values, field, [].concat(_toConsumableArray(fieldValue.slice(0, index)), _toConsumableArray(fieldValue.slice(index + 1)))); | ||
this.setFormState({ values: values }); | ||
} | ||
}, { | ||
key: 'swapValues', | ||
value: function swapValues(field, index, destIndex) { | ||
var state = this.state; | ||
var min = Math.min(index, destIndex); | ||
var max = Math.max(index, destIndex); | ||
var min = Math.min(index, destIndex); | ||
var max = Math.max(index, destIndex); | ||
var fieldValues = _utils2.default.get(state.values, field, []); | ||
var values = _utils2.default.set(state.values, field, [].concat(_toConsumableArray(fieldValues.slice(0, min)), [fieldValues[max]], _toConsumableArray(fieldValues.slice(min + 1, max)), [fieldValues[min]], _toConsumableArray(fieldValues.slice(max + 1)))); | ||
this.setFormState({ values: values }); | ||
}, | ||
setAllTouched: function setAllTouched() { | ||
var dirty = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; | ||
var state = arguments[1]; | ||
var fieldValues = _utils2.default.get(state.values, field, []); | ||
var values = _utils2.default.set(state.values, field, [].concat(_toConsumableArray(fieldValues.slice(0, min)), [fieldValues[max]], _toConsumableArray(fieldValues.slice(min + 1, max)), [fieldValues[min]], _toConsumableArray(fieldValues.slice(max + 1)))); | ||
this.setFormState({ values: values }); | ||
} | ||
}, { | ||
key: 'setAllTouched', | ||
value: function setAllTouched() { | ||
var dirty = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; | ||
var state = arguments[1]; | ||
this.setFormState(_extends({}, state, { | ||
dirty: !!dirty | ||
})); | ||
}, | ||
resetForm: function resetForm() { | ||
return this.setFormState(this.getInitialState()); | ||
}, | ||
submitForm: function submitForm(e) { | ||
e && e.preventDefault && e.preventDefault(e); | ||
var state = this.state; | ||
var errors = this.validate(state.values, state, this.props); | ||
if (errors) { | ||
if (!state.dirty) { | ||
this.setAllTouched(true, { errors: errors }); | ||
this.setFormState(_extends({}, state, { | ||
dirty: !!dirty | ||
})); | ||
} | ||
}, { | ||
key: 'resetForm', | ||
value: function resetForm() { | ||
return this.setFormState(this.getInitialState()); | ||
} | ||
}, { | ||
key: 'submitForm', | ||
value: function submitForm(e) { | ||
e && e.preventDefault && e.preventDefault(e); | ||
var state = this.state; | ||
var errors = this.validate(state.values, state, this.props); | ||
if (errors) { | ||
if (!state.dirty) { | ||
this.setAllTouched(true, { errors: errors }); | ||
} | ||
return this.props.onValidationFail(state.values, state, this.props, this); | ||
} | ||
return this.props.onValidationFail(state.values, state, this.props, this); | ||
var preSubmitValues = this.props.preSubmit(state.values, state, this.props, this); | ||
this.props.onSubmit(preSubmitValues, state, this.props, this); | ||
this.props.postSubmit(preSubmitValues, state, this.props, this); | ||
} | ||
var preSubmitValues = this.props.preSubmit(state.values, state, this.props, this); | ||
this.props.onSubmit(preSubmitValues, state, this.props, this); | ||
this.props.postSubmit(preSubmitValues, state, this.props, this); | ||
}, | ||
// Utils | ||
// Utils | ||
getAPI: function getAPI() { | ||
return { | ||
setAllValues: this.setAllValues, | ||
setValue: this.setValue, | ||
getValue: this.getValue, | ||
setNestedError: this.setNestedError, | ||
getError: this.getError, | ||
setTouched: this.setTouched, | ||
getTouched: this.getTouched, | ||
addValue: this.addValue, | ||
removeValue: this.removeValue, | ||
swapValues: this.swapValues, | ||
setAllTouched: this.setAllTouched, | ||
resetForm: this.resetForm, | ||
submitForm: this.submitForm | ||
}; | ||
}, | ||
setFormState: function setFormState(newState, silent) { | ||
var _this = this; | ||
}, { | ||
key: 'getAPI', | ||
value: function getAPI() { | ||
return { | ||
setAllValues: this.setAllValues, | ||
setValue: this.setValue, | ||
getValue: this.getValue, | ||
setNestedError: this.setNestedError, | ||
getError: this.getError, | ||
setTouched: this.setTouched, | ||
getTouched: this.getTouched, | ||
addValue: this.addValue, | ||
removeValue: this.removeValue, | ||
swapValues: this.swapValues, | ||
setAllTouched: this.setAllTouched, | ||
resetForm: this.resetForm, | ||
submitForm: this.submitForm | ||
}; | ||
} | ||
}, { | ||
key: 'setFormState', | ||
value: function setFormState(newState, silent) { | ||
var _this2 = this; | ||
if (newState && newState.values && !newState.errors) { | ||
newState.values = this.props.preValidate(newState.values, newState, this.props, this); | ||
newState.errors = this.validate(newState.values, newState, this.props); | ||
if (newState && newState.values && !newState.errors) { | ||
newState.values = this.props.preValidate(newState.values, newState, this.props, this); | ||
newState.errors = this.validate(newState.values, newState, this.props); | ||
} | ||
this.setState(newState, function () { | ||
_this2.props.saveState(_this2.state, _this2.props, _this2); | ||
if (!silent) { | ||
_this2.emitChange(_this2.state, _this2.props); | ||
} | ||
}); | ||
} | ||
this.setState(newState, function () { | ||
_this.props.saveState(_this.state, _this.props, _this); | ||
if (!silent) { | ||
_this.emitChange(_this.state, _this.props); | ||
}, { | ||
key: 'emitChange', | ||
value: function emitChange(state, initial) { | ||
this.props.onChange(state, this.props, initial, this); | ||
} | ||
}, { | ||
key: 'validate', | ||
value: function validate(values, state, props) { | ||
var errors = this.props.validate(removeNestedErrorValues(values, this.state ? this.state.nestedErrors : {}), state, props, this); | ||
return cleanErrors(errors); | ||
} | ||
}, { | ||
key: 'render', | ||
value: function render() { | ||
var props = _extends({}, this.props, this.state, this.getAPI()); | ||
var component = props.component, | ||
children = props.children, | ||
rest = _objectWithoutProperties(props, ['component', 'children']); | ||
var resolvedChild = typeof children === 'function' ? children(rest) : children; | ||
var RootEl = component; | ||
if (!RootEl) { | ||
return resolvedChild; | ||
} | ||
}); | ||
}, | ||
emitChange: function emitChange(state, initial) { | ||
this.props.onChange(state, this.props, initial, this); | ||
}, | ||
validate: function validate(values, state, props) { | ||
var errors = this.props.validate(removeNestedErrorValues(values, this.state ? this.state.nestedErrors : {}), state, props, this); | ||
return cleanErrors(errors); | ||
}, | ||
return _react2.default.createElement( | ||
RootEl, | ||
{ className: 'ReactForm' }, | ||
resolvedChild | ||
); | ||
} | ||
}]); | ||
// Render | ||
render: function render() { | ||
var props = _extends({}, this.props, this.state, this.getAPI()); | ||
return Form; | ||
}(_react2.default.Component); | ||
var component = props.component, | ||
children = props.children, | ||
rest = _objectWithoutProperties(props, ['component', 'children']); | ||
Form.displayName = 'Form'; | ||
Form.defaultProps = FormDefaultProps; | ||
Form.childContextTypes = { formAPI: _propTypes2.default.object }; | ||
var resolvedChild = typeof children === 'function' ? children(rest) : children; | ||
var RootEl = component; | ||
if (!RootEl) { | ||
return resolvedChild; | ||
} | ||
return _react2.default.createElement( | ||
RootEl, | ||
{ className: 'ReactForm' }, | ||
resolvedChild | ||
); | ||
} | ||
}); | ||
exports.default = Form; | ||
@@ -296,2 +373,2 @@ // Utils | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtLmpzIl0sIm5hbWVzIjpbIm5vb3AiLCJyZW9wIiwiZCIsIkZvcm1EZWZhdWx0UHJvcHMiLCJsb2FkU3RhdGUiLCJkZWZhdWx0VmFsdWVzIiwicHJlVmFsaWRhdGUiLCJ2YWxpZGF0ZSIsIm9uVmFsaWRhdGlvbkZhaWwiLCJvbkNoYW5nZSIsInNhdmVTdGF0ZSIsIndpbGxVbm1vdW50IiwicHJlU3VibWl0Iiwib25TdWJtaXQiLCJwb3N0U3VibWl0IiwiY29tcG9uZW50IiwiY3JlYXRlQ2xhc3MiLCJkaXNwbGF5TmFtZSIsImNoaWxkQ29udGV4dFR5cGVzIiwiZm9ybUFQSSIsIlByb3BUeXBlcyIsIm9iamVjdCIsImdldENoaWxkQ29udGV4dCIsImdldEFQSSIsImdldERlZmF1bHRQcm9wcyIsImdldEluaXRpYWxTdGF0ZSIsInByb3BzIiwidmFsdWVzIiwibWVyZ2VkVmFsdWVzIiwidG91Y2hlZCIsImVycm9ycyIsIm5lc3RlZEVycm9ycyIsImNvbXBvbmVudFdpbGxNb3VudCIsImVtaXRDaGFuZ2UiLCJzdGF0ZSIsImNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMiLCJzZXRGb3JtU3RhdGUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInNldEFsbFZhbHVlcyIsIm5vVG91Y2giLCJzZXRWYWx1ZSIsImZpZWxkIiwidmFsdWUiLCJzZXQiLCJnZXRWYWx1ZSIsImZhbGxiYWNrIiwidmFsIiwiZ2V0Iiwic2V0TmVzdGVkRXJyb3IiLCJnZXRFcnJvciIsInNldFRvdWNoZWQiLCJnZXRUb3VjaGVkIiwiZGlydHkiLCJhZGRWYWx1ZSIsInJlbW92ZVZhbHVlIiwiaW5kZXgiLCJmaWVsZFZhbHVlIiwic2xpY2UiLCJzd2FwVmFsdWVzIiwiZGVzdEluZGV4IiwibWluIiwiTWF0aCIsIm1heCIsImZpZWxkVmFsdWVzIiwic2V0QWxsVG91Y2hlZCIsInJlc2V0Rm9ybSIsInN1Ym1pdEZvcm0iLCJlIiwicHJldmVudERlZmF1bHQiLCJwcmVTdWJtaXRWYWx1ZXMiLCJuZXdTdGF0ZSIsInNpbGVudCIsInNldFN0YXRlIiwiaW5pdGlhbCIsInJlbW92ZU5lc3RlZEVycm9yVmFsdWVzIiwiY2xlYW5FcnJvcnMiLCJyZW5kZXIiLCJjaGlsZHJlbiIsInJlc3QiLCJyZXNvbHZlZENoaWxkIiwiUm9vdEVsIiwiZXJyIiwiaXNPYmplY3QiLCJyZXNvbHZlZCIsIm1hcFZhbHVlcyIsImZvdW5kIiwicGlja0J5IiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImlzQXJyYXkiLCJtYXAiLCJmaW5kIiwicmVjdXJzZSIsImN1cnJlbnQiLCJwYXRoIiwiaSIsImtleSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLE9BQU8sU0FBUEEsSUFBTyxHQUFNLENBQUUsQ0FBckI7QUFDQSxJQUFNQyxPQUFPLFNBQVBBLElBQU87QUFBQSxTQUFLQyxDQUFMO0FBQUEsQ0FBYjs7QUFFTyxJQUFNQyw4Q0FBbUI7QUFDOUJDLGFBQVdKLElBRG1CO0FBRTlCSyxpQkFBZSxFQUZlO0FBRzlCQyxlQUFhTCxJQUhpQjtBQUk5Qk0sWUFBVTtBQUFBLFdBQU0sSUFBTjtBQUFBLEdBSm9CO0FBSzlCQyxvQkFBa0JSLElBTFk7QUFNOUJTLFlBQVVULElBTm9CO0FBTzlCVSxhQUFXVixJQVBtQjtBQVE5QlcsZUFBYVgsSUFSaUI7QUFTOUJZLGFBQVdYLElBVG1CO0FBVTlCWSxZQUFVYixJQVZvQjtBQVc5QmMsY0FBWWQsSUFYa0I7QUFZOUJlLGFBQVc7QUFabUIsQ0FBekI7O2tCQWVRLGdCQUFNQyxXQUFOLENBQWtCO0FBQy9CQyxlQUFhLE1BRGtCO0FBRS9CQyxxQkFBbUI7QUFDakJDLGFBQVMsZ0JBQU1DLFNBQU4sQ0FBZ0JDO0FBRFIsR0FGWTtBQUsvQkMsaUJBTCtCLDZCQUtaO0FBQ2pCLFdBQU87QUFDTEgsZUFBUyxLQUFLSSxNQUFMO0FBREosS0FBUDtBQUdELEdBVDhCOztBQVUvQjtBQUNBQyxpQkFYK0IsNkJBV1o7QUFDakIsV0FBT3JCLGdCQUFQO0FBQ0QsR0FiOEI7QUFjL0JzQixpQkFkK0IsNkJBY1o7QUFBQSxpQkFLYixLQUFLQyxLQUxRO0FBQUEsUUFFZnJCLGFBRmUsVUFFZkEsYUFGZTtBQUFBLFFBR2ZzQixNQUhlLFVBR2ZBLE1BSGU7QUFBQSxRQUlmdkIsU0FKZSxVQUlmQSxTQUplOztBQU1qQixRQUFNd0IsNEJBQ0R2QixhQURDLEVBRURzQixNQUZDLENBQU47O0FBS0EsV0FBT3ZCLFVBQVUsS0FBS3NCLEtBQWYsRUFBc0IsSUFBdEIsS0FBK0I7QUFDcENDLGNBQVFDLFlBRDRCO0FBRXBDQyxlQUFTLEVBRjJCO0FBR3BDQyxjQUFRLEtBQUt2QixRQUFMLENBQWNxQixZQUFkLENBSDRCO0FBSXBDRyxvQkFBYztBQUpzQixLQUF0QztBQU1ELEdBL0I4QjtBQWdDL0JDLG9CQWhDK0IsZ0NBZ0NUO0FBQ3BCLFNBQUtDLFVBQUwsQ0FBZ0IsS0FBS0MsS0FBckIsRUFBNEIsSUFBNUI7QUFDRCxHQWxDOEI7QUFtQy9CQywyQkFuQytCLHFDQW1DSlQsS0FuQ0ksRUFtQ0c7QUFDaEMsUUFBSUEsTUFBTUMsTUFBTixLQUFpQixLQUFLRCxLQUFMLENBQVdDLE1BQWhDLEVBQXdDO0FBQ3RDO0FBQ0Q7O0FBRUQsU0FBS1MsWUFBTCxDQUFrQjtBQUNoQlQsY0FBUUQsTUFBTUMsTUFBTixJQUFnQjtBQURSLEtBQWxCLEVBRUcsSUFGSDtBQUdELEdBM0M4QjtBQTRDL0JVLHNCQTVDK0Isa0NBNENQO0FBQ3RCLFNBQUtYLEtBQUwsQ0FBV2YsV0FBWCxDQUF1QixLQUFLdUIsS0FBNUIsRUFBbUMsS0FBS1IsS0FBeEMsRUFBK0MsSUFBL0M7QUFDRCxHQTlDOEI7OztBQWdEL0I7QUFDQVksY0FqRCtCLHdCQWlEakJYLE1BakRpQixFQWlEVFksT0FqRFMsRUFpREE7QUFDN0IsUUFBSUEsT0FBSixFQUFhO0FBQ1gsYUFBTyxLQUFLSCxZQUFMLENBQWtCLEVBQUNULGNBQUQsRUFBbEIsQ0FBUDtBQUNEO0FBQ0QsU0FBS1MsWUFBTCxDQUFrQixFQUFDVCxjQUFELEVBQVNFLFNBQVMsRUFBbEIsRUFBbEI7QUFDRCxHQXREOEI7QUF1RC9CVyxVQXZEK0Isb0JBdURyQkMsS0F2RHFCLEVBdURkQyxLQXZEYyxFQXVEUEgsT0F2RE8sRUF1REU7QUFDL0IsUUFBTUwsUUFBUSxLQUFLQSxLQUFuQjtBQUNBLFFBQU1QLFNBQVMsZ0JBQUVnQixHQUFGLENBQU1ULE1BQU1QLE1BQVosRUFBb0JjLEtBQXBCLEVBQTJCQyxLQUEzQixDQUFmO0FBQ0E7QUFDQSxRQUFJSCxPQUFKLEVBQWE7QUFDWCxhQUFPLEtBQUtILFlBQUwsQ0FBa0IsRUFBQ1QsY0FBRCxFQUFsQixDQUFQO0FBQ0Q7QUFDRCxRQUFNRSxVQUFVLGdCQUFFYyxHQUFGLENBQU1ULE1BQU1MLE9BQVosRUFBcUJZLEtBQXJCLENBQWhCO0FBQ0EsU0FBS0wsWUFBTCxDQUFrQixFQUFDVCxjQUFELEVBQVNFLGdCQUFULEVBQWxCO0FBQ0QsR0FoRThCO0FBaUUvQmUsVUFqRStCLG9CQWlFckJILEtBakVxQixFQWlFZEksUUFqRWMsRUFpRUo7QUFDekIsUUFBTVgsUUFBUSxLQUFLQSxLQUFuQjtBQUNBLFFBQU1ZLE1BQU0sZ0JBQUVDLEdBQUYsQ0FBTWIsTUFBTVAsTUFBWixFQUFvQmMsS0FBcEIsQ0FBWjtBQUNBLFdBQU8sT0FBT0ssR0FBUCxLQUFlLFdBQWYsR0FBNkJBLEdBQTdCLEdBQW1DRCxRQUExQztBQUNELEdBckU4QjtBQXNFL0JHLGdCQXRFK0IsMEJBc0VmUCxLQXRFZSxFQXNFTTtBQUFBLFFBQWRDLEtBQWMsdUVBQU4sSUFBTTs7QUFDbkMsUUFBTVgsZUFBZSxnQkFBRVksR0FBRixDQUFNLEtBQUtULEtBQUwsQ0FBV0gsWUFBakIsRUFBK0JVLEtBQS9CLEVBQXNDQyxLQUF0QyxDQUFyQjtBQUNBLFNBQUtOLFlBQUwsQ0FBa0IsRUFBQ0wsMEJBQUQsRUFBbEI7QUFDRCxHQXpFOEI7QUEwRS9Ca0IsVUExRStCLG9CQTBFckJSLEtBMUVxQixFQTBFZDtBQUNmLFdBQU8sZ0JBQUVNLEdBQUYsQ0FBTSxLQUFLYixLQUFMLENBQVdKLE1BQWpCLEVBQXlCVyxLQUF6QixDQUFQO0FBQ0QsR0E1RThCO0FBNkUvQlMsWUE3RStCLHNCQTZFbkJULEtBN0VtQixFQTZFRTtBQUFBLFFBQWRDLEtBQWMsdUVBQU4sSUFBTTs7QUFDL0IsUUFBTWIsVUFBVSxnQkFBRWMsR0FBRixDQUFNLEtBQUtULEtBQUwsQ0FBV0wsT0FBakIsRUFBMEJZLEtBQTFCLEVBQWlDQyxLQUFqQyxDQUFoQjtBQUNBLFNBQUtOLFlBQUwsQ0FBa0IsRUFBQ1AsZ0JBQUQsRUFBbEI7QUFDRCxHQWhGOEI7QUFpRi9Cc0IsWUFqRitCLHNCQWlGbkJWLEtBakZtQixFQWlGWjtBQUNqQixRQUFNUCxRQUFRLEtBQUtBLEtBQW5CO0FBQ0EsUUFBSSxLQUFLQSxLQUFMLENBQVdrQixLQUFYLEtBQXFCLElBQXJCLElBQTZCLEtBQUsxQixLQUFMLENBQVdHLE9BQVgsS0FBdUIsSUFBeEQsRUFBOEQ7QUFDNUQsYUFBTyxJQUFQO0FBQ0Q7QUFDRCxXQUFPLGdCQUFFa0IsR0FBRixDQUFNYixNQUFNTCxPQUFaLEVBQXFCWSxLQUFyQixDQUFQO0FBQ0QsR0F2RjhCO0FBd0YvQlksVUF4RitCLG9CQXdGckJaLEtBeEZxQixFQXdGZEMsS0F4RmMsRUF3RlA7QUFDdEIsUUFBTVIsUUFBUSxLQUFLQSxLQUFuQjtBQUNBLFFBQU1QLFNBQVMsZ0JBQUVnQixHQUFGLENBQU1ULE1BQU1QLE1BQVosRUFBb0JjLEtBQXBCLCtCQUNWLGdCQUFFTSxHQUFGLENBQU1iLE1BQU1QLE1BQVosRUFBb0JjLEtBQXBCLEVBQTJCLEVBQTNCLENBRFUsSUFFYkMsS0FGYSxHQUFmO0FBSUEsU0FBS04sWUFBTCxDQUFrQixFQUFDVCxjQUFELEVBQWxCO0FBQ0QsR0EvRjhCO0FBZ0cvQjJCLGFBaEcrQix1QkFnR2xCYixLQWhHa0IsRUFnR1hjLEtBaEdXLEVBZ0dKO0FBQ3pCLFFBQU1yQixRQUFRLEtBQUtBLEtBQW5CO0FBQ0EsUUFBTXNCLGFBQWEsZ0JBQUVULEdBQUYsQ0FBTWIsTUFBTVAsTUFBWixFQUFvQmMsS0FBcEIsRUFBMkIsRUFBM0IsQ0FBbkI7QUFDQSxRQUFNZCxTQUFTLGdCQUFFZ0IsR0FBRixDQUFNVCxNQUFNUCxNQUFaLEVBQW9CYyxLQUFwQiwrQkFDVmUsV0FBV0MsS0FBWCxDQUFpQixDQUFqQixFQUFvQkYsS0FBcEIsQ0FEVSxzQkFFVkMsV0FBV0MsS0FBWCxDQUFpQkYsUUFBUSxDQUF6QixDQUZVLEdBQWY7QUFJQSxTQUFLbkIsWUFBTCxDQUFrQixFQUFDVCxjQUFELEVBQWxCO0FBQ0QsR0F4RzhCO0FBeUcvQitCLFlBekcrQixzQkF5R25CakIsS0F6R21CLEVBeUdaYyxLQXpHWSxFQXlHTEksU0F6R0ssRUF5R007QUFDbkMsUUFBTXpCLFFBQVEsS0FBS0EsS0FBbkI7O0FBRUEsUUFBTTBCLE1BQU1DLEtBQUtELEdBQUwsQ0FBU0wsS0FBVCxFQUFnQkksU0FBaEIsQ0FBWjtBQUNBLFFBQU1HLE1BQU1ELEtBQUtDLEdBQUwsQ0FBU1AsS0FBVCxFQUFnQkksU0FBaEIsQ0FBWjs7QUFFQSxRQUFNSSxjQUFjLGdCQUFFaEIsR0FBRixDQUFNYixNQUFNUCxNQUFaLEVBQW9CYyxLQUFwQixFQUEyQixFQUEzQixDQUFwQjtBQUNBLFFBQU1kLFNBQVMsZ0JBQUVnQixHQUFGLENBQU1ULE1BQU1QLE1BQVosRUFBb0JjLEtBQXBCLCtCQUNWc0IsWUFBWU4sS0FBWixDQUFrQixDQUFsQixFQUFxQkcsR0FBckIsQ0FEVSxJQUViRyxZQUFZRCxHQUFaLENBRmEsc0JBR1ZDLFlBQVlOLEtBQVosQ0FBa0JHLE1BQU0sQ0FBeEIsRUFBMkJFLEdBQTNCLENBSFUsSUFJYkMsWUFBWUgsR0FBWixDQUphLHNCQUtWRyxZQUFZTixLQUFaLENBQWtCSyxNQUFNLENBQXhCLENBTFUsR0FBZjtBQU9BLFNBQUsxQixZQUFMLENBQWtCLEVBQUNULGNBQUQsRUFBbEI7QUFDRCxHQXhIOEI7QUF5SC9CcUMsZUF6SCtCLDJCQXlISztBQUFBLFFBQXJCWixLQUFxQix1RUFBYixJQUFhO0FBQUEsUUFBUGxCLEtBQU87O0FBQ2xDLFNBQUtFLFlBQUwsY0FDS0YsS0FETDtBQUVFa0IsYUFBTyxDQUFDLENBQUNBO0FBRlg7QUFJRCxHQTlIOEI7QUErSC9CYSxXQS9IK0IsdUJBK0hsQjtBQUNYLFdBQU8sS0FBSzdCLFlBQUwsQ0FBa0IsS0FBS1gsZUFBTCxFQUFsQixDQUFQO0FBQ0QsR0FqSThCO0FBa0kvQnlDLFlBbEkrQixzQkFrSW5CQyxDQWxJbUIsRUFrSWhCO0FBQ2JBLFNBQUtBLEVBQUVDLGNBQVAsSUFBeUJELEVBQUVDLGNBQUYsQ0FBaUJELENBQWpCLENBQXpCO0FBQ0EsUUFBTWpDLFFBQVEsS0FBS0EsS0FBbkI7QUFDQSxRQUFNSixTQUFTLEtBQUt2QixRQUFMLENBQWMyQixNQUFNUCxNQUFwQixFQUE0Qk8sS0FBNUIsRUFBbUMsS0FBS1IsS0FBeEMsQ0FBZjtBQUNBLFFBQUlJLE1BQUosRUFBWTtBQUNWLFVBQUksQ0FBQ0ksTUFBTWtCLEtBQVgsRUFBa0I7QUFDaEIsYUFBS1ksYUFBTCxDQUFtQixJQUFuQixFQUF5QixFQUFDbEMsY0FBRCxFQUF6QjtBQUNEO0FBQ0QsYUFBTyxLQUFLSixLQUFMLENBQVdsQixnQkFBWCxDQUE0QjBCLE1BQU1QLE1BQWxDLEVBQTBDTyxLQUExQyxFQUFpRCxLQUFLUixLQUF0RCxFQUE2RCxJQUE3RCxDQUFQO0FBQ0Q7QUFDRCxRQUFNMkMsa0JBQWtCLEtBQUszQyxLQUFMLENBQVdkLFNBQVgsQ0FBcUJzQixNQUFNUCxNQUEzQixFQUFtQ08sS0FBbkMsRUFBMEMsS0FBS1IsS0FBL0MsRUFBc0QsSUFBdEQsQ0FBeEI7QUFDQSxTQUFLQSxLQUFMLENBQVdiLFFBQVgsQ0FBb0J3RCxlQUFwQixFQUFxQ25DLEtBQXJDLEVBQTRDLEtBQUtSLEtBQWpELEVBQXdELElBQXhEO0FBQ0EsU0FBS0EsS0FBTCxDQUFXWixVQUFYLENBQXNCdUQsZUFBdEIsRUFBdUNuQyxLQUF2QyxFQUE4QyxLQUFLUixLQUFuRCxFQUEwRCxJQUExRDtBQUNELEdBL0k4Qjs7O0FBaUovQjtBQUNBSCxRQWxKK0Isb0JBa0pyQjtBQUNSLFdBQU87QUFDTGUsb0JBQWMsS0FBS0EsWUFEZDtBQUVMRSxnQkFBVSxLQUFLQSxRQUZWO0FBR0xJLGdCQUFVLEtBQUtBLFFBSFY7QUFJTEksc0JBQWdCLEtBQUtBLGNBSmhCO0FBS0xDLGdCQUFVLEtBQUtBLFFBTFY7QUFNTEMsa0JBQVksS0FBS0EsVUFOWjtBQU9MQyxrQkFBWSxLQUFLQSxVQVBaO0FBUUxFLGdCQUFVLEtBQUtBLFFBUlY7QUFTTEMsbUJBQWEsS0FBS0EsV0FUYjtBQVVMSSxrQkFBWSxLQUFLQSxVQVZaO0FBV0xNLHFCQUFlLEtBQUtBLGFBWGY7QUFZTEMsaUJBQVcsS0FBS0EsU0FaWDtBQWFMQyxrQkFBWSxLQUFLQTtBQWJaLEtBQVA7QUFlRCxHQWxLOEI7QUFtSy9COUIsY0FuSytCLHdCQW1LakJrQyxRQW5LaUIsRUFtS1BDLE1BbktPLEVBbUtDO0FBQUE7O0FBQzlCLFFBQUlELFlBQVlBLFNBQVMzQyxNQUFyQixJQUErQixDQUFDMkMsU0FBU3hDLE1BQTdDLEVBQXFEO0FBQ25Ed0MsZUFBUzNDLE1BQVQsR0FBa0IsS0FBS0QsS0FBTCxDQUFXcEIsV0FBWCxDQUF1QmdFLFNBQVMzQyxNQUFoQyxFQUF3QzJDLFFBQXhDLEVBQWtELEtBQUs1QyxLQUF2RCxFQUE4RCxJQUE5RCxDQUFsQjtBQUNBNEMsZUFBU3hDLE1BQVQsR0FBa0IsS0FBS3ZCLFFBQUwsQ0FBYytELFNBQVMzQyxNQUF2QixFQUErQjJDLFFBQS9CLEVBQXlDLEtBQUs1QyxLQUE5QyxDQUFsQjtBQUNEO0FBQ0QsU0FBSzhDLFFBQUwsQ0FBY0YsUUFBZCxFQUF3QixZQUFNO0FBQzVCLFlBQUs1QyxLQUFMLENBQVdoQixTQUFYLENBQXFCLE1BQUt3QixLQUExQixFQUFpQyxNQUFLUixLQUF0QztBQUNBLFVBQUksQ0FBQzZDLE1BQUwsRUFBYTtBQUNYLGNBQUt0QyxVQUFMLENBQWdCLE1BQUtDLEtBQXJCLEVBQTRCLE1BQUtSLEtBQWpDO0FBQ0Q7QUFDRixLQUxEO0FBTUQsR0E5SzhCO0FBK0svQk8sWUEvSytCLHNCQStLbkJDLEtBL0ttQixFQStLWnVDLE9BL0tZLEVBK0tIO0FBQzFCLFNBQUsvQyxLQUFMLENBQVdqQixRQUFYLENBQW9CeUIsS0FBcEIsRUFBMkIsS0FBS1IsS0FBaEMsRUFBdUMrQyxPQUF2QyxFQUFnRCxJQUFoRDtBQUNELEdBakw4QjtBQWtML0JsRSxVQWxMK0Isb0JBa0xyQm9CLE1BbExxQixFQWtMYk8sS0FsTGEsRUFrTE5SLEtBbExNLEVBa0xDO0FBQzlCLFFBQU1JLFNBQVMsS0FBS0osS0FBTCxDQUFXbkIsUUFBWCxDQUNibUUsd0JBQXdCL0MsTUFBeEIsRUFBZ0MsS0FBS08sS0FBTCxHQUFhLEtBQUtBLEtBQUwsQ0FBV0gsWUFBeEIsR0FBdUMsRUFBdkUsQ0FEYSxFQUViRyxLQUZhLEVBR2JSLEtBSGEsRUFJYixJQUphLENBQWY7QUFNQSxXQUFPaUQsWUFBWTdDLE1BQVosQ0FBUDtBQUNELEdBMUw4Qjs7QUEyTC9CO0FBQ0E4QyxRQTVMK0Isb0JBNExyQjtBQUNSLFFBQU1sRCxxQkFDRCxLQUFLQSxLQURKLEVBRUQsS0FBS1EsS0FGSixFQUdELEtBQUtYLE1BQUwsRUFIQyxDQUFOOztBQURRLFFBTUFSLFNBTkEsR0FNaUNXLEtBTmpDLENBTUFYLFNBTkE7QUFBQSxRQU1XOEQsUUFOWCxHQU1pQ25ELEtBTmpDLENBTVdtRCxRQU5YO0FBQUEsUUFNd0JDLElBTnhCLDRCQU1pQ3BELEtBTmpDOztBQU9SLFFBQU1xRCxnQkFBZ0IsT0FBT0YsUUFBUCxLQUFvQixVQUFwQixHQUFpQ0EsU0FBU0MsSUFBVCxDQUFqQyxHQUFrREQsUUFBeEU7QUFDQSxRQUFNRyxTQUFTakUsU0FBZjtBQUNBLFFBQUksQ0FBQ2lFLE1BQUwsRUFBYTtBQUNYLGFBQU9ELGFBQVA7QUFDRDtBQUNELFdBQ0U7QUFBQyxZQUFEO0FBQUEsUUFBUSxXQUFVLFdBQWxCO0FBQStCQTtBQUEvQixLQURGO0FBR0Q7QUEzTThCLENBQWxCLEM7O0FBOE1mOztBQUVBLFNBQVNKLFdBQVQsQ0FBc0JNLEdBQXRCLEVBQTJCO0FBQ3pCLE1BQUksZ0JBQUVDLFFBQUYsQ0FBV0QsR0FBWCxDQUFKLEVBQXFCO0FBQ25CLFFBQU1FLFdBQVcsZ0JBQUVDLFNBQUYsQ0FBWUgsR0FBWixFQUFpQk4sV0FBakIsQ0FBakI7QUFDQSxRQUFNVSxRQUFRLGdCQUFFQyxNQUFGLENBQVNILFFBQVQsRUFBbUI7QUFBQSxhQUFLakYsQ0FBTDtBQUFBLEtBQW5CLENBQWQ7QUFDQSxXQUFPcUYsT0FBT0MsSUFBUCxDQUFZSCxLQUFaLEVBQW1CSSxNQUFuQixHQUE0Qk4sUUFBNUIsR0FBdUNPLFNBQTlDO0FBQ0Q7QUFDRCxNQUFJLGdCQUFFQyxPQUFGLENBQVVWLEdBQVYsQ0FBSixFQUFvQjtBQUNsQixRQUFNRSxZQUFXRixJQUFJVyxHQUFKLENBQVFqQixXQUFSLENBQWpCO0FBQ0EsUUFBTVUsU0FBUUYsVUFBU1UsSUFBVCxDQUFjO0FBQUEsYUFBSzNGLENBQUw7QUFBQSxLQUFkLENBQWQ7QUFDQSxXQUFPbUYsU0FBUUYsU0FBUixHQUFtQk8sU0FBMUI7QUFDRDtBQUNELFNBQU9ULEdBQVA7QUFDRDs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNQLHVCQUFULENBQWtDL0MsTUFBbEMsRUFBMENJLFlBQTFDLEVBQXdEO0FBQ3RELE1BQU0rRCxVQUFVLFNBQVZBLE9BQVUsQ0FBQ0MsT0FBRCxFQUF3QjtBQUFBLFFBQWRDLElBQWMsdUVBQVAsRUFBTzs7QUFDdEMsUUFBSSxnQkFBRWQsUUFBRixDQUFXYSxPQUFYLENBQUosRUFBeUI7QUFDdkIsYUFBTyxnQkFBRVgsU0FBRixDQUFZVyxPQUFaLEVBQXFCLFVBQUM3RixDQUFELEVBQUkrRixDQUFKLEVBQVU7QUFDcEMsZUFBT0gsUUFBUTVGLENBQVIsK0JBQWU4RixJQUFmLElBQXFCQyxDQUFyQixHQUFQO0FBQ0QsT0FGTSxDQUFQO0FBR0Q7QUFDRCxRQUFJLGdCQUFFTixPQUFGLENBQVVJLE9BQVYsQ0FBSixFQUF3QjtBQUN0QixhQUFPQSxRQUFRSCxHQUFSLENBQVksVUFBQzFGLENBQUQsRUFBSWdHLEdBQUosRUFBWTtBQUM3QixlQUFPSixRQUFRNUYsQ0FBUiwrQkFBZThGLElBQWYsSUFBcUJFLEdBQXJCLEdBQVA7QUFDRCxPQUZNLENBQVA7QUFHRDtBQUNELFFBQUksQ0FBQyxnQkFBRWhCLFFBQUYsQ0FBV2EsT0FBWCxDQUFELElBQXdCLENBQUMsZ0JBQUVKLE9BQUYsQ0FBVUksT0FBVixDQUF6QixJQUErQ0EsT0FBbkQsRUFBNEQ7QUFDMUQsYUFBTyxnQkFBRXBELEdBQUYsQ0FBTWhCLE1BQU4sRUFBY3FFLElBQWQsRUFBb0JOLFNBQXBCLENBQVA7QUFDRDtBQUNELFdBQU9LLE9BQVA7QUFDRCxHQWZEO0FBZ0JBRCxVQUFRL0QsWUFBUjtBQUNBLFNBQU9KLE1BQVA7QUFDRCIsImZpbGUiOiJmb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IF8gZnJvbSAnLi91dGlscydcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5jb25zdCByZW9wID0gZCA9PiBkXG5cbmV4cG9ydCBjb25zdCBGb3JtRGVmYXVsdFByb3BzID0ge1xuICBsb2FkU3RhdGU6IG5vb3AsXG4gIGRlZmF1bHRWYWx1ZXM6IHt9LFxuICBwcmVWYWxpZGF0ZTogcmVvcCxcbiAgdmFsaWRhdGU6ICgpID0+IG51bGwsXG4gIG9uVmFsaWRhdGlvbkZhaWw6IG5vb3AsXG4gIG9uQ2hhbmdlOiBub29wLFxuICBzYXZlU3RhdGU6IG5vb3AsXG4gIHdpbGxVbm1vdW50OiBub29wLFxuICBwcmVTdWJtaXQ6IHJlb3AsXG4gIG9uU3VibWl0OiBub29wLFxuICBwb3N0U3VibWl0OiBub29wLFxuICBjb21wb25lbnQ6ICdkaXYnXG59XG5cbmV4cG9ydCBkZWZhdWx0IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgZGlzcGxheU5hbWU6ICdGb3JtJyxcbiAgY2hpbGRDb250ZXh0VHlwZXM6IHtcbiAgICBmb3JtQVBJOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0XG4gIH0sXG4gIGdldENoaWxkQ29udGV4dCAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZvcm1BUEk6IHRoaXMuZ2V0QVBJKClcbiAgICB9XG4gIH0sXG4gIC8vIExpZmVjeWNsZVxuICBnZXREZWZhdWx0UHJvcHMgKCkge1xuICAgIHJldHVybiBGb3JtRGVmYXVsdFByb3BzXG4gIH0sXG4gIGdldEluaXRpYWxTdGF0ZSAoKSB7XG4gICAgY29uc3Qge1xuICAgICAgZGVmYXVsdFZhbHVlcyxcbiAgICAgIHZhbHVlcyxcbiAgICAgIGxvYWRTdGF0ZVxuICAgIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgbWVyZ2VkVmFsdWVzID0ge1xuICAgICAgLi4uZGVmYXVsdFZhbHVlcyxcbiAgICAgIC4uLnZhbHVlc1xuICAgIH1cblxuICAgIHJldHVybiBsb2FkU3RhdGUodGhpcy5wcm9wcywgdGhpcykgfHwge1xuICAgICAgdmFsdWVzOiBtZXJnZWRWYWx1ZXMsXG4gICAgICB0b3VjaGVkOiB7fSxcbiAgICAgIGVycm9yczogdGhpcy52YWxpZGF0ZShtZXJnZWRWYWx1ZXMpLFxuICAgICAgbmVzdGVkRXJyb3JzOiB7fVxuICAgIH1cbiAgfSxcbiAgY29tcG9uZW50V2lsbE1vdW50ICgpIHtcbiAgICB0aGlzLmVtaXRDaGFuZ2UodGhpcy5zdGF0ZSwgdHJ1ZSlcbiAgfSxcbiAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAocHJvcHMpIHtcbiAgICBpZiAocHJvcHMudmFsdWVzID09PSB0aGlzLnByb3BzLnZhbHVlcykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5zZXRGb3JtU3RhdGUoe1xuICAgICAgdmFsdWVzOiBwcm9wcy52YWx1ZXMgfHwge31cbiAgICB9LCB0cnVlKVxuICB9LFxuICBjb21wb25lbnRXaWxsVW5tb3VudCAoKSB7XG4gICAgdGhpcy5wcm9wcy53aWxsVW5tb3VudCh0aGlzLnN0YXRlLCB0aGlzLnByb3BzLCB0aGlzKVxuICB9LFxuXG4gIC8vIEFQSVxuICBzZXRBbGxWYWx1ZXMgKHZhbHVlcywgbm9Ub3VjaCkge1xuICAgIGlmIChub1RvdWNoKSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXRGb3JtU3RhdGUoe3ZhbHVlc30pXG4gICAgfVxuICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHt2YWx1ZXMsIHRvdWNoZWQ6IHt9fSlcbiAgfSxcbiAgc2V0VmFsdWUgKGZpZWxkLCB2YWx1ZSwgbm9Ub3VjaCkge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVxuICAgIGNvbnN0IHZhbHVlcyA9IF8uc2V0KHN0YXRlLnZhbHVlcywgZmllbGQsIHZhbHVlKVxuICAgIC8vIEFsc28gc2V0IHRvdWNoZWQgc2luY2UgdGhlIHZhbHVlIGlzIGNoYW5naW5nXG4gICAgaWYgKG5vVG91Y2gpIHtcbiAgICAgIHJldHVybiB0aGlzLnNldEZvcm1TdGF0ZSh7dmFsdWVzfSlcbiAgICB9XG4gICAgY29uc3QgdG91Y2hlZCA9IF8uc2V0KHN0YXRlLnRvdWNoZWQsIGZpZWxkKVxuICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHt2YWx1ZXMsIHRvdWNoZWR9KVxuICB9LFxuICBnZXRWYWx1ZSAoZmllbGQsIGZhbGxiYWNrKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlXG4gICAgY29uc3QgdmFsID0gXy5nZXQoc3RhdGUudmFsdWVzLCBmaWVsZClcbiAgICByZXR1cm4gdHlwZW9mIHZhbCAhPT0gJ3VuZGVmaW5lZCcgPyB2YWwgOiBmYWxsYmFja1xuICB9LFxuICBzZXROZXN0ZWRFcnJvciAoZmllbGQsIHZhbHVlID0gdHJ1ZSkge1xuICAgIGNvbnN0IG5lc3RlZEVycm9ycyA9IF8uc2V0KHRoaXMuc3RhdGUubmVzdGVkRXJyb3JzLCBmaWVsZCwgdmFsdWUpXG4gICAgdGhpcy5zZXRGb3JtU3RhdGUoe25lc3RlZEVycm9yc30pXG4gIH0sXG4gIGdldEVycm9yIChmaWVsZCkge1xuICAgIHJldHVybiBfLmdldCh0aGlzLnN0YXRlLmVycm9ycywgZmllbGQpXG4gIH0sXG4gIHNldFRvdWNoZWQgKGZpZWxkLCB2YWx1ZSA9IHRydWUpIHtcbiAgICBjb25zdCB0b3VjaGVkID0gXy5zZXQodGhpcy5zdGF0ZS50b3VjaGVkLCBmaWVsZCwgdmFsdWUpXG4gICAgdGhpcy5zZXRGb3JtU3RhdGUoe3RvdWNoZWR9KVxuICB9LFxuICBnZXRUb3VjaGVkIChmaWVsZCkge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVxuICAgIGlmICh0aGlzLnN0YXRlLmRpcnR5ID09PSB0cnVlIHx8IHRoaXMucHJvcHMudG91Y2hlZCA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgcmV0dXJuIF8uZ2V0KHN0YXRlLnRvdWNoZWQsIGZpZWxkKVxuICB9LFxuICBhZGRWYWx1ZSAoZmllbGQsIHZhbHVlKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlXG4gICAgY29uc3QgdmFsdWVzID0gXy5zZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW1xuICAgICAgLi4uXy5nZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW10pLFxuICAgICAgdmFsdWVcbiAgICBdKVxuICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHt2YWx1ZXN9KVxuICB9LFxuICByZW1vdmVWYWx1ZSAoZmllbGQsIGluZGV4KSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlXG4gICAgY29uc3QgZmllbGRWYWx1ZSA9IF8uZ2V0KHN0YXRlLnZhbHVlcywgZmllbGQsIFtdKVxuICAgIGNvbnN0IHZhbHVlcyA9IF8uc2V0KHN0YXRlLnZhbHVlcywgZmllbGQsIFtcbiAgICAgIC4uLmZpZWxkVmFsdWUuc2xpY2UoMCwgaW5kZXgpLFxuICAgICAgLi4uZmllbGRWYWx1ZS5zbGljZShpbmRleCArIDEpXG4gICAgXSlcbiAgICB0aGlzLnNldEZvcm1TdGF0ZSh7dmFsdWVzfSlcbiAgfSxcbiAgc3dhcFZhbHVlcyAoZmllbGQsIGluZGV4LCBkZXN0SW5kZXgpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVcblxuICAgIGNvbnN0IG1pbiA9IE1hdGgubWluKGluZGV4LCBkZXN0SW5kZXgpXG4gICAgY29uc3QgbWF4ID0gTWF0aC5tYXgoaW5kZXgsIGRlc3RJbmRleClcblxuICAgIGNvbnN0IGZpZWxkVmFsdWVzID0gXy5nZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW10pXG4gICAgY29uc3QgdmFsdWVzID0gXy5zZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW1xuICAgICAgLi4uZmllbGRWYWx1ZXMuc2xpY2UoMCwgbWluKSxcbiAgICAgIGZpZWxkVmFsdWVzW21heF0sXG4gICAgICAuLi5maWVsZFZhbHVlcy5zbGljZShtaW4gKyAxLCBtYXgpLFxuICAgICAgZmllbGRWYWx1ZXNbbWluXSxcbiAgICAgIC4uLmZpZWxkVmFsdWVzLnNsaWNlKG1heCArIDEpXG4gICAgXSlcbiAgICB0aGlzLnNldEZvcm1TdGF0ZSh7dmFsdWVzfSlcbiAgfSxcbiAgc2V0QWxsVG91Y2hlZCAoZGlydHkgPSB0cnVlLCBzdGF0ZSkge1xuICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZGlydHk6ICEhZGlydHlcbiAgICB9KVxuICB9LFxuICByZXNldEZvcm0gKCkge1xuICAgIHJldHVybiB0aGlzLnNldEZvcm1TdGF0ZSh0aGlzLmdldEluaXRpYWxTdGF0ZSgpKVxuICB9LFxuICBzdWJtaXRGb3JtIChlKSB7XG4gICAgZSAmJiBlLnByZXZlbnREZWZhdWx0ICYmIGUucHJldmVudERlZmF1bHQoZSlcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVcbiAgICBjb25zdCBlcnJvcnMgPSB0aGlzLnZhbGlkYXRlKHN0YXRlLnZhbHVlcywgc3RhdGUsIHRoaXMucHJvcHMpXG4gICAgaWYgKGVycm9ycykge1xuICAgICAgaWYgKCFzdGF0ZS5kaXJ0eSkge1xuICAgICAgICB0aGlzLnNldEFsbFRvdWNoZWQodHJ1ZSwge2Vycm9yc30pXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vblZhbGlkYXRpb25GYWlsKHN0YXRlLnZhbHVlcywgc3RhdGUsIHRoaXMucHJvcHMsIHRoaXMpXG4gICAgfVxuICAgIGNvbnN0IHByZVN1Ym1pdFZhbHVlcyA9IHRoaXMucHJvcHMucHJlU3VibWl0KHN0YXRlLnZhbHVlcywgc3RhdGUsIHRoaXMucHJvcHMsIHRoaXMpXG4gICAgdGhpcy5wcm9wcy5vblN1Ym1pdChwcmVTdWJtaXRWYWx1ZXMsIHN0YXRlLCB0aGlzLnByb3BzLCB0aGlzKVxuICAgIHRoaXMucHJvcHMucG9zdFN1Ym1pdChwcmVTdWJtaXRWYWx1ZXMsIHN0YXRlLCB0aGlzLnByb3BzLCB0aGlzKVxuICB9LFxuXG4gIC8vIFV0aWxzXG4gIGdldEFQSSAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNldEFsbFZhbHVlczogdGhpcy5zZXRBbGxWYWx1ZXMsXG4gICAgICBzZXRWYWx1ZTogdGhpcy5zZXRWYWx1ZSxcbiAgICAgIGdldFZhbHVlOiB0aGlzLmdldFZhbHVlLFxuICAgICAgc2V0TmVzdGVkRXJyb3I6IHRoaXMuc2V0TmVzdGVkRXJyb3IsXG4gICAgICBnZXRFcnJvcjogdGhpcy5nZXRFcnJvcixcbiAgICAgIHNldFRvdWNoZWQ6IHRoaXMuc2V0VG91Y2hlZCxcbiAgICAgIGdldFRvdWNoZWQ6IHRoaXMuZ2V0VG91Y2hlZCxcbiAgICAgIGFkZFZhbHVlOiB0aGlzLmFkZFZhbHVlLFxuICAgICAgcmVtb3ZlVmFsdWU6IHRoaXMucmVtb3ZlVmFsdWUsXG4gICAgICBzd2FwVmFsdWVzOiB0aGlzLnN3YXBWYWx1ZXMsXG4gICAgICBzZXRBbGxUb3VjaGVkOiB0aGlzLnNldEFsbFRvdWNoZWQsXG4gICAgICByZXNldEZvcm06IHRoaXMucmVzZXRGb3JtLFxuICAgICAgc3VibWl0Rm9ybTogdGhpcy5zdWJtaXRGb3JtXG4gICAgfVxuICB9LFxuICBzZXRGb3JtU3RhdGUgKG5ld1N0YXRlLCBzaWxlbnQpIHtcbiAgICBpZiAobmV3U3RhdGUgJiYgbmV3U3RhdGUudmFsdWVzICYmICFuZXdTdGF0ZS5lcnJvcnMpIHtcbiAgICAgIG5ld1N0YXRlLnZhbHVlcyA9IHRoaXMucHJvcHMucHJlVmFsaWRhdGUobmV3U3RhdGUudmFsdWVzLCBuZXdTdGF0ZSwgdGhpcy5wcm9wcywgdGhpcylcbiAgICAgIG5ld1N0YXRlLmVycm9ycyA9IHRoaXMudmFsaWRhdGUobmV3U3RhdGUudmFsdWVzLCBuZXdTdGF0ZSwgdGhpcy5wcm9wcylcbiAgICB9XG4gICAgdGhpcy5zZXRTdGF0ZShuZXdTdGF0ZSwgKCkgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5zYXZlU3RhdGUodGhpcy5zdGF0ZSwgdGhpcy5wcm9wcywgdGhpcylcbiAgICAgIGlmICghc2lsZW50KSB7XG4gICAgICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLnN0YXRlLCB0aGlzLnByb3BzKVxuICAgICAgfVxuICAgIH0pXG4gIH0sXG4gIGVtaXRDaGFuZ2UgKHN0YXRlLCBpbml0aWFsKSB7XG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZShzdGF0ZSwgdGhpcy5wcm9wcywgaW5pdGlhbCwgdGhpcylcbiAgfSxcbiAgdmFsaWRhdGUgKHZhbHVlcywgc3RhdGUsIHByb3BzKSB7XG4gICAgY29uc3QgZXJyb3JzID0gdGhpcy5wcm9wcy52YWxpZGF0ZShcbiAgICAgIHJlbW92ZU5lc3RlZEVycm9yVmFsdWVzKHZhbHVlcywgdGhpcy5zdGF0ZSA/IHRoaXMuc3RhdGUubmVzdGVkRXJyb3JzIDoge30pLFxuICAgICAgc3RhdGUsXG4gICAgICBwcm9wcyxcbiAgICAgIHRoaXNcbiAgICApXG4gICAgcmV0dXJuIGNsZWFuRXJyb3JzKGVycm9ycylcbiAgfSxcbiAgLy8gUmVuZGVyXG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3QgcHJvcHMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLFxuICAgICAgLi4udGhpcy5zdGF0ZSxcbiAgICAgIC4uLnRoaXMuZ2V0QVBJKClcbiAgICB9XG4gICAgY29uc3QgeyBjb21wb25lbnQsIGNoaWxkcmVuLCAuLi5yZXN0IH0gPSBwcm9wc1xuICAgIGNvbnN0IHJlc29sdmVkQ2hpbGQgPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicgPyBjaGlsZHJlbihyZXN0KSA6IGNoaWxkcmVuXG4gICAgY29uc3QgUm9vdEVsID0gY29tcG9uZW50XG4gICAgaWYgKCFSb290RWwpIHtcbiAgICAgIHJldHVybiByZXNvbHZlZENoaWxkXG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8Um9vdEVsIGNsYXNzTmFtZT0nUmVhY3RGb3JtJz57cmVzb2x2ZWRDaGlsZH08L1Jvb3RFbD5cbiAgICApXG4gIH1cbn0pXG5cbi8vIFV0aWxzXG5cbmZ1bmN0aW9uIGNsZWFuRXJyb3JzIChlcnIpIHtcbiAgaWYgKF8uaXNPYmplY3QoZXJyKSkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gXy5tYXBWYWx1ZXMoZXJyLCBjbGVhbkVycm9ycylcbiAgICBjb25zdCBmb3VuZCA9IF8ucGlja0J5KHJlc29sdmVkLCBkID0+IGQpXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGZvdW5kKS5sZW5ndGggPyByZXNvbHZlZCA6IHVuZGVmaW5lZFxuICB9XG4gIGlmIChfLmlzQXJyYXkoZXJyKSkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gZXJyLm1hcChjbGVhbkVycm9ycylcbiAgICBjb25zdCBmb3VuZCA9IHJlc29sdmVkLmZpbmQoZCA9PiBkKVxuICAgIHJldHVybiBmb3VuZCA/IHJlc29sdmVkIDogdW5kZWZpbmVkXG4gIH1cbiAgcmV0dXJuIGVyclxufVxuXG4vLyByZW1vdmVOZXN0ZWRFcnJvclZhbHVlcyByZWN1cnNlcyB0aGUgdmFsdWVzIG9iamVjdCBhbmQgdHVybnMgYW55XG4vLyBmaWVsZCB0aGF0IGhhcyBhIHRydXRoeSBjb3JyZXNwb25kaW5nIG5lc3RlZCBmb3JtIGVycm9yIGZpZWxkIGludG8gdW5kZWZpbmVkLlxuLy8gVGhpcyBhbGxvd3MgcHJvcGVybHkgdmFsaWRhdGluZyBhIG5lc3RlZCBmb3JtIGJ5IGRldGVjdGluZyB0aGF0IHVuZGVmaW5lZCB2YWx1ZVxuLy8gaW4gdGhlIHZhbGlkYXRpb24gZnVuY3Rpb25cbmZ1bmN0aW9uIHJlbW92ZU5lc3RlZEVycm9yVmFsdWVzICh2YWx1ZXMsIG5lc3RlZEVycm9ycykge1xuICBjb25zdCByZWN1cnNlID0gKGN1cnJlbnQsIHBhdGggPSBbXSkgPT4ge1xuICAgIGlmIChfLmlzT2JqZWN0KGN1cnJlbnQpKSB7XG4gICAgICByZXR1cm4gXy5tYXBWYWx1ZXMoY3VycmVudCwgKGQsIGkpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlY3Vyc2UoZCwgWy4uLnBhdGgsIGldKVxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKF8uaXNBcnJheShjdXJyZW50KSkge1xuICAgICAgcmV0dXJuIGN1cnJlbnQubWFwKChkLCBrZXkpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlY3Vyc2UoZCwgWy4uLnBhdGgsIGtleV0pXG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAoIV8uaXNPYmplY3QoY3VycmVudCkgJiYgIV8uaXNBcnJheShjdXJyZW50KSAmJiBjdXJyZW50KSB7XG4gICAgICByZXR1cm4gXy5zZXQodmFsdWVzLCBwYXRoLCB1bmRlZmluZWQpXG4gICAgfVxuICAgIHJldHVybiBjdXJyZW50XG4gIH1cbiAgcmVjdXJzZShuZXN0ZWRFcnJvcnMpXG4gIHJldHVybiB2YWx1ZXNcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtLmpzIl0sIm5hbWVzIjpbIm5vb3AiLCJyZW9wIiwiZCIsIkZvcm1EZWZhdWx0UHJvcHMiLCJsb2FkU3RhdGUiLCJkZWZhdWx0VmFsdWVzIiwicHJlVmFsaWRhdGUiLCJ2YWxpZGF0ZSIsIm9uVmFsaWRhdGlvbkZhaWwiLCJvbkNoYW5nZSIsInNhdmVTdGF0ZSIsIndpbGxVbm1vdW50IiwicHJlU3VibWl0Iiwib25TdWJtaXQiLCJwb3N0U3VibWl0IiwiY29tcG9uZW50IiwiRm9ybSIsInByb3BzIiwidmFsdWVzIiwibWVyZ2VkVmFsdWVzIiwic3RhdGUiLCJ0b3VjaGVkIiwiZXJyb3JzIiwibmVzdGVkRXJyb3JzIiwic2V0QWxsVmFsdWVzIiwiYmluZCIsInNldFZhbHVlIiwiZ2V0VmFsdWUiLCJzZXROZXN0ZWRFcnJvciIsImdldEVycm9yIiwic2V0VG91Y2hlZCIsImdldFRvdWNoZWQiLCJhZGRWYWx1ZSIsInJlbW92ZVZhbHVlIiwic3dhcFZhbHVlcyIsInNldEFsbFRvdWNoZWQiLCJyZXNldEZvcm0iLCJzdWJtaXRGb3JtIiwiZm9ybUFQSSIsImdldEFQSSIsImVtaXRDaGFuZ2UiLCJzZXRGb3JtU3RhdGUiLCJub1RvdWNoIiwiZmllbGQiLCJ2YWx1ZSIsInNldCIsImZhbGxiYWNrIiwidmFsIiwiZ2V0IiwiZGlydHkiLCJpbmRleCIsImZpZWxkVmFsdWUiLCJzbGljZSIsImRlc3RJbmRleCIsIm1pbiIsIk1hdGgiLCJtYXgiLCJmaWVsZFZhbHVlcyIsImdldEluaXRpYWxTdGF0ZSIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInByZVN1Ym1pdFZhbHVlcyIsIm5ld1N0YXRlIiwic2lsZW50Iiwic2V0U3RhdGUiLCJpbml0aWFsIiwicmVtb3ZlTmVzdGVkRXJyb3JWYWx1ZXMiLCJjbGVhbkVycm9ycyIsImNoaWxkcmVuIiwicmVzdCIsInJlc29sdmVkQ2hpbGQiLCJSb290RWwiLCJDb21wb25lbnQiLCJkaXNwbGF5TmFtZSIsImRlZmF1bHRQcm9wcyIsImNoaWxkQ29udGV4dFR5cGVzIiwib2JqZWN0IiwiZXJyIiwiaXNPYmplY3QiLCJyZXNvbHZlZCIsIm1hcFZhbHVlcyIsImZvdW5kIiwicGlja0J5IiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImlzQXJyYXkiLCJtYXAiLCJmaW5kIiwicmVjdXJzZSIsImN1cnJlbnQiLCJwYXRoIiwiaSIsImtleSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxPQUFPLFNBQVBBLElBQU8sR0FBTSxDQUFFLENBQXJCO0FBQ0EsSUFBTUMsT0FBTyxTQUFQQSxJQUFPO0FBQUEsU0FBS0MsQ0FBTDtBQUFBLENBQWI7O0FBRU8sSUFBTUMsOENBQW1CO0FBQzlCQyxhQUFXSixJQURtQjtBQUU5QkssaUJBQWUsRUFGZTtBQUc5QkMsZUFBYUwsSUFIaUI7QUFJOUJNLFlBQVU7QUFBQSxXQUFNLElBQU47QUFBQSxHQUpvQjtBQUs5QkMsb0JBQWtCUixJQUxZO0FBTTlCUyxZQUFVVCxJQU5vQjtBQU85QlUsYUFBV1YsSUFQbUI7QUFROUJXLGVBQWFYLElBUmlCO0FBUzlCWSxhQUFXWCxJQVRtQjtBQVU5QlksWUFBVWIsSUFWb0I7QUFXOUJjLGNBQVlkLElBWGtCO0FBWTlCZSxhQUFXO0FBWm1CLENBQXpCOztJQWVEQyxJOzs7QUFDSixnQkFBYUMsS0FBYixFQUFvQjtBQUFBOztBQUFBLDRHQUNaQSxLQURZOztBQUFBLHNCQU9kLE1BQUtBLEtBUFM7QUFBQSxRQUloQlosYUFKZ0IsZUFJaEJBLGFBSmdCO0FBQUEsUUFLaEJhLE1BTGdCLGVBS2hCQSxNQUxnQjtBQUFBLFFBTWhCZCxTQU5nQixlQU1oQkEsU0FOZ0I7OztBQVNsQixRQUFNZSw0QkFDRGQsYUFEQyxFQUVEYSxNQUZDLENBQU47O0FBS0EsVUFBS0UsS0FBTCxHQUFhaEIsVUFBVSxNQUFLYSxLQUFmLFlBQStCO0FBQzFDQyxjQUFRQyxZQURrQztB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QjtBQUN0QixhQUFPQSxRQUFRSCxHQUFSLENBQVksVUFBQ3RGLENBQUQsRUFBSTRGLEdBQUosRUFBWTtBQUM3QixlQUFPSixRQUFReEYsQ0FBUiwrQkFBZTBGLElBQWYsSUFBcUJFLEdBQXJCLEdBQVA7QUFDRCxPQUZNLENBQVA7QUFHRDtBQUNELFFBQUksQ0FBQyxnQkFBRWhCLFFBQUYsQ0FBV2EsT0FBWCxDQUFELElBQXdCLENBQUMsZ0JBQUVKLE9BQUYsQ0FBVUksT0FBVixDQUF6QixJQUErQ0EsT0FBbkQsRUFBNEQ7QUFDMUQsYUFBTyxnQkFBRTlDLEdBQUYsQ0FBTTNCLE1BQU4sRUFBYzBFLElBQWQsRUFBb0JOLFNBQXBCLENBQVA7QUFDRDtBQUNELFdBQU9LLE9BQVA7QUFDRCxHQWZEO0FBZ0JBRCxVQUFRbkUsWUFBUjtBQUNBLFNBQU9MLE1BQVA7QUFDRCIsImZpbGUiOiJmb3JtLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJ1xuaW1wb3J0IF8gZnJvbSAnLi91dGlscydcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5jb25zdCByZW9wID0gZCA9PiBkXG5cbmV4cG9ydCBjb25zdCBGb3JtRGVmYXVsdFByb3BzID0ge1xuICBsb2FkU3RhdGU6IG5vb3AsXG4gIGRlZmF1bHRWYWx1ZXM6IHt9LFxuICBwcmVWYWxpZGF0ZTogcmVvcCxcbiAgdmFsaWRhdGU6ICgpID0+IG51bGwsXG4gIG9uVmFsaWRhdGlvbkZhaWw6IG5vb3AsXG4gIG9uQ2hhbmdlOiBub29wLFxuICBzYXZlU3RhdGU6IG5vb3AsXG4gIHdpbGxVbm1vdW50OiBub29wLFxuICBwcmVTdWJtaXQ6IHJlb3AsXG4gIG9uU3VibWl0OiBub29wLFxuICBwb3N0U3VibWl0OiBub29wLFxuICBjb21wb25lbnQ6ICdkaXYnXG59XG5cbmNsYXNzIEZvcm0gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBjb25zdHJ1Y3RvciAocHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcylcblxuICAgIGNvbnN0IHtcbiAgICAgIGRlZmF1bHRWYWx1ZXMsXG4gICAgICB2YWx1ZXMsXG4gICAgICBsb2FkU3RhdGVcbiAgICB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3QgbWVyZ2VkVmFsdWVzID0ge1xuICAgICAgLi4uZGVmYXVsdFZhbHVlcyxcbiAgICAgIC4uLnZhbHVlc1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSBsb2FkU3RhdGUodGhpcy5wcm9wcywgdGhpcykgfHwge1xuICAgICAgdmFsdWVzOiBtZXJnZWRWYWx1ZXMsXG4gICAgICB0b3VjaGVkOiB7fSxcbiAgICAgIGVycm9yczogdGhpcy52YWxpZGF0ZShtZXJnZWRWYWx1ZXMpLFxuICAgICAgbmVzdGVkRXJyb3JzOiB7fVxuICAgIH1cblxuICAgIHRoaXMuc2V0QWxsVmFsdWVzID0gdGhpcy5zZXRBbGxWYWx1ZXMuYmluZCh0aGlzKVxuICAgIHRoaXMuc2V0VmFsdWUgPSB0aGlzLnNldFZhbHVlLmJpbmQodGhpcylcbiAgICB0aGlzLmdldFZhbHVlID0gdGhpcy5nZXRWYWx1ZS5iaW5kKHRoaXMpXG4gICAgdGhpcy5zZXROZXN0ZWRFcnJvciA9IHRoaXMuc2V0TmVzdGVkRXJyb3IuYmluZCh0aGlzKVxuICAgIHRoaXMuZ2V0RXJyb3IgPSB0aGlzLmdldEVycm9yLmJpbmQodGhpcylcbiAgICB0aGlzLnNldFRvdWNoZWQgPSB0aGlzLnNldFRvdWNoZWQuYmluZCh0aGlzKVxuICAgIHRoaXMuZ2V0VG91Y2hlZCA9IHRoaXMuZ2V0VG91Y2hlZC5iaW5kKHRoaXMpXG4gICAgdGhpcy5hZGRWYWx1ZSA9IHRoaXMuYWRkVmFsdWUuYmluZCh0aGlzKVxuICAgIHRoaXMucmVtb3ZlVmFsdWUgPSB0aGlzLnJlbW92ZVZhbHVlLmJpbmQodGhpcylcbiAgICB0aGlzLnN3YXBWYWx1ZXMgPSB0aGlzLnN3YXBWYWx1ZXMuYmluZCh0aGlzKVxuICAgIHRoaXMuc2V0QWxsVG91Y2hlZCA9IHRoaXMuc2V0QWxsVG91Y2hlZC5iaW5kKHRoaXMpXG4gICAgdGhpcy5yZXNldEZvcm0gPSB0aGlzLnJlc2V0Rm9ybS5iaW5kKHRoaXMpXG4gICAgdGhpcy5zdWJtaXRGb3JtID0gdGhpcy5zdWJtaXRGb3JtLmJpbmQodGhpcylcbiAgfVxuXG4gIGdldENoaWxkQ29udGV4dCAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZvcm1BUEk6IHRoaXMuZ2V0QVBJKClcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnRXaWxsTW91bnQgKCkge1xuICAgIHRoaXMuZW1pdENoYW5nZSh0aGlzLnN0YXRlLCB0cnVlKVxuICB9XG5cbiAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAocHJvcHMpIHtcbiAgICBpZiAocHJvcHMudmFsdWVzID09PSB0aGlzLnByb3BzLnZhbHVlcykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5zZXRGb3JtU3RhdGUoe1xuICAgICAgdmFsdWVzOiBwcm9wcy52YWx1ZXMgfHwge31cbiAgICB9LCB0cnVlKVxuICB9XG5cbiAgY29tcG9uZW50V2lsbFVtb3VudCAoKSB7XG4gICAgdGhpcy5wcm9wcy53aWxsVW5tb3VudCh0aGlzLnN0YXRlLCB0aGlzLnByb3BzLCB0aGlzKVxuICB9XG5cbiAgLy8gQVBJXG4gIHNldEFsbFZhbHVlcyAodmFsdWVzLCBub1RvdWNoKSB7XG4gICAgaWYgKG5vVG91Y2gpIHtcbiAgICAgIHJldHVybiB0aGlzLnNldEZvcm1TdGF0ZSh7dmFsdWVzfSlcbiAgICB9XG4gICAgdGhpcy5zZXRGb3JtU3RhdGUoe3ZhbHVlcywgdG91Y2hlZDoge319KVxuICB9XG5cbiAgc2V0VmFsdWUgKGZpZWxkLCB2YWx1ZSwgbm9Ub3VjaCkge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVxuICAgIGNvbnN0IHZhbHVlcyA9IF8uc2V0KHN0YXRlLnZhbHVlcywgZmllbGQsIHZhbHVlKVxuICAgIC8vIEFsc28gc2V0IHRvdWNoZWQgc2luY2UgdGhlIHZhbHVlIGlzIGNoYW5naW5nXG4gICAgaWYgKG5vVG91Y2gpIHtcbiAgICAgIHJldHVybiB0aGlzLnNldEZvcm1TdGF0ZSh7dmFsdWVzfSlcbiAgICB9XG4gICAgY29uc3QgdG91Y2hlZCA9IF8uc2V0KHN0YXRlLnRvdWNoZWQsIGZpZWxkKVxuICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHt2YWx1ZXMsIHRvdWNoZWR9KVxuICB9XG5cbiAgZ2V0VmFsdWUgKGZpZWxkLCBmYWxsYmFjaykge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVxuICAgIGNvbnN0IHZhbCA9IF8uZ2V0KHN0YXRlLnZhbHVlcywgZmllbGQpXG4gICAgcmV0dXJuIHR5cGVvZiB2YWwgIT09ICd1bmRlZmluZWQnID8gdmFsIDogZmFsbGJhY2tcbiAgfVxuXG4gIHNldE5lc3RlZEVycm9yIChmaWVsZCwgdmFsdWUgPSB0cnVlKSB7XG4gICAgY29uc3QgbmVzdGVkRXJyb3JzID0gXy5zZXQodGhpcy5zdGF0ZS5uZXN0ZWRFcnJvcnMsIGZpZWxkLCB2YWx1ZSlcbiAgICB0aGlzLnNldEZvcm1TdGF0ZSh7bmVzdGVkRXJyb3JzfSlcbiAgfVxuXG4gIGdldEVycm9yIChmaWVsZCkge1xuICAgIHJldHVybiBfLmdldCh0aGlzLnN0YXRlLmVycm9ycywgZmllbGQpXG4gIH1cblxuICBzZXRUb3VjaGVkIChmaWVsZCwgdmFsdWUgPSB0cnVlKSB7XG4gICAgY29uc3QgdG91Y2hlZCA9IF8uc2V0KHRoaXMuc3RhdGUudG91Y2hlZCwgZmllbGQsIHZhbHVlKVxuICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHt0b3VjaGVkfSlcbiAgfVxuXG4gIGdldFRvdWNoZWQgKGZpZWxkKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlXG4gICAgaWYgKHRoaXMuc3RhdGUuZGlydHkgPT09IHRydWUgfHwgdGhpcy5wcm9wcy50b3VjaGVkID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gXy5nZXQoc3RhdGUudG91Y2hlZCwgZmllbGQpXG4gIH1cblxuICBhZGRWYWx1ZSAoZmllbGQsIHZhbHVlKSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlXG4gICAgY29uc3QgdmFsdWVzID0gXy5zZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW1xuICAgICAgLi4uXy5nZXQoc3RhdGUudmFsdWVzLCBmaWVsZCwgW10pLFxuICAgICAgdmFsdWVcbiAgICBdKVxuICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHt2YWx1ZXN9KVxuICB9XG5cbiAgcmVtb3ZlVmFsdWUgKGZpZWxkLCBpbmRleCkge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVxuICAgIGNvbnN0IGZpZWxkVmFsdWUgPSBfLmdldChzdGF0ZS52YWx1ZXMsIGZpZWxkLCBbXSlcbiAgICBjb25zdCB2YWx1ZXMgPSBfLnNldChzdGF0ZS52YWx1ZXMsIGZpZWxkLCBbXG4gICAgICAuLi5maWVsZFZhbHVlLnNsaWNlKDAsIGluZGV4KSxcbiAgICAgIC4uLmZpZWxkVmFsdWUuc2xpY2UoaW5kZXggKyAxKVxuICAgIF0pXG4gICAgdGhpcy5zZXRGb3JtU3RhdGUoe3ZhbHVlc30pXG4gIH1cblxuICBzd2FwVmFsdWVzIChmaWVsZCwgaW5kZXgsIGRlc3RJbmRleCkge1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVxuXG4gICAgY29uc3QgbWluID0gTWF0aC5taW4oaW5kZXgsIGRlc3RJbmRleClcbiAgICBjb25zdCBtYXggPSBNYXRoLm1heChpbmRleCwgZGVzdEluZGV4KVxuXG4gICAgY29uc3QgZmllbGRWYWx1ZXMgPSBfLmdldChzdGF0ZS52YWx1ZXMsIGZpZWxkLCBbXSlcbiAgICBjb25zdCB2YWx1ZXMgPSBfLnNldChzdGF0ZS52YWx1ZXMsIGZpZWxkLCBbXG4gICAgICAuLi5maWVsZFZhbHVlcy5zbGljZSgwLCBtaW4pLFxuICAgICAgZmllbGRWYWx1ZXNbbWF4XSxcbiAgICAgIC4uLmZpZWxkVmFsdWVzLnNsaWNlKG1pbiArIDEsIG1heCksXG4gICAgICBmaWVsZFZhbHVlc1ttaW5dLFxuICAgICAgLi4uZmllbGRWYWx1ZXMuc2xpY2UobWF4ICsgMSlcbiAgICBdKVxuICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHt2YWx1ZXN9KVxuICB9XG5cbiAgc2V0QWxsVG91Y2hlZCAoZGlydHkgPSB0cnVlLCBzdGF0ZSkge1xuICAgIHRoaXMuc2V0Rm9ybVN0YXRlKHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgZGlydHk6ICEhZGlydHlcbiAgICB9KVxuICB9XG5cbiAgcmVzZXRGb3JtICgpIHtcbiAgICByZXR1cm4gdGhpcy5zZXRGb3JtU3RhdGUodGhpcy5nZXRJbml0aWFsU3RhdGUoKSlcbiAgfVxuXG4gIHN1Ym1pdEZvcm0gKGUpIHtcbiAgICBlICYmIGUucHJldmVudERlZmF1bHQgJiYgZS5wcmV2ZW50RGVmYXVsdChlKVxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZVxuICAgIGNvbnN0IGVycm9ycyA9IHRoaXMudmFsaWRhdGUoc3RhdGUudmFsdWVzLCBzdGF0ZSwgdGhpcy5wcm9wcylcbiAgICBpZiAoZXJyb3JzKSB7XG4gICAgICBpZiAoIXN0YXRlLmRpcnR5KSB7XG4gICAgICAgIHRoaXMuc2V0QWxsVG91Y2hlZCh0cnVlLCB7ZXJyb3JzfSlcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uVmFsaWRhdGlvbkZhaWwoc3RhdGUudmFsdWVzLCBzdGF0ZSwgdGhpcy5wcm9wcywgdGhpcylcbiAgICB9XG4gICAgY29uc3QgcHJlU3VibWl0VmFsdWVzID0gdGhpcy5wcm9wcy5wcmVTdWJtaXQoc3RhdGUudmFsdWVzLCBzdGF0ZSwgdGhpcy5wcm9wcywgdGhpcylcbiAgICB0aGlzLnByb3BzLm9uU3VibWl0KHByZVN1Ym1pdFZhbHVlcywgc3RhdGUsIHRoaXMucHJvcHMsIHRoaXMpXG4gICAgdGhpcy5wcm9wcy5wb3N0U3VibWl0KHByZVN1Ym1pdFZhbHVlcywgc3RhdGUsIHRoaXMucHJvcHMsIHRoaXMpXG4gIH1cblxuICAvLyBVdGlsc1xuICBnZXRBUEkgKCkge1xuICAgIHJldHVybiB7XG4gICAgICBzZXRBbGxWYWx1ZXM6IHRoaXMuc2V0QWxsVmFsdWVzLFxuICAgICAgc2V0VmFsdWU6IHRoaXMuc2V0VmFsdWUsXG4gICAgICBnZXRWYWx1ZTogdGhpcy5nZXRWYWx1ZSxcbiAgICAgIHNldE5lc3RlZEVycm9yOiB0aGlzLnNldE5lc3RlZEVycm9yLFxuICAgICAgZ2V0RXJyb3I6IHRoaXMuZ2V0RXJyb3IsXG4gICAgICBzZXRUb3VjaGVkOiB0aGlzLnNldFRvdWNoZWQsXG4gICAgICBnZXRUb3VjaGVkOiB0aGlzLmdldFRvdWNoZWQsXG4gICAgICBhZGRWYWx1ZTogdGhpcy5hZGRWYWx1ZSxcbiAgICAgIHJlbW92ZVZhbHVlOiB0aGlzLnJlbW92ZVZhbHVlLFxuICAgICAgc3dhcFZhbHVlczogdGhpcy5zd2FwVmFsdWVzLFxuICAgICAgc2V0QWxsVG91Y2hlZDogdGhpcy5zZXRBbGxUb3VjaGVkLFxuICAgICAgcmVzZXRGb3JtOiB0aGlzLnJlc2V0Rm9ybSxcbiAgICAgIHN1Ym1pdEZvcm06IHRoaXMuc3VibWl0Rm9ybVxuICAgIH1cbiAgfVxuXG4gIHNldEZvcm1TdGF0ZSAobmV3U3RhdGUsIHNpbGVudCkge1xuICAgIGlmIChuZXdTdGF0ZSAmJiBuZXdTdGF0ZS52YWx1ZXMgJiYgIW5ld1N0YXRlLmVycm9ycykge1xuICAgICAgbmV3U3RhdGUudmFsdWVzID0gdGhpcy5wcm9wcy5wcmVWYWxpZGF0ZShuZXdTdGF0ZS52YWx1ZXMsIG5ld1N0YXRlLCB0aGlzLnByb3BzLCB0aGlzKVxuICAgICAgbmV3U3RhdGUuZXJyb3JzID0gdGhpcy52YWxpZGF0ZShuZXdTdGF0ZS52YWx1ZXMsIG5ld1N0YXRlLCB0aGlzLnByb3BzKVxuICAgIH1cbiAgICB0aGlzLnNldFN0YXRlKG5ld1N0YXRlLCAoKSA9PiB7XG4gICAgICB0aGlzLnByb3BzLnNhdmVTdGF0ZSh0aGlzLnN0YXRlLCB0aGlzLnByb3BzLCB0aGlzKVxuICAgICAgaWYgKCFzaWxlbnQpIHtcbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKHRoaXMuc3RhdGUsIHRoaXMucHJvcHMpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGVtaXRDaGFuZ2UgKHN0YXRlLCBpbml0aWFsKSB7XG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZShzdGF0ZSwgdGhpcy5wcm9wcywgaW5pdGlhbCwgdGhpcylcbiAgfVxuXG4gIHZhbGlkYXRlICh2YWx1ZXMsIHN0YXRlLCBwcm9wcykge1xuICAgIGNvbnN0IGVycm9ycyA9IHRoaXMucHJvcHMudmFsaWRhdGUoXG4gICAgICByZW1vdmVOZXN0ZWRFcnJvclZhbHVlcyh2YWx1ZXMsIHRoaXMuc3RhdGUgPyB0aGlzLnN0YXRlLm5lc3RlZEVycm9ycyA6IHt9KSxcbiAgICAgIHN0YXRlLFxuICAgICAgcHJvcHMsXG4gICAgICB0aGlzXG4gICAgKVxuICAgIHJldHVybiBjbGVhbkVycm9ycyhlcnJvcnMpXG4gIH1cblxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHByb3BzID0ge1xuICAgICAgLi4udGhpcy5wcm9wcyxcbiAgICAgIC4uLnRoaXMuc3RhdGUsXG4gICAgICAuLi50aGlzLmdldEFQSSgpXG4gICAgfVxuICAgIGNvbnN0IHsgY29tcG9uZW50LCBjaGlsZHJlbiwgLi4ucmVzdCB9ID0gcHJvcHNcbiAgICBjb25zdCByZXNvbHZlZENoaWxkID0gdHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nID8gY2hpbGRyZW4ocmVzdCkgOiBjaGlsZHJlblxuICAgIGNvbnN0IFJvb3RFbCA9IGNvbXBvbmVudFxuICAgIGlmICghUm9vdEVsKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZWRDaGlsZFxuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPFJvb3RFbCBjbGFzc05hbWU9J1JlYWN0Rm9ybSc+e3Jlc29sdmVkQ2hpbGR9PC9Sb290RWw+XG4gICAgKVxuICB9XG59XG5cbkZvcm0uZGlzcGxheU5hbWUgPSAnRm9ybSdcbkZvcm0uZGVmYXVsdFByb3BzID0gRm9ybURlZmF1bHRQcm9wc1xuRm9ybS5jaGlsZENvbnRleHRUeXBlcyA9IHsgZm9ybUFQSTogUHJvcFR5cGVzLm9iamVjdCB9XG5cbmV4cG9ydCBkZWZhdWx0IEZvcm1cblxuLy8gVXRpbHNcblxuZnVuY3Rpb24gY2xlYW5FcnJvcnMgKGVycikge1xuICBpZiAoXy5pc09iamVjdChlcnIpKSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBfLm1hcFZhbHVlcyhlcnIsIGNsZWFuRXJyb3JzKVxuICAgIGNvbnN0IGZvdW5kID0gXy5waWNrQnkocmVzb2x2ZWQsIGQgPT4gZClcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZm91bmQpLmxlbmd0aCA/IHJlc29sdmVkIDogdW5kZWZpbmVkXG4gIH1cbiAgaWYgKF8uaXNBcnJheShlcnIpKSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBlcnIubWFwKGNsZWFuRXJyb3JzKVxuICAgIGNvbnN0IGZvdW5kID0gcmVzb2x2ZWQuZmluZChkID0+IGQpXG4gICAgcmV0dXJuIGZvdW5kID8gcmVzb2x2ZWQgOiB1bmRlZmluZWRcbiAgfVxuICByZXR1cm4gZXJyXG59XG5cbi8vIHJlbW92ZU5lc3RlZEVycm9yVmFsdWVzIHJlY3Vyc2VzIHRoZSB2YWx1ZXMgb2JqZWN0IGFuZCB0dXJucyBhbnlcbi8vIGZpZWxkIHRoYXQgaGFzIGEgdHJ1dGh5IGNvcnJlc3BvbmRpbmcgbmVzdGVkIGZvcm0gZXJyb3IgZmllbGQgaW50byB1bmRlZmluZWQuXG4vLyBUaGlzIGFsbG93cyBwcm9wZXJseSB2YWxpZGF0aW5nIGEgbmVzdGVkIGZvcm0gYnkgZGV0ZWN0aW5nIHRoYXQgdW5kZWZpbmVkIHZhbHVlXG4vLyBpbiB0aGUgdmFsaWRhdGlvbiBmdW5jdGlvblxuZnVuY3Rpb24gcmVtb3ZlTmVzdGVkRXJyb3JWYWx1ZXMgKHZhbHVlcywgbmVzdGVkRXJyb3JzKSB7XG4gIGNvbnN0IHJlY3Vyc2UgPSAoY3VycmVudCwgcGF0aCA9IFtdKSA9PiB7XG4gICAgaWYgKF8uaXNPYmplY3QoY3VycmVudCkpIHtcbiAgICAgIHJldHVybiBfLm1hcFZhbHVlcyhjdXJyZW50LCAoZCwgaSkgPT4ge1xuICAgICAgICByZXR1cm4gcmVjdXJzZShkLCBbLi4ucGF0aCwgaV0pXG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAoXy5pc0FycmF5KGN1cnJlbnQpKSB7XG4gICAgICByZXR1cm4gY3VycmVudC5tYXAoKGQsIGtleSkgPT4ge1xuICAgICAgICByZXR1cm4gcmVjdXJzZShkLCBbLi4ucGF0aCwga2V5XSlcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmICghXy5pc09iamVjdChjdXJyZW50KSAmJiAhXy5pc0FycmF5KGN1cnJlbnQpICYmIGN1cnJlbnQpIHtcbiAgICAgIHJldHVybiBfLnNldCh2YWx1ZXMsIHBhdGgsIHVuZGVmaW5lZClcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRcbiAgfVxuICByZWN1cnNlKG5lc3RlZEVycm9ycylcbiAgcmV0dXJuIHZhbHVlc1xufVxuIl19 |
@@ -8,5 +8,5 @@ 'use strict'; | ||
var _react = require('react'); | ||
var _propTypes = require('prop-types'); | ||
var _react2 = _interopRequireDefault(_react); | ||
var _propTypes2 = _interopRequireDefault(_propTypes); | ||
@@ -43,4 +43,4 @@ var _utils = require('./utils'); | ||
FormField.contextTypes = { | ||
formAPI: _react2.default.PropTypes.object | ||
formAPI: _propTypes2.default.object | ||
}; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtRmllbGQuanMiXSwibmFtZXMiOlsiRm9ybUZpZWxkIiwiY29udGV4dCIsImZpZWxkIiwiY2hpbGRyZW4iLCJiaW5kIiwiY2IiLCJhcmdzIiwiYXJnczIiLCJtYXBWYWx1ZXMiLCJmb3JtQVBJIiwiZCIsImNvbnRleHRUeXBlcyIsIlByb3BUeXBlcyIsIm9iamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7a0JBSXdCQSxTOztBQUp4Qjs7OztBQUVBOzs7Ozs7QUFFZSxTQUFTQSxTQUFULE9BQXVDQyxPQUF2QyxFQUFnRDtBQUFBLE1BQTNCQyxLQUEyQixRQUEzQkEsS0FBMkI7QUFBQSxNQUFwQkMsUUFBb0IsUUFBcEJBLFFBQW9COztBQUM3RCxNQUFNQyxPQUFPLFNBQVBBLElBQU8sQ0FBQ0MsRUFBRDtBQUFBLHNDQUFRQyxJQUFSO0FBQVFBLFVBQVI7QUFBQTs7QUFBQSxXQUFpQjtBQUFBLHlDQUFJQyxLQUFKO0FBQUlBLGFBQUo7QUFBQTs7QUFBQSxhQUFjRixvQkFBTUMsSUFBTixRQUFlQyxLQUFmLEVBQWQ7QUFBQSxLQUFqQjtBQUFBLEdBQWI7QUFDQSxTQUFPSixTQUFTRCxRQUFRLGdCQUFFTSxTQUFGLENBQVlQLFFBQVFRLE9BQXBCLEVBQTZCO0FBQUEsV0FBS0wsS0FBS00sQ0FBTCxFQUFRUixLQUFSLENBQUw7QUFBQSxHQUE3QixDQUFSLEdBQTRERCxRQUFRUSxPQUE3RSxDQUFQO0FBQ0Q7QUFORDs7QUFPQVQsVUFBVVcsWUFBVixHQUF5QjtBQUN2QkYsV0FBUyxnQkFBTUcsU0FBTixDQUFnQkM7QUFERixDQUF6QiIsImZpbGUiOiJmb3JtRmllbGQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG4vL1xuaW1wb3J0IF8gZnJvbSAnLi91dGlscydcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRm9ybUZpZWxkICh7ZmllbGQsIGNoaWxkcmVufSwgY29udGV4dCkge1xuICBjb25zdCBiaW5kID0gKGNiLCAuLi5hcmdzKSA9PiAoLi4uYXJnczIpID0+IGNiKC4uLmFyZ3MsIC4uLmFyZ3MyKVxuICByZXR1cm4gY2hpbGRyZW4oZmllbGQgPyBfLm1hcFZhbHVlcyhjb250ZXh0LmZvcm1BUEksIGQgPT4gYmluZChkLCBmaWVsZCkpIDogY29udGV4dC5mb3JtQVBJKVxufVxuRm9ybUZpZWxkLmNvbnRleHRUeXBlcyA9IHtcbiAgZm9ybUFQSTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdFxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtRmllbGQuanMiXSwibmFtZXMiOlsiRm9ybUZpZWxkIiwiY29udGV4dCIsImZpZWxkIiwiY2hpbGRyZW4iLCJiaW5kIiwiY2IiLCJhcmdzIiwiYXJnczIiLCJtYXBWYWx1ZXMiLCJmb3JtQVBJIiwiZCIsImNvbnRleHRUeXBlcyIsIm9iamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7a0JBSXdCQSxTOztBQUp4Qjs7OztBQUVBOzs7Ozs7QUFFZSxTQUFTQSxTQUFULE9BQXVDQyxPQUF2QyxFQUFnRDtBQUFBLE1BQTNCQyxLQUEyQixRQUEzQkEsS0FBMkI7QUFBQSxNQUFwQkMsUUFBb0IsUUFBcEJBLFFBQW9COztBQUM3RCxNQUFNQyxPQUFPLFNBQVBBLElBQU8sQ0FBQ0MsRUFBRDtBQUFBLHNDQUFRQyxJQUFSO0FBQVFBLFVBQVI7QUFBQTs7QUFBQSxXQUFpQjtBQUFBLHlDQUFJQyxLQUFKO0FBQUlBLGFBQUo7QUFBQTs7QUFBQSxhQUFjRixvQkFBTUMsSUFBTixRQUFlQyxLQUFmLEVBQWQ7QUFBQSxLQUFqQjtBQUFBLEdBQWI7QUFDQSxTQUFPSixTQUFTRCxRQUFRLGdCQUFFTSxTQUFGLENBQVlQLFFBQVFRLE9BQXBCLEVBQTZCO0FBQUEsV0FBS0wsS0FBS00sQ0FBTCxFQUFRUixLQUFSLENBQUw7QUFBQSxHQUE3QixDQUFSLEdBQTRERCxRQUFRUSxPQUE3RSxDQUFQO0FBQ0Q7QUFORDs7QUFPQVQsVUFBVVcsWUFBVixHQUF5QjtBQUN2QkYsV0FBUyxvQkFBVUc7QUFESSxDQUF6QiIsImZpbGUiOiJmb3JtRmllbGQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG4vL1xuaW1wb3J0IF8gZnJvbSAnLi91dGlscydcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRm9ybUZpZWxkICh7ZmllbGQsIGNoaWxkcmVufSwgY29udGV4dCkge1xuICBjb25zdCBiaW5kID0gKGNiLCAuLi5hcmdzKSA9PiAoLi4uYXJnczIpID0+IGNiKC4uLmFyZ3MsIC4uLmFyZ3MyKVxuICByZXR1cm4gY2hpbGRyZW4oZmllbGQgPyBfLm1hcFZhbHVlcyhjb250ZXh0LmZvcm1BUEksIGQgPT4gYmluZChkLCBmaWVsZCkpIDogY29udGV4dC5mb3JtQVBJKVxufVxuRm9ybUZpZWxkLmNvbnRleHRUeXBlcyA9IHtcbiAgZm9ybUFQSTogUHJvcFR5cGVzLm9iamVjdFxufVxuIl19 |
@@ -9,2 +9,4 @@ 'use strict'; | ||
var _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; }; }(); | ||
var _react = require('react'); | ||
@@ -14,2 +16,6 @@ | ||
var _propTypes = require('prop-types'); | ||
var _propTypes2 = _interopRequireDefault(_propTypes); | ||
var _util = require('./util'); | ||
@@ -20,2 +26,8 @@ | ||
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
function _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; } | ||
function _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; } | ||
// | ||
@@ -26,35 +38,48 @@ | ||
exports.default = _react2.default.createClass({ | ||
displayName: 'radio', | ||
var Radio = function (_React$Component) { | ||
_inherits(Radio, _React$Component); | ||
contextTypes: { | ||
formRadioGroup: _react2.default.PropTypes.object | ||
}, | ||
render: function render() { | ||
var _props = this.props, | ||
value = _props.value, | ||
onClick = _props.onClick, | ||
onChange = _props.onChange, | ||
onBlur = _props.onBlur, | ||
rest = _objectWithoutProperties(_props, ['value', 'onClick', 'onChange', 'onBlur']); | ||
function Radio() { | ||
_classCallCheck(this, Radio); | ||
var _context$formRadioGro = this.context.formRadioGroup, | ||
setValue = _context$formRadioGro.setValue, | ||
getValue = _context$formRadioGro.getValue, | ||
setTouched = _context$formRadioGro.setTouched, | ||
noTouch = _context$formRadioGro.props.noTouch; | ||
return _possibleConstructorReturn(this, (Radio.__proto__ || Object.getPrototypeOf(Radio)).apply(this, arguments)); | ||
} | ||
return _react2.default.createElement('input', _extends({}, rest, { | ||
type: 'radio', | ||
checked: getValue(false) === value, | ||
onChange: (0, _util.buildHandler)(onChange, noop), | ||
onClick: (0, _util.buildHandler)(onClick, function (e) { | ||
return setValue(value, noTouch); | ||
}), | ||
onBlur: (0, _util.buildHandler)(onBlur, function () { | ||
return setTouched(); | ||
}) | ||
})); | ||
} | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb3JtSW5wdXRzL3JhZGlvLmpzIl0sIm5hbWVzIjpbIm5vb3AiLCJjcmVhdGVDbGFzcyIsImNvbnRleHRUeXBlcyIsImZvcm1SYWRpb0dyb3VwIiwiUHJvcFR5cGVzIiwib2JqZWN0IiwicmVuZGVyIiwicHJvcHMiLCJ2YWx1ZSIsIm9uQ2xpY2siLCJvbkNoYW5nZSIsIm9uQmx1ciIsInJlc3QiLCJjb250ZXh0Iiwic2V0VmFsdWUiLCJnZXRWYWx1ZSIsInNldFRvdWNoZWQiLCJub1RvdWNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7O0FBRUE7Ozs7O0FBREE7OztBQUVBLElBQU1BLE9BQU8sU0FBUEEsSUFBTyxHQUFNLENBQUUsQ0FBckI7O2tCQUVlLGdCQUFNQyxXQUFOLENBQWtCO0FBQUE7O0FBQy9CQyxnQkFBYztBQUNaQyxvQkFBZ0IsZ0JBQU1DLFNBQU4sQ0FBZ0JDO0FBRHBCLEdBRGlCO0FBSS9CQyxRQUorQixvQkFJckI7QUFBQSxpQkFDOEMsS0FBS0MsS0FEbkQ7QUFBQSxRQUNBQyxLQURBLFVBQ0FBLEtBREE7QUFBQSxRQUNPQyxPQURQLFVBQ09BLE9BRFA7QUFBQSxRQUNnQkMsUUFEaEIsVUFDZ0JBLFFBRGhCO0FBQUEsUUFDMEJDLE1BRDFCLFVBQzBCQSxNQUQxQjtBQUFBLFFBQ3FDQyxJQURyQzs7QUFBQSxnQ0FFcUQsS0FBS0MsT0FBTCxDQUFhVixjQUZsRTtBQUFBLFFBRURXLFFBRkMseUJBRURBLFFBRkM7QUFBQSxRQUVTQyxRQUZULHlCQUVTQSxRQUZUO0FBQUEsUUFFbUJDLFVBRm5CLHlCQUVtQkEsVUFGbkI7QUFBQSxRQUV3Q0MsT0FGeEMseUJBRStCVixLQUYvQixDQUV3Q1UsT0FGeEM7O0FBR1IsV0FDRSxvREFDTUwsSUFETjtBQUVFLFlBQUssT0FGUDtBQUdFLGVBQVNHLFNBQVMsS0FBVCxNQUFvQlAsS0FIL0I7QUFJRSxnQkFBVSx3QkFBYUUsUUFBYixFQUF1QlYsSUFBdkIsQ0FKWjtBQUtFLGVBQVMsd0JBQWFTLE9BQWIsRUFBc0I7QUFBQSxlQUFLSyxTQUFTTixLQUFULEVBQWdCUyxPQUFoQixDQUFMO0FBQUEsT0FBdEIsQ0FMWDtBQU1FLGNBQVEsd0JBQWFOLE1BQWIsRUFBcUI7QUFBQSxlQUFNSyxZQUFOO0FBQUEsT0FBckI7QUFOVixPQURGO0FBVUQ7QUFqQjhCLENBQWxCLEMiLCJmaWxlIjoicmFkaW8uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG4vL1xuaW1wb3J0IHsgYnVpbGRIYW5kbGVyIH0gZnJvbSAnLi91dGlsJ1xuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbmV4cG9ydCBkZWZhdWx0IFJlYWN0LmNyZWF0ZUNsYXNzKHtcbiAgY29udGV4dFR5cGVzOiB7XG4gICAgZm9ybVJhZGlvR3JvdXA6IFJlYWN0LlByb3BUeXBlcy5vYmplY3RcbiAgfSxcbiAgcmVuZGVyICgpIHtcbiAgICBjb25zdCB7IHZhbHVlLCBvbkNsaWNrLCBvbkNoYW5nZSwgb25CbHVyLCAuLi5yZXN0IH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3Qge3NldFZhbHVlLCBnZXRWYWx1ZSwgc2V0VG91Y2hlZCwgcHJvcHM6IHsgbm9Ub3VjaCB9fSA9IHRoaXMuY29udGV4dC5mb3JtUmFkaW9Hcm91cFxuICAgIHJldHVybiAoXG4gICAgICA8aW5wdXRcbiAgICAgICAgey4uLnJlc3R9XG4gICAgICAgIHR5cGU9J3JhZGlvJ1xuICAgICAgICBjaGVja2VkPXtnZXRWYWx1ZShmYWxzZSkgPT09IHZhbHVlfVxuICAgICAgICBvbkNoYW5nZT17YnVpbGRIYW5kbGVyKG9uQ2hhbmdlLCBub29wKX1cbiAgICAgICAgb25DbGljaz17YnVpbGRIYW5kbGVyKG9uQ2xpY2ssIGUgPT4gc2V0VmFsdWUodmFsdWUsIG5vVG91Y2gpKX1cbiAgICAgICAgb25CbHVyPXtidWlsZEhhbmRsZXIob25CbHVyLCAoKSA9PiBzZXRUb3VjaGVkKCkpfVxuICAgICAgLz5cbiAgICApXG4gIH1cbn0pXG4iXX0= | ||
_createClass(Radio, [{ | ||
key: 'render', | ||
value: function render() { | ||
var _props = this.props, | ||
value = _props.value, | ||
onClick = _props.onClick, | ||
onChange = _props.onChange, | ||
onBlur = _props.onBlur, | ||
rest = _objectWithoutProperties(_props, ['value', 'onClick', 'onChange', 'onBlur']); | ||
var _context$formRadioGro = this.context.formRadioGroup, | ||
setValue = _context$formRadioGro.setValue, | ||
getValue = _context$formRadioGro.getValue, | ||
setTouched = _context$formRadioGro.setTouched, | ||
noTouch = _context$formRadioGro.props.noTouch; | ||
return _react2.default.createElement('input', _extends({}, rest, { | ||
type: 'radio', | ||
checked: getValue(false) === value, | ||
onChange: (0, _util.buildHandler)(onChange, noop), | ||
onClick: (0, _util.buildHandler)(onClick, function (e) { | ||
return setValue(value, noTouch); | ||
}), | ||
onBlur: (0, _util.buildHandler)(onBlur, function () { | ||
return setTouched(); | ||
}) | ||
})); | ||
} | ||
}]); | ||
return Radio; | ||
}(_react2.default.Component); | ||
Radio.contextTypes = { | ||
formRadioGroup: _propTypes2.default.object | ||
}; | ||
exports.default = Radio; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb3JtSW5wdXRzL3JhZGlvLmpzIl0sIm5hbWVzIjpbIm5vb3AiLCJSYWRpbyIsInByb3BzIiwidmFsdWUiLCJvbkNsaWNrIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJyZXN0IiwiY29udGV4dCIsImZvcm1SYWRpb0dyb3VwIiwic2V0VmFsdWUiLCJnZXRWYWx1ZSIsInNldFRvdWNoZWQiLCJub1RvdWNoIiwiQ29tcG9uZW50IiwiY29udGV4dFR5cGVzIiwib2JqZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUVBOzs7Ozs7Ozs7OztBQURBOzs7QUFFQSxJQUFNQSxPQUFPLFNBQVBBLElBQU8sR0FBTSxDQUFFLENBQXJCOztJQUVxQkMsSzs7Ozs7Ozs7Ozs7NkJBSVQ7QUFBQSxtQkFDOEMsS0FBS0MsS0FEbkQ7QUFBQSxVQUNBQyxLQURBLFVBQ0FBLEtBREE7QUFBQSxVQUNPQyxPQURQLFVBQ09BLE9BRFA7QUFBQSxVQUNnQkMsUUFEaEIsVUFDZ0JBLFFBRGhCO0FBQUEsVUFDMEJDLE1BRDFCLFVBQzBCQSxNQUQxQjtBQUFBLFVBQ3FDQyxJQURyQzs7QUFBQSxrQ0FFcUQsS0FBS0MsT0FBTCxDQUFhQyxjQUZsRTtBQUFBLFVBRURDLFFBRkMseUJBRURBLFFBRkM7QUFBQSxVQUVTQyxRQUZULHlCQUVTQSxRQUZUO0FBQUEsVUFFbUJDLFVBRm5CLHlCQUVtQkEsVUFGbkI7QUFBQSxVQUV3Q0MsT0FGeEMseUJBRStCWCxLQUYvQixDQUV3Q1csT0FGeEM7O0FBR1IsYUFDRSxvREFDTU4sSUFETjtBQUVFLGNBQUssT0FGUDtBQUdFLGlCQUFTSSxTQUFTLEtBQVQsTUFBb0JSLEtBSC9CO0FBSUUsa0JBQVUsd0JBQWFFLFFBQWIsRUFBdUJMLElBQXZCLENBSlo7QUFLRSxpQkFBUyx3QkFBYUksT0FBYixFQUFzQjtBQUFBLGlCQUFLTSxTQUFTUCxLQUFULEVBQWdCVSxPQUFoQixDQUFMO0FBQUEsU0FBdEIsQ0FMWDtBQU1FLGdCQUFRLHdCQUFhUCxNQUFiLEVBQXFCO0FBQUEsaUJBQU1NLFlBQU47QUFBQSxTQUFyQjtBQU5WLFNBREY7QUFVRDs7OztFQWpCZ0MsZ0JBQU1FLFM7O0FBQXBCYixLLENBQ1pjLFksR0FBZTtBQUNwQk4sa0JBQWdCLG9CQUFVTztBQUROLEM7a0JBREhmLEsiLCJmaWxlIjoicmFkaW8uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG4vL1xuaW1wb3J0IHsgYnVpbGRIYW5kbGVyIH0gZnJvbSAnLi91dGlsJ1xuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhZGlvIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIGNvbnRleHRUeXBlcyA9IHtcbiAgICBmb3JtUmFkaW9Hcm91cDogUHJvcFR5cGVzLm9iamVjdFxuICB9XG4gIHJlbmRlciAoKSB7XG4gICAgY29uc3QgeyB2YWx1ZSwgb25DbGljaywgb25DaGFuZ2UsIG9uQmx1ciwgLi4ucmVzdCB9ID0gdGhpcy5wcm9wc1xuICAgIGNvbnN0IHtzZXRWYWx1ZSwgZ2V0VmFsdWUsIHNldFRvdWNoZWQsIHByb3BzOiB7IG5vVG91Y2ggfX0gPSB0aGlzLmNvbnRleHQuZm9ybVJhZGlvR3JvdXBcbiAgICByZXR1cm4gKFxuICAgICAgPGlucHV0XG4gICAgICAgIHsuLi5yZXN0fVxuICAgICAgICB0eXBlPSdyYWRpbydcbiAgICAgICAgY2hlY2tlZD17Z2V0VmFsdWUoZmFsc2UpID09PSB2YWx1ZX1cbiAgICAgICAgb25DaGFuZ2U9e2J1aWxkSGFuZGxlcihvbkNoYW5nZSwgbm9vcCl9XG4gICAgICAgIG9uQ2xpY2s9e2J1aWxkSGFuZGxlcihvbkNsaWNrLCBlID0+IHNldFZhbHVlKHZhbHVlLCBub1RvdWNoKSl9XG4gICAgICAgIG9uQmx1cj17YnVpbGRIYW5kbGVyKG9uQmx1ciwgKCkgPT4gc2V0VG91Y2hlZCgpKX1cbiAgICAgIC8+XG4gICAgKVxuICB9XG59XG4iXX0= |
@@ -9,2 +9,4 @@ 'use strict'; | ||
var _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; }; }(); | ||
var _react = require('react'); | ||
@@ -14,2 +16,6 @@ | ||
var _propTypes = require('prop-types'); | ||
var _propTypes2 = _interopRequireDefault(_propTypes); | ||
var _formInput = require('../formInput'); | ||
@@ -22,42 +28,63 @@ | ||
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
function _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; } | ||
function _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; } | ||
// | ||
exports.default = _react2.default.createClass({ | ||
displayName: 'radioGroup', | ||
var RadioGroup = function (_React$Component) { | ||
_inherits(RadioGroup, _React$Component); | ||
childContextTypes: { | ||
formRadioGroup: _react2.default.PropTypes.object | ||
}, | ||
getChildContext: function getChildContext() { | ||
return { | ||
formRadioGroup: this | ||
}; | ||
}, | ||
render: function render() { | ||
var _this = this; | ||
function RadioGroup() { | ||
_classCallCheck(this, RadioGroup); | ||
var _props = this.props, | ||
field = _props.field, | ||
showErrors = _props.showErrors, | ||
_props$errorBefore = _props.errorBefore, | ||
errorBefore = _props$errorBefore === undefined ? true : _props$errorBefore, | ||
isForm = _props.isForm, | ||
children = _props.children, | ||
rest = _objectWithoutProperties(_props, ['field', 'showErrors', 'errorBefore', 'isForm', 'children']); | ||
return _possibleConstructorReturn(this, (RadioGroup.__proto__ || Object.getPrototypeOf(RadioGroup)).apply(this, arguments)); | ||
} | ||
return _react2.default.createElement( | ||
_formInput2.default, | ||
{ field: field, showErrors: showErrors, errorBefore: errorBefore, isForm: isForm }, | ||
function (api) { | ||
_extends(_this, api); | ||
return _react2.default.createElement( | ||
'radiogroup', | ||
rest, | ||
children | ||
); | ||
} | ||
); | ||
} | ||
}); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb3JtSW5wdXRzL3JhZGlvR3JvdXAuanMiXSwibmFtZXMiOlsiY3JlYXRlQ2xhc3MiLCJjaGlsZENvbnRleHRUeXBlcyIsImZvcm1SYWRpb0dyb3VwIiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiZ2V0Q2hpbGRDb250ZXh0IiwicmVuZGVyIiwicHJvcHMiLCJmaWVsZCIsInNob3dFcnJvcnMiLCJlcnJvckJlZm9yZSIsImlzRm9ybSIsImNoaWxkcmVuIiwicmVzdCIsImFwaSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7OztBQUVBOzs7Ozs7O0FBREE7OztrQkFHZSxnQkFBTUEsV0FBTixDQUFrQjtBQUFBOztBQUMvQkMscUJBQW1CO0FBQ2pCQyxvQkFBZ0IsZ0JBQU1DLFNBQU4sQ0FBZ0JDO0FBRGYsR0FEWTtBQUkvQkMsaUJBSitCLDZCQUlaO0FBQ2pCLFdBQU87QUFDTEgsc0JBQWdCO0FBRFgsS0FBUDtBQUdELEdBUjhCO0FBUy9CSSxRQVQrQixvQkFTckI7QUFBQTs7QUFBQSxpQkFDcUUsS0FBS0MsS0FEMUU7QUFBQSxRQUNBQyxLQURBLFVBQ0FBLEtBREE7QUFBQSxRQUNPQyxVQURQLFVBQ09BLFVBRFA7QUFBQSxvQ0FDbUJDLFdBRG5CO0FBQUEsUUFDbUJBLFdBRG5CLHNDQUNpQyxJQURqQztBQUFBLFFBQ3VDQyxNQUR2QyxVQUN1Q0EsTUFEdkM7QUFBQSxRQUMrQ0MsUUFEL0MsVUFDK0NBLFFBRC9DO0FBQUEsUUFDNERDLElBRDVEOztBQUVSLFdBQ0U7QUFBQTtBQUFBLFFBQVcsT0FBT0wsS0FBbEIsRUFBeUIsWUFBWUMsVUFBckMsRUFBaUQsYUFBYUMsV0FBOUQsRUFBMkUsUUFBUUMsTUFBbkY7QUFDRyxnQkFBQ0csR0FBRCxFQUFTO0FBQ1Isd0JBQW9CQSxHQUFwQjtBQUNBLGVBQ0U7QUFBQTtBQUFnQkQsY0FBaEI7QUFDR0Q7QUFESCxTQURGO0FBS0Q7QUFSSCxLQURGO0FBWUQ7QUF2QjhCLENBQWxCLEMiLCJmaWxlIjoicmFkaW9Hcm91cC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbi8vXG5pbXBvcnQgRm9ybUlucHV0IGZyb20gJy4uL2Zvcm1JbnB1dCdcblxuZXhwb3J0IGRlZmF1bHQgUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICBjaGlsZENvbnRleHRUeXBlczoge1xuICAgIGZvcm1SYWRpb0dyb3VwOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0XG4gIH0sXG4gIGdldENoaWxkQ29udGV4dCAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZvcm1SYWRpb0dyb3VwOiB0aGlzXG4gICAgfVxuICB9LFxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHsgZmllbGQsIHNob3dFcnJvcnMsIGVycm9yQmVmb3JlID0gdHJ1ZSwgaXNGb3JtLCBjaGlsZHJlbiwgLi4ucmVzdCB9ID0gdGhpcy5wcm9wc1xuICAgIHJldHVybiAoXG4gICAgICA8Rm9ybUlucHV0IGZpZWxkPXtmaWVsZH0gc2hvd0Vycm9ycz17c2hvd0Vycm9yc30gZXJyb3JCZWZvcmU9e2Vycm9yQmVmb3JlfSBpc0Zvcm09e2lzRm9ybX0+XG4gICAgICAgIHsoYXBpKSA9PiB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBhcGkpXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxyYWRpb2dyb3VwIHsuLi5yZXN0fT5cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9yYWRpb2dyb3VwPlxuICAgICAgICAgIClcbiAgICAgICAgfX1cbiAgICAgIDwvRm9ybUlucHV0PlxuICAgIClcbiAgfVxufSlcbiJdfQ== | ||
_createClass(RadioGroup, [{ | ||
key: 'getChildContext', | ||
value: function getChildContext() { | ||
return { | ||
formRadioGroup: this | ||
}; | ||
} | ||
}, { | ||
key: 'render', | ||
value: function render() { | ||
var _this2 = this; | ||
var _props = this.props, | ||
field = _props.field, | ||
showErrors = _props.showErrors, | ||
_props$errorBefore = _props.errorBefore, | ||
errorBefore = _props$errorBefore === undefined ? true : _props$errorBefore, | ||
isForm = _props.isForm, | ||
children = _props.children, | ||
rest = _objectWithoutProperties(_props, ['field', 'showErrors', 'errorBefore', 'isForm', 'children']); | ||
return _react2.default.createElement( | ||
_formInput2.default, | ||
{ field: field, showErrors: showErrors, errorBefore: errorBefore, isForm: isForm }, | ||
function (api) { | ||
_extends(_this2, api); | ||
return _react2.default.createElement( | ||
'radiogroup', | ||
rest, | ||
children | ||
); | ||
} | ||
); | ||
} | ||
}]); | ||
return RadioGroup; | ||
}(_react2.default.Component); | ||
RadioGroup.childContextTypes = { | ||
formRadioGroup: _propTypes2.default.object | ||
}; | ||
exports.default = RadioGroup; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb3JtSW5wdXRzL3JhZGlvR3JvdXAuanMiXSwibmFtZXMiOlsiUmFkaW9Hcm91cCIsImZvcm1SYWRpb0dyb3VwIiwicHJvcHMiLCJmaWVsZCIsInNob3dFcnJvcnMiLCJlcnJvckJlZm9yZSIsImlzRm9ybSIsImNoaWxkcmVuIiwicmVzdCIsImFwaSIsIkNvbXBvbmVudCIsImNoaWxkQ29udGV4dFR5cGVzIiwib2JqZWN0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7OztBQUVBOzs7Ozs7Ozs7Ozs7O0FBREE7OztJQUdxQkEsVTs7Ozs7Ozs7Ozs7c0NBSUE7QUFDakIsYUFBTztBQUNMQyx3QkFBZ0I7QUFEWCxPQUFQO0FBR0Q7Ozs2QkFDUztBQUFBOztBQUFBLG1CQUNxRSxLQUFLQyxLQUQxRTtBQUFBLFVBQ0FDLEtBREEsVUFDQUEsS0FEQTtBQUFBLFVBQ09DLFVBRFAsVUFDT0EsVUFEUDtBQUFBLHNDQUNtQkMsV0FEbkI7QUFBQSxVQUNtQkEsV0FEbkIsc0NBQ2lDLElBRGpDO0FBQUEsVUFDdUNDLE1BRHZDLFVBQ3VDQSxNQUR2QztBQUFBLFVBQytDQyxRQUQvQyxVQUMrQ0EsUUFEL0M7QUFBQSxVQUM0REMsSUFENUQ7O0FBRVIsYUFDRTtBQUFBO0FBQUEsVUFBVyxPQUFPTCxLQUFsQixFQUF5QixZQUFZQyxVQUFyQyxFQUFpRCxhQUFhQyxXQUE5RCxFQUEyRSxRQUFRQyxNQUFuRjtBQUNHLGtCQUFDRyxHQUFELEVBQVM7QUFDUiwyQkFBb0JBLEdBQXBCO0FBQ0EsaUJBQ0U7QUFBQTtBQUFnQkQsZ0JBQWhCO0FBQ0dEO0FBREgsV0FERjtBQUtEO0FBUkgsT0FERjtBQVlEOzs7O0VBdkJxQyxnQkFBTUcsUzs7QUFBekJWLFUsQ0FDWlcsaUIsR0FBb0I7QUFDekJWLGtCQUFnQixvQkFBVVc7QUFERCxDO2tCQURSWixVIiwiZmlsZSI6InJhZGlvR3JvdXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG4vL1xuaW1wb3J0IEZvcm1JbnB1dCBmcm9tICcuLi9mb3JtSW5wdXQnXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhZGlvR3JvdXAgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgY2hpbGRDb250ZXh0VHlwZXMgPSB7XG4gICAgZm9ybVJhZGlvR3JvdXA6IFByb3BUeXBlcy5vYmplY3RcbiAgfVxuICBnZXRDaGlsZENvbnRleHQgKCkge1xuICAgIHJldHVybiB7XG4gICAgICBmb3JtUmFkaW9Hcm91cDogdGhpc1xuICAgIH1cbiAgfVxuICByZW5kZXIgKCkge1xuICAgIGNvbnN0IHsgZmllbGQsIHNob3dFcnJvcnMsIGVycm9yQmVmb3JlID0gdHJ1ZSwgaXNGb3JtLCBjaGlsZHJlbiwgLi4ucmVzdCB9ID0gdGhpcy5wcm9wc1xuICAgIHJldHVybiAoXG4gICAgICA8Rm9ybUlucHV0IGZpZWxkPXtmaWVsZH0gc2hvd0Vycm9ycz17c2hvd0Vycm9yc30gZXJyb3JCZWZvcmU9e2Vycm9yQmVmb3JlfSBpc0Zvcm09e2lzRm9ybX0+XG4gICAgICAgIHsoYXBpKSA9PiB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBhcGkpXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxyYWRpb2dyb3VwIHsuLi5yZXN0fT5cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC9yYWRpb2dyb3VwPlxuICAgICAgICAgIClcbiAgICAgICAgfX1cbiAgICAgIDwvRm9ybUlucHV0PlxuICAgIClcbiAgfVxufVxuIl19 |
@@ -13,2 +13,2 @@ "use strict"; | ||
}; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb3JtSW5wdXRzL3V0aWwuanMiXSwibmFtZXMiOlsiYnVpbGRIYW5kbGVyIiwib3ZlcnJpZGUiLCJmbiIsImUiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQU8sSUFBTUEsc0NBQWUsU0FBZkEsWUFBZSxDQUFDQyxRQUFELEVBQVdDLEVBQVg7QUFBQSxTQUFrQjtBQUFBLFdBQzVDLENBQUNELFFBQUQsR0FDSUMsR0FBR0MsQ0FBSCxDQURKLEdBRUlGLFNBQVNFLENBQVQsRUFBWTtBQUFBLGFBQU1ELEdBQUdDLENBQUgsQ0FBTjtBQUFBLEtBQVosQ0FId0M7QUFBQSxHQUFsQjtBQUFBLENBQXJCIiwiZmlsZSI6InV0aWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgYnVpbGRIYW5kbGVyID0gKG92ZXJyaWRlLCBmbikgPT4gZSA9PlxuICAhb3ZlcnJpZGVcbiAgICA/IGZuKGUpXG4gICAgOiBvdmVycmlkZShlLCAoKSA9PiBmbihlKSlcblxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb3JtSW5wdXRzL3V0aWwuanMiXSwibmFtZXMiOlsiYnVpbGRIYW5kbGVyIiwib3ZlcnJpZGUiLCJmbiIsImUiXSwibWFwcGluZ3MiOiI7Ozs7O0FBQU8sSUFBTUEsc0NBQWUsU0FBZkEsWUFBZSxDQUFDQyxRQUFELEVBQVdDLEVBQVg7QUFBQSxTQUFrQjtBQUFBLFdBQzVDLENBQUNELFFBQUQsR0FDSUMsR0FBR0MsQ0FBSCxDQURKLEdBRUlGLFNBQVNFLENBQVQsRUFBWTtBQUFBLGFBQU1ELEdBQUdDLENBQUgsQ0FBTjtBQUFBLEtBQVosQ0FId0M7QUFBQSxHQUFsQjtBQUFBLENBQXJCIiwiZmlsZSI6InV0aWwuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgYnVpbGRIYW5kbGVyID0gKG92ZXJyaWRlLCBmbikgPT4gZSA9PlxuICAhb3ZlcnJpZGVcbiAgICA/IGZuKGUpXG4gICAgOiBvdmVycmlkZShlLCAoKSA9PiBmbihlKSlcbiJdfQ== |
{ | ||
"name": "react-form", | ||
"version": "1.2.6", | ||
"version": "1.2.7", | ||
"description": "React Form is a lightweight framework and utility for building powerful forms in React applications.", | ||
@@ -36,3 +36,4 @@ "license": "MIT", | ||
"dependencies": { | ||
"classnames": "^2.2.5" | ||
"classnames": "^2.2.5", | ||
"prop-types": "^15.5.8" | ||
}, | ||
@@ -39,0 +40,0 @@ "peerDependencies": { |
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.reactForm = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
"use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _objectWithoutProperties(t,e){var s={};for(var r in t)e.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(t,r)&&(s[r]=t[r]);return s}function _toConsumableArray(t){if(Array.isArray(t)){for(var e=0,s=Array(t.length);e<t.length;e++)s[e]=t[e];return s}return Array.from(t)}function cleanErrors(t){if(_utils2.default.isObject(t)){var e=_utils2.default.mapValues(t,cleanErrors),s=_utils2.default.pickBy(e,function(t){return t});return Object.keys(s).length?e:void 0}if(_utils2.default.isArray(t)){var r=t.map(cleanErrors),a=r.find(function(t){return t});return a?r:void 0}return t}function removeNestedErrorValues(t,e){var s=function e(s){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return _utils2.default.isObject(s)?_utils2.default.mapValues(s,function(t,s){return e(t,[].concat(_toConsumableArray(r),[s]))}):_utils2.default.isArray(s)?s.map(function(t,s){return e(t,[].concat(_toConsumableArray(r),[s]))}):_utils2.default.isObject(s)||_utils2.default.isArray(s)||!s?s:_utils2.default.set(t,r,void 0)};return s(e),t}Object.defineProperty(exports,"__esModule",{value:!0}),exports.FormDefaultProps=void 0;var _extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var s=arguments[e];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(t[r]=s[r])}return t},_react=require("react"),_react2=_interopRequireDefault(_react),_utils=require("./utils"),_utils2=_interopRequireDefault(_utils),noop=function(){},reop=function(t){return t},FormDefaultProps=exports.FormDefaultProps={loadState:noop,defaultValues:{},preValidate:reop,validate:function(){return null},onValidationFail:noop,onChange:noop,saveState:noop,willUnmount:noop,preSubmit:reop,onSubmit:noop,postSubmit:noop,component:"div"};exports.default=_react2.default.createClass({displayName:"Form",childContextTypes:{formAPI:_react2.default.PropTypes.object},getChildContext:function(){return{formAPI:this.getAPI()}},getDefaultProps:function(){return FormDefaultProps},getInitialState:function(){var t=this.props,e=t.defaultValues,s=t.values,r=t.loadState,a=_extends({},e,s);return r(this.props,this)||{values:a,touched:{},errors:this.validate(a),nestedErrors:{}}},componentWillMount:function(){this.emitChange(this.state,!0)},componentWillReceiveProps:function(t){t.values!==this.props.values&&this.setFormState({values:t.values||{}},!0)},componentWillUnmount:function(){this.props.willUnmount(this.state,this.props,this)},setAllValues:function(t,e){return e?this.setFormState({values:t}):void this.setFormState({values:t,touched:{}})},setValue:function(t,e,s){var r=this.state,a=_utils2.default.set(r.values,t,e);if(s)return this.setFormState({values:a});var o=_utils2.default.set(r.touched,t);this.setFormState({values:a,touched:o})},getValue:function(t,e){var s=this.state,r=_utils2.default.get(s.values,t);return"undefined"!=typeof r?r:e},setNestedError:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],s=_utils2.default.set(this.state.nestedErrors,t,e);this.setFormState({nestedErrors:s})},getError:function(t){return _utils2.default.get(this.state.errors,t)},setTouched:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],s=_utils2.default.set(this.state.touched,t,e);this.setFormState({touched:s})},getTouched:function(t){var e=this.state;return this.state.dirty===!0||this.props.touched===!0||_utils2.default.get(e.touched,t)},addValue:function(t,e){var s=this.state,r=_utils2.default.set(s.values,t,[].concat(_toConsumableArray(_utils2.default.get(s.values,t,[])),[e]));this.setFormState({values:r})},removeValue:function(t,e){var s=this.state,r=_utils2.default.get(s.values,t,[]),a=_utils2.default.set(s.values,t,[].concat(_toConsumableArray(r.slice(0,e)),_toConsumableArray(r.slice(e+1))));this.setFormState({values:a})},swapValues:function(t,e,s){var r=this.state,a=Math.min(e,s),o=Math.max(e,s),i=_utils2.default.get(r.values,t,[]),u=_utils2.default.set(r.values,t,[].concat(_toConsumableArray(i.slice(0,a)),[i[o]],_toConsumableArray(i.slice(a+1,o)),[i[a]],_toConsumableArray(i.slice(o+1))));this.setFormState({values:u})},setAllTouched:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],e=arguments[1];this.setFormState(_extends({},e,{dirty:!!t}))},resetForm:function(){return this.setFormState(this.getInitialState())},submitForm:function(t){t&&t.preventDefault&&t.preventDefault(t);var e=this.state,s=this.validate(e.values,e,this.props);if(s)return e.dirty||this.setAllTouched(!0,{errors:s}),this.props.onValidationFail(e.values,e,this.props,this);var r=this.props.preSubmit(e.values,e,this.props,this);this.props.onSubmit(r,e,this.props,this),this.props.postSubmit(r,e,this.props,this)},getAPI:function(){return{setAllValues:this.setAllValues,setValue:this.setValue,getValue:this.getValue,setNestedError:this.setNestedError,getError:this.getError,setTouched:this.setTouched,getTouched:this.getTouched,addValue:this.addValue,removeValue:this.removeValue,swapValues:this.swapValues,setAllTouched:this.setAllTouched,resetForm:this.resetForm,submitForm:this.submitForm}},setFormState:function(t,e){var s=this;t&&t.values&&!t.errors&&(t.values=this.props.preValidate(t.values,t,this.props,this),t.errors=this.validate(t.values,t,this.props)),this.setState(t,function(){s.props.saveState(s.state,s.props,s),e||s.emitChange(s.state,s.props)})},emitChange:function(t,e){this.props.onChange(t,this.props,e,this)},validate:function(t,e,s){var r=this.props.validate(removeNestedErrorValues(t,this.state?this.state.nestedErrors:{}),e,s,this);return cleanErrors(r)},render:function(){var t=_extends({},this.props,this.state,this.getAPI()),e=t.component,s=t.children,r=_objectWithoutProperties(t,["component","children"]),a="function"==typeof s?s(r):s,o=e;return o?_react2.default.createElement(o,{className:"ReactForm"},a):a}}); | ||
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _objectWithoutProperties(e,t){var r={};for(var s in e)t.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(e,s)&&(r[s]=e[s]);return r}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==("undefined"==typeof t?"undefined":_typeof(t))&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof t?"undefined":_typeof(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function cleanErrors(e){if(_utils2.default.isObject(e)){var t=_utils2.default.mapValues(e,cleanErrors),r=_utils2.default.pickBy(t,function(e){return e});return Object.keys(r).length?t:void 0}if(_utils2.default.isArray(e)){var s=e.map(cleanErrors),o=s.find(function(e){return e});return o?s:void 0}return e}function removeNestedErrorValues(e,t){var r=function t(r){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return _utils2.default.isObject(r)?_utils2.default.mapValues(r,function(e,r){return t(e,[].concat(_toConsumableArray(s),[r]))}):_utils2.default.isArray(r)?r.map(function(e,r){return t(e,[].concat(_toConsumableArray(s),[r]))}):_utils2.default.isObject(r)||_utils2.default.isArray(r)||!r?r:_utils2.default.set(e,s,void 0)};return r(t),e}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};Object.defineProperty(exports,"__esModule",{value:!0}),exports.FormDefaultProps=void 0;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},_createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var s=t[r];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(t,r,s){return r&&e(t.prototype,r),s&&e(t,s),t}}(),_react=require("react"),_react2=_interopRequireDefault(_react),_propTypes=require("prop-types"),_propTypes2=_interopRequireDefault(_propTypes),_utils=require("./utils"),_utils2=_interopRequireDefault(_utils),noop=function(){},reop=function(e){return e},FormDefaultProps=exports.FormDefaultProps={loadState:noop,defaultValues:{},preValidate:reop,validate:function(){return null},onValidationFail:noop,onChange:noop,saveState:noop,willUnmount:noop,preSubmit:reop,onSubmit:noop,postSubmit:noop,component:"div"},Form=function(e){function t(e){_classCallCheck(this,t);var r=_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e)),s=r.props,o=s.defaultValues,a=s.values,u=s.loadState,i=_extends({},o,a);return r.state=u(r.props,r)||{values:i,touched:{},errors:r.validate(i),nestedErrors:{}},r.setAllValues=r.setAllValues.bind(r),r.setValue=r.setValue.bind(r),r.getValue=r.getValue.bind(r),r.setNestedError=r.setNestedError.bind(r),r.getError=r.getError.bind(r),r.setTouched=r.setTouched.bind(r),r.getTouched=r.getTouched.bind(r),r.addValue=r.addValue.bind(r),r.removeValue=r.removeValue.bind(r),r.swapValues=r.swapValues.bind(r),r.setAllTouched=r.setAllTouched.bind(r),r.resetForm=r.resetForm.bind(r),r.submitForm=r.submitForm.bind(r),r}return _inherits(t,e),_createClass(t,[{key:"getChildContext",value:function(){return{formAPI:this.getAPI()}}},{key:"componentWillMount",value:function(){this.emitChange(this.state,!0)}},{key:"componentWillReceiveProps",value:function(e){e.values!==this.props.values&&this.setFormState({values:e.values||{}},!0)}},{key:"componentWillUmount",value:function(){this.props.willUnmount(this.state,this.props,this)}},{key:"setAllValues",value:function(e,t){return t?this.setFormState({values:e}):void this.setFormState({values:e,touched:{}})}},{key:"setValue",value:function(e,t,r){var s=this.state,o=_utils2.default.set(s.values,e,t);if(r)return this.setFormState({values:o});var a=_utils2.default.set(s.touched,e);this.setFormState({values:o,touched:a})}},{key:"getValue",value:function(e,t){var r=this.state,s=_utils2.default.get(r.values,e);return"undefined"!=typeof s?s:t}},{key:"setNestedError",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=_utils2.default.set(this.state.nestedErrors,e,t);this.setFormState({nestedErrors:r})}},{key:"getError",value:function(e){return _utils2.default.get(this.state.errors,e)}},{key:"setTouched",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=_utils2.default.set(this.state.touched,e,t);this.setFormState({touched:r})}},{key:"getTouched",value:function(e){var t=this.state;return this.state.dirty===!0||this.props.touched===!0||_utils2.default.get(t.touched,e)}},{key:"addValue",value:function(e,t){var r=this.state,s=_utils2.default.set(r.values,e,[].concat(_toConsumableArray(_utils2.default.get(r.values,e,[])),[t]));this.setFormState({values:s})}},{key:"removeValue",value:function(e,t){var r=this.state,s=_utils2.default.get(r.values,e,[]),o=_utils2.default.set(r.values,e,[].concat(_toConsumableArray(s.slice(0,t)),_toConsumableArray(s.slice(t+1))));this.setFormState({values:o})}},{key:"swapValues",value:function(e,t,r){var s=this.state,o=Math.min(t,r),a=Math.max(t,r),u=_utils2.default.get(s.values,e,[]),i=_utils2.default.set(s.values,e,[].concat(_toConsumableArray(u.slice(0,o)),[u[a]],_toConsumableArray(u.slice(o+1,a)),[u[o]],_toConsumableArray(u.slice(a+1))));this.setFormState({values:i})}},{key:"setAllTouched",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=arguments[1];this.setFormState(_extends({},t,{dirty:!!e}))}},{key:"resetForm",value:function(){return this.setFormState(this.getInitialState())}},{key:"submitForm",value:function(e){e&&e.preventDefault&&e.preventDefault(e);var t=this.state,r=this.validate(t.values,t,this.props);if(r)return t.dirty||this.setAllTouched(!0,{errors:r}),this.props.onValidationFail(t.values,t,this.props,this);var s=this.props.preSubmit(t.values,t,this.props,this);this.props.onSubmit(s,t,this.props,this),this.props.postSubmit(s,t,this.props,this)}},{key:"getAPI",value:function(){return{setAllValues:this.setAllValues,setValue:this.setValue,getValue:this.getValue,setNestedError:this.setNestedError,getError:this.getError,setTouched:this.setTouched,getTouched:this.getTouched,addValue:this.addValue,removeValue:this.removeValue,swapValues:this.swapValues,setAllTouched:this.setAllTouched,resetForm:this.resetForm,submitForm:this.submitForm}}},{key:"setFormState",value:function(e,t){var r=this;e&&e.values&&!e.errors&&(e.values=this.props.preValidate(e.values,e,this.props,this),e.errors=this.validate(e.values,e,this.props)),this.setState(e,function(){r.props.saveState(r.state,r.props,r),t||r.emitChange(r.state,r.props)})}},{key:"emitChange",value:function(e,t){this.props.onChange(e,this.props,t,this)}},{key:"validate",value:function(e,t,r){var s=this.props.validate(removeNestedErrorValues(e,this.state?this.state.nestedErrors:{}),t,r,this);return cleanErrors(s)}},{key:"render",value:function(){var e=_extends({},this.props,this.state,this.getAPI()),t=e.component,r=e.children,s=_objectWithoutProperties(e,["component","children"]),o="function"==typeof r?r(s):r,a=t;return a?_react2.default.createElement(a,{className:"ReactForm"},o):o}}]),t}(_react2.default.Component);Form.displayName="Form",Form.defaultProps=FormDefaultProps,Form.childContextTypes={formAPI:_propTypes2.default.object},exports.default=Form; | ||
},{"./utils":14,"react":"react"}],2:[function(require,module,exports){ | ||
},{"./utils":14,"prop-types":23,"react":"react"}],2:[function(require,module,exports){ | ||
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function FormError(e){var r=e.field,t=e.className,a=e.style;return _react2.default.createElement(_formField2.default,{field:r},function(e){var r=e.getTouched,l=e.getError,o=r(),s=l(),n={display:o&&s?"block":"none"},u=(0,_classnames2.default)("FormError",t);return _react2.default.createElement("div",{className:u,style:_extends({},n,a)},o&&"string"==typeof s?s:"")})}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e};exports.default=FormError;var _react=require("react"),_react2=_interopRequireDefault(_react),_classnames=require("classnames"),_classnames2=_interopRequireDefault(_classnames),_formField=require("./formField"),_formField2=_interopRequireDefault(_formField); | ||
},{"./formField":3,"classnames":15,"react":"react"}],3:[function(require,module,exports){ | ||
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function FormField(e,r){var t=e.field,u=e.children,i=function(e){for(var r=arguments.length,t=Array(r>1?r-1:0),u=1;u<r;u++)t[u-1]=arguments[u];return function(){for(var r=arguments.length,u=Array(r),i=0;i<r;i++)u[i]=arguments[i];return e.apply(void 0,t.concat(u))}};return u(t?_utils2.default.mapValues(r.formAPI,function(e){return i(e,t)}):r.formAPI)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=FormField;var _react=require("react"),_react2=_interopRequireDefault(_react),_utils=require("./utils"),_utils2=_interopRequireDefault(_utils);FormField.contextTypes={formAPI:_react2.default.PropTypes.object}; | ||
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function FormField(e,r){var t=e.field,u=e.children,o=function(e){for(var r=arguments.length,t=Array(r>1?r-1:0),u=1;u<r;u++)t[u-1]=arguments[u];return function(){for(var r=arguments.length,u=Array(r),o=0;o<r;o++)u[o]=arguments[o];return e.apply(void 0,t.concat(u))}};return u(t?_utils2.default.mapValues(r.formAPI,function(e){return o(e,t)}):r.formAPI)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=FormField;var _propTypes=require("prop-types"),_propTypes2=_interopRequireDefault(_propTypes),_utils=require("./utils"),_utils2=_interopRequireDefault(_utils);FormField.contextTypes={formAPI:_propTypes2.default.object}; | ||
},{"./utils":14,"react":"react"}],4:[function(require,module,exports){ | ||
},{"./utils":14,"prop-types":23}],4:[function(require,module,exports){ | ||
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _objectWithoutProperties(e,r){var t={};for(var o in e)r.indexOf(o)>=0||Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}function FormInput(e){var r=e.field,t=e.showErrors,o=void 0===t||t,a=e.errorBefore,u=e.isForm,l=e.className,n=e.children;return _react2.default.createElement(_formField2.default,{field:r},function(e){var t=_objectWithoutProperties(e,[]),i=o&&(!u||t.getTouched()===!0),f=(0,_classnames2.default)("FormInput",{"-hasError":!a&&i&&t.getTouched()&&t.getError()},l);return _react2.default.createElement("div",{className:f},a&&i&&_react2.default.createElement(_formError2.default,{field:r}),n(_extends({},t)),!a&&i&&_react2.default.createElement(_formError2.default,{field:r}))})}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e};exports.default=FormInput;var _react=require("react"),_react2=_interopRequireDefault(_react),_classnames=require("classnames"),_classnames2=_interopRequireDefault(_classnames),_formField=require("./formField"),_formField2=_interopRequireDefault(_formField),_formError=require("./formError"),_formError2=_interopRequireDefault(_formError); | ||
@@ -20,8 +20,8 @@ | ||
},{"../formInput":4,"react":"react"}],7:[function(require,module,exports){ | ||
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _objectWithoutProperties(e,t){var r={};for(var o in e)t.indexOf(o)>=0||Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o]);return r}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},_react=require("react"),_react2=_interopRequireDefault(_react),_util=require("./util"),noop=function(){};exports.default=_react2.default.createClass({displayName:"radio",contextTypes:{formRadioGroup:_react2.default.PropTypes.object},render:function(){var e=this.props,t=e.value,r=e.onClick,o=e.onChange,n=e.onBlur,u=_objectWithoutProperties(e,["value","onClick","onChange","onBlur"]),a=this.context.formRadioGroup,i=a.setValue,l=a.getValue,c=a.setTouched,p=a.props.noTouch;return _react2.default.createElement("input",_extends({},u,{type:"radio",checked:l(!1)===t,onChange:(0,_util.buildHandler)(o,noop),onClick:(0,_util.buildHandler)(r,function(e){return i(t,p)}),onBlur:(0,_util.buildHandler)(n,function(){return c()})}))}}); | ||
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _objectWithoutProperties(e,t){var o={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(o[r]=e[r]);return o}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==("undefined"==typeof t?"undefined":_typeof(t))&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof t?"undefined":_typeof(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},_createClass=function(){function e(e,t){for(var o=0;o<t.length;o++){var r=t[o];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,o,r){return o&&e(t.prototype,o),r&&e(t,r),t}}(),_react=require("react"),_react2=_interopRequireDefault(_react),_propTypes=require("prop-types"),_propTypes2=_interopRequireDefault(_propTypes),_util=require("./util"),noop=function(){},Radio=function(e){function t(){return _classCallCheck(this,t),_possibleConstructorReturn(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return _inherits(t,e),_createClass(t,[{key:"render",value:function(){var e=this.props,t=e.value,o=e.onClick,r=e.onChange,n=e.onBlur,u=_objectWithoutProperties(e,["value","onClick","onChange","onBlur"]),i=this.context.formRadioGroup,a=i.setValue,l=i.getValue,p=i.setTouched,c=i.props.noTouch;return _react2.default.createElement("input",_extends({},u,{type:"radio",checked:l(!1)===t,onChange:(0,_util.buildHandler)(r,noop),onClick:(0,_util.buildHandler)(o,function(e){return a(t,c)}),onBlur:(0,_util.buildHandler)(n,function(){return p()})}))}}]),t}(_react2.default.Component);Radio.contextTypes={formRadioGroup:_propTypes2.default.object},exports.default=Radio; | ||
},{"./util":12,"react":"react"}],8:[function(require,module,exports){ | ||
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _objectWithoutProperties(e,r){var t={};for(var o in e)r.indexOf(o)>=0||Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e},_react=require("react"),_react2=_interopRequireDefault(_react),_formInput=require("../formInput"),_formInput2=_interopRequireDefault(_formInput);exports.default=_react2.default.createClass({displayName:"radioGroup",childContextTypes:{formRadioGroup:_react2.default.PropTypes.object},getChildContext:function(){return{formRadioGroup:this}},render:function(){var e=this,r=this.props,t=r.field,o=r.showErrors,i=r.errorBefore,n=void 0===i||i,u=r.isForm,a=r.children,f=_objectWithoutProperties(r,["field","showErrors","errorBefore","isForm","children"]);return _react2.default.createElement(_formInput2.default,{field:t,showErrors:o,errorBefore:n,isForm:u},function(r){return _extends(e,r),_react2.default.createElement("radiogroup",f,a)})}}); | ||
},{"./util":12,"prop-types":23,"react":"react"}],8:[function(require,module,exports){ | ||
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _objectWithoutProperties(e,r){var t={};for(var o in e)r.indexOf(o)>=0||Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}function _classCallCheck(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,r){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!r||"object"!==("undefined"==typeof r?"undefined":_typeof(r))&&"function"!=typeof r?e:r}function _inherits(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof r?"undefined":_typeof(r)));e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),r&&(Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r)}var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e},_createClass=function(){function e(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(r,t,o){return t&&e(r.prototype,t),o&&e(r,o),r}}(),_react=require("react"),_react2=_interopRequireDefault(_react),_propTypes=require("prop-types"),_propTypes2=_interopRequireDefault(_propTypes),_formInput=require("../formInput"),_formInput2=_interopRequireDefault(_formInput),RadioGroup=function(e){function r(){return _classCallCheck(this,r),_possibleConstructorReturn(this,(r.__proto__||Object.getPrototypeOf(r)).apply(this,arguments))}return _inherits(r,e),_createClass(r,[{key:"getChildContext",value:function(){return{formRadioGroup:this}}},{key:"render",value:function(){var e=this,r=this.props,t=r.field,o=r.showErrors,n=r.errorBefore,i=void 0===n||n,u=r.isForm,p=r.children,f=_objectWithoutProperties(r,["field","showErrors","errorBefore","isForm","children"]);return _react2.default.createElement(_formInput2.default,{field:t,showErrors:o,errorBefore:i,isForm:u},function(r){return _extends(e,r),_react2.default.createElement("radiogroup",f,p)})}}]),r}(_react2.default.Component);RadioGroup.childContextTypes={formRadioGroup:_propTypes2.default.object},exports.default=RadioGroup; | ||
},{"../formInput":4,"react":"react"}],9:[function(require,module,exports){ | ||
},{"../formInput":4,"prop-types":23,"react":"react"}],9:[function(require,module,exports){ | ||
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _toConsumableArray(e){if(Array.isArray(e)){for(var r=0,t=Array(e.length);r<e.length;r++)t[r]=e[r];return t}return Array.from(e)}function _objectWithoutProperties(e,r){var t={};for(var n in e)r.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}function FormInputSelect(e){var r=e.options,t=e.field,n=e.showErrors,o=e.errorBefore,u=e.onChange,a=e.onBlur,l=e.isForm,i=e.noTouch,f=_objectWithoutProperties(e,["options","field","showErrors","errorBefore","onChange","onBlur","isForm","noTouch"]);return _react2.default.createElement(_formInput2.default,{field:t,showErrors:n,errorBefore:o,isForm:l},function(e){var t=e.setValue,n=e.getValue,o=e.setTouched,l=r.find(function(e){return""===e.value})?r:[{label:"Select One...",value:"",disabled:!0}].concat(_toConsumableArray(r)),c=l.findIndex(function(e){return e.value===n()}),s=l.findIndex(function(e){return""===e.value});return _react2.default.createElement("select",_extends({},f,{onChange:(0,_util.buildHandler)(u,function(e){var r=l[e.target.value].value;t(r,i)}),onBlur:(0,_util.buildHandler)(a,function(){return o()}),value:c>-1?c:s}),l.map(function(e,r){return _react2.default.createElement("option",{key:r,value:r,disabled:e.disabled},e.label)}))})}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e};exports.default=FormInputSelect;var _react=require("react"),_react2=_interopRequireDefault(_react),_util=require("./util"),_formInput=require("../formInput"),_formInput2=_interopRequireDefault(_formInput); | ||
@@ -46,3 +46,37 @@ | ||
!function(){"use strict";function e(){for(var r=[],o=0;o<arguments.length;o++){var f=arguments[o];if(f){var i=typeof f;if("string"===i||"number"===i)r.push(f);else if(Array.isArray(f))r.push(e.apply(null,f));else if("object"===i)for(var t in f)n.call(f,t)&&f[t]&&r.push(t)}}return r.join(" ")}var n={}.hasOwnProperty;"undefined"!=typeof module&&module.exports?module.exports=e:"function"==typeof define&&"object"==typeof define.amd&&define.amd?define("classnames",[],function(){return e}):window.classNames=e}(); | ||
},{}],16:[function(require,module,exports){ | ||
"use strict";function makeEmptyFunction(t){return function(){return t}}var emptyFunction=function(){};emptyFunction.thatReturns=makeEmptyFunction,emptyFunction.thatReturnsFalse=makeEmptyFunction(!1),emptyFunction.thatReturnsTrue=makeEmptyFunction(!0),emptyFunction.thatReturnsNull=makeEmptyFunction(null),emptyFunction.thatReturnsThis=function(){return this},emptyFunction.thatReturnsArgument=function(t){return t},module.exports=emptyFunction; | ||
},{}],17:[function(require,module,exports){ | ||
(function (process){ | ||
"use strict";function invariant(r,e,n,i,a,o,t,s){if(validateFormat(e),!r){var v;if(void 0===e)v=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var d=[n,i,a,o,t,s],u=0;v=new Error(e.replace(/%s/g,function(){return d[u++]})),v.name="Invariant Violation"}throw v.framesToPop=1,v}}var validateFormat=function(r){};"production"!==process.env.NODE_ENV&&(validateFormat=function(r){if(void 0===r)throw new Error("invariant requires an error message argument")}),module.exports=invariant; | ||
}).call(this,require('_process')) | ||
},{"_process":19}],18:[function(require,module,exports){ | ||
(function (process){ | ||
"use strict";var emptyFunction=require("./emptyFunction"),warning=emptyFunction;"production"!==process.env.NODE_ENV&&!function(){var r=function(r){for(var n=arguments.length,o=Array(n>1?n-1:0),e=1;e<n;e++)o[e-1]=arguments[e];var i=0,t="Warning: "+r.replace(/%s/g,function(){return o[i++]});"undefined"!=typeof console&&console.error(t);try{throw new Error(t)}catch(r){}};warning=function(n,o){if(void 0===o)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==o.indexOf("Failed Composite propType: ")&&!n){for(var e=arguments.length,i=Array(e>2?e-2:0),t=2;t<e;t++)i[t-2]=arguments[t];r.apply(void 0,[o].concat(i))}}}(),module.exports=warning; | ||
}).call(this,require('_process')) | ||
},{"./emptyFunction":16,"_process":19}],19:[function(require,module,exports){ | ||
function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(e){if(cachedSetTimeout===setTimeout)return setTimeout(e,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(e,0);try{return cachedSetTimeout(e,0)}catch(t){try{return cachedSetTimeout.call(null,e,0)}catch(t){return cachedSetTimeout.call(this,e,0)}}}function runClearTimeout(e){if(cachedClearTimeout===clearTimeout)return clearTimeout(e);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(e);try{return cachedClearTimeout(e)}catch(t){try{return cachedClearTimeout.call(null,e)}catch(t){return cachedClearTimeout.call(this,e)}}}function cleanUpNextTick(){draining&¤tQueue&&(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var e=runTimeout(cleanUpNextTick);draining=!0;for(var t=queue.length;t;){for(currentQueue=queue,queue=[];++queueIndex<t;)currentQueue&¤tQueue[queueIndex].run();queueIndex=-1,t=queue.length}currentQueue=null,draining=!1,runClearTimeout(e)}}function Item(e,t){this.fun=e,this.array=t}function noop(){}var process=module.exports={},cachedSetTimeout,cachedClearTimeout;!function(){try{cachedSetTimeout="function"==typeof setTimeout?setTimeout:defaultSetTimout}catch(e){cachedSetTimeout=defaultSetTimout}try{cachedClearTimeout="function"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(e){cachedClearTimeout=defaultClearTimeout}}();var queue=[],draining=!1,currentQueue,queueIndex=-1;process.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var u=1;u<arguments.length;u++)t[u-1]=arguments[u];queue.push(new Item(e,t)),1!==queue.length||draining||runTimeout(drainQueue)},Item.prototype.run=function(){this.fun.apply(null,this.array)},process.title="browser",process.browser=!0,process.env={},process.argv=[],process.version="",process.versions={},process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.binding=function(e){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(e){throw new Error("process.chdir is not supported")},process.umask=function(){return 0}; | ||
},{}],20:[function(require,module,exports){ | ||
(function (process){ | ||
"use strict";function checkPropTypes(e,r,a,n,s){if("production"!==process.env.NODE_ENV)for(var t in e)if(e.hasOwnProperty(t)){var i;try{invariant("function"==typeof e[t],"%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.",n||"React class",a,t),i=e[t](r,t,n,a,null,ReactPropTypesSecret)}catch(e){i=e}if(warning(!i||i instanceof Error,"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",n||"React class",a,t,typeof i),i instanceof Error&&!(i.message in loggedTypeFailures)){loggedTypeFailures[i.message]=!0;var o=s?s():"";warning(!1,"Failed %s type: %s%s",a,i.message,null!=o?o:"")}}}if("production"!==process.env.NODE_ENV)var invariant=require("fbjs/lib/invariant"),warning=require("fbjs/lib/warning"),ReactPropTypesSecret=require("./lib/ReactPropTypesSecret"),loggedTypeFailures={};module.exports=checkPropTypes; | ||
}).call(this,require('_process')) | ||
},{"./lib/ReactPropTypesSecret":24,"_process":19,"fbjs/lib/invariant":17,"fbjs/lib/warning":18}],21:[function(require,module,exports){ | ||
"use strict";var emptyFunction=require("fbjs/lib/emptyFunction"),invariant=require("fbjs/lib/invariant");module.exports=function(){function e(){invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function t(){return e}e.isRequired=e;var r={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t};return r.checkPropTypes=emptyFunction,r.PropTypes=r,r}; | ||
},{"fbjs/lib/emptyFunction":16,"fbjs/lib/invariant":17}],22:[function(require,module,exports){ | ||
(function (process){ | ||
"use strict";var emptyFunction=require("fbjs/lib/emptyFunction"),invariant=require("fbjs/lib/invariant"),warning=require("fbjs/lib/warning"),ReactPropTypesSecret=require("./lib/ReactPropTypesSecret"),checkPropTypes=require("./checkPropTypes");module.exports=function(e,n){function r(e){var n=e&&(w&&e[w]||e[P]);if("function"==typeof n)return n}function t(e,n){return e===n?0!==e||1/e===1/n:e!==e&&n!==n}function o(e){this.message=e,this.stack=""}function i(e){function r(r,a,u,c,p,f,s){if(c=c||R,f=f||u,s!==ReactPropTypesSecret)if(n)invariant(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");else if("production"!==process.env.NODE_ENV&&"undefined"!=typeof console){var l=c+":"+u;!t[l]&&i<3&&(warning(!1,"You are manually calling a React.PropTypes validation function for the `%s` prop on `%s`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.",f,c),t[l]=!0,i++)}return null==a[u]?r?new o(null===a[u]?"The "+p+" `"+f+"` is marked as required "+("in `"+c+"`, but its value is `null`."):"The "+p+" `"+f+"` is marked as required in "+("`"+c+"`, but its value is `undefined`.")):null:e(a,u,c,p,f)}if("production"!==process.env.NODE_ENV)var t={},i=0;var a=r.bind(null,!1);return a.isRequired=r.bind(null,!0),a}function a(e){function n(n,r,t,i,a,u){var c=n[r],p=h(c);if(p!==e){var f=g(c);return new o("Invalid "+i+" `"+a+"` of type "+("`"+f+"` supplied to `"+t+"`, expected ")+("`"+e+"`."))}return null}return i(n)}function u(){return i(emptyFunction.thatReturnsNull)}function c(e){function n(n,r,t,i,a){if("function"!=typeof e)return new o("Property `"+a+"` of component `"+t+"` has invalid PropType notation inside arrayOf.");var u=n[r];if(!Array.isArray(u)){var c=h(u);return new o("Invalid "+i+" `"+a+"` of type "+("`"+c+"` supplied to `"+t+"`, expected an array."))}for(var p=0;p<u.length;p++){var f=e(u,p,t,i,a+"["+p+"]",ReactPropTypesSecret);if(f instanceof Error)return f}return null}return i(n)}function p(){function n(n,r,t,i,a){var u=n[r];if(!e(u)){var c=h(u);return new o("Invalid "+i+" `"+a+"` of type "+("`"+c+"` supplied to `"+t+"`, expected a single ReactElement."))}return null}return i(n)}function f(e){function n(n,r,t,i,a){if(!(n[r]instanceof e)){var u=e.name||R,c=T(n[r]);return new o("Invalid "+i+" `"+a+"` of type "+("`"+c+"` supplied to `"+t+"`, expected ")+("instance of `"+u+"`."))}return null}return i(n)}function s(e){function n(n,r,i,a,u){for(var c=n[r],p=0;p<e.length;p++)if(t(c,e[p]))return null;var f=JSON.stringify(e);return new o("Invalid "+a+" `"+u+"` of value `"+c+"` "+("supplied to `"+i+"`, expected one of "+f+"."))}return Array.isArray(e)?i(n):("production"!==process.env.NODE_ENV?warning(!1,"Invalid argument supplied to oneOf, expected an instance of array."):void 0,emptyFunction.thatReturnsNull)}function l(e){function n(n,r,t,i,a){if("function"!=typeof e)return new o("Property `"+a+"` of component `"+t+"` has invalid PropType notation inside objectOf.");var u=n[r],c=h(u);if("object"!==c)return new o("Invalid "+i+" `"+a+"` of type "+("`"+c+"` supplied to `"+t+"`, expected an object."));for(var p in u)if(u.hasOwnProperty(p)){var f=e(u,p,t,i,a+"."+p,ReactPropTypesSecret);if(f instanceof Error)return f}return null}return i(n)}function y(e){function n(n,r,t,i,a){for(var u=0;u<e.length;u++){var c=e[u];if(null==c(n,r,t,i,a,ReactPropTypesSecret))return null}return new o("Invalid "+i+" `"+a+"` supplied to "+("`"+t+"`."))}return Array.isArray(e)?i(n):("production"!==process.env.NODE_ENV?warning(!1,"Invalid argument supplied to oneOfType, expected an instance of array."):void 0,emptyFunction.thatReturnsNull)}function d(){function e(e,n,r,t,i){return b(e[n])?null:new o("Invalid "+t+" `"+i+"` supplied to "+("`"+r+"`, expected a ReactNode."))}return i(e)}function v(e){function n(n,r,t,i,a){var u=n[r],c=h(u);if("object"!==c)return new o("Invalid "+i+" `"+a+"` of type `"+c+"` "+("supplied to `"+t+"`, expected `object`."));for(var p in e){var f=e[p];if(f){var s=f(u,p,t,i,a+"."+p,ReactPropTypesSecret);if(s)return s}}return null}return i(n)}function b(n){switch(typeof n){case"number":case"string":case"undefined":return!0;case"boolean":return!n;case"object":if(Array.isArray(n))return n.every(b);if(null===n||e(n))return!0;var t=r(n);if(!t)return!1;var o,i=t.call(n);if(t!==n.entries){for(;!(o=i.next()).done;)if(!b(o.value))return!1}else for(;!(o=i.next()).done;){var a=o.value;if(a&&!b(a[1]))return!1}return!0;default:return!1}}function m(e,n){return"symbol"===e||("Symbol"===n["@@toStringTag"]||"function"==typeof Symbol&&n instanceof Symbol)}function h(e){var n=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":m(n,e)?"symbol":n}function g(e){var n=h(e);if("object"===n){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return n}function T(e){return e.constructor&&e.constructor.name?e.constructor.name:R}var w="function"==typeof Symbol&&Symbol.iterator,P="@@iterator",R="<<anonymous>>",x={array:a("array"),bool:a("boolean"),func:a("function"),number:a("number"),object:a("object"),string:a("string"),symbol:a("symbol"),any:u(),arrayOf:c,element:p(),instanceOf:f,node:d(),objectOf:l,oneOf:s,oneOfType:y,shape:v};return o.prototype=Error.prototype,x.checkPropTypes=checkPropTypes,x.PropTypes=x,x}; | ||
}).call(this,require('_process')) | ||
},{"./checkPropTypes":20,"./lib/ReactPropTypesSecret":24,"_process":19,"fbjs/lib/emptyFunction":16,"fbjs/lib/invariant":17,"fbjs/lib/warning":18}],23:[function(require,module,exports){ | ||
(function (process){ | ||
if("production"!==process.env.NODE_ENV){var REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===REACT_ELEMENT_TYPE},throwOnDirectAccess=!0;module.exports=require("./factoryWithTypeCheckers")(isValidElement,throwOnDirectAccess)}else module.exports=require("./factoryWithThrowingShims")(); | ||
}).call(this,require('_process')) | ||
},{"./factoryWithThrowingShims":21,"./factoryWithTypeCheckers":22,"_process":19}],24:[function(require,module,exports){ | ||
"use strict";var ReactPropTypesSecret="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";module.exports=ReactPropTypesSecret; | ||
},{}]},{},[13])(13) | ||
}); |
@@ -103,3 +103,3 @@ <div align="center"> | ||
import React from 'react' | ||
import { Form, Text, Select, Textarea, Checkbox, Radio, NestedForm, FormError } from 'react-form' | ||
import { Form, Text, Select, Textarea, Checkbox, Radio, RadioGroup, NestedForm, FormError } from 'react-form' | ||
@@ -257,6 +257,5 @@ const MyForm = ( | ||
<h6>Notify me via</h6> | ||
<radiogroup> | ||
<RadioGroup field="notificationType"> | ||
<label> | ||
<Radio // This is the built-in radio formInput | ||
field='notificationType' | ||
value='email' // This is the value the field will be set to when this radio button is active | ||
@@ -268,3 +267,2 @@ /> | ||
<Radio | ||
field='notificationType' | ||
value='text' | ||
@@ -276,3 +274,2 @@ /> | ||
<Radio | ||
field='notificationType' | ||
value='phone' | ||
@@ -282,3 +279,3 @@ /> | ||
</label> | ||
</radiogroup> | ||
</RadioGroup> | ||
</div> | ||
@@ -391,4 +388,4 @@ | ||
- A function that returns a component (**this function is called with an object that contains:**) | ||
- Current Form State | ||
- Form API methods | ||
- Current [Form State](#form-state) | ||
- [Form API methods](#form-api-methods) | ||
- Any other props passed to your form component | ||
@@ -431,3 +428,3 @@ - A component or JSX (if you do not need access to any methods or form state) | ||
#### loadState (props, instance) | ||
- When a form mounts, `loadState` is called. If a saved form state object is returned, it will hydrate the form state from this object. | ||
- When a form mounts, `loadState` is called. If a saved [form state object](#form-state) is returned, it will hydrate the form state from this object. | ||
- An ideal callback to load the form state from an external state manager (Redux/MobX/other) | ||
@@ -474,7 +471,7 @@ | ||
- Called anytime a form's internal `state` is changed. | ||
- An ideal callback to export/save the form state from an external state manager (Redux/MobX/other) | ||
- An ideal callback to export/save the [form state](#form-state) from an external state manager (Redux/MobX/other) | ||
#### willUnmount (state, props, instance) | ||
- Called when a form is about to unmount | ||
- An ideal callback to remove the form state from an external state manager (Redux/MobX/other) | ||
- An ideal callback to remove the [form state](#form-state) from an external state manager (Redux/MobX/other) | ||
@@ -552,6 +549,9 @@ #### preSubmit (values, state, props, instance) | ||
The form API is a merge of the form state object and API methods | ||
### Form State | ||
#### values {} | ||
- The current read-only values in the form state. | ||
- Again, these values immutable, so just like any traditional react state or redux state, they should not be changed or mutated outside of the form lifecycle methods | ||
- Again, these values are immutable, so just like any traditional react state or redux state, they should not be changed or mutated outside of the form lifecycle methods | ||
- Example: | ||
@@ -627,2 +627,4 @@ ```javascript | ||
### Form API methods | ||
#### setAllValues (values, noTouch) | ||
@@ -979,3 +981,3 @@ - Sets (replaces) all form values to `values` | ||
```javascript | ||
import { Text, Select, Checkbox, Textarea, Radio } from 'react-form' | ||
import { Text, Select, Checkbox, Textarea, Radio, RadioGroup } from 'react-form' | ||
@@ -1068,1 +1070,2 @@ const example = ( | ||
</a> | ||
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
233798
1211
1060
3
12
+ Addedprop-types@^15.5.8