UNPKG

@visactor/vchart

Version:

charts lib based @visactor/VGrammar

85 lines (71 loc) 3.79 kB
import { warn } from "../util/debug"; import { isString, cloneDeep } from "@visactor/vutils"; import { DataSet, DataView } from "@visactor/vdataset"; import { registerDataSetInstanceTransform } from "./register"; import { copyDataView } from "./transforms/copy-data-view"; export function initializeData() {} export function initCSVData() {} export function initData() {} export function initFoldData() {} export function dataViewFromDataView(rawData, dataSet, op) { dataSet = dataSet instanceof DataSet ? dataSet : rawData.dataSet, registerDataSetInstanceTransform(dataSet, "copyDataView", copyDataView); const viewData = new DataView(dataSet, op); return viewData.parse([ rawData ], { type: "dataview" }), viewData.transform({ type: "copyDataView", level: TransformLevel.copyDataView }), viewData; } export function dataToDataView(data, dataSet, sourceDataViews = []) { var _a; if (data instanceof DataView) return data; const {id: id, values: values = [], fromDataIndex: fromDataIndex, fromDataId: fromDataId, transforms: transforms = []} = data, parser = data.parser ? cloneDeep(data.parser) : { clone: !0 }, fields = cloneDeep(data.fields); let dataView; parser.clone = !(!1 === parser.clone); const existDataView = sourceDataViews.find((dv => dv.name === id)); if (existDataView) dataView = existDataView; else { const initOption = { name: id }; if (fields && (initOption.fields = fields), dataView = new DataView(dataSet, initOption), "string" == typeof fromDataId) { const fromDataView = sourceDataViews.find((dv => dv.name === fromDataId)); if (!fromDataView) return warn(`no data matches fromDataId ${fromDataId}`), null; dataView.parse([ fromDataView ], { type: "dataview" }), dataView.transform({ type: "copyDataView" }); } else if ("number" == typeof fromDataIndex) { const fromDataView = sourceDataViews[fromDataIndex]; if (!fromDataView) return warn(`no data matches fromDataIndex ${fromDataIndex}`), null; dataView.parse([ fromDataView ], { type: "dataview" }), dataView.transform({ type: "copyDataView" }); } else Array.isArray(values) ? dataView.parse(values, parser) : !isString(values) || parser && ![ "csv", "dsv", "tsv" ].includes(parser.type) ? (dataView.parse([]), warn("values should be array")) : dataView.parse(values, null !== (_a = parser) && void 0 !== _a ? _a : { type: "csv" }); transforms && transforms.length && transforms.forEach((transform => { dataSet.getTransform(transform.type) && dataView.transform(transform); })); } return dataView; } export function updateDataViewInData(dataView, data, forceMerge) { dataView && (data.fields && dataView.setFields(data.fields, forceMerge), dataView.parseNewData(data.values, data.parser)); } export var TransformLevel; !function(TransformLevel) { TransformLevel[TransformLevel.copyDataView = -10] = "copyDataView", TransformLevel[TransformLevel.treemapFilter = -8] = "treemapFilter", TransformLevel[TransformLevel.treemapFlatten = -7] = "treemapFlatten", TransformLevel[TransformLevel.dotObjFlat = -7] = "dotObjFlat", TransformLevel[TransformLevel.linkDotInfo = -7] = "linkDotInfo", TransformLevel[TransformLevel.sankeyLayout = -7] = "sankeyLayout", TransformLevel[TransformLevel.dataZoomFilter = -6] = "dataZoomFilter", TransformLevel[TransformLevel.legendFilter = -5] = "legendFilter"; }(TransformLevel || (TransformLevel = {})); //# sourceMappingURL=initialize.js.map