@visactor/vchart 1.13.3 → 1.13.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/es5/index.js +1 -1
- package/build/index.es.js +134 -193
- package/build/index.js +134 -193
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/animation/spec.d.ts +9 -7
- package/cjs/animation/spec.js.map +1 -1
- package/cjs/component/axis/cartesian/interface/spec.js.map +1 -1
- package/cjs/component/axis/interface/common.js.map +1 -1
- package/cjs/component/axis/interface/spec.js.map +1 -1
- package/cjs/component/axis/mixin/util/break-data.js +3 -3
- package/cjs/component/axis/mixin/util/break-data.js.map +1 -1
- package/cjs/component/common/trigger/config.d.ts +2 -2
- package/cjs/component/common/trigger/config.js +2 -2
- package/cjs/component/common/trigger/config.js.map +1 -1
- package/cjs/component/crosshair/interface/spec.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/cjs/component/label/interface.js.map +1 -1
- package/cjs/component/legend/continuous/interface.js.map +1 -1
- package/cjs/component/legend/interface.js.map +1 -1
- package/cjs/component/marker/interface.js.map +1 -1
- package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
- package/cjs/component/marker/mark-area/interface/theme.js.map +1 -1
- package/cjs/component/title/interface/spec.js.map +1 -1
- package/cjs/component/tooltip/interface/spec.js.map +1 -1
- package/cjs/component/tooltip/interface/theme.js.map +1 -1
- package/cjs/component/tooltip/tooltip.js +9 -7
- package/cjs/component/tooltip/tooltip.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/interaction/interface.js.map +1 -1
- package/cjs/interaction/zoom/zoomable.js +13 -9
- package/cjs/interaction/zoom/zoomable.js.map +1 -1
- package/cjs/layout/interface.js.map +1 -1
- package/cjs/mark/interface/common.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/base.js +5 -1
- package/cjs/plugin/components/tooltip-handler/base.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js +5 -6
- package/cjs/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/style.d.ts +2 -1
- package/cjs/plugin/components/tooltip-handler/utils/style.js +13 -8
- package/cjs/plugin/components/tooltip-handler/utils/style.js.map +1 -1
- package/cjs/region/interface.js.map +1 -1
- package/cjs/region/region.js +3 -1
- package/cjs/region/region.js.map +1 -1
- package/cjs/series/area/interface.d.ts +3 -1
- package/cjs/series/area/interface.js.map +1 -1
- package/cjs/series/box-plot/interface.d.ts +1 -1
- package/cjs/series/box-plot/interface.js.map +1 -1
- package/cjs/series/circle-packing/interface.js.map +1 -1
- package/cjs/series/interface/common.js.map +1 -1
- package/cjs/series/map/interface.js.map +1 -1
- package/cjs/series/mixin/interface.js.map +1 -1
- package/cjs/series/polar/interface.js.map +1 -1
- package/cjs/series/progress/linear/interface.d.ts +1 -1
- package/cjs/series/progress/linear/interface.js.map +1 -1
- package/cjs/series/radar/interface.js.map +1 -1
- package/cjs/series/scatter/interface.js.map +1 -1
- package/cjs/series/word-cloud/base.js +4 -3
- package/cjs/series/word-cloud/base.js.map +1 -1
- package/cjs/series/word-cloud/interface.d.ts +1 -1
- package/cjs/series/word-cloud/interface.js.map +1 -1
- package/cjs/typings/layout.js.map +1 -1
- package/cjs/typings/spec/common.d.ts +18 -9
- package/cjs/typings/spec/common.js.map +1 -1
- package/cjs/typings/tooltip/line.js.map +1 -1
- package/cjs/typings/tooltip/shape.js.map +1 -1
- package/cjs/typings/tooltip/tooltip.js.map +1 -1
- package/cjs/typings/visual.js.map +1 -1
- package/esm/animation/spec.d.ts +9 -7
- package/esm/animation/spec.js.map +1 -1
- package/esm/component/axis/cartesian/interface/spec.js.map +1 -1
- package/esm/component/axis/interface/common.js.map +1 -1
- package/esm/component/axis/interface/spec.js.map +1 -1
- package/esm/component/axis/mixin/util/break-data.js +3 -3
- package/esm/component/axis/mixin/util/break-data.js.map +1 -1
- package/esm/component/common/trigger/config.d.ts +2 -2
- package/esm/component/common/trigger/config.js +2 -2
- package/esm/component/common/trigger/config.js.map +1 -1
- package/esm/component/crosshair/interface/spec.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/esm/component/label/interface.js.map +1 -1
- package/esm/component/legend/continuous/interface.js.map +1 -1
- package/esm/component/legend/interface.js.map +1 -1
- package/esm/component/marker/interface.js.map +1 -1
- package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
- package/esm/component/marker/mark-area/interface/theme.js.map +1 -1
- package/esm/component/title/interface/spec.js.map +1 -1
- package/esm/component/tooltip/interface/spec.js.map +1 -1
- package/esm/component/tooltip/interface/theme.js.map +1 -1
- package/esm/component/tooltip/tooltip.js +9 -7
- package/esm/component/tooltip/tooltip.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/interaction/interface.js.map +1 -1
- package/esm/interaction/zoom/zoomable.js +13 -9
- package/esm/interaction/zoom/zoomable.js.map +1 -1
- package/esm/layout/interface.js.map +1 -1
- package/esm/mark/interface/common.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/base.js +5 -1
- package/esm/plugin/components/tooltip-handler/base.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js +5 -4
- package/esm/plugin/components/tooltip-handler/dom-tooltip-handler.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/style.d.ts +2 -1
- package/esm/plugin/components/tooltip-handler/utils/style.js +11 -6
- package/esm/plugin/components/tooltip-handler/utils/style.js.map +1 -1
- package/esm/region/interface.js.map +1 -1
- package/esm/region/region.js +3 -1
- package/esm/region/region.js.map +1 -1
- package/esm/series/area/interface.d.ts +3 -1
- package/esm/series/area/interface.js.map +1 -1
- package/esm/series/box-plot/interface.d.ts +1 -1
- package/esm/series/box-plot/interface.js.map +1 -1
- package/esm/series/circle-packing/interface.js.map +1 -1
- package/esm/series/interface/common.js.map +1 -1
- package/esm/series/map/interface.js.map +1 -1
- package/esm/series/mixin/interface.js.map +1 -1
- package/esm/series/polar/interface.js.map +1 -1
- package/esm/series/progress/linear/interface.d.ts +1 -1
- package/esm/series/progress/linear/interface.js.map +1 -1
- package/esm/series/radar/interface.js.map +1 -1
- package/esm/series/scatter/interface.js.map +1 -1
- package/esm/series/word-cloud/base.js +4 -3
- package/esm/series/word-cloud/base.js.map +1 -1
- package/esm/series/word-cloud/interface.d.ts +1 -1
- package/esm/series/word-cloud/interface.js.map +1 -1
- package/esm/typings/layout.js.map +1 -1
- package/esm/typings/spec/common.d.ts +18 -9
- package/esm/typings/spec/common.js.map +1 -1
- package/esm/typings/tooltip/line.js.map +1 -1
- package/esm/typings/tooltip/shape.js.map +1 -1
- package/esm/typings/tooltip/tooltip.js.map +1 -1
- package/esm/typings/visual.js.map +1 -1
- package/package.json +15 -15
package/cjs/animation/spec.d.ts
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import type { IAnimationConfig, IStateAnimationConfig } from '@visactor/vgrammar-core';
|
|
2
2
|
import type { EasingType } from '@visactor/vrender-core';
|
|
3
3
|
export type { IRunningConfig as IMorphConfig, IMorphAnimationConfig } from '@visactor/vgrammar-core';
|
|
4
|
-
export
|
|
5
|
-
preset?: Preset | false;
|
|
4
|
+
export interface ICommonStateAnimateSpec {
|
|
6
5
|
duration?: number;
|
|
7
6
|
delay?: number;
|
|
8
7
|
easing?: EasingType;
|
|
9
8
|
oneByOne?: boolean;
|
|
10
|
-
}
|
|
9
|
+
}
|
|
10
|
+
export interface IStateAnimateSpec<Preset extends string> extends ICommonStateAnimateSpec {
|
|
11
|
+
preset?: Preset | false;
|
|
12
|
+
}
|
|
11
13
|
export type IMarkAnimateSpec<MarkName extends string> = Partial<Record<MarkName, false | IAnimationConfig | IAnimationConfig[]>>;
|
|
12
14
|
export interface IAnimationSpec<MarkName extends string, Preset extends string> {
|
|
13
15
|
animationAppear?: boolean | IStateAnimateSpec<Preset> | IMarkAnimateSpec<MarkName>;
|
|
14
|
-
animationEnter?: boolean |
|
|
15
|
-
animationUpdate?: boolean |
|
|
16
|
-
animationExit?: boolean |
|
|
17
|
-
animationDisappear?: boolean |
|
|
16
|
+
animationEnter?: boolean | ICommonStateAnimateSpec | IMarkAnimateSpec<MarkName>;
|
|
17
|
+
animationUpdate?: boolean | ICommonStateAnimateSpec | IMarkAnimateSpec<MarkName>;
|
|
18
|
+
animationExit?: boolean | ICommonStateAnimateSpec | IMarkAnimateSpec<MarkName>;
|
|
19
|
+
animationDisappear?: boolean | ICommonStateAnimateSpec | IMarkAnimateSpec<MarkName>;
|
|
18
20
|
animationState?: boolean | IStateAnimationConfig;
|
|
19
21
|
animationNormal?: IMarkAnimateSpec<MarkName>;
|
|
20
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/animation/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { IAnimationConfig, IStateAnimationConfig } from '@visactor/vgrammar-core';\nimport type { EasingType } from '@visactor/vrender-core';\nexport type { IRunningConfig as IMorphConfig, IMorphAnimationConfig } from '@visactor/vgrammar-core';\n\nexport
|
|
1
|
+
{"version":3,"sources":["../src/animation/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { IAnimationConfig, IStateAnimationConfig } from '@visactor/vgrammar-core';\nimport type { EasingType } from '@visactor/vrender-core';\nexport type { IRunningConfig as IMorphConfig, IMorphAnimationConfig } from '@visactor/vgrammar-core';\n\nexport interface ICommonStateAnimateSpec {\n /**\n * 图表动画时长\n */\n duration?: number;\n /**\n * 动画延迟开始的时长\n */\n delay?: number;\n /**\n * 动画缓动效果\n */\n easing?: EasingType;\n /**\n * 是否轮流执行\n */\n oneByOne?: boolean;\n}\n\nexport interface IStateAnimateSpec<Preset extends string> extends ICommonStateAnimateSpec {\n /**\n * 预设动画效果\n */\n preset?: Preset | false;\n}\n\nexport type IMarkAnimateSpec<MarkName extends string> = Partial<\n Record<MarkName, false | IAnimationConfig | IAnimationConfig[]>\n>;\n\nexport interface IAnimationSpec<MarkName extends string, Preset extends string> {\n /**\n * 图表入场动画\n * 支持配置图表内置不同动画效果\n */\n animationAppear?: boolean | IStateAnimateSpec<Preset> | IMarkAnimateSpec<MarkName>;\n /**\n * 数据更新 - 新增数据动画\n */\n animationEnter?: boolean | ICommonStateAnimateSpec | IMarkAnimateSpec<MarkName>;\n /**\n * 数据更新 - 数据更新动画\n */\n animationUpdate?: boolean | ICommonStateAnimateSpec | IMarkAnimateSpec<MarkName>;\n /**\n * 数据更新 - 数据删除动画\n */\n animationExit?: boolean | ICommonStateAnimateSpec | IMarkAnimateSpec<MarkName>;\n /**\n * 图表退场动画\n */\n animationDisappear?: boolean | ICommonStateAnimateSpec | IMarkAnimateSpec<MarkName>;\n /**\n * 状态切换动画\n * @since 1.12.0\n */\n animationState?: boolean | IStateAnimationConfig;\n /**\n * 循环动画\n */\n animationNormal?: IMarkAnimateSpec<MarkName>;\n}\nexport interface IMorphSeriesSpec {\n /**\n * 系列全局动画是否开启\n * @default true\n */\n enable?: boolean;\n /**\n * 图元匹配字段\n * 系列前后根据 morphKey 配置的内容进行关联\n */\n morphKey?: string;\n /**\n * 数据匹配字段\n * 多数据图元可配置\n */\n morphElementKey?: string;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/axis/cartesian/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { ILayoutNumber, IRectMarkSpec, StringOrNumber } from '../../../../typings';\nimport type { IBandAxisSpec, ILinearAxisSpec, IGrid, ICommonAxisSpec } from '../../interface';\nimport type {\n ICartesianDomainLine,\n ICartesianLabel,\n ITimeLayerType,\n ICartesianTitle,\n ICartesianAxisUnit\n} from './common';\nimport type { AxisItemStateStyle } from '@visactor/vrender-components';\n\n/** spec */\nexport type ICartesianAxisSpec =\n | ICartesianLinearAxisSpec\n | ICartesianBandAxisSpec\n | ICartesianTimeAxisSpec\n | ICartesianLogAxisSpec\n | ICartesianSymlogAxisSpec;\n\nexport type ICartesianVertical = {\n orient: 'left' | 'right';\n /**\n * 内padding/留白\n * @since 1.8.10\n */\n innerOffset?: {\n /**\n * 顶部留白\n */\n top?: ILayoutNumber;\n /**\n * 底部留白\n */\n bottom?: ILayoutNumber;\n };\n};\nexport type ICartesianHorizontal = {\n orient: 'top' | 'bottom';\n /**\n * 内padding/留白\n * @since 1.8.10\n */\n innerOffset?: {\n /**\n * 左侧留白\n */\n left?: ILayoutNumber;\n /**\n * 右侧留白\n */\n right?: ILayoutNumber;\n };\n};\nexport type ICartesianZ = {\n orient: 'z';\n};\n\nexport type ICartesianAxisCommonSpec = ICommonAxisSpec & {\n /**\n * 网格线配置\n */\n grid?: IGrid;\n /**\n * 子网格线配置\n */\n subGrid?: IGrid;\n /**\n * 轴线配置\n */\n domainLine?: ICartesianDomainLine;\n /**\n * 轴标签配置\n */\n label?: ICartesianLabel;\n /**\n * 轴标题配置\n */\n title?: ICartesianTitle;\n /**\n * 是否进行自动缩进\n * 设置为 true 时,当轴元素超出绘图区会被裁剪时,会对图表增加额外的padding,使轴可以显示完整\n */\n autoIndent?: boolean;\n /**\n * 坐标轴背景配置\n */\n background?: {\n /**\n * 是否绘制坐标轴背景\n * @default false\n */\n visible: boolean;\n /**\n * 背景样式\n */\n style?: Partial<IRectMarkSpec>;\n /**\n * 背景在交互状态下的样式配置\n */\n state?: AxisItemStateStyle<Partial<IRectMarkSpec>>;\n };\n /**\n * 是否是3d模式的轴\n */\n mode?: '2d' | '3d';\n /**\n * 轴的z方向深度\n */\n depth?: number;\n /**\n * 轴单位配置,仅支持直角坐标系下的坐标轴\n * @since 1.5.1\n */\n unit?: ICartesianAxisUnit;\n /**\n * 是否在此轴上指定显示 dimension tooltip\n * (离散轴默认不需要配置)\n * @since 1.9.0\n */\n hasDimensionTooltip?: boolean;\n} & (ICartesianVertical | ICartesianHorizontal | ICartesianZ);\n\nexport interface ILinearAxisSync {\n /**\n * 配置参照的轴 id\n */\n axisId: StringOrNumber;\n /**\n * 是否保持 2 个轴的 0 值对齐\n * @default false\n */\n zeroAlign?: boolean;\n /**\n * 是否使这个轴的 tick 与目标轴保持比例对齐\n * @default false\n */\n tickAlign?: boolean;\n}\n\nexport type ICartesianLinearAxisSpec = ICartesianAxisCommonSpec &\n ILinearAxisSpec & {\n sync?: ILinearAxisSync;\n };\n\nexport type ICartesianBandAxisSpec = ICartesianAxisCommonSpec &\n IBandAxisSpec & {\n /**\n * 轴组宽设置\n * @since 1.4.0\n */\n bandSize?: number;\n /**\n * 轴最大组宽设置\n * @since 1.4.0\n */\n maxBandSize?: number;\n /**\n * 轴最小组宽设置\n * @since 1.4.0\n */\n minBandSize?: number;\n\n /**\n * 指定在哪个 scale 层级上设置 bandSize,默认为 0\n * @since 1.10.0\n */\n bandSizeLevel?: number;\n\n /**\n * 在当前 scale 层级设置 bandSize 后,当前层级 range 的扩增值\n * @since 1.10.0\n */\n bandSizeExtend?: {\n /** 两个 band 之间的 gap,单位为 px 或者百分比 */\n gap?: number | string;\n /** 当前层级 range 的总体扩增值,单位为 px */\n extend?: number;\n };\n\n /**\n * 是否根据组宽自动计算 region 宽度或高度,仅当 `bandSize` 或 `maxBandSize` 配置时生效\n * @since 1.4.0\n */\n autoRegionSize?: boolean;\n };\n\nexport type ICartesianTimeAxisSpec = Omit<ICartesianAxisCommonSpec, 'inverse'> & {\n /**\n * 轴的层级配置。\n * layer[0] 为主轴,即离坐标轴线最近的轴\n * @description 目前仅支持单层 / 双层,即layers.length <= 2\n */\n layers?: ITimeLayerType[];\n};\n\nexport type ICartesianLogAxisSpec = ICartesianLinearAxisSpec & {\n /**\n * 底数\n * @default 10\n */\n base?: number;\n};\n\nexport type ICartesianSymlogAxisSpec = ICartesianLinearAxisSpec & {\n /**\n * 底数\n * @default 10\n */\n constant?: number;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/axis/cartesian/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { ILayoutNumber, IRectMarkSpec, StringOrNumber } from '../../../../typings';\nimport type { IBandAxisSpec, ILinearAxisSpec, IGrid, ICommonAxisSpec } from '../../interface';\nimport type {\n ICartesianDomainLine,\n ICartesianLabel,\n ITimeLayerType,\n ICartesianTitle,\n ICartesianAxisUnit\n} from './common';\nimport type { AxisItemStateStyle } from '@visactor/vrender-components';\n\n/** spec */\nexport type ICartesianAxisSpec =\n | ICartesianLinearAxisSpec\n | ICartesianBandAxisSpec\n | ICartesianTimeAxisSpec\n | ICartesianLogAxisSpec\n | ICartesianSymlogAxisSpec;\n\nexport type ICartesianVertical = {\n /**\n * 坐标轴的位置\n */\n orient: 'left' | 'right';\n /**\n * 内padding/留白\n * @since 1.8.10\n */\n innerOffset?: {\n /**\n * 顶部留白\n */\n top?: ILayoutNumber;\n /**\n * 底部留白\n */\n bottom?: ILayoutNumber;\n };\n};\nexport type ICartesianHorizontal = {\n /**\n * 坐标轴的位置\n */\n orient: 'top' | 'bottom';\n /**\n * 内padding/留白\n * @since 1.8.10\n */\n innerOffset?: {\n /**\n * 左侧留白\n */\n left?: ILayoutNumber;\n /**\n * 右侧留白\n */\n right?: ILayoutNumber;\n };\n};\nexport type ICartesianZ = {\n /**\n * 坐标轴的位置\n */\n orient: 'z';\n};\n\nexport type ICartesianAxisCommonSpec = ICommonAxisSpec & {\n /**\n * 网格线配置\n */\n grid?: IGrid;\n /**\n * 子网格线配置\n */\n subGrid?: IGrid;\n /**\n * 轴线配置\n */\n domainLine?: ICartesianDomainLine;\n /**\n * 轴标签配置\n */\n label?: ICartesianLabel;\n /**\n * 轴标题配置\n */\n title?: ICartesianTitle;\n /**\n * 是否进行自动缩进\n * 设置为 true 时,当轴元素超出绘图区会被裁剪时,会对图表增加额外的padding,使轴可以显示完整\n */\n autoIndent?: boolean;\n /**\n * 坐标轴背景配置\n */\n background?: {\n /**\n * 是否绘制坐标轴背景\n * @default false\n */\n visible: boolean;\n /**\n * 背景样式\n */\n style?: Partial<IRectMarkSpec>;\n /**\n * 背景在交互状态下的样式配置\n */\n state?: AxisItemStateStyle<Partial<IRectMarkSpec>>;\n };\n /**\n * 是否是3d模式的轴\n */\n mode?: '2d' | '3d';\n /**\n * 轴的z方向深度\n */\n depth?: number;\n /**\n * 轴单位配置,仅支持直角坐标系下的坐标轴\n * @since 1.5.1\n */\n unit?: ICartesianAxisUnit;\n /**\n * 是否在此轴上指定显示 dimension tooltip\n * (离散轴默认不需要配置)\n * @since 1.9.0\n */\n hasDimensionTooltip?: boolean;\n} & (ICartesianVertical | ICartesianHorizontal | ICartesianZ);\n\nexport interface ILinearAxisSync {\n /**\n * 配置参照的轴 id\n */\n axisId: StringOrNumber;\n /**\n * 是否保持 2 个轴的 0 值对齐\n * @default false\n */\n zeroAlign?: boolean;\n /**\n * 是否使这个轴的 tick 与目标轴保持比例对齐\n * @default false\n */\n tickAlign?: boolean;\n}\n\nexport type ICartesianLinearAxisSpec = ICartesianAxisCommonSpec &\n ILinearAxisSpec & {\n /**\n * 设置轴同步相关内容,包含0值对齐和刻度对齐功能\n */\n sync?: ILinearAxisSync;\n };\n\nexport type ICartesianBandAxisSpec = ICartesianAxisCommonSpec &\n IBandAxisSpec & {\n /**\n * 轴组宽设置\n * @since 1.4.0\n */\n bandSize?: number;\n /**\n * 轴最大组宽设置\n * @since 1.4.0\n */\n maxBandSize?: number;\n /**\n * 轴最小组宽设置\n * @since 1.4.0\n */\n minBandSize?: number;\n\n /**\n * 指定在哪个 scale 层级上设置 bandSize,默认为 0\n * @since 1.10.0\n */\n bandSizeLevel?: number;\n\n /**\n * 在当前 scale 层级设置 bandSize 后,当前层级 range 的扩增值\n * @since 1.10.0\n */\n bandSizeExtend?: {\n /** 两个 band 之间的 gap,单位为 px 或者百分比 */\n gap?: number | string;\n /** 当前层级 range 的总体扩增值,单位为 px */\n extend?: number;\n };\n\n /**\n * 是否根据组宽自动计算 region 宽度或高度,仅当 `bandSize` 或 `maxBandSize` 配置时生效\n * @since 1.4.0\n */\n autoRegionSize?: boolean;\n };\n\nexport type ICartesianTimeAxisSpec = Omit<ICartesianAxisCommonSpec, 'inverse'> & {\n /**\n * 轴的层级配置。\n * layer[0] 为主轴,即离坐标轴线最近的轴\n * @description 目前仅支持单层 / 双层,即layers.length <= 2\n */\n layers?: ITimeLayerType[];\n};\n\nexport type ICartesianLogAxisSpec = ICartesianLinearAxisSpec & {\n /**\n * 底数\n * @default 10\n */\n base?: number;\n};\n\nexport type ICartesianSymlogAxisSpec = ICartesianLinearAxisSpec & {\n /**\n * 底数\n * @default 10\n */\n constant?: number;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/axis/interface/common.ts"],"names":[],"mappings":"","file":"common.js","sourcesContent":["import type { IContinuousScale, IBaseScale, CustomTicksFunc } from '@visactor/vscale';\nimport type { CoordinateType, Datum, IPolarOrientType, StringOrNumber } from '../../../typings';\nimport type { IComponent } from '../../interface/common';\nimport type { ICartesianAxisSpec } from '../cartesian/interface';\nimport type { ITextGraphicAttribute } from '@visactor/vrender-core';\n\nexport interface StatisticsDomain {\n domain: any[];\n index: { [key in StringOrNumber]: number };\n}\n\nexport interface IAxis extends IComponent {\n valueToPosition: (value: any) => number;\n getScale: () => IBaseScale;\n getScales: () => IBaseScale[];\n getOrient: () => ICartesianAxisSpec['orient'] | IPolarOrientType;\n getInverse: () => boolean;\n getCoordinateType: () => CoordinateType;\n visible: boolean;\n // 标记轴的方向,左到右,右到左,上到下,下到上\n directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n}\n\nexport interface IAxisItem<T> {\n visible?: boolean;\n style?: Omit<T, 'visible'>;\n}\n\nexport interface IAxisItemTheme<T> {\n visible?: boolean;\n style?: Omit<T, 'visible'>;\n}\nexport type AxisAnimationPreset = 'groupFadeIn' | 'fadeIn' | 'grow';\n\nexport type ITickCallbackOption = {\n axisLength?: number;\n labelStyle?: ITextGraphicAttribute;\n};\n\nexport type StyleCallback<T> = (value: any, index: number, datum: Datum, data: Datum[]) => T;\nexport type AxisType = 'linear' | 'ordinal' | 'band' | 'point' | 'time' | 'log' | 'symlog';\n\nexport interface IAxisLocationCfg {\n bandPosition?: number;\n datum?: Datum;\n}\n\nexport interface ITickCalculationCfg {\n /** tick步长 */\n tickStep?: number;\n /**\n * 期望的连续轴tick数量\n * The desired number of ticks draw on linear axis.\n * @default 5\n * @description 建议的tick数量,并不保证结果一定是配置值\n * @since 1.4.0 后支持函数回调。\n */\n tickCount?: number | ((option: ITickCallbackOption) => number);\n /**\n * 强制设置tick数量\n * The exact number of ticks draw on linear axis. Might lead to decimal step.\n * @default 5\n * @description 强制设置的tick数量,可能由于数据范围导致tick值为小数\n */\n forceTickCount?: number;\n /**\n * 连续轴 tick 生成算法:\n * 'average': 尽可能均分;\n * 'd3':与 d3 默认逻辑一致,以 [1, 2, 5] 为基数生成;\n * CustomTicksFunc: 自定义tick生成算法\n * @default 'average'\n * @since 1.3.0\n *\n * @typedef {function} CustomTicksFunc\n * @param {IContinuousScale} scale - 连续轴的比例尺对象\n * @param {number} tickCount - 生成tick的数量\n * @returns {number[]} - 生成的 tick 数组\n * @since 1.12.0\n *\n * @example\n * // 自定义 tick 生成函数示例\n * const customTickFunc: CustomTicksFunc = (scale, tickCount=5) => {\n * const domain = scale.domain();\n * const step = (domain[domain.length - 1] - domain[0]) / (tickCount - 1);\n * return Array.from({ length: tickCount }, (_, i) => domain[0] + i * step);\n * };\n */\n tickMode?: 'average' | 'd3' | CustomTicksFunc<IContinuousScale>;\n /**\n * 连续轴,是否避免小数 tick。\n * @default false\n * @description 当配置了 tickStep 或 forceTickCount 时不生效。\n * @since 1.3.0\n */\n noDecimals?: boolean;\n}\n\nexport interface IBandAxisLayer extends Omit<ITickCalculationCfg, 'noDecimals' | 'tickMode'> {\n /**\n * 是否显示\n * @default true\n */\n visible?: boolean;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/axis/interface/common.ts"],"names":[],"mappings":"","file":"common.js","sourcesContent":["import type { IContinuousScale, IBaseScale, CustomTicksFunc } from '@visactor/vscale';\nimport type { CoordinateType, Datum, IPolarOrientType, StringOrNumber } from '../../../typings';\nimport type { IComponent } from '../../interface/common';\nimport type { ICartesianAxisSpec } from '../cartesian/interface';\nimport type { ITextGraphicAttribute } from '@visactor/vrender-core';\n\nexport interface StatisticsDomain {\n domain: any[];\n index: { [key in StringOrNumber]: number };\n}\n\nexport interface IAxis extends IComponent {\n valueToPosition: (value: any) => number;\n getScale: () => IBaseScale;\n getScales: () => IBaseScale[];\n getOrient: () => ICartesianAxisSpec['orient'] | IPolarOrientType;\n getInverse: () => boolean;\n getCoordinateType: () => CoordinateType;\n visible: boolean;\n // 标记轴的方向,左到右,右到左,上到下,下到上\n directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n}\n\nexport interface IAxisItem<T> {\n /**\n * 是否显示\n */\n visible?: boolean;\n /**\n * 样式配置\n */\n style?: Omit<T, 'visible'>;\n}\n\nexport interface IAxisItemTheme<T> {\n /**\n * 是否显示\n */\n visible?: boolean;\n /**\n * 主题样式配置\n */\n style?: Omit<T, 'visible'>;\n}\nexport type AxisAnimationPreset = 'groupFadeIn' | 'fadeIn' | 'grow';\n\nexport type ITickCallbackOption = {\n axisLength?: number;\n labelStyle?: ITextGraphicAttribute;\n};\n\nexport type StyleCallback<T> = (value: any, index: number, datum: Datum, data: Datum[]) => T;\nexport type AxisType = 'linear' | 'ordinal' | 'band' | 'point' | 'time' | 'log' | 'symlog';\n\nexport interface IAxisLocationCfg {\n bandPosition?: number;\n datum?: Datum;\n}\n\nexport interface ITickCalculationCfg {\n /** tick步长 */\n tickStep?: number;\n /**\n * 期望的连续轴tick数量\n * The desired number of ticks draw on linear axis.\n * @default 5\n * @description 建议的tick数量,并不保证结果一定是配置值\n * @since 1.4.0 后支持函数回调。\n */\n tickCount?: number | ((option: ITickCallbackOption) => number);\n /**\n * 强制设置tick数量\n * The exact number of ticks draw on linear axis. Might lead to decimal step.\n * @default 5\n * @description 强制设置的tick数量,可能由于数据范围导致tick值为小数\n */\n forceTickCount?: number;\n /**\n * 连续轴 tick 生成算法:\n * 'average': 尽可能均分;\n * 'd3':与 d3 默认逻辑一致,以 [1, 2, 5] 为基数生成;\n * CustomTicksFunc: 自定义tick生成算法\n * @default 'average'\n * @since 1.3.0\n *\n * @typedef {function} CustomTicksFunc\n * @param {IContinuousScale} scale - 连续轴的比例尺对象\n * @param {number} tickCount - 生成tick的数量\n * @returns {number[]} - 生成的 tick 数组\n * @since 1.12.0\n *\n * @example\n * // 自定义 tick 生成函数示例\n * const customTickFunc: CustomTicksFunc = (scale, tickCount=5) => {\n * const domain = scale.domain();\n * const step = (domain[domain.length - 1] - domain[0]) / (tickCount - 1);\n * return Array.from({ length: tickCount }, (_, i) => domain[0] + i * step);\n * };\n */\n tickMode?: 'average' | 'd3' | CustomTicksFunc<IContinuousScale>;\n /**\n * 连续轴,是否避免小数 tick。\n * @default false\n * @description 当配置了 tickStep 或 forceTickCount 时不生效。\n * @since 1.3.0\n */\n noDecimals?: boolean;\n}\n\nexport interface IBandAxisLayer extends Omit<ITickCalculationCfg, 'noDecimals' | 'tickMode'> {\n /**\n * 是否显示\n * @default true\n */\n visible?: boolean;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/axis/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { AxisBreakProps, AxisItem, AxisItemStateStyle } from '@visactor/vrender-components';\nimport type { IAnimationSpec } from '../../../animation/spec';\nimport type {\n Datum,\n IFormatMethod,\n IPadding,\n IRectMarkSpec,\n IRichTextFormatMethod,\n IRuleMarkSpec,\n ISymbolMarkSpec,\n ITextMarkSpec,\n StringOrNumber\n} from '../../../typings';\nimport type { IComponentSpec } from '../../base/interface';\nimport type { AxisType, IAxisItem, IBandAxisLayer, ITickCalculationCfg, StyleCallback } from './common';\nimport type { IBaseScale } from '@visactor/vscale';\n\nexport interface ICommonAxisSpec extends Omit<IComponentSpec, 'orient' | 'center'>, IAnimationSpec<string, string> {\n /**\n * 轴类型\n */\n type?: AxisType;\n /**\n * 是否显示坐标轴\n * @default true\n */\n visible?: boolean;\n /**\n * 是否开启反向坐标轴。\n * @default false\n */\n inverse?: boolean;\n /**\n * 轴刻度线配置\n */\n tick?: ITick;\n /**\n * 子刻度线配置\n */\n subTick?: ISubTick;\n\n /**\n * 是否开启动画,默认关闭\n * @default false\n */\n animation?: boolean;\n\n // 交互相关的配置\n /**\n * 是否开启 select 选中交互,默认关闭\n * @default false\n */\n select?: boolean;\n /**\n * 是否开启 hover 悬浮交互,默认关闭\n * @default false\n */\n hover?: boolean;\n\n /**\n * 是否开启轴数据采样,默认开启。\n * 轴采样开启之后,会对轴数据进行采样显示,防止轴数据的重叠。\n * 通过配置 `label.minGap` 可以控制轴标签之间的间距。\n * @default true\n * @since 1.1.0\n */\n sampling?: boolean;\n\n /**\n * 是否强制初始化 tick 数据,仅在 visible 为 false 时生效\n * @default false\n */\n forceInitTick?: boolean;\n}\n\nexport type ILinearAxisBreakSpec = Omit<AxisBreakProps, 'rawRange'> & {\n /**\n * 截断标识之间的间距:\n * 1. `number` 为像素值\n * 2. `string` 为百分比相对值,如 '1%'\n * @default 6\n */\n gap?: number | string;\n /**\n * 计算截断对应range的类型,根据长度或者记录数进行分段\n * @since 1.12.12\n */\n scopeType?: 'count' | 'length';\n};\n\nexport interface ILinearAxisSpec {\n // 线性轴数值范围配置\n /** 最小值,**优先级高于 zero,nice** */\n min?: number;\n /** 最大值,**优先级高于 zero,nice** */\n max?: number;\n\n /**\n * 最小值,当且仅当该值小于数据最小值时,才能生效\n * 注意:不建议和配置`min`一起使用\n * @since 1.11.0\n */\n softMin?: number | ((domain: number[]) => number);\n /**\n * 最大值,当且仅当该值大于数据最大值时,才能生效\n * 注意:不建议和配置`max`一起使用\n * @since 1.11.0\n */\n softMax?: number | ((domain: number[]) => number);\n\n /** @deparated 线性轴数值范围配置(已弃用,请使用外层 min/max) */\n range?: {\n /** @deparated 最小值 */\n min?: number;\n /** @deparated 最大值 */\n max?: number;\n };\n\n /**\n * 是否根据数据将轴范围调整到相对规整的数值\n * @default true\n * @description 当配置了 min 和 max,该配置项失效\n * @example 当配置了 max = 999, nice并不会将轴范围优化到1000\n */\n nice?: boolean;\n /**\n * nice效果的类型,是精度优先还是tickCount优先(比如tickCount为2那nice出来的精度就很低)\n * @default undefined('tickCountFirst')\n * @description 不配置就默认是tickCountFirst\n * @example 数据范围是0~6000,如果tickCount为2,那么tickCountFirst出来的range就是[0, 10000], accurateFirst出来的range就是[0, 6000]但10000显示不了\n */\n niceType?: 'tickCountFirst' | 'accurateFirst';\n /**\n * 是否包含0值\n * @default true\n * @description 当配置了 min和 max,该配置项失效\n */\n zero?: boolean;\n /**\n * 轴范围按比例扩展\n * @description 当配置了 min和 max,该配置项失效\n */\n expand?: {\n min?: number;\n max?: number;\n };\n\n /**\n * 连续轴上的 dimension tooltip 数据筛选范围\n * 如果配置为单个数字 d,则筛选区间为 [x0 - d, x0 + d];如果配置为二元组 [d1, d2],则筛选区间为 [x0 + d1, x0 + d2]\n * 如果配置为函数 f, 函数的返回值将会作为数据筛选范围的值\n * @since 1.4.0\n */\n tooltipFilterRange?: number | [number, number] | ((params: { scale: IBaseScale }) => number | [number, number]);\n /**\n * 轴截断配置,只对笛卡尔坐标系的 linear 轴生效\n * @since 1.12.4\n */\n breaks?: ILinearAxisBreakSpec[];\n}\n\nexport interface IBandAxisSpec {\n /**\n * 是否去除 band 轴两端的留白,如果为 true,则两端的 padding 为 0,\n * **并且 bandPadding、paddingInner 和 paddingOuter 的设置将被忽略**。\n * @default false\n * @since 1.7.0\n */\n trimPadding?: boolean;\n /**\n * 同时设置轴的 paddingInner 和 paddingOuter\n * **因为有可能存在多层 scale( xField 设置成了数组,即分组场景),所以支持了数组类型,用于多层 scale 的 bandPadding 配置**\n */\n bandPadding?: number | number[];\n /**\n * band 轴的内边距\n * ** 因为有可能存在多层 scale( xField 设置成了数组,即分组场景),所以支持了数组类型,用于多层 scale 的 paddingInner 配置**\n * @default 0.1\n */\n paddingInner?: number | number[];\n /**\n * band 轴的外边距\n * ** 因为有可能存在多层 scale( xField 设置成了数组,即分组场景),所以支持了数组类型,用于多层 scale 的 paddingOuter 配置**\n * @default 0.3\n */\n paddingOuter?: number | number[];\n /**\n * 配置离散轴的数值范围\n * @since 1.1.0\n */\n domain?: StringOrNumber[];\n /**\n * `bandPosition` 是一个可选参数,用于指定数据点在 band 轴上的位置。它的含义是确定数据点在 band 轴上的位置偏移量,相对于 band 轴的起始位置。\n * `bandPosition` 的取值范围是从 0 到 1,其中 0 表示数据点位于 band 轴的起始位置,1 表示数据点位于 band 轴的结束位置。\n * @default 0.5\n */\n bandPosition?: number;\n\n /**\n * 当存在多层分组场景时,是否展示所有的分组轴\n * @default false\n * @since 1.9.0\n */\n showAllGroupLayers?: boolean;\n /**\n * 每一层轴的配置\n * layer[0] 为离坐标轴线最近的轴,当且仅当 `showAllGroupLayers` 配置开启生效。\n * @since 1.9.0\n */\n layers?: IBandAxisLayer[];\n}\n// Grid 配置项\nexport interface IGrid extends IAxisItem<IRuleMarkSpec> {\n /**\n * 两个栅格线间的填充色\n */\n alternateColor?: string | string[];\n /**\n * grid 是否与 label 对齐,默认为 true,即对齐,配置为 false 则显示在前后两个刻度中间\n * @default true\n */\n alignWithLabel?: boolean;\n /**\n * 网格线样式,支持回调\n */\n style?: IRuleMarkSpec | StyleCallback<IRuleMarkSpec | undefined>;\n /**\n * 快捷属性,也可以在 `style` 中配置,用于配置网格线的绘制顺序,默认为 50\n * @default 50\n * @since 1.4.0\n */\n zIndex?: number;\n}\n\n// 刻度线配置\nexport interface ITick extends IAxisItem<IRuleMarkSpec>, ITickCalculationCfg {\n /**\n * Length of tick lines\n * 坐标轴刻度线的长度\n * @default 4\n */\n tickSize?: number;\n /**\n * 刻度线朝向,默认朝外(坐标线包围盒外部)\n * @default false\n */\n inside?: boolean;\n /**\n * tick 是否与 label 对齐,默认为 true,即对齐,配置为 false 则显示在前后两个刻度中间\n * @default true\n */\n alignWithLabel?: boolean;\n /**\n * 刻度线样式设置,支持回调\n */\n style?: IRuleMarkSpec | StyleCallback<IRuleMarkSpec | undefined>;\n /**\n * 刻度线不同交互状态下的样式配置,支持:\n * 1. hover\n * 2. hover_reverse\n * 3. selected\n * 4. selected_reverse\n */\n state?: AxisItemStateStyle<IRuleMarkSpec>;\n /**\n * 用于 tick 的数据过滤\n * @since 1.1.0\n */\n dataFilter?: (data: AxisItem[]) => AxisItem[];\n}\n\n// 子刻度线配置\nexport interface ISubTick extends IAxisItem<IRuleMarkSpec> {\n /**\n * TODO: 考虑下 log 轴,自刻度线之间的间距是不均匀的问题\n * 子刻度个数\n */\n tickCount?: number;\n /**\n * 子刻度线朝向,默认朝外(坐标线包围盒外部)\n * @default false\n */\n inside?: boolean;\n /** 子刻度线的长度 */\n tickSize?: number;\n /**\n * 子刻度线不同交互状态下的样式配置,支持:\n * 1. hover\n * 2. hover_reverse\n * 3. selected\n * 4. selected_reverse\n */\n state?: AxisItemStateStyle<IRuleMarkSpec>;\n}\n\n// 轴标签配置\nexport interface ILabel extends IAxisItem<ITextMarkSpec> {\n /**\n * 文本类型\n * @deprecated 1.10.0 版本后,在 formatMethod 中返回 { type: 'rich', text: xxx}\n * */\n type?: 'text' | 'rich';\n /**\n * 轴标签内容格式化函数\n * @param text 原始标签文本值\n * @param datum 图形数据\n * @returns 格式化后的文本\n */\n formatMethod?: IFormatMethod<[text: string | string[], datum?: Datum]>;\n /**\n * 格式化模板\n * @description 可以通过类似 `{value:.2f}%` 的形式对指定数据字段进行格式化\n * @since 1.10.0\n */\n formatter?: string | string[];\n /** 标签同 tick 之间的间距 */\n space?: number;\n /**\n * 标签朝向,默认朝外(坐标线包围盒外部)\n * @default false\n */\n inside?: boolean;\n /**\n * 标签之间的最小间距(单位为像素),仅当轴采样开始时生效(`sampling: true`)。\n * 该配置会影响轴采样的结果。\n */\n minGap?: number;\n /**\n * 文本样式设置\n */\n style?: ITextMarkSpec | StyleCallback<ITextMarkSpec | undefined>;\n /**\n * label 不同交互状态下的样式配置,支持:\n * 1. hover\n * 2. hover_reverse\n * 3. selected\n * 4. selected_reverse\n */\n state?: AxisItemStateStyle<ITextMarkSpec>;\n /**\n * 用于 label 的数据过滤\n * @since 1.1.0\n */\n dataFilter?: (data: AxisItem[], layer: number) => AxisItem[];\n}\n\n// 轴线配置\nexport interface IDomainLine extends IAxisItem<IRuleMarkSpec> {\n /**\n * domainLine 在不同交互状态下的样式配置,支持:\n * 1. hover\n * 2. hover_reverse\n * 3. selected\n * 4. selected_reverse\n */\n state?: AxisItemStateStyle<IRuleMarkSpec>;\n}\n\n// 轴标题配置\nexport interface ITitle extends IAxisItem<ITextMarkSpec> {\n /**\n * 文本类型\n * @deprecated 1.10.0 版本后,在 formatMethod 中返回 { type: 'rich', text: xxx}\n * */\n type?: 'text' | 'rich';\n /**\n * 轴标题内容,支持多种格式\n * - 字符串或者数值\n * - 字符串或者数值数组\n */\n text?: ITextMarkSpec['text'] | ReturnType<IRichTextFormatMethod<[]>>;\n /**\n * 标题的显示位置,直角坐标系默认 'middle';\n * 极坐标系的圆弧轴如果配置了内半径,则默认 'middle',否则 'end'\n */\n position?: 'start' | 'middle' | 'end';\n /**\n * 标题距离坐标轴(轴线、刻度、标签共同构成的包围盒)的距离\n */\n space?: number;\n /**\n * 标题内边距配置\n */\n padding?: IPadding | number | number[];\n /**\n * 标题背景色设置\n */\n background?: IAxisItem<IRectMarkSpec> & {\n /**\n * 背景的交互状态样式配置\n */\n state?: AxisItemStateStyle<Partial<IRectMarkSpec>>;\n };\n /**\n * TODO: 接入富文本\n * 标题 shape 配置\n */\n shape?: IAxisItem<ISymbolMarkSpec> & {\n /**\n * shape 同标题文本之间的间距\n */\n space?: number;\n /**\n * shape 标记的交互状态样式配置\n */\n state?: AxisItemStateStyle<Partial<ISymbolMarkSpec>>;\n };\n /**\n * 标题整体的旋转角度(如果标题配置了 background、shape 等属性的话,需要使用该属性进行整体的配置旋转)。\n */\n angle?: number;\n /**\n * text 文本的交互状态样式配置\n */\n state?: AxisItemStateStyle<Partial<ITextMarkSpec>>;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/axis/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { AxisBreakProps, AxisItem, AxisItemStateStyle } from '@visactor/vrender-components';\nimport type { IAnimationSpec } from '../../../animation/spec';\nimport type {\n Datum,\n IFormatMethod,\n IPadding,\n IRectMarkSpec,\n IRichTextFormatMethod,\n IRuleMarkSpec,\n ISymbolMarkSpec,\n ITextMarkSpec,\n StringOrNumber\n} from '../../../typings';\nimport type { IComponentSpec } from '../../base/interface';\nimport type { AxisType, IAxisItem, IBandAxisLayer, ITickCalculationCfg, StyleCallback } from './common';\nimport type { IBaseScale } from '@visactor/vscale';\n\nexport interface ICommonAxisSpec extends Omit<IComponentSpec, 'orient' | 'center'>, IAnimationSpec<string, string> {\n /**\n * 轴类型\n */\n type?: AxisType;\n /**\n * 是否显示坐标轴\n * @default true\n */\n visible?: boolean;\n /**\n * 是否开启反向坐标轴。\n * @default false\n */\n inverse?: boolean;\n /**\n * 轴刻度线配置\n */\n tick?: ITick;\n /**\n * 子刻度线配置\n */\n subTick?: ISubTick;\n\n /**\n * 是否开启动画,默认关闭\n * @default false\n */\n animation?: boolean;\n\n // 交互相关的配置\n /**\n * 是否开启 select 选中交互,默认关闭\n * @default false\n */\n select?: boolean;\n /**\n * 是否开启 hover 悬浮交互,默认关闭\n * @default false\n */\n hover?: boolean;\n\n /**\n * 是否开启轴数据采样,默认开启。\n * 轴采样开启之后,会对轴数据进行采样显示,防止轴数据的重叠。\n * 通过配置 `label.minGap` 可以控制轴标签之间的间距。\n * @default true\n * @since 1.1.0\n */\n sampling?: boolean;\n\n /**\n * 是否强制初始化 tick 数据,仅在 visible 为 false 时生效\n * @default false\n */\n forceInitTick?: boolean;\n}\n\nexport type ILinearAxisBreakSpec = Omit<AxisBreakProps, 'rawRange'> & {\n /**\n * 截断标识之间的间距:\n * 1. `number` 为像素值\n * 2. `string` 为百分比相对值,如 '1%'\n * @default 6\n */\n gap?: number | string;\n /**\n * 计算截断对应range的类型,根据长度或者记录数进行分段\n * @since 1.12.12\n */\n scopeType?: 'count' | 'length';\n};\n\nexport interface ILinearAxisSpec {\n // 线性轴数值范围配置\n /** 最小值,**优先级高于 zero,nice** */\n min?: number;\n /** 最大值,**优先级高于 zero,nice** */\n max?: number;\n\n /**\n * 最小值,当且仅当该值小于数据最小值时,才能生效\n * 注意:不建议和配置`min`一起使用\n * @since 1.11.0\n */\n softMin?: number | ((domain: number[]) => number);\n /**\n * 最大值,当且仅当该值大于数据最大值时,才能生效\n * 注意:不建议和配置`max`一起使用\n * @since 1.11.0\n */\n softMax?: number | ((domain: number[]) => number);\n\n /** @deparated 线性轴数值范围配置(已弃用,请使用外层 min/max) */\n range?: {\n /** @deparated 最小值 */\n min?: number;\n /** @deparated 最大值 */\n max?: number;\n };\n\n /**\n * 是否根据数据将轴范围调整到相对规整的数值\n * @default true\n * @description 当配置了 min 和 max,该配置项失效\n * @example 当配置了 max = 999, nice并不会将轴范围优化到1000\n */\n nice?: boolean;\n /**\n * nice效果的类型,是精度优先还是tickCount优先(比如tickCount为2那nice出来的精度就很低)\n * @default undefined('tickCountFirst')\n * @description 不配置就默认是tickCountFirst\n * @example 数据范围是0~6000,如果tickCount为2,那么tickCountFirst出来的range就是[0, 10000], accurateFirst出来的range就是[0, 6000]但10000显示不了\n */\n niceType?: 'tickCountFirst' | 'accurateFirst';\n /**\n * 是否包含0值\n * @default true\n * @description 当配置了 min和 max,该配置项失效\n */\n zero?: boolean;\n /**\n * 轴范围按比例扩展\n * @description 当配置了 min和 max,该配置项失效\n */\n expand?: {\n /**\n * 轴范围扩展的最小比例\n */\n min?: number;\n /**\n * 轴范围扩展的最大比例\n */\n max?: number;\n };\n\n /**\n * 连续轴上的 dimension tooltip 数据筛选范围\n * 如果配置为单个数字 d,则筛选区间为 [x0 - d, x0 + d];如果配置为二元组 [d1, d2],则筛选区间为 [x0 + d1, x0 + d2]\n * 如果配置为函数 f, 函数的返回值将会作为数据筛选范围的值\n * @since 1.4.0\n */\n tooltipFilterRange?: number | [number, number] | ((params: { scale: IBaseScale }) => number | [number, number]);\n /**\n * 轴截断配置,只对笛卡尔坐标系的 linear 轴生效\n * @since 1.12.4\n */\n breaks?: ILinearAxisBreakSpec[];\n}\n\nexport interface IBandAxisSpec {\n /**\n * 是否去除 band 轴两端的留白,如果为 true,则两端的 padding 为 0,\n * **并且 bandPadding、paddingInner 和 paddingOuter 的设置将被忽略**。\n * @default false\n * @since 1.7.0\n */\n trimPadding?: boolean;\n /**\n * 同时设置轴的 paddingInner 和 paddingOuter\n * **因为有可能存在多层 scale( xField 设置成了数组,即分组场景),所以支持了数组类型,用于多层 scale 的 bandPadding 配置**\n */\n bandPadding?: number | number[];\n /**\n * band 轴的内边距\n * ** 因为有可能存在多层 scale( xField 设置成了数组,即分组场景),所以支持了数组类型,用于多层 scale 的 paddingInner 配置**\n * @default 0.1\n */\n paddingInner?: number | number[];\n /**\n * band 轴的外边距\n * ** 因为有可能存在多层 scale( xField 设置成了数组,即分组场景),所以支持了数组类型,用于多层 scale 的 paddingOuter 配置**\n * @default 0.3\n */\n paddingOuter?: number | number[];\n /**\n * 配置离散轴的数值范围\n * @since 1.1.0\n */\n domain?: StringOrNumber[];\n /**\n * `bandPosition` 是一个可选参数,用于指定数据点在 band 轴上的位置。它的含义是确定数据点在 band 轴上的位置偏移量,相对于 band 轴的起始位置。\n * `bandPosition` 的取值范围是从 0 到 1,其中 0 表示数据点位于 band 轴的起始位置,1 表示数据点位于 band 轴的结束位置。\n * @default 0.5\n */\n bandPosition?: number;\n\n /**\n * 当存在多层分组场景时,是否展示所有的分组轴\n * @default false\n * @since 1.9.0\n */\n showAllGroupLayers?: boolean;\n /**\n * 每一层轴的配置\n * layer[0] 为离坐标轴线最近的轴,当且仅当 `showAllGroupLayers` 配置开启生效。\n * @since 1.9.0\n */\n layers?: IBandAxisLayer[];\n}\n// Grid 配置项\nexport interface IGrid extends IAxisItem<IRuleMarkSpec> {\n /**\n * 两个栅格线间的填充色\n */\n alternateColor?: string | string[];\n /**\n * grid 是否与 label 对齐,默认为 true,即对齐,配置为 false 则显示在前后两个刻度中间\n * @default true\n */\n alignWithLabel?: boolean;\n /**\n * 网格线样式,支持回调\n */\n style?: IRuleMarkSpec | StyleCallback<IRuleMarkSpec | undefined>;\n /**\n * 快捷属性,也可以在 `style` 中配置,用于配置网格线的绘制顺序,默认为 50\n * @default 50\n * @since 1.4.0\n */\n zIndex?: number;\n}\n\n// 刻度线配置\nexport interface ITick extends IAxisItem<IRuleMarkSpec>, ITickCalculationCfg {\n /**\n * Length of tick lines\n * 坐标轴刻度线的长度\n * @default 4\n */\n tickSize?: number;\n /**\n * 刻度线朝向,默认朝外(坐标线包围盒外部)\n * @default false\n */\n inside?: boolean;\n /**\n * tick 是否与 label 对齐,默认为 true,即对齐,配置为 false 则显示在前后两个刻度中间\n * @default true\n */\n alignWithLabel?: boolean;\n /**\n * 刻度线样式设置,支持回调\n */\n style?: IRuleMarkSpec | StyleCallback<IRuleMarkSpec | undefined>;\n /**\n * 刻度线不同交互状态下的样式配置,支持:\n * 1. hover\n * 2. hover_reverse\n * 3. selected\n * 4. selected_reverse\n */\n state?: AxisItemStateStyle<IRuleMarkSpec>;\n /**\n * 用于 tick 的数据过滤\n * @since 1.1.0\n */\n dataFilter?: (data: AxisItem[]) => AxisItem[];\n}\n\n// 子刻度线配置\nexport interface ISubTick extends IAxisItem<IRuleMarkSpec> {\n /**\n * TODO: 考虑下 log 轴,自刻度线之间的间距是不均匀的问题\n * 子刻度个数\n */\n tickCount?: number;\n /**\n * 子刻度线朝向,默认朝外(坐标线包围盒外部)\n * @default false\n */\n inside?: boolean;\n /** 子刻度线的长度 */\n tickSize?: number;\n /**\n * 子刻度线不同交互状态下的样式配置,支持:\n * 1. hover\n * 2. hover_reverse\n * 3. selected\n * 4. selected_reverse\n */\n state?: AxisItemStateStyle<IRuleMarkSpec>;\n}\n\n// 轴标签配置\nexport interface ILabel extends IAxisItem<ITextMarkSpec> {\n /**\n * 文本类型\n * @deprecated 1.10.0 版本后,在 formatMethod 中返回 { type: 'rich', text: xxx}\n * */\n type?: 'text' | 'rich';\n /**\n * 轴标签内容格式化函数\n * @param text 原始标签文本值\n * @param datum 图形数据\n * @returns 格式化后的文本\n */\n formatMethod?: IFormatMethod<[text: string | string[], datum?: Datum]>;\n /**\n * 格式化模板\n * @description 可以通过类似 `{value:.2f}%` 的形式对指定数据字段进行格式化\n * @since 1.10.0\n */\n formatter?: string | string[];\n /** 标签同 tick 之间的间距 */\n space?: number;\n /**\n * 标签朝向,默认朝外(坐标线包围盒外部)\n * @default false\n */\n inside?: boolean;\n /**\n * 标签之间的最小间距(单位为像素),仅当轴采样开始时生效(`sampling: true`)。\n * 该配置会影响轴采样的结果。\n */\n minGap?: number;\n /**\n * 文本样式设置\n */\n style?: ITextMarkSpec | StyleCallback<ITextMarkSpec | undefined>;\n /**\n * label 不同交互状态下的样式配置,支持:\n * 1. hover\n * 2. hover_reverse\n * 3. selected\n * 4. selected_reverse\n */\n state?: AxisItemStateStyle<ITextMarkSpec>;\n /**\n * 用于 label 的数据过滤\n * @since 1.1.0\n */\n dataFilter?: (data: AxisItem[], layer: number) => AxisItem[];\n}\n\n// 轴线配置\nexport interface IDomainLine extends IAxisItem<IRuleMarkSpec> {\n /**\n * domainLine 在不同交互状态下的样式配置,支持:\n * 1. hover\n * 2. hover_reverse\n * 3. selected\n * 4. selected_reverse\n */\n state?: AxisItemStateStyle<IRuleMarkSpec>;\n}\n\n// 轴标题配置\nexport interface ITitle extends IAxisItem<ITextMarkSpec> {\n /**\n * 文本类型\n * @deprecated 1.10.0 版本后,在 formatMethod 中返回 { type: 'rich', text: xxx}\n * */\n type?: 'text' | 'rich';\n /**\n * 轴标题内容,支持多种格式\n * - 字符串或者数值\n * - 字符串或者数值数组\n */\n text?: ITextMarkSpec['text'] | ReturnType<IRichTextFormatMethod<[]>>;\n /**\n * 标题的显示位置,直角坐标系默认 'middle';\n * 极坐标系的圆弧轴如果配置了内半径,则默认 'middle',否则 'end'\n */\n position?: 'start' | 'middle' | 'end';\n /**\n * 标题距离坐标轴(轴线、刻度、标签共同构成的包围盒)的距离\n */\n space?: number;\n /**\n * 标题内边距配置\n */\n padding?: IPadding | number | number[];\n /**\n * 标题背景色设置\n */\n background?: IAxisItem<IRectMarkSpec> & {\n /**\n * 背景的交互状态样式配置\n */\n state?: AxisItemStateStyle<Partial<IRectMarkSpec>>;\n };\n /**\n * TODO: 接入富文本\n * 标题 shape 配置\n */\n shape?: IAxisItem<ISymbolMarkSpec> & {\n /**\n * shape 同标题文本之间的间距\n */\n space?: number;\n /**\n * shape 标记的交互状态样式配置\n */\n state?: AxisItemStateStyle<Partial<ISymbolMarkSpec>>;\n };\n /**\n * 标题整体的旋转角度(如果标题配置了 background、shape 等属性的话,需要使用该属性进行整体的配置旋转)。\n */\n angle?: number;\n /**\n * text 文本的交互状态样式配置\n */\n state?: AxisItemStateStyle<Partial<ITextMarkSpec>>;\n}\n"]}
|
|
@@ -41,11 +41,11 @@ const sorter = (a, b) => a - b, fillBins = (data, points) => {
|
|
|
41
41
|
|
|
42
42
|
function breakScope(data, points, scopeType = "count") {
|
|
43
43
|
const bins = fillBins(data, points), totalLength = "count" === scopeType ? data.length : bins.reduce(((res, bin, i) => bin.count > 0 ? res + bin.max - bin.min : res), 0), res = [];
|
|
44
|
-
let acc = 0;
|
|
44
|
+
let acc = 0, resIndex = 0;
|
|
45
45
|
return bins.forEach(((bin, i) => {
|
|
46
46
|
if (0 === totalLength) res.push([ 0, i / bins.length - 1 ]); else {
|
|
47
|
-
const length = "count" === scopeType ? bin.count : bin.max - bin.min, b0 = res[
|
|
48
|
-
(b0 !== b1 || 0 !== b0 && 1 !== b0) && (res.push([ b0, b1 ]), acc += length);
|
|
47
|
+
const length = "count" === scopeType ? bin.count : bin.max - bin.min, b0 = res[resIndex - 1] ? res[resIndex - 1][1] : 0, b1 = i === bins.length - 1 ? 1 : Math.min((acc + length) / totalLength, 1);
|
|
48
|
+
(b0 !== b1 || 0 !== b0 && 1 !== b0) && (resIndex += 1, res.push([ b0, b1 ]), acc += length);
|
|
49
49
|
}
|
|
50
50
|
})), res;
|
|
51
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/axis/mixin/util/break-data.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/component/axis/mixin/util/break-data.ts"],"names":[],"mappings":"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","file":"break-data.js","sourcesContent":["import { isEqual } from '@visactor/vutils';\n\nconst setDomain = (min: number, max: number, breaks: number[]): [number, number][] =>\n breaks.reduce(\n (r, b, i) => {\n r.push([b, breaks.length === i + 1 ? max : breaks[i + 1]]);\n return r;\n },\n [[min, breaks[0]]]\n );\n\nfunction breakDomain(data: number[], points: number[]): [number, number][] {\n // 默认数据已经排序\n const min = data[0];\n const max = data[data.length - 1];\n const breaks = points.filter(point => point > min && point < max);\n if (breaks.length === 0) {\n return [[min, max]];\n }\n\n return setDomain(min, max, breaks);\n}\n\nconst sorter = (a: number, b: number) => a - b;\n\nconst fillBins = (data: number[], points: number[]) => {\n const bins: Array<{ count: number; sub: number[]; max: number; min: number }> = [\n { count: 0, sub: [], max: points[0], min: points[0] }\n ];\n let i = 0;\n let j = 0;\n while (i < points.length) {\n if (data[j] <= points[i]) {\n bins[i].count += 1;\n bins[i].sub.push(data[j]);\n j += 1;\n } else {\n i += 1;\n bins[i] = { count: 0, sub: [], max: points[i], min: points[i] };\n }\n }\n bins.forEach(bin => {\n if (bin.count) {\n bin.min = Math.min.apply(null, bin.sub);\n }\n });\n\n const remain = data.slice(j);\n bins[i] = { count: remain.length, sub: remain, min: points[points.length - 1], max: Math.max.apply(null, remain) };\n return bins;\n};\n\nfunction breakScope(data: number[], points: number[], scopeType: 'count' | 'length' = 'count'): [number, number][] {\n // 默认 data 和 points 已经排序\n const bins = fillBins(data, points);\n\n const totalLength =\n scopeType === 'count'\n ? data.length\n : bins.reduce((res, bin, i) => {\n return bin.count > 0 ? res + bin.max - bin.min : res;\n }, 0);\n const res: [number, number][] = [];\n let acc = 0;\n\n let resIndex = 0; // 因为有的结果会被剔除,所以要从 res 的真实索引上拿\n bins.forEach((bin, i) => {\n if (totalLength === 0) {\n res.push([0, i / bins.length - 1]);\n } else {\n const length = scopeType === 'count' ? bin.count : bin.max - bin.min;\n const b0 = res[resIndex - 1] ? res[resIndex - 1][1] : 0;\n const b1 = i === bins.length - 1 ? 1 : Math.min((acc + length) / totalLength, 1);\n\n if (b0 === b1 && (b0 === 0 || b0 === 1)) {\n } else {\n resIndex += 1;\n res.push([b0, b1]);\n acc += length;\n }\n }\n });\n\n return res;\n}\n\nexport function breakData(data: number[], points: number[], scopeType?: 'count' | 'length') {\n // 现将数据和断点排序\n data.sort(sorter);\n points.sort(sorter);\n\n return {\n domain: breakDomain(data, points),\n scope: breakScope(data, points, scopeType)\n };\n}\n"]}
|
|
@@ -4,7 +4,7 @@ import { MobileTrigger } from './mobile';
|
|
|
4
4
|
export declare function getDefaultTriggerEventByMode(mode: RenderMode): {
|
|
5
5
|
start: string;
|
|
6
6
|
move: string;
|
|
7
|
-
end: string;
|
|
7
|
+
end: string[];
|
|
8
8
|
zoom: string;
|
|
9
9
|
zoomEnd: string;
|
|
10
10
|
scroll: string;
|
|
@@ -13,7 +13,7 @@ export declare function getDefaultTriggerEventByMode(mode: RenderMode): {
|
|
|
13
13
|
} | {
|
|
14
14
|
start: string;
|
|
15
15
|
move: string;
|
|
16
|
-
end: string;
|
|
16
|
+
end: string[];
|
|
17
17
|
zoom: string;
|
|
18
18
|
zoomEnd: string;
|
|
19
19
|
scroll: string;
|
|
@@ -10,7 +10,7 @@ function getDefaultTriggerEventByMode(mode) {
|
|
|
10
10
|
return mode === common_1.RenderModeEnum["desktop-browser"] || mode === common_1.RenderModeEnum["desktop-miniApp"] ? {
|
|
11
11
|
start: "pointerdown",
|
|
12
12
|
move: "pointermove",
|
|
13
|
-
end: "pointerup",
|
|
13
|
+
end: [ "pointerup", "pointerupoutside" ],
|
|
14
14
|
zoom: "wheel",
|
|
15
15
|
zoomEnd: "pointerup",
|
|
16
16
|
scroll: "wheel",
|
|
@@ -18,7 +18,7 @@ function getDefaultTriggerEventByMode(mode) {
|
|
|
18
18
|
} : (0, env_1.isMobileLikeMode)(mode) || (0, env_1.isMiniAppLikeMode)(mode) ? {
|
|
19
19
|
start: "pointerdown",
|
|
20
20
|
move: "pointermove",
|
|
21
|
-
end: "pointerup",
|
|
21
|
+
end: [ "pointerup", "pointerupoutside" ],
|
|
22
22
|
zoom: "pinch",
|
|
23
23
|
zoomEnd: "pinchend",
|
|
24
24
|
scroll: "pan",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/common/trigger/config.ts"],"names":[],"mappings":";;;AAEA,yDAA8D;AAC9D,2CAAwE;AACxE,uCAA2C;AAC3C,qCAAyC;AAEzC,SAAgB,4BAA4B,CAAC,IAAgB;IAC3D,IAAI,IAAI,KAAK,uBAAc,CAAC,iBAAiB,CAAC,IAAI,IAAI,KAAK,uBAAc,CAAC,iBAAiB,CAAC,EAAE;QAC5F,OAAO;YACL,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,aAAa;YACnB,GAAG,EAAE,WAAW;
|
|
1
|
+
{"version":3,"sources":["../src/component/common/trigger/config.ts"],"names":[],"mappings":";;;AAEA,yDAA8D;AAC9D,2CAAwE;AACxE,uCAA2C;AAC3C,qCAAyC;AAEzC,SAAgB,4BAA4B,CAAC,IAAgB;IAC3D,IAAI,IAAI,KAAK,uBAAc,CAAC,iBAAiB,CAAC,IAAI,IAAI,KAAK,uBAAc,CAAC,iBAAiB,CAAC,EAAE;QAC5F,OAAO;YACL,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,aAAa;YACnB,GAAG,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC;YACtC,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,OAAO;YAEf,OAAO,EAAE,wBAAc;SACxB,CAAC;KACH;IAED,IAAI,IAAA,sBAAgB,EAAC,IAAI,CAAC,IAAI,IAAA,uBAAiB,EAAC,IAAI,CAAC,EAAE;QACrD,OAAO;YACL,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,aAAa;YACnB,GAAG,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC;YACtC,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,QAAQ;YACnB,OAAO,EAAE,sBAAa;SACvB,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AA5BD,oEA4BC","file":"config.js","sourcesContent":["import type { RenderMode } from '../../../typings/spec';\n// eslint-disable-next-line no-duplicate-imports\nimport { RenderModeEnum } from '../../../typings/spec/common';\nimport { isMiniAppLikeMode, isMobileLikeMode } from '../../../util/env';\nimport { DeskTopTrigger } from './desktop';\nimport { MobileTrigger } from './mobile';\n\nexport function getDefaultTriggerEventByMode(mode: RenderMode) {\n if (mode === RenderModeEnum['desktop-browser'] || mode === RenderModeEnum['desktop-miniApp']) {\n return {\n start: 'pointerdown',\n move: 'pointermove',\n end: ['pointerup', 'pointerupoutside'],\n zoom: 'wheel',\n zoomEnd: 'pointerup',\n scroll: 'wheel',\n // scrollEnd: 'pointerup',\n trigger: DeskTopTrigger\n };\n }\n\n if (isMobileLikeMode(mode) || isMiniAppLikeMode(mode)) {\n return {\n start: 'pointerdown',\n move: 'pointermove',\n end: ['pointerup', 'pointerupoutside'],\n zoom: 'pinch',\n zoomEnd: 'pinchend',\n scroll: 'pan',\n scrollEnd: 'panend',\n trigger: MobileTrigger\n };\n }\n\n return null;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/crosshair/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { ITooltipActiveTypeAsKeys } from '../../tooltip/interface/common';\nimport type { IPadding, StringOrNumber, ILineMarkSpec, IRectMarkSpec, ITextMarkSpec } from '../../../typings';\nimport type { IAxis } from '../../axis/interface';\nimport type { IComponentSpec } from '../../base/interface';\nimport type { IComponent } from '../../interface';\n\nexport interface ICrossHair extends IComponent {\n clearAxisValue?: () => void;\n setAxisValue?: (v: StringOrNumber, axis: IAxis) => void;\n layoutByValue?: (v?: number) => void;\n hide?: () => void;\n}\n\nexport type CrossHairTrigger = 'click' | 'hover' | ['click', 'hover'];\n\nexport interface ICommonCrosshairSpec extends IComponentSpec {\n /**\n * 是否和tooltip
|
|
1
|
+
{"version":3,"sources":["../src/component/crosshair/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { ITooltipActiveTypeAsKeys } from '../../tooltip/interface/common';\nimport type { IPadding, StringOrNumber, ILineMarkSpec, IRectMarkSpec, ITextMarkSpec } from '../../../typings';\nimport type { IAxis } from '../../axis/interface';\nimport type { IComponentSpec } from '../../base/interface';\nimport type { IComponent } from '../../interface';\n\nexport interface ICrossHair extends IComponent {\n clearAxisValue?: () => void;\n setAxisValue?: (v: StringOrNumber, axis: IAxis) => void;\n layoutByValue?: (v?: number) => void;\n hide?: () => void;\n}\n\nexport type CrossHairTrigger = 'click' | 'hover' | ['click', 'hover'];\n\nexport interface ICommonCrosshairSpec extends IComponentSpec {\n /**\n * 是否和tooltip保持同步,默认为false\n * tooltip出现的时候crosshair出现;tooltip隐藏的时候crsshair隐藏;\n * 默认只要有tooltip显示,都会显示crosshair\n * 也可以通过设置 followTooltip.dimension 为 `false` 来实现显示dimension tooltip的时候不显示crosshair\n * 设置 followTooltip.mark 为 `false` 来实现显示mark tooltip的时候不显示crosshair\n * 设置 followTooltip.group 为 `false` 来实现显示group tooltip的时候不显示crosshair\n *\n * @since 1.11.1\n */\n followTooltip?: boolean | Partial<ITooltipActiveTypeAsKeys<boolean, boolean, boolean>>;\n /**\n * 是否可以通过 点击 固定住一组 crosshair,也可以同时触发。\n * @default 'hover'\n */\n trigger?: CrossHairTrigger;\n /**\n * 隐藏crosshair的触发方式(目前仅支持和trigger一致的设置以及none)\n */\n triggerOff?: CrossHairTrigger | 'none' | number;\n /**\n * 点击后锁定,只有点击才可以更新位置或者解锁\n *\n * @since 1.9.0\n */\n lockAfterClick?: boolean;\n /**\n * crosshair 文本的显示层级\n */\n labelZIndex?: number;\n /**\n * crosshair 辅助图形的显示层级\n */\n gridZIndex?: number;\n}\n\n/**\n * 笛卡尔坐标系下的 crosshair 配置\n */\nexport interface ICartesianCrosshairSpec extends ICommonCrosshairSpec {\n /**\n * 笛卡尔坐标系下 x 轴上 crosshair 配置\n */\n xField?: ICrosshairCategoryFieldSpec;\n /**\n * 笛卡尔坐标系下 y 轴上 crosshair 配置\n */\n yField?: ICrosshairCategoryFieldSpec;\n}\n\n/**\n * 极坐标系下的 crosshair 配置\n */\nexport interface IPolarCrosshairSpec extends ICommonCrosshairSpec {\n /**\n * 极坐标系下 categoryField 字段对应轴上的 crosshair 配置\n */\n categoryField?: ICrosshairCategoryFieldSpec;\n /**\n * 极坐标系下 valueField 字段对应轴上的 crosshair 配置\n */\n valueField?: ICrosshairValueFieldSpec;\n}\nexport interface ICrosshairCategoryFieldSpec extends ICrosshairDataBindSpec {\n /**\n * 是否可见\n */\n visible: boolean;\n /**\n * crosshair 辅助图形配置\n */\n line?: ICrosshairLineSpec | Omit<ICrosshairRectSpec, 'width'>;\n /**\n * crosshair 文本配置\n */\n label?: ICrosshairLabelSpec;\n}\n\nexport interface ICrosshairValueFieldSpec extends ICrosshairDataBindSpec {\n /**\n * 是否可见\n */\n visible: boolean;\n /**\n * crosshair 辅助图形配置\n */\n line?: ICrosshairLineSpec;\n /**\n * crosshair 文本配置\n */\n label?: ICrosshairLabelSpec;\n}\n\nexport type ICrosshairLineStyle = Pick<\n ILineMarkSpec,\n 'stroke' | 'strokeOpacity' | 'opacity' | 'lineDash' | 'lineWidth'\n>;\nexport type ICrosshairRectStyle = ICrosshairLineStyle & Pick<IRectMarkSpec, 'fill' | 'fillOpacity' | 'cornerRadius'>;\n\nexport interface ICrosshairLineSpec {\n /**\n * 是否显示辅助图形\n */\n visible?: boolean;\n /**\n * 辅助图形的类型设置为'line'\n */\n type?: 'line';\n /**\n * 线宽\n * @default 2\n */\n width?: number;\n /**\n * 极坐标系下是否平滑\n */\n smooth?: boolean;\n /**\n * 辅助图形的样式配置\n */\n style?: ICrosshairLineStyle;\n}\n\nexport type ICrosshairRectWidthCallback = (axisSize: { width: number; height: number }, axis: IAxis) => number;\n\nexport interface ICrosshairRectSpec {\n /**\n * 是否显示辅助图形\n */\n visible?: boolean;\n /**\n * 辅助图形的类型设置为'rect'\n */\n type?: 'rect';\n /**\n * 字符串xx%表示此处是内容区间的百分比,数字表示宽度像素,\n * 仅支持笛卡尔坐标系下的 crosshair 配置\n * @default '100%''\n */\n width?: number | string | ICrosshairRectWidthCallback;\n /**\n * 辅助图形的样式配置\n */\n style?: ICrosshairRectStyle;\n}\n\nexport interface ICrosshairLabelSpec {\n /**\n * 十字准星辅助标签是否展示\n */\n visible?: boolean;\n /**\n * label 文本格式化方法\n * @param text\n * @returns\n */\n formatMethod?: (text: StringOrNumber | string[]) => string | string[];\n /**\n * 格式化模板\n * @description 可以通过类似 `{value:.2f}%` 的形式对指定数据字段进行格式化\n * @since 1.10.0\n */\n formatter?: string | string[];\n /**\n * 文本样式配置\n */\n style?: Partial<ITextMarkSpec>;\n /**\n * 文本背景相关配置\n */\n labelBackground?: ICrosshairLabelBackgroundSpec;\n}\n\nexport interface ICrosshairLabelBackgroundSpec {\n /**\n * 是否显示背景,默认为 true\n */\n visible?: boolean;\n /**\n * 最小宽度,像素值\n * @default 30\n */\n minWidth?: number;\n /**\n * 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n /**\n * 内部边距\n */\n padding?: IPadding | number | number[];\n /**\n * 标签背景的样式配置\n */\n style?: Partial<IRectMarkSpec>;\n}\n\nexport interface ICrosshairDataBindSpec {\n /**\n * 声明 crosshair 绑定的轴索引,如果没有声明,则会默认绑定所有同 crosshair 位置相对应的轴。\n */\n bindingAxesIndex?: number[];\n /**\n * crosshair 初始化显示信息,通过该配置可在图表绘制时默认展示 crosshair 组件。\n */\n defaultSelect?: {\n /**\n * 声明要显示数据的轴索引\n */\n axisIndex: number;\n /**\n * 声明显示的数据\n */\n datum: StringOrNumber;\n };\n}\n\nexport type ICrosshairSpec = ICartesianCrosshairSpec | IPolarCrosshairSpec;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/data-zoom/data-zoom/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IMarkSpec } from '../../../typings/spec';\nimport type {\n IAreaMarkSpec,\n ILineMarkSpec,\n IRectMarkSpec,\n ISymbolMarkSpec,\n ITextMarkSpec\n} from '../../../typings/visual';\nimport type { IComponentSpec } from '../../base/interface';\nimport type { ComponentThemeWithDirection, IComponent } from '../../interface';\nimport type { IFilterMode, IDataFilterComponent, IDataFilterComponentSpec } from '../interface';\n\nexport type IDataZoom = IComponent & IDataFilterComponent;\n\n// TODO: 开放的状态样式配置较少,暂时不使用markSpec方式配置\nexport interface IDataZoomStyle {\n /**\n * 是否显示startText和endText\n * @default 'auto' 鼠标hover在选中区域时才显示startText和endText\n */\n showDetail?: 'auto' | boolean;\n /**\n * 中间手柄样式\n */\n middleHandler?: {\n /**\n * 中间手柄是否可见\n */\n visible?: boolean;\n /**\n * 中间手柄的中点图标\n */\n icon?: ISymbolMarkSpec;\n /**\n * 中间手柄的背景矩形\n */\n background?: {\n /**\n * 中间手柄背景矩形的尺寸(当缩略轴为横向时,该尺寸代表高度;同理,当缩略轴为纵向时,该尺寸代表宽度)。\n */\n size?: number;\n } & IRectMarkSpec;\n };\n /**\n * 缩略轴的背景矩形\n */\n background?: {\n /**\n * 缩略轴背景矩形的尺寸(当缩略轴为横向时,该尺寸代表高度;同理,当缩略轴为纵向时,该尺寸代表宽度)\n */\n size?: number;\n } & IRectMarkSpec;\n /**\n * 缩略轴的起点手柄\n */\n startHandler?: ISymbolMarkSpec;\n /**\n * 缩略轴的终点手柄\n */\n endHandler?: ISymbolMarkSpec;\n /**\n * 起点文字样式配置\n */\n startText?: {\n /**\n * 起点文字外边距配置\n */\n padding?: number;\n } & ITextMarkSpec;\n /**\n * 终点文字样式配置\n */\n endText?: {\n /**\n * 终点文字外边距配置\n */\n padding?: number;\n } & ITextMarkSpec;\n /**\n * 缩略轴的拖拽轨迹图元\n */\n dragMask?: IRectMarkSpec;\n /**\n * 缩略轴的选中部分对应的矩形样式配置\n */\n selectedBackground?: IRectMarkSpec;\n /**\n * 缩略轴的预览图表\n */\n backgroundChart?: {\n /**\n * 缩略轴的预览图表,line 样式配置\n */\n line?: ILineMarkSpec;\n /**\n * 缩略轴的预览图表,area 样式配置\n */\n area?: IAreaMarkSpec;\n };\n /**\n * 缩略轴的选中部分预览图表样式配置\n */\n selectedBackgroundChart?: {\n /**\n * 缩略轴的选中部分,line 样式配置\n */\n line?: ILineMarkSpec;\n /**\n * 缩略轴的选中部分,area 样式配置\n */\n area?: IAreaMarkSpec;\n };\n}\n\n/** spec */\nexport interface IDataZoomSpec extends IDataZoomStyle, IDataFilterComponentSpec {\n /**\n * @since 1.11.3\n
|
|
1
|
+
{"version":3,"sources":["../src/component/data-zoom/data-zoom/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IMarkSpec } from '../../../typings/spec';\nimport type {\n IAreaMarkSpec,\n ILineMarkSpec,\n IRectMarkSpec,\n ISymbolMarkSpec,\n ITextMarkSpec\n} from '../../../typings/visual';\nimport type { IComponentSpec } from '../../base/interface';\nimport type { ComponentThemeWithDirection, IComponent } from '../../interface';\nimport type { IFilterMode, IDataFilterComponent, IDataFilterComponentSpec } from '../interface';\n\nexport type IDataZoom = IComponent & IDataFilterComponent;\n\n// TODO: 开放的状态样式配置较少,暂时不使用markSpec方式配置\nexport interface IDataZoomStyle {\n /**\n * 是否显示startText和endText\n * @default 'auto' 鼠标hover在选中区域时才显示startText和endText\n */\n showDetail?: 'auto' | boolean;\n /**\n * 中间手柄样式\n */\n middleHandler?: {\n /**\n * 中间手柄是否可见\n */\n visible?: boolean;\n /**\n * 中间手柄的中点图标\n */\n icon?: ISymbolMarkSpec;\n /**\n * 中间手柄的背景矩形\n */\n background?: {\n /**\n * 中间手柄背景矩形的尺寸(当缩略轴为横向时,该尺寸代表高度;同理,当缩略轴为纵向时,该尺寸代表宽度)。\n */\n size?: number;\n } & IRectMarkSpec;\n };\n /**\n * 缩略轴的背景矩形\n */\n background?: {\n /**\n * 缩略轴背景矩形的尺寸(当缩略轴为横向时,该尺寸代表高度;同理,当缩略轴为纵向时,该尺寸代表宽度)\n */\n size?: number;\n } & IRectMarkSpec;\n /**\n * 缩略轴的起点手柄\n */\n startHandler?: ISymbolMarkSpec;\n /**\n * 缩略轴的终点手柄\n */\n endHandler?: ISymbolMarkSpec;\n /**\n * 起点文字样式配置\n */\n startText?: {\n /**\n * 起点文字外边距配置\n */\n padding?: number;\n } & ITextMarkSpec;\n /**\n * 终点文字样式配置\n */\n endText?: {\n /**\n * 终点文字外边距配置\n */\n padding?: number;\n } & ITextMarkSpec;\n /**\n * 缩略轴的拖拽轨迹图元\n */\n dragMask?: IRectMarkSpec;\n /**\n * 缩略轴的选中部分对应的矩形样式配置\n */\n selectedBackground?: IRectMarkSpec;\n /**\n * 缩略轴的预览图表\n */\n backgroundChart?: {\n /**\n * 缩略轴的预览图表,line 样式配置\n */\n line?: ILineMarkSpec;\n /**\n * 缩略轴的预览图表,area 样式配置\n */\n area?: IAreaMarkSpec;\n };\n /**\n * 缩略轴的选中部分预览图表样式配置\n */\n selectedBackgroundChart?: {\n /**\n * 缩略轴的选中部分,line 样式配置\n */\n line?: ILineMarkSpec;\n /**\n * 缩略轴的选中部分,area 样式配置\n */\n area?: IAreaMarkSpec;\n };\n}\n\n/** spec */\nexport interface IDataZoomSpec extends IDataZoomStyle, IDataFilterComponentSpec {\n /**\n * 是否展示背景图\n * @since 1.11.3\n */\n showBackgroundChart?: boolean;\n /**\n * 数据过滤模式\n * 'filter' 为过滤数据从而达到缩放轴的效果, 'axis'为直接缩放轴, 不过滤数据\n * 具体效果可参考: https://www.visactor.io/vchart/demo/sequence-chart/social-media-event?keyword=dataZoom\n * @default 'filter' (dataZoom默认数据过滤模式)\n */\n filterMode?: IFilterMode;\n /**\n * 背景趋势线对应的字段\n */\n valueField?: string;\n /**\n * 起始点文字标签format格式配置\n */\n startText?: {\n /**\n * 起点文字外边距配置\n */\n padding?: number;\n /**\n * 起点文字文本样式配置\n */\n style?: IMarkSpec<ITextMarkSpec>;\n /**\n * 起点文字格式化配置,使用回调函数的形式配置。\n */\n formatMethod?: (text: string | number) => string | string[];\n /**\n * 格式化模板\n * @description 可以通过类似 `{value:.2f}%` 的形式对指定数据字段进行格式化\n * @since 1.10.0\n */\n formatter?: string | string[];\n };\n endText?: {\n /**\n * 终点文字外边距配置\n */\n padding?: number;\n /**\n * 终点文字文本样式配置\n */\n style?: IMarkSpec<ITextMarkSpec>;\n /**\n *\n * 终点文字格式化配置, 使用回调函数的形式配置\n */\n formatMethod?: (text: string | number) => string | string[];\n /**\n * 格式化模板\n * @description 可以通过类似 `{value:.2f}%` 的形式对指定数据字段进行格式化\n * @since 1.10.0\n */\n formatter?: string | string[];\n };\n /**\n * 是否开启框选, 如果不开启则支持selectedBackground拖拽(框选和拖拽两者互斥)\n * @default false\n */\n brushSelect?: boolean;\n /**\n * 是否忽略轴上配置的固定 bandSize\n * 如果置为 true,则 datazoom 可以任意改变轴的 bandSize。\n * 但如果轴上配置了 bandSize 范围,则第一次渲染会保持 bandSize 在配置范围内。\n * 该配置仅在 auto 设为 true 时生效。\n * @since 1.7.0\n */\n ignoreBandSize?: boolean;\n\n /**\n * 背景图表节点压缩率, 如果不配置则默认将节点限制在10000个\n * @since 1.10.0\n */\n tolerance?: number;\n}\n\nexport type IDataZoomCommonTheme = IComponentSpec &\n IDataZoomStyle & {\n /** 显示的位置 */\n orient?: IDataZoomSpec['orient'];\n /** 组件宽度 */\n width?: IDataZoomSpec['width'];\n /** 组件高度 */\n height?: IDataZoomSpec['height'];\n /**\n * 是否开启框选, 如果不开启则支持selectedBackground拖拽(框选和拖拽两者互斥)\n * @default false\n */\n brushSelect?: boolean;\n };\n\nexport type IDataZoomTheme = ComponentThemeWithDirection<IDataZoomCommonTheme>;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/label/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { BaseLabelAttrs } from '@visactor/vrender-components';\nimport type { ConvertToMarkStyleSpec, Datum, IComposedTextMarkSpec, IFormatMethod, ITextMarkSpec } from '../../typings';\nimport type { IComponentSpec } from '../base/interface';\nimport type { ILabelMark } from '../../mark/interface';\nimport type { ISeries } from '../../series/interface';\nimport type { ICompilableMark } from '../../compile/mark/interface';\nimport type { IRegion } from '../../region/interface';\n\nexport interface ILabelInfo {\n baseMark: ICompilableMark;\n labelMark: ILabelMark;\n series: ISeries;\n labelSpec: TransformedLabelSpec;\n}\n\nexport interface ILabelComponentContext {\n region: IRegion;\n labelInfo: ILabelInfo[];\n}\n\nexport interface ILabelFormatMethodContext {\n series?: ISeries;\n}\n\n/**\n * 系列图元标签配置,一般用于展示数据项\n */\nexport interface ILabelSpec extends IComponentSpec, ILabelAnimationSpec {\n /** 默认不显示标签 */\n visible?: boolean;\n /**\n * 是否支持交互。\n * @default false\n */\n interactive?: boolean;\n /**\n * 文本类型:text, rich,\n * @since 1.7.0\n * @deprecated\n */\n textType?: 'text' | 'rich';\n /**\n * 格式化函数\n * @since 1.10.0 支持返回结构 `{type:'rich', text: [{text:'some text', fill:'black', fontSize: 20}]}\n */\n formatMethod?: IFormatMethod<[text: string | string[], datum?: Datum, ctx?: ILabelFormatMethodContext]>;\n /**\n * 字符串模版\n * 用{}包裹变量名的字符串模版, 变量名取自数据属性值\n * eg: 'type={type},value={value}'\n * @since 1.7.0\n */\n formatter?: string | string[];\n /** 标签与其对应数据图元的间距 */\n offset?: number;\n /** 标签位置 */\n position?: string;\n /** 标签样式配置 */\n style?: ConvertToMarkStyleSpec<IComposedTextMarkSpec>;\n /** 交互样式配置 */\n state?: LabelStateStyle<Partial<IComposedTextMarkSpec>>;\n /** 标签防重叠配置 */\n overlap?: BaseLabelAttrs['overlap'];\n /** 标签智能反色配置 */\n smartInvert?: BaseLabelAttrs['smartInvert'];\n /**\n * 堆积数据过滤类型\n * @since 1.12.0\n */\n stackDataFilterType?: 'min' | 'max';\n /** 自定义标签数据筛选和排序\n * @since 1.3.0\n */\n dataFilter?: BaseLabelAttrs['dataFilter'];\n /** 自定义标签布局函数。\n * @description 当配置了 customLayoutFunc 后,默认布局和防重叠逻辑将不再生效。(overlap/position/offset不生效)\n * @since 1.3.0\n */\n customLayoutFunc?: BaseLabelAttrs['customLayoutFunc'];\n /** 自定义标签躲避函数\n * @description 当配置了 customOverlapFunc 后,会根据 position 和 offset 进行初始布局。配置的防重叠逻辑(overlap)不生效。\n * @since 1.3.0\n */\n customOverlapFunc?: BaseLabelAttrs['customOverlapFunc'];\n
|
|
1
|
+
{"version":3,"sources":["../src/component/label/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { BaseLabelAttrs } from '@visactor/vrender-components';\nimport type { ConvertToMarkStyleSpec, Datum, IComposedTextMarkSpec, IFormatMethod, ITextMarkSpec } from '../../typings';\nimport type { IComponentSpec } from '../base/interface';\nimport type { ILabelMark } from '../../mark/interface';\nimport type { ISeries } from '../../series/interface';\nimport type { ICompilableMark } from '../../compile/mark/interface';\nimport type { IRegion } from '../../region/interface';\n\nexport interface ILabelInfo {\n baseMark: ICompilableMark;\n labelMark: ILabelMark;\n series: ISeries;\n labelSpec: TransformedLabelSpec;\n}\n\nexport interface ILabelComponentContext {\n region: IRegion;\n labelInfo: ILabelInfo[];\n}\n\nexport interface ILabelFormatMethodContext {\n series?: ISeries;\n}\n\n/**\n * 系列图元标签配置,一般用于展示数据项\n */\nexport interface ILabelSpec extends IComponentSpec, ILabelAnimationSpec {\n /** 默认不显示标签 */\n visible?: boolean;\n /**\n * 是否支持交互。\n * @default false\n */\n interactive?: boolean;\n /**\n * 文本类型:text, rich,\n * @since 1.7.0\n * @deprecated\n */\n textType?: 'text' | 'rich';\n /**\n * 格式化函数\n * @since 1.10.0 支持返回结构 `{type:'rich', text: [{text:'some text', fill:'black', fontSize: 20}]}\n */\n formatMethod?: IFormatMethod<[text: string | string[], datum?: Datum, ctx?: ILabelFormatMethodContext]>;\n /**\n * 字符串模版\n * 用{}包裹变量名的字符串模版, 变量名取自数据属性值\n * eg: 'type={type},value={value}'\n * @since 1.7.0\n */\n formatter?: string | string[];\n /** 标签与其对应数据图元的间距 */\n offset?: number;\n /** 标签位置 */\n position?: string;\n /** 标签样式配置 */\n style?: ConvertToMarkStyleSpec<IComposedTextMarkSpec>;\n /** 交互样式配置 */\n state?: LabelStateStyle<Partial<IComposedTextMarkSpec>>;\n /** 标签防重叠配置 */\n overlap?: BaseLabelAttrs['overlap'];\n /** 标签智能反色配置 */\n smartInvert?: BaseLabelAttrs['smartInvert'];\n /**\n * 堆积数据过滤类型\n * @since 1.12.0\n */\n stackDataFilterType?: 'min' | 'max';\n /** 自定义标签数据筛选和排序\n * @since 1.3.0\n */\n dataFilter?: BaseLabelAttrs['dataFilter'];\n /** 自定义标签布局函数。\n * @description 当配置了 customLayoutFunc 后,默认布局和防重叠逻辑将不再生效。(overlap/position/offset不生效)\n * @since 1.3.0\n */\n customLayoutFunc?: BaseLabelAttrs['customLayoutFunc'];\n /** 自定义标签躲避函数\n * @description 当配置了 customOverlapFunc 后,会根据 position 和 offset 进行初始布局。配置的防重叠逻辑(overlap)不生效。\n * @since 1.3.0\n */\n customOverlapFunc?: BaseLabelAttrs['customOverlapFunc'];\n /**\n * 标签布局\n */\n labelLayout?: 'series' | 'region';\n /**\n * 是否支持3D\n */\n support3d?: boolean;\n /**\n * 是否同步数据图元的状态变化\n * @default false\n * @since 1.9.0\n */\n syncState?: boolean;\n}\n\nexport type ILabelAnimationSpec = Pick<\n BaseLabelAttrs,\n 'animation' | 'animationEnter' | 'animationUpdate' | 'animationExit'\n>;\nexport type IMultiLabelSpec<T extends Omit<ILabelSpec, 'position'>> = T | T[];\n\ntype LabelStateStyle<T> = {\n /**\n * 标签hover状态样式配置\n */\n hover?: T;\n /**\n * 标签hover_reverse状态样式配置\n */\n hover_reverse?: T;\n /**\n * 标签选中状态样式配置\n */\n selected?: T;\n /**\n * 标签未选中状态样式配置\n */\n selected_reverse?: T;\n};\n\nexport type ITotalLabelSpec = Pick<\n ILabelSpec,\n 'visible' | 'formatMethod' | 'interactive' | 'offset' | 'style' | 'state' | 'textType' | 'overlap'\n>;\n\nexport interface ITotalLabelTheme\n extends Pick<ILabelSpec, 'visible' | 'interactive' | 'offset' | 'overlap' | 'smartInvert' | 'animation'> {\n style?: ITextMarkSpec;\n}\n\n// 内部处理转换后的标签配置\nexport type TransformedLabelSpec = ILabelSpec & {\n getStyleHandler: (series: ISeries) => (mark?: ILabelMark, spec?: any) => void;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/legend/continuous/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IRectMarkSpec, ISymbolMarkSpec, ITextMarkSpec, StringOrNumber } from '../../../typings';\nimport type { ComponentThemeWithDirection } from '../../interface';\nimport type { ILegendCommonSpec, NoVisibleMarkStyle } from '../interface';\n\ntype Text = StringOrNumber;\n\nexport type TextAttribute = {\n /** 是否展示 */\n visible?: boolean;\n /** 文本内容 */\n text?: Text;\n /**\n * 文本同滑块的间距,默认为 6\n */\n space?: number;\n /**\n * 文本样式\n */\n style?: Omit<NoVisibleMarkStyle<ITextMarkSpec>, 'text'>;\n};\n\nexport type HandlerTextAttribute = {\n /** 是否展示 */\n visible?: boolean;\n /**\n * 数据展示的小数精度,默认为0,无小数点。\n */\n precision?: number;\n /** 文本内容格式化函数 */\n formatter?: (text: Text) => Text;\n /**\n * 文本同滑块的间距,默认为 6\n */\n space?: number;\n /**\n * 文本样式\n */\n style?: Omit<NoVisibleMarkStyle<ITextMarkSpec>, 'text'>;\n};\n\n// 连续图例通用配置\nexport type IContinuousLegendSpec = ILegendCommonSpec & {\n /**\n *
|
|
1
|
+
{"version":3,"sources":["../src/component/legend/continuous/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IRectMarkSpec, ISymbolMarkSpec, ITextMarkSpec, StringOrNumber } from '../../../typings';\nimport type { ComponentThemeWithDirection } from '../../interface';\nimport type { ILegendCommonSpec, NoVisibleMarkStyle } from '../interface';\n\ntype Text = StringOrNumber;\n\nexport type TextAttribute = {\n /** 是否展示 */\n visible?: boolean;\n /** 文本内容 */\n text?: Text;\n /**\n * 文本同滑块的间距,默认为 6\n */\n space?: number;\n /**\n * 文本样式\n */\n style?: Omit<NoVisibleMarkStyle<ITextMarkSpec>, 'text'>;\n};\n\nexport type HandlerTextAttribute = {\n /** 是否展示 */\n visible?: boolean;\n /**\n * 数据展示的小数精度,默认为0,无小数点。\n */\n precision?: number;\n /** 文本内容格式化函数 */\n formatter?: (text: Text) => Text;\n /**\n * 文本同滑块的间距,默认为 6\n */\n space?: number;\n /**\n * 文本样式\n */\n style?: Omit<NoVisibleMarkStyle<ITextMarkSpec>, 'text'>;\n};\n\n// 连续图例通用配置\nexport type IContinuousLegendSpec = ILegendCommonSpec & {\n /**\n * 连续图例是否开启反向展示,最小值和最大值会发生反向\n * @default false\n * @since 1.11.0\n */\n inverse?: boolean;\n /**\n * 声明关联的映射字段\n */\n field?: string;\n /**\n * 连续图例关联的映射 scale\n */\n scale?: string;\n /**\n * 默认筛选的数据范围\n */\n defaultSelected?: [number, number];\n /**\n * 是否允许拖动,默认为 true\n */\n slidable?: boolean;\n /**\n * 滑块轨道配置\n */\n rail?: {\n /**\n * 滑块的宽度\n */\n width?: number;\n /**\n * 滑块的高度\n */\n height?: number;\n /**\n * 背景轨道样式配置\n */\n style?: Omit<NoVisibleMarkStyle<IRectMarkSpec>, 'width' | 'height'>;\n };\n /**\n * 滑块手柄配置\n */\n handler?: {\n /**\n * 是否绘制 handler,默认为 true\n */\n visible?: boolean;\n /**\n * 滑块手柄的样式配置\n */\n style?: NoVisibleMarkStyle<ISymbolMarkSpec>;\n };\n /**\n * 选中区域样式配置\n */\n track?: {\n style?: Omit<NoVisibleMarkStyle<IRectMarkSpec>, 'width' | 'height'>;\n };\n /**\n * 滑块首部文本配置\n */\n startText?: TextAttribute;\n /**\n * 滑块尾部文本配置\n */\n endText?: TextAttribute;\n /**\n * 滑块对应的文本配置项\n */\n handlerText?: HandlerTextAttribute;\n};\n\n// 颜色图例配置\nexport type IColorLegendSpec = IContinuousLegendSpec & {\n /**\n * 声明 color 类型图例\n */\n type: 'color';\n};\n\n// 尺寸图例配置\nexport type ISizeLegendSpec = IContinuousLegendSpec & {\n /**\n * 声明 size 类型图例\n */\n type: 'size';\n /**\n * size 背景样式配置\n */\n sizeBackground?: Omit<NoVisibleMarkStyle<IRectMarkSpec>, 'visible' | 'width' | 'height'>;\n /**\n * 指定组件中手柄和文字的摆放位置,可选值为:\n * 'left' 手柄和label在滑块左侧,layout 为 vertical 时有效。\n * 'right' 手柄和label在滑块右侧,layout 为 vertical 时有效。\n * 'top' 手柄和label在滑块上侧,layout 为 horizontal 时有效。\n * 'bottom' 手柄和label在滑块下侧,layout 为 horizontal 时有效。\n */\n align?: 'top' | 'bottom' | 'left' | 'right';\n};\n\nexport type IContinuousLegendTheme = Omit<\n IContinuousLegendSpec,\n 'type' | 'field' | 'scale' | 'regionIndex' | 'regionId' | 'seriesIndex' | 'seriesId' | 'id' | 'defaultSelected'\n>;\n\nexport type ISizeLegendCommonTheme = IContinuousLegendTheme & {\n sizeBackground?: ISizeLegendSpec['sizeBackground'];\n};\n\nexport type IColorLegendTheme = ComponentThemeWithDirection<IContinuousLegendTheme>;\n\nexport type ISizeLegendTheme = ComponentThemeWithDirection<ISizeLegendCommonTheme>;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/legend/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { LegendTitle } from '@visactor/vrender-components';\nimport type {\n Datum,\n IOrientType,\n IPadding,\n IRectMarkSpec,\n ISymbolMarkSpec,\n ITextMarkSpec,\n StringOrNumber\n} from '../../typings';\nimport type { IComponent } from '../interface';\nimport type { IComponentSpec } from '../base/interface';\nimport type { IDiscreteLegendSpec } from './discrete/interface';\nimport type { IColorLegendSpec, ISizeLegendSpec } from './continuous/interface';\n\nexport type ILegend = IComponent & {\n getLegendData: () => Datum[];\n getSelectedData: () => StringOrNumber[];\n setSelectedData: (d: StringOrNumber[]) => void;\n};\n\nexport interface IDiscreteLegend extends ILegend {\n getLegendDefaultData: (originalData?: boolean) => StringOrNumber[];\n}\n\nexport type NoVisibleMarkStyle<T> = Omit<T, 'visible'>;\n\nexport type ITitle = {\n /** 标题文本样式 */\n textStyle?: NoVisibleMarkStyle<ITextMarkSpec>;\n /**\n * @deprecated 请使用 textStyle 配置文本样式\n */\n style?: NoVisibleMarkStyle<ITextMarkSpec>;\n /** 文本前 mark 图元 */\n shape?: {\n /**\n * 是否展示 shape\n */\n visible?: boolean;\n /**\n * shape 同 文本的间距\n */\n space?: number;\n style?: NoVisibleMarkStyle<ISymbolMarkSpec>;\n };\n /**\n * 标题的背景面板配置\n */\n background?: {\n /**\n * 是否绘制背景层\n */\n visible?: boolean;\n /**\n * 背景层样式\n */\n style?: Omit<NoVisibleMarkStyle<IRectMarkSpec>, 'visible' | 'width' | 'height'>;\n };\n} & Omit<LegendTitle, 'textStyle' | 'style' | 'background'>;\n\n// 图例组件通用配置\nexport type ILegendCommonSpec = {\n /**\n * 是否显示图例\n * @default true\n */\n visible?: boolean;\n /**\n *
|
|
1
|
+
{"version":3,"sources":["../src/component/legend/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { LegendTitle } from '@visactor/vrender-components';\nimport type {\n Datum,\n IOrientType,\n IPadding,\n IRectMarkSpec,\n ISymbolMarkSpec,\n ITextMarkSpec,\n StringOrNumber\n} from '../../typings';\nimport type { IComponent } from '../interface';\nimport type { IComponentSpec } from '../base/interface';\nimport type { IDiscreteLegendSpec } from './discrete/interface';\nimport type { IColorLegendSpec, ISizeLegendSpec } from './continuous/interface';\n\nexport type ILegend = IComponent & {\n getLegendData: () => Datum[];\n getSelectedData: () => StringOrNumber[];\n setSelectedData: (d: StringOrNumber[]) => void;\n};\n\nexport interface IDiscreteLegend extends ILegend {\n getLegendDefaultData: (originalData?: boolean) => StringOrNumber[];\n}\n\nexport type NoVisibleMarkStyle<T> = Omit<T, 'visible'>;\n\nexport type ITitle = {\n /** 标题文本样式 */\n textStyle?: NoVisibleMarkStyle<ITextMarkSpec>;\n /**\n * @deprecated 请使用 textStyle 配置文本样式\n */\n style?: NoVisibleMarkStyle<ITextMarkSpec>;\n /** 文本前 mark 图元 */\n shape?: {\n /**\n * 是否展示 shape\n */\n visible?: boolean;\n /**\n * shape 同 文本的间距\n */\n space?: number;\n style?: NoVisibleMarkStyle<ISymbolMarkSpec>;\n };\n /**\n * 标题的背景面板配置\n */\n background?: {\n /**\n * 是否绘制背景层\n */\n visible?: boolean;\n /**\n * 背景层样式\n */\n style?: Omit<NoVisibleMarkStyle<IRectMarkSpec>, 'visible' | 'width' | 'height'>;\n };\n} & Omit<LegendTitle, 'textStyle' | 'style' | 'background'>;\n\n// 图例组件通用配置\nexport type ILegendCommonSpec = {\n /**\n * 是否显示图例\n * @default true\n */\n visible?: boolean;\n /**\n * 图例的位置,相对于region区域的四个方位,\n * left - 图例在左侧\n * right - 图例在右侧\n * top - 图例在上方\n * bottom - 图例在下方\n * @default 'left'\n */\n orient?: IOrientType;\n /**\n * 图例在当前行或者列的对齐方式,起始 | 居中 | 末尾,\n * 对于orient为'left'或者'right'的图例,\n * start - 图例在左侧\n * middle - 图例居中\n * end - 图例在右侧\n * 对于orient为'top'或者'bottom'的图例,\n * start - 图例在上方\n * middle - 图例居中\n * end - 图例在下方\n * @default 'middle'\n */\n position?: 'start' | 'middle' | 'end';\n /**\n * 图例组件的布局配置,默认自动跟随显示位置进行调整。\n * 1. `orient` 为 'top' 或者 'bottom' 时,默认为 'horizontal' 水平布局\n * 2. `orient` 为 'left' 或者 'right' 时,默认为 'vertical' 垂直布局\n */\n layout?: 'horizontal' | 'vertical';\n\n /**\n * 是否进行数据筛选,默认为 true\n */\n filter?: boolean;\n /**\n * 自定义筛选函数\n * @since 1.13.1\n * @param data 当前数据\n * @param selectedRange 选中的数据范围\n * @param datumField 筛选数据对应的字段\n * @returns 最终展示的数据\n */\n customFilter?: (data: any, selectedRange: StringOrNumber[], datumField: string) => any;\n\n /**\n * 图例标题配置\n */\n title?: ITitle;\n\n /**\n * 图例背景配置\n */\n background?: {\n /**\n * 是否绘制背景层\n */\n visible?: boolean;\n /**\n * 背景内边距\n */\n padding?: IPadding | number | number[];\n /**\n * 背景层样式\n */\n style?: Omit<NoVisibleMarkStyle<IRectMarkSpec>, 'visible' | 'width' | 'height'>;\n };\n /**\n * 是否允许交互\n * @default true\n */\n interactive?: boolean;\n} & Omit<IComponentSpec, 'orient'>;\n\nexport type ILegendSpec = IDiscreteLegendSpec | IColorLegendSpec | ISizeLegendSpec;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/marker/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { IPadding } from '@visactor/vutils';\nimport type {\n SymbolType,\n IGraphicAttribute,\n ICustomPath2D,\n ITextGraphicAttribute,\n IRichTextGraphicAttribute\n} from '@visactor/vrender-core';\nimport type {\n IComposedTextMarkSpec,\n IFormatMethod,\n IRectMarkSpec,\n IRichTextFormatMethod,\n ISymbolMarkSpec,\n StringOrNumber\n} from '../../typings';\nimport type { IComponentSpec } from '../base/interface';\nimport type { Datum } from '@visactor/vrender-components';\nimport type { ICartesianSeries, IGeoSeries, IPolarSeries } from '../../series/interface';\nimport type {\n IOptionAggr,\n IOptionAggrField,\n IOptionRegr,\n IOptionSeries,\n IOptionWithCoordinates\n} from '../../data/transforms/interface';\nimport type { IVChart } from '../../core/interface';\n\nexport type IMarkerSupportSeries = ICartesianSeries | IPolarSeries | IGeoSeries;\n\nexport type IPolarPoint = {\n angle: number;\n radius: number;\n};\nexport type OffsetPoint = {\n /**\n * x 方向的偏移\n * 1. number 类型表示像素值,如 12\n * 2. string 类型表示百分比,如 '10%' 表示相对于所在 region 宽度的占比\n */\n x?: number | string;\n /**\n * y 方向的偏移\n * 1. number 类型表示像素值,如 12\n * 2. string 类型表示百分比,如 '10%' 表示相对于所在 region 高度的占比\n */\n y?: number | string;\n};\n\nexport type IAggrType = 'sum' | 'average' | 'min' | 'max' | 'variance' | 'standardDeviation' | 'median';\nexport type IDataPos = StringOrNumber | IAggrType;\nexport type IDataPosCallback = (\n relativeSeriesData: Datum[],\n startRelativeSeriesData: Datum[],\n endRelativeSeriesData: Datum[],\n relativeSeries: IMarkerSupportSeries,\n startRelativeSeries: IMarkerSupportSeries,\n endRelativeSeries: IMarkerSupportSeries\n) => StringOrNumber;\n\nexport type IDataPointSpec = {\n /**\n * 数据字段配置\n */\n [key: string]: IDataPos | IDataPosCallback;\n /**\n * 具体某个数据元素关联的series序号(仅在标注目标:数据元素下有效)\n */\n refRelativeSeriesIndex?: number;\n /**\n * 具体某个数据元素关联的series 的id(仅在标注目标:数据元素下有效)\n */\n refRelativeSeriesId?: StringOrNumber;\n /**\n * 指定使用 xField 上的那个维度索引,因为 xField 字段有可能会包含多个维度,比如分组场景\n * @default 0\n * @since 1.7.0\n */\n xFieldIndex?: number;\n /**\n * 指定使用 xField 上的维度名称,因为 xField 字段有可能会包含多个维度,比如分组场景。\n * `xFieldIndex` 和 `xFieldDim` 声明一个即可,同时声明则 `xFieldDim` 优先级更高。\n * @since 1.7.0\n */\n xFieldDim?: string;\n /**\n * 指定使用 yField 上的那个维度索引,因为 yField 字段有可能会包含多个维度,比如分组场景。\n * @default 0\n * @since 1.7.0\n */\n yFieldIndex?: number;\n /**\n * 指定使用 yField 上的维度名称,因为 yField 字段有可能会包含多个维度,比如分组场景。\n * `yFieldIndex` 和 `yFieldDim` 声明一个即可,同时声明则 `yFieldDim` 优先级更高。\n * @since 1.7.0\n */\n yFieldDim?: string;\n /**\n * 指定使用 angleField 上的那个维度索引,因为 angleField 字段有可能会包含多个维度,比如分组场景\n * @default 0\n * @since 1.11.0\n */\n angleFieldIndex?: number;\n /**\n * 指定使用 angleField 上的维度名称,因为 angleField 字段有可能会包含多个维度,比如分组场景。\n * `angleFieldIndex` 和 `angleFieldDim` 声明一个即可,同时声明则 `angleFieldDim` 优先级更高。\n * @since 1.11.0\n */\n angleFieldDim?: string;\n /**\n * 指定使用 radiusField 上的那个维度索引,因为 radiusField 字段有可能会包含多个维度,比如分组场景\n * @default 0\n * @since 1.11.0\n */\n radiusFieldIndex?: number;\n /**\n * 指定使用 radiusField 上的维度名称,因为 radiusField 字段有可能会包含多个维度,比如分组场景。\n * `radiusFieldIndex` 和 `radiusFieldDim` 声明一个即可,同时声明则 `radiusFieldDim` 优先级更高。\n * @since 1.11.0\n */\n radiusFieldDim?: string;\n};\n\nexport type MarkerPositionPoint = {\n /**\n * x 坐标位置,number 类型表示像素值,string 类型表示相对画布宽度或者 region 宽度的占比(从左往右)\n */\n x: StringOrNumber;\n /**\n * y 坐标位置,number 类型表示像素值,string 类型表示相对画布高度或者 region 高度的占比(从上至下)\n */\n y: StringOrNumber;\n};\n\nexport type ICoordinateOption = {\n x?: IOptionAggrField | (IDataPosCallback | StringOrNumber)[];\n y?: IOptionAggrField | (IDataPosCallback | StringOrNumber)[];\n angle?: IOptionAggrField | (IDataPosCallback | StringOrNumber)[];\n radius?: IOptionAggrField | (IDataPosCallback | StringOrNumber)[];\n getRefRelativeSeries?: () => IMarkerSupportSeries;\n} & IOptionSeries;\n\nexport type IMarkerPositionsSpec = {\n /**\n * 画布坐标\n * `positions` 自 1.12.0 版本开始支持回调函数\n */\n positions:\n | MarkerPositionPoint[]\n | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => MarkerPositionPoint[]);\n /**\n * 是否为相对 region 的坐标,默认为 false,即相对画布的坐标\n * @default false\n * @since 1.7.0\n */\n regionRelative?: boolean;\n};\n\nexport type IMarkerLabelWithoutRefSpec = {\n visible?: boolean;\n /**\n * label整体 - 是否自动旋转\n */\n autoRotate?: boolean;\n /**\n * label整体 - 最小宽度,像素值\n * @default 30\n */\n minWidth?: number;\n /**\n * label整体 - 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n /**\n * label整体 - 背景面板配置\n */\n labelBackground?: {\n visible?: boolean;\n /**\n * 标签背景支持自定义path\n * @since 1.11.10\n */\n customShape?: (\n text: ITextGraphicAttribute | IRichTextGraphicAttribute,\n attrs: Partial<IGraphicAttribute>,\n path: ICustomPath2D\n ) => ICustomPath2D;\n /**\n * 内部边距\n */\n padding?: IPadding | number[] | number;\n } & Partial<IMarkerState<Omit<IRectMarkSpec, 'visible'>>>;\n\n
|
|
1
|
+
{"version":3,"sources":["../src/component/marker/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { IPadding } from '@visactor/vutils';\nimport type {\n SymbolType,\n IGraphicAttribute,\n ICustomPath2D,\n ITextGraphicAttribute,\n IRichTextGraphicAttribute\n} from '@visactor/vrender-core';\nimport type {\n IComposedTextMarkSpec,\n IFormatMethod,\n IRectMarkSpec,\n IRichTextFormatMethod,\n ISymbolMarkSpec,\n StringOrNumber\n} from '../../typings';\nimport type { IComponentSpec } from '../base/interface';\nimport type { Datum } from '@visactor/vrender-components';\nimport type { ICartesianSeries, IGeoSeries, IPolarSeries } from '../../series/interface';\nimport type {\n IOptionAggr,\n IOptionAggrField,\n IOptionRegr,\n IOptionSeries,\n IOptionWithCoordinates\n} from '../../data/transforms/interface';\nimport type { IVChart } from '../../core/interface';\n\nexport type IMarkerSupportSeries = ICartesianSeries | IPolarSeries | IGeoSeries;\n\nexport type IPolarPoint = {\n angle: number;\n radius: number;\n};\nexport type OffsetPoint = {\n /**\n * x 方向的偏移\n * 1. number 类型表示像素值,如 12\n * 2. string 类型表示百分比,如 '10%' 表示相对于所在 region 宽度的占比\n */\n x?: number | string;\n /**\n * y 方向的偏移\n * 1. number 类型表示像素值,如 12\n * 2. string 类型表示百分比,如 '10%' 表示相对于所在 region 高度的占比\n */\n y?: number | string;\n};\n\nexport type IAggrType = 'sum' | 'average' | 'min' | 'max' | 'variance' | 'standardDeviation' | 'median';\nexport type IDataPos = StringOrNumber | IAggrType;\nexport type IDataPosCallback = (\n relativeSeriesData: Datum[],\n startRelativeSeriesData: Datum[],\n endRelativeSeriesData: Datum[],\n relativeSeries: IMarkerSupportSeries,\n startRelativeSeries: IMarkerSupportSeries,\n endRelativeSeries: IMarkerSupportSeries\n) => StringOrNumber;\n\nexport type IDataPointSpec = {\n /**\n * 数据字段配置\n */\n [key: string]: IDataPos | IDataPosCallback;\n /**\n * 具体某个数据元素关联的series序号(仅在标注目标:数据元素下有效)\n */\n refRelativeSeriesIndex?: number;\n /**\n * 具体某个数据元素关联的series 的id(仅在标注目标:数据元素下有效)\n */\n refRelativeSeriesId?: StringOrNumber;\n /**\n * 指定使用 xField 上的那个维度索引,因为 xField 字段有可能会包含多个维度,比如分组场景\n * @default 0\n * @since 1.7.0\n */\n xFieldIndex?: number;\n /**\n * 指定使用 xField 上的维度名称,因为 xField 字段有可能会包含多个维度,比如分组场景。\n * `xFieldIndex` 和 `xFieldDim` 声明一个即可,同时声明则 `xFieldDim` 优先级更高。\n * @since 1.7.0\n */\n xFieldDim?: string;\n /**\n * 指定使用 yField 上的那个维度索引,因为 yField 字段有可能会包含多个维度,比如分组场景。\n * @default 0\n * @since 1.7.0\n */\n yFieldIndex?: number;\n /**\n * 指定使用 yField 上的维度名称,因为 yField 字段有可能会包含多个维度,比如分组场景。\n * `yFieldIndex` 和 `yFieldDim` 声明一个即可,同时声明则 `yFieldDim` 优先级更高。\n * @since 1.7.0\n */\n yFieldDim?: string;\n /**\n * 指定使用 angleField 上的那个维度索引,因为 angleField 字段有可能会包含多个维度,比如分组场景\n * @default 0\n * @since 1.11.0\n */\n angleFieldIndex?: number;\n /**\n * 指定使用 angleField 上的维度名称,因为 angleField 字段有可能会包含多个维度,比如分组场景。\n * `angleFieldIndex` 和 `angleFieldDim` 声明一个即可,同时声明则 `angleFieldDim` 优先级更高。\n * @since 1.11.0\n */\n angleFieldDim?: string;\n /**\n * 指定使用 radiusField 上的那个维度索引,因为 radiusField 字段有可能会包含多个维度,比如分组场景\n * @default 0\n * @since 1.11.0\n */\n radiusFieldIndex?: number;\n /**\n * 指定使用 radiusField 上的维度名称,因为 radiusField 字段有可能会包含多个维度,比如分组场景。\n * `radiusFieldIndex` 和 `radiusFieldDim` 声明一个即可,同时声明则 `radiusFieldDim` 优先级更高。\n * @since 1.11.0\n */\n radiusFieldDim?: string;\n};\n\nexport type MarkerPositionPoint = {\n /**\n * x 坐标位置,number 类型表示像素值,string 类型表示相对画布宽度或者 region 宽度的占比(从左往右)\n */\n x: StringOrNumber;\n /**\n * y 坐标位置,number 类型表示像素值,string 类型表示相对画布高度或者 region 高度的占比(从上至下)\n */\n y: StringOrNumber;\n};\n\nexport type ICoordinateOption = {\n x?: IOptionAggrField | (IDataPosCallback | StringOrNumber)[];\n y?: IOptionAggrField | (IDataPosCallback | StringOrNumber)[];\n angle?: IOptionAggrField | (IDataPosCallback | StringOrNumber)[];\n radius?: IOptionAggrField | (IDataPosCallback | StringOrNumber)[];\n getRefRelativeSeries?: () => IMarkerSupportSeries;\n} & IOptionSeries;\n\nexport type IMarkerPositionsSpec = {\n /**\n * 画布坐标\n * `positions` 自 1.12.0 版本开始支持回调函数\n */\n positions:\n | MarkerPositionPoint[]\n | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => MarkerPositionPoint[]);\n /**\n * 是否为相对 region 的坐标,默认为 false,即相对画布的坐标\n * @default false\n * @since 1.7.0\n */\n regionRelative?: boolean;\n};\n\nexport type IMarkerLabelWithoutRefSpec = {\n /**\n * 是否展示标注标签\n */\n visible?: boolean;\n /**\n * label整体 - 是否自动旋转\n */\n autoRotate?: boolean;\n /**\n * label整体 - 最小宽度,像素值\n * @default 30\n */\n minWidth?: number;\n /**\n * label整体 - 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n /**\n * label整体 - 背景面板配置\n */\n labelBackground?: {\n /**\n * 标签背景是否显示,是否可见\n */\n visible?: boolean;\n /**\n * 标签背景支持自定义path\n * @since 1.11.10\n */\n customShape?: (\n text: ITextGraphicAttribute | IRichTextGraphicAttribute,\n attrs: Partial<IGraphicAttribute>,\n path: ICustomPath2D\n ) => ICustomPath2D;\n /**\n * 内部边距\n */\n padding?: IPadding | number[] | number;\n } & Partial<IMarkerState<Omit<IRectMarkSpec, 'visible'>>>;\n\n /**\n * @deprecated\n * 设置文本类型为富文本或者普通文本,已废弃\n **/\n type?: 'rich' | 'text';\n /**\n * 文本内容,如果需要进行换行,则使用数组形式,如 ['abc', '123']\n * 支持富文本内容 textConfig,设置富文本时要配置 textType 类型为 'rich'\n */\n text?: string | string[] | number | number[] | ReturnType<IRichTextFormatMethod<[]>>;\n /**\n * label文本 - 文本格式化\n * @param markData 组成标注的数据\n * @param seriesData 标注关联的数据\n * @returns 格式化后的文本\n */\n formatMethod?: IFormatMethod<[markData: Datum[], seriesData: Datum[]]>;\n\n /**\n * label文本 - 文本前 mark 图元\n */\n shape?: {\n /**\n * 是否显示标签文本前的图形\n */\n visible?: boolean;\n /**\n * 标签文本前的图形对应的样式设置\n */\n style: Omit<ISymbolMarkSpec, 'visible'>;\n };\n /**\n * label文本 - shape 同文本之间的间距\n */\n space?: number;\n\n /**\n * 是否自动调整 label 使其展示在 marker 可见区域内。\n * @default false\n * @since 1.4.0\n */\n confine?: boolean;\n /**\n * 水平方向的偏移\n */\n dx?: number;\n /**\n * 垂直方向的偏移\n */\n dy?: number;\n} & Partial<IMarkerState<Omit<IComposedTextMarkSpec, 'visible'>>>; // label文本 - 文本样式\n\nexport type IMarkerLabelSpec = IMarkerLabelWithoutRefSpec & IMarkerRef;\n\nexport interface IMarkerRef {\n /**\n * label or symbol 相对line平行方向上的偏移\n */\n refX?: number;\n /**\n * label or symbol 相对line正交方向上的偏移\n */\n refY?: number;\n /**\n * label or symbol 相对默认角度的偏移 (label跟随line的角度做自动旋转时,默认按照line的平行向量作为初始角度)\n */\n refAngle?: number;\n}\n\n// 跨越系列的配置\nexport interface IMarkerCrossSeriesSpec {\n /**\n * 设置起点关联的系列,设置该系列的序号(仅在标注目标:坐标空间下有效)\n */\n startRelativeSeriesIndex?: number;\n /**\n * 设置终点关联的系列,设置该序列的序号(仅在标注目标:坐标空间下有效)\n */\n endRelativeSeriesIndex?: number;\n /**\n * 设置起点关联的系列,设置该系列的id(仅在标注目标:坐标空间下有效)\n */\n startRelativeSeriesId?: string;\n /**\n * 设置终点关联的系列,设置该序列的id(仅在标注目标:坐标空间下有效)\n */\n endRelativeSeriesId?: string;\n /**\n * 数据处理需要单独关联系列, 设置序列的序号来进行关联,当配置为'all'时代表关联当前region下所有系列\n * @since 1.11.0\n */\n specifiedDataSeriesIndex?: 'all' | number | number[];\n /**\n * 数据处理需要单独关联系列, 设置序列的id来进行关联,当配置为'all'时代表关联当前region下所有系列\n * @since 1.11.0\n */\n specifiedDataSeriesId?: 'all' | string | string[];\n}\n\nexport type IMarkerSpec = IComponentSpec & {\n /**\n * 标注数据关联的series序号\n */\n relativeSeriesIndex?: number;\n /**\n * 标注数据关联系列对应的id\n */\n relativeSeriesId?: number | string;\n /**\n * marker组件是否可见\n * @default true\n */\n visible?: boolean;\n /**\n * marker组件是否可交互\n * @default true\n */\n interactive?: boolean;\n /**\n * marker组件是否自动拓展轴范围\n * @default false\n * @since 1.1.0\n */\n autoRange?: boolean;\n /**\n * marker组件超出图表区域是否被裁剪\n * @default false\n * @since 1.3.0\n */\n clip?: boolean;\n\n /**\n * 标注组件的名称标识\n * @since 1.7.0\n */\n name?: string;\n /**\n * 标注所在的坐标系类型\n * @description 一般情况下内部逻辑会根据配置自动推导类型,但如果是coordinates的配置方式,则无法推导,需要用户自行配置\n * @since 1.11.0\n */\n coordinateType?: string;\n};\n\nexport type IMarkerSymbol = IMarkerRef & {\n /** 是否展示 symbol */\n visible: boolean;\n /**\n * symbol 形状,默认为带左右方向的箭头\n */\n symbolType?: SymbolType;\n /**\n * symbol 大小\n */\n size?: number;\n} & Partial<IMarkerState<Omit<ISymbolMarkSpec, 'visible'>>>;\n\nexport type MarkerStyleCallback<T> = (\n /**\n * markerData 标注组件聚合后的数据\n */\n markerData: DataView,\n /**\n * @since 1.13.0\n * context 组件上下文, 包括相对系列,起始相对系列,结束相对系列和图表实例\n */\n context: IMarkerAttributeContext\n) => T;\nexport type MarkerStateCallback<T> = (\n /**\n * markerData 标注组件聚合后的数据\n */\n markerData: DataView,\n /**\n * @since 1.13.0\n * context 组件上下文, 包括相对系列,起始相对系列,结束相对系列和图表实例\n */\n context: IMarkerAttributeContext\n) => T;\nexport type MarkerStateValue = 'hover' | 'hover_reverse' | 'selected' | 'selected_reverse';\nexport type IMarkerState<T> = {\n /** 默认样式设置 */\n style?: T | MarkerStyleCallback<T>;\n /** 不同状态下的样式配置 */\n state?: Record<MarkerStateValue, T | MarkerStateCallback<T>>;\n};\n\nexport type MarkCoordinateType = 'cartesian' | 'polar' | 'geo';\n\nexport type IMarkProcessOptions = {\n options: IOptionAggr[] | IOptionRegr | IOptionWithCoordinates;\n needAggr?: boolean;\n needRegr?: boolean;\n processData?: DataView;\n};\n\nexport type IMarkerAttributeContext = {\n vchart: IVChart;\n relativeSeries: IMarkerSupportSeries;\n startRelativeSeries: IMarkerSupportSeries;\n endRelativeSeries: IMarkerSupportSeries;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/marker/mark-area/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { BaseMarkerAnimation, CommonMarkAreaAnimationType } from '@visactor/vrender-components';\nimport type { IComponent } from '../../../interface';\nimport type {\n IMarkerPositionsSpec,\n IDataPointSpec,\n IDataPos,\n IMarkerSpec,\n IDataPosCallback,\n IMarkerCrossSeriesSpec,\n OffsetPoint,\n IMarkerSupportSeries\n} from '../../interface';\nimport type { IMarkAreaTheme } from './theme';\nimport type { Datum } from '../../../../typings/common';\n\nexport type IMarkArea = IComponent;\n\nexport type IRegressType = 'regression';\n\n/**\n * 面积标注、区块标注、辅助区块相关配置\n */\nexport type IMarkAreaSpec = IMarkerSpec &\n /**\n * 标注目标:笛卡尔坐标系坐标空间\n */\n (| IMarkAreaXSpec\n | IMarkAreaYSpec\n | IMarkAreaXYSpec\n /**\n * 标注目标:极坐标系坐标空间\n * @since 1.11.0\n */\n | IMarkAreaAngleSpec\n | IMarkAreaRadiusSpec\n | IMarkAreaAngleRadiusSpec\n /**\n * 标注目标:数据元素\n */\n | IMarkAreaCoordinateSpec\n | IMarkerPositionsSpec\n ) &\n IMarkAreaTheme &\n /**\n * 动画配置\n * @since 1.11.0\n */\n BaseMarkerAnimation<CommonMarkAreaAnimationType>; // 标注目标:任意位置\n\nexport interface IMarkAreaXSpec extends IMarkerCrossSeriesSpec {\n /**\n * x轴上的参考线。可以配置参考线在x轴上的值,或者聚合计算类型\n * 可以将 x 配置为 '15%' 百分比的形式,用于表示将 x 绘制在 marker 所在 region 横轴(从左往右)的百分之 15 位置处\n */\n x: IDataPos | IDataPosCallback;\n x1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkAreaYSpec extends IMarkerCrossSeriesSpec {\n /**\n * y轴上的参考线。可以配置参考线在y轴上的值,或者聚合计算类型\n * 可以将 y 配置为 '15%' 百分比的形式,用于表示将 y 绘制在 marker 所在 region 纵轴(从上到下)的百分之 15 位置处\n */\n y: IDataPos | IDataPosCallback;\n y1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkAreaXYSpec extends IMarkerCrossSeriesSpec {\n /**\n * x轴上的参考线。可以配置参考线在x轴上的值,或者聚合计算类型\n * 可以将 x 配置为 '15%' 百分比的形式,用于表示将 x 绘制在 marker 所在 region 横轴(从左往右)的百分之 15 位置处\n */\n x: IDataPos | IDataPosCallback;\n x1: IDataPos | IDataPosCallback;\n /**\n * y轴上的参考线。可以配置参考线在y轴上的值,或者聚合计算类型\n * 可以将 y 配置为 '15%' 百分比的形式,用于表示将 y 绘制在 marker 所在 region 纵轴(从上到下)的百分之 15 位置处\n */\n y: IDataPos | IDataPosCallback;\n y1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkAreaAngleSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, angle 轴上位置,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, angle 轴上位置,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkAreaRadiusSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, radius 轴上位置, 或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, radius 轴上位置, 或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkAreaAngleRadiusSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, angle 轴上位置,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, angle 轴上位置,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle1: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, radius 轴上位置, 或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, radius 轴上位置, 或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius1: IDataPos | IDataPosCallback;\n}\n\nexport type IMarkAreaCoordinateSpec = {\n /**\n * 指定数据点的参考线。基于指定数据点进行参考线的绘制,可以对数据点进行数据处理\n * `coordinates` 自 1.12.0 版本开始支持回调函数\n */\n coordinates: IDataPointSpec[] | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => IDataPointSpec[]);\n\n /**\n * 对每个数据点转化后的画布坐标点进行偏移,该偏移值可以是像素值,也可以是 string 类型,如 '20%' 代表百分比\n * 每个元素对应一个坐标点的偏移量\n * @since 1.7.3\n */\n coordinatesOffset?: OffsetPoint[];\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/marker/mark-area/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { BaseMarkerAnimation, CommonMarkAreaAnimationType } from '@visactor/vrender-components';\nimport type { IComponent } from '../../../interface';\nimport type {\n IMarkerPositionsSpec,\n IDataPointSpec,\n IDataPos,\n IMarkerSpec,\n IDataPosCallback,\n IMarkerCrossSeriesSpec,\n OffsetPoint,\n IMarkerSupportSeries\n} from '../../interface';\nimport type { IMarkAreaTheme } from './theme';\nimport type { Datum } from '../../../../typings/common';\n\nexport type IMarkArea = IComponent;\n\nexport type IRegressType = 'regression';\n\n/**\n * 面积标注、区块标注、辅助区块相关配置\n */\nexport type IMarkAreaSpec = IMarkerSpec &\n /**\n * 标注目标:笛卡尔坐标系坐标空间\n */\n (| IMarkAreaXSpec\n | IMarkAreaYSpec\n | IMarkAreaXYSpec\n /**\n * 标注目标:极坐标系坐标空间\n * @since 1.11.0\n */\n | IMarkAreaAngleSpec\n | IMarkAreaRadiusSpec\n | IMarkAreaAngleRadiusSpec\n /**\n * 标注目标:数据元素\n */\n | IMarkAreaCoordinateSpec\n | IMarkerPositionsSpec\n ) &\n IMarkAreaTheme &\n /**\n * 动画配置\n * @since 1.11.0\n */\n BaseMarkerAnimation<CommonMarkAreaAnimationType>; // 标注目标:任意位置\n\nexport interface IMarkAreaXSpec extends IMarkerCrossSeriesSpec {\n /**\n * x轴上的参考线。可以配置参考线在x轴上的值,或者聚合计算类型\n * 可以将 x 配置为 '15%' 百分比的形式,用于表示将 x 绘制在 marker 所在 region 横轴(从左往右)的百分之 15 位置处\n */\n x: IDataPos | IDataPosCallback;\n /**\n * 设置x轴上的第二个值,如果同时设置了x 和 x1,会形成一个范围\n */\n x1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkAreaYSpec extends IMarkerCrossSeriesSpec {\n /**\n * y轴上的参考线。可以配置参考线在y轴上的值,或者聚合计算类型\n * 可以将 y 配置为 '15%' 百分比的形式,用于表示将 y 绘制在 marker 所在 region 纵轴(从上到下)的百分之 15 位置处\n */\n y: IDataPos | IDataPosCallback;\n /**\n * 设置y轴上的第二个值,如果同时设置了y 和 y1,会形成一个范围\n */\n y1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkAreaXYSpec extends IMarkerCrossSeriesSpec {\n /**\n * x轴上的参考线。可以配置参考线在x轴上的值,或者聚合计算类型\n * 可以将 x 配置为 '15%' 百分比的形式,用于表示将 x 绘制在 marker 所在 region 横轴(从左往右)的百分之 15 位置处\n */\n x: IDataPos | IDataPosCallback;\n /**\n * 设置x轴上的第二个值,如果同时设置了x 和 x1,会形成一个范围\n */\n x1: IDataPos | IDataPosCallback;\n /**\n * y轴上的参考线。可以配置参考线在y轴上的值,或者聚合计算类型\n * 可以将 y 配置为 '15%' 百分比的形式,用于表示将 y 绘制在 marker 所在 region 纵轴(从上到下)的百分之 15 位置处\n */\n y: IDataPos | IDataPosCallback;\n /**\n * 设置y轴上的第二个值,如果同时设置了y 和 y1,会形成一个范围\n */\n y1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkAreaAngleSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, angle 轴上位置,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, angle 轴上位置,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkAreaRadiusSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, radius 轴上位置, 或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, radius 轴上位置, 或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius1: IDataPos | IDataPosCallback;\n}\n\nexport interface IMarkAreaAngleRadiusSpec extends IMarkerCrossSeriesSpec {\n /**\n * 极坐标系下, angle 轴上位置,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, angle 轴上位置,或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n angle1: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, radius 轴上位置, 或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius: IDataPos | IDataPosCallback;\n /**\n * 极坐标系下, radius 轴上位置, 或者聚合计算类型,或者以回调的形式通过数据自行计算。\n * @since 1.11.0\n */\n radius1: IDataPos | IDataPosCallback;\n}\n\nexport type IMarkAreaCoordinateSpec = {\n /**\n * 指定数据点的参考线。基于指定数据点进行参考线的绘制,可以对数据点进行数据处理\n * `coordinates` 自 1.12.0 版本开始支持回调函数\n */\n coordinates: IDataPointSpec[] | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => IDataPointSpec[]);\n\n /**\n * 对每个数据点转化后的画布坐标点进行偏移,该偏移值可以是像素值,也可以是 string 类型,如 '20%' 代表百分比\n * 每个元素对应一个坐标点的偏移量\n * @since 1.7.3\n */\n coordinatesOffset?: OffsetPoint[];\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/marker/mark-area/interface/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["import type { IMarkAreaLabelPosition, IMarkCommonArcLabelPosition } from '@visactor/vrender-components';\nimport type { IArcMarkSpec, IPolygonMarkSpec } from '../../../../typings';\nimport type { IMarkerLabelWithoutRefSpec, IMarkerState } from '../../interface';\n\nexport interface IMarkAreaTheme {\n area?: Partial<IMarkerState<IPolygonMarkSpec | IArcMarkSpec>>;\n
|
|
1
|
+
{"version":3,"sources":["../src/component/marker/mark-area/interface/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["import type { IMarkAreaLabelPosition, IMarkCommonArcLabelPosition } from '@visactor/vrender-components';\nimport type { IArcMarkSpec, IPolygonMarkSpec } from '../../../../typings';\nimport type { IMarkerLabelWithoutRefSpec, IMarkerState } from '../../interface';\n\nexport interface IMarkAreaTheme {\n /**\n * 标记区域的样式\n */\n area?: Partial<IMarkerState<IPolygonMarkSpec | IArcMarkSpec>>;\n /**\n * 标记区域的标签样式配置\n */\n label?: {\n /**\n * label整体 - 相对line的位置\n */\n position?: keyof typeof IMarkAreaLabelPosition | IMarkCommonArcLabelPosition;\n } & IMarkerLabelWithoutRefSpec;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/title/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { IComponent } from '../../interface';\nimport type { ITextGraphicAttribute, IRichTextCharacter, ITextAttribute } from '@visactor/vrender-core';\nimport type { IOrientType, IPadding } from '../../../typings';\nimport type { IComponentSpec } from '../../base/interface';\n\ninterface ITitleSpecWithoutText extends Omit<IComponentSpec, 'orient'> {\n /**\n * 是否显示标题\n */\n visible?: boolean;\n /**\n * Title位置\n * @default 'top'\n */\n orient?: IOrientType;\n /**\n * 标题左上角x坐标像素值\n */\n x?: number;\n /**\n * 标题左上角y坐标像素值\n */\n y?: number;\n /**\n * 标题宽度\n */\n width?: number;\n /**\n * 标题高度\n */\n height?: number;\n /**\n * 最小宽度,像素值\n */\n minWidth?: number;\n /**\n * 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n /**\n * 最小高度,像素值\n */\n minHeight?: number;\n /**\n * 最大高度,像素值\n */\n maxHeight?: number;\n /**\n * 标题的边距留白\n */\n innerPadding?: IPadding | number | number[];\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 主标题样式\n */\n textStyle?: {\n width?: number;\n height?: number;\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 折行方式\n * 'break-word' | 'break-all' | 'keep-all'\n */\n wordBreak?: ITextAttribute['wordBreak'];\n /**\n * 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 默认设置为title宽度\n */\n maxLineWidth?: number;\n /**\n * 高度限制控制显示内容及省略号(heightLimit)\n */\n heightLimit?: number;\n /**\n * 按照行数限制显示内容及省略号(lineClamp)\n */\n lineClamp?: number;\n /**\n * 富文本配置(暂时保留旧设置)\n * @deprecated use text & textType instead\n */\n character?: IRichTextCharacter[];\n } & Partial<ITextGraphicAttribute>;\n /**\n * 副标题样式\n */\n subtextStyle?: {\n /** 指定宽度 */\n width?: number;\n /** 指定高度 */\n height?: number;\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 折行方式\n * 'break-word' | 'break-all' | 'keep-all\n */\n wordBreak?: ITextAttribute['wordBreak'];\n /**\n * 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 默认设置为title宽度\n */\n maxLineWidth?: number;\n /**\n * 高度限制控制显示内容及省略号(heightLimit)\n */\n heightLimit?: number;\n /**\n * 按照行数限制显示内容及省略号(lineClamp)\n */\n lineClamp?: number;\n /**\n * 富文本配置(暂时保留旧设置)\n * @deprecated use subtext & subtextType instead\n */\n character?: IRichTextCharacter[];\n } & Partial<ITextGraphicAttribute>;\n}\n\nexport type ITitleTextSpec =\n | {\n /**\n * 主标题文本类型\n */\n textType?: 'text';\n /**\n * 主标题文本配置\n */\n text: string | number | string[] | number[];\n }\n | {\n /**\n * 主标题文本类型(默认类型为text)\n */\n textType: 'rich';\n /**\n * 主标题富文本内容\n */\n text: IRichTextCharacter[];\n };\n\nexport type ISubTitleTextSpec =\n | {\n /**\n * 副标题文本类型\n */\n subtextType?: 'text';\n /**\n * 副标题文本内容\n */\n subtext?: string | number | string[] | number[];\n }\n | {\n /**\n * 副标题文本类型\n */\n subtextType?: 'rich';\n\n /**\n * 副标题富文本内容\n */\n subtext?: IRichTextCharacter[];\n };\n\nexport type ITitleSpec = ITitleSpecWithoutText & ITitleTextSpec & ISubTitleTextSpec;\n\nexport type ITitle = IComponent;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/title/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { IComponent } from '../../interface';\nimport type { ITextGraphicAttribute, IRichTextCharacter, ITextAttribute } from '@visactor/vrender-core';\nimport type { IOrientType, IPadding } from '../../../typings';\nimport type { IComponentSpec } from '../../base/interface';\n\ninterface ITitleSpecWithoutText extends Omit<IComponentSpec, 'orient'> {\n /**\n * 是否显示标题\n */\n visible?: boolean;\n /**\n * Title位置\n * @default 'top'\n */\n orient?: IOrientType;\n /**\n * 标题左上角x坐标像素值\n */\n x?: number;\n /**\n * 标题左上角y坐标像素值\n */\n y?: number;\n /**\n * 标题宽度\n */\n width?: number;\n /**\n * 标题高度\n */\n height?: number;\n /**\n * 最小宽度,像素值\n */\n minWidth?: number;\n /**\n * 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n /**\n * 最小高度,像素值\n */\n minHeight?: number;\n /**\n * 最大高度,像素值\n */\n maxHeight?: number;\n /**\n * 标题的边距留白\n */\n innerPadding?: IPadding | number | number[];\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 主标题样式\n */\n textStyle?: {\n /**\n * 给主标题设置给定的宽度\n */\n width?: number;\n /**\n * 给主标题设置给定的高度\n */\n height?: number;\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 折行方式\n * 'break-word' | 'break-all' | 'keep-all'\n */\n wordBreak?: ITextAttribute['wordBreak'];\n /**\n * 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 默认设置为title宽度\n */\n maxLineWidth?: number;\n /**\n * 高度限制控制显示内容及省略号(heightLimit)\n */\n heightLimit?: number;\n /**\n * 按照行数限制显示内容及省略号(lineClamp)\n */\n lineClamp?: number;\n /**\n * 富文本配置(暂时保留旧设置)\n * @deprecated use text & textType instead\n */\n character?: IRichTextCharacter[];\n } & Partial<ITextGraphicAttribute>;\n /**\n * 副标题样式\n */\n subtextStyle?: {\n /** 指定宽度 */\n width?: number;\n /** 指定高度 */\n height?: number;\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 折行方式\n * 'break-word' | 'break-all' | 'keep-all\n */\n wordBreak?: ITextAttribute['wordBreak'];\n /**\n * 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 默认设置为title宽度\n */\n maxLineWidth?: number;\n /**\n * 高度限制控制显示内容及省略号(heightLimit)\n */\n heightLimit?: number;\n /**\n * 按照行数限制显示内容及省略号(lineClamp)\n */\n lineClamp?: number;\n /**\n * 富文本配置(暂时保留旧设置)\n * @deprecated use subtext & subtextType instead\n */\n character?: IRichTextCharacter[];\n } & Partial<ITextGraphicAttribute>;\n}\n\nexport type ITitleTextSpec =\n | {\n /**\n * 主标题文本类型\n */\n textType?: 'text';\n /**\n * 主标题文本配置\n */\n text: string | number | string[] | number[];\n }\n | {\n /**\n * 主标题文本类型(默认类型为text)\n */\n textType: 'rich';\n /**\n * 主标题富文本内容\n */\n text: IRichTextCharacter[];\n };\n\nexport type ISubTitleTextSpec =\n | {\n /**\n * 副标题文本类型\n */\n subtextType?: 'text';\n /**\n * 副标题文本内容\n */\n subtext?: string | number | string[] | number[];\n }\n | {\n /**\n * 副标题文本类型\n */\n subtextType?: 'rich';\n\n /**\n * 副标题富文本内容\n */\n subtext?: IRichTextCharacter[];\n };\n\nexport type ITitleSpec = ITitleSpecWithoutText & ITitleTextSpec & ISubTitleTextSpec;\n\nexport type ITitle = IComponent;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/tooltip/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { EventSourceType, EventType } from '../../../event/interface';\nimport type {\n IGroupTooltipPattern,\n ITooltipActual,\n ITooltipPattern,\n Maybe,\n MaybeArray,\n TooltipActiveType,\n TooltipData\n} from '../../../typings';\nimport type { ITooltipActiveTypeAsKeys, TooltipHandlerParams, TooltipResult } from './common';\nimport type { ITooltipTheme } from './theme';\n\nexport interface ITooltipSpec\n extends Partial<\n /**\n * mark tooltip pattern\n * & dimension tooltip pattern\n * (*支持在series上设置)\n */\n ITooltipActiveTypeAsKeys<\n ITooltipPattern & {\n checkOverlap?: boolean;\n },\n ITooltipPattern,\n IGroupTooltipPattern\n >\n > {\n /**\n * 是否显示\n * (*支持在series上设置)\n * (*会影响自定义handler)\n */\n visible?: boolean;\n /**\n * 受支持的激活类型\n * (*支持在series上设置)\n * (*会影响自定义handler)\n */\n activeType?: TooltipActiveType | TooltipActiveType[];\n /**\n * tooltip触发方式\n * (*会影响自定义handler)\n * @since 1.12.10 支持自定义的事件触发\n */\n trigger?:\n | MaybeArray<'hover' | 'click' | { eventType: EventType; source?: EventSourceType; consume?: boolean }>\n | 'none';\n /**\n * 隐藏tooltip的触发方式(目前仅支持和trigger一致的设置以及none)\n * (*会影响自定义handler)\n * @since 1.12.10 支持自定义的事件触发\n */\n triggerOff?:\n | MaybeArray<\n | 'hover'\n | 'click'\n | { eventType: EventType; source?: EventSourceType; consume?: boolean; checkOutside?: boolean }\n >\n | 'none';\n /**\n * 当设置了`enterable: true`,且 trigger类型为`hover`的时候,为了方便鼠标进入提示信息的内容区域,设置的显示延迟时长\n * 其他情况设置无效\n * @since 1.12.8\n */\n showDelay?: number;\n\n /**\n * 隐藏计时器\n * @since 1.11.7\n */\n hideTimer?: number;\n /**\n * 点击后锁定,只有点击才可以更新位置或者解锁,通常用于 trigger 为 `['hover', 'click']` 的场景\n * (*会影响自定义handler)\n * @since 1.10.0\n */\n lockAfterClick?: boolean;\n /**\n * tooltip样式,是现在支持的三种类型的tooltip组件(包括dimension、mark、group)的公共样式\n */\n style?: Omit<ITooltipTheme<string>, 'offset' | 'transitionDuration'>;\n\n /**\n * 自定义handler方法\n */\n handler?: Partial<ITooltipHandlerSpec>;\n\n /**\n * tooltip 渲染方式,默认为 html\n */\n renderMode?: 'html' | 'canvas';\n /**\n * 是否将 tooltip 框限制在画布区域内,renderMode 为 canvas 时,默认开启。\n */\n confine?: boolean;\n\n /**\n * tooltip dom元素的 className,仅当 renderMode: 'html' 时生效\n */\n className?: string;\n /**\n * tooltip dom 元素的挂载点,可传 id 或 dom 对象\n */\n parentElement?: Maybe<string | HTMLElement | HTMLCanvasElement>;\n /**\n * 鼠标是否可进入提示框浮层中,默认为false,如需详情内交互,如添加链接,按钮,可设置为 true。\n * 该属性目前只对 renderMode 为 html 时生效\n * TODO: 支持 renderMode: canvas\n */\n enterable?: boolean;\n\n /**\n * 浮层移动动画过渡时间,单位是 ms,设置为 0 的时候会紧跟着鼠标移动(目前仅影响 dom tooltip)\n */\n transitionDuration?: number;\n\n /**\n * 更新 tooltip 的防抖动时间间隔,单位是 ms\n */\n throttleInterval?: number;\n\n /**\n * 更新 tooltip dom 元素,仅当 renderMode: 'html' 时生效\n * @since 1.6.0\n */\n updateElement?: (tooltipElement: HTMLElement, actualTooltip: ITooltipActual, params: TooltipHandlerParams) => void;\n /**\n * 计算tooltip位置时候的偏移量\n */\n offset?: {\n x?: number;\n y?: number;\n };\n}\n\ntype ISeriesToolipPattern = Pick<\n ITooltipPattern,\n | 'visible'\n | 'title'\n | 'content'\n | 'hasShape'\n | 'shapeColor'\n | 'shapeFill'\n | 'shapeHollow'\n | 'shapeLineWidth'\n | 'shapeSize'\n | 'shapeStroke'\n | 'shapeType'\n | 'updateContent'\n | 'updateTitle'\n | 'updatePosition'\n>;\n\n/**\n * 系列上的tooltip配置,优先级高于全局tooltip配置\n * 对于visible相当配置,系列tooltip只能关闭,不能覆盖全局tooltip配置\n */\nexport interface ISeriesTooltipSpec extends Pick<ITooltipSpec, 'visible' | 'activeType' | 'handler'> {\n /**\n * 该系列数据在dimension tooltip中特有的配置\n */\n dimension?: ISeriesToolipPattern;\n /**\n * 该系列数据在mark tooltip中特有的配置\n */\n mark?: ISeriesToolipPattern;\n /**\n * 该系列数据在group tooltip中特有的配置\n */\n group?: Pick<IGroupTooltipPattern, 'triggerMark'> & ISeriesToolipPattern;\n}\n\nexport interface ITooltipHandlerSpec {\n /** 显示 tooltip,可以选择返回是否遇到异常 */\n showTooltip: (\n activeType: TooltipActiveType,\n tooltipData: TooltipData,\n params: TooltipHandlerParams\n ) => Maybe<TooltipResult>;\n /** 隐藏 tooltip,可以选择返回是否遇到异常 */\n hideTooltip: (params: TooltipHandlerParams) => Maybe<TooltipResult>;\n /** 释放 tooltip */\n release: () => void;\n /** 可选,判断 tooltip 是否正在显示 */\n isTooltipShown?: () => boolean;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/tooltip/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type { EventSourceType, EventType } from '../../../event/interface';\nimport type {\n IGroupTooltipPattern,\n ITooltipActual,\n ITooltipPattern,\n Maybe,\n MaybeArray,\n TooltipActiveType,\n TooltipData\n} from '../../../typings';\nimport type { ITooltipActiveTypeAsKeys, TooltipHandlerParams, TooltipResult } from './common';\nimport type { ITooltipTheme } from './theme';\n\nexport interface ITooltipSpec\n extends Partial<\n /**\n * mark tooltip pattern\n * & dimension tooltip pattern\n * (*支持在series上设置)\n */\n ITooltipActiveTypeAsKeys<\n ITooltipPattern & {\n /**\n * mark tooltip是否展示触发点所在的所有图形的数据\n */\n checkOverlap?: boolean;\n },\n ITooltipPattern,\n IGroupTooltipPattern\n >\n > {\n /**\n * 是否显示\n * (*支持在series上设置)\n * (*会影响自定义handler)\n */\n visible?: boolean;\n /**\n * 受支持的激活类型\n * (*支持在series上设置)\n * (*会影响自定义handler)\n */\n activeType?: TooltipActiveType | TooltipActiveType[];\n /**\n * tooltip触发方式\n * (*会影响自定义handler)\n * @since 1.12.10 支持自定义的事件触发\n */\n trigger?:\n | MaybeArray<'hover' | 'click' | { eventType: EventType; source?: EventSourceType; consume?: boolean }>\n | 'none';\n /**\n * 隐藏tooltip的触发方式(目前仅支持和trigger一致的设置以及none)\n * (*会影响自定义handler)\n * @since 1.12.10 支持自定义的事件触发\n */\n triggerOff?:\n | MaybeArray<\n | 'hover'\n | 'click'\n | { eventType: EventType; source?: EventSourceType; consume?: boolean; checkOutside?: boolean }\n >\n | 'none';\n /**\n * 当设置了`enterable: true`,且 trigger类型为`hover`的时候,为了方便鼠标进入提示信息的内容区域,设置的显示延迟时长\n * 其他情况设置无效\n * @since 1.12.8\n */\n showDelay?: number;\n\n /**\n * 隐藏计时器\n * @since 1.11.7\n */\n hideTimer?: number;\n /**\n * 点击后锁定,只有点击才可以更新位置或者解锁,通常用于 trigger 为 `['hover', 'click']` 的场景\n * (*会影响自定义handler)\n * @since 1.10.0\n */\n lockAfterClick?: boolean;\n /**\n * tooltip样式,是现在支持的三种类型的tooltip组件(包括dimension、mark、group)的公共样式\n */\n style?: Omit<ITooltipTheme<string>, 'offset' | 'transitionDuration'>;\n\n /**\n * 自定义handler方法\n */\n handler?: Partial<ITooltipHandlerSpec>;\n\n /**\n * tooltip 渲染方式,默认为 html\n */\n renderMode?: 'html' | 'canvas';\n /**\n * 是否将 tooltip 框限制在画布区域内,renderMode 为 canvas 时,默认开启。\n */\n confine?: boolean;\n\n /**\n * tooltip dom元素的 className,仅当 renderMode: 'html' 时生效\n */\n className?: string;\n /**\n * tooltip dom 元素的挂载点,可传 id 或 dom 对象\n */\n parentElement?: Maybe<string | HTMLElement | HTMLCanvasElement>;\n /**\n * 鼠标是否可进入提示框浮层中,默认为false,如需详情内交互,如添加链接,按钮,可设置为 true。\n * 该属性目前只对 renderMode 为 html 时生效\n * TODO: 支持 renderMode: canvas\n */\n enterable?: boolean;\n\n /**\n * 浮层移动动画过渡时间,单位是 ms,设置为 0 的时候会紧跟着鼠标移动(目前仅影响 dom tooltip)\n */\n transitionDuration?: number;\n\n /**\n * 更新 tooltip 的防抖动时间间隔,单位是 ms\n */\n throttleInterval?: number;\n\n /**\n * 更新 tooltip dom 元素,仅当 renderMode: 'html' 时生效\n * @since 1.6.0\n */\n updateElement?: (tooltipElement: HTMLElement, actualTooltip: ITooltipActual, params: TooltipHandlerParams) => void;\n /**\n * 计算tooltip位置时候的偏移量\n */\n offset?: {\n /**\n * x 方向的偏移量\n */\n x?: number;\n /**\n * y 方向的偏移量\n */\n y?: number;\n };\n}\n\ntype ISeriesToolipPattern = Pick<\n ITooltipPattern,\n | 'visible'\n | 'title'\n | 'content'\n | 'hasShape'\n | 'shapeColor'\n | 'shapeFill'\n | 'shapeHollow'\n | 'shapeLineWidth'\n | 'shapeSize'\n | 'shapeStroke'\n | 'shapeType'\n | 'updateContent'\n | 'updateTitle'\n | 'updatePosition'\n>;\n\n/**\n * 系列上的tooltip配置,优先级高于全局tooltip配置\n * 对于visible相当配置,系列tooltip只能关闭,不能覆盖全局tooltip配置\n */\nexport interface ISeriesTooltipSpec extends Pick<ITooltipSpec, 'visible' | 'activeType' | 'handler'> {\n /**\n * 该系列数据在dimension tooltip中特有的配置\n */\n dimension?: ISeriesToolipPattern;\n /**\n * 该系列数据在mark tooltip中特有的配置\n */\n mark?: ISeriesToolipPattern;\n /**\n * 该系列数据在group tooltip中特有的配置\n */\n group?: Pick<IGroupTooltipPattern, 'triggerMark'> & ISeriesToolipPattern;\n}\n\nexport interface ITooltipHandlerSpec {\n /** 显示 tooltip,可以选择返回是否遇到异常 */\n showTooltip: (\n activeType: TooltipActiveType,\n tooltipData: TooltipData,\n params: TooltipHandlerParams\n ) => Maybe<TooltipResult>;\n /** 隐藏 tooltip,可以选择返回是否遇到异常 */\n hideTooltip: (params: TooltipHandlerParams) => Maybe<TooltipResult>;\n /** 释放 tooltip */\n release: () => void;\n /** 可选,判断 tooltip 是否正在显示 */\n isTooltipShown?: () => boolean;\n}\n"]}
|