@visactor/vchart 1.5.2 → 1.6.0-alpha.0
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 +605 -363
- 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/base-chart.d.ts +4 -6
- package/cjs/chart/base-chart.js +44 -45
- package/cjs/chart/base-chart.js.map +1 -1
- package/cjs/chart/correlation/correlation.js.map +1 -1
- package/cjs/chart/gauge/gauge.js +3 -2
- package/cjs/chart/gauge/gauge.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +3 -3
- package/cjs/chart/interface/chart.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/sequence/sequence.js +0 -1
- package/cjs/chart/sequence/sequence.js.map +1 -1
- package/cjs/component/axis/util.d.ts +3 -3
- package/cjs/component/axis/util.js +14 -10
- package/cjs/component/axis/util.js.map +1 -1
- package/cjs/component/base/base-component.d.ts +1 -2
- package/cjs/component/base/base-component.js +2 -39
- package/cjs/component/base/base-component.js.map +1 -1
- package/cjs/component/base/util.d.ts +2 -3
- package/cjs/component/base/util.js +16 -19
- package/cjs/component/base/util.js.map +1 -1
- package/cjs/component/brush/brush.js +1 -1
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/crosshair/util.d.ts +3 -3
- package/cjs/component/crosshair/util.js +7 -5
- package/cjs/component/crosshair/util.js.map +1 -1
- package/cjs/component/tooltip/handler/base.d.ts +4 -5
- package/cjs/component/tooltip/handler/base.js +18 -16
- package/cjs/component/tooltip/handler/base.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js +14 -3
- package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
- package/cjs/component/tooltip/handler/utils/attribute.d.ts +3 -3
- package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
- package/cjs/component/tooltip/interface/spec.d.ts +2 -1
- package/cjs/component/tooltip/interface/spec.js.map +1 -1
- package/cjs/component/util.d.ts +4 -0
- package/cjs/component/util.js +14 -0
- package/cjs/component/util.js.map +1 -0
- package/cjs/constant/waterfall.js +1 -2
- package/cjs/constant/word-cloud.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/core/interface.d.ts +7 -1
- package/cjs/core/interface.js.map +1 -1
- package/cjs/core/vchart.d.ts +2 -2
- package/cjs/core/vchart.js +30 -30
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/interaction/config.js +1 -2
- package/cjs/interaction/dimension-trigger.js +2 -1
- package/cjs/layout/base-layout.js +1 -1
- package/cjs/layout/index.js +1 -1
- package/cjs/layout/interface.js +1 -1
- package/cjs/mark/arc-3d.js +1 -1
- package/cjs/mark/arc.js +1 -1
- package/cjs/mark/area.js +1 -1
- package/cjs/mark/base/base-mark.js +4 -5
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/box-plot.js +1 -1
- package/cjs/model/base-model.d.ts +4 -2
- package/cjs/model/base-model.js +51 -11
- package/cjs/model/base-model.js.map +1 -1
- package/cjs/model/interface.d.ts +10 -3
- package/cjs/model/interface.js.map +1 -1
- package/cjs/series/area/area.d.ts +1 -1
- package/cjs/series/area/area.js +1 -1
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/bar/bar.d.ts +14 -3
- package/cjs/series/bar/bar.js +100 -14
- 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/base/base-series.d.ts +4 -3
- package/cjs/series/base/base-series.js +12 -46
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/dot/dot.js +3 -4
- package/cjs/series/dot/dot.js.map +1 -1
- package/cjs/series/gauge/gauge-pointer.d.ts +1 -0
- package/cjs/series/gauge/gauge-pointer.js +1 -1
- package/cjs/series/gauge/gauge-pointer.js.map +1 -1
- package/cjs/series/heatmap/heatmap.js +1 -1
- package/cjs/series/heatmap/heatmap.js.map +1 -1
- package/cjs/series/interface/theme.d.ts +2 -0
- package/cjs/series/interface/theme.js +3 -2
- package/cjs/series/interface/theme.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/link/link.js +1 -1
- package/cjs/series/link/link.js.map +1 -1
- package/cjs/series/map/map.js +1 -1
- package/cjs/series/map/map.js.map +1 -1
- package/cjs/series/polar/progress-like/progress-like.d.ts +1 -1
- package/cjs/series/polar/progress-like/progress-like.js +2 -3
- package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
- package/cjs/series/progress/circular/circular.js +4 -4
- package/cjs/series/progress/circular/circular.js.map +1 -1
- package/cjs/series/range-area/interface.d.ts +2 -1
- package/cjs/series/range-area/interface.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/rose/rose.d.ts +1 -1
- package/cjs/series/rose/rose.js +2 -2
- package/cjs/series/rose/rose.js.map +1 -1
- package/cjs/series/sankey/sankey.js +14 -16
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/waterfall/waterfall.d.ts +1 -1
- package/cjs/series/waterfall/waterfall.js +7 -7
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/series/word-cloud/base.js +34 -35
- package/cjs/series/word-cloud/base.js.map +1 -1
- package/cjs/series/word-cloud/word-cloud-3d.js +32 -32
- package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
- package/cjs/theme/builtin/common/mark.js +10 -0
- package/cjs/theme/builtin/common/mark.js.map +1 -1
- package/cjs/theme/builtin/index.d.ts +4 -1
- package/cjs/theme/builtin/index.js +13 -8
- package/cjs/theme/builtin/index.js.map +1 -1
- package/cjs/theme/color-scheme/util.js +2 -1
- package/cjs/theme/color-scheme/util.js.map +1 -1
- package/cjs/theme/theme-manager.js +4 -3
- package/cjs/theme/theme-manager.js.map +1 -1
- package/cjs/theme/util.d.ts +5 -0
- package/cjs/theme/util.js +34 -0
- package/cjs/theme/util.js.map +1 -0
- package/cjs/typings/tooltip/tooltip.d.ts +2 -1
- package/cjs/typings/tooltip/tooltip.js.map +1 -1
- package/cjs/util/spec/merge-theme.d.ts +4 -1
- package/cjs/util/spec/merge-theme.js +22 -13
- package/cjs/util/spec/merge-theme.js.map +1 -1
- package/cjs/util/spec/preprocess.js +1 -0
- package/cjs/util/spec/preprocess.js.map +1 -1
- package/esm/chart/bar/bar.js +2 -1
- package/esm/chart/bar/bar.js.map +1 -1
- package/esm/chart/base-chart.d.ts +4 -6
- package/esm/chart/base-chart.js +42 -42
- package/esm/chart/base-chart.js.map +1 -1
- package/esm/chart/correlation/correlation.js.map +1 -1
- package/esm/chart/gauge/gauge.js +3 -2
- package/esm/chart/gauge/gauge.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +3 -3
- package/esm/chart/interface/chart.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/sequence/sequence.js +0 -1
- package/esm/chart/sequence/sequence.js.map +1 -1
- package/esm/component/axis/util.d.ts +3 -3
- package/esm/component/axis/util.js +10 -8
- package/esm/component/axis/util.js.map +1 -1
- package/esm/component/base/base-component.d.ts +1 -2
- package/esm/component/base/base-component.js +3 -40
- package/esm/component/base/base-component.js.map +1 -1
- package/esm/component/base/util.d.ts +2 -3
- package/esm/component/base/util.js +19 -16
- package/esm/component/base/util.js.map +1 -1
- package/esm/component/brush/brush.js +1 -1
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/crosshair/util.d.ts +3 -3
- package/esm/component/crosshair/util.js +8 -4
- package/esm/component/crosshair/util.js.map +1 -1
- package/esm/component/tooltip/handler/base.d.ts +4 -5
- package/esm/component/tooltip/handler/base.js +17 -14
- package/esm/component/tooltip/handler/base.js.map +1 -1
- package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js +14 -3
- package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
- package/esm/component/tooltip/handler/utils/attribute.d.ts +3 -3
- package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
- package/esm/component/tooltip/interface/spec.d.ts +2 -1
- package/esm/component/tooltip/interface/spec.js.map +1 -1
- package/esm/component/util.d.ts +4 -0
- package/esm/component/util.js +6 -0
- package/esm/component/util.js.map +1 -0
- package/esm/constant/waterfall.js +1 -2
- package/esm/constant/word-cloud.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/core/interface.d.ts +7 -1
- package/esm/core/interface.js.map +1 -1
- package/esm/core/vchart.d.ts +2 -2
- package/esm/core/vchart.js +31 -25
- package/esm/core/vchart.js.map +1 -1
- package/esm/interaction/config.js +1 -2
- package/esm/interaction/dimension-trigger.js +2 -1
- package/esm/layout/base-layout.js +1 -1
- package/esm/layout/index.js +1 -1
- package/esm/layout/interface.js +1 -1
- package/esm/mark/arc-3d.js +1 -1
- package/esm/mark/arc.js +1 -1
- package/esm/mark/area.js +1 -1
- package/esm/mark/base/base-mark.js +4 -5
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/box-plot.js +1 -1
- package/esm/model/base-model.d.ts +4 -2
- package/esm/model/base-model.js +53 -10
- package/esm/model/base-model.js.map +1 -1
- package/esm/model/interface.d.ts +10 -3
- package/esm/model/interface.js.map +1 -1
- package/esm/series/area/area.d.ts +1 -1
- package/esm/series/area/area.js +1 -1
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/bar/bar.d.ts +14 -3
- package/esm/series/bar/bar.js +109 -13
- 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/base/base-series.d.ts +4 -3
- package/esm/series/base/base-series.js +14 -46
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/dot/dot.js +2 -4
- package/esm/series/dot/dot.js.map +1 -1
- package/esm/series/gauge/gauge-pointer.d.ts +1 -0
- package/esm/series/gauge/gauge-pointer.js +1 -1
- package/esm/series/gauge/gauge-pointer.js.map +1 -1
- package/esm/series/heatmap/heatmap.js +1 -1
- package/esm/series/heatmap/heatmap.js.map +1 -1
- package/esm/series/interface/theme.d.ts +2 -0
- package/esm/series/interface/theme.js +4 -1
- package/esm/series/interface/theme.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/link/link.js +1 -1
- package/esm/series/link/link.js.map +1 -1
- package/esm/series/map/map.js +1 -1
- package/esm/series/map/map.js.map +1 -1
- package/esm/series/polar/progress-like/progress-like.d.ts +1 -1
- package/esm/series/polar/progress-like/progress-like.js +2 -3
- package/esm/series/polar/progress-like/progress-like.js.map +1 -1
- package/esm/series/progress/circular/circular.js +4 -4
- package/esm/series/progress/circular/circular.js.map +1 -1
- package/esm/series/range-area/interface.d.ts +2 -1
- package/esm/series/range-area/interface.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/rose/rose.d.ts +1 -1
- package/esm/series/rose/rose.js +1 -1
- package/esm/series/rose/rose.js.map +1 -1
- package/esm/series/sankey/sankey.js +6 -8
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/waterfall/waterfall.d.ts +1 -1
- package/esm/series/waterfall/waterfall.js +7 -7
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/series/word-cloud/base.js +33 -35
- package/esm/series/word-cloud/base.js.map +1 -1
- package/esm/series/word-cloud/word-cloud-3d.js +32 -32
- package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
- package/esm/theme/builtin/common/mark.js +10 -0
- package/esm/theme/builtin/common/mark.js.map +1 -1
- package/esm/theme/builtin/index.d.ts +4 -1
- package/esm/theme/builtin/index.js +15 -6
- package/esm/theme/builtin/index.js.map +1 -1
- package/esm/theme/color-scheme/util.js +1 -1
- package/esm/theme/color-scheme/util.js.map +1 -1
- package/esm/theme/theme-manager.js +5 -4
- package/esm/theme/theme-manager.js.map +1 -1
- package/esm/theme/util.d.ts +5 -0
- package/esm/theme/util.js +34 -0
- package/esm/theme/util.js.map +1 -0
- package/esm/typings/tooltip/tooltip.d.ts +2 -1
- package/esm/typings/tooltip/tooltip.js.map +1 -1
- package/esm/util/spec/merge-theme.d.ts +4 -1
- package/esm/util/spec/merge-theme.js +18 -10
- package/esm/util/spec/merge-theme.js.map +1 -1
- package/esm/util/spec/preprocess.js +2 -1
- package/esm/util/spec/preprocess.js.map +1 -1
- package/package.json +5 -5
package/esm/chart/gauge/gauge.js
CHANGED
|
@@ -31,11 +31,12 @@ export class GaugeChart extends ProgressLikeChart {
|
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
transformSpec(spec) {
|
|
34
|
-
var _a, _b, _c, _d;
|
|
34
|
+
var _a, _b, _c, _d, _e;
|
|
35
35
|
super.transformSpec(spec);
|
|
36
36
|
let backgroundSeries = null === (_a = spec.series) || void 0 === _a ? void 0 : _a.find((series => series.type === SeriesTypeEnum.gauge || series.type === SeriesTypeEnum.circularProgress));
|
|
37
37
|
isNil(backgroundSeries) && (backgroundSeries = null !== (_b = spec.gauge) && void 0 !== _b ? _b : this._getDefaultCircularProgressSeriesSpec(spec),
|
|
38
|
-
"circularProgress" === backgroundSeries.type && isNil(backgroundSeries.radiusField) && isNil(backgroundSeries.categoryField) && (backgroundSeries.radiusField = null !== (_d = null !== (_c = spec.radiusField) && void 0 !== _c ? _c : spec.categoryField) && void 0 !== _d ? _d : spec.seriesField),
|
|
38
|
+
"circularProgress" === backgroundSeries.type && (isNil(backgroundSeries.radiusField) && isNil(backgroundSeries.categoryField) && (backgroundSeries.radiusField = null !== (_d = null !== (_c = spec.radiusField) && void 0 !== _c ? _c : spec.categoryField) && void 0 !== _d ? _d : spec.seriesField),
|
|
39
|
+
isNil(backgroundSeries.valueField) && isNil(backgroundSeries.angleField) && (backgroundSeries.valueField = null !== (_e = spec.valueField) && void 0 !== _e ? _e : spec.angleField)),
|
|
39
40
|
1 === spec.series.length ? spec.series.push(backgroundSeries) : spec.series.forEach((s => {
|
|
40
41
|
s.type === backgroundSeries.type && Object.keys(backgroundSeries).forEach((k => {
|
|
41
42
|
k in s || (s[k] = backgroundSeries[k]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/chart/gauge/gauge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAyB,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE5G,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,OAAO,UAAW,SAAQ,iBAAiB;IAAjD;;QAGW,SAAI,GAAW,aAAa,CAAC,KAAK,CAAC;QACnC,eAAU,GAAW,cAAc,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/chart/gauge/gauge.ts"],"names":[],"mappings":"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","file":"gauge.js","sourcesContent":["import { isNil } from '@visactor/vutils';\nimport type { IPolarAxisSpec, IPolarLinearAxisSpec } from '../../component/axis/polar/interface';\nimport { type IGaugeSeriesSpec, registerGaugePointerSeries, registerGaugeSeries } from '../../series/gauge';\nimport type { ISeries } from '../../series/interface';\nimport { SeriesTypeEnum } from '../../series/interface/type';\nimport type { ICircularProgressSeriesSpec } from '../../series/progress/circular/interface';\nimport { ChartTypeEnum } from '../interface';\nimport { ProgressLikeChart } from '../polar/progress-like';\nimport { Factory } from '../../core/factory';\nimport { LayoutZIndex } from '../../constant';\n\nexport class GaugeChart extends ProgressLikeChart {\n static readonly type: string = ChartTypeEnum.gauge;\n static readonly view: string = 'singleDefault';\n readonly type: string = ChartTypeEnum.gauge;\n readonly seriesType: string = SeriesTypeEnum.gaugePointer;\n\n protected _getDefaultSeriesSpec(spec: any): any {\n const series = super._getDefaultSeriesSpec(spec);\n return {\n ...series,\n radiusField: spec.radiusField,\n\n pin: spec.pin,\n pinBackground: spec.pinBackground,\n pointer: spec.pointer\n };\n }\n\n protected _getDefaultCircularProgressSeriesSpec(spec: any): any {\n const series: any = {\n ...super._getDefaultSeriesSpec(spec),\n type: SeriesTypeEnum.circularProgress\n };\n return series;\n }\n\n transformSpec(spec: any): void {\n super.transformSpec(spec);\n\n /** 充当仪表图非指针部分的系列 */\n let backgroundSeries: ICircularProgressSeriesSpec | IGaugeSeriesSpec = spec.series?.find(\n (series: ISeries) => series.type === SeriesTypeEnum.gauge || series.type === SeriesTypeEnum.circularProgress\n );\n if (isNil(backgroundSeries)) {\n backgroundSeries = spec.gauge ?? this._getDefaultCircularProgressSeriesSpec(spec);\n\n // 补充可能缺失的属性\n if (backgroundSeries.type === 'circularProgress') {\n if (isNil(backgroundSeries.radiusField) && isNil(backgroundSeries.categoryField)) {\n backgroundSeries.radiusField = spec.radiusField ?? spec.categoryField ?? spec.seriesField;\n }\n if (isNil(backgroundSeries.valueField) && isNil(backgroundSeries.angleField)) {\n backgroundSeries.valueField = spec.valueField ?? spec.angleField;\n }\n }\n\n if (spec.series.length === 1) {\n spec.series.push(backgroundSeries);\n } else {\n spec.series.forEach((s: ISeries) => {\n if (s.type !== backgroundSeries.type) {\n return;\n }\n Object.keys(backgroundSeries).forEach(k => {\n if (!(k in s)) {\n s[k] = backgroundSeries[k];\n }\n });\n });\n }\n }\n\n if (backgroundSeries.type === SeriesTypeEnum.circularProgress) {\n this._transformProgressAxisSpec(\n spec,\n {\n orient: 'angle',\n visible: true,\n domainLine: {\n visible: false\n },\n grid: {\n visible: false\n }\n },\n {\n orient: 'radius',\n visible: false\n },\n {\n zIndex: LayoutZIndex.Region + 50 // 仪表图特例:轴在 region 上层\n }\n );\n } else {\n this._transformGaugeAxisSpec(spec);\n }\n }\n\n protected _transformGaugeAxisSpec(spec: any): void {\n if (!spec.axes) {\n spec.axes = [];\n }\n const axesPtr: {\n radius: IPolarLinearAxisSpec | null;\n angle: IPolarLinearAxisSpec | null;\n } = { radius: null, angle: null };\n (spec.axes ?? []).forEach((axis: IPolarAxisSpec) => {\n const { orient } = axis;\n if (orient === 'radius') {\n axesPtr.radius = axis;\n }\n if (orient === 'angle') {\n axesPtr.angle = axis;\n }\n });\n if (!axesPtr.angle) {\n axesPtr.angle = {\n orient: 'angle',\n visible: true\n };\n spec.axes.push(axesPtr.angle);\n }\n if (!axesPtr.radius) {\n axesPtr.radius = {\n orient: 'radius',\n visible: false\n };\n spec.axes.push(axesPtr.radius);\n }\n\n // 自动补充缺失的配置\n if (isNil(axesPtr.angle.type)) {\n axesPtr.angle.type = 'linear';\n }\n if (isNil(axesPtr.radius.type)) {\n axesPtr.radius.type = 'linear';\n }\n if (isNil(axesPtr.angle.zIndex)) {\n axesPtr.angle.zIndex = LayoutZIndex.Region + 50; // 仪表图特例:轴在 region 上层\n }\n }\n}\n\nexport const registerGaugeChart = () => {\n registerGaugePointerSeries();\n registerGaugeSeries();\n Factory.registerChart(GaugeChart.type, GaugeChart);\n};\n"]}
|
|
@@ -7,12 +7,12 @@ import type { IMark } from '../../mark/interface';
|
|
|
7
7
|
import type { ILayoutRect, IModel, IUpdateSpecResult } from '../../model/interface';
|
|
8
8
|
import type { IRegion } from '../../region/interface';
|
|
9
9
|
import type { ISeries } from '../../series/interface';
|
|
10
|
-
import type { ITheme } from '../../theme';
|
|
11
10
|
import type { IChartEvaluateOption, IChartInitOption, IChartLayoutOption, IChartOption, IChartRenderOption, ILayoutParams } from './common';
|
|
12
11
|
import type { IBoundsLike, IPadding } from '@visactor/vutils';
|
|
13
12
|
import type { ICompilable } from '../../compile/interface';
|
|
14
13
|
import type { IRegionQuerier, MaybeArray, Datum, IMarkStateSpec, StringOrNumber, IShowTooltipOption, IDataValues } from '../../typings';
|
|
15
14
|
import type { DataView } from '@visactor/vdataset';
|
|
15
|
+
import type { IThemeColorScheme } from '../../theme/color-scheme/interface';
|
|
16
16
|
export type DimensionIndexOption = {
|
|
17
17
|
filter?: (cmp: IComponent) => boolean;
|
|
18
18
|
tooltip?: boolean;
|
|
@@ -74,8 +74,8 @@ export interface IChart extends ICompilable {
|
|
|
74
74
|
setHovered: (datum: MaybeArray<Datum> | null, filter?: (series: ISeries, mark: IMark) => boolean, region?: IRegionQuerier) => void;
|
|
75
75
|
updateViewBox: (viewBox: IBoundsLike, reLayout: boolean) => void;
|
|
76
76
|
getCanvas: () => HTMLCanvasElement | undefined;
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
setCurrentTheme: (reInit?: boolean) => void;
|
|
78
|
+
getColorScheme: () => IThemeColorScheme | undefined;
|
|
79
79
|
getSeriesData: (id: StringOrNumber | undefined, index: number | undefined) => DataView | undefined;
|
|
80
80
|
setDimensionIndex: (value: StringOrNumber, opt: DimensionIndexOption) => void;
|
|
81
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/chart/interface/chart.ts"],"names":[],"mappings":"","file":"chart.js","sourcesContent":["import type { IEvent } from '../../event/interface';\nimport type { LayoutCallBack } from '../../layout/interface';\nimport type { IRunningConfig as IMorphConfig, IView } from '@visactor/vgrammar-core';\nimport type { IParserOptions } from '@visactor/vdataset/es/parser';\nimport type { IComponent } from '../../component/interface';\nimport type { IMark } from '../../mark/interface';\nimport type { ILayoutRect, IModel, IUpdateSpecResult } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { ISeries } from '../../series/interface';\nimport type { ITheme } from '../../theme';\nimport type {\n IChartEvaluateOption,\n IChartInitOption,\n IChartLayoutOption,\n IChartOption,\n IChartRenderOption,\n ILayoutParams\n} from './common';\nimport type { IBoundsLike, IPadding } from '@visactor/vutils';\nimport type { ICompilable } from '../../compile/interface';\nimport type {\n IRegionQuerier,\n MaybeArray,\n Datum,\n IMarkStateSpec,\n StringOrNumber,\n IShowTooltipOption,\n IDataValues\n} from '../../typings';\nimport type { DataView } from '@visactor/vdataset';\n\nexport type DimensionIndexOption = {\n filter?: (cmp: IComponent) => boolean;\n tooltip?: boolean;\n showTooltipOption?: IShowTooltipOption;\n crosshair?: boolean;\n};\n\nexport interface IChart extends ICompilable {\n padding: IPadding;\n\n readonly type: string;\n\n getSpec: () => any;\n setSpec: (s: any) => void;\n\n // data flow\n reDataFlow: () => void;\n\n setCanvasRect: (width: number, height: number) => void;\n getCanvasRect: () => ILayoutRect;\n\n getOption: () => IChartOption;\n\n /** event */\n getEvent: () => IEvent;\n\n /** layout */\n setLayout: (layout: LayoutCallBack) => void;\n layout: (context: ILayoutParams) => void;\n getLayoutTag: () => boolean;\n setLayoutTag: (tag: boolean) => boolean;\n\n // 使用parse前的原始数据结构更新数据\n updateData: (id: StringOrNumber, data: unknown, updateGlobalScale?: boolean, options?: IParserOptions) => void;\n // 使用 IData 更新数据\n updateFullData: (data: IDataValues | IDataValues[]) => void;\n // update scale domain which in GlobalScale\n updateGlobalScaleDomain: () => void;\n //生命周期\n created: () => void;\n transformSpec: (spec: any) => void;\n init: (option: IChartInitOption) => void;\n onLayoutStart: (ctx: IChartLayoutOption) => void;\n onLayoutEnd: (ctx: IChartLayoutOption) => void;\n onEvaluateEnd: (ctx: IChartEvaluateOption) => void;\n onRender: (ctx: IChartRenderOption) => void;\n onResize: (width: number, height: number) => void;\n onLayout: (view: IView) => void;\n\n // series\n getAllSeries: () => ISeries[];\n\n // region\n getRegionsInIndex: (index?: number[]) => IRegion[];\n getRegionsInIds: (ids: number[]) => IRegion[];\n getAllRegions: () => IRegion[];\n getRegionsInUserIdOrIndex: (user_ids?: StringOrNumber[], index?: number[]) => IRegion[];\n getRegionsInQuerier: (query: MaybeArray<IRegionQuerier>) => IRegion[];\n\n // series\n getSeriesInIndex: (index?: number[]) => ISeries[];\n getSeriesInIds: (ids?: number[]) => ISeries[];\n getSeriesInUserIdOrIndex: (user_ids?: StringOrNumber[], index?: number[]) => ISeries[];\n getSeriesInUserId: (userId: StringOrNumber) => ISeries | undefined;\n\n // component\n getComponentByIndex: (key: string, index: number) => IComponent | undefined;\n getComponentByUserId: (userId: StringOrNumber) => IComponent | undefined;\n getComponentsByKey: (key: string) => IComponent[];\n getAllComponents: () => IComponent[];\n\n // model\n getModelById: (id: number) => IModel | undefined;\n getModelByUserId: (userId: StringOrNumber) => IModel | undefined;\n getModelInFilter: (\n filter: string | { type: string; index: number } | ((model: IModel) => boolean)\n ) => IModel | undefined;\n getAllModels: () => IModel[];\n\n // mark\n getMarkById: (id: number) => IMark | undefined;\n getAllMarks: () => IMark[];\n\n // spec\n updateSpec: (spec: any, morphConfig?: IMorphConfig) => IUpdateSpecResult;\n\n // state\n /**\n * 更新或设置图元状态\n * @param state 状态筛选器\n * @param filter 筛选器\n */\n updateState: (\n state: Record<string, Omit<IMarkStateSpec<unknown>, 'style'>>,\n filter?: (series: ISeries, mark: IMark, stateKey: string) => boolean //series + mark 筛选\n ) => void;\n\n /**\n * 更新图元选中状态\n * @param datum hover 图元数据\n * @param filter 筛选器 用来筛选系列与mark\n * @param region region 筛选器\n */\n setSelected: (\n datum: MaybeArray<any> | null,\n filter?: (series: ISeries, mark: IMark) => boolean,\n region?: IRegionQuerier\n ) => void;\n\n /**\n * 更新图元 hover 状态\n * @param datum hover 图元数据\n * @param filter 筛选器 用来筛选系列与mark\n * @param region region 筛选器\n */\n setHovered: (\n datum: MaybeArray<Datum> | null,\n filter?: (series: ISeries, mark: IMark) => boolean,\n region?: IRegionQuerier\n ) => void;\n\n // 更新 viewBox\n updateViewBox: (viewBox: IBoundsLike, reLayout: boolean) => void;\n\n // 获取实际渲染的 canvas\n getCanvas: () => HTMLCanvasElement | undefined;\n\n
|
|
1
|
+
{"version":3,"sources":["../src/chart/interface/chart.ts"],"names":[],"mappings":"","file":"chart.js","sourcesContent":["import type { IEvent } from '../../event/interface';\nimport type { LayoutCallBack } from '../../layout/interface';\nimport type { IRunningConfig as IMorphConfig, IView } from '@visactor/vgrammar-core';\nimport type { IParserOptions } from '@visactor/vdataset/es/parser';\nimport type { IComponent } from '../../component/interface';\nimport type { IMark } from '../../mark/interface';\nimport type { ILayoutRect, IModel, IUpdateSpecResult } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { ISeries } from '../../series/interface';\nimport type { ITheme } from '../../theme';\nimport type {\n IChartEvaluateOption,\n IChartInitOption,\n IChartLayoutOption,\n IChartOption,\n IChartRenderOption,\n ILayoutParams\n} from './common';\nimport type { IBoundsLike, IPadding } from '@visactor/vutils';\nimport type { ICompilable } from '../../compile/interface';\nimport type {\n IRegionQuerier,\n MaybeArray,\n Datum,\n IMarkStateSpec,\n StringOrNumber,\n IShowTooltipOption,\n IDataValues\n} from '../../typings';\nimport type { DataView } from '@visactor/vdataset';\nimport type { IThemeColorScheme } from '../../theme/color-scheme/interface';\n\nexport type DimensionIndexOption = {\n filter?: (cmp: IComponent) => boolean;\n tooltip?: boolean;\n showTooltipOption?: IShowTooltipOption;\n crosshair?: boolean;\n};\n\nexport interface IChart extends ICompilable {\n padding: IPadding;\n\n readonly type: string;\n\n getSpec: () => any;\n setSpec: (s: any) => void;\n\n // data flow\n reDataFlow: () => void;\n\n setCanvasRect: (width: number, height: number) => void;\n getCanvasRect: () => ILayoutRect;\n\n getOption: () => IChartOption;\n\n /** event */\n getEvent: () => IEvent;\n\n /** layout */\n setLayout: (layout: LayoutCallBack) => void;\n layout: (context: ILayoutParams) => void;\n getLayoutTag: () => boolean;\n setLayoutTag: (tag: boolean) => boolean;\n\n // 使用parse前的原始数据结构更新数据\n updateData: (id: StringOrNumber, data: unknown, updateGlobalScale?: boolean, options?: IParserOptions) => void;\n // 使用 IData 更新数据\n updateFullData: (data: IDataValues | IDataValues[]) => void;\n // update scale domain which in GlobalScale\n updateGlobalScaleDomain: () => void;\n //生命周期\n created: () => void;\n transformSpec: (spec: any) => void;\n init: (option: IChartInitOption) => void;\n onLayoutStart: (ctx: IChartLayoutOption) => void;\n onLayoutEnd: (ctx: IChartLayoutOption) => void;\n onEvaluateEnd: (ctx: IChartEvaluateOption) => void;\n onRender: (ctx: IChartRenderOption) => void;\n onResize: (width: number, height: number) => void;\n onLayout: (view: IView) => void;\n\n // series\n getAllSeries: () => ISeries[];\n\n // region\n getRegionsInIndex: (index?: number[]) => IRegion[];\n getRegionsInIds: (ids: number[]) => IRegion[];\n getAllRegions: () => IRegion[];\n getRegionsInUserIdOrIndex: (user_ids?: StringOrNumber[], index?: number[]) => IRegion[];\n getRegionsInQuerier: (query: MaybeArray<IRegionQuerier>) => IRegion[];\n\n // series\n getSeriesInIndex: (index?: number[]) => ISeries[];\n getSeriesInIds: (ids?: number[]) => ISeries[];\n getSeriesInUserIdOrIndex: (user_ids?: StringOrNumber[], index?: number[]) => ISeries[];\n getSeriesInUserId: (userId: StringOrNumber) => ISeries | undefined;\n\n // component\n getComponentByIndex: (key: string, index: number) => IComponent | undefined;\n getComponentByUserId: (userId: StringOrNumber) => IComponent | undefined;\n getComponentsByKey: (key: string) => IComponent[];\n getAllComponents: () => IComponent[];\n\n // model\n getModelById: (id: number) => IModel | undefined;\n getModelByUserId: (userId: StringOrNumber) => IModel | undefined;\n getModelInFilter: (\n filter: string | { type: string; index: number } | ((model: IModel) => boolean)\n ) => IModel | undefined;\n getAllModels: () => IModel[];\n\n // mark\n getMarkById: (id: number) => IMark | undefined;\n getAllMarks: () => IMark[];\n\n // spec\n updateSpec: (spec: any, morphConfig?: IMorphConfig) => IUpdateSpecResult;\n\n // state\n /**\n * 更新或设置图元状态\n * @param state 状态筛选器\n * @param filter 筛选器\n */\n updateState: (\n state: Record<string, Omit<IMarkStateSpec<unknown>, 'style'>>,\n filter?: (series: ISeries, mark: IMark, stateKey: string) => boolean //series + mark 筛选\n ) => void;\n\n /**\n * 更新图元选中状态\n * @param datum hover 图元数据\n * @param filter 筛选器 用来筛选系列与mark\n * @param region region 筛选器\n */\n setSelected: (\n datum: MaybeArray<any> | null,\n filter?: (series: ISeries, mark: IMark) => boolean,\n region?: IRegionQuerier\n ) => void;\n\n /**\n * 更新图元 hover 状态\n * @param datum hover 图元数据\n * @param filter 筛选器 用来筛选系列与mark\n * @param region region 筛选器\n */\n setHovered: (\n datum: MaybeArray<Datum> | null,\n filter?: (series: ISeries, mark: IMark) => boolean,\n region?: IRegionQuerier\n ) => void;\n\n // 更新 viewBox\n updateViewBox: (viewBox: IBoundsLike, reLayout: boolean) => void;\n\n // 获取实际渲染的 canvas\n getCanvas: () => HTMLCanvasElement | undefined;\n\n setCurrentTheme: (reInit?: boolean) => void;\n getColorScheme: () => IThemeColorScheme | undefined;\n\n getSeriesData: (id: StringOrNumber | undefined, index: number | undefined) => DataView | undefined;\n // setDimensionIndex\n setDimensionIndex: (value: StringOrNumber, opt: DimensionIndexOption) => void;\n}\n\nexport interface IChartConstructor {\n readonly type: string;\n readonly series?: string | string[];\n readonly view: string;\n new (spec: any, options: IChartOption): IChart;\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"]}
|
|
@@ -190,7 +190,6 @@ export class SequenceChart extends BaseChart {
|
|
|
190
190
|
region: region,
|
|
191
191
|
specIndex: index,
|
|
192
192
|
specKey: "series",
|
|
193
|
-
getTheme: () => this._theme,
|
|
194
193
|
globalScale: this._globalScale
|
|
195
194
|
}));
|
|
196
195
|
series && (series.created(), this._series.push(series), region.addSeries(series));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/chart/sequence/sequence.ts"],"names":[],"mappings":"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","file":"sequence.js","sourcesContent":["import { LinkSeries, registerLinkSeries } from '../../series/link/link';\nimport { DotSeries, registerDotSeries } from '../../series/dot/dot';\nimport type { IGridLayoutSpec } from '../../layout/interface';\nimport { BaseChart } from '../base-chart';\nimport type { ISequenceChartSpec, ISequenceSeriesSpec } from './interface';\nimport type { IRegion, IRegionSpec } from '../../region/interface';\nimport { Factory } from '../../core/factory';\nimport { SeriesTypeEnum } from '../../series/interface/type';\nimport { ChartTypeEnum } from '../interface';\nimport type { Datum } from '../../typings';\nimport { DataView } from '@visactor/vdataset';\nimport type { ISeriesOption } from '../../series/interface';\nimport type { ICartesianAxisSpec, IScrollBarSpec } from '../../component';\nimport { SCROLL_BAR_DEFAULT_SIZE } from '../../constant/scroll-bar';\nimport { array } from '@visactor/vutils';\nimport { normalizeLayoutPaddingSpec } from '../../util';\nimport { IFilterMode } from '../../component/data-zoom/constant';\n\nexport class SequenceChart extends BaseChart {\n static readonly type: string = ChartTypeEnum.sequence;\n static readonly view: string = 'singleDefault'; // csj-Q: view是什么含义\n readonly type: string = ChartTypeEnum.sequence;\n\n /**\n * @override\n * @description 主要是处理布局逻辑 & 部分仅针对sequenceChart的特殊属性\n */\n transformSpec(spec: ISequenceChartSpec): void {\n super.transformSpec(spec);\n\n // 初始化目标属性\n let rowNum = 0;\n const elements: any[] = [];\n const region: IRegionSpec[] = [];\n const axes: ICartesianAxisSpec[] = [];\n const scrollBar: IScrollBarSpec[] = [];\n const rowHeight: any = [];\n\n // 计算默认series padding和series高度\n const defaultSeriesPadding = 20;\n const seriesRegionNum = spec.series.filter(d => d.type !== SeriesTypeEnum.link).length;\n const defaultSeriesRowHeight =\n (this._layoutRect.height - defaultSeriesPadding * (seriesRegionNum - 1)) / seriesRegionNum;\n const leftAppendPadding = spec?.appendPadding?.left || 0;\n const rightAppendPadding = spec?.appendPadding?.right || 0;\n\n if (spec?.legends) {\n elements.push({\n modelId: `legendRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n this.addAttrToComponentSpec(spec.legends, 'id', `legendRow${rowNum}`);\n // legend offset 和 padding 兼容处理\n const legendSpec = array(spec.legends);\n let legendHeight: any = legendSpec[0].height ?? 40;\n if (legendSpec[0].padding) {\n const legendPadding = normalizeLayoutPaddingSpec(legendSpec[0].padding);\n legendHeight += Number(legendPadding?.bottom ?? 0);\n legendHeight += Number(legendPadding?.top ?? 0);\n legendSpec[0].offsetY = Number(legendSpec[0]?.offsetY ?? 0) + Number(legendPadding?.top ?? 0);\n }\n rowHeight.push({\n index: rowNum,\n size: legendHeight\n });\n rowNum++;\n }\n\n if (spec?.dataZoom) {\n elements.push({\n modelId: `dataZoomRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n this.addAttrToComponentSpec(spec.dataZoom, 'id', `dataZoomRow${rowNum}`);\n rowNum++;\n\n // 增加空行,拟合series padding效果\n rowHeight.push({\n index: rowNum,\n size: 10\n });\n rowNum++;\n }\n\n // 遍历axes\n // 1. 在elements中添加时间轴元素\n // 2. 并统计rowNum\n // 在sequenceChart中,axes有几种情况(本期先考虑1和2,也就是默认只有1个top轴):1.不声明axes 2.声明且为仅有一个top axes 3.声明且仅有一个bottom axes 4.多个axes组合\n // if(spec.axes === null || spec?.axes[0]?.orient === 'top') {\n // Tips: id should not has duplicate name\n region.push({\n id: `regionAxesRow${rowNum}`\n });\n elements.push({\n modelId: `axesRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n spec.axes[0].id = `axesRow${rowNum}`;\n spec.axes[0].regionIndex = Array.from(Array(this._spec.series.length - 1), (_, index) => index + 1);\n rowNum++;\n // }\n\n // 遍历series\n // 1. 在spec.layout => elements、region数组和spec.axes的数组中中添加元素\n // 2. 为series绑定regionIndex\n // 3. 统计rowNum\n // 4. 用空行拟合series padding\n spec?.series?.forEach((seriesSpec: ISequenceSeriesSpec) => {\n if (\n ([SeriesTypeEnum.bar, SeriesTypeEnum.line, SeriesTypeEnum.area, SeriesTypeEnum.dot] as string[]).includes(\n seriesSpec.type\n )\n ) {\n // elements数组\n elements.push({\n modelId: `${seriesSpec.type}Row${rowNum}`,\n col: 1,\n row: rowNum\n });\n elements.push({\n modelId: `axesLeftRow${rowNum}`,\n col: 0,\n row: rowNum\n });\n\n // region数组\n region.push({\n id: `${seriesSpec.type}Row${rowNum}`,\n clip: false\n });\n\n rowHeight.push({\n index: rowNum,\n size: seriesSpec?.height || defaultSeriesRowHeight\n });\n\n // axes数组添加left axes(每个series都需要一个left axes)\n axes.push({\n orient: 'left',\n id: `axesLeftRow${rowNum}`,\n type: seriesSpec.type === SeriesTypeEnum.dot ? 'band' : 'linear',\n visible: seriesSpec.type !== SeriesTypeEnum.dot,\n\n // 对于bar series,axes title模拟bar title\n title: {\n visible: true,\n // 特殊处理时序图的 title 样式,默认的坐标轴左右轴会进行旋转\n autoRotate: false,\n style: {\n text: (seriesSpec as any)?.barTitle,\n dx: -20,\n textBaseline: 'middle',\n textAlign: 'end'\n }\n },\n // 对于bar series,axes grid模拟series分割线\n grid: {\n visible:\n typeof (seriesSpec as any)?.grid?.visible === 'boolean' ? (seriesSpec as any)?.grid?.visible : true, // bar grid默认绘制\n style: (datum: Datum, index: number) => {\n let lineWidth = 0;\n if (index === 0) {\n const style = (seriesSpec as any)?.grid?.style;\n\n // 兼容一下spec中通过strokeWidth申明的方式\n lineWidth = style?.lineWidth ?? style?.strokeWidth ?? 1;\n }\n return {\n lineWidth,\n stroke: (seriesSpec as any)?.grid?.style?.stroke || '#dfdfdf',\n lineDash: [0, 0]\n };\n }\n },\n // 其他轴元素隐藏\n domainLine: {\n visible: false\n },\n tick: {\n visible: false\n },\n label: {\n visible: false\n },\n\n // 绑定regionIndex\n regionIndex: region.length - 1\n });\n\n // scrollBar 内置\n if (seriesSpec.type === SeriesTypeEnum.dot) {\n elements.push({\n modelId: `scrollBarRightRow${rowNum}`,\n col: 2,\n row: rowNum\n });\n const dataLength = this._getSeriesDataLength(spec, seriesSpec);\n let ratio = 0;\n if (dataLength) {\n ratio = (seriesSpec?.height || defaultSeriesRowHeight) / (dataLength * 30);\n }\n // scrollBar数组增加一个right scrollBar\n scrollBar.push({\n orient: 'right',\n visible: seriesSpec.type === SeriesTypeEnum.dot && ratio < 1,\n id: `scrollBarRightRow${rowNum}`,\n start: 0,\n end: Math.min(ratio, 1),\n filterMode: IFilterMode.axis,\n regionIndex: region.length - 1,\n axisId: `axesLeftRow${rowNum}`,\n ...array(spec?.scrollBar)[0]\n });\n }\n\n // seriesSpec绑定regionIndex\n seriesSpec.regionIndex = region.length - 1;\n\n rowNum++;\n\n // 增加空行,拟合series padding效果\n rowHeight.push({\n index: rowNum,\n size: seriesSpec?.padding || defaultSeriesPadding\n });\n rowNum++;\n\n // chart的leftAppendPadding用于具体元素的dx偏移\n (seriesSpec as any).leftAppendPadding = leftAppendPadding;\n\n // title和subTitle自动定位到画布最左端\n if (seriesSpec.type === SeriesTypeEnum.dot) {\n (seriesSpec as any).title.style.dx = -leftAppendPadding;\n (seriesSpec as any).subTitle.style.dx = -leftAppendPadding;\n }\n }\n });\n\n // 对于link series,所有属性跟随它绑定的dot series\n spec?.series?.forEach((seriesSpec: ISequenceSeriesSpec) => {\n if (seriesSpec.type === SeriesTypeEnum.link) {\n const dotRowNum = seriesSpec.dotSeriesIndex + 1;\n elements.push({\n modelId: `${seriesSpec.type}Row${dotRowNum}`,\n col: 1,\n row: dotRowNum - 1\n });\n seriesSpec.regionIndex = spec.series[seriesSpec.dotSeriesIndex].regionIndex;\n (seriesSpec as any).leftAppendPadding = leftAppendPadding;\n (seriesSpec as any).height = (spec.series[seriesSpec.dotSeriesIndex] as any).height;\n (seriesSpec as any).clipHeight = (spec.series[seriesSpec.dotSeriesIndex] as any).clipHeight;\n }\n });\n\n // 添加legends和datazoom的regionIndex\n if (spec?.legends) {\n this.addAttrToComponentSpec(spec.legends, 'regionIndex', [region.length - 1]);\n }\n // if ((spec as any)?.dataZoom) {\n // (spec as any).dataZoom[0].regionIndex = Array.from({length: region.length - 1},(item, index)=> index+1);\n // }\n\n const layout: IGridLayoutSpec = {\n type: 'grid',\n col: 4,\n row: rowNum,\n colWidth: [\n {\n index: 0,\n size: leftAppendPadding\n },\n {\n index: 2,\n size: SCROLL_BAR_DEFAULT_SIZE\n },\n {\n index: 3,\n size: rightAppendPadding\n }\n ],\n rowHeight: rowHeight,\n elements: elements\n };\n\n spec.layout = layout;\n spec.region = region;\n spec.axes?.push(...axes);\n spec.scrollBar = scrollBar;\n }\n\n /**\n * @override\n * @description 主要是将link series关联的dot data放到link series中\n */\n createSeries(seriesSpec: ISequenceSeriesSpec[]) {\n seriesSpec.forEach((spec, index) => {\n // 自动填充数据\n if (!spec.data) {\n spec.data = this._chartData.getSeriesData(spec.dataId, spec.dataIndex);\n }\n\n if (spec.type === SeriesTypeEnum.link) {\n spec.dotSeriesSpec = this._spec.series[spec.dotSeriesIndex];\n }\n\n let region: IRegion | undefined;\n if (spec.regionId) {\n region = this.getRegionsInUserId(spec.regionId);\n }\n if (!region) {\n region = this.getRegionsInIndex(spec.regionIndex ? [spec.regionIndex] : undefined)[0];\n }\n if (!region) {\n return;\n }\n const series = Factory.createSeries(spec.type, spec, {\n ...this._modelOption,\n region,\n specIndex: index,\n specKey: 'series',\n getTheme: () => this._theme,\n globalScale: this._globalScale\n } as ISeriesOption);\n\n if (series) {\n series.created();\n this._series.push(series);\n region.addSeries(series);\n }\n });\n }\n\n addAttrToComponentSpec(componentSpec: any, attr: string, value: any) {\n if (Array.isArray(componentSpec)) {\n componentSpec[0][attr] = value;\n } else {\n componentSpec[attr] = value;\n }\n return componentSpec;\n }\n\n private _getSeriesDataLength(spec: any, seriesSpec: any) {\n if (seriesSpec.data) {\n const _d = array(seriesSpec.data)[0];\n if (_d instanceof DataView) {\n return _d.latestData?.length;\n }\n return _d.values?.length;\n }\n const dataTemp = array(spec.data).find((_d, index) => {\n if (seriesSpec.dataId) {\n if (_d instanceof DataView) {\n return _d.name === seriesSpec.dataId;\n }\n return _d.id === seriesSpec.dataId;\n }\n return seriesSpec.dataIndex === index;\n });\n if (!dataTemp) {\n return 0;\n }\n if (dataTemp instanceof DataView) {\n return dataTemp.latestData.length;\n }\n return dataTemp.values.length;\n }\n}\n\nexport const registerSequenceChart = () => {\n registerDotSeries();\n registerLinkSeries();\n Factory.registerChart(SequenceChart.type, SequenceChart);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/chart/sequence/sequence.ts"],"names":[],"mappings":"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","file":"sequence.js","sourcesContent":["import { LinkSeries, registerLinkSeries } from '../../series/link/link';\nimport { DotSeries, registerDotSeries } from '../../series/dot/dot';\nimport type { IGridLayoutSpec } from '../../layout/interface';\nimport { BaseChart } from '../base-chart';\nimport type { ISequenceChartSpec, ISequenceSeriesSpec } from './interface';\nimport type { IRegion, IRegionSpec } from '../../region/interface';\nimport { Factory } from '../../core/factory';\nimport { SeriesTypeEnum } from '../../series/interface/type';\nimport { ChartTypeEnum } from '../interface';\nimport type { Datum } from '../../typings';\nimport { DataView } from '@visactor/vdataset';\nimport type { ISeriesOption } from '../../series/interface';\nimport type { ICartesianAxisSpec, IScrollBarSpec } from '../../component';\nimport { SCROLL_BAR_DEFAULT_SIZE } from '../../constant/scroll-bar';\nimport { array } from '@visactor/vutils';\nimport { normalizeLayoutPaddingSpec } from '../../util';\nimport { IFilterMode } from '../../component/data-zoom/constant';\n\nexport class SequenceChart extends BaseChart {\n static readonly type: string = ChartTypeEnum.sequence;\n static readonly view: string = 'singleDefault'; // csj-Q: view是什么含义\n readonly type: string = ChartTypeEnum.sequence;\n\n /**\n * @override\n * @description 主要是处理布局逻辑 & 部分仅针对sequenceChart的特殊属性\n */\n transformSpec(spec: ISequenceChartSpec): void {\n super.transformSpec(spec);\n\n // 初始化目标属性\n let rowNum = 0;\n const elements: any[] = [];\n const region: IRegionSpec[] = [];\n const axes: ICartesianAxisSpec[] = [];\n const scrollBar: IScrollBarSpec[] = [];\n const rowHeight: any = [];\n\n // 计算默认series padding和series高度\n const defaultSeriesPadding = 20;\n const seriesRegionNum = spec.series.filter(d => d.type !== SeriesTypeEnum.link).length;\n const defaultSeriesRowHeight =\n (this._layoutRect.height - defaultSeriesPadding * (seriesRegionNum - 1)) / seriesRegionNum;\n const leftAppendPadding = spec?.appendPadding?.left || 0;\n const rightAppendPadding = spec?.appendPadding?.right || 0;\n\n if (spec?.legends) {\n elements.push({\n modelId: `legendRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n this.addAttrToComponentSpec(spec.legends, 'id', `legendRow${rowNum}`);\n // legend offset 和 padding 兼容处理\n const legendSpec = array(spec.legends);\n let legendHeight: any = legendSpec[0].height ?? 40;\n if (legendSpec[0].padding) {\n const legendPadding = normalizeLayoutPaddingSpec(legendSpec[0].padding);\n legendHeight += Number(legendPadding?.bottom ?? 0);\n legendHeight += Number(legendPadding?.top ?? 0);\n legendSpec[0].offsetY = Number(legendSpec[0]?.offsetY ?? 0) + Number(legendPadding?.top ?? 0);\n }\n rowHeight.push({\n index: rowNum,\n size: legendHeight\n });\n rowNum++;\n }\n\n if (spec?.dataZoom) {\n elements.push({\n modelId: `dataZoomRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n this.addAttrToComponentSpec(spec.dataZoom, 'id', `dataZoomRow${rowNum}`);\n rowNum++;\n\n // 增加空行,拟合series padding效果\n rowHeight.push({\n index: rowNum,\n size: 10\n });\n rowNum++;\n }\n\n // 遍历axes\n // 1. 在elements中添加时间轴元素\n // 2. 并统计rowNum\n // 在sequenceChart中,axes有几种情况(本期先考虑1和2,也就是默认只有1个top轴):1.不声明axes 2.声明且为仅有一个top axes 3.声明且仅有一个bottom axes 4.多个axes组合\n // if(spec.axes === null || spec?.axes[0]?.orient === 'top') {\n // Tips: id should not has duplicate name\n region.push({\n id: `regionAxesRow${rowNum}`\n });\n elements.push({\n modelId: `axesRow${rowNum}`,\n col: 1,\n row: rowNum\n });\n spec.axes[0].id = `axesRow${rowNum}`;\n spec.axes[0].regionIndex = Array.from(Array(this._spec.series.length - 1), (_, index) => index + 1);\n rowNum++;\n // }\n\n // 遍历series\n // 1. 在spec.layout => elements、region数组和spec.axes的数组中中添加元素\n // 2. 为series绑定regionIndex\n // 3. 统计rowNum\n // 4. 用空行拟合series padding\n spec?.series?.forEach((seriesSpec: ISequenceSeriesSpec) => {\n if (\n ([SeriesTypeEnum.bar, SeriesTypeEnum.line, SeriesTypeEnum.area, SeriesTypeEnum.dot] as string[]).includes(\n seriesSpec.type\n )\n ) {\n // elements数组\n elements.push({\n modelId: `${seriesSpec.type}Row${rowNum}`,\n col: 1,\n row: rowNum\n });\n elements.push({\n modelId: `axesLeftRow${rowNum}`,\n col: 0,\n row: rowNum\n });\n\n // region数组\n region.push({\n id: `${seriesSpec.type}Row${rowNum}`,\n clip: false\n });\n\n rowHeight.push({\n index: rowNum,\n size: seriesSpec?.height || defaultSeriesRowHeight\n });\n\n // axes数组添加left axes(每个series都需要一个left axes)\n axes.push({\n orient: 'left',\n id: `axesLeftRow${rowNum}`,\n type: seriesSpec.type === SeriesTypeEnum.dot ? 'band' : 'linear',\n visible: seriesSpec.type !== SeriesTypeEnum.dot,\n\n // 对于bar series,axes title模拟bar title\n title: {\n visible: true,\n // 特殊处理时序图的 title 样式,默认的坐标轴左右轴会进行旋转\n autoRotate: false,\n style: {\n text: (seriesSpec as any)?.barTitle,\n dx: -20,\n textBaseline: 'middle',\n textAlign: 'end'\n }\n },\n // 对于bar series,axes grid模拟series分割线\n grid: {\n visible:\n typeof (seriesSpec as any)?.grid?.visible === 'boolean' ? (seriesSpec as any)?.grid?.visible : true, // bar grid默认绘制\n style: (datum: Datum, index: number) => {\n let lineWidth = 0;\n if (index === 0) {\n const style = (seriesSpec as any)?.grid?.style;\n\n // 兼容一下spec中通过strokeWidth申明的方式\n lineWidth = style?.lineWidth ?? style?.strokeWidth ?? 1;\n }\n return {\n lineWidth,\n stroke: (seriesSpec as any)?.grid?.style?.stroke || '#dfdfdf',\n lineDash: [0, 0]\n };\n }\n },\n // 其他轴元素隐藏\n domainLine: {\n visible: false\n },\n tick: {\n visible: false\n },\n label: {\n visible: false\n },\n\n // 绑定regionIndex\n regionIndex: region.length - 1\n });\n\n // scrollBar 内置\n if (seriesSpec.type === SeriesTypeEnum.dot) {\n elements.push({\n modelId: `scrollBarRightRow${rowNum}`,\n col: 2,\n row: rowNum\n });\n const dataLength = this._getSeriesDataLength(spec, seriesSpec);\n let ratio = 0;\n if (dataLength) {\n ratio = (seriesSpec?.height || defaultSeriesRowHeight) / (dataLength * 30);\n }\n // scrollBar数组增加一个right scrollBar\n scrollBar.push({\n orient: 'right',\n visible: seriesSpec.type === SeriesTypeEnum.dot && ratio < 1,\n id: `scrollBarRightRow${rowNum}`,\n start: 0,\n end: Math.min(ratio, 1),\n filterMode: IFilterMode.axis,\n regionIndex: region.length - 1,\n axisId: `axesLeftRow${rowNum}`,\n ...array(spec?.scrollBar)[0]\n });\n }\n\n // seriesSpec绑定regionIndex\n seriesSpec.regionIndex = region.length - 1;\n\n rowNum++;\n\n // 增加空行,拟合series padding效果\n rowHeight.push({\n index: rowNum,\n size: seriesSpec?.padding || defaultSeriesPadding\n });\n rowNum++;\n\n // chart的leftAppendPadding用于具体元素的dx偏移\n (seriesSpec as any).leftAppendPadding = leftAppendPadding;\n\n // title和subTitle自动定位到画布最左端\n if (seriesSpec.type === SeriesTypeEnum.dot) {\n (seriesSpec as any).title.style.dx = -leftAppendPadding;\n (seriesSpec as any).subTitle.style.dx = -leftAppendPadding;\n }\n }\n });\n\n // 对于link series,所有属性跟随它绑定的dot series\n spec?.series?.forEach((seriesSpec: ISequenceSeriesSpec) => {\n if (seriesSpec.type === SeriesTypeEnum.link) {\n const dotRowNum = seriesSpec.dotSeriesIndex + 1;\n elements.push({\n modelId: `${seriesSpec.type}Row${dotRowNum}`,\n col: 1,\n row: dotRowNum - 1\n });\n seriesSpec.regionIndex = spec.series[seriesSpec.dotSeriesIndex].regionIndex;\n (seriesSpec as any).leftAppendPadding = leftAppendPadding;\n (seriesSpec as any).height = (spec.series[seriesSpec.dotSeriesIndex] as any).height;\n (seriesSpec as any).clipHeight = (spec.series[seriesSpec.dotSeriesIndex] as any).clipHeight;\n }\n });\n\n // 添加legends和datazoom的regionIndex\n if (spec?.legends) {\n this.addAttrToComponentSpec(spec.legends, 'regionIndex', [region.length - 1]);\n }\n // if ((spec as any)?.dataZoom) {\n // (spec as any).dataZoom[0].regionIndex = Array.from({length: region.length - 1},(item, index)=> index+1);\n // }\n\n const layout: IGridLayoutSpec = {\n type: 'grid',\n col: 4,\n row: rowNum,\n colWidth: [\n {\n index: 0,\n size: leftAppendPadding\n },\n {\n index: 2,\n size: SCROLL_BAR_DEFAULT_SIZE\n },\n {\n index: 3,\n size: rightAppendPadding\n }\n ],\n rowHeight: rowHeight,\n elements: elements\n };\n\n spec.layout = layout;\n spec.region = region;\n spec.axes?.push(...axes);\n spec.scrollBar = scrollBar;\n }\n\n /**\n * @override\n * @description 主要是将link series关联的dot data放到link series中\n */\n createSeries(seriesSpec: ISequenceSeriesSpec[]) {\n seriesSpec.forEach((spec, index) => {\n // 自动填充数据\n if (!spec.data) {\n spec.data = this._chartData.getSeriesData(spec.dataId, spec.dataIndex);\n }\n\n if (spec.type === SeriesTypeEnum.link) {\n spec.dotSeriesSpec = this._spec.series[spec.dotSeriesIndex];\n }\n\n let region: IRegion | undefined;\n if (spec.regionId) {\n region = this.getRegionsInUserId(spec.regionId);\n }\n if (!region) {\n region = this.getRegionsInIndex(spec.regionIndex ? [spec.regionIndex] : undefined)[0];\n }\n if (!region) {\n return;\n }\n const series = Factory.createSeries(spec.type, spec, {\n ...this._modelOption,\n region,\n specIndex: index,\n specKey: 'series',\n globalScale: this._globalScale\n } as ISeriesOption);\n\n if (series) {\n series.created();\n this._series.push(series);\n region.addSeries(series);\n }\n });\n }\n\n addAttrToComponentSpec(componentSpec: any, attr: string, value: any) {\n if (Array.isArray(componentSpec)) {\n componentSpec[0][attr] = value;\n } else {\n componentSpec[attr] = value;\n }\n return componentSpec;\n }\n\n private _getSeriesDataLength(spec: any, seriesSpec: any) {\n if (seriesSpec.data) {\n const _d = array(seriesSpec.data)[0];\n if (_d instanceof DataView) {\n return _d.latestData?.length;\n }\n return _d.values?.length;\n }\n const dataTemp = array(spec.data).find((_d, index) => {\n if (seriesSpec.dataId) {\n if (_d instanceof DataView) {\n return _d.name === seriesSpec.dataId;\n }\n return _d.id === seriesSpec.dataId;\n }\n return seriesSpec.dataIndex === index;\n });\n if (!dataTemp) {\n return 0;\n }\n if (dataTemp instanceof DataView) {\n return dataTemp.latestData.length;\n }\n return dataTemp.values.length;\n }\n}\n\nexport const registerSequenceChart = () => {\n registerDotSeries();\n registerLinkSeries();\n Factory.registerChart(SequenceChart.type, SequenceChart);\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { ITheme } from '../../theme/interface';
|
|
2
1
|
import type { IOrientType, IPolarOrientType } from '../../typings';
|
|
3
2
|
import type { AxisType, ICommonAxisSpec, ILinearAxisSpec } from './interface';
|
|
3
|
+
import type { IModelOption } from '../../model/interface';
|
|
4
4
|
export declare const DEFAULT_TITLE_STYLE: {
|
|
5
5
|
left: {
|
|
6
6
|
textAlign: string;
|
|
@@ -24,5 +24,5 @@ export declare function getLinearAxisSpecDomain(axisSpec: ILinearAxisSpec, defau
|
|
|
24
24
|
};
|
|
25
25
|
export declare function isValidCartesianAxis(spec: any): boolean;
|
|
26
26
|
export declare function isValidPolarAxis(spec: any): boolean;
|
|
27
|
-
export declare const getCartesianAxisTheme: (orient: IOrientType, type: AxisType,
|
|
28
|
-
export declare const getPolarAxisTheme: (orient: IPolarOrientType, type: AxisType,
|
|
27
|
+
export declare const getCartesianAxisTheme: (orient: IOrientType, type: AxisType, option: Partial<IModelOption>) => any;
|
|
28
|
+
export declare const getPolarAxisTheme: (orient: IPolarOrientType, type: AxisType, option: Partial<IModelOption>) => any;
|
|
@@ -6,6 +6,8 @@ import { transformComponentStyle } from "../../util/style";
|
|
|
6
6
|
|
|
7
7
|
import { isXAxis } from "./cartesian/util";
|
|
8
8
|
|
|
9
|
+
import { getComponentThemeFromOption } from "../util";
|
|
10
|
+
|
|
9
11
|
export const DEFAULT_TITLE_STYLE = {
|
|
10
12
|
left: {
|
|
11
13
|
textAlign: "center",
|
|
@@ -49,15 +51,15 @@ export function isValidPolarAxis(spec) {
|
|
|
49
51
|
return "angle" === orient || "radius" === orient;
|
|
50
52
|
}
|
|
51
53
|
|
|
52
|
-
export const getCartesianAxisTheme = (orient, type,
|
|
53
|
-
var _a
|
|
54
|
-
const
|
|
55
|
-
return mergeSpec({}, axis, axisTypeTheme, axisTheme);
|
|
54
|
+
export const getCartesianAxisTheme = (orient, type, option) => {
|
|
55
|
+
var _a;
|
|
56
|
+
const axisTypeTheme = null !== (_a = "band" === type ? getComponentThemeFromOption("axisBand", option) : [ "linear", "log", "symlog" ].includes(type) ? getComponentThemeFromOption("axisLinear", option) : {}) && void 0 !== _a ? _a : {}, axisTheme = isXAxis(orient) ? getComponentThemeFromOption("axisX", option) : getComponentThemeFromOption("axisY", option);
|
|
57
|
+
return mergeSpec({}, getComponentThemeFromOption("axis", option), axisTypeTheme, axisTheme);
|
|
56
58
|
};
|
|
57
59
|
|
|
58
|
-
export const getPolarAxisTheme = (orient, type,
|
|
59
|
-
var _a
|
|
60
|
-
const
|
|
61
|
-
return mergeSpec({}, axis, axisTypeTheme,
|
|
60
|
+
export const getPolarAxisTheme = (orient, type, option) => {
|
|
61
|
+
var _a;
|
|
62
|
+
const axisTypeTheme = null !== (_a = "band" === type ? getComponentThemeFromOption("axisBand", option) : "linear" === type ? getComponentThemeFromOption("axisLinear", option) : {}) && void 0 !== _a ? _a : {}, axisTheme = getComponentThemeFromOption("angle" === orient ? "axisAngle" : "axisRadius", option);
|
|
63
|
+
return mergeSpec({}, getComponentThemeFromOption("axis", option), axisTypeTheme, axisTheme);
|
|
62
64
|
};
|
|
63
65
|
//# sourceMappingURL=util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/axis/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/component/axis/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import { get } from '@visactor/vutils';\nimport { mergeSpec } from '../../util';\nimport type { IOrientType, IPolarOrientType } from '../../typings';\nimport type { AxisType, ICommonAxisSpec, ILinearAxisSpec } from './interface';\nimport { transformComponentStyle } from '../../util/style';\nimport { isXAxis } from './cartesian/util';\nimport type { IModelOption } from '../../model/interface';\nimport { getComponentThemeFromOption } from '../util';\n\nexport const DEFAULT_TITLE_STYLE = {\n left: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n right: {\n textAlign: 'center',\n textBaseline: 'bottom'\n },\n radius: {},\n angle: {}\n};\n\nexport function transformAxisLineStyle(lineCfg: any) {\n lineCfg = transformComponentStyle(lineCfg);\n lineCfg.startSymbol = transformComponentStyle(lineCfg.startSymbol);\n lineCfg.endSymbol = transformComponentStyle(lineCfg.endSymbol);\n\n return lineCfg;\n}\n\nexport function getAxisLabelOffset(axisSpec: ICommonAxisSpec) {\n let labelOffset = 0;\n if (get(axisSpec, 'tick.visible')) {\n labelOffset += get(axisSpec, 'tick.tickSize');\n }\n\n if (get(axisSpec, 'label.visible')) {\n labelOffset += get(axisSpec, 'label.space');\n }\n\n return labelOffset;\n}\n\nexport function getLinearAxisSpecDomain(\n axisSpec: ILinearAxisSpec,\n defaultDomain?: {\n min?: number;\n max?: number;\n }\n) {\n // 兼容策略\n return {\n min: axisSpec.min ?? axisSpec.range?.min ?? defaultDomain?.min,\n max: axisSpec.max ?? axisSpec.range?.max ?? defaultDomain?.max\n };\n}\n\nexport function isValidCartesianAxis(spec: any) {\n const orient = spec?.orient;\n return orient === 'top' || orient === 'bottom' || orient === 'left' || orient === 'right' || orient === 'z';\n}\n\nexport function isValidPolarAxis(spec: any) {\n const orient = spec?.orient;\n return orient === 'angle' || orient === 'radius';\n}\n\nexport const getCartesianAxisTheme = (orient: IOrientType, type: AxisType, option: Partial<IModelOption>) => {\n const axisTypeTheme =\n (type === 'band'\n ? getComponentThemeFromOption('axisBand', option)\n : (['linear', 'log', 'symlog'] as AxisType[]).includes(type)\n ? getComponentThemeFromOption('axisLinear', option)\n : {}) ?? {};\n const axisTheme = isXAxis(orient)\n ? getComponentThemeFromOption('axisX', option)\n : getComponentThemeFromOption('axisY', option);\n return mergeSpec({}, getComponentThemeFromOption('axis', option), axisTypeTheme, axisTheme);\n};\n\nexport const getPolarAxisTheme = (orient: IPolarOrientType, type: AxisType, option: Partial<IModelOption>) => {\n const axisTypeTheme =\n (type === 'band'\n ? getComponentThemeFromOption('axisBand', option)\n : type === 'linear'\n ? getComponentThemeFromOption('axisLinear', option)\n : {}) ?? {};\n const axisTheme =\n orient === 'angle'\n ? getComponentThemeFromOption('axisAngle', option)\n : getComponentThemeFromOption('axisRadius', option);\n return mergeSpec({}, getComponentThemeFromOption('axis', option), axisTypeTheme, axisTheme);\n};\n"]}
|
|
@@ -26,8 +26,7 @@ export declare abstract class BaseComponent<T extends IComponentSpec = IComponen
|
|
|
26
26
|
x: number;
|
|
27
27
|
y: number;
|
|
28
28
|
};
|
|
29
|
-
|
|
30
|
-
protected _initTheme(theme?: any): void;
|
|
29
|
+
protected _getTheme(): any;
|
|
31
30
|
protected _mergeThemeToSpec(): void;
|
|
32
31
|
protected getContainer(): IGroup;
|
|
33
32
|
_compareSpec(): {
|
|
@@ -1,29 +1,3 @@
|
|
|
1
|
-
var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
2
|
-
return new (P || (P = Promise))((function(resolve, reject) {
|
|
3
|
-
function fulfilled(value) {
|
|
4
|
-
try {
|
|
5
|
-
step(generator.next(value));
|
|
6
|
-
} catch (e) {
|
|
7
|
-
reject(e);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
function rejected(value) {
|
|
11
|
-
try {
|
|
12
|
-
step(generator.throw(value));
|
|
13
|
-
} catch (e) {
|
|
14
|
-
reject(e);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
function step(result) {
|
|
18
|
-
var value;
|
|
19
|
-
result.done ? resolve(result.value) : (value = result.value, value instanceof P ? value : new P((function(resolve) {
|
|
20
|
-
resolve(value);
|
|
21
|
-
}))).then(fulfilled, rejected);
|
|
22
|
-
}
|
|
23
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
-
}));
|
|
25
|
-
};
|
|
26
|
-
|
|
27
1
|
import { BaseModel } from "../../model/base-model";
|
|
28
2
|
|
|
29
3
|
import { ComponentPluginService } from "../../plugin/components/plugin-service";
|
|
@@ -36,7 +10,7 @@ import { Event_Source_Type } from "../../constant";
|
|
|
36
10
|
|
|
37
11
|
import { AnimateManager } from "../../animation/animate-manager";
|
|
38
12
|
|
|
39
|
-
import { normalizeLayoutPaddingSpec } from "../../util";
|
|
13
|
+
import { normalizeLayoutPaddingSpec, preprocessSpecOrTheme } from "../../util";
|
|
40
14
|
|
|
41
15
|
export class BaseComponent extends BaseModel {
|
|
42
16
|
getRegions() {
|
|
@@ -72,19 +46,8 @@ export class BaseComponent extends BaseModel {
|
|
|
72
46
|
y: markEventParams.event.viewY - this.getLayoutStartPoint().y
|
|
73
47
|
};
|
|
74
48
|
}
|
|
75
|
-
|
|
76
|
-
return
|
|
77
|
-
const modifyConfig = () => (this.reInit(theme), {
|
|
78
|
-
change: !0,
|
|
79
|
-
reMake: !1
|
|
80
|
-
});
|
|
81
|
-
noRender ? modifyConfig() : yield this._option.globalInstance.updateCustomConfigAndRerender(modifyConfig);
|
|
82
|
-
}));
|
|
83
|
-
}
|
|
84
|
-
_initTheme(theme) {
|
|
85
|
-
const globalTheme = this._option.getTheme();
|
|
86
|
-
theme ? super._initTheme(theme) : super._initTheme(getComponentThemeFromGlobalTheme(this.type, globalTheme, this._originalSpec, this._option.getChart())),
|
|
87
|
-
this._mergeThemeToSpec();
|
|
49
|
+
_getTheme() {
|
|
50
|
+
return preprocessSpecOrTheme("theme", getComponentThemeFromGlobalTheme(this.type, this._option, this._originalSpec), this.getColorScheme());
|
|
88
51
|
}
|
|
89
52
|
_mergeThemeToSpec() {
|
|
90
53
|
super._mergeThemeToSpec();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/base/base-component.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAInD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,gCAAgC,EAAE,MAAM,QAAQ,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAGxD,MAAM,OAAgB,aACpB,SAAQ,SAAY;IASpB,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAID,OAAO;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IAID,YAAY,IAAO,EAAE,OAAyB;QAC5C,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QApBvB,SAAI,GAAW,WAAW,CAAC;QAClB,cAAS,GAAW,WAAW,CAAC;QAI/B,aAAQ,GAAc,EAAE,CAAC;QAuJzB,mBAAc,GAAG,CAAC,SAAmB,EAAE,KAAU,EAAE,IAAY,EAAE,OAAY,IAAI,EAAE,QAAe,IAAI,EAAE,EAAE;;YAClH,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,EACJ;gBACE,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,SAAS;gBACf,KAAK;gBACL,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,iBAAiB,CAAC,KAAK;gBAC/B,KAAK,EAAE,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,cAAc,0CAAE,QAAQ,EAAE;aAChD,EACD,OAAO,CACR,CAAC;QACJ,CAAC,CAAC;QArJA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEvD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC;gBAChC,WAAW,EAAE,OAAO,CAAC,WAAW;aACjC,CAAC,CAAC;SACJ;IACH,CAAC;IAKS,UAAU,CAAC,EAAsC;QACzD,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;SAC3D;IACH,CAAC;IAES,QAAQ,CAAC,eAAgC;QACjD,OAAO;YACL,CAAC,EAAG,eAAe,CAAC,KAAa,CAAC,KAAK,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACtE,CAAC,EAAG,eAAe,CAAC,KAAa,CAAC,KAAK,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;SACvE,CAAC;IACJ,CAAC;IAEK,eAAe,CAAC,KAAU,EAAE,QAAkB;;YAClD,MAAM,YAAY,GAAG,GAAG,EAAE;gBAExB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YACzC,CAAC,CAAC;YAEF,IAAI,QAAQ,EAAE;gBACZ,YAAY,EAAE,CAAC;aAChB;iBAAM;gBACL,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,6BAA6B,CAAC,YAAY,CAAC,CAAC;aAC/E;QACH,CAAC;KAAA;IAES,UAAU,CAAC,KAAW;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAE5C,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACL,KAAK,CAAC,UAAU,CACd,gCAAgC,CAC9B,IAAI,CAAC,IAAyB,EAC9B,WAAW,EACX,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CACxB,CACF,CAAC;SACH;QAGD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAES,iBAAiB;QACzB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAG1B,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAClE,IAAI,cAAc,IAAI,OAAO,IAAI,MAAM,EAAE;YACvC,IAAI,CAAC,KAAK,CAAC,OAAO,mCACb,0BAA0B,CAAC,OAAO,CAAC,KACtC,CAAC,MAAM,CAAC,EAAE,CAAC,GACZ,CAAC;SACH;IACH,CAAC;IAES,YAAY;;QACpB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC;SACpG;QAED,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAKD,YAAY;;QACV,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAClB,MAAM,CAAC,MAAM,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;;gBAC9E,OAAO,OAAO,CAAC,MAAA,IAAI,CAAC,aAAa,0CAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,OAAO,MAAW,IAAI,CAAC,OAAO,EAAG,CAAC,OAAO,EAAE;YACjE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,KAAK;;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC/C,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,EAAE;YACnC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;;gBACrB,IAAI,CAAC,EAAE;oBACL,MAAA,IAAI,CAAC,YAAY,EAAE,0CAAE,WAAW,CAAC,CAAqB,CAAC,CAAC;oBACxD,CAAC,GAAG,IAAI,CAAC;iBACV;YACH,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,MAAA,IAAI,CAAC,aAAa,0CAAE,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,YAAY,CAAC,KAA2B;QACtC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;;YAC1B,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACrB,MAAA,CAAC,CAAC,UAAU,EAAE,0CAAE,SAAS,CAAC;gBACxB,OAAO,EAAE;oBACP,KAAK,EAAE,IAAI;iBACZ;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAmBD,gBAAgB;;QACd,OAAO,MAAA,MAAA,MAAA,IAAI,CAAC,oBAAoB,EAAE,0CAAG,CAAC,CAAC,0CAAE,UAAU,mCAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAClF,CAAC;CACF","file":"base-component.js","sourcesContent":["import type { IGraphic, IGroup, INode } from '@visactor/vrender-core';\nimport { BaseModel } from '../../model/base-model';\nimport type { IRegion } from '../../region/interface';\nimport type { ComponentTypeEnum, IComponent, IComponentOption } from '../interface';\nimport type { BaseEventParams } from '../../event/interface';\nimport { ComponentPluginService } from '../../plugin/components/plugin-service';\nimport type { IComponentPluginService, IComponentPlugin } from '../../plugin/components/interface';\nimport { isEqual } from '@visactor/vutils';\nimport { getComponentThemeFromGlobalTheme } from './util';\nimport type { IGroupMark } from '@visactor/vgrammar-core';\nimport { Event_Source_Type } from '../../constant';\nimport type { IAnimate } from '../../animation/interface';\nimport { AnimateManager } from '../../animation/animate-manager';\nimport type { Datum } from '../../typings';\nimport { normalizeLayoutPaddingSpec } from '../../util';\nimport type { IComponentSpec } from './interface';\n\nexport abstract class BaseComponent<T extends IComponentSpec = IComponentSpec>\n extends BaseModel<T>\n implements IComponent\n{\n name: string = 'component';\n readonly modelType: string = 'component';\n pluginService?: IComponentPluginService;\n protected declare _option: IComponentOption;\n\n protected _regions: IRegion[] = [];\n getRegions() {\n return this._regions;\n }\n\n protected _container: IGroup;\n\n created() {\n super.created();\n this.pluginService = new ComponentPluginService(this);\n }\n\n animate?: IAnimate;\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._regions = options.getRegionsInIndex();\n this.layoutBindRegionID = this._regions.map(x => x.id);\n // 创建组件自己的动画管理器\n if (this._option.animation) {\n this.animate = new AnimateManager({\n getCompiler: options.getCompiler\n });\n }\n }\n\n abstract changeRegions(regions: IRegion[]): void;\n abstract getVRenderComponents(): IGraphic[];\n\n protected callPlugin(cb: (plugin: IComponentPlugin) => void) {\n if (this.pluginService) {\n this.pluginService.getAll().forEach(plugin => cb(plugin));\n }\n }\n\n protected eventPos(markEventParams: BaseEventParams) {\n return {\n x: (markEventParams.event as any).viewX - this.getLayoutStartPoint().x,\n y: (markEventParams.event as any).viewY - this.getLayoutStartPoint().y\n };\n }\n\n async setCurrentTheme(theme: any, noRender?: boolean) {\n const modifyConfig = () => {\n // 重新初始化\n this.reInit(theme);\n\n return { change: true, reMake: false };\n };\n\n if (noRender) {\n modifyConfig();\n } else {\n await this._option.globalInstance.updateCustomConfigAndRerender(modifyConfig);\n }\n }\n\n protected _initTheme(theme?: any) {\n const globalTheme = this._option.getTheme();\n\n if (theme) {\n super._initTheme(theme);\n } else {\n super._initTheme(\n getComponentThemeFromGlobalTheme(\n this.type as ComponentTypeEnum,\n globalTheme,\n this._originalSpec,\n this._option.getChart()\n )\n );\n }\n\n // 将 theme merge 到 spec 中\n this._mergeThemeToSpec();\n }\n\n protected _mergeThemeToSpec() {\n super._mergeThemeToSpec();\n\n // 默认忽略外侧 padding\n const { padding, noOuterPadding = true, orient } = this.getSpec();\n if (noOuterPadding && padding && orient) {\n this._spec.padding = {\n ...normalizeLayoutPaddingSpec(padding),\n [orient]: 0\n };\n }\n }\n\n protected getContainer() {\n if (!this._container) {\n this._container = this._option?.globalInstance.getStage().find(node => node.name === 'root', true);\n }\n\n return this._container;\n }\n\n /**\n * updateSpec\n */\n _compareSpec() {\n const result = super._compareSpec();\n if (!result.reMake) {\n result.reMake = ['seriesId', 'seriesIndex', 'regionId', 'regionIndex'].some(k => {\n return isEqual(this._originalSpec?.[k], this.getSpec()[k]);\n });\n }\n if (this._originalSpec?.visible !== (<any>this.getSpec()).visible) {\n result.reCompile = true;\n }\n return result;\n }\n\n release() {\n super.release();\n this.clear();\n }\n\n clear() {\n const components = this.getVRenderComponents();\n if (components && components.length) {\n components.forEach(c => {\n if (c) {\n this.getContainer()?.removeChild(c as unknown as INode);\n c = null;\n }\n });\n }\n this._container = null;\n this.pluginService?.disposeAll();\n this.pluginService = null;\n }\n\n compile(): void {\n this.compileSignal();\n this.compileMarks();\n }\n\n compileMarks(group?: string | IGroupMark) {\n this.getMarks().forEach(m => {\n m.compile({ group });\n m.getProduct()?.configure({\n context: {\n model: this\n }\n });\n });\n }\n\n // 代理组件事件\n protected _delegateEvent = (component: IGraphic, event: any, type: string, item: any = null, datum: Datum = null) => {\n this.event.emit(\n type,\n {\n model: this,\n node: component,\n event,\n item: item,\n datum: datum,\n source: Event_Source_Type.chart,\n chart: this._option?.globalInstance?.getChart()\n },\n 'model'\n );\n };\n\n getGraphicBounds() {\n return this.getVRenderComponents()?.[0]?.AABBBounds ?? super.getGraphicBounds();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/base/base-component.ts"],"names":[],"mappings":"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","file":"base-component.js","sourcesContent":["import type { IGraphic, IGroup, INode } from '@visactor/vrender-core';\nimport { BaseModel } from '../../model/base-model';\nimport type { IRegion } from '../../region/interface';\nimport type { ComponentTypeEnum, IComponent, IComponentOption } from '../interface';\nimport type { BaseEventParams } from '../../event/interface';\nimport { ComponentPluginService } from '../../plugin/components/plugin-service';\nimport type { IComponentPluginService, IComponentPlugin } from '../../plugin/components/interface';\nimport { isEqual } from '@visactor/vutils';\nimport { getComponentThemeFromGlobalTheme } from './util';\nimport type { IGroupMark } from '@visactor/vgrammar-core';\nimport { Event_Source_Type } from '../../constant';\nimport type { IAnimate } from '../../animation/interface';\nimport { AnimateManager } from '../../animation/animate-manager';\nimport type { Datum } from '../../typings';\nimport { normalizeLayoutPaddingSpec, preprocessSpecOrTheme } from '../../util';\nimport type { IComponentSpec } from './interface';\n\nexport abstract class BaseComponent<T extends IComponentSpec = IComponentSpec>\n extends BaseModel<T>\n implements IComponent\n{\n name: string = 'component';\n readonly modelType: string = 'component';\n pluginService?: IComponentPluginService;\n protected declare _option: IComponentOption;\n\n protected _regions: IRegion[] = [];\n getRegions() {\n return this._regions;\n }\n\n protected _container: IGroup;\n\n created() {\n super.created();\n this.pluginService = new ComponentPluginService(this);\n }\n\n animate?: IAnimate;\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._regions = options.getRegionsInIndex();\n this.layoutBindRegionID = this._regions.map(x => x.id);\n // 创建组件自己的动画管理器\n if (this._option.animation) {\n this.animate = new AnimateManager({\n getCompiler: options.getCompiler\n });\n }\n }\n\n abstract changeRegions(regions: IRegion[]): void;\n abstract getVRenderComponents(): IGraphic[];\n\n protected callPlugin(cb: (plugin: IComponentPlugin) => void) {\n if (this.pluginService) {\n this.pluginService.getAll().forEach(plugin => cb(plugin));\n }\n }\n\n protected eventPos(markEventParams: BaseEventParams) {\n return {\n x: (markEventParams.event as any).viewX - this.getLayoutStartPoint().x,\n y: (markEventParams.event as any).viewY - this.getLayoutStartPoint().y\n };\n }\n\n protected _getTheme() {\n return preprocessSpecOrTheme(\n 'theme',\n getComponentThemeFromGlobalTheme(this.type as ComponentTypeEnum, this._option, this._originalSpec),\n this.getColorScheme()\n );\n }\n\n protected _mergeThemeToSpec() {\n super._mergeThemeToSpec();\n\n // 默认忽略外侧 padding\n const { padding, noOuterPadding = true, orient } = this.getSpec();\n if (noOuterPadding && padding && orient) {\n this._spec.padding = {\n ...normalizeLayoutPaddingSpec(padding),\n [orient]: 0\n };\n }\n }\n\n protected getContainer() {\n if (!this._container) {\n this._container = this._option?.globalInstance.getStage().find(node => node.name === 'root', true);\n }\n\n return this._container;\n }\n\n /**\n * updateSpec\n */\n _compareSpec() {\n const result = super._compareSpec();\n if (!result.reMake) {\n result.reMake = ['seriesId', 'seriesIndex', 'regionId', 'regionIndex'].some(k => {\n return isEqual(this._originalSpec?.[k], this.getSpec()[k]);\n });\n }\n if (this._originalSpec?.visible !== (<any>this.getSpec()).visible) {\n result.reCompile = true;\n }\n return result;\n }\n\n release() {\n super.release();\n this.clear();\n }\n\n clear() {\n const components = this.getVRenderComponents();\n if (components && components.length) {\n components.forEach(c => {\n if (c) {\n this.getContainer()?.removeChild(c as unknown as INode);\n c = null;\n }\n });\n }\n this._container = null;\n this.pluginService?.disposeAll();\n this.pluginService = null;\n }\n\n compile(): void {\n this.compileSignal();\n this.compileMarks();\n }\n\n compileMarks(group?: string | IGroupMark) {\n this.getMarks().forEach(m => {\n m.compile({ group });\n m.getProduct()?.configure({\n context: {\n model: this\n }\n });\n });\n }\n\n // 代理组件事件\n protected _delegateEvent = (component: IGraphic, event: any, type: string, item: any = null, datum: Datum = null) => {\n this.event.emit(\n type,\n {\n model: this,\n node: component,\n event,\n item: item,\n datum: datum,\n source: Event_Source_Type.chart,\n chart: this._option?.globalInstance?.getChart()\n },\n 'model'\n );\n };\n\n getGraphicBounds() {\n return this.getVRenderComponents()?.[0]?.AABBBounds ?? super.getGraphicBounds();\n }\n}\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { ITheme } from '../../theme';
|
|
1
|
+
import type { IModelOption } from '../../model/interface';
|
|
3
2
|
import { ComponentTypeEnum } from '../interface';
|
|
4
|
-
export declare function getComponentThemeFromGlobalTheme(type: ComponentTypeEnum,
|
|
3
|
+
export declare function getComponentThemeFromGlobalTheme(type: ComponentTypeEnum, option: Partial<IModelOption>, componentSpec: any): any;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { getThemeFromOption } from "../../theme/util";
|
|
2
|
+
|
|
1
3
|
import { getOrient } from "../axis/cartesian/util";
|
|
2
4
|
|
|
3
5
|
import { getCartesianAxisTheme, getPolarAxisTheme } from "../axis/util";
|
|
@@ -8,48 +10,49 @@ import { ComponentTypeEnum } from "../interface";
|
|
|
8
10
|
|
|
9
11
|
import { getLayout } from "../legend/util";
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
import { getComponentThemeFromOption } from "../util";
|
|
14
|
+
|
|
15
|
+
export function getComponentThemeFromGlobalTheme(type, option, componentSpec) {
|
|
16
|
+
var _a;
|
|
17
|
+
const chart = null === (_a = option.getChart) || void 0 === _a ? void 0 : _a.call(option);
|
|
13
18
|
switch (type) {
|
|
14
19
|
case ComponentTypeEnum.cartesianBandAxis:
|
|
15
|
-
return getCartesianAxisTheme(getOrient(componentSpec), "band",
|
|
20
|
+
return getCartesianAxisTheme(getOrient(componentSpec), "band", option);
|
|
16
21
|
|
|
17
22
|
case ComponentTypeEnum.cartesianLinearAxis:
|
|
18
|
-
return getCartesianAxisTheme(getOrient(componentSpec), "linear",
|
|
23
|
+
return getCartesianAxisTheme(getOrient(componentSpec), "linear", option);
|
|
19
24
|
|
|
20
25
|
case ComponentTypeEnum.cartesianLogAxis:
|
|
21
|
-
return getCartesianAxisTheme(getOrient(componentSpec), "log",
|
|
26
|
+
return getCartesianAxisTheme(getOrient(componentSpec), "log", option);
|
|
22
27
|
|
|
23
28
|
case ComponentTypeEnum.cartesianSymlogAxis:
|
|
24
|
-
return getCartesianAxisTheme(getOrient(componentSpec), "symlog",
|
|
29
|
+
return getCartesianAxisTheme(getOrient(componentSpec), "symlog", option);
|
|
25
30
|
|
|
26
31
|
case ComponentTypeEnum.cartesianAxis:
|
|
27
32
|
case ComponentTypeEnum.cartesianTimeAxis:
|
|
28
|
-
return getCartesianAxisTheme(getOrient(componentSpec), void 0,
|
|
33
|
+
return getCartesianAxisTheme(getOrient(componentSpec), void 0, option);
|
|
29
34
|
|
|
30
35
|
case ComponentTypeEnum.polarBandAxis:
|
|
31
|
-
return getPolarAxisTheme(componentSpec.orient, "band",
|
|
36
|
+
return getPolarAxisTheme(componentSpec.orient, "band", option);
|
|
32
37
|
|
|
33
38
|
case ComponentTypeEnum.polarLinearAxis:
|
|
34
|
-
return getPolarAxisTheme(componentSpec.orient, "linear",
|
|
39
|
+
return getPolarAxisTheme(componentSpec.orient, "linear", option);
|
|
35
40
|
|
|
36
41
|
case ComponentTypeEnum.polarAxis:
|
|
37
|
-
return getPolarAxisTheme(componentSpec.orient, void 0,
|
|
42
|
+
return getPolarAxisTheme(componentSpec.orient, void 0, option);
|
|
38
43
|
|
|
39
44
|
case ComponentTypeEnum.cartesianCrosshair:
|
|
40
|
-
return getCartesianCrosshairTheme(
|
|
45
|
+
return getCartesianCrosshairTheme(option, chart);
|
|
41
46
|
|
|
42
47
|
case ComponentTypeEnum.polarCrosshair:
|
|
43
|
-
return getPolarCrosshairTheme(
|
|
48
|
+
return getPolarCrosshairTheme(option, chart);
|
|
44
49
|
|
|
45
50
|
case ComponentTypeEnum.colorLegend:
|
|
46
|
-
return null === (_a = theme.component) || void 0 === _a ? void 0 : _a.colorLegend[getLayout(componentSpec)];
|
|
47
|
-
|
|
48
51
|
case ComponentTypeEnum.sizeLegend:
|
|
49
|
-
return
|
|
52
|
+
return getThemeFromOption(`component.${type}.${getLayout(componentSpec)}`, option);
|
|
50
53
|
|
|
51
54
|
default:
|
|
52
|
-
return
|
|
55
|
+
return getComponentThemeFromOption(type, option);
|
|
53
56
|
}
|
|
54
57
|
}
|
|
55
58
|
//# sourceMappingURL=util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/base/util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/component/base/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAEtD,MAAM,UAAU,gCAAgC,CAC9C,IAAuB,EACvB,MAA6B,EAC7B,aAAkB;;IAElB,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,QAAQ,sDAAI,CAAC;IAClC,QAAQ,IAAI,EAAE;QACZ,KAAK,iBAAiB,CAAC,iBAAiB;YACtC,OAAO,qBAAqB,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACzE,KAAK,iBAAiB,CAAC,mBAAmB;YACxC,OAAO,qBAAqB,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3E,KAAK,iBAAiB,CAAC,gBAAgB;YACrC,OAAO,qBAAqB,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxE,KAAK,iBAAiB,CAAC,mBAAmB;YACxC,OAAO,qBAAqB,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3E,KAAK,iBAAiB,CAAC,aAAa,CAAC;QACrC,KAAK,iBAAiB,CAAC,iBAAiB;YACtC,OAAO,qBAAqB,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5E,KAAK,iBAAiB,CAAC,aAAa;YAClC,OAAO,iBAAiB,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACjE,KAAK,iBAAiB,CAAC,eAAe;YACpC,OAAO,iBAAiB,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnE,KAAK,iBAAiB,CAAC,SAAS;YAC9B,OAAO,iBAAiB,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACpE,KAAK,iBAAiB,CAAC,kBAAkB;YACvC,OAAO,0BAA0B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACnD,KAAK,iBAAiB,CAAC,cAAc;YACnC,OAAO,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/C,KAAK,iBAAiB,CAAC,WAAW,CAAC;QACnC,KAAK,iBAAiB,CAAC,UAAU;YAC/B,OAAO,kBAAkB,CAAC,aAAa,IAAI,IAAI,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACrF;YACE,OAAO,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KACpD;AACH,CAAC","file":"util.js","sourcesContent":["import type { IModelOption } from '../../model/interface';\nimport { getThemeFromOption } from '../../theme/util';\nimport { getOrient } from '../axis/cartesian/util';\nimport { getCartesianAxisTheme, getPolarAxisTheme } from '../axis/util';\nimport { getCartesianCrosshairTheme, getPolarCrosshairTheme } from '../crosshair/util';\nimport { ComponentTypeEnum } from '../interface';\nimport { getLayout } from '../legend/util';\nimport { getComponentThemeFromOption } from '../util';\n\nexport function getComponentThemeFromGlobalTheme(\n type: ComponentTypeEnum,\n option: Partial<IModelOption>,\n componentSpec: any\n) {\n const chart = option.getChart?.();\n switch (type) {\n case ComponentTypeEnum.cartesianBandAxis:\n return getCartesianAxisTheme(getOrient(componentSpec), 'band', option);\n case ComponentTypeEnum.cartesianLinearAxis:\n return getCartesianAxisTheme(getOrient(componentSpec), 'linear', option);\n case ComponentTypeEnum.cartesianLogAxis:\n return getCartesianAxisTheme(getOrient(componentSpec), 'log', option);\n case ComponentTypeEnum.cartesianSymlogAxis:\n return getCartesianAxisTheme(getOrient(componentSpec), 'symlog', option);\n case ComponentTypeEnum.cartesianAxis:\n case ComponentTypeEnum.cartesianTimeAxis:\n return getCartesianAxisTheme(getOrient(componentSpec), undefined, option);\n case ComponentTypeEnum.polarBandAxis:\n return getPolarAxisTheme(componentSpec.orient, 'band', option);\n case ComponentTypeEnum.polarLinearAxis:\n return getPolarAxisTheme(componentSpec.orient, 'linear', option);\n case ComponentTypeEnum.polarAxis:\n return getPolarAxisTheme(componentSpec.orient, undefined, option);\n case ComponentTypeEnum.cartesianCrosshair:\n return getCartesianCrosshairTheme(option, chart);\n case ComponentTypeEnum.polarCrosshair:\n return getPolarCrosshairTheme(option, chart);\n case ComponentTypeEnum.colorLegend:\n case ComponentTypeEnum.sizeLegend:\n return getThemeFromOption(`component.${type}.${getLayout(componentSpec)}`, option);\n default:\n return getComponentThemeFromOption(type, option);\n }\n}\n"]}
|
|
@@ -22,7 +22,7 @@ export class Brush extends BaseComponent {
|
|
|
22
22
|
this.name = ComponentTypeEnum.brush, this.layoutZIndex = LayoutZIndex.Brush, this._linkedSeries = [],
|
|
23
23
|
this._itemMap = {}, this._linkedItemMap = {}, this._inBrushElementsMap = {}, this._outOfBrushElementsMap = {},
|
|
24
24
|
this._linkedInBrushElementsMap = {}, this._linkedOutOfBrushElementsMap = {}, this._needInitOutState = !0,
|
|
25
|
-
this._cacheInteractiveRangeAttrs = [], this._needEnablePickable = !
|
|
25
|
+
this._cacheInteractiveRangeAttrs = [], this._needEnablePickable = !1;
|
|
26
26
|
}
|
|
27
27
|
init() {
|
|
28
28
|
var _a, _b;
|