dareway-rui
Version:
234 lines (200 loc) • 10.1 kB
JavaScript
'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