tea-material-pro-table
Version:
Tea ProTable
129 lines (128 loc) • 6.55 kB
JavaScript
;
var __assign = (this && this.__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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
exports.__esModule = true;
exports.Operations = void 0;
var tea_component_1 = require("tea-component");
var react_1 = __importStar(require("react"));
var lodash_omit_1 = __importDefault(require("lodash.omit"));
var constants_1 = require("./constants");
function Operations(_a) {
var operations = _a.operations, options = _a.options;
var _b = react_1.useMemo(function () {
var litems = [];
var ritems = [];
operations === null || operations === void 0 ? void 0 : operations.forEach(function (operation, index) {
/** 自定义操作项 */
var cumstomOperation = operation;
if (cumstomOperation.render) {
/** align 字段优先级最高 */
if (cumstomOperation.align) {
if (cumstomOperation.align === 'right') {
ritems.push(cumstomOperation.render());
}
else {
litems.push(cumstomOperation.render());
}
}
else if (
/** 前置没有操作项,或者前置是规范左侧的,就放到左侧 */
index === 0 ||
constants_1.OPERATIONS_LEFT_SET.has(operations[index - 1].type)) {
litems.push(cumstomOperation.render());
}
else if (cumstomOperation.align === 'right' ||
/** 前置是规范右侧的,就放到右侧 */
constants_1.OPERATIONS_RIGHT_SET.has(operations[index - 1].type)) {
ritems.push(cumstomOperation.render());
}
else {
/** 其他情况都放到左侧 */
litems.push(cumstomOperation.render());
}
}
else {
/** 内置操作项 */
var defaultOperation_1 = operation;
var element = {};
/** 属性参数的需要处理下 */
if (defaultOperation_1.type === 'button') {
element = react_1["default"].createElement(constants_1.OPERATIONS_MAPPING[defaultOperation_1.type], __assign(__assign({ key: index }, lodash_omit_1["default"](defaultOperation_1, ['type', 'buttonType'])), { type: defaultOperation_1.buttonType }), defaultOperation_1.text);
/** 传入 bubble 的话就需要 Bubble 组件包裹 */
if (defaultOperation_1.bubble) {
element = react_1["default"].createElement(tea_component_1.Bubble, defaultOperation_1.bubble, element);
}
}
else if (defaultOperation_1.type === 'refresh' ||
defaultOperation_1.type === 'setting' ||
defaultOperation_1.type === 'download') {
element = react_1["default"].createElement(constants_1.OPERATIONS_MAPPING.button, __assign(__assign({ key: index }, lodash_omit_1["default"](defaultOperation_1, ['type', 'defaultRefresh'])), { icon: defaultOperation_1.type, onClick: function () {
var _a;
if (defaultOperation_1.type === 'refresh' && !defaultOperation_1.defaultRefresh) {
options.reload();
}
(_a = defaultOperation_1.onClick) === null || _a === void 0 ? void 0 : _a.call(defaultOperation_1);
} }));
}
else {
element = react_1["default"].createElement(constants_1.OPERATIONS_MAPPING[defaultOperation_1.type], __assign({ key: index }, lodash_omit_1["default"](defaultOperation_1, ['type'])));
}
// 放进对应位置
if (defaultOperation_1.align) {
if (defaultOperation_1.align === 'right') {
ritems.push(element);
}
else {
litems.push(element);
}
}
else {
if (constants_1.OPERATIONS_LEFT_SET.has(defaultOperation_1.type)) {
litems.push(element);
}
if (constants_1.OPERATIONS_RIGHT_SET.has(defaultOperation_1.type)) {
ritems.push(element);
}
}
}
});
return [litems, ritems];
}, [operations, options]), litems = _b[0], ritems = _b[1];
if (!(operations === null || operations === void 0 ? void 0 : operations.length)) {
return null;
}
return (react_1["default"].createElement(tea_component_1.Table.ActionPanel, null,
react_1["default"].createElement(tea_component_1.Justify, { left: litems.map(function (item, index) { return (react_1["default"].createElement(react_1.Fragment, { key: index }, item)); }), right: ritems.map(function (item, index) { return (react_1["default"].createElement(react_1.Fragment, { key: index }, item)); }) })));
}
exports.Operations = Operations;