@visactor/vchart 1.5.3 → 1.5.4
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/build/es5/index.js +1 -1
- package/build/index.js +187 -69
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/bar/bar.js +2 -1
- package/cjs/chart/bar/bar.js.map +1 -1
- package/cjs/chart/correlation/correlation.js.map +1 -1
- package/cjs/chart/range-column/range-column.js +2 -1
- package/cjs/chart/range-column/range-column.js.map +1 -1
- package/cjs/chart/stack.js +2 -1
- package/cjs/component/index.js +1 -2
- package/cjs/component/tooltip/handler/utils/common.js +14 -31
- package/cjs/component/tooltip/handler/utils/common.js.map +1 -1
- package/cjs/constant/base.js +1 -2
- package/cjs/constant/waterfall.js +2 -1
- package/cjs/core/index.d.ts +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/index.js.map +1 -1
- package/cjs/data/transforms/funnel.js +2 -2
- package/cjs/data/transforms/funnel.js.map +1 -1
- package/cjs/series/bar/bar.d.ts +13 -2
- package/cjs/series/bar/bar.js +99 -13
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/bar/constant.js +4 -0
- package/cjs/series/bar/constant.js.map +1 -1
- package/cjs/series/bar/interface.d.ts +2 -0
- package/cjs/series/bar/interface.js.map +1 -1
- package/cjs/series/interface/type.d.ts +2 -1
- package/cjs/series/interface/type.js +2 -1
- package/cjs/series/interface/type.js.map +1 -1
- package/cjs/series/range-column/range-column.js +8 -7
- package/cjs/series/range-column/range-column.js.map +1 -1
- package/cjs/series/waterfall/waterfall.js +4 -4
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/theme/builtin/common/mark.js +10 -0
- package/cjs/theme/builtin/common/mark.js.map +1 -1
- package/esm/chart/bar/bar.js +2 -1
- package/esm/chart/bar/bar.js.map +1 -1
- package/esm/chart/correlation/correlation.js.map +1 -1
- package/esm/chart/range-column/range-column.js +2 -1
- package/esm/chart/range-column/range-column.js.map +1 -1
- package/esm/chart/stack.js +2 -1
- package/esm/component/index.js +1 -2
- package/esm/component/tooltip/handler/utils/common.js +15 -32
- package/esm/component/tooltip/handler/utils/common.js.map +1 -1
- package/esm/constant/base.js +1 -2
- package/esm/constant/waterfall.js +2 -1
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/index.js.map +1 -1
- package/esm/data/transforms/funnel.js +1 -1
- package/esm/data/transforms/funnel.js.map +1 -1
- package/esm/series/bar/bar.d.ts +13 -2
- package/esm/series/bar/bar.js +108 -12
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/bar/constant.js +4 -0
- package/esm/series/bar/constant.js.map +1 -1
- package/esm/series/bar/interface.d.ts +2 -0
- package/esm/series/bar/interface.js.map +1 -1
- package/esm/series/interface/type.d.ts +2 -1
- package/esm/series/interface/type.js +2 -1
- package/esm/series/interface/type.js.map +1 -1
- package/esm/series/range-column/range-column.js +8 -7
- package/esm/series/range-column/range-column.js.map +1 -1
- package/esm/series/waterfall/waterfall.js +4 -4
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/theme/builtin/common/mark.js +10 -0
- package/esm/theme/builtin/common/mark.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/theme/builtin/common/mark.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAEjC,QAAA,UAAU,GAA2B;IAChD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,QAAQ,EAAE,2BAAe,CAAC,UAAU;YACpC,UAAU,EAAE,2BAAe,CAAC,YAAY;YAExC,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,CAAC;SACf;KACF;CACF,CAAC;AAEW,QAAA,UAAU,GAA2B;IAChD,KAAK,EAAE;QACL,KAAK,EAAE;YACL,QAAQ,EAAE,2BAAe,CAAC,UAAU;YAGpC,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,CAAC;SACf;KACF;IACD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,WAAW,EAAE,2BAAe,CAAC,WAAW;SACzC;KACF;IACD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,OAAO;SAClB;KACF;IACD,KAAK,EAAE;QACL,KAAK,EAAE;YACL,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iBAAiB,EAAE;YACnD,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACf;KACF;IACD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,QAAQ,EAAE,IAAI;SACf;KACF;IACD,WAAW,EAAE;QACX,KAAK,EAAE;YACL,QAAQ,EAAE,IAAI;SACf;KACF;IACD,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iBAAiB,EAAE;SACpD;KACF;IACD,aAAa,EAAE;QACb,KAAK,EAAE;YACL,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iBAAiB,EAAE;SACpD;KACF;IACD,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,MAAM,EAAE,KAAK;SACd;KACF;CACF,CAAC","file":"mark.js","sourcesContent":["import type { IGlobalMarkThemeByName, IGlobalMarkThemeByType } from '../../interface';\nimport { THEME_CONSTANTS } from './constants';\n\nexport const markByType: IGlobalMarkThemeByType = {\n text: {\n style: {\n fontSize: THEME_CONSTANTS.l4FontSize,\n lineHeight: THEME_CONSTANTS.l4LineHeight,\n\n fontWeight: 'normal',\n fillOpacity: 1\n }\n }\n};\n\nexport const markByName: IGlobalMarkThemeByName = {\n label: {\n style: {\n fontSize: THEME_CONSTANTS.l4FontSize,\n // lineHeight: THEME_CONSTANTS.l4LineHeight,\n\n fontWeight: 'normal',\n fillOpacity: 1\n }\n },\n area: {\n style: {\n fillOpacity: THEME_CONSTANTS.areaOpacity\n }\n },\n line: {\n style: {\n lineWidth: 2,\n lineCap: 'round',\n lineJoin: 'round'\n }\n },\n point: {\n style: {\n size: 8,\n stroke: { type: 'palette', key: 'backgroundColor' },\n lineWidth: 1,\n fillOpacity: 1\n }\n },\n word: {\n style: {\n fontSize: null\n }\n },\n fillingWord: {\n style: {\n fontSize: null\n }\n },\n sunburst: {\n style: {\n lineWidth: 1,\n stroke: { type: 'palette', key: 'backgroundColor' }\n }\n },\n circlePacking: {\n style: {\n lineWidth: 1,\n stroke: { type: 'palette', key: 'backgroundColor' }\n }\n },\n funnel3d: {\n style: {\n stroke: false\n }\n }\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/theme/builtin/common/mark.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAEjC,QAAA,UAAU,GAA2B;IAChD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,QAAQ,EAAE,2BAAe,CAAC,UAAU;YACpC,UAAU,EAAE,2BAAe,CAAC,YAAY;YAExC,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,CAAC;SACf;KACF;CACF,CAAC;AAEW,QAAA,UAAU,GAA2B;IAChD,KAAK,EAAE;QACL,KAAK,EAAE;YACL,QAAQ,EAAE,2BAAe,CAAC,UAAU;YAGpC,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,CAAC;SACf;KACF;IACD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,WAAW,EAAE,2BAAe,CAAC,WAAW;SACzC;KACF;IACD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,OAAO;SAClB;KACF;IACD,KAAK,EAAE;QACL,KAAK,EAAE;YACL,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iBAAiB,EAAE;YACnD,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACf;KACF;IACD,IAAI,EAAE;QACJ,KAAK,EAAE;YACL,QAAQ,EAAE,IAAI;SACf;KACF;IACD,WAAW,EAAE;QACX,KAAK,EAAE;YACL,QAAQ,EAAE,IAAI;SACf;KACF;IACD,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iBAAiB,EAAE;SACpD;KACF;IACD,aAAa,EAAE;QACb,KAAK,EAAE;YACL,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,iBAAiB,EAAE;SACpD;KACF;IACD,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,MAAM,EAAE,KAAK;SACd;KACF;IACD,aAAa,EAAE;QACb,OAAO,EAAE,KAAK;QACd,KAAK,EAAE;YACL,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,EAAE,IAAI,EAAE;SAC5D;KACF;CACF,CAAC","file":"mark.js","sourcesContent":["import type { IGlobalMarkThemeByName, IGlobalMarkThemeByType } from '../../interface';\nimport { THEME_CONSTANTS } from './constants';\n\nexport const markByType: IGlobalMarkThemeByType = {\n text: {\n style: {\n fontSize: THEME_CONSTANTS.l4FontSize,\n lineHeight: THEME_CONSTANTS.l4LineHeight,\n\n fontWeight: 'normal',\n fillOpacity: 1\n }\n }\n};\n\nexport const markByName: IGlobalMarkThemeByName = {\n label: {\n style: {\n fontSize: THEME_CONSTANTS.l4FontSize,\n // lineHeight: THEME_CONSTANTS.l4LineHeight,\n\n fontWeight: 'normal',\n fillOpacity: 1\n }\n },\n area: {\n style: {\n fillOpacity: THEME_CONSTANTS.areaOpacity\n }\n },\n line: {\n style: {\n lineWidth: 2,\n lineCap: 'round',\n lineJoin: 'round'\n }\n },\n point: {\n style: {\n size: 8,\n stroke: { type: 'palette', key: 'backgroundColor' },\n lineWidth: 1,\n fillOpacity: 1\n }\n },\n word: {\n style: {\n fontSize: null\n }\n },\n fillingWord: {\n style: {\n fontSize: null\n }\n },\n sunburst: {\n style: {\n lineWidth: 1,\n stroke: { type: 'palette', key: 'backgroundColor' }\n }\n },\n circlePacking: {\n style: {\n lineWidth: 1,\n stroke: { type: 'palette', key: 'backgroundColor' }\n }\n },\n funnel3d: {\n style: {\n stroke: false\n }\n },\n barBackground: {\n visible: false,\n style: {\n fill: { type: 'palette', key: 'primaryFontColor', a: 0.06 }\n }\n }\n};\n"]}
|
package/esm/chart/bar/bar.js
CHANGED
|
@@ -20,7 +20,8 @@ export class BarChart extends CartesianChart {
|
|
|
20
20
|
barMaxWidth: spec.barMaxWidth,
|
|
21
21
|
barMinWidth: spec.barMinWidth,
|
|
22
22
|
barGapInGroup: spec.barGapInGroup,
|
|
23
|
-
barMinHeight: spec.barMinHeight
|
|
23
|
+
barMinHeight: spec.barMinHeight,
|
|
24
|
+
barBackground: spec.barBackground
|
|
24
25
|
});
|
|
25
26
|
}
|
|
26
27
|
transformSpec(spec) {
|
package/esm/chart/bar/bar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/chart/bar/bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,oCAAoC,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,OAAO,QAAS,SAAQ,cAAc;IAA5C;;QAGW,SAAI,GAAW,aAAa,CAAC,GAAG,CAAC;QACjC,eAAU,GAAW,cAAc,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/chart/bar/bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,oCAAoC,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,OAAO,QAAS,SAAQ,cAAc;IAA5C;;QAGW,SAAI,GAAW,aAAa,CAAC,GAAG,CAAC;QACjC,eAAU,GAAW,cAAc,CAAC,GAAG,CAAC;IAkBnD,CAAC;IAhBW,qBAAqB,CAAC,IAAS;QACvC,uCACK,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,KACpC,QAAQ,EAAkB,IAAK,CAAC,QAAQ,EACxC,WAAW,EAAkB,IAAK,CAAC,WAAW,EAC9C,WAAW,EAAkB,IAAK,CAAC,WAAW,EAC9C,aAAa,EAAkB,IAAK,CAAC,aAAa,EAClD,YAAY,EAAkB,IAAK,CAAC,YAAY,EAChD,aAAa,EAAkB,IAAK,CAAC,aAAa,IAClD;IACJ,CAAC;IAED,aAAa,CAAC,IAAS;QACrB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,oCAAoC,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;;AApBe,aAAI,GAAW,aAAa,CAAC,GAAG,CAAC;AACjC,aAAI,GAAW,eAAe,CAAC;AAsBjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,iBAAiB,EAAE,CAAC;IACpB,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC,CAAC","file":"bar.js","sourcesContent":["import { BarSeries, registerBarSeries } from '../../series/bar/bar';\nimport { SeriesTypeEnum } from '../../series/interface';\nimport { CartesianChart } from '../cartesian/cartesian';\nimport { ChartTypeEnum } from '../interface';\nimport { setDefaultCrosshairForCartesianChart } from '../util';\nimport type { IBarChartSpec } from './interface';\nimport { Factory } from '../../core/factory';\n\nexport class BarChart extends CartesianChart {\n static readonly type: string = ChartTypeEnum.bar;\n static readonly view: string = 'singleDefault';\n readonly type: string = ChartTypeEnum.bar;\n readonly seriesType: string = SeriesTypeEnum.bar;\n\n protected _getDefaultSeriesSpec(spec: any): any {\n return {\n ...super._getDefaultSeriesSpec(spec),\n barWidth: (<IBarChartSpec>spec).barWidth,\n barMaxWidth: (<IBarChartSpec>spec).barMaxWidth,\n barMinWidth: (<IBarChartSpec>spec).barMinWidth,\n barGapInGroup: (<IBarChartSpec>spec).barGapInGroup,\n barMinHeight: (<IBarChartSpec>spec).barMinHeight,\n barBackground: (<IBarChartSpec>spec).barBackground\n };\n }\n\n transformSpec(spec: any): void {\n super.transformSpec(spec);\n setDefaultCrosshairForCartesianChart(spec);\n }\n}\n\nexport const registerBarChart = () => {\n registerBarSeries();\n Factory.registerChart(BarChart.type, BarChart);\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/chart/correlation/correlation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/chart/correlation/correlation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAA/C;;QAGW,SAAI,GAAW,aAAa,CAAC,WAAW,CAAC;QACzC,eAAU,GAAW,cAAc,CAAC,WAAW,CAAC;IAmD3D,CAAC;IAjDW,qBAAqB,CAAC,IAA2B;QACzD,MAAM,MAAM,mCACP,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,KACpC,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,SAAS,EAAE,IAAI,CAAC,SAAS,EAEzB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAEvB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,KAAK,EAAE,IAAI,CAAC,KAAK,GAClB,CAAC;QACF,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC;QAC9C,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;QACzB,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QAEtC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,IAA2B;QACvC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAG1B,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5C,IAAI,CAAC,MAAM,GAAG,CAAC,iBAAiB,CAAC,CAAC;SACnC;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACtB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;oBAC/B,OAAO;iBACR;gBACD,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACzC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE;wBACb,CAAC,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;qBAC7B;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;;AArDe,qBAAI,GAAW,aAAa,CAAC,WAAW,CAAC;AACzC,qBAAI,GAAW,eAAe,CAAC;AAuDjD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,yBAAyB,EAAE,CAAC;IAC5B,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;AACjE,CAAC,CAAC","file":"correlation.js","sourcesContent":["import { registerCorrelationSeries } from '../../series/correlation/correlation';\nimport { BaseChart } from '../base-chart';\nimport { ChartTypeEnum } from '../interface';\nimport { SeriesTypeEnum } from '../../series/interface';\nimport type { ICorrelationChartSpec } from './interface';\nimport type { ICorrelationSeriesSpec } from '../../series/correlation/interface';\nimport { Factory } from '../../core/factory';\n\nexport class CorrelationChart extends BaseChart {\n static readonly type: string = ChartTypeEnum.correlation;\n static readonly view: string = 'singleDefault';\n readonly type: string = ChartTypeEnum.correlation;\n readonly seriesType: string = SeriesTypeEnum.correlation;\n\n protected _getDefaultSeriesSpec(spec: ICorrelationChartSpec): any {\n const series: ICorrelationSeriesSpec = {\n ...super._getDefaultSeriesSpec(spec),\n categoryField: spec.categoryField,\n valueField: spec.valueField,\n seriesField: spec.seriesField,\n sizeField: spec.sizeField,\n sizeRange: spec.sizeRange,\n\n centerX: spec.centerX,\n centerY: spec.centerY,\n innerRadius: spec.innerRadius,\n outerRadius: spec.outerRadius,\n startAngle: spec.startAngle,\n endAngle: spec.endAngle,\n\n ripplePoint: spec.ripplePoint,\n centerPoint: spec.centerPoint,\n centerLabel: spec.centerLabel,\n nodePoint: spec.nodePoint,\n label: spec.label\n };\n const seriesType = SeriesTypeEnum.correlation;\n series.type = seriesType;\n series[seriesType] = spec[seriesType];\n\n return series;\n }\n\n transformSpec(spec: ICorrelationChartSpec): void {\n super.transformSpec(spec);\n\n /* 处理 series 配置 */\n const defaultSeriesSpec = this._getDefaultSeriesSpec(spec);\n if (!spec.series || spec.series.length === 0) {\n spec.series = [defaultSeriesSpec];\n } else {\n spec.series.forEach(s => {\n if (!this.isValidSeries(s.type)) {\n return;\n }\n Object.keys(defaultSeriesSpec).forEach(k => {\n if (!(k in s)) {\n s[k] = defaultSeriesSpec[k];\n }\n });\n });\n }\n }\n}\n\nexport const registerCorrelationChart = () => {\n registerCorrelationSeries();\n Factory.registerChart(CorrelationChart.type, CorrelationChart);\n};\n"]}
|
|
@@ -19,7 +19,8 @@ export class RangeColumnChart extends CartesianChart {
|
|
|
19
19
|
_getDefaultSeriesSpec(spec) {
|
|
20
20
|
var _a, _b;
|
|
21
21
|
const series = Object.assign(Object.assign({}, super._getDefaultSeriesSpec(spec)), {
|
|
22
|
-
barGapInGroup: spec.barGapInGroup
|
|
22
|
+
barGapInGroup: spec.barGapInGroup,
|
|
23
|
+
barBackground: spec.barBackground
|
|
23
24
|
});
|
|
24
25
|
return series.bar = spec.bar, spec.direction === Direction.horizontal ? series.xField = null !== (_a = spec.xField) && void 0 !== _a ? _a : [ spec.minField, spec.maxField ] : series.yField = null !== (_b = spec.yField) && void 0 !== _b ? _b : [ spec.minField, spec.maxField ],
|
|
25
26
|
series;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/chart/range-column/range-column.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,oCAAoC,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAEnF,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAApD;;QAGW,SAAI,GAAW,aAAa,CAAC,WAAW,CAAC;QACzC,eAAU,GAAW,cAAc,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/chart/range-column/range-column.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,oCAAoC,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAEnF,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAApD;;QAGW,SAAI,GAAW,aAAa,CAAC,WAAW,CAAC;QACzC,eAAU,GAAW,cAAc,CAAC,WAAW,CAAC;IAqB3D,CAAC;IAnBW,qBAAqB,CAAC,IAAS;;QACvC,MAAM,MAAM,mCACP,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,KACpC,aAAa,EAAG,IAA8B,CAAC,aAAa,EAC5D,aAAa,EAAG,IAA8B,CAAC,aAAa,GAC7D,CAAC;QACF,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACtB,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,UAAU,EAAE;YAC3C,MAAM,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/D;aAAM;YACL,MAAM,CAAC,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/D;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,IAAS;QACrB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1B,oCAAoC,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;;AAvBe,qBAAI,GAAW,aAAa,CAAC,WAAW,CAAC;AACzC,qBAAI,GAAW,eAAe,CAAC;AAyBjD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC3C,yBAAyB,EAAE,CAAC;IAC5B,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;AACjE,CAAC,CAAC","file":"range-column.js","sourcesContent":["import { CartesianChart } from '../cartesian/cartesian';\nimport { ChartTypeEnum } from '../interface';\nimport { SeriesTypeEnum } from '../../series/interface';\nimport { Direction } from '../../typings';\nimport { setDefaultCrosshairForCartesianChart } from '../util';\nimport type { IRangeColumnChartSpec } from './interface';\nimport { Factory } from '../../core/factory';\nimport { registerRangeColumnSeries } from '../../series/range-column/range-column';\n\nexport class RangeColumnChart extends CartesianChart {\n static readonly type: string = ChartTypeEnum.rangeColumn;\n static readonly view: string = 'singleDefault';\n readonly type: string = ChartTypeEnum.rangeColumn;\n readonly seriesType: string = SeriesTypeEnum.rangeColumn;\n\n protected _getDefaultSeriesSpec(spec: any): any {\n const series: any = {\n ...super._getDefaultSeriesSpec(spec),\n barGapInGroup: (spec as IRangeColumnChartSpec).barGapInGroup,\n barBackground: (spec as IRangeColumnChartSpec).barBackground\n };\n series.bar = spec.bar;\n if (spec.direction === Direction.horizontal) {\n series.xField = spec.xField ?? [spec.minField, spec.maxField];\n } else {\n series.yField = spec.yField ?? [spec.minField, spec.maxField];\n }\n return series;\n }\n\n transformSpec(spec: any): void {\n super.transformSpec(spec);\n setDefaultCrosshairForCartesianChart(spec);\n }\n}\n\nexport const registerRangeColumnChart = () => {\n registerRangeColumnSeries();\n Factory.registerChart(RangeColumnChart.type, RangeColumnChart);\n};\n"]}
|
package/esm/chart/stack.js
CHANGED
package/esm/component/index.js
CHANGED
|
@@ -42,5 +42,4 @@ import { registerPoptip } from "./poptip/index";
|
|
|
42
42
|
|
|
43
43
|
export { ScrollBar, DataZoom, CustomMark, Brush, MapLabelComponent, CartesianAxis, CartesianBandAxis, CartesianLinearAxis, CartesianTimeAxis, CartesianLogAxis, CartesianSymlogAxis, PolarAxis, PolarBandAxis, PolarLinearAxis, DiscreteLegend, ContinuousLegend, Indicator, Title, GeoCoordinate, CartesianCrossHair, PolarCrossHair, Player, MarkArea, MarkLine, MarkPoint, Tooltip, Label, TotalLabel };
|
|
44
44
|
|
|
45
|
-
export { registerBrush, registerScrollBar, registerTitle, registerTooltip, registerCartesianBandAxis, registerCartesianCrossHair, registerCartesianLinearAxis, registerCartesianLogAxis, registerCartesianSymlogAxis, registerCartesianTimeAxis, registerContinuousLegend, registerCustomMark, registerDataZoom, registerDiscreteLegend, registerGeoCoordinate, registerIndicator, registerLabel, registerTotalLabel, registerMapLabel, registerMarkArea, registerMarkLine, registerMarkPoint, registerPlayer, registerPolarBandAxis, registerPolarCrossHair, registerPolarLinearAxis, registerPoptip };
|
|
46
|
-
//# sourceMappingURL=index.js.map
|
|
45
|
+
export { registerBrush, registerScrollBar, registerTitle, registerTooltip, registerCartesianBandAxis, registerCartesianCrossHair, registerCartesianLinearAxis, registerCartesianLogAxis, registerCartesianSymlogAxis, registerCartesianTimeAxis, registerContinuousLegend, registerCustomMark, registerDataZoom, registerDiscreteLegend, registerGeoCoordinate, registerIndicator, registerLabel, registerTotalLabel, registerMapLabel, registerMarkArea, registerMarkLine, registerMarkPoint, registerPlayer, registerPolarBandAxis, registerPolarCrossHair, registerPolarLinearAxis, registerPoptip };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isFunction, isObject, isString, isNil, isArray, isValid
|
|
1
|
+
import { isFunction, isObject, isString, isNil, isArray, isValid } from "../../../../util";
|
|
2
2
|
|
|
3
3
|
import { getRichTextBounds } from "@visactor/vrender-core";
|
|
4
4
|
|
|
@@ -44,38 +44,21 @@ element.offsetWidth > 0 ? boundingClientRect.width / element.offsetWidth : bound
|
|
|
44
44
|
|
|
45
45
|
export const measureTooltipText = (text, style) => {
|
|
46
46
|
var _a;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const {width: width, height: height} = measure.fullMeasure(textLines);
|
|
60
|
-
if (style.maxWidth && style.maxWidth <= width) {
|
|
61
|
-
const bound = getRichTextBounds({
|
|
62
|
-
wordBreak: null !== (_a = style.wordBreak) && void 0 !== _a ? _a : "break-word",
|
|
63
|
-
maxWidth: style.maxWidth,
|
|
64
|
-
width: 0,
|
|
65
|
-
height: 0,
|
|
66
|
-
textConfig: textLines.map(((line, i) => Object.assign(Object.assign({}, style), {
|
|
67
|
-
text: line
|
|
68
|
-
})))
|
|
69
|
-
});
|
|
70
|
-
return {
|
|
71
|
-
width: bound.width(),
|
|
72
|
-
height: bound.height(),
|
|
73
|
-
text: textLines
|
|
74
|
-
};
|
|
75
|
-
}
|
|
47
|
+
let textLines;
|
|
48
|
+
text = (null != text ? text : "").toString(), style.multiLine ? (textLines = text.split("\n"),
|
|
49
|
+
textLines = textLines.map(((line, i) => i < textLines.length - 1 ? line + "\n" : line))) : textLines = [ text ];
|
|
50
|
+
const bound = getRichTextBounds({
|
|
51
|
+
wordBreak: null !== (_a = style.wordBreak) && void 0 !== _a ? _a : "break-word",
|
|
52
|
+
maxWidth: style.maxWidth ? style.maxWidth : void 0,
|
|
53
|
+
width: 0,
|
|
54
|
+
height: 0,
|
|
55
|
+
textConfig: textLines.map((line => Object.assign(Object.assign({}, style), {
|
|
56
|
+
text: line
|
|
57
|
+
})))
|
|
58
|
+
});
|
|
76
59
|
return {
|
|
77
|
-
width: width,
|
|
78
|
-
height: height,
|
|
60
|
+
width: bound.width(),
|
|
61
|
+
height: bound.height(),
|
|
79
62
|
text: textLines
|
|
80
63
|
};
|
|
81
64
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/tooltip/handler/utils/common.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"sources":["../src/component/tooltip/handler/utils/common.ts"],"names":[],"mappings":"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","file":"common.js","sourcesContent":["import type { Datum } from '@visactor/vgrammar-core';\nimport type { MaybeArray, TooltipContentProperty, TooltipData, TooltipPatternProperty } from '../../../../typings';\nimport { isFunction, isObject, isString, isNil, isArray, isValid, initTextMeasure } from '../../../../util';\nimport type { TooltipHandlerParams } from '../../interface';\nimport type { IDimensionData, IDimensionInfo } from '../../../../event/events/dimension';\nimport type { IRichTextParagraphCharacter } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { getRichTextBounds } from '@visactor/vrender-core';\nimport type { ITooltipTextStyle } from '../interface/style';\n\ninterface IGradientColor {\n [key: string]: any;\n stops: {\n offset: number;\n color: string;\n }[];\n}\n\n/**\n * Escape special HTML characters.\n *\n * @param value A value to convert to string and HTML-escape.\n */\nexport function escapeHTML(value: any): string {\n return String(value)\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\\(/g, '(')\n .replace(/ /g, ' '); // 转义符和真空格夹杂,在转义和正常换行之间取得平衡\n}\n\nexport const getTooltipContentValue = <T>(\n field?: TooltipContentProperty<T>,\n datum?: any,\n params?: TooltipHandlerParams\n): T | undefined => {\n if (isNil(field)) {\n return field;\n }\n if (isFunction(field)) {\n return field(datum, params);\n }\n return field;\n};\n\nexport const getTooltipPatternValue = <T>(\n field?: MaybeArray<TooltipPatternProperty<T>>,\n data?: TooltipData,\n params?: TooltipHandlerParams\n): (typeof field extends Array<TooltipPatternProperty<T>> ? MaybeArray<T> : T) | undefined => {\n if (isNil(field)) {\n return field;\n }\n if (isArray(field)) {\n const result: T[] = [];\n field.forEach(item => {\n if (isFunction(item)) {\n const value = item(data, params);\n if (isValid(value)) {\n result.push(value);\n }\n } else {\n result.push(item);\n }\n });\n return result as any;\n }\n if (isFunction(field)) {\n return field(data, params);\n }\n return field;\n};\n\nexport function getFirstDatumFromTooltipData(data: TooltipData): Datum {\n // 找到第一个可用的datum\n const dimInfoList: IDimensionInfo[] = (data as IDimensionData[])[0]?.series\n ? [{ data: data as IDimensionData[], value: '' }]\n : (data as IDimensionInfo[]);\n for (const { data: dataList } of dimInfoList) {\n for (const { datum: datumList } of dataList) {\n for (const datumItem of datumList ?? []) {\n if (datumItem) {\n return datumItem;\n }\n }\n }\n }\n}\n\nexport function pickFirstValidValue<T>(isValid: (element?: T) => any, ...elements: T[]): T | undefined {\n for (const ele of elements) {\n if (isValid(ele)) {\n return ele;\n }\n }\n return undefined;\n}\n\n// 针对渐变色,受底层渲染引擎影响,不一定都能绘制正确,所以这里取 colorStop 的第一个颜色作为 color\nexport function convertToColorString(color: any, defaultColor: string = '#000') {\n if (!color) {\n return defaultColor;\n }\n if (isString(color)) {\n return color;\n }\n\n if (isObject(color) && (color as IGradientColor).stops && (color as IGradientColor).stops[0]) {\n return (color as IGradientColor).stops[0].color || defaultColor;\n }\n\n return defaultColor;\n}\n\n/** 获取元素的绝对缩放因数(支持外部传入 boundingClientRect 提升性能) */\nexport const getScale = (element: HTMLElement, boundingClientRect?: DOMRect) => {\n if (!element) {\n return 1;\n }\n if (!boundingClientRect) {\n boundingClientRect = element.getBoundingClientRect();\n }\n if (element.offsetWidth > 0) {\n return boundingClientRect.width / element.offsetWidth;\n }\n return boundingClientRect.height / element.offsetHeight;\n};\n\ninterface ITooltipTextInfo {\n width: number;\n height: number;\n text: MaybeArray<number> | MaybeArray<string>;\n}\n\n/** 测量 tooltip 标签文本 */\nexport const measureTooltipText = (text: string, style: ITooltipTextStyle): ITooltipTextInfo => {\n text = (text ?? '').toString();\n let textLines: string[];\n if (style.multiLine) {\n textLines = text.split('\\n');\n textLines = textLines.map((line, i) => (i < textLines.length - 1 ? line + '\\n' : line));\n } else {\n textLines = [text];\n }\n\n const bound = getRichTextBounds({\n wordBreak: style.wordBreak ?? 'break-word',\n maxWidth: style.maxWidth ? style.maxWidth : undefined,\n width: 0,\n height: 0,\n textConfig: textLines.map(\n line =>\n ({\n ...style,\n text: line\n } as unknown as IRichTextParagraphCharacter)\n )\n });\n return {\n width: bound.width(),\n height: bound.height(),\n text: textLines\n };\n};\n"]}
|
package/esm/constant/base.js
CHANGED
package/esm/core/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VChart } from './vchart';
|
|
2
2
|
import { Factory } from './factory';
|
|
3
3
|
export { VChart, Factory };
|
|
4
|
-
export declare const version = "1.5.
|
|
4
|
+
export declare const version = "1.5.4";
|
|
5
5
|
export type { IVChart } from './interface';
|
|
6
6
|
export * from '../event/interface';
|
|
7
7
|
export * from '../typings/spec/common';
|
package/esm/core/index.js
CHANGED
package/esm/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAM/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.5.
|
|
1
|
+
{"version":3,"sources":["../src/core/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAG3B,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAM/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC","file":"index.js","sourcesContent":["/**\n * @description The core module of VChart, containing the necessary interfaces for using VChart.\n */\n\nimport { VChart } from './vchart';\nimport { Factory } from './factory';\n\nexport { VChart, Factory };\n\n// export the version\nexport const version = \"1.5.4\";\n\n// export necessary types\nexport type { IVChart } from './interface';\n\n// the event types\nexport * from '../event/interface';\nexport * from '../typings/spec/common';\nexport * from '../theme/interface';\nexport type { IStateSpec, StateValueType } from '../compile/mark';\n"]}
|
|
@@ -7,7 +7,7 @@ export const funnel = (originData, op) => {
|
|
|
7
7
|
const {valueField: valueField, asTransformRatio: asTransformRatio, asReachRatio: asReachRatio, asHeightRatio: asHeightRatio, asValueRatio: asValueRatio, asNextValueRatio: asNextValueRatio, asLastValueRatio: asLastValueRatio, asLastValue: asLastValue, asCurrentValue: asCurrentValue, asNextValue: asNextValue, heightVisual: heightVisual = !1, isCone: isCone = !0, range: range} = op, max = data.reduce(((m, d) => Math.max(m, Number.parseFloat(d[valueField]) || -1 / 0)), -1 / 0), min = data.reduce(((m, d) => Math.min(m, Number.parseFloat(d[valueField]) || 1 / 0)), 1 / 0), rangeArr = [ null !== (_a = null == range ? void 0 : range.min) && void 0 !== _a ? _a : min, null !== (_b = null == range ? void 0 : range.max) && void 0 !== _b ? _b : max ];
|
|
8
8
|
return data.forEach(((d, i) => {
|
|
9
9
|
var _a, _b;
|
|
10
|
-
const currentValue = Number.parseFloat(d[valueField]), lastValue = Number.parseFloat(null === (_a = data[i - 1]) || void 0 === _a ? void 0 : _a[valueField]), nextValue = Number.parseFloat(null === (_b = data[i + 1]) || void 0 === _b ? void 0 : _b[valueField]), transformRatio = isValidNumber(nextValue * currentValue) ? nextValue / currentValue :
|
|
10
|
+
const currentValue = Number.parseFloat(d[valueField]), lastValue = Number.parseFloat(null === (_a = data[i - 1]) || void 0 === _a ? void 0 : _a[valueField]), nextValue = Number.parseFloat(null === (_b = data[i + 1]) || void 0 === _b ? void 0 : _b[valueField]), transformRatio = isValidNumber(nextValue * currentValue) && 0 !== currentValue ? nextValue / currentValue : 0, reachRatio = isValidNumber(currentValue * lastValue) && 0 !== lastValue ? currentValue / lastValue : 0;
|
|
11
11
|
asLastValue && (d[asLastValue] = lastValue), asNextValue && (d[asNextValue] = nextValue),
|
|
12
12
|
asTransformRatio && (d[asTransformRatio] = transformRatio), asReachRatio && (d[asReachRatio] = 0 === i ? 1 : reachRatio),
|
|
13
13
|
asHeightRatio && (d[asHeightRatio] = !0 === heightVisual ? transformRatio : 1 / data.length),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/transforms/funnel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAgCjD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,UAA2B,EAAE,EAAc,EAAE,EAAE;;IACpE,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,mBAAM,KAAK,EAAG,CAAC,CAAC;IACrD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,OAAO,IAAI,CAAC;KACb;IACD,MAAM,EACJ,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,GAAG,KAAK,EACpB,MAAM,GAAG,IAAI,EACb,KAAK,EACN,GAAG,EAAE,CAAC;IAEP,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACzG,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;IACvG,MAAM,QAAQ,GAAG,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,mCAAI,GAAG,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,mCAAI,GAAG,CAAC,CAAC;IAExD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;QACpB,MAAM,YAAY,GAAW,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAW,MAAM,CAAC,UAAU,CAAC,MAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,0CAAG,UAAU,CAAC,CAAC,CAAC;QACvE,MAAM,SAAS,GAAW,MAAM,CAAC,UAAU,CAAC,MAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,0CAAG,UAAU,CAAC,CAAC,CAAC;QAEvE,MAAM,cAAc,
|
|
1
|
+
{"version":3,"sources":["../src/data/transforms/funnel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAgCjD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,UAA2B,EAAE,EAAc,EAAE,EAAE;;IACpE,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,mBAAM,KAAK,EAAG,CAAC,CAAC;IACrD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,OAAO,IAAI,CAAC;KACb;IACD,MAAM,EACJ,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,GAAG,KAAK,EACpB,MAAM,GAAG,IAAI,EACb,KAAK,EACN,GAAG,EAAE,CAAC;IAEP,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACzG,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;IACvG,MAAM,QAAQ,GAAG,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,mCAAI,GAAG,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,mCAAI,GAAG,CAAC,CAAC;IAExD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;;QACpB,MAAM,YAAY,GAAW,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAW,MAAM,CAAC,UAAU,CAAC,MAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,0CAAG,UAAU,CAAC,CAAC,CAAC;QACvE,MAAM,SAAS,GAAW,MAAM,CAAC,UAAU,CAAC,MAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,0CAAG,UAAU,CAAC,CAAC,CAAC;QAEvE,MAAM,cAAc,GAClB,CAAC,aAAa,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC;QAChG,MAAM,UAAU,GAAG,CAAC,aAAa,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,SAAS,CAAC;QAE9G,WAAW,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,CAAC;QAC5C,WAAW,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,CAAC;QAC5C,gBAAgB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,CAAC;QAC3D,YAAY,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC7D,aAAa,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/F,YAAY,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,gBAAgB;YACd,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3G,gBAAgB,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,cAAc,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAA2B,EAAE,EAAuB,EAAE,EAAE;;IACtF,MAAM,IAAI,GAAG,MAAA,MAAA,UAAU,CAAC,CAAC,CAAC,0CAAE,UAAU,0CAAE,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,mBAAM,KAAK,EAAG,CAAC,CAAC;IAC5E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,OAAO,IAAI,CAAC;KACb;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;IACb,IAAI,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;QACtB,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC","file":"funnel.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport { isValidNumber } from '@visactor/vutils';\n\nexport interface IFunnelOpt {\n valueField: string;\n /** 转化率(当前层到下一层的比例) **/\n asTransformRatio: string;\n /** 到达率 (上一层到当前层的比例)*/\n asReachRatio: string;\n /** 高度轴占总量的比例 **/\n asHeightRatio: string;\n /** 当前值大小占比 */\n asValueRatio: string;\n /** 上一层值大小占比 */\n asLastValueRatio: string;\n /** 下一层值大小占比 */\n asNextValueRatio: string;\n /** 当前层的值 */\n asCurrentValue: string;\n /** 上一层的值 **/\n asLastValue: string;\n /** 下一层的值 **/\n asNextValue: string;\n\n /** 最底层漏斗是否为锥形 */\n isCone?: boolean;\n /** 高度是否进行数据映射 **/\n heightVisual?: boolean;\n\n /** 数值范围 */\n range?: { min: number; max: number };\n}\n\nexport const funnel = (originData: Array<DataView>, op: IFunnelOpt) => {\n const data = originData.map(datum => ({ ...datum }));\n if (!data || data.length === 0) {\n return data;\n }\n const {\n valueField,\n asTransformRatio,\n asReachRatio,\n asHeightRatio,\n asValueRatio,\n asNextValueRatio,\n asLastValueRatio,\n asLastValue,\n asCurrentValue,\n asNextValue,\n heightVisual = false,\n isCone = true,\n range\n } = op;\n\n const max = data.reduce((m, d) => Math.max(m, Number.parseFloat(d[valueField]) || -Infinity), -Infinity);\n const min = data.reduce((m, d) => Math.min(m, Number.parseFloat(d[valueField]) || Infinity), Infinity);\n const rangeArr = [range?.min ?? min, range?.max ?? max];\n\n data.forEach((d, i) => {\n const currentValue: number = Number.parseFloat(d[valueField]);\n const lastValue: number = Number.parseFloat(data[i - 1]?.[valueField]);\n const nextValue: number = Number.parseFloat(data[i + 1]?.[valueField]);\n\n const transformRatio =\n !isValidNumber(nextValue * currentValue) || currentValue === 0 ? 0 : nextValue / currentValue;\n const reachRatio = !isValidNumber(currentValue * lastValue) || lastValue === 0 ? 0 : currentValue / lastValue;\n\n asLastValue && (d[asLastValue] = lastValue);\n asNextValue && (d[asNextValue] = nextValue);\n asTransformRatio && (d[asTransformRatio] = transformRatio);\n asReachRatio && (d[asReachRatio] = i === 0 ? 1 : reachRatio);\n asHeightRatio && (d[asHeightRatio] = heightVisual === true ? transformRatio : 1 / data.length);\n asValueRatio && (d[asValueRatio] = currentValue / rangeArr[1]);\n asNextValueRatio &&\n (d[asNextValueRatio] = i === data.length - 1 ? (isCone ? 0 : d[asValueRatio]) : nextValue / rangeArr[1]);\n asLastValueRatio && (d[asLastValueRatio] = i === 0 ? 1 : lastValue / rangeArr[1]);\n asCurrentValue && (d[asCurrentValue] = currentValue);\n });\n\n return data;\n};\n\nexport interface IFunnelTransformOpt {\n asIsTransformLevel: string;\n}\n\nexport const funnelTransform = (originData: Array<DataView>, op: IFunnelTransformOpt) => {\n const data = originData[0]?.latestData?.map((datum: any) => ({ ...datum }));\n if (!data || data.length === 0) {\n return data;\n }\n data.shift();\n data.forEach((d: any) => {\n d[op.asIsTransformLevel] = true;\n });\n return data;\n};\n"]}
|
package/esm/series/bar/bar.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CartesianSeries } from '../cartesian/cartesian';
|
|
2
|
-
import type { IMark } from '../../mark/interface';
|
|
2
|
+
import type { IMark, IMarkProgressiveConfig } from '../../mark/interface';
|
|
3
3
|
import { MarkTypeEnum } from '../../mark/interface';
|
|
4
4
|
import type { Maybe, Datum, DirectionType } from '../../typings';
|
|
5
5
|
import type { IBarSeriesSpec, IBarSeriesTheme } from './interface';
|
|
@@ -10,6 +10,8 @@ import type { ITextMark } from '../../mark/text';
|
|
|
10
10
|
import type { SeriesMarkMap } from '../interface';
|
|
11
11
|
import { SeriesMarkNameEnum } from '../interface/type';
|
|
12
12
|
import { SeriesTypeEnum } from '../interface';
|
|
13
|
+
import { SeriesData } from '../base/series-data';
|
|
14
|
+
import { DataView } from '@visactor/vdataset';
|
|
13
15
|
export declare const DefaultBandWidth = 6;
|
|
14
16
|
export declare class BarSeries<T extends IBarSeriesSpec = IBarSeriesSpec> extends CartesianSeries<T> {
|
|
15
17
|
static readonly type: string;
|
|
@@ -20,16 +22,21 @@ export declare class BarSeries<T extends IBarSeriesSpec = IBarSeriesSpec> extend
|
|
|
20
22
|
protected _theme: Maybe<IBarSeriesTheme>;
|
|
21
23
|
protected _supportStack: boolean;
|
|
22
24
|
protected _bandPosition: number;
|
|
23
|
-
protected
|
|
25
|
+
protected _barMark: IRectMark;
|
|
26
|
+
protected _barBackgroundMark: IRectMark;
|
|
27
|
+
protected _barBackgroundViewData: SeriesData;
|
|
24
28
|
initMark(): void;
|
|
29
|
+
protected _initBarBackgroundMark(progressive?: IMarkProgressiveConfig): void;
|
|
25
30
|
initMarkStyle(): void;
|
|
26
31
|
initLabelMarkStyle(textMark: ITextMark): void;
|
|
27
32
|
protected initTooltip(): void;
|
|
33
|
+
protected _statisticViewData(): void;
|
|
28
34
|
init(option: IModelInitOption): void;
|
|
29
35
|
private _shouldDoPreCalculate;
|
|
30
36
|
private _calculateStackRectPosition;
|
|
31
37
|
private _calculateRectPosition;
|
|
32
38
|
initBandRectMarkStyle(): void;
|
|
39
|
+
protected _initBarBackgroundMarkStyle(): void;
|
|
33
40
|
initLinearRectMarkStyle(): void;
|
|
34
41
|
initAnimation(): void;
|
|
35
42
|
protected _getBarWidth(axisHelper: IAxisHelper): number;
|
|
@@ -37,5 +44,9 @@ export declare class BarSeries<T extends IBarSeriesSpec = IBarSeriesSpec> extend
|
|
|
37
44
|
onLayoutEnd(ctx: any): void;
|
|
38
45
|
getDefaultShapeType(): string;
|
|
39
46
|
getActiveMarks(): IMark[];
|
|
47
|
+
compileData(): void;
|
|
48
|
+
fillData(): void;
|
|
49
|
+
viewDataUpdate(d: DataView): void;
|
|
50
|
+
release(): void;
|
|
40
51
|
}
|
|
41
52
|
export declare const registerBarSeries: () => void;
|
package/esm/series/bar/bar.js
CHANGED
|
@@ -30,6 +30,16 @@ import { stackWithMinHeight } from "../util/stack";
|
|
|
30
30
|
|
|
31
31
|
import { Factory } from "../../core/factory";
|
|
32
32
|
|
|
33
|
+
import { registerDataSetInstanceTransform } from "../../data/register";
|
|
34
|
+
|
|
35
|
+
import { SeriesData } from "../base/series-data";
|
|
36
|
+
|
|
37
|
+
import { DataView } from "@visactor/vdataset";
|
|
38
|
+
|
|
39
|
+
import { addVChartProperty } from "../../data/transforms/add-property";
|
|
40
|
+
|
|
41
|
+
import { addDataKey, initKeyMap } from "../../data/transforms/data-key";
|
|
42
|
+
|
|
33
43
|
export const DefaultBandWidth = 6;
|
|
34
44
|
|
|
35
45
|
const RECT_X = `${PREFIX}_rect_x`, RECT_X1 = `${PREFIX}_rect_x1`, RECT_Y = `${PREFIX}_rect_y`, RECT_Y1 = `${PREFIX}_rect_y1`;
|
|
@@ -46,7 +56,7 @@ export class BarSeries extends CartesianSeries {
|
|
|
46
56
|
large: this._spec.large,
|
|
47
57
|
largeThreshold: this._spec.largeThreshold
|
|
48
58
|
};
|
|
49
|
-
this.
|
|
59
|
+
this._initBarBackgroundMark(progressive), this._barMark = this._createMark(Object.assign(Object.assign({}, BarSeries.mark.bar), {
|
|
50
60
|
name: this._barMarkName,
|
|
51
61
|
type: this._barMarkType
|
|
52
62
|
}), {
|
|
@@ -60,11 +70,18 @@ export class BarSeries extends CartesianSeries {
|
|
|
60
70
|
progressive: progressive
|
|
61
71
|
});
|
|
62
72
|
}
|
|
73
|
+
_initBarBackgroundMark(progressive) {
|
|
74
|
+
var _a;
|
|
75
|
+
(null === (_a = this._spec.barBackground) || void 0 === _a ? void 0 : _a.visible) && (this._barBackgroundMark = this._createMark(BarSeries.mark.barBackground, {
|
|
76
|
+
dataView: this._barBackgroundViewData.getDataView(),
|
|
77
|
+
dataProductId: this._barBackgroundViewData.getProductId(),
|
|
78
|
+
progressive: progressive
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
63
81
|
initMarkStyle() {
|
|
64
|
-
|
|
65
|
-
rectMark && (this.setMarkStyle(rectMark, {
|
|
82
|
+
this._barMark && (this.setMarkStyle(this._barMark, {
|
|
66
83
|
fill: this.getColorAttribute()
|
|
67
|
-
}, "normal", AttributeLevel.Series), this._trigger.registerMark(
|
|
84
|
+
}, "normal", AttributeLevel.Series), this._trigger.registerMark(this._barMark));
|
|
68
85
|
}
|
|
69
86
|
initLabelMarkStyle(textMark) {
|
|
70
87
|
textMark && this.setMarkStyle(textMark, {
|
|
@@ -74,7 +91,40 @@ export class BarSeries extends CartesianSeries {
|
|
|
74
91
|
});
|
|
75
92
|
}
|
|
76
93
|
initTooltip() {
|
|
77
|
-
super.initTooltip(), this.
|
|
94
|
+
super.initTooltip(), this._barMark && this._tooltipHelper.activeTriggerSet.mark.add(this._barMark);
|
|
95
|
+
}
|
|
96
|
+
_statisticViewData() {
|
|
97
|
+
var _a, _b;
|
|
98
|
+
if (super._statisticViewData(), !(null === (_a = this._spec.barBackground) || void 0 === _a ? void 0 : _a.visible)) return;
|
|
99
|
+
registerDataSetInstanceTransform(this._option.dataSet, "addVChartProperty", addVChartProperty),
|
|
100
|
+
registerDataSetInstanceTransform(this._option.dataSet, "dimensionItems", (([data], op) => {
|
|
101
|
+
var _a;
|
|
102
|
+
let dataCollect = [ {} ];
|
|
103
|
+
const fields = this.getDimensionField();
|
|
104
|
+
for (let i = 0; i < fields.length; i++) {
|
|
105
|
+
const field = fields[i], values = null === (_a = data.latestData[field]) || void 0 === _a ? void 0 : _a.values;
|
|
106
|
+
if (!(null == values ? void 0 : values.length)) continue;
|
|
107
|
+
const newDataCollect = [];
|
|
108
|
+
for (let j = 0; j < values.length; j++) for (let k = 0; k < dataCollect.length; k++) newDataCollect.push(Object.assign(Object.assign({}, dataCollect[k]), {
|
|
109
|
+
[field]: values[j]
|
|
110
|
+
}));
|
|
111
|
+
dataCollect = newDataCollect;
|
|
112
|
+
}
|
|
113
|
+
return dataCollect;
|
|
114
|
+
}));
|
|
115
|
+
const barBackgroundData = new DataView(this._option.dataSet).parse([ this._viewDataStatistics ], {
|
|
116
|
+
type: "dataview"
|
|
117
|
+
}).transform({
|
|
118
|
+
type: "dimensionItems"
|
|
119
|
+
}, !1).transform({
|
|
120
|
+
type: "addVChartProperty",
|
|
121
|
+
options: {
|
|
122
|
+
beforeCall: initKeyMap,
|
|
123
|
+
call: addDataKey.bind(this)
|
|
124
|
+
}
|
|
125
|
+
}, !1);
|
|
126
|
+
null === (_b = this._viewDataStatistics) || void 0 === _b || _b.target.addListener("change", barBackgroundData.reRunAllTransform),
|
|
127
|
+
this._barBackgroundViewData = new SeriesData(this._option, barBackgroundData);
|
|
78
128
|
}
|
|
79
129
|
init(option) {
|
|
80
130
|
var _a, _b;
|
|
@@ -116,33 +166,61 @@ export class BarSeries extends CartesianSeries {
|
|
|
116
166
|
initBandRectMarkStyle() {
|
|
117
167
|
var _a, _b, _c, _d;
|
|
118
168
|
const xScale = null === (_b = null === (_a = this._xAxisHelper) || void 0 === _a ? void 0 : _a.getScale) || void 0 === _b ? void 0 : _b.call(_a, 0), yScale = null === (_d = null === (_c = this._yAxisHelper) || void 0 === _c ? void 0 : _c.getScale) || void 0 === _d ? void 0 : _d.call(_c, 0);
|
|
119
|
-
this.direction === Direction.horizontal ? this.setMarkStyle(this.
|
|
169
|
+
this.direction === Direction.horizontal ? this.setMarkStyle(this._barMark, {
|
|
120
170
|
x: datum => this._shouldDoPreCalculate() ? (this._calculateStackRectPosition(!1),
|
|
121
171
|
datum[RECT_X]) : this._spec.barMinHeight ? this._calculateRectPosition(datum, !1) : valueInScaleRange(this.dataToPositionX(datum), xScale),
|
|
122
172
|
x1: datum => this._shouldDoPreCalculate() ? (this._calculateStackRectPosition(!1),
|
|
123
173
|
datum[RECT_X1]) : valueInScaleRange(this.dataToPositionX1(datum), xScale),
|
|
124
174
|
y: datum => this._getPosition(this.direction, datum),
|
|
125
175
|
height: () => this._getBarWidth(this._yAxisHelper)
|
|
126
|
-
}, "normal", AttributeLevel.Series) : this.setMarkStyle(this.
|
|
176
|
+
}, "normal", AttributeLevel.Series) : this.setMarkStyle(this._barMark, {
|
|
127
177
|
x: datum => this._getPosition(this.direction, datum),
|
|
128
178
|
y: (datum, ctx, opt, dataView) => this._shouldDoPreCalculate() ? (this._calculateStackRectPosition(!0),
|
|
129
179
|
datum[RECT_Y]) : this._spec.barMinHeight ? this._calculateRectPosition(datum, !0) : valueInScaleRange(this.dataToPositionY(datum), yScale),
|
|
130
180
|
y1: datum => this._shouldDoPreCalculate() ? (this._calculateStackRectPosition(!0),
|
|
131
181
|
datum[RECT_Y1]) : valueInScaleRange(this.dataToPositionY1(datum), yScale),
|
|
132
182
|
width: () => this._getBarWidth(this._xAxisHelper)
|
|
183
|
+
}, "normal", AttributeLevel.Series), this._initBarBackgroundMarkStyle();
|
|
184
|
+
}
|
|
185
|
+
_initBarBackgroundMarkStyle() {
|
|
186
|
+
var _a, _b, _c, _d;
|
|
187
|
+
if (!this._barBackgroundMark) return;
|
|
188
|
+
const xScale = null === (_b = null === (_a = this._xAxisHelper) || void 0 === _a ? void 0 : _a.getScale) || void 0 === _b ? void 0 : _b.call(_a, 0), yScale = null === (_d = null === (_c = this._yAxisHelper) || void 0 === _c ? void 0 : _c.getScale) || void 0 === _d ? void 0 : _d.call(_c, 0);
|
|
189
|
+
this.direction === Direction.horizontal ? this.setMarkStyle(this._barBackgroundMark, {
|
|
190
|
+
x: () => {
|
|
191
|
+
const range = xScale.range();
|
|
192
|
+
return Math.min(range[0], range[range.length - 1]);
|
|
193
|
+
},
|
|
194
|
+
x1: () => {
|
|
195
|
+
const range = xScale.range();
|
|
196
|
+
return Math.max(range[0], range[range.length - 1]);
|
|
197
|
+
},
|
|
198
|
+
y: datum => this._getPosition(this.direction, datum),
|
|
199
|
+
height: () => this._getBarWidth(this._yAxisHelper)
|
|
200
|
+
}, "normal", AttributeLevel.Series) : this.setMarkStyle(this._barBackgroundMark, {
|
|
201
|
+
x: datum => this._getPosition(this.direction, datum),
|
|
202
|
+
y: () => {
|
|
203
|
+
const range = yScale.range();
|
|
204
|
+
return Math.min(range[0], range[range.length - 1]);
|
|
205
|
+
},
|
|
206
|
+
y1: () => {
|
|
207
|
+
const range = yScale.range();
|
|
208
|
+
return Math.max(range[0], range[range.length - 1]);
|
|
209
|
+
},
|
|
210
|
+
width: () => this._getBarWidth(this._xAxisHelper)
|
|
133
211
|
}, "normal", AttributeLevel.Series);
|
|
134
212
|
}
|
|
135
213
|
initLinearRectMarkStyle() {
|
|
136
214
|
var _a, _b, _c, _d;
|
|
137
215
|
const xScale = null === (_b = null === (_a = this._xAxisHelper) || void 0 === _a ? void 0 : _a.getScale) || void 0 === _b ? void 0 : _b.call(_a, 0), yScale = null === (_d = null === (_c = this._yAxisHelper) || void 0 === _c ? void 0 : _c.getScale) || void 0 === _d ? void 0 : _d.call(_c, 0);
|
|
138
|
-
this.direction === Direction.vertical ? this.setMarkStyle(this.
|
|
216
|
+
this.direction === Direction.vertical ? this.setMarkStyle(this._barMark, {
|
|
139
217
|
x: datum => valueInScaleRange(this.dataToPositionX(datum), xScale),
|
|
140
218
|
x1: datum => valueInScaleRange(this.dataToPositionX1(datum), xScale),
|
|
141
219
|
y: (datum, ctx, opt, dataView) => this._shouldDoPreCalculate() ? (this._calculateStackRectPosition(!0),
|
|
142
220
|
datum[RECT_Y]) : this._spec.barMinHeight ? this._calculateRectPosition(datum, !0) : valueInScaleRange(this.dataToPositionY(datum), yScale),
|
|
143
221
|
y1: datum => this._shouldDoPreCalculate() ? (this._calculateStackRectPosition(!0),
|
|
144
222
|
datum[RECT_Y1]) : valueInScaleRange(this.dataToPositionY1(datum), yScale)
|
|
145
|
-
}, "normal", AttributeLevel.Series) : this.setMarkStyle(this.
|
|
223
|
+
}, "normal", AttributeLevel.Series) : this.setMarkStyle(this._barMark, {
|
|
146
224
|
x: datum => this._shouldDoPreCalculate() ? (this._calculateStackRectPosition(!1),
|
|
147
225
|
datum[RECT_X]) : this._spec.barMinHeight ? this._calculateRectPosition(datum, !1) : valueInScaleRange(this.dataToPositionX(datum), xScale),
|
|
148
226
|
x1: datum => this._shouldDoPreCalculate() ? (this._calculateStackRectPosition(!1),
|
|
@@ -162,7 +240,7 @@ export class BarSeries extends CartesianSeries {
|
|
|
162
240
|
return "horizontal" === this.direction ? null === (_a = this._xAxisHelper) || void 0 === _a ? void 0 : _a.getScale(0).scale(0) : null === (_b = this._yAxisHelper) || void 0 === _b ? void 0 : _b.getScale(0).scale(0);
|
|
163
241
|
}
|
|
164
242
|
}, appearPreset = null === (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.animationAppear) || void 0 === _b ? void 0 : _b.preset;
|
|
165
|
-
this.
|
|
243
|
+
this._barMark.setAnimationConfig(animationConfig(null === (_c = Factory.getAnimationInKey("bar")) || void 0 === _c ? void 0 : _c(animationParams, appearPreset), userAnimationConfig(this._barMarkName, this._spec), {
|
|
166
244
|
dataIndex: datum => {
|
|
167
245
|
var _a, _b, _c;
|
|
168
246
|
const xValue = null == datum ? void 0 : datum[this._fieldX[0]];
|
|
@@ -186,7 +264,7 @@ export class BarSeries extends CartesianSeries {
|
|
|
186
264
|
direction === Direction.horizontal ? (axisHelper = this.getYAxisHelper(), sizeAttribute = "height",
|
|
187
265
|
dataToPosition = this.dataToPositionY.bind(this)) : (axisHelper = this.getXAxisHelper(),
|
|
188
266
|
sizeAttribute = "width", dataToPosition = this.dataToPositionX.bind(this));
|
|
189
|
-
const scale = axisHelper.getScale(0), size = this.
|
|
267
|
+
const scale = axisHelper.getScale(0), size = this._barMark.getAttribute(sizeAttribute, datum), bandWidth = null !== (_b = null === (_a = axisHelper.getBandwidth) || void 0 === _a ? void 0 : _a.call(axisHelper, this._groups ? this._groups.fields.length - 1 : 0)) && void 0 !== _b ? _b : 6;
|
|
190
268
|
if ((null === (_d = null === (_c = this._groups) || void 0 === _c ? void 0 : _c.fields) || void 0 === _d ? void 0 : _d.length) > 1 && isValid(this._spec.barGapInGroup)) {
|
|
191
269
|
const groupFields = this._groups.fields, barInGroup = array(this._spec.barGapInGroup);
|
|
192
270
|
let totalWidth = 0, offSet = 0;
|
|
@@ -208,7 +286,25 @@ export class BarSeries extends CartesianSeries {
|
|
|
208
286
|
return "square";
|
|
209
287
|
}
|
|
210
288
|
getActiveMarks() {
|
|
211
|
-
return [ this.
|
|
289
|
+
return [ this._barMark ];
|
|
290
|
+
}
|
|
291
|
+
compileData() {
|
|
292
|
+
var _a;
|
|
293
|
+
super.compileData(), null === (_a = this._barBackgroundViewData) || void 0 === _a || _a.compile();
|
|
294
|
+
}
|
|
295
|
+
fillData() {
|
|
296
|
+
var _a, _b;
|
|
297
|
+
super.fillData(), null === (_b = null === (_a = this._barBackgroundViewData) || void 0 === _a ? void 0 : _a.getDataView()) || void 0 === _b || _b.reRunAllTransform();
|
|
298
|
+
}
|
|
299
|
+
viewDataUpdate(d) {
|
|
300
|
+
var _a, _b, _c;
|
|
301
|
+
super.viewDataUpdate(d), null === (_b = null === (_a = this._barBackgroundViewData) || void 0 === _a ? void 0 : _a.getDataView()) || void 0 === _b || _b.reRunAllTransform(),
|
|
302
|
+
null === (_c = this._barBackgroundViewData) || void 0 === _c || _c.updateData();
|
|
303
|
+
}
|
|
304
|
+
release() {
|
|
305
|
+
var _a;
|
|
306
|
+
super.release(), null === (_a = this._barBackgroundViewData) || void 0 === _a || _a.release(),
|
|
307
|
+
this._barBackgroundViewData = null;
|
|
212
308
|
}
|
|
213
309
|
}
|
|
214
310
|
|