@visactor/vseed 0.4.0 → 0.4.1

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.
Files changed (42) hide show
  1. package/dist/cjs/index.cjs +1 -1
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/builder/builder/buildSpec.js +1 -0
  4. package/dist/esm/builder/builder/buildSpec.js.map +1 -1
  5. package/dist/esm/pipeline/advanced/chart/pipes/encoding/hierarchy.js +2 -0
  6. package/dist/esm/pipeline/advanced/chart/pipes/encoding/hierarchy.js.map +1 -1
  7. package/dist/esm/pipeline/spec/chart/pipeline/circlePacking.js +5 -3
  8. package/dist/esm/pipeline/spec/chart/pipeline/circlePacking.js.map +1 -1
  9. package/dist/esm/pipeline/spec/chart/pipeline/sunburst.js +5 -3
  10. package/dist/esm/pipeline/spec/chart/pipeline/sunburst.js.map +1 -1
  11. package/dist/esm/pipeline/spec/chart/pipeline/treeMap.js +5 -3
  12. package/dist/esm/pipeline/spec/chart/pipeline/treeMap.js.map +1 -1
  13. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchy.d.ts +9 -1
  14. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchy.js +51 -46
  15. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHierarchy.js.map +1 -1
  16. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchy.d.ts +2 -0
  17. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchy.js +72 -0
  18. package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivotHierarchy.js.map +1 -0
  19. package/dist/esm/pipeline/spec/chart/pipes/dataset/index.d.ts +1 -0
  20. package/dist/esm/pipeline/spec/chart/pipes/dataset/index.js +2 -1
  21. package/dist/esm/pipeline/spec/chart/pipes/hierarchy/drill.d.ts +2 -0
  22. package/dist/esm/pipeline/spec/chart/pipes/hierarchy/drill.js +7 -0
  23. package/dist/esm/pipeline/spec/chart/pipes/hierarchy/drill.js.map +1 -0
  24. package/dist/esm/pipeline/spec/chart/pipes/hierarchy/index.d.ts +1 -0
  25. package/dist/esm/pipeline/spec/chart/pipes/hierarchy/index.js +2 -0
  26. package/dist/esm/pipeline/spec/chart/pipes/index.d.ts +1 -0
  27. package/dist/esm/pipeline/spec/chart/pipes/index.js +1 -0
  28. package/dist/esm/pipeline/spec/chart/pipes/init/circlePacking.js +0 -1
  29. package/dist/esm/pipeline/spec/chart/pipes/init/circlePacking.js.map +1 -1
  30. package/dist/esm/pipeline/spec/chart/pipes/init/sunburst.js +0 -1
  31. package/dist/esm/pipeline/spec/chart/pipes/init/sunburst.js.map +1 -1
  32. package/dist/esm/pipeline/spec/chart/pipes/init/treeMap.js +0 -1
  33. package/dist/esm/pipeline/spec/chart/pipes/init/treeMap.js.map +1 -1
  34. package/dist/esm/pipeline/utils/constant.d.ts +3 -0
  35. package/dist/esm/pipeline/utils/constant.js +3 -0
  36. package/dist/esm/pipeline/utils/constant.js.map +1 -1
  37. package/dist/esm/pipeline/utils/measures/typeGuard.d.ts +2 -2
  38. package/dist/esm/pipeline/utils/measures/typeGuard.js +1 -1
  39. package/dist/esm/pipeline/utils/measures/typeGuard.js.map +1 -1
  40. package/dist/umd/index.js +138 -55
  41. package/dist/umd/index.js.map +1 -1
  42. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/init/sunburst.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/sunburst.ts"],"sourcesContent":["import type { VChartSpecPipe } from 'src/types'\nimport type { ISunburstChartSpec } from '@visactor/vchart'\n\nexport const initSunburst: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ISunburstChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo, encoding } = advancedVSeed\n const { foldInfo } = datasetReshapeInfo[0]\n\n result.type = 'sunburst'\n result.categoryField = 'name'\n result.valueField = foldInfo.measureValue\n result.outerRadius = 1\n result.innerRadius = 0\n result.gap = 0\n result.offsetX = 0\n result.offsetY = 0\n result.drill = true\n result.padding = 0\n result.labelAutoVisible = {\n enable: true,\n circumference: 5,\n }\n result.sunburst = {\n visible: true,\n style: {\n fillOpacity: (datum: any) => {\n if (encoding.hierarchy?.length === 1) {\n return 1\n }\n return datum.isLeaf ? 0.4 : 0.8\n },\n },\n }\n\n result.animationEnter = {\n easing: 'cubicInOut',\n }\n result.animationExit = {\n easing: 'cubicInOut',\n }\n result.animationUpdate = {\n easing: 'cubicInOut',\n }\n\n return result\n}\n"],"names":["initSunburst","spec","context","result","advancedVSeed","datasetReshapeInfo","encoding","foldInfo","datum"],"mappings":"AAGO,MAAMA,eAA+B,CAACC,MAAMC;IACjD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,kBAAkB,EAAEC,QAAQ,EAAE,GAAGF;IACzC,MAAM,EAAEG,QAAQ,EAAE,GAAGF,kBAAkB,CAAC,EAAE;IAE1CF,OAAO,IAAI,GAAG;IACdA,OAAO,aAAa,GAAG;IACvBA,OAAO,UAAU,GAAGI,SAAS,YAAY;IACzCJ,OAAO,WAAW,GAAG;IACrBA,OAAO,WAAW,GAAG;IACrBA,OAAO,GAAG,GAAG;IACbA,OAAO,OAAO,GAAG;IACjBA,OAAO,OAAO,GAAG;IACjBA,OAAO,KAAK,GAAG;IACfA,OAAO,OAAO,GAAG;IACjBA,OAAO,gBAAgB,GAAG;QACxB,QAAQ;QACR,eAAe;IACjB;IACAA,OAAO,QAAQ,GAAG;QAChB,SAAS;QACT,OAAO;YACL,aAAa,CAACK;gBACZ,IAAIF,SAAS,SAAS,EAAE,WAAW,GACjC,OAAO;gBAET,OAAOE,MAAM,MAAM,GAAG,MAAM;YAC9B;QACF;IACF;IAEAL,OAAO,cAAc,GAAG;QACtB,QAAQ;IACV;IACAA,OAAO,aAAa,GAAG;QACrB,QAAQ;IACV;IACAA,OAAO,eAAe,GAAG;QACvB,QAAQ;IACV;IAEA,OAAOA;AACT"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/init/sunburst.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/sunburst.ts"],"sourcesContent":["import type { VChartSpecPipe } from 'src/types'\nimport type { ISunburstChartSpec } from '@visactor/vchart'\n\nexport const initSunburst: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ISunburstChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo, encoding } = advancedVSeed\n const { foldInfo } = datasetReshapeInfo[0]\n\n result.type = 'sunburst'\n result.categoryField = 'name'\n result.valueField = foldInfo.measureValue\n result.outerRadius = 1\n result.innerRadius = 0\n result.gap = 0\n result.offsetX = 0\n result.offsetY = 0\n result.padding = 0\n result.labelAutoVisible = {\n enable: true,\n circumference: 5,\n }\n result.sunburst = {\n visible: true,\n style: {\n fillOpacity: (datum: any) => {\n if (encoding.hierarchy?.length === 1) {\n return 1\n }\n return datum.isLeaf ? 0.4 : 0.8\n },\n },\n }\n\n result.animationEnter = {\n easing: 'cubicInOut',\n }\n result.animationExit = {\n easing: 'cubicInOut',\n }\n result.animationUpdate = {\n easing: 'cubicInOut',\n }\n\n return result\n}\n"],"names":["initSunburst","spec","context","result","advancedVSeed","datasetReshapeInfo","encoding","foldInfo","datum"],"mappings":"AAGO,MAAMA,eAA+B,CAACC,MAAMC;IACjD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,kBAAkB,EAAEC,QAAQ,EAAE,GAAGF;IACzC,MAAM,EAAEG,QAAQ,EAAE,GAAGF,kBAAkB,CAAC,EAAE;IAE1CF,OAAO,IAAI,GAAG;IACdA,OAAO,aAAa,GAAG;IACvBA,OAAO,UAAU,GAAGI,SAAS,YAAY;IACzCJ,OAAO,WAAW,GAAG;IACrBA,OAAO,WAAW,GAAG;IACrBA,OAAO,GAAG,GAAG;IACbA,OAAO,OAAO,GAAG;IACjBA,OAAO,OAAO,GAAG;IACjBA,OAAO,OAAO,GAAG;IACjBA,OAAO,gBAAgB,GAAG;QACxB,QAAQ;QACR,eAAe;IACjB;IACAA,OAAO,QAAQ,GAAG;QAChB,SAAS;QACT,OAAO;YACL,aAAa,CAACK;gBACZ,IAAIF,SAAS,SAAS,EAAE,WAAW,GACjC,OAAO;gBAET,OAAOE,MAAM,MAAM,GAAG,MAAM;YAC9B;QACF;IACF;IAEAL,OAAO,cAAc,GAAG;QACtB,QAAQ;IACV;IACAA,OAAO,aAAa,GAAG;QACrB,QAAQ;IACV;IACAA,OAAO,eAAe,GAAG;QACvB,QAAQ;IACV;IAEA,OAAOA;AACT"}
@@ -9,7 +9,6 @@ const initTreeMap = (spec, context)=>{
9
9
  result.categoryField = 'name';
10
10
  result.valueField = foldInfo.measureValue;
11
11
  result.padding = 0;
12
- result.drill = true;
13
12
  result.animationEnter = {
14
13
  easing: 'cubicInOut'
15
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/spec/chart/pipes/init/treeMap.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/treeMap.ts"],"sourcesContent":["import type { VChartSpecPipe } from 'src/types'\nimport type { ITreemapChartSpec } from '@visactor/vchart'\n\nexport const initTreeMap: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ITreemapChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { foldInfo } = datasetReshapeInfo[0]\n\n result.type = 'treemap'\n result.categoryField = 'name'\n result.valueField = foldInfo.measureValue\n result.padding = 0\n result.drill = true\n result.animationEnter = {\n easing: 'cubicInOut',\n }\n result.animationExit = {\n easing: 'cubicInOut',\n }\n result.animationUpdate = {\n easing: 'cubicInOut',\n }\n\n return result\n}\n"],"names":["initTreeMap","spec","context","result","advancedVSeed","datasetReshapeInfo","foldInfo"],"mappings":"AAGO,MAAMA,cAA8B,CAACC,MAAMC;IAChD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,kBAAkB,EAAE,GAAGD;IAC/B,MAAM,EAAEE,QAAQ,EAAE,GAAGD,kBAAkB,CAAC,EAAE;IAE1CF,OAAO,IAAI,GAAG;IACdA,OAAO,aAAa,GAAG;IACvBA,OAAO,UAAU,GAAGG,SAAS,YAAY;IACzCH,OAAO,OAAO,GAAG;IACjBA,OAAO,KAAK,GAAG;IACfA,OAAO,cAAc,GAAG;QACtB,QAAQ;IACV;IACAA,OAAO,aAAa,GAAG;QACrB,QAAQ;IACV;IACAA,OAAO,eAAe,GAAG;QACvB,QAAQ;IACV;IAEA,OAAOA;AACT"}
1
+ {"version":3,"file":"pipeline/spec/chart/pipes/init/treeMap.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/treeMap.ts"],"sourcesContent":["import type { VChartSpecPipe } from 'src/types'\nimport type { ITreemapChartSpec } from '@visactor/vchart'\n\nexport const initTreeMap: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as ITreemapChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo } = advancedVSeed\n const { foldInfo } = datasetReshapeInfo[0]\n\n result.type = 'treemap'\n result.categoryField = 'name'\n result.valueField = foldInfo.measureValue\n result.padding = 0\n result.animationEnter = {\n easing: 'cubicInOut',\n }\n result.animationExit = {\n easing: 'cubicInOut',\n }\n result.animationUpdate = {\n easing: 'cubicInOut',\n }\n\n return result\n}\n"],"names":["initTreeMap","spec","context","result","advancedVSeed","datasetReshapeInfo","foldInfo"],"mappings":"AAGO,MAAMA,cAA8B,CAACC,MAAMC;IAChD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,kBAAkB,EAAE,GAAGD;IAC/B,MAAM,EAAEE,QAAQ,EAAE,GAAGD,kBAAkB,CAAC,EAAE;IAE1CF,OAAO,IAAI,GAAG;IACdA,OAAO,aAAa,GAAG;IACvBA,OAAO,UAAU,GAAGG,SAAS,YAAY;IACzCH,OAAO,OAAO,GAAG;IACjBA,OAAO,cAAc,GAAG;QACtB,QAAQ;IACV;IACAA,OAAO,aAAa,GAAG;QACrB,QAAQ;IACV;IACAA,OAAO,eAAe,GAAG;QACvB,QAAQ;IACV;IAEA,OAAOA;AACT"}
@@ -28,6 +28,9 @@ export declare const ChartTypeEnum: {
28
28
  readonly Pie: "pie";
29
29
  readonly Donut: "donut";
30
30
  readonly Radar: "radar";
31
+ readonly CirclePacking: "circlePacking";
32
+ readonly Sunburst: "sunburst";
33
+ readonly TreeMap: "treeMap";
31
34
  readonly Funnel: "funnel";
32
35
  readonly Heatmap: "heatmap";
33
36
  readonly Boxplot: "boxPlot";
@@ -28,6 +28,9 @@ const ChartTypeEnum = {
28
28
  Pie: 'pie',
29
29
  Donut: 'donut',
30
30
  Radar: 'radar',
31
+ CirclePacking: 'circlePacking',
32
+ Sunburst: 'sunburst',
33
+ TreeMap: 'treeMap',
31
34
  Funnel: 'funnel',
32
35
  Heatmap: 'heatmap',
33
36
  Boxplot: 'boxPlot',
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/constant.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/constant.ts"],"sourcesContent":["// 标注层 z-index\nexport const ANNOTATION_Z_INDEX = 1000\n// 线性轴 顶部空隙 预留5px\nexport const LINEAR_AXIS_INNER_OFFSET_TOP = 12\n// 双轴图 柱图 ZIndex\nexport const DUAL_AXIS_CHART_COLUMN_Z_INDEX = 1000\n// 双轴图 非柱图 ZIndex\nexport const DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX = 1001\n// 双轴图 标注层 ZIndex\nexport const DUAL_AXIS_LABEL_Z_INDEX = 1002\n// 默认父级id\nexport const DEFAULT_PARENT_ID = '__DefaultParentId__'\n// 轴标签间距\nexport const AXIS_LABEL_SPACE = 8\n// 透视轴 band 类型内边距\nexport const BAND_AXIS_INNER_OFFSET_IN_PIVOT = 2\n\n// 图表类型枚举\nexport const ChartTypeEnum = {\n Table: 'table',\n PivotTable: 'pivotTable',\n // cartesian\n Line: 'line',\n Column: 'column',\n ColumnPercent: 'columnPercent',\n ColumnParallel: 'columnParallel',\n Bar: 'bar',\n RaceBar: 'raceBar',\n RaceColumn: 'raceColumn',\n RaceScatter: 'raceScatter',\n BarPercent: 'barPercent',\n BarParallel: 'barParallel',\n Area: 'area',\n AreaPercent: 'areaPercent',\n DualAxis: 'dualAxis',\n Scatter: 'scatter',\n // polar\n Rose: 'rose',\n RoseParallel: 'roseParallel',\n Pie: 'pie',\n Donut: 'donut',\n Radar: 'radar',\n // other\n Funnel: 'funnel',\n Heatmap: 'heatmap',\n Boxplot: 'boxPlot',\n Histogram: 'histogram',\n} as const\n\n// Heatmap hide cell\nexport const DATUM_HIDE_KEY = '__VSEED_HideItem__'\n"],"names":["ANNOTATION_Z_INDEX","LINEAR_AXIS_INNER_OFFSET_TOP","DUAL_AXIS_CHART_COLUMN_Z_INDEX","DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX","DUAL_AXIS_LABEL_Z_INDEX","DEFAULT_PARENT_ID","AXIS_LABEL_SPACE","BAND_AXIS_INNER_OFFSET_IN_PIVOT","ChartTypeEnum","DATUM_HIDE_KEY"],"mappings":"AACO,MAAMA,qBAAqB;AAE3B,MAAMC,+BAA+B;AAErC,MAAMC,iCAAiC;AAEvC,MAAMC,qCAAqC;AAE3C,MAAMC,0BAA0B;AAEhC,MAAMC,oBAAoB;AAE1B,MAAMC,mBAAmB;AAEzB,MAAMC,kCAAkC;AAGxC,MAAMC,gBAAgB;IAC3B,OAAO;IACP,YAAY;IAEZ,MAAM;IACN,QAAQ;IACR,eAAe;IACf,gBAAgB;IAChB,KAAK;IACL,SAAS;IACT,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,aAAa;IACb,MAAM;IACN,aAAa;IACb,UAAU;IACV,SAAS;IAET,MAAM;IACN,cAAc;IACd,KAAK;IACL,OAAO;IACP,OAAO;IAEP,QAAQ;IACR,SAAS;IACT,SAAS;IACT,WAAW;AACb;AAGO,MAAMC,iBAAiB"}
1
+ {"version":3,"file":"pipeline/utils/constant.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/constant.ts"],"sourcesContent":["// 标注层 z-index\nexport const ANNOTATION_Z_INDEX = 1000\n// 线性轴 顶部空隙 预留5px\nexport const LINEAR_AXIS_INNER_OFFSET_TOP = 12\n// 双轴图 柱图 ZIndex\nexport const DUAL_AXIS_CHART_COLUMN_Z_INDEX = 1000\n// 双轴图 非柱图 ZIndex\nexport const DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX = 1001\n// 双轴图 标注层 ZIndex\nexport const DUAL_AXIS_LABEL_Z_INDEX = 1002\n// 默认父级id\nexport const DEFAULT_PARENT_ID = '__DefaultParentId__'\n// 轴标签间距\nexport const AXIS_LABEL_SPACE = 8\n// 透视轴 band 类型内边距\nexport const BAND_AXIS_INNER_OFFSET_IN_PIVOT = 2\n\n// 图表类型枚举\nexport const ChartTypeEnum = {\n Table: 'table',\n PivotTable: 'pivotTable',\n // cartesian\n Line: 'line',\n Column: 'column',\n ColumnPercent: 'columnPercent',\n ColumnParallel: 'columnParallel',\n Bar: 'bar',\n RaceBar: 'raceBar',\n RaceColumn: 'raceColumn',\n RaceScatter: 'raceScatter',\n BarPercent: 'barPercent',\n BarParallel: 'barParallel',\n Area: 'area',\n AreaPercent: 'areaPercent',\n DualAxis: 'dualAxis',\n Scatter: 'scatter',\n // polar\n Rose: 'rose',\n RoseParallel: 'roseParallel',\n Pie: 'pie',\n Donut: 'donut',\n Radar: 'radar',\n // hierarchical\n CirclePacking: 'circlePacking',\n Sunburst: 'sunburst',\n TreeMap: 'treeMap',\n // other\n Funnel: 'funnel',\n Heatmap: 'heatmap',\n Boxplot: 'boxPlot',\n Histogram: 'histogram',\n} as const\n\n// Heatmap hide cell\nexport const DATUM_HIDE_KEY = '__VSEED_HideItem__'\n"],"names":["ANNOTATION_Z_INDEX","LINEAR_AXIS_INNER_OFFSET_TOP","DUAL_AXIS_CHART_COLUMN_Z_INDEX","DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX","DUAL_AXIS_LABEL_Z_INDEX","DEFAULT_PARENT_ID","AXIS_LABEL_SPACE","BAND_AXIS_INNER_OFFSET_IN_PIVOT","ChartTypeEnum","DATUM_HIDE_KEY"],"mappings":"AACO,MAAMA,qBAAqB;AAE3B,MAAMC,+BAA+B;AAErC,MAAMC,iCAAiC;AAEvC,MAAMC,qCAAqC;AAE3C,MAAMC,0BAA0B;AAEhC,MAAMC,oBAAoB;AAE1B,MAAMC,mBAAmB;AAEzB,MAAMC,kCAAkC;AAGxC,MAAMC,gBAAgB;IAC3B,OAAO;IACP,YAAY;IAEZ,MAAM;IACN,QAAQ;IACR,eAAe;IACf,gBAAgB;IAChB,KAAK;IACL,SAAS;IACT,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,aAAa;IACb,MAAM;IACN,aAAa;IACb,UAAU;IACV,SAAS;IAET,MAAM;IACN,cAAc;IACd,KAAK;IACL,OAAO;IACP,OAAO;IAEP,eAAe;IACf,UAAU;IACV,SAAS;IAET,QAAQ;IACR,SAAS;IACT,SAAS;IACT,WAAW;AACb;AAGO,MAAMC,iBAAiB"}
@@ -1,5 +1,5 @@
1
- import type { Measure, MeasureGroup } from '../../../types';
1
+ import type { ChartType, Measure, MeasureGroup } from '../../../types';
2
2
  export declare const isMeasure: (measure: Measure | MeasureGroup) => measure is Measure;
3
3
  export declare const isMeasureGroup: (measure: Measure | MeasureGroup) => measure is MeasureGroup;
4
4
  export declare const isMeasures: (measures: Measure[] | MeasureGroup[]) => measures is Measure[];
5
- export declare const isPositionMeasure: (measure: Measure, chartType: string) => boolean;
5
+ export declare const isPositionMeasure: (measure: Measure, chartType: ChartType) => boolean;
@@ -4,7 +4,7 @@ const isMeasureGroup = (measure)=>'children' in measure;
4
4
  const isMeasures = (measures)=>measures.every(isMeasure);
5
5
  const isPositionMeasure = (measure, chartType)=>{
6
6
  if (!measure.encoding) return true;
7
- if (chartType === ChartTypeEnum.Funnel) return 'size' === measure.encoding;
7
+ if (ChartTypeEnum.Funnel === chartType || ChartTypeEnum.CirclePacking === chartType || ChartTypeEnum.Sunburst === chartType || ChartTypeEnum.TreeMap === chartType) return 'size' === measure.encoding;
8
8
  if (chartType === ChartTypeEnum.Heatmap) return 'color' === measure.encoding;
9
9
  if ([
10
10
  ChartTypeEnum.Pie,
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline/utils/measures/typeGuard.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/measures/typeGuard.ts"],"sourcesContent":["import type { Measure, MeasureGroup } from 'src/types'\nimport { ChartTypeEnum } from '../constant'\n\nexport const isMeasure = (measure: Measure | MeasureGroup): measure is Measure => {\n return !('children' in measure)\n}\n\nexport const isMeasureGroup = (measure: Measure | MeasureGroup): measure is MeasureGroup => {\n return 'children' in measure\n}\n\nexport const isMeasures = (measures: Measure[] | MeasureGroup[]): measures is Measure[] => {\n return measures.every(isMeasure)\n}\n\nexport const isPositionMeasure = (measure: Measure, chartType: string): boolean => {\n if (!measure.encoding) {\n return true\n }\n\n if (chartType === ChartTypeEnum.Funnel) {\n return measure.encoding === 'size'\n }\n\n if (chartType === ChartTypeEnum.Heatmap) {\n return measure.encoding === 'color'\n }\n\n if (\n ([ChartTypeEnum.Pie, ChartTypeEnum.Donut, ChartTypeEnum.Rose, ChartTypeEnum.RoseParallel] as string[]).includes(\n chartType,\n )\n ) {\n return measure.encoding === 'angle'\n }\n\n if (chartType === ChartTypeEnum.DualAxis) {\n return ['primaryYAxis', 'secondaryYAxis'].includes(measure.encoding as string)\n }\n\n if (ChartTypeEnum.Radar === chartType) {\n return measure.encoding === 'radius'\n }\n\n if (\n (\n [\n ChartTypeEnum.Line,\n ChartTypeEnum.Area,\n ChartTypeEnum.AreaPercent,\n ChartTypeEnum.Column,\n ChartTypeEnum.ColumnParallel,\n ChartTypeEnum.ColumnPercent,\n ] as string[]\n ).includes(chartType)\n ) {\n return measure.encoding === 'yAxis'\n }\n\n if (([ChartTypeEnum.Bar, ChartTypeEnum.BarParallel, ChartTypeEnum.BarPercent] as string[]).includes(chartType)) {\n return measure.encoding === 'xAxis'\n }\n\n return chartType === ChartTypeEnum.Boxplot && measure.encoding === 'value'\n}\n"],"names":["isMeasure","measure","isMeasureGroup","isMeasures","measures","isPositionMeasure","chartType","ChartTypeEnum"],"mappings":";AAGO,MAAMA,YAAY,CAACC,UACjB,CAAE,eAAcA,OAAM;AAGxB,MAAMC,iBAAiB,CAACD,UACtB,cAAcA;AAGhB,MAAME,aAAa,CAACC,WAClBA,SAAS,KAAK,CAACJ;AAGjB,MAAMK,oBAAoB,CAACJ,SAAkBK;IAClD,IAAI,CAACL,QAAQ,QAAQ,EACnB,OAAO;IAGT,IAAIK,cAAcC,cAAc,MAAM,EACpC,OAAON,AAAqB,WAArBA,QAAQ,QAAQ;IAGzB,IAAIK,cAAcC,cAAc,OAAO,EACrC,OAAON,AAAqB,YAArBA,QAAQ,QAAQ;IAGzB,IACG;QAACM,cAAc,GAAG;QAAEA,cAAc,KAAK;QAAEA,cAAc,IAAI;QAAEA,cAAc,YAAY;KAAC,CAAc,QAAQ,CAC7GD,YAGF,OAAOL,AAAqB,YAArBA,QAAQ,QAAQ;IAGzB,IAAIK,cAAcC,cAAc,QAAQ,EACtC,OAAO;QAAC;QAAgB;KAAiB,CAAC,QAAQ,CAACN,QAAQ,QAAQ;IAGrE,IAAIM,cAAc,KAAK,KAAKD,WAC1B,OAAOL,AAAqB,aAArBA,QAAQ,QAAQ;IAGzB,IAEI;QACEM,cAAc,IAAI;QAClBA,cAAc,IAAI;QAClBA,cAAc,WAAW;QACzBA,cAAc,MAAM;QACpBA,cAAc,cAAc;QAC5BA,cAAc,aAAa;KAC5B,CACD,QAAQ,CAACD,YAEX,OAAOL,AAAqB,YAArBA,QAAQ,QAAQ;IAGzB,IAAK;QAACM,cAAc,GAAG;QAAEA,cAAc,WAAW;QAAEA,cAAc,UAAU;KAAC,CAAc,QAAQ,CAACD,YAClG,OAAOL,AAAqB,YAArBA,QAAQ,QAAQ;IAGzB,OAAOK,cAAcC,cAAc,OAAO,IAAIN,AAAqB,YAArBA,QAAQ,QAAQ;AAChE"}
1
+ {"version":3,"file":"pipeline/utils/measures/typeGuard.js","sources":["webpack://@visactor/vseed/./src/pipeline/utils/measures/typeGuard.ts"],"sourcesContent":["import type { ChartType, Measure, MeasureGroup } from 'src/types'\nimport { ChartTypeEnum } from '../constant'\n\nexport const isMeasure = (measure: Measure | MeasureGroup): measure is Measure => {\n return !('children' in measure)\n}\n\nexport const isMeasureGroup = (measure: Measure | MeasureGroup): measure is MeasureGroup => {\n return 'children' in measure\n}\n\nexport const isMeasures = (measures: Measure[] | MeasureGroup[]): measures is Measure[] => {\n return measures.every(isMeasure)\n}\n\nexport const isPositionMeasure = (measure: Measure, chartType: ChartType): boolean => {\n if (!measure.encoding) {\n return true\n }\n\n if (\n ChartTypeEnum.Funnel === chartType ||\n ChartTypeEnum.CirclePacking === chartType ||\n ChartTypeEnum.Sunburst === chartType ||\n ChartTypeEnum.TreeMap === chartType\n ) {\n return measure.encoding === 'size'\n }\n\n if (chartType === ChartTypeEnum.Heatmap) {\n return measure.encoding === 'color'\n }\n\n if (\n ([ChartTypeEnum.Pie, ChartTypeEnum.Donut, ChartTypeEnum.Rose, ChartTypeEnum.RoseParallel] as string[]).includes(\n chartType,\n )\n ) {\n return measure.encoding === 'angle'\n }\n\n if (chartType === ChartTypeEnum.DualAxis) {\n return ['primaryYAxis', 'secondaryYAxis'].includes(measure.encoding as string)\n }\n\n if (ChartTypeEnum.Radar === chartType) {\n return measure.encoding === 'radius'\n }\n\n if (\n (\n [\n ChartTypeEnum.Line,\n ChartTypeEnum.Area,\n ChartTypeEnum.AreaPercent,\n ChartTypeEnum.Column,\n ChartTypeEnum.ColumnParallel,\n ChartTypeEnum.ColumnPercent,\n ] as string[]\n ).includes(chartType)\n ) {\n return measure.encoding === 'yAxis'\n }\n\n if (([ChartTypeEnum.Bar, ChartTypeEnum.BarParallel, ChartTypeEnum.BarPercent] as string[]).includes(chartType)) {\n return measure.encoding === 'xAxis'\n }\n\n return chartType === ChartTypeEnum.Boxplot && measure.encoding === 'value'\n}\n"],"names":["isMeasure","measure","isMeasureGroup","isMeasures","measures","isPositionMeasure","chartType","ChartTypeEnum"],"mappings":";AAGO,MAAMA,YAAY,CAACC,UACjB,CAAE,eAAcA,OAAM;AAGxB,MAAMC,iBAAiB,CAACD,UACtB,cAAcA;AAGhB,MAAME,aAAa,CAACC,WAClBA,SAAS,KAAK,CAACJ;AAGjB,MAAMK,oBAAoB,CAACJ,SAAkBK;IAClD,IAAI,CAACL,QAAQ,QAAQ,EACnB,OAAO;IAGT,IACEM,cAAc,MAAM,KAAKD,aACzBC,cAAc,aAAa,KAAKD,aAChCC,cAAc,QAAQ,KAAKD,aAC3BC,cAAc,OAAO,KAAKD,WAE1B,OAAOL,AAAqB,WAArBA,QAAQ,QAAQ;IAGzB,IAAIK,cAAcC,cAAc,OAAO,EACrC,OAAON,AAAqB,YAArBA,QAAQ,QAAQ;IAGzB,IACG;QAACM,cAAc,GAAG;QAAEA,cAAc,KAAK;QAAEA,cAAc,IAAI;QAAEA,cAAc,YAAY;KAAC,CAAc,QAAQ,CAC7GD,YAGF,OAAOL,AAAqB,YAArBA,QAAQ,QAAQ;IAGzB,IAAIK,cAAcC,cAAc,QAAQ,EACtC,OAAO;QAAC;QAAgB;KAAiB,CAAC,QAAQ,CAACN,QAAQ,QAAQ;IAGrE,IAAIM,cAAc,KAAK,KAAKD,WAC1B,OAAOL,AAAqB,aAArBA,QAAQ,QAAQ;IAGzB,IAEI;QACEM,cAAc,IAAI;QAClBA,cAAc,IAAI;QAClBA,cAAc,WAAW;QACzBA,cAAc,MAAM;QACpBA,cAAc,cAAc;QAC5BA,cAAc,aAAa;KAC5B,CACD,QAAQ,CAACD,YAEX,OAAOL,AAAqB,YAArBA,QAAQ,QAAQ;IAGzB,IAAK;QAACM,cAAc,GAAG;QAAEA,cAAc,WAAW;QAAEA,cAAc,UAAU;KAAC,CAAc,QAAQ,CAACD,YAClG,OAAOL,AAAqB,YAArBA,QAAQ,QAAQ;IAGzB,OAAOK,cAAcC,cAAc,OAAO,IAAIN,AAAqB,YAArBA,QAAQ,QAAQ;AAChE"}
package/dist/umd/index.js CHANGED
@@ -462,6 +462,7 @@
462
462
  builder.spec = spec;
463
463
  return spec;
464
464
  } catch (e) {
465
+ console.error(e);
465
466
  throw new Error(`buildSpec error: ${e.message}`);
466
467
  } finally{
467
468
  const end = 'undefined' != typeof performance ? performance.now() : Date.now();
@@ -578,6 +579,9 @@
578
579
  Pie: 'pie',
579
580
  Donut: 'donut',
580
581
  Radar: 'radar',
582
+ CirclePacking: 'circlePacking',
583
+ Sunburst: 'sunburst',
584
+ TreeMap: 'treeMap',
581
585
  Funnel: 'funnel',
582
586
  Heatmap: 'heatmap',
583
587
  Boxplot: 'boxPlot',
@@ -589,7 +593,7 @@
589
593
  const isMeasures = (measures)=>measures.every(isMeasure);
590
594
  const isPositionMeasure = (measure, chartType)=>{
591
595
  if (!measure.encoding) return true;
592
- if (chartType === ChartTypeEnum.Funnel) return 'size' === measure.encoding;
596
+ if (ChartTypeEnum.Funnel === chartType || ChartTypeEnum.CirclePacking === chartType || ChartTypeEnum.Sunburst === chartType || ChartTypeEnum.TreeMap === chartType) return 'size' === measure.encoding;
593
597
  if (chartType === ChartTypeEnum.Heatmap) return 'color' === measure.encoding;
594
598
  if ([
595
599
  ChartTypeEnum.Pie,
@@ -14304,6 +14308,8 @@
14304
14308
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
14305
14309
  encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureId);
14306
14310
  encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
14311
+ encoding.row = chunk_QJLMYOTX_i(dimensions.filter((item)=>'row' === item.encoding).map((item)=>item.id));
14312
+ encoding.column = chunk_QJLMYOTX_i(dimensions.filter((item)=>'column' === item.encoding).map((item)=>item.id));
14307
14313
  };
14308
14314
  const hierarchy_generateDefaultMeasureEncoding = (measures, encoding)=>{
14309
14315
  encoding.size = chunk_QJLMYOTX_i(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
@@ -14391,7 +14397,6 @@
14391
14397
  result.categoryField = 'name';
14392
14398
  result.valueField = foldInfo.measureValue;
14393
14399
  result.padding = 0;
14394
- result.drill = true;
14395
14400
  result.animationEnter = {
14396
14401
  easing: 'cubicInOut'
14397
14402
  };
@@ -14403,15 +14408,19 @@
14403
14408
  };
14404
14409
  return result;
14405
14410
  };
14411
+ const drill = (spec)=>({
14412
+ ...spec,
14413
+ drill: true
14414
+ });
14406
14415
  const datasetHierarchy = (spec, context)=>{
14407
14416
  const result = {
14408
14417
  ...spec
14409
14418
  };
14410
14419
  const { advancedVSeed } = context;
14411
- const { datasetReshapeInfo, dataset } = advancedVSeed;
14412
- const { foldInfo } = datasetReshapeInfo[0];
14420
+ const { datasetReshapeInfo, dataset, measures } = advancedVSeed;
14421
+ const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
14413
14422
  const hierarchyFields = advancedVSeed.encoding?.hierarchy || [];
14414
- const measureKeys = advancedVSeed.measures?.map((m)=>m.id) || [];
14423
+ const measureKeys = findAllMeasures(measures).map((m)=>m.id);
14415
14424
  if (!hierarchyFields.length) {
14416
14425
  result.data = [
14417
14426
  {
@@ -14421,7 +14430,7 @@
14421
14430
  ];
14422
14431
  return result;
14423
14432
  }
14424
- const tree = buildTree(dataset, hierarchyFields, foldInfo, measureKeys);
14433
+ const tree = buildTree(dataset, hierarchyFields, foldInfo, unfoldInfo, measureKeys);
14425
14434
  result.data = [
14426
14435
  {
14427
14436
  id: 'data',
@@ -14430,8 +14439,15 @@
14430
14439
  ];
14431
14440
  return result;
14432
14441
  };
14433
- const buildTree = (dataset, hierarchyFields, foldInfo, measureKeys = [])=>{
14442
+ const buildTree = (dataset, hierarchyFields, foldInfo, unfoldInfo, measureKeys = [])=>{
14434
14443
  const { measureValue, measureId, measureName } = foldInfo;
14444
+ const { encodingColor, encodingColorId } = unfoldInfo;
14445
+ const collectFields = [
14446
+ measureId,
14447
+ measureName,
14448
+ encodingColor,
14449
+ encodingColorId
14450
+ ].filter(Boolean);
14435
14451
  const root = {
14436
14452
  name: 'root',
14437
14453
  children: []
@@ -14447,10 +14463,7 @@
14447
14463
  name: value,
14448
14464
  children: []
14449
14465
  };
14450
- for(let j = 0; j <= i; j++){
14451
- const key = hierarchyFields[j];
14452
- child[key] = datum[key];
14453
- }
14466
+ for(let j = 0; j <= i; j++)child[hierarchyFields[j]] = datum[hierarchyFields[j]];
14454
14467
  currentNode.children.push(child);
14455
14468
  }
14456
14469
  currentNode = child;
@@ -14462,54 +14475,54 @@
14462
14475
  measureKeys.forEach((key)=>{
14463
14476
  currentNode[key] = 0;
14464
14477
  });
14465
- currentNode._measureIds = new Set();
14466
- currentNode._measureNames = new Set();
14478
+ collectFields.forEach((field)=>{
14479
+ currentNode[`_set_${field}`] = new Set();
14480
+ });
14467
14481
  }
14468
14482
  if (measureValue && void 0 !== datum[measureValue]) currentNode[measureValue] += Number(datum[measureValue]);
14469
14483
  measureKeys.forEach((key)=>{
14470
14484
  if (void 0 !== datum[key]) currentNode[key] = (currentNode[key] || 0) + Number(datum[key]);
14471
14485
  });
14472
- if (datum[measureId]) currentNode._measureIds.add(datum[measureId]);
14473
- if (datum[measureName]) currentNode._measureNames.add(datum[measureName]);
14486
+ collectFields.forEach((field)=>{
14487
+ if (datum[field]) currentNode[`_set_${field}`].add(datum[field]);
14488
+ });
14474
14489
  if (measureValue) currentNode.value = currentNode[measureValue];
14475
14490
  });
14491
+ const flattenSets = (node)=>{
14492
+ collectFields.forEach((field)=>{
14493
+ const setKey = `_set_${field}`;
14494
+ if (node[setKey]) {
14495
+ node[field] = Array.from(node[setKey]).join('+');
14496
+ delete node[setKey];
14497
+ }
14498
+ });
14499
+ };
14500
+ const mergeCollectFieldsFromChildren = (node)=>{
14501
+ collectFields.forEach((field)=>{
14502
+ const merged = new Set();
14503
+ node.children.forEach((child)=>{
14504
+ if (child[field]) child[field].split('+').forEach((v)=>merged.add(v));
14505
+ });
14506
+ if (merged.size > 0) node[field] = Array.from(merged).join('+');
14507
+ });
14508
+ };
14476
14509
  const aggregate = (node)=>{
14477
14510
  if (node.isLeaf) {
14478
- if (measureId && node._measureIds) {
14479
- node[measureId] = Array.from(node._measureIds).join('+');
14480
- delete node._measureIds;
14481
- }
14482
- if (measureName && node._measureNames) {
14483
- node[measureName] = Array.from(node._measureNames).join('+');
14484
- delete node._measureNames;
14485
- }
14511
+ flattenSets(node);
14486
14512
  return node.value || 0;
14487
14513
  }
14488
- if (node.children && node.children.length > 0) {
14489
- let sum = 0;
14490
- node.children.forEach((child)=>{
14491
- sum += aggregate(child);
14492
- measureKeys.forEach((key)=>{
14493
- node[key] = (node[key] || 0) + (child[key] || 0);
14494
- });
14514
+ if (!node.children?.length) return node.value || 0;
14515
+ let sum = 0;
14516
+ node.children.forEach((child)=>{
14517
+ sum += aggregate(child);
14518
+ measureKeys.forEach((key)=>{
14519
+ node[key] = (node[key] || 0) + (child[key] || 0);
14495
14520
  });
14496
- node.value = sum;
14497
- if (measureValue) node[measureValue] = sum;
14498
- if (measureId && node.children[0]) {
14499
- const childIds = new Set();
14500
- node.children.forEach((child)=>{
14501
- if (child[measureId]) child[measureId].split('+').forEach((id)=>childIds.add(id));
14502
- });
14503
- node[measureId] = Array.from(childIds).join('+');
14504
- const childNames = new Set();
14505
- node.children.forEach((child)=>{
14506
- if (child[measureName]) child[measureName].split('+').forEach((name)=>childNames.add(name));
14507
- });
14508
- node[measureName] = Array.from(childNames).join('+');
14509
- }
14510
- return sum;
14511
- }
14512
- return node.value || 0;
14521
+ });
14522
+ node.value = sum;
14523
+ if (measureValue) node[measureValue] = sum;
14524
+ mergeCollectFieldsFromChildren(node);
14525
+ return sum;
14513
14526
  };
14514
14527
  root.children.forEach(aggregate);
14515
14528
  return root.children;
@@ -14603,6 +14616,72 @@
14603
14616
  };
14604
14617
  return result;
14605
14618
  };
14619
+ const datasetPivotHierarchy = (spec, context)=>{
14620
+ const result = {
14621
+ ...spec
14622
+ };
14623
+ const { advancedVSeed } = context;
14624
+ const { dataset, datasetReshapeInfo, measures } = advancedVSeed;
14625
+ const measureKeys = findAllMeasures(measures).map((m)=>m.id);
14626
+ const hierarchyFields = advancedVSeed.encoding?.hierarchy || [];
14627
+ const rows = advancedVSeed.encoding?.row || [];
14628
+ const columns = advancedVSeed.encoding?.column || [];
14629
+ const pivotDims = [
14630
+ ...rows,
14631
+ ...columns
14632
+ ];
14633
+ const records = dataset.reduce((pre, cur, index)=>{
14634
+ const id = datasetReshapeInfo[index].id;
14635
+ const { foldInfo, unfoldInfo } = datasetReshapeInfo[index];
14636
+ if (pivotDims.length > 0) {
14637
+ const groupedDataset = groupByDimensions(cur, pivotDims);
14638
+ pre[id] = groupedDataset.flatMap((data)=>{
14639
+ const root = {
14640
+ ...data,
14641
+ children: buildTree(data.children, hierarchyFields, foldInfo, unfoldInfo, measureKeys)
14642
+ };
14643
+ const rootProps = chunk_KI5X74E2_y(root, [
14644
+ 'children'
14645
+ ]);
14646
+ const rootTree = root.children.map((child)=>({
14647
+ ...child,
14648
+ ...rootProps
14649
+ }));
14650
+ return rootTree;
14651
+ });
14652
+ } else {
14653
+ const tree = buildTree(cur, hierarchyFields, foldInfo, unfoldInfo, measureKeys);
14654
+ pre[id] = tree;
14655
+ }
14656
+ return pre;
14657
+ }, {});
14658
+ return {
14659
+ ...result,
14660
+ records: records
14661
+ };
14662
+ };
14663
+ function groupByDimensions(data, dimKeys) {
14664
+ if (0 === dimKeys.length) return data;
14665
+ const buckets = new Map();
14666
+ for (const item of data){
14667
+ const compositeKey = dimKeys.map((k)=>String(item[k])).join('\x00');
14668
+ if (!buckets.has(compositeKey)) {
14669
+ const dimValues = {};
14670
+ for (const k of dimKeys)dimValues[k] = item[k];
14671
+ buckets.set(compositeKey, {
14672
+ dimValues,
14673
+ items: []
14674
+ });
14675
+ }
14676
+ buckets.get(compositeKey).items.push(item);
14677
+ }
14678
+ const result = [];
14679
+ for (const [, { dimValues, items }] of buckets)result.push({
14680
+ ...dimValues,
14681
+ children: items
14682
+ });
14683
+ return result;
14684
+ }
14606
14685
  const tooltipTreeMap = (spec, context)=>{
14607
14686
  const result = tooltip_tooltip(spec, context);
14608
14687
  const { advancedVSeed, vseed } = context;
@@ -14692,6 +14771,7 @@
14692
14771
  };
14693
14772
  const treeMap = [
14694
14773
  initTreeMap,
14774
+ drill,
14695
14775
  datasetHierarchy,
14696
14776
  colorAdapter(color_color, linearColor),
14697
14777
  background_backgroundColor,
@@ -14703,8 +14783,9 @@
14703
14783
  const pivotTreeMap = [
14704
14784
  initPivot,
14705
14785
  pivotGridStyle,
14706
- pivotIndicatorsAsRow,
14707
- datasetPivot,
14786
+ pivotIndicatorsAsCol,
14787
+ pivotHideIndicatorName,
14788
+ datasetPivotHierarchy,
14708
14789
  pivotIndicators_pivotIndicators([
14709
14790
  initTreeMap,
14710
14791
  datasetHierarchy,
@@ -14792,7 +14873,6 @@
14792
14873
  result.gap = 0;
14793
14874
  result.offsetX = 0;
14794
14875
  result.offsetY = 0;
14795
- result.drill = true;
14796
14876
  result.padding = 0;
14797
14877
  result.labelAutoVisible = {
14798
14878
  enable: true,
@@ -14920,6 +15000,7 @@
14920
15000
  };
14921
15001
  const sunburst = [
14922
15002
  initSunburst,
15003
+ drill,
14923
15004
  datasetHierarchy,
14924
15005
  colorAdapter(color_color, linearColor),
14925
15006
  background_backgroundColor,
@@ -14930,8 +15011,9 @@
14930
15011
  const pivotSunburst = [
14931
15012
  initPivot,
14932
15013
  pivotGridStyle,
14933
- pivotIndicatorsAsRow,
14934
- datasetPivot,
15014
+ pivotIndicatorsAsCol,
15015
+ pivotHideIndicatorName,
15016
+ datasetPivotHierarchy,
14935
15017
  pivotIndicators_pivotIndicators([
14936
15018
  initSunburst,
14937
15019
  datasetHierarchy,
@@ -15013,7 +15095,6 @@
15013
15095
  result.type = 'circlePacking';
15014
15096
  result.categoryField = 'name';
15015
15097
  result.valueField = foldInfo.measureValue;
15016
- result.drill = true;
15017
15098
  result.circlePacking = {
15018
15099
  style: {
15019
15100
  fillOpacity: (d)=>d.isLeaf ? 0.75 : 0.25
@@ -15057,6 +15138,7 @@
15057
15138
  };
15058
15139
  const circlePacking = [
15059
15140
  initCirclePacking,
15141
+ drill,
15060
15142
  datasetHierarchy,
15061
15143
  colorAdapter(color_color, linearColor),
15062
15144
  background_backgroundColor,
@@ -15067,8 +15149,9 @@
15067
15149
  const pivotCirclePacking = [
15068
15150
  initPivot,
15069
15151
  pivotGridStyle,
15070
- pivotIndicatorsAsRow,
15071
- datasetPivot,
15152
+ pivotIndicatorsAsCol,
15153
+ pivotHideIndicatorName,
15154
+ datasetPivotHierarchy,
15072
15155
  pivotIndicators_pivotIndicators([
15073
15156
  initCirclePacking,
15074
15157
  datasetHierarchy,