[improvement][project] supersonic 0.6.0 version update (#16)

Co-authored-by: lexluo <lexluo@tencent.com>
This commit is contained in:
lexluo09
2023-07-16 21:32:33 +08:00
committed by GitHub
parent a0869dc7bd
commit 041daad1e4
261 changed files with 12031 additions and 3266 deletions

View File

@@ -1,28 +1,87 @@
import { IChatConfig, ISemantic } from '../../data';
import { TransType } from '../../enum';
type FormatResult = IChatConfig.IChatRichConfig & {
chatDefaultConfig: {
dimensionIds: number[];
metricIds: number[];
};
};
export const formatRichEntityDataListToIds = (
entityData: IChatConfig.IChatRichConfig,
): FormatResult => {
if (!entityData?.chatDefaultConfig) {
return {} as FormatResult;
}
const { chatDefaultConfig, entity } = entityData;
export const exChangeRichEntityListToIds = (entityData: IChatConfig.IEntity) => {
const entityList = entityData.entityIds || [];
const detailData: {
dimensionIds: number[];
metricIds: number[];
} = { dimensionIds: [], metricIds: [] };
const { dimensionList, metricList } = entityData.entityInternalDetailDesc || {};
if (Array.isArray(dimensionList)) {
detailData.dimensionIds = dimensionList.map((item: ISemantic.IDimensionItem) => {
const { dimensions, metrics } = chatDefaultConfig || {};
if (Array.isArray(dimensions)) {
detailData.dimensionIds = dimensions.map((item: ISemantic.IDimensionItem) => {
return item.id;
});
}
if (Array.isArray(metricList)) {
detailData.metricIds = metricList.map((item: ISemantic.IMetricItem) => {
if (Array.isArray(metrics)) {
detailData.metricIds = metrics.map((item: ISemantic.IMetricItem) => {
return item.id;
});
}
const entityIds = entityList.map((item) => {
return item.id;
});
let entitySetting = {};
if (entity) {
const entityItem = entity.dimItem;
const entityId = entityItem?.id || null;
const names = entity.names || [];
entitySetting = {
entity: {
...entity,
entityId,
name: names.join(','),
},
};
}
return {
...entityData,
entityIds,
detailData,
...entitySetting,
chatDefaultConfig: {
...chatDefaultConfig,
...detailData,
},
};
};
export const wrapperTransTypeAndId = (exTransType: TransType, id: number) => {
return `${exTransType}-${id}`;
};
export const splitListToTransTypeId = (dataItemIds: string[]) => {
const idListMap = dataItemIds.reduce(
(
idMap: {
dimensionIds: number[];
metricIds: number[];
},
item: string,
) => {
const [transType, id] = item.split('-');
if (id) {
if (transType === TransType.DIMENSION) {
idMap.dimensionIds.push(Number(id));
}
if (transType === TransType.METRIC) {
idMap.metricIds.push(Number(id));
}
}
return idMap;
},
{
dimensionIds: [],
metricIds: [],
},
);
return idListMap;
};