@antv/s2-react
Version:
use S2 with react
58 lines • 2.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ChartSheet = void 0;
const tslib_1 = require("tslib");
const s2_1 = require("@antv/s2");
const extends_1 = require("@antv/s2/extends");
const react_1 = tslib_1.__importDefault(require("react"));
const base_sheet_1 = require("../base-sheet");
exports.ChartSheet = react_1.default.memo((props) => {
const { options: customOptions, themeCfg: customThemeCfg } = props, restProps = tslib_1.__rest(props, ["options", "themeCfg"]);
const s2Options = react_1.default.useMemo(() => {
const defaultOptions = {
style: {
rowCell: {
width: 100,
},
dataCell: {
width: 400,
height: 400,
},
},
tooltip: {
enable: true,
},
};
const options = {
dataCell: (viewMeta, spreadsheet) => new extends_1.ChartDataCell(viewMeta, spreadsheet),
showDefaultHeaderActionIcon: false,
interaction: {
hoverFocus: false,
brushSelection: {
dataCell: false,
},
},
};
return (0, s2_1.customMerge)(defaultOptions, customOptions, options);
}, [customOptions]);
const themeCfg = react_1.default.useMemo(() => {
const defaultTheme = {
dataCell: {
cell: {
interactionState: {
hoverFocus: {
borderOpacity: 0,
},
selected: {
borderOpacity: 0,
},
},
},
},
};
return (0, s2_1.customMerge)(defaultTheme, customThemeCfg);
}, [customThemeCfg]);
return react_1.default.createElement(base_sheet_1.BaseSheet, Object.assign({}, restProps, { options: s2Options, themeCfg: themeCfg }));
});
exports.ChartSheet.displayName = 'ChartSheet';
//# sourceMappingURL=index.js.map