@visactor/vgrammar-plot 0.6.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/README.md +3 -0
- package/README.zh-CN.md +0 -0
- package/cjs/area.d.ts +14 -0
- package/cjs/area.js +83 -0
- package/cjs/area.js.map +1 -0
- package/cjs/cell.d.ts +14 -0
- package/cjs/cell.js +51 -0
- package/cjs/cell.js.map +1 -0
- package/cjs/circle-packing.d.ts +17 -0
- package/cjs/circle-packing.js +76 -0
- package/cjs/circle-packing.js.map +1 -0
- package/cjs/enums.d.ts +24 -0
- package/cjs/enums.js +17 -0
- package/cjs/enums.js.map +1 -0
- package/cjs/image.d.ts +13 -0
- package/cjs/image.js +77 -0
- package/cjs/image.js.map +1 -0
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +15 -0
- package/cjs/index.js.map +1 -0
- package/cjs/interval.d.ts +19 -0
- package/cjs/interval.js +102 -0
- package/cjs/interval.js.map +1 -0
- package/cjs/line.d.ts +14 -0
- package/cjs/line.js +52 -0
- package/cjs/line.js.map +1 -0
- package/cjs/path.d.ts +11 -0
- package/cjs/path.js +25 -0
- package/cjs/path.js.map +1 -0
- package/cjs/plot-all.d.ts +2 -0
- package/cjs/plot-all.js +19 -0
- package/cjs/plot-all.js.map +1 -0
- package/cjs/plot.d.ts +46 -0
- package/cjs/plot.js +265 -0
- package/cjs/plot.js.map +1 -0
- package/cjs/polygon.d.ts +12 -0
- package/cjs/polygon.js +44 -0
- package/cjs/polygon.js.map +1 -0
- package/cjs/rect-x.d.ts +13 -0
- package/cjs/rect-x.js +67 -0
- package/cjs/rect-x.js.map +1 -0
- package/cjs/rect-y.d.ts +13 -0
- package/cjs/rect-y.js +67 -0
- package/cjs/rect-y.js.map +1 -0
- package/cjs/rect.d.ts +13 -0
- package/cjs/rect.js +82 -0
- package/cjs/rect.js.map +1 -0
- package/cjs/rule-x.d.ts +12 -0
- package/cjs/rule-x.js +37 -0
- package/cjs/rule-x.js.map +1 -0
- package/cjs/rule-y.d.ts +12 -0
- package/cjs/rule-y.js +36 -0
- package/cjs/rule-y.js.map +1 -0
- package/cjs/rule.d.ts +12 -0
- package/cjs/rule.js +45 -0
- package/cjs/rule.js.map +1 -0
- package/cjs/sankey.d.ts +46 -0
- package/cjs/sankey.js +139 -0
- package/cjs/sankey.js.map +1 -0
- package/cjs/semantic-mark.d.ts +88 -0
- package/cjs/semantic-mark.js +846 -0
- package/cjs/semantic-mark.js.map +1 -0
- package/cjs/sunburst.d.ts +45 -0
- package/cjs/sunburst.js +134 -0
- package/cjs/sunburst.js.map +1 -0
- package/cjs/symbol.d.ts +13 -0
- package/cjs/symbol.js +53 -0
- package/cjs/symbol.js.map +1 -0
- package/cjs/text.d.ts +12 -0
- package/cjs/text.js +32 -0
- package/cjs/text.js.map +1 -0
- package/cjs/tree.d.ts +20 -0
- package/cjs/tree.js +128 -0
- package/cjs/tree.js.map +1 -0
- package/cjs/treemap.d.ts +41 -0
- package/cjs/treemap.js +109 -0
- package/cjs/treemap.js.map +1 -0
- package/cjs/util.d.ts +3 -0
- package/cjs/util.js +11 -0
- package/cjs/util.js.map +1 -0
- package/cjs/wordcloud-shape.d.ts +13 -0
- package/cjs/wordcloud-shape.js +85 -0
- package/cjs/wordcloud-shape.js.map +1 -0
- package/cjs/wordcloud.d.ts +13 -0
- package/cjs/wordcloud.js +81 -0
- package/cjs/wordcloud.js.map +1 -0
- package/dist/index.js +3291 -0
- package/dist/index.min.js +1 -0
- package/es/area.d.ts +14 -0
- package/es/area.js +83 -0
- package/es/area.js.map +1 -0
- package/es/cell.d.ts +14 -0
- package/es/cell.js +49 -0
- package/es/cell.js.map +1 -0
- package/es/circle-packing.d.ts +17 -0
- package/es/circle-packing.js +75 -0
- package/es/circle-packing.js.map +1 -0
- package/es/enums.d.ts +24 -0
- package/es/enums.js +13 -0
- package/es/enums.js.map +1 -0
- package/es/image.d.ts +13 -0
- package/es/image.js +74 -0
- package/es/image.js.map +1 -0
- package/es/index.d.ts +1 -0
- package/es/index.js +2 -0
- package/es/index.js.map +1 -0
- package/es/interval.d.ts +19 -0
- package/es/interval.js +103 -0
- package/es/interval.js.map +1 -0
- package/es/line.d.ts +14 -0
- package/es/line.js +50 -0
- package/es/line.js.map +1 -0
- package/es/path.d.ts +11 -0
- package/es/path.js +23 -0
- package/es/path.js.map +1 -0
- package/es/plot-all.d.ts +2 -0
- package/es/plot-all.js +50 -0
- package/es/plot-all.js.map +1 -0
- package/es/plot.d.ts +46 -0
- package/es/plot.js +263 -0
- package/es/plot.js.map +1 -0
- package/es/polygon.d.ts +12 -0
- package/es/polygon.js +43 -0
- package/es/polygon.js.map +1 -0
- package/es/rect-x.d.ts +13 -0
- package/es/rect-x.js +69 -0
- package/es/rect-x.js.map +1 -0
- package/es/rect-y.d.ts +13 -0
- package/es/rect-y.js +69 -0
- package/es/rect-y.js.map +1 -0
- package/es/rect.d.ts +13 -0
- package/es/rect.js +84 -0
- package/es/rect.js.map +1 -0
- package/es/rule-x.d.ts +12 -0
- package/es/rule-x.js +35 -0
- package/es/rule-x.js.map +1 -0
- package/es/rule-y.d.ts +12 -0
- package/es/rule-y.js +34 -0
- package/es/rule-y.js.map +1 -0
- package/es/rule.d.ts +12 -0
- package/es/rule.js +45 -0
- package/es/rule.js.map +1 -0
- package/es/sankey.d.ts +46 -0
- package/es/sankey.js +137 -0
- package/es/sankey.js.map +1 -0
- package/es/semantic-mark.d.ts +88 -0
- package/es/semantic-mark.js +833 -0
- package/es/semantic-mark.js.map +1 -0
- package/es/sunburst.d.ts +45 -0
- package/es/sunburst.js +133 -0
- package/es/sunburst.js.map +1 -0
- package/es/symbol.d.ts +13 -0
- package/es/symbol.js +51 -0
- package/es/symbol.js.map +1 -0
- package/es/text.d.ts +12 -0
- package/es/text.js +30 -0
- package/es/text.js.map +1 -0
- package/es/tree.d.ts +20 -0
- package/es/tree.js +127 -0
- package/es/tree.js.map +1 -0
- package/es/treemap.d.ts +41 -0
- package/es/treemap.js +108 -0
- package/es/treemap.js.map +1 -0
- package/es/util.d.ts +3 -0
- package/es/util.js +3 -0
- package/es/util.js.map +1 -0
- package/es/wordcloud-shape.d.ts +13 -0
- package/es/wordcloud-shape.js +84 -0
- package/es/wordcloud-shape.js.map +1 -0
- package/es/wordcloud.d.ts +13 -0
- package/es/wordcloud.js +80 -0
- package/es/wordcloud.js.map +1 -0
- package/package.json +73 -0
package/es/plot.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/plot.ts"],"names":[],"mappings":"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","file":"plot.js","sourcesContent":["import type { CoordinateType } from '@visactor/vgrammar-coordinate';\nimport type {\n BaseEventHandler,\n IElement,\n IMorphConfig,\n IView,\n MultiScaleData,\n ScaleData,\n ScaleSpec,\n ViewSpec,\n CoordinateOption,\n IPlot,\n IPlotMarkConstructor,\n IPlotOptions,\n PlotMark,\n PlotSpec\n} from '@visactor/vgrammar';\nimport type { ILogger } from '@visactor/vutils';\nimport { Logger, isNil } from '@visactor/vutils';\nimport { mergeGrammarSpecs } from './util';\nimport { PlotMakType } from './enums';\nimport { Factory, SIGNAL_VIEW_BOX, View } from '@visactor/vgrammar';\n\nexport class Plot implements IPlot {\n static useMarks(marks: IPlotMarkConstructor[]) {\n marks.forEach(mark => {\n Factory.registerPlotMarks(mark.type, mark);\n });\n }\n private _view: IView;\n private _semanticMarks: PlotMark[];\n private _hasInited?: boolean;\n private _coordinate: CoordinateOption;\n private _logger: ILogger;\n\n constructor(option?: IPlotOptions) {\n this._view = new View(option);\n this._semanticMarks = [];\n this._logger = Logger.getInstance();\n }\n\n private _mergeScales(scales: ScaleSpec[], prevScales: ScaleSpec[]) {\n return scales.reduce((res, scale) => {\n if (scale.id) {\n const prevScale = res.find(prev => prev.id === scale.id);\n\n if (prevScale) {\n if ((scale.domain as ScaleData).data && (scale.domain as ScaleData).field) {\n if ((prevScale.domain as ScaleData).data && (prevScale.domain as ScaleData).field) {\n if (\n (scale.domain as ScaleData).data === (prevScale.domain as ScaleData).data &&\n (scale.domain as ScaleData).field !== (prevScale.domain as ScaleData).field\n ) {\n (prevScale.domain as ScaleData).field = []\n .concat((prevScale.domain as ScaleData).field)\n .concat((scale.domain as ScaleData).field);\n } else if ((scale.domain as ScaleData).data !== (prevScale.domain as ScaleData).data) {\n (prevScale.domain as MultiScaleData) = {\n datas: [\n { data: (prevScale.domain as ScaleData).data, field: (prevScale.domain as ScaleData).field },\n { data: (scale.domain as ScaleData).data, field: (scale.domain as ScaleData).field }\n ],\n sort: (prevScale.domain as MultiScaleData).sort\n };\n }\n if (!isNil((scale.domain as ScaleData).sort)) {\n (prevScale.domain as ScaleData).sort = (scale.domain as ScaleData).sort;\n }\n } else if ((prevScale.domain as MultiScaleData).datas) {\n const prevData = (prevScale.domain as MultiScaleData).datas.find(\n entry => entry.data !== (scale.domain as ScaleData).data\n );\n\n if (prevData && (scale.domain as ScaleData).field !== prevData.field) {\n prevData.field = [].concat(prevData.field).concat((scale.domain as ScaleData).field);\n } else if (!prevData) {\n (prevScale.domain as MultiScaleData).datas.push({\n data: (scale.domain as ScaleData).data,\n field: (scale.domain as ScaleData).field\n });\n }\n\n if (!isNil((scale.domain as ScaleData).sort)) {\n (prevScale.domain as ScaleData).sort = (scale.domain as ScaleData).sort;\n }\n }\n }\n } else {\n res.push(scale);\n }\n }\n\n return res;\n }, prevScales);\n }\n\n protected parseViewSpec() {\n const spec: ViewSpec = {\n data: [],\n marks: [],\n scales: [],\n coordinates: [],\n signals: [],\n projections: [],\n events: []\n };\n\n this._semanticMarks.forEach(mark => {\n if (this._coordinate) {\n mark.coordinate(this._coordinate);\n }\n const { data, marks, scales, coordinates, signals, projections, events } = mark.toViewSpec();\n\n if (data && data.length) {\n spec.data = mergeGrammarSpecs(data, spec.data);\n }\n if (marks && marks.length) {\n spec.marks = spec.marks.concat(marks);\n }\n\n if (scales && scales.length) {\n // todo: optimize the following code of combine scales\n spec.scales = this._mergeScales(scales, spec.scales);\n }\n if (coordinates && coordinates.length) {\n spec.coordinates = mergeGrammarSpecs(coordinates, spec.coordinates);\n }\n if (signals && signals.length) {\n spec.signals = spec.signals.concat(signals);\n }\n if (projections && projections.length) {\n spec.projections = spec.projections.concat(projections);\n }\n if (events && events.length) {\n spec.events = spec.events.concat(events);\n }\n });\n\n spec.marks = [\n {\n type: 'group',\n layout: {\n display: 'relative',\n updateViewSignals: true\n },\n dependency: [SIGNAL_VIEW_BOX],\n encode: {\n update: (datum: any, elment: IElement, params: any) => {\n return {\n x: params.viewBox.x1,\n y: params.viewBox.y1,\n width: params.viewBox.width(),\n height: params.viewBox.height()\n };\n }\n },\n marks: spec.marks\n }\n ];\n\n return spec;\n }\n run(morphConfig?: IMorphConfig) {\n if (this._view) {\n if (!this._hasInited) {\n this._view.parseSpec(this.parseViewSpec());\n }\n this._hasInited = true;\n\n this._view.runSync(morphConfig);\n }\n\n return this;\n }\n\n async runAsync(morphConfig?: IMorphConfig) {\n if (this._view) {\n if (!this._hasInited) {\n this._view.parseSpec(this.parseViewSpec());\n }\n this._hasInited = true;\n\n await this._view.runAsync(morphConfig);\n }\n\n return this;\n }\n\n release() {\n if (this._view) {\n this._view.release();\n }\n\n return this;\n }\n\n updateSpec(spec: PlotSpec) {\n this.parseSpec(spec, true);\n return this;\n }\n parseSpec(spec: PlotSpec, isUpdate?: boolean) {\n if (spec.coordinate) {\n this.coordinate(spec.coordinate.type, spec.coordinate);\n }\n\n if (spec?.marks?.length) {\n spec.marks.forEach(mark => {\n const plotMark: PlotMark = Factory.createPlotMark(mark.type);\n plotMark.parseSpec(mark as any);\n\n this._semanticMarks.push(plotMark);\n });\n }\n\n const viewSpec = this.parseViewSpec();\n viewSpec.width = spec.width;\n viewSpec.height = spec.height;\n viewSpec.background = spec.background;\n viewSpec.padding = spec.padding;\n\n if (isUpdate) {\n this._view.updateSpec(viewSpec);\n } else {\n this._view.parseSpec(viewSpec);\n }\n this._hasInited = true;\n\n return this;\n }\n\n getImageBuffer() {\n return this._view?.getImageBuffer?.();\n }\n\n on(type: string, handler: BaseEventHandler) {\n if (this._view) {\n this._view.addEventListener(type, handler);\n }\n return this;\n }\n off(type: string, handler?: BaseEventHandler) {\n if (this._view) {\n this._view.removeEventListener(type, handler);\n }\n return this;\n }\n\n protected getCoordinateId(viewId: string | number = '0') {\n return `coordinate-${viewId}`;\n }\n\n coordinate(type: CoordinateType, spec?: Omit<CoordinateOption, 'type'>) {\n this._coordinate = Object.assign({ type, id: this.getCoordinateId() }, spec);\n\n return this;\n }\n\n interval() {\n const mark = Factory.createPlotMark(PlotMakType.interval);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.interval} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n line() {\n const mark = Factory.createPlotMark(PlotMakType.line);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.line} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n area() {\n const mark = Factory.createPlotMark(PlotMakType.area);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.area} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n cell() {\n const mark = Factory.createPlotMark(PlotMakType.cell);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.cell} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n ruleX() {\n const mark = Factory.createPlotMark(PlotMakType.ruleX);\n\n if (!mark) {\n this._logger.error(`Please register ${this.ruleX} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n ruleY() {\n const mark = Factory.createPlotMark(PlotMakType.ruleY);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.ruleY} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n image() {\n const mark = Factory.createPlotMark(PlotMakType.image);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.image} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n path() {\n const mark = Factory.createPlotMark(PlotMakType.path);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.path} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n polygon() {\n const mark = Factory.createPlotMark(PlotMakType.polygon);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.polygon} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n rectX() {\n const mark = Factory.createPlotMark(PlotMakType.rectX);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.rectX} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n rectY() {\n const mark = Factory.createPlotMark(PlotMakType.rectY);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.rectY} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n rect() {\n const mark = Factory.createPlotMark(PlotMakType.rect);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.rect} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n rule() {\n const mark = Factory.createPlotMark(PlotMakType.rule);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.rule} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n symbol() {\n const mark = Factory.createPlotMark(PlotMakType.symbol);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.symbol} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n text() {\n const mark = Factory.createPlotMark(PlotMakType.text);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.text} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n sankey() {\n const mark = Factory.createPlotMark(PlotMakType.sankey);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.sankey} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n sunburst() {\n const mark = Factory.createPlotMark(PlotMakType.sunburst);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.sunburst} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n tree() {\n const mark = Factory.createPlotMark(PlotMakType.tree);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.tree} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n treemap() {\n const mark = Factory.createPlotMark(PlotMakType.treemap);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.treemap} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n circlePacking() {\n const mark = Factory.createPlotMark(PlotMakType.circlePacking);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.circlePacking} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n wordcloud() {\n const mark = Factory.createPlotMark(PlotMakType.wordcloud);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.wordcloud} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n\n wordcloudShape() {\n const mark = Factory.createPlotMark(PlotMakType.wordcloudShape);\n\n if (!mark) {\n this._logger.error(`Please register ${PlotMakType.wordcloudShape} before use it`);\n } else {\n this._semanticMarks.push(mark);\n }\n\n return mark;\n }\n}\n"]}
|
package/es/polygon.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PolygonEncodeChannels, WithDefaultEncode, PlotPolygonEncoderSpec, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf } from '@visactor/vgrammar';
|
|
2
|
+
import { SemanticMark } from './semantic-mark';
|
|
3
|
+
import { PlotMakType } from './enums';
|
|
4
|
+
import { GrammarMarkType } from '@visactor/vgrammar';
|
|
5
|
+
export declare class PolygonSemanticMark extends SemanticMark<PlotPolygonEncoderSpec, PolygonEncodeChannels> {
|
|
6
|
+
static readonly type = PlotMakType.polygon;
|
|
7
|
+
constructor(id?: string | number);
|
|
8
|
+
setMarkType(): GrammarMarkType;
|
|
9
|
+
protected parseScaleOfEncodeX(option: ValueOf<WithDefaultEncode<PlotPolygonEncoderSpec, PolygonEncodeChannels>, PolygonEncodeChannels>): ScaleSpec | Nil;
|
|
10
|
+
parseScaleByEncode(channel: PolygonEncodeChannels, option: ValueOf<WithDefaultEncode<PlotPolygonEncoderSpec, PolygonEncodeChannels>, PolygonEncodeChannels>): ScaleSpec | Nil;
|
|
11
|
+
convertMarkEncode(encode: WithDefaultEncode<PlotPolygonEncoderSpec, PolygonEncodeChannels>): GenerateBaseEncodeSpec<PlotPolygonEncoderSpec>;
|
|
12
|
+
}
|
package/es/polygon.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { SemanticMark } from "./semantic-mark";
|
|
2
|
+
|
|
3
|
+
import { field as getFieldAccessor } from "@visactor/vgrammar-util";
|
|
4
|
+
|
|
5
|
+
import { PlotMakType } from "./enums";
|
|
6
|
+
|
|
7
|
+
import { getPalette, GrammarMarkType } from "@visactor/vgrammar";
|
|
8
|
+
|
|
9
|
+
export class PolygonSemanticMark extends SemanticMark {
|
|
10
|
+
constructor(id) {
|
|
11
|
+
super(PlotMakType.polygon, id);
|
|
12
|
+
}
|
|
13
|
+
setMarkType() {
|
|
14
|
+
return GrammarMarkType.polygon;
|
|
15
|
+
}
|
|
16
|
+
parseScaleOfEncodeX(option) {
|
|
17
|
+
const res = super.parseScaleOfEncodeX(option);
|
|
18
|
+
return res.type = "point", res;
|
|
19
|
+
}
|
|
20
|
+
parseScaleByEncode(channel, option) {
|
|
21
|
+
return this.parseScaleOfCommonEncode(channel, option);
|
|
22
|
+
}
|
|
23
|
+
convertMarkEncode(encode) {
|
|
24
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
25
|
+
const markEncoder = this.convertSimpleMarkEncode(encode), scaleXId = this.getScaleId("x"), scaleYId = this.getScaleId("y"), res = {};
|
|
26
|
+
if ((null === (_b = null === (_a = markEncoder.x) || void 0 === _a ? void 0 : _a.field) || void 0 === _b ? void 0 : _b.length) && (null === (_d = null === (_c = markEncoder.y) || void 0 === _c ? void 0 : _c.field) || void 0 === _d ? void 0 : _d.length)) {
|
|
27
|
+
const xAccessors = markEncoder.x.field.map((f => getFieldAccessor(f))), yAccessors = markEncoder.y.field.map((f => getFieldAccessor(f)));
|
|
28
|
+
res.points = (datum, el, params) => {
|
|
29
|
+
const scaleX = params[scaleXId], scaleY = params[scaleYId], minLen = Math.min(xAccessors.length, yAccessors.length), points = [];
|
|
30
|
+
for (let i = 0; i < minLen; i++) points.push({
|
|
31
|
+
x: scaleX.scale(xAccessors[i](datum)),
|
|
32
|
+
y: scaleY.scale(yAccessors[i](datum))
|
|
33
|
+
});
|
|
34
|
+
return points;
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return markEncoder.color || markEncoder.group ? res.fill = null !== (_e = markEncoder.color) && void 0 !== _e ? _e : markEncoder.group : res.fill = null !== (_g = null === (_f = this.spec.style) || void 0 === _f ? void 0 : _f.fill) && void 0 !== _g ? _g : getPalette()[0],
|
|
38
|
+
res;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
PolygonSemanticMark.type = PlotMakType.polygon;
|
|
43
|
+
//# sourceMappingURL=polygon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/polygon.ts"],"names":[],"mappings":"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","file":"polygon.js","sourcesContent":["import type {\n PolygonEncodeChannels,\n WithDefaultEncode,\n PlotPolygonEncoderSpec,\n GenerateBaseEncodeSpec,\n Nil,\n ScaleSpec,\n ValueOf,\n IElement,\n GenerateEncoderSpec\n} from '@visactor/vgrammar';\nimport { SemanticMark } from './semantic-mark';\nimport { field as getFieldAccessor } from '@visactor/vgrammar-util';\nimport { PlotMakType } from './enums';\nimport { getPalette, GrammarMarkType } from '@visactor/vgrammar';\n\nexport class PolygonSemanticMark extends SemanticMark<PlotPolygonEncoderSpec, PolygonEncodeChannels> {\n static readonly type = PlotMakType.polygon;\n constructor(id?: string | number) {\n super(PlotMakType.polygon, id);\n }\n\n setMarkType() {\n return GrammarMarkType.polygon;\n }\n\n protected parseScaleOfEncodeX(\n option: ValueOf<WithDefaultEncode<PlotPolygonEncoderSpec, PolygonEncodeChannels>, PolygonEncodeChannels>\n ): ScaleSpec | Nil {\n const res = super.parseScaleOfEncodeX(option);\n\n res.type = 'point';\n return res;\n }\n\n parseScaleByEncode(\n channel: PolygonEncodeChannels,\n option: ValueOf<WithDefaultEncode<PlotPolygonEncoderSpec, PolygonEncodeChannels>, PolygonEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<PlotPolygonEncoderSpec, PolygonEncodeChannels>\n ): GenerateBaseEncodeSpec<PlotPolygonEncoderSpec> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n const scaleXId = this.getScaleId('x');\n const scaleYId = this.getScaleId('y');\n const res: GenerateEncoderSpec<PlotPolygonEncoderSpec> = {};\n\n if (markEncoder.x?.field?.length && markEncoder.y?.field?.length) {\n const xAccessors = markEncoder.x.field.map((f: any) => getFieldAccessor(f));\n const yAccessors = markEncoder.y.field.map((f: any) => getFieldAccessor(f));\n\n res.points = (datum: any, el: IElement, params: any) => {\n const scaleX = params[scaleXId];\n const scaleY = params[scaleYId];\n const minLen = Math.min(xAccessors.length, yAccessors.length);\n const points = [];\n\n for (let i = 0; i < minLen; i++) {\n points.push({\n x: scaleX.scale(xAccessors[i](datum)),\n y: scaleY.scale(yAccessors[i](datum))\n });\n }\n\n return points;\n };\n }\n\n if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? getPalette()[0];\n }\n\n return res;\n }\n}\n"]}
|
package/es/rect-x.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { RectXEncodeChannels, PlotRectXEncoderSpec, SemanticTooltipOption, WithDefaultEncode, GenerateBaseEncodeSpec, CrosshairSpec, Nil, ScaleSpec, ValueOf } from '@visactor/vgrammar';
|
|
2
|
+
import { SemanticMark } from './semantic-mark';
|
|
3
|
+
import { PlotMakType } from './enums';
|
|
4
|
+
import { GrammarMarkType } from '@visactor/vgrammar';
|
|
5
|
+
export declare class RectXSemanticMark extends SemanticMark<PlotRectXEncoderSpec, RectXEncodeChannels> {
|
|
6
|
+
static readonly type = PlotMakType.rectX;
|
|
7
|
+
constructor(id?: string | number);
|
|
8
|
+
setMarkType(): GrammarMarkType;
|
|
9
|
+
parseScaleByEncode(channel: RectXEncodeChannels, option: ValueOf<WithDefaultEncode<PlotRectXEncoderSpec, RectXEncodeChannels>, RectXEncodeChannels>): ScaleSpec | Nil;
|
|
10
|
+
setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>>;
|
|
11
|
+
setDefaultTooltip(): SemanticTooltipOption | Nil;
|
|
12
|
+
convertMarkEncode(encode: WithDefaultEncode<PlotRectXEncoderSpec, RectXEncodeChannels>): GenerateBaseEncodeSpec<PlotRectXEncoderSpec>;
|
|
13
|
+
}
|
package/es/rect-x.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { field as getFieldAccessor } from "@visactor/vgrammar-util";
|
|
2
|
+
|
|
3
|
+
import { SemanticMark } from "./semantic-mark";
|
|
4
|
+
|
|
5
|
+
import { isArray } from "@visactor/vutils";
|
|
6
|
+
|
|
7
|
+
import { PlotMakType } from "./enums";
|
|
8
|
+
|
|
9
|
+
import { getPalette, GrammarMarkType } from "@visactor/vgrammar";
|
|
10
|
+
|
|
11
|
+
export class RectXSemanticMark extends SemanticMark {
|
|
12
|
+
constructor(id) {
|
|
13
|
+
super(PlotMakType.rectX, id);
|
|
14
|
+
}
|
|
15
|
+
setMarkType() {
|
|
16
|
+
return GrammarMarkType.rect;
|
|
17
|
+
}
|
|
18
|
+
parseScaleByEncode(channel, option) {
|
|
19
|
+
return this.parseScaleOfCommonEncode(channel, option);
|
|
20
|
+
}
|
|
21
|
+
setDefaultCrosshair() {
|
|
22
|
+
return {
|
|
23
|
+
x: {
|
|
24
|
+
crosshairShape: "rect"
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
setDefaultTooltip() {
|
|
29
|
+
var _a;
|
|
30
|
+
const encodeX = null === (_a = this.spec.encode) || void 0 === _a ? void 0 : _a.x;
|
|
31
|
+
return {
|
|
32
|
+
content: isArray(encodeX) ? encodeX.map((entry => ({
|
|
33
|
+
value: entry
|
|
34
|
+
}))) : [ {
|
|
35
|
+
value: encodeX
|
|
36
|
+
} ]
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
convertMarkEncode(encode) {
|
|
40
|
+
var _a, _b, _c, _d;
|
|
41
|
+
const markEncoder = this.convertSimpleMarkEncode(encode), scaleXId = this.getScaleId("x"), res = {
|
|
42
|
+
y: (datum, el, params) => 0,
|
|
43
|
+
y1: (datum, el, params) => params.viewBox.height()
|
|
44
|
+
};
|
|
45
|
+
if (isArray(null === (_a = markEncoder.x) || void 0 === _a ? void 0 : _a.field)) res.x = {
|
|
46
|
+
field: markEncoder.x.field[0],
|
|
47
|
+
scale: markEncoder.x.scale
|
|
48
|
+
}, res.x1 = {
|
|
49
|
+
field: markEncoder.x.field[1],
|
|
50
|
+
scale: markEncoder.x.scale
|
|
51
|
+
}; else {
|
|
52
|
+
const xAccessor = getFieldAccessor(markEncoder.x.field);
|
|
53
|
+
res.x = (datum, el, params) => {
|
|
54
|
+
const xVals = xAccessor(datum), scale = params[scaleXId];
|
|
55
|
+
return isArray(xVals) ? scale.scale(xVals[0]) : scale.scale(xVals);
|
|
56
|
+
}, res.x1 = (datum, el, params) => {
|
|
57
|
+
const scale = params[scaleXId], xVals = xAccessor(datum);
|
|
58
|
+
if (isArray(xVals) && xVals.length > 1) return scale.scale(xVals[1]);
|
|
59
|
+
const domain = scale.domain(), min = Math.min.apply(null, domain), max = Math.max.apply(null, domain), baseValue = min > 0 ? min : max < 0 ? max : 0;
|
|
60
|
+
return scale.scale(baseValue);
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
return 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 : getPalette()[0],
|
|
64
|
+
res;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
RectXSemanticMark.type = PlotMakType.rectX;
|
|
69
|
+
//# sourceMappingURL=rect-x.js.map
|
package/es/rect-x.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
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';\nimport { SemanticMark } from './semantic-mark';\nimport { isArray } from '@visactor/vutils';\nimport { PlotMakType } from './enums';\nimport { getPalette, GrammarMarkType } from '@visactor/vgrammar';\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 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 if (markEncoder.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? getPalette()[0];\n }\n\n return res;\n }\n}\n"]}
|
package/es/rect-y.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { RectYEncodeChannels, PlotRectYEncoderSpec, SemanticTooltipOption, WithDefaultEncode, GenerateBaseEncodeSpec, CrosshairSpec, Nil, ScaleSpec, ValueOf } from '@visactor/vgrammar';
|
|
2
|
+
import { SemanticMark } from './semantic-mark';
|
|
3
|
+
import { GrammarMarkType } from '@visactor/vgrammar';
|
|
4
|
+
import { PlotMakType } from './enums';
|
|
5
|
+
export declare class RectYSemanticMark extends SemanticMark<PlotRectYEncoderSpec, RectYEncodeChannels> {
|
|
6
|
+
static readonly type = PlotMakType.rectY;
|
|
7
|
+
constructor(id?: string | number);
|
|
8
|
+
setMarkType(): GrammarMarkType;
|
|
9
|
+
parseScaleByEncode(channel: RectYEncodeChannels, option: ValueOf<WithDefaultEncode<PlotRectYEncoderSpec, RectYEncodeChannels>, RectYEncodeChannels>): ScaleSpec | Nil;
|
|
10
|
+
setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>>;
|
|
11
|
+
setDefaultTooltip(): SemanticTooltipOption | Nil;
|
|
12
|
+
convertMarkEncode(encode: WithDefaultEncode<PlotRectYEncoderSpec, RectYEncodeChannels>): GenerateBaseEncodeSpec<PlotRectYEncoderSpec>;
|
|
13
|
+
}
|
package/es/rect-y.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { field as getFieldAccessor } from "@visactor/vgrammar-util";
|
|
2
|
+
|
|
3
|
+
import { SemanticMark } from "./semantic-mark";
|
|
4
|
+
|
|
5
|
+
import { isArray } from "@visactor/vutils";
|
|
6
|
+
|
|
7
|
+
import { getPalette, GrammarMarkType } from "@visactor/vgrammar";
|
|
8
|
+
|
|
9
|
+
import { PlotMakType } from "./enums";
|
|
10
|
+
|
|
11
|
+
export class RectYSemanticMark extends SemanticMark {
|
|
12
|
+
constructor(id) {
|
|
13
|
+
super(PlotMakType.rectY, id);
|
|
14
|
+
}
|
|
15
|
+
setMarkType() {
|
|
16
|
+
return GrammarMarkType.rect;
|
|
17
|
+
}
|
|
18
|
+
parseScaleByEncode(channel, option) {
|
|
19
|
+
return this.parseScaleOfCommonEncode(channel, option);
|
|
20
|
+
}
|
|
21
|
+
setDefaultCrosshair() {
|
|
22
|
+
return {
|
|
23
|
+
x: {
|
|
24
|
+
crosshairShape: "rect"
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
setDefaultTooltip() {
|
|
29
|
+
var _a;
|
|
30
|
+
const encodeY = null === (_a = this.spec.encode) || void 0 === _a ? void 0 : _a.y;
|
|
31
|
+
return {
|
|
32
|
+
content: isArray(encodeY) ? encodeY.map((entry => ({
|
|
33
|
+
value: entry
|
|
34
|
+
}))) : [ {
|
|
35
|
+
value: encodeY
|
|
36
|
+
} ]
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
convertMarkEncode(encode) {
|
|
40
|
+
var _a, _b, _c, _d;
|
|
41
|
+
const markEncoder = this.convertSimpleMarkEncode(encode), scaleYId = this.getScaleId("y"), res = {
|
|
42
|
+
x: (datum, el, params) => 0,
|
|
43
|
+
x1: (datum, el, params) => params.viewBox.width()
|
|
44
|
+
};
|
|
45
|
+
if (isArray(null === (_a = markEncoder.y) || void 0 === _a ? void 0 : _a.field)) res.y = {
|
|
46
|
+
field: markEncoder.y.field[0],
|
|
47
|
+
scale: markEncoder.y.scale
|
|
48
|
+
}, res.y1 = {
|
|
49
|
+
field: markEncoder.y.field[1],
|
|
50
|
+
scale: markEncoder.y.scale
|
|
51
|
+
}; else {
|
|
52
|
+
const yAccessor = getFieldAccessor(markEncoder.y.field);
|
|
53
|
+
res.y = (datum, el, params) => {
|
|
54
|
+
const yVals = yAccessor(datum), scale = params[scaleYId];
|
|
55
|
+
return isArray(yVals) ? scale.scale(yVals[0]) : scale.scale(yVals);
|
|
56
|
+
}, res.y1 = (datum, el, params) => {
|
|
57
|
+
const scale = params[scaleYId], yVals = yAccessor(datum);
|
|
58
|
+
if (isArray(yVals) && yVals.length > 1) return scale.scale(yVals[1]);
|
|
59
|
+
const domain = scale.domain(), min = Math.min.apply(null, domain), max = Math.max.apply(null, domain), baseValue = min > 0 ? min : max < 0 ? max : 0;
|
|
60
|
+
return scale.scale(baseValue);
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
return 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 : getPalette()[0],
|
|
64
|
+
res;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
RectYSemanticMark.type = PlotMakType.rectY;
|
|
69
|
+
//# sourceMappingURL=rect-y.js.map
|
package/es/rect-y.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
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';\nimport { SemanticMark } from './semantic-mark';\nimport { isArray } from '@visactor/vutils';\nimport { getPalette, GrammarMarkType } from '@visactor/vgrammar';\nimport { PlotMakType } from './enums';\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 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.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? getPalette()[0];\n }\n\n return res;\n }\n}\n"]}
|
package/es/rect.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { RectEncodeChannels, PlotRectEncoderSpec, SemanticTooltipOption, WithDefaultEncode, GenerateBaseEncodeSpec, CrosshairSpec, Nil, ScaleSpec, ValueOf } from '@visactor/vgrammar';
|
|
2
|
+
import { SemanticMark } from './semantic-mark';
|
|
3
|
+
import { GrammarMarkType } from '@visactor/vgrammar';
|
|
4
|
+
import { PlotMakType } from './enums';
|
|
5
|
+
export declare class RectSemanticMark extends SemanticMark<PlotRectEncoderSpec, RectEncodeChannels> {
|
|
6
|
+
static readonly type = PlotMakType.rect;
|
|
7
|
+
constructor(id?: string | number);
|
|
8
|
+
setMarkType(): GrammarMarkType;
|
|
9
|
+
parseScaleByEncode(channel: RectEncodeChannels, option: ValueOf<WithDefaultEncode<PlotRectEncoderSpec, RectEncodeChannels>, RectEncodeChannels>): ScaleSpec | Nil;
|
|
10
|
+
setDefaultCrosshair(): Record<string, Pick<CrosshairSpec, 'crosshairShape' | 'crosshairType'>>;
|
|
11
|
+
setDefaultTooltip(): SemanticTooltipOption | Nil;
|
|
12
|
+
convertMarkEncode(encode: WithDefaultEncode<PlotRectEncoderSpec, RectEncodeChannels>): GenerateBaseEncodeSpec<PlotRectEncoderSpec>;
|
|
13
|
+
}
|
package/es/rect.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { field as getFieldAccessor } from "@visactor/vgrammar-util";
|
|
2
|
+
|
|
3
|
+
import { SemanticMark } from "./semantic-mark";
|
|
4
|
+
|
|
5
|
+
import { getPalette, GrammarMarkType } from "@visactor/vgrammar";
|
|
6
|
+
|
|
7
|
+
import { isArray } from "@visactor/vutils";
|
|
8
|
+
|
|
9
|
+
import { PlotMakType } from "./enums";
|
|
10
|
+
|
|
11
|
+
export class RectSemanticMark extends SemanticMark {
|
|
12
|
+
constructor(id) {
|
|
13
|
+
super(PlotMakType.rect, id);
|
|
14
|
+
}
|
|
15
|
+
setMarkType() {
|
|
16
|
+
return GrammarMarkType.rect;
|
|
17
|
+
}
|
|
18
|
+
parseScaleByEncode(channel, option) {
|
|
19
|
+
return this.parseScaleOfCommonEncode(channel, option);
|
|
20
|
+
}
|
|
21
|
+
setDefaultCrosshair() {
|
|
22
|
+
return {
|
|
23
|
+
x: {
|
|
24
|
+
crosshairShape: "rect"
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
setDefaultTooltip() {
|
|
29
|
+
var _a;
|
|
30
|
+
const encodeY = null === (_a = this.spec.encode) || void 0 === _a ? void 0 : _a.y;
|
|
31
|
+
return {
|
|
32
|
+
content: isArray(encodeY) ? encodeY.map((entry => ({
|
|
33
|
+
value: entry
|
|
34
|
+
}))) : [ {
|
|
35
|
+
value: encodeY
|
|
36
|
+
} ]
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
convertMarkEncode(encode) {
|
|
40
|
+
var _a, _b, _c, _d, _e;
|
|
41
|
+
const markEncoder = this.convertSimpleMarkEncode(encode), scaleXId = this.getScaleId("x"), scaleYId = this.getScaleId("y"), res = {};
|
|
42
|
+
if (isArray(null === (_a = markEncoder.x) || void 0 === _a ? void 0 : _a.field)) res.x = {
|
|
43
|
+
field: markEncoder.x.field[0],
|
|
44
|
+
scale: markEncoder.x.scale
|
|
45
|
+
}, res.x1 = {
|
|
46
|
+
field: markEncoder.x.field[1],
|
|
47
|
+
scale: markEncoder.x.scale
|
|
48
|
+
}; else {
|
|
49
|
+
const xAccessor = getFieldAccessor(markEncoder.x.field);
|
|
50
|
+
res.x = (datum, el, params) => {
|
|
51
|
+
const xVals = xAccessor(datum), scale = params[scaleXId];
|
|
52
|
+
return isArray(xVals) ? scale.scale(xVals[0]) : scale.scale(xVals);
|
|
53
|
+
}, res.x1 = (datum, el, params) => {
|
|
54
|
+
const scale = params[scaleXId], xVals = xAccessor(datum);
|
|
55
|
+
if (isArray(xVals) && xVals.length > 1) return scale.scale(xVals[1]);
|
|
56
|
+
const domain = scale.domain(), min = Math.min.apply(null, domain), max = Math.max.apply(null, domain), baseValue = min > 0 ? min : max < 0 ? max : 0;
|
|
57
|
+
return scale.scale(baseValue);
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
if (isArray(null === (_b = markEncoder.y) || void 0 === _b ? void 0 : _b.field)) res.y = {
|
|
61
|
+
field: markEncoder.y.field[0],
|
|
62
|
+
scale: markEncoder.y.scale
|
|
63
|
+
}, res.y1 = {
|
|
64
|
+
field: markEncoder.y.field[1],
|
|
65
|
+
scale: markEncoder.y.scale
|
|
66
|
+
}; else {
|
|
67
|
+
const yAccessor = getFieldAccessor(markEncoder.y.field);
|
|
68
|
+
res.y = (datum, el, params) => {
|
|
69
|
+
const yVals = yAccessor(datum), scale = params[scaleYId];
|
|
70
|
+
return isArray(yVals) ? scale.scale(yVals[0]) : scale.scale(yVals);
|
|
71
|
+
}, res.y1 = (datum, el, params) => {
|
|
72
|
+
const scale = params[scaleYId], yVals = yAccessor(datum);
|
|
73
|
+
if (isArray(yVals) && yVals.length > 1) return scale.scale(yVals[1]);
|
|
74
|
+
const domain = scale.domain(), min = Math.min.apply(null, domain), max = Math.max.apply(null, domain), baseValue = min > 0 ? min : max < 0 ? max : 0;
|
|
75
|
+
return scale.scale(baseValue);
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return markEncoder.color || markEncoder.group ? res.fill = null !== (_c = markEncoder.color) && void 0 !== _c ? _c : markEncoder.group : res.fill = null !== (_e = null === (_d = this.spec.style) || void 0 === _d ? void 0 : _d.fill) && void 0 !== _e ? _e : getPalette()[0],
|
|
79
|
+
res;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
RectSemanticMark.type = PlotMakType.rect;
|
|
84
|
+
//# sourceMappingURL=rect.js.map
|
package/es/rect.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
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';\nimport { SemanticMark } from './semantic-mark';\nimport { getPalette, GrammarMarkType } from '@visactor/vgrammar';\nimport { isArray } from '@visactor/vutils';\nimport { PlotMakType } from './enums';\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 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 (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.color || markEncoder.group) {\n res.fill = markEncoder.color ?? markEncoder.group;\n } else {\n res.fill = this.spec.style?.fill ?? getPalette()[0];\n }\n\n return res;\n }\n}\n"]}
|
package/es/rule-x.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { RuleXEncodeChannels, WithDefaultEncode, BasicEncoderSpecMap, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf } from '@visactor/vgrammar';
|
|
2
|
+
import { SemanticMark } from './semantic-mark';
|
|
3
|
+
import { GrammarMarkType } from '@visactor/vgrammar';
|
|
4
|
+
import { PlotMakType } from './enums';
|
|
5
|
+
export declare class RuleX extends SemanticMark<BasicEncoderSpecMap['rule'], RuleXEncodeChannels> {
|
|
6
|
+
static readonly type = PlotMakType.ruleX;
|
|
7
|
+
constructor(id?: string | number);
|
|
8
|
+
setMarkType(): GrammarMarkType;
|
|
9
|
+
protected parseScaleOfEncodeX(option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['rule'], RuleXEncodeChannels>, RuleXEncodeChannels>): ScaleSpec | Nil;
|
|
10
|
+
parseScaleByEncode(channel: RuleXEncodeChannels, option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['rule'], RuleXEncodeChannels>, RuleXEncodeChannels>): ScaleSpec | Nil;
|
|
11
|
+
convertMarkEncode(encode: WithDefaultEncode<BasicEncoderSpecMap['rule'], RuleXEncodeChannels>): GenerateBaseEncodeSpec<BasicEncoderSpecMap['rule']>;
|
|
12
|
+
}
|
package/es/rule-x.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { SemanticMark } from "./semantic-mark";
|
|
2
|
+
|
|
3
|
+
import { getPalette, GrammarMarkType } from "@visactor/vgrammar";
|
|
4
|
+
|
|
5
|
+
import { PlotMakType } from "./enums";
|
|
6
|
+
|
|
7
|
+
export class RuleX extends SemanticMark {
|
|
8
|
+
constructor(id) {
|
|
9
|
+
super(PlotMakType.ruleX, id);
|
|
10
|
+
}
|
|
11
|
+
setMarkType() {
|
|
12
|
+
return GrammarMarkType.rule;
|
|
13
|
+
}
|
|
14
|
+
parseScaleOfEncodeX(option) {
|
|
15
|
+
const res = super.parseScaleOfEncodeX(option);
|
|
16
|
+
return res.type = "point", res;
|
|
17
|
+
}
|
|
18
|
+
parseScaleByEncode(channel, option) {
|
|
19
|
+
return this.parseScaleOfCommonEncode(channel, option);
|
|
20
|
+
}
|
|
21
|
+
convertMarkEncode(encode) {
|
|
22
|
+
var _a, _b, _c;
|
|
23
|
+
const markEncoder = this.convertSimpleMarkEncode(encode), res = {
|
|
24
|
+
x: markEncoder.x,
|
|
25
|
+
x1: markEncoder.x,
|
|
26
|
+
y: (datum, el, params) => 0,
|
|
27
|
+
y1: (datum, el, params) => params.viewBox.height()
|
|
28
|
+
};
|
|
29
|
+
return markEncoder.color || markEncoder.group ? res.stroke = null !== (_a = markEncoder.color) && void 0 !== _a ? _a : markEncoder.group : res.stroke = null !== (_c = null === (_b = this.spec.style) || void 0 === _b ? void 0 : _b.stroke) && void 0 !== _c ? _c : getPalette()[0],
|
|
30
|
+
res;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
RuleX.type = PlotMakType.ruleX;
|
|
35
|
+
//# sourceMappingURL=rule-x.js.map
|
package/es/rule-x.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/rule-x.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,OAAO,KAAM,SAAQ,YAA8D;IAEvF,YAAY,EAAoB;QAC9B,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,WAAW;QACT,OAAO,eAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IAES,mBAAmB,CAC3B,MAAyG;QAEzG,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAE9C,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,kBAAkB,CAChB,OAA4B,EAC5B,MAAyG;QAEzG,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,iBAAiB,CACf,MAA2E;;QAE3E,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEzD,MAAM,GAAG,GAAG;YACV,CAAC,EAAE,WAAW,CAAC,CAAC;YAChB,EAAE,EAAE,WAAW,CAAC,CAAC;YACjB,CAAC,EAAE,CAAC,KAAU,EAAE,EAAY,EAAE,MAAW,EAAE,EAAE;gBAC3C,OAAO,CAAC,CAAC;YACX,CAAC;YACD,EAAE,EAAE,CAAC,KAAU,EAAE,EAAY,EAAE,MAAW,EAAE,EAAE;gBAC5C,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACjC,CAAC;SACkD,CAAC;QAEtD,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,EAAE;YAC1C,GAAG,CAAC,MAAM,GAAG,MAAA,WAAW,CAAC,KAAK,mCAAI,WAAW,CAAC,KAAK,CAAC;SACrD;aAAM;YACL,GAAG,CAAC,MAAM,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,0CAAE,MAAM,mCAAI,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;SACzD;QAED,OAAO,GAAG,CAAC;IACb,CAAC;;AAhDe,UAAI,GAAG,WAAW,CAAC,KAAK,CAAC","file":"rule-x.js","sourcesContent":["import type {\n RuleXEncodeChannels,\n WithDefaultEncode,\n BasicEncoderSpecMap,\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n IElement,\n Nil,\n ScaleSpec,\n ValueOf\n} from '@visactor/vgrammar';\nimport { SemanticMark } from './semantic-mark';\nimport { getPalette, GrammarMarkType } from '@visactor/vgrammar';\nimport { PlotMakType } from './enums';\n\nexport class RuleX extends SemanticMark<BasicEncoderSpecMap['rule'], RuleXEncodeChannels> {\n static readonly type = PlotMakType.ruleX;\n constructor(id?: string | number) {\n super(PlotMakType.ruleX, id);\n }\n\n setMarkType() {\n return GrammarMarkType.rule;\n }\n\n protected parseScaleOfEncodeX(\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['rule'], RuleXEncodeChannels>, RuleXEncodeChannels>\n ): ScaleSpec | Nil {\n const res = super.parseScaleOfEncodeX(option);\n\n res.type = 'point';\n return res;\n }\n\n parseScaleByEncode(\n channel: RuleXEncodeChannels,\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['rule'], RuleXEncodeChannels>, RuleXEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<BasicEncoderSpecMap['rule'], RuleXEncodeChannels>\n ): GenerateBaseEncodeSpec<BasicEncoderSpecMap['rule']> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n const res = {\n x: markEncoder.x,\n x1: markEncoder.x,\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 } as GenerateEncoderSpec<BasicEncoderSpecMap['rule']>;\n\n if (markEncoder.color || markEncoder.group) {\n res.stroke = markEncoder.color ?? markEncoder.group;\n } else {\n res.stroke = this.spec.style?.stroke ?? getPalette()[0];\n }\n\n return res;\n }\n}\n"]}
|
package/es/rule-y.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { RuleYEncodeChannels, WithDefaultEncode, BasicEncoderSpecMap, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf } from '@visactor/vgrammar';
|
|
2
|
+
import { SemanticMark } from './semantic-mark';
|
|
3
|
+
import { GrammarMarkType } from '@visactor/vgrammar';
|
|
4
|
+
import { PlotMakType } from './enums';
|
|
5
|
+
export declare class RuleY extends SemanticMark<BasicEncoderSpecMap['rule'], RuleYEncodeChannels> {
|
|
6
|
+
static readonly type = PlotMakType.ruleX;
|
|
7
|
+
constructor(id?: string | number);
|
|
8
|
+
setMarkType(): GrammarMarkType;
|
|
9
|
+
protected parseScaleOfEncodeX(option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['rule'], RuleYEncodeChannels>, RuleYEncodeChannels>): ScaleSpec | Nil;
|
|
10
|
+
parseScaleByEncode(channel: RuleYEncodeChannels, option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['rule'], RuleYEncodeChannels>, RuleYEncodeChannels>): ScaleSpec | Nil;
|
|
11
|
+
convertMarkEncode(encode: WithDefaultEncode<BasicEncoderSpecMap['rule'], RuleYEncodeChannels>): GenerateBaseEncodeSpec<BasicEncoderSpecMap['rule']>;
|
|
12
|
+
}
|
package/es/rule-y.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { SemanticMark } from "./semantic-mark";
|
|
2
|
+
|
|
3
|
+
import { getPalette, GrammarMarkType } from "@visactor/vgrammar";
|
|
4
|
+
|
|
5
|
+
import { PlotMakType } from "./enums";
|
|
6
|
+
|
|
7
|
+
export class RuleY extends SemanticMark {
|
|
8
|
+
constructor(id) {
|
|
9
|
+
super(PlotMakType.ruleX, id);
|
|
10
|
+
}
|
|
11
|
+
setMarkType() {
|
|
12
|
+
return GrammarMarkType.rule;
|
|
13
|
+
}
|
|
14
|
+
parseScaleOfEncodeX(option) {
|
|
15
|
+
const res = super.parseScaleOfEncodeX(option);
|
|
16
|
+
return res.type = "point", res;
|
|
17
|
+
}
|
|
18
|
+
parseScaleByEncode(channel, option) {
|
|
19
|
+
return this.parseScaleOfCommonEncode(channel, option);
|
|
20
|
+
}
|
|
21
|
+
convertMarkEncode(encode) {
|
|
22
|
+
var _a, _b, _c;
|
|
23
|
+
const markEncoder = this.convertSimpleMarkEncode(encode), res = {
|
|
24
|
+
y: markEncoder.y,
|
|
25
|
+
y1: markEncoder.y,
|
|
26
|
+
x: (datum, el, params) => 0,
|
|
27
|
+
x1: (datum, el, params) => params.viewBox.width()
|
|
28
|
+
};
|
|
29
|
+
return markEncoder.color || markEncoder.group ? res.stroke = null !== (_a = markEncoder.color) && void 0 !== _a ? _a : markEncoder.group : res.stroke = null !== (_c = null === (_b = this.spec.style) || void 0 === _b ? void 0 : _b.stroke) && void 0 !== _c ? _c : getPalette()[0],
|
|
30
|
+
res;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
RuleY.type = PlotMakType.ruleX;
|
package/es/rule-y.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/rule-y.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,OAAO,KAAM,SAAQ,YAA8D;IAEvF,YAAY,EAAoB;QAC9B,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,WAAW;QACT,OAAO,eAAe,CAAC,IAAI,CAAC;IAC9B,CAAC;IAES,mBAAmB,CAC3B,MAAyG;QAEzG,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAE9C,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,kBAAkB,CAChB,OAA4B,EAC5B,MAAyG;QAEzG,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,iBAAiB,CACf,MAA2E;;QAE3E,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEzD,MAAM,GAAG,GAAG;YACV,CAAC,EAAE,WAAW,CAAC,CAAC;YAChB,EAAE,EAAE,WAAW,CAAC,CAAC;YACjB,CAAC,EAAE,CAAC,KAAU,EAAE,EAAY,EAAE,MAAW,EAAE,EAAE;gBAC3C,OAAO,CAAC,CAAC;YACX,CAAC;YACD,EAAE,EAAE,CAAC,KAAU,EAAE,EAAY,EAAE,MAAW,EAAE,EAAE;gBAC5C,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAChC,CAAC;SACkD,CAAC;QAEtD,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,EAAE;YAC1C,GAAG,CAAC,MAAM,GAAG,MAAA,WAAW,CAAC,KAAK,mCAAI,WAAW,CAAC,KAAK,CAAC;SACrD;aAAM;YACL,GAAG,CAAC,MAAM,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,KAAK,0CAAE,MAAM,mCAAI,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;SACzD;QAED,OAAO,GAAG,CAAC;IACb,CAAC;;AAhDe,UAAI,GAAG,WAAW,CAAC,KAAK,CAAC","file":"rule-y.js","sourcesContent":["import type {\n RuleYEncodeChannels,\n WithDefaultEncode,\n BasicEncoderSpecMap,\n GenerateBaseEncodeSpec,\n GenerateEncoderSpec,\n IElement,\n Nil,\n ScaleSpec,\n ValueOf\n} from '@visactor/vgrammar';\nimport { SemanticMark } from './semantic-mark';\nimport { getPalette, GrammarMarkType } from '@visactor/vgrammar';\nimport { PlotMakType } from './enums';\n\nexport class RuleY extends SemanticMark<BasicEncoderSpecMap['rule'], RuleYEncodeChannels> {\n static readonly type = PlotMakType.ruleX;\n constructor(id?: string | number) {\n super(PlotMakType.ruleX, id);\n }\n\n setMarkType() {\n return GrammarMarkType.rule;\n }\n\n protected parseScaleOfEncodeX(\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['rule'], RuleYEncodeChannels>, RuleYEncodeChannels>\n ): ScaleSpec | Nil {\n const res = super.parseScaleOfEncodeX(option);\n\n res.type = 'point';\n return res;\n }\n\n parseScaleByEncode(\n channel: RuleYEncodeChannels,\n option: ValueOf<WithDefaultEncode<BasicEncoderSpecMap['rule'], RuleYEncodeChannels>, RuleYEncodeChannels>\n ): ScaleSpec | Nil {\n return this.parseScaleOfCommonEncode(channel, option);\n }\n\n convertMarkEncode(\n encode: WithDefaultEncode<BasicEncoderSpecMap['rule'], RuleYEncodeChannels>\n ): GenerateBaseEncodeSpec<BasicEncoderSpecMap['rule']> {\n const markEncoder = this.convertSimpleMarkEncode(encode);\n\n const res = {\n y: markEncoder.y,\n y1: markEncoder.y,\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 } as GenerateEncoderSpec<BasicEncoderSpecMap['rule']>;\n\n if (markEncoder.color || markEncoder.group) {\n res.stroke = markEncoder.color ?? markEncoder.group;\n } else {\n res.stroke = this.spec.style?.stroke ?? getPalette()[0];\n }\n\n return res;\n }\n}\n"]}
|
package/es/rule.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { RuleEncodeChannels, WithDefaultEncode, PlotRuleEncoderSpec, GenerateBaseEncodeSpec, Nil, ScaleSpec, ValueOf } from '@visactor/vgrammar';
|
|
2
|
+
import { SemanticMark } from './semantic-mark';
|
|
3
|
+
import { GrammarMarkType } from '@visactor/vgrammar';
|
|
4
|
+
import { PlotMakType } from './enums';
|
|
5
|
+
export declare class Rule extends SemanticMark<PlotRuleEncoderSpec, RuleEncodeChannels> {
|
|
6
|
+
static readonly type = PlotMakType.rule;
|
|
7
|
+
constructor(id?: string | number);
|
|
8
|
+
setMarkType(): GrammarMarkType;
|
|
9
|
+
protected parseScaleOfEncodeX(option: ValueOf<WithDefaultEncode<PlotRuleEncoderSpec, RuleEncodeChannels>, RuleEncodeChannels>): ScaleSpec | Nil;
|
|
10
|
+
parseScaleByEncode(channel: RuleEncodeChannels, option: ValueOf<WithDefaultEncode<PlotRuleEncoderSpec, RuleEncodeChannels>, RuleEncodeChannels>): ScaleSpec | Nil;
|
|
11
|
+
convertMarkEncode(encode: WithDefaultEncode<PlotRuleEncoderSpec, RuleEncodeChannels>): GenerateBaseEncodeSpec<PlotRuleEncoderSpec>;
|
|
12
|
+
}
|