UNPKG

@antv/s2-react

Version:
59 lines 3.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TooltipComponent = void 0; const tslib_1 = require("tslib"); const s2_1 = require("@antv/s2"); const lodash_1 = require("lodash"); const react_1 = tslib_1.__importDefault(require("react")); const description_1 = require("./components/description"); const detail_1 = require("./components/detail"); const head_info_1 = require("./components/head-info"); const infos_1 = require("./components/infos"); const interpretation_1 = require("./components/interpretation"); const operator_1 = require("./components/operator"); const simple_tips_1 = require("./components/simple-tips"); const summary_1 = require("./components/summary"); require("./index.less"); exports.TooltipComponent = react_1.default.memo((props) => { const { data, options, content, cell, onMounted } = props; const renderOperation = (operator, onlyShowOperator) => { if (!operator) { return null; } return (react_1.default.createElement(operator_1.TooltipOperator, Object.assign({}, operator, { menu: operator.menu, onlyShowOperator: onlyShowOperator, cell: cell }))); }; const renderNameTips = (nameTip) => { const { name, tips } = nameTip || {}; return react_1.default.createElement(simple_tips_1.TooltipSimpleTips, { name: name, tips: tips }); }; const renderSummary = (summaries) => !(0, lodash_1.isEmpty)(summaries) && react_1.default.createElement(summary_1.TooltipSummary, { summaries: summaries }); const renderHeadInfo = (headInfo) => { const { cols = [], rows = [] } = headInfo || {}; return ((!(0, lodash_1.isEmpty)(cols) || !(0, lodash_1.isEmpty)(rows)) && (react_1.default.createElement(head_info_1.TooltipHead, { cols: cols, rows: rows }))); }; const renderDetail = (details) => !(0, lodash_1.isEmpty)(details) && react_1.default.createElement(detail_1.TooltipDetail, { list: details }); const renderInfos = (infos) => infos && react_1.default.createElement(infos_1.TooltipInfos, { infos: infos }); const renderInterpretation = (interpretation) => interpretation && react_1.default.createElement(interpretation_1.TooltipInterpretation, Object.assign({}, interpretation)); const renderDescription = (description) => (react_1.default.createElement(description_1.TooltipDescription, { description: description })); const renderContent = () => { const { operator, onlyShowOperator } = (0, s2_1.getTooltipDefaultOptions)(options); const { summaries, headInfo, details, interpretation, infos, tips, name, description, } = data || {}; const nameTip = { name, tips }; if (onlyShowOperator) { return renderOperation(operator, true); } const DefaultContent = (react_1.default.createElement(react_1.default.Fragment, null, renderNameTips(nameTip), renderSummary(summaries), renderInterpretation(interpretation), renderHeadInfo(headInfo), renderDetail(details), renderInfos(infos), renderDescription(description))); return (react_1.default.createElement("span", { ref: onMounted }, renderOperation(operator), content !== null && content !== void 0 ? content : DefaultContent)); }; return renderContent(); }); exports.TooltipComponent.displayName = 'TooltipComponent'; //# sourceMappingURL=index.js.map