@visactor/vgrammar-plot 0.10.0-alpha.2 → 0.10.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/area.js +2 -1
- package/cjs/area.js.map +1 -1
- package/cjs/circle-packing.d.ts +1 -1
- package/cjs/circle-packing.js.map +1 -1
- package/cjs/interval.js +2 -1
- package/cjs/interval.js.map +1 -1
- package/cjs/rect-x.js +4 -3
- package/cjs/rect-x.js.map +1 -1
- package/cjs/rect-y.js +2 -1
- package/cjs/rect-y.js.map +1 -1
- package/cjs/rect.js +6 -4
- package/cjs/rect.js.map +1 -1
- package/cjs/sankey.d.ts +1 -1
- package/cjs/sankey.js.map +1 -1
- package/cjs/semantic-mark.d.ts +2 -2
- package/cjs/semantic-mark.js +2 -2
- package/cjs/semantic-mark.js.map +1 -1
- package/cjs/sunburst.d.ts +1 -1
- package/cjs/tree.d.ts +1 -1
- package/cjs/tree.js.map +1 -1
- package/cjs/treemap.d.ts +1 -1
- package/es/area.js +2 -2
- package/es/area.js.map +1 -1
- package/es/circle-packing.d.ts +1 -1
- package/es/circle-packing.js.map +1 -1
- package/es/interval.js +2 -2
- package/es/interval.js.map +1 -1
- package/es/rect-x.js +4 -4
- package/es/rect-x.js.map +1 -1
- package/es/rect-y.js +2 -2
- package/es/rect-y.js.map +1 -1
- package/es/rect.js +5 -5
- package/es/rect.js.map +1 -1
- package/es/sankey.d.ts +1 -1
- package/es/sankey.js.map +1 -1
- package/es/semantic-mark.d.ts +2 -2
- package/es/semantic-mark.js +3 -3
- package/es/semantic-mark.js.map +1 -1
- package/es/sunburst.d.ts +1 -1
- package/es/tree.d.ts +1 -1
- package/es/tree.js.map +1 -1
- package/es/treemap.d.ts +1 -1
- package/package.json +9 -10
package/es/area.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/area.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type {\n AreaEncodeChannels,\n SemanticTooltipOption,\n WithDefaultEncode,\n PlotAreaEncoderSpec,\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n IElement,\n CrosshairSpec\n} from '@visactor/vgrammar-core';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar-core';\nimport { isArray, maxInArray, minInArray } from '@visactor/vutils';\nimport { PlotMakType } from './enums';\n\nexport class Area extends SemanticMark<PlotAreaEncoderSpec, AreaEncodeChannels> {\n static readonly type = PlotMakType.area;\n constructor(id?: string | number) {\n super(PlotMakType.area, id);\n }\n\n setMarkType() {\n return GrammarMarkType.area;\n }\n\n protected parseScaleOfEncodeX(\n option: ValueOf<WithDefaultEncode<PlotAreaEncoderSpec, AreaEncodeChannels>, AreaEncodeChannels>\n ): ScaleSpec | Nil {\n const res = super.parseScaleOfEncodeX(option);\n\n res.type = 'point';\n return res;\n }\n\n parseScaleByEncode(\n channel: AreaEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotAreaEncoderSpec, AreaEncodeChannels>, AreaEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'line' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n const encodeX = this.spec.encode?.x;\n const encodeY = this.spec.encode?.y;\n return {\n disableGraphicTooltip: true,\n title: isArray(encodeX) ? encodeX[0] : encodeX,\n content: isArray(encodeY)\n ? encodeY.map(entry => {\n return {\n value: entry\n };\n })\n : [\n {\n value: encodeY\n }\n ]\n };\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotAreaEncoderSpec, AreaEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotAreaEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n let res: GenerateEncoderSpec<PlotAreaEncoderSpec>;\n\n if (isArray(markEncoder.x?.field)) {\n res = {\n y: markEncoder.y,\n x: { field: markEncoder.x.field[0], scale: markEncoder.x.scale },\n x1: { field: markEncoder.x.field[1], scale: markEncoder.x.scale }\n } as GenerateEncoderSpec<PlotAreaEncoderSpec>;\n } else if (isArray(markEncoder.y?.field)) {\n res = {\n y: { field: markEncoder.y.field[0], scale: markEncoder.y.scale },\n y1: { field: markEncoder.y.field[1], scale: markEncoder.y.scale },\n x: markEncoder.x\n } as GenerateEncoderSpec<PlotAreaEncoderSpec>;\n } else {\n const scaleYId = this.getScaleId('y');\n res = {\n x: markEncoder.x,\n y: markEncoder.y,\n y1: (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n const domain = scale.domain();\n const min = minInArray<number>(domain);\n const max = maxInArray<number>(domain);\n const baseValue = min > 0 ? min : max < 0 ? max : 0;\n\n return scale.scale(baseValue);\n }\n } as GenerateEncoderSpec<PlotAreaEncoderSpec>;\n }\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n}\n"]}
|
package/es/circle-packing.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf, TransformSpec, Ch
|
|
|
2
2
|
import { SemanticMark } from './semantic-mark';
|
|
3
3
|
import { GrammarMarkType } from '@visactor/vgrammar-core';
|
|
4
4
|
import { PlotMakType } from './enums';
|
|
5
|
-
import type { ITextAttribute } from '@visactor/vrender
|
|
5
|
+
import type { ITextAttribute } from '@visactor/vrender/es/core';
|
|
6
6
|
export declare class CirclePackingSemanticMark extends SemanticMark<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels> {
|
|
7
7
|
static readonly type = PlotMakType.circlePacking;
|
|
8
8
|
constructor(id?: string | number);
|
package/es/circle-packing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/circle-packing.ts"],"names":[],"mappings":"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","file":"circle-packing.js","sourcesContent":["import type {\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n TransformSpec,\n IElement,\n ChannelEncodeType,\n CirclepackingEncodeChannels,\n WithDefaultEncode,\n PlotCirclePackingEncodeSpec,\n SemanticLabelOption\n} from '@visactor/vgrammar-core';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType, Factory } from '@visactor/vgrammar-core';\nimport { PlotMakType } from './enums';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport type { ITextAttribute } from '@visactor/vrender
|
|
1
|
+
{"version":3,"sources":["../src/circle-packing.ts"],"names":[],"mappings":"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","file":"circle-packing.js","sourcesContent":["import type {\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n TransformSpec,\n IElement,\n ChannelEncodeType,\n CirclepackingEncodeChannels,\n WithDefaultEncode,\n PlotCirclePackingEncodeSpec,\n SemanticLabelOption\n} from '@visactor/vgrammar-core';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType, Factory } from '@visactor/vgrammar-core';\nimport { PlotMakType } from './enums';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport type { ITextAttribute } from '@visactor/vrender/es/core';\n\nexport class CirclePackingSemanticMark extends SemanticMark<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels> {\n static readonly type = PlotMakType.circlePacking;\n constructor(id?: string | number) {\n super(PlotMakType.circlePacking, id);\n\n if (!Factory.getTransform(PlotMakType.circlePacking)) {\n this._logger.error(\n `Please add this line of code: import { registerCirclePackingTransforms } from '@visactor/vgrammar-hierarchy'; \n and run registerCirclePackingTransforms() before use treemap chart`\n );\n }\n }\n\n setMarkType() {\n return GrammarMarkType.circle;\n }\n\n setDefaultDataTransform(): TransformSpec[] {\n return [\n {\n type: PlotMakType.circlePacking,\n width: { signal: 'viewWidth' },\n height: { signal: 'viewHeight' },\n nodeKey: this.spec.encode?.node,\n flatten: true\n }\n ];\n }\n parseScaleByEncode(\n channel: CirclepackingEncodeChannels,\n option: ValueOf<\n WithDefaultEncode<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels>,\n CirclepackingEncodeChannels\n >\n ): ScaleSpec | Nil {\n if (channel === 'color') {\n return {\n type: 'ordinal',\n id: this.getScaleId('color'),\n domain: {\n data: this.getDataIdOfFiltered(),\n field: option as string\n },\n range: this.getPalette()\n };\n }\n\n return null;\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotCirclePackingEncodeSpec, CirclepackingEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotCirclePackingEncodeSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n const res: GenerateEncoderSpec<PlotCirclePackingEncodeSpec> = {\n x: { field: 'x' },\n y: { field: 'y' },\n radius: { field: 'radius' }\n };\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color) {\n const scaleColorId = this.getScaleId('color');\n const colorAccessor = getFieldAccessor(markEncoder.color.field);\n\n res.fill = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleColorId];\n return datum?.datum ? scale.scale(colorAccessor(datum.datum[datum.datum.length - 1])) : undefined;\n };\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n\n setMainMarkSpec() {\n return { key: 'key' };\n }\n\n protected setLabelTextGetter(\n channel: string,\n option: SemanticLabelOption | boolean\n ): ChannelEncodeType<ITextAttribute['text']> {\n const textGetter = getFieldAccessor(channel);\n return (datum: any, el: IElement, params: any) => {\n return textGetter(datum.datum[datum.datum.length - 1]);\n };\n }\n}\n"]}
|
package/es/interval.js
CHANGED
|
@@ -4,7 +4,7 @@ import { SemanticMark } from "./semantic-mark";
|
|
|
4
4
|
|
|
5
5
|
import { GrammarMarkType } from "@visactor/vgrammar-core";
|
|
6
6
|
|
|
7
|
-
import { isArray } from "@visactor/vutils";
|
|
7
|
+
import { isArray, maxInArray, minInArray } from "@visactor/vutils";
|
|
8
8
|
|
|
9
9
|
import { PlotMakType } from "./enums";
|
|
10
10
|
|
|
@@ -89,7 +89,7 @@ export class Interval extends SemanticMark {
|
|
|
89
89
|
}, res.y1 = (datum, el, params) => {
|
|
90
90
|
const scale = params[scaleYId], yVals = yAccessor(datum);
|
|
91
91
|
if (isArray(yVals) && yVals.length > 1) return scale.scale(yVals[1]);
|
|
92
|
-
const domain = scale.domain(), min =
|
|
92
|
+
const domain = scale.domain(), min = minInArray(domain), max = maxInArray(domain), baseValue = min > 0 ? min : max < 0 ? max : 0;
|
|
93
93
|
return scale.scale(baseValue);
|
|
94
94
|
};
|
|
95
95
|
}
|
package/es/interval.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interval.ts"],"names":[],"mappings":"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","file":"interval.js","sourcesContent":["import type { IBandLikeScale } from '@visactor/vscale';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport type {\n IntervalEncodeChannels,\n PlotIntervalEncoderSpec,\n SemanticTooltipOption,\n WithDefaultEncode,\n GenerateBaseEncodeSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n CrosshairSpec,\n GenerateEncoderSpec,\n AttributeTransform,\n IElement,\n TransformSpec\n} from '@visactor/vgrammar-core';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar-core';\nimport type { IPolarCoordinate } from '@visactor/vgrammar-coordinate';\nimport { isArray } from '@visactor/vutils';\nimport { PlotMakType } from './enums';\n\nexport class Interval extends SemanticMark<PlotIntervalEncoderSpec, IntervalEncodeChannels> {\n static readonly type = PlotMakType.interval;\n constructor(id?: string | number) {\n super(PlotMakType.interval, id);\n }\n\n setMarkType() {\n return this._coordinate?.type === 'polar' ? GrammarMarkType.arc : GrammarMarkType.rect;\n }\n\n parseScaleByEncode(\n channel: IntervalEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotIntervalEncoderSpec, IntervalEncodeChannels>, IntervalEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultMarkTransform(): TransformSpec[] {\n return [\n {\n type: 'dodge',\n minWidth: this.spec.style?.minWidth,\n maxWidth: this.spec.style?.maxWidth,\n innerGap: this.spec.style?.innerGap,\n categoryGap: this.spec.style?.categoryGap\n }\n ];\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'rect' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n const encodeY = this.spec.encode?.y;\n return {\n content: isArray(encodeY)\n ? encodeY.map(entry => {\n return {\n value: entry\n };\n })\n : [\n {\n value: encodeY\n }\n ]\n };\n }\n\n setMainMarkSpec() {\n return this._coordinate?.type === 'polar'\n ? {\n attributeTransforms: [\n {\n channels: ['x', 'y', 'x1', 'y1', 'cx', 'cy'],\n transform: (graphicAttributes: any, nextAttrs: any, storedAttrs: any) => {\n graphicAttributes.x = storedAttrs.cx;\n graphicAttributes.y = storedAttrs.cy;\n if (this._coordinate.transpose) {\n graphicAttributes.startAngle = storedAttrs.y;\n graphicAttributes.endAngle = storedAttrs.y1;\n graphicAttributes.innerRadius = storedAttrs.x;\n graphicAttributes.outerRadius = storedAttrs.x1;\n } else {\n //\n graphicAttributes.startAngle = storedAttrs.x;\n graphicAttributes.endAngle = storedAttrs.x1;\n graphicAttributes.innerRadius = storedAttrs.y;\n graphicAttributes.outerRadius = storedAttrs.y1;\n }\n },\n storedAttrs: 'sizeAttrs'\n }\n ] as AttributeTransform[]\n }\n : {};\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotIntervalEncoderSpec, IntervalEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotIntervalEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n const scaleXId = this.getScaleId('x');\n const scaleYId = this.getScaleId('y');\n const xAccessor = getFieldAccessor(markEncoder.x.field);\n const res: GenerateEncoderSpec<PlotIntervalEncoderSpec> = {\n x: (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n const bandWidth = (scale as IBandLikeScale).bandwidth();\n\n return scale.scale(xAccessor(datum)) + bandWidth / 4;\n },\n x1: (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n const bandWidth = (scale as IBandLikeScale).bandwidth();\n\n return scale.scale(xAccessor(datum)) + (3 * bandWidth) / 4;\n }\n };\n\n if (isArray(markEncoder.y?.field)) {\n res.y = { field: markEncoder.y.field[0], scale: markEncoder.y.scale };\n res.y1 = { field: markEncoder.y.field[1], scale: markEncoder.y.scale };\n } else {\n const yAccessor = getFieldAccessor(markEncoder.y.field);\n res.y = (datum: any, el: IElement, params: any) => {\n const yVals = yAccessor(datum);\n const scale = params[scaleYId];\n\n return isArray(yVals) ? scale.scale(yVals[0]) : scale.scale(yVals);\n };\n res.y1 = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n const yVals = yAccessor(datum);\n\n if (isArray(yVals) && yVals.length > 1) {\n return scale.scale(yVals[1]);\n }\n const domain = scale.domain();\n const min = Math.min.apply(null, domain);\n const max = Math.max.apply(null, domain);\n const baseValue = min > 0 ? min : max < 0 ? max : 0;\n\n return scale.scale(baseValue);\n };\n }\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n if (this._coordinate?.type === 'polar') {\n (res as any).cx = (datum: any, el: IElement, params: any) => {\n const coord = params[this._coordinate.id];\n const origin = (coord as IPolarCoordinate).origin();\n\n return origin.x;\n };\n (res as any).cy = (datum: any, el: IElement, params: any) => {\n const coord = params[this._coordinate.id];\n const origin = (coord as IPolarCoordinate).origin();\n\n return origin.y;\n };\n }\n\n return res;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interval.ts"],"names":[],"mappings":"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","file":"interval.js","sourcesContent":["import type { IBandLikeScale } from '@visactor/vscale';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport type {\n IntervalEncodeChannels,\n PlotIntervalEncoderSpec,\n SemanticTooltipOption,\n WithDefaultEncode,\n GenerateBaseEncodeSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n CrosshairSpec,\n GenerateEncoderSpec,\n AttributeTransform,\n IElement,\n TransformSpec\n} from '@visactor/vgrammar-core';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar-core';\nimport type { IPolarCoordinate } from '@visactor/vgrammar-coordinate';\nimport { isArray, maxInArray, minInArray } from '@visactor/vutils';\nimport { PlotMakType } from './enums';\n\nexport class Interval extends SemanticMark<PlotIntervalEncoderSpec, IntervalEncodeChannels> {\n static readonly type = PlotMakType.interval;\n constructor(id?: string | number) {\n super(PlotMakType.interval, id);\n }\n\n setMarkType() {\n return this._coordinate?.type === 'polar' ? GrammarMarkType.arc : GrammarMarkType.rect;\n }\n\n parseScaleByEncode(\n channel: IntervalEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotIntervalEncoderSpec, IntervalEncodeChannels>, IntervalEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultMarkTransform(): TransformSpec[] {\n return [\n {\n type: 'dodge',\n minWidth: this.spec.style?.minWidth,\n maxWidth: this.spec.style?.maxWidth,\n innerGap: this.spec.style?.innerGap,\n categoryGap: this.spec.style?.categoryGap\n }\n ];\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'rect' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n const encodeY = this.spec.encode?.y;\n return {\n content: isArray(encodeY)\n ? encodeY.map(entry => {\n return {\n value: entry\n };\n })\n : [\n {\n value: encodeY\n }\n ]\n };\n }\n\n setMainMarkSpec() {\n return this._coordinate?.type === 'polar'\n ? {\n attributeTransforms: [\n {\n channels: ['x', 'y', 'x1', 'y1', 'cx', 'cy'],\n transform: (graphicAttributes: any, nextAttrs: any, storedAttrs: any) => {\n graphicAttributes.x = storedAttrs.cx;\n graphicAttributes.y = storedAttrs.cy;\n if (this._coordinate.transpose) {\n graphicAttributes.startAngle = storedAttrs.y;\n graphicAttributes.endAngle = storedAttrs.y1;\n graphicAttributes.innerRadius = storedAttrs.x;\n graphicAttributes.outerRadius = storedAttrs.x1;\n } else {\n //\n graphicAttributes.startAngle = storedAttrs.x;\n graphicAttributes.endAngle = storedAttrs.x1;\n graphicAttributes.innerRadius = storedAttrs.y;\n graphicAttributes.outerRadius = storedAttrs.y1;\n }\n },\n storedAttrs: 'sizeAttrs'\n }\n ] as AttributeTransform[]\n }\n : {};\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotIntervalEncoderSpec, IntervalEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotIntervalEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n const scaleXId = this.getScaleId('x');\n const scaleYId = this.getScaleId('y');\n const xAccessor = getFieldAccessor(markEncoder.x.field);\n const res: GenerateEncoderSpec<PlotIntervalEncoderSpec> = {\n x: (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n const bandWidth = (scale as IBandLikeScale).bandwidth();\n\n return scale.scale(xAccessor(datum)) + bandWidth / 4;\n },\n x1: (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n const bandWidth = (scale as IBandLikeScale).bandwidth();\n\n return scale.scale(xAccessor(datum)) + (3 * bandWidth) / 4;\n }\n };\n\n if (isArray(markEncoder.y?.field)) {\n res.y = { field: markEncoder.y.field[0], scale: markEncoder.y.scale };\n res.y1 = { field: markEncoder.y.field[1], scale: markEncoder.y.scale };\n } else {\n const yAccessor = getFieldAccessor(markEncoder.y.field);\n res.y = (datum: any, el: IElement, params: any) => {\n const yVals = yAccessor(datum);\n const scale = params[scaleYId];\n\n return isArray(yVals) ? scale.scale(yVals[0]) : scale.scale(yVals);\n };\n res.y1 = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n const yVals = yAccessor(datum);\n\n if (isArray(yVals) && yVals.length > 1) {\n return scale.scale(yVals[1]);\n }\n const domain = scale.domain();\n const min = minInArray<number>(domain);\n const max = maxInArray<number>(domain);\n const baseValue = min > 0 ? min : max < 0 ? max : 0;\n\n return scale.scale(baseValue);\n };\n }\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n if (this._coordinate?.type === 'polar') {\n (res as any).cx = (datum: any, el: IElement, params: any) => {\n const coord = params[this._coordinate.id];\n const origin = (coord as IPolarCoordinate).origin();\n\n return origin.x;\n };\n (res as any).cy = (datum: any, el: IElement, params: any) => {\n const coord = params[this._coordinate.id];\n const origin = (coord as IPolarCoordinate).origin();\n\n return origin.y;\n };\n }\n\n return res;\n }\n}\n"]}
|
package/es/rect-x.js
CHANGED
|
@@ -2,7 +2,7 @@ import { field as getFieldAccessor } from "@visactor/vgrammar-util";
|
|
|
2
2
|
|
|
3
3
|
import { SemanticMark } from "./semantic-mark";
|
|
4
4
|
|
|
5
|
-
import { isArray } from "@visactor/vutils";
|
|
5
|
+
import { isArray, maxInArray, minInArray } from "@visactor/vutils";
|
|
6
6
|
|
|
7
7
|
import { PlotMakType } from "./enums";
|
|
8
8
|
|
|
@@ -56,14 +56,14 @@ export class RectXSemanticMark extends SemanticMark {
|
|
|
56
56
|
const xVals = xAccessor(datum), scale = params[scaleXId];
|
|
57
57
|
return isArray(xVals) ? scale.scale(xVals[0]) : scale.scale(xVals);
|
|
58
58
|
}, res.x1 = (datum, el, params) => {
|
|
59
|
-
var _a, _b, _c, _d;
|
|
59
|
+
var _a, _b, _c, _d, _e;
|
|
60
60
|
const scale = params[scaleXId], xVals = xAccessor(datum);
|
|
61
61
|
if (isArray(xVals) && xVals.length > 1) return scale.scale(xVals[1]);
|
|
62
62
|
if (isContinuous(scale.type)) {
|
|
63
|
-
const domain = scale.domain(), min =
|
|
63
|
+
const domain = null !== (_a = scale.domain()) && void 0 !== _a ? _a : [], min = minInArray(domain), max = maxInArray(domain), baseValue = min > 0 ? min : max < 0 ? max : 0;
|
|
64
64
|
return scale.scale(baseValue);
|
|
65
65
|
}
|
|
66
|
-
return scale.scale(xVals) + (null !== (
|
|
66
|
+
return scale.scale(xVals) + (null !== (_e = null !== (_c = null === (_b = scale.bandwidth) || void 0 === _b ? void 0 : _b.call(scale)) && void 0 !== _c ? _c : null === (_d = scale.step) || void 0 === _d ? void 0 : _d.call(scale)) && void 0 !== _e ? _e : 0);
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
69
|
return markEncoder.stroke && (res.stroke = markEncoder.stroke), markEncoder.color || markEncoder.group ? res.fill = null !== (_b = markEncoder.color) && void 0 !== _b ? _b : markEncoder.group : res.fill = null !== (_d = null === (_c = this.spec.style) || void 0 === _c ? void 0 : _c.fill) && void 0 !== _d ? _d : null === (_e = this.getPalette()) || void 0 === _e ? void 0 : _e[0],
|
package/es/rect-x.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/rect-x.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAapE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/rect-x.ts"],"names":[],"mappings":"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","file":"rect-x.js","sourcesContent":["import { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport type {\n RectXEncodeChannels,\n PlotRectXEncoderSpec,\n SemanticTooltipOption,\n WithDefaultEncode,\n GenerateBaseEncodeSpec,\n CrosshairSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n IElement\n} from '@visactor/vgrammar-core';\nimport { SemanticMark } from './semantic-mark';\nimport { isArray, maxInArray, minInArray } from '@visactor/vutils';\nimport { PlotMakType } from './enums';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar-core';\nimport { isContinuous } from '@visactor/vscale';\n\nexport class RectXSemanticMark extends SemanticMark<PlotRectXEncoderSpec, RectXEncodeChannels> {\n static readonly type = PlotMakType.rectX;\n constructor(id?: string | number) {\n super(PlotMakType.rectX, id);\n }\n\n setMarkType() {\n return GrammarMarkType.rect;\n }\n\n parseScaleByEncode(\n channel: RectXEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotRectXEncoderSpec, RectXEncodeChannels>, RectXEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'rect' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n const encodeX = this.spec.encode?.x;\n return {\n content: isArray(encodeX)\n ? encodeX.map(entry => {\n return {\n value: entry\n };\n })\n : [\n {\n value: encodeX\n }\n ]\n };\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotRectXEncoderSpec, RectXEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotRectXEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n const scaleXId = this.getScaleId('x');\n const res: GenerateBaseEncodeSpec<PlotRectXEncoderSpec> = {\n y: (datum: any, el: IElement, params: any) => {\n return 0;\n },\n y1: (datum: any, el: IElement, params: any) => {\n return params.viewBox.height();\n }\n };\n\n if (isArray(markEncoder.x?.field)) {\n res.x = { field: markEncoder.x.field[0], scale: markEncoder.x.scale };\n res.x1 = { field: markEncoder.x.field[1], scale: markEncoder.x.scale };\n } else {\n const xAccessor = getFieldAccessor(markEncoder.x.field);\n res.x = (datum: any, el: IElement, params: any) => {\n const xVals = xAccessor(datum);\n const scale = params[scaleXId];\n\n return isArray(xVals) ? scale.scale(xVals[0]) : scale.scale(xVals);\n };\n res.x1 = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n const xVals = xAccessor(datum);\n\n if (isArray(xVals) && xVals.length > 1) {\n return scale.scale(xVals[1]);\n }\n\n if (isContinuous(scale.type)) {\n const domain = scale.domain() ?? [];\n const min = minInArray<number>(domain);\n const max = maxInArray<number>(domain);\n const baseValue = min > 0 ? min : max < 0 ? max : 0;\n\n return scale.scale(baseValue);\n }\n return scale.scale(xVals) + (scale.bandwidth?.() ?? scale.step?.() ?? 0);\n };\n }\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n}\n"]}
|
package/es/rect-y.js
CHANGED
|
@@ -2,7 +2,7 @@ import { field as getFieldAccessor } from "@visactor/vgrammar-util";
|
|
|
2
2
|
|
|
3
3
|
import { SemanticMark } from "./semantic-mark";
|
|
4
4
|
|
|
5
|
-
import { isArray } from "@visactor/vutils";
|
|
5
|
+
import { isArray, maxInArray, minInArray } from "@visactor/vutils";
|
|
6
6
|
|
|
7
7
|
import { GrammarMarkType } from "@visactor/vgrammar-core";
|
|
8
8
|
|
|
@@ -60,7 +60,7 @@ export class RectYSemanticMark extends SemanticMark {
|
|
|
60
60
|
const scale = params[scaleYId], yVals = yAccessor(datum);
|
|
61
61
|
if (isArray(yVals) && yVals.length > 1) return scale.scale(yVals[1]);
|
|
62
62
|
if (isContinuous(scale.type)) {
|
|
63
|
-
const domain = scale.domain(), min =
|
|
63
|
+
const domain = scale.domain(), min = minInArray(domain), max = maxInArray(domain), baseValue = min > 0 ? min : max < 0 ? max : 0;
|
|
64
64
|
return scale.scale(baseValue);
|
|
65
65
|
}
|
|
66
66
|
return scale.scale(yVals) + (null !== (_d = null !== (_b = null === (_a = scale.bandwidth) || void 0 === _a ? void 0 : _a.call(scale)) && void 0 !== _b ? _b : null === (_c = scale.step) || void 0 === _c ? void 0 : _c.call(scale)) && void 0 !== _d ? _d : 0);
|
package/es/rect-y.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/rect-y.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAapE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/rect-y.ts"],"names":[],"mappings":"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","file":"rect-y.js","sourcesContent":["import { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport type {\n RectYEncodeChannels,\n PlotRectYEncoderSpec,\n SemanticTooltipOption,\n WithDefaultEncode,\n GenerateBaseEncodeSpec,\n CrosshairSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n IElement\n} from '@visactor/vgrammar-core';\nimport { SemanticMark } from './semantic-mark';\nimport { isArray, maxInArray, minInArray } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar-core';\nimport { PlotMakType } from './enums';\nimport { isContinuous } from '@visactor/vscale';\n\nexport class RectYSemanticMark extends SemanticMark<PlotRectYEncoderSpec, RectYEncodeChannels> {\n static readonly type = PlotMakType.rectY;\n constructor(id?: string | number) {\n super(PlotMakType.rectY, id);\n }\n\n setMarkType() {\n return GrammarMarkType.rect;\n }\n\n parseScaleByEncode(\n channel: RectYEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotRectYEncoderSpec, RectYEncodeChannels>, RectYEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'rect' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n const encodeY = this.spec.encode?.y;\n return {\n content: isArray(encodeY)\n ? encodeY.map(entry => {\n return {\n value: entry\n };\n })\n : [\n {\n value: encodeY\n }\n ]\n };\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotRectYEncoderSpec, RectYEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotRectYEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n const scaleYId = this.getScaleId('y');\n const res: GenerateBaseEncodeSpec<PlotRectYEncoderSpec> = {\n x: (datum: any, el: IElement, params: any) => {\n return 0;\n },\n x1: (datum: any, el: IElement, params: any) => {\n return params.viewBox.width();\n }\n };\n\n if (isArray(markEncoder.y?.field)) {\n res.y = { field: markEncoder.y.field[0], scale: markEncoder.y.scale };\n res.y1 = { field: markEncoder.y.field[1], scale: markEncoder.y.scale };\n } else {\n const yAccessor = getFieldAccessor(markEncoder.y.field);\n res.y = (datum: any, el: IElement, params: any) => {\n const yVals = yAccessor(datum);\n const scale = params[scaleYId];\n\n return isArray(yVals) ? scale.scale(yVals[0]) : scale.scale(yVals);\n };\n res.y1 = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n const yVals = yAccessor(datum);\n\n if (isArray(yVals) && yVals.length > 1) {\n return scale.scale(yVals[1]);\n }\n if (isContinuous(scale.type)) {\n const domain = scale.domain();\n const min = minInArray<number>(domain);\n const max = maxInArray<number>(domain);\n const baseValue = min > 0 ? min : max < 0 ? max : 0;\n\n return scale.scale(baseValue);\n }\n return scale.scale(yVals) + (scale.bandwidth?.() ?? scale.step?.() ?? 0);\n };\n }\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n}\n"]}
|
package/es/rect.js
CHANGED
|
@@ -4,7 +4,7 @@ import { SemanticMark } from "./semantic-mark";
|
|
|
4
4
|
|
|
5
5
|
import { GrammarMarkType } from "@visactor/vgrammar-core";
|
|
6
6
|
|
|
7
|
-
import { isArray } from "@visactor/vutils";
|
|
7
|
+
import { isArray, maxInArray, minInArray } from "@visactor/vutils";
|
|
8
8
|
|
|
9
9
|
import { PlotMakType } from "./enums";
|
|
10
10
|
|
|
@@ -53,14 +53,14 @@ export class RectSemanticMark extends SemanticMark {
|
|
|
53
53
|
const xVals = xAccessor(datum), scale = params[scaleXId];
|
|
54
54
|
return isArray(xVals) ? scale.scale(xVals[0]) : scale.scale(xVals);
|
|
55
55
|
}, res.x1 = (datum, el, params) => {
|
|
56
|
-
var _a, _b, _c, _d;
|
|
56
|
+
var _a, _b, _c, _d, _e;
|
|
57
57
|
const scale = params[scaleXId], xVals = xAccessor(datum);
|
|
58
58
|
if (isArray(xVals) && xVals.length > 1) return scale.scale(xVals[1]);
|
|
59
59
|
if (isContinuous(scale.type)) {
|
|
60
|
-
const domain = scale.domain(), min =
|
|
60
|
+
const domain = null !== (_a = scale.domain()) && void 0 !== _a ? _a : [], min = minInArray(domain), max = maxInArray(domain), baseValue = min > 0 ? min : max < 0 ? max : 0;
|
|
61
61
|
return scale.scale(baseValue);
|
|
62
62
|
}
|
|
63
|
-
return scale.scale(xVals) + (null !== (
|
|
63
|
+
return scale.scale(xVals) + (null !== (_e = null !== (_c = null === (_b = scale.bandwidth) || void 0 === _b ? void 0 : _b.call(scale)) && void 0 !== _c ? _c : null === (_d = scale.step) || void 0 === _d ? void 0 : _d.call(scale)) && void 0 !== _e ? _e : 0);
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
66
|
if (isArray(null === (_b = markEncoder.y) || void 0 === _b ? void 0 : _b.field)) res.y = {
|
|
@@ -79,7 +79,7 @@ export class RectSemanticMark extends SemanticMark {
|
|
|
79
79
|
const scale = params[scaleYId], yVals = yAccessor(datum);
|
|
80
80
|
if (isArray(yVals) && yVals.length > 1) return scale.scale(yVals[1]);
|
|
81
81
|
if (isContinuous(scale.type)) {
|
|
82
|
-
const domain = scale.domain(), min =
|
|
82
|
+
const domain = scale.domain(), min = minInArray(domain), max = maxInArray(domain), baseValue = min > 0 ? min : max < 0 ? max : 0;
|
|
83
83
|
return scale.scale(baseValue);
|
|
84
84
|
}
|
|
85
85
|
return scale.scale(yVals) + (null !== (_d = null !== (_b = null === (_a = scale.bandwidth) || void 0 === _a ? void 0 : _a.call(scale)) && void 0 !== _b ? _b : null === (_c = scale.step) || void 0 === _c ? void 0 : _c.call(scale)) && void 0 !== _d ? _d : 0);
|
package/es/rect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/rect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAapE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/rect.ts"],"names":[],"mappings":"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","file":"rect.js","sourcesContent":["import { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport type {\n RectEncodeChannels,\n PlotRectEncoderSpec,\n SemanticTooltipOption,\n WithDefaultEncode,\n GenerateBaseEncodeSpec,\n CrosshairSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n IElement\n} from '@visactor/vgrammar-core';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType } from '@visactor/vgrammar-core';\nimport { isArray, maxInArray, minInArray } from '@visactor/vutils';\nimport { PlotMakType } from './enums';\nimport { isContinuous } from '@visactor/vscale';\n\nexport class RectSemanticMark extends SemanticMark<PlotRectEncoderSpec, RectEncodeChannels> {\n static readonly type = PlotMakType.rect;\n constructor(id?: string | number) {\n super(PlotMakType.rect, id);\n }\n\n setMarkType() {\n return GrammarMarkType.rect;\n }\n\n parseScaleByEncode(\n channel: RectEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotRectEncoderSpec, RectEncodeChannels>, RectEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>> {\n return {\n x: { crosshairShape: 'rect' }\n };\n }\n\n setDefaultTooltip(): SemanticTooltipOption | Nil {\n const encodeY = this.spec.encode?.y;\n return {\n content: isArray(encodeY)\n ? encodeY.map(entry => {\n return {\n value: entry\n };\n })\n : [\n {\n value: encodeY\n }\n ]\n };\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotRectEncoderSpec, RectEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotRectEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n const scaleXId = this.getScaleId('x');\n const scaleYId = this.getScaleId('y');\n const res: GenerateBaseEncodeSpec<PlotRectEncoderSpec> = {};\n\n if (isArray(markEncoder.x?.field)) {\n res.x = { field: markEncoder.x.field[0], scale: markEncoder.x.scale };\n res.x1 = { field: markEncoder.x.field[1], scale: markEncoder.x.scale };\n } else {\n const xAccessor = getFieldAccessor(markEncoder.x.field);\n res.x = (datum: any, el: IElement, params: any) => {\n const xVals = xAccessor(datum);\n const scale = params[scaleXId];\n\n return isArray(xVals) ? scale.scale(xVals[0]) : scale.scale(xVals);\n };\n res.x1 = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleXId];\n const xVals = xAccessor(datum);\n\n if (isArray(xVals) && xVals.length > 1) {\n return scale.scale(xVals[1]);\n }\n\n if (isContinuous(scale.type)) {\n const domain = scale.domain() ?? [];\n const min = minInArray<number>(domain);\n const max = maxInArray<number>(domain);\n const baseValue = min > 0 ? min : max < 0 ? max : 0;\n\n return scale.scale(baseValue);\n }\n\n return scale.scale(xVals) + (scale.bandwidth?.() ?? scale.step?.() ?? 0);\n };\n }\n\n if (isArray(markEncoder.y?.field)) {\n res.y = { field: markEncoder.y.field[0], scale: markEncoder.y.scale };\n res.y1 = { field: markEncoder.y.field[1], scale: markEncoder.y.scale };\n } else {\n const yAccessor = getFieldAccessor(markEncoder.y.field);\n res.y = (datum: any, el: IElement, params: any) => {\n const yVals = yAccessor(datum);\n const scale = params[scaleYId];\n\n return isArray(yVals) ? scale.scale(yVals[0]) : scale.scale(yVals);\n };\n res.y1 = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleYId];\n const yVals = yAccessor(datum);\n\n if (isArray(yVals) && yVals.length > 1) {\n return scale.scale(yVals[1]);\n }\n if (isContinuous(scale.type)) {\n const domain = scale.domain();\n const min = minInArray<number>(domain);\n const max = maxInArray<number>(domain);\n const baseValue = min > 0 ? min : max < 0 ? max : 0;\n\n return scale.scale(baseValue);\n }\n\n return scale.scale(yVals) + (scale.bandwidth?.() ?? scale.step?.() ?? 0);\n };\n }\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n}\n"]}
|
package/es/sankey.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { SankeyEncodeChannels, WithDefaultEncode, PlotSankeyEncoderSpec, Se
|
|
|
2
2
|
import { SemanticMark } from './semantic-mark';
|
|
3
3
|
import { GrammarMarkType } from '@visactor/vgrammar-core';
|
|
4
4
|
import { PlotMakType } from './enums';
|
|
5
|
-
import type { ITextAttribute } from '@visactor/vrender
|
|
5
|
+
import type { ITextAttribute } from '@visactor/vrender/es/core';
|
|
6
6
|
export declare class SankeySemanticMark extends SemanticMark<PlotSankeyEncoderSpec, SankeyEncodeChannels> {
|
|
7
7
|
static readonly type = PlotMakType.sankey;
|
|
8
8
|
constructor(id?: string | number);
|
package/es/sankey.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/sankey.ts"],"names":[],"mappings":"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","file":"sankey.js","sourcesContent":["import type {\n SankeyEncodeChannels,\n WithDefaultEncode,\n PlotSankeyEncoderSpec,\n SemanticLabelOption,\n ChannelEncodeType,\n DataSpec,\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n TransformSpec,\n IElement\n} from '@visactor/vgrammar-core';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType, SIGNAL_VIEW_BOX, Factory } from '@visactor/vgrammar-core';\nimport { PlotMakType } from './enums';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport type { ITextAttribute } from '@visactor/vrender
|
|
1
|
+
{"version":3,"sources":["../src/sankey.ts"],"names":[],"mappings":"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","file":"sankey.js","sourcesContent":["import type {\n SankeyEncodeChannels,\n WithDefaultEncode,\n PlotSankeyEncoderSpec,\n SemanticLabelOption,\n ChannelEncodeType,\n DataSpec,\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n TransformSpec,\n IElement\n} from '@visactor/vgrammar-core';\nimport { SemanticMark } from './semantic-mark';\n// eslint-disable-next-line no-duplicate-imports\nimport { GrammarMarkType, SIGNAL_VIEW_BOX, Factory } from '@visactor/vgrammar-core';\nimport { PlotMakType } from './enums';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport type { ITextAttribute } from '@visactor/vrender/es/core';\n\nexport class SankeySemanticMark extends SemanticMark<PlotSankeyEncoderSpec, SankeyEncodeChannels> {\n static readonly type = PlotMakType.sankey;\n constructor(id?: string | number) {\n super(PlotMakType.sankey, id);\n\n if (!Factory.getTransform(PlotMakType.sankey)) {\n this._logger.error(\n `Please add this line of code: import { registerSankeyTransforms } from '@visactor/vgrammar-sankey'; \n and run registerSankeyTransforms() before use sankey`\n );\n }\n\n if (!Factory.getGlyph('linkPath')) {\n this._logger.error(`\n Please add this line of code: import { registerLinkPathGlyph } from '@visactor/vgrammar-core';\n add run registerLinkPathGlyph() before use sankey\n `);\n }\n }\n\n setMarkType() {\n return GrammarMarkType.rect;\n }\n\n setDefaultDataTransform(): TransformSpec[] {\n return [\n {\n type: 'sankey',\n width: { signal: 'viewWidth' },\n height: { signal: 'viewHeight' },\n nodeKey: this.spec.encode?.node\n }\n ];\n }\n\n getDataIdOfLink() {\n return `${this.spec.data?.id ?? this.spec.id}-data-link`;\n }\n\n setMultipleData(): DataSpec[] {\n return [\n {\n id: this.getDataIdOfFiltered(),\n transform: [\n {\n type: 'map',\n all: true,\n callback: (datum: any) => {\n return datum[0].nodes;\n }\n }\n ]\n },\n {\n source: this.getDataIdOfMain(),\n id: this.getDataIdOfLink(),\n transform: [\n {\n type: 'map',\n all: true,\n callback: (datum: any) => {\n // return formatLinkPath(datum[0].links);\n return datum[0].links;\n }\n }\n ]\n }\n ];\n }\n\n parseScaleByEncode(\n channel: SankeyEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotSankeyEncoderSpec, SankeyEncodeChannels>, SankeyEncodeChannels>\n ): ScaleSpec | Nil {\n if (channel === 'color') {\n return {\n type: 'ordinal',\n id: this.getScaleId('color'),\n domain: {\n data: this.getDataIdOfFiltered(),\n field: option as string\n },\n range: this.getPalette()\n };\n }\n\n return null;\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotSankeyEncoderSpec, SankeyEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotSankeyEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n const res: GenerateEncoderSpec<PlotSankeyEncoderSpec> = {\n x: { field: 'x0' },\n x1: { field: 'x1' },\n y: { field: 'y0' },\n y1: { field: 'y1' }\n };\n\n if (markEncoder.stroke) {\n res.stroke = markEncoder.stroke;\n }\n\n if (markEncoder.color) {\n const scaleColorId = this.getScaleId('color');\n const colorAccessor = getFieldAccessor(markEncoder.color.field);\n\n res.fill = (datum: any, el: IElement, params: any) => {\n const scale = params[scaleColorId];\n return scale.scale(colorAccessor(datum?.datum));\n };\n } else {\n res.fill = this.spec.style?.nodeStyle?.fill ?? this.getPalette()?.[0];\n }\n\n return res;\n }\n\n setMainMarkSpec() {\n return { key: 'key' };\n }\n\n protected setLabelTextGetter(\n channel: string,\n option: SemanticLabelOption | boolean\n ): ChannelEncodeType<ITextAttribute['text']> {\n const textGetter = getFieldAccessor(channel);\n return (datum: any, el: IElement, params: any) => {\n return textGetter(datum.datum);\n };\n }\n\n setMultiMarksSpec() {\n // TODO: optimize the default style\n return [\n {\n id: `${this.getMarkId()}-link`,\n type: 'glyph',\n glyphType: 'linkPath',\n from: {\n data: this.getDataIdOfLink()\n },\n layout: {\n position: 'content',\n skipBeforeLayouted: true\n },\n key: 'index',\n dependency: this.viewSpec.scales.map(scale => scale.id).concat(SIGNAL_VIEW_BOX),\n animation: this.convertMarkAnimation(),\n encode: Object.assign({}, this.spec.state, {\n enter: Object.assign(\n {\n backgroundStyle: { fillColor: '#ccc', fillOpacity: 0.2 },\n fillOpacity: 0.8,\n round: true\n },\n this.spec.style?.linkStyle\n ),\n update: (datum: any, el: IElement, params: any) => {\n return {\n direction: datum.vertical ? 'vertical' : 'horizontal',\n x0: datum.x0,\n x1: datum.x1,\n y0: datum.y0,\n y1: datum.y1,\n thickness: datum.thickness,\n fill: this.spec.style?.linkStyle?.fill ?? this.getPalette()?.[0]\n };\n }\n })\n }\n ];\n }\n}\n"]}
|
package/es/semantic-mark.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ILogger } from '@visactor/vutils';
|
|
2
2
|
import type { ISemanticMark, ISemanticMarkSpec, ParsedSimpleEncode, WithDefaultEncode, SemanticTooltipOption, SemanticAxisOption, SemanticPlayerOption, SemanticLabelOption, SemanticDataZoomOption, SemanticSliderOption, SemanticLegendOption, SemanticCrosshairOption, CoordinateOption, AxisSpec, CrosshairSpec, DatazoomSpec, LabelSpec, LegendSpec, PlayerSpec, SliderSpec, CoordinateSpec, DataSpec, ChannelEncodeType, ScaleSpec, TransformSpec, MarkAnimationSpec, ViewSpec, MarkType, Nil, ValueOf, GenerateBaseEncodeSpec, IAnimationConfig, MarkSpec, MarkRelativeItemSpec, IPlot, SemanticGridOption, GridSpec, TitleSpec, SemanticTitleOption, InteractionSpec } from '@visactor/vgrammar-core';
|
|
3
|
-
import type { ITextAttribute } from '@visactor/vrender
|
|
3
|
+
import type { ITextAttribute } from '@visactor/vrender/es/core';
|
|
4
4
|
export declare abstract class SemanticMark<EncodeSpec, K extends string> implements ISemanticMark<EncodeSpec, K> {
|
|
5
5
|
spec: ISemanticMarkSpec<EncodeSpec, K>;
|
|
6
6
|
viewSpec?: ViewSpec;
|
|
@@ -29,7 +29,7 @@ export declare abstract class SemanticMark<EncodeSpec, K extends string> impleme
|
|
|
29
29
|
label(channel: string, option?: SemanticLabelOption | boolean): this;
|
|
30
30
|
player(data?: any[], option?: SemanticPlayerOption | boolean, layout?: MarkRelativeItemSpec): this;
|
|
31
31
|
title(option: SemanticTitleOption, layout?: MarkRelativeItemSpec): this;
|
|
32
|
-
protected getPalette(): import("@visactor/vrender
|
|
32
|
+
protected getPalette(): import("@visactor/vrender/es/core").IColor[];
|
|
33
33
|
abstract setMarkType(): MarkType;
|
|
34
34
|
abstract parseScaleByEncode(channel: K, option: ValueOf<WithDefaultEncode<EncodeSpec, K>, K>): ScaleSpec | Nil;
|
|
35
35
|
abstract convertMarkEncode(encode: WithDefaultEncode<EncodeSpec, K>): GenerateBaseEncodeSpec<EncodeSpec>;
|
package/es/semantic-mark.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Logger, array, isArray, isBoolean, isNil, isPlainObject, merge } from "@visactor/vutils";
|
|
1
|
+
import { Logger, array, isArray, isBoolean, isNil, isPlainObject, maxInArray, merge, minInArray } from "@visactor/vutils";
|
|
2
2
|
|
|
3
3
|
import { isContinuous, isDiscrete } from "@visactor/vscale";
|
|
4
4
|
|
|
@@ -595,11 +595,11 @@ export class SemanticMark {
|
|
|
595
595
|
dependency: [ SIGNAL_VIEW_BOX, dataId ],
|
|
596
596
|
min: (datum, elment, params) => {
|
|
597
597
|
const data = params[dataId];
|
|
598
|
-
return
|
|
598
|
+
return minInArray(data.map(getter));
|
|
599
599
|
},
|
|
600
600
|
max: (datum, elment, params) => {
|
|
601
601
|
const data = params[dataId];
|
|
602
|
-
return
|
|
602
|
+
return maxInArray(data.map(getter));
|
|
603
603
|
},
|
|
604
604
|
encode: {
|
|
605
605
|
update: (datum, elment, params) => {
|