@antv/s2-react
Version:
use S2 with react
59 lines • 3.44 kB
JavaScript
"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