UNPKG

@antv/s2-react-components

Version:

React components for S2

50 lines 2.41 kB
"use strict"; 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