react-bootstrap-validation
Version:
Form validation for react-bootstrap
1,697 lines (1,359 loc) • 91.3 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("react"), require("react-bootstrap"));
else if(typeof define === 'function' && define.amd)
define(["react", "react-bootstrap"], factory);
else if(typeof exports === 'object')
exports["ReactBootstrapValidation"] = factory(require("react"), require("react-bootstrap"));
else
root["ReactBootstrapValidation"] = factory(root["React"], root["ReactBootstrap"]);
})(this, function(__WEBPACK_EXTERNAL_MODULE_67__, __WEBPACK_EXTERNAL_MODULE_70__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var _interopRequireDefault = __webpack_require__(1)['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
var _Form = __webpack_require__(2);
var _Form2 = _interopRequireDefault(_Form);
var _ValidatedInput = __webpack_require__(69);
var _ValidatedInput2 = _interopRequireDefault(_ValidatedInput);
var _Radio = __webpack_require__(72);
var _Radio2 = _interopRequireDefault(_Radio);
var _RadioGroup = __webpack_require__(71);
var _RadioGroup2 = _interopRequireDefault(_RadioGroup);
var _Validator = __webpack_require__(74);
var _Validator2 = _interopRequireDefault(_Validator);
var _FileValidator = __webpack_require__(76);
var _FileValidator2 = _interopRequireDefault(_FileValidator);
exports.Form = _Form2['default'];
exports.ValidatedInput = _ValidatedInput2['default'];
exports.Radio = _Radio2['default'];
exports.RadioGroup = _RadioGroup2['default'];
exports.Validator = _Validator2['default'];
exports.FileValidator = _FileValidator2['default'];
/***/ },
/* 1 */
/***/ function(module, exports) {
"use strict";
exports["default"] = function (obj) {
return obj && obj.__esModule ? obj : {
"default": obj
};
};
exports.__esModule = true;
/***/ },
/* 2 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var _get = __webpack_require__(3)['default'];
var _inherits = __webpack_require__(17)['default'];
var _createClass = __webpack_require__(28)['default'];
var _classCallCheck = __webpack_require__(31)['default'];
var _defineProperty = __webpack_require__(32)['default'];
var _toConsumableArray = __webpack_require__(33)['default'];
var _Object$keys = __webpack_require__(60)['default'];
var _Object$assign2 = __webpack_require__(63)['default'];
var _interopRequireDefault = __webpack_require__(1)['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
var _react = __webpack_require__(67);
var _react2 = _interopRequireDefault(_react);
var _InputContainer2 = __webpack_require__(68);
var _InputContainer3 = _interopRequireDefault(_InputContainer2);
var _ValidatedInput = __webpack_require__(69);
var _ValidatedInput2 = _interopRequireDefault(_ValidatedInput);
var _RadioGroup = __webpack_require__(71);
var _RadioGroup2 = _interopRequireDefault(_RadioGroup);
var _Validator = __webpack_require__(74);
var _Validator2 = _interopRequireDefault(_Validator);
var _FileValidator = __webpack_require__(76);
var _FileValidator2 = _interopRequireDefault(_FileValidator);
function getInputErrorMessage(input, ruleName) {
var errorHelp = input.props.errorHelp;
if (typeof errorHelp === 'object') {
return errorHelp[ruleName];
} else {
return errorHelp;
}
}
var Form = (function (_InputContainer) {
_inherits(Form, _InputContainer);
function Form(props) {
_classCallCheck(this, Form);
_get(Object.getPrototypeOf(Form.prototype), 'constructor', this).call(this, props);
this.state = {
isValid: true,
invalidInputs: {}
};
}
_createClass(Form, [{
key: 'componentWillMount',
value: function componentWillMount() {
_get(Object.getPrototypeOf(Form.prototype), 'componentWillMount', this).call(this);
this._validators = {};
}
}, {
key: 'registerInput',
value: function registerInput(input) {
_get(Object.getPrototypeOf(Form.prototype), 'registerInput', this).call(this, input);
if (typeof input.props.validate === 'string') {
this._validators[input.props.name] = this._compileValidationRules(input, input.props.validate);
}
}
}, {
key: 'unregisterInput',
value: function unregisterInput(input) {
_get(Object.getPrototypeOf(Form.prototype), 'unregisterInput', this).call(this, input);
delete this._validators[input.props.name];
}
}, {
key: 'render',
value: function render() {
return _react2['default'].createElement(
'form',
{ ref: "form",
onSubmit: this._handleSubmit.bind(this),
action: "#",
className: this.props.className },
this._renderChildren(this.props.children)
);
}
}, {
key: 'getValues',
value: function getValues() {
var _this = this;
return _Object$keys(this._inputs).reduce(function (values, name) {
values[name] = _this._getValue(name);
return values;
}, {});
}
}, {
key: 'submit',
value: function submit() {
this._handleSubmit();
}
}, {
key: '_renderChildren',
value: function _renderChildren(children) {
var _this2 = this;
if (typeof children !== 'object' || children === null) {
return children;
}
var childrenCount = _react2['default'].Children.count(children);
if (childrenCount > 1) {
return _react2['default'].Children.map(children, function (child) {
return _this2._renderChild(child);
});
} else if (childrenCount === 1) {
return this._renderChild(Array.isArray(children) ? children[0] : children);
}
}
}, {
key: '_renderChild',
value: function _renderChild(child) {
var _this3 = this;
if (typeof child !== 'object' || child === null) {
return child;
}
var model = this.props.model || {};
if (child.type === _ValidatedInput2['default'] || child.type === _RadioGroup2['default'] || child.type && child.type.prototype !== null && (child.type.prototype instanceof _ValidatedInput2['default'] || child.type.prototype instanceof _RadioGroup2['default'])) {
var _ret = (function () {
var name = child.props && child.props.name;
if (!name) {
throw new Error('Can not add input without "name" attribute');
}
var newProps = {
_registerInput: _this3.registerInput.bind(_this3),
_unregisterInput: _this3.unregisterInput.bind(_this3)
};
var evtName = child.props.validationEvent ? child.props.validationEvent : _this3.props.validationEvent;
var origCallback = child.props[evtName];
newProps[evtName] = function (e) {
_this3._validateInput(name);
return origCallback && origCallback(e);
};
if (name in model) {
if (child.props.type === 'checkbox') {
newProps.defaultChecked = model[name];
} else {
newProps.defaultValue = model[name];
}
}
var error = _this3._hasError(name);
if (error) {
newProps.bsStyle = 'error';
if (typeof error === 'string') {
newProps.help = error;
} else if (child.props.errorHelp) {
newProps.help = child.props.errorHelp;
}
}
return {
v: _react2['default'].cloneElement(child, newProps)
};
})();
if (typeof _ret === 'object') return _ret.v;
} else {
return _react2['default'].cloneElement(child, {}, this._renderChildren(child.props && child.props.children));
}
}
}, {
key: '_validateInput',
value: function _validateInput(name) {
this._validateOne(name, this.getValues());
}
}, {
key: '_hasError',
value: function _hasError(iptName) {
return this.state.invalidInputs[iptName];
}
}, {
key: '_setError',
value: function _setError(iptName, isError, errText) {
if (isError && errText && typeof errText !== 'string' && typeof errText !== 'boolean') {
errText = errText + '';
}
// set value to either bool or error description string
this.setState({
invalidInputs: _Object$assign2(this.state.invalidInputs, _defineProperty({}, iptName, isError ? errText || true : false))
});
}
}, {
key: '_validateOne',
value: function _validateOne(iptName, context) {
var input = this._inputs[iptName];
if (Array.isArray(input)) {
console.warn('Multiple inputs use the same name "' + iptName + '"');
return false;
}
var value = context[iptName];
var isValid = true;
var validate = input.props.validate;
var result = undefined,
error = undefined;
if (typeof this.props.validateOne === 'function') {
result = this.props.validateOne(iptName, value, context);
} else if (typeof validate === 'function') {
result = validate(value, context);
} else if (typeof validate === 'string') {
result = this._validators[iptName](value);
} else {
result = true;
}
// if result is !== true, it is considered an error
// it can be either bool or string error
if (result !== true) {
isValid = false;
if (typeof result === 'string') {
error = result;
}
}
this._setError(iptName, !isValid, error);
return isValid;
}
}, {
key: '_validateAll',
value: function _validateAll(context) {
var _this4 = this;
var isValid = true;
var errors = [];
if (typeof this.props.validateAll === 'function') {
(function () {
var result = _this4.props.validateAll(context);
if (result !== true) {
isValid = false;
_Object$keys(result).forEach(function (iptName) {
errors.push(iptName);
_this4._setError(iptName, true, result[iptName]);
});
}
})();
} else {
_Object$keys(this._inputs).forEach(function (iptName) {
if (!_this4._validateOne(iptName, context)) {
isValid = false;
errors.push(iptName);
}
});
}
return {
isValid: isValid,
errors: errors
};
}
}, {
key: '_compileValidationRules',
value: function _compileValidationRules(input, ruleProp) {
var _this5 = this;
var rules = ruleProp.split(',').map(function (rule) {
var params = rule.split(':');
var name = params.shift();
var inverse = name[0] === '!';
if (inverse) {
name = name.substr(1);
}
return { name: name, inverse: inverse, params: params };
});
var validator = (input.props && input.props.type) === 'file' ? _FileValidator2['default'] : _Validator2['default'];
return function (val) {
var result = true;
rules.forEach(function (rule) {
if (typeof validator[rule.name] !== 'function') {
throw new Error('Invalid input validation rule "' + rule.name + '"');
}
var ruleResult = validator[rule.name].apply(validator, [val].concat(_toConsumableArray(rule.params)));
if (rule.inverse) {
ruleResult = !ruleResult;
}
if (result === true && ruleResult !== true) {
result = getInputErrorMessage(input, rule.name) || getInputErrorMessage(_this5, rule.name) || false;
}
});
return result;
};
}
}, {
key: '_getValue',
value: function _getValue(iptName) {
var input = this._inputs[iptName];
if (Array.isArray(input)) {
console.warn('Multiple inputs use the same name "' + iptName + '"');
return false;
}
var value = undefined;
if (input.props.type === 'checkbox') {
value = input.getChecked();
} else if (input.props.type === 'file') {
value = input.getInputDOMNode().files;
} else {
value = input.getValue();
}
return value;
}
}, {
key: '_handleSubmit',
value: function _handleSubmit(e) {
if (e) {
e.preventDefault();
}
var values = this.getValues();
var _validateAll2 = this._validateAll(values);
var isValid = _validateAll2.isValid;
var errors = _validateAll2.errors;
if (isValid) {
this.props.onValidSubmit(values);
} else {
this.props.onInvalidSubmit(errors, values);
}
}
}]);
return Form;
})(_InputContainer3['default']);
exports['default'] = Form;
Form.propTypes = {
className: _react2['default'].PropTypes.string,
model: _react2['default'].PropTypes.object,
onValidSubmit: _react2['default'].PropTypes.func.isRequired,
onInvalidSubmit: _react2['default'].PropTypes.func,
validateOne: _react2['default'].PropTypes.func,
validateAll: _react2['default'].PropTypes.func,
validationEvent: _react2['default'].PropTypes.oneOf(['onChange', 'onBlur', 'onFocus']),
errorHelp: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.object])
};
Form.defaultProps = {
model: {},
validationEvent: 'onChange',
onInvalidSubmit: function onInvalidSubmit() {}
};
module.exports = exports['default'];
/***/ },
/* 3 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
var _Object$getOwnPropertyDescriptor = __webpack_require__(4)["default"];
exports["default"] = function get(_x, _x2, _x3) {
var _again = true;
_function: while (_again) {
var object = _x,
property = _x2,
receiver = _x3;
_again = false;
if (object === null) object = Function.prototype;
var desc = _Object$getOwnPropertyDescriptor(object, property);
if (desc === undefined) {
var parent = Object.getPrototypeOf(object);
if (parent === null) {
return undefined;
} else {
_x = parent;
_x2 = property;
_x3 = receiver;
_again = true;
desc = parent = undefined;
continue _function;
}
} else if ("value" in desc) {
return desc.value;
} else {
var getter = desc.get;
if (getter === undefined) {
return undefined;
}
return getter.call(receiver);
}
}
};
exports.__esModule = true;
/***/ },
/* 4 */
/***/ function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(5), __esModule: true };
/***/ },
/* 5 */
/***/ function(module, exports, __webpack_require__) {
var $ = __webpack_require__(6);
__webpack_require__(7);
module.exports = function getOwnPropertyDescriptor(it, key){
return $.getDesc(it, key);
};
/***/ },
/* 6 */
/***/ function(module, exports) {
var $Object = Object;
module.exports = {
create: $Object.create,
getProto: $Object.getPrototypeOf,
isEnum: {}.propertyIsEnumerable,
getDesc: $Object.getOwnPropertyDescriptor,
setDesc: $Object.defineProperty,
setDescs: $Object.defineProperties,
getKeys: $Object.keys,
getNames: $Object.getOwnPropertyNames,
getSymbols: $Object.getOwnPropertySymbols,
each: [].forEach
};
/***/ },
/* 7 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
var toIObject = __webpack_require__(8);
__webpack_require__(12)('getOwnPropertyDescriptor', function($getOwnPropertyDescriptor){
return function getOwnPropertyDescriptor(it, key){
return $getOwnPropertyDescriptor(toIObject(it), key);
};
});
/***/ },
/* 8 */
/***/ function(module, exports, __webpack_require__) {
// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__(9)
, defined = __webpack_require__(11);
module.exports = function(it){
return IObject(defined(it));
};
/***/ },
/* 9 */
/***/ function(module, exports, __webpack_require__) {
// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = __webpack_require__(10);
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
return cof(it) == 'String' ? it.split('') : Object(it);
};
/***/ },
/* 10 */
/***/ function(module, exports) {
var toString = {}.toString;
module.exports = function(it){
return toString.call(it).slice(8, -1);
};
/***/ },
/* 11 */
/***/ function(module, exports) {
// 7.2.1 RequireObjectCoercible(argument)
module.exports = function(it){
if(it == undefined)throw TypeError("Can't call method on " + it);
return it;
};
/***/ },
/* 12 */
/***/ function(module, exports, __webpack_require__) {
// most Object methods by ES6 should accept primitives
var $def = __webpack_require__(13)
, core = __webpack_require__(15)
, fails = __webpack_require__(16);
module.exports = function(KEY, exec){
var $def = __webpack_require__(13)
, fn = (core.Object || {})[KEY] || Object[KEY]
, exp = {};
exp[KEY] = exec(fn);
$def($def.S + $def.F * fails(function(){ fn(1); }), 'Object', exp);
};
/***/ },
/* 13 */
/***/ function(module, exports, __webpack_require__) {
var global = __webpack_require__(14)
, core = __webpack_require__(15)
, PROTOTYPE = 'prototype';
var ctx = function(fn, that){
return function(){
return fn.apply(that, arguments);
};
};
var $def = function(type, name, source){
var key, own, out, exp
, isGlobal = type & $def.G
, isProto = type & $def.P
, target = isGlobal ? global : type & $def.S
? global[name] : (global[name] || {})[PROTOTYPE]
, exports = isGlobal ? core : core[name] || (core[name] = {});
if(isGlobal)source = name;
for(key in source){
// contains in native
own = !(type & $def.F) && target && key in target;
if(own && key in exports)continue;
// export native or passed
out = own ? target[key] : source[key];
// prevent global pollution for namespaces
if(isGlobal && typeof target[key] != 'function')exp = source[key];
// bind timers to global for call from export context
else if(type & $def.B && own)exp = ctx(out, global);
// wrap global constructors for prevent change them in library
else if(type & $def.W && target[key] == out)!function(C){
exp = function(param){
return this instanceof C ? new C(param) : C(param);
};
exp[PROTOTYPE] = C[PROTOTYPE];
}(out);
else exp = isProto && typeof out == 'function' ? ctx(Function.call, out) : out;
// export
exports[key] = exp;
if(isProto)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
}
};
// type bitmap
$def.F = 1; // forced
$def.G = 2; // global
$def.S = 4; // static
$def.P = 8; // proto
$def.B = 16; // bind
$def.W = 32; // wrap
module.exports = $def;
/***/ },
/* 14 */
/***/ function(module, exports) {
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
/***/ },
/* 15 */
/***/ function(module, exports) {
var core = module.exports = {version: '1.2.5'};
if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
/***/ },
/* 16 */
/***/ function(module, exports) {
module.exports = function(exec){
try {
return !!exec();
} catch(e){
return true;
}
};
/***/ },
/* 17 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
var _Object$create = __webpack_require__(18)["default"];
var _Object$setPrototypeOf = __webpack_require__(20)["default"];
exports["default"] = function (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.__esModule = true;
/***/ },
/* 18 */
/***/ function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(19), __esModule: true };
/***/ },
/* 19 */
/***/ function(module, exports, __webpack_require__) {
var $ = __webpack_require__(6);
module.exports = function create(P, D){
return $.create(P, D);
};
/***/ },
/* 20 */
/***/ function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(21), __esModule: true };
/***/ },
/* 21 */
/***/ function(module, exports, __webpack_require__) {
__webpack_require__(22);
module.exports = __webpack_require__(15).Object.setPrototypeOf;
/***/ },
/* 22 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.3.19 Object.setPrototypeOf(O, proto)
var $def = __webpack_require__(13);
$def($def.S, 'Object', {setPrototypeOf: __webpack_require__(23).set});
/***/ },
/* 23 */
/***/ function(module, exports, __webpack_require__) {
// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
var getDesc = __webpack_require__(6).getDesc
, isObject = __webpack_require__(24)
, anObject = __webpack_require__(25);
var check = function(O, proto){
anObject(O);
if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
};
module.exports = {
set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
function(test, buggy, set){
try {
set = __webpack_require__(26)(Function.call, getDesc(Object.prototype, '__proto__').set, 2);
set(test, []);
buggy = !(test instanceof Array);
} catch(e){ buggy = true; }
return function setPrototypeOf(O, proto){
check(O, proto);
if(buggy)O.__proto__ = proto;
else set(O, proto);
return O;
};
}({}, false) : undefined),
check: check
};
/***/ },
/* 24 */
/***/ function(module, exports) {
module.exports = function(it){
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
/***/ },
/* 25 */
/***/ function(module, exports, __webpack_require__) {
var isObject = __webpack_require__(24);
module.exports = function(it){
if(!isObject(it))throw TypeError(it + ' is not an object!');
return it;
};
/***/ },
/* 26 */
/***/ function(module, exports, __webpack_require__) {
// optional / simple context binding
var aFunction = __webpack_require__(27);
module.exports = function(fn, that, length){
aFunction(fn);
if(that === undefined)return fn;
switch(length){
case 1: return function(a){
return fn.call(that, a);
};
case 2: return function(a, b){
return fn.call(that, a, b);
};
case 3: return function(a, b, c){
return fn.call(that, a, b, c);
};
}
return function(/* ...args */){
return fn.apply(that, arguments);
};
};
/***/ },
/* 27 */
/***/ function(module, exports) {
module.exports = function(it){
if(typeof it != 'function')throw TypeError(it + ' is not a function!');
return it;
};
/***/ },
/* 28 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
var _Object$defineProperty = __webpack_require__(29)["default"];
exports["default"] = (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;
};
})();
exports.__esModule = true;
/***/ },
/* 29 */
/***/ function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(30), __esModule: true };
/***/ },
/* 30 */
/***/ function(module, exports, __webpack_require__) {
var $ = __webpack_require__(6);
module.exports = function defineProperty(it, key, desc){
return $.setDesc(it, key, desc);
};
/***/ },
/* 31 */
/***/ function(module, exports) {
"use strict";
exports["default"] = function (instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
};
exports.__esModule = true;
/***/ },
/* 32 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
var _Object$defineProperty = __webpack_require__(29)["default"];
exports["default"] = function (obj, key, value) {
if (key in obj) {
_Object$defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
};
exports.__esModule = true;
/***/ },
/* 33 */
/***/ function(module, exports, __webpack_require__) {
"use strict";
var _Array$from = __webpack_require__(34)["default"];
exports["default"] = function (arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
return arr2;
} else {
return _Array$from(arr);
}
};
exports.__esModule = true;
/***/ },
/* 34 */
/***/ function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(35), __esModule: true };
/***/ },
/* 35 */
/***/ function(module, exports, __webpack_require__) {
__webpack_require__(36);
__webpack_require__(52);
module.exports = __webpack_require__(15).Array.from;
/***/ },
/* 36 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var $at = __webpack_require__(37)(true);
// 21.1.3.27 String.prototype[@@iterator]()
__webpack_require__(39)(String, 'String', function(iterated){
this._t = String(iterated); // target
this._i = 0; // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
}, function(){
var O = this._t
, index = this._i
, point;
if(index >= O.length)return {value: undefined, done: true};
point = $at(O, index);
this._i += point.length;
return {value: point, done: false};
});
/***/ },
/* 37 */
/***/ function(module, exports, __webpack_require__) {
var toInteger = __webpack_require__(38)
, defined = __webpack_require__(11);
// true -> String#at
// false -> String#codePointAt
module.exports = function(TO_STRING){
return function(that, pos){
var s = String(defined(that))
, i = toInteger(pos)
, l = s.length
, a, b;
if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
a = s.charCodeAt(i);
return a < 0xd800 || a > 0xdbff || i + 1 === l
|| (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
? TO_STRING ? s.charAt(i) : a
: TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
};
};
/***/ },
/* 38 */
/***/ function(module, exports) {
// 7.1.4 ToInteger
var ceil = Math.ceil
, floor = Math.floor;
module.exports = function(it){
return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};
/***/ },
/* 39 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var LIBRARY = __webpack_require__(43)
, $def = __webpack_require__(13)
, $redef = __webpack_require__(44)
, hide = __webpack_require__(45)
, has = __webpack_require__(48)
, SYMBOL_ITERATOR = __webpack_require__(40)('iterator')
, Iterators = __webpack_require__(49)
, $iterCreate = __webpack_require__(50)
, setToStringTag = __webpack_require__(51)
, getProto = __webpack_require__(6).getProto
, BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
, FF_ITERATOR = '@@iterator'
, KEYS = 'keys'
, VALUES = 'values';
var returnThis = function(){ return this; };
module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCE){
$iterCreate(Constructor, NAME, next);
var getMethod = function(kind){
if(!BUGGY && kind in proto)return proto[kind];
switch(kind){
case KEYS: return function keys(){ return new Constructor(this, kind); };
case VALUES: return function values(){ return new Constructor(this, kind); };
} return function entries(){ return new Constructor(this, kind); };
};
var TAG = NAME + ' Iterator'
, proto = Base.prototype
, _native = proto[SYMBOL_ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
, _default = _native || getMethod(DEFAULT)
, methods, key;
// Fix native
if(_native){
var IteratorPrototype = getProto(_default.call(new Base));
// Set @@toStringTag to native iterators
setToStringTag(IteratorPrototype, TAG, true);
// FF fix
if(!LIBRARY && has(proto, FF_ITERATOR))hide(IteratorPrototype, SYMBOL_ITERATOR, returnThis);
}
// Define iterator
if((!LIBRARY || FORCE) && (BUGGY || !(SYMBOL_ITERATOR in proto))){
hide(proto, SYMBOL_ITERATOR, _default);
}
// Plug for library
Iterators[NAME] = _default;
Iterators[TAG] = returnThis;
if(DEFAULT){
methods = {
values: DEFAULT == VALUES ? _default : getMethod(VALUES),
keys: IS_SET ? _default : getMethod(KEYS),
entries: DEFAULT != VALUES ? _default : getMethod('entries')
};
if(FORCE)for(key in methods){
if(!(key in proto))$redef(proto, key, methods[key]);
} else $def($def.P + $def.F * BUGGY, NAME, methods);
}
return methods;
};
/***/ },
/* 40 */
/***/ function(module, exports, __webpack_require__) {
var store = __webpack_require__(41)('wks')
, uid = __webpack_require__(42)
, Symbol = __webpack_require__(14).Symbol;
module.exports = function(name){
return store[name] || (store[name] =
Symbol && Symbol[name] || (Symbol || uid)('Symbol.' + name));
};
/***/ },
/* 41 */
/***/ function(module, exports, __webpack_require__) {
var global = __webpack_require__(14)
, SHARED = '__core-js_shared__'
, store = global[SHARED] || (global[SHARED] = {});
module.exports = function(key){
return store[key] || (store[key] = {});
};
/***/ },
/* 42 */
/***/ function(module, exports) {
var id = 0
, px = Math.random();
module.exports = function(key){
return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};
/***/ },
/* 43 */
/***/ function(module, exports) {
module.exports = true;
/***/ },
/* 44 */
/***/ function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(45);
/***/ },
/* 45 */
/***/ function(module, exports, __webpack_require__) {
var $ = __webpack_require__(6)
, createDesc = __webpack_require__(46);
module.exports = __webpack_require__(47) ? function(object, key, value){
return $.setDesc(object, key, createDesc(1, value));
} : function(object, key, value){
object[key] = value;
return object;
};
/***/ },
/* 46 */
/***/ function(module, exports) {
module.exports = function(bitmap, value){
return {
enumerable : !(bitmap & 1),
configurable: !(bitmap & 2),
writable : !(bitmap & 4),
value : value
};
};
/***/ },
/* 47 */
/***/ function(module, exports, __webpack_require__) {
// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__(16)(function(){
return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
});
/***/ },
/* 48 */
/***/ function(module, exports) {
var hasOwnProperty = {}.hasOwnProperty;
module.exports = function(it, key){
return hasOwnProperty.call(it, key);
};
/***/ },
/* 49 */
/***/ function(module, exports) {
module.exports = {};
/***/ },
/* 50 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var $ = __webpack_require__(6)
, descriptor = __webpack_require__(46)
, setToStringTag = __webpack_require__(51)
, IteratorPrototype = {};
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
__webpack_require__(45)(IteratorPrototype, __webpack_require__(40)('iterator'), function(){ return this; });
module.exports = function(Constructor, NAME, next){
Constructor.prototype = $.create(IteratorPrototype, {next: descriptor(1, next)});
setToStringTag(Constructor, NAME + ' Iterator');
};
/***/ },
/* 51 */
/***/ function(module, exports, __webpack_require__) {
var def = __webpack_require__(6).setDesc
, has = __webpack_require__(48)
, TAG = __webpack_require__(40)('toStringTag');
module.exports = function(it, tag, stat){
if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
};
/***/ },
/* 52 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var ctx = __webpack_require__(26)
, $def = __webpack_require__(13)
, toObject = __webpack_require__(54)
, call = __webpack_require__(55)
, isArrayIter = __webpack_require__(53)
, toLength = __webpack_require__(56)
, getIterFn = __webpack_require__(57);
$def($def.S + $def.F * !__webpack_require__(59)(function(iter){ Array.from(iter); }), 'Array', {
// 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
var O = toObject(arrayLike)
, C = typeof this == 'function' ? this : Array
, $$ = arguments
, $$len = $$.length
, mapfn = $$len > 1 ? $$[1] : undefined
, mapping = mapfn !== undefined
, index = 0
, iterFn = getIterFn(O)
, length, result, step, iterator;
if(mapping)mapfn = ctx(mapfn, $$len > 2 ? $$[2] : undefined, 2);
// if object isn't iterable or it's array with default iterator - use simple case
if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
result[index] = mapping ? call(iterator, mapfn, [step.value, index], true) : step.value;
}
} else {
length = toLength(O.length);
for(result = new C(length); length > index; index++){
result[index] = mapping ? mapfn(O[index], index) : O[index];
}
}
result.length = index;
return result;
}
});
/***/ },
/* 53 */
/***/ function(module, exports, __webpack_require__) {
// check on default Array iterator
var Iterators = __webpack_require__(49)
, ITERATOR = __webpack_require__(40)('iterator')
, ArrayProto = Array.prototype;
module.exports = function(it){
return (Iterators.Array || ArrayProto[ITERATOR]) === it;
};
/***/ },
/* 54 */
/***/ function(module, exports, __webpack_require__) {
// 7.1.13 ToObject(argument)
var defined = __webpack_require__(11);
module.exports = function(it){
return Object(defined(it));
};
/***/ },
/* 55 */
/***/ function(module, exports, __webpack_require__) {
// call something on iterator step with safe closing on error
var anObject = __webpack_require__(25);
module.exports = function(iterator, fn, value, entries){
try {
return entries ? fn(anObject(value)[0], value[1]) : fn(value);
// 7.4.6 IteratorClose(iterator, completion)
} catch(e){
var ret = iterator['return'];
if(ret !== undefined)anObject(ret.call(iterator));
throw e;
}
};
/***/ },
/* 56 */
/***/ function(module, exports, __webpack_require__) {
// 7.1.15 ToLength
var toInteger = __webpack_require__(38)
, min = Math.min;
module.exports = function(it){
return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};
/***/ },
/* 57 */
/***/ function(module, exports, __webpack_require__) {
var classof = __webpack_require__(58)
, ITERATOR = __webpack_require__(40)('iterator')
, Iterators = __webpack_require__(49);
module.exports = __webpack_require__(15).getIteratorMethod = function(it){
if(it != undefined)return it[ITERATOR]
|| it['@@iterator']
|| Iterators[classof(it)];
};
/***/ },
/* 58 */
/***/ function(module, exports, __webpack_require__) {
// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(10)
, TAG = __webpack_require__(40)('toStringTag')
// ES3 wrong here
, ARG = cof(function(){ return arguments; }()) == 'Arguments';
module.exports = function(it){
var O, T, B;
return it === undefined ? 'Undefined' : it === null ? 'Null'
// @@toStringTag case
: typeof (T = (O = Object(it))[TAG]) == 'string' ? T
// builtinTag case
: ARG ? cof(O)
// ES3 arguments fallback
: (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};
/***/ },
/* 59 */
/***/ function(module, exports, __webpack_require__) {
var ITERATOR = __webpack_require__(40)('iterator')
, SAFE_CLOSING = false;
try {
var riter = [7][ITERATOR]();
riter['return'] = function(){ SAFE_CLOSING = true; };
Array.from(riter, function(){ throw 2; });
} catch(e){ /* empty */ }
module.exports = function(exec, skipClosing){
if(!skipClosing && !SAFE_CLOSING)return false;
var safe = false;
try {
var arr = [7]
, iter = arr[ITERATOR]();
iter.next = function(){ safe = true; };
arr[ITERATOR] = function(){ return iter; };
exec(arr);
} catch(e){ /* empty */ }
return safe;
};
/***/ },
/* 60 */
/***/ function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(61), __esModule: true };
/***/ },
/* 61 */
/***/ function(module, exports, __webpack_require__) {
__webpack_require__(62);
module.exports = __webpack_require__(15).Object.keys;
/***/ },
/* 62 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.2.14 Object.keys(O)
var toObject = __webpack_require__(54);
__webpack_require__(12)('keys', function($keys){
return function keys(it){
return $keys(toObject(it));
};
});
/***/ },
/* 63 */
/***/ function(module, exports, __webpack_require__) {
module.exports = { "default": __webpack_require__(64), __esModule: true };
/***/ },
/* 64 */
/***/ function(module, exports, __webpack_require__) {
__webpack_require__(65);
module.exports = __webpack_require__(15).Object.assign;
/***/ },
/* 65 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.3.1 Object.assign(target, source)
var $def = __webpack_require__(13);
$def($def.S + $def.F, 'Object', {assign: __webpack_require__(66)});
/***/ },
/* 66 */
/***/ function(module, exports, __webpack_require__) {
// 19.1.2.1 Object.assign(target, source, ...)
var $ = __webpack_require__(6)
, toObject = __webpack_require__(54)
, IObject = __webpack_require__(9);
// should work with symbols and should have deterministic property order (V8 bug)
module.exports = __webpack_require__(16)(function(){
var a = Object.assign
, A = {}
, B = {}
, S = Symbol()
, K = 'abcdefghijklmnopqrst';
A[S] = 7;
K.split('').forEach(function(k){ B[k] = k; });
return a({}, A)[S] != 7 || Object.keys(a({}, B)).join('') != K;
}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
var T = toObject(target)
, $$ = arguments
, $$len = $$.length
, index = 1
, getKeys = $.getKeys
, getSymbols = $.getSymbols
, isEnum = $.isEnum;
while($$len > index){
var S = IObject($$[index++])
, keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
, length = keys.length
, j = 0
, key;
while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
}
return T;
} : Object.assign;
/***/ },
/* 67 */
/***/ function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_67__;
/***/ },
/* 68 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var _get = __webpack_require__(3)['default'];
var _inherits = __webpack_require__(17)['default'];
var _createClass = __webpack_require__(28)['default'];
var _classCallCheck = __webpack_require__(31)['default'];
var _interopRequireDefault = __webpack_require__(1)['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
var _react = __webpack_require__(67);
var _react2 = _interopRequireDefault(_react);
var InputContainer = (function (_React$Component) {
_inherits(InputContainer, _React$Component);
function InputContainer() {
_classCallCheck(this, InputContainer);
_get(Object.getPrototypeOf(InputContainer.prototype), 'constructor', this).apply(this, arguments);
}
_createClass(InputContainer, [{
key: 'componentWillMount',
value: function componentWillMount() {
this._inputs = {};
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {}
}, {
key: 'registerInput',
value: function registerInput(input) {
var type = input.props.type;
var name = input.props.name;
if (!name) {
throw new Error('Input ' + input + ' has no "name" prop');
}
if (type === 'radio') {
this._inputs[name] = this._inputs[name] || [];
this._inputs[name].push(input);
} else {
this._inputs[name] = input;
}
}
}, {
key: 'unregisterInput',
value: function unregisterInput(input) {
var type = input.props.type;
var name = input.props.name;
if (!name) {
throw new Error('Input ' + input + ' has no "name" prop');
}
if (type === 'radio') {
this._inputs[name] = this._inputs[name].filter(function (ipt) {
return ipt !== input;
});
} else {
delete this._inputs[input.props.name];
}
}
}]);
return InputContainer;
})(_react2['default'].Component);
exports['default'] = InputContainer;
module.exports = exports['default'];
/***/ },
/* 69 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var _get = __webpack_require__(3)['default'];
var _inherits = __webpack_require__(17)['default'];
var _createClass = __webpack_require__(28)['default'];
var _classCallCheck = __webpack_require__(31)['default'];
var _Object$assign = __webpack_require__(63)['default'];
var _interopRequireDefault = __webpack_require__(1)['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
var _react = __webpack_require__(67);
var _react2 = _interopRequireDefault(_react);
var _reactBootstrap = __webpack_require__(70);
var ValidatedInput = (function (_Input) {
_inherits(ValidatedInput, _Input);
function ValidatedInput(props) {
_classCallCheck(this, ValidatedInput);
_get(Object.getPrototypeOf(ValidatedInput.prototype), 'constructor', this).call(this, props);
if (!props._registerInput || !props._unregisterInput) {
throw new Error('Input must be placed inside the Form component');
}
}
_createClass(ValidatedInput, [{
key: 'componentWillMount',
value: function componentWillMount() {
if (_reactBootstrap.Input.prototype.componentWillMount) {
_get(Object.getPrototypeOf(ValidatedInput.prototype), 'componentWillMount', this).call(this);
}
this.props._registerInput(this);
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
if (_reactBootstrap.Input.prototype.componentWillUnmount) {
_get(Object.getPrototypeOf(ValidatedInput.prototype), 'componentWillUnmount', this).call(this);
}
this.props._unregisterInput(this);
}
}]);
return ValidatedInput;
})(_reactBootstrap.Input);
exports['default'] = ValidatedInput;
ValidatedInput.propTypes = _Object$assign({}, _reactBootstrap.Input.propTypes, {
name: _react2['default'].PropTypes.string.isRequired,
validationEvent: _react2['default'].PropTypes.oneOf(['', 'onChange', 'onBlur', 'onFocus']),
validate: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.func, _react2['default'].PropTypes.string]),
errorHelp: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.object])
});
ValidatedInput.defaultProps = _Object$assign({}, _reactBootstrap.Input.defaultProps, {
validationEvent: ''
});
module.exports = exports['default'];
/***/ },
/* 70 */
/***/ function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_70__;
/***/ },
/* 71 */
/***/ function(module, exports, __webpack_require__) {
'use strict';
var _get = __webpack_require__(3)['default'];
var _inherits = __webpack_require__(17)['default'];
var _createClass = __webpack_require__(28)['default'];
var _classCallCheck = __webpack_require__(31)['default'];
var _interopRequireDefault = __webpack_require__(1)['default'];
Object.defineProperty(exports, '__e