ze-react-component-library
Version:
ZeroETP React Component Library
238 lines (210 loc) • 8.56 kB
JavaScript
"use strict";
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.renderTree = void 0;
require("antd/lib/button/style");
var _button = _interopRequireDefault(require("antd/lib/button"));
require("antd/lib/select/style");
var _select = _interopRequireDefault(require("antd/lib/select"));
require("antd/lib/message/style");
var _message2 = _interopRequireDefault(require("antd/lib/message"));
var _react = _interopRequireWildcard(require("react"));
var _icons = require("@ant-design/icons");
var _useTreeFilter = require("./useTreeFilter");
var _HoverAction = _interopRequireDefault(require("../components/HoverAction"));
require("./ZETreeFilter.less");
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var __assign = void 0 && (void 0).__assign || function () {
__assign = Object.assign || function (t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) {
if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
}
return t;
};
return __assign.apply(this, arguments);
};
var TreeFilterItem = /*#__PURE__*/(0, _react.memo)(function (_a) {
var _b;
var render = _a.render,
level = _a.level,
maxLevel = _a.maxLevel,
count = _a.count,
maxCount = _a.maxCount,
disableRootDelete = _a.disableRootDelete,
disabled = _a.disabled,
item = _a.item;
var _c = (0, _react.useContext)(_useTreeFilter.ZETreeFilterContext) || {},
onAdd = _c.onAdd,
onRemove = _c.onRemove,
onUpdate = _c.onUpdate,
onReset = _c.onReset;
var isRoot = level === 0 && count === 1;
return /*#__PURE__*/_react.default.createElement(_HoverAction.default, {
className: "tree-filter-item",
actions: !disabled && !item.disableActions ? [((_b = item.props) === null || _b === void 0 ? void 0 : _b.value) && {
key: "add",
tip: "新增",
icon: /*#__PURE__*/_react.default.createElement(_icons.PlusOutlined, {
style: {
padding: "0 4px"
}
}),
onClick: function onClick() {
if (level < maxLevel) {
onAdd === null || onAdd === void 0 ? void 0 : onAdd(item.id);
} else {
if (count >= maxCount) {
_message2.default.error("\u6700\u591A\u65B0\u589E" + maxCount + "\u4E2A");
} else {
onAdd === null || onAdd === void 0 ? void 0 : onAdd(item.parentId);
}
}
}
}, {
key: "remove",
tip: isRoot && disableRootDelete || item.resetOnDelete ? "重置" : "删除",
icon: /*#__PURE__*/_react.default.createElement(_icons.DeleteOutlined, {
style: {
padding: "0 4px"
}
}),
onClick: function onClick() {
if (isRoot && disableRootDelete || item.resetOnDelete) {
onReset === null || onReset === void 0 ? void 0 : onReset(item.id);
} else {
onRemove === null || onRemove === void 0 ? void 0 : onRemove(item.id);
}
}
}].filter(function (f) {
return f;
}) : []
}, /*#__PURE__*/_react.default.createElement("div", {
className: "tree-filter-item-content"
}, render(item, onUpdate, disabled)));
});
var renderTree = function renderTree(_a) {
var arr = _a.arr,
conditions = _a.conditions,
renderItem = _a.renderItem,
onSwitch = _a.onSwitch,
level = _a.level,
maxLevel = _a.maxLevel,
maxCount = _a.maxCount,
parentId = _a.parentId,
disableRootDelete = _a.disableRootDelete,
disabled = _a.disabled;
return /*#__PURE__*/_react.default.createElement("div", {
className: "tree-filter-items"
}, arr.map(function (d) {
return /*#__PURE__*/_react.default.createElement(_react.Fragment, {
key: d.id
}, d.children ? /*#__PURE__*/_react.default.createElement("div", {
className: "tree-filter-item-with-condition"
}, /*#__PURE__*/_react.default.createElement("div", {
className: "tree-filter-condition"
}, /*#__PURE__*/_react.default.createElement("span", {
className: "tree-filter-condition-switcher"
}, /*#__PURE__*/_react.default.createElement(_select.default, {
size: "small",
showArrow: false,
disabled: disabled || d.disabled,
options: conditions,
value: d.condition,
dropdownMatchSelectWidth: false,
onChange: function onChange(v) {
onSwitch(d.id, v);
}
}))), renderTree({
arr: d.children,
conditions: conditions,
renderItem: renderItem,
level: level + 1,
maxLevel: maxLevel,
maxCount: maxCount,
onSwitch: onSwitch,
parentId: d.id,
disableRootDelete: disableRootDelete,
disabled: disabled
})) : /*#__PURE__*/_react.default.createElement(TreeFilterItem, {
item: __assign(__assign({}, d), {
parentId: parentId
}),
render: renderItem,
level: level,
maxLevel: maxLevel,
count: arr.length,
maxCount: maxCount,
disableRootDelete: disableRootDelete,
disabled: disabled
}));
}));
};
exports.renderTree = renderTree;
var TreeFilter = function TreeFilter(_a) {
var initialValue = _a.initialValue,
conditions = _a.conditions,
renderItem = _a.renderItem,
_b = _a.maxCount,
maxCount = _b === void 0 ? 5 : _b,
_c = _a.maxLevel,
maxLevel = _c === void 0 ? 2 : _c,
_d = _a.title,
title = _d === void 0 ? "筛选" : _d,
filterRef = _a.filterRef,
enableRootAdd = _a.enableRootAdd,
disableRootDelete = _a.disableRootDelete,
onChange = _a.onChange,
value = _a.value,
itemInitialProps = _a.itemInitialProps,
disabled = _a.disabled;
var state = (0, _useTreeFilter.useZETreeFilter)({
value: value,
initialValue: initialValue,
conditions: conditions,
maxCount: maxCount,
itemInitialProps: itemInitialProps,
onChange: onChange
});
var onRootAdd = state.onRootAdd,
data = state.data,
onSwitch = state.onSwitch;
(0, _react.useEffect)(function () {
if (filterRef) {
filterRef.current = {
onRootAdd: onRootAdd
};
}
});
return /*#__PURE__*/_react.default.createElement(_useTreeFilter.ZETreeFilterContext.Provider, {
value: state
}, /*#__PURE__*/_react.default.createElement("div", {
className: "tree-filter"
}, renderTree({
renderItem: renderItem,
maxCount: maxCount,
maxLevel: maxLevel,
arr: data,
conditions: conditions,
onSwitch: onSwitch,
level: 0,
disableRootDelete: disableRootDelete,
disabled: disabled
}), enableRootAdd && !disabled && /*#__PURE__*/_react.default.createElement(_button.default, {
type: "link",
style: {
paddingLeft: 0
},
onClick: function onClick() {
onRootAdd();
}
}, /*#__PURE__*/_react.default.createElement(_icons.PlusOutlined, null), title)));
};
var _default = TreeFilter;
exports.default = _default;