shineout
Version:
Shein 前端组件库
126 lines (98 loc) • 3.91 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.formConsumer = exports.formProvider = exports.Consumer = exports.Provider = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _react = _interopRequireWildcard(require("react"));
var _context = _interopRequireDefault(require("../context"));
var _objects = require("../utils/objects");
var _is = require("../utils/is");
var _func = require("../utils/func");
// 去掉独有的属性
var context = (0, _context.default)({}); // eslint-disable-next-line
var Provider = context.Provider; // eslint-disable-next-line
exports.Provider = Provider;
var Consumer = context.Consumer;
exports.Consumer = Consumer;
var formProvider = function formProvider(Origin) {
var FormProvider =
/*#__PURE__*/
function (_PureComponent) {
(0, _inheritsLoose2.default)(FormProvider, _PureComponent);
function FormProvider(props) {
var _this;
_this = _PureComponent.call(this, props) || this;
_this.combineRules = _this.combineRules.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); // this.groupValidate = this.groupValidate.bind(this)
return _this;
}
var _proto = FormProvider.prototype;
_proto.combineRules = function combineRules(name, propRules) {
var rules = this.props.rules;
var newRules = [];
if ((0, _is.isObject)(rules) && name) {
newRules = (0, _objects.deepGet)(rules, name) || [];
} else if ((0, _is.isArray)(rules)) {
newRules = rules;
}
if ((0, _is.isArray)(propRules)) {
newRules = newRules.concat(propRules);
}
return newRules;
} // groupValidate(name) {
// not implement...
// }
;
_proto.render = function render() {
var _this$props = this.props,
datum = _this$props.datum,
labelAlign = _this$props.labelAlign,
labelVerticalAlign = _this$props.labelVerticalAlign,
labelWidth = _this$props.labelWidth,
disabled = _this$props.disabled,
pending = _this$props.pending,
mode = _this$props.mode,
size = _this$props.size,
keepErrorHeight = _this$props.keepErrorHeight;
var value = {
formDatum: datum,
formMode: mode,
disabled: !!(disabled || pending),
labelAlign: labelAlign,
labelVerticalAlign: labelVerticalAlign,
labelWidth: labelWidth,
size: size,
combineRules: this.combineRules,
// groupValidate: this.groupValidate,
keepErrorHeight: keepErrorHeight
};
return _react.default.createElement(Provider, {
value: value
}, _react.default.createElement(Origin, this.props));
};
return FormProvider;
}(_react.PureComponent);
return FormProvider;
};
exports.formProvider = formProvider;
var formConsumer = (0, _func.curry3)(function (keys, Origin, props) {
var filterProps = function filterProps(value) {
var cps = {};
if (!value) return cps;
if (!keys) return value;
keys.forEach(function (k) {
var val = value[k];
if (val !== undefined) cps[k] = val;
});
return cps;
};
return _react.default.createElement(Consumer, null, function (value) {
var formProps = filterProps(value);
return _react.default.createElement(Origin, (0, _extends2.default)({}, formProps, props, {
disabled: formProps.disabled || props.disabled
}));
});
});
exports.formConsumer = formConsumer;