UNPKG

@ucloud-pccl/react-components

Version:
119 lines (118 loc) 6.83 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck")); var _uniqueId2 = _interopRequireDefault(require("lodash/uniqueId")); var _react = _interopRequireWildcard(require("react")); var _this = void 0; function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } var contextProps = 'ITEM_DECORATOR_CONTEXT_PROPS'; var itemDecorator = function itemDecorator(_ref) { var _this2 = this; (0, _newArrowCheck2.default)(this, _this); var _ref$checkedName = _ref.checkedName, checkedName = _ref$checkedName === void 0 ? 'checked' : _ref$checkedName, _ref$onChangeName = _ref.onChangeName, onChangeName = _ref$onChangeName === void 0 ? 'onChange' : _ref$onChangeName, StoreContext = _ref.StoreContext; return function (Item) { (0, _newArrowCheck2.default)(this, _this2); if (!StoreContext) { console.error('Must have StoreContext'); } var ItemWrappedComponent = /*#__PURE__*/function (_Component) { function ItemWrappedComponent(props) { var _this4 = this; var _this3; (0, _classCallCheck2.default)(this, ItemWrappedComponent); _this3 = _callSuper(this, ItemWrappedComponent, [props]); _this3.onChange = function (checked) { var storeContext = _this3.props[contextProps]; if (storeContext && storeContext.selectable) { storeContext.toggleItem(_this3, checked); } if (_this3.props[onChangeName]) { var _this3$props; for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { rest[_key - 1] = arguments[_key]; } (_this3$props = _this3.props)[onChangeName].apply(_this3$props, [checked].concat(rest)); } }; _this3.getChecked = function () { (0, _newArrowCheck2.default)(this, _this4); var storeContext = _this3.props[contextProps]; if (storeContext) { return storeContext.getItemSelected(_this3); } else { return _this3.props[checkedName]; } }.bind(this); _this3.uid = (0, _uniqueId2.default)("uc-".concat(Item.name.toLowerCase(), "-")); return _this3; } (0, _inherits2.default)(ItemWrappedComponent, _Component); return (0, _createClass2.default)(ItemWrappedComponent, [{ key: "componentWillMount", value: function componentWillMount() { var storeContext = this.props[contextProps]; if (storeContext) { storeContext.appendItem(this); } } }, { key: "componentWillUnmount", value: function componentWillUnmount() { var storeContext = this.props[contextProps]; if (storeContext) { storeContext.removeItem(this); } } }, { key: "render", value: function render() { var rest = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(this.props), this.props)); delete rest[contextProps]; var storeContext = this.props[contextProps] || {}; return /*#__PURE__*/_react.default.createElement(Item, (0, _extends2.default)({ multiple: storeContext.multiple }, rest, (0, _defineProperty2.default)((0, _defineProperty2.default)({}, checkedName, this.getChecked()), onChangeName, this.onChange))); } }]); }(_react.Component); ItemWrappedComponent.displayName = "ItemWrapped".concat(Item.name); return /*#__PURE__*/function (_Component2) { function ItemWrappedComponentWithContext() { (0, _classCallCheck2.default)(this, ItemWrappedComponentWithContext); return _callSuper(this, ItemWrappedComponentWithContext, arguments); } (0, _inherits2.default)(ItemWrappedComponentWithContext, _Component2); return (0, _createClass2.default)(ItemWrappedComponentWithContext, [{ key: "render", value: function render() { var _this5 = this; return /*#__PURE__*/_react.default.createElement(StoreContext.Consumer, null, function (context) { (0, _newArrowCheck2.default)(this, _this5); return /*#__PURE__*/_react.default.createElement(ItemWrappedComponent, (0, _extends2.default)({}, (0, _defineProperty2.default)({}, contextProps, context), this.props)); }.bind(this)); } }]); }(_react.Component); }.bind(this); }.bind(void 0); var _default = exports.default = itemDecorator;