UNPKG

dareway-rui

Version:

234 lines (200 loc) 10.1 kB
'use strict'; var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault'); Object.defineProperty(exports, '__esModule', { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require('@babel/runtime/helpers/extends')); var _objectSpread2 = _interopRequireDefault(require('@babel/runtime/helpers/objectSpread')); 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 _assertThisInitialized2 = _interopRequireDefault(require('@babel/runtime/helpers/assertThisInitialized')); var _inherits2 = _interopRequireDefault(require('@babel/runtime/helpers/inherits')); var _defineProperty2 = _interopRequireDefault(require('@babel/runtime/helpers/defineProperty')); var _react = _interopRequireDefault(require('react')); var _reactRedux = require('react-redux'); var _propTypes = _interopRequireDefault(require('prop-types')); var _ModelNamespaceContext = _interopRequireDefault(require('../../core/rui/ModelNamespaceContext')); var _uuid = _interopRequireDefault(require('../../util/uuid')); var _view = _interopRequireDefault(require('./view')); var _RUIModel = _interopRequireDefault(require('../../core/rui/RUIModel')); var _model = require('./model'); var _dec, _class, _class2, _temp; _RUIModel.default.addExtraState({}); _RUIModel.default.addExtraEffects((0, _model.genEffects)()); _RUIModel.default.addExtraReducers((0, _model.genReducers)()); var CollapsibleTree = ((_dec = (0, _reactRedux.connect)()), _dec( (_class = ((_temp = _class2 = /*#__PURE__*/ (function(_React$Component) { (0, _inherits2.default)(CollapsibleTree, _React$Component); function CollapsibleTree(props) { var _this; (0, _classCallCheck2.default)(this, CollapsibleTree); _this = (0, _possibleConstructorReturn2.default)( this, (0, _getPrototypeOf2.default)(CollapsibleTree).call(this, props) ); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'showVMPath', function( event, vmPath, laneID ) { if (RUI_DEBUG_MODE) { _this.props.dispatch({ type: '__draco__lane__/showVMPath', payload: { laneID: laneID, vmPath: vmPath } }); event.preventDefault(); } }); (0, _defineProperty2.default)( (0, _assertThisInitialized2.default)(_this), 'handleTreeNodeSelect', function(_ref) { var key = _ref.key; var selectTreeNodeName = key; var bizModelNamespace = _this.context.modelNamespace; _this.props.dispatch({ type: ''.concat(bizModelNamespace, '/CollapsibleTree_handleTreeNodeSelect'), payload: { tagName: _this.tagName, payload: selectTreeNodeName } }); } ); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'onCollapse', function( collapse ) { _this.props.dispatch({ type: ''.concat(_this.context.modelNamespace, '/CollapsibleTree_setCollapse'), payload: { tagName: _this.tagName, payload: collapse } }); }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'onOpenChange', function( openKeys ) { _this.props.dispatch({ type: ''.concat(_this.context.modelNamespace, '/CollapsibleTree_setOpenKeys'), payload: { tagName: _this.tagName, payload: openKeys } }); }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'onDrag', function(e, ui) { _this.props.dispatch({ type: ''.concat(_this.context.modelNamespace, '/CollapsibleTree_refreshSideWidth'), payload: { tagName: _this.tagName, payload: ui.deltaX } }); }); return _this; } (0, _createClass2.default)(CollapsibleTree, [ { key: 'componentWillMount', value: function componentWillMount() { var _this2 = this; // 标签名 var name = this.props.name || 'CollapsibleTree_'.concat((0, _uuid.default)()); // 模型名 this.tagName = name; // 模型注入 this.props.dispatch({ type: ''.concat(this.context.modelNamespace, '/__privateAddTag'), payload: { tagName: this.tagName, tagInitState: (0, _objectSpread2.default)({}, (0, _model.genState)(this.props), { '@@api': (0, _model.genApi)(this.context.modelNamespace, this.tagName) }) } }); // 链接View var connector = (0, _reactRedux.connect)(function(store) { // 这个地方要时刻与 state 保持一致; var _store$_this2$context = store[_this2.context.modelNamespace]['@@tags'][_this2.tagName], treeNodes = _store$_this2$context.treeNodes, selectedTreeNodeName = _store$_this2$context.selectedTreeNodeName, collapse = _store$_this2$context.collapse, selectedKeys = _store$_this2$context.selectedKeys, openKeys = _store$_this2$context.openKeys, sideWidth = _store$_this2$context.sideWidth; return { treeNodes: treeNodes, selectedTreeNodeName: selectedTreeNodeName, collapse: collapse, selectedKeys: selectedKeys, openKeys: openKeys, sideWidth: sideWidth }; }); this.ConnectedComponent = connector(_view.default); } }, { key: 'componentDidMount', value: function componentDidMount() { this.props.dispatch({ type: ''.concat(this.context.modelNamespace, '/CollapsibleTree_setSideWidth'), payload: { tagName: this.tagName, payload: this.props.sideWidth } }); } }, { key: 'componentWillUnmount', value: function componentWillUnmount() { var bizModelNamespace = this.context.modelNamespace; this.props.dispatch({ type: ''.concat(bizModelNamespace, '/__privateRemoveTag'), payload: { tagName: this.tagName } }); } }, { key: 'render', value: function render() { var ConnectedComponent = this.ConnectedComponent; return _react.default.createElement( ConnectedComponent, (0, _extends2.default)({}, this.props, { handleTreeNodeSelect: this.handleTreeNodeSelect, showVMPath: this.showVMPath, onCollapse: this.onCollapse, onOpenChange: this.onOpenChange, onDrag: this.onDrag }) ); } } ]); return CollapsibleTree; })(_react.default.Component)), (0, _defineProperty2.default)(_class2, 'contextType', _ModelNamespaceContext.default), (0, _defineProperty2.default)(_class2, 'propTypes', { name: _propTypes.default.string.isRequired, sideWidth: _propTypes.default.number, draggable: _propTypes.default.bool }), (0, _defineProperty2.default)(_class2, 'defaultProps', { sideWidth: 150, draggable: true }), _temp)) ) || _class); exports.default = CollapsibleTree; //@ sourceMappingURL=index.js.map