UNPKG

shineout

Version:

Shein 前端组件库

126 lines (98 loc) 3.91 kB
"use strict"; 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;