@antv/s2-react-components
Version:
React components for S2
50 lines • 2.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CustomSort = void 0;
const tslib_1 = require("tslib");
const icons_1 = require("@ant-design/icons");
const s2_1 = require("@antv/s2");
const antd_1 = require("antd");
const react_1 = tslib_1.__importDefault(require("react"));
const CustomSort = (props) => {
const { splitOrders = [], setSplitOrders } = props;
const upHandler = (value) => {
const res = splitOrders.concat();
res.splice(res.indexOf(value), 1);
res.unshift(value);
setSplitOrders(res);
};
const downHandler = (value) => {
const res = splitOrders.concat();
let index = res.indexOf(value);
res.splice(res.indexOf(value), 1);
res.splice((index += 1), 0, value);
setSplitOrders(res);
};
const toTopHandler = (value) => {
const res = splitOrders.concat();
let index = res.indexOf(value);
if (index > 0) {
res.splice(res.indexOf(value), 1);
res.splice((index -= 1), 0, value);
setSplitOrders(res);
}
};
const renderItem = (value) => (react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement("span", { className: "split-text" }, value),
react_1.default.createElement("span", { className: `${s2_1.ADVANCED_SORT_PRE_CLS}-split-icon`, onClick: () => {
upHandler(value);
} },
react_1.default.createElement(icons_1.VerticalAlignTopOutlined, null)),
react_1.default.createElement("span", { className: `${s2_1.ADVANCED_SORT_PRE_CLS}-split-icon`, onClick: () => {
downHandler(value);
} },
react_1.default.createElement(icons_1.DownOutlined, null)),
react_1.default.createElement("span", { className: `${s2_1.ADVANCED_SORT_PRE_CLS}-split-icon`, onClick: () => {
toTopHandler(value);
} },
react_1.default.createElement(icons_1.UpOutlined, null))));
return (react_1.default.createElement(antd_1.Card, { className: `${s2_1.ADVANCED_SORT_PRE_CLS}-card-content` }, splitOrders.map((value) => (react_1.default.createElement("li", { key: value, className: `${s2_1.ADVANCED_SORT_PRE_CLS}-split-value`, title: value }, renderItem(value))))));
};
exports.CustomSort = CustomSort;
//# sourceMappingURL=custom-sort.js.map