UNPKG

tea-material-pro-table

Version:

Tea ProTable

129 lines (128 loc) 6.55 kB
"use strict"; 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;