@visactor/vchart 1.2.0-beta.1 → 1.2.0-beta.3
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/index.js +329 -134
- package/build/index.min.js +1 -1
- package/cjs/chart/area/area.js +3 -1
- package/cjs/chart/area/area.js.map +1 -1
- package/cjs/chart/base-chart.d.ts +6 -2
- package/cjs/chart/base-chart.js +34 -11
- package/cjs/chart/base-chart.js.map +1 -1
- package/cjs/chart/line/line.js +3 -1
- package/cjs/chart/line/line.js.map +1 -1
- package/cjs/chart/radar/radar.js +3 -1
- package/cjs/chart/radar/radar.js.map +1 -1
- package/cjs/chart/stack.js +3 -3
- package/cjs/chart/stack.js.map +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js +4 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/cjs/component/geo/geo-coordinate.d.ts +4 -0
- package/cjs/component/geo/geo-coordinate.js +18 -2
- package/cjs/component/geo/geo-coordinate.js.map +1 -1
- package/cjs/component/indicator/indicator.js +1 -1
- package/cjs/component/indicator/indicator.js.map +1 -1
- package/cjs/component/tooltip/handler/base.d.ts +1 -1
- package/cjs/component/tooltip/handler/base.js +1 -1
- package/cjs/component/tooltip/handler/base.js.map +1 -1
- package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.d.ts +1 -0
- package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js +11 -4
- package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +1 -0
- package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js +3 -0
- package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
- package/cjs/component/tooltip/interface/event.d.ts +8 -0
- package/cjs/component/tooltip/interface/event.js +6 -0
- package/cjs/component/tooltip/interface/event.js.map +1 -0
- package/cjs/component/tooltip/interface/spec.d.ts +2 -2
- package/cjs/component/tooltip/interface/spec.js.map +1 -1
- package/cjs/component/tooltip/processor/base.js +6 -2
- package/cjs/component/tooltip/processor/base.js.map +1 -1
- package/cjs/component/tooltip/processor/dimension-tooltip.js +5 -5
- package/cjs/component/tooltip/processor/dimension-tooltip.js.map +1 -1
- package/cjs/component/tooltip/processor/mark-tooltip.js +1 -2
- package/cjs/component/tooltip/processor/mark-tooltip.js.map +1 -1
- package/cjs/component/tooltip/tooltip.d.ts +4 -2
- package/cjs/component/tooltip/tooltip.js +21 -9
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/constant/event.d.ts +3 -1
- package/cjs/constant/event.js +2 -1
- package/cjs/constant/event.js.map +1 -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/core/vchart.js +10 -8
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/transforms/legend-data/discrete/discrete.js +3 -2
- package/cjs/data/transforms/legend-data/discrete/discrete.js.map +1 -1
- package/cjs/data/transforms/sankey.d.ts +2 -0
- package/cjs/data/transforms/sankey.js +9 -1
- package/cjs/data/transforms/sankey.js.map +1 -1
- package/cjs/event/events/dimension/base.js +1 -1
- package/cjs/event/events/dimension/base.js.map +1 -1
- package/cjs/event/events/dimension/interface.js.map +1 -1
- package/cjs/event/events/dimension/util/cartesian.d.ts +2 -2
- package/cjs/event/events/dimension/util/cartesian.js +12 -11
- package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
- package/cjs/event/events/dimension/util/common.d.ts +1 -1
- package/cjs/event/events/dimension/util/common.js +13 -6
- package/cjs/event/events/dimension/util/common.js.map +1 -1
- package/cjs/event/interface.d.ts +3 -0
- package/cjs/event/interface.js.map +1 -1
- package/cjs/model/interface.d.ts +0 -4
- package/cjs/model/interface.js.map +1 -1
- package/cjs/model/layout-item.d.ts +0 -3
- package/cjs/model/layout-item.js +1 -8
- package/cjs/model/layout-item.js.map +1 -1
- package/cjs/series/area/area.js +5 -4
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/area/interface.d.ts +1 -0
- package/cjs/series/area/interface.js.map +1 -1
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/line/interface.d.ts +4 -2
- package/cjs/series/line/interface.js.map +1 -1
- package/cjs/series/line/line.js +5 -3
- package/cjs/series/line/line.js.map +1 -1
- package/cjs/series/mixin/line-mixin.d.ts +1 -1
- package/cjs/series/mixin/line-mixin.js +3 -2
- package/cjs/series/mixin/line-mixin.js.map +1 -1
- package/cjs/series/pie/pie.js +1 -1
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/radar/interface.d.ts +1 -0
- package/cjs/series/radar/interface.js.map +1 -1
- package/cjs/series/radar/radar.js +4 -4
- package/cjs/series/radar/radar.js.map +1 -1
- package/cjs/series/sankey/sankey.js +7 -4
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/word-cloud/base.d.ts +7 -0
- package/cjs/series/word-cloud/base.js +8 -3
- package/cjs/series/word-cloud/base.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/area.js +5 -0
- package/cjs/theme/buildin-theme/light/series/area.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/line.js +5 -0
- package/cjs/theme/buildin-theme/light/series/line.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/radar.js +5 -0
- package/cjs/theme/buildin-theme/light/series/radar.js.map +1 -1
- package/cjs/typings/spec/common.d.ts +7 -2
- package/cjs/typings/spec/common.js.map +1 -1
- package/cjs/typings/tooltip/handler.d.ts +1 -0
- package/cjs/typings/tooltip/handler.js.map +1 -1
- package/cjs/typings/visual.d.ts +1 -1
- package/cjs/typings/visual.js.map +1 -1
- package/cjs/util/spec.d.ts +4 -0
- package/cjs/util/spec.js +24 -2
- package/cjs/util/spec.js.map +1 -1
- package/esm/chart/area/area.js +3 -1
- package/esm/chart/area/area.js.map +1 -1
- package/esm/chart/base-chart.d.ts +6 -2
- package/esm/chart/base-chart.js +34 -9
- package/esm/chart/base-chart.js.map +1 -1
- package/esm/chart/line/line.js +3 -1
- package/esm/chart/line/line.js.map +1 -1
- package/esm/chart/radar/radar.js +3 -1
- package/esm/chart/radar/radar.js.map +1 -1
- package/esm/chart/stack.js +3 -3
- package/esm/chart/stack.js.map +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js +4 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/esm/component/geo/geo-coordinate.d.ts +4 -0
- package/esm/component/geo/geo-coordinate.js +18 -2
- package/esm/component/geo/geo-coordinate.js.map +1 -1
- package/esm/component/indicator/indicator.js +1 -1
- package/esm/component/indicator/indicator.js.map +1 -1
- package/esm/component/tooltip/handler/base.d.ts +1 -1
- package/esm/component/tooltip/handler/base.js +1 -1
- package/esm/component/tooltip/handler/base.js.map +1 -1
- package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.d.ts +1 -0
- package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js +11 -4
- package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
- package/esm/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +1 -0
- package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js +3 -0
- package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
- package/esm/component/tooltip/interface/event.d.ts +8 -0
- package/esm/component/tooltip/interface/event.js +2 -0
- package/esm/component/tooltip/interface/event.js.map +1 -0
- package/esm/component/tooltip/interface/spec.d.ts +2 -2
- package/esm/component/tooltip/interface/spec.js.map +1 -1
- package/esm/component/tooltip/processor/base.js +7 -1
- package/esm/component/tooltip/processor/base.js.map +1 -1
- package/esm/component/tooltip/processor/dimension-tooltip.js +5 -7
- package/esm/component/tooltip/processor/dimension-tooltip.js.map +1 -1
- package/esm/component/tooltip/processor/mark-tooltip.js +0 -3
- package/esm/component/tooltip/processor/mark-tooltip.js.map +1 -1
- package/esm/component/tooltip/tooltip.d.ts +4 -2
- package/esm/component/tooltip/tooltip.js +23 -9
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/constant/event.d.ts +3 -1
- package/esm/constant/event.js +2 -1
- package/esm/constant/event.js.map +1 -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/core/vchart.js +11 -9
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/transforms/legend-data/discrete/discrete.js +4 -1
- package/esm/data/transforms/legend-data/discrete/discrete.js.map +1 -1
- package/esm/data/transforms/sankey.d.ts +2 -0
- package/esm/data/transforms/sankey.js +9 -1
- package/esm/data/transforms/sankey.js.map +1 -1
- package/esm/event/events/dimension/base.js +2 -2
- package/esm/event/events/dimension/base.js.map +1 -1
- package/esm/event/events/dimension/interface.js.map +1 -1
- package/esm/event/events/dimension/util/cartesian.d.ts +2 -2
- package/esm/event/events/dimension/util/cartesian.js +7 -8
- package/esm/event/events/dimension/util/cartesian.js.map +1 -1
- package/esm/event/events/dimension/util/common.d.ts +1 -1
- package/esm/event/events/dimension/util/common.js +14 -6
- package/esm/event/events/dimension/util/common.js.map +1 -1
- package/esm/event/interface.d.ts +3 -0
- package/esm/event/interface.js.map +1 -1
- package/esm/model/interface.d.ts +0 -4
- package/esm/model/interface.js.map +1 -1
- package/esm/model/layout-item.d.ts +0 -3
- package/esm/model/layout-item.js +1 -8
- package/esm/model/layout-item.js.map +1 -1
- package/esm/series/area/area.js +5 -4
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/area/interface.d.ts +1 -0
- package/esm/series/area/interface.js.map +1 -1
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/line/interface.d.ts +4 -2
- package/esm/series/line/interface.js.map +1 -1
- package/esm/series/line/line.js +5 -3
- package/esm/series/line/line.js.map +1 -1
- package/esm/series/mixin/line-mixin.d.ts +1 -1
- package/esm/series/mixin/line-mixin.js +3 -2
- package/esm/series/mixin/line-mixin.js.map +1 -1
- package/esm/series/pie/pie.js +2 -2
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/radar/interface.d.ts +1 -0
- package/esm/series/radar/interface.js.map +1 -1
- package/esm/series/radar/radar.js +4 -4
- package/esm/series/radar/radar.js.map +1 -1
- package/esm/series/sankey/sankey.js +7 -4
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/word-cloud/base.d.ts +7 -0
- package/esm/series/word-cloud/base.js +7 -0
- package/esm/series/word-cloud/base.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/area.js +5 -0
- package/esm/theme/buildin-theme/light/series/area.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/line.js +5 -0
- package/esm/theme/buildin-theme/light/series/line.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/radar.js +5 -0
- package/esm/theme/buildin-theme/light/series/radar.js.map +1 -1
- package/esm/typings/spec/common.d.ts +7 -2
- package/esm/typings/spec/common.js.map +1 -1
- package/esm/typings/tooltip/handler.d.ts +1 -0
- package/esm/typings/tooltip/handler.js.map +1 -1
- package/esm/typings/visual.d.ts +1 -1
- package/esm/typings/visual.js.map +1 -1
- package/esm/util/spec.d.ts +4 -0
- package/esm/util/spec.js +21 -0
- package/esm/util/spec.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/events/dimension/util/cartesian.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG7D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,2CAA2C,CAAC;AAEpE,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,IAAe,EAAE,GAAiB,EAA0B,EAAE;IAC5F,MAAM,cAAc,GAAG,KAAK;SACzB,gBAAgB,EAAE;SAClB,MAAM,CACL,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,OAAO,KAAK,MAAM;QACpB,CAAC,IAAI,KAAK,GAAG;YACX,CAAC,CAAE,CAAmB,CAAC,MAAM,KAAK,QAAQ,IAAK,CAAmB,CAAC,MAAM,KAAK,KAAK;YACnF,CAAC,CAAE,CAAmB,CAAC,MAAM,KAAK,MAAM,IAAK,CAAmB,CAAC,MAAM,KAAK,OAAO,CAAC;QACtF,eAAe,CAAC,KAAK,EAAE,CAAkB,EAAE,GAAG,CAAC,CAC/B,CAAC;IACvB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;QAC1B,OAAO,IAAI,CAAC;KACb;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,CAAC,UAAU,KAAK,WAAW,EAAE;gBAChC,OAAO,CAAqB,CAAC;aAC9B;SACF;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,
|
|
1
|
+
{"version":3,"sources":["../src/event/events/dimension/util/cartesian.ts"],"names":[],"mappings":"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","file":"cartesian.js","sourcesContent":["import type { IChart } from '../../../../chart/interface';\nimport type { ILayoutPoint } from '../../../../model/interface';\nimport type { IDimensionInfo } from '../interface';\nimport { isDiscrete } from '@visactor/vscale';\nimport { getDimensionData, isInRegionBound } from './common';\nimport type { CartesianAxis } from '../../../../component/axis/cartesian';\nimport type { ICartesianSeries } from '../../../../series/interface';\nimport { isNil } from '@visactor/vutils';\nimport type { AxisComponent } from '../../../../component/axis/base-axis';\nimport { isXAxis } from '../../../../component/axis/cartesian/util';\n\nconst getAxis = (chart: IChart, type: 'x' | 'y', pos: ILayoutPoint): CartesianAxis[] | null => {\n const axesComponents = chart\n .getAllComponents()\n .filter(\n c =>\n c.specKey === 'axes' &&\n (type === 'x'\n ? (c as AxisComponent).orient === 'bottom' || (c as AxisComponent).orient === 'top'\n : (c as AxisComponent).orient === 'left' || (c as AxisComponent).orient === 'right') &&\n isInRegionBound(chart, c as AxisComponent, pos)\n ) as CartesianAxis[];\n if (!axesComponents.length) {\n return null;\n }\n return axesComponents;\n};\n\nconst getFirstSeries = (chart: IChart) => {\n const regions = chart.getRegionsInIndex();\n for (let i = 0; i < regions.length; i++) {\n const r = regions[i];\n const series = r.getSeries();\n for (let j = 0; j < series.length; j++) {\n const s = series[j];\n if (s.coordinate === 'cartesian') {\n return s as ICartesianSeries;\n }\n }\n }\n return null;\n};\n\nconst discreteXAxisGetDimensionField = (series: ICartesianSeries) => series.fieldX[0];\nconst discreteYAxisGetDimensionField = (series: ICartesianSeries) => series.fieldY[0];\nconst continuousXAxisGetDimensionField = (series: ICartesianSeries) => [series.fieldX[0], series.fieldX2];\nconst continuousYAxisGetDimensionField = (series: ICartesianSeries) => [series.fieldY[0], series.fieldY2];\n\nexport const getCartesianDimensionInfo = (chart: IChart | undefined, pos: ILayoutPoint): IDimensionInfo[] | null => {\n if (!chart) {\n return null;\n }\n const series = getFirstSeries(chart);\n if (!series) {\n return null;\n }\n\n const { x, y } = pos;\n const xAxisList = getAxis(chart, 'x', pos);\n const yAxisList = getAxis(chart, 'y', pos);\n const targetAxisInfo: IDimensionInfo[] = [];\n\n if (xAxisList) {\n xAxisList.forEach(axis => {\n const isDiscreteAxis = isDiscrete(axis.getScale().type);\n const info = getDimensionInfoByPosition(\n axis,\n x,\n 'x',\n isDiscreteAxis ? discreteXAxisGetDimensionField : continuousXAxisGetDimensionField\n );\n info && targetAxisInfo.push(info);\n });\n }\n if (yAxisList) {\n yAxisList.forEach(axis => {\n const isDiscreteAxis = isDiscrete(axis.getScale().type);\n const info = getDimensionInfoByPosition(\n axis,\n y,\n 'y',\n isDiscreteAxis ? discreteYAxisGetDimensionField : continuousYAxisGetDimensionField\n );\n info && targetAxisInfo.push(info);\n });\n }\n if (!targetAxisInfo.length) {\n return null;\n }\n return targetAxisInfo;\n};\n\nexport const getDimensionInfoByPosition = (\n axis: CartesianAxis,\n posValue: number,\n posKey: 'x' | 'y',\n getDimensionField: (series: ICartesianSeries) => string | string[]\n): IDimensionInfo | null => {\n const scale = axis.getScale();\n const scalePos = posValue - axis.getLayoutStartPoint()[posKey];\n // 判断是否在 range 范围内\n if ((scalePos - scale.range()[0]) * (scalePos - scale.range()[1]) > 0) {\n return null;\n }\n\n const value = scale.invert(scalePos);\n return getDimensionInfoByValue(axis, value, getDimensionField);\n};\n\nexport const getDimensionInfoByValue = (\n axis: CartesianAxis,\n value: any,\n getDimensionField?: (series: ICartesianSeries) => string | string[]\n): IDimensionInfo | null => {\n const scale = axis.getScale();\n\n if (isNil(value)) {\n return null;\n }\n const domain = scale.domain();\n let index: number | undefined = domain.findIndex((v: any) => v?.toString() === value.toString());\n if (index < 0) {\n index = undefined;\n }\n\n const data = getDimensionData(\n value,\n axis,\n 'cartesian',\n getDimensionField ?? (isXAxis(axis.orient) ? discreteXAxisGetDimensionField : discreteYAxisGetDimensionField)\n );\n return { index, value, axis, data };\n};\n"]}
|
|
@@ -5,4 +5,4 @@ import type { AxisComponent } from '../../../../component/axis/base-axis';
|
|
|
5
5
|
import type { CoordinateType } from '../../../../typings';
|
|
6
6
|
export declare const isInRegionBound: (chart: IChart, axis: AxisComponent, pos: ILayoutPoint) => boolean;
|
|
7
7
|
export declare const isSameDimensionInfo: (a?: IDimensionInfo, b?: IDimensionInfo) => boolean;
|
|
8
|
-
export declare const getDimensionData: (value: any, axis: AxisComponent, coordinate: CoordinateType, getDimensionField: (series: any) => string) => IDimensionData[];
|
|
8
|
+
export declare const getDimensionData: (value: any, axis: AxisComponent, coordinate: CoordinateType, getDimensionField: (series: any) => string | string[]) => IDimensionData[];
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { isNil, array } from "../../../../util";
|
|
1
|
+
import { isNil, array, isValid } from "../../../../util";
|
|
2
|
+
|
|
3
|
+
import { isDiscrete } from "@visactor/vscale";
|
|
2
4
|
|
|
3
5
|
const isInBound = (pos, min, max) => pos.x >= min.x && pos.x <= max.x && pos.y >= min.y && pos.y <= max.y;
|
|
4
6
|
|
|
@@ -23,18 +25,24 @@ export const isSameDimensionInfo = (a, b) => {
|
|
|
23
25
|
|
|
24
26
|
export const getDimensionData = (value, axis, coordinate, getDimensionField) => {
|
|
25
27
|
var _a;
|
|
26
|
-
const data = [], regions = axis.getRegions();
|
|
28
|
+
const scale = axis.getScale(), isDiscreteAxis = isDiscrete(scale.type), data = [], regions = axis.getRegions();
|
|
27
29
|
for (const region of regions) {
|
|
28
30
|
const seriesList = region.getSeries();
|
|
29
31
|
for (const series of seriesList) if (series.coordinate === coordinate) {
|
|
30
|
-
const dimensionField = getDimensionField(series), viewData = null === (_a = series.getViewData()) || void 0 === _a ? void 0 : _a.latestData;
|
|
31
|
-
dimensionField && viewData && data.push({
|
|
32
|
+
const dimensionField = array(getDimensionField(series)), viewData = null === (_a = series.getViewData()) || void 0 === _a ? void 0 : _a.latestData;
|
|
33
|
+
dimensionField && viewData && (isDiscreteAxis ? data.push({
|
|
34
|
+
series: series,
|
|
35
|
+
datum: viewData.filter((datum => {
|
|
36
|
+
var _a;
|
|
37
|
+
return (null === (_a = datum[dimensionField[0]]) || void 0 === _a ? void 0 : _a.toString()) === (null == value ? void 0 : value.toString());
|
|
38
|
+
}))
|
|
39
|
+
}) : data.push({
|
|
32
40
|
series: series,
|
|
33
41
|
datum: viewData.filter((datum => {
|
|
34
42
|
var _a;
|
|
35
|
-
return (null === (_a = datum[dimensionField]) || void 0 === _a ? void 0 : _a.toString()) === (null == value ? void 0 : value.toString());
|
|
43
|
+
return (null === (_a = datum[dimensionField[0]]) || void 0 === _a ? void 0 : _a.toString()) === (null == value ? void 0 : value.toString()) || isValid(datum[dimensionField[0]]) && isValid(datum[dimensionField[1]]) && value >= datum[dimensionField[0]] && value < datum[dimensionField[1]];
|
|
36
44
|
}))
|
|
37
|
-
});
|
|
45
|
+
}));
|
|
38
46
|
}
|
|
39
47
|
}
|
|
40
48
|
return data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/events/dimension/util/common.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/event/events/dimension/util/common.ts"],"names":[],"mappings":"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","file":"common.js","sourcesContent":["import type { ILayoutPoint } from '../../../../model/interface';\nimport type { IChart } from '../../../../chart/interface';\nimport type { IDimensionData, IDimensionInfo } from '../interface';\nimport { isNil, array, isValid } from '../../../../util';\nimport type { AxisComponent } from '../../../../component/axis/base-axis';\nimport type { CoordinateType } from '../../../../typings';\nimport { isDiscrete } from '@visactor/vscale';\n\nconst isInBound = (pos: ILayoutPoint, min: ILayoutPoint, max: ILayoutPoint): boolean =>\n pos.x >= min.x && pos.x <= max.x && pos.y >= min.y && pos.y <= max.y;\n\nexport const isInRegionBound = (chart: IChart, axis: AxisComponent, pos: ILayoutPoint) => {\n const regionList = chart.getRegionsInIds(array(axis.layoutBindRegionID));\n return regionList?.some(region => {\n const rect = region.getLayoutRect();\n const startPoint = region.getLayoutStartPoint();\n return isInBound(\n pos,\n { x: startPoint.x, y: startPoint.y },\n { x: rect.width + startPoint.x, y: rect.height + startPoint.y }\n );\n });\n};\n\nexport const isSameDimensionInfo = (a?: IDimensionInfo, b?: IDimensionInfo): boolean => {\n if (a === b) {\n return true;\n }\n if (isNil(a) || isNil(b)) {\n return false;\n }\n if (a.value !== b.value) {\n return false;\n }\n if (a.axis?.id !== b.axis?.id) {\n return false;\n }\n return true;\n};\n\n/** 给定维度项的值,获取对应维度数据 */\nexport const getDimensionData = (\n value: any,\n axis: AxisComponent,\n coordinate: CoordinateType,\n getDimensionField: (series: any) => string | string[]\n): IDimensionData[] => {\n const scale = axis.getScale();\n const isDiscreteAxis = isDiscrete(scale.type);\n\n const data: IDimensionData[] = [];\n const regions = axis.getRegions(); // TODO: 直接从轴里取系列\n for (const region of regions) {\n const seriesList = region.getSeries();\n for (const series of seriesList) {\n if (series.coordinate === coordinate) {\n const dimensionField = array(getDimensionField(series));\n const viewData = series.getViewData()?.latestData;\n if (dimensionField && viewData) {\n if (isDiscreteAxis) {\n data.push({\n series,\n datum: viewData.filter(\n (datum: any) => datum[dimensionField[0]]?.toString() === value?.toString() // 获取该维度项所对应的数据\n )\n });\n } else {\n data.push({\n series,\n datum: viewData.filter(\n (datum: any) =>\n datum[dimensionField[0]]?.toString() === value?.toString() ||\n (isValid(datum[dimensionField[0]]) &&\n isValid(datum[dimensionField[1]]) &&\n value >= datum[dimensionField[0]] &&\n value < datum[dimensionField[1]])\n )\n });\n }\n }\n }\n }\n }\n return data;\n};\n"]}
|
package/esm/event/interface.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import type { DimensionEventParams } from './events/dimension/interface';
|
|
|
8
8
|
import type { Datum, IPoint, StringOrNumber } from '../typings';
|
|
9
9
|
import type { ChartEvent, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant';
|
|
10
10
|
import type { SeriesType } from '../series/interface';
|
|
11
|
+
import type { TooltipEventParams } from '../component/tooltip/interface/event';
|
|
11
12
|
export type EventType = 'pointerdown' | 'pointerup' | 'pointerupoutside' | 'pointertap' | 'pointerover' | 'pointermove' | 'pointerenter' | 'pointerleave' | 'pointerout' | 'mousedown' | 'mouseup' | 'mouseupoutside' | 'rightdown' | 'rightup' | 'rightupoutside' | 'click' | 'dblclick' | 'mousemove' | 'mouseover' | 'mouseout' | 'mouseenter' | 'mouseleave' | 'wheel' | 'touchstart' | 'touchend' | 'touchendoutside' | 'touchmove' | 'touchcancel' | 'tap' | 'dragstart' | 'drag' | 'dragenter' | 'dragleave' | 'dragover' | 'dragend' | 'drop' | 'pan' | 'panstart' | 'panend' | 'press' | 'pressup' | 'pressend' | 'pinch' | 'pinchstart' | 'pinchend' | 'swipe' | keyof typeof ChartEvent | keyof typeof VGRAMMAR_HOOK_EVENT | string;
|
|
12
13
|
export type EventBubbleLevel = keyof typeof Event_Bubble_Level;
|
|
13
14
|
export type ComponentType = 'axis' | 'dataZoom' | 'indicator' | 'legend' | 'mapLabel' | 'markLine' | 'tooltip' | 'title';
|
|
@@ -122,6 +123,8 @@ export type EventParamsDefinition = {
|
|
|
122
123
|
pinchend: BaseEventParams;
|
|
123
124
|
swipe: BaseEventParams;
|
|
124
125
|
dimension: DimensionEventParams;
|
|
126
|
+
tooltipShow: TooltipEventParams;
|
|
127
|
+
tooltipHide: TooltipEventParams;
|
|
125
128
|
[key: string]: ExtendEventParam;
|
|
126
129
|
};
|
|
127
130
|
export interface IEventDispatcher {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { INode } from '@visactor/vrender';\nimport type { IElement } from '@visactor/vgrammar';\nimport type { IChart } from '../chart/interface';\nimport type { IModel } from '../model/interface';\nimport type { IMark, MarkType } from '../mark/interface';\nimport type { VChart } from '../core/vchart';\nimport type { DimensionEventParams } from './events/dimension/interface';\nimport type { Datum, IPoint, StringOrNumber } from '../typings';\nimport type { ChartEvent, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant';\nimport type { SeriesType } from '../series/interface';\n\nexport type EventType =\n | 'pointerdown'\n | 'pointerup'\n | 'pointerupoutside'\n | 'pointertap'\n | 'pointerover'\n | 'pointermove'\n | 'pointerenter'\n | 'pointerleave'\n | 'pointerout'\n | 'mousedown'\n | 'mouseup'\n | 'mouseupoutside'\n | 'rightdown'\n | 'rightup'\n | 'rightupoutside'\n | 'click'\n | 'dblclick'\n | 'mousemove'\n | 'mouseover'\n | 'mouseout'\n | 'mouseenter'\n | 'mouseleave'\n | 'wheel'\n | 'touchstart'\n | 'touchend'\n | 'touchendoutside'\n | 'touchmove'\n | 'touchcancel'\n | 'tap'\n | 'dragstart'\n | 'drag'\n | 'dragenter'\n | 'dragleave'\n | 'dragover'\n | 'dragend'\n | 'drop'\n | 'pan'\n | 'panstart'\n | 'panend'\n | 'press'\n | 'pressup'\n | 'pressend'\n | 'pinch'\n | 'pinchstart'\n | 'pinchend'\n | 'swipe'\n | keyof typeof ChartEvent\n | keyof typeof VGRAMMAR_HOOK_EVENT\n | string;\n\nexport type EventBubbleLevel = keyof typeof Event_Bubble_Level;\n\nexport type ComponentType =\n | 'axis'\n | 'dataZoom'\n | 'indicator'\n | 'legend'\n | 'mapLabel'\n | 'markLine'\n | 'tooltip'\n | 'title';\nexport type EventTargetType = MarkType | ComponentType | SeriesType;\n\nexport type EventSourceType = keyof typeof Event_Source_Type;\n\n/**\n * 事件 API 中的事件筛选配置\n */\nexport type EventQuery = {\n /**\n * 事件的冒泡层级配置,其中 model 指的是图表的内部模型,包括 region、series 以及 component\n */\n level?: EventBubbleLevel;\n /**\n * 事件来源配置。\n * - `window`: window 事件\n * - `chart`: 图表事件\n */\n source?: EventSourceType;\n\n /**\n * vrender 图形节点名称\n */\n nodeName?: string;\n /**\n * mark 图元名称\n */\n markName?: string;\n /**\n * 仅在 level 为 'mark' 或者 'model' 的场景下使用,用于筛选 mark 类型或者图表组成元素模型类型\n */\n type?: EventTargetType;\n /**\n * 用户在 spec 上配置的 id\n */\n id?: StringOrNumber;\n /**\n * 自定义过滤函数\n * @param params\n * @returns\n */\n filter?: (params: Partial<BaseEventParams>) => boolean;\n\n throttle?: number;\n debounce?: number;\n\n consume?: boolean;\n};\n\nexport type EventParams = {\n /**\n * 事件对象\n */\n event?: SuperEvent;\n /**\n * 供不同的事件用于存储期望携带的数据\n */\n value?: any;\n /**\n * 事件来源的 mark\n */\n mark?: IMark;\n /**\n * 事件来源的 model\n */\n model?: IModel;\n /**\n * 事件来源的 chart\n */\n chart?: IChart;\n /**\n * 事件拾取到的图元的数据\n */\n datum?: Datum;\n /**\n * 拾取到的图形节点\n */\n node?: INode;\n};\n\ntype SuperEvent = Event & {\n [key: string]: any;\n};\n\nexport type BaseEventParams = EventParams & {\n /**\n * 事件对象\n */\n event: SuperEvent;\n item: IElement;\n datum: Datum;\n source: EventSourceType;\n itemMap: Map<string, any>;\n};\n\nexport type EventCallback<Params extends EventParams> = (params: Params) => boolean | void;\n\n/**\n * 内部事件分发中所应用的事件筛选配置\n */\nexport type EventFilter = {\n source: EventSourceType;\n level: EventBubbleLevel;\n type: string | null;\n markName: string | null;\n nodeName: string | null;\n userId: StringOrNumber | null;\n filter: (params: Partial<BaseEventParams>) => boolean | null;\n};\n\nexport type EventHandler<Params extends EventParams> = {\n callback: EventCallback<Params>;\n query: EventQuery | null;\n // 如果有 debounce/throttle 配置则需要封装原始回调函数\n wrappedCallback?: EventCallback<Params>;\n // 转换后的事件筛选配置\n filter?: EventFilter;\n};\n\nexport type ExtendEventParam = EventParams & {\n event?: Event;\n item?: any;\n datum?: Datum;\n source?: EventSourceType;\n itemMap?: Map<string, any>;\n};\n\nexport type PanEventParam = ExtendEventParam & {\n // x/y方向上的偏移值\n delta: [number, number];\n};\n\nexport type ZoomEventParam = ExtendEventParam & {\n // 缩放值\n scale: number;\n // 缩放中心\n scaleCenter: IPoint;\n};\n\nexport type EventParamsDefinition = {\n // 基础事件回调参数\n pointerdown: BaseEventParams;\n pointerup: BaseEventParams;\n pointerupoutside: BaseEventParams;\n pointertap: BaseEventParams;\n pointerover: BaseEventParams;\n pointermove: BaseEventParams;\n pointerenter: BaseEventParams;\n pointerleave: BaseEventParams;\n pointerout: BaseEventParams;\n mousedown: BaseEventParams;\n mouseup: BaseEventParams;\n mouseupoutside: BaseEventParams;\n rightdown: BaseEventParams;\n rightup: BaseEventParams;\n rightupoutside: BaseEventParams;\n click: BaseEventParams;\n dblclick: BaseEventParams;\n mousemove: BaseEventParams;\n mouseover: BaseEventParams;\n mouseout: BaseEventParams;\n mouseenter: BaseEventParams;\n mouseleave: BaseEventParams;\n wheel: BaseEventParams;\n touchstart: BaseEventParams;\n touchend: BaseEventParams;\n touchendoutside: BaseEventParams;\n touchmove: BaseEventParams;\n touchcancel: BaseEventParams;\n\n dragstart: BaseEventParams;\n drag: BaseEventParams;\n dragenter: BaseEventParams;\n dragleave: BaseEventParams;\n dragover: BaseEventParams;\n dragend: BaseEventParams;\n drop: BaseEventParams;\n\n tap: BaseEventParams;\n pan: BaseEventParams;\n panstart: BaseEventParams;\n panend: BaseEventParams;\n press: BaseEventParams;\n pressup: BaseEventParams;\n pressend: BaseEventParams;\n pinch: BaseEventParams;\n pinchstart: BaseEventParams;\n pinchend: BaseEventParams;\n swipe: BaseEventParams;\n\n // VChart 内置的扩展组合事件\n dimension: DimensionEventParams;\n\n // 扩展事件参数\n [key: string]: ExtendEventParam;\n};\n\nexport interface IEventDispatcher {\n globalInstance: VChart;\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => this;\n unregister: <Evt extends EventType>(eType: Evt, handler?: EventHandler<EventParamsDefinition[Evt]>) => this;\n dispatch: <Evt extends EventType>(eType: Evt, params?: EventParamsDefinition[Evt], level?: EventBubbleLevel) => this;\n release: () => void;\n}\n\nexport interface IEvent {\n on: (<Evt extends EventType>(eType: Evt, callback: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n off: (<Evt extends EventType>(eType: Evt, callback?: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n emit: <Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel) => void;\n release: () => void;\n\n getComposedEventMap: () => Map<EventCallback<EventParams>, { eventType: EventType; event: IComposedEvent }>;\n}\n\nexport interface IComposedEvent {\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => void;\n unregister: () => void;\n dispatch: (v: unknown, opt: unknown) => unknown;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/event/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { INode } from '@visactor/vrender';\nimport type { IElement } from '@visactor/vgrammar';\nimport type { IChart } from '../chart/interface';\nimport type { IModel } from '../model/interface';\nimport type { IMark, MarkType } from '../mark/interface';\nimport type { VChart } from '../core/vchart';\nimport type { DimensionEventParams } from './events/dimension/interface';\nimport type { Datum, IPoint, StringOrNumber } from '../typings';\nimport type { ChartEvent, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant';\nimport type { SeriesType } from '../series/interface';\nimport type { TooltipEventParams } from '../component/tooltip/interface/event';\n\nexport type EventType =\n | 'pointerdown'\n | 'pointerup'\n | 'pointerupoutside'\n | 'pointertap'\n | 'pointerover'\n | 'pointermove'\n | 'pointerenter'\n | 'pointerleave'\n | 'pointerout'\n | 'mousedown'\n | 'mouseup'\n | 'mouseupoutside'\n | 'rightdown'\n | 'rightup'\n | 'rightupoutside'\n | 'click'\n | 'dblclick'\n | 'mousemove'\n | 'mouseover'\n | 'mouseout'\n | 'mouseenter'\n | 'mouseleave'\n | 'wheel'\n | 'touchstart'\n | 'touchend'\n | 'touchendoutside'\n | 'touchmove'\n | 'touchcancel'\n | 'tap'\n | 'dragstart'\n | 'drag'\n | 'dragenter'\n | 'dragleave'\n | 'dragover'\n | 'dragend'\n | 'drop'\n | 'pan'\n | 'panstart'\n | 'panend'\n | 'press'\n | 'pressup'\n | 'pressend'\n | 'pinch'\n | 'pinchstart'\n | 'pinchend'\n | 'swipe'\n | keyof typeof ChartEvent\n | keyof typeof VGRAMMAR_HOOK_EVENT\n | string;\n\nexport type EventBubbleLevel = keyof typeof Event_Bubble_Level;\n\nexport type ComponentType =\n | 'axis'\n | 'dataZoom'\n | 'indicator'\n | 'legend'\n | 'mapLabel'\n | 'markLine'\n | 'tooltip'\n | 'title';\nexport type EventTargetType = MarkType | ComponentType | SeriesType;\n\nexport type EventSourceType = keyof typeof Event_Source_Type;\n\n/**\n * 事件 API 中的事件筛选配置\n */\nexport type EventQuery = {\n /**\n * 事件的冒泡层级配置,其中 model 指的是图表的内部模型,包括 region、series 以及 component\n */\n level?: EventBubbleLevel;\n /**\n * 事件来源配置。\n * - `window`: window 事件\n * - `chart`: 图表事件\n */\n source?: EventSourceType;\n\n /**\n * vrender 图形节点名称\n */\n nodeName?: string;\n /**\n * mark 图元名称\n */\n markName?: string;\n /**\n * 仅在 level 为 'mark' 或者 'model' 的场景下使用,用于筛选 mark 类型或者图表组成元素模型类型\n */\n type?: EventTargetType;\n /**\n * 用户在 spec 上配置的 id\n */\n id?: StringOrNumber;\n /**\n * 自定义过滤函数\n * @param params\n * @returns\n */\n filter?: (params: Partial<BaseEventParams>) => boolean;\n\n throttle?: number;\n debounce?: number;\n\n consume?: boolean;\n};\n\nexport type EventParams = {\n /**\n * 事件对象\n */\n event?: SuperEvent;\n /**\n * 供不同的事件用于存储期望携带的数据\n */\n value?: any;\n /**\n * 事件来源的 mark\n */\n mark?: IMark;\n /**\n * 事件来源的 model\n */\n model?: IModel;\n /**\n * 事件来源的 chart\n */\n chart?: IChart;\n /**\n * 事件拾取到的图元的数据\n */\n datum?: Datum;\n /**\n * 拾取到的图形节点\n */\n node?: INode;\n};\n\ntype SuperEvent = Event & {\n [key: string]: any;\n};\n\nexport type BaseEventParams = EventParams & {\n /**\n * 事件对象\n */\n event: SuperEvent;\n item: IElement;\n datum: Datum;\n source: EventSourceType;\n itemMap: Map<string, any>;\n};\n\nexport type EventCallback<Params extends EventParams> = (params: Params) => boolean | void;\n\n/**\n * 内部事件分发中所应用的事件筛选配置\n */\nexport type EventFilter = {\n source: EventSourceType;\n level: EventBubbleLevel;\n type: string | null;\n markName: string | null;\n nodeName: string | null;\n userId: StringOrNumber | null;\n filter: (params: Partial<BaseEventParams>) => boolean | null;\n};\n\nexport type EventHandler<Params extends EventParams> = {\n callback: EventCallback<Params>;\n query: EventQuery | null;\n // 如果有 debounce/throttle 配置则需要封装原始回调函数\n wrappedCallback?: EventCallback<Params>;\n // 转换后的事件筛选配置\n filter?: EventFilter;\n};\n\nexport type ExtendEventParam = EventParams & {\n event?: Event;\n item?: any;\n datum?: Datum;\n source?: EventSourceType;\n itemMap?: Map<string, any>;\n};\n\nexport type PanEventParam = ExtendEventParam & {\n // x/y方向上的偏移值\n delta: [number, number];\n};\n\nexport type ZoomEventParam = ExtendEventParam & {\n // 缩放值\n scale: number;\n // 缩放中心\n scaleCenter: IPoint;\n};\n\nexport type EventParamsDefinition = {\n // 基础事件回调参数\n pointerdown: BaseEventParams;\n pointerup: BaseEventParams;\n pointerupoutside: BaseEventParams;\n pointertap: BaseEventParams;\n pointerover: BaseEventParams;\n pointermove: BaseEventParams;\n pointerenter: BaseEventParams;\n pointerleave: BaseEventParams;\n pointerout: BaseEventParams;\n mousedown: BaseEventParams;\n mouseup: BaseEventParams;\n mouseupoutside: BaseEventParams;\n rightdown: BaseEventParams;\n rightup: BaseEventParams;\n rightupoutside: BaseEventParams;\n click: BaseEventParams;\n dblclick: BaseEventParams;\n mousemove: BaseEventParams;\n mouseover: BaseEventParams;\n mouseout: BaseEventParams;\n mouseenter: BaseEventParams;\n mouseleave: BaseEventParams;\n wheel: BaseEventParams;\n touchstart: BaseEventParams;\n touchend: BaseEventParams;\n touchendoutside: BaseEventParams;\n touchmove: BaseEventParams;\n touchcancel: BaseEventParams;\n\n dragstart: BaseEventParams;\n drag: BaseEventParams;\n dragenter: BaseEventParams;\n dragleave: BaseEventParams;\n dragover: BaseEventParams;\n dragend: BaseEventParams;\n drop: BaseEventParams;\n\n tap: BaseEventParams;\n pan: BaseEventParams;\n panstart: BaseEventParams;\n panend: BaseEventParams;\n press: BaseEventParams;\n pressup: BaseEventParams;\n pressend: BaseEventParams;\n pinch: BaseEventParams;\n pinchstart: BaseEventParams;\n pinchend: BaseEventParams;\n swipe: BaseEventParams;\n\n // VChart 内置的扩展组合事件\n dimension: DimensionEventParams;\n tooltipShow: TooltipEventParams;\n tooltipHide: TooltipEventParams;\n\n // 扩展事件参数\n [key: string]: ExtendEventParam;\n};\n\nexport interface IEventDispatcher {\n globalInstance: VChart;\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => this;\n unregister: <Evt extends EventType>(eType: Evt, handler?: EventHandler<EventParamsDefinition[Evt]>) => this;\n dispatch: <Evt extends EventType>(eType: Evt, params?: EventParamsDefinition[Evt], level?: EventBubbleLevel) => this;\n release: () => void;\n}\n\nexport interface IEvent {\n on: (<Evt extends EventType>(eType: Evt, callback: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n off: (<Evt extends EventType>(eType: Evt, callback?: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n emit: <Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel) => void;\n release: () => void;\n\n getComposedEventMap: () => Map<EventCallback<EventParams>, { eventType: EventType; event: IComposedEvent }>;\n}\n\nexport interface IComposedEvent {\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => void;\n unregister: () => void;\n dispatch: (v: unknown, opt: unknown) => unknown;\n}\n"]}
|
package/esm/model/interface.d.ts
CHANGED
|
@@ -56,8 +56,6 @@ export interface ILayoutItem {
|
|
|
56
56
|
getLayoutStartPoint: () => ILayoutPoint;
|
|
57
57
|
getLayoutRect: () => ILayoutRect;
|
|
58
58
|
getLastComputeOutBounds: () => IBoundsLike;
|
|
59
|
-
getAttributeTag: () => boolean;
|
|
60
|
-
setAttributeTag: (tag: boolean) => boolean;
|
|
61
59
|
setLayoutRect: (rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRectLevel>) => void;
|
|
62
60
|
computeBoundsInRect: (rect: ILayoutRect) => ILayoutRect;
|
|
63
61
|
setLayoutStartPosition: (pos: Partial<IPoint>) => void;
|
|
@@ -123,8 +121,6 @@ export interface IModel extends ICompilable, ILayoutItem {
|
|
|
123
121
|
readonly state: ModelStateManager;
|
|
124
122
|
getState: () => ModelStateManager['_stateMap'];
|
|
125
123
|
coordinate?: CoordinateType;
|
|
126
|
-
getAttributeTag: () => boolean;
|
|
127
|
-
setAttributeTag: (tag: boolean) => boolean;
|
|
128
124
|
getOption: () => IModelOption;
|
|
129
125
|
getMarks: () => IMark[];
|
|
130
126
|
getMarkNameMap: () => Record<string, IMark>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/model/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IBoundsLike } from '@visactor/vutils';\nimport type { DataSet } from '@visactor/vdataset';\nimport type { IEvent, IEventDispatcher } from '../event/interface';\nimport type { IMark, IMarkRaw, IMarkStyle, MarkTypeEnum } from '../mark/interface';\nimport type { RenderMode } from '../typings/spec/common';\nimport type { VChart } from '../vchart-all';\nimport type { IData, IElement, IMark as IVGrammarMark } from '@visactor/vgrammar';\nimport type {\n IOrientType,\n IPoint,\n IGroupMarkSpec,\n ConvertToMarkStyleSpec,\n CoordinateType,\n ICommonSpec,\n IRect,\n StringOrNumber\n} from '../typings';\nimport type { ITheme } from '../theme';\nimport type { StateValueType } from '../typings/spec';\nimport type { ITooltipHelper } from './tooltip-helper';\nimport type { ModelStateManager } from './model-state-manager';\nimport type { ICompilable, ICompilableInitOption } from '../compile/interface';\nimport type { ICompilableData } from '../compile/data';\nimport type { IGlobalScale } from '../scale/interface';\nimport type { IChart } from '../chart/interface';\n\nexport type ILayoutNumber = number | IPercent | ((layoutRect: ILayoutRect) => number);\n\nexport interface ILayoutPoint {\n x: number;\n y: number;\n}\n\nexport interface ILayoutRectLevel {\n width: number;\n height: number;\n}\nexport interface ILayoutRect {\n width: number;\n height: number;\n}\n\nexport type IPercent = `${number}%`;\n\nexport type ILayoutPercent = IPercent | number;\n\n/**\n * 相对布局和绝对布局\n * 在相对布局结束后进行二次的绝对布局\n * 绝对布局会只根据 chart 进行相对处理\n */\n\ntype ILayoutType = 'region-relative' | 'region' | 'normal' | 'absolute' | 'normal-inline';\n\nexport type ILayoutOrientPadding = {\n left?: ILayoutNumber;\n right?: ILayoutNumber;\n top?: ILayoutNumber;\n bottom?: ILayoutNumber;\n};\n\n/** 布局 padding的配置 */\nexport type ILayoutPaddingSpec = ILayoutOrientPadding | ILayoutNumber | ILayoutNumber[];\n\n/**\n * 因为这些元素都会继承到各个模块,所以这里统一有前缀避免语意冲突\n */\nexport interface ILayoutItem {\n /**\n * 标记这个布局Item的方向(left->right, right->left, top->bottom, bottom->top)\n */\n directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n layoutClip: boolean;\n layoutType: ILayoutType;\n layoutBindRegionID: number | number[];\n layoutOrient: IOrientType;\n\n layoutPaddingLeft: number;\n layoutPaddingTop: number;\n layoutPaddingRight: number;\n layoutPaddingBottom: number;\n\n layoutOffsetX: number;\n layoutOffsetY: number;\n\n // 越大越先处理\n layoutLevel: number;\n\n layoutZIndex: number;\n chartLayoutRect: ILayoutRect;\n\n /** 是否自动缩进 */\n getAutoIndent: () => boolean;\n getLayoutStartPoint: () => ILayoutPoint;\n getLayoutRect: () => ILayoutRect;\n getLastComputeOutBounds: () => IBoundsLike;\n\n
|
|
1
|
+
{"version":3,"sources":["../src/model/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IBoundsLike } from '@visactor/vutils';\nimport type { DataSet } from '@visactor/vdataset';\nimport type { IEvent, IEventDispatcher } from '../event/interface';\nimport type { IMark, IMarkRaw, IMarkStyle, MarkTypeEnum } from '../mark/interface';\nimport type { RenderMode } from '../typings/spec/common';\nimport type { VChart } from '../vchart-all';\nimport type { IData, IElement, IMark as IVGrammarMark } from '@visactor/vgrammar';\nimport type {\n IOrientType,\n IPoint,\n IGroupMarkSpec,\n ConvertToMarkStyleSpec,\n CoordinateType,\n ICommonSpec,\n IRect,\n StringOrNumber\n} from '../typings';\nimport type { ITheme } from '../theme';\nimport type { StateValueType } from '../typings/spec';\nimport type { ITooltipHelper } from './tooltip-helper';\nimport type { ModelStateManager } from './model-state-manager';\nimport type { ICompilable, ICompilableInitOption } from '../compile/interface';\nimport type { ICompilableData } from '../compile/data';\nimport type { IGlobalScale } from '../scale/interface';\nimport type { IChart } from '../chart/interface';\n\nexport type ILayoutNumber = number | IPercent | ((layoutRect: ILayoutRect) => number);\n\nexport interface ILayoutPoint {\n x: number;\n y: number;\n}\n\nexport interface ILayoutRectLevel {\n width: number;\n height: number;\n}\nexport interface ILayoutRect {\n width: number;\n height: number;\n}\n\nexport type IPercent = `${number}%`;\n\nexport type ILayoutPercent = IPercent | number;\n\n/**\n * 相对布局和绝对布局\n * 在相对布局结束后进行二次的绝对布局\n * 绝对布局会只根据 chart 进行相对处理\n */\n\ntype ILayoutType = 'region-relative' | 'region' | 'normal' | 'absolute' | 'normal-inline';\n\nexport type ILayoutOrientPadding = {\n left?: ILayoutNumber;\n right?: ILayoutNumber;\n top?: ILayoutNumber;\n bottom?: ILayoutNumber;\n};\n\n/** 布局 padding的配置 */\nexport type ILayoutPaddingSpec = ILayoutOrientPadding | ILayoutNumber | ILayoutNumber[];\n\n/**\n * 因为这些元素都会继承到各个模块,所以这里统一有前缀避免语意冲突\n */\nexport interface ILayoutItem {\n /**\n * 标记这个布局Item的方向(left->right, right->left, top->bottom, bottom->top)\n */\n directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n layoutClip: boolean;\n layoutType: ILayoutType;\n layoutBindRegionID: number | number[];\n layoutOrient: IOrientType;\n\n layoutPaddingLeft: number;\n layoutPaddingTop: number;\n layoutPaddingRight: number;\n layoutPaddingBottom: number;\n\n layoutOffsetX: number;\n layoutOffsetY: number;\n\n // 越大越先处理\n layoutLevel: number;\n\n layoutZIndex: number;\n chartLayoutRect: ILayoutRect;\n\n /** 是否自动缩进 */\n getAutoIndent: () => boolean;\n getLayoutStartPoint: () => ILayoutPoint;\n getLayoutRect: () => ILayoutRect;\n getLastComputeOutBounds: () => IBoundsLike;\n\n /**\n * 更新元素布局的 layoutRect 大小,用来更新指定布局空间\n */\n setLayoutRect: (rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRectLevel>) => void;\n /**\n * 基于元素内部逻辑计算占位空间,rect表示可用空间\n */\n computeBoundsInRect: (rect: ILayoutRect) => ILayoutRect;\n /**\n * 更新元素布局的起始点位置\n */\n setLayoutStartPosition: (pos: Partial<IPoint>) => void;\n /**\n * 更新绝对布局元素的位置信息\n */\n absoluteLayoutInRect: (rect: IRect) => void;\n /**\n * 元素内部布局信息更新\n */\n updateLayoutAttribute: () => void;\n}\n\nexport interface ILayoutItemSpec {\n /** 当前模块的布局类型,配置为 absolute 的话,当前元素会以图表左上角为原点进行绝对布局 */\n layoutType?: ILayoutType;\n /**\n * 布局顺序等级,等级越大的,越优先布局\n * 比如顶部同时有标题和图例的场景,期望标题先放在顶部,然后放置图例。\n */\n layoutLevel?: number;\n\n // 基础的布局配置\n /** 模块布局位置 */\n orient?: IOrientType;\n /** 模块的布局间距 */\n padding?: ILayoutPaddingSpec;\n /** 模块的布局大小:宽度 */\n width?: ILayoutNumber;\n /** 模块的布局最大宽度 */\n maxWidth?: ILayoutNumber;\n /** 模块的布局最小宽度 */\n minWidth?: ILayoutNumber;\n /** 模块的布局大小:高度 */\n height?: ILayoutNumber;\n /** 模块的布局最大高度 */\n maxHeight?: ILayoutNumber;\n /** 模块的布局最小高度 */\n minHeight?: ILayoutNumber;\n /** 模块的布局位置偏移:X */\n offsetX?: ILayoutNumber;\n /** 模块的布局位置偏移:Y */\n offsetY?: ILayoutNumber;\n\n /** 模块的展示层级,当2个模块重叠时,层级较大的展示在上方 */\n zIndex?: number;\n /** 模块是否裁剪超出布局区域外的绘图内容 */\n clip?: boolean;\n\n // 绝对布局下的对齐设置\n\n /** 模块绝对布局下,与图表左侧的距离。注意仅在 layoutType === 'absolute' 时生效 */\n left?: ILayoutNumber;\n /** 模块绝对布局下,与图表右侧的距离。注意仅在 layoutType === 'absolute' 时生效 */\n right?: ILayoutNumber;\n /** 模块绝对布局下,与图表顶部的距离。注意仅在 layoutType === 'absolute' 时生效 */\n top?: ILayoutNumber;\n /** 模块绝对布局下,与图表底部的距离。注意仅在 layoutType === 'absolute' 时生效 */\n bottom?: ILayoutNumber;\n /** 模块绝对布局下,元素将放置在图表的正中间。注意仅在 layoutType === 'absolute' 时生效,同时将忽略 padding 属性 */\n center?: boolean;\n}\n\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelInitOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelLayoutOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelEvaluateOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelRenderOption {}\n\nexport interface IEffect {\n [key: string]: (e?: any) => any;\n}\n\nexport interface IMarkTreeGroup extends Partial<IMarkStyle<IGroupMarkSpec>> {\n // 必须要有名字\n type: 'group';\n name: string;\n marks: (IMarkTreeGroup | IMark)[];\n // TODO: 这里要不要支持复杂场景,有图形组合的场景,用自定义mark?\n // from?: IData;\n}\n\nexport type IMarkTree = IMarkTreeGroup | IMark | (IMarkTreeGroup | IMark)[];\n\nexport interface IUpdateSpecResult {\n change: boolean;\n reMake: boolean;\n reRender?: boolean;\n reSize?: boolean;\n // TODO: compile 的判断应不应该出现在这里?\n reCompile?: boolean;\n}\n\nexport interface IModelProduct {\n srData: IData;\n}\n\nexport interface IModel extends ICompilable, ILayoutItem {\n readonly modelType: string;\n readonly type: string;\n readonly specKey: string;\n\n readonly id: number;\n\n readonly userId?: StringOrNumber;\n\n // 事件\n readonly event: IEvent;\n\n // 副作用\n readonly effect: IEffect;\n\n // state如果绑定到mark的更新?\n // 组件的 mark 要怎么样描述,才能正确的基于组件状态进行样式更新?\n // 方案1: 组件的 state 关联到 mark 的状态。\n // 方案2: 组件设置 mark 属性,mark自身属性变化时,自己去更新。\n // react state\n readonly state: ModelStateManager;\n getState: () => ModelStateManager['_stateMap'];\n\n coordinate?: CoordinateType;\n\n // 初始化参数\n getOption: () => IModelOption;\n\n getMarks: () => IMark[];\n getMarkNameMap: () => Record<string, IMark>;\n getMarkInfoList: () => IModelMarkInfo[];\n\n getData: () => ICompilableData;\n\n getChart: () => IChart;\n\n //生命周期\n // 创建模块自身内容,设置自身属性\n created: () => void;\n // 用来处理与其他图表模块的联系\n init: (option: IModelInitOption) => void;\n // updateSpec 或者切换主题后,根据新 spec 执行的初始化过程\n reInit: (theme?: any) => void;\n\n onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: IModelLayoutOption) => void;\n onLayoutEnd: (ctx: IModelLayoutOption) => void;\n onEvaluateEnd: (ctx: IModelEvaluateOption) => void;\n onRender: (ctx: IModelRenderOption) => void;\n onDataUpdate: () => void;\n\n updateSpec: (spec: any) => IUpdateSpecResult;\n getSpec?: () => any;\n getSpecIndex: () => number;\n\n setCurrentTheme: (theme: any, noRender?: boolean) => void;\n\n setMarkStyle: <T extends ICommonSpec>(\n mark?: IMarkRaw<T>,\n style?: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>,\n state?: StateValueType,\n level?: number\n ) => void;\n\n initMarkStyleWithSpec: (mark?: IMark, spec?: any, key?: string) => void;\n\n // tooltip\n tooltipHelper: ITooltipHelper;\n\n /** 绑定场景结点 */\n bindSceneNode: (node: IElement) => void;\n /** 获取场景结点 */\n getSceneNodes: () => IElement[];\n /** 获取场景结点对应 mark */\n getSceneNodeMarks: () => IVGrammarMark[];\n}\n\nexport interface IModelOption extends ICompilableInitOption {\n eventDispatcher: IEventDispatcher;\n dataSet: DataSet;\n map: Map<StringOrNumber, IModel | IMark>;\n mode: RenderMode;\n globalInstance: VChart;\n specIndex?: number;\n specKey?: string;\n\n getTheme?: () => ITheme;\n\n getChartLayoutRect: () => IRect;\n getChartViewRect: () => ILayoutRect;\n\n getChart: () => IChart;\n\n globalScale: IGlobalScale;\n animation: boolean;\n /**\n * 错误消息回调函数\n */\n onError: (...args: any[]) => void;\n}\n\nexport interface IModelConstructor {\n new (ctx: IModelOption): IModel;\n}\n\nexport type ILayoutModelState = ModelStateManager['_stateMap'];\n\n// TODO: 补充model共有配置\nexport type IModelSpec = ILayoutItemSpec & { id?: StringOrNumber };\n\nexport interface IModelMarkInfo {\n /** mark 类型 */\n type: MarkTypeEnum | string | (MarkTypeEnum | string)[];\n /** mark 名称 */\n name: string;\n}\n"]}
|
|
@@ -32,9 +32,6 @@ export declare class LayoutItem extends CompilableBase implements ILayoutItem {
|
|
|
32
32
|
layoutPaddingBottom: ILayoutItem['layoutPaddingBottom'];
|
|
33
33
|
layoutOffsetX: ILayoutItem['layoutOffsetX'];
|
|
34
34
|
layoutOffsetY: ILayoutItem['layoutOffsetY'];
|
|
35
|
-
protected _attributeTag: boolean;
|
|
36
|
-
getAttributeTag(): boolean;
|
|
37
|
-
setAttributeTag(tag: boolean): boolean;
|
|
38
35
|
layoutLevel: ILayoutItem['layoutLevel'];
|
|
39
36
|
layoutZIndex: ILayoutItem['layoutZIndex'];
|
|
40
37
|
chartLayoutRect: ILayoutRect;
|
package/esm/model/layout-item.js
CHANGED
|
@@ -26,8 +26,7 @@ export class LayoutItem extends CompilableBase {
|
|
|
26
26
|
}, this._forceLayoutTag = !1, this.getLayoutRect = () => this._layoutRect, this.layoutType = "normal",
|
|
27
27
|
this._layoutOrient = "left", this.layoutPaddingLeft = 0, this.layoutPaddingTop = 0,
|
|
28
28
|
this.layoutPaddingRight = 0, this.layoutPaddingBottom = 0, this.layoutOffsetX = 0,
|
|
29
|
-
this.layoutOffsetY = 0, this.
|
|
30
|
-
this.layoutZIndex = 0;
|
|
29
|
+
this.layoutOffsetY = 0, this.layoutLevel = LayoutLevel.Region, this.layoutZIndex = 0;
|
|
31
30
|
}
|
|
32
31
|
getSpec() {
|
|
33
32
|
return this._spec;
|
|
@@ -47,12 +46,6 @@ export class LayoutItem extends CompilableBase {
|
|
|
47
46
|
set layoutOrient(v) {
|
|
48
47
|
this._layoutOrient = v;
|
|
49
48
|
}
|
|
50
|
-
getAttributeTag() {
|
|
51
|
-
return this._attributeTag;
|
|
52
|
-
}
|
|
53
|
-
setAttributeTag(tag) {
|
|
54
|
-
return this._attributeTag = tag, this._attributeTag;
|
|
55
|
-
}
|
|
56
49
|
_setLayoutAttributeFromSpec(spec, chartViewRect) {
|
|
57
50
|
if (!1 !== this._spec.visible) {
|
|
58
51
|
const padding = normalizeLayoutPaddingSpec(spec.padding), paddingValue = calcPadding(padding, chartViewRect, chartViewRect);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/model/layout-item.ts"],"names":[],"mappings":"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","file":"layout-item.js","sourcesContent":["import type { IPadding, IRect, IPoint } from '../typings';\nimport type { IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isNil } from '@visactor/vutils';\nimport { isValidNumber, calcLayoutNumber, calcPadding, normalizeLayoutPaddingSpec, boundsInRect } from '../util';\nimport { LayoutLevel, DEFAULT_LAYOUT_RECT_LEVEL, USER_LAYOUT_RECT_LEVEL } from '../constant';\n\nimport type { ILayoutItem, ILayoutItemSpec, ILayoutPoint, ILayoutRect, ILayoutRectLevel } from './interface';\nimport { CompilableBase } from '../compile/compilable-base';\n\nexport class LayoutItem extends CompilableBase implements ILayoutItem {\n protected _spec: ILayoutItemSpec;\n getSpec(): any {\n return this._spec;\n }\n\n layoutClip: boolean = false;\n\n protected _autoIndent: boolean = true;\n getAutoIndent(): boolean {\n return this._autoIndent;\n }\n\n private _layoutStartPoint: ILayoutPoint = {\n x: 0,\n y: 0\n };\n\n getLayoutStartPoint(): ILayoutPoint {\n return this._layoutStartPoint;\n }\n\n private _layoutRect: ILayoutRect = { width: 0, height: 0 };\n\n private _minWidth: number | null = null;\n private _maxWidth: number | null = null;\n private _minHeight: number | null = null;\n private _maxHeight: number | null = null;\n\n // 处理用户和逻辑的优先级覆盖,让用户也可以设置 rect\n protected _layoutRectLevelMap: ILayoutRectLevel = {\n width: DEFAULT_LAYOUT_RECT_LEVEL,\n height: DEFAULT_LAYOUT_RECT_LEVEL\n };\n /** for layout diff */\n protected _lastComputeRect: ILayoutRect = null;\n protected _lastComputeOutBounds: IBoundsLike = { x1: 0, x2: 0, y1: 0, y2: 0 };\n getLastComputeOutBounds(): IBoundsLike {\n return this._lastComputeOutBounds;\n }\n protected _forceLayoutTag: boolean = false;\n\n getLayoutRect: () => ILayoutRect = () => {\n return this._layoutRect;\n };\n\n layoutType: ILayoutItem['layoutType'] = 'normal';\n\n layoutBindRegionID!: ILayoutItem['layoutBindRegionID'];\n\n _layoutOrient: ILayoutItem['layoutOrient'] = 'left';\n get layoutOrient() {\n return this._layoutOrient;\n }\n set layoutOrient(v: ILayoutItem['layoutOrient']) {\n this._layoutOrient = v;\n }\n layoutPaddingLeft: ILayoutItem['layoutPaddingLeft'] = 0;\n layoutPaddingTop: ILayoutItem['layoutPaddingTop'] = 0;\n layoutPaddingRight: ILayoutItem['layoutPaddingRight'] = 0;\n layoutPaddingBottom: ILayoutItem['layoutPaddingBottom'] = 0;\n\n layoutOffsetX: ILayoutItem['layoutOffsetX'] = 0;\n layoutOffsetY: ILayoutItem['layoutOffsetY'] = 0;\n\n protected _attributeTag: boolean = true;\n getAttributeTag(): boolean {\n return this._attributeTag;\n }\n setAttributeTag(tag: boolean): boolean {\n this._attributeTag = tag;\n return this._attributeTag;\n }\n\n layoutLevel: ILayoutItem['layoutLevel'] = LayoutLevel.Region;\n\n // layoutAbsoluteLeft: ILayoutItem['layoutAbsoluteLeft'] = Number.NaN;\n // layoutAbsoluteTop: ILayoutItem['layoutAbsoluteTop'] = Number.NaN;\n // layoutAbsoluteRight: ILayoutItem['layoutAbsoluteRight'] = Number.NaN;\n // layoutAbsoluteBottom: ILayoutItem['layoutAbsoluteBottom'] = Number.NaN;\n layoutZIndex: ILayoutItem['layoutZIndex'] = 0;\n chartLayoutRect!: ILayoutRect;\n\n private _setLayoutAttributeFromSpec(spec: ILayoutItemSpec, chartViewRect: ILayoutRect) {\n if ((this._spec as unknown as any).visible !== false) {\n // 处理 user spec value to px;\n const padding = normalizeLayoutPaddingSpec(spec.padding);\n const paddingValue = calcPadding(padding, chartViewRect, chartViewRect);\n this.layoutPaddingLeft = paddingValue.left;\n this.layoutPaddingRight = paddingValue.right;\n this.layoutPaddingTop = paddingValue.top;\n this.layoutPaddingBottom = paddingValue.bottom;\n\n this._minHeight = isNil(spec.minHeight)\n ? null\n : calcLayoutNumber(spec.minHeight, chartViewRect.height, chartViewRect);\n this._maxHeight = isNil(spec.maxHeight)\n ? null\n : calcLayoutNumber(spec.maxHeight, chartViewRect.height, chartViewRect);\n this._minWidth = isNil(spec.minWidth)\n ? null\n : calcLayoutNumber(spec.minWidth, chartViewRect.width, chartViewRect);\n this._maxWidth = isNil(spec.maxWidth)\n ? null\n : calcLayoutNumber(spec.maxWidth, chartViewRect.width, chartViewRect);\n // 处理 user width\n if (spec.width) {\n this.setLayoutRect(\n {\n width: calcLayoutNumber(spec.width, chartViewRect.width, chartViewRect)\n },\n {\n width: USER_LAYOUT_RECT_LEVEL\n }\n );\n }\n if (spec.height) {\n this.setLayoutRect(\n {\n height: calcLayoutNumber(spec.height, chartViewRect.height, chartViewRect)\n },\n {\n height: USER_LAYOUT_RECT_LEVEL\n }\n );\n }\n\n // offset\n if (!isNil(spec.offsetX)) {\n this.layoutOffsetX = calcLayoutNumber(spec.offsetX, chartViewRect.width, chartViewRect);\n }\n if (!isNil(spec.offsetY)) {\n this.layoutOffsetY = calcLayoutNumber(spec.offsetY, chartViewRect.height, chartViewRect);\n }\n }\n }\n\n setAttrFromSpec(spec: ILayoutItemSpec, chartViewRect: ILayoutRect) {\n this.layoutType = spec.layoutType ?? this.layoutType;\n this.layoutLevel = spec.layoutLevel ?? this.layoutLevel;\n this.layoutOrient = spec.orient ?? this.layoutOrient;\n\n this._setLayoutAttributeFromSpec(spec, chartViewRect);\n\n this.layoutClip = spec.clip ?? this.layoutClip;\n this.layoutZIndex = spec.zIndex ?? this.layoutZIndex;\n }\n\n onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect, _ctx: any) {\n // 在 layoutStart 时重新计算 spec 中的布局属性值,确保 resize 后,这些值保持正确的px值。\n this._setLayoutAttributeFromSpec(this._spec, viewRect);\n }\n\n private _getAbsoluteSpecValue(layoutRect: ILayoutRect) {\n const result: IPadding = { top: null, bottom: null, left: null, right: null };\n ['top', 'bottom', 'left', 'right'].forEach(k => {\n if (!isNil(this._spec[k])) {\n result[k] = calcLayoutNumber(\n this._spec[k],\n k === 'top' || k === 'bottom' ? layoutRect.height : layoutRect.width,\n layoutRect\n );\n }\n });\n return result;\n }\n\n absoluteLayoutInRect(layoutRect: IRect) {\n const { top, bottom, left, right } = this._getAbsoluteSpecValue(layoutRect);\n\n // size first\n const layoutSize = {\n width: layoutRect.width - this.layoutPaddingLeft - this.layoutPaddingRight,\n height: layoutRect.height - this.layoutPaddingTop - this.layoutPaddingBottom\n };\n if (!isNil(left)) {\n layoutSize.width -= left;\n }\n if (!isNil(right)) {\n layoutSize.width -= right;\n }\n if (!isNil(top)) {\n layoutSize.height -= top;\n }\n if (!isNil(bottom)) {\n layoutSize.height -= bottom;\n }\n\n this.setLayoutRect(layoutSize);\n const { width, height } = this.computeBoundsInRect(this.getLayoutRect());\n this.setLayoutRect({ width, height });\n const pos = { x: layoutRect.x, y: layoutRect.y };\n if (this._spec.center === true) {\n pos.x = layoutRect.x + layoutRect.width * 0.5 - width * 0.5;\n pos.y = layoutRect.y + layoutRect.height * 0.5 - height * 0.5;\n } else {\n if (!isNil(left)) {\n pos.x = layoutRect.x + left + this.layoutPaddingLeft;\n } else if (!isNil(right)) {\n pos.x = layoutRect.x + layoutRect.width - this.layoutPaddingRight - right - width;\n }\n if (!isNil(top)) {\n pos.y = layoutRect.y + top + this.layoutPaddingTop;\n } else if (!isNil(bottom)) {\n pos.y = layoutRect.y + layoutRect.height - this.layoutPaddingBottom - bottom - height;\n }\n }\n\n this.setLayoutStartPosition(pos);\n }\n\n setLayoutStartPosition({ x, y }: Partial<IPoint>): void {\n if (isValidNumber(x)) {\n this._layoutStartPoint.x = x;\n }\n if (isValidNumber(y)) {\n this._layoutStartPoint.y = y;\n }\n }\n\n setLayoutRect({ width, height }: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRectLevel>) {\n if (isValidNumber(width) && (levelMap?.width ?? DEFAULT_LAYOUT_RECT_LEVEL) >= this._layoutRectLevelMap.width) {\n this._layoutRect.width = width;\n this._layoutRectLevelMap.width = levelMap?.width ?? DEFAULT_LAYOUT_RECT_LEVEL;\n }\n\n if (isValidNumber(height) && (levelMap?.height ?? DEFAULT_LAYOUT_RECT_LEVEL) >= this._layoutRectLevelMap.height) {\n this._layoutRect.height = height;\n this._layoutRectLevelMap.height = levelMap?.height ?? DEFAULT_LAYOUT_RECT_LEVEL;\n }\n\n this._setRectInSpec(this._layoutRect);\n }\n\n mergeLayoutRect({ width, height }: ILayoutRect): ILayoutRect {\n const rect = { width, height };\n if (this._layoutRectLevelMap.width > DEFAULT_LAYOUT_RECT_LEVEL) {\n rect.width = this._layoutRect.width;\n }\n if (this._layoutRectLevelMap.height > DEFAULT_LAYOUT_RECT_LEVEL) {\n rect.height = this._layoutRect.height;\n }\n return rect;\n }\n\n getOrientPosAttribute() {\n return this._layoutOrient === 'bottom' || this._layoutOrient === 'top' ? 'x' : 'y';\n }\n getOrientSizeAttribute() {\n return this._layoutOrient === 'bottom' || this._layoutOrient === 'top' ? 'width' : 'height';\n }\n\n protected changeBoundsBySetting(bounds: IBoundsLike): IBoundsLike {\n // 用户设置了布局元素宽高的场景下,内部布局结果的 bounds 不能直接作为图表布局bounds\n if (this._layoutRectLevelMap.width > DEFAULT_LAYOUT_RECT_LEVEL) {\n bounds.x2 = bounds.x1 + this._layoutRect.width;\n }\n if (this._layoutRectLevelMap.height > DEFAULT_LAYOUT_RECT_LEVEL) {\n bounds.y2 = bounds.y1 + this._layoutRect.height;\n }\n bounds.x1 -= this._layoutStartPoint.x;\n bounds.x2 -= this._layoutStartPoint.x;\n bounds.y1 -= this._layoutStartPoint.y;\n bounds.y2 -= this._layoutStartPoint.y;\n return bounds;\n }\n\n private _setRectInSpec(rect: ILayoutRect) {\n const result = { ...rect };\n if (this._layoutRectLevelMap.width < USER_LAYOUT_RECT_LEVEL) {\n if (!isNil(this._minWidth)) {\n result.width = Math.max(result.width, this._minWidth);\n }\n if (!isNil(this._maxWidth)) {\n result.width = Math.min(result.width, this._maxWidth);\n }\n } else {\n result.width = this._layoutRect.width;\n }\n\n if (this._layoutRectLevelMap.height < USER_LAYOUT_RECT_LEVEL) {\n if (!isNil(this._minHeight)) {\n result.height = Math.max(result.height, this._minHeight);\n }\n if (!isNil(this._maxHeight)) {\n result.height = Math.min(result.height, this._maxHeight);\n }\n } else {\n result.height = this._layoutRect.height;\n }\n return result;\n }\n\n computeBoundsInRect(rect: ILayoutRect): ILayoutRect {\n // 保留布局使用的rect\n this._lastComputeRect = rect;\n // 将布局空间限制到 spec 设置内\n // 避免操作到元素本身的 aabbbounds\n const bounds = { ...this.boundsInRect(this._setRectInSpec(rect), rect) };\n // 用户设置了布局元素宽高的场景下,内部布局结果的 bounds 不能直接作为图表布局bounds\n this.changeBoundsBySetting(bounds);\n // 保留当前模块的布局超出内容,用来处理自动缩进\n if (this._autoIndent) {\n this._lastComputeOutBounds.x1 = Math.ceil(-bounds.x1);\n this._lastComputeOutBounds.x2 = Math.ceil(bounds.x2 - rect.width);\n this._lastComputeOutBounds.y1 = Math.ceil(-bounds.y1);\n this._lastComputeOutBounds.y2 = Math.ceil(bounds.y2 - rect.height);\n }\n // 返回的布局大小也要限制到 spec 设置内\n return this._setRectInSpec(boundsInRect(bounds, rect));\n }\n\n /**\n * 实际bounds预计算方法\n * 需要在布局方法中更新 _lastComputeBounds\n * @param rect 布局最终使用的rect\n * @param fullSpace 布局可以使用的空间,用与部分模块的 position 计算\n */\n boundsInRect(rect: ILayoutRect, fullSpace: ILayoutRect): IBoundsLike {\n return { x1: 0, y1: 0, x2: rect.width, y2: rect.height };\n }\n\n updateLayoutAttribute(): void {\n // do nothing\n }\n\n compile(): void {\n // do nothing\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/model/layout-item.ts"],"names":[],"mappings":"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","file":"layout-item.js","sourcesContent":["import type { IPadding, IRect, IPoint } from '../typings';\nimport type { IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isNil } from '@visactor/vutils';\nimport { isValidNumber, calcLayoutNumber, calcPadding, normalizeLayoutPaddingSpec, boundsInRect } from '../util';\nimport { LayoutLevel, DEFAULT_LAYOUT_RECT_LEVEL, USER_LAYOUT_RECT_LEVEL } from '../constant';\n\nimport type { ILayoutItem, ILayoutItemSpec, ILayoutPoint, ILayoutRect, ILayoutRectLevel } from './interface';\nimport { CompilableBase } from '../compile/compilable-base';\n\nexport class LayoutItem extends CompilableBase implements ILayoutItem {\n protected _spec: ILayoutItemSpec;\n getSpec(): any {\n return this._spec;\n }\n\n layoutClip: boolean = false;\n\n protected _autoIndent: boolean = true;\n getAutoIndent(): boolean {\n return this._autoIndent;\n }\n\n private _layoutStartPoint: ILayoutPoint = {\n x: 0,\n y: 0\n };\n\n getLayoutStartPoint(): ILayoutPoint {\n return this._layoutStartPoint;\n }\n\n private _layoutRect: ILayoutRect = { width: 0, height: 0 };\n\n private _minWidth: number | null = null;\n private _maxWidth: number | null = null;\n private _minHeight: number | null = null;\n private _maxHeight: number | null = null;\n\n // 处理用户和逻辑的优先级覆盖,让用户也可以设置 rect\n protected _layoutRectLevelMap: ILayoutRectLevel = {\n width: DEFAULT_LAYOUT_RECT_LEVEL,\n height: DEFAULT_LAYOUT_RECT_LEVEL\n };\n /** for layout diff */\n protected _lastComputeRect: ILayoutRect = null;\n protected _lastComputeOutBounds: IBoundsLike = { x1: 0, x2: 0, y1: 0, y2: 0 };\n getLastComputeOutBounds(): IBoundsLike {\n return this._lastComputeOutBounds;\n }\n protected _forceLayoutTag: boolean = false;\n\n getLayoutRect: () => ILayoutRect = () => {\n return this._layoutRect;\n };\n\n layoutType: ILayoutItem['layoutType'] = 'normal';\n\n layoutBindRegionID!: ILayoutItem['layoutBindRegionID'];\n\n _layoutOrient: ILayoutItem['layoutOrient'] = 'left';\n get layoutOrient() {\n return this._layoutOrient;\n }\n set layoutOrient(v: ILayoutItem['layoutOrient']) {\n this._layoutOrient = v;\n }\n layoutPaddingLeft: ILayoutItem['layoutPaddingLeft'] = 0;\n layoutPaddingTop: ILayoutItem['layoutPaddingTop'] = 0;\n layoutPaddingRight: ILayoutItem['layoutPaddingRight'] = 0;\n layoutPaddingBottom: ILayoutItem['layoutPaddingBottom'] = 0;\n\n layoutOffsetX: ILayoutItem['layoutOffsetX'] = 0;\n layoutOffsetY: ILayoutItem['layoutOffsetY'] = 0;\n\n layoutLevel: ILayoutItem['layoutLevel'] = LayoutLevel.Region;\n\n // layoutAbsoluteLeft: ILayoutItem['layoutAbsoluteLeft'] = Number.NaN;\n // layoutAbsoluteTop: ILayoutItem['layoutAbsoluteTop'] = Number.NaN;\n // layoutAbsoluteRight: ILayoutItem['layoutAbsoluteRight'] = Number.NaN;\n // layoutAbsoluteBottom: ILayoutItem['layoutAbsoluteBottom'] = Number.NaN;\n layoutZIndex: ILayoutItem['layoutZIndex'] = 0;\n chartLayoutRect!: ILayoutRect;\n\n private _setLayoutAttributeFromSpec(spec: ILayoutItemSpec, chartViewRect: ILayoutRect) {\n if ((this._spec as unknown as any).visible !== false) {\n // 处理 user spec value to px;\n const padding = normalizeLayoutPaddingSpec(spec.padding);\n const paddingValue = calcPadding(padding, chartViewRect, chartViewRect);\n this.layoutPaddingLeft = paddingValue.left;\n this.layoutPaddingRight = paddingValue.right;\n this.layoutPaddingTop = paddingValue.top;\n this.layoutPaddingBottom = paddingValue.bottom;\n\n this._minHeight = isNil(spec.minHeight)\n ? null\n : calcLayoutNumber(spec.minHeight, chartViewRect.height, chartViewRect);\n this._maxHeight = isNil(spec.maxHeight)\n ? null\n : calcLayoutNumber(spec.maxHeight, chartViewRect.height, chartViewRect);\n this._minWidth = isNil(spec.minWidth)\n ? null\n : calcLayoutNumber(spec.minWidth, chartViewRect.width, chartViewRect);\n this._maxWidth = isNil(spec.maxWidth)\n ? null\n : calcLayoutNumber(spec.maxWidth, chartViewRect.width, chartViewRect);\n // 处理 user width\n if (spec.width) {\n this.setLayoutRect(\n {\n width: calcLayoutNumber(spec.width, chartViewRect.width, chartViewRect)\n },\n {\n width: USER_LAYOUT_RECT_LEVEL\n }\n );\n }\n if (spec.height) {\n this.setLayoutRect(\n {\n height: calcLayoutNumber(spec.height, chartViewRect.height, chartViewRect)\n },\n {\n height: USER_LAYOUT_RECT_LEVEL\n }\n );\n }\n\n // offset\n if (!isNil(spec.offsetX)) {\n this.layoutOffsetX = calcLayoutNumber(spec.offsetX, chartViewRect.width, chartViewRect);\n }\n if (!isNil(spec.offsetY)) {\n this.layoutOffsetY = calcLayoutNumber(spec.offsetY, chartViewRect.height, chartViewRect);\n }\n }\n }\n\n setAttrFromSpec(spec: ILayoutItemSpec, chartViewRect: ILayoutRect) {\n this.layoutType = spec.layoutType ?? this.layoutType;\n this.layoutLevel = spec.layoutLevel ?? this.layoutLevel;\n this.layoutOrient = spec.orient ?? this.layoutOrient;\n\n this._setLayoutAttributeFromSpec(spec, chartViewRect);\n\n this.layoutClip = spec.clip ?? this.layoutClip;\n this.layoutZIndex = spec.zIndex ?? this.layoutZIndex;\n }\n\n onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect, _ctx: any) {\n // 在 layoutStart 时重新计算 spec 中的布局属性值,确保 resize 后,这些值保持正确的px值。\n this._setLayoutAttributeFromSpec(this._spec, viewRect);\n }\n\n private _getAbsoluteSpecValue(layoutRect: ILayoutRect) {\n const result: IPadding = { top: null, bottom: null, left: null, right: null };\n ['top', 'bottom', 'left', 'right'].forEach(k => {\n if (!isNil(this._spec[k])) {\n result[k] = calcLayoutNumber(\n this._spec[k],\n k === 'top' || k === 'bottom' ? layoutRect.height : layoutRect.width,\n layoutRect\n );\n }\n });\n return result;\n }\n\n absoluteLayoutInRect(layoutRect: IRect) {\n const { top, bottom, left, right } = this._getAbsoluteSpecValue(layoutRect);\n\n // size first\n const layoutSize = {\n width: layoutRect.width - this.layoutPaddingLeft - this.layoutPaddingRight,\n height: layoutRect.height - this.layoutPaddingTop - this.layoutPaddingBottom\n };\n if (!isNil(left)) {\n layoutSize.width -= left;\n }\n if (!isNil(right)) {\n layoutSize.width -= right;\n }\n if (!isNil(top)) {\n layoutSize.height -= top;\n }\n if (!isNil(bottom)) {\n layoutSize.height -= bottom;\n }\n\n this.setLayoutRect(layoutSize);\n const { width, height } = this.computeBoundsInRect(this.getLayoutRect());\n this.setLayoutRect({ width, height });\n const pos = { x: layoutRect.x, y: layoutRect.y };\n if (this._spec.center === true) {\n pos.x = layoutRect.x + layoutRect.width * 0.5 - width * 0.5;\n pos.y = layoutRect.y + layoutRect.height * 0.5 - height * 0.5;\n } else {\n if (!isNil(left)) {\n pos.x = layoutRect.x + left + this.layoutPaddingLeft;\n } else if (!isNil(right)) {\n pos.x = layoutRect.x + layoutRect.width - this.layoutPaddingRight - right - width;\n }\n if (!isNil(top)) {\n pos.y = layoutRect.y + top + this.layoutPaddingTop;\n } else if (!isNil(bottom)) {\n pos.y = layoutRect.y + layoutRect.height - this.layoutPaddingBottom - bottom - height;\n }\n }\n\n this.setLayoutStartPosition(pos);\n }\n\n setLayoutStartPosition({ x, y }: Partial<IPoint>): void {\n if (isValidNumber(x)) {\n this._layoutStartPoint.x = x;\n }\n if (isValidNumber(y)) {\n this._layoutStartPoint.y = y;\n }\n }\n\n setLayoutRect({ width, height }: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRectLevel>) {\n if (isValidNumber(width) && (levelMap?.width ?? DEFAULT_LAYOUT_RECT_LEVEL) >= this._layoutRectLevelMap.width) {\n this._layoutRect.width = width;\n this._layoutRectLevelMap.width = levelMap?.width ?? DEFAULT_LAYOUT_RECT_LEVEL;\n }\n\n if (isValidNumber(height) && (levelMap?.height ?? DEFAULT_LAYOUT_RECT_LEVEL) >= this._layoutRectLevelMap.height) {\n this._layoutRect.height = height;\n this._layoutRectLevelMap.height = levelMap?.height ?? DEFAULT_LAYOUT_RECT_LEVEL;\n }\n\n this._setRectInSpec(this._layoutRect);\n }\n\n mergeLayoutRect({ width, height }: ILayoutRect): ILayoutRect {\n const rect = { width, height };\n if (this._layoutRectLevelMap.width > DEFAULT_LAYOUT_RECT_LEVEL) {\n rect.width = this._layoutRect.width;\n }\n if (this._layoutRectLevelMap.height > DEFAULT_LAYOUT_RECT_LEVEL) {\n rect.height = this._layoutRect.height;\n }\n return rect;\n }\n\n getOrientPosAttribute() {\n return this._layoutOrient === 'bottom' || this._layoutOrient === 'top' ? 'x' : 'y';\n }\n getOrientSizeAttribute() {\n return this._layoutOrient === 'bottom' || this._layoutOrient === 'top' ? 'width' : 'height';\n }\n\n protected changeBoundsBySetting(bounds: IBoundsLike): IBoundsLike {\n // 用户设置了布局元素宽高的场景下,内部布局结果的 bounds 不能直接作为图表布局bounds\n if (this._layoutRectLevelMap.width > DEFAULT_LAYOUT_RECT_LEVEL) {\n bounds.x2 = bounds.x1 + this._layoutRect.width;\n }\n if (this._layoutRectLevelMap.height > DEFAULT_LAYOUT_RECT_LEVEL) {\n bounds.y2 = bounds.y1 + this._layoutRect.height;\n }\n bounds.x1 -= this._layoutStartPoint.x;\n bounds.x2 -= this._layoutStartPoint.x;\n bounds.y1 -= this._layoutStartPoint.y;\n bounds.y2 -= this._layoutStartPoint.y;\n return bounds;\n }\n\n private _setRectInSpec(rect: ILayoutRect) {\n const result = { ...rect };\n if (this._layoutRectLevelMap.width < USER_LAYOUT_RECT_LEVEL) {\n if (!isNil(this._minWidth)) {\n result.width = Math.max(result.width, this._minWidth);\n }\n if (!isNil(this._maxWidth)) {\n result.width = Math.min(result.width, this._maxWidth);\n }\n } else {\n result.width = this._layoutRect.width;\n }\n\n if (this._layoutRectLevelMap.height < USER_LAYOUT_RECT_LEVEL) {\n if (!isNil(this._minHeight)) {\n result.height = Math.max(result.height, this._minHeight);\n }\n if (!isNil(this._maxHeight)) {\n result.height = Math.min(result.height, this._maxHeight);\n }\n } else {\n result.height = this._layoutRect.height;\n }\n return result;\n }\n\n computeBoundsInRect(rect: ILayoutRect): ILayoutRect {\n // 保留布局使用的rect\n this._lastComputeRect = rect;\n // 将布局空间限制到 spec 设置内\n // 避免操作到元素本身的 aabbbounds\n const bounds = { ...this.boundsInRect(this._setRectInSpec(rect), rect) };\n // 用户设置了布局元素宽高的场景下,内部布局结果的 bounds 不能直接作为图表布局bounds\n this.changeBoundsBySetting(bounds);\n // 保留当前模块的布局超出内容,用来处理自动缩进\n if (this._autoIndent) {\n this._lastComputeOutBounds.x1 = Math.ceil(-bounds.x1);\n this._lastComputeOutBounds.x2 = Math.ceil(bounds.x2 - rect.width);\n this._lastComputeOutBounds.y1 = Math.ceil(-bounds.y1);\n this._lastComputeOutBounds.y2 = Math.ceil(bounds.y2 - rect.height);\n }\n // 返回的布局大小也要限制到 spec 设置内\n return this._setRectInSpec(boundsInRect(bounds, rect));\n }\n\n /**\n * 实际bounds预计算方法\n * 需要在布局方法中更新 _lastComputeBounds\n * @param rect 布局最终使用的rect\n * @param fullSpace 布局可以使用的空间,用与部分模块的 position 计算\n */\n boundsInRect(rect: ILayoutRect, fullSpace: ILayoutRect): IBoundsLike {\n return { x1: 0, y1: 0, x2: rect.width, y2: rect.height };\n }\n\n updateLayoutAttribute(): void {\n // do nothing\n }\n\n compile(): void {\n // do nothing\n }\n}\n"]}
|
package/esm/series/area/area.js
CHANGED
|
@@ -41,19 +41,20 @@ export class AreaSeries extends CartesianSeries {
|
|
|
41
41
|
super(...arguments), this.type = SeriesTypeEnum.area, this._stack = !0, this._invalidType = "break";
|
|
42
42
|
}
|
|
43
43
|
initMark() {
|
|
44
|
-
var _a, _b, _c;
|
|
44
|
+
var _a, _b, _c, _d;
|
|
45
45
|
const progressive = {
|
|
46
46
|
progressiveStep: this._spec.progressiveStep,
|
|
47
47
|
progressiveThreshold: this._spec.progressiveThreshold,
|
|
48
48
|
large: this._spec.large,
|
|
49
49
|
largeThreshold: this._spec.largeThreshold
|
|
50
|
-
}, isAreaVisible = !1 !== (null === (_a = this._spec.area) || void 0 === _a ? void 0 : _a.visible) && !1 !== (null === (_c = null === (_b = this._spec.area) || void 0 === _b ? void 0 : _b.style) || void 0 === _c ? void 0 : _c.visible);
|
|
50
|
+
}, isAreaVisible = !1 !== (null === (_a = this._spec.area) || void 0 === _a ? void 0 : _a.visible) && !1 !== (null === (_c = null === (_b = this._spec.area) || void 0 === _b ? void 0 : _b.style) || void 0 === _c ? void 0 : _c.visible), seriesMark = null !== (_d = this._spec.seriesMark) && void 0 !== _d ? _d : "area";
|
|
51
51
|
this._areaMark = this._createMark(AreaSeries.mark.area, {
|
|
52
52
|
groupKey: this._seriesField,
|
|
53
53
|
defaultMorphElementKey: this.getDimensionField()[0],
|
|
54
54
|
progressive: progressive,
|
|
55
|
-
isSeriesMark: isAreaVisible
|
|
56
|
-
}), this.initLineMark(progressive, !isAreaVisible),
|
|
55
|
+
isSeriesMark: isAreaVisible && "area" === seriesMark
|
|
56
|
+
}), this.initLineMark(progressive, "line" === seriesMark || "area" === seriesMark && !isAreaVisible),
|
|
57
|
+
this.initSymbolMark(progressive, "point" === seriesMark);
|
|
57
58
|
}
|
|
58
59
|
initMarkStyle() {
|
|
59
60
|
var _a, _b, _c, _d, _e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/area/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { LineLikeSeriesMixin, lineLikeSeriesMarkMap } from '../mixin/line-mixin';\nimport type { IAreaMark } from '../../mark/area';\nimport { Direction } from '../../typings/space';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport { AttributeLevel } from '../../constant';\nimport type { Maybe, Datum, IInvalidType } from '../../typings';\nimport { valueInScaleRange, couldBeValidNumber } from '../../util';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum } from '../interface';\nimport { SeriesTypeEnum } from '../interface';\nimport { mixin } from '@visactor/vutils';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport { DEFAULT_SMOOTH_INTERPOLATE } from '../../typings/interpolate';\nimport type { IAreaSeriesSpec, IAreaSeriesTheme } from './interface';\nimport type { IMarkAnimateSpec } from '../../animation/spec';\nimport { BaseSeries } from '../base/base-series';\n\nimport { VChart } from '../../core/vchart';\nimport { LineMark } from '../../mark/line';\nimport { AreaMark } from '../../mark/area';\nimport { TextMark } from '../../mark/text';\nimport { SymbolMark } from '../../mark/symbol';\nVChart.useMark([LineMark, AreaMark, TextMark, SymbolMark]);\n\nexport interface AreaSeries\n extends Pick<\n LineLikeSeriesMixin,\n | 'initLineMark'\n | 'initSymbolMark'\n | 'initLabelMarkStyle'\n | 'initLineMarkStyle'\n | 'initSymbolMarkStyle'\n | '_lineMark'\n | '_symbolMark'\n >,\n CartesianSeries<IAreaSeriesSpec> {}\n\nexport class AreaSeries extends CartesianSeries<IAreaSeriesSpec> {\n static readonly type: string = SeriesTypeEnum.area;\n type = SeriesTypeEnum.area;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n ...lineLikeSeriesMarkMap,\n [SeriesMarkNameEnum.area]: { name: SeriesMarkNameEnum.area, type: MarkTypeEnum.area }\n };\n\n protected declare _theme: Maybe<IAreaSeriesTheme>;\n\n protected _areaMark!: IAreaMark;\n protected _stack: boolean = true;\n protected _invalidType: IInvalidType = 'break';\n\n initMark(): void {\n const progressive = {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n };\n\n const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n // area\n this._areaMark = this._createMark(AreaSeries.mark.area, {\n groupKey: this._seriesField,\n defaultMorphElementKey: this.getDimensionField()[0],\n progressive,\n isSeriesMark: isAreaVisible\n }) as IAreaMark;\n\n this.initLineMark(progressive, !isAreaVisible);\n this.initSymbolMark(progressive);\n }\n\n initMarkStyle(): void {\n // FIXME 是不是应该把curveType提前到上层配置\n // 不允许area和line的curveType不一致\n const userCurveType = this.getSpec().area?.style?.curveType ?? this.getSpec().line?.style?.curveType;\n const curveType =\n userCurveType === DEFAULT_SMOOTH_INTERPOLATE\n ? this._direction === Direction.vertical\n ? 'monotoneX'\n : 'monotoneY'\n : userCurveType;\n\n // area\n const areaMark = this._areaMark;\n if (areaMark) {\n if (this._direction === Direction.vertical) {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n y1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionY1(datum), this._yAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n x1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionX1(datum), this._xAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this),\n orient: this._direction\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n areaMark,\n {\n fill: this.getColorAttribute(),\n defined: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n areaMark,\n {\n curveType\n },\n 'normal',\n AttributeLevel.Built_In\n );\n this._trigger.registerMark(areaMark);\n this._tooltipHelper.activeTriggerSet.dimension.add(areaMark);\n }\n\n this.initLineMarkStyle(this._direction, userCurveType);\n this.initSymbolMarkStyle();\n this.initLabelMarkStyle();\n }\n\n initAnimation() {\n const animationParams = { direction: this.direction };\n const appearPreset = (this._spec?.animationAppear as IMarkAnimateSpec<string>)?.preset;\n\n if (this._lineMark) {\n this._lineMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.line(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.line, this._spec)\n )\n );\n }\n\n if (this._areaMark) {\n this._areaMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.area(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.area, this._spec)\n )\n );\n }\n\n if (this._symbolMark) {\n this._symbolMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.symbol(), userAnimationConfig(SeriesMarkNameEnum.point, this._spec))\n );\n }\n }\n}\n\nmixin(AreaSeries, LineLikeSeriesMixin);\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/series/area/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { LineLikeSeriesMixin, lineLikeSeriesMarkMap } from '../mixin/line-mixin';\nimport type { IAreaMark } from '../../mark/area';\nimport { Direction } from '../../typings/space';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport { AttributeLevel } from '../../constant';\nimport type { Maybe, Datum, IInvalidType } from '../../typings';\nimport { valueInScaleRange, couldBeValidNumber } from '../../util';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum } from '../interface';\nimport { SeriesTypeEnum } from '../interface';\nimport { mixin } from '@visactor/vutils';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport { DEFAULT_SMOOTH_INTERPOLATE } from '../../typings/interpolate';\nimport type { IAreaSeriesSpec, IAreaSeriesTheme } from './interface';\nimport type { IMarkAnimateSpec } from '../../animation/spec';\nimport { BaseSeries } from '../base/base-series';\n\nimport { VChart } from '../../core/vchart';\nimport { LineMark } from '../../mark/line';\nimport { AreaMark } from '../../mark/area';\nimport { TextMark } from '../../mark/text';\nimport { SymbolMark } from '../../mark/symbol';\nVChart.useMark([LineMark, AreaMark, TextMark, SymbolMark]);\n\nexport interface AreaSeries\n extends Pick<\n LineLikeSeriesMixin,\n | 'initLineMark'\n | 'initSymbolMark'\n | 'initLabelMarkStyle'\n | 'initLineMarkStyle'\n | 'initSymbolMarkStyle'\n | '_lineMark'\n | '_symbolMark'\n >,\n CartesianSeries<IAreaSeriesSpec> {}\n\nexport class AreaSeries extends CartesianSeries<IAreaSeriesSpec> {\n static readonly type: string = SeriesTypeEnum.area;\n type = SeriesTypeEnum.area;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n ...lineLikeSeriesMarkMap,\n [SeriesMarkNameEnum.area]: { name: SeriesMarkNameEnum.area, type: MarkTypeEnum.area }\n };\n\n protected declare _theme: Maybe<IAreaSeriesTheme>;\n\n protected _areaMark!: IAreaMark;\n protected _stack: boolean = true;\n protected _invalidType: IInvalidType = 'break';\n\n initMark(): void {\n const progressive = {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n };\n\n const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const seriesMark = this._spec.seriesMark ?? 'area';\n // area\n this._areaMark = this._createMark(AreaSeries.mark.area, {\n groupKey: this._seriesField,\n defaultMorphElementKey: this.getDimensionField()[0],\n progressive,\n isSeriesMark: isAreaVisible && seriesMark === 'area'\n }) as IAreaMark;\n\n this.initLineMark(progressive, seriesMark === 'line' || (seriesMark === 'area' && !isAreaVisible));\n this.initSymbolMark(progressive, seriesMark === 'point');\n }\n\n initMarkStyle(): void {\n // FIXME 是不是应该把curveType提前到上层配置\n // 不允许area和line的curveType不一致\n const userCurveType = this.getSpec().area?.style?.curveType ?? this.getSpec().line?.style?.curveType;\n const curveType =\n userCurveType === DEFAULT_SMOOTH_INTERPOLATE\n ? this._direction === Direction.vertical\n ? 'monotoneX'\n : 'monotoneY'\n : userCurveType;\n\n // area\n const areaMark = this._areaMark;\n if (areaMark) {\n if (this._direction === Direction.vertical) {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n y1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionY1(datum), this._yAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n x1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionX1(datum), this._xAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this),\n orient: this._direction\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n areaMark,\n {\n fill: this.getColorAttribute(),\n defined: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n areaMark,\n {\n curveType\n },\n 'normal',\n AttributeLevel.Built_In\n );\n this._trigger.registerMark(areaMark);\n this._tooltipHelper.activeTriggerSet.dimension.add(areaMark);\n }\n\n this.initLineMarkStyle(this._direction, userCurveType);\n this.initSymbolMarkStyle();\n this.initLabelMarkStyle();\n }\n\n initAnimation() {\n const animationParams = { direction: this.direction };\n const appearPreset = (this._spec?.animationAppear as IMarkAnimateSpec<string>)?.preset;\n\n if (this._lineMark) {\n this._lineMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.line(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.line, this._spec)\n )\n );\n }\n\n if (this._areaMark) {\n this._areaMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.area(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.area, this._spec)\n )\n );\n }\n\n if (this._symbolMark) {\n this._symbolMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.symbol(), userAnimationConfig(SeriesMarkNameEnum.point, this._spec))\n );\n }\n }\n}\n\nmixin(AreaSeries, LineLikeSeriesMixin);\n"]}
|
|
@@ -11,6 +11,7 @@ export interface IAreaSeriesSpec extends ICartesianSeriesSpec, IAnimationSpec<st
|
|
|
11
11
|
[SeriesMarkNameEnum.point]?: IMarkSpec<ISymbolMarkSpec>;
|
|
12
12
|
[SeriesMarkNameEnum.line]?: IMarkSpec<ILineMarkSpec>;
|
|
13
13
|
[SeriesMarkNameEnum.area]?: IMarkSpec<IAreaMarkSpec>;
|
|
14
|
+
seriesMark?: 'point' | 'line' | 'area';
|
|
14
15
|
}
|
|
15
16
|
export interface IAreaSeriesTheme extends ICartesianSeriesTheme, ILineLikeSeriesTheme {
|
|
16
17
|
[SeriesMarkNameEnum.area]?: Partial<IMarkTheme<IAreaMarkSpec>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/area/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ICartesianSeriesSpec, ICartesianSeriesTheme } from '../cartesian/interface';\nimport type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { ISymbolMarkSpec, ILineMarkSpec, IAreaMarkSpec } from '../../typings/visual';\nimport type { SeriesMarkNameEnum
|
|
1
|
+
{"version":3,"sources":["../src/series/area/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ICartesianSeriesSpec, ICartesianSeriesTheme } from '../cartesian/interface';\nimport type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { ISymbolMarkSpec, ILineMarkSpec, IAreaMarkSpec } from '../../typings/visual';\nimport type { SeriesMarkNameEnum } from '../interface';\nimport type { ILineLikeSeriesTheme } from '../mixin/line-mixin';\nimport type { IAnimationSpec } from '../../animation/spec';\nimport type { AreaAppearPreset } from './animation';\nimport type { IMarkProgressiveConfig } from '../../mark/interface';\n\nexport interface IAreaSeriesSpec\n extends ICartesianSeriesSpec,\n IAnimationSpec<string, AreaAppearPreset>,\n IMarkProgressiveConfig {\n /**\n * 系列类型\n */\n type: 'area';\n /**\n * 点图元配置\n */\n [SeriesMarkNameEnum.point]?: IMarkSpec<ISymbolMarkSpec>;\n /**\n * 线图元配置\n */\n [SeriesMarkNameEnum.line]?: IMarkSpec<ILineMarkSpec>;\n /**\n * 面积图元配置\n */\n [SeriesMarkNameEnum.area]?: IMarkSpec<IAreaMarkSpec>;\n /**\n * 系列主 mark 类型配置,该配置会影响图例的展示\n * @default 'area'\n * @since 1.2.0\n */\n seriesMark?: 'point' | 'line' | 'area';\n}\n\nexport interface IAreaSeriesTheme extends ICartesianSeriesTheme, ILineLikeSeriesTheme {\n [SeriesMarkNameEnum.area]?: Partial<IMarkTheme<IAreaMarkSpec>>;\n}\n"]}
|