@visactor/vgrammar-core 0.8.3-alpha.0 → 0.8.4-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/component/axis.js +1 -1
- package/cjs/component/axis.js.map +1 -1
- package/cjs/component/datazoom.js +3 -2
- package/cjs/component/datazoom.js.map +1 -1
- package/cjs/component/grid.js +1 -1
- package/cjs/component/grid.js.map +1 -1
- package/cjs/component/label.js +1 -1
- package/cjs/component/label.js.map +1 -1
- package/cjs/component/legend.js +2 -1
- package/cjs/component/legend.js.map +1 -1
- package/cjs/component/player.js +2 -1
- package/cjs/component/player.js.map +1 -1
- package/cjs/component/scrollbar.js +2 -1
- package/cjs/component/scrollbar.js.map +1 -1
- package/cjs/component/slider.js +1 -1
- package/cjs/component/slider.js.map +1 -1
- package/cjs/component/title.js +2 -1
- package/cjs/component/title.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/types/mark.d.ts +1 -0
- package/cjs/types/mark.js.map +1 -1
- package/cjs/view/mark.js +1 -1
- package/cjs/view/mark.js.map +1 -1
- package/es/component/axis.js +1 -1
- package/es/component/axis.js.map +1 -1
- package/es/component/datazoom.js +2 -2
- package/es/component/datazoom.js.map +1 -1
- package/es/component/grid.js +1 -1
- package/es/component/grid.js.map +1 -1
- package/es/component/label.js +1 -1
- package/es/component/label.js.map +1 -1
- package/es/component/legend.js +1 -1
- package/es/component/legend.js.map +1 -1
- package/es/component/player.js +1 -1
- package/es/component/player.js.map +1 -1
- package/es/component/scrollbar.js +1 -1
- package/es/component/scrollbar.js.map +1 -1
- package/es/component/slider.js +1 -1
- package/es/component/slider.js.map +1 -1
- package/es/component/title.js +1 -1
- package/es/component/title.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/interactions/brush-filter.js +1 -2
- package/es/interactions/element-highlight-by-group.js +2 -1
- package/es/interactions/index.js +1 -2
- package/es/interactions/legend-filter.js +1 -1
- package/es/interactions/player-filter.js +1 -1
- package/es/interactions/roll-up.js +1 -1
- package/es/interactions/scrollbar-filter.js +1 -1
- package/es/interactions/slider-filter.js +1 -1
- package/es/interactions/tooltip.js +1 -1
- package/es/interactions/view-drag-mixin.js +1 -1
- package/es/parse/coordinate.js +1 -1
- package/es/parse/event.js +1 -1
- package/es/parse/mark.js +1 -1
- package/es/parse/option.js +1 -1
- package/es/parse/scale.js +2 -1
- package/es/parse/transform.js +1 -1
- package/es/parse/util.js +1 -1
- package/es/parse/view.js +1 -1
- package/es/types/mark.d.ts +1 -0
- package/es/types/mark.js.map +1 -1
- package/es/view/mark.js +1 -1
- package/es/view/mark.js.map +1 -1
- package/package.json +8 -8
package/cjs/component/axis.js
CHANGED
|
@@ -119,7 +119,7 @@ class Axis extends scale_1.ScaleComponent {
|
|
|
119
119
|
return encoder && (res[state] = {
|
|
120
120
|
callback: (datum, element, parameters) => {
|
|
121
121
|
var _a, _b;
|
|
122
|
-
const theme = this.view.getCurrentTheme();
|
|
122
|
+
const theme = this.spec.skipTheme ? null : this.view.getCurrentTheme();
|
|
123
123
|
let addition = (0, encode_1.invokeEncoder)(encoder, datum, element, parameters);
|
|
124
124
|
const inside = (0, util_1.invokeFunctionType)(this.spec.inside, parameters, datum, element), baseValue = (0,
|
|
125
125
|
util_1.invokeFunctionType)(this.spec.baseValue, parameters, datum, element), coordinate = null === (_a = null == scaleGrammar ? void 0 : scaleGrammar.getCoordinate) || void 0 === _a ? void 0 : _a.call(scaleGrammar);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/axis.ts"],"names":[],"mappings":"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","file":"axis.js","sourcesContent":["import { isNil, isString, merge } from '@visactor/vutils';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { CircleAxisAttributes, LineAxisAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { CircleAxis as CircleAxisComponent, LineAxis as LineAxisComponent } from '@visactor/vrender-components';\nimport type { IBaseScale } from '@visactor/vscale';\nimport type {\n BaseSignleEncodeSpec,\n IElement,\n IGroupMark,\n IScale,\n ITheme,\n IView,\n MarkFunctionType,\n MarkRelativeItemSpec,\n Nil,\n RecursivePartial,\n StateEncodeSpec\n} from '../types';\nimport { AxisEnum, ComponentEnum } from '../graph/enums';\nimport type { AxisSpec, AxisType, IAxis } from '../types/component';\nimport { ScaleComponent } from './scale';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { invokeFunctionType } from '../parse/util';\nimport type { IPolarCoordinate, IBaseCoordinate } from '@visactor/vgrammar-coordinate';\nimport { Factory } from '../core/factory';\n\nexport const generateLineAxisAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<LineAxisAttributes>,\n tickCount?: number\n): LineAxisAttributes => {\n const axisTheme = theme?.components?.axis ?? {};\n if (!scale) {\n return merge({}, axisTheme, addition ?? {});\n }\n const tickData = scale.tickData?.(tickCount) ?? [];\n const items = [\n tickData.map(tick => ({\n id: tick.index,\n label: tick.tick,\n value: tick.value,\n rawValue: tick.tick\n }))\n ];\n return merge({}, axisTheme, { items }, addition ?? {});\n};\n\nexport const generateCircleAxisAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<CircleAxisAttributes>,\n tickCount?: number\n): CircleAxisAttributes => {\n const axisTheme = theme?.components?.circleAxis ?? {};\n if (!scale) {\n return merge({}, axisTheme, addition ?? {});\n }\n const tickData = scale.tickData?.(tickCount) ?? [];\n const items = [\n tickData.map(tick => ({\n id: tick.index,\n label: tick.tick,\n value: tick.value,\n rawValue: tick.tick\n }))\n ];\n return merge({}, axisTheme, { items }, addition ?? {});\n};\n\nexport const generateCoordinateAxisAttribute = (\n scale: IScale,\n coordinate: IBaseCoordinate,\n inside: boolean,\n baseValue: number,\n layout: MarkRelativeItemSpec,\n isGrid?: boolean\n) => {\n const axisPosition = scale.getCoordinateAxisPosition();\n if (layout?.position === 'auto') {\n // FIXME: too hack\n layout.position = inside ? 'content' : axisPosition;\n }\n\n const axisPoints = scale.getCoordinateAxisPoints(baseValue);\n\n if (axisPoints) {\n const start = axisPoints[0];\n const end = axisPoints[1];\n const res: any = {\n start,\n end,\n verticalFactor:\n (axisPosition === 'top' || axisPosition === 'left' ? -1 : 1) *\n (inside ? -1 : 1) *\n (scale.getSpec().range?.reversed ? -1 : 1)\n };\n\n if (isGrid && coordinate.type === 'polar') {\n const angle = (coordinate as IPolarCoordinate).angle();\n\n res.center = (coordinate as IPolarCoordinate).origin();\n res.startAngle = angle[0];\n res.endAngle = angle[1];\n }\n\n return res;\n }\n\n const radius = (coordinate as IPolarCoordinate).radius();\n const angle = (coordinate as IPolarCoordinate).angle();\n return {\n center: (coordinate as IPolarCoordinate).origin(),\n radius: radius[1],\n innerRadius: radius[0],\n inside: inside,\n startAngle: angle[0],\n endAngle: angle[1]\n };\n};\n\nexport class Axis extends ScaleComponent implements IAxis {\n static readonly componentType: string = ComponentEnum.axis;\n\n protected declare spec: AxisSpec;\n\n private _axisComponentType: keyof typeof AxisEnum;\n\n constructor(view: IView, group?: IGroupMark, mode?: '2d' | '3d') {\n super(view, ComponentEnum.axis, group);\n this.spec.componentType = ComponentEnum.axis;\n this.mode = mode;\n }\n\n protected parseAddition(spec: AxisSpec) {\n super.parseAddition(spec);\n\n this.axisType(spec.axisType);\n this.tickCount(spec.tickCount);\n this.inside(spec.inside);\n this.baseValue(spec.baseValue);\n\n return this;\n }\n\n scale(scale?: IScale | string | Nil) {\n super.scale(scale);\n this._axisComponentType = null;\n return this;\n }\n\n axisType(axisType: AxisType | Nil) {\n this.spec.axisType = axisType;\n this._axisComponentType = null;\n this._prepareRejoin();\n this.commit();\n return this;\n }\n\n addGraphicItem(attrs: any, groupKey?: string) {\n const defaultAttributes = { x: 0, y: 0, start: { x: 0, y: 0 }, end: { x: 0, y: 0 } };\n const initialAttributes = merge(defaultAttributes, attrs);\n const graphicItem = Factory.createGraphicComponent(this._getAxisComponentType(), initialAttributes, this.mode);\n return super.addGraphicItem(initialAttributes, groupKey, graphicItem);\n }\n\n tickCount(tickCount: MarkFunctionType<number> | Nil) {\n return this.setFunctionSpec(tickCount, 'tickCount');\n }\n\n inside(inside: MarkFunctionType<boolean> | Nil) {\n return this.setFunctionSpec(inside, 'inside');\n }\n\n baseValue(baseValue: MarkFunctionType<number> | Nil) {\n return this.setFunctionSpec(baseValue, 'baseValue');\n }\n\n getAxisComponentType() {\n return this._axisComponentType;\n }\n\n protected _updateComponentEncoders() {\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n const encoders = Object.assign({ update: {} }, this.spec.encode);\n const componentEncoders: StateEncodeSpec = Object.keys(encoders).reduce((res, state) => {\n const encoder = encoders[state];\n if (encoder) {\n res[state] = {\n callback: (datum: any, element: IElement, parameters: any) => {\n const theme = this.view.getCurrentTheme();\n let addition = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n const inside = invokeFunctionType(this.spec.inside, parameters, datum, element);\n const baseValue = invokeFunctionType(this.spec.baseValue, parameters, datum, element);\n\n const coordinate = scaleGrammar?.getCoordinate?.();\n if (coordinate) {\n addition = Object.assign(\n generateCoordinateAxisAttribute(\n scaleGrammar,\n coordinate,\n inside,\n baseValue,\n this.spec.layout as MarkRelativeItemSpec\n ),\n addition\n );\n }\n\n const scale = scaleGrammar?.getScale?.();\n const tickCount = invokeFunctionType(this.spec.tickCount, parameters, datum, element);\n switch (this._getAxisComponentType()) {\n case AxisEnum.lineAxis:\n return generateLineAxisAttributes(scale, theme, addition, tickCount);\n case AxisEnum.circleAxis:\n return generateCircleAxisAttributes(scale, theme, addition, tickCount);\n }\n return addition;\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n private _getAxisComponentType() {\n if (this._axisComponentType) {\n return this._axisComponentType;\n }\n\n let type = this.spec.axisType;\n\n if (isNil(type)) {\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n\n type = scaleGrammar?.getCoordinate?.() ? (scaleGrammar.getCoordinateAxisPoints() ? 'line' : 'circle') : 'line';\n }\n\n this._axisComponentType = type === 'circle' ? AxisEnum.circleAxis : AxisEnum.lineAxis;\n\n return this._axisComponentType;\n }\n}\n\nexport const registerAxis = () => {\n Factory.registerGraphicComponent(\n AxisEnum.lineAxis,\n (attrs: LineAxisAttributes, mode?: '2d' | '3d') => new LineAxisComponent(attrs, mode) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n AxisEnum.circleAxis,\n (attrs: CircleAxisAttributes) => new CircleAxisComponent(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.axis, Axis);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/axis.ts"],"names":[],"mappings":"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","file":"axis.js","sourcesContent":["import { isNil, isString, merge } from '@visactor/vutils';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { CircleAxisAttributes, LineAxisAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { CircleAxis as CircleAxisComponent, LineAxis as LineAxisComponent } from '@visactor/vrender-components';\nimport type { IBaseScale } from '@visactor/vscale';\nimport type {\n BaseSignleEncodeSpec,\n IElement,\n IGroupMark,\n IScale,\n ITheme,\n IView,\n MarkFunctionType,\n MarkRelativeItemSpec,\n Nil,\n RecursivePartial,\n StateEncodeSpec\n} from '../types';\nimport { AxisEnum, ComponentEnum } from '../graph/enums';\nimport type { AxisSpec, AxisType, IAxis } from '../types/component';\nimport { ScaleComponent } from './scale';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { invokeFunctionType } from '../parse/util';\nimport type { IPolarCoordinate, IBaseCoordinate } from '@visactor/vgrammar-coordinate';\nimport { Factory } from '../core/factory';\n\nexport const generateLineAxisAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<LineAxisAttributes>,\n tickCount?: number\n): LineAxisAttributes => {\n const axisTheme = theme?.components?.axis ?? {};\n if (!scale) {\n return merge({}, axisTheme, addition ?? {});\n }\n const tickData = scale.tickData?.(tickCount) ?? [];\n const items = [\n tickData.map(tick => ({\n id: tick.index,\n label: tick.tick,\n value: tick.value,\n rawValue: tick.tick\n }))\n ];\n return merge({}, axisTheme, { items }, addition ?? {});\n};\n\nexport const generateCircleAxisAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<CircleAxisAttributes>,\n tickCount?: number\n): CircleAxisAttributes => {\n const axisTheme = theme?.components?.circleAxis ?? {};\n if (!scale) {\n return merge({}, axisTheme, addition ?? {});\n }\n const tickData = scale.tickData?.(tickCount) ?? [];\n const items = [\n tickData.map(tick => ({\n id: tick.index,\n label: tick.tick,\n value: tick.value,\n rawValue: tick.tick\n }))\n ];\n return merge({}, axisTheme, { items }, addition ?? {});\n};\n\nexport const generateCoordinateAxisAttribute = (\n scale: IScale,\n coordinate: IBaseCoordinate,\n inside: boolean,\n baseValue: number,\n layout: MarkRelativeItemSpec,\n isGrid?: boolean\n) => {\n const axisPosition = scale.getCoordinateAxisPosition();\n if (layout?.position === 'auto') {\n // FIXME: too hack\n layout.position = inside ? 'content' : axisPosition;\n }\n\n const axisPoints = scale.getCoordinateAxisPoints(baseValue);\n\n if (axisPoints) {\n const start = axisPoints[0];\n const end = axisPoints[1];\n const res: any = {\n start,\n end,\n verticalFactor:\n (axisPosition === 'top' || axisPosition === 'left' ? -1 : 1) *\n (inside ? -1 : 1) *\n (scale.getSpec().range?.reversed ? -1 : 1)\n };\n\n if (isGrid && coordinate.type === 'polar') {\n const angle = (coordinate as IPolarCoordinate).angle();\n\n res.center = (coordinate as IPolarCoordinate).origin();\n res.startAngle = angle[0];\n res.endAngle = angle[1];\n }\n\n return res;\n }\n\n const radius = (coordinate as IPolarCoordinate).radius();\n const angle = (coordinate as IPolarCoordinate).angle();\n return {\n center: (coordinate as IPolarCoordinate).origin(),\n radius: radius[1],\n innerRadius: radius[0],\n inside: inside,\n startAngle: angle[0],\n endAngle: angle[1]\n };\n};\n\nexport class Axis extends ScaleComponent implements IAxis {\n static readonly componentType: string = ComponentEnum.axis;\n\n protected declare spec: AxisSpec;\n\n private _axisComponentType: keyof typeof AxisEnum;\n\n constructor(view: IView, group?: IGroupMark, mode?: '2d' | '3d') {\n super(view, ComponentEnum.axis, group);\n this.spec.componentType = ComponentEnum.axis;\n this.mode = mode;\n }\n\n protected parseAddition(spec: AxisSpec) {\n super.parseAddition(spec);\n\n this.axisType(spec.axisType);\n this.tickCount(spec.tickCount);\n this.inside(spec.inside);\n this.baseValue(spec.baseValue);\n\n return this;\n }\n\n scale(scale?: IScale | string | Nil) {\n super.scale(scale);\n this._axisComponentType = null;\n return this;\n }\n\n axisType(axisType: AxisType | Nil) {\n this.spec.axisType = axisType;\n this._axisComponentType = null;\n this._prepareRejoin();\n this.commit();\n return this;\n }\n\n addGraphicItem(attrs: any, groupKey?: string) {\n const defaultAttributes = { x: 0, y: 0, start: { x: 0, y: 0 }, end: { x: 0, y: 0 } };\n const initialAttributes = merge(defaultAttributes, attrs);\n const graphicItem = Factory.createGraphicComponent(this._getAxisComponentType(), initialAttributes, this.mode);\n return super.addGraphicItem(initialAttributes, groupKey, graphicItem);\n }\n\n tickCount(tickCount: MarkFunctionType<number> | Nil) {\n return this.setFunctionSpec(tickCount, 'tickCount');\n }\n\n inside(inside: MarkFunctionType<boolean> | Nil) {\n return this.setFunctionSpec(inside, 'inside');\n }\n\n baseValue(baseValue: MarkFunctionType<number> | Nil) {\n return this.setFunctionSpec(baseValue, 'baseValue');\n }\n\n getAxisComponentType() {\n return this._axisComponentType;\n }\n\n protected _updateComponentEncoders() {\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n const encoders = Object.assign({ update: {} }, this.spec.encode);\n const componentEncoders: StateEncodeSpec = Object.keys(encoders).reduce((res, state) => {\n const encoder = encoders[state];\n if (encoder) {\n res[state] = {\n callback: (datum: any, element: IElement, parameters: any) => {\n const theme = this.spec.skipTheme ? null : this.view.getCurrentTheme();\n let addition = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n const inside = invokeFunctionType(this.spec.inside, parameters, datum, element);\n const baseValue = invokeFunctionType(this.spec.baseValue, parameters, datum, element);\n\n const coordinate = scaleGrammar?.getCoordinate?.();\n if (coordinate) {\n addition = Object.assign(\n generateCoordinateAxisAttribute(\n scaleGrammar,\n coordinate,\n inside,\n baseValue,\n this.spec.layout as MarkRelativeItemSpec\n ),\n addition\n );\n }\n\n const scale = scaleGrammar?.getScale?.();\n const tickCount = invokeFunctionType(this.spec.tickCount, parameters, datum, element);\n\n switch (this._getAxisComponentType()) {\n case AxisEnum.lineAxis:\n return generateLineAxisAttributes(scale, theme, addition, tickCount);\n case AxisEnum.circleAxis:\n return generateCircleAxisAttributes(scale, theme, addition, tickCount);\n }\n return addition;\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n private _getAxisComponentType() {\n if (this._axisComponentType) {\n return this._axisComponentType;\n }\n\n let type = this.spec.axisType;\n\n if (isNil(type)) {\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n\n type = scaleGrammar?.getCoordinate?.() ? (scaleGrammar.getCoordinateAxisPoints() ? 'line' : 'circle') : 'line';\n }\n\n this._axisComponentType = type === 'circle' ? AxisEnum.circleAxis : AxisEnum.lineAxis;\n\n return this._axisComponentType;\n }\n}\n\nexport const registerAxis = () => {\n Factory.registerGraphicComponent(\n AxisEnum.lineAxis,\n (attrs: LineAxisAttributes, mode?: '2d' | '3d') => new LineAxisComponent(attrs, mode) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n AxisEnum.circleAxis,\n (attrs: CircleAxisAttributes) => new CircleAxisComponent(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.axis, Axis);\n};\n"]}
|
|
@@ -65,7 +65,7 @@ class Datazoom extends component_1.Component {
|
|
|
65
65
|
}
|
|
66
66
|
addGraphicItem(attrs, groupKey) {
|
|
67
67
|
var _a;
|
|
68
|
-
const theme = this.view.getCurrentTheme(), initialAttributes = Object.assign({}, null === (_a = null == theme ? void 0 : theme.components) || void 0 === _a ? void 0 : _a.datazoom, attrs), graphicItem = factory_1.Factory.createGraphicComponent(this.componentType, initialAttributes), datazoom = graphicItem;
|
|
68
|
+
const theme = this.spec.skipTheme ? null : this.view.getCurrentTheme(), initialAttributes = Object.assign({}, null === (_a = null == theme ? void 0 : theme.components) || void 0 === _a ? void 0 : _a.datazoom, attrs), graphicItem = factory_1.Factory.createGraphicComponent(this.componentType, initialAttributes), datazoom = graphicItem;
|
|
69
69
|
return datazoom.setStatePointToData((state => {
|
|
70
70
|
var _a;
|
|
71
71
|
return this.spec.preview && null !== (_a = this.invertDatazoomRatio(state)) && void 0 !== _a ? _a : state;
|
|
@@ -105,7 +105,8 @@ class Datazoom extends component_1.Component {
|
|
|
105
105
|
return encoder && (res[state] = {
|
|
106
106
|
callback: (datum, element, parameters) => {
|
|
107
107
|
var _a;
|
|
108
|
-
const theme = this.view.getCurrentTheme(), addition = (0,
|
|
108
|
+
const theme = this.spec.skipTheme ? null : this.view.getCurrentTheme(), addition = (0,
|
|
109
|
+
encode_1.invokeEncoder)(encoder, datum, element, parameters);
|
|
109
110
|
return (0, exports.generateDatazoomAttributes)(null === (_a = null == dataGrammar ? void 0 : dataGrammar.getValue) || void 0 === _a ? void 0 : _a.call(dataGrammar), theme, addition);
|
|
110
111
|
}
|
|
111
112
|
}), res;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/datazoom.ts"],"names":[],"mappings":"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","file":"datazoom.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport type { DataZoomAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataZoom as DatazoomComponent } from '@visactor/vrender-components';\nimport { isNil, isString, merge, mixin } from '@visactor/vutils';\nimport { ComponentEnum } from '../graph/enums';\nimport type {\n BaseSignleEncodeSpec,\n ChannelEncodeType,\n IData,\n IElement,\n IGroupMark,\n ITheme,\n IView,\n Nil,\n RecursivePartial,\n ScaleEncodeType,\n StateEncodeSpec\n} from '../types';\nimport type { DatazoomSpec, IDatazoom } from '../types/component';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { Component } from '../view/component';\nimport { parseEncodeType } from '../parse/mark';\nimport { Factory } from '../core/factory';\nimport { DatazoomFilter } from '../interactions/datazoom-filter';\nimport { Filter, FilterMixin } from '../interactions/filter';\n\nexport const generateDatazoomAttributes = (\n data: any[],\n theme?: ITheme,\n addition?: RecursivePartial<DataZoomAttributes>\n): DataZoomAttributes => {\n const datazoomTheme = theme?.components?.datazoom;\n if (!data) {\n return merge({}, datazoomTheme, addition ?? {});\n }\n\n return merge({}, datazoomTheme, { previewData: data }, addition ?? {});\n};\n\nexport class Datazoom extends Component implements IDatazoom {\n static readonly componentType: string = ComponentEnum.datazoom;\n protected declare spec: DatazoomSpec;\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, ComponentEnum.datazoom, group);\n this.spec.componentType = ComponentEnum.datazoom;\n }\n\n protected parseAddition(spec: DatazoomSpec) {\n super.parseAddition(spec);\n this.preview(spec.preview?.data, spec.preview?.x, spec.preview?.y, spec.preview?.x1, spec.preview?.y1);\n this._updateComponentEncoders();\n return this;\n }\n\n preview(\n data: IData | string | Nil,\n x: ScaleEncodeType | Nil,\n y: ScaleEncodeType | Nil,\n x1?: ChannelEncodeType | Nil,\n y1?: ChannelEncodeType | Nil\n ) {\n if (!isNil(this.spec.preview)) {\n const lastData = this.spec.preview.data;\n const lastDataGrammar = isString(lastData) ? this.view.getDataById(lastData) : lastData;\n this.detach(lastDataGrammar);\n this.detach(parseEncodeType(this.spec.preview.x, this.view));\n this.detach(parseEncodeType(this.spec.preview.y, this.view));\n this.detach(parseEncodeType(this.spec.preview.x1, this.view));\n this.detach(parseEncodeType(this.spec.preview.y1, this.view));\n }\n this.spec.preview = undefined;\n if (data) {\n this.spec.preview = { data, x, y, x1, y1 };\n const dataGrammar = isString(data) ? this.view.getDataById(data) : data;\n this.attach(dataGrammar);\n this.attach(parseEncodeType(x, this.view));\n this.attach(parseEncodeType(y, this.view));\n this.attach(parseEncodeType(x1, this.view));\n this.attach(parseEncodeType(y1, this.view));\n }\n this._updateComponentEncoders();\n this.commit();\n return this;\n }\n\n setStartEndValue(start?: number, end?: number) {\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as DatazoomComponent;\n datazoom?.setStartAndEnd?.(start, end);\n return this;\n }\n\n getStartEndValue() {\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as DatazoomComponent;\n\n if (datazoom) {\n const state = datazoom.state;\n return {\n start: state.start,\n end: state.end\n };\n }\n\n return null;\n }\n\n addGraphicItem(attrs: any, groupKey?: string) {\n const theme = this.view.getCurrentTheme();\n const initialAttributes = Object.assign({}, theme?.components?.datazoom, attrs);\n const graphicItem = Factory.createGraphicComponent(this.componentType, initialAttributes);\n const datazoom = graphicItem as unknown as DatazoomComponent;\n datazoom.setStatePointToData(state => {\n if (this.spec.preview) {\n return this.invertDatazoomRatio(state) ?? state;\n }\n return state;\n });\n\n datazoom.setPreviewPointsX((datum: any) => {\n if (this.spec.preview?.x && this.spec.preview?.data) {\n return invokeEncoder({ x: this.spec.preview.x }, datum, this.elements[0], this.parameters()).x;\n }\n\n return undefined;\n });\n datazoom.setPreviewPointsY((datum: any) => {\n if (this.spec.preview?.y && this.spec.preview?.data) {\n return invokeEncoder({ y: this.spec.preview.y }, datum, this.elements[0], this.parameters()).y;\n }\n\n return undefined;\n });\n\n datazoom.setPreviewPointsX1((datum: any) => {\n if (this.spec.preview?.x1 && this.spec.preview?.data) {\n return invokeEncoder({ x1: this.spec.preview.x1 }, datum, this.elements[0], this.parameters()).x1;\n }\n\n return undefined;\n });\n datazoom.setPreviewPointsY1((datum: any) => {\n if (this.spec.preview?.y1 && this.spec.preview?.data) {\n return invokeEncoder({ y1: this.spec.preview.y1 }, datum, this.elements[0], this.parameters()).y1;\n }\n\n return undefined;\n });\n return super.addGraphicItem(initialAttributes, groupKey, graphicItem);\n }\n\n protected _updateComponentEncoders() {\n const data = this.spec.preview?.data;\n const dataGrammar = isString(data) ? this.view.getDataById(data) : data;\n const encoders = Object.assign({ update: {} }, this.spec.encode);\n const componentEncoders: StateEncodeSpec = Object.keys(encoders).reduce((res, state) => {\n const encoder = encoders[state];\n if (encoder) {\n res[state] = {\n callback: (datum: any, element: IElement, parameters: any) => {\n const theme = this.view.getCurrentTheme();\n const addition = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n return generateDatazoomAttributes(dataGrammar?.getValue?.(), theme, addition);\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n invertDatazoomRatio(ratio: number): any {\n const scale = this.getDatazoomMainScale();\n if (scale) {\n const range = scale.range();\n const scaledValue = (range[range.length - 1] - range[0]) * ratio + range[0];\n return scale.invert(scaledValue);\n }\n return null;\n }\n\n getDatazoomMainScale() {\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as DatazoomComponent;\n if (datazoom && this.spec.preview) {\n const isHorizontal = datazoom.attribute.orient === 'top' || datazoom.attribute.orient === 'bottom';\n const scale = isHorizontal ? this.spec.preview.x?.scale : this.spec.preview.y?.scale;\n const scaleGrammar = isString(scale) ? this.view.getScaleById(scale) : scale;\n return scaleGrammar?.getScale();\n }\n return null;\n }\n}\n\nexport const registerDataZoom = () => {\n Factory.registerGraphicComponent(\n ComponentEnum.datazoom,\n (attrs: DataZoomAttributes) => new DatazoomComponent(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.datazoom, Datazoom);\n\n mixin(Filter, FilterMixin);\n Factory.registerInteraction(DatazoomFilter.type, DatazoomFilter);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/datazoom.ts"],"names":[],"mappings":"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","file":"datazoom.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport type { DataZoomAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataZoom as DatazoomComponent } from '@visactor/vrender-components';\nimport { isNil, isString, merge, mixin } from '@visactor/vutils';\nimport { ComponentEnum } from '../graph/enums';\nimport type {\n BaseSignleEncodeSpec,\n ChannelEncodeType,\n IData,\n IElement,\n IGroupMark,\n ITheme,\n IView,\n Nil,\n RecursivePartial,\n ScaleEncodeType,\n StateEncodeSpec\n} from '../types';\nimport type { DatazoomSpec, IDatazoom } from '../types/component';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { Component } from '../view/component';\nimport { parseEncodeType } from '../parse/mark';\nimport { Factory } from '../core/factory';\nimport { DatazoomFilter } from '../interactions/datazoom-filter';\nimport { Filter, FilterMixin } from '../interactions/filter';\n\nexport const generateDatazoomAttributes = (\n data: any[],\n theme?: ITheme,\n addition?: RecursivePartial<DataZoomAttributes>\n): DataZoomAttributes => {\n const datazoomTheme = theme?.components?.datazoom;\n if (!data) {\n return merge({}, datazoomTheme, addition ?? {});\n }\n\n return merge({}, datazoomTheme, { previewData: data }, addition ?? {});\n};\n\nexport class Datazoom extends Component implements IDatazoom {\n static readonly componentType: string = ComponentEnum.datazoom;\n protected declare spec: DatazoomSpec;\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, ComponentEnum.datazoom, group);\n this.spec.componentType = ComponentEnum.datazoom;\n }\n\n protected parseAddition(spec: DatazoomSpec) {\n super.parseAddition(spec);\n this.preview(spec.preview?.data, spec.preview?.x, spec.preview?.y, spec.preview?.x1, spec.preview?.y1);\n this._updateComponentEncoders();\n return this;\n }\n\n preview(\n data: IData | string | Nil,\n x: ScaleEncodeType | Nil,\n y: ScaleEncodeType | Nil,\n x1?: ChannelEncodeType | Nil,\n y1?: ChannelEncodeType | Nil\n ) {\n if (!isNil(this.spec.preview)) {\n const lastData = this.spec.preview.data;\n const lastDataGrammar = isString(lastData) ? this.view.getDataById(lastData) : lastData;\n this.detach(lastDataGrammar);\n this.detach(parseEncodeType(this.spec.preview.x, this.view));\n this.detach(parseEncodeType(this.spec.preview.y, this.view));\n this.detach(parseEncodeType(this.spec.preview.x1, this.view));\n this.detach(parseEncodeType(this.spec.preview.y1, this.view));\n }\n this.spec.preview = undefined;\n if (data) {\n this.spec.preview = { data, x, y, x1, y1 };\n const dataGrammar = isString(data) ? this.view.getDataById(data) : data;\n this.attach(dataGrammar);\n this.attach(parseEncodeType(x, this.view));\n this.attach(parseEncodeType(y, this.view));\n this.attach(parseEncodeType(x1, this.view));\n this.attach(parseEncodeType(y1, this.view));\n }\n this._updateComponentEncoders();\n this.commit();\n return this;\n }\n\n setStartEndValue(start?: number, end?: number) {\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as DatazoomComponent;\n datazoom?.setStartAndEnd?.(start, end);\n return this;\n }\n\n getStartEndValue() {\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as DatazoomComponent;\n\n if (datazoom) {\n const state = datazoom.state;\n return {\n start: state.start,\n end: state.end\n };\n }\n\n return null;\n }\n\n addGraphicItem(attrs: any, groupKey?: string) {\n const theme = this.spec.skipTheme ? null : this.view.getCurrentTheme();\n const initialAttributes = Object.assign({}, theme?.components?.datazoom, attrs);\n const graphicItem = Factory.createGraphicComponent(this.componentType, initialAttributes);\n const datazoom = graphicItem as unknown as DatazoomComponent;\n datazoom.setStatePointToData(state => {\n if (this.spec.preview) {\n return this.invertDatazoomRatio(state) ?? state;\n }\n return state;\n });\n\n datazoom.setPreviewPointsX((datum: any) => {\n if (this.spec.preview?.x && this.spec.preview?.data) {\n return invokeEncoder({ x: this.spec.preview.x }, datum, this.elements[0], this.parameters()).x;\n }\n\n return undefined;\n });\n datazoom.setPreviewPointsY((datum: any) => {\n if (this.spec.preview?.y && this.spec.preview?.data) {\n return invokeEncoder({ y: this.spec.preview.y }, datum, this.elements[0], this.parameters()).y;\n }\n\n return undefined;\n });\n\n datazoom.setPreviewPointsX1((datum: any) => {\n if (this.spec.preview?.x1 && this.spec.preview?.data) {\n return invokeEncoder({ x1: this.spec.preview.x1 }, datum, this.elements[0], this.parameters()).x1;\n }\n\n return undefined;\n });\n datazoom.setPreviewPointsY1((datum: any) => {\n if (this.spec.preview?.y1 && this.spec.preview?.data) {\n return invokeEncoder({ y1: this.spec.preview.y1 }, datum, this.elements[0], this.parameters()).y1;\n }\n\n return undefined;\n });\n return super.addGraphicItem(initialAttributes, groupKey, graphicItem);\n }\n\n protected _updateComponentEncoders() {\n const data = this.spec.preview?.data;\n const dataGrammar = isString(data) ? this.view.getDataById(data) : data;\n const encoders = Object.assign({ update: {} }, this.spec.encode);\n const componentEncoders: StateEncodeSpec = Object.keys(encoders).reduce((res, state) => {\n const encoder = encoders[state];\n if (encoder) {\n res[state] = {\n callback: (datum: any, element: IElement, parameters: any) => {\n const theme = this.spec.skipTheme ? null : this.view.getCurrentTheme();\n const addition = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n return generateDatazoomAttributes(dataGrammar?.getValue?.(), theme, addition);\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n invertDatazoomRatio(ratio: number): any {\n const scale = this.getDatazoomMainScale();\n if (scale) {\n const range = scale.range();\n const scaledValue = (range[range.length - 1] - range[0]) * ratio + range[0];\n return scale.invert(scaledValue);\n }\n return null;\n }\n\n getDatazoomMainScale() {\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as DatazoomComponent;\n if (datazoom && this.spec.preview) {\n const isHorizontal = datazoom.attribute.orient === 'top' || datazoom.attribute.orient === 'bottom';\n const scale = isHorizontal ? this.spec.preview.x?.scale : this.spec.preview.y?.scale;\n const scaleGrammar = isString(scale) ? this.view.getScaleById(scale) : scale;\n return scaleGrammar?.getScale();\n }\n return null;\n }\n}\n\nexport const registerDataZoom = () => {\n Factory.registerGraphicComponent(\n ComponentEnum.datazoom,\n (attrs: DataZoomAttributes) => new DatazoomComponent(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.datazoom, Datazoom);\n\n mixin(Filter, FilterMixin);\n Factory.registerInteraction(DatazoomFilter.type, DatazoomFilter);\n};\n"]}
|
package/cjs/component/grid.js
CHANGED
|
@@ -99,7 +99,7 @@ class Grid extends scale_1.ScaleComponent {
|
|
|
99
99
|
return encoder && (res[state] = {
|
|
100
100
|
callback: (datum, element, parameters) => {
|
|
101
101
|
var _a, _b, _c, _d;
|
|
102
|
-
const theme = this.view.getCurrentTheme();
|
|
102
|
+
const theme = this.spec.skipTheme ? null : this.view.getCurrentTheme();
|
|
103
103
|
let scaleGrammar, addition = (0, encode_1.invokeEncoder)(encoder, datum, element, parameters);
|
|
104
104
|
const baseValue = (0, util_1.invokeFunctionType)(this.spec.baseValue, parameters, datum, element);
|
|
105
105
|
if (this._targetAxis) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/grid.ts"],"names":[],"mappings":"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","file":"grid.js","sourcesContent":["import { isString, merge } from '@visactor/vutils';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { CircleAxisGridAttributes, LineAxisGridAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { CircleAxisGrid, LineAxisGrid } from '@visactor/vrender-components';\nimport type { IBaseScale } from '@visactor/vscale';\nimport type {\n BaseSignleEncodeSpec,\n IElement,\n IGroupMark,\n IScale,\n ITheme,\n IView,\n MarkFunctionType,\n MarkRelativeItemSpec,\n Nil,\n RecursivePartial,\n StateEncodeSpec\n} from '../types';\nimport { AxisEnum, ComponentEnum, GridEnum } from '../graph/enums';\nimport type { GridShape, GridSpec, AxisType, IAxis, IGrid } from '../types/component';\nimport { ScaleComponent } from './scale';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { invokeFunctionType } from '../parse/util';\nimport { generateCoordinateAxisAttribute } from './axis';\nimport { Factory } from '../core/factory';\n\nexport const generateLineAxisGridAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<LineAxisGridAttributes>,\n tickCount?: number\n): LineAxisGridAttributes => {\n const gridTheme = theme?.components?.grid ?? {};\n if (!scale) {\n return merge({}, gridTheme, addition ?? {});\n }\n const tickData = scale.tickData?.(tickCount) ?? [];\n const items = tickData.map(tick => ({\n id: tick.index,\n label: tick.tick,\n value: tick.value,\n rawValue: tick.tick\n }));\n return merge({}, gridTheme, { items }, addition ?? {});\n};\n\nexport const generateCircleAxisGridAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<CircleAxisGridAttributes>,\n tickCount?: number\n): CircleAxisGridAttributes => {\n const gridTheme = theme?.components?.circleGrid ?? {};\n if (!scale) {\n return merge({}, gridTheme, addition ?? {});\n }\n const tickData = scale.tickData?.(tickCount) ?? [];\n const items = tickData.map(tick => ({\n id: tick.index,\n label: tick.tick,\n value: tick.value,\n rawValue: tick.tick\n }));\n return merge({}, gridTheme, { items }, addition ?? {});\n};\n\nexport class Grid extends ScaleComponent implements IGrid {\n static readonly componentType: string = ComponentEnum.grid;\n protected declare spec: GridSpec;\n\n protected mode?: '2d' | '3d';\n\n private _gridComponentType: keyof typeof GridEnum;\n private _targetAxis: IAxis;\n\n constructor(view: IView, group?: IGroupMark, mode?: '2d' | '3d') {\n super(view, ComponentEnum.grid, group);\n this.spec.componentType = ComponentEnum.grid;\n this.mode = mode;\n }\n\n protected parseAddition(spec: GridSpec) {\n super.parseAddition(spec);\n this.target(spec.target);\n this.gridType(spec.gridType);\n this.gridShape(spec.gridShape);\n return this;\n }\n\n scale(scale?: IScale | string | Nil) {\n super.scale(scale);\n this._gridComponentType = null;\n return this;\n }\n\n gridType(gridType: AxisType | Nil) {\n this.spec.gridType = gridType;\n this._gridComponentType = null;\n this._prepareRejoin();\n this.commit();\n return this;\n }\n\n gridShape(gridShape: GridShape | Nil) {\n this.spec.gridShape = gridShape;\n // no need to rejoin when gridShape is updated\n // this._gridComponentType = null;\n // this._prepareRejoin();\n this.commit();\n return this;\n }\n\n target(axis: IAxis | string | Nil) {\n if (this.spec.target) {\n const prevAxis = isString(this.spec.target)\n ? (this.view.getMarkById(this.spec.target) as IAxis)\n : this.spec.target;\n this.detach(prevAxis);\n }\n this.spec.target = axis;\n const nextAxis = isString(axis) ? (this.view.getMarkById(axis) as IAxis) : axis;\n this.attach(nextAxis);\n this._targetAxis = nextAxis;\n\n // clear grid type when target is updated\n this._gridComponentType = null;\n this._updateComponentEncoders();\n\n this.commit();\n return this;\n }\n\n tickCount(tickCount: MarkFunctionType<number> | Nil) {\n return this.setFunctionSpec(tickCount, 'tickCount');\n }\n\n inside(inside: MarkFunctionType<boolean> | Nil) {\n return this.setFunctionSpec(inside, 'inside');\n }\n\n baseValue(baseValue: MarkFunctionType<number> | Nil) {\n return this.setFunctionSpec(baseValue, 'baseValue');\n }\n\n addGraphicItem(attrs: any, groupKey?: string) {\n const defaultAttributes = { x: 0, y: 0, start: { x: 0, y: 0 }, end: { x: 0, y: 0 } };\n const initialAttributes = merge(defaultAttributes, attrs);\n const graphicItem = Factory.createGraphicComponent(this._getGridComponentType(), initialAttributes, this.mode);\n return super.addGraphicItem(initialAttributes, groupKey, graphicItem);\n }\n\n protected _updateComponentEncoders() {\n const encoders = Object.assign({ update: {} }, this.spec.encode);\n const componentEncoders: StateEncodeSpec = Object.keys(encoders).reduce((res, state) => {\n const encoder = encoders[state];\n if (encoder) {\n res[state] = {\n callback: (datum: any, element: IElement, parameters: any) => {\n const theme = this.view.getCurrentTheme();\n let addition = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n let scaleGrammar: IScale;\n const baseValue = invokeFunctionType(this.spec.baseValue, parameters, datum, element);\n\n // get attributes from target axis\n if (this._targetAxis) {\n const targetScale = this._targetAxis.getSpec()?.scale as IScale | string | Nil;\n scaleGrammar = isString(targetScale) ? this.view.getScaleById(targetScale) : targetScale;\n\n const targetElement = this._targetAxis.elements[0];\n if (targetElement) {\n switch (this._getGridComponentType()) {\n case GridEnum.lineAxisGrid:\n addition = Object.assign(\n {\n x: targetElement.getGraphicAttribute('x'),\n y: targetElement.getGraphicAttribute('y'),\n start: targetElement.getGraphicAttribute('start'),\n end: targetElement.getGraphicAttribute('end'),\n verticalFactor: targetElement.getGraphicAttribute('verticalFactor') ?? 1\n },\n addition\n );\n break;\n case GridEnum.circleAxisGrid:\n addition = Object.assign(\n {\n x: targetElement.getGraphicAttribute('x'),\n y: targetElement.getGraphicAttribute('y'),\n center: targetElement.getGraphicAttribute('center'),\n radius: targetElement.getGraphicAttribute('radius'),\n innerRadius: targetElement.getGraphicAttribute('innerRadius'),\n inside: targetElement.getGraphicAttribute('inside'),\n startAngle: targetElement.getGraphicAttribute('startAngle'),\n endAngle: targetElement.getGraphicAttribute('endAngle')\n },\n addition\n );\n break;\n }\n }\n }\n // compute attribute by spec\n else {\n scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n const inside = invokeFunctionType(this.spec.inside, parameters, datum, element);\n\n const coordinate = scaleGrammar?.getCoordinate?.();\n if (coordinate) {\n addition = Object.assign(\n generateCoordinateAxisAttribute(\n scaleGrammar,\n coordinate,\n inside,\n baseValue,\n this.spec.layout as MarkRelativeItemSpec,\n true\n ),\n addition\n );\n }\n }\n\n // compute addition shape attributes for line grid\n if (this._getGridComponentType() === GridEnum.lineAxisGrid) {\n if (this.spec.gridShape === 'line' || !this.spec.gridShape) {\n // set axis type\n addition = Object.assign({}, addition, { type: 'line' });\n } else {\n // set addition length & axis type\n addition = Object.assign(\n {\n center: addition.start,\n closed: true\n },\n addition,\n { type: this.spec.gridShape }\n );\n }\n }\n\n const scale = scaleGrammar?.getScale?.();\n const tickCount = invokeFunctionType(this.spec.tickCount, parameters, datum, element);\n switch (this._getGridComponentType()) {\n case GridEnum.lineAxisGrid:\n return generateLineAxisGridAttributes(scale, theme, addition, tickCount);\n case GridEnum.circleAxisGrid:\n return generateCircleAxisGridAttributes(scale, theme, addition, tickCount);\n }\n return addition;\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n private _getGridComponentType() {\n if (this._gridComponentType) {\n return this._gridComponentType;\n }\n\n if (this.spec.gridType) {\n switch (this.spec.gridType) {\n case 'circle':\n this._gridComponentType = GridEnum.circleAxisGrid;\n break;\n case 'line':\n default:\n this._gridComponentType = GridEnum.lineAxisGrid;\n }\n } else if (this._targetAxis) {\n const axisComponentType = this._targetAxis.getAxisComponentType();\n switch (axisComponentType) {\n case AxisEnum.circleAxis:\n this._gridComponentType = GridEnum.circleAxisGrid;\n break;\n case AxisEnum.lineAxis:\n default:\n this._gridComponentType = GridEnum.lineAxisGrid;\n }\n } else if (this.spec.scale) {\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n this._gridComponentType = scaleGrammar?.getCoordinate?.()\n ? scaleGrammar.getCoordinateAxisPoints()\n ? GridEnum.lineAxisGrid\n : GridEnum.circleAxisGrid\n : GridEnum.lineAxisGrid;\n } else {\n this._gridComponentType = GridEnum.lineAxisGrid;\n }\n\n return this._gridComponentType;\n }\n}\n\nexport const registerGrid = () => {\n Factory.registerGraphicComponent(\n GridEnum.lineAxisGrid,\n (attrs: LineAxisGridAttributes, mode?: '2d' | '3d') => new LineAxisGrid(attrs, mode) as unknown as IGraphic\n );\n\n Factory.registerGraphicComponent(\n GridEnum.circleAxisGrid,\n (attrs: CircleAxisGridAttributes, mode?: '2d' | '3d') => new CircleAxisGrid(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.grid, Grid);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/grid.ts"],"names":[],"mappings":"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","file":"grid.js","sourcesContent":["import { isString, merge } from '@visactor/vutils';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { CircleAxisGridAttributes, LineAxisGridAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { CircleAxisGrid, LineAxisGrid } from '@visactor/vrender-components';\nimport type { IBaseScale } from '@visactor/vscale';\nimport type {\n BaseSignleEncodeSpec,\n IElement,\n IGroupMark,\n IScale,\n ITheme,\n IView,\n MarkFunctionType,\n MarkRelativeItemSpec,\n Nil,\n RecursivePartial,\n StateEncodeSpec\n} from '../types';\nimport { AxisEnum, ComponentEnum, GridEnum } from '../graph/enums';\nimport type { GridShape, GridSpec, AxisType, IAxis, IGrid } from '../types/component';\nimport { ScaleComponent } from './scale';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { invokeFunctionType } from '../parse/util';\nimport { generateCoordinateAxisAttribute } from './axis';\nimport { Factory } from '../core/factory';\n\nexport const generateLineAxisGridAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<LineAxisGridAttributes>,\n tickCount?: number\n): LineAxisGridAttributes => {\n const gridTheme = theme?.components?.grid ?? {};\n if (!scale) {\n return merge({}, gridTheme, addition ?? {});\n }\n const tickData = scale.tickData?.(tickCount) ?? [];\n const items = tickData.map(tick => ({\n id: tick.index,\n label: tick.tick,\n value: tick.value,\n rawValue: tick.tick\n }));\n return merge({}, gridTheme, { items }, addition ?? {});\n};\n\nexport const generateCircleAxisGridAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<CircleAxisGridAttributes>,\n tickCount?: number\n): CircleAxisGridAttributes => {\n const gridTheme = theme?.components?.circleGrid ?? {};\n if (!scale) {\n return merge({}, gridTheme, addition ?? {});\n }\n const tickData = scale.tickData?.(tickCount) ?? [];\n const items = tickData.map(tick => ({\n id: tick.index,\n label: tick.tick,\n value: tick.value,\n rawValue: tick.tick\n }));\n return merge({}, gridTheme, { items }, addition ?? {});\n};\n\nexport class Grid extends ScaleComponent implements IGrid {\n static readonly componentType: string = ComponentEnum.grid;\n protected declare spec: GridSpec;\n\n protected mode?: '2d' | '3d';\n\n private _gridComponentType: keyof typeof GridEnum;\n private _targetAxis: IAxis;\n\n constructor(view: IView, group?: IGroupMark, mode?: '2d' | '3d') {\n super(view, ComponentEnum.grid, group);\n this.spec.componentType = ComponentEnum.grid;\n this.mode = mode;\n }\n\n protected parseAddition(spec: GridSpec) {\n super.parseAddition(spec);\n this.target(spec.target);\n this.gridType(spec.gridType);\n this.gridShape(spec.gridShape);\n return this;\n }\n\n scale(scale?: IScale | string | Nil) {\n super.scale(scale);\n this._gridComponentType = null;\n return this;\n }\n\n gridType(gridType: AxisType | Nil) {\n this.spec.gridType = gridType;\n this._gridComponentType = null;\n this._prepareRejoin();\n this.commit();\n return this;\n }\n\n gridShape(gridShape: GridShape | Nil) {\n this.spec.gridShape = gridShape;\n // no need to rejoin when gridShape is updated\n // this._gridComponentType = null;\n // this._prepareRejoin();\n this.commit();\n return this;\n }\n\n target(axis: IAxis | string | Nil) {\n if (this.spec.target) {\n const prevAxis = isString(this.spec.target)\n ? (this.view.getMarkById(this.spec.target) as IAxis)\n : this.spec.target;\n this.detach(prevAxis);\n }\n this.spec.target = axis;\n const nextAxis = isString(axis) ? (this.view.getMarkById(axis) as IAxis) : axis;\n this.attach(nextAxis);\n this._targetAxis = nextAxis;\n\n // clear grid type when target is updated\n this._gridComponentType = null;\n this._updateComponentEncoders();\n\n this.commit();\n return this;\n }\n\n tickCount(tickCount: MarkFunctionType<number> | Nil) {\n return this.setFunctionSpec(tickCount, 'tickCount');\n }\n\n inside(inside: MarkFunctionType<boolean> | Nil) {\n return this.setFunctionSpec(inside, 'inside');\n }\n\n baseValue(baseValue: MarkFunctionType<number> | Nil) {\n return this.setFunctionSpec(baseValue, 'baseValue');\n }\n\n addGraphicItem(attrs: any, groupKey?: string) {\n const defaultAttributes = { x: 0, y: 0, start: { x: 0, y: 0 }, end: { x: 0, y: 0 } };\n const initialAttributes = merge(defaultAttributes, attrs);\n const graphicItem = Factory.createGraphicComponent(this._getGridComponentType(), initialAttributes, this.mode);\n return super.addGraphicItem(initialAttributes, groupKey, graphicItem);\n }\n\n protected _updateComponentEncoders() {\n const encoders = Object.assign({ update: {} }, this.spec.encode);\n const componentEncoders: StateEncodeSpec = Object.keys(encoders).reduce((res, state) => {\n const encoder = encoders[state];\n if (encoder) {\n res[state] = {\n callback: (datum: any, element: IElement, parameters: any) => {\n const theme = this.spec.skipTheme ? null : this.view.getCurrentTheme();\n let addition = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n let scaleGrammar: IScale;\n const baseValue = invokeFunctionType(this.spec.baseValue, parameters, datum, element);\n\n // get attributes from target axis\n if (this._targetAxis) {\n const targetScale = this._targetAxis.getSpec()?.scale as IScale | string | Nil;\n scaleGrammar = isString(targetScale) ? this.view.getScaleById(targetScale) : targetScale;\n\n const targetElement = this._targetAxis.elements[0];\n if (targetElement) {\n switch (this._getGridComponentType()) {\n case GridEnum.lineAxisGrid:\n addition = Object.assign(\n {\n x: targetElement.getGraphicAttribute('x'),\n y: targetElement.getGraphicAttribute('y'),\n start: targetElement.getGraphicAttribute('start'),\n end: targetElement.getGraphicAttribute('end'),\n verticalFactor: targetElement.getGraphicAttribute('verticalFactor') ?? 1\n },\n addition\n );\n break;\n case GridEnum.circleAxisGrid:\n addition = Object.assign(\n {\n x: targetElement.getGraphicAttribute('x'),\n y: targetElement.getGraphicAttribute('y'),\n center: targetElement.getGraphicAttribute('center'),\n radius: targetElement.getGraphicAttribute('radius'),\n innerRadius: targetElement.getGraphicAttribute('innerRadius'),\n inside: targetElement.getGraphicAttribute('inside'),\n startAngle: targetElement.getGraphicAttribute('startAngle'),\n endAngle: targetElement.getGraphicAttribute('endAngle')\n },\n addition\n );\n break;\n }\n }\n }\n // compute attribute by spec\n else {\n scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n const inside = invokeFunctionType(this.spec.inside, parameters, datum, element);\n\n const coordinate = scaleGrammar?.getCoordinate?.();\n if (coordinate) {\n addition = Object.assign(\n generateCoordinateAxisAttribute(\n scaleGrammar,\n coordinate,\n inside,\n baseValue,\n this.spec.layout as MarkRelativeItemSpec,\n true\n ),\n addition\n );\n }\n }\n\n // compute addition shape attributes for line grid\n if (this._getGridComponentType() === GridEnum.lineAxisGrid) {\n if (this.spec.gridShape === 'line' || !this.spec.gridShape) {\n // set axis type\n addition = Object.assign({}, addition, { type: 'line' });\n } else {\n // set addition length & axis type\n addition = Object.assign(\n {\n center: addition.start,\n closed: true\n },\n addition,\n { type: this.spec.gridShape }\n );\n }\n }\n\n const scale = scaleGrammar?.getScale?.();\n const tickCount = invokeFunctionType(this.spec.tickCount, parameters, datum, element);\n switch (this._getGridComponentType()) {\n case GridEnum.lineAxisGrid:\n return generateLineAxisGridAttributes(scale, theme, addition, tickCount);\n case GridEnum.circleAxisGrid:\n return generateCircleAxisGridAttributes(scale, theme, addition, tickCount);\n }\n return addition;\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n private _getGridComponentType() {\n if (this._gridComponentType) {\n return this._gridComponentType;\n }\n\n if (this.spec.gridType) {\n switch (this.spec.gridType) {\n case 'circle':\n this._gridComponentType = GridEnum.circleAxisGrid;\n break;\n case 'line':\n default:\n this._gridComponentType = GridEnum.lineAxisGrid;\n }\n } else if (this._targetAxis) {\n const axisComponentType = this._targetAxis.getAxisComponentType();\n switch (axisComponentType) {\n case AxisEnum.circleAxis:\n this._gridComponentType = GridEnum.circleAxisGrid;\n break;\n case AxisEnum.lineAxis:\n default:\n this._gridComponentType = GridEnum.lineAxisGrid;\n }\n } else if (this.spec.scale) {\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n this._gridComponentType = scaleGrammar?.getCoordinate?.()\n ? scaleGrammar.getCoordinateAxisPoints()\n ? GridEnum.lineAxisGrid\n : GridEnum.circleAxisGrid\n : GridEnum.lineAxisGrid;\n } else {\n this._gridComponentType = GridEnum.lineAxisGrid;\n }\n\n return this._gridComponentType;\n }\n}\n\nexport const registerGrid = () => {\n Factory.registerGraphicComponent(\n GridEnum.lineAxisGrid,\n (attrs: LineAxisGridAttributes, mode?: '2d' | '3d') => new LineAxisGrid(attrs, mode) as unknown as IGraphic\n );\n\n Factory.registerGraphicComponent(\n GridEnum.circleAxisGrid,\n (attrs: CircleAxisGridAttributes, mode?: '2d' | '3d') => new CircleAxisGrid(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.grid, Grid);\n};\n"]}
|
package/cjs/component/label.js
CHANGED
|
@@ -109,7 +109,7 @@ class Label extends component_1.Component {
|
|
|
109
109
|
width: 1 / 0,
|
|
110
110
|
height: 1 / 0
|
|
111
111
|
});
|
|
112
|
-
const theme = this.view.getCurrentTheme();
|
|
112
|
+
const theme = this.spec.skipTheme ? null : this.view.getCurrentTheme();
|
|
113
113
|
return (0, exports.generateLabelAttributes)(marks, size, encoder, this.spec.labelStyle, parameters, theme);
|
|
114
114
|
}
|
|
115
115
|
}), res;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/label.ts"],"names":[],"mappings":"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","file":"label.js","sourcesContent":["import { array, isNil, isString, merge } from '@visactor/vutils';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { BaseLabelAttrs, DataLabelAttrs } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataLabel } from '@visactor/vrender-components';\nimport type {\n BaseSignleEncodeSpec,\n IElement,\n IGroupMark,\n IMark,\n ITheme,\n IView,\n MarkFunctionType,\n Nil,\n StateEncodeSpec\n} from '../types';\nimport { ComponentEnum, GrammarMarkType } from '../graph/enums';\nimport type { ILabel, LabelSpec } from '../types/component';\nimport { Component } from '../view/component';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { invokeFunctionType } from '../parse/util';\nimport { Factory } from '../core/factory';\n\nexport const generateLabelAttributes = (\n marks: IMark[],\n groupSize: { width: number; height: number },\n encoder: BaseSignleEncodeSpec,\n labelStyle: MarkFunctionType<Partial<BaseLabelAttrs>>,\n parameters: any,\n theme?: ITheme\n): DataLabelAttrs => {\n const labelTheme = theme?.components?.dataLabel;\n const dataLabels = marks\n .map((mark, index) => {\n const labelParameters = { ...parameters, labelIndex: index };\n let currentTheme: any = {};\n switch (mark.markType) {\n case GrammarMarkType.line:\n case GrammarMarkType.area:\n currentTheme = theme?.components?.lineDataLabel;\n break;\n case GrammarMarkType.rect:\n case GrammarMarkType.interval:\n currentTheme = theme?.components?.rectLabel;\n break;\n case GrammarMarkType.symbol:\n case GrammarMarkType.circle:\n case GrammarMarkType.cell:\n currentTheme = theme?.components?.symbolLabel;\n break;\n case GrammarMarkType.arc:\n case GrammarMarkType.arc3d:\n currentTheme = theme?.components?.arcLabel;\n break;\n case GrammarMarkType.polygon:\n case GrammarMarkType.path:\n default:\n currentTheme = theme?.components?.pointLabel;\n break;\n }\n const data: any[] = [];\n const themeDatum = currentTheme?.data?.[0] ?? {};\n // process by order of elements\n mark.elements.forEach(element => {\n const graphicItem = element.getGraphicItem();\n if ((graphicItem as any).releaseStatus !== 'willRelease') {\n if (mark.isCollectionMark()) {\n const datum = element.getDatum();\n\n datum.forEach((entry: any) => {\n const attributes = invokeEncoder(encoder, entry, element, labelParameters);\n data.push(merge({}, themeDatum, attributes));\n });\n } else {\n const attributes = invokeEncoder(encoder, element.getDatum(), element, labelParameters);\n const datum = merge({}, themeDatum, attributes);\n data.push(datum);\n }\n }\n });\n const addition = invokeFunctionType(labelStyle, labelParameters, mark);\n const graphicItemName = mark.graphicItem?.name;\n return merge(\n {},\n currentTheme,\n {\n data,\n baseMarkGroupName: graphicItemName,\n // FIXME: hack\n // 标签是对数据顺序有强要求的场景,因为顺序会影响标签躲避结果;而目前没有机制保证 vrender 图元顺序与数据顺序一致。\n // 这里目前只能通过自定义方法来 hack\n getBaseMarks: () => mark.elements.map(element => element.getGraphicItem())\n },\n addition ?? {}\n );\n })\n .filter(label => !isNil(label));\n\n return merge({}, labelTheme, { size: groupSize, dataLabels });\n};\n\nexport class Label extends Component implements ILabel {\n static readonly componentType: string = ComponentEnum.label;\n protected declare spec: LabelSpec;\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, ComponentEnum.label, group);\n this.spec.componentType = ComponentEnum.label;\n }\n\n protected parseAddition(spec: LabelSpec) {\n super.parseAddition(spec);\n this.labelStyle(spec.labelStyle);\n this.size(spec.size);\n this.target(spec.target);\n return this;\n }\n\n labelStyle(style: MarkFunctionType<Partial<BaseLabelAttrs>>) {\n return this.setFunctionSpec(style, 'labelStyle');\n }\n\n size(size: LabelSpec['size']) {\n return this.setFunctionSpec(size, 'size');\n }\n\n target(mark: IMark | IMark[] | string | string[] | Nil): this {\n if (this.spec.target) {\n const prevMarks = array(this.spec.target).map(m => (isString(m) ? this.view.getMarkById(m) : m));\n this.detach(prevMarks);\n }\n this.spec.target = mark;\n if (mark) {\n const nextMarks = array(mark).map(m => (isString(m) ? this.view.getMarkById(m) : m));\n this.attach(nextMarks);\n }\n this.commit();\n return this;\n }\n\n protected _updateComponentEncoders() {\n const encoders = Object.assign({ update: {} }, this.spec.encode);\n const componentEncoders: StateEncodeSpec = Object.keys(encoders).reduce((res, state) => {\n const encoder = encoders[state];\n if (encoder) {\n res[state] = {\n callback: (datum: any, element: IElement, parameters: any) => {\n const marks = array(this.spec.target).map(m => (isString(m) ? this.view.getMarkById(m) : m));\n const groupGraphicItem = this.group?.getGroupGraphicItem?.();\n let size = invokeFunctionType(this.spec.size, parameters);\n if (!size) {\n size = groupGraphicItem\n ? {\n width: groupGraphicItem.attribute.width ?? groupGraphicItem.AABBBounds.width(),\n height: groupGraphicItem.attribute.height ?? groupGraphicItem.AABBBounds.height()\n }\n : { width: Infinity, height: Infinity };\n }\n const theme = this.view.getCurrentTheme();\n\n return generateLabelAttributes(\n marks,\n size,\n encoder as BaseSignleEncodeSpec,\n this.spec.labelStyle,\n parameters,\n theme\n );\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n}\n\nexport const registerLabel = () => {\n Factory.registerGraphicComponent(\n ComponentEnum.label,\n (attrs: DataLabelAttrs) => new DataLabel(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.label, Label);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/label.ts"],"names":[],"mappings":"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","file":"label.js","sourcesContent":["import { array, isNil, isString, merge } from '@visactor/vutils';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type { BaseLabelAttrs, DataLabelAttrs } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataLabel } from '@visactor/vrender-components';\nimport type {\n BaseSignleEncodeSpec,\n IElement,\n IGroupMark,\n IMark,\n ITheme,\n IView,\n MarkFunctionType,\n Nil,\n StateEncodeSpec\n} from '../types';\nimport { ComponentEnum, GrammarMarkType } from '../graph/enums';\nimport type { ILabel, LabelSpec } from '../types/component';\nimport { Component } from '../view/component';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { invokeFunctionType } from '../parse/util';\nimport { Factory } from '../core/factory';\n\nexport const generateLabelAttributes = (\n marks: IMark[],\n groupSize: { width: number; height: number },\n encoder: BaseSignleEncodeSpec,\n labelStyle: MarkFunctionType<Partial<BaseLabelAttrs>>,\n parameters: any,\n theme?: ITheme\n): DataLabelAttrs => {\n const labelTheme = theme?.components?.dataLabel;\n const dataLabels = marks\n .map((mark, index) => {\n const labelParameters = { ...parameters, labelIndex: index };\n let currentTheme: any = {};\n switch (mark.markType) {\n case GrammarMarkType.line:\n case GrammarMarkType.area:\n currentTheme = theme?.components?.lineDataLabel;\n break;\n case GrammarMarkType.rect:\n case GrammarMarkType.interval:\n currentTheme = theme?.components?.rectLabel;\n break;\n case GrammarMarkType.symbol:\n case GrammarMarkType.circle:\n case GrammarMarkType.cell:\n currentTheme = theme?.components?.symbolLabel;\n break;\n case GrammarMarkType.arc:\n case GrammarMarkType.arc3d:\n currentTheme = theme?.components?.arcLabel;\n break;\n case GrammarMarkType.polygon:\n case GrammarMarkType.path:\n default:\n currentTheme = theme?.components?.pointLabel;\n break;\n }\n const data: any[] = [];\n const themeDatum = currentTheme?.data?.[0] ?? {};\n // process by order of elements\n mark.elements.forEach(element => {\n const graphicItem = element.getGraphicItem();\n if ((graphicItem as any).releaseStatus !== 'willRelease') {\n if (mark.isCollectionMark()) {\n const datum = element.getDatum();\n\n datum.forEach((entry: any) => {\n const attributes = invokeEncoder(encoder, entry, element, labelParameters);\n data.push(merge({}, themeDatum, attributes));\n });\n } else {\n const attributes = invokeEncoder(encoder, element.getDatum(), element, labelParameters);\n const datum = merge({}, themeDatum, attributes);\n data.push(datum);\n }\n }\n });\n const addition = invokeFunctionType(labelStyle, labelParameters, mark);\n const graphicItemName = mark.graphicItem?.name;\n return merge(\n {},\n currentTheme,\n {\n data,\n baseMarkGroupName: graphicItemName,\n // FIXME: hack\n // 标签是对数据顺序有强要求的场景,因为顺序会影响标签躲避结果;而目前没有机制保证 vrender 图元顺序与数据顺序一致。\n // 这里目前只能通过自定义方法来 hack\n getBaseMarks: () => mark.elements.map(element => element.getGraphicItem())\n },\n addition ?? {}\n );\n })\n .filter(label => !isNil(label));\n\n return merge({}, labelTheme, { size: groupSize, dataLabels });\n};\n\nexport class Label extends Component implements ILabel {\n static readonly componentType: string = ComponentEnum.label;\n protected declare spec: LabelSpec;\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, ComponentEnum.label, group);\n this.spec.componentType = ComponentEnum.label;\n }\n\n protected parseAddition(spec: LabelSpec) {\n super.parseAddition(spec);\n this.labelStyle(spec.labelStyle);\n this.size(spec.size);\n this.target(spec.target);\n return this;\n }\n\n labelStyle(style: MarkFunctionType<Partial<BaseLabelAttrs>>) {\n return this.setFunctionSpec(style, 'labelStyle');\n }\n\n size(size: LabelSpec['size']) {\n return this.setFunctionSpec(size, 'size');\n }\n\n target(mark: IMark | IMark[] | string | string[] | Nil): this {\n if (this.spec.target) {\n const prevMarks = array(this.spec.target).map(m => (isString(m) ? this.view.getMarkById(m) : m));\n this.detach(prevMarks);\n }\n this.spec.target = mark;\n if (mark) {\n const nextMarks = array(mark).map(m => (isString(m) ? this.view.getMarkById(m) : m));\n this.attach(nextMarks);\n }\n this.commit();\n return this;\n }\n\n protected _updateComponentEncoders() {\n const encoders = Object.assign({ update: {} }, this.spec.encode);\n const componentEncoders: StateEncodeSpec = Object.keys(encoders).reduce((res, state) => {\n const encoder = encoders[state];\n if (encoder) {\n res[state] = {\n callback: (datum: any, element: IElement, parameters: any) => {\n const marks = array(this.spec.target).map(m => (isString(m) ? this.view.getMarkById(m) : m));\n const groupGraphicItem = this.group?.getGroupGraphicItem?.();\n let size = invokeFunctionType(this.spec.size, parameters);\n if (!size) {\n size = groupGraphicItem\n ? {\n width: groupGraphicItem.attribute.width ?? groupGraphicItem.AABBBounds.width(),\n height: groupGraphicItem.attribute.height ?? groupGraphicItem.AABBBounds.height()\n }\n : { width: Infinity, height: Infinity };\n }\n\n const theme = this.spec.skipTheme ? null : this.view.getCurrentTheme();\n\n return generateLabelAttributes(\n marks,\n size,\n encoder as BaseSignleEncodeSpec,\n this.spec.labelStyle,\n parameters,\n theme\n );\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n}\n\nexport const registerLabel = () => {\n Factory.registerGraphicComponent(\n ComponentEnum.label,\n (attrs: DataLabelAttrs) => new DataLabel(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.label, Label);\n};\n"]}
|
package/cjs/component/legend.js
CHANGED
|
@@ -104,7 +104,8 @@ class Legend extends scale_1.ScaleComponent {
|
|
|
104
104
|
return encoder && (res[state] = {
|
|
105
105
|
callback: (datum, element, parameters) => {
|
|
106
106
|
var _a, _b;
|
|
107
|
-
const theme = this.
|
|
107
|
+
const theme = this.spec.skipTheme ? null : this.view.getCurrentTheme(), addition = (0,
|
|
108
|
+
encode_1.invokeEncoder)(encoder, datum, element, parameters), scale = null === (_a = null == scaleGrammar ? void 0 : scaleGrammar.getScale) || void 0 === _a ? void 0 : _a.call(scaleGrammar);
|
|
108
109
|
switch (this._getLegendComponentType()) {
|
|
109
110
|
case enums_1.LegendEnum.discreteLegend:
|
|
110
111
|
return (0, exports.generateDiscreteLegendAttributes)(scale, theme, addition, null === (_b = null == shapeScaleGrammar ? void 0 : shapeScaleGrammar.getScale) || void 0 === _b ? void 0 : _b.call(shapeScaleGrammar));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/legend.ts"],"names":[],"mappings":"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","file":"legend.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport type { IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { DiscreteLegendAttrs, ColorLegendAttributes, SizeLegendAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DiscreteLegend, ColorContinuousLegend, SizeContinuousLegend } from '@visactor/vrender-components';\nimport { array, isString, merge, last, mixin } from '@visactor/vutils';\nimport { ComponentEnum, LegendEnum } from '../graph/enums';\nimport type {\n BaseSignleEncodeSpec,\n IElement,\n IGroupMark,\n IScale,\n ITheme,\n IView,\n Nil,\n RecursivePartial,\n StateEncodeSpec\n} from '../types';\nimport type { ILegend, LegendSpec, LegendType } from '../types/component';\nimport { parseColor } from '../parse/util';\nimport { ScaleComponent } from './scale';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { Factory } from '../core/factory';\nimport { LegendFilter } from '../interactions/legend-filter';\nimport { Filter, FilterMixin } from '../interactions/filter';\n\nexport const generateDiscreteLegendAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<DiscreteLegendAttrs>,\n shapeScale?: IBaseScale\n): DiscreteLegendAttrs => {\n const legendTheme = theme?.components?.discreteLegend;\n if (!scale) {\n return merge({}, legendTheme, addition ?? {});\n }\n // get domain items without repetitions\n const domainItems = Array.from(new Set(array(scale.domain())));\n const items = domainItems.map((item, index) => {\n const value = scale.scale(item);\n const color = parseColor(value);\n const shape = color\n ? {\n ...(theme?.components?.discreteLegend?.items?.[0]?.shape ?? {}),\n fill: color,\n stroke: color\n }\n : theme?.components?.discreteLegend?.items?.[0]?.shape ?? {};\n\n if (shapeScale) {\n Object.assign(shape, { symbolType: shapeScale.scale(item) });\n }\n\n return {\n label: item.toString(),\n id: item,\n shape,\n index\n };\n });\n return merge({}, legendTheme, { items }, addition ?? {});\n};\n\nexport const generateColorLegendAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<ColorLegendAttributes>\n): ColorLegendAttributes => {\n const legendTheme = theme?.components?.colorLegend;\n if (!scale) {\n return merge({}, legendTheme, addition ?? {});\n }\n const domain = scale.domain();\n return merge({}, legendTheme, { colors: scale.range().slice(), min: domain[0], max: last(domain) }, addition ?? {});\n};\n\nexport const generateSizeLegendAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<SizeLegendAttributes>\n): SizeLegendAttributes => {\n const legendTheme = theme?.components?.sizeLegend;\n if (!scale) {\n return merge({}, legendTheme, addition ?? {});\n }\n const domain = scale.domain();\n const attributes = {\n min: domain[0],\n max: domain[domain.length - 1],\n value: [domain[0], domain[domain.length - 1]]\n };\n return merge({}, legendTheme, attributes, addition ?? {});\n};\n\nexport class Legend extends ScaleComponent implements ILegend {\n static readonly componentType: string = ComponentEnum.legend;\n protected declare spec: LegendSpec;\n\n private _legendComponentType: keyof typeof LegendEnum;\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, ComponentEnum.legend, group);\n this.spec.componentType = ComponentEnum.legend;\n this.spec.legendType = 'auto';\n }\n\n protected parseAddition(spec: LegendSpec) {\n this.shapeScale(spec.shapeScale);\n super.parseAddition(spec);\n this.legendType(spec.legendType);\n return this;\n }\n\n scale(scale?: IScale | string | Nil) {\n super.scale(scale);\n this._legendComponentType = null;\n return this;\n }\n\n shapeScale(shapeScale: LegendSpec['shapeScale']) {\n if (this.spec.shapeScale) {\n const lastScaleGrammar = isString(this.spec.shapeScale)\n ? this.view.getScaleById(this.spec.shapeScale)\n : this.spec.shapeScale;\n this.detach(lastScaleGrammar);\n this.spec.shapeScale = undefined;\n }\n const scaleGrammar = isString(shapeScale) ? this.view.getScaleById(shapeScale) : shapeScale;\n this.spec.shapeScale = scaleGrammar;\n this.attach(scaleGrammar);\n\n this.commit();\n return this;\n }\n\n legendType(legendType: LegendType | Nil) {\n this.spec.legendType = legendType;\n // clear legend type when spec is changed\n this._legendComponentType = null;\n this._prepareRejoin();\n this.commit();\n return this;\n }\n\n isContinuousLegend() {\n return this._getLegendComponentType() !== LegendEnum.discreteLegend;\n }\n\n setSelected(selectedValues: any[]) {\n // FIXME: provide ILegend interface in vis-component\n const legend = this.elements[0]?.getGraphicItem?.() as unknown as DiscreteLegend;\n legend.setSelected(selectedValues);\n return this;\n }\n\n addGraphicItem(attrs: any, groupKey?: string) {\n const graphicItem = Factory.createGraphicComponent(this._getLegendComponentType(), attrs);\n return super.addGraphicItem(attrs, groupKey, graphicItem);\n }\n\n protected _updateComponentEncoders() {\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n const shapeScaleGrammar = isString(this.spec.shapeScale)\n ? this.view.getScaleById(this.spec.shapeScale)\n : this.spec.shapeScale;\n const encoders = Object.assign({ update: {} }, this.spec.encode);\n const componentEncoders: StateEncodeSpec = Object.keys(encoders).reduce((res, state) => {\n const encoder = encoders[state];\n if (encoder) {\n res[state] = {\n callback: (datum: any, element: IElement, parameters: any) => {\n const theme = this.view.getCurrentTheme();\n const addition = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n const scale = scaleGrammar?.getScale?.();\n switch (this._getLegendComponentType()) {\n case LegendEnum.discreteLegend:\n return generateDiscreteLegendAttributes(scale, theme, addition, shapeScaleGrammar?.getScale?.());\n case LegendEnum.colorLegend:\n return generateColorLegendAttributes(scale, theme, addition);\n case LegendEnum.sizeLegend:\n return generateSizeLegendAttributes(scale, theme, addition);\n }\n return addition;\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n private _getLegendComponentType() {\n if (this._legendComponentType) {\n return this._legendComponentType;\n }\n\n // compute legend component type when needed\n if (!this.spec.legendType || this.spec.legendType === 'auto') {\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n const scaleType = scaleGrammar?.getScaleType?.();\n if (scaleType && isContinuous(scaleType)) {\n const range: any[] = scaleGrammar.getScale().range();\n if (parseColor(range?.[0])) {\n this._legendComponentType = LegendEnum.colorLegend;\n } else {\n this._legendComponentType = LegendEnum.sizeLegend;\n }\n } else {\n this._legendComponentType = LegendEnum.discreteLegend;\n }\n } else {\n this._legendComponentType =\n this.spec.legendType === 'color'\n ? 'colorLegend'\n : this.spec.legendType === 'size'\n ? 'sizeLegend'\n : 'discreteLegend';\n }\n return this._legendComponentType;\n }\n}\n\nexport const registerLegend = () => {\n Factory.registerGraphicComponent(\n LegendEnum.discreteLegend,\n (attrs: DiscreteLegendAttrs) => new DiscreteLegend(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n LegendEnum.colorLegend,\n (attrs: ColorLegendAttributes) => new ColorContinuousLegend(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n LegendEnum.sizeLegend,\n (attrs: SizeLegendAttributes) => new SizeContinuousLegend(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.legend, Legend);\n\n mixin(Filter, FilterMixin);\n Factory.registerInteraction(LegendFilter.type, LegendFilter);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/legend.ts"],"names":[],"mappings":"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","file":"legend.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport type { IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { DiscreteLegendAttrs, ColorLegendAttributes, SizeLegendAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DiscreteLegend, ColorContinuousLegend, SizeContinuousLegend } from '@visactor/vrender-components';\nimport { array, isString, merge, last, mixin } from '@visactor/vutils';\nimport { ComponentEnum, LegendEnum } from '../graph/enums';\nimport type {\n BaseSignleEncodeSpec,\n IElement,\n IGroupMark,\n IScale,\n ITheme,\n IView,\n Nil,\n RecursivePartial,\n StateEncodeSpec\n} from '../types';\nimport type { ILegend, LegendSpec, LegendType } from '../types/component';\nimport { parseColor } from '../parse/util';\nimport { ScaleComponent } from './scale';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { Factory } from '../core/factory';\nimport { LegendFilter } from '../interactions/legend-filter';\nimport { Filter, FilterMixin } from '../interactions/filter';\n\nexport const generateDiscreteLegendAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<DiscreteLegendAttrs>,\n shapeScale?: IBaseScale\n): DiscreteLegendAttrs => {\n const legendTheme = theme?.components?.discreteLegend;\n if (!scale) {\n return merge({}, legendTheme, addition ?? {});\n }\n // get domain items without repetitions\n const domainItems = Array.from(new Set(array(scale.domain())));\n const items = domainItems.map((item, index) => {\n const value = scale.scale(item);\n const color = parseColor(value);\n const shape = color\n ? {\n ...(theme?.components?.discreteLegend?.items?.[0]?.shape ?? {}),\n fill: color,\n stroke: color\n }\n : theme?.components?.discreteLegend?.items?.[0]?.shape ?? {};\n\n if (shapeScale) {\n Object.assign(shape, { symbolType: shapeScale.scale(item) });\n }\n\n return {\n label: item.toString(),\n id: item,\n shape,\n index\n };\n });\n return merge({}, legendTheme, { items }, addition ?? {});\n};\n\nexport const generateColorLegendAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<ColorLegendAttributes>\n): ColorLegendAttributes => {\n const legendTheme = theme?.components?.colorLegend;\n if (!scale) {\n return merge({}, legendTheme, addition ?? {});\n }\n const domain = scale.domain();\n return merge({}, legendTheme, { colors: scale.range().slice(), min: domain[0], max: last(domain) }, addition ?? {});\n};\n\nexport const generateSizeLegendAttributes = (\n scale: IBaseScale,\n theme?: ITheme,\n addition?: RecursivePartial<SizeLegendAttributes>\n): SizeLegendAttributes => {\n const legendTheme = theme?.components?.sizeLegend;\n if (!scale) {\n return merge({}, legendTheme, addition ?? {});\n }\n const domain = scale.domain();\n const attributes = {\n min: domain[0],\n max: domain[domain.length - 1],\n value: [domain[0], domain[domain.length - 1]]\n };\n return merge({}, legendTheme, attributes, addition ?? {});\n};\n\nexport class Legend extends ScaleComponent implements ILegend {\n static readonly componentType: string = ComponentEnum.legend;\n protected declare spec: LegendSpec;\n\n private _legendComponentType: keyof typeof LegendEnum;\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, ComponentEnum.legend, group);\n this.spec.componentType = ComponentEnum.legend;\n this.spec.legendType = 'auto';\n }\n\n protected parseAddition(spec: LegendSpec) {\n this.shapeScale(spec.shapeScale);\n super.parseAddition(spec);\n this.legendType(spec.legendType);\n return this;\n }\n\n scale(scale?: IScale | string | Nil) {\n super.scale(scale);\n this._legendComponentType = null;\n return this;\n }\n\n shapeScale(shapeScale: LegendSpec['shapeScale']) {\n if (this.spec.shapeScale) {\n const lastScaleGrammar = isString(this.spec.shapeScale)\n ? this.view.getScaleById(this.spec.shapeScale)\n : this.spec.shapeScale;\n this.detach(lastScaleGrammar);\n this.spec.shapeScale = undefined;\n }\n const scaleGrammar = isString(shapeScale) ? this.view.getScaleById(shapeScale) : shapeScale;\n this.spec.shapeScale = scaleGrammar;\n this.attach(scaleGrammar);\n\n this.commit();\n return this;\n }\n\n legendType(legendType: LegendType | Nil) {\n this.spec.legendType = legendType;\n // clear legend type when spec is changed\n this._legendComponentType = null;\n this._prepareRejoin();\n this.commit();\n return this;\n }\n\n isContinuousLegend() {\n return this._getLegendComponentType() !== LegendEnum.discreteLegend;\n }\n\n setSelected(selectedValues: any[]) {\n // FIXME: provide ILegend interface in vis-component\n const legend = this.elements[0]?.getGraphicItem?.() as unknown as DiscreteLegend;\n legend.setSelected(selectedValues);\n return this;\n }\n\n addGraphicItem(attrs: any, groupKey?: string) {\n const graphicItem = Factory.createGraphicComponent(this._getLegendComponentType(), attrs);\n return super.addGraphicItem(attrs, groupKey, graphicItem);\n }\n\n protected _updateComponentEncoders() {\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n const shapeScaleGrammar = isString(this.spec.shapeScale)\n ? this.view.getScaleById(this.spec.shapeScale)\n : this.spec.shapeScale;\n const encoders = Object.assign({ update: {} }, this.spec.encode);\n const componentEncoders: StateEncodeSpec = Object.keys(encoders).reduce((res, state) => {\n const encoder = encoders[state];\n if (encoder) {\n res[state] = {\n callback: (datum: any, element: IElement, parameters: any) => {\n const theme = this.spec.skipTheme ? null : this.view.getCurrentTheme();\n const addition = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n const scale = scaleGrammar?.getScale?.();\n switch (this._getLegendComponentType()) {\n case LegendEnum.discreteLegend:\n return generateDiscreteLegendAttributes(scale, theme, addition, shapeScaleGrammar?.getScale?.());\n case LegendEnum.colorLegend:\n return generateColorLegendAttributes(scale, theme, addition);\n case LegendEnum.sizeLegend:\n return generateSizeLegendAttributes(scale, theme, addition);\n }\n return addition;\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n private _getLegendComponentType() {\n if (this._legendComponentType) {\n return this._legendComponentType;\n }\n\n // compute legend component type when needed\n if (!this.spec.legendType || this.spec.legendType === 'auto') {\n const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n const scaleType = scaleGrammar?.getScaleType?.();\n if (scaleType && isContinuous(scaleType)) {\n const range: any[] = scaleGrammar.getScale().range();\n if (parseColor(range?.[0])) {\n this._legendComponentType = LegendEnum.colorLegend;\n } else {\n this._legendComponentType = LegendEnum.sizeLegend;\n }\n } else {\n this._legendComponentType = LegendEnum.discreteLegend;\n }\n } else {\n this._legendComponentType =\n this.spec.legendType === 'color'\n ? 'colorLegend'\n : this.spec.legendType === 'size'\n ? 'sizeLegend'\n : 'discreteLegend';\n }\n return this._legendComponentType;\n }\n}\n\nexport const registerLegend = () => {\n Factory.registerGraphicComponent(\n LegendEnum.discreteLegend,\n (attrs: DiscreteLegendAttrs) => new DiscreteLegend(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n LegendEnum.colorLegend,\n (attrs: ColorLegendAttributes) => new ColorContinuousLegend(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n LegendEnum.sizeLegend,\n (attrs: SizeLegendAttributes) => new SizeContinuousLegend(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.legend, Legend);\n\n mixin(Filter, FilterMixin);\n Factory.registerInteraction(LegendFilter.type, LegendFilter);\n};\n"]}
|
package/cjs/component/player.js
CHANGED
|
@@ -88,7 +88,8 @@ class Player extends component_1.Component {
|
|
|
88
88
|
return encoder && (res[state] = {
|
|
89
89
|
callback: (datum, element, parameters) => {
|
|
90
90
|
var _a;
|
|
91
|
-
const theme = this.
|
|
91
|
+
const theme = this.spec.skipTheme ? null : this.view.getCurrentTheme(), addition = (0,
|
|
92
|
+
encode_1.invokeEncoder)(encoder, datum, element, parameters), source = this.spec.source, sourceDataGrammar = (0,
|
|
92
93
|
vutils_1.isArray)(source) ? null : (0, vutils_1.isString)(source) ? this.view.getDataById(source) : source, sourceData = (0,
|
|
93
94
|
vutils_1.isArray)(source) ? source : null !== (_a = null == sourceDataGrammar ? void 0 : sourceDataGrammar.getValue()) && void 0 !== _a ? _a : [];
|
|
94
95
|
switch (this._getPlayerComponentType()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/player.ts"],"names":[],"mappings":"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","file":"player.js","sourcesContent":["import { isArray, isString, merge, mixin } from '@visactor/vutils';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type {\n ContinuousPlayerAttributes,\n DiscretePlayerAttributes,\n IDiscretePlayer\n} from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\n// eslint-disable-next-line no-duplicate-imports\nimport { ContinuousPlayer, DiscretePlayer } from '@visactor/vrender-components';\nimport type {\n BaseSignleEncodeSpec,\n IData,\n IElement,\n IGroupMark,\n ITheme,\n IView,\n Nil,\n RecursivePartial,\n StateEncodeSpec\n} from '../types';\nimport { ComponentEnum, PlayerEnum } from '../graph';\nimport type { IPlayer, PlayerFilterValue, PlayerSpec, PlayerType } from '../types/component';\nimport { Component } from '../view/component';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { Factory } from '../core/factory';\nimport { PlayerFilter } from '../interactions/player-filter';\nimport { Filter, FilterMixin } from '../interactions/filter';\n\nexport const generateContinuousPlayerAttributes = (\n data: any[],\n theme?: ITheme,\n addition?: RecursivePartial<ContinuousPlayerAttributes>\n): ContinuousPlayerAttributes => {\n const playerTheme = theme?.components?.continuousPlayer;\n return merge({}, playerTheme, { data, dataIndex: 0 }, addition ?? {});\n};\n\nexport const generateDiscretePlayerAttributes = (\n data: any[],\n theme?: ITheme,\n addition?: RecursivePartial<DiscretePlayerAttributes>\n): DiscretePlayerAttributes => {\n const playerTheme = theme?.components?.discretePlayer;\n return merge({}, playerTheme, { data, dataIndex: 0 }, addition ?? {});\n};\n\nexport class Player extends Component implements IPlayer {\n static readonly componentType: string = ComponentEnum.player;\n protected declare spec: PlayerSpec;\n protected declare _filterValue: PlayerFilterValue;\n\n private _playerComponentType: keyof typeof PlayerEnum;\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, ComponentEnum.player, group);\n this.spec.componentType = ComponentEnum.player;\n this.spec.playerType = 'auto';\n }\n\n protected parseAddition(spec: PlayerSpec) {\n super.parseAddition(spec);\n this.playerType(spec.playerType);\n this.source(spec.source);\n return this;\n }\n\n playerType(playerType: PlayerType) {\n this.spec.playerType = playerType;\n // clear legend type when spec is changed\n this._playerComponentType = null;\n this._prepareRejoin();\n this.commit();\n return this;\n }\n\n source(source: IData | string | any[] | Nil) {\n if (this.spec.source) {\n const lastSource = this.spec?.source;\n const lastSourceDataGrammar = isArray(lastSource)\n ? null\n : isString(lastSource)\n ? this.view.getDataById(lastSource)\n : lastSource;\n this.detach(lastSourceDataGrammar);\n }\n this.spec.source = source;\n const sourceDataGrammar = isArray(source) ? null : isString(source) ? this.view.getDataById(source) : source;\n this.attach(sourceDataGrammar);\n this.commit();\n return this;\n }\n\n play() {\n // FIXME: unite IDiscretePlayer and IContinuousPlayer interface in vis-component\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as IDiscretePlayer;\n datazoom.play();\n return this;\n }\n\n pause() {\n // FIXME: unite IDiscretePlayer and IContinuousPlayer interface in vis-component\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as IDiscretePlayer;\n datazoom.pause();\n return this;\n }\n\n backward() {\n // FIXME: unite IDiscretePlayer and IContinuousPlayer interface in vis-component\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as IDiscretePlayer;\n datazoom.backward();\n return this;\n }\n\n forward() {\n // FIXME: unite IDiscretePlayer and IContinuousPlayer interface in vis-component\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as IDiscretePlayer;\n datazoom.forward();\n return this;\n }\n\n addGraphicItem(attrs: any, groupKey?: string, newGraphicItem?: any) {\n // FIXME: vis-component should handle the situation when handlerStyle is not set\n const defaultAttributes = { slider: { handlerStyle: { size: 16 } } };\n const initialAttributes = merge(defaultAttributes, attrs);\n const graphicItem =\n newGraphicItem ?? Factory.createGraphicComponent(this._getPlayerComponentType(), initialAttributes);\n return super.addGraphicItem(initialAttributes, groupKey, graphicItem);\n }\n\n protected _updateComponentEncoders() {\n const encoders = Object.assign({ update: {} }, this.spec.encode);\n const componentEncoders: StateEncodeSpec = Object.keys(encoders).reduce((res, state) => {\n const encoder = encoders[state];\n if (encoder) {\n res[state] = {\n callback: (datum: any, element: IElement, parameters: any) => {\n const theme = this.view.getCurrentTheme();\n const addition = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n const source = this.spec.source;\n const sourceDataGrammar = isArray(source)\n ? null\n : isString(source)\n ? this.view.getDataById(source)\n : source;\n const sourceData = isArray(source) ? source : sourceDataGrammar?.getValue() ?? [];\n switch (this._getPlayerComponentType()) {\n case 'continuousPlayer':\n return generateContinuousPlayerAttributes(sourceData, theme, addition);\n case 'discretePlayer':\n return generateDiscretePlayerAttributes(sourceData, theme, addition);\n }\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n private _getPlayerComponentType() {\n if (this._playerComponentType) {\n return this._playerComponentType;\n }\n\n // compute legend component type when needed\n if (!this.spec.playerType || this.spec.playerType === 'auto') {\n // const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n // const scaleType = scaleGrammar?.getScaleType?.();\n // if (scaleType && isContinuous(scaleType)) {\n // const range: any[] = scaleGrammar.getScale().range();\n // if (parseColor(range?.[0])) {\n // this._legendComponentType = LegendEnum.colorLegend;\n // } else {\n // this._legendComponentType = LegendEnum.sizeLegend;\n // }\n // } else {\n // this._legendComponentType = LegendEnum.discreteLegend;\n // }\n this._playerComponentType = 'discretePlayer';\n } else {\n this._playerComponentType =\n this.spec.playerType === 'discrete'\n ? 'discretePlayer'\n : this.spec.playerType === 'continuous'\n ? 'continuousPlayer'\n : 'discretePlayer';\n }\n return this._playerComponentType;\n }\n}\n\nexport const registerPlayer = () => {\n Factory.registerGraphicComponent(\n PlayerEnum.continuousPlayer,\n (attrs: ContinuousPlayerAttributes) => new ContinuousPlayer(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n PlayerEnum.discretePlayer,\n (attrs: DiscretePlayerAttributes) => new DiscretePlayer(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.player, Player);\n\n mixin(Filter, FilterMixin);\n Factory.registerInteraction(PlayerFilter.type, PlayerFilter);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/player.ts"],"names":[],"mappings":"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","file":"player.js","sourcesContent":["import { isArray, isString, merge, mixin } from '@visactor/vutils';\nimport type { IGraphic } from '@visactor/vrender-core';\nimport type {\n ContinuousPlayerAttributes,\n DiscretePlayerAttributes,\n IDiscretePlayer\n} from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\n// eslint-disable-next-line no-duplicate-imports\nimport { ContinuousPlayer, DiscretePlayer } from '@visactor/vrender-components';\nimport type {\n BaseSignleEncodeSpec,\n IData,\n IElement,\n IGroupMark,\n ITheme,\n IView,\n Nil,\n RecursivePartial,\n StateEncodeSpec\n} from '../types';\nimport { ComponentEnum, PlayerEnum } from '../graph';\nimport type { IPlayer, PlayerFilterValue, PlayerSpec, PlayerType } from '../types/component';\nimport { Component } from '../view/component';\nimport { invokeEncoder } from '../graph/mark/encode';\nimport { Factory } from '../core/factory';\nimport { PlayerFilter } from '../interactions/player-filter';\nimport { Filter, FilterMixin } from '../interactions/filter';\n\nexport const generateContinuousPlayerAttributes = (\n data: any[],\n theme?: ITheme,\n addition?: RecursivePartial<ContinuousPlayerAttributes>\n): ContinuousPlayerAttributes => {\n const playerTheme = theme?.components?.continuousPlayer;\n return merge({}, playerTheme, { data, dataIndex: 0 }, addition ?? {});\n};\n\nexport const generateDiscretePlayerAttributes = (\n data: any[],\n theme?: ITheme,\n addition?: RecursivePartial<DiscretePlayerAttributes>\n): DiscretePlayerAttributes => {\n const playerTheme = theme?.components?.discretePlayer;\n return merge({}, playerTheme, { data, dataIndex: 0 }, addition ?? {});\n};\n\nexport class Player extends Component implements IPlayer {\n static readonly componentType: string = ComponentEnum.player;\n protected declare spec: PlayerSpec;\n protected declare _filterValue: PlayerFilterValue;\n\n private _playerComponentType: keyof typeof PlayerEnum;\n\n constructor(view: IView, group?: IGroupMark) {\n super(view, ComponentEnum.player, group);\n this.spec.componentType = ComponentEnum.player;\n this.spec.playerType = 'auto';\n }\n\n protected parseAddition(spec: PlayerSpec) {\n super.parseAddition(spec);\n this.playerType(spec.playerType);\n this.source(spec.source);\n return this;\n }\n\n playerType(playerType: PlayerType) {\n this.spec.playerType = playerType;\n // clear legend type when spec is changed\n this._playerComponentType = null;\n this._prepareRejoin();\n this.commit();\n return this;\n }\n\n source(source: IData | string | any[] | Nil) {\n if (this.spec.source) {\n const lastSource = this.spec?.source;\n const lastSourceDataGrammar = isArray(lastSource)\n ? null\n : isString(lastSource)\n ? this.view.getDataById(lastSource)\n : lastSource;\n this.detach(lastSourceDataGrammar);\n }\n this.spec.source = source;\n const sourceDataGrammar = isArray(source) ? null : isString(source) ? this.view.getDataById(source) : source;\n this.attach(sourceDataGrammar);\n this.commit();\n return this;\n }\n\n play() {\n // FIXME: unite IDiscretePlayer and IContinuousPlayer interface in vis-component\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as IDiscretePlayer;\n datazoom.play();\n return this;\n }\n\n pause() {\n // FIXME: unite IDiscretePlayer and IContinuousPlayer interface in vis-component\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as IDiscretePlayer;\n datazoom.pause();\n return this;\n }\n\n backward() {\n // FIXME: unite IDiscretePlayer and IContinuousPlayer interface in vis-component\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as IDiscretePlayer;\n datazoom.backward();\n return this;\n }\n\n forward() {\n // FIXME: unite IDiscretePlayer and IContinuousPlayer interface in vis-component\n const datazoom = this.elements[0]?.getGraphicItem?.() as unknown as IDiscretePlayer;\n datazoom.forward();\n return this;\n }\n\n addGraphicItem(attrs: any, groupKey?: string, newGraphicItem?: any) {\n // FIXME: vis-component should handle the situation when handlerStyle is not set\n const defaultAttributes = { slider: { handlerStyle: { size: 16 } } };\n const initialAttributes = merge(defaultAttributes, attrs);\n const graphicItem =\n newGraphicItem ?? Factory.createGraphicComponent(this._getPlayerComponentType(), initialAttributes);\n return super.addGraphicItem(initialAttributes, groupKey, graphicItem);\n }\n\n protected _updateComponentEncoders() {\n const encoders = Object.assign({ update: {} }, this.spec.encode);\n const componentEncoders: StateEncodeSpec = Object.keys(encoders).reduce((res, state) => {\n const encoder = encoders[state];\n if (encoder) {\n res[state] = {\n callback: (datum: any, element: IElement, parameters: any) => {\n const theme = this.spec.skipTheme ? null : this.view.getCurrentTheme();\n const addition = invokeEncoder(encoder as BaseSignleEncodeSpec, datum, element, parameters);\n const source = this.spec.source;\n const sourceDataGrammar = isArray(source)\n ? null\n : isString(source)\n ? this.view.getDataById(source)\n : source;\n const sourceData = isArray(source) ? source : sourceDataGrammar?.getValue() ?? [];\n switch (this._getPlayerComponentType()) {\n case 'continuousPlayer':\n return generateContinuousPlayerAttributes(sourceData, theme, addition);\n case 'discretePlayer':\n return generateDiscretePlayerAttributes(sourceData, theme, addition);\n }\n }\n };\n }\n return res;\n }, {});\n this._encoders = componentEncoders;\n }\n\n private _getPlayerComponentType() {\n if (this._playerComponentType) {\n return this._playerComponentType;\n }\n\n // compute legend component type when needed\n if (!this.spec.playerType || this.spec.playerType === 'auto') {\n // const scaleGrammar = isString(this.spec.scale) ? this.view.getScaleById(this.spec.scale) : this.spec.scale;\n // const scaleType = scaleGrammar?.getScaleType?.();\n // if (scaleType && isContinuous(scaleType)) {\n // const range: any[] = scaleGrammar.getScale().range();\n // if (parseColor(range?.[0])) {\n // this._legendComponentType = LegendEnum.colorLegend;\n // } else {\n // this._legendComponentType = LegendEnum.sizeLegend;\n // }\n // } else {\n // this._legendComponentType = LegendEnum.discreteLegend;\n // }\n this._playerComponentType = 'discretePlayer';\n } else {\n this._playerComponentType =\n this.spec.playerType === 'discrete'\n ? 'discretePlayer'\n : this.spec.playerType === 'continuous'\n ? 'continuousPlayer'\n : 'discretePlayer';\n }\n return this._playerComponentType;\n }\n}\n\nexport const registerPlayer = () => {\n Factory.registerGraphicComponent(\n PlayerEnum.continuousPlayer,\n (attrs: ContinuousPlayerAttributes) => new ContinuousPlayer(attrs) as unknown as IGraphic\n );\n Factory.registerGraphicComponent(\n PlayerEnum.discretePlayer,\n (attrs: DiscretePlayerAttributes) => new DiscretePlayer(attrs) as unknown as IGraphic\n );\n\n Factory.registerComponent(ComponentEnum.player, Player);\n\n mixin(Filter, FilterMixin);\n Factory.registerInteraction(PlayerFilter.type, PlayerFilter);\n};\n"]}
|
|
@@ -115,7 +115,8 @@ class Scrollbar extends scale_1.ScaleComponent {
|
|
|
115
115
|
return encoder && (res[state] = {
|
|
116
116
|
callback: (datum, element, parameters) => {
|
|
117
117
|
var _a, _b;
|
|
118
|
-
const theme = this.
|
|
118
|
+
const theme = this.spec.skipTheme ? null : this.view.getCurrentTheme(), direction = (0,
|
|
119
|
+
util_1.invokeFunctionType)(this.spec.direction, parameters, datum, element), position = (0,
|
|
119
120
|
util_1.invokeFunctionType)(this.spec.position, parameters, datum, element), addition = (0,
|
|
120
121
|
encode_1.invokeEncoder)(encoder, datum, element, parameters), targetMark = this.spec.container ? (0,
|
|
121
122
|
vutils_1.isString)(this.spec.container) ? this.view.getMarkById(this.spec.container) : this.spec.container : null, groupGraphicItem = (targetMark && targetMark.markType === enums_1.GrammarMarkType.group ? targetMark : this.group).getGroupGraphicItem(), size = groupGraphicItem ? {
|