10425 lines
314 KiB
JavaScript
10425 lines
314 KiB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
|
||
if(typeof exports === 'object' && typeof module === 'object')
|
||
module.exports = factory(require("react-dom"), require("react"));
|
||
else if(typeof define === 'function' && define.amd)
|
||
define(["react-dom", "react"], factory);
|
||
else if(typeof exports === 'object')
|
||
exports["rc-form"] = factory(require("react-dom"), require("react"));
|
||
else
|
||
root["rc-form"] = factory(root["ReactDOM"], root["React"]);
|
||
})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_207__, __WEBPACK_EXTERNAL_MODULE_23__) {
|
||
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] = {
|
||
/******/ i: moduleId,
|
||
/******/ l: false,
|
||
/******/ exports: {}
|
||
/******/ };
|
||
/******/
|
||
/******/ // Execute the module function
|
||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||
/******/
|
||
/******/ // Flag the module as loaded
|
||
/******/ module.l = 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;
|
||
/******/
|
||
/******/ // define getter function for harmony exports
|
||
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||
/******/ if(!__webpack_require__.o(exports, name)) {
|
||
/******/ Object.defineProperty(exports, name, {
|
||
/******/ configurable: false,
|
||
/******/ enumerable: true,
|
||
/******/ get: getter
|
||
/******/ });
|
||
/******/ }
|
||
/******/ };
|
||
/******/
|
||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||
/******/ __webpack_require__.n = function(module) {
|
||
/******/ var getter = module && module.__esModule ?
|
||
/******/ function getDefault() { return module['default']; } :
|
||
/******/ function getModuleExports() { return module; };
|
||
/******/ __webpack_require__.d(getter, 'a', getter);
|
||
/******/ return getter;
|
||
/******/ };
|
||
/******/
|
||
/******/ // Object.prototype.hasOwnProperty.call
|
||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||
/******/
|
||
/******/ // __webpack_public_path__
|
||
/******/ __webpack_require__.p = "";
|
||
/******/
|
||
/******/ // Load entry module and return exports
|
||
/******/ return __webpack_require__(__webpack_require__.s = 76);
|
||
/******/ })
|
||
/************************************************************************/
|
||
/******/ ([
|
||
/* 0 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* WEBPACK VAR INJECTION */(function(process) {
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
||
|
||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
||
|
||
exports.convertFieldsError = convertFieldsError;
|
||
exports.format = format;
|
||
exports.isEmptyValue = isEmptyValue;
|
||
exports.isEmptyObject = isEmptyObject;
|
||
exports.asyncMap = asyncMap;
|
||
exports.complementError = complementError;
|
||
exports.deepMerge = deepMerge;
|
||
/* eslint no-console:0 */
|
||
|
||
var formatRegExp = /%[sdj%]/g;
|
||
|
||
var warning = exports.warning = function warning() {};
|
||
|
||
// don't print warning message when in production env or node runtime
|
||
if (process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {
|
||
exports.warning = warning = function warning(type, errors) {
|
||
if (typeof console !== 'undefined' && console.warn) {
|
||
if (errors.every(function (e) {
|
||
return typeof e === 'string';
|
||
})) {
|
||
console.warn(type, errors);
|
||
}
|
||
}
|
||
};
|
||
}
|
||
|
||
function convertFieldsError(errors) {
|
||
if (!errors || !errors.length) return null;
|
||
var fields = {};
|
||
errors.forEach(function (error) {
|
||
var field = error.field;
|
||
fields[field] = fields[field] || [];
|
||
fields[field].push(error);
|
||
});
|
||
return fields;
|
||
}
|
||
|
||
function format() {
|
||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
|
||
args[_key] = arguments[_key];
|
||
}
|
||
|
||
var i = 1;
|
||
var f = args[0];
|
||
var len = args.length;
|
||
if (typeof f === 'function') {
|
||
return f.apply(null, args.slice(1));
|
||
}
|
||
if (typeof f === 'string') {
|
||
var str = String(f).replace(formatRegExp, function (x) {
|
||
if (x === '%%') {
|
||
return '%';
|
||
}
|
||
if (i >= len) {
|
||
return x;
|
||
}
|
||
switch (x) {
|
||
case '%s':
|
||
return String(args[i++]);
|
||
case '%d':
|
||
return Number(args[i++]);
|
||
case '%j':
|
||
try {
|
||
return JSON.stringify(args[i++]);
|
||
} catch (_) {
|
||
return '[Circular]';
|
||
}
|
||
break;
|
||
default:
|
||
return x;
|
||
}
|
||
});
|
||
for (var arg = args[i]; i < len; arg = args[++i]) {
|
||
str += ' ' + arg;
|
||
}
|
||
return str;
|
||
}
|
||
return f;
|
||
}
|
||
|
||
function isNativeStringType(type) {
|
||
return type === 'string' || type === 'url' || type === 'hex' || type === 'email' || type === 'pattern';
|
||
}
|
||
|
||
function isEmptyValue(value, type) {
|
||
if (value === undefined || value === null) {
|
||
return true;
|
||
}
|
||
if (type === 'array' && Array.isArray(value) && !value.length) {
|
||
return true;
|
||
}
|
||
if (isNativeStringType(type) && typeof value === 'string' && !value) {
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
function isEmptyObject(obj) {
|
||
return Object.keys(obj).length === 0;
|
||
}
|
||
|
||
function asyncParallelArray(arr, func, callback) {
|
||
var results = [];
|
||
var total = 0;
|
||
var arrLength = arr.length;
|
||
|
||
function count(errors) {
|
||
results.push.apply(results, errors);
|
||
total++;
|
||
if (total === arrLength) {
|
||
callback(results);
|
||
}
|
||
}
|
||
|
||
arr.forEach(function (a) {
|
||
func(a, count);
|
||
});
|
||
}
|
||
|
||
function asyncSerialArray(arr, func, callback) {
|
||
var index = 0;
|
||
var arrLength = arr.length;
|
||
|
||
function next(errors) {
|
||
if (errors && errors.length) {
|
||
callback(errors);
|
||
return;
|
||
}
|
||
var original = index;
|
||
index = index + 1;
|
||
if (original < arrLength) {
|
||
func(arr[original], next);
|
||
} else {
|
||
callback([]);
|
||
}
|
||
}
|
||
|
||
next([]);
|
||
}
|
||
|
||
function flattenObjArr(objArr) {
|
||
var ret = [];
|
||
Object.keys(objArr).forEach(function (k) {
|
||
ret.push.apply(ret, objArr[k]);
|
||
});
|
||
return ret;
|
||
}
|
||
|
||
function asyncMap(objArr, option, func, callback) {
|
||
if (option.first) {
|
||
var flattenArr = flattenObjArr(objArr);
|
||
return asyncSerialArray(flattenArr, func, callback);
|
||
}
|
||
var firstFields = option.firstFields || [];
|
||
if (firstFields === true) {
|
||
firstFields = Object.keys(objArr);
|
||
}
|
||
var objArrKeys = Object.keys(objArr);
|
||
var objArrLength = objArrKeys.length;
|
||
var total = 0;
|
||
var results = [];
|
||
var pending = new Promise(function (resolve, reject) {
|
||
var next = function next(errors) {
|
||
results.push.apply(results, errors);
|
||
total++;
|
||
if (total === objArrLength) {
|
||
callback(results);
|
||
return results.length ? reject({ errors: results, fields: convertFieldsError(results) }) : resolve();
|
||
}
|
||
};
|
||
objArrKeys.forEach(function (key) {
|
||
var arr = objArr[key];
|
||
if (firstFields.indexOf(key) !== -1) {
|
||
asyncSerialArray(arr, func, next);
|
||
} else {
|
||
asyncParallelArray(arr, func, next);
|
||
}
|
||
});
|
||
});
|
||
pending['catch'](function (e) {
|
||
return e;
|
||
});
|
||
return pending;
|
||
}
|
||
|
||
function complementError(rule) {
|
||
return function (oe) {
|
||
if (oe && oe.message) {
|
||
oe.field = oe.field || rule.fullField;
|
||
return oe;
|
||
}
|
||
return {
|
||
message: typeof oe === 'function' ? oe() : oe,
|
||
field: oe.field || rule.fullField
|
||
};
|
||
};
|
||
}
|
||
|
||
function deepMerge(target, source) {
|
||
if (source) {
|
||
for (var s in source) {
|
||
if (source.hasOwnProperty(s)) {
|
||
var value = source[s];
|
||
if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && _typeof(target[s]) === 'object') {
|
||
target[s] = _extends({}, target[s], value);
|
||
} else {
|
||
target[s] = value;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return target;
|
||
}
|
||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
|
||
|
||
/***/ }),
|
||
/* 1 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _required = __webpack_require__(68);
|
||
|
||
var _required2 = _interopRequireDefault(_required);
|
||
|
||
var _whitespace = __webpack_require__(109);
|
||
|
||
var _whitespace2 = _interopRequireDefault(_whitespace);
|
||
|
||
var _type = __webpack_require__(110);
|
||
|
||
var _type2 = _interopRequireDefault(_type);
|
||
|
||
var _range = __webpack_require__(111);
|
||
|
||
var _range2 = _interopRequireDefault(_range);
|
||
|
||
var _enum = __webpack_require__(112);
|
||
|
||
var _enum2 = _interopRequireDefault(_enum);
|
||
|
||
var _pattern = __webpack_require__(113);
|
||
|
||
var _pattern2 = _interopRequireDefault(_pattern);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
exports['default'] = {
|
||
required: _required2['default'],
|
||
whitespace: _whitespace2['default'],
|
||
type: _type2['default'],
|
||
range: _range2['default'],
|
||
'enum': _enum2['default'],
|
||
pattern: _pattern2['default']
|
||
};
|
||
|
||
/***/ }),
|
||
/* 2 */
|
||
/***/ (function(module, exports) {
|
||
|
||
var core = module.exports = { version: '2.6.12' };
|
||
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
|
||
|
||
|
||
/***/ }),
|
||
/* 3 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var store = __webpack_require__(35)('wks');
|
||
var uid = __webpack_require__(20);
|
||
var Symbol = __webpack_require__(5).Symbol;
|
||
var USE_SYMBOL = typeof Symbol == 'function';
|
||
|
||
var $exports = module.exports = function (name) {
|
||
return store[name] || (store[name] =
|
||
USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
|
||
};
|
||
|
||
$exports.store = store;
|
||
|
||
|
||
/***/ }),
|
||
/* 4 */
|
||
/***/ (function(module, exports) {
|
||
|
||
// shim for using process in browser
|
||
var process = module.exports = {};
|
||
|
||
// cached from whatever global is present so that test runners that stub it
|
||
// don't break things. But we need to wrap it in a try catch in case it is
|
||
// wrapped in strict mode code which doesn't define any globals. It's inside a
|
||
// function because try/catches deoptimize in certain engines.
|
||
|
||
var cachedSetTimeout;
|
||
var cachedClearTimeout;
|
||
|
||
function defaultSetTimout() {
|
||
throw new Error('setTimeout has not been defined');
|
||
}
|
||
function defaultClearTimeout () {
|
||
throw new Error('clearTimeout has not been defined');
|
||
}
|
||
(function () {
|
||
try {
|
||
if (typeof setTimeout === 'function') {
|
||
cachedSetTimeout = setTimeout;
|
||
} else {
|
||
cachedSetTimeout = defaultSetTimout;
|
||
}
|
||
} catch (e) {
|
||
cachedSetTimeout = defaultSetTimout;
|
||
}
|
||
try {
|
||
if (typeof clearTimeout === 'function') {
|
||
cachedClearTimeout = clearTimeout;
|
||
} else {
|
||
cachedClearTimeout = defaultClearTimeout;
|
||
}
|
||
} catch (e) {
|
||
cachedClearTimeout = defaultClearTimeout;
|
||
}
|
||
} ())
|
||
function runTimeout(fun) {
|
||
if (cachedSetTimeout === setTimeout) {
|
||
//normal enviroments in sane situations
|
||
return setTimeout(fun, 0);
|
||
}
|
||
// if setTimeout wasn't available but was latter defined
|
||
if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
|
||
cachedSetTimeout = setTimeout;
|
||
return setTimeout(fun, 0);
|
||
}
|
||
try {
|
||
// when when somebody has screwed with setTimeout but no I.E. maddness
|
||
return cachedSetTimeout(fun, 0);
|
||
} catch(e){
|
||
try {
|
||
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
||
return cachedSetTimeout.call(null, fun, 0);
|
||
} catch(e){
|
||
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
|
||
return cachedSetTimeout.call(this, fun, 0);
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
function runClearTimeout(marker) {
|
||
if (cachedClearTimeout === clearTimeout) {
|
||
//normal enviroments in sane situations
|
||
return clearTimeout(marker);
|
||
}
|
||
// if clearTimeout wasn't available but was latter defined
|
||
if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
|
||
cachedClearTimeout = clearTimeout;
|
||
return clearTimeout(marker);
|
||
}
|
||
try {
|
||
// when when somebody has screwed with setTimeout but no I.E. maddness
|
||
return cachedClearTimeout(marker);
|
||
} catch (e){
|
||
try {
|
||
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
||
return cachedClearTimeout.call(null, marker);
|
||
} catch (e){
|
||
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
|
||
// Some versions of I.E. have different rules for clearTimeout vs setTimeout
|
||
return cachedClearTimeout.call(this, marker);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
}
|
||
var queue = [];
|
||
var draining = false;
|
||
var currentQueue;
|
||
var queueIndex = -1;
|
||
|
||
function cleanUpNextTick() {
|
||
if (!draining || !currentQueue) {
|
||
return;
|
||
}
|
||
draining = false;
|
||
if (currentQueue.length) {
|
||
queue = currentQueue.concat(queue);
|
||
} else {
|
||
queueIndex = -1;
|
||
}
|
||
if (queue.length) {
|
||
drainQueue();
|
||
}
|
||
}
|
||
|
||
function drainQueue() {
|
||
if (draining) {
|
||
return;
|
||
}
|
||
var timeout = runTimeout(cleanUpNextTick);
|
||
draining = true;
|
||
|
||
var len = queue.length;
|
||
while(len) {
|
||
currentQueue = queue;
|
||
queue = [];
|
||
while (++queueIndex < len) {
|
||
if (currentQueue) {
|
||
currentQueue[queueIndex].run();
|
||
}
|
||
}
|
||
queueIndex = -1;
|
||
len = queue.length;
|
||
}
|
||
currentQueue = null;
|
||
draining = false;
|
||
runClearTimeout(timeout);
|
||
}
|
||
|
||
process.nextTick = function (fun) {
|
||
var args = new Array(arguments.length - 1);
|
||
if (arguments.length > 1) {
|
||
for (var i = 1; i < arguments.length; i++) {
|
||
args[i - 1] = arguments[i];
|
||
}
|
||
}
|
||
queue.push(new Item(fun, args));
|
||
if (queue.length === 1 && !draining) {
|
||
runTimeout(drainQueue);
|
||
}
|
||
};
|
||
|
||
// v8 likes predictible objects
|
||
function Item(fun, array) {
|
||
this.fun = fun;
|
||
this.array = array;
|
||
}
|
||
Item.prototype.run = function () {
|
||
this.fun.apply(null, this.array);
|
||
};
|
||
process.title = 'browser';
|
||
process.browser = true;
|
||
process.env = {};
|
||
process.argv = [];
|
||
process.version = ''; // empty string to avoid regexp issues
|
||
process.versions = {};
|
||
|
||
function noop() {}
|
||
|
||
process.on = noop;
|
||
process.addListener = noop;
|
||
process.once = noop;
|
||
process.off = noop;
|
||
process.removeListener = noop;
|
||
process.removeAllListeners = noop;
|
||
process.emit = noop;
|
||
process.prependListener = noop;
|
||
process.prependOnceListener = noop;
|
||
|
||
process.listeners = function (name) { return [] }
|
||
|
||
process.binding = function (name) {
|
||
throw new Error('process.binding is not supported');
|
||
};
|
||
|
||
process.cwd = function () { return '/' };
|
||
process.chdir = function (dir) {
|
||
throw new Error('process.chdir is not supported');
|
||
};
|
||
process.umask = function() { return 0; };
|
||
|
||
|
||
/***/ }),
|
||
/* 5 */
|
||
/***/ (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
|
||
// eslint-disable-next-line no-new-func
|
||
: Function('return this')();
|
||
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
|
||
|
||
|
||
/***/ }),
|
||
/* 6 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var anObject = __webpack_require__(11);
|
||
var IE8_DOM_DEFINE = __webpack_require__(59);
|
||
var toPrimitive = __webpack_require__(30);
|
||
var dP = Object.defineProperty;
|
||
|
||
exports.f = __webpack_require__(7) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
|
||
anObject(O);
|
||
P = toPrimitive(P, true);
|
||
anObject(Attributes);
|
||
if (IE8_DOM_DEFINE) try {
|
||
return dP(O, P, Attributes);
|
||
} catch (e) { /* empty */ }
|
||
if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
|
||
if ('value' in Attributes) O[P] = Attributes.value;
|
||
return O;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 7 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// Thank's IE8 for his funny defineProperty
|
||
module.exports = !__webpack_require__(14)(function () {
|
||
return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
|
||
});
|
||
|
||
|
||
/***/ }),
|
||
/* 8 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var global = __webpack_require__(5);
|
||
var core = __webpack_require__(2);
|
||
var ctx = __webpack_require__(29);
|
||
var hide = __webpack_require__(10);
|
||
var has = __webpack_require__(9);
|
||
var PROTOTYPE = 'prototype';
|
||
|
||
var $export = function (type, name, source) {
|
||
var IS_FORCED = type & $export.F;
|
||
var IS_GLOBAL = type & $export.G;
|
||
var IS_STATIC = type & $export.S;
|
||
var IS_PROTO = type & $export.P;
|
||
var IS_BIND = type & $export.B;
|
||
var IS_WRAP = type & $export.W;
|
||
var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
|
||
var expProto = exports[PROTOTYPE];
|
||
var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
|
||
var key, own, out;
|
||
if (IS_GLOBAL) source = name;
|
||
for (key in source) {
|
||
// contains in native
|
||
own = !IS_FORCED && target && target[key] !== undefined;
|
||
if (own && has(exports, key)) continue;
|
||
// export native or passed
|
||
out = own ? target[key] : source[key];
|
||
// prevent global pollution for namespaces
|
||
exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
|
||
// bind timers to global for call from export context
|
||
: IS_BIND && own ? ctx(out, global)
|
||
// wrap global constructors for prevent change them in library
|
||
: IS_WRAP && target[key] == out ? (function (C) {
|
||
var F = function (a, b, c) {
|
||
if (this instanceof C) {
|
||
switch (arguments.length) {
|
||
case 0: return new C();
|
||
case 1: return new C(a);
|
||
case 2: return new C(a, b);
|
||
} return new C(a, b, c);
|
||
} return C.apply(this, arguments);
|
||
};
|
||
F[PROTOTYPE] = C[PROTOTYPE];
|
||
return F;
|
||
// make static versions for prototype methods
|
||
})(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
|
||
// export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
|
||
if (IS_PROTO) {
|
||
(exports.virtual || (exports.virtual = {}))[key] = out;
|
||
// export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
|
||
if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
|
||
}
|
||
}
|
||
};
|
||
// type bitmap
|
||
$export.F = 1; // forced
|
||
$export.G = 2; // global
|
||
$export.S = 4; // static
|
||
$export.P = 8; // proto
|
||
$export.B = 16; // bind
|
||
$export.W = 32; // wrap
|
||
$export.U = 64; // safe
|
||
$export.R = 128; // real proto method for `library`
|
||
module.exports = $export;
|
||
|
||
|
||
/***/ }),
|
||
/* 9 */
|
||
/***/ (function(module, exports) {
|
||
|
||
var hasOwnProperty = {}.hasOwnProperty;
|
||
module.exports = function (it, key) {
|
||
return hasOwnProperty.call(it, key);
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 10 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var dP = __webpack_require__(6);
|
||
var createDesc = __webpack_require__(15);
|
||
module.exports = __webpack_require__(7) ? function (object, key, value) {
|
||
return dP.f(object, key, createDesc(1, value));
|
||
} : function (object, key, value) {
|
||
object[key] = value;
|
||
return object;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 11 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var isObject = __webpack_require__(12);
|
||
module.exports = function (it) {
|
||
if (!isObject(it)) throw TypeError(it + ' is not an object!');
|
||
return it;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 12 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = function (it) {
|
||
return typeof it === 'object' ? it !== null : typeof it === 'function';
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 13 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// to indexed object, toObject with fallback for non-array-like ES3 strings
|
||
var IObject = __webpack_require__(62);
|
||
var defined = __webpack_require__(32);
|
||
module.exports = function (it) {
|
||
return IObject(defined(it));
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 14 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = function (exec) {
|
||
try {
|
||
return !!exec();
|
||
} catch (e) {
|
||
return true;
|
||
}
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 15 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = function (bitmap, value) {
|
||
return {
|
||
enumerable: !(bitmap & 1),
|
||
configurable: !(bitmap & 2),
|
||
writable: !(bitmap & 4),
|
||
value: value
|
||
};
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 16 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
exports.__esModule = true;
|
||
|
||
var _assign = __webpack_require__(82);
|
||
|
||
var _assign2 = _interopRequireDefault(_assign);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
exports.default = _assign2.default || function (target) {
|
||
for (var i = 1; i < arguments.length; i++) {
|
||
var source = arguments[i];
|
||
|
||
for (var key in source) {
|
||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||
target[key] = source[key];
|
||
}
|
||
}
|
||
}
|
||
|
||
return target;
|
||
};
|
||
|
||
/***/ }),
|
||
/* 17 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = {};
|
||
|
||
|
||
/***/ }),
|
||
/* 18 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// 19.1.2.14 / 15.2.3.14 Object.keys(O)
|
||
var $keys = __webpack_require__(61);
|
||
var enumBugKeys = __webpack_require__(36);
|
||
|
||
module.exports = Object.keys || function keys(O) {
|
||
return $keys(O, enumBugKeys);
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 19 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = true;
|
||
|
||
|
||
/***/ }),
|
||
/* 20 */
|
||
/***/ (function(module, exports) {
|
||
|
||
var id = 0;
|
||
var px = Math.random();
|
||
module.exports = function (key) {
|
||
return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 21 */
|
||
/***/ (function(module, exports) {
|
||
|
||
exports.f = {}.propertyIsEnumerable;
|
||
|
||
|
||
/***/ }),
|
||
/* 22 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// 7.1.13 ToObject(argument)
|
||
var defined = __webpack_require__(32);
|
||
module.exports = function (it) {
|
||
return Object(defined(it));
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 23 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = __WEBPACK_EXTERNAL_MODULE_23__;
|
||
|
||
/***/ }),
|
||
/* 24 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* Checks if `value` is classified as an `Array` object.
|
||
*
|
||
* @static
|
||
* @memberOf _
|
||
* @since 0.1.0
|
||
* @category Lang
|
||
* @param {*} value The value to check.
|
||
* @returns {boolean} Returns `true` if `value` is an array, else `false`.
|
||
* @example
|
||
*
|
||
* _.isArray([1, 2, 3]);
|
||
* // => true
|
||
*
|
||
* _.isArray(document.body.children);
|
||
* // => false
|
||
*
|
||
* _.isArray('abc');
|
||
* // => false
|
||
*
|
||
* _.isArray(_.noop);
|
||
* // => false
|
||
*/
|
||
var isArray = Array.isArray;
|
||
|
||
module.exports = isArray;
|
||
|
||
|
||
/***/ }),
|
||
/* 25 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var getNative = __webpack_require__(46);
|
||
|
||
/* Built-in method references that are verified to be native. */
|
||
var nativeCreate = getNative(Object, 'create');
|
||
|
||
module.exports = nativeCreate;
|
||
|
||
|
||
/***/ }),
|
||
/* 26 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var eq = __webpack_require__(48);
|
||
|
||
/**
|
||
* Gets the index at which the `key` is found in `array` of key-value pairs.
|
||
*
|
||
* @private
|
||
* @param {Array} array The array to inspect.
|
||
* @param {*} key The key to search for.
|
||
* @returns {number} Returns the index of the matched value, else `-1`.
|
||
*/
|
||
function assocIndexOf(array, key) {
|
||
var length = array.length;
|
||
while (length--) {
|
||
if (eq(array[length][0], key)) {
|
||
return length;
|
||
}
|
||
}
|
||
return -1;
|
||
}
|
||
|
||
module.exports = assocIndexOf;
|
||
|
||
|
||
/***/ }),
|
||
/* 27 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var isKeyable = __webpack_require__(160);
|
||
|
||
/**
|
||
* Gets the data for `map`.
|
||
*
|
||
* @private
|
||
* @param {Object} map The map to query.
|
||
* @param {string} key The reference key.
|
||
* @returns {*} Returns the map data.
|
||
*/
|
||
function getMapData(map, key) {
|
||
var data = map.__data__;
|
||
return isKeyable(key)
|
||
? data[typeof key == 'string' ? 'string' : 'hash']
|
||
: data.map;
|
||
}
|
||
|
||
module.exports = getMapData;
|
||
|
||
|
||
/***/ }),
|
||
/* 28 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* WEBPACK VAR INJECTION */(function(process) {
|
||
|
||
if (process.env.NODE_ENV === 'production') {
|
||
module.exports = __webpack_require__(174);
|
||
} else {
|
||
module.exports = __webpack_require__(175);
|
||
}
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
|
||
|
||
/***/ }),
|
||
/* 29 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// optional / simple context binding
|
||
var aFunction = __webpack_require__(81);
|
||
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);
|
||
};
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 30 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// 7.1.1 ToPrimitive(input [, PreferredType])
|
||
var isObject = __webpack_require__(12);
|
||
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
|
||
// and the second argument - flag - preferred type is a string
|
||
module.exports = function (it, S) {
|
||
if (!isObject(it)) return it;
|
||
var fn, val;
|
||
if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
|
||
if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
|
||
if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
|
||
throw TypeError("Can't convert object to primitive value");
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 31 */
|
||
/***/ (function(module, exports) {
|
||
|
||
var toString = {}.toString;
|
||
|
||
module.exports = function (it) {
|
||
return toString.call(it).slice(8, -1);
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 32 */
|
||
/***/ (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;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 33 */
|
||
/***/ (function(module, exports) {
|
||
|
||
// 7.1.4 ToInteger
|
||
var ceil = Math.ceil;
|
||
var floor = Math.floor;
|
||
module.exports = function (it) {
|
||
return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 34 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var shared = __webpack_require__(35)('keys');
|
||
var uid = __webpack_require__(20);
|
||
module.exports = function (key) {
|
||
return shared[key] || (shared[key] = uid(key));
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 35 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var core = __webpack_require__(2);
|
||
var global = __webpack_require__(5);
|
||
var SHARED = '__core-js_shared__';
|
||
var store = global[SHARED] || (global[SHARED] = {});
|
||
|
||
(module.exports = function (key, value) {
|
||
return store[key] || (store[key] = value !== undefined ? value : {});
|
||
})('versions', []).push({
|
||
version: core.version,
|
||
mode: __webpack_require__(19) ? 'pure' : 'global',
|
||
copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
|
||
});
|
||
|
||
|
||
/***/ }),
|
||
/* 36 */
|
||
/***/ (function(module, exports) {
|
||
|
||
// IE 8- don't enum bug keys
|
||
module.exports = (
|
||
'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
|
||
).split(',');
|
||
|
||
|
||
/***/ }),
|
||
/* 37 */
|
||
/***/ (function(module, exports) {
|
||
|
||
exports.f = Object.getOwnPropertySymbols;
|
||
|
||
|
||
/***/ }),
|
||
/* 38 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
|
||
var anObject = __webpack_require__(11);
|
||
var dPs = __webpack_require__(93);
|
||
var enumBugKeys = __webpack_require__(36);
|
||
var IE_PROTO = __webpack_require__(34)('IE_PROTO');
|
||
var Empty = function () { /* empty */ };
|
||
var PROTOTYPE = 'prototype';
|
||
|
||
// Create object with fake `null` prototype: use iframe Object with cleared prototype
|
||
var createDict = function () {
|
||
// Thrash, waste and sodomy: IE GC bug
|
||
var iframe = __webpack_require__(60)('iframe');
|
||
var i = enumBugKeys.length;
|
||
var lt = '<';
|
||
var gt = '>';
|
||
var iframeDocument;
|
||
iframe.style.display = 'none';
|
||
__webpack_require__(94).appendChild(iframe);
|
||
iframe.src = 'javascript:'; // eslint-disable-line no-script-url
|
||
// createDict = iframe.contentWindow.Object;
|
||
// html.removeChild(iframe);
|
||
iframeDocument = iframe.contentWindow.document;
|
||
iframeDocument.open();
|
||
iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
|
||
iframeDocument.close();
|
||
createDict = iframeDocument.F;
|
||
while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
|
||
return createDict();
|
||
};
|
||
|
||
module.exports = Object.create || function create(O, Properties) {
|
||
var result;
|
||
if (O !== null) {
|
||
Empty[PROTOTYPE] = anObject(O);
|
||
result = new Empty();
|
||
Empty[PROTOTYPE] = null;
|
||
// add "__proto__" for Object.getPrototypeOf polyfill
|
||
result[IE_PROTO] = O;
|
||
} else result = createDict();
|
||
return Properties === undefined ? result : dPs(result, Properties);
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 39 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var def = __webpack_require__(6).f;
|
||
var has = __webpack_require__(9);
|
||
var TAG = __webpack_require__(3)('toStringTag');
|
||
|
||
module.exports = function (it, tag, stat) {
|
||
if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 40 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var isArray = __webpack_require__(24),
|
||
isKey = __webpack_require__(130),
|
||
stringToPath = __webpack_require__(135),
|
||
toString = __webpack_require__(164);
|
||
|
||
/**
|
||
* Casts `value` to a path array if it's not one.
|
||
*
|
||
* @private
|
||
* @param {*} value The value to inspect.
|
||
* @param {Object} [object] The object to query keys on.
|
||
* @returns {Array} Returns the cast property path array.
|
||
*/
|
||
function castPath(value, object) {
|
||
if (isArray(value)) {
|
||
return value;
|
||
}
|
||
return isKey(value, object) ? [value] : stringToPath(toString(value));
|
||
}
|
||
|
||
module.exports = castPath;
|
||
|
||
|
||
/***/ }),
|
||
/* 41 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var baseGetTag = __webpack_require__(42),
|
||
isObjectLike = __webpack_require__(45);
|
||
|
||
/** `Object#toString` result references. */
|
||
var symbolTag = '[object Symbol]';
|
||
|
||
/**
|
||
* Checks if `value` is classified as a `Symbol` primitive or object.
|
||
*
|
||
* @static
|
||
* @memberOf _
|
||
* @since 4.0.0
|
||
* @category Lang
|
||
* @param {*} value The value to check.
|
||
* @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
|
||
* @example
|
||
*
|
||
* _.isSymbol(Symbol.iterator);
|
||
* // => true
|
||
*
|
||
* _.isSymbol('abc');
|
||
* // => false
|
||
*/
|
||
function isSymbol(value) {
|
||
return typeof value == 'symbol' ||
|
||
(isObjectLike(value) && baseGetTag(value) == symbolTag);
|
||
}
|
||
|
||
module.exports = isSymbol;
|
||
|
||
|
||
/***/ }),
|
||
/* 42 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var Symbol = __webpack_require__(43),
|
||
getRawTag = __webpack_require__(133),
|
||
objectToString = __webpack_require__(134);
|
||
|
||
/** `Object#toString` result references. */
|
||
var nullTag = '[object Null]',
|
||
undefinedTag = '[object Undefined]';
|
||
|
||
/** Built-in value references. */
|
||
var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
|
||
|
||
/**
|
||
* The base implementation of `getTag` without fallbacks for buggy environments.
|
||
*
|
||
* @private
|
||
* @param {*} value The value to query.
|
||
* @returns {string} Returns the `toStringTag`.
|
||
*/
|
||
function baseGetTag(value) {
|
||
if (value == null) {
|
||
return value === undefined ? undefinedTag : nullTag;
|
||
}
|
||
return (symToStringTag && symToStringTag in Object(value))
|
||
? getRawTag(value)
|
||
: objectToString(value);
|
||
}
|
||
|
||
module.exports = baseGetTag;
|
||
|
||
|
||
/***/ }),
|
||
/* 43 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var root = __webpack_require__(44);
|
||
|
||
/** Built-in value references. */
|
||
var Symbol = root.Symbol;
|
||
|
||
module.exports = Symbol;
|
||
|
||
|
||
/***/ }),
|
||
/* 44 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var freeGlobal = __webpack_require__(131);
|
||
|
||
/** Detect free variable `self`. */
|
||
var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
|
||
|
||
/** Used as a reference to the global object. */
|
||
var root = freeGlobal || freeSelf || Function('return this')();
|
||
|
||
module.exports = root;
|
||
|
||
|
||
/***/ }),
|
||
/* 45 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* Checks if `value` is object-like. A value is object-like if it's not `null`
|
||
* and has a `typeof` result of "object".
|
||
*
|
||
* @static
|
||
* @memberOf _
|
||
* @since 4.0.0
|
||
* @category Lang
|
||
* @param {*} value The value to check.
|
||
* @returns {boolean} Returns `true` if `value` is object-like, else `false`.
|
||
* @example
|
||
*
|
||
* _.isObjectLike({});
|
||
* // => true
|
||
*
|
||
* _.isObjectLike([1, 2, 3]);
|
||
* // => true
|
||
*
|
||
* _.isObjectLike(_.noop);
|
||
* // => false
|
||
*
|
||
* _.isObjectLike(null);
|
||
* // => false
|
||
*/
|
||
function isObjectLike(value) {
|
||
return value != null && typeof value == 'object';
|
||
}
|
||
|
||
module.exports = isObjectLike;
|
||
|
||
|
||
/***/ }),
|
||
/* 46 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var baseIsNative = __webpack_require__(142),
|
||
getValue = __webpack_require__(147);
|
||
|
||
/**
|
||
* Gets the native function at `key` of `object`.
|
||
*
|
||
* @private
|
||
* @param {Object} object The object to query.
|
||
* @param {string} key The key of the method to get.
|
||
* @returns {*} Returns the function if it's native, else `undefined`.
|
||
*/
|
||
function getNative(object, key) {
|
||
var value = getValue(object, key);
|
||
return baseIsNative(value) ? value : undefined;
|
||
}
|
||
|
||
module.exports = getNative;
|
||
|
||
|
||
/***/ }),
|
||
/* 47 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* Checks if `value` is the
|
||
* [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
|
||
* of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
|
||
*
|
||
* @static
|
||
* @memberOf _
|
||
* @since 0.1.0
|
||
* @category Lang
|
||
* @param {*} value The value to check.
|
||
* @returns {boolean} Returns `true` if `value` is an object, else `false`.
|
||
* @example
|
||
*
|
||
* _.isObject({});
|
||
* // => true
|
||
*
|
||
* _.isObject([1, 2, 3]);
|
||
* // => true
|
||
*
|
||
* _.isObject(_.noop);
|
||
* // => true
|
||
*
|
||
* _.isObject(null);
|
||
* // => false
|
||
*/
|
||
function isObject(value) {
|
||
var type = typeof value;
|
||
return value != null && (type == 'object' || type == 'function');
|
||
}
|
||
|
||
module.exports = isObject;
|
||
|
||
|
||
/***/ }),
|
||
/* 48 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* Performs a
|
||
* [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
|
||
* comparison between two values to determine if they are equivalent.
|
||
*
|
||
* @static
|
||
* @memberOf _
|
||
* @since 4.0.0
|
||
* @category Lang
|
||
* @param {*} value The value to compare.
|
||
* @param {*} other The other value to compare.
|
||
* @returns {boolean} Returns `true` if the values are equivalent, else `false`.
|
||
* @example
|
||
*
|
||
* var object = { 'a': 1 };
|
||
* var other = { 'a': 1 };
|
||
*
|
||
* _.eq(object, object);
|
||
* // => true
|
||
*
|
||
* _.eq(object, other);
|
||
* // => false
|
||
*
|
||
* _.eq('a', 'a');
|
||
* // => true
|
||
*
|
||
* _.eq('a', Object('a'));
|
||
* // => false
|
||
*
|
||
* _.eq(NaN, NaN);
|
||
* // => true
|
||
*/
|
||
function eq(value, other) {
|
||
return value === other || (value !== value && other !== other);
|
||
}
|
||
|
||
module.exports = eq;
|
||
|
||
|
||
/***/ }),
|
||
/* 49 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var isSymbol = __webpack_require__(41);
|
||
|
||
/** Used as references for various `Number` constants. */
|
||
var INFINITY = 1 / 0;
|
||
|
||
/**
|
||
* Converts `value` to a string key if it's not a string or symbol.
|
||
*
|
||
* @private
|
||
* @param {*} value The value to inspect.
|
||
* @returns {string|symbol} Returns the key.
|
||
*/
|
||
function toKey(value) {
|
||
if (typeof value == 'string' || isSymbol(value)) {
|
||
return value;
|
||
}
|
||
var result = (value + '');
|
||
return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
|
||
}
|
||
|
||
module.exports = toKey;
|
||
|
||
|
||
/***/ }),
|
||
/* 50 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
exports.__esModule = true;
|
||
|
||
exports.default = function (instance, Constructor) {
|
||
if (!(instance instanceof Constructor)) {
|
||
throw new TypeError("Cannot call a class as a function");
|
||
}
|
||
};
|
||
|
||
/***/ }),
|
||
/* 51 */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* harmony export (immutable) */ __webpack_exports__["a"] = argumentContainer;
|
||
/* harmony export (immutable) */ __webpack_exports__["i"] = identity;
|
||
/* harmony export (immutable) */ __webpack_exports__["b"] = flattenArray;
|
||
/* unused harmony export treeTraverse */
|
||
/* harmony export (immutable) */ __webpack_exports__["c"] = flattenFields;
|
||
/* harmony export (immutable) */ __webpack_exports__["k"] = normalizeValidateRules;
|
||
/* harmony export (immutable) */ __webpack_exports__["f"] = getValidateTriggers;
|
||
/* harmony export (immutable) */ __webpack_exports__["g"] = getValueFromEvent;
|
||
/* harmony export (immutable) */ __webpack_exports__["d"] = getErrorStrs;
|
||
/* harmony export (immutable) */ __webpack_exports__["e"] = getParams;
|
||
/* harmony export (immutable) */ __webpack_exports__["j"] = isEmptyObject;
|
||
/* harmony export (immutable) */ __webpack_exports__["h"] = hasRules;
|
||
/* harmony export (immutable) */ __webpack_exports__["l"] = startsWith;
|
||
/* harmony export (immutable) */ __webpack_exports__["m"] = supportRef;
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(16);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_hoist_non_react_statics__ = __webpack_require__(173);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_hoist_non_react_statics___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_hoist_non_react_statics__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning__ = __webpack_require__(69);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_warning__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_is__ = __webpack_require__(28);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_is___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react_is__);
|
||
|
||
|
||
|
||
|
||
|
||
function getDisplayName(WrappedComponent) {
|
||
return WrappedComponent.displayName || WrappedComponent.name || 'WrappedComponent';
|
||
}
|
||
|
||
function argumentContainer(Container, WrappedComponent) {
|
||
/* eslint no-param-reassign:0 */
|
||
Container.displayName = 'Form(' + getDisplayName(WrappedComponent) + ')';
|
||
Container.WrappedComponent = WrappedComponent;
|
||
return __WEBPACK_IMPORTED_MODULE_1_hoist_non_react_statics___default()(Container, WrappedComponent);
|
||
}
|
||
|
||
function identity(obj) {
|
||
return obj;
|
||
}
|
||
|
||
function flattenArray(arr) {
|
||
return Array.prototype.concat.apply([], arr);
|
||
}
|
||
|
||
function treeTraverse() {
|
||
var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
||
var tree = arguments[1];
|
||
var isLeafNode = arguments[2];
|
||
var errorMessage = arguments[3];
|
||
var callback = arguments[4];
|
||
|
||
if (isLeafNode(path, tree)) {
|
||
callback(path, tree);
|
||
} else if (tree === undefined || tree === null) {
|
||
// Do nothing
|
||
} else if (Array.isArray(tree)) {
|
||
tree.forEach(function (subTree, index) {
|
||
return treeTraverse(path + '[' + index + ']', subTree, isLeafNode, errorMessage, callback);
|
||
});
|
||
} else {
|
||
// It's object and not a leaf node
|
||
if (typeof tree !== 'object') {
|
||
__WEBPACK_IMPORTED_MODULE_2_warning___default()(false, errorMessage);
|
||
return;
|
||
}
|
||
Object.keys(tree).forEach(function (subTreeKey) {
|
||
var subTree = tree[subTreeKey];
|
||
treeTraverse('' + path + (path ? '.' : '') + subTreeKey, subTree, isLeafNode, errorMessage, callback);
|
||
});
|
||
}
|
||
}
|
||
|
||
function flattenFields(maybeNestedFields, isLeafNode, errorMessage) {
|
||
var fields = {};
|
||
treeTraverse(undefined, maybeNestedFields, isLeafNode, errorMessage, function (path, node) {
|
||
fields[path] = node;
|
||
});
|
||
return fields;
|
||
}
|
||
|
||
function normalizeValidateRules(validate, rules, validateTrigger) {
|
||
var validateRules = validate.map(function (item) {
|
||
var newItem = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, item, {
|
||
trigger: item.trigger || []
|
||
});
|
||
if (typeof newItem.trigger === 'string') {
|
||
newItem.trigger = [newItem.trigger];
|
||
}
|
||
return newItem;
|
||
});
|
||
if (rules) {
|
||
validateRules.push({
|
||
trigger: validateTrigger ? [].concat(validateTrigger) : [],
|
||
rules: rules
|
||
});
|
||
}
|
||
return validateRules;
|
||
}
|
||
|
||
function getValidateTriggers(validateRules) {
|
||
return validateRules.filter(function (item) {
|
||
return !!item.rules && item.rules.length;
|
||
}).map(function (item) {
|
||
return item.trigger;
|
||
}).reduce(function (pre, curr) {
|
||
return pre.concat(curr);
|
||
}, []);
|
||
}
|
||
|
||
function getValueFromEvent(e) {
|
||
// To support custom element
|
||
if (!e || !e.target) {
|
||
return e;
|
||
}
|
||
var target = e.target;
|
||
|
||
return target.type === 'checkbox' ? target.checked : target.value;
|
||
}
|
||
|
||
function getErrorStrs(errors) {
|
||
if (errors) {
|
||
return errors.map(function (e) {
|
||
if (e && e.message) {
|
||
return e.message;
|
||
}
|
||
return e;
|
||
});
|
||
}
|
||
return errors;
|
||
}
|
||
|
||
function getParams(ns, opt, cb) {
|
||
var names = ns;
|
||
var options = opt;
|
||
var callback = cb;
|
||
if (cb === undefined) {
|
||
if (typeof names === 'function') {
|
||
callback = names;
|
||
options = {};
|
||
names = undefined;
|
||
} else if (Array.isArray(names)) {
|
||
if (typeof options === 'function') {
|
||
callback = options;
|
||
options = {};
|
||
} else {
|
||
options = options || {};
|
||
}
|
||
} else {
|
||
callback = options;
|
||
options = names || {};
|
||
names = undefined;
|
||
}
|
||
}
|
||
return {
|
||
names: names,
|
||
options: options,
|
||
callback: callback
|
||
};
|
||
}
|
||
|
||
function isEmptyObject(obj) {
|
||
return Object.keys(obj).length === 0;
|
||
}
|
||
|
||
function hasRules(validate) {
|
||
if (validate) {
|
||
return validate.some(function (item) {
|
||
return item.rules && item.rules.length;
|
||
});
|
||
}
|
||
return false;
|
||
}
|
||
|
||
function startsWith(str, prefix) {
|
||
return str.lastIndexOf(prefix, 0) === 0;
|
||
}
|
||
|
||
function supportRef(nodeOrComponent) {
|
||
var type = Object(__WEBPACK_IMPORTED_MODULE_3_react_is__["isMemo"])(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type;
|
||
|
||
// Function component node
|
||
if (typeof type === 'function' && !(type.prototype && type.prototype.render)) {
|
||
return false;
|
||
}
|
||
|
||
// Class component
|
||
if (typeof nodeOrComponent === 'function' && !(nodeOrComponent.prototype && nodeOrComponent.prototype.render)) {
|
||
return false;
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
/***/ }),
|
||
/* 52 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
exports.f = __webpack_require__(3);
|
||
|
||
|
||
/***/ }),
|
||
/* 53 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var global = __webpack_require__(5);
|
||
var core = __webpack_require__(2);
|
||
var LIBRARY = __webpack_require__(19);
|
||
var wksExt = __webpack_require__(52);
|
||
var defineProperty = __webpack_require__(6).f;
|
||
module.exports = function (name) {
|
||
var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
|
||
if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 54 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/**
|
||
* Copyright (c) 2013-present, Facebook, Inc.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
|
||
|
||
var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
|
||
|
||
module.exports = ReactPropTypesSecret;
|
||
|
||
|
||
/***/ }),
|
||
/* 55 */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return mixin; });
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__createBaseForm__ = __webpack_require__(56);
|
||
|
||
|
||
var mixin = {
|
||
getForm: function getForm() {
|
||
return {
|
||
getFieldsValue: this.fieldsStore.getFieldsValue,
|
||
getFieldValue: this.fieldsStore.getFieldValue,
|
||
getFieldInstance: this.getFieldInstance,
|
||
setFieldsValue: this.setFieldsValue,
|
||
setFields: this.setFields,
|
||
setFieldsInitialValue: this.fieldsStore.setFieldsInitialValue,
|
||
getFieldDecorator: this.getFieldDecorator,
|
||
getFieldProps: this.getFieldProps,
|
||
getFieldsError: this.fieldsStore.getFieldsError,
|
||
getFieldError: this.fieldsStore.getFieldError,
|
||
isFieldValidating: this.fieldsStore.isFieldValidating,
|
||
isFieldsValidating: this.fieldsStore.isFieldsValidating,
|
||
isFieldsTouched: this.fieldsStore.isFieldsTouched,
|
||
isFieldTouched: this.fieldsStore.isFieldTouched,
|
||
isSubmitting: this.isSubmitting,
|
||
submit: this.submit,
|
||
validateFields: this.validateFields,
|
||
resetFields: this.resetFields
|
||
};
|
||
}
|
||
};
|
||
|
||
function createForm(options) {
|
||
return Object(__WEBPACK_IMPORTED_MODULE_0__createBaseForm__["a" /* default */])(options, [mixin]);
|
||
}
|
||
|
||
/* harmony default export */ __webpack_exports__["a"] = (createForm);
|
||
|
||
/***/ }),
|
||
/* 56 */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* WEBPACK VAR INJECTION */(function(process) {/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__(78);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty__ = __webpack_require__(57);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends__ = __webpack_require__(16);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_toConsumableArray__ = __webpack_require__(88);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_toConsumableArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_toConsumableArray__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(23);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_create_react_class__ = __webpack_require__(103);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_create_react_class___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_create_react_class__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rc_util_es_unsafeLifecyclesPolyfill__ = __webpack_require__(105);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_async_validator__ = __webpack_require__(106);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_async_validator___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_async_validator__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_warning__ = __webpack_require__(69);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_warning___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_warning__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_lodash_get__ = __webpack_require__(128);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_lodash_get___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_lodash_get__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_lodash_set__ = __webpack_require__(70);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_lodash_set___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_lodash_set__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_lodash_eq__ = __webpack_require__(48);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_lodash_eq___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_lodash_eq__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__createFieldsStore__ = __webpack_require__(171);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__utils__ = __webpack_require__(51);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__FieldElemWrapper__ = __webpack_require__(176);
|
||
|
||
|
||
|
||
|
||
/* eslint-disable react/prefer-es6-class */
|
||
/* eslint-disable prefer-promise-reject-errors */
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var DEFAULT_TRIGGER = 'onChange';
|
||
|
||
function createBaseForm() {
|
||
var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||
var mixins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
||
var validateMessages = option.validateMessages,
|
||
onFieldsChange = option.onFieldsChange,
|
||
onValuesChange = option.onValuesChange,
|
||
_option$mapProps = option.mapProps,
|
||
mapProps = _option$mapProps === undefined ? __WEBPACK_IMPORTED_MODULE_13__utils__["i" /* identity */] : _option$mapProps,
|
||
mapPropsToFields = option.mapPropsToFields,
|
||
fieldNameProp = option.fieldNameProp,
|
||
fieldMetaProp = option.fieldMetaProp,
|
||
fieldDataProp = option.fieldDataProp,
|
||
_option$formPropName = option.formPropName,
|
||
formPropName = _option$formPropName === undefined ? 'form' : _option$formPropName,
|
||
formName = option.name,
|
||
withRef = option.withRef;
|
||
|
||
|
||
return function decorate(WrappedComponent) {
|
||
var Form = __WEBPACK_IMPORTED_MODULE_5_create_react_class___default()({
|
||
displayName: 'Form',
|
||
|
||
mixins: mixins,
|
||
|
||
getInitialState: function getInitialState() {
|
||
var _this = this;
|
||
|
||
var fields = mapPropsToFields && mapPropsToFields(this.props);
|
||
this.fieldsStore = Object(__WEBPACK_IMPORTED_MODULE_12__createFieldsStore__["a" /* default */])(fields || {});
|
||
|
||
this.instances = {};
|
||
this.cachedBind = {};
|
||
this.clearedFieldMetaCache = {};
|
||
|
||
this.renderFields = {};
|
||
this.domFields = {};
|
||
|
||
// HACK: https://github.com/ant-design/ant-design/issues/6406
|
||
['getFieldsValue', 'getFieldValue', 'setFieldsInitialValue', 'getFieldsError', 'getFieldError', 'isFieldValidating', 'isFieldsValidating', 'isFieldsTouched', 'isFieldTouched'].forEach(function (key) {
|
||
_this[key] = function () {
|
||
var _fieldsStore;
|
||
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
__WEBPACK_IMPORTED_MODULE_8_warning___default()(false, 'you should not use `ref` on enhanced form, please use `wrappedComponentRef`. ' + 'See: https://github.com/react-component/form#note-use-wrappedcomponentref-instead-of-withref-after-rc-form140');
|
||
}
|
||
return (_fieldsStore = _this.fieldsStore)[key].apply(_fieldsStore, arguments);
|
||
};
|
||
});
|
||
|
||
return {
|
||
submitting: false
|
||
};
|
||
},
|
||
componentDidMount: function componentDidMount() {
|
||
this.cleanUpUselessFields();
|
||
},
|
||
componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
|
||
if (mapPropsToFields) {
|
||
this.fieldsStore.updateFields(mapPropsToFields(nextProps));
|
||
}
|
||
},
|
||
componentDidUpdate: function componentDidUpdate() {
|
||
this.cleanUpUselessFields();
|
||
},
|
||
onCollectCommon: function onCollectCommon(name, action, args) {
|
||
var fieldMeta = this.fieldsStore.getFieldMeta(name);
|
||
if (fieldMeta[action]) {
|
||
fieldMeta[action].apply(fieldMeta, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_toConsumableArray___default()(args));
|
||
} else if (fieldMeta.originalProps && fieldMeta.originalProps[action]) {
|
||
var _fieldMeta$originalPr;
|
||
|
||
(_fieldMeta$originalPr = fieldMeta.originalProps)[action].apply(_fieldMeta$originalPr, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_toConsumableArray___default()(args));
|
||
}
|
||
var value = fieldMeta.getValueFromEvent ? fieldMeta.getValueFromEvent.apply(fieldMeta, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_toConsumableArray___default()(args)) : __WEBPACK_IMPORTED_MODULE_13__utils__["g" /* getValueFromEvent */].apply(undefined, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_toConsumableArray___default()(args));
|
||
if (onValuesChange && value !== this.fieldsStore.getFieldValue(name)) {
|
||
var valuesAll = this.fieldsStore.getAllValues();
|
||
var valuesAllSet = {};
|
||
valuesAll[name] = value;
|
||
Object.keys(valuesAll).forEach(function (key) {
|
||
return __WEBPACK_IMPORTED_MODULE_10_lodash_set___default()(valuesAllSet, key, valuesAll[key]);
|
||
});
|
||
onValuesChange(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty___default()({}, formPropName, this.getForm()), this.props), __WEBPACK_IMPORTED_MODULE_10_lodash_set___default()({}, name, value), valuesAllSet);
|
||
}
|
||
var field = this.fieldsStore.getField(name);
|
||
return { name: name, field: __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, field, { value: value, touched: true }), fieldMeta: fieldMeta };
|
||
},
|
||
onCollect: function onCollect(name_, action) {
|
||
for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
||
args[_key - 2] = arguments[_key];
|
||
}
|
||
|
||
var _onCollectCommon = this.onCollectCommon(name_, action, args),
|
||
name = _onCollectCommon.name,
|
||
field = _onCollectCommon.field,
|
||
fieldMeta = _onCollectCommon.fieldMeta;
|
||
|
||
var validate = fieldMeta.validate;
|
||
|
||
|
||
this.fieldsStore.setFieldsAsDirty();
|
||
|
||
var newField = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, field, {
|
||
dirty: Object(__WEBPACK_IMPORTED_MODULE_13__utils__["h" /* hasRules */])(validate)
|
||
});
|
||
this.setFields(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty___default()({}, name, newField));
|
||
},
|
||
onCollectValidate: function onCollectValidate(name_, action) {
|
||
for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
|
||
args[_key2 - 2] = arguments[_key2];
|
||
}
|
||
|
||
var _onCollectCommon2 = this.onCollectCommon(name_, action, args),
|
||
field = _onCollectCommon2.field,
|
||
fieldMeta = _onCollectCommon2.fieldMeta;
|
||
|
||
var newField = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, field, {
|
||
dirty: true
|
||
});
|
||
|
||
this.fieldsStore.setFieldsAsDirty();
|
||
|
||
this.validateFieldsInternal([newField], {
|
||
action: action,
|
||
options: {
|
||
firstFields: !!fieldMeta.validateFirst
|
||
}
|
||
});
|
||
},
|
||
getCacheBind: function getCacheBind(name, action, fn) {
|
||
if (!this.cachedBind[name]) {
|
||
this.cachedBind[name] = {};
|
||
}
|
||
var cache = this.cachedBind[name];
|
||
if (!cache[action] || cache[action].oriFn !== fn) {
|
||
cache[action] = {
|
||
fn: fn.bind(this, name, action),
|
||
oriFn: fn
|
||
};
|
||
}
|
||
return cache[action].fn;
|
||
},
|
||
getFieldDecorator: function getFieldDecorator(name, fieldOption) {
|
||
var _this2 = this;
|
||
|
||
var props = this.getFieldProps(name, fieldOption);
|
||
return function (fieldElem) {
|
||
// We should put field in record if it is rendered
|
||
_this2.renderFields[name] = true;
|
||
|
||
var fieldMeta = _this2.fieldsStore.getFieldMeta(name);
|
||
var originalProps = fieldElem.props;
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
var valuePropName = fieldMeta.valuePropName;
|
||
__WEBPACK_IMPORTED_MODULE_8_warning___default()(!(valuePropName in originalProps), '`getFieldDecorator` will override `' + valuePropName + '`, ' + ('so please don\'t set `' + valuePropName + '` directly ') + 'and use `setFieldsValue` to set it.');
|
||
var defaultValuePropName = 'default' + valuePropName[0].toUpperCase() + valuePropName.slice(1);
|
||
__WEBPACK_IMPORTED_MODULE_8_warning___default()(!(defaultValuePropName in originalProps), '`' + defaultValuePropName + '` is invalid ' + ('for `getFieldDecorator` will set `' + valuePropName + '`,') + ' please use `option.initialValue` instead.');
|
||
}
|
||
fieldMeta.originalProps = originalProps;
|
||
fieldMeta.ref = fieldElem.ref;
|
||
var decoratedFieldElem = __WEBPACK_IMPORTED_MODULE_4_react___default.a.cloneElement(fieldElem, __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, props, _this2.fieldsStore.getFieldValuePropValue(fieldMeta)));
|
||
return Object(__WEBPACK_IMPORTED_MODULE_13__utils__["m" /* supportRef */])(fieldElem) ? decoratedFieldElem : __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(
|
||
__WEBPACK_IMPORTED_MODULE_14__FieldElemWrapper__["a" /* default */],
|
||
{ name: name, form: _this2 },
|
||
decoratedFieldElem
|
||
);
|
||
};
|
||
},
|
||
getFieldProps: function getFieldProps(name) {
|
||
var _this3 = this;
|
||
|
||
var usersFieldOption = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||
|
||
if (!name) {
|
||
throw new Error('Must call `getFieldProps` with valid name string!');
|
||
}
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
__WEBPACK_IMPORTED_MODULE_8_warning___default()(this.fieldsStore.isValidNestedFieldName(name), 'One field name cannot be part of another, e.g. `a` and `a.b`. Check field: ' + name);
|
||
__WEBPACK_IMPORTED_MODULE_8_warning___default()(!('exclusive' in usersFieldOption), '`option.exclusive` of `getFieldProps`|`getFieldDecorator` had been remove.');
|
||
}
|
||
|
||
delete this.clearedFieldMetaCache[name];
|
||
|
||
var fieldOption = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({
|
||
name: name,
|
||
trigger: DEFAULT_TRIGGER,
|
||
valuePropName: 'value',
|
||
validate: []
|
||
}, usersFieldOption);
|
||
|
||
var rules = fieldOption.rules,
|
||
trigger = fieldOption.trigger,
|
||
_fieldOption$validate = fieldOption.validateTrigger,
|
||
validateTrigger = _fieldOption$validate === undefined ? trigger : _fieldOption$validate,
|
||
validate = fieldOption.validate;
|
||
|
||
|
||
var fieldMeta = this.fieldsStore.getFieldMeta(name);
|
||
if ('initialValue' in fieldOption) {
|
||
fieldMeta.initialValue = fieldOption.initialValue;
|
||
}
|
||
|
||
var inputProps = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, this.fieldsStore.getFieldValuePropValue(fieldOption), {
|
||
ref: this.getCacheBind(name, name + '__ref', this.saveRef)
|
||
});
|
||
if (fieldNameProp) {
|
||
inputProps[fieldNameProp] = formName ? formName + '_' + name : name;
|
||
}
|
||
|
||
var validateRules = Object(__WEBPACK_IMPORTED_MODULE_13__utils__["k" /* normalizeValidateRules */])(validate, rules, validateTrigger);
|
||
var validateTriggers = Object(__WEBPACK_IMPORTED_MODULE_13__utils__["f" /* getValidateTriggers */])(validateRules);
|
||
validateTriggers.forEach(function (action) {
|
||
if (inputProps[action]) return;
|
||
inputProps[action] = _this3.getCacheBind(name, action, _this3.onCollectValidate);
|
||
});
|
||
|
||
// make sure that the value will be collect
|
||
if (trigger && validateTriggers.indexOf(trigger) === -1) {
|
||
inputProps[trigger] = this.getCacheBind(name, trigger, this.onCollect);
|
||
}
|
||
|
||
var meta = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, fieldMeta, fieldOption, {
|
||
validate: validateRules
|
||
});
|
||
this.fieldsStore.setFieldMeta(name, meta);
|
||
if (fieldMetaProp) {
|
||
inputProps[fieldMetaProp] = meta;
|
||
}
|
||
|
||
if (fieldDataProp) {
|
||
inputProps[fieldDataProp] = this.fieldsStore.getField(name);
|
||
}
|
||
|
||
// This field is rendered, record it
|
||
this.renderFields[name] = true;
|
||
|
||
return inputProps;
|
||
},
|
||
getFieldInstance: function getFieldInstance(name) {
|
||
return this.instances[name];
|
||
},
|
||
getRules: function getRules(fieldMeta, action) {
|
||
var actionRules = fieldMeta.validate.filter(function (item) {
|
||
return !action || item.trigger.indexOf(action) >= 0;
|
||
}).map(function (item) {
|
||
return item.rules;
|
||
});
|
||
return Object(__WEBPACK_IMPORTED_MODULE_13__utils__["b" /* flattenArray */])(actionRules);
|
||
},
|
||
setFields: function setFields(maybeNestedFields, callback) {
|
||
var _this4 = this;
|
||
|
||
var fields = this.fieldsStore.flattenRegisteredFields(maybeNestedFields);
|
||
this.fieldsStore.setFields(fields);
|
||
if (onFieldsChange) {
|
||
var changedFields = Object.keys(fields).reduce(function (acc, name) {
|
||
return __WEBPACK_IMPORTED_MODULE_10_lodash_set___default()(acc, name, _this4.fieldsStore.getField(name));
|
||
}, {});
|
||
onFieldsChange(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty___default()({}, formPropName, this.getForm()), this.props), changedFields, this.fieldsStore.getNestedAllFields());
|
||
}
|
||
this.forceUpdate(callback);
|
||
},
|
||
setFieldsValue: function setFieldsValue(changedValues, callback) {
|
||
var fieldsMeta = this.fieldsStore.fieldsMeta;
|
||
|
||
var values = this.fieldsStore.flattenRegisteredFields(changedValues);
|
||
var newFields = Object.keys(values).reduce(function (acc, name) {
|
||
var isRegistered = fieldsMeta[name];
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
__WEBPACK_IMPORTED_MODULE_8_warning___default()(isRegistered, 'Cannot use `setFieldsValue` until ' + 'you use `getFieldDecorator` or `getFieldProps` to register it.');
|
||
}
|
||
if (isRegistered) {
|
||
var value = values[name];
|
||
acc[name] = {
|
||
value: value
|
||
};
|
||
}
|
||
return acc;
|
||
}, {});
|
||
this.setFields(newFields, callback);
|
||
if (onValuesChange) {
|
||
var allValues = this.fieldsStore.getAllValues();
|
||
onValuesChange(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty___default()({}, formPropName, this.getForm()), this.props), changedValues, allValues);
|
||
}
|
||
},
|
||
saveRef: function saveRef(name, _, component) {
|
||
if (!component) {
|
||
var _fieldMeta = this.fieldsStore.getFieldMeta(name);
|
||
if (!_fieldMeta.preserve) {
|
||
// after destroy, delete data
|
||
this.clearedFieldMetaCache[name] = {
|
||
field: this.fieldsStore.getField(name),
|
||
meta: _fieldMeta
|
||
};
|
||
this.clearField(name);
|
||
}
|
||
delete this.domFields[name];
|
||
return;
|
||
}
|
||
this.domFields[name] = true;
|
||
this.recoverClearedField(name);
|
||
var fieldMeta = this.fieldsStore.getFieldMeta(name);
|
||
if (fieldMeta) {
|
||
var ref = fieldMeta.ref;
|
||
if (ref) {
|
||
if (typeof ref === 'string') {
|
||
throw new Error('can not set ref string for ' + name);
|
||
} else if (typeof ref === 'function') {
|
||
ref(component);
|
||
} else if (Object.prototype.hasOwnProperty.call(ref, 'current')) {
|
||
ref.current = component;
|
||
}
|
||
}
|
||
}
|
||
this.instances[name] = component;
|
||
},
|
||
cleanUpUselessFields: function cleanUpUselessFields() {
|
||
var _this5 = this;
|
||
|
||
var fieldList = this.fieldsStore.getAllFieldsName();
|
||
var removedList = fieldList.filter(function (field) {
|
||
var fieldMeta = _this5.fieldsStore.getFieldMeta(field);
|
||
return !_this5.renderFields[field] && !_this5.domFields[field] && !fieldMeta.preserve;
|
||
});
|
||
if (removedList.length) {
|
||
removedList.forEach(this.clearField);
|
||
}
|
||
this.renderFields = {};
|
||
},
|
||
clearField: function clearField(name) {
|
||
this.fieldsStore.clearField(name);
|
||
delete this.instances[name];
|
||
delete this.cachedBind[name];
|
||
},
|
||
resetFields: function resetFields(ns) {
|
||
var _this6 = this;
|
||
|
||
var newFields = this.fieldsStore.resetFields(ns);
|
||
if (Object.keys(newFields).length > 0) {
|
||
this.setFields(newFields);
|
||
}
|
||
if (ns) {
|
||
var names = Array.isArray(ns) ? ns : [ns];
|
||
names.forEach(function (name) {
|
||
return delete _this6.clearedFieldMetaCache[name];
|
||
});
|
||
} else {
|
||
this.clearedFieldMetaCache = {};
|
||
}
|
||
},
|
||
recoverClearedField: function recoverClearedField(name) {
|
||
if (this.clearedFieldMetaCache[name]) {
|
||
this.fieldsStore.setFields(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty___default()({}, name, this.clearedFieldMetaCache[name].field));
|
||
this.fieldsStore.setFieldMeta(name, this.clearedFieldMetaCache[name].meta);
|
||
delete this.clearedFieldMetaCache[name];
|
||
}
|
||
},
|
||
validateFieldsInternal: function validateFieldsInternal(fields, _ref, callback) {
|
||
var _this7 = this;
|
||
|
||
var fieldNames = _ref.fieldNames,
|
||
action = _ref.action,
|
||
_ref$options = _ref.options,
|
||
options = _ref$options === undefined ? {} : _ref$options;
|
||
|
||
var allRules = {};
|
||
var allValues = {};
|
||
var allFields = {};
|
||
var alreadyErrors = {};
|
||
fields.forEach(function (field) {
|
||
var name = field.name;
|
||
if (options.force !== true && field.dirty === false) {
|
||
if (field.errors) {
|
||
__WEBPACK_IMPORTED_MODULE_10_lodash_set___default()(alreadyErrors, name, { errors: field.errors });
|
||
}
|
||
return;
|
||
}
|
||
var fieldMeta = _this7.fieldsStore.getFieldMeta(name);
|
||
var newField = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, field);
|
||
newField.errors = undefined;
|
||
newField.validating = true;
|
||
newField.dirty = true;
|
||
allRules[name] = _this7.getRules(fieldMeta, action);
|
||
allValues[name] = newField.value;
|
||
allFields[name] = newField;
|
||
});
|
||
this.setFields(allFields);
|
||
// in case normalize
|
||
Object.keys(allValues).forEach(function (f) {
|
||
allValues[f] = _this7.fieldsStore.getFieldValue(f);
|
||
});
|
||
if (callback && Object(__WEBPACK_IMPORTED_MODULE_13__utils__["j" /* isEmptyObject */])(allFields)) {
|
||
callback(Object(__WEBPACK_IMPORTED_MODULE_13__utils__["j" /* isEmptyObject */])(alreadyErrors) ? null : alreadyErrors, this.fieldsStore.getFieldsValue(fieldNames));
|
||
return;
|
||
}
|
||
var validator = new __WEBPACK_IMPORTED_MODULE_7_async_validator___default.a(allRules);
|
||
if (validateMessages) {
|
||
validator.messages(validateMessages);
|
||
}
|
||
validator.validate(allValues, options, function (errors) {
|
||
var errorsGroup = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, alreadyErrors);
|
||
if (errors && errors.length) {
|
||
errors.forEach(function (e) {
|
||
var errorFieldName = e.field;
|
||
var fieldName = errorFieldName;
|
||
|
||
// Handle using array validation rule.
|
||
// ref: https://github.com/ant-design/ant-design/issues/14275
|
||
Object.keys(allRules).some(function (ruleFieldName) {
|
||
var rules = allRules[ruleFieldName] || [];
|
||
|
||
// Exist if match rule
|
||
if (ruleFieldName === errorFieldName) {
|
||
fieldName = ruleFieldName;
|
||
return true;
|
||
}
|
||
|
||
// Skip if not match array type
|
||
if (rules.every(function (_ref2) {
|
||
var type = _ref2.type;
|
||
return type !== 'array';
|
||
}) || errorFieldName.indexOf(ruleFieldName + '.') !== 0) {
|
||
return false;
|
||
}
|
||
|
||
// Exist if match the field name
|
||
var restPath = errorFieldName.slice(ruleFieldName.length + 1);
|
||
if (/^\d+$/.test(restPath)) {
|
||
fieldName = ruleFieldName;
|
||
return true;
|
||
}
|
||
|
||
return false;
|
||
});
|
||
|
||
var field = __WEBPACK_IMPORTED_MODULE_9_lodash_get___default()(errorsGroup, fieldName);
|
||
if (typeof field !== 'object' || Array.isArray(field)) {
|
||
__WEBPACK_IMPORTED_MODULE_10_lodash_set___default()(errorsGroup, fieldName, { errors: [] });
|
||
}
|
||
var fieldErrors = __WEBPACK_IMPORTED_MODULE_9_lodash_get___default()(errorsGroup, fieldName.concat('.errors'));
|
||
fieldErrors.push(e);
|
||
});
|
||
}
|
||
var expired = [];
|
||
var nowAllFields = {};
|
||
Object.keys(allRules).forEach(function (name) {
|
||
var fieldErrors = __WEBPACK_IMPORTED_MODULE_9_lodash_get___default()(errorsGroup, name);
|
||
var nowField = _this7.fieldsStore.getField(name);
|
||
// avoid concurrency problems
|
||
if (!__WEBPACK_IMPORTED_MODULE_11_lodash_eq___default()(nowField.value, allValues[name])) {
|
||
expired.push({
|
||
name: name
|
||
});
|
||
} else {
|
||
nowField.errors = fieldErrors && fieldErrors.errors;
|
||
nowField.value = allValues[name];
|
||
nowField.validating = false;
|
||
nowField.dirty = false;
|
||
nowAllFields[name] = nowField;
|
||
}
|
||
});
|
||
_this7.setFields(nowAllFields);
|
||
if (callback) {
|
||
if (expired.length) {
|
||
expired.forEach(function (_ref3) {
|
||
var name = _ref3.name;
|
||
|
||
var fieldErrors = [{
|
||
message: name + ' need to revalidate',
|
||
field: name
|
||
}];
|
||
__WEBPACK_IMPORTED_MODULE_10_lodash_set___default()(errorsGroup, name, {
|
||
expired: true,
|
||
errors: fieldErrors
|
||
});
|
||
});
|
||
}
|
||
|
||
callback(Object(__WEBPACK_IMPORTED_MODULE_13__utils__["j" /* isEmptyObject */])(errorsGroup) ? null : errorsGroup, _this7.fieldsStore.getFieldsValue(fieldNames));
|
||
}
|
||
});
|
||
},
|
||
validateFields: function validateFields(ns, opt, cb) {
|
||
var _this8 = this;
|
||
|
||
var pending = new Promise(function (resolve, reject) {
|
||
var _getParams = Object(__WEBPACK_IMPORTED_MODULE_13__utils__["e" /* getParams */])(ns, opt, cb),
|
||
names = _getParams.names,
|
||
options = _getParams.options;
|
||
|
||
var _getParams2 = Object(__WEBPACK_IMPORTED_MODULE_13__utils__["e" /* getParams */])(ns, opt, cb),
|
||
callback = _getParams2.callback;
|
||
|
||
if (!callback || typeof callback === 'function') {
|
||
var oldCb = callback;
|
||
callback = function callback(errors, values) {
|
||
if (oldCb) {
|
||
oldCb(errors, values);
|
||
}
|
||
if (errors) {
|
||
reject({ errors: errors, values: values });
|
||
} else {
|
||
resolve(values);
|
||
}
|
||
};
|
||
}
|
||
var fieldNames = names ? _this8.fieldsStore.getValidFieldsFullName(names) : _this8.fieldsStore.getValidFieldsName();
|
||
var fields = fieldNames.filter(function (name) {
|
||
var fieldMeta = _this8.fieldsStore.getFieldMeta(name);
|
||
return Object(__WEBPACK_IMPORTED_MODULE_13__utils__["h" /* hasRules */])(fieldMeta.validate);
|
||
}).map(function (name) {
|
||
var field = _this8.fieldsStore.getField(name);
|
||
field.value = _this8.fieldsStore.getFieldValue(name);
|
||
return field;
|
||
});
|
||
if (!fields.length) {
|
||
callback(null, _this8.fieldsStore.getFieldsValue(fieldNames));
|
||
return;
|
||
}
|
||
if (!('firstFields' in options)) {
|
||
options.firstFields = fieldNames.filter(function (name) {
|
||
var fieldMeta = _this8.fieldsStore.getFieldMeta(name);
|
||
return !!fieldMeta.validateFirst;
|
||
});
|
||
}
|
||
_this8.validateFieldsInternal(fields, {
|
||
fieldNames: fieldNames,
|
||
options: options
|
||
}, callback);
|
||
});
|
||
pending['catch'](function (e) {
|
||
// eslint-disable-next-line no-console
|
||
if (console.error && process.env.NODE_ENV !== 'production') {
|
||
// eslint-disable-next-line no-console
|
||
console.error(e);
|
||
}
|
||
return e;
|
||
});
|
||
return pending;
|
||
},
|
||
isSubmitting: function isSubmitting() {
|
||
if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {
|
||
__WEBPACK_IMPORTED_MODULE_8_warning___default()(false, '`isSubmitting` is deprecated. ' + "Actually, it's more convenient to handle submitting status by yourself.");
|
||
}
|
||
return this.state.submitting;
|
||
},
|
||
submit: function submit(callback) {
|
||
var _this9 = this;
|
||
|
||
if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {
|
||
__WEBPACK_IMPORTED_MODULE_8_warning___default()(false, '`submit` is deprecated. ' + "Actually, it's more convenient to handle submitting status by yourself.");
|
||
}
|
||
var fn = function fn() {
|
||
_this9.setState({
|
||
submitting: false
|
||
});
|
||
};
|
||
this.setState({
|
||
submitting: true
|
||
});
|
||
callback(fn);
|
||
},
|
||
render: function render() {
|
||
var _props = this.props,
|
||
wrappedComponentRef = _props.wrappedComponentRef,
|
||
restProps = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['wrappedComponentRef']); // eslint-disable-line
|
||
|
||
|
||
var formProps = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_defineProperty___default()({}, formPropName, this.getForm());
|
||
if (withRef) {
|
||
if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {
|
||
__WEBPACK_IMPORTED_MODULE_8_warning___default()(false, '`withRef` is deprecated, please use `wrappedComponentRef` instead. ' + 'See: https://github.com/react-component/form#note-use-wrappedcomponentref-instead-of-withref-after-rc-form140');
|
||
}
|
||
formProps.ref = 'wrappedComponent';
|
||
} else if (wrappedComponentRef) {
|
||
formProps.ref = wrappedComponentRef;
|
||
}
|
||
var props = mapProps.call(this, __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_extends___default()({}, formProps, restProps));
|
||
return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(WrappedComponent, props);
|
||
}
|
||
});
|
||
|
||
return Object(__WEBPACK_IMPORTED_MODULE_13__utils__["a" /* argumentContainer */])(Object(__WEBPACK_IMPORTED_MODULE_6_rc_util_es_unsafeLifecyclesPolyfill__["a" /* default */])(Form), WrappedComponent);
|
||
};
|
||
}
|
||
|
||
/* harmony default export */ __webpack_exports__["a"] = (createBaseForm);
|
||
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(4)))
|
||
|
||
/***/ }),
|
||
/* 57 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
exports.__esModule = true;
|
||
|
||
var _defineProperty = __webpack_require__(58);
|
||
|
||
var _defineProperty2 = _interopRequireDefault(_defineProperty);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
exports.default = function (obj, key, value) {
|
||
if (key in obj) {
|
||
(0, _defineProperty2.default)(obj, key, {
|
||
value: value,
|
||
enumerable: true,
|
||
configurable: true,
|
||
writable: true
|
||
});
|
||
} else {
|
||
obj[key] = value;
|
||
}
|
||
|
||
return obj;
|
||
};
|
||
|
||
/***/ }),
|
||
/* 58 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
module.exports = { "default": __webpack_require__(79), __esModule: true };
|
||
|
||
/***/ }),
|
||
/* 59 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
module.exports = !__webpack_require__(7) && !__webpack_require__(14)(function () {
|
||
return Object.defineProperty(__webpack_require__(60)('div'), 'a', { get: function () { return 7; } }).a != 7;
|
||
});
|
||
|
||
|
||
/***/ }),
|
||
/* 60 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var isObject = __webpack_require__(12);
|
||
var document = __webpack_require__(5).document;
|
||
// typeof document.createElement is 'object' in old IE
|
||
var is = isObject(document) && isObject(document.createElement);
|
||
module.exports = function (it) {
|
||
return is ? document.createElement(it) : {};
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 61 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var has = __webpack_require__(9);
|
||
var toIObject = __webpack_require__(13);
|
||
var arrayIndexOf = __webpack_require__(86)(false);
|
||
var IE_PROTO = __webpack_require__(34)('IE_PROTO');
|
||
|
||
module.exports = function (object, names) {
|
||
var O = toIObject(object);
|
||
var i = 0;
|
||
var result = [];
|
||
var key;
|
||
for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
|
||
// Don't enum bug & hidden keys
|
||
while (names.length > i) if (has(O, key = names[i++])) {
|
||
~arrayIndexOf(result, key) || result.push(key);
|
||
}
|
||
return result;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 62 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// fallback for non-array-like ES3 and non-enumerable old V8 strings
|
||
var cof = __webpack_require__(31);
|
||
// eslint-disable-next-line no-prototype-builtins
|
||
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
|
||
return cof(it) == 'String' ? it.split('') : Object(it);
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 63 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// 7.1.15 ToLength
|
||
var toInteger = __webpack_require__(33);
|
||
var min = Math.min;
|
||
module.exports = function (it) {
|
||
return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 64 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
var $at = __webpack_require__(91)(true);
|
||
|
||
// 21.1.3.27 String.prototype[@@iterator]()
|
||
__webpack_require__(65)(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;
|
||
var index = this._i;
|
||
var point;
|
||
if (index >= O.length) return { value: undefined, done: true };
|
||
point = $at(O, index);
|
||
this._i += point.length;
|
||
return { value: point, done: false };
|
||
});
|
||
|
||
|
||
/***/ }),
|
||
/* 65 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
var LIBRARY = __webpack_require__(19);
|
||
var $export = __webpack_require__(8);
|
||
var redefine = __webpack_require__(66);
|
||
var hide = __webpack_require__(10);
|
||
var Iterators = __webpack_require__(17);
|
||
var $iterCreate = __webpack_require__(92);
|
||
var setToStringTag = __webpack_require__(39);
|
||
var getPrototypeOf = __webpack_require__(95);
|
||
var ITERATOR = __webpack_require__(3)('iterator');
|
||
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
|
||
var FF_ITERATOR = '@@iterator';
|
||
var KEYS = 'keys';
|
||
var VALUES = 'values';
|
||
|
||
var returnThis = function () { return this; };
|
||
|
||
module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
|
||
$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';
|
||
var DEF_VALUES = DEFAULT == VALUES;
|
||
var VALUES_BUG = false;
|
||
var proto = Base.prototype;
|
||
var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
|
||
var $default = $native || getMethod(DEFAULT);
|
||
var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
|
||
var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
|
||
var methods, key, IteratorPrototype;
|
||
// Fix native
|
||
if ($anyNative) {
|
||
IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
|
||
if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
|
||
// Set @@toStringTag to native iterators
|
||
setToStringTag(IteratorPrototype, TAG, true);
|
||
// fix for some old engines
|
||
if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
|
||
}
|
||
}
|
||
// fix Array#{values, @@iterator}.name in V8 / FF
|
||
if (DEF_VALUES && $native && $native.name !== VALUES) {
|
||
VALUES_BUG = true;
|
||
$default = function values() { return $native.call(this); };
|
||
}
|
||
// Define iterator
|
||
if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
|
||
hide(proto, ITERATOR, $default);
|
||
}
|
||
// Plug for library
|
||
Iterators[NAME] = $default;
|
||
Iterators[TAG] = returnThis;
|
||
if (DEFAULT) {
|
||
methods = {
|
||
values: DEF_VALUES ? $default : getMethod(VALUES),
|
||
keys: IS_SET ? $default : getMethod(KEYS),
|
||
entries: $entries
|
||
};
|
||
if (FORCED) for (key in methods) {
|
||
if (!(key in proto)) redefine(proto, key, methods[key]);
|
||
} else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
|
||
}
|
||
return methods;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 66 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
module.exports = __webpack_require__(10);
|
||
|
||
|
||
/***/ }),
|
||
/* 67 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/*
|
||
object-assign
|
||
(c) Sindre Sorhus
|
||
@license MIT
|
||
*/
|
||
|
||
|
||
/* eslint-disable no-unused-vars */
|
||
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
|
||
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
||
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
|
||
|
||
function toObject(val) {
|
||
if (val === null || val === undefined) {
|
||
throw new TypeError('Object.assign cannot be called with null or undefined');
|
||
}
|
||
|
||
return Object(val);
|
||
}
|
||
|
||
function shouldUseNative() {
|
||
try {
|
||
if (!Object.assign) {
|
||
return false;
|
||
}
|
||
|
||
// Detect buggy property enumeration order in older V8 versions.
|
||
|
||
// https://bugs.chromium.org/p/v8/issues/detail?id=4118
|
||
var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
|
||
test1[5] = 'de';
|
||
if (Object.getOwnPropertyNames(test1)[0] === '5') {
|
||
return false;
|
||
}
|
||
|
||
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
|
||
var test2 = {};
|
||
for (var i = 0; i < 10; i++) {
|
||
test2['_' + String.fromCharCode(i)] = i;
|
||
}
|
||
var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
|
||
return test2[n];
|
||
});
|
||
if (order2.join('') !== '0123456789') {
|
||
return false;
|
||
}
|
||
|
||
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
|
||
var test3 = {};
|
||
'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
|
||
test3[letter] = letter;
|
||
});
|
||
if (Object.keys(Object.assign({}, test3)).join('') !==
|
||
'abcdefghijklmnopqrst') {
|
||
return false;
|
||
}
|
||
|
||
return true;
|
||
} catch (err) {
|
||
// We don't expect any of the above to throw, but better to be safe.
|
||
return false;
|
||
}
|
||
}
|
||
|
||
module.exports = shouldUseNative() ? Object.assign : function (target, source) {
|
||
var from;
|
||
var to = toObject(target);
|
||
var symbols;
|
||
|
||
for (var s = 1; s < arguments.length; s++) {
|
||
from = Object(arguments[s]);
|
||
|
||
for (var key in from) {
|
||
if (hasOwnProperty.call(from, key)) {
|
||
to[key] = from[key];
|
||
}
|
||
}
|
||
|
||
if (getOwnPropertySymbols) {
|
||
symbols = getOwnPropertySymbols(from);
|
||
for (var i = 0; i < symbols.length; i++) {
|
||
if (propIsEnumerable.call(from, symbols[i])) {
|
||
to[symbols[i]] = from[symbols[i]];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
return to;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 68 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
var util = _interopRequireWildcard(_util);
|
||
|
||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
|
||
|
||
/**
|
||
* Rule for validating required fields.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param source The source object being validated.
|
||
* @param errors An array of errors that this rule may add
|
||
* validation errors to.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function required(rule, value, source, errors, options, type) {
|
||
if (rule.required && (!source.hasOwnProperty(rule.field) || util.isEmptyValue(value, type || rule.type))) {
|
||
errors.push(util.format(options.messages.required, rule.fullField));
|
||
}
|
||
}
|
||
|
||
exports['default'] = required;
|
||
|
||
/***/ }),
|
||
/* 69 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* WEBPACK VAR INJECTION */(function(process) {/**
|
||
* Copyright (c) 2014-present, Facebook, Inc.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
|
||
|
||
/**
|
||
* Similar to invariant but only logs a warning if the condition is not met.
|
||
* This can be used to log issues in development environments in critical
|
||
* paths. Removing the logging code for production environments will keep the
|
||
* same logic and follow the same code paths.
|
||
*/
|
||
|
||
var __DEV__ = process.env.NODE_ENV !== 'production';
|
||
|
||
var warning = function() {};
|
||
|
||
if (__DEV__) {
|
||
var printWarning = function printWarning(format, args) {
|
||
var len = arguments.length;
|
||
args = new Array(len > 1 ? len - 1 : 0);
|
||
for (var key = 1; key < len; key++) {
|
||
args[key - 1] = arguments[key];
|
||
}
|
||
var argIndex = 0;
|
||
var message = 'Warning: ' +
|
||
format.replace(/%s/g, function() {
|
||
return args[argIndex++];
|
||
});
|
||
if (typeof console !== 'undefined') {
|
||
console.error(message);
|
||
}
|
||
try {
|
||
// --- Welcome to debugging React ---
|
||
// This error was thrown as a convenience so that you can use this stack
|
||
// to find the callsite that caused this warning to fire.
|
||
throw new Error(message);
|
||
} catch (x) {}
|
||
}
|
||
|
||
warning = function(condition, format, args) {
|
||
var len = arguments.length;
|
||
args = new Array(len > 2 ? len - 2 : 0);
|
||
for (var key = 2; key < len; key++) {
|
||
args[key - 2] = arguments[key];
|
||
}
|
||
if (format === undefined) {
|
||
throw new Error(
|
||
'`warning(condition, format, ...args)` requires a warning ' +
|
||
'message argument'
|
||
);
|
||
}
|
||
if (!condition) {
|
||
printWarning.apply(null, [format].concat(args));
|
||
}
|
||
};
|
||
}
|
||
|
||
module.exports = warning;
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
|
||
|
||
/***/ }),
|
||
/* 70 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var baseSet = __webpack_require__(167);
|
||
|
||
/**
|
||
* Sets the value at `path` of `object`. If a portion of `path` doesn't exist,
|
||
* it's created. Arrays are created for missing index properties while objects
|
||
* are created for all other missing properties. Use `_.setWith` to customize
|
||
* `path` creation.
|
||
*
|
||
* **Note:** This method mutates `object`.
|
||
*
|
||
* @static
|
||
* @memberOf _
|
||
* @since 3.7.0
|
||
* @category Object
|
||
* @param {Object} object The object to modify.
|
||
* @param {Array|string} path The path of the property to set.
|
||
* @param {*} value The value to set.
|
||
* @returns {Object} Returns `object`.
|
||
* @example
|
||
*
|
||
* var object = { 'a': [{ 'b': { 'c': 3 } }] };
|
||
*
|
||
* _.set(object, 'a[0].b.c', 4);
|
||
* console.log(object.a[0].b.c);
|
||
* // => 4
|
||
*
|
||
* _.set(object, ['x', '0', 'y', 'z'], 5);
|
||
* console.log(object.x[0].y.z);
|
||
* // => 5
|
||
*/
|
||
function set(object, path, value) {
|
||
return object == null ? object : baseSet(object, path, value);
|
||
}
|
||
|
||
module.exports = set;
|
||
|
||
|
||
/***/ }),
|
||
/* 71 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/** Used as references for various `Number` constants. */
|
||
var MAX_SAFE_INTEGER = 9007199254740991;
|
||
|
||
/** Used to detect unsigned integer values. */
|
||
var reIsUint = /^(?:0|[1-9]\d*)$/;
|
||
|
||
/**
|
||
* Checks if `value` is a valid array-like index.
|
||
*
|
||
* @private
|
||
* @param {*} value The value to check.
|
||
* @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
|
||
* @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
|
||
*/
|
||
function isIndex(value, length) {
|
||
var type = typeof value;
|
||
length = length == null ? MAX_SAFE_INTEGER : length;
|
||
|
||
return !!length &&
|
||
(type == 'number' ||
|
||
(type != 'symbol' && reIsUint.test(value))) &&
|
||
(value > -1 && value % 1 == 0 && value < length);
|
||
}
|
||
|
||
module.exports = isIndex;
|
||
|
||
|
||
/***/ }),
|
||
/* 72 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
exports.__esModule = true;
|
||
|
||
var _defineProperty = __webpack_require__(58);
|
||
|
||
var _defineProperty2 = _interopRequireDefault(_defineProperty);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
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;
|
||
(0, _defineProperty2.default)(target, descriptor.key, descriptor);
|
||
}
|
||
}
|
||
|
||
return function (Constructor, protoProps, staticProps) {
|
||
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
||
if (staticProps) defineProperties(Constructor, staticProps);
|
||
return Constructor;
|
||
};
|
||
}();
|
||
|
||
/***/ }),
|
||
/* 73 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
exports.__esModule = true;
|
||
|
||
var _iterator = __webpack_require__(178);
|
||
|
||
var _iterator2 = _interopRequireDefault(_iterator);
|
||
|
||
var _symbol = __webpack_require__(184);
|
||
|
||
var _symbol2 = _interopRequireDefault(_symbol);
|
||
|
||
var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; };
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) {
|
||
return typeof obj === "undefined" ? "undefined" : _typeof(obj);
|
||
} : function (obj) {
|
||
return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj);
|
||
};
|
||
|
||
/***/ }),
|
||
/* 74 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
|
||
var $keys = __webpack_require__(61);
|
||
var hiddenKeys = __webpack_require__(36).concat('length', 'prototype');
|
||
|
||
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
|
||
return $keys(O, hiddenKeys);
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 75 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var pIE = __webpack_require__(21);
|
||
var createDesc = __webpack_require__(15);
|
||
var toIObject = __webpack_require__(13);
|
||
var toPrimitive = __webpack_require__(30);
|
||
var has = __webpack_require__(9);
|
||
var IE8_DOM_DEFINE = __webpack_require__(59);
|
||
var gOPD = Object.getOwnPropertyDescriptor;
|
||
|
||
exports.f = __webpack_require__(7) ? gOPD : function getOwnPropertyDescriptor(O, P) {
|
||
O = toIObject(O);
|
||
P = toPrimitive(P, true);
|
||
if (IE8_DOM_DEFINE) try {
|
||
return gOPD(O, P);
|
||
} catch (e) { /* empty */ }
|
||
if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 76 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
module.exports = __webpack_require__(77);
|
||
|
||
|
||
/***/ }),
|
||
/* 77 */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_createForm__ = __webpack_require__(55);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_createDOMForm__ = __webpack_require__(206);
|
||
/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "createDOMForm", function() { return __WEBPACK_IMPORTED_MODULE_1__src_createDOMForm__["a"]; });
|
||
/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "createForm", function() { return __WEBPACK_IMPORTED_MODULE_0__src_createForm__["a"]; });
|
||
// export this package's api
|
||
|
||
|
||
if (typeof window !== 'undefined') {
|
||
window.RCForm = { createDOMForm: __WEBPACK_IMPORTED_MODULE_1__src_createDOMForm__["a" /* default */], createForm: __WEBPACK_IMPORTED_MODULE_0__src_createForm__["a" /* default */] };
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
/* 78 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
exports.__esModule = true;
|
||
|
||
exports.default = function (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;
|
||
};
|
||
|
||
/***/ }),
|
||
/* 79 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
__webpack_require__(80);
|
||
var $Object = __webpack_require__(2).Object;
|
||
module.exports = function defineProperty(it, key, desc) {
|
||
return $Object.defineProperty(it, key, desc);
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 80 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var $export = __webpack_require__(8);
|
||
// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
|
||
$export($export.S + $export.F * !__webpack_require__(7), 'Object', { defineProperty: __webpack_require__(6).f });
|
||
|
||
|
||
/***/ }),
|
||
/* 81 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = function (it) {
|
||
if (typeof it != 'function') throw TypeError(it + ' is not a function!');
|
||
return it;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 82 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
module.exports = { "default": __webpack_require__(83), __esModule: true };
|
||
|
||
/***/ }),
|
||
/* 83 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
__webpack_require__(84);
|
||
module.exports = __webpack_require__(2).Object.assign;
|
||
|
||
|
||
/***/ }),
|
||
/* 84 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// 19.1.3.1 Object.assign(target, source)
|
||
var $export = __webpack_require__(8);
|
||
|
||
$export($export.S + $export.F, 'Object', { assign: __webpack_require__(85) });
|
||
|
||
|
||
/***/ }),
|
||
/* 85 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
// 19.1.2.1 Object.assign(target, source, ...)
|
||
var DESCRIPTORS = __webpack_require__(7);
|
||
var getKeys = __webpack_require__(18);
|
||
var gOPS = __webpack_require__(37);
|
||
var pIE = __webpack_require__(21);
|
||
var toObject = __webpack_require__(22);
|
||
var IObject = __webpack_require__(62);
|
||
var $assign = Object.assign;
|
||
|
||
// should work with symbols and should have deterministic property order (V8 bug)
|
||
module.exports = !$assign || __webpack_require__(14)(function () {
|
||
var A = {};
|
||
var B = {};
|
||
// eslint-disable-next-line no-undef
|
||
var S = Symbol();
|
||
var K = 'abcdefghijklmnopqrst';
|
||
A[S] = 7;
|
||
K.split('').forEach(function (k) { B[k] = k; });
|
||
return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
|
||
}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
|
||
var T = toObject(target);
|
||
var aLen = arguments.length;
|
||
var index = 1;
|
||
var getSymbols = gOPS.f;
|
||
var isEnum = pIE.f;
|
||
while (aLen > index) {
|
||
var S = IObject(arguments[index++]);
|
||
var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
|
||
var length = keys.length;
|
||
var j = 0;
|
||
var key;
|
||
while (length > j) {
|
||
key = keys[j++];
|
||
if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];
|
||
}
|
||
} return T;
|
||
} : $assign;
|
||
|
||
|
||
/***/ }),
|
||
/* 86 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// false -> Array#indexOf
|
||
// true -> Array#includes
|
||
var toIObject = __webpack_require__(13);
|
||
var toLength = __webpack_require__(63);
|
||
var toAbsoluteIndex = __webpack_require__(87);
|
||
module.exports = function (IS_INCLUDES) {
|
||
return function ($this, el, fromIndex) {
|
||
var O = toIObject($this);
|
||
var length = toLength(O.length);
|
||
var index = toAbsoluteIndex(fromIndex, length);
|
||
var value;
|
||
// Array#includes uses SameValueZero equality algorithm
|
||
// eslint-disable-next-line no-self-compare
|
||
if (IS_INCLUDES && el != el) while (length > index) {
|
||
value = O[index++];
|
||
// eslint-disable-next-line no-self-compare
|
||
if (value != value) return true;
|
||
// Array#indexOf ignores holes, Array#includes - not
|
||
} else for (;length > index; index++) if (IS_INCLUDES || index in O) {
|
||
if (O[index] === el) return IS_INCLUDES || index || 0;
|
||
} return !IS_INCLUDES && -1;
|
||
};
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 87 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var toInteger = __webpack_require__(33);
|
||
var max = Math.max;
|
||
var min = Math.min;
|
||
module.exports = function (index, length) {
|
||
index = toInteger(index);
|
||
return index < 0 ? max(index + length, 0) : min(index, length);
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 88 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
exports.__esModule = true;
|
||
|
||
var _from = __webpack_require__(89);
|
||
|
||
var _from2 = _interopRequireDefault(_from);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
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 (0, _from2.default)(arr);
|
||
}
|
||
};
|
||
|
||
/***/ }),
|
||
/* 89 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
module.exports = { "default": __webpack_require__(90), __esModule: true };
|
||
|
||
/***/ }),
|
||
/* 90 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
__webpack_require__(64);
|
||
__webpack_require__(96);
|
||
module.exports = __webpack_require__(2).Array.from;
|
||
|
||
|
||
/***/ }),
|
||
/* 91 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var toInteger = __webpack_require__(33);
|
||
var defined = __webpack_require__(32);
|
||
// true -> String#at
|
||
// false -> String#codePointAt
|
||
module.exports = function (TO_STRING) {
|
||
return function (that, pos) {
|
||
var s = String(defined(that));
|
||
var i = toInteger(pos);
|
||
var l = s.length;
|
||
var 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;
|
||
};
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 92 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
var create = __webpack_require__(38);
|
||
var descriptor = __webpack_require__(15);
|
||
var setToStringTag = __webpack_require__(39);
|
||
var IteratorPrototype = {};
|
||
|
||
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
|
||
__webpack_require__(10)(IteratorPrototype, __webpack_require__(3)('iterator'), function () { return this; });
|
||
|
||
module.exports = function (Constructor, NAME, next) {
|
||
Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
|
||
setToStringTag(Constructor, NAME + ' Iterator');
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 93 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var dP = __webpack_require__(6);
|
||
var anObject = __webpack_require__(11);
|
||
var getKeys = __webpack_require__(18);
|
||
|
||
module.exports = __webpack_require__(7) ? Object.defineProperties : function defineProperties(O, Properties) {
|
||
anObject(O);
|
||
var keys = getKeys(Properties);
|
||
var length = keys.length;
|
||
var i = 0;
|
||
var P;
|
||
while (length > i) dP.f(O, P = keys[i++], Properties[P]);
|
||
return O;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 94 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var document = __webpack_require__(5).document;
|
||
module.exports = document && document.documentElement;
|
||
|
||
|
||
/***/ }),
|
||
/* 95 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
|
||
var has = __webpack_require__(9);
|
||
var toObject = __webpack_require__(22);
|
||
var IE_PROTO = __webpack_require__(34)('IE_PROTO');
|
||
var ObjectProto = Object.prototype;
|
||
|
||
module.exports = Object.getPrototypeOf || function (O) {
|
||
O = toObject(O);
|
||
if (has(O, IE_PROTO)) return O[IE_PROTO];
|
||
if (typeof O.constructor == 'function' && O instanceof O.constructor) {
|
||
return O.constructor.prototype;
|
||
} return O instanceof Object ? ObjectProto : null;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 96 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
var ctx = __webpack_require__(29);
|
||
var $export = __webpack_require__(8);
|
||
var toObject = __webpack_require__(22);
|
||
var call = __webpack_require__(97);
|
||
var isArrayIter = __webpack_require__(98);
|
||
var toLength = __webpack_require__(63);
|
||
var createProperty = __webpack_require__(99);
|
||
var getIterFn = __webpack_require__(100);
|
||
|
||
$export($export.S + $export.F * !__webpack_require__(102)(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);
|
||
var C = typeof this == 'function' ? this : Array;
|
||
var aLen = arguments.length;
|
||
var mapfn = aLen > 1 ? arguments[1] : undefined;
|
||
var mapping = mapfn !== undefined;
|
||
var index = 0;
|
||
var iterFn = getIterFn(O);
|
||
var length, result, step, iterator;
|
||
if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[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++) {
|
||
createProperty(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++) {
|
||
createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
|
||
}
|
||
}
|
||
result.length = index;
|
||
return result;
|
||
}
|
||
});
|
||
|
||
|
||
/***/ }),
|
||
/* 97 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// call something on iterator step with safe closing on error
|
||
var anObject = __webpack_require__(11);
|
||
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;
|
||
}
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 98 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// check on default Array iterator
|
||
var Iterators = __webpack_require__(17);
|
||
var ITERATOR = __webpack_require__(3)('iterator');
|
||
var ArrayProto = Array.prototype;
|
||
|
||
module.exports = function (it) {
|
||
return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 99 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
var $defineProperty = __webpack_require__(6);
|
||
var createDesc = __webpack_require__(15);
|
||
|
||
module.exports = function (object, index, value) {
|
||
if (index in object) $defineProperty.f(object, index, createDesc(0, value));
|
||
else object[index] = value;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 100 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var classof = __webpack_require__(101);
|
||
var ITERATOR = __webpack_require__(3)('iterator');
|
||
var Iterators = __webpack_require__(17);
|
||
module.exports = __webpack_require__(2).getIteratorMethod = function (it) {
|
||
if (it != undefined) return it[ITERATOR]
|
||
|| it['@@iterator']
|
||
|| Iterators[classof(it)];
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 101 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// getting tag from 19.1.3.6 Object.prototype.toString()
|
||
var cof = __webpack_require__(31);
|
||
var TAG = __webpack_require__(3)('toStringTag');
|
||
// ES3 wrong here
|
||
var ARG = cof(function () { return arguments; }()) == 'Arguments';
|
||
|
||
// fallback for IE11 Script Access Denied error
|
||
var tryGet = function (it, key) {
|
||
try {
|
||
return it[key];
|
||
} catch (e) { /* empty */ }
|
||
};
|
||
|
||
module.exports = function (it) {
|
||
var O, T, B;
|
||
return it === undefined ? 'Undefined' : it === null ? 'Null'
|
||
// @@toStringTag case
|
||
: typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
|
||
// builtinTag case
|
||
: ARG ? cof(O)
|
||
// ES3 arguments fallback
|
||
: (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 102 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var ITERATOR = __webpack_require__(3)('iterator');
|
||
var SAFE_CLOSING = false;
|
||
|
||
try {
|
||
var riter = [7][ITERATOR]();
|
||
riter['return'] = function () { SAFE_CLOSING = true; };
|
||
// eslint-disable-next-line no-throw-literal
|
||
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];
|
||
var iter = arr[ITERATOR]();
|
||
iter.next = function () { return { done: safe = true }; };
|
||
arr[ITERATOR] = function () { return iter; };
|
||
exec(arr);
|
||
} catch (e) { /* empty */ }
|
||
return safe;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 103 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/**
|
||
* Copyright (c) 2013-present, Facebook, Inc.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*
|
||
*/
|
||
|
||
|
||
|
||
var React = __webpack_require__(23);
|
||
var factory = __webpack_require__(104);
|
||
|
||
if (typeof React === 'undefined') {
|
||
throw Error(
|
||
'create-react-class could not find the React object. If you are using script tags, ' +
|
||
'make sure that React is being loaded before create-react-class.'
|
||
);
|
||
}
|
||
|
||
// Hack to grab NoopUpdateQueue from isomorphic React
|
||
var ReactNoopUpdateQueue = new React.Component().updater;
|
||
|
||
module.exports = factory(
|
||
React.Component,
|
||
React.isValidElement,
|
||
ReactNoopUpdateQueue
|
||
);
|
||
|
||
|
||
/***/ }),
|
||
/* 104 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* WEBPACK VAR INJECTION */(function(process) {/**
|
||
* Copyright (c) 2013-present, Facebook, Inc.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*
|
||
*/
|
||
|
||
|
||
|
||
var _assign = __webpack_require__(67);
|
||
|
||
// -- Inlined from fbjs --
|
||
|
||
var emptyObject = {};
|
||
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
Object.freeze(emptyObject);
|
||
}
|
||
|
||
var validateFormat = function validateFormat(format) {};
|
||
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
validateFormat = function validateFormat(format) {
|
||
if (format === undefined) {
|
||
throw new Error('invariant requires an error message argument');
|
||
}
|
||
};
|
||
}
|
||
|
||
function _invariant(condition, format, a, b, c, d, e, f) {
|
||
validateFormat(format);
|
||
|
||
if (!condition) {
|
||
var error;
|
||
if (format === undefined) {
|
||
error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
|
||
} else {
|
||
var args = [a, b, c, d, e, f];
|
||
var argIndex = 0;
|
||
error = new Error(format.replace(/%s/g, function () {
|
||
return args[argIndex++];
|
||
}));
|
||
error.name = 'Invariant Violation';
|
||
}
|
||
|
||
error.framesToPop = 1; // we don't care about invariant's own frame
|
||
throw error;
|
||
}
|
||
}
|
||
|
||
var warning = function(){};
|
||
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
var printWarning = function printWarning(format) {
|
||
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||
args[_key - 1] = arguments[_key];
|
||
}
|
||
|
||
var argIndex = 0;
|
||
var message = 'Warning: ' + format.replace(/%s/g, function () {
|
||
return args[argIndex++];
|
||
});
|
||
if (typeof console !== 'undefined') {
|
||
console.error(message);
|
||
}
|
||
try {
|
||
// --- Welcome to debugging React ---
|
||
// This error was thrown as a convenience so that you can use this stack
|
||
// to find the callsite that caused this warning to fire.
|
||
throw new Error(message);
|
||
} catch (x) {}
|
||
};
|
||
|
||
warning = function warning(condition, format) {
|
||
if (format === undefined) {
|
||
throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
|
||
}
|
||
|
||
if (format.indexOf('Failed Composite propType: ') === 0) {
|
||
return; // Ignore CompositeComponent proptype check.
|
||
}
|
||
|
||
if (!condition) {
|
||
for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
|
||
args[_key2 - 2] = arguments[_key2];
|
||
}
|
||
|
||
printWarning.apply(undefined, [format].concat(args));
|
||
}
|
||
};
|
||
}
|
||
|
||
// /-- Inlined from fbjs --
|
||
|
||
var MIXINS_KEY = 'mixins';
|
||
|
||
// Helper function to allow the creation of anonymous functions which do not
|
||
// have .name set to the name of the variable being assigned to.
|
||
function identity(fn) {
|
||
return fn;
|
||
}
|
||
|
||
var ReactPropTypeLocationNames;
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
ReactPropTypeLocationNames = {
|
||
prop: 'prop',
|
||
context: 'context',
|
||
childContext: 'child context'
|
||
};
|
||
} else {
|
||
ReactPropTypeLocationNames = {};
|
||
}
|
||
|
||
function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {
|
||
/**
|
||
* Policies that describe methods in `ReactClassInterface`.
|
||
*/
|
||
|
||
var injectedMixins = [];
|
||
|
||
/**
|
||
* Composite components are higher-level components that compose other composite
|
||
* or host components.
|
||
*
|
||
* To create a new type of `ReactClass`, pass a specification of
|
||
* your new class to `React.createClass`. The only requirement of your class
|
||
* specification is that you implement a `render` method.
|
||
*
|
||
* var MyComponent = React.createClass({
|
||
* render: function() {
|
||
* return <div>Hello World</div>;
|
||
* }
|
||
* });
|
||
*
|
||
* The class specification supports a specific protocol of methods that have
|
||
* special meaning (e.g. `render`). See `ReactClassInterface` for
|
||
* more the comprehensive protocol. Any other properties and methods in the
|
||
* class specification will be available on the prototype.
|
||
*
|
||
* @interface ReactClassInterface
|
||
* @internal
|
||
*/
|
||
var ReactClassInterface = {
|
||
/**
|
||
* An array of Mixin objects to include when defining your component.
|
||
*
|
||
* @type {array}
|
||
* @optional
|
||
*/
|
||
mixins: 'DEFINE_MANY',
|
||
|
||
/**
|
||
* An object containing properties and methods that should be defined on
|
||
* the component's constructor instead of its prototype (static methods).
|
||
*
|
||
* @type {object}
|
||
* @optional
|
||
*/
|
||
statics: 'DEFINE_MANY',
|
||
|
||
/**
|
||
* Definition of prop types for this component.
|
||
*
|
||
* @type {object}
|
||
* @optional
|
||
*/
|
||
propTypes: 'DEFINE_MANY',
|
||
|
||
/**
|
||
* Definition of context types for this component.
|
||
*
|
||
* @type {object}
|
||
* @optional
|
||
*/
|
||
contextTypes: 'DEFINE_MANY',
|
||
|
||
/**
|
||
* Definition of context types this component sets for its children.
|
||
*
|
||
* @type {object}
|
||
* @optional
|
||
*/
|
||
childContextTypes: 'DEFINE_MANY',
|
||
|
||
// ==== Definition methods ====
|
||
|
||
/**
|
||
* Invoked when the component is mounted. Values in the mapping will be set on
|
||
* `this.props` if that prop is not specified (i.e. using an `in` check).
|
||
*
|
||
* This method is invoked before `getInitialState` and therefore cannot rely
|
||
* on `this.state` or use `this.setState`.
|
||
*
|
||
* @return {object}
|
||
* @optional
|
||
*/
|
||
getDefaultProps: 'DEFINE_MANY_MERGED',
|
||
|
||
/**
|
||
* Invoked once before the component is mounted. The return value will be used
|
||
* as the initial value of `this.state`.
|
||
*
|
||
* getInitialState: function() {
|
||
* return {
|
||
* isOn: false,
|
||
* fooBaz: new BazFoo()
|
||
* }
|
||
* }
|
||
*
|
||
* @return {object}
|
||
* @optional
|
||
*/
|
||
getInitialState: 'DEFINE_MANY_MERGED',
|
||
|
||
/**
|
||
* @return {object}
|
||
* @optional
|
||
*/
|
||
getChildContext: 'DEFINE_MANY_MERGED',
|
||
|
||
/**
|
||
* Uses props from `this.props` and state from `this.state` to render the
|
||
* structure of the component.
|
||
*
|
||
* No guarantees are made about when or how often this method is invoked, so
|
||
* it must not have side effects.
|
||
*
|
||
* render: function() {
|
||
* var name = this.props.name;
|
||
* return <div>Hello, {name}!</div>;
|
||
* }
|
||
*
|
||
* @return {ReactComponent}
|
||
* @required
|
||
*/
|
||
render: 'DEFINE_ONCE',
|
||
|
||
// ==== Delegate methods ====
|
||
|
||
/**
|
||
* Invoked when the component is initially created and about to be mounted.
|
||
* This may have side effects, but any external subscriptions or data created
|
||
* by this method must be cleaned up in `componentWillUnmount`.
|
||
*
|
||
* @optional
|
||
*/
|
||
componentWillMount: 'DEFINE_MANY',
|
||
|
||
/**
|
||
* Invoked when the component has been mounted and has a DOM representation.
|
||
* However, there is no guarantee that the DOM node is in the document.
|
||
*
|
||
* Use this as an opportunity to operate on the DOM when the component has
|
||
* been mounted (initialized and rendered) for the first time.
|
||
*
|
||
* @param {DOMElement} rootNode DOM element representing the component.
|
||
* @optional
|
||
*/
|
||
componentDidMount: 'DEFINE_MANY',
|
||
|
||
/**
|
||
* Invoked before the component receives new props.
|
||
*
|
||
* Use this as an opportunity to react to a prop transition by updating the
|
||
* state using `this.setState`. Current props are accessed via `this.props`.
|
||
*
|
||
* componentWillReceiveProps: function(nextProps, nextContext) {
|
||
* this.setState({
|
||
* likesIncreasing: nextProps.likeCount > this.props.likeCount
|
||
* });
|
||
* }
|
||
*
|
||
* NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop
|
||
* transition may cause a state change, but the opposite is not true. If you
|
||
* need it, you are probably looking for `componentWillUpdate`.
|
||
*
|
||
* @param {object} nextProps
|
||
* @optional
|
||
*/
|
||
componentWillReceiveProps: 'DEFINE_MANY',
|
||
|
||
/**
|
||
* Invoked while deciding if the component should be updated as a result of
|
||
* receiving new props, state and/or context.
|
||
*
|
||
* Use this as an opportunity to `return false` when you're certain that the
|
||
* transition to the new props/state/context will not require a component
|
||
* update.
|
||
*
|
||
* shouldComponentUpdate: function(nextProps, nextState, nextContext) {
|
||
* return !equal(nextProps, this.props) ||
|
||
* !equal(nextState, this.state) ||
|
||
* !equal(nextContext, this.context);
|
||
* }
|
||
*
|
||
* @param {object} nextProps
|
||
* @param {?object} nextState
|
||
* @param {?object} nextContext
|
||
* @return {boolean} True if the component should update.
|
||
* @optional
|
||
*/
|
||
shouldComponentUpdate: 'DEFINE_ONCE',
|
||
|
||
/**
|
||
* Invoked when the component is about to update due to a transition from
|
||
* `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`
|
||
* and `nextContext`.
|
||
*
|
||
* Use this as an opportunity to perform preparation before an update occurs.
|
||
*
|
||
* NOTE: You **cannot** use `this.setState()` in this method.
|
||
*
|
||
* @param {object} nextProps
|
||
* @param {?object} nextState
|
||
* @param {?object} nextContext
|
||
* @param {ReactReconcileTransaction} transaction
|
||
* @optional
|
||
*/
|
||
componentWillUpdate: 'DEFINE_MANY',
|
||
|
||
/**
|
||
* Invoked when the component's DOM representation has been updated.
|
||
*
|
||
* Use this as an opportunity to operate on the DOM when the component has
|
||
* been updated.
|
||
*
|
||
* @param {object} prevProps
|
||
* @param {?object} prevState
|
||
* @param {?object} prevContext
|
||
* @param {DOMElement} rootNode DOM element representing the component.
|
||
* @optional
|
||
*/
|
||
componentDidUpdate: 'DEFINE_MANY',
|
||
|
||
/**
|
||
* Invoked when the component is about to be removed from its parent and have
|
||
* its DOM representation destroyed.
|
||
*
|
||
* Use this as an opportunity to deallocate any external resources.
|
||
*
|
||
* NOTE: There is no `componentDidUnmount` since your component will have been
|
||
* destroyed by that point.
|
||
*
|
||
* @optional
|
||
*/
|
||
componentWillUnmount: 'DEFINE_MANY',
|
||
|
||
/**
|
||
* Replacement for (deprecated) `componentWillMount`.
|
||
*
|
||
* @optional
|
||
*/
|
||
UNSAFE_componentWillMount: 'DEFINE_MANY',
|
||
|
||
/**
|
||
* Replacement for (deprecated) `componentWillReceiveProps`.
|
||
*
|
||
* @optional
|
||
*/
|
||
UNSAFE_componentWillReceiveProps: 'DEFINE_MANY',
|
||
|
||
/**
|
||
* Replacement for (deprecated) `componentWillUpdate`.
|
||
*
|
||
* @optional
|
||
*/
|
||
UNSAFE_componentWillUpdate: 'DEFINE_MANY',
|
||
|
||
// ==== Advanced methods ====
|
||
|
||
/**
|
||
* Updates the component's currently mounted DOM representation.
|
||
*
|
||
* By default, this implements React's rendering and reconciliation algorithm.
|
||
* Sophisticated clients may wish to override this.
|
||
*
|
||
* @param {ReactReconcileTransaction} transaction
|
||
* @internal
|
||
* @overridable
|
||
*/
|
||
updateComponent: 'OVERRIDE_BASE'
|
||
};
|
||
|
||
/**
|
||
* Similar to ReactClassInterface but for static methods.
|
||
*/
|
||
var ReactClassStaticInterface = {
|
||
/**
|
||
* This method is invoked after a component is instantiated and when it
|
||
* receives new props. Return an object to update state in response to
|
||
* prop changes. Return null to indicate no change to state.
|
||
*
|
||
* If an object is returned, its keys will be merged into the existing state.
|
||
*
|
||
* @return {object || null}
|
||
* @optional
|
||
*/
|
||
getDerivedStateFromProps: 'DEFINE_MANY_MERGED'
|
||
};
|
||
|
||
/**
|
||
* Mapping from class specification keys to special processing functions.
|
||
*
|
||
* Although these are declared like instance properties in the specification
|
||
* when defining classes using `React.createClass`, they are actually static
|
||
* and are accessible on the constructor instead of the prototype. Despite
|
||
* being static, they must be defined outside of the "statics" key under
|
||
* which all other static methods are defined.
|
||
*/
|
||
var RESERVED_SPEC_KEYS = {
|
||
displayName: function(Constructor, displayName) {
|
||
Constructor.displayName = displayName;
|
||
},
|
||
mixins: function(Constructor, mixins) {
|
||
if (mixins) {
|
||
for (var i = 0; i < mixins.length; i++) {
|
||
mixSpecIntoComponent(Constructor, mixins[i]);
|
||
}
|
||
}
|
||
},
|
||
childContextTypes: function(Constructor, childContextTypes) {
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
validateTypeDef(Constructor, childContextTypes, 'childContext');
|
||
}
|
||
Constructor.childContextTypes = _assign(
|
||
{},
|
||
Constructor.childContextTypes,
|
||
childContextTypes
|
||
);
|
||
},
|
||
contextTypes: function(Constructor, contextTypes) {
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
validateTypeDef(Constructor, contextTypes, 'context');
|
||
}
|
||
Constructor.contextTypes = _assign(
|
||
{},
|
||
Constructor.contextTypes,
|
||
contextTypes
|
||
);
|
||
},
|
||
/**
|
||
* Special case getDefaultProps which should move into statics but requires
|
||
* automatic merging.
|
||
*/
|
||
getDefaultProps: function(Constructor, getDefaultProps) {
|
||
if (Constructor.getDefaultProps) {
|
||
Constructor.getDefaultProps = createMergedResultFunction(
|
||
Constructor.getDefaultProps,
|
||
getDefaultProps
|
||
);
|
||
} else {
|
||
Constructor.getDefaultProps = getDefaultProps;
|
||
}
|
||
},
|
||
propTypes: function(Constructor, propTypes) {
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
validateTypeDef(Constructor, propTypes, 'prop');
|
||
}
|
||
Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);
|
||
},
|
||
statics: function(Constructor, statics) {
|
||
mixStaticSpecIntoComponent(Constructor, statics);
|
||
},
|
||
autobind: function() {}
|
||
};
|
||
|
||
function validateTypeDef(Constructor, typeDef, location) {
|
||
for (var propName in typeDef) {
|
||
if (typeDef.hasOwnProperty(propName)) {
|
||
// use a warning instead of an _invariant so components
|
||
// don't show up in prod but only in __DEV__
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
warning(
|
||
typeof typeDef[propName] === 'function',
|
||
'%s: %s type `%s` is invalid; it must be a function, usually from ' +
|
||
'React.PropTypes.',
|
||
Constructor.displayName || 'ReactClass',
|
||
ReactPropTypeLocationNames[location],
|
||
propName
|
||
);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
function validateMethodOverride(isAlreadyDefined, name) {
|
||
var specPolicy = ReactClassInterface.hasOwnProperty(name)
|
||
? ReactClassInterface[name]
|
||
: null;
|
||
|
||
// Disallow overriding of base class methods unless explicitly allowed.
|
||
if (ReactClassMixin.hasOwnProperty(name)) {
|
||
_invariant(
|
||
specPolicy === 'OVERRIDE_BASE',
|
||
'ReactClassInterface: You are attempting to override ' +
|
||
'`%s` from your class specification. Ensure that your method names ' +
|
||
'do not overlap with React methods.',
|
||
name
|
||
);
|
||
}
|
||
|
||
// Disallow defining methods more than once unless explicitly allowed.
|
||
if (isAlreadyDefined) {
|
||
_invariant(
|
||
specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',
|
||
'ReactClassInterface: You are attempting to define ' +
|
||
'`%s` on your component more than once. This conflict may be due ' +
|
||
'to a mixin.',
|
||
name
|
||
);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Mixin helper which handles policy validation and reserved
|
||
* specification keys when building React classes.
|
||
*/
|
||
function mixSpecIntoComponent(Constructor, spec) {
|
||
if (!spec) {
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
var typeofSpec = typeof spec;
|
||
var isMixinValid = typeofSpec === 'object' && spec !== null;
|
||
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
warning(
|
||
isMixinValid,
|
||
"%s: You're attempting to include a mixin that is either null " +
|
||
'or not an object. Check the mixins included by the component, ' +
|
||
'as well as any mixins they include themselves. ' +
|
||
'Expected object but got %s.',
|
||
Constructor.displayName || 'ReactClass',
|
||
spec === null ? null : typeofSpec
|
||
);
|
||
}
|
||
}
|
||
|
||
return;
|
||
}
|
||
|
||
_invariant(
|
||
typeof spec !== 'function',
|
||
"ReactClass: You're attempting to " +
|
||
'use a component class or function as a mixin. Instead, just use a ' +
|
||
'regular object.'
|
||
);
|
||
_invariant(
|
||
!isValidElement(spec),
|
||
"ReactClass: You're attempting to " +
|
||
'use a component as a mixin. Instead, just use a regular object.'
|
||
);
|
||
|
||
var proto = Constructor.prototype;
|
||
var autoBindPairs = proto.__reactAutoBindPairs;
|
||
|
||
// By handling mixins before any other properties, we ensure the same
|
||
// chaining order is applied to methods with DEFINE_MANY policy, whether
|
||
// mixins are listed before or after these methods in the spec.
|
||
if (spec.hasOwnProperty(MIXINS_KEY)) {
|
||
RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);
|
||
}
|
||
|
||
for (var name in spec) {
|
||
if (!spec.hasOwnProperty(name)) {
|
||
continue;
|
||
}
|
||
|
||
if (name === MIXINS_KEY) {
|
||
// We have already handled mixins in a special case above.
|
||
continue;
|
||
}
|
||
|
||
var property = spec[name];
|
||
var isAlreadyDefined = proto.hasOwnProperty(name);
|
||
validateMethodOverride(isAlreadyDefined, name);
|
||
|
||
if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {
|
||
RESERVED_SPEC_KEYS[name](Constructor, property);
|
||
} else {
|
||
// Setup methods on prototype:
|
||
// The following member methods should not be automatically bound:
|
||
// 1. Expected ReactClass methods (in the "interface").
|
||
// 2. Overridden methods (that were mixed in).
|
||
var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);
|
||
var isFunction = typeof property === 'function';
|
||
var shouldAutoBind =
|
||
isFunction &&
|
||
!isReactClassMethod &&
|
||
!isAlreadyDefined &&
|
||
spec.autobind !== false;
|
||
|
||
if (shouldAutoBind) {
|
||
autoBindPairs.push(name, property);
|
||
proto[name] = property;
|
||
} else {
|
||
if (isAlreadyDefined) {
|
||
var specPolicy = ReactClassInterface[name];
|
||
|
||
// These cases should already be caught by validateMethodOverride.
|
||
_invariant(
|
||
isReactClassMethod &&
|
||
(specPolicy === 'DEFINE_MANY_MERGED' ||
|
||
specPolicy === 'DEFINE_MANY'),
|
||
'ReactClass: Unexpected spec policy %s for key %s ' +
|
||
'when mixing in component specs.',
|
||
specPolicy,
|
||
name
|
||
);
|
||
|
||
// For methods which are defined more than once, call the existing
|
||
// methods before calling the new property, merging if appropriate.
|
||
if (specPolicy === 'DEFINE_MANY_MERGED') {
|
||
proto[name] = createMergedResultFunction(proto[name], property);
|
||
} else if (specPolicy === 'DEFINE_MANY') {
|
||
proto[name] = createChainedFunction(proto[name], property);
|
||
}
|
||
} else {
|
||
proto[name] = property;
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
// Add verbose displayName to the function, which helps when looking
|
||
// at profiling tools.
|
||
if (typeof property === 'function' && spec.displayName) {
|
||
proto[name].displayName = spec.displayName + '_' + name;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
function mixStaticSpecIntoComponent(Constructor, statics) {
|
||
if (!statics) {
|
||
return;
|
||
}
|
||
|
||
for (var name in statics) {
|
||
var property = statics[name];
|
||
if (!statics.hasOwnProperty(name)) {
|
||
continue;
|
||
}
|
||
|
||
var isReserved = name in RESERVED_SPEC_KEYS;
|
||
_invariant(
|
||
!isReserved,
|
||
'ReactClass: You are attempting to define a reserved ' +
|
||
'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' +
|
||
'as an instance property instead; it will still be accessible on the ' +
|
||
'constructor.',
|
||
name
|
||
);
|
||
|
||
var isAlreadyDefined = name in Constructor;
|
||
if (isAlreadyDefined) {
|
||
var specPolicy = ReactClassStaticInterface.hasOwnProperty(name)
|
||
? ReactClassStaticInterface[name]
|
||
: null;
|
||
|
||
_invariant(
|
||
specPolicy === 'DEFINE_MANY_MERGED',
|
||
'ReactClass: You are attempting to define ' +
|
||
'`%s` on your component more than once. This conflict may be ' +
|
||
'due to a mixin.',
|
||
name
|
||
);
|
||
|
||
Constructor[name] = createMergedResultFunction(Constructor[name], property);
|
||
|
||
return;
|
||
}
|
||
|
||
Constructor[name] = property;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Merge two objects, but throw if both contain the same key.
|
||
*
|
||
* @param {object} one The first object, which is mutated.
|
||
* @param {object} two The second object
|
||
* @return {object} one after it has been mutated to contain everything in two.
|
||
*/
|
||
function mergeIntoWithNoDuplicateKeys(one, two) {
|
||
_invariant(
|
||
one && two && typeof one === 'object' && typeof two === 'object',
|
||
'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'
|
||
);
|
||
|
||
for (var key in two) {
|
||
if (two.hasOwnProperty(key)) {
|
||
_invariant(
|
||
one[key] === undefined,
|
||
'mergeIntoWithNoDuplicateKeys(): ' +
|
||
'Tried to merge two objects with the same key: `%s`. This conflict ' +
|
||
'may be due to a mixin; in particular, this may be caused by two ' +
|
||
'getInitialState() or getDefaultProps() methods returning objects ' +
|
||
'with clashing keys.',
|
||
key
|
||
);
|
||
one[key] = two[key];
|
||
}
|
||
}
|
||
return one;
|
||
}
|
||
|
||
/**
|
||
* Creates a function that invokes two functions and merges their return values.
|
||
*
|
||
* @param {function} one Function to invoke first.
|
||
* @param {function} two Function to invoke second.
|
||
* @return {function} Function that invokes the two argument functions.
|
||
* @private
|
||
*/
|
||
function createMergedResultFunction(one, two) {
|
||
return function mergedResult() {
|
||
var a = one.apply(this, arguments);
|
||
var b = two.apply(this, arguments);
|
||
if (a == null) {
|
||
return b;
|
||
} else if (b == null) {
|
||
return a;
|
||
}
|
||
var c = {};
|
||
mergeIntoWithNoDuplicateKeys(c, a);
|
||
mergeIntoWithNoDuplicateKeys(c, b);
|
||
return c;
|
||
};
|
||
}
|
||
|
||
/**
|
||
* Creates a function that invokes two functions and ignores their return vales.
|
||
*
|
||
* @param {function} one Function to invoke first.
|
||
* @param {function} two Function to invoke second.
|
||
* @return {function} Function that invokes the two argument functions.
|
||
* @private
|
||
*/
|
||
function createChainedFunction(one, two) {
|
||
return function chainedFunction() {
|
||
one.apply(this, arguments);
|
||
two.apply(this, arguments);
|
||
};
|
||
}
|
||
|
||
/**
|
||
* Binds a method to the component.
|
||
*
|
||
* @param {object} component Component whose method is going to be bound.
|
||
* @param {function} method Method to be bound.
|
||
* @return {function} The bound method.
|
||
*/
|
||
function bindAutoBindMethod(component, method) {
|
||
var boundMethod = method.bind(component);
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
boundMethod.__reactBoundContext = component;
|
||
boundMethod.__reactBoundMethod = method;
|
||
boundMethod.__reactBoundArguments = null;
|
||
var componentName = component.constructor.displayName;
|
||
var _bind = boundMethod.bind;
|
||
boundMethod.bind = function(newThis) {
|
||
for (
|
||
var _len = arguments.length,
|
||
args = Array(_len > 1 ? _len - 1 : 0),
|
||
_key = 1;
|
||
_key < _len;
|
||
_key++
|
||
) {
|
||
args[_key - 1] = arguments[_key];
|
||
}
|
||
|
||
// User is trying to bind() an autobound method; we effectively will
|
||
// ignore the value of "this" that the user is trying to use, so
|
||
// let's warn.
|
||
if (newThis !== component && newThis !== null) {
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
warning(
|
||
false,
|
||
'bind(): React component methods may only be bound to the ' +
|
||
'component instance. See %s',
|
||
componentName
|
||
);
|
||
}
|
||
} else if (!args.length) {
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
warning(
|
||
false,
|
||
'bind(): You are binding a component method to the component. ' +
|
||
'React does this for you automatically in a high-performance ' +
|
||
'way, so you can safely remove this call. See %s',
|
||
componentName
|
||
);
|
||
}
|
||
return boundMethod;
|
||
}
|
||
var reboundMethod = _bind.apply(boundMethod, arguments);
|
||
reboundMethod.__reactBoundContext = component;
|
||
reboundMethod.__reactBoundMethod = method;
|
||
reboundMethod.__reactBoundArguments = args;
|
||
return reboundMethod;
|
||
};
|
||
}
|
||
return boundMethod;
|
||
}
|
||
|
||
/**
|
||
* Binds all auto-bound methods in a component.
|
||
*
|
||
* @param {object} component Component whose method is going to be bound.
|
||
*/
|
||
function bindAutoBindMethods(component) {
|
||
var pairs = component.__reactAutoBindPairs;
|
||
for (var i = 0; i < pairs.length; i += 2) {
|
||
var autoBindKey = pairs[i];
|
||
var method = pairs[i + 1];
|
||
component[autoBindKey] = bindAutoBindMethod(component, method);
|
||
}
|
||
}
|
||
|
||
var IsMountedPreMixin = {
|
||
componentDidMount: function() {
|
||
this.__isMounted = true;
|
||
}
|
||
};
|
||
|
||
var IsMountedPostMixin = {
|
||
componentWillUnmount: function() {
|
||
this.__isMounted = false;
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Add more to the ReactClass base class. These are all legacy features and
|
||
* therefore not already part of the modern ReactComponent.
|
||
*/
|
||
var ReactClassMixin = {
|
||
/**
|
||
* TODO: This will be deprecated because state should always keep a consistent
|
||
* type signature and the only use case for this, is to avoid that.
|
||
*/
|
||
replaceState: function(newState, callback) {
|
||
this.updater.enqueueReplaceState(this, newState, callback);
|
||
},
|
||
|
||
/**
|
||
* Checks whether or not this composite component is mounted.
|
||
* @return {boolean} True if mounted, false otherwise.
|
||
* @protected
|
||
* @final
|
||
*/
|
||
isMounted: function() {
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
warning(
|
||
this.__didWarnIsMounted,
|
||
'%s: isMounted is deprecated. Instead, make sure to clean up ' +
|
||
'subscriptions and pending requests in componentWillUnmount to ' +
|
||
'prevent memory leaks.',
|
||
(this.constructor && this.constructor.displayName) ||
|
||
this.name ||
|
||
'Component'
|
||
);
|
||
this.__didWarnIsMounted = true;
|
||
}
|
||
return !!this.__isMounted;
|
||
}
|
||
};
|
||
|
||
var ReactClassComponent = function() {};
|
||
_assign(
|
||
ReactClassComponent.prototype,
|
||
ReactComponent.prototype,
|
||
ReactClassMixin
|
||
);
|
||
|
||
/**
|
||
* Creates a composite component class given a class specification.
|
||
* See https://facebook.github.io/react/docs/top-level-api.html#react.createclass
|
||
*
|
||
* @param {object} spec Class specification (which must define `render`).
|
||
* @return {function} Component constructor function.
|
||
* @public
|
||
*/
|
||
function createClass(spec) {
|
||
// To keep our warnings more understandable, we'll use a little hack here to
|
||
// ensure that Constructor.name !== 'Constructor'. This makes sure we don't
|
||
// unnecessarily identify a class without displayName as 'Constructor'.
|
||
var Constructor = identity(function(props, context, updater) {
|
||
// This constructor gets overridden by mocks. The argument is used
|
||
// by mocks to assert on what gets mounted.
|
||
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
warning(
|
||
this instanceof Constructor,
|
||
'Something is calling a React component directly. Use a factory or ' +
|
||
'JSX instead. See: https://fb.me/react-legacyfactory'
|
||
);
|
||
}
|
||
|
||
// Wire up auto-binding
|
||
if (this.__reactAutoBindPairs.length) {
|
||
bindAutoBindMethods(this);
|
||
}
|
||
|
||
this.props = props;
|
||
this.context = context;
|
||
this.refs = emptyObject;
|
||
this.updater = updater || ReactNoopUpdateQueue;
|
||
|
||
this.state = null;
|
||
|
||
// ReactClasses doesn't have constructors. Instead, they use the
|
||
// getInitialState and componentWillMount methods for initialization.
|
||
|
||
var initialState = this.getInitialState ? this.getInitialState() : null;
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
// We allow auto-mocks to proceed as if they're returning null.
|
||
if (
|
||
initialState === undefined &&
|
||
this.getInitialState._isMockFunction
|
||
) {
|
||
// This is probably bad practice. Consider warning here and
|
||
// deprecating this convenience.
|
||
initialState = null;
|
||
}
|
||
}
|
||
_invariant(
|
||
typeof initialState === 'object' && !Array.isArray(initialState),
|
||
'%s.getInitialState(): must return an object or null',
|
||
Constructor.displayName || 'ReactCompositeComponent'
|
||
);
|
||
|
||
this.state = initialState;
|
||
});
|
||
Constructor.prototype = new ReactClassComponent();
|
||
Constructor.prototype.constructor = Constructor;
|
||
Constructor.prototype.__reactAutoBindPairs = [];
|
||
|
||
injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));
|
||
|
||
mixSpecIntoComponent(Constructor, IsMountedPreMixin);
|
||
mixSpecIntoComponent(Constructor, spec);
|
||
mixSpecIntoComponent(Constructor, IsMountedPostMixin);
|
||
|
||
// Initialize the defaultProps property after all mixins have been merged.
|
||
if (Constructor.getDefaultProps) {
|
||
Constructor.defaultProps = Constructor.getDefaultProps();
|
||
}
|
||
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
// This is a tag to indicate that the use of these method names is ok,
|
||
// since it's used with createClass. If it's not, then it's likely a
|
||
// mistake so we'll warn you to use the static property, property
|
||
// initializer or constructor respectively.
|
||
if (Constructor.getDefaultProps) {
|
||
Constructor.getDefaultProps.isReactClassApproved = {};
|
||
}
|
||
if (Constructor.prototype.getInitialState) {
|
||
Constructor.prototype.getInitialState.isReactClassApproved = {};
|
||
}
|
||
}
|
||
|
||
_invariant(
|
||
Constructor.prototype.render,
|
||
'createClass(...): Class specification must implement a `render` method.'
|
||
);
|
||
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
warning(
|
||
!Constructor.prototype.componentShouldUpdate,
|
||
'%s has a method called ' +
|
||
'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +
|
||
'The name is phrased as a question because the function is ' +
|
||
'expected to return a value.',
|
||
spec.displayName || 'A component'
|
||
);
|
||
warning(
|
||
!Constructor.prototype.componentWillRecieveProps,
|
||
'%s has a method called ' +
|
||
'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',
|
||
spec.displayName || 'A component'
|
||
);
|
||
warning(
|
||
!Constructor.prototype.UNSAFE_componentWillRecieveProps,
|
||
'%s has a method called UNSAFE_componentWillRecieveProps(). ' +
|
||
'Did you mean UNSAFE_componentWillReceiveProps()?',
|
||
spec.displayName || 'A component'
|
||
);
|
||
}
|
||
|
||
// Reduce time spent doing lookups by setting these on the prototype.
|
||
for (var methodName in ReactClassInterface) {
|
||
if (!Constructor.prototype[methodName]) {
|
||
Constructor.prototype[methodName] = null;
|
||
}
|
||
}
|
||
|
||
return Constructor;
|
||
}
|
||
|
||
return createClass;
|
||
}
|
||
|
||
module.exports = factory;
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
|
||
|
||
/***/ }),
|
||
/* 105 */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(23);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);
|
||
|
||
|
||
var unsafeLifecyclesPolyfill = function unsafeLifecyclesPolyfill(Component) {
|
||
var prototype = Component.prototype;
|
||
|
||
if (!prototype || !prototype.isReactComponent) {
|
||
throw new Error('Can only polyfill class components');
|
||
} // only handle componentWillReceiveProps
|
||
|
||
|
||
if (typeof prototype.componentWillReceiveProps !== 'function') {
|
||
return Component;
|
||
} // In React 16.9, React.Profiler was introduced together with UNSAFE_componentWillReceiveProps
|
||
// https://reactjs.org/blog/2019/08/08/react-v16.9.0.html#performance-measurements-with-reactprofiler
|
||
|
||
|
||
if (!__WEBPACK_IMPORTED_MODULE_0_react___default.a.Profiler) {
|
||
return Component;
|
||
} // Here polyfill get started
|
||
|
||
|
||
prototype.UNSAFE_componentWillReceiveProps = prototype.componentWillReceiveProps;
|
||
delete prototype.componentWillReceiveProps;
|
||
return Component;
|
||
};
|
||
|
||
/* harmony default export */ __webpack_exports__["a"] = (unsafeLifecyclesPolyfill);
|
||
|
||
/***/ }),
|
||
/* 106 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
||
|
||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
var _validator = __webpack_require__(107);
|
||
|
||
var _validator2 = _interopRequireDefault(_validator);
|
||
|
||
var _messages2 = __webpack_require__(127);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
/**
|
||
* Encapsulates a validation schema.
|
||
*
|
||
* @param descriptor An object declaring validation rules
|
||
* for this schema.
|
||
*/
|
||
function Schema(descriptor) {
|
||
this.rules = null;
|
||
this._messages = _messages2.messages;
|
||
this.define(descriptor);
|
||
}
|
||
|
||
Schema.prototype = {
|
||
messages: function messages(_messages) {
|
||
if (_messages) {
|
||
this._messages = (0, _util.deepMerge)((0, _messages2.newMessages)(), _messages);
|
||
}
|
||
return this._messages;
|
||
},
|
||
define: function define(rules) {
|
||
if (!rules) {
|
||
throw new Error('Cannot configure a schema with no rules');
|
||
}
|
||
if ((typeof rules === 'undefined' ? 'undefined' : _typeof(rules)) !== 'object' || Array.isArray(rules)) {
|
||
throw new Error('Rules must be an object');
|
||
}
|
||
this.rules = {};
|
||
var z = void 0;
|
||
var item = void 0;
|
||
for (z in rules) {
|
||
if (rules.hasOwnProperty(z)) {
|
||
item = rules[z];
|
||
this.rules[z] = Array.isArray(item) ? item : [item];
|
||
}
|
||
}
|
||
},
|
||
validate: function validate(source_) {
|
||
var _this = this;
|
||
|
||
var o = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||
var oc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};
|
||
|
||
var source = source_;
|
||
var options = o;
|
||
var callback = oc;
|
||
if (typeof options === 'function') {
|
||
callback = options;
|
||
options = {};
|
||
}
|
||
if (!this.rules || Object.keys(this.rules).length === 0) {
|
||
if (callback) {
|
||
callback();
|
||
}
|
||
return Promise.resolve();
|
||
}
|
||
|
||
function complete(results) {
|
||
var i = void 0;
|
||
var errors = [];
|
||
var fields = {};
|
||
|
||
function add(e) {
|
||
if (Array.isArray(e)) {
|
||
var _errors;
|
||
|
||
errors = (_errors = errors).concat.apply(_errors, e);
|
||
} else {
|
||
errors.push(e);
|
||
}
|
||
}
|
||
|
||
for (i = 0; i < results.length; i++) {
|
||
add(results[i]);
|
||
}
|
||
if (!errors.length) {
|
||
errors = null;
|
||
fields = null;
|
||
} else {
|
||
fields = (0, _util.convertFieldsError)(errors);
|
||
}
|
||
callback(errors, fields);
|
||
}
|
||
|
||
if (options.messages) {
|
||
var messages = this.messages();
|
||
if (messages === _messages2.messages) {
|
||
messages = (0, _messages2.newMessages)();
|
||
}
|
||
(0, _util.deepMerge)(messages, options.messages);
|
||
options.messages = messages;
|
||
} else {
|
||
options.messages = this.messages();
|
||
}
|
||
var arr = void 0;
|
||
var value = void 0;
|
||
var series = {};
|
||
var keys = options.keys || Object.keys(this.rules);
|
||
keys.forEach(function (z) {
|
||
arr = _this.rules[z];
|
||
value = source[z];
|
||
arr.forEach(function (r) {
|
||
var rule = r;
|
||
if (typeof rule.transform === 'function') {
|
||
if (source === source_) {
|
||
source = _extends({}, source);
|
||
}
|
||
value = source[z] = rule.transform(value);
|
||
}
|
||
if (typeof rule === 'function') {
|
||
rule = {
|
||
validator: rule
|
||
};
|
||
} else {
|
||
rule = _extends({}, rule);
|
||
}
|
||
rule.validator = _this.getValidationMethod(rule);
|
||
rule.field = z;
|
||
rule.fullField = rule.fullField || z;
|
||
rule.type = _this.getType(rule);
|
||
if (!rule.validator) {
|
||
return;
|
||
}
|
||
series[z] = series[z] || [];
|
||
series[z].push({
|
||
rule: rule,
|
||
value: value,
|
||
source: source,
|
||
field: z
|
||
});
|
||
});
|
||
});
|
||
var errorFields = {};
|
||
return (0, _util.asyncMap)(series, options, function (data, doIt) {
|
||
var rule = data.rule;
|
||
var deep = (rule.type === 'object' || rule.type === 'array') && (_typeof(rule.fields) === 'object' || _typeof(rule.defaultField) === 'object');
|
||
deep = deep && (rule.required || !rule.required && data.value);
|
||
rule.field = data.field;
|
||
|
||
function addFullfield(key, schema) {
|
||
return _extends({}, schema, {
|
||
fullField: rule.fullField + '.' + key
|
||
});
|
||
}
|
||
|
||
function cb() {
|
||
var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
||
|
||
var errors = e;
|
||
if (!Array.isArray(errors)) {
|
||
errors = [errors];
|
||
}
|
||
if (!options.suppressWarning && errors.length) {
|
||
Schema.warning('async-validator:', errors);
|
||
}
|
||
if (errors.length && rule.message) {
|
||
errors = [].concat(rule.message);
|
||
}
|
||
|
||
errors = errors.map((0, _util.complementError)(rule));
|
||
|
||
if (options.first && errors.length) {
|
||
errorFields[rule.field] = 1;
|
||
return doIt(errors);
|
||
}
|
||
if (!deep) {
|
||
doIt(errors);
|
||
} else {
|
||
// if rule is required but the target object
|
||
// does not exist fail at the rule level and don't
|
||
// go deeper
|
||
if (rule.required && !data.value) {
|
||
if (rule.message) {
|
||
errors = [].concat(rule.message).map((0, _util.complementError)(rule));
|
||
} else if (options.error) {
|
||
errors = [options.error(rule, (0, _util.format)(options.messages.required, rule.field))];
|
||
} else {
|
||
errors = [];
|
||
}
|
||
return doIt(errors);
|
||
}
|
||
|
||
var fieldsSchema = {};
|
||
if (rule.defaultField) {
|
||
for (var k in data.value) {
|
||
if (data.value.hasOwnProperty(k)) {
|
||
fieldsSchema[k] = rule.defaultField;
|
||
}
|
||
}
|
||
}
|
||
fieldsSchema = _extends({}, fieldsSchema, data.rule.fields);
|
||
for (var f in fieldsSchema) {
|
||
if (fieldsSchema.hasOwnProperty(f)) {
|
||
var fieldSchema = Array.isArray(fieldsSchema[f]) ? fieldsSchema[f] : [fieldsSchema[f]];
|
||
fieldsSchema[f] = fieldSchema.map(addFullfield.bind(null, f));
|
||
}
|
||
}
|
||
var schema = new Schema(fieldsSchema);
|
||
schema.messages(options.messages);
|
||
if (data.rule.options) {
|
||
data.rule.options.messages = options.messages;
|
||
data.rule.options.error = options.error;
|
||
}
|
||
schema.validate(data.value, data.rule.options || options, function (errs) {
|
||
var finalErrors = [];
|
||
if (errors && errors.length) {
|
||
finalErrors.push.apply(finalErrors, errors);
|
||
}
|
||
if (errs && errs.length) {
|
||
finalErrors.push.apply(finalErrors, errs);
|
||
}
|
||
doIt(finalErrors.length ? finalErrors : null);
|
||
});
|
||
}
|
||
}
|
||
|
||
var res = void 0;
|
||
if (rule.asyncValidator) {
|
||
res = rule.asyncValidator(rule, data.value, cb, data.source, options);
|
||
} else if (rule.validator) {
|
||
res = rule.validator(rule, data.value, cb, data.source, options);
|
||
if (res === true) {
|
||
cb();
|
||
} else if (res === false) {
|
||
cb(rule.message || rule.field + ' fails');
|
||
} else if (res instanceof Array) {
|
||
cb(res);
|
||
} else if (res instanceof Error) {
|
||
cb(res.message);
|
||
}
|
||
}
|
||
if (res && res.then) {
|
||
res.then(function () {
|
||
return cb();
|
||
}, function (e) {
|
||
return cb(e);
|
||
});
|
||
}
|
||
}, function (results) {
|
||
complete(results);
|
||
});
|
||
},
|
||
getType: function getType(rule) {
|
||
if (rule.type === undefined && rule.pattern instanceof RegExp) {
|
||
rule.type = 'pattern';
|
||
}
|
||
if (typeof rule.validator !== 'function' && rule.type && !_validator2['default'].hasOwnProperty(rule.type)) {
|
||
throw new Error((0, _util.format)('Unknown rule type %s', rule.type));
|
||
}
|
||
return rule.type || 'string';
|
||
},
|
||
getValidationMethod: function getValidationMethod(rule) {
|
||
if (typeof rule.validator === 'function') {
|
||
return rule.validator;
|
||
}
|
||
var keys = Object.keys(rule);
|
||
var messageIndex = keys.indexOf('message');
|
||
if (messageIndex !== -1) {
|
||
keys.splice(messageIndex, 1);
|
||
}
|
||
if (keys.length === 1 && keys[0] === 'required') {
|
||
return _validator2['default'].required;
|
||
}
|
||
return _validator2['default'][this.getType(rule)] || false;
|
||
}
|
||
};
|
||
|
||
Schema.register = function register(type, validator) {
|
||
if (typeof validator !== 'function') {
|
||
throw new Error('Cannot register a validator by type, validator is not a function');
|
||
}
|
||
_validator2['default'][type] = validator;
|
||
};
|
||
|
||
Schema.warning = _util.warning;
|
||
|
||
Schema.messages = _messages2.messages;
|
||
|
||
exports['default'] = Schema;
|
||
|
||
/***/ }),
|
||
/* 107 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _string = __webpack_require__(108);
|
||
|
||
var _string2 = _interopRequireDefault(_string);
|
||
|
||
var _method = __webpack_require__(114);
|
||
|
||
var _method2 = _interopRequireDefault(_method);
|
||
|
||
var _number = __webpack_require__(115);
|
||
|
||
var _number2 = _interopRequireDefault(_number);
|
||
|
||
var _boolean = __webpack_require__(116);
|
||
|
||
var _boolean2 = _interopRequireDefault(_boolean);
|
||
|
||
var _regexp = __webpack_require__(117);
|
||
|
||
var _regexp2 = _interopRequireDefault(_regexp);
|
||
|
||
var _integer = __webpack_require__(118);
|
||
|
||
var _integer2 = _interopRequireDefault(_integer);
|
||
|
||
var _float = __webpack_require__(119);
|
||
|
||
var _float2 = _interopRequireDefault(_float);
|
||
|
||
var _array = __webpack_require__(120);
|
||
|
||
var _array2 = _interopRequireDefault(_array);
|
||
|
||
var _object = __webpack_require__(121);
|
||
|
||
var _object2 = _interopRequireDefault(_object);
|
||
|
||
var _enum = __webpack_require__(122);
|
||
|
||
var _enum2 = _interopRequireDefault(_enum);
|
||
|
||
var _pattern = __webpack_require__(123);
|
||
|
||
var _pattern2 = _interopRequireDefault(_pattern);
|
||
|
||
var _date = __webpack_require__(124);
|
||
|
||
var _date2 = _interopRequireDefault(_date);
|
||
|
||
var _required = __webpack_require__(125);
|
||
|
||
var _required2 = _interopRequireDefault(_required);
|
||
|
||
var _type = __webpack_require__(126);
|
||
|
||
var _type2 = _interopRequireDefault(_type);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
exports['default'] = {
|
||
string: _string2['default'],
|
||
method: _method2['default'],
|
||
number: _number2['default'],
|
||
boolean: _boolean2['default'],
|
||
regexp: _regexp2['default'],
|
||
integer: _integer2['default'],
|
||
float: _float2['default'],
|
||
array: _array2['default'],
|
||
object: _object2['default'],
|
||
'enum': _enum2['default'],
|
||
pattern: _pattern2['default'],
|
||
date: _date2['default'],
|
||
url: _type2['default'],
|
||
hex: _type2['default'],
|
||
email: _type2['default'],
|
||
required: _required2['default']
|
||
};
|
||
|
||
/***/ }),
|
||
/* 108 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _rule = __webpack_require__(1);
|
||
|
||
var _rule2 = _interopRequireDefault(_rule);
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
/**
|
||
* Performs validation for string types.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param callback The callback function.
|
||
* @param source The source object being validated.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function string(rule, value, callback, source, options) {
|
||
var errors = [];
|
||
var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
|
||
if (validate) {
|
||
if ((0, _util.isEmptyValue)(value, 'string') && !rule.required) {
|
||
return callback();
|
||
}
|
||
_rule2['default'].required(rule, value, source, errors, options, 'string');
|
||
if (!(0, _util.isEmptyValue)(value, 'string')) {
|
||
_rule2['default'].type(rule, value, source, errors, options);
|
||
_rule2['default'].range(rule, value, source, errors, options);
|
||
_rule2['default'].pattern(rule, value, source, errors, options);
|
||
if (rule.whitespace === true) {
|
||
_rule2['default'].whitespace(rule, value, source, errors, options);
|
||
}
|
||
}
|
||
}
|
||
callback(errors);
|
||
}
|
||
|
||
exports['default'] = string;
|
||
|
||
/***/ }),
|
||
/* 109 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
var util = _interopRequireWildcard(_util);
|
||
|
||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
|
||
|
||
/**
|
||
* Rule for validating whitespace.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param source The source object being validated.
|
||
* @param errors An array of errors that this rule may add
|
||
* validation errors to.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function whitespace(rule, value, source, errors, options) {
|
||
if (/^\s+$/.test(value) || value === '') {
|
||
errors.push(util.format(options.messages.whitespace, rule.fullField));
|
||
}
|
||
}
|
||
|
||
exports['default'] = whitespace;
|
||
|
||
/***/ }),
|
||
/* 110 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
var util = _interopRequireWildcard(_util);
|
||
|
||
var _required = __webpack_require__(68);
|
||
|
||
var _required2 = _interopRequireDefault(_required);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
|
||
|
||
/* eslint max-len:0 */
|
||
|
||
var pattern = {
|
||
// http://emailregex.com/
|
||
email: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
|
||
url: new RegExp('^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$', 'i'),
|
||
hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i
|
||
};
|
||
|
||
var types = {
|
||
integer: function integer(value) {
|
||
return types.number(value) && parseInt(value, 10) === value;
|
||
},
|
||
float: function float(value) {
|
||
return types.number(value) && !types.integer(value);
|
||
},
|
||
array: function array(value) {
|
||
return Array.isArray(value);
|
||
},
|
||
regexp: function regexp(value) {
|
||
if (value instanceof RegExp) {
|
||
return true;
|
||
}
|
||
try {
|
||
return !!new RegExp(value);
|
||
} catch (e) {
|
||
return false;
|
||
}
|
||
},
|
||
date: function date(value) {
|
||
return typeof value.getTime === 'function' && typeof value.getMonth === 'function' && typeof value.getYear === 'function';
|
||
},
|
||
number: function number(value) {
|
||
if (isNaN(value)) {
|
||
return false;
|
||
}
|
||
return typeof value === 'number';
|
||
},
|
||
object: function object(value) {
|
||
return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && !types.array(value);
|
||
},
|
||
method: function method(value) {
|
||
return typeof value === 'function';
|
||
},
|
||
email: function email(value) {
|
||
return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;
|
||
},
|
||
url: function url(value) {
|
||
return typeof value === 'string' && !!value.match(pattern.url);
|
||
},
|
||
hex: function hex(value) {
|
||
return typeof value === 'string' && !!value.match(pattern.hex);
|
||
}
|
||
};
|
||
|
||
/**
|
||
* Rule for validating the type of a value.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param source The source object being validated.
|
||
* @param errors An array of errors that this rule may add
|
||
* validation errors to.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function type(rule, value, source, errors, options) {
|
||
if (rule.required && value === undefined) {
|
||
(0, _required2['default'])(rule, value, source, errors, options);
|
||
return;
|
||
}
|
||
var custom = ['integer', 'float', 'array', 'regexp', 'object', 'method', 'email', 'number', 'date', 'url', 'hex'];
|
||
var ruleType = rule.type;
|
||
if (custom.indexOf(ruleType) > -1) {
|
||
if (!types[ruleType](value)) {
|
||
errors.push(util.format(options.messages.types[ruleType], rule.fullField, rule.type));
|
||
}
|
||
// straight typeof check
|
||
} else if (ruleType && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== rule.type) {
|
||
errors.push(util.format(options.messages.types[ruleType], rule.fullField, rule.type));
|
||
}
|
||
}
|
||
|
||
exports['default'] = type;
|
||
|
||
/***/ }),
|
||
/* 111 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
var util = _interopRequireWildcard(_util);
|
||
|
||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
|
||
|
||
/**
|
||
* Rule for validating minimum and maximum allowed values.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param source The source object being validated.
|
||
* @param errors An array of errors that this rule may add
|
||
* validation errors to.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function range(rule, value, source, errors, options) {
|
||
var len = typeof rule.len === 'number';
|
||
var min = typeof rule.min === 'number';
|
||
var max = typeof rule.max === 'number';
|
||
// 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)
|
||
var spRegexp = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
|
||
var val = value;
|
||
var key = null;
|
||
var num = typeof value === 'number';
|
||
var str = typeof value === 'string';
|
||
var arr = Array.isArray(value);
|
||
if (num) {
|
||
key = 'number';
|
||
} else if (str) {
|
||
key = 'string';
|
||
} else if (arr) {
|
||
key = 'array';
|
||
}
|
||
// if the value is not of a supported type for range validation
|
||
// the validation rule rule should use the
|
||
// type property to also test for a particular type
|
||
if (!key) {
|
||
return false;
|
||
}
|
||
if (arr) {
|
||
val = value.length;
|
||
}
|
||
if (str) {
|
||
// 处理码点大于U+010000的文字length属性不准确的bug,如"𠮷𠮷𠮷".lenght !== 3
|
||
val = value.replace(spRegexp, '_').length;
|
||
}
|
||
if (len) {
|
||
if (val !== rule.len) {
|
||
errors.push(util.format(options.messages[key].len, rule.fullField, rule.len));
|
||
}
|
||
} else if (min && !max && val < rule.min) {
|
||
errors.push(util.format(options.messages[key].min, rule.fullField, rule.min));
|
||
} else if (max && !min && val > rule.max) {
|
||
errors.push(util.format(options.messages[key].max, rule.fullField, rule.max));
|
||
} else if (min && max && (val < rule.min || val > rule.max)) {
|
||
errors.push(util.format(options.messages[key].range, rule.fullField, rule.min, rule.max));
|
||
}
|
||
}
|
||
|
||
exports['default'] = range;
|
||
|
||
/***/ }),
|
||
/* 112 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
var util = _interopRequireWildcard(_util);
|
||
|
||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
|
||
|
||
var ENUM = 'enum';
|
||
|
||
/**
|
||
* Rule for validating a value exists in an enumerable list.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param source The source object being validated.
|
||
* @param errors An array of errors that this rule may add
|
||
* validation errors to.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function enumerable(rule, value, source, errors, options) {
|
||
rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];
|
||
if (rule[ENUM].indexOf(value) === -1) {
|
||
errors.push(util.format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')));
|
||
}
|
||
}
|
||
|
||
exports['default'] = enumerable;
|
||
|
||
/***/ }),
|
||
/* 113 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
var util = _interopRequireWildcard(_util);
|
||
|
||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
|
||
|
||
/**
|
||
* Rule for validating a regular expression pattern.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param source The source object being validated.
|
||
* @param errors An array of errors that this rule may add
|
||
* validation errors to.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function pattern(rule, value, source, errors, options) {
|
||
if (rule.pattern) {
|
||
if (rule.pattern instanceof RegExp) {
|
||
// if a RegExp instance is passed, reset `lastIndex` in case its `global`
|
||
// flag is accidentally set to `true`, which in a validation scenario
|
||
// is not necessary and the result might be misleading
|
||
rule.pattern.lastIndex = 0;
|
||
if (!rule.pattern.test(value)) {
|
||
errors.push(util.format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));
|
||
}
|
||
} else if (typeof rule.pattern === 'string') {
|
||
var _pattern = new RegExp(rule.pattern);
|
||
if (!_pattern.test(value)) {
|
||
errors.push(util.format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern));
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
exports['default'] = pattern;
|
||
|
||
/***/ }),
|
||
/* 114 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _rule = __webpack_require__(1);
|
||
|
||
var _rule2 = _interopRequireDefault(_rule);
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
/**
|
||
* Validates a function.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param callback The callback function.
|
||
* @param source The source object being validated.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function method(rule, value, callback, source, options) {
|
||
var errors = [];
|
||
var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
|
||
if (validate) {
|
||
if ((0, _util.isEmptyValue)(value) && !rule.required) {
|
||
return callback();
|
||
}
|
||
_rule2['default'].required(rule, value, source, errors, options);
|
||
if (value !== undefined) {
|
||
_rule2['default'].type(rule, value, source, errors, options);
|
||
}
|
||
}
|
||
callback(errors);
|
||
}
|
||
|
||
exports['default'] = method;
|
||
|
||
/***/ }),
|
||
/* 115 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _rule = __webpack_require__(1);
|
||
|
||
var _rule2 = _interopRequireDefault(_rule);
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
/**
|
||
* Validates a number.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param callback The callback function.
|
||
* @param source The source object being validated.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function number(rule, value, callback, source, options) {
|
||
var errors = [];
|
||
var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
|
||
if (validate) {
|
||
if (value === '') {
|
||
value = undefined;
|
||
}
|
||
if ((0, _util.isEmptyValue)(value) && !rule.required) {
|
||
return callback();
|
||
}
|
||
_rule2['default'].required(rule, value, source, errors, options);
|
||
if (value !== undefined) {
|
||
_rule2['default'].type(rule, value, source, errors, options);
|
||
_rule2['default'].range(rule, value, source, errors, options);
|
||
}
|
||
}
|
||
callback(errors);
|
||
}
|
||
|
||
exports['default'] = number;
|
||
|
||
/***/ }),
|
||
/* 116 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
var _rule = __webpack_require__(1);
|
||
|
||
var _rule2 = _interopRequireDefault(_rule);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
/**
|
||
* Validates a boolean.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param callback The callback function.
|
||
* @param source The source object being validated.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function boolean(rule, value, callback, source, options) {
|
||
var errors = [];
|
||
var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
|
||
if (validate) {
|
||
if ((0, _util.isEmptyValue)(value) && !rule.required) {
|
||
return callback();
|
||
}
|
||
_rule2['default'].required(rule, value, source, errors, options);
|
||
if (value !== undefined) {
|
||
_rule2['default'].type(rule, value, source, errors, options);
|
||
}
|
||
}
|
||
callback(errors);
|
||
}
|
||
|
||
exports['default'] = boolean;
|
||
|
||
/***/ }),
|
||
/* 117 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _rule = __webpack_require__(1);
|
||
|
||
var _rule2 = _interopRequireDefault(_rule);
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
/**
|
||
* Validates the regular expression type.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param callback The callback function.
|
||
* @param source The source object being validated.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function regexp(rule, value, callback, source, options) {
|
||
var errors = [];
|
||
var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
|
||
if (validate) {
|
||
if ((0, _util.isEmptyValue)(value) && !rule.required) {
|
||
return callback();
|
||
}
|
||
_rule2['default'].required(rule, value, source, errors, options);
|
||
if (!(0, _util.isEmptyValue)(value)) {
|
||
_rule2['default'].type(rule, value, source, errors, options);
|
||
}
|
||
}
|
||
callback(errors);
|
||
}
|
||
|
||
exports['default'] = regexp;
|
||
|
||
/***/ }),
|
||
/* 118 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _rule = __webpack_require__(1);
|
||
|
||
var _rule2 = _interopRequireDefault(_rule);
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
/**
|
||
* Validates a number is an integer.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param callback The callback function.
|
||
* @param source The source object being validated.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function integer(rule, value, callback, source, options) {
|
||
var errors = [];
|
||
var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
|
||
if (validate) {
|
||
if ((0, _util.isEmptyValue)(value) && !rule.required) {
|
||
return callback();
|
||
}
|
||
_rule2['default'].required(rule, value, source, errors, options);
|
||
if (value !== undefined) {
|
||
_rule2['default'].type(rule, value, source, errors, options);
|
||
_rule2['default'].range(rule, value, source, errors, options);
|
||
}
|
||
}
|
||
callback(errors);
|
||
}
|
||
|
||
exports['default'] = integer;
|
||
|
||
/***/ }),
|
||
/* 119 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _rule = __webpack_require__(1);
|
||
|
||
var _rule2 = _interopRequireDefault(_rule);
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
/**
|
||
* Validates a number is a floating point number.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param callback The callback function.
|
||
* @param source The source object being validated.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function floatFn(rule, value, callback, source, options) {
|
||
var errors = [];
|
||
var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
|
||
if (validate) {
|
||
if ((0, _util.isEmptyValue)(value) && !rule.required) {
|
||
return callback();
|
||
}
|
||
_rule2['default'].required(rule, value, source, errors, options);
|
||
if (value !== undefined) {
|
||
_rule2['default'].type(rule, value, source, errors, options);
|
||
_rule2['default'].range(rule, value, source, errors, options);
|
||
}
|
||
}
|
||
callback(errors);
|
||
}
|
||
|
||
exports['default'] = floatFn;
|
||
|
||
/***/ }),
|
||
/* 120 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _rule = __webpack_require__(1);
|
||
|
||
var _rule2 = _interopRequireDefault(_rule);
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
/**
|
||
* Validates an array.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param callback The callback function.
|
||
* @param source The source object being validated.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function array(rule, value, callback, source, options) {
|
||
var errors = [];
|
||
var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
|
||
if (validate) {
|
||
if ((0, _util.isEmptyValue)(value, 'array') && !rule.required) {
|
||
return callback();
|
||
}
|
||
_rule2['default'].required(rule, value, source, errors, options, 'array');
|
||
if (!(0, _util.isEmptyValue)(value, 'array')) {
|
||
_rule2['default'].type(rule, value, source, errors, options);
|
||
_rule2['default'].range(rule, value, source, errors, options);
|
||
}
|
||
}
|
||
callback(errors);
|
||
}
|
||
|
||
exports['default'] = array;
|
||
|
||
/***/ }),
|
||
/* 121 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _rule = __webpack_require__(1);
|
||
|
||
var _rule2 = _interopRequireDefault(_rule);
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
/**
|
||
* Validates an object.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param callback The callback function.
|
||
* @param source The source object being validated.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function object(rule, value, callback, source, options) {
|
||
var errors = [];
|
||
var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
|
||
if (validate) {
|
||
if ((0, _util.isEmptyValue)(value) && !rule.required) {
|
||
return callback();
|
||
}
|
||
_rule2['default'].required(rule, value, source, errors, options);
|
||
if (value !== undefined) {
|
||
_rule2['default'].type(rule, value, source, errors, options);
|
||
}
|
||
}
|
||
callback(errors);
|
||
}
|
||
|
||
exports['default'] = object;
|
||
|
||
/***/ }),
|
||
/* 122 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _rule = __webpack_require__(1);
|
||
|
||
var _rule2 = _interopRequireDefault(_rule);
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
var ENUM = 'enum';
|
||
|
||
/**
|
||
* Validates an enumerable list.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param callback The callback function.
|
||
* @param source The source object being validated.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function enumerable(rule, value, callback, source, options) {
|
||
var errors = [];
|
||
var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
|
||
if (validate) {
|
||
if ((0, _util.isEmptyValue)(value) && !rule.required) {
|
||
return callback();
|
||
}
|
||
_rule2['default'].required(rule, value, source, errors, options);
|
||
if (value) {
|
||
_rule2['default'][ENUM](rule, value, source, errors, options);
|
||
}
|
||
}
|
||
callback(errors);
|
||
}
|
||
|
||
exports['default'] = enumerable;
|
||
|
||
/***/ }),
|
||
/* 123 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _rule = __webpack_require__(1);
|
||
|
||
var _rule2 = _interopRequireDefault(_rule);
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
/**
|
||
* Validates a regular expression pattern.
|
||
*
|
||
* Performs validation when a rule only contains
|
||
* a pattern property but is not declared as a string type.
|
||
*
|
||
* @param rule The validation rule.
|
||
* @param value The value of the field on the source object.
|
||
* @param callback The callback function.
|
||
* @param source The source object being validated.
|
||
* @param options The validation options.
|
||
* @param options.messages The validation messages.
|
||
*/
|
||
function pattern(rule, value, callback, source, options) {
|
||
var errors = [];
|
||
var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
|
||
if (validate) {
|
||
if ((0, _util.isEmptyValue)(value, 'string') && !rule.required) {
|
||
return callback();
|
||
}
|
||
_rule2['default'].required(rule, value, source, errors, options);
|
||
if (!(0, _util.isEmptyValue)(value, 'string')) {
|
||
_rule2['default'].pattern(rule, value, source, errors, options);
|
||
}
|
||
}
|
||
callback(errors);
|
||
}
|
||
|
||
exports['default'] = pattern;
|
||
|
||
/***/ }),
|
||
/* 124 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _rule = __webpack_require__(1);
|
||
|
||
var _rule2 = _interopRequireDefault(_rule);
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
function date(rule, value, callback, source, options) {
|
||
// console.log('integer rule called %j', rule);
|
||
var errors = [];
|
||
var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
|
||
// console.log('validate on %s value', value);
|
||
if (validate) {
|
||
if ((0, _util.isEmptyValue)(value) && !rule.required) {
|
||
return callback();
|
||
}
|
||
_rule2['default'].required(rule, value, source, errors, options);
|
||
if (!(0, _util.isEmptyValue)(value)) {
|
||
var dateObject = void 0;
|
||
|
||
if (typeof value === 'number') {
|
||
dateObject = new Date(value);
|
||
} else {
|
||
dateObject = value;
|
||
}
|
||
|
||
_rule2['default'].type(rule, dateObject, source, errors, options);
|
||
if (dateObject) {
|
||
_rule2['default'].range(rule, dateObject.getTime(), source, errors, options);
|
||
}
|
||
}
|
||
}
|
||
callback(errors);
|
||
}
|
||
|
||
exports['default'] = date;
|
||
|
||
/***/ }),
|
||
/* 125 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
||
|
||
var _rule = __webpack_require__(1);
|
||
|
||
var _rule2 = _interopRequireDefault(_rule);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
function required(rule, value, callback, source, options) {
|
||
var errors = [];
|
||
var type = Array.isArray(value) ? 'array' : typeof value === 'undefined' ? 'undefined' : _typeof(value);
|
||
_rule2['default'].required(rule, value, source, errors, options, type);
|
||
callback(errors);
|
||
}
|
||
|
||
exports['default'] = required;
|
||
|
||
/***/ }),
|
||
/* 126 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
|
||
var _rule = __webpack_require__(1);
|
||
|
||
var _rule2 = _interopRequireDefault(_rule);
|
||
|
||
var _util = __webpack_require__(0);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
||
|
||
function type(rule, value, callback, source, options) {
|
||
var ruleType = rule.type;
|
||
var errors = [];
|
||
var validate = rule.required || !rule.required && source.hasOwnProperty(rule.field);
|
||
if (validate) {
|
||
if ((0, _util.isEmptyValue)(value, ruleType) && !rule.required) {
|
||
return callback();
|
||
}
|
||
_rule2['default'].required(rule, value, source, errors, options, ruleType);
|
||
if (!(0, _util.isEmptyValue)(value, ruleType)) {
|
||
_rule2['default'].type(rule, value, source, errors, options);
|
||
}
|
||
}
|
||
callback(errors);
|
||
}
|
||
|
||
exports['default'] = type;
|
||
|
||
/***/ }),
|
||
/* 127 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
Object.defineProperty(exports, "__esModule", {
|
||
value: true
|
||
});
|
||
exports.newMessages = newMessages;
|
||
function newMessages() {
|
||
return {
|
||
'default': 'Validation error on field %s',
|
||
required: '%s is required',
|
||
'enum': '%s must be one of %s',
|
||
whitespace: '%s cannot be empty',
|
||
date: {
|
||
format: '%s date %s is invalid for format %s',
|
||
parse: '%s date could not be parsed, %s is invalid ',
|
||
invalid: '%s date %s is invalid'
|
||
},
|
||
types: {
|
||
string: '%s is not a %s',
|
||
method: '%s is not a %s (function)',
|
||
array: '%s is not an %s',
|
||
object: '%s is not an %s',
|
||
number: '%s is not a %s',
|
||
date: '%s is not a %s',
|
||
boolean: '%s is not a %s',
|
||
integer: '%s is not an %s',
|
||
float: '%s is not a %s',
|
||
regexp: '%s is not a valid %s',
|
||
email: '%s is not a valid %s',
|
||
url: '%s is not a valid %s',
|
||
hex: '%s is not a valid %s'
|
||
},
|
||
string: {
|
||
len: '%s must be exactly %s characters',
|
||
min: '%s must be at least %s characters',
|
||
max: '%s cannot be longer than %s characters',
|
||
range: '%s must be between %s and %s characters'
|
||
},
|
||
number: {
|
||
len: '%s must equal %s',
|
||
min: '%s cannot be less than %s',
|
||
max: '%s cannot be greater than %s',
|
||
range: '%s must be between %s and %s'
|
||
},
|
||
array: {
|
||
len: '%s must be exactly %s in length',
|
||
min: '%s cannot be less than %s in length',
|
||
max: '%s cannot be greater than %s in length',
|
||
range: '%s must be between %s and %s in length'
|
||
},
|
||
pattern: {
|
||
mismatch: '%s value %s does not match pattern %s'
|
||
},
|
||
clone: function clone() {
|
||
var cloned = JSON.parse(JSON.stringify(this));
|
||
cloned.clone = this.clone;
|
||
return cloned;
|
||
}
|
||
};
|
||
}
|
||
|
||
var messages = exports.messages = newMessages();
|
||
|
||
/***/ }),
|
||
/* 128 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var baseGet = __webpack_require__(129);
|
||
|
||
/**
|
||
* Gets the value at `path` of `object`. If the resolved value is
|
||
* `undefined`, the `defaultValue` is returned in its place.
|
||
*
|
||
* @static
|
||
* @memberOf _
|
||
* @since 3.7.0
|
||
* @category Object
|
||
* @param {Object} object The object to query.
|
||
* @param {Array|string} path The path of the property to get.
|
||
* @param {*} [defaultValue] The value returned for `undefined` resolved values.
|
||
* @returns {*} Returns the resolved value.
|
||
* @example
|
||
*
|
||
* var object = { 'a': [{ 'b': { 'c': 3 } }] };
|
||
*
|
||
* _.get(object, 'a[0].b.c');
|
||
* // => 3
|
||
*
|
||
* _.get(object, ['a', '0', 'b', 'c']);
|
||
* // => 3
|
||
*
|
||
* _.get(object, 'a.b.c', 'default');
|
||
* // => 'default'
|
||
*/
|
||
function get(object, path, defaultValue) {
|
||
var result = object == null ? undefined : baseGet(object, path);
|
||
return result === undefined ? defaultValue : result;
|
||
}
|
||
|
||
module.exports = get;
|
||
|
||
|
||
/***/ }),
|
||
/* 129 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var castPath = __webpack_require__(40),
|
||
toKey = __webpack_require__(49);
|
||
|
||
/**
|
||
* The base implementation of `_.get` without support for default values.
|
||
*
|
||
* @private
|
||
* @param {Object} object The object to query.
|
||
* @param {Array|string} path The path of the property to get.
|
||
* @returns {*} Returns the resolved value.
|
||
*/
|
||
function baseGet(object, path) {
|
||
path = castPath(path, object);
|
||
|
||
var index = 0,
|
||
length = path.length;
|
||
|
||
while (object != null && index < length) {
|
||
object = object[toKey(path[index++])];
|
||
}
|
||
return (index && index == length) ? object : undefined;
|
||
}
|
||
|
||
module.exports = baseGet;
|
||
|
||
|
||
/***/ }),
|
||
/* 130 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var isArray = __webpack_require__(24),
|
||
isSymbol = __webpack_require__(41);
|
||
|
||
/** Used to match property names within property paths. */
|
||
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,
|
||
reIsPlainProp = /^\w*$/;
|
||
|
||
/**
|
||
* Checks if `value` is a property name and not a property path.
|
||
*
|
||
* @private
|
||
* @param {*} value The value to check.
|
||
* @param {Object} [object] The object to query keys on.
|
||
* @returns {boolean} Returns `true` if `value` is a property name, else `false`.
|
||
*/
|
||
function isKey(value, object) {
|
||
if (isArray(value)) {
|
||
return false;
|
||
}
|
||
var type = typeof value;
|
||
if (type == 'number' || type == 'symbol' || type == 'boolean' ||
|
||
value == null || isSymbol(value)) {
|
||
return true;
|
||
}
|
||
return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||
|
||
(object != null && value in Object(object));
|
||
}
|
||
|
||
module.exports = isKey;
|
||
|
||
|
||
/***/ }),
|
||
/* 131 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */
|
||
var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
|
||
|
||
module.exports = freeGlobal;
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(132)))
|
||
|
||
/***/ }),
|
||
/* 132 */
|
||
/***/ (function(module, exports) {
|
||
|
||
var g;
|
||
|
||
// This works in non-strict mode
|
||
g = (function() {
|
||
return this;
|
||
})();
|
||
|
||
try {
|
||
// This works if eval is allowed (see CSP)
|
||
g = g || Function("return this")() || (1,eval)("this");
|
||
} catch(e) {
|
||
// This works if the window reference is available
|
||
if(typeof window === "object")
|
||
g = window;
|
||
}
|
||
|
||
// g can still be undefined, but nothing to do about it...
|
||
// We return undefined, instead of nothing here, so it's
|
||
// easier to handle this case. if(!global) { ...}
|
||
|
||
module.exports = g;
|
||
|
||
|
||
/***/ }),
|
||
/* 133 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var Symbol = __webpack_require__(43);
|
||
|
||
/** Used for built-in method references. */
|
||
var objectProto = Object.prototype;
|
||
|
||
/** Used to check objects for own properties. */
|
||
var hasOwnProperty = objectProto.hasOwnProperty;
|
||
|
||
/**
|
||
* Used to resolve the
|
||
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
|
||
* of values.
|
||
*/
|
||
var nativeObjectToString = objectProto.toString;
|
||
|
||
/** Built-in value references. */
|
||
var symToStringTag = Symbol ? Symbol.toStringTag : undefined;
|
||
|
||
/**
|
||
* A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
|
||
*
|
||
* @private
|
||
* @param {*} value The value to query.
|
||
* @returns {string} Returns the raw `toStringTag`.
|
||
*/
|
||
function getRawTag(value) {
|
||
var isOwn = hasOwnProperty.call(value, symToStringTag),
|
||
tag = value[symToStringTag];
|
||
|
||
try {
|
||
value[symToStringTag] = undefined;
|
||
var unmasked = true;
|
||
} catch (e) {}
|
||
|
||
var result = nativeObjectToString.call(value);
|
||
if (unmasked) {
|
||
if (isOwn) {
|
||
value[symToStringTag] = tag;
|
||
} else {
|
||
delete value[symToStringTag];
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
|
||
module.exports = getRawTag;
|
||
|
||
|
||
/***/ }),
|
||
/* 134 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/** Used for built-in method references. */
|
||
var objectProto = Object.prototype;
|
||
|
||
/**
|
||
* Used to resolve the
|
||
* [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
|
||
* of values.
|
||
*/
|
||
var nativeObjectToString = objectProto.toString;
|
||
|
||
/**
|
||
* Converts `value` to a string using `Object.prototype.toString`.
|
||
*
|
||
* @private
|
||
* @param {*} value The value to convert.
|
||
* @returns {string} Returns the converted string.
|
||
*/
|
||
function objectToString(value) {
|
||
return nativeObjectToString.call(value);
|
||
}
|
||
|
||
module.exports = objectToString;
|
||
|
||
|
||
/***/ }),
|
||
/* 135 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var memoizeCapped = __webpack_require__(136);
|
||
|
||
/** Used to match property names within property paths. */
|
||
var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
|
||
|
||
/** Used to match backslashes in property paths. */
|
||
var reEscapeChar = /\\(\\)?/g;
|
||
|
||
/**
|
||
* Converts `string` to a property path array.
|
||
*
|
||
* @private
|
||
* @param {string} string The string to convert.
|
||
* @returns {Array} Returns the property path array.
|
||
*/
|
||
var stringToPath = memoizeCapped(function(string) {
|
||
var result = [];
|
||
if (string.charCodeAt(0) === 46 /* . */) {
|
||
result.push('');
|
||
}
|
||
string.replace(rePropName, function(match, number, quote, subString) {
|
||
result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));
|
||
});
|
||
return result;
|
||
});
|
||
|
||
module.exports = stringToPath;
|
||
|
||
|
||
/***/ }),
|
||
/* 136 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var memoize = __webpack_require__(137);
|
||
|
||
/** Used as the maximum memoize cache size. */
|
||
var MAX_MEMOIZE_SIZE = 500;
|
||
|
||
/**
|
||
* A specialized version of `_.memoize` which clears the memoized function's
|
||
* cache when it exceeds `MAX_MEMOIZE_SIZE`.
|
||
*
|
||
* @private
|
||
* @param {Function} func The function to have its output memoized.
|
||
* @returns {Function} Returns the new memoized function.
|
||
*/
|
||
function memoizeCapped(func) {
|
||
var result = memoize(func, function(key) {
|
||
if (cache.size === MAX_MEMOIZE_SIZE) {
|
||
cache.clear();
|
||
}
|
||
return key;
|
||
});
|
||
|
||
var cache = result.cache;
|
||
return result;
|
||
}
|
||
|
||
module.exports = memoizeCapped;
|
||
|
||
|
||
/***/ }),
|
||
/* 137 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var MapCache = __webpack_require__(138);
|
||
|
||
/** Error message constants. */
|
||
var FUNC_ERROR_TEXT = 'Expected a function';
|
||
|
||
/**
|
||
* Creates a function that memoizes the result of `func`. If `resolver` is
|
||
* provided, it determines the cache key for storing the result based on the
|
||
* arguments provided to the memoized function. By default, the first argument
|
||
* provided to the memoized function is used as the map cache key. The `func`
|
||
* is invoked with the `this` binding of the memoized function.
|
||
*
|
||
* **Note:** The cache is exposed as the `cache` property on the memoized
|
||
* function. Its creation may be customized by replacing the `_.memoize.Cache`
|
||
* constructor with one whose instances implement the
|
||
* [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)
|
||
* method interface of `clear`, `delete`, `get`, `has`, and `set`.
|
||
*
|
||
* @static
|
||
* @memberOf _
|
||
* @since 0.1.0
|
||
* @category Function
|
||
* @param {Function} func The function to have its output memoized.
|
||
* @param {Function} [resolver] The function to resolve the cache key.
|
||
* @returns {Function} Returns the new memoized function.
|
||
* @example
|
||
*
|
||
* var object = { 'a': 1, 'b': 2 };
|
||
* var other = { 'c': 3, 'd': 4 };
|
||
*
|
||
* var values = _.memoize(_.values);
|
||
* values(object);
|
||
* // => [1, 2]
|
||
*
|
||
* values(other);
|
||
* // => [3, 4]
|
||
*
|
||
* object.a = 2;
|
||
* values(object);
|
||
* // => [1, 2]
|
||
*
|
||
* // Modify the result cache.
|
||
* values.cache.set(object, ['a', 'b']);
|
||
* values(object);
|
||
* // => ['a', 'b']
|
||
*
|
||
* // Replace `_.memoize.Cache`.
|
||
* _.memoize.Cache = WeakMap;
|
||
*/
|
||
function memoize(func, resolver) {
|
||
if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {
|
||
throw new TypeError(FUNC_ERROR_TEXT);
|
||
}
|
||
var memoized = function() {
|
||
var args = arguments,
|
||
key = resolver ? resolver.apply(this, args) : args[0],
|
||
cache = memoized.cache;
|
||
|
||
if (cache.has(key)) {
|
||
return cache.get(key);
|
||
}
|
||
var result = func.apply(this, args);
|
||
memoized.cache = cache.set(key, result) || cache;
|
||
return result;
|
||
};
|
||
memoized.cache = new (memoize.Cache || MapCache);
|
||
return memoized;
|
||
}
|
||
|
||
// Expose `MapCache`.
|
||
memoize.Cache = MapCache;
|
||
|
||
module.exports = memoize;
|
||
|
||
|
||
/***/ }),
|
||
/* 138 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var mapCacheClear = __webpack_require__(139),
|
||
mapCacheDelete = __webpack_require__(159),
|
||
mapCacheGet = __webpack_require__(161),
|
||
mapCacheHas = __webpack_require__(162),
|
||
mapCacheSet = __webpack_require__(163);
|
||
|
||
/**
|
||
* Creates a map cache object to store key-value pairs.
|
||
*
|
||
* @private
|
||
* @constructor
|
||
* @param {Array} [entries] The key-value pairs to cache.
|
||
*/
|
||
function MapCache(entries) {
|
||
var index = -1,
|
||
length = entries == null ? 0 : entries.length;
|
||
|
||
this.clear();
|
||
while (++index < length) {
|
||
var entry = entries[index];
|
||
this.set(entry[0], entry[1]);
|
||
}
|
||
}
|
||
|
||
// Add methods to `MapCache`.
|
||
MapCache.prototype.clear = mapCacheClear;
|
||
MapCache.prototype['delete'] = mapCacheDelete;
|
||
MapCache.prototype.get = mapCacheGet;
|
||
MapCache.prototype.has = mapCacheHas;
|
||
MapCache.prototype.set = mapCacheSet;
|
||
|
||
module.exports = MapCache;
|
||
|
||
|
||
/***/ }),
|
||
/* 139 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var Hash = __webpack_require__(140),
|
||
ListCache = __webpack_require__(152),
|
||
Map = __webpack_require__(158);
|
||
|
||
/**
|
||
* Removes all key-value entries from the map.
|
||
*
|
||
* @private
|
||
* @name clear
|
||
* @memberOf MapCache
|
||
*/
|
||
function mapCacheClear() {
|
||
this.size = 0;
|
||
this.__data__ = {
|
||
'hash': new Hash,
|
||
'map': new (Map || ListCache),
|
||
'string': new Hash
|
||
};
|
||
}
|
||
|
||
module.exports = mapCacheClear;
|
||
|
||
|
||
/***/ }),
|
||
/* 140 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var hashClear = __webpack_require__(141),
|
||
hashDelete = __webpack_require__(148),
|
||
hashGet = __webpack_require__(149),
|
||
hashHas = __webpack_require__(150),
|
||
hashSet = __webpack_require__(151);
|
||
|
||
/**
|
||
* Creates a hash object.
|
||
*
|
||
* @private
|
||
* @constructor
|
||
* @param {Array} [entries] The key-value pairs to cache.
|
||
*/
|
||
function Hash(entries) {
|
||
var index = -1,
|
||
length = entries == null ? 0 : entries.length;
|
||
|
||
this.clear();
|
||
while (++index < length) {
|
||
var entry = entries[index];
|
||
this.set(entry[0], entry[1]);
|
||
}
|
||
}
|
||
|
||
// Add methods to `Hash`.
|
||
Hash.prototype.clear = hashClear;
|
||
Hash.prototype['delete'] = hashDelete;
|
||
Hash.prototype.get = hashGet;
|
||
Hash.prototype.has = hashHas;
|
||
Hash.prototype.set = hashSet;
|
||
|
||
module.exports = Hash;
|
||
|
||
|
||
/***/ }),
|
||
/* 141 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var nativeCreate = __webpack_require__(25);
|
||
|
||
/**
|
||
* Removes all key-value entries from the hash.
|
||
*
|
||
* @private
|
||
* @name clear
|
||
* @memberOf Hash
|
||
*/
|
||
function hashClear() {
|
||
this.__data__ = nativeCreate ? nativeCreate(null) : {};
|
||
this.size = 0;
|
||
}
|
||
|
||
module.exports = hashClear;
|
||
|
||
|
||
/***/ }),
|
||
/* 142 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var isFunction = __webpack_require__(143),
|
||
isMasked = __webpack_require__(144),
|
||
isObject = __webpack_require__(47),
|
||
toSource = __webpack_require__(146);
|
||
|
||
/**
|
||
* Used to match `RegExp`
|
||
* [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
|
||
*/
|
||
var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
|
||
|
||
/** Used to detect host constructors (Safari). */
|
||
var reIsHostCtor = /^\[object .+?Constructor\]$/;
|
||
|
||
/** Used for built-in method references. */
|
||
var funcProto = Function.prototype,
|
||
objectProto = Object.prototype;
|
||
|
||
/** Used to resolve the decompiled source of functions. */
|
||
var funcToString = funcProto.toString;
|
||
|
||
/** Used to check objects for own properties. */
|
||
var hasOwnProperty = objectProto.hasOwnProperty;
|
||
|
||
/** Used to detect if a method is native. */
|
||
var reIsNative = RegExp('^' +
|
||
funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
|
||
.replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
|
||
);
|
||
|
||
/**
|
||
* The base implementation of `_.isNative` without bad shim checks.
|
||
*
|
||
* @private
|
||
* @param {*} value The value to check.
|
||
* @returns {boolean} Returns `true` if `value` is a native function,
|
||
* else `false`.
|
||
*/
|
||
function baseIsNative(value) {
|
||
if (!isObject(value) || isMasked(value)) {
|
||
return false;
|
||
}
|
||
var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
|
||
return pattern.test(toSource(value));
|
||
}
|
||
|
||
module.exports = baseIsNative;
|
||
|
||
|
||
/***/ }),
|
||
/* 143 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var baseGetTag = __webpack_require__(42),
|
||
isObject = __webpack_require__(47);
|
||
|
||
/** `Object#toString` result references. */
|
||
var asyncTag = '[object AsyncFunction]',
|
||
funcTag = '[object Function]',
|
||
genTag = '[object GeneratorFunction]',
|
||
proxyTag = '[object Proxy]';
|
||
|
||
/**
|
||
* Checks if `value` is classified as a `Function` object.
|
||
*
|
||
* @static
|
||
* @memberOf _
|
||
* @since 0.1.0
|
||
* @category Lang
|
||
* @param {*} value The value to check.
|
||
* @returns {boolean} Returns `true` if `value` is a function, else `false`.
|
||
* @example
|
||
*
|
||
* _.isFunction(_);
|
||
* // => true
|
||
*
|
||
* _.isFunction(/abc/);
|
||
* // => false
|
||
*/
|
||
function isFunction(value) {
|
||
if (!isObject(value)) {
|
||
return false;
|
||
}
|
||
// The use of `Object#toString` avoids issues with the `typeof` operator
|
||
// in Safari 9 which returns 'object' for typed arrays and other constructors.
|
||
var tag = baseGetTag(value);
|
||
return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
|
||
}
|
||
|
||
module.exports = isFunction;
|
||
|
||
|
||
/***/ }),
|
||
/* 144 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var coreJsData = __webpack_require__(145);
|
||
|
||
/** Used to detect methods masquerading as native. */
|
||
var maskSrcKey = (function() {
|
||
var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
|
||
return uid ? ('Symbol(src)_1.' + uid) : '';
|
||
}());
|
||
|
||
/**
|
||
* Checks if `func` has its source masked.
|
||
*
|
||
* @private
|
||
* @param {Function} func The function to check.
|
||
* @returns {boolean} Returns `true` if `func` is masked, else `false`.
|
||
*/
|
||
function isMasked(func) {
|
||
return !!maskSrcKey && (maskSrcKey in func);
|
||
}
|
||
|
||
module.exports = isMasked;
|
||
|
||
|
||
/***/ }),
|
||
/* 145 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var root = __webpack_require__(44);
|
||
|
||
/** Used to detect overreaching core-js shims. */
|
||
var coreJsData = root['__core-js_shared__'];
|
||
|
||
module.exports = coreJsData;
|
||
|
||
|
||
/***/ }),
|
||
/* 146 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/** Used for built-in method references. */
|
||
var funcProto = Function.prototype;
|
||
|
||
/** Used to resolve the decompiled source of functions. */
|
||
var funcToString = funcProto.toString;
|
||
|
||
/**
|
||
* Converts `func` to its source code.
|
||
*
|
||
* @private
|
||
* @param {Function} func The function to convert.
|
||
* @returns {string} Returns the source code.
|
||
*/
|
||
function toSource(func) {
|
||
if (func != null) {
|
||
try {
|
||
return funcToString.call(func);
|
||
} catch (e) {}
|
||
try {
|
||
return (func + '');
|
||
} catch (e) {}
|
||
}
|
||
return '';
|
||
}
|
||
|
||
module.exports = toSource;
|
||
|
||
|
||
/***/ }),
|
||
/* 147 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* Gets the value at `key` of `object`.
|
||
*
|
||
* @private
|
||
* @param {Object} [object] The object to query.
|
||
* @param {string} key The key of the property to get.
|
||
* @returns {*} Returns the property value.
|
||
*/
|
||
function getValue(object, key) {
|
||
return object == null ? undefined : object[key];
|
||
}
|
||
|
||
module.exports = getValue;
|
||
|
||
|
||
/***/ }),
|
||
/* 148 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* Removes `key` and its value from the hash.
|
||
*
|
||
* @private
|
||
* @name delete
|
||
* @memberOf Hash
|
||
* @param {Object} hash The hash to modify.
|
||
* @param {string} key The key of the value to remove.
|
||
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
||
*/
|
||
function hashDelete(key) {
|
||
var result = this.has(key) && delete this.__data__[key];
|
||
this.size -= result ? 1 : 0;
|
||
return result;
|
||
}
|
||
|
||
module.exports = hashDelete;
|
||
|
||
|
||
/***/ }),
|
||
/* 149 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var nativeCreate = __webpack_require__(25);
|
||
|
||
/** Used to stand-in for `undefined` hash values. */
|
||
var HASH_UNDEFINED = '__lodash_hash_undefined__';
|
||
|
||
/** Used for built-in method references. */
|
||
var objectProto = Object.prototype;
|
||
|
||
/** Used to check objects for own properties. */
|
||
var hasOwnProperty = objectProto.hasOwnProperty;
|
||
|
||
/**
|
||
* Gets the hash value for `key`.
|
||
*
|
||
* @private
|
||
* @name get
|
||
* @memberOf Hash
|
||
* @param {string} key The key of the value to get.
|
||
* @returns {*} Returns the entry value.
|
||
*/
|
||
function hashGet(key) {
|
||
var data = this.__data__;
|
||
if (nativeCreate) {
|
||
var result = data[key];
|
||
return result === HASH_UNDEFINED ? undefined : result;
|
||
}
|
||
return hasOwnProperty.call(data, key) ? data[key] : undefined;
|
||
}
|
||
|
||
module.exports = hashGet;
|
||
|
||
|
||
/***/ }),
|
||
/* 150 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var nativeCreate = __webpack_require__(25);
|
||
|
||
/** Used for built-in method references. */
|
||
var objectProto = Object.prototype;
|
||
|
||
/** Used to check objects for own properties. */
|
||
var hasOwnProperty = objectProto.hasOwnProperty;
|
||
|
||
/**
|
||
* Checks if a hash value for `key` exists.
|
||
*
|
||
* @private
|
||
* @name has
|
||
* @memberOf Hash
|
||
* @param {string} key The key of the entry to check.
|
||
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
||
*/
|
||
function hashHas(key) {
|
||
var data = this.__data__;
|
||
return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);
|
||
}
|
||
|
||
module.exports = hashHas;
|
||
|
||
|
||
/***/ }),
|
||
/* 151 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var nativeCreate = __webpack_require__(25);
|
||
|
||
/** Used to stand-in for `undefined` hash values. */
|
||
var HASH_UNDEFINED = '__lodash_hash_undefined__';
|
||
|
||
/**
|
||
* Sets the hash `key` to `value`.
|
||
*
|
||
* @private
|
||
* @name set
|
||
* @memberOf Hash
|
||
* @param {string} key The key of the value to set.
|
||
* @param {*} value The value to set.
|
||
* @returns {Object} Returns the hash instance.
|
||
*/
|
||
function hashSet(key, value) {
|
||
var data = this.__data__;
|
||
this.size += this.has(key) ? 0 : 1;
|
||
data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
|
||
return this;
|
||
}
|
||
|
||
module.exports = hashSet;
|
||
|
||
|
||
/***/ }),
|
||
/* 152 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var listCacheClear = __webpack_require__(153),
|
||
listCacheDelete = __webpack_require__(154),
|
||
listCacheGet = __webpack_require__(155),
|
||
listCacheHas = __webpack_require__(156),
|
||
listCacheSet = __webpack_require__(157);
|
||
|
||
/**
|
||
* Creates an list cache object.
|
||
*
|
||
* @private
|
||
* @constructor
|
||
* @param {Array} [entries] The key-value pairs to cache.
|
||
*/
|
||
function ListCache(entries) {
|
||
var index = -1,
|
||
length = entries == null ? 0 : entries.length;
|
||
|
||
this.clear();
|
||
while (++index < length) {
|
||
var entry = entries[index];
|
||
this.set(entry[0], entry[1]);
|
||
}
|
||
}
|
||
|
||
// Add methods to `ListCache`.
|
||
ListCache.prototype.clear = listCacheClear;
|
||
ListCache.prototype['delete'] = listCacheDelete;
|
||
ListCache.prototype.get = listCacheGet;
|
||
ListCache.prototype.has = listCacheHas;
|
||
ListCache.prototype.set = listCacheSet;
|
||
|
||
module.exports = ListCache;
|
||
|
||
|
||
/***/ }),
|
||
/* 153 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* Removes all key-value entries from the list cache.
|
||
*
|
||
* @private
|
||
* @name clear
|
||
* @memberOf ListCache
|
||
*/
|
||
function listCacheClear() {
|
||
this.__data__ = [];
|
||
this.size = 0;
|
||
}
|
||
|
||
module.exports = listCacheClear;
|
||
|
||
|
||
/***/ }),
|
||
/* 154 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var assocIndexOf = __webpack_require__(26);
|
||
|
||
/** Used for built-in method references. */
|
||
var arrayProto = Array.prototype;
|
||
|
||
/** Built-in value references. */
|
||
var splice = arrayProto.splice;
|
||
|
||
/**
|
||
* Removes `key` and its value from the list cache.
|
||
*
|
||
* @private
|
||
* @name delete
|
||
* @memberOf ListCache
|
||
* @param {string} key The key of the value to remove.
|
||
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
||
*/
|
||
function listCacheDelete(key) {
|
||
var data = this.__data__,
|
||
index = assocIndexOf(data, key);
|
||
|
||
if (index < 0) {
|
||
return false;
|
||
}
|
||
var lastIndex = data.length - 1;
|
||
if (index == lastIndex) {
|
||
data.pop();
|
||
} else {
|
||
splice.call(data, index, 1);
|
||
}
|
||
--this.size;
|
||
return true;
|
||
}
|
||
|
||
module.exports = listCacheDelete;
|
||
|
||
|
||
/***/ }),
|
||
/* 155 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var assocIndexOf = __webpack_require__(26);
|
||
|
||
/**
|
||
* Gets the list cache value for `key`.
|
||
*
|
||
* @private
|
||
* @name get
|
||
* @memberOf ListCache
|
||
* @param {string} key The key of the value to get.
|
||
* @returns {*} Returns the entry value.
|
||
*/
|
||
function listCacheGet(key) {
|
||
var data = this.__data__,
|
||
index = assocIndexOf(data, key);
|
||
|
||
return index < 0 ? undefined : data[index][1];
|
||
}
|
||
|
||
module.exports = listCacheGet;
|
||
|
||
|
||
/***/ }),
|
||
/* 156 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var assocIndexOf = __webpack_require__(26);
|
||
|
||
/**
|
||
* Checks if a list cache value for `key` exists.
|
||
*
|
||
* @private
|
||
* @name has
|
||
* @memberOf ListCache
|
||
* @param {string} key The key of the entry to check.
|
||
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
||
*/
|
||
function listCacheHas(key) {
|
||
return assocIndexOf(this.__data__, key) > -1;
|
||
}
|
||
|
||
module.exports = listCacheHas;
|
||
|
||
|
||
/***/ }),
|
||
/* 157 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var assocIndexOf = __webpack_require__(26);
|
||
|
||
/**
|
||
* Sets the list cache `key` to `value`.
|
||
*
|
||
* @private
|
||
* @name set
|
||
* @memberOf ListCache
|
||
* @param {string} key The key of the value to set.
|
||
* @param {*} value The value to set.
|
||
* @returns {Object} Returns the list cache instance.
|
||
*/
|
||
function listCacheSet(key, value) {
|
||
var data = this.__data__,
|
||
index = assocIndexOf(data, key);
|
||
|
||
if (index < 0) {
|
||
++this.size;
|
||
data.push([key, value]);
|
||
} else {
|
||
data[index][1] = value;
|
||
}
|
||
return this;
|
||
}
|
||
|
||
module.exports = listCacheSet;
|
||
|
||
|
||
/***/ }),
|
||
/* 158 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var getNative = __webpack_require__(46),
|
||
root = __webpack_require__(44);
|
||
|
||
/* Built-in method references that are verified to be native. */
|
||
var Map = getNative(root, 'Map');
|
||
|
||
module.exports = Map;
|
||
|
||
|
||
/***/ }),
|
||
/* 159 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var getMapData = __webpack_require__(27);
|
||
|
||
/**
|
||
* Removes `key` and its value from the map.
|
||
*
|
||
* @private
|
||
* @name delete
|
||
* @memberOf MapCache
|
||
* @param {string} key The key of the value to remove.
|
||
* @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
||
*/
|
||
function mapCacheDelete(key) {
|
||
var result = getMapData(this, key)['delete'](key);
|
||
this.size -= result ? 1 : 0;
|
||
return result;
|
||
}
|
||
|
||
module.exports = mapCacheDelete;
|
||
|
||
|
||
/***/ }),
|
||
/* 160 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* Checks if `value` is suitable for use as unique object key.
|
||
*
|
||
* @private
|
||
* @param {*} value The value to check.
|
||
* @returns {boolean} Returns `true` if `value` is suitable, else `false`.
|
||
*/
|
||
function isKeyable(value) {
|
||
var type = typeof value;
|
||
return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
|
||
? (value !== '__proto__')
|
||
: (value === null);
|
||
}
|
||
|
||
module.exports = isKeyable;
|
||
|
||
|
||
/***/ }),
|
||
/* 161 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var getMapData = __webpack_require__(27);
|
||
|
||
/**
|
||
* Gets the map value for `key`.
|
||
*
|
||
* @private
|
||
* @name get
|
||
* @memberOf MapCache
|
||
* @param {string} key The key of the value to get.
|
||
* @returns {*} Returns the entry value.
|
||
*/
|
||
function mapCacheGet(key) {
|
||
return getMapData(this, key).get(key);
|
||
}
|
||
|
||
module.exports = mapCacheGet;
|
||
|
||
|
||
/***/ }),
|
||
/* 162 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var getMapData = __webpack_require__(27);
|
||
|
||
/**
|
||
* Checks if a map value for `key` exists.
|
||
*
|
||
* @private
|
||
* @name has
|
||
* @memberOf MapCache
|
||
* @param {string} key The key of the entry to check.
|
||
* @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
|
||
*/
|
||
function mapCacheHas(key) {
|
||
return getMapData(this, key).has(key);
|
||
}
|
||
|
||
module.exports = mapCacheHas;
|
||
|
||
|
||
/***/ }),
|
||
/* 163 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var getMapData = __webpack_require__(27);
|
||
|
||
/**
|
||
* Sets the map `key` to `value`.
|
||
*
|
||
* @private
|
||
* @name set
|
||
* @memberOf MapCache
|
||
* @param {string} key The key of the value to set.
|
||
* @param {*} value The value to set.
|
||
* @returns {Object} Returns the map cache instance.
|
||
*/
|
||
function mapCacheSet(key, value) {
|
||
var data = getMapData(this, key),
|
||
size = data.size;
|
||
|
||
data.set(key, value);
|
||
this.size += data.size == size ? 0 : 1;
|
||
return this;
|
||
}
|
||
|
||
module.exports = mapCacheSet;
|
||
|
||
|
||
/***/ }),
|
||
/* 164 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var baseToString = __webpack_require__(165);
|
||
|
||
/**
|
||
* Converts `value` to a string. An empty string is returned for `null`
|
||
* and `undefined` values. The sign of `-0` is preserved.
|
||
*
|
||
* @static
|
||
* @memberOf _
|
||
* @since 4.0.0
|
||
* @category Lang
|
||
* @param {*} value The value to convert.
|
||
* @returns {string} Returns the converted string.
|
||
* @example
|
||
*
|
||
* _.toString(null);
|
||
* // => ''
|
||
*
|
||
* _.toString(-0);
|
||
* // => '-0'
|
||
*
|
||
* _.toString([1, 2, 3]);
|
||
* // => '1,2,3'
|
||
*/
|
||
function toString(value) {
|
||
return value == null ? '' : baseToString(value);
|
||
}
|
||
|
||
module.exports = toString;
|
||
|
||
|
||
/***/ }),
|
||
/* 165 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var Symbol = __webpack_require__(43),
|
||
arrayMap = __webpack_require__(166),
|
||
isArray = __webpack_require__(24),
|
||
isSymbol = __webpack_require__(41);
|
||
|
||
/** Used as references for various `Number` constants. */
|
||
var INFINITY = 1 / 0;
|
||
|
||
/** Used to convert symbols to primitives and strings. */
|
||
var symbolProto = Symbol ? Symbol.prototype : undefined,
|
||
symbolToString = symbolProto ? symbolProto.toString : undefined;
|
||
|
||
/**
|
||
* The base implementation of `_.toString` which doesn't convert nullish
|
||
* values to empty strings.
|
||
*
|
||
* @private
|
||
* @param {*} value The value to process.
|
||
* @returns {string} Returns the string.
|
||
*/
|
||
function baseToString(value) {
|
||
// Exit early for strings to avoid a performance hit in some environments.
|
||
if (typeof value == 'string') {
|
||
return value;
|
||
}
|
||
if (isArray(value)) {
|
||
// Recursively convert values (susceptible to call stack limits).
|
||
return arrayMap(value, baseToString) + '';
|
||
}
|
||
if (isSymbol(value)) {
|
||
return symbolToString ? symbolToString.call(value) : '';
|
||
}
|
||
var result = (value + '');
|
||
return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
|
||
}
|
||
|
||
module.exports = baseToString;
|
||
|
||
|
||
/***/ }),
|
||
/* 166 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/**
|
||
* A specialized version of `_.map` for arrays without support for iteratee
|
||
* shorthands.
|
||
*
|
||
* @private
|
||
* @param {Array} [array] The array to iterate over.
|
||
* @param {Function} iteratee The function invoked per iteration.
|
||
* @returns {Array} Returns the new mapped array.
|
||
*/
|
||
function arrayMap(array, iteratee) {
|
||
var index = -1,
|
||
length = array == null ? 0 : array.length,
|
||
result = Array(length);
|
||
|
||
while (++index < length) {
|
||
result[index] = iteratee(array[index], index, array);
|
||
}
|
||
return result;
|
||
}
|
||
|
||
module.exports = arrayMap;
|
||
|
||
|
||
/***/ }),
|
||
/* 167 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var assignValue = __webpack_require__(168),
|
||
castPath = __webpack_require__(40),
|
||
isIndex = __webpack_require__(71),
|
||
isObject = __webpack_require__(47),
|
||
toKey = __webpack_require__(49);
|
||
|
||
/**
|
||
* The base implementation of `_.set`.
|
||
*
|
||
* @private
|
||
* @param {Object} object The object to modify.
|
||
* @param {Array|string} path The path of the property to set.
|
||
* @param {*} value The value to set.
|
||
* @param {Function} [customizer] The function to customize path creation.
|
||
* @returns {Object} Returns `object`.
|
||
*/
|
||
function baseSet(object, path, value, customizer) {
|
||
if (!isObject(object)) {
|
||
return object;
|
||
}
|
||
path = castPath(path, object);
|
||
|
||
var index = -1,
|
||
length = path.length,
|
||
lastIndex = length - 1,
|
||
nested = object;
|
||
|
||
while (nested != null && ++index < length) {
|
||
var key = toKey(path[index]),
|
||
newValue = value;
|
||
|
||
if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
|
||
return object;
|
||
}
|
||
|
||
if (index != lastIndex) {
|
||
var objValue = nested[key];
|
||
newValue = customizer ? customizer(objValue, key, nested) : undefined;
|
||
if (newValue === undefined) {
|
||
newValue = isObject(objValue)
|
||
? objValue
|
||
: (isIndex(path[index + 1]) ? [] : {});
|
||
}
|
||
}
|
||
assignValue(nested, key, newValue);
|
||
nested = nested[key];
|
||
}
|
||
return object;
|
||
}
|
||
|
||
module.exports = baseSet;
|
||
|
||
|
||
/***/ }),
|
||
/* 168 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var baseAssignValue = __webpack_require__(169),
|
||
eq = __webpack_require__(48);
|
||
|
||
/** Used for built-in method references. */
|
||
var objectProto = Object.prototype;
|
||
|
||
/** Used to check objects for own properties. */
|
||
var hasOwnProperty = objectProto.hasOwnProperty;
|
||
|
||
/**
|
||
* Assigns `value` to `key` of `object` if the existing value is not equivalent
|
||
* using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
|
||
* for equality comparisons.
|
||
*
|
||
* @private
|
||
* @param {Object} object The object to modify.
|
||
* @param {string} key The key of the property to assign.
|
||
* @param {*} value The value to assign.
|
||
*/
|
||
function assignValue(object, key, value) {
|
||
var objValue = object[key];
|
||
if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
|
||
(value === undefined && !(key in object))) {
|
||
baseAssignValue(object, key, value);
|
||
}
|
||
}
|
||
|
||
module.exports = assignValue;
|
||
|
||
|
||
/***/ }),
|
||
/* 169 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var defineProperty = __webpack_require__(170);
|
||
|
||
/**
|
||
* The base implementation of `assignValue` and `assignMergeValue` without
|
||
* value checks.
|
||
*
|
||
* @private
|
||
* @param {Object} object The object to modify.
|
||
* @param {string} key The key of the property to assign.
|
||
* @param {*} value The value to assign.
|
||
*/
|
||
function baseAssignValue(object, key, value) {
|
||
if (key == '__proto__' && defineProperty) {
|
||
defineProperty(object, key, {
|
||
'configurable': true,
|
||
'enumerable': true,
|
||
'value': value,
|
||
'writable': true
|
||
});
|
||
} else {
|
||
object[key] = value;
|
||
}
|
||
}
|
||
|
||
module.exports = baseAssignValue;
|
||
|
||
|
||
/***/ }),
|
||
/* 170 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var getNative = __webpack_require__(46);
|
||
|
||
var defineProperty = (function() {
|
||
try {
|
||
var func = getNative(Object, 'defineProperty');
|
||
func({}, '', {});
|
||
return func;
|
||
} catch (e) {}
|
||
}());
|
||
|
||
module.exports = defineProperty;
|
||
|
||
|
||
/***/ }),
|
||
/* 171 */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* harmony export (immutable) */ __webpack_exports__["a"] = createFieldsStore;
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty__ = __webpack_require__(57);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__ = __webpack_require__(16);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__ = __webpack_require__(50);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass__ = __webpack_require__(72);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_set__ = __webpack_require__(70);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_set___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash_set__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__createFormField__ = __webpack_require__(172);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils__ = __webpack_require__(51);
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
function partOf(a, b) {
|
||
return b.indexOf(a) === 0 && ['.', '['].indexOf(b[a.length]) !== -1;
|
||
}
|
||
|
||
function internalFlattenFields(fields) {
|
||
return Object(__WEBPACK_IMPORTED_MODULE_6__utils__["c" /* flattenFields */])(fields, function (_, node) {
|
||
return Object(__WEBPACK_IMPORTED_MODULE_5__createFormField__["b" /* isFormField */])(node);
|
||
}, 'You must wrap field data with `createFormField`.');
|
||
}
|
||
|
||
var FieldsStore = function () {
|
||
function FieldsStore(fields) {
|
||
__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, FieldsStore);
|
||
|
||
_initialiseProps.call(this);
|
||
|
||
this.fields = internalFlattenFields(fields);
|
||
this.fieldsMeta = {};
|
||
}
|
||
|
||
__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_createClass___default()(FieldsStore, [{
|
||
key: 'updateFields',
|
||
value: function updateFields(fields) {
|
||
this.fields = internalFlattenFields(fields);
|
||
}
|
||
}, {
|
||
key: 'flattenRegisteredFields',
|
||
value: function flattenRegisteredFields(fields) {
|
||
var validFieldsName = this.getAllFieldsName();
|
||
return Object(__WEBPACK_IMPORTED_MODULE_6__utils__["c" /* flattenFields */])(fields, function (path) {
|
||
return validFieldsName.indexOf(path) >= 0;
|
||
}, 'You cannot set a form field before rendering a field associated with the value.');
|
||
}
|
||
}, {
|
||
key: 'setFields',
|
||
value: function setFields(fields) {
|
||
var _this = this;
|
||
|
||
var fieldsMeta = this.fieldsMeta;
|
||
var nowFields = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, this.fields, fields);
|
||
var nowValues = {};
|
||
Object.keys(fieldsMeta).forEach(function (f) {
|
||
nowValues[f] = _this.getValueFromFields(f, nowFields);
|
||
});
|
||
Object.keys(nowValues).forEach(function (f) {
|
||
var value = nowValues[f];
|
||
var fieldMeta = _this.getFieldMeta(f);
|
||
if (fieldMeta && fieldMeta.normalize) {
|
||
var nowValue = fieldMeta.normalize(value, _this.getValueFromFields(f, _this.fields), nowValues);
|
||
if (nowValue !== value) {
|
||
nowFields[f] = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, nowFields[f], {
|
||
value: nowValue
|
||
});
|
||
}
|
||
}
|
||
});
|
||
this.fields = nowFields;
|
||
}
|
||
}, {
|
||
key: 'resetFields',
|
||
value: function resetFields(ns) {
|
||
var fields = this.fields;
|
||
|
||
var names = ns ? this.getValidFieldsFullName(ns) : this.getAllFieldsName();
|
||
return names.reduce(function (acc, name) {
|
||
var field = fields[name];
|
||
if (field && 'value' in field) {
|
||
acc[name] = {};
|
||
}
|
||
return acc;
|
||
}, {});
|
||
}
|
||
}, {
|
||
key: 'setFieldMeta',
|
||
value: function setFieldMeta(name, meta) {
|
||
this.fieldsMeta[name] = meta;
|
||
}
|
||
}, {
|
||
key: 'setFieldsAsDirty',
|
||
value: function setFieldsAsDirty() {
|
||
var _this2 = this;
|
||
|
||
Object.keys(this.fields).forEach(function (name) {
|
||
var field = _this2.fields[name];
|
||
var fieldMeta = _this2.fieldsMeta[name];
|
||
if (field && fieldMeta && Object(__WEBPACK_IMPORTED_MODULE_6__utils__["h" /* hasRules */])(fieldMeta.validate)) {
|
||
_this2.fields[name] = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, field, {
|
||
dirty: true
|
||
});
|
||
}
|
||
});
|
||
}
|
||
}, {
|
||
key: 'getFieldMeta',
|
||
value: function getFieldMeta(name) {
|
||
this.fieldsMeta[name] = this.fieldsMeta[name] || {};
|
||
return this.fieldsMeta[name];
|
||
}
|
||
}, {
|
||
key: 'getValueFromFields',
|
||
value: function getValueFromFields(name, fields) {
|
||
var field = fields[name];
|
||
if (field && 'value' in field) {
|
||
return field.value;
|
||
}
|
||
var fieldMeta = this.getFieldMeta(name);
|
||
return fieldMeta && fieldMeta.initialValue;
|
||
}
|
||
}, {
|
||
key: 'getValidFieldsName',
|
||
value: function getValidFieldsName() {
|
||
var _this3 = this;
|
||
|
||
var fieldsMeta = this.fieldsMeta;
|
||
|
||
return fieldsMeta ? Object.keys(fieldsMeta).filter(function (name) {
|
||
return !_this3.getFieldMeta(name).hidden;
|
||
}) : [];
|
||
}
|
||
}, {
|
||
key: 'getAllFieldsName',
|
||
value: function getAllFieldsName() {
|
||
var fieldsMeta = this.fieldsMeta;
|
||
|
||
return fieldsMeta ? Object.keys(fieldsMeta) : [];
|
||
}
|
||
}, {
|
||
key: 'getValidFieldsFullName',
|
||
value: function getValidFieldsFullName(maybePartialName) {
|
||
var maybePartialNames = Array.isArray(maybePartialName) ? maybePartialName : [maybePartialName];
|
||
return this.getValidFieldsName().filter(function (fullName) {
|
||
return maybePartialNames.some(function (partialName) {
|
||
return fullName === partialName || Object(__WEBPACK_IMPORTED_MODULE_6__utils__["l" /* startsWith */])(fullName, partialName) && ['.', '['].indexOf(fullName[partialName.length]) >= 0;
|
||
});
|
||
});
|
||
}
|
||
}, {
|
||
key: 'getFieldValuePropValue',
|
||
value: function getFieldValuePropValue(fieldMeta) {
|
||
var name = fieldMeta.name,
|
||
getValueProps = fieldMeta.getValueProps,
|
||
valuePropName = fieldMeta.valuePropName;
|
||
|
||
var field = this.getField(name);
|
||
var fieldValue = 'value' in field ? field.value : fieldMeta.initialValue;
|
||
if (getValueProps) {
|
||
return getValueProps(fieldValue);
|
||
}
|
||
return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_defineProperty___default()({}, valuePropName, fieldValue);
|
||
}
|
||
}, {
|
||
key: 'getField',
|
||
value: function getField(name) {
|
||
return __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, this.fields[name], {
|
||
name: name
|
||
});
|
||
}
|
||
}, {
|
||
key: 'getNotCollectedFields',
|
||
value: function getNotCollectedFields() {
|
||
var _this4 = this;
|
||
|
||
var fieldsName = this.getValidFieldsName();
|
||
return fieldsName.filter(function (name) {
|
||
return !_this4.fields[name];
|
||
}).map(function (name) {
|
||
return {
|
||
name: name,
|
||
dirty: false,
|
||
value: _this4.getFieldMeta(name).initialValue
|
||
};
|
||
}).reduce(function (acc, field) {
|
||
return __WEBPACK_IMPORTED_MODULE_4_lodash_set___default()(acc, field.name, Object(__WEBPACK_IMPORTED_MODULE_5__createFormField__["a" /* default */])(field));
|
||
}, {});
|
||
}
|
||
}, {
|
||
key: 'getNestedAllFields',
|
||
value: function getNestedAllFields() {
|
||
var _this5 = this;
|
||
|
||
return Object.keys(this.fields).reduce(function (acc, name) {
|
||
return __WEBPACK_IMPORTED_MODULE_4_lodash_set___default()(acc, name, Object(__WEBPACK_IMPORTED_MODULE_5__createFormField__["a" /* default */])(_this5.fields[name]));
|
||
}, this.getNotCollectedFields());
|
||
}
|
||
}, {
|
||
key: 'getFieldMember',
|
||
value: function getFieldMember(name, member) {
|
||
return this.getField(name)[member];
|
||
}
|
||
}, {
|
||
key: 'getNestedFields',
|
||
value: function getNestedFields(names, getter) {
|
||
var fields = names || this.getValidFieldsName();
|
||
return fields.reduce(function (acc, f) {
|
||
return __WEBPACK_IMPORTED_MODULE_4_lodash_set___default()(acc, f, getter(f));
|
||
}, {});
|
||
}
|
||
}, {
|
||
key: 'getNestedField',
|
||
value: function getNestedField(name, getter) {
|
||
var fullNames = this.getValidFieldsFullName(name);
|
||
if (fullNames.length === 0 || // Not registered
|
||
fullNames.length === 1 && fullNames[0] === name // Name already is full name.
|
||
) {
|
||
return getter(name);
|
||
}
|
||
var isArrayValue = fullNames[0][name.length] === '[';
|
||
var suffixNameStartIndex = isArrayValue ? name.length : name.length + 1;
|
||
return fullNames.reduce(function (acc, fullName) {
|
||
return __WEBPACK_IMPORTED_MODULE_4_lodash_set___default()(acc, fullName.slice(suffixNameStartIndex), getter(fullName));
|
||
}, isArrayValue ? [] : {});
|
||
}
|
||
}, {
|
||
key: 'isValidNestedFieldName',
|
||
|
||
|
||
// @private
|
||
// BG: `a` and `a.b` cannot be use in the same form
|
||
value: function isValidNestedFieldName(name) {
|
||
var names = this.getAllFieldsName();
|
||
return names.every(function (n) {
|
||
return !partOf(n, name) && !partOf(name, n);
|
||
});
|
||
}
|
||
}, {
|
||
key: 'clearField',
|
||
value: function clearField(name) {
|
||
delete this.fields[name];
|
||
delete this.fieldsMeta[name];
|
||
}
|
||
}]);
|
||
|
||
return FieldsStore;
|
||
}();
|
||
|
||
var _initialiseProps = function _initialiseProps() {
|
||
var _this6 = this;
|
||
|
||
this.setFieldsInitialValue = function (initialValues) {
|
||
var flattenedInitialValues = _this6.flattenRegisteredFields(initialValues);
|
||
var fieldsMeta = _this6.fieldsMeta;
|
||
Object.keys(flattenedInitialValues).forEach(function (name) {
|
||
if (fieldsMeta[name]) {
|
||
_this6.setFieldMeta(name, __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({}, _this6.getFieldMeta(name), {
|
||
initialValue: flattenedInitialValues[name]
|
||
}));
|
||
}
|
||
});
|
||
};
|
||
|
||
this.getAllValues = function () {
|
||
var fieldsMeta = _this6.fieldsMeta,
|
||
fields = _this6.fields;
|
||
|
||
return Object.keys(fieldsMeta).reduce(function (acc, name) {
|
||
return __WEBPACK_IMPORTED_MODULE_4_lodash_set___default()(acc, name, _this6.getValueFromFields(name, fields));
|
||
}, {});
|
||
};
|
||
|
||
this.getFieldsValue = function (names) {
|
||
return _this6.getNestedFields(names, _this6.getFieldValue);
|
||
};
|
||
|
||
this.getFieldValue = function (name) {
|
||
var fields = _this6.fields;
|
||
|
||
return _this6.getNestedField(name, function (fullName) {
|
||
return _this6.getValueFromFields(fullName, fields);
|
||
});
|
||
};
|
||
|
||
this.getFieldsError = function (names) {
|
||
return _this6.getNestedFields(names, _this6.getFieldError);
|
||
};
|
||
|
||
this.getFieldError = function (name) {
|
||
return _this6.getNestedField(name, function (fullName) {
|
||
return Object(__WEBPACK_IMPORTED_MODULE_6__utils__["d" /* getErrorStrs */])(_this6.getFieldMember(fullName, 'errors'));
|
||
});
|
||
};
|
||
|
||
this.isFieldValidating = function (name) {
|
||
return _this6.getFieldMember(name, 'validating');
|
||
};
|
||
|
||
this.isFieldsValidating = function (ns) {
|
||
var names = ns || _this6.getValidFieldsName();
|
||
return names.some(function (n) {
|
||
return _this6.isFieldValidating(n);
|
||
});
|
||
};
|
||
|
||
this.isFieldTouched = function (name) {
|
||
return _this6.getFieldMember(name, 'touched');
|
||
};
|
||
|
||
this.isFieldsTouched = function (ns) {
|
||
var names = ns || _this6.getValidFieldsName();
|
||
return names.some(function (n) {
|
||
return _this6.isFieldTouched(n);
|
||
});
|
||
};
|
||
};
|
||
|
||
function createFieldsStore(fields) {
|
||
return new FieldsStore(fields);
|
||
}
|
||
|
||
/***/ }),
|
||
/* 172 */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* harmony export (immutable) */ __webpack_exports__["b"] = isFormField;
|
||
/* harmony export (immutable) */ __webpack_exports__["a"] = createFormField;
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(16);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(50);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);
|
||
|
||
|
||
|
||
var Field = function Field(fields) {
|
||
__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Field);
|
||
|
||
__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()(this, fields);
|
||
};
|
||
|
||
function isFormField(obj) {
|
||
return obj instanceof Field;
|
||
}
|
||
|
||
function createFormField(field) {
|
||
if (isFormField(field)) {
|
||
return field;
|
||
}
|
||
return new Field(field);
|
||
}
|
||
|
||
/***/ }),
|
||
/* 173 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var reactIs = __webpack_require__(28);
|
||
|
||
/**
|
||
* Copyright 2015, Yahoo! Inc.
|
||
* Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
|
||
*/
|
||
var REACT_STATICS = {
|
||
childContextTypes: true,
|
||
contextType: true,
|
||
contextTypes: true,
|
||
defaultProps: true,
|
||
displayName: true,
|
||
getDefaultProps: true,
|
||
getDerivedStateFromError: true,
|
||
getDerivedStateFromProps: true,
|
||
mixins: true,
|
||
propTypes: true,
|
||
type: true
|
||
};
|
||
var KNOWN_STATICS = {
|
||
name: true,
|
||
length: true,
|
||
prototype: true,
|
||
caller: true,
|
||
callee: true,
|
||
arguments: true,
|
||
arity: true
|
||
};
|
||
var FORWARD_REF_STATICS = {
|
||
'$$typeof': true,
|
||
render: true,
|
||
defaultProps: true,
|
||
displayName: true,
|
||
propTypes: true
|
||
};
|
||
var MEMO_STATICS = {
|
||
'$$typeof': true,
|
||
compare: true,
|
||
defaultProps: true,
|
||
displayName: true,
|
||
propTypes: true,
|
||
type: true
|
||
};
|
||
var TYPE_STATICS = {};
|
||
TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
|
||
TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;
|
||
|
||
function getStatics(component) {
|
||
// React v16.11 and below
|
||
if (reactIs.isMemo(component)) {
|
||
return MEMO_STATICS;
|
||
} // React v16.12 and above
|
||
|
||
|
||
return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
|
||
}
|
||
|
||
var defineProperty = Object.defineProperty;
|
||
var getOwnPropertyNames = Object.getOwnPropertyNames;
|
||
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
|
||
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
|
||
var getPrototypeOf = Object.getPrototypeOf;
|
||
var objectPrototype = Object.prototype;
|
||
function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
|
||
if (typeof sourceComponent !== 'string') {
|
||
// don't hoist over string (html) components
|
||
if (objectPrototype) {
|
||
var inheritedComponent = getPrototypeOf(sourceComponent);
|
||
|
||
if (inheritedComponent && inheritedComponent !== objectPrototype) {
|
||
hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
|
||
}
|
||
}
|
||
|
||
var keys = getOwnPropertyNames(sourceComponent);
|
||
|
||
if (getOwnPropertySymbols) {
|
||
keys = keys.concat(getOwnPropertySymbols(sourceComponent));
|
||
}
|
||
|
||
var targetStatics = getStatics(targetComponent);
|
||
var sourceStatics = getStatics(sourceComponent);
|
||
|
||
for (var i = 0; i < keys.length; ++i) {
|
||
var key = keys[i];
|
||
|
||
if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
|
||
var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
|
||
|
||
try {
|
||
// Avoid failures from read-only properties
|
||
defineProperty(targetComponent, key, descriptor);
|
||
} catch (e) {}
|
||
}
|
||
}
|
||
}
|
||
|
||
return targetComponent;
|
||
}
|
||
|
||
module.exports = hoistNonReactStatics;
|
||
|
||
|
||
/***/ }),
|
||
/* 174 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/** @license React v16.13.1
|
||
* react-is.production.min.js
|
||
*
|
||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?
|
||
Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119;
|
||
function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;
|
||
exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};
|
||
exports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};
|
||
exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;
|
||
|
||
|
||
/***/ }),
|
||
/* 175 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* WEBPACK VAR INJECTION */(function(process) {/** @license React v16.13.1
|
||
* react-is.development.js
|
||
*
|
||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
|
||
|
||
|
||
|
||
if (process.env.NODE_ENV !== "production") {
|
||
(function() {
|
||
'use strict';
|
||
|
||
// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
|
||
// nor polyfill, then a plain number is used for performance.
|
||
var hasSymbol = typeof Symbol === 'function' && Symbol.for;
|
||
var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
|
||
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
|
||
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
|
||
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
|
||
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
|
||
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
|
||
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary
|
||
// (unstable) APIs that have been removed. Can we remove the symbols?
|
||
|
||
var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;
|
||
var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
|
||
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
|
||
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
|
||
var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;
|
||
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
|
||
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
|
||
var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;
|
||
var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;
|
||
var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;
|
||
var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;
|
||
|
||
function isValidElementType(type) {
|
||
return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.
|
||
type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);
|
||
}
|
||
|
||
function typeOf(object) {
|
||
if (typeof object === 'object' && object !== null) {
|
||
var $$typeof = object.$$typeof;
|
||
|
||
switch ($$typeof) {
|
||
case REACT_ELEMENT_TYPE:
|
||
var type = object.type;
|
||
|
||
switch (type) {
|
||
case REACT_ASYNC_MODE_TYPE:
|
||
case REACT_CONCURRENT_MODE_TYPE:
|
||
case REACT_FRAGMENT_TYPE:
|
||
case REACT_PROFILER_TYPE:
|
||
case REACT_STRICT_MODE_TYPE:
|
||
case REACT_SUSPENSE_TYPE:
|
||
return type;
|
||
|
||
default:
|
||
var $$typeofType = type && type.$$typeof;
|
||
|
||
switch ($$typeofType) {
|
||
case REACT_CONTEXT_TYPE:
|
||
case REACT_FORWARD_REF_TYPE:
|
||
case REACT_LAZY_TYPE:
|
||
case REACT_MEMO_TYPE:
|
||
case REACT_PROVIDER_TYPE:
|
||
return $$typeofType;
|
||
|
||
default:
|
||
return $$typeof;
|
||
}
|
||
|
||
}
|
||
|
||
case REACT_PORTAL_TYPE:
|
||
return $$typeof;
|
||
}
|
||
}
|
||
|
||
return undefined;
|
||
} // AsyncMode is deprecated along with isAsyncMode
|
||
|
||
var AsyncMode = REACT_ASYNC_MODE_TYPE;
|
||
var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;
|
||
var ContextConsumer = REACT_CONTEXT_TYPE;
|
||
var ContextProvider = REACT_PROVIDER_TYPE;
|
||
var Element = REACT_ELEMENT_TYPE;
|
||
var ForwardRef = REACT_FORWARD_REF_TYPE;
|
||
var Fragment = REACT_FRAGMENT_TYPE;
|
||
var Lazy = REACT_LAZY_TYPE;
|
||
var Memo = REACT_MEMO_TYPE;
|
||
var Portal = REACT_PORTAL_TYPE;
|
||
var Profiler = REACT_PROFILER_TYPE;
|
||
var StrictMode = REACT_STRICT_MODE_TYPE;
|
||
var Suspense = REACT_SUSPENSE_TYPE;
|
||
var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated
|
||
|
||
function isAsyncMode(object) {
|
||
{
|
||
if (!hasWarnedAboutDeprecatedIsAsyncMode) {
|
||
hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
|
||
|
||
console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');
|
||
}
|
||
}
|
||
|
||
return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;
|
||
}
|
||
function isConcurrentMode(object) {
|
||
return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;
|
||
}
|
||
function isContextConsumer(object) {
|
||
return typeOf(object) === REACT_CONTEXT_TYPE;
|
||
}
|
||
function isContextProvider(object) {
|
||
return typeOf(object) === REACT_PROVIDER_TYPE;
|
||
}
|
||
function isElement(object) {
|
||
return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
|
||
}
|
||
function isForwardRef(object) {
|
||
return typeOf(object) === REACT_FORWARD_REF_TYPE;
|
||
}
|
||
function isFragment(object) {
|
||
return typeOf(object) === REACT_FRAGMENT_TYPE;
|
||
}
|
||
function isLazy(object) {
|
||
return typeOf(object) === REACT_LAZY_TYPE;
|
||
}
|
||
function isMemo(object) {
|
||
return typeOf(object) === REACT_MEMO_TYPE;
|
||
}
|
||
function isPortal(object) {
|
||
return typeOf(object) === REACT_PORTAL_TYPE;
|
||
}
|
||
function isProfiler(object) {
|
||
return typeOf(object) === REACT_PROFILER_TYPE;
|
||
}
|
||
function isStrictMode(object) {
|
||
return typeOf(object) === REACT_STRICT_MODE_TYPE;
|
||
}
|
||
function isSuspense(object) {
|
||
return typeOf(object) === REACT_SUSPENSE_TYPE;
|
||
}
|
||
|
||
exports.AsyncMode = AsyncMode;
|
||
exports.ConcurrentMode = ConcurrentMode;
|
||
exports.ContextConsumer = ContextConsumer;
|
||
exports.ContextProvider = ContextProvider;
|
||
exports.Element = Element;
|
||
exports.ForwardRef = ForwardRef;
|
||
exports.Fragment = Fragment;
|
||
exports.Lazy = Lazy;
|
||
exports.Memo = Memo;
|
||
exports.Portal = Portal;
|
||
exports.Profiler = Profiler;
|
||
exports.StrictMode = StrictMode;
|
||
exports.Suspense = Suspense;
|
||
exports.isAsyncMode = isAsyncMode;
|
||
exports.isConcurrentMode = isConcurrentMode;
|
||
exports.isContextConsumer = isContextConsumer;
|
||
exports.isContextProvider = isContextProvider;
|
||
exports.isElement = isElement;
|
||
exports.isForwardRef = isForwardRef;
|
||
exports.isFragment = isFragment;
|
||
exports.isLazy = isLazy;
|
||
exports.isMemo = isMemo;
|
||
exports.isPortal = isPortal;
|
||
exports.isProfiler = isProfiler;
|
||
exports.isStrictMode = isStrictMode;
|
||
exports.isSuspense = isSuspense;
|
||
exports.isValidElementType = isValidElementType;
|
||
exports.typeOf = typeOf;
|
||
})();
|
||
}
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
|
||
|
||
/***/ }),
|
||
/* 176 */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(50);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__ = __webpack_require__(72);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(177);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(194);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(23);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(202);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
var FieldElemWrapper = function (_React$Component) {
|
||
__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(FieldElemWrapper, _React$Component);
|
||
|
||
function FieldElemWrapper() {
|
||
__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, FieldElemWrapper);
|
||
|
||
return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, (FieldElemWrapper.__proto__ || Object.getPrototypeOf(FieldElemWrapper)).apply(this, arguments));
|
||
}
|
||
|
||
__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_createClass___default()(FieldElemWrapper, [{
|
||
key: 'componentDidMount',
|
||
value: function componentDidMount() {
|
||
var _props = this.props,
|
||
name = _props.name,
|
||
form = _props.form;
|
||
|
||
form.domFields[name] = true;
|
||
form.recoverClearedField(name);
|
||
}
|
||
}, {
|
||
key: 'componentWillUnmount',
|
||
value: function componentWillUnmount() {
|
||
var _props2 = this.props,
|
||
name = _props2.name,
|
||
form = _props2.form;
|
||
|
||
var fieldMeta = form.fieldsStore.getFieldMeta(name);
|
||
if (!fieldMeta.preserve) {
|
||
// after destroy, delete data
|
||
form.clearedFieldMetaCache[name] = {
|
||
field: form.fieldsStore.getField(name),
|
||
meta: fieldMeta
|
||
};
|
||
form.clearField(name);
|
||
}
|
||
delete form.domFields[name];
|
||
}
|
||
}, {
|
||
key: 'render',
|
||
value: function render() {
|
||
return this.props.children;
|
||
}
|
||
}]);
|
||
|
||
return FieldElemWrapper;
|
||
}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.Component);
|
||
|
||
/* harmony default export */ __webpack_exports__["a"] = (FieldElemWrapper);
|
||
|
||
|
||
FieldElemWrapper.propTypes = {
|
||
name: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.string,
|
||
form: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.shape({
|
||
domFields: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.objectOf(__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.bool),
|
||
recoverClearedField: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,
|
||
fieldsStore: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.shape({
|
||
getFieldMeta: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func,
|
||
getField: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func
|
||
}),
|
||
clearedFieldMetaCache: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.objectOf(__WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.shape({
|
||
field: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object,
|
||
meta: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object
|
||
})),
|
||
clearField: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func
|
||
}),
|
||
children: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.node
|
||
};
|
||
|
||
/***/ }),
|
||
/* 177 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
exports.__esModule = true;
|
||
|
||
var _typeof2 = __webpack_require__(73);
|
||
|
||
var _typeof3 = _interopRequireDefault(_typeof2);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
exports.default = function (self, call) {
|
||
if (!self) {
|
||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||
}
|
||
|
||
return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self;
|
||
};
|
||
|
||
/***/ }),
|
||
/* 178 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
module.exports = { "default": __webpack_require__(179), __esModule: true };
|
||
|
||
/***/ }),
|
||
/* 179 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
__webpack_require__(64);
|
||
__webpack_require__(180);
|
||
module.exports = __webpack_require__(52).f('iterator');
|
||
|
||
|
||
/***/ }),
|
||
/* 180 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
__webpack_require__(181);
|
||
var global = __webpack_require__(5);
|
||
var hide = __webpack_require__(10);
|
||
var Iterators = __webpack_require__(17);
|
||
var TO_STRING_TAG = __webpack_require__(3)('toStringTag');
|
||
|
||
var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
|
||
'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
|
||
'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
|
||
'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
|
||
'TextTrackList,TouchList').split(',');
|
||
|
||
for (var i = 0; i < DOMIterables.length; i++) {
|
||
var NAME = DOMIterables[i];
|
||
var Collection = global[NAME];
|
||
var proto = Collection && Collection.prototype;
|
||
if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
|
||
Iterators[NAME] = Iterators.Array;
|
||
}
|
||
|
||
|
||
/***/ }),
|
||
/* 181 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
var addToUnscopables = __webpack_require__(182);
|
||
var step = __webpack_require__(183);
|
||
var Iterators = __webpack_require__(17);
|
||
var toIObject = __webpack_require__(13);
|
||
|
||
// 22.1.3.4 Array.prototype.entries()
|
||
// 22.1.3.13 Array.prototype.keys()
|
||
// 22.1.3.29 Array.prototype.values()
|
||
// 22.1.3.30 Array.prototype[@@iterator]()
|
||
module.exports = __webpack_require__(65)(Array, 'Array', function (iterated, kind) {
|
||
this._t = toIObject(iterated); // target
|
||
this._i = 0; // next index
|
||
this._k = kind; // kind
|
||
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
|
||
}, function () {
|
||
var O = this._t;
|
||
var kind = this._k;
|
||
var index = this._i++;
|
||
if (!O || index >= O.length) {
|
||
this._t = undefined;
|
||
return step(1);
|
||
}
|
||
if (kind == 'keys') return step(0, index);
|
||
if (kind == 'values') return step(0, O[index]);
|
||
return step(0, [index, O[index]]);
|
||
}, 'values');
|
||
|
||
// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
|
||
Iterators.Arguments = Iterators.Array;
|
||
|
||
addToUnscopables('keys');
|
||
addToUnscopables('values');
|
||
addToUnscopables('entries');
|
||
|
||
|
||
/***/ }),
|
||
/* 182 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = function () { /* empty */ };
|
||
|
||
|
||
/***/ }),
|
||
/* 183 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = function (done, value) {
|
||
return { value: value, done: !!done };
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 184 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
module.exports = { "default": __webpack_require__(185), __esModule: true };
|
||
|
||
/***/ }),
|
||
/* 185 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
__webpack_require__(186);
|
||
__webpack_require__(191);
|
||
__webpack_require__(192);
|
||
__webpack_require__(193);
|
||
module.exports = __webpack_require__(2).Symbol;
|
||
|
||
|
||
/***/ }),
|
||
/* 186 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
// ECMAScript 6 symbols shim
|
||
var global = __webpack_require__(5);
|
||
var has = __webpack_require__(9);
|
||
var DESCRIPTORS = __webpack_require__(7);
|
||
var $export = __webpack_require__(8);
|
||
var redefine = __webpack_require__(66);
|
||
var META = __webpack_require__(187).KEY;
|
||
var $fails = __webpack_require__(14);
|
||
var shared = __webpack_require__(35);
|
||
var setToStringTag = __webpack_require__(39);
|
||
var uid = __webpack_require__(20);
|
||
var wks = __webpack_require__(3);
|
||
var wksExt = __webpack_require__(52);
|
||
var wksDefine = __webpack_require__(53);
|
||
var enumKeys = __webpack_require__(188);
|
||
var isArray = __webpack_require__(189);
|
||
var anObject = __webpack_require__(11);
|
||
var isObject = __webpack_require__(12);
|
||
var toObject = __webpack_require__(22);
|
||
var toIObject = __webpack_require__(13);
|
||
var toPrimitive = __webpack_require__(30);
|
||
var createDesc = __webpack_require__(15);
|
||
var _create = __webpack_require__(38);
|
||
var gOPNExt = __webpack_require__(190);
|
||
var $GOPD = __webpack_require__(75);
|
||
var $GOPS = __webpack_require__(37);
|
||
var $DP = __webpack_require__(6);
|
||
var $keys = __webpack_require__(18);
|
||
var gOPD = $GOPD.f;
|
||
var dP = $DP.f;
|
||
var gOPN = gOPNExt.f;
|
||
var $Symbol = global.Symbol;
|
||
var $JSON = global.JSON;
|
||
var _stringify = $JSON && $JSON.stringify;
|
||
var PROTOTYPE = 'prototype';
|
||
var HIDDEN = wks('_hidden');
|
||
var TO_PRIMITIVE = wks('toPrimitive');
|
||
var isEnum = {}.propertyIsEnumerable;
|
||
var SymbolRegistry = shared('symbol-registry');
|
||
var AllSymbols = shared('symbols');
|
||
var OPSymbols = shared('op-symbols');
|
||
var ObjectProto = Object[PROTOTYPE];
|
||
var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
|
||
var QObject = global.QObject;
|
||
// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
|
||
var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
|
||
|
||
// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
|
||
var setSymbolDesc = DESCRIPTORS && $fails(function () {
|
||
return _create(dP({}, 'a', {
|
||
get: function () { return dP(this, 'a', { value: 7 }).a; }
|
||
})).a != 7;
|
||
}) ? function (it, key, D) {
|
||
var protoDesc = gOPD(ObjectProto, key);
|
||
if (protoDesc) delete ObjectProto[key];
|
||
dP(it, key, D);
|
||
if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
|
||
} : dP;
|
||
|
||
var wrap = function (tag) {
|
||
var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
|
||
sym._k = tag;
|
||
return sym;
|
||
};
|
||
|
||
var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
|
||
return typeof it == 'symbol';
|
||
} : function (it) {
|
||
return it instanceof $Symbol;
|
||
};
|
||
|
||
var $defineProperty = function defineProperty(it, key, D) {
|
||
if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
|
||
anObject(it);
|
||
key = toPrimitive(key, true);
|
||
anObject(D);
|
||
if (has(AllSymbols, key)) {
|
||
if (!D.enumerable) {
|
||
if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
|
||
it[HIDDEN][key] = true;
|
||
} else {
|
||
if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
|
||
D = _create(D, { enumerable: createDesc(0, false) });
|
||
} return setSymbolDesc(it, key, D);
|
||
} return dP(it, key, D);
|
||
};
|
||
var $defineProperties = function defineProperties(it, P) {
|
||
anObject(it);
|
||
var keys = enumKeys(P = toIObject(P));
|
||
var i = 0;
|
||
var l = keys.length;
|
||
var key;
|
||
while (l > i) $defineProperty(it, key = keys[i++], P[key]);
|
||
return it;
|
||
};
|
||
var $create = function create(it, P) {
|
||
return P === undefined ? _create(it) : $defineProperties(_create(it), P);
|
||
};
|
||
var $propertyIsEnumerable = function propertyIsEnumerable(key) {
|
||
var E = isEnum.call(this, key = toPrimitive(key, true));
|
||
if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
|
||
return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
|
||
};
|
||
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
|
||
it = toIObject(it);
|
||
key = toPrimitive(key, true);
|
||
if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
|
||
var D = gOPD(it, key);
|
||
if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
|
||
return D;
|
||
};
|
||
var $getOwnPropertyNames = function getOwnPropertyNames(it) {
|
||
var names = gOPN(toIObject(it));
|
||
var result = [];
|
||
var i = 0;
|
||
var key;
|
||
while (names.length > i) {
|
||
if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
|
||
} return result;
|
||
};
|
||
var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
|
||
var IS_OP = it === ObjectProto;
|
||
var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
|
||
var result = [];
|
||
var i = 0;
|
||
var key;
|
||
while (names.length > i) {
|
||
if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
|
||
} return result;
|
||
};
|
||
|
||
// 19.4.1.1 Symbol([description])
|
||
if (!USE_NATIVE) {
|
||
$Symbol = function Symbol() {
|
||
if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
|
||
var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
|
||
var $set = function (value) {
|
||
if (this === ObjectProto) $set.call(OPSymbols, value);
|
||
if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
|
||
setSymbolDesc(this, tag, createDesc(1, value));
|
||
};
|
||
if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
|
||
return wrap(tag);
|
||
};
|
||
redefine($Symbol[PROTOTYPE], 'toString', function toString() {
|
||
return this._k;
|
||
});
|
||
|
||
$GOPD.f = $getOwnPropertyDescriptor;
|
||
$DP.f = $defineProperty;
|
||
__webpack_require__(74).f = gOPNExt.f = $getOwnPropertyNames;
|
||
__webpack_require__(21).f = $propertyIsEnumerable;
|
||
$GOPS.f = $getOwnPropertySymbols;
|
||
|
||
if (DESCRIPTORS && !__webpack_require__(19)) {
|
||
redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
|
||
}
|
||
|
||
wksExt.f = function (name) {
|
||
return wrap(wks(name));
|
||
};
|
||
}
|
||
|
||
$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });
|
||
|
||
for (var es6Symbols = (
|
||
// 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
|
||
'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
|
||
).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
|
||
|
||
for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);
|
||
|
||
$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
|
||
// 19.4.2.1 Symbol.for(key)
|
||
'for': function (key) {
|
||
return has(SymbolRegistry, key += '')
|
||
? SymbolRegistry[key]
|
||
: SymbolRegistry[key] = $Symbol(key);
|
||
},
|
||
// 19.4.2.5 Symbol.keyFor(sym)
|
||
keyFor: function keyFor(sym) {
|
||
if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
|
||
for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
|
||
},
|
||
useSetter: function () { setter = true; },
|
||
useSimple: function () { setter = false; }
|
||
});
|
||
|
||
$export($export.S + $export.F * !USE_NATIVE, 'Object', {
|
||
// 19.1.2.2 Object.create(O [, Properties])
|
||
create: $create,
|
||
// 19.1.2.4 Object.defineProperty(O, P, Attributes)
|
||
defineProperty: $defineProperty,
|
||
// 19.1.2.3 Object.defineProperties(O, Properties)
|
||
defineProperties: $defineProperties,
|
||
// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
|
||
getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
|
||
// 19.1.2.7 Object.getOwnPropertyNames(O)
|
||
getOwnPropertyNames: $getOwnPropertyNames,
|
||
// 19.1.2.8 Object.getOwnPropertySymbols(O)
|
||
getOwnPropertySymbols: $getOwnPropertySymbols
|
||
});
|
||
|
||
// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
|
||
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
|
||
var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });
|
||
|
||
$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
|
||
getOwnPropertySymbols: function getOwnPropertySymbols(it) {
|
||
return $GOPS.f(toObject(it));
|
||
}
|
||
});
|
||
|
||
// 24.3.2 JSON.stringify(value [, replacer [, space]])
|
||
$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
|
||
var S = $Symbol();
|
||
// MS Edge converts symbol values to JSON as {}
|
||
// WebKit converts symbol values to JSON as null
|
||
// V8 throws on boxed symbols
|
||
return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
|
||
})), 'JSON', {
|
||
stringify: function stringify(it) {
|
||
var args = [it];
|
||
var i = 1;
|
||
var replacer, $replacer;
|
||
while (arguments.length > i) args.push(arguments[i++]);
|
||
$replacer = replacer = args[1];
|
||
if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
|
||
if (!isArray(replacer)) replacer = function (key, value) {
|
||
if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
|
||
if (!isSymbol(value)) return value;
|
||
};
|
||
args[1] = replacer;
|
||
return _stringify.apply($JSON, args);
|
||
}
|
||
});
|
||
|
||
// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
|
||
$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
|
||
// 19.4.3.5 Symbol.prototype[@@toStringTag]
|
||
setToStringTag($Symbol, 'Symbol');
|
||
// 20.2.1.9 Math[@@toStringTag]
|
||
setToStringTag(Math, 'Math', true);
|
||
// 24.3.3 JSON[@@toStringTag]
|
||
setToStringTag(global.JSON, 'JSON', true);
|
||
|
||
|
||
/***/ }),
|
||
/* 187 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var META = __webpack_require__(20)('meta');
|
||
var isObject = __webpack_require__(12);
|
||
var has = __webpack_require__(9);
|
||
var setDesc = __webpack_require__(6).f;
|
||
var id = 0;
|
||
var isExtensible = Object.isExtensible || function () {
|
||
return true;
|
||
};
|
||
var FREEZE = !__webpack_require__(14)(function () {
|
||
return isExtensible(Object.preventExtensions({}));
|
||
});
|
||
var setMeta = function (it) {
|
||
setDesc(it, META, { value: {
|
||
i: 'O' + ++id, // object ID
|
||
w: {} // weak collections IDs
|
||
} });
|
||
};
|
||
var fastKey = function (it, create) {
|
||
// return primitive with prefix
|
||
if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
|
||
if (!has(it, META)) {
|
||
// can't set metadata to uncaught frozen object
|
||
if (!isExtensible(it)) return 'F';
|
||
// not necessary to add metadata
|
||
if (!create) return 'E';
|
||
// add missing metadata
|
||
setMeta(it);
|
||
// return object ID
|
||
} return it[META].i;
|
||
};
|
||
var getWeak = function (it, create) {
|
||
if (!has(it, META)) {
|
||
// can't set metadata to uncaught frozen object
|
||
if (!isExtensible(it)) return true;
|
||
// not necessary to add metadata
|
||
if (!create) return false;
|
||
// add missing metadata
|
||
setMeta(it);
|
||
// return hash weak collections IDs
|
||
} return it[META].w;
|
||
};
|
||
// add metadata on freeze-family methods calling
|
||
var onFreeze = function (it) {
|
||
if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
|
||
return it;
|
||
};
|
||
var meta = module.exports = {
|
||
KEY: META,
|
||
NEED: false,
|
||
fastKey: fastKey,
|
||
getWeak: getWeak,
|
||
onFreeze: onFreeze
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 188 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// all enumerable object keys, includes symbols
|
||
var getKeys = __webpack_require__(18);
|
||
var gOPS = __webpack_require__(37);
|
||
var pIE = __webpack_require__(21);
|
||
module.exports = function (it) {
|
||
var result = getKeys(it);
|
||
var getSymbols = gOPS.f;
|
||
if (getSymbols) {
|
||
var symbols = getSymbols(it);
|
||
var isEnum = pIE.f;
|
||
var i = 0;
|
||
var key;
|
||
while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
|
||
} return result;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 189 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// 7.2.2 IsArray(argument)
|
||
var cof = __webpack_require__(31);
|
||
module.exports = Array.isArray || function isArray(arg) {
|
||
return cof(arg) == 'Array';
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 190 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
|
||
var toIObject = __webpack_require__(13);
|
||
var gOPN = __webpack_require__(74).f;
|
||
var toString = {}.toString;
|
||
|
||
var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
|
||
? Object.getOwnPropertyNames(window) : [];
|
||
|
||
var getWindowNames = function (it) {
|
||
try {
|
||
return gOPN(it);
|
||
} catch (e) {
|
||
return windowNames.slice();
|
||
}
|
||
};
|
||
|
||
module.exports.f = function getOwnPropertyNames(it) {
|
||
return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 191 */
|
||
/***/ (function(module, exports) {
|
||
|
||
|
||
|
||
/***/ }),
|
||
/* 192 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
__webpack_require__(53)('asyncIterator');
|
||
|
||
|
||
/***/ }),
|
||
/* 193 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
__webpack_require__(53)('observable');
|
||
|
||
|
||
/***/ }),
|
||
/* 194 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
exports.__esModule = true;
|
||
|
||
var _setPrototypeOf = __webpack_require__(195);
|
||
|
||
var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);
|
||
|
||
var _create = __webpack_require__(199);
|
||
|
||
var _create2 = _interopRequireDefault(_create);
|
||
|
||
var _typeof2 = __webpack_require__(73);
|
||
|
||
var _typeof3 = _interopRequireDefault(_typeof2);
|
||
|
||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||
|
||
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 === "undefined" ? "undefined" : (0, _typeof3.default)(superClass)));
|
||
}
|
||
|
||
subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {
|
||
constructor: {
|
||
value: subClass,
|
||
enumerable: false,
|
||
writable: true,
|
||
configurable: true
|
||
}
|
||
});
|
||
if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;
|
||
};
|
||
|
||
/***/ }),
|
||
/* 195 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
module.exports = { "default": __webpack_require__(196), __esModule: true };
|
||
|
||
/***/ }),
|
||
/* 196 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
__webpack_require__(197);
|
||
module.exports = __webpack_require__(2).Object.setPrototypeOf;
|
||
|
||
|
||
/***/ }),
|
||
/* 197 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// 19.1.3.19 Object.setPrototypeOf(O, proto)
|
||
var $export = __webpack_require__(8);
|
||
$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(198).set });
|
||
|
||
|
||
/***/ }),
|
||
/* 198 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
// Works with __proto__ only. Old v8 can't work with null proto objects.
|
||
/* eslint-disable no-proto */
|
||
var isObject = __webpack_require__(12);
|
||
var anObject = __webpack_require__(11);
|
||
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__(29)(Function.call, __webpack_require__(75).f(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
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 199 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
module.exports = { "default": __webpack_require__(200), __esModule: true };
|
||
|
||
/***/ }),
|
||
/* 200 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
__webpack_require__(201);
|
||
var $Object = __webpack_require__(2).Object;
|
||
module.exports = function create(P, D) {
|
||
return $Object.create(P, D);
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 201 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var $export = __webpack_require__(8);
|
||
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
|
||
$export($export.S, 'Object', { create: __webpack_require__(38) });
|
||
|
||
|
||
/***/ }),
|
||
/* 202 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
/* WEBPACK VAR INJECTION */(function(process) {/**
|
||
* Copyright (c) 2013-present, Facebook, Inc.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
var ReactIs = __webpack_require__(28);
|
||
|
||
// By explicitly using `prop-types` you are opting into new development behavior.
|
||
// http://fb.me/prop-types-in-prod
|
||
var throwOnDirectAccess = true;
|
||
module.exports = __webpack_require__(203)(ReactIs.isElement, throwOnDirectAccess);
|
||
} else {
|
||
// By explicitly using `prop-types` you are opting into new production behavior.
|
||
// http://fb.me/prop-types-in-prod
|
||
module.exports = __webpack_require__(205)();
|
||
}
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
|
||
|
||
/***/ }),
|
||
/* 203 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* WEBPACK VAR INJECTION */(function(process) {/**
|
||
* Copyright (c) 2013-present, Facebook, Inc.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
|
||
|
||
var ReactIs = __webpack_require__(28);
|
||
var assign = __webpack_require__(67);
|
||
|
||
var ReactPropTypesSecret = __webpack_require__(54);
|
||
var checkPropTypes = __webpack_require__(204);
|
||
|
||
var has = Function.call.bind(Object.prototype.hasOwnProperty);
|
||
var printWarning = function() {};
|
||
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
printWarning = function(text) {
|
||
var message = 'Warning: ' + text;
|
||
if (typeof console !== 'undefined') {
|
||
console.error(message);
|
||
}
|
||
try {
|
||
// --- Welcome to debugging React ---
|
||
// This error was thrown as a convenience so that you can use this stack
|
||
// to find the callsite that caused this warning to fire.
|
||
throw new Error(message);
|
||
} catch (x) {}
|
||
};
|
||
}
|
||
|
||
function emptyFunctionThatReturnsNull() {
|
||
return null;
|
||
}
|
||
|
||
module.exports = function(isValidElement, throwOnDirectAccess) {
|
||
/* global Symbol */
|
||
var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
|
||
var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
|
||
|
||
/**
|
||
* Returns the iterator method function contained on the iterable object.
|
||
*
|
||
* Be sure to invoke the function with the iterable as context:
|
||
*
|
||
* var iteratorFn = getIteratorFn(myIterable);
|
||
* if (iteratorFn) {
|
||
* var iterator = iteratorFn.call(myIterable);
|
||
* ...
|
||
* }
|
||
*
|
||
* @param {?object} maybeIterable
|
||
* @return {?function}
|
||
*/
|
||
function getIteratorFn(maybeIterable) {
|
||
var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
|
||
if (typeof iteratorFn === 'function') {
|
||
return iteratorFn;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Collection of methods that allow declaration and validation of props that are
|
||
* supplied to React components. Example usage:
|
||
*
|
||
* var Props = require('ReactPropTypes');
|
||
* var MyArticle = React.createClass({
|
||
* propTypes: {
|
||
* // An optional string prop named "description".
|
||
* description: Props.string,
|
||
*
|
||
* // A required enum prop named "category".
|
||
* category: Props.oneOf(['News','Photos']).isRequired,
|
||
*
|
||
* // A prop named "dialog" that requires an instance of Dialog.
|
||
* dialog: Props.instanceOf(Dialog).isRequired
|
||
* },
|
||
* render: function() { ... }
|
||
* });
|
||
*
|
||
* A more formal specification of how these methods are used:
|
||
*
|
||
* type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
|
||
* decl := ReactPropTypes.{type}(.isRequired)?
|
||
*
|
||
* Each and every declaration produces a function with the same signature. This
|
||
* allows the creation of custom validation functions. For example:
|
||
*
|
||
* var MyLink = React.createClass({
|
||
* propTypes: {
|
||
* // An optional string or URI prop named "href".
|
||
* href: function(props, propName, componentName) {
|
||
* var propValue = props[propName];
|
||
* if (propValue != null && typeof propValue !== 'string' &&
|
||
* !(propValue instanceof URI)) {
|
||
* return new Error(
|
||
* 'Expected a string or an URI for ' + propName + ' in ' +
|
||
* componentName
|
||
* );
|
||
* }
|
||
* }
|
||
* },
|
||
* render: function() {...}
|
||
* });
|
||
*
|
||
* @internal
|
||
*/
|
||
|
||
var ANONYMOUS = '<<anonymous>>';
|
||
|
||
// Important!
|
||
// Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
|
||
var ReactPropTypes = {
|
||
array: createPrimitiveTypeChecker('array'),
|
||
bool: createPrimitiveTypeChecker('boolean'),
|
||
func: createPrimitiveTypeChecker('function'),
|
||
number: createPrimitiveTypeChecker('number'),
|
||
object: createPrimitiveTypeChecker('object'),
|
||
string: createPrimitiveTypeChecker('string'),
|
||
symbol: createPrimitiveTypeChecker('symbol'),
|
||
|
||
any: createAnyTypeChecker(),
|
||
arrayOf: createArrayOfTypeChecker,
|
||
element: createElementTypeChecker(),
|
||
elementType: createElementTypeTypeChecker(),
|
||
instanceOf: createInstanceTypeChecker,
|
||
node: createNodeChecker(),
|
||
objectOf: createObjectOfTypeChecker,
|
||
oneOf: createEnumTypeChecker,
|
||
oneOfType: createUnionTypeChecker,
|
||
shape: createShapeTypeChecker,
|
||
exact: createStrictShapeTypeChecker,
|
||
};
|
||
|
||
/**
|
||
* inlined Object.is polyfill to avoid requiring consumers ship their own
|
||
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
|
||
*/
|
||
/*eslint-disable no-self-compare*/
|
||
function is(x, y) {
|
||
// SameValue algorithm
|
||
if (x === y) {
|
||
// Steps 1-5, 7-10
|
||
// Steps 6.b-6.e: +0 != -0
|
||
return x !== 0 || 1 / x === 1 / y;
|
||
} else {
|
||
// Step 6.a: NaN == NaN
|
||
return x !== x && y !== y;
|
||
}
|
||
}
|
||
/*eslint-enable no-self-compare*/
|
||
|
||
/**
|
||
* We use an Error-like object for backward compatibility as people may call
|
||
* PropTypes directly and inspect their output. However, we don't use real
|
||
* Errors anymore. We don't inspect their stack anyway, and creating them
|
||
* is prohibitively expensive if they are created too often, such as what
|
||
* happens in oneOfType() for any type before the one that matched.
|
||
*/
|
||
function PropTypeError(message) {
|
||
this.message = message;
|
||
this.stack = '';
|
||
}
|
||
// Make `instanceof Error` still work for returned errors.
|
||
PropTypeError.prototype = Error.prototype;
|
||
|
||
function createChainableTypeChecker(validate) {
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
var manualPropTypeCallCache = {};
|
||
var manualPropTypeWarningCount = 0;
|
||
}
|
||
function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
|
||
componentName = componentName || ANONYMOUS;
|
||
propFullName = propFullName || propName;
|
||
|
||
if (secret !== ReactPropTypesSecret) {
|
||
if (throwOnDirectAccess) {
|
||
// New behavior only for users of `prop-types` package
|
||
var err = new Error(
|
||
'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'
|
||
);
|
||
err.name = 'Invariant Violation';
|
||
throw err;
|
||
} else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {
|
||
// Old behavior for people using React.PropTypes
|
||
var cacheKey = componentName + ':' + propName;
|
||
if (
|
||
!manualPropTypeCallCache[cacheKey] &&
|
||
// Avoid spamming the console because they are often not actionable except for lib authors
|
||
manualPropTypeWarningCount < 3
|
||
) {
|
||
printWarning(
|
||
'You are manually calling a React.PropTypes validation ' +
|
||
'function for the `' + propFullName + '` prop on `' + componentName + '`. 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.'
|
||
);
|
||
manualPropTypeCallCache[cacheKey] = true;
|
||
manualPropTypeWarningCount++;
|
||
}
|
||
}
|
||
}
|
||
if (props[propName] == null) {
|
||
if (isRequired) {
|
||
if (props[propName] === null) {
|
||
return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
|
||
}
|
||
return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
|
||
}
|
||
return null;
|
||
} else {
|
||
return validate(props, propName, componentName, location, propFullName);
|
||
}
|
||
}
|
||
|
||
var chainedCheckType = checkType.bind(null, false);
|
||
chainedCheckType.isRequired = checkType.bind(null, true);
|
||
|
||
return chainedCheckType;
|
||
}
|
||
|
||
function createPrimitiveTypeChecker(expectedType) {
|
||
function validate(props, propName, componentName, location, propFullName, secret) {
|
||
var propValue = props[propName];
|
||
var propType = getPropType(propValue);
|
||
if (propType !== expectedType) {
|
||
// `propValue` being instance of, say, date/regexp, pass the 'object'
|
||
// check, but we can offer a more precise error message here rather than
|
||
// 'of type `object`'.
|
||
var preciseType = getPreciseType(propValue);
|
||
|
||
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
|
||
}
|
||
return null;
|
||
}
|
||
return createChainableTypeChecker(validate);
|
||
}
|
||
|
||
function createAnyTypeChecker() {
|
||
return createChainableTypeChecker(emptyFunctionThatReturnsNull);
|
||
}
|
||
|
||
function createArrayOfTypeChecker(typeChecker) {
|
||
function validate(props, propName, componentName, location, propFullName) {
|
||
if (typeof typeChecker !== 'function') {
|
||
return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
|
||
}
|
||
var propValue = props[propName];
|
||
if (!Array.isArray(propValue)) {
|
||
var propType = getPropType(propValue);
|
||
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
|
||
}
|
||
for (var i = 0; i < propValue.length; i++) {
|
||
var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
|
||
if (error instanceof Error) {
|
||
return error;
|
||
}
|
||
}
|
||
return null;
|
||
}
|
||
return createChainableTypeChecker(validate);
|
||
}
|
||
|
||
function createElementTypeChecker() {
|
||
function validate(props, propName, componentName, location, propFullName) {
|
||
var propValue = props[propName];
|
||
if (!isValidElement(propValue)) {
|
||
var propType = getPropType(propValue);
|
||
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
|
||
}
|
||
return null;
|
||
}
|
||
return createChainableTypeChecker(validate);
|
||
}
|
||
|
||
function createElementTypeTypeChecker() {
|
||
function validate(props, propName, componentName, location, propFullName) {
|
||
var propValue = props[propName];
|
||
if (!ReactIs.isValidElementType(propValue)) {
|
||
var propType = getPropType(propValue);
|
||
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));
|
||
}
|
||
return null;
|
||
}
|
||
return createChainableTypeChecker(validate);
|
||
}
|
||
|
||
function createInstanceTypeChecker(expectedClass) {
|
||
function validate(props, propName, componentName, location, propFullName) {
|
||
if (!(props[propName] instanceof expectedClass)) {
|
||
var expectedClassName = expectedClass.name || ANONYMOUS;
|
||
var actualClassName = getClassName(props[propName]);
|
||
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
|
||
}
|
||
return null;
|
||
}
|
||
return createChainableTypeChecker(validate);
|
||
}
|
||
|
||
function createEnumTypeChecker(expectedValues) {
|
||
if (!Array.isArray(expectedValues)) {
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
if (arguments.length > 1) {
|
||
printWarning(
|
||
'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +
|
||
'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'
|
||
);
|
||
} else {
|
||
printWarning('Invalid argument supplied to oneOf, expected an array.');
|
||
}
|
||
}
|
||
return emptyFunctionThatReturnsNull;
|
||
}
|
||
|
||
function validate(props, propName, componentName, location, propFullName) {
|
||
var propValue = props[propName];
|
||
for (var i = 0; i < expectedValues.length; i++) {
|
||
if (is(propValue, expectedValues[i])) {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {
|
||
var type = getPreciseType(value);
|
||
if (type === 'symbol') {
|
||
return String(value);
|
||
}
|
||
return value;
|
||
});
|
||
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
|
||
}
|
||
return createChainableTypeChecker(validate);
|
||
}
|
||
|
||
function createObjectOfTypeChecker(typeChecker) {
|
||
function validate(props, propName, componentName, location, propFullName) {
|
||
if (typeof typeChecker !== 'function') {
|
||
return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
|
||
}
|
||
var propValue = props[propName];
|
||
var propType = getPropType(propValue);
|
||
if (propType !== 'object') {
|
||
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
|
||
}
|
||
for (var key in propValue) {
|
||
if (has(propValue, key)) {
|
||
var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
|
||
if (error instanceof Error) {
|
||
return error;
|
||
}
|
||
}
|
||
}
|
||
return null;
|
||
}
|
||
return createChainableTypeChecker(validate);
|
||
}
|
||
|
||
function createUnionTypeChecker(arrayOfTypeCheckers) {
|
||
if (!Array.isArray(arrayOfTypeCheckers)) {
|
||
process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;
|
||
return emptyFunctionThatReturnsNull;
|
||
}
|
||
|
||
for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
|
||
var checker = arrayOfTypeCheckers[i];
|
||
if (typeof checker !== 'function') {
|
||
printWarning(
|
||
'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
|
||
'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
|
||
);
|
||
return emptyFunctionThatReturnsNull;
|
||
}
|
||
}
|
||
|
||
function validate(props, propName, componentName, location, propFullName) {
|
||
for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
|
||
var checker = arrayOfTypeCheckers[i];
|
||
if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
|
||
}
|
||
return createChainableTypeChecker(validate);
|
||
}
|
||
|
||
function createNodeChecker() {
|
||
function validate(props, propName, componentName, location, propFullName) {
|
||
if (!isNode(props[propName])) {
|
||
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
|
||
}
|
||
return null;
|
||
}
|
||
return createChainableTypeChecker(validate);
|
||
}
|
||
|
||
function createShapeTypeChecker(shapeTypes) {
|
||
function validate(props, propName, componentName, location, propFullName) {
|
||
var propValue = props[propName];
|
||
var propType = getPropType(propValue);
|
||
if (propType !== 'object') {
|
||
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
|
||
}
|
||
for (var key in shapeTypes) {
|
||
var checker = shapeTypes[key];
|
||
if (!checker) {
|
||
continue;
|
||
}
|
||
var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
|
||
if (error) {
|
||
return error;
|
||
}
|
||
}
|
||
return null;
|
||
}
|
||
return createChainableTypeChecker(validate);
|
||
}
|
||
|
||
function createStrictShapeTypeChecker(shapeTypes) {
|
||
function validate(props, propName, componentName, location, propFullName) {
|
||
var propValue = props[propName];
|
||
var propType = getPropType(propValue);
|
||
if (propType !== 'object') {
|
||
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
|
||
}
|
||
// We need to check all keys in case some are required but missing from
|
||
// props.
|
||
var allKeys = assign({}, props[propName], shapeTypes);
|
||
for (var key in allKeys) {
|
||
var checker = shapeTypes[key];
|
||
if (!checker) {
|
||
return new PropTypeError(
|
||
'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
|
||
'\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
|
||
'\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
|
||
);
|
||
}
|
||
var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
|
||
if (error) {
|
||
return error;
|
||
}
|
||
}
|
||
return null;
|
||
}
|
||
|
||
return createChainableTypeChecker(validate);
|
||
}
|
||
|
||
function isNode(propValue) {
|
||
switch (typeof propValue) {
|
||
case 'number':
|
||
case 'string':
|
||
case 'undefined':
|
||
return true;
|
||
case 'boolean':
|
||
return !propValue;
|
||
case 'object':
|
||
if (Array.isArray(propValue)) {
|
||
return propValue.every(isNode);
|
||
}
|
||
if (propValue === null || isValidElement(propValue)) {
|
||
return true;
|
||
}
|
||
|
||
var iteratorFn = getIteratorFn(propValue);
|
||
if (iteratorFn) {
|
||
var iterator = iteratorFn.call(propValue);
|
||
var step;
|
||
if (iteratorFn !== propValue.entries) {
|
||
while (!(step = iterator.next()).done) {
|
||
if (!isNode(step.value)) {
|
||
return false;
|
||
}
|
||
}
|
||
} else {
|
||
// Iterator will provide entry [k,v] tuples rather than values.
|
||
while (!(step = iterator.next()).done) {
|
||
var entry = step.value;
|
||
if (entry) {
|
||
if (!isNode(entry[1])) {
|
||
return false;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} else {
|
||
return false;
|
||
}
|
||
|
||
return true;
|
||
default:
|
||
return false;
|
||
}
|
||
}
|
||
|
||
function isSymbol(propType, propValue) {
|
||
// Native Symbol.
|
||
if (propType === 'symbol') {
|
||
return true;
|
||
}
|
||
|
||
// falsy value can't be a Symbol
|
||
if (!propValue) {
|
||
return false;
|
||
}
|
||
|
||
// 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
|
||
if (propValue['@@toStringTag'] === 'Symbol') {
|
||
return true;
|
||
}
|
||
|
||
// Fallback for non-spec compliant Symbols which are polyfilled.
|
||
if (typeof Symbol === 'function' && propValue instanceof Symbol) {
|
||
return true;
|
||
}
|
||
|
||
return false;
|
||
}
|
||
|
||
// Equivalent of `typeof` but with special handling for array and regexp.
|
||
function getPropType(propValue) {
|
||
var propType = typeof propValue;
|
||
if (Array.isArray(propValue)) {
|
||
return 'array';
|
||
}
|
||
if (propValue instanceof RegExp) {
|
||
// Old webkits (at least until Android 4.0) return 'function' rather than
|
||
// 'object' for typeof a RegExp. We'll normalize this here so that /bla/
|
||
// passes PropTypes.object.
|
||
return 'object';
|
||
}
|
||
if (isSymbol(propType, propValue)) {
|
||
return 'symbol';
|
||
}
|
||
return propType;
|
||
}
|
||
|
||
// This handles more types than `getPropType`. Only used for error messages.
|
||
// See `createPrimitiveTypeChecker`.
|
||
function getPreciseType(propValue) {
|
||
if (typeof propValue === 'undefined' || propValue === null) {
|
||
return '' + propValue;
|
||
}
|
||
var propType = getPropType(propValue);
|
||
if (propType === 'object') {
|
||
if (propValue instanceof Date) {
|
||
return 'date';
|
||
} else if (propValue instanceof RegExp) {
|
||
return 'regexp';
|
||
}
|
||
}
|
||
return propType;
|
||
}
|
||
|
||
// Returns a string that is postfixed to a warning about an invalid type.
|
||
// For example, "undefined" or "of type array"
|
||
function getPostfixForTypeWarning(value) {
|
||
var type = getPreciseType(value);
|
||
switch (type) {
|
||
case 'array':
|
||
case 'object':
|
||
return 'an ' + type;
|
||
case 'boolean':
|
||
case 'date':
|
||
case 'regexp':
|
||
return 'a ' + type;
|
||
default:
|
||
return type;
|
||
}
|
||
}
|
||
|
||
// Returns class name of the object, if any.
|
||
function getClassName(propValue) {
|
||
if (!propValue.constructor || !propValue.constructor.name) {
|
||
return ANONYMOUS;
|
||
}
|
||
return propValue.constructor.name;
|
||
}
|
||
|
||
ReactPropTypes.checkPropTypes = checkPropTypes;
|
||
ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;
|
||
ReactPropTypes.PropTypes = ReactPropTypes;
|
||
|
||
return ReactPropTypes;
|
||
};
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
|
||
|
||
/***/ }),
|
||
/* 204 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* WEBPACK VAR INJECTION */(function(process) {/**
|
||
* Copyright (c) 2013-present, Facebook, Inc.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
|
||
|
||
var printWarning = function() {};
|
||
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
var ReactPropTypesSecret = __webpack_require__(54);
|
||
var loggedTypeFailures = {};
|
||
var has = Function.call.bind(Object.prototype.hasOwnProperty);
|
||
|
||
printWarning = function(text) {
|
||
var message = 'Warning: ' + text;
|
||
if (typeof console !== 'undefined') {
|
||
console.error(message);
|
||
}
|
||
try {
|
||
// --- Welcome to debugging React ---
|
||
// This error was thrown as a convenience so that you can use this stack
|
||
// to find the callsite that caused this warning to fire.
|
||
throw new Error(message);
|
||
} catch (x) {}
|
||
};
|
||
}
|
||
|
||
/**
|
||
* Assert that the values match with the type specs.
|
||
* Error messages are memorized and will only be shown once.
|
||
*
|
||
* @param {object} typeSpecs Map of name to a ReactPropType
|
||
* @param {object} values Runtime values that need to be type-checked
|
||
* @param {string} location e.g. "prop", "context", "child context"
|
||
* @param {string} componentName Name of the component for error messages.
|
||
* @param {?Function} getStack Returns the component stack.
|
||
* @private
|
||
*/
|
||
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
for (var typeSpecName in typeSpecs) {
|
||
if (has(typeSpecs, typeSpecName)) {
|
||
var error;
|
||
// Prop type validation may throw. In case they do, we don't want to
|
||
// fail the render phase where it didn't fail before. So we log it.
|
||
// After these have been cleaned up, we'll let them throw.
|
||
try {
|
||
// This is intentionally an invariant that gets caught. It's the same
|
||
// behavior as without this statement except with a better message.
|
||
if (typeof typeSpecs[typeSpecName] !== 'function') {
|
||
var err = Error(
|
||
(componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
|
||
'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'
|
||
);
|
||
err.name = 'Invariant Violation';
|
||
throw err;
|
||
}
|
||
error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
|
||
} catch (ex) {
|
||
error = ex;
|
||
}
|
||
if (error && !(error instanceof Error)) {
|
||
printWarning(
|
||
(componentName || 'React class') + ': type specification of ' +
|
||
location + ' `' + typeSpecName + '` is invalid; the type checker ' +
|
||
'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
|
||
'You may have forgotten to pass an argument to the type checker ' +
|
||
'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
|
||
'shape all require an argument).'
|
||
);
|
||
}
|
||
if (error instanceof Error && !(error.message in loggedTypeFailures)) {
|
||
// Only monitor this failure once because there tends to be a lot of the
|
||
// same error.
|
||
loggedTypeFailures[error.message] = true;
|
||
|
||
var stack = getStack ? getStack() : '';
|
||
|
||
printWarning(
|
||
'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
|
||
);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Resets warning cache when testing.
|
||
*
|
||
* @private
|
||
*/
|
||
checkPropTypes.resetWarningCache = function() {
|
||
if (process.env.NODE_ENV !== 'production') {
|
||
loggedTypeFailures = {};
|
||
}
|
||
}
|
||
|
||
module.exports = checkPropTypes;
|
||
|
||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
|
||
|
||
/***/ }),
|
||
/* 205 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/**
|
||
* Copyright (c) 2013-present, Facebook, Inc.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/
|
||
|
||
|
||
|
||
var ReactPropTypesSecret = __webpack_require__(54);
|
||
|
||
function emptyFunction() {}
|
||
function emptyFunctionWithReset() {}
|
||
emptyFunctionWithReset.resetWarningCache = emptyFunction;
|
||
|
||
module.exports = function() {
|
||
function shim(props, propName, componentName, location, propFullName, secret) {
|
||
if (secret === ReactPropTypesSecret) {
|
||
// It is still safe when called from React.
|
||
return;
|
||
}
|
||
var err = new Error(
|
||
'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'
|
||
);
|
||
err.name = 'Invariant Violation';
|
||
throw err;
|
||
};
|
||
shim.isRequired = shim;
|
||
function getShim() {
|
||
return shim;
|
||
};
|
||
// Important!
|
||
// Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
|
||
var ReactPropTypes = {
|
||
array: shim,
|
||
bool: shim,
|
||
func: shim,
|
||
number: shim,
|
||
object: shim,
|
||
string: shim,
|
||
symbol: shim,
|
||
|
||
any: shim,
|
||
arrayOf: getShim,
|
||
element: shim,
|
||
elementType: shim,
|
||
instanceOf: getShim,
|
||
node: shim,
|
||
objectOf: getShim,
|
||
oneOf: getShim,
|
||
oneOfType: getShim,
|
||
shape: getShim,
|
||
exact: getShim,
|
||
|
||
checkPropTypes: emptyFunctionWithReset,
|
||
resetWarningCache: emptyFunction
|
||
};
|
||
|
||
ReactPropTypes.PropTypes = ReactPropTypes;
|
||
|
||
return ReactPropTypes;
|
||
};
|
||
|
||
|
||
/***/ }),
|
||
/* 206 */
|
||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||
|
||
"use strict";
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(16);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom__ = __webpack_require__(207);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react_dom__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_dom_scroll_into_view__ = __webpack_require__(208);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_dom_scroll_into_view___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_dom_scroll_into_view__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_has__ = __webpack_require__(211);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_has___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash_has__);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__createBaseForm__ = __webpack_require__(56);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__createForm__ = __webpack_require__(55);
|
||
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__utils__ = __webpack_require__(51);
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
function computedStyle(el, prop) {
|
||
var getComputedStyle = window.getComputedStyle;
|
||
var style =
|
||
// If we have getComputedStyle
|
||
getComputedStyle ?
|
||
// Query it
|
||
// TODO: From CSS-Query notes, we might need (node, null) for FF
|
||
getComputedStyle(el) :
|
||
|
||
// Otherwise, we are in IE and use currentStyle
|
||
el.currentStyle;
|
||
if (style) {
|
||
return style[
|
||
// Switch to camelCase for CSSOM
|
||
// DEV: Grabbed from jQuery
|
||
// https://github.com/jquery/jquery/blob/1.9-stable/src/css.js#L191-L194
|
||
// https://github.com/jquery/jquery/blob/1.9-stable/src/core.js#L593-L597
|
||
prop.replace(/-(\w)/gi, function (word, letter) {
|
||
return letter.toUpperCase();
|
||
})];
|
||
}
|
||
return undefined;
|
||
}
|
||
|
||
function getScrollableContainer(n) {
|
||
var node = n;
|
||
var nodeName = void 0;
|
||
/* eslint no-cond-assign:0 */
|
||
while ((nodeName = node.nodeName.toLowerCase()) !== 'body') {
|
||
var overflowY = computedStyle(node, 'overflowY');
|
||
// https://stackoverflow.com/a/36900407/3040605
|
||
if (node !== n && (overflowY === 'auto' || overflowY === 'scroll') && node.scrollHeight > node.clientHeight) {
|
||
return node;
|
||
}
|
||
node = node.parentNode;
|
||
}
|
||
return nodeName === 'body' ? node.ownerDocument : node;
|
||
}
|
||
|
||
var mixin = {
|
||
getForm: function getForm() {
|
||
return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, __WEBPACK_IMPORTED_MODULE_5__createForm__["b" /* mixin */].getForm.call(this), {
|
||
validateFieldsAndScroll: this.validateFieldsAndScroll
|
||
});
|
||
},
|
||
validateFieldsAndScroll: function validateFieldsAndScroll(ns, opt, cb) {
|
||
var _this = this;
|
||
|
||
var _getParams = Object(__WEBPACK_IMPORTED_MODULE_6__utils__["e" /* getParams */])(ns, opt, cb),
|
||
names = _getParams.names,
|
||
callback = _getParams.callback,
|
||
options = _getParams.options;
|
||
|
||
var newCb = function newCb(error, values) {
|
||
if (error) {
|
||
var validNames = _this.fieldsStore.getValidFieldsName();
|
||
var firstNode = void 0;
|
||
var firstTop = void 0;
|
||
|
||
validNames.forEach(function (name) {
|
||
if (__WEBPACK_IMPORTED_MODULE_3_lodash_has___default()(error, name)) {
|
||
var instance = _this.getFieldInstance(name);
|
||
if (instance) {
|
||
var node = __WEBPACK_IMPORTED_MODULE_1_react_dom___default.a.findDOMNode(instance);
|
||
var top = node.getBoundingClientRect().top;
|
||
if (node.type !== 'hidden' && (firstTop === undefined || firstTop > top)) {
|
||
firstTop = top;
|
||
firstNode = node;
|
||
}
|
||
}
|
||
}
|
||
});
|
||
|
||
if (firstNode) {
|
||
var c = options.container || getScrollableContainer(firstNode);
|
||
__WEBPACK_IMPORTED_MODULE_2_dom_scroll_into_view___default()(firstNode, c, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({
|
||
onlyScrollIfNeeded: true
|
||
}, options.scroll));
|
||
}
|
||
}
|
||
|
||
if (typeof callback === 'function') {
|
||
callback(error, values);
|
||
}
|
||
};
|
||
|
||
return this.validateFields(names, options, newCb);
|
||
}
|
||
};
|
||
|
||
function createDOMForm(option) {
|
||
return Object(__WEBPACK_IMPORTED_MODULE_4__createBaseForm__["a" /* default */])(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, option), [mixin]);
|
||
}
|
||
|
||
/* harmony default export */ __webpack_exports__["a"] = (createDOMForm);
|
||
|
||
/***/ }),
|
||
/* 207 */
|
||
/***/ (function(module, exports) {
|
||
|
||
module.exports = __WEBPACK_EXTERNAL_MODULE_207__;
|
||
|
||
/***/ }),
|
||
/* 208 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
module.exports = __webpack_require__(209);
|
||
|
||
/***/ }),
|
||
/* 209 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var util = __webpack_require__(210);
|
||
|
||
function scrollIntoView(elem, container, config) {
|
||
config = config || {};
|
||
// document 归一化到 window
|
||
if (container.nodeType === 9) {
|
||
container = util.getWindow(container);
|
||
}
|
||
|
||
var allowHorizontalScroll = config.allowHorizontalScroll;
|
||
var onlyScrollIfNeeded = config.onlyScrollIfNeeded;
|
||
var alignWithTop = config.alignWithTop;
|
||
var alignWithLeft = config.alignWithLeft;
|
||
var offsetTop = config.offsetTop || 0;
|
||
var offsetLeft = config.offsetLeft || 0;
|
||
var offsetBottom = config.offsetBottom || 0;
|
||
var offsetRight = config.offsetRight || 0;
|
||
|
||
allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll;
|
||
|
||
var isWin = util.isWindow(container);
|
||
var elemOffset = util.offset(elem);
|
||
var eh = util.outerHeight(elem);
|
||
var ew = util.outerWidth(elem);
|
||
var containerOffset = undefined;
|
||
var ch = undefined;
|
||
var cw = undefined;
|
||
var containerScroll = undefined;
|
||
var diffTop = undefined;
|
||
var diffBottom = undefined;
|
||
var win = undefined;
|
||
var winScroll = undefined;
|
||
var ww = undefined;
|
||
var wh = undefined;
|
||
|
||
if (isWin) {
|
||
win = container;
|
||
wh = util.height(win);
|
||
ww = util.width(win);
|
||
winScroll = {
|
||
left: util.scrollLeft(win),
|
||
top: util.scrollTop(win)
|
||
};
|
||
// elem 相对 container 可视视窗的距离
|
||
diffTop = {
|
||
left: elemOffset.left - winScroll.left - offsetLeft,
|
||
top: elemOffset.top - winScroll.top - offsetTop
|
||
};
|
||
diffBottom = {
|
||
left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight,
|
||
top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom
|
||
};
|
||
containerScroll = winScroll;
|
||
} else {
|
||
containerOffset = util.offset(container);
|
||
ch = container.clientHeight;
|
||
cw = container.clientWidth;
|
||
containerScroll = {
|
||
left: container.scrollLeft,
|
||
top: container.scrollTop
|
||
};
|
||
// elem 相对 container 可视视窗的距离
|
||
// 注意边框, offset 是边框到根节点
|
||
diffTop = {
|
||
left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft,
|
||
top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop
|
||
};
|
||
diffBottom = {
|
||
left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight,
|
||
top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom
|
||
};
|
||
}
|
||
|
||
if (diffTop.top < 0 || diffBottom.top > 0) {
|
||
// 强制向上
|
||
if (alignWithTop === true) {
|
||
util.scrollTop(container, containerScroll.top + diffTop.top);
|
||
} else if (alignWithTop === false) {
|
||
util.scrollTop(container, containerScroll.top + diffBottom.top);
|
||
} else {
|
||
// 自动调整
|
||
if (diffTop.top < 0) {
|
||
util.scrollTop(container, containerScroll.top + diffTop.top);
|
||
} else {
|
||
util.scrollTop(container, containerScroll.top + diffBottom.top);
|
||
}
|
||
}
|
||
} else {
|
||
if (!onlyScrollIfNeeded) {
|
||
alignWithTop = alignWithTop === undefined ? true : !!alignWithTop;
|
||
if (alignWithTop) {
|
||
util.scrollTop(container, containerScroll.top + diffTop.top);
|
||
} else {
|
||
util.scrollTop(container, containerScroll.top + diffBottom.top);
|
||
}
|
||
}
|
||
}
|
||
|
||
if (allowHorizontalScroll) {
|
||
if (diffTop.left < 0 || diffBottom.left > 0) {
|
||
// 强制向上
|
||
if (alignWithLeft === true) {
|
||
util.scrollLeft(container, containerScroll.left + diffTop.left);
|
||
} else if (alignWithLeft === false) {
|
||
util.scrollLeft(container, containerScroll.left + diffBottom.left);
|
||
} else {
|
||
// 自动调整
|
||
if (diffTop.left < 0) {
|
||
util.scrollLeft(container, containerScroll.left + diffTop.left);
|
||
} else {
|
||
util.scrollLeft(container, containerScroll.left + diffBottom.left);
|
||
}
|
||
}
|
||
} else {
|
||
if (!onlyScrollIfNeeded) {
|
||
alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft;
|
||
if (alignWithLeft) {
|
||
util.scrollLeft(container, containerScroll.left + diffTop.left);
|
||
} else {
|
||
util.scrollLeft(container, containerScroll.left + diffBottom.left);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
module.exports = scrollIntoView;
|
||
|
||
/***/ }),
|
||
/* 210 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
"use strict";
|
||
|
||
|
||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
||
|
||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
|
||
|
||
var RE_NUM = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source;
|
||
|
||
function getClientPosition(elem) {
|
||
var box = undefined;
|
||
var x = undefined;
|
||
var y = undefined;
|
||
var doc = elem.ownerDocument;
|
||
var body = doc.body;
|
||
var docElem = doc && doc.documentElement;
|
||
// 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式
|
||
box = elem.getBoundingClientRect();
|
||
|
||
// 注:jQuery 还考虑减去 docElem.clientLeft/clientTop
|
||
// 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确
|
||
// 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin
|
||
|
||
x = box.left;
|
||
y = box.top;
|
||
|
||
// In IE, most of the time, 2 extra pixels are added to the top and left
|
||
// due to the implicit 2-pixel inset border. In IE6/7 quirks mode and
|
||
// IE6 standards mode, this border can be overridden by setting the
|
||
// document element's border to zero -- thus, we cannot rely on the
|
||
// offset always being 2 pixels.
|
||
|
||
// In quirks mode, the offset can be determined by querying the body's
|
||
// clientLeft/clientTop, but in standards mode, it is found by querying
|
||
// the document element's clientLeft/clientTop. Since we already called
|
||
// getClientBoundingRect we have already forced a reflow, so it is not
|
||
// too expensive just to query them all.
|
||
|
||
// ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的
|
||
// 窗口边框标准是设 documentElement ,quirks 时设置 body
|
||
// 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去
|
||
// 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置
|
||
// 标准 ie 下 docElem.clientTop 就是 border-top
|
||
// ie7 html 即窗口边框改变不了。永远为 2
|
||
// 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0
|
||
|
||
x -= docElem.clientLeft || body.clientLeft || 0;
|
||
y -= docElem.clientTop || body.clientTop || 0;
|
||
|
||
return {
|
||
left: x,
|
||
top: y
|
||
};
|
||
}
|
||
|
||
function getScroll(w, top) {
|
||
var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];
|
||
var method = 'scroll' + (top ? 'Top' : 'Left');
|
||
if (typeof ret !== 'number') {
|
||
var d = w.document;
|
||
// ie6,7,8 standard mode
|
||
ret = d.documentElement[method];
|
||
if (typeof ret !== 'number') {
|
||
// quirks mode
|
||
ret = d.body[method];
|
||
}
|
||
}
|
||
return ret;
|
||
}
|
||
|
||
function getScrollLeft(w) {
|
||
return getScroll(w);
|
||
}
|
||
|
||
function getScrollTop(w) {
|
||
return getScroll(w, true);
|
||
}
|
||
|
||
function getOffset(el) {
|
||
var pos = getClientPosition(el);
|
||
var doc = el.ownerDocument;
|
||
var w = doc.defaultView || doc.parentWindow;
|
||
pos.left += getScrollLeft(w);
|
||
pos.top += getScrollTop(w);
|
||
return pos;
|
||
}
|
||
function _getComputedStyle(elem, name, computedStyle_) {
|
||
var val = '';
|
||
var d = elem.ownerDocument;
|
||
var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null);
|
||
|
||
// https://github.com/kissyteam/kissy/issues/61
|
||
if (computedStyle) {
|
||
val = computedStyle.getPropertyValue(name) || computedStyle[name];
|
||
}
|
||
|
||
return val;
|
||
}
|
||
|
||
var _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');
|
||
var RE_POS = /^(top|right|bottom|left)$/;
|
||
var CURRENT_STYLE = 'currentStyle';
|
||
var RUNTIME_STYLE = 'runtimeStyle';
|
||
var LEFT = 'left';
|
||
var PX = 'px';
|
||
|
||
function _getComputedStyleIE(elem, name) {
|
||
// currentStyle maybe null
|
||
// http://msdn.microsoft.com/en-us/library/ms535231.aspx
|
||
var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];
|
||
|
||
// 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值
|
||
// 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19
|
||
// 在 ie 下不对,需要直接用 offset 方式
|
||
// borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了
|
||
|
||
// From the awesome hack by Dean Edwards
|
||
// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
|
||
// If we're not dealing with a regular pixel number
|
||
// but a number that has a weird ending, we need to convert it to pixels
|
||
// exclude left right for relativity
|
||
if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {
|
||
// Remember the original values
|
||
var style = elem.style;
|
||
var left = style[LEFT];
|
||
var rsLeft = elem[RUNTIME_STYLE][LEFT];
|
||
|
||
// prevent flashing of content
|
||
elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];
|
||
|
||
// Put in the new values to get a computed value out
|
||
style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;
|
||
ret = style.pixelLeft + PX;
|
||
|
||
// Revert the changed values
|
||
style[LEFT] = left;
|
||
|
||
elem[RUNTIME_STYLE][LEFT] = rsLeft;
|
||
}
|
||
return ret === '' ? 'auto' : ret;
|
||
}
|
||
|
||
var getComputedStyleX = undefined;
|
||
if (typeof window !== 'undefined') {
|
||
getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;
|
||
}
|
||
|
||
function each(arr, fn) {
|
||
for (var i = 0; i < arr.length; i++) {
|
||
fn(arr[i]);
|
||
}
|
||
}
|
||
|
||
function isBorderBoxFn(elem) {
|
||
return getComputedStyleX(elem, 'boxSizing') === 'border-box';
|
||
}
|
||
|
||
var BOX_MODELS = ['margin', 'border', 'padding'];
|
||
var CONTENT_INDEX = -1;
|
||
var PADDING_INDEX = 2;
|
||
var BORDER_INDEX = 1;
|
||
var MARGIN_INDEX = 0;
|
||
|
||
function swap(elem, options, callback) {
|
||
var old = {};
|
||
var style = elem.style;
|
||
var name = undefined;
|
||
|
||
// Remember the old values, and insert the new ones
|
||
for (name in options) {
|
||
if (options.hasOwnProperty(name)) {
|
||
old[name] = style[name];
|
||
style[name] = options[name];
|
||
}
|
||
}
|
||
|
||
callback.call(elem);
|
||
|
||
// Revert the old values
|
||
for (name in options) {
|
||
if (options.hasOwnProperty(name)) {
|
||
style[name] = old[name];
|
||
}
|
||
}
|
||
}
|
||
|
||
function getPBMWidth(elem, props, which) {
|
||
var value = 0;
|
||
var prop = undefined;
|
||
var j = undefined;
|
||
var i = undefined;
|
||
for (j = 0; j < props.length; j++) {
|
||
prop = props[j];
|
||
if (prop) {
|
||
for (i = 0; i < which.length; i++) {
|
||
var cssProp = undefined;
|
||
if (prop === 'border') {
|
||
cssProp = prop + which[i] + 'Width';
|
||
} else {
|
||
cssProp = prop + which[i];
|
||
}
|
||
value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;
|
||
}
|
||
}
|
||
}
|
||
return value;
|
||
}
|
||
|
||
/**
|
||
* A crude way of determining if an object is a window
|
||
* @member util
|
||
*/
|
||
function isWindow(obj) {
|
||
// must use == for ie8
|
||
/* eslint eqeqeq:0 */
|
||
return obj != null && obj == obj.window;
|
||
}
|
||
|
||
var domUtils = {};
|
||
|
||
each(['Width', 'Height'], function (name) {
|
||
domUtils['doc' + name] = function (refWin) {
|
||
var d = refWin.document;
|
||
return Math.max(
|
||
// firefox chrome documentElement.scrollHeight< body.scrollHeight
|
||
// ie standard mode : documentElement.scrollHeight> body.scrollHeight
|
||
d.documentElement['scroll' + name],
|
||
// quirks : documentElement.scrollHeight 最大等于可视窗口多一点?
|
||
d.body['scroll' + name], domUtils['viewport' + name](d));
|
||
};
|
||
|
||
domUtils['viewport' + name] = function (win) {
|
||
// pc browser includes scrollbar in window.innerWidth
|
||
var prop = 'client' + name;
|
||
var doc = win.document;
|
||
var body = doc.body;
|
||
var documentElement = doc.documentElement;
|
||
var documentElementProp = documentElement[prop];
|
||
// 标准模式取 documentElement
|
||
// backcompat 取 body
|
||
return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;
|
||
};
|
||
});
|
||
|
||
/*
|
||
得到元素的大小信息
|
||
@param elem
|
||
@param name
|
||
@param {String} [extra] 'padding' : (css width) + padding
|
||
'border' : (css width) + padding + border
|
||
'margin' : (css width) + padding + border + margin
|
||
*/
|
||
function getWH(elem, name, extra) {
|
||
if (isWindow(elem)) {
|
||
return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);
|
||
} else if (elem.nodeType === 9) {
|
||
return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);
|
||
}
|
||
var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
|
||
var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;
|
||
var computedStyle = getComputedStyleX(elem);
|
||
var isBorderBox = isBorderBoxFn(elem, computedStyle);
|
||
var cssBoxValue = 0;
|
||
if (borderBoxValue == null || borderBoxValue <= 0) {
|
||
borderBoxValue = undefined;
|
||
// Fall back to computed then un computed css if necessary
|
||
cssBoxValue = getComputedStyleX(elem, name);
|
||
if (cssBoxValue == null || Number(cssBoxValue) < 0) {
|
||
cssBoxValue = elem.style[name] || 0;
|
||
}
|
||
// Normalize '', auto, and prepare for extra
|
||
cssBoxValue = parseFloat(cssBoxValue) || 0;
|
||
}
|
||
if (extra === undefined) {
|
||
extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;
|
||
}
|
||
var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;
|
||
var val = borderBoxValue || cssBoxValue;
|
||
if (extra === CONTENT_INDEX) {
|
||
if (borderBoxValueOrIsBorderBox) {
|
||
return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);
|
||
}
|
||
return cssBoxValue;
|
||
}
|
||
if (borderBoxValueOrIsBorderBox) {
|
||
var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle);
|
||
return val + (extra === BORDER_INDEX ? 0 : padding);
|
||
}
|
||
return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);
|
||
}
|
||
|
||
var cssShow = {
|
||
position: 'absolute',
|
||
visibility: 'hidden',
|
||
display: 'block'
|
||
};
|
||
|
||
// fix #119 : https://github.com/kissyteam/kissy/issues/119
|
||
function getWHIgnoreDisplay(elem) {
|
||
var val = undefined;
|
||
var args = arguments;
|
||
// in case elem is window
|
||
// elem.offsetWidth === undefined
|
||
if (elem.offsetWidth !== 0) {
|
||
val = getWH.apply(undefined, args);
|
||
} else {
|
||
swap(elem, cssShow, function () {
|
||
val = getWH.apply(undefined, args);
|
||
});
|
||
}
|
||
return val;
|
||
}
|
||
|
||
function css(el, name, v) {
|
||
var value = v;
|
||
if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {
|
||
for (var i in name) {
|
||
if (name.hasOwnProperty(i)) {
|
||
css(el, i, name[i]);
|
||
}
|
||
}
|
||
return undefined;
|
||
}
|
||
if (typeof value !== 'undefined') {
|
||
if (typeof value === 'number') {
|
||
value += 'px';
|
||
}
|
||
el.style[name] = value;
|
||
return undefined;
|
||
}
|
||
return getComputedStyleX(el, name);
|
||
}
|
||
|
||
each(['width', 'height'], function (name) {
|
||
var first = name.charAt(0).toUpperCase() + name.slice(1);
|
||
domUtils['outer' + first] = function (el, includeMargin) {
|
||
return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);
|
||
};
|
||
var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
|
||
|
||
domUtils[name] = function (elem, val) {
|
||
if (val !== undefined) {
|
||
if (elem) {
|
||
var computedStyle = getComputedStyleX(elem);
|
||
var isBorderBox = isBorderBoxFn(elem);
|
||
if (isBorderBox) {
|
||
val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);
|
||
}
|
||
return css(elem, name, val);
|
||
}
|
||
return undefined;
|
||
}
|
||
return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);
|
||
};
|
||
});
|
||
|
||
// 设置 elem 相对 elem.ownerDocument 的坐标
|
||
function setOffset(elem, offset) {
|
||
// set position first, in-case top/left are set even on static elem
|
||
if (css(elem, 'position') === 'static') {
|
||
elem.style.position = 'relative';
|
||
}
|
||
|
||
var old = getOffset(elem);
|
||
var ret = {};
|
||
var current = undefined;
|
||
var key = undefined;
|
||
|
||
for (key in offset) {
|
||
if (offset.hasOwnProperty(key)) {
|
||
current = parseFloat(css(elem, key)) || 0;
|
||
ret[key] = current + offset[key] - old[key];
|
||
}
|
||
}
|
||
css(elem, ret);
|
||
}
|
||
|
||
module.exports = _extends({
|
||
getWindow: function getWindow(node) {
|
||
var doc = node.ownerDocument || node;
|
||
return doc.defaultView || doc.parentWindow;
|
||
},
|
||
offset: function offset(el, value) {
|
||
if (typeof value !== 'undefined') {
|
||
setOffset(el, value);
|
||
} else {
|
||
return getOffset(el);
|
||
}
|
||
},
|
||
|
||
isWindow: isWindow,
|
||
each: each,
|
||
css: css,
|
||
clone: function clone(obj) {
|
||
var ret = {};
|
||
for (var i in obj) {
|
||
if (obj.hasOwnProperty(i)) {
|
||
ret[i] = obj[i];
|
||
}
|
||
}
|
||
var overflow = obj.overflow;
|
||
if (overflow) {
|
||
for (var i in obj) {
|
||
if (obj.hasOwnProperty(i)) {
|
||
ret.overflow[i] = obj.overflow[i];
|
||
}
|
||
}
|
||
}
|
||
return ret;
|
||
},
|
||
scrollLeft: function scrollLeft(w, v) {
|
||
if (isWindow(w)) {
|
||
if (v === undefined) {
|
||
return getScrollLeft(w);
|
||
}
|
||
window.scrollTo(v, getScrollTop(w));
|
||
} else {
|
||
if (v === undefined) {
|
||
return w.scrollLeft;
|
||
}
|
||
w.scrollLeft = v;
|
||
}
|
||
},
|
||
scrollTop: function scrollTop(w, v) {
|
||
if (isWindow(w)) {
|
||
if (v === undefined) {
|
||
return getScrollTop(w);
|
||
}
|
||
window.scrollTo(getScrollLeft(w), v);
|
||
} else {
|
||
if (v === undefined) {
|
||
return w.scrollTop;
|
||
}
|
||
w.scrollTop = v;
|
||
}
|
||
},
|
||
|
||
viewportWidth: 0,
|
||
viewportHeight: 0
|
||
}, domUtils);
|
||
|
||
/***/ }),
|
||
/* 211 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var baseHas = __webpack_require__(212),
|
||
hasPath = __webpack_require__(213);
|
||
|
||
/**
|
||
* Checks if `path` is a direct property of `object`.
|
||
*
|
||
* @static
|
||
* @since 0.1.0
|
||
* @memberOf _
|
||
* @category Object
|
||
* @param {Object} object The object to query.
|
||
* @param {Array|string} path The path to check.
|
||
* @returns {boolean} Returns `true` if `path` exists, else `false`.
|
||
* @example
|
||
*
|
||
* var object = { 'a': { 'b': 2 } };
|
||
* var other = _.create({ 'a': _.create({ 'b': 2 }) });
|
||
*
|
||
* _.has(object, 'a');
|
||
* // => true
|
||
*
|
||
* _.has(object, 'a.b');
|
||
* // => true
|
||
*
|
||
* _.has(object, ['a', 'b']);
|
||
* // => true
|
||
*
|
||
* _.has(other, 'a');
|
||
* // => false
|
||
*/
|
||
function has(object, path) {
|
||
return object != null && hasPath(object, path, baseHas);
|
||
}
|
||
|
||
module.exports = has;
|
||
|
||
|
||
/***/ }),
|
||
/* 212 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/** Used for built-in method references. */
|
||
var objectProto = Object.prototype;
|
||
|
||
/** Used to check objects for own properties. */
|
||
var hasOwnProperty = objectProto.hasOwnProperty;
|
||
|
||
/**
|
||
* The base implementation of `_.has` without support for deep paths.
|
||
*
|
||
* @private
|
||
* @param {Object} [object] The object to query.
|
||
* @param {Array|string} key The key to check.
|
||
* @returns {boolean} Returns `true` if `key` exists, else `false`.
|
||
*/
|
||
function baseHas(object, key) {
|
||
return object != null && hasOwnProperty.call(object, key);
|
||
}
|
||
|
||
module.exports = baseHas;
|
||
|
||
|
||
/***/ }),
|
||
/* 213 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var castPath = __webpack_require__(40),
|
||
isArguments = __webpack_require__(214),
|
||
isArray = __webpack_require__(24),
|
||
isIndex = __webpack_require__(71),
|
||
isLength = __webpack_require__(216),
|
||
toKey = __webpack_require__(49);
|
||
|
||
/**
|
||
* Checks if `path` exists on `object`.
|
||
*
|
||
* @private
|
||
* @param {Object} object The object to query.
|
||
* @param {Array|string} path The path to check.
|
||
* @param {Function} hasFunc The function to check properties.
|
||
* @returns {boolean} Returns `true` if `path` exists, else `false`.
|
||
*/
|
||
function hasPath(object, path, hasFunc) {
|
||
path = castPath(path, object);
|
||
|
||
var index = -1,
|
||
length = path.length,
|
||
result = false;
|
||
|
||
while (++index < length) {
|
||
var key = toKey(path[index]);
|
||
if (!(result = object != null && hasFunc(object, key))) {
|
||
break;
|
||
}
|
||
object = object[key];
|
||
}
|
||
if (result || ++index != length) {
|
||
return result;
|
||
}
|
||
length = object == null ? 0 : object.length;
|
||
return !!length && isLength(length) && isIndex(key, length) &&
|
||
(isArray(object) || isArguments(object));
|
||
}
|
||
|
||
module.exports = hasPath;
|
||
|
||
|
||
/***/ }),
|
||
/* 214 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var baseIsArguments = __webpack_require__(215),
|
||
isObjectLike = __webpack_require__(45);
|
||
|
||
/** Used for built-in method references. */
|
||
var objectProto = Object.prototype;
|
||
|
||
/** Used to check objects for own properties. */
|
||
var hasOwnProperty = objectProto.hasOwnProperty;
|
||
|
||
/** Built-in value references. */
|
||
var propertyIsEnumerable = objectProto.propertyIsEnumerable;
|
||
|
||
/**
|
||
* Checks if `value` is likely an `arguments` object.
|
||
*
|
||
* @static
|
||
* @memberOf _
|
||
* @since 0.1.0
|
||
* @category Lang
|
||
* @param {*} value The value to check.
|
||
* @returns {boolean} Returns `true` if `value` is an `arguments` object,
|
||
* else `false`.
|
||
* @example
|
||
*
|
||
* _.isArguments(function() { return arguments; }());
|
||
* // => true
|
||
*
|
||
* _.isArguments([1, 2, 3]);
|
||
* // => false
|
||
*/
|
||
var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {
|
||
return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&
|
||
!propertyIsEnumerable.call(value, 'callee');
|
||
};
|
||
|
||
module.exports = isArguments;
|
||
|
||
|
||
/***/ }),
|
||
/* 215 */
|
||
/***/ (function(module, exports, __webpack_require__) {
|
||
|
||
var baseGetTag = __webpack_require__(42),
|
||
isObjectLike = __webpack_require__(45);
|
||
|
||
/** `Object#toString` result references. */
|
||
var argsTag = '[object Arguments]';
|
||
|
||
/**
|
||
* The base implementation of `_.isArguments`.
|
||
*
|
||
* @private
|
||
* @param {*} value The value to check.
|
||
* @returns {boolean} Returns `true` if `value` is an `arguments` object,
|
||
*/
|
||
function baseIsArguments(value) {
|
||
return isObjectLike(value) && baseGetTag(value) == argsTag;
|
||
}
|
||
|
||
module.exports = baseIsArguments;
|
||
|
||
|
||
/***/ }),
|
||
/* 216 */
|
||
/***/ (function(module, exports) {
|
||
|
||
/** Used as references for various `Number` constants. */
|
||
var MAX_SAFE_INTEGER = 9007199254740991;
|
||
|
||
/**
|
||
* Checks if `value` is a valid array-like length.
|
||
*
|
||
* **Note:** This method is loosely based on
|
||
* [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
|
||
*
|
||
* @static
|
||
* @memberOf _
|
||
* @since 4.0.0
|
||
* @category Lang
|
||
* @param {*} value The value to check.
|
||
* @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
|
||
* @example
|
||
*
|
||
* _.isLength(3);
|
||
* // => true
|
||
*
|
||
* _.isLength(Number.MIN_VALUE);
|
||
* // => false
|
||
*
|
||
* _.isLength(Infinity);
|
||
* // => false
|
||
*
|
||
* _.isLength('3');
|
||
* // => false
|
||
*/
|
||
function isLength(value) {
|
||
return typeof value == 'number' &&
|
||
value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
|
||
}
|
||
|
||
module.exports = isLength;
|
||
|
||
|
||
/***/ })
|
||
/******/ ])["default"];
|
||
});
|
||
//# sourceMappingURL=rc-form.js.map
|