@visactor/vseed 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builder/builder/buildAdvanced.d.ts +1 -1
- package/dist/builder/builder/buildSpec.d.ts +1 -1
- package/dist/builder/builder/builder.d.ts +387 -7
- package/dist/builder/register/all.d.ts +1 -0
- package/dist/builder/register/index.d.ts +3 -1
- package/dist/builder/register/theme.d.ts +4 -0
- package/dist/dataReshape/dataReshapeFor1D1M.d.ts +1 -1
- package/dist/dataReshape/dataReshapeFor2D1M.d.ts +1 -1
- package/dist/dataReshape/foldMeasures.d.ts +2 -2
- package/dist/dataReshape/unfoldDimensions.d.ts +2 -2
- package/dist/index.cjs +691 -265
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +446 -80
- package/dist/index.js.map +1 -0
- package/dist/pipeline/advanced/pipeline/area.d.ts +1 -1
- package/dist/pipeline/advanced/pipeline/areaPercent.d.ts +1 -1
- package/dist/pipeline/advanced/pipeline/bar.d.ts +1 -1
- package/dist/pipeline/advanced/pipeline/barParallel.d.ts +1 -1
- package/dist/pipeline/advanced/pipeline/barPercent.d.ts +1 -1
- package/dist/pipeline/advanced/pipeline/column.d.ts +1 -1
- package/dist/pipeline/advanced/pipeline/columnParallel.d.ts +1 -1
- package/dist/pipeline/advanced/pipeline/columnPercent.d.ts +1 -1
- package/dist/pipeline/advanced/pipeline/line.d.ts +1 -1
- package/dist/pipeline/advanced/pipes/baseConfig/baseConfig.d.ts +3 -0
- package/dist/pipeline/advanced/pipes/baseConfig/index.d.ts +1 -0
- package/dist/pipeline/advanced/pipes/encoding/encodingCartesian.d.ts +1 -1
- package/dist/pipeline/advanced/pipes/index.d.ts +2 -0
- package/dist/pipeline/advanced/pipes/init/autoDimensions.d.ts +2 -0
- package/dist/pipeline/advanced/pipes/init/autoMeasures.d.ts +2 -0
- package/dist/pipeline/advanced/pipes/init/index.d.ts +2 -0
- package/dist/pipeline/advanced/pipes/init/initAdvancedVSeed.d.ts +1 -1
- package/dist/pipeline/advanced/pipes/init/utils.d.ts +1 -0
- package/dist/pipeline/advanced/pipes/reshape/reshapeTo1D1M.d.ts +1 -1
- package/dist/pipeline/advanced/pipes/reshape/reshapeTo2D1M.d.ts +1 -1
- package/dist/pipeline/advanced/pipes/theme/index.d.ts +1 -0
- package/dist/pipeline/advanced/pipes/theme/theme.d.ts +3 -0
- package/dist/pipeline/spec/pipeline/area.d.ts +1 -1
- package/dist/pipeline/spec/pipeline/areaPercent.d.ts +1 -1
- package/dist/pipeline/spec/pipeline/bar.d.ts +1 -1
- package/dist/pipeline/spec/pipeline/barParallel.d.ts +1 -1
- package/dist/pipeline/spec/pipeline/barPercent.d.ts +1 -1
- package/dist/pipeline/spec/pipeline/column.d.ts +1 -1
- package/dist/pipeline/spec/pipeline/columnParallel.d.ts +1 -1
- package/dist/pipeline/spec/pipeline/columnPercent.d.ts +1 -1
- package/dist/pipeline/spec/pipeline/line.d.ts +1 -1
- package/dist/pipeline/spec/pipes/axes/xBand.d.ts +1 -1
- package/dist/pipeline/spec/pipes/axes/xLinear.d.ts +1 -1
- package/dist/pipeline/spec/pipes/axes/yBand.d.ts +1 -1
- package/dist/pipeline/spec/pipes/axes/yLinear.d.ts +1 -1
- package/dist/pipeline/spec/pipes/backgroundColor/background.d.ts +2 -0
- package/dist/pipeline/spec/pipes/backgroundColor/index.d.ts +1 -0
- package/dist/pipeline/spec/pipes/color/color.d.ts +2 -0
- package/dist/pipeline/spec/pipes/color/index.d.ts +1 -0
- package/dist/pipeline/spec/pipes/dataset/dataset.d.ts +1 -1
- package/dist/pipeline/spec/pipes/index.d.ts +5 -0
- package/dist/pipeline/spec/pipes/init/area.d.ts +1 -1
- package/dist/pipeline/spec/pipes/init/bar.d.ts +1 -1
- package/dist/pipeline/spec/pipes/init/barParallel.d.ts +1 -1
- package/dist/pipeline/spec/pipes/init/column.d.ts +1 -1
- package/dist/pipeline/spec/pipes/init/columnParallel.d.ts +1 -1
- package/dist/pipeline/spec/pipes/init/line.d.ts +1 -1
- package/dist/pipeline/spec/pipes/label/index.d.ts +1 -0
- package/dist/pipeline/spec/pipes/label/label.d.ts +2 -0
- package/dist/pipeline/spec/pipes/legend/index.d.ts +1 -0
- package/dist/pipeline/spec/pipes/legend/legend.d.ts +2 -0
- package/dist/pipeline/spec/pipes/percent/percent.d.ts +1 -1
- package/dist/pipeline/spec/pipes/stack/stack.d.ts +1 -1
- package/dist/pipeline/spec/pipes/tooltip/index.d.ts +1 -0
- package/dist/pipeline/spec/pipes/tooltip/tooltip.d.ts +2 -0
- package/dist/pipeline/utils/chatType.d.ts +3 -0
- package/dist/pipeline/utils/index.d.ts +1 -0
- package/dist/pipeline/utils/pipeline.d.ts +1 -1
- package/dist/theme/dark.d.ts +2 -0
- package/dist/theme/index.d.ts +2 -0
- package/dist/theme/light.d.ts +2 -0
- package/dist/types/{properties/advancedVSeed.d.ts → advancedVSeed.d.ts} +53 -8
- package/dist/types/builder/builder.d.ts +10 -3
- package/dist/types/chartType/area/area.d.ts +38 -3
- package/dist/types/chartType/areaPercent/areaPercent.d.ts +38 -3
- package/dist/types/chartType/bar/bar.d.ts +38 -3
- package/dist/types/chartType/barParallel/barParallel.d.ts +38 -3
- package/dist/types/chartType/barPercent/barPercent.d.ts +38 -3
- package/dist/types/chartType/column/column.d.ts +38 -3
- package/dist/types/chartType/columnParallel/columnParallel.d.ts +38 -3
- package/dist/types/chartType/columnPercent/columnPercent.d.ts +38 -3
- package/dist/types/chartType/donut/donut.d.ts +38 -3
- package/dist/types/chartType/dualAxis/dualAxis.d.ts +38 -3
- package/dist/types/chartType/index.d.ts +1 -1
- package/dist/types/chartType/line/line.d.ts +38 -3
- package/dist/types/chartType/pie/pie.d.ts +38 -3
- package/dist/types/chartType/pivotTable/pivotTable.d.ts +18 -3
- package/dist/types/chartType/rose/rose.d.ts +38 -3
- package/dist/types/chartType/table/table.d.ts +18 -3
- package/dist/types/index.d.ts +2 -0
- package/dist/types/pipeline/advancedVSeed/advancedVSeed.d.ts +4 -1
- package/dist/types/pipeline/spec/spec.d.ts +2 -1
- package/dist/types/properties/baseConfig/backgroundColor.d.ts +8 -0
- package/dist/types/properties/baseConfig/baseConfig.d.ts +44 -0
- package/dist/types/properties/baseConfig/color.d.ts +23 -0
- package/dist/types/properties/baseConfig/index.d.ts +12 -0
- package/dist/types/properties/baseConfig/label.d.ts +11 -0
- package/dist/types/properties/baseConfig/legend.d.ts +11 -0
- package/dist/types/properties/baseConfig/tooltip.d.ts +11 -0
- package/dist/types/properties/chartType/zChartType.d.ts +8 -8
- package/dist/types/properties/index.d.ts +2 -2
- package/dist/types/properties/theme/customTheme.d.ts +49 -0
- package/dist/types/properties/theme/index.d.ts +4 -0
- package/dist/types/properties/theme/theme.d.ts +15 -0
- package/dist/types/{properties/vseed.d.ts → vseed.d.ts} +25 -18
- package/package.json +2 -1
- package/dist/types/chartType/vseedDSL.d.ts +0 -16
- /package/dist/builder/register/{register.d.ts → chartType.d.ts} +0 -0
package/dist/index.cjs
CHANGED
@@ -24,127 +24,69 @@ var __webpack_require__ = {};
|
|
24
24
|
var __webpack_exports__ = {};
|
25
25
|
__webpack_require__.r(__webpack_exports__);
|
26
26
|
__webpack_require__.d(__webpack_exports__, {
|
27
|
-
|
28
|
-
|
27
|
+
columnPercentSpecPipeline: ()=>columnPercentSpecPipeline,
|
28
|
+
isVChart: ()=>isVChart,
|
29
|
+
registerAll: ()=>all_registerAll,
|
29
30
|
execPipeline: ()=>execPipeline,
|
30
31
|
areaSpecPipeline: ()=>areaSpecPipeline,
|
31
|
-
|
32
|
+
registerCustomTheme: ()=>registerCustomTheme,
|
33
|
+
registerLine: ()=>registerLine,
|
34
|
+
zColor: ()=>zColor,
|
32
35
|
zMeasureGroup: ()=>zMeasureGroup,
|
33
|
-
barPercentAdvancedPipeline: ()=>barPercentAdvancedPipeline,
|
34
|
-
areaPercentAdvancedPipeline: ()=>areaPercentAdvancedPipeline,
|
35
36
|
zUnfoldInfo: ()=>zUnfoldInfo,
|
36
|
-
zVSeed: ()=>zVSeed,
|
37
37
|
zMeasures: ()=>zMeasures,
|
38
|
-
|
39
|
-
zDimensions: ()=>zDimensions,
|
38
|
+
darkTheme: ()=>darkTheme,
|
40
39
|
columnPercentAdvancedPipeline: ()=>columnPercentAdvancedPipeline,
|
41
|
-
|
42
|
-
VSeedJSONSchema: ()=>VSeedJSONSchema,
|
40
|
+
isVTable: ()=>isVTable,
|
43
41
|
columnSpecPipeline: ()=>columnSpecPipeline,
|
44
|
-
|
42
|
+
zFoldInfo: ()=>zFoldInfo,
|
45
43
|
zDatasetReshapeInfo: ()=>zDatasetReshapeInfo,
|
44
|
+
columnParallelSpecPipeline: ()=>columnParallelSpecPipeline,
|
45
|
+
columnAdvancedPipeline: ()=>columnAdvancedPipeline,
|
46
|
+
zLabel: ()=>zLabel,
|
47
|
+
registerColumn: ()=>registerColumn,
|
48
|
+
zDimension: ()=>zDimension,
|
49
|
+
lightTheme: ()=>lightTheme,
|
50
|
+
registerColumnParallel: ()=>registerColumnParallel,
|
51
|
+
zCustomTheme: ()=>zCustomTheme,
|
52
|
+
dataReshapeFor1D1M: ()=>dataReshapeFor1D1M,
|
53
|
+
registerArea: ()=>registerArea,
|
54
|
+
zDataset: ()=>zDataset,
|
55
|
+
barPercentAdvancedPipeline: ()=>barPercentAdvancedPipeline,
|
56
|
+
areaPercentAdvancedPipeline: ()=>areaPercentAdvancedPipeline,
|
57
|
+
zBackgroundColor: ()=>zBackgroundColor,
|
58
|
+
registerBarParallel: ()=>registerBarParallel,
|
59
|
+
zMeasure: ()=>zMeasure,
|
60
|
+
zDimensions: ()=>zDimensions,
|
61
|
+
zLegend: ()=>zLegend,
|
62
|
+
zTheme: ()=>zTheme,
|
63
|
+
zEncoding: ()=>zEncoding,
|
64
|
+
registerAreaPercent: ()=>registerAreaPercent,
|
46
65
|
zDatum: ()=>zDatum,
|
47
|
-
zFoldInfo: ()=>zFoldInfo,
|
48
66
|
barAdvancedPipeline: ()=>barAdvancedPipeline,
|
67
|
+
zCustomThemeConfig: ()=>zCustomThemeConfig,
|
49
68
|
columnParallelAdvancedPipeline: ()=>columnParallelAdvancedPipeline,
|
50
|
-
|
51
|
-
|
52
|
-
dataReshapeFor2D1M: ()=>dataReshapeFor2D1M,
|
69
|
+
registerColumnPercent: ()=>registerColumnPercent,
|
70
|
+
registerBarPercent: ()=>registerBarPercent,
|
53
71
|
foldMeasures: ()=>foldMeasures,
|
54
|
-
|
72
|
+
dataReshapeFor2D1M: ()=>dataReshapeFor2D1M,
|
73
|
+
registerLightTheme: ()=>registerLightTheme,
|
74
|
+
registerDarkTheme: ()=>registerDarkTheme,
|
55
75
|
zChartType: ()=>zChartType,
|
56
|
-
zDimension: ()=>zDimension,
|
57
76
|
barParallelAdvancedPipeline: ()=>barParallelAdvancedPipeline,
|
58
77
|
barPercentSpecPipeline: ()=>barPercentSpecPipeline,
|
59
78
|
lineAdvancedPipeline: ()=>lineAdvancedPipeline,
|
79
|
+
zTooltip: ()=>zTooltip,
|
60
80
|
barSpecPipeline: ()=>barSpecPipeline,
|
61
81
|
lineSpecPipeline: ()=>lineSpecPipeline,
|
82
|
+
zBaseConfig: ()=>zBaseConfig,
|
62
83
|
unfoldDimensions: ()=>unfoldDimensions,
|
63
84
|
areaAdvancedPipeline: ()=>areaAdvancedPipeline,
|
64
85
|
areaPercentSpecPipeline: ()=>areaPercentSpecPipeline,
|
65
86
|
Builder: ()=>Builder,
|
66
87
|
barParallelSpecPipeline: ()=>barParallelSpecPipeline,
|
67
|
-
|
68
|
-
registerAll: ()=>registerAll
|
88
|
+
registerBar: ()=>registerBar
|
69
89
|
});
|
70
|
-
const execPipeline = (pipeline, context, initialValue = {})=>{
|
71
|
-
const result = pipeline.reduce((prev, cur)=>cur(prev, context), initialValue);
|
72
|
-
return result;
|
73
|
-
};
|
74
|
-
const buildAdvanced = (builder)=>{
|
75
|
-
const { chartType } = builder.vseed;
|
76
|
-
if (!chartType) throw new Error('chartType is nil in buildAdvanced');
|
77
|
-
const pipeline = builder.getAdvancedPipeline(chartType);
|
78
|
-
if (!pipeline) throw new Error(`no advanced pipeline for chartType ${chartType}`);
|
79
|
-
const context = {
|
80
|
-
vseed: builder.vseed
|
81
|
-
};
|
82
|
-
try {
|
83
|
-
return execPipeline(pipeline, context);
|
84
|
-
} catch (e) {
|
85
|
-
console.error(e);
|
86
|
-
throw new Error("buildAdvanced error, see error info in console");
|
87
|
-
}
|
88
|
-
};
|
89
|
-
const buildSpec = (builder, advancedVSeed)=>{
|
90
|
-
const { chartType } = builder.vseed;
|
91
|
-
if (!chartType) throw new Error('chartType is nil in buildSpec');
|
92
|
-
const pipeline = builder.getSpecPipeline(chartType);
|
93
|
-
if (!pipeline) throw new Error(`no spec pipeline for chartType ${chartType}`);
|
94
|
-
const context = {
|
95
|
-
vseed: builder.vseed,
|
96
|
-
advancedVSeed
|
97
|
-
};
|
98
|
-
try {
|
99
|
-
return execPipeline(pipeline, context);
|
100
|
-
} catch (e) {
|
101
|
-
console.error(e);
|
102
|
-
throw new Error("buildSpec error, see error info in console");
|
103
|
-
}
|
104
|
-
};
|
105
|
-
const build = (builder)=>{
|
106
|
-
const advancedVSeed = builder.buildAdvanced();
|
107
|
-
console.log('debug advancedVSeed', advancedVSeed);
|
108
|
-
if (!advancedVSeed) throw new Error('advancedVSeed is null');
|
109
|
-
const spec = builder.buildSpec(advancedVSeed);
|
110
|
-
console.log('debug spec', spec);
|
111
|
-
return spec;
|
112
|
-
};
|
113
|
-
class Builder {
|
114
|
-
_vseed;
|
115
|
-
_advancedVSeed;
|
116
|
-
static _advancedPipelineMap = {};
|
117
|
-
static _specPipelineMap = {};
|
118
|
-
static from = (vseed)=>new Builder(vseed);
|
119
|
-
constructor(vseed){
|
120
|
-
this._vseed = vseed;
|
121
|
-
this._advancedVSeed = null;
|
122
|
-
}
|
123
|
-
build = ()=>build(this);
|
124
|
-
buildSpec = (advanced)=>buildSpec(this, advanced);
|
125
|
-
buildAdvanced = ()=>buildAdvanced(this);
|
126
|
-
getAdvancedPipeline = (chartType)=>Builder._advancedPipelineMap[chartType];
|
127
|
-
getSpecPipeline = (chartType)=>Builder._specPipelineMap[chartType];
|
128
|
-
get vseed() {
|
129
|
-
return this._vseed;
|
130
|
-
}
|
131
|
-
set vseed(value) {
|
132
|
-
this._vseed = value;
|
133
|
-
}
|
134
|
-
get advancedVSeed() {
|
135
|
-
return this._advancedVSeed;
|
136
|
-
}
|
137
|
-
set advancedVSeed(value) {
|
138
|
-
this._advancedVSeed = value;
|
139
|
-
}
|
140
|
-
}
|
141
|
-
const initAdvancedVSeed = (advancedVSeed, context)=>{
|
142
|
-
const { vseed } = context;
|
143
|
-
return {
|
144
|
-
...advancedVSeed,
|
145
|
-
chartType: vseed.chartType
|
146
|
-
};
|
147
|
-
};
|
148
90
|
const FoldMeasureName = '__MeaName__';
|
149
91
|
const FoldMeasureValue = '__MeaValue__';
|
150
92
|
const FoldMeasureId = '__MeaId__';
|
@@ -270,7 +212,8 @@ const reshapeTo2D1M = (advancedVSeed, context)=>{
|
|
270
212
|
...advancedVSeed
|
271
213
|
};
|
272
214
|
const { vseed } = context;
|
273
|
-
const {
|
215
|
+
const { dataset } = vseed;
|
216
|
+
const { dimensions, measures } = advancedVSeed;
|
274
217
|
if (!measures || !dimensions || !dataset) return result;
|
275
218
|
if (0 === measures.length) throw new Error('measures can not be empty');
|
276
219
|
const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor2D1M(dataset, dimensions, measures);
|
@@ -351,25 +294,234 @@ const encodingYX = (advancedVSeed)=>{
|
|
351
294
|
encoding
|
352
295
|
};
|
353
296
|
};
|
297
|
+
const initAdvancedVSeed = (advancedVSeed, context)=>{
|
298
|
+
const { vseed } = context;
|
299
|
+
const { chartType = 'table' } = vseed;
|
300
|
+
return {
|
301
|
+
...advancedVSeed,
|
302
|
+
chartType
|
303
|
+
};
|
304
|
+
};
|
305
|
+
const autoMeasures = (advancedVSeed, context)=>{
|
306
|
+
const result = {
|
307
|
+
...advancedVSeed
|
308
|
+
};
|
309
|
+
const { vseed } = context;
|
310
|
+
const { measures, dataset } = vseed;
|
311
|
+
if (!dataset) throw new Error('dataset is required');
|
312
|
+
if (0 === dataset.length) return result;
|
313
|
+
if (measures) {
|
314
|
+
result.measures = measures;
|
315
|
+
return result;
|
316
|
+
}
|
317
|
+
const top100dataset = dataset.slice(0, 100);
|
318
|
+
const sample = top100dataset.reduce((prev, cur)=>({
|
319
|
+
...prev,
|
320
|
+
...cur
|
321
|
+
}), {});
|
322
|
+
result.measures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
|
323
|
+
'',
|
324
|
+
null,
|
325
|
+
void 0
|
326
|
+
].includes(key)).map((measure)=>({
|
327
|
+
id: measure,
|
328
|
+
alias: measure
|
329
|
+
}));
|
330
|
+
return result;
|
331
|
+
};
|
332
|
+
const autoDimensions = (advancedVSeed, context)=>{
|
333
|
+
const result = {
|
334
|
+
...advancedVSeed
|
335
|
+
};
|
336
|
+
const { vseed } = context;
|
337
|
+
const { dimensions, dataset } = vseed;
|
338
|
+
const { measures = [] } = advancedVSeed;
|
339
|
+
if (!dataset) throw new Error('dataset is required');
|
340
|
+
if (0 === dataset.length) return result;
|
341
|
+
if (dimensions) {
|
342
|
+
result.dimensions = dimensions;
|
343
|
+
return result;
|
344
|
+
}
|
345
|
+
const top100dataset = dataset.slice(0, 100);
|
346
|
+
const sample = top100dataset.reduce((prev, cur)=>({
|
347
|
+
...prev,
|
348
|
+
...cur
|
349
|
+
}), {});
|
350
|
+
result.dimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
|
351
|
+
'',
|
352
|
+
null,
|
353
|
+
void 0
|
354
|
+
].includes(key) && !measures.some((measure)=>measure.id === key)).map((dim)=>({
|
355
|
+
id: dim,
|
356
|
+
alias: dim,
|
357
|
+
location: 'dimension'
|
358
|
+
}));
|
359
|
+
return result;
|
360
|
+
};
|
361
|
+
const external_remeda_namespaceObject = require("remeda");
|
362
|
+
const vchartBaseConfig = (advancedVSeed, context)=>{
|
363
|
+
const { vseed } = context;
|
364
|
+
const result = {
|
365
|
+
...advancedVSeed
|
366
|
+
};
|
367
|
+
const config = (0, external_remeda_namespaceObject.pick)(vseed, [
|
368
|
+
'backgroundColor',
|
369
|
+
'color',
|
370
|
+
'label',
|
371
|
+
'legend',
|
372
|
+
'tooltip'
|
373
|
+
]);
|
374
|
+
result.baseConfig = {
|
375
|
+
vchart: {
|
376
|
+
...config
|
377
|
+
}
|
378
|
+
};
|
379
|
+
return result;
|
380
|
+
};
|
381
|
+
const vchartTheme = (advancedVSeed, context)=>{
|
382
|
+
const { customTheme, vseed } = context;
|
383
|
+
const { theme = 'light' } = vseed;
|
384
|
+
const result = {
|
385
|
+
...advancedVSeed
|
386
|
+
};
|
387
|
+
if (!customTheme || !customTheme[theme]) return result;
|
388
|
+
const config = result.baseConfig?.vchart;
|
389
|
+
const themeConfig = customTheme?.[theme].baseConfig?.vchart;
|
390
|
+
if (!themeConfig || !config) return result;
|
391
|
+
const mergedConfig = (0, external_remeda_namespaceObject.mergeDeep)(themeConfig, (0, external_remeda_namespaceObject.clone)(config));
|
392
|
+
result.baseConfig = {
|
393
|
+
vchart: mergedConfig
|
394
|
+
};
|
395
|
+
return result;
|
396
|
+
};
|
397
|
+
const lineAdvancedPipeline = [
|
398
|
+
initAdvancedVSeed,
|
399
|
+
autoMeasures,
|
400
|
+
autoDimensions,
|
401
|
+
reshapeTo2D1M,
|
402
|
+
encodingXY,
|
403
|
+
vchartBaseConfig,
|
404
|
+
vchartTheme
|
405
|
+
];
|
406
|
+
const barAdvancedPipeline = [
|
407
|
+
initAdvancedVSeed,
|
408
|
+
autoMeasures,
|
409
|
+
autoDimensions,
|
410
|
+
reshapeTo2D1M,
|
411
|
+
encodingYX,
|
412
|
+
vchartBaseConfig,
|
413
|
+
vchartTheme
|
414
|
+
];
|
415
|
+
const barParallelAdvancedPipeline = [
|
416
|
+
initAdvancedVSeed,
|
417
|
+
autoMeasures,
|
418
|
+
autoDimensions,
|
419
|
+
reshapeTo2D1M,
|
420
|
+
encodingYX,
|
421
|
+
vchartBaseConfig,
|
422
|
+
vchartTheme
|
423
|
+
];
|
424
|
+
const barPercentAdvancedPipeline = [
|
425
|
+
initAdvancedVSeed,
|
426
|
+
autoMeasures,
|
427
|
+
autoDimensions,
|
428
|
+
reshapeTo2D1M,
|
429
|
+
encodingYX,
|
430
|
+
vchartBaseConfig,
|
431
|
+
vchartTheme
|
432
|
+
];
|
354
433
|
const columnAdvancedPipeline = [
|
355
434
|
initAdvancedVSeed,
|
435
|
+
autoMeasures,
|
436
|
+
autoDimensions,
|
356
437
|
reshapeTo2D1M,
|
357
|
-
encodingXY
|
438
|
+
encodingXY,
|
439
|
+
vchartBaseConfig,
|
440
|
+
vchartTheme
|
358
441
|
];
|
359
|
-
const
|
442
|
+
const columnParallelAdvancedPipeline = [
|
443
|
+
initAdvancedVSeed,
|
444
|
+
autoMeasures,
|
445
|
+
autoDimensions,
|
446
|
+
reshapeTo2D1M,
|
447
|
+
encodingXY,
|
448
|
+
vchartBaseConfig,
|
449
|
+
vchartTheme
|
450
|
+
];
|
451
|
+
const columnPercentAdvancedPipeline = [
|
452
|
+
initAdvancedVSeed,
|
453
|
+
autoMeasures,
|
454
|
+
autoDimensions,
|
455
|
+
reshapeTo2D1M,
|
456
|
+
encodingXY,
|
457
|
+
vchartBaseConfig,
|
458
|
+
vchartTheme
|
459
|
+
];
|
460
|
+
const areaAdvancedPipeline = [
|
461
|
+
initAdvancedVSeed,
|
462
|
+
autoMeasures,
|
463
|
+
autoDimensions,
|
464
|
+
reshapeTo2D1M,
|
465
|
+
encodingXY,
|
466
|
+
vchartBaseConfig,
|
467
|
+
vchartTheme
|
468
|
+
];
|
469
|
+
const areaPercentAdvancedPipeline = [
|
470
|
+
initAdvancedVSeed,
|
471
|
+
autoMeasures,
|
472
|
+
autoDimensions,
|
473
|
+
reshapeTo2D1M,
|
474
|
+
encodingXY,
|
475
|
+
vchartBaseConfig,
|
476
|
+
vchartTheme
|
477
|
+
];
|
478
|
+
const initLine = (spec, context)=>{
|
360
479
|
const result = {
|
361
480
|
...spec
|
362
481
|
};
|
363
482
|
const { advancedVSeed } = context;
|
364
483
|
const { encoding } = advancedVSeed;
|
365
|
-
|
484
|
+
if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
|
485
|
+
result.type = 'line';
|
366
486
|
result.direction = 'vertical';
|
367
|
-
result.xField = encoding[0].x
|
368
|
-
result.yField = encoding[0].y
|
369
|
-
result.seriesField = encoding[0].group
|
487
|
+
result.xField = encoding[0].x[0];
|
488
|
+
result.yField = encoding[0].y[0];
|
489
|
+
result.seriesField = encoding[0].group[0];
|
370
490
|
result.padding = 0;
|
371
491
|
return result;
|
372
492
|
};
|
493
|
+
const color_color = (spec, context)=>{
|
494
|
+
const result = {
|
495
|
+
...spec
|
496
|
+
};
|
497
|
+
const { advancedVSeed } = context;
|
498
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
499
|
+
const { unfoldInfo } = datasetReshapeInfo;
|
500
|
+
const baseConfig = advancedVSeed.baseConfig.vchart;
|
501
|
+
if (!baseConfig || !baseConfig.color) return result;
|
502
|
+
const { color } = baseConfig;
|
503
|
+
const { colorScheme, colorMapping } = color;
|
504
|
+
result.color = {
|
505
|
+
type: 'ordinal',
|
506
|
+
domain: unfoldInfo.colorItems,
|
507
|
+
range: colorScheme,
|
508
|
+
specified: colorMapping
|
509
|
+
};
|
510
|
+
return result;
|
511
|
+
};
|
512
|
+
const background_backgroundColor = (spec, context)=>{
|
513
|
+
const result = {
|
514
|
+
...spec
|
515
|
+
};
|
516
|
+
const { advancedVSeed } = context;
|
517
|
+
const { baseConfig } = advancedVSeed;
|
518
|
+
if (!baseConfig?.vchart) return result;
|
519
|
+
const { backgroundColor } = baseConfig.vchart;
|
520
|
+
return {
|
521
|
+
...result,
|
522
|
+
background: backgroundColor
|
523
|
+
};
|
524
|
+
};
|
373
525
|
const dataset_dataset = (spec, context)=>{
|
374
526
|
const { advancedVSeed } = context;
|
375
527
|
return {
|
@@ -409,16 +561,138 @@ const yLinear = (spec)=>{
|
|
409
561
|
];
|
410
562
|
return result;
|
411
563
|
};
|
564
|
+
const label_label = (spec, context)=>{
|
565
|
+
const result = {
|
566
|
+
...spec
|
567
|
+
};
|
568
|
+
const { advancedVSeed } = context;
|
569
|
+
const baseConfig = advancedVSeed.baseConfig.vchart;
|
570
|
+
if (!baseConfig || !baseConfig.label) return result;
|
571
|
+
const { label } = baseConfig;
|
572
|
+
const { enable } = label;
|
573
|
+
result.label = {
|
574
|
+
visible: enable
|
575
|
+
};
|
576
|
+
return result;
|
577
|
+
};
|
578
|
+
const defaultTooltip = {
|
579
|
+
enable: true
|
580
|
+
};
|
581
|
+
const tooltip_tooltip = (spec, context)=>{
|
582
|
+
const result = {
|
583
|
+
...spec
|
584
|
+
};
|
585
|
+
const { advancedVSeed } = context;
|
586
|
+
const baseConfig = advancedVSeed.baseConfig.vchart;
|
587
|
+
const { tooltip = defaultTooltip } = baseConfig;
|
588
|
+
const { enable } = tooltip;
|
589
|
+
result.tooltip = {
|
590
|
+
visible: enable
|
591
|
+
};
|
592
|
+
return result;
|
593
|
+
};
|
594
|
+
const defaultLegend = {
|
595
|
+
enable: true
|
596
|
+
};
|
597
|
+
const legend_legend = (spec, context)=>{
|
598
|
+
const result = {
|
599
|
+
...spec
|
600
|
+
};
|
601
|
+
const { advancedVSeed } = context;
|
602
|
+
const baseConfig = advancedVSeed.baseConfig.vchart;
|
603
|
+
if (!baseConfig || !baseConfig.legend) return result;
|
604
|
+
const { legend = defaultLegend } = baseConfig;
|
605
|
+
const { enable } = legend;
|
606
|
+
result.legends = {
|
607
|
+
visible: enable
|
608
|
+
};
|
609
|
+
return result;
|
610
|
+
};
|
611
|
+
const lineSpecPipeline = [
|
612
|
+
initLine,
|
613
|
+
color_color,
|
614
|
+
background_backgroundColor,
|
615
|
+
dataset_dataset,
|
616
|
+
xBand,
|
617
|
+
yLinear,
|
618
|
+
label_label,
|
619
|
+
tooltip_tooltip,
|
620
|
+
legend_legend
|
621
|
+
];
|
622
|
+
const initColumn = (spec, context)=>{
|
623
|
+
const result = {
|
624
|
+
...spec
|
625
|
+
};
|
626
|
+
const { advancedVSeed } = context;
|
627
|
+
const { encoding } = advancedVSeed;
|
628
|
+
if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
|
629
|
+
result.type = 'bar';
|
630
|
+
result.direction = 'vertical';
|
631
|
+
result.xField = encoding[0].x[0];
|
632
|
+
result.yField = encoding[0].y[0];
|
633
|
+
result.seriesField = encoding[0].group[0];
|
634
|
+
result.padding = 0;
|
635
|
+
return result;
|
636
|
+
};
|
412
637
|
const columnSpecPipeline = [
|
413
638
|
initColumn,
|
639
|
+
color_color,
|
640
|
+
background_backgroundColor,
|
414
641
|
dataset_dataset,
|
415
642
|
xBand,
|
416
|
-
yLinear
|
643
|
+
yLinear,
|
644
|
+
label_label,
|
645
|
+
tooltip_tooltip,
|
646
|
+
legend_legend
|
417
647
|
];
|
418
|
-
const
|
419
|
-
|
420
|
-
|
421
|
-
|
648
|
+
const initColumnParallel = (spec, context)=>{
|
649
|
+
const result = {
|
650
|
+
...spec
|
651
|
+
};
|
652
|
+
const { advancedVSeed } = context;
|
653
|
+
const { encoding, datasetReshapeInfo } = advancedVSeed;
|
654
|
+
const { unfoldInfo } = datasetReshapeInfo;
|
655
|
+
if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
|
656
|
+
result.type = 'bar';
|
657
|
+
result.direction = 'vertical';
|
658
|
+
result.xField = [
|
659
|
+
encoding[0].x[0],
|
660
|
+
unfoldInfo.groupName
|
661
|
+
];
|
662
|
+
result.yField = encoding[0].y[0];
|
663
|
+
result.seriesField = encoding[0].group[0];
|
664
|
+
result.padding = 0;
|
665
|
+
return result;
|
666
|
+
};
|
667
|
+
const columnParallelSpecPipeline = [
|
668
|
+
initColumnParallel,
|
669
|
+
color_color,
|
670
|
+
background_backgroundColor,
|
671
|
+
dataset_dataset,
|
672
|
+
xBand,
|
673
|
+
yLinear,
|
674
|
+
label_label,
|
675
|
+
tooltip_tooltip,
|
676
|
+
legend_legend
|
677
|
+
];
|
678
|
+
const percent = (spec, context)=>{
|
679
|
+
const result = {
|
680
|
+
...spec
|
681
|
+
};
|
682
|
+
result.percent = true;
|
683
|
+
return result;
|
684
|
+
};
|
685
|
+
const columnPercentSpecPipeline = [
|
686
|
+
initColumn,
|
687
|
+
color_color,
|
688
|
+
background_backgroundColor,
|
689
|
+
percent,
|
690
|
+
dataset_dataset,
|
691
|
+
xBand,
|
692
|
+
yLinear,
|
693
|
+
label_label,
|
694
|
+
tooltip_tooltip,
|
695
|
+
legend_legend
|
422
696
|
];
|
423
697
|
const initBar = (spec, context)=>{
|
424
698
|
const result = {
|
@@ -426,6 +700,7 @@ const initBar = (spec, context)=>{
|
|
426
700
|
};
|
427
701
|
const { advancedVSeed } = context;
|
428
702
|
const { encoding } = advancedVSeed;
|
703
|
+
if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
|
429
704
|
result.type = 'bar';
|
430
705
|
result.direction = 'horizontal';
|
431
706
|
result.yField = encoding[0].y?.[0];
|
@@ -466,39 +741,56 @@ const yBand = (spec)=>{
|
|
466
741
|
};
|
467
742
|
const barSpecPipeline = [
|
468
743
|
initBar,
|
744
|
+
color_color,
|
745
|
+
background_backgroundColor,
|
469
746
|
dataset_dataset,
|
470
747
|
xLinear,
|
471
|
-
yBand
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
reshapeTo2D1M,
|
476
|
-
encodingXY
|
748
|
+
yBand,
|
749
|
+
label_label,
|
750
|
+
tooltip_tooltip,
|
751
|
+
legend_legend
|
477
752
|
];
|
478
|
-
const
|
753
|
+
const initBarParallel = (spec, context)=>{
|
479
754
|
const result = {
|
480
755
|
...spec
|
481
756
|
};
|
482
757
|
const { advancedVSeed } = context;
|
483
|
-
const { encoding } = advancedVSeed;
|
484
|
-
|
485
|
-
|
486
|
-
result.
|
487
|
-
result.
|
488
|
-
result.
|
758
|
+
const { encoding, datasetReshapeInfo } = advancedVSeed;
|
759
|
+
const { unfoldInfo } = datasetReshapeInfo;
|
760
|
+
if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
|
761
|
+
result.type = 'bar';
|
762
|
+
result.direction = 'horizontal';
|
763
|
+
result.yField = [
|
764
|
+
encoding[0].y[0],
|
765
|
+
unfoldInfo.groupName
|
766
|
+
];
|
767
|
+
result.xField = encoding[0].x[0];
|
768
|
+
result.seriesField = encoding[0].group[0];
|
489
769
|
result.padding = 0;
|
490
770
|
return result;
|
491
771
|
};
|
492
|
-
const
|
493
|
-
|
772
|
+
const barParallelSpecPipeline = [
|
773
|
+
initBarParallel,
|
774
|
+
color_color,
|
775
|
+
background_backgroundColor,
|
494
776
|
dataset_dataset,
|
495
|
-
|
496
|
-
|
777
|
+
xLinear,
|
778
|
+
yBand,
|
779
|
+
label_label,
|
780
|
+
tooltip_tooltip,
|
781
|
+
legend_legend
|
497
782
|
];
|
498
|
-
const
|
499
|
-
|
500
|
-
|
501
|
-
|
783
|
+
const barPercentSpecPipeline = [
|
784
|
+
initBar,
|
785
|
+
color_color,
|
786
|
+
background_backgroundColor,
|
787
|
+
percent,
|
788
|
+
dataset_dataset,
|
789
|
+
xLinear,
|
790
|
+
yBand,
|
791
|
+
label_label,
|
792
|
+
tooltip_tooltip,
|
793
|
+
legend_legend
|
502
794
|
];
|
503
795
|
const initArea = (spec, context)=>{
|
504
796
|
const result = {
|
@@ -506,11 +798,12 @@ const initArea = (spec, context)=>{
|
|
506
798
|
};
|
507
799
|
const { advancedVSeed } = context;
|
508
800
|
const { encoding } = advancedVSeed;
|
801
|
+
if (!encoding[0].y || !encoding[0].x || !encoding[0].group) return result;
|
509
802
|
result.type = 'area';
|
510
803
|
result.direction = 'vertical';
|
511
|
-
result.xField = encoding[0].x
|
512
|
-
result.yField = encoding[0].y
|
513
|
-
result.seriesField = encoding[0].group
|
804
|
+
result.xField = encoding[0].x[0];
|
805
|
+
result.yField = encoding[0].y[0];
|
806
|
+
result.seriesField = encoding[0].group[0];
|
514
807
|
result.padding = 0;
|
515
808
|
return result;
|
516
809
|
};
|
@@ -523,123 +816,108 @@ const stack = (spec, context)=>{
|
|
523
816
|
};
|
524
817
|
const areaSpecPipeline = [
|
525
818
|
initArea,
|
819
|
+
color_color,
|
820
|
+
background_backgroundColor,
|
526
821
|
stack,
|
527
822
|
dataset_dataset,
|
528
823
|
xBand,
|
529
|
-
yLinear
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
reshapeTo2D1M,
|
534
|
-
encodingXY
|
824
|
+
yLinear,
|
825
|
+
label_label,
|
826
|
+
tooltip_tooltip,
|
827
|
+
legend_legend
|
535
828
|
];
|
536
|
-
const percent = (spec, context)=>{
|
537
|
-
const result = {
|
538
|
-
...spec
|
539
|
-
};
|
540
|
-
result.percent = true;
|
541
|
-
return result;
|
542
|
-
};
|
543
829
|
const areaPercentSpecPipeline = [
|
544
830
|
initArea,
|
831
|
+
color_color,
|
832
|
+
background_backgroundColor,
|
545
833
|
percent,
|
546
834
|
dataset_dataset,
|
547
835
|
xBand,
|
548
|
-
yLinear
|
836
|
+
yLinear,
|
837
|
+
label_label,
|
838
|
+
tooltip_tooltip,
|
839
|
+
legend_legend
|
549
840
|
];
|
550
|
-
const
|
551
|
-
|
552
|
-
reshapeTo2D1M,
|
553
|
-
encodingYX
|
554
|
-
];
|
555
|
-
const barPercentSpecPipeline = [
|
556
|
-
initBar,
|
557
|
-
percent,
|
558
|
-
dataset_dataset,
|
559
|
-
xLinear,
|
560
|
-
yBand
|
561
|
-
];
|
562
|
-
const columnPercentAdvancedPipeline = [
|
563
|
-
initAdvancedVSeed,
|
564
|
-
reshapeTo2D1M,
|
565
|
-
encodingXY
|
566
|
-
];
|
567
|
-
const columnPercentSpecPipeline = [
|
568
|
-
initColumn,
|
569
|
-
percent,
|
570
|
-
dataset_dataset,
|
571
|
-
xBand,
|
572
|
-
yLinear
|
573
|
-
];
|
574
|
-
const columnParallelAdvancedPipeline = [
|
575
|
-
initAdvancedVSeed,
|
576
|
-
reshapeTo2D1M,
|
577
|
-
encodingXY
|
578
|
-
];
|
579
|
-
const initColumnParallel = (spec, context)=>{
|
580
|
-
const result = {
|
581
|
-
...spec
|
582
|
-
};
|
583
|
-
const { advancedVSeed } = context;
|
584
|
-
const { encoding, datasetReshapeInfo } = advancedVSeed;
|
585
|
-
const { foldInfo } = datasetReshapeInfo;
|
586
|
-
result.type = 'bar';
|
587
|
-
result.direction = 'vertical';
|
588
|
-
if (encoding[0].x?.[0]) result.xField = [
|
589
|
-
encoding[0].x[0],
|
590
|
-
foldInfo.measureName
|
591
|
-
];
|
592
|
-
result.yField = encoding[0].y?.[0];
|
593
|
-
result.seriesField = encoding[0].group?.[0];
|
594
|
-
result.padding = 0;
|
841
|
+
const execPipeline = (pipeline, context, initialValue = {})=>{
|
842
|
+
const result = pipeline.reduce((prev, cur)=>cur(prev, context), initialValue);
|
595
843
|
return result;
|
596
844
|
};
|
597
|
-
const
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
const
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
...spec
|
845
|
+
const isVTable = (chartType)=>[
|
846
|
+
'table',
|
847
|
+
'pivotTable'
|
848
|
+
].includes(chartType);
|
849
|
+
const isVChart = (chartType)=>!isVTable(chartType);
|
850
|
+
const buildAdvanced = (builder)=>{
|
851
|
+
const { chartType } = builder.vseed;
|
852
|
+
if (!chartType) throw new Error('chartType is nil in buildAdvanced');
|
853
|
+
const pipeline = builder.getAdvancedPipeline(chartType);
|
854
|
+
if (!pipeline) throw new Error(`no advanced pipeline for chartType ${chartType}`);
|
855
|
+
const context = {
|
856
|
+
vseed: builder.vseed,
|
857
|
+
customTheme: builder.getThemeMap()
|
611
858
|
};
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
617
|
-
|
618
|
-
encoding[0].y?.[0],
|
619
|
-
foldInfo?.measureName
|
620
|
-
];
|
621
|
-
result.xField = encoding[0].x?.[0];
|
622
|
-
result.seriesField = encoding[0].group?.[0];
|
623
|
-
result.padding = 0;
|
624
|
-
return result;
|
859
|
+
try {
|
860
|
+
return execPipeline(pipeline, context);
|
861
|
+
} catch (e) {
|
862
|
+
console.error(e);
|
863
|
+
throw new Error("buildAdvanced error, see error info in console");
|
864
|
+
}
|
625
865
|
};
|
626
|
-
const
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
641
|
-
|
866
|
+
const buildSpec = (builder, advancedVSeed)=>{
|
867
|
+
const { chartType } = builder.vseed;
|
868
|
+
if (!chartType) throw new Error('chartType is nil in buildSpec');
|
869
|
+
const pipeline = builder.getSpecPipeline(chartType);
|
870
|
+
if (!pipeline) throw new Error(`no spec pipeline for chartType ${chartType}`);
|
871
|
+
const context = {
|
872
|
+
vseed: builder.vseed,
|
873
|
+
advancedVSeed
|
874
|
+
};
|
875
|
+
try {
|
876
|
+
return execPipeline(pipeline, context);
|
877
|
+
} catch (e) {
|
878
|
+
console.error(e);
|
879
|
+
throw new Error("buildSpec error, see error info in console");
|
880
|
+
}
|
881
|
+
};
|
882
|
+
const build = (builder)=>{
|
883
|
+
console.log('debug vseed', builder.vseed);
|
884
|
+
const advancedVSeed = builder.buildAdvanced();
|
885
|
+
console.log('debug advancedVSeed', advancedVSeed);
|
886
|
+
if (!advancedVSeed) throw new Error('advancedVSeed is null');
|
887
|
+
const spec = builder.buildSpec(advancedVSeed);
|
888
|
+
console.log('debug spec', spec);
|
889
|
+
return spec;
|
642
890
|
};
|
891
|
+
class Builder {
|
892
|
+
_vseed;
|
893
|
+
_advancedVSeed = null;
|
894
|
+
constructor(vseed){
|
895
|
+
this._vseed = vseed;
|
896
|
+
}
|
897
|
+
build = ()=>build(this);
|
898
|
+
buildSpec = (advanced)=>buildSpec(this, advanced);
|
899
|
+
buildAdvanced = ()=>buildAdvanced(this);
|
900
|
+
getAdvancedPipeline = (chartType)=>Builder._advancedPipelineMap[chartType];
|
901
|
+
getSpecPipeline = (chartType)=>Builder._specPipelineMap[chartType];
|
902
|
+
getTheme = (themeKey)=>Builder._themeMap[themeKey];
|
903
|
+
getThemeMap = ()=>Builder._themeMap;
|
904
|
+
get vseed() {
|
905
|
+
return this._vseed;
|
906
|
+
}
|
907
|
+
set vseed(value) {
|
908
|
+
this._vseed = value;
|
909
|
+
}
|
910
|
+
get advancedVSeed() {
|
911
|
+
return this._advancedVSeed;
|
912
|
+
}
|
913
|
+
set advancedVSeed(value) {
|
914
|
+
this._advancedVSeed = value;
|
915
|
+
}
|
916
|
+
static _advancedPipelineMap = {};
|
917
|
+
static _specPipelineMap = {};
|
918
|
+
static _themeMap = {};
|
919
|
+
static from = (vseed)=>new Builder(vseed);
|
920
|
+
}
|
643
921
|
const registerColumn = ()=>{
|
644
922
|
Builder._advancedPipelineMap.column = columnAdvancedPipeline;
|
645
923
|
Builder._specPipelineMap.column = columnSpecPipeline;
|
@@ -676,6 +954,94 @@ const registerBarParallel = ()=>{
|
|
676
954
|
Builder._advancedPipelineMap.barParallel = barParallelAdvancedPipeline;
|
677
955
|
Builder._specPipelineMap.barParallel = barParallelSpecPipeline;
|
678
956
|
};
|
957
|
+
const lightTheme = ()=>({
|
958
|
+
baseConfig: {
|
959
|
+
vtable: {
|
960
|
+
backgroundColor: '#ffffff'
|
961
|
+
},
|
962
|
+
vchart: {
|
963
|
+
backgroundColor: '#ffffff',
|
964
|
+
color: {
|
965
|
+
colorScheme: [
|
966
|
+
'#8D72F6',
|
967
|
+
'#5766EC',
|
968
|
+
'#66A3FE',
|
969
|
+
'#51D5E6',
|
970
|
+
'#4EC0B3',
|
971
|
+
'#F9DF90',
|
972
|
+
'#F9AD71',
|
973
|
+
'#ED8888',
|
974
|
+
'#E9A0C3',
|
975
|
+
'#D77DD3'
|
976
|
+
]
|
977
|
+
},
|
978
|
+
label: {
|
979
|
+
enable: true
|
980
|
+
},
|
981
|
+
tooltip: {
|
982
|
+
enable: true
|
983
|
+
},
|
984
|
+
legend: {
|
985
|
+
enable: true
|
986
|
+
}
|
987
|
+
}
|
988
|
+
}
|
989
|
+
});
|
990
|
+
const darkTheme = ()=>({
|
991
|
+
baseConfig: {
|
992
|
+
vtable: {
|
993
|
+
backgroundColor: '#141414'
|
994
|
+
},
|
995
|
+
vchart: {
|
996
|
+
backgroundColor: '#141414',
|
997
|
+
color: {
|
998
|
+
colorScheme: [
|
999
|
+
'#2E62F1',
|
1000
|
+
'#4DC36A',
|
1001
|
+
'#FF8406',
|
1002
|
+
'#FFCC00',
|
1003
|
+
'#4F44CF',
|
1004
|
+
'#5AC8FA',
|
1005
|
+
'#003A8C',
|
1006
|
+
'#B08AE2',
|
1007
|
+
'#FF6341',
|
1008
|
+
'#98DD62'
|
1009
|
+
]
|
1010
|
+
},
|
1011
|
+
label: {
|
1012
|
+
enable: true
|
1013
|
+
},
|
1014
|
+
tooltip: {
|
1015
|
+
enable: true
|
1016
|
+
},
|
1017
|
+
legend: {
|
1018
|
+
enable: true
|
1019
|
+
}
|
1020
|
+
}
|
1021
|
+
}
|
1022
|
+
});
|
1023
|
+
const registerCustomTheme = (key, themeConfig)=>{
|
1024
|
+
Builder._themeMap[key] = themeConfig;
|
1025
|
+
};
|
1026
|
+
const registerLightTheme = ()=>{
|
1027
|
+
registerCustomTheme('light', lightTheme());
|
1028
|
+
};
|
1029
|
+
const registerDarkTheme = ()=>{
|
1030
|
+
registerCustomTheme('dark', darkTheme());
|
1031
|
+
};
|
1032
|
+
const all_registerAll = ()=>{
|
1033
|
+
registerLine();
|
1034
|
+
registerColumn();
|
1035
|
+
registerColumnParallel();
|
1036
|
+
registerColumnPercent();
|
1037
|
+
registerBar();
|
1038
|
+
registerBarParallel();
|
1039
|
+
registerBarPercent();
|
1040
|
+
registerArea();
|
1041
|
+
registerAreaPercent();
|
1042
|
+
registerLightTheme();
|
1043
|
+
registerDarkTheme();
|
1044
|
+
};
|
679
1045
|
const external_zod_namespaceObject = require("zod");
|
680
1046
|
const zChartType = external_zod_namespaceObject.z["enum"]([
|
681
1047
|
'table',
|
@@ -740,22 +1106,6 @@ const zMeasureGroup = external_zod_namespaceObject.z.object({
|
|
740
1106
|
}
|
741
1107
|
});
|
742
1108
|
const zMeasures = external_zod_namespaceObject.z.array(zMeasureGroup.or(zMeasure)).optional();
|
743
|
-
const zVSeed = external_zod_namespaceObject.z.object({
|
744
|
-
chartType: zChartType,
|
745
|
-
dataset: zDataset,
|
746
|
-
dimensions: zDimensions,
|
747
|
-
measures: zMeasures
|
748
|
-
});
|
749
|
-
const VSeedJSONSchema = external_zod_namespaceObject.z.toJSONSchema(zVSeed);
|
750
|
-
const zEncoding = external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.object({
|
751
|
-
x: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).optional(),
|
752
|
-
y: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).optional(),
|
753
|
-
color: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).optional(),
|
754
|
-
group: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).optional(),
|
755
|
-
angle: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).optional(),
|
756
|
-
radius: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).optional(),
|
757
|
-
tooltip: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).optional()
|
758
|
-
}));
|
759
1109
|
const zFoldInfo = external_zod_namespaceObject.z.object({
|
760
1110
|
foldMap: external_zod_namespaceObject.z.record(external_zod_namespaceObject.z.string(), external_zod_namespaceObject.z.string().or(external_zod_namespaceObject.z.undefined())),
|
761
1111
|
measureId: external_zod_namespaceObject.z.string(),
|
@@ -770,14 +1120,48 @@ const zDatasetReshapeInfo = external_zod_namespaceObject.z.object({
|
|
770
1120
|
foldInfo: zFoldInfo,
|
771
1121
|
unfoldInfo: zUnfoldInfo
|
772
1122
|
});
|
773
|
-
const
|
774
|
-
|
775
|
-
|
776
|
-
|
777
|
-
|
778
|
-
|
779
|
-
|
1123
|
+
const zEncoding = external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.object({
|
1124
|
+
x: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).optional(),
|
1125
|
+
y: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).optional(),
|
1126
|
+
color: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).optional(),
|
1127
|
+
group: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).optional(),
|
1128
|
+
angle: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).optional(),
|
1129
|
+
radius: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).optional(),
|
1130
|
+
tooltip: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).optional()
|
1131
|
+
}));
|
1132
|
+
const zBackgroundColor = external_zod_namespaceObject.z.string().default('transparent').optional();
|
1133
|
+
const zLabel = external_zod_namespaceObject.z.object({
|
1134
|
+
enable: external_zod_namespaceObject.z.boolean().default(true).optional()
|
1135
|
+
});
|
1136
|
+
const zColor = external_zod_namespaceObject.z.object({
|
1137
|
+
colorScheme: external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string()).optional(),
|
1138
|
+
colorMapping: external_zod_namespaceObject.z.record(external_zod_namespaceObject.z.string(), external_zod_namespaceObject.z.string()).optional()
|
1139
|
+
});
|
1140
|
+
const zTooltip = external_zod_namespaceObject.z.object({
|
1141
|
+
enable: external_zod_namespaceObject.z.boolean().default(true).optional()
|
1142
|
+
});
|
1143
|
+
const zLegend = external_zod_namespaceObject.z.object({
|
1144
|
+
enable: external_zod_namespaceObject.z.boolean().default(true).optional()
|
1145
|
+
});
|
1146
|
+
const zVChartBaseConfig = external_zod_namespaceObject.z.object({
|
1147
|
+
backgroundColor: zBackgroundColor,
|
1148
|
+
label: zLabel.optional(),
|
1149
|
+
color: zColor.optional(),
|
1150
|
+
tooltip: zTooltip.optional(),
|
1151
|
+
legend: zLegend.optional()
|
1152
|
+
});
|
1153
|
+
const zVTableBaseConfig = external_zod_namespaceObject.z.object({
|
1154
|
+
backgroundColor: zBackgroundColor
|
1155
|
+
});
|
1156
|
+
const zBaseConfig = external_zod_namespaceObject.z.object({
|
1157
|
+
vchart: zVChartBaseConfig.optional(),
|
1158
|
+
vtable: zVTableBaseConfig.optional()
|
1159
|
+
});
|
1160
|
+
const zCustomThemeConfig = external_zod_namespaceObject.z.object({
|
1161
|
+
baseConfig: zBaseConfig.optional()
|
780
1162
|
});
|
1163
|
+
const zCustomTheme = external_zod_namespaceObject.z.record(external_zod_namespaceObject.z.string(), zCustomThemeConfig).optional();
|
1164
|
+
const zTheme = external_zod_namespaceObject.z.string();
|
781
1165
|
const dataReshapeFor1D1M_emptyReshapeResult = {
|
782
1166
|
dataset: [],
|
783
1167
|
foldInfo: {
|
@@ -835,7 +1219,6 @@ const dataReshapeFor1D1M = (dataset, dimensions, measures)=>{
|
|
835
1219
|
}
|
836
1220
|
};
|
837
1221
|
exports.Builder = __webpack_exports__.Builder;
|
838
|
-
exports.VSeedJSONSchema = __webpack_exports__.VSeedJSONSchema;
|
839
1222
|
exports.areaAdvancedPipeline = __webpack_exports__.areaAdvancedPipeline;
|
840
1223
|
exports.areaPercentAdvancedPipeline = __webpack_exports__.areaPercentAdvancedPipeline;
|
841
1224
|
exports.areaPercentSpecPipeline = __webpack_exports__.areaPercentSpecPipeline;
|
@@ -852,18 +1235,36 @@ exports.columnParallelSpecPipeline = __webpack_exports__.columnParallelSpecPipel
|
|
852
1235
|
exports.columnPercentAdvancedPipeline = __webpack_exports__.columnPercentAdvancedPipeline;
|
853
1236
|
exports.columnPercentSpecPipeline = __webpack_exports__.columnPercentSpecPipeline;
|
854
1237
|
exports.columnSpecPipeline = __webpack_exports__.columnSpecPipeline;
|
1238
|
+
exports.darkTheme = __webpack_exports__.darkTheme;
|
855
1239
|
exports.dataReshapeFor1D1M = __webpack_exports__.dataReshapeFor1D1M;
|
856
1240
|
exports.dataReshapeFor2D1M = __webpack_exports__.dataReshapeFor2D1M;
|
857
1241
|
exports.execPipeline = __webpack_exports__.execPipeline;
|
858
1242
|
exports.foldMeasures = __webpack_exports__.foldMeasures;
|
1243
|
+
exports.isVChart = __webpack_exports__.isVChart;
|
1244
|
+
exports.isVTable = __webpack_exports__.isVTable;
|
1245
|
+
exports.lightTheme = __webpack_exports__.lightTheme;
|
859
1246
|
exports.lineAdvancedPipeline = __webpack_exports__.lineAdvancedPipeline;
|
860
1247
|
exports.lineSpecPipeline = __webpack_exports__.lineSpecPipeline;
|
861
1248
|
exports.registerAll = __webpack_exports__.registerAll;
|
1249
|
+
exports.registerArea = __webpack_exports__.registerArea;
|
1250
|
+
exports.registerAreaPercent = __webpack_exports__.registerAreaPercent;
|
862
1251
|
exports.registerBar = __webpack_exports__.registerBar;
|
1252
|
+
exports.registerBarParallel = __webpack_exports__.registerBarParallel;
|
1253
|
+
exports.registerBarPercent = __webpack_exports__.registerBarPercent;
|
863
1254
|
exports.registerColumn = __webpack_exports__.registerColumn;
|
1255
|
+
exports.registerColumnParallel = __webpack_exports__.registerColumnParallel;
|
1256
|
+
exports.registerColumnPercent = __webpack_exports__.registerColumnPercent;
|
1257
|
+
exports.registerCustomTheme = __webpack_exports__.registerCustomTheme;
|
1258
|
+
exports.registerDarkTheme = __webpack_exports__.registerDarkTheme;
|
1259
|
+
exports.registerLightTheme = __webpack_exports__.registerLightTheme;
|
1260
|
+
exports.registerLine = __webpack_exports__.registerLine;
|
864
1261
|
exports.unfoldDimensions = __webpack_exports__.unfoldDimensions;
|
865
|
-
exports.
|
1262
|
+
exports.zBackgroundColor = __webpack_exports__.zBackgroundColor;
|
1263
|
+
exports.zBaseConfig = __webpack_exports__.zBaseConfig;
|
866
1264
|
exports.zChartType = __webpack_exports__.zChartType;
|
1265
|
+
exports.zColor = __webpack_exports__.zColor;
|
1266
|
+
exports.zCustomTheme = __webpack_exports__.zCustomTheme;
|
1267
|
+
exports.zCustomThemeConfig = __webpack_exports__.zCustomThemeConfig;
|
867
1268
|
exports.zDataset = __webpack_exports__.zDataset;
|
868
1269
|
exports.zDatasetReshapeInfo = __webpack_exports__.zDatasetReshapeInfo;
|
869
1270
|
exports.zDatum = __webpack_exports__.zDatum;
|
@@ -871,14 +1272,16 @@ exports.zDimension = __webpack_exports__.zDimension;
|
|
871
1272
|
exports.zDimensions = __webpack_exports__.zDimensions;
|
872
1273
|
exports.zEncoding = __webpack_exports__.zEncoding;
|
873
1274
|
exports.zFoldInfo = __webpack_exports__.zFoldInfo;
|
1275
|
+
exports.zLabel = __webpack_exports__.zLabel;
|
1276
|
+
exports.zLegend = __webpack_exports__.zLegend;
|
874
1277
|
exports.zMeasure = __webpack_exports__.zMeasure;
|
875
1278
|
exports.zMeasureGroup = __webpack_exports__.zMeasureGroup;
|
876
1279
|
exports.zMeasures = __webpack_exports__.zMeasures;
|
1280
|
+
exports.zTheme = __webpack_exports__.zTheme;
|
1281
|
+
exports.zTooltip = __webpack_exports__.zTooltip;
|
877
1282
|
exports.zUnfoldInfo = __webpack_exports__.zUnfoldInfo;
|
878
|
-
exports.zVSeed = __webpack_exports__.zVSeed;
|
879
1283
|
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
880
1284
|
"Builder",
|
881
|
-
"VSeedJSONSchema",
|
882
1285
|
"areaAdvancedPipeline",
|
883
1286
|
"areaPercentAdvancedPipeline",
|
884
1287
|
"areaPercentSpecPipeline",
|
@@ -895,18 +1298,36 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
895
1298
|
"columnPercentAdvancedPipeline",
|
896
1299
|
"columnPercentSpecPipeline",
|
897
1300
|
"columnSpecPipeline",
|
1301
|
+
"darkTheme",
|
898
1302
|
"dataReshapeFor1D1M",
|
899
1303
|
"dataReshapeFor2D1M",
|
900
1304
|
"execPipeline",
|
901
1305
|
"foldMeasures",
|
1306
|
+
"isVChart",
|
1307
|
+
"isVTable",
|
1308
|
+
"lightTheme",
|
902
1309
|
"lineAdvancedPipeline",
|
903
1310
|
"lineSpecPipeline",
|
904
1311
|
"registerAll",
|
1312
|
+
"registerArea",
|
1313
|
+
"registerAreaPercent",
|
905
1314
|
"registerBar",
|
1315
|
+
"registerBarParallel",
|
1316
|
+
"registerBarPercent",
|
906
1317
|
"registerColumn",
|
1318
|
+
"registerColumnParallel",
|
1319
|
+
"registerColumnPercent",
|
1320
|
+
"registerCustomTheme",
|
1321
|
+
"registerDarkTheme",
|
1322
|
+
"registerLightTheme",
|
1323
|
+
"registerLine",
|
907
1324
|
"unfoldDimensions",
|
908
|
-
"
|
1325
|
+
"zBackgroundColor",
|
1326
|
+
"zBaseConfig",
|
909
1327
|
"zChartType",
|
1328
|
+
"zColor",
|
1329
|
+
"zCustomTheme",
|
1330
|
+
"zCustomThemeConfig",
|
910
1331
|
"zDataset",
|
911
1332
|
"zDatasetReshapeInfo",
|
912
1333
|
"zDatum",
|
@@ -914,12 +1335,17 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
914
1335
|
"zDimensions",
|
915
1336
|
"zEncoding",
|
916
1337
|
"zFoldInfo",
|
1338
|
+
"zLabel",
|
1339
|
+
"zLegend",
|
917
1340
|
"zMeasure",
|
918
1341
|
"zMeasureGroup",
|
919
1342
|
"zMeasures",
|
920
|
-
"
|
921
|
-
"
|
1343
|
+
"zTheme",
|
1344
|
+
"zTooltip",
|
1345
|
+
"zUnfoldInfo"
|
922
1346
|
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
923
1347
|
Object.defineProperty(exports, '__esModule', {
|
924
1348
|
value: true
|
925
1349
|
});
|
1350
|
+
|
1351
|
+
//# sourceMappingURL=index.cjs.map
|