@visactor/vmind
Version:
<div align="center"> <a href="https://github.com/VisActor#gh-light-mode-only" target="_blank"> <img alt="VisActor Logo" width="200" src="https://github.com/VisActor/.github/blob/main/profile/logo_500_200_light.svg"/> </a> <a href="https://githu
73 lines (69 loc) • 3.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: !0
}), exports.getCellContextByAdvisor = void 0;
const chart_advisor_1 = require("@visactor/chart-advisor"), dataTable_1 = require("../../../utils/dataTable"), utils_1 = require("../utils"), types_1 = require("../../../types"), common_1 = require("../../../utils/common"), getAdvisedChartList = (schema, dataset) => {
const dimensionList = schema.fields.filter((d => "dimension" === d.role)).map((d => ({
uniqueId: d.id,
type: (0, utils_1.typeMap)(d.type)
}))), measureList = schema.fields.filter((d => "measure" === d.role)).map((d => ({
uniqueId: d.id,
type: (0, utils_1.typeMap)(d.type)
}))), aliasMap = Object.fromEntries(schema.fields.map((d => [ d.id, d.alias ])));
return (0, chart_advisor_1.chartAdvisor)({
originDataset: dataset,
dimensionList: dimensionList,
measureList: measureList,
aliasMap: aliasMap
});
}, getAdvisedListTransformer = context => {
const {vizSchema: vizSchema, dataTable: dataTable, chartTypeList: chartTypeList} = context;
if (!(0, dataTable_1.isValidDataTable)(dataTable)) return {
advisedList: [],
chartSource: "chartAdvisor",
usage: {
prompt_tokens: 0,
completion_tokens: 0,
total_tokens: 0
}
};
const {scores: scores} = getAdvisedChartList(vizSchema, dataTable), availableChartTypeList = chartTypeList.reduce(((res, chartType) => {
var _a;
return [ ...res, ...null !== (_a = null === utils_1.VMindChartTypeMap || void 0 === utils_1.VMindChartTypeMap ? void 0 : utils_1.VMindChartTypeMap[chartType]) && void 0 !== _a ? _a : [] ];
}), []);
return {
advisedList: (0, common_1.uniqBy)(scores.filter((d => availableChartTypeList.includes(d.chartType) && d.score - 0 >= 1e-8)).map((result => ({
chartType: (0, utils_1.chartTypeMap)(result.chartType).toUpperCase(),
cell: (0, utils_1.getCell)(result.cell),
dataset: result.dataset,
score: result.score
}))), "chartType"),
chartSource: "chartAdvisor",
usage: {
prompt_tokens: 0,
completion_tokens: 0,
total_tokens: 0
}
};
}, getCellContextByAdvisor = context => {
const advisorResult = getAdvisedListTransformer(context), {advisedList: advisedList, chartSource: chartSource, usage: usage} = advisorResult;
if (0 === advisedList.length) return {
chartType: types_1.ChartType.BarChart.toUpperCase(),
cell: {},
dataset: [],
chartSource: chartSource,
usage: usage,
advisedList: advisedList
};
const result = advisedList[0];
return {
chartType: result.chartType,
cell: (0, utils_1.getCell)(result.cell),
dataset: result.dataset,
chartSource: chartSource,
usage: usage,
advisedList: advisedList
};
};
exports.getCellContextByAdvisor = getCellContextByAdvisor;
//# sourceMappingURL=index.js.map