@visactor/vgrammar-plot 0.11.0-alpha.1 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/plot.d.ts +0 -1
- package/cjs/plot.js +1 -33
- package/cjs/plot.js.map +1 -1
- package/es/plot.d.ts +0 -1
- package/es/plot.js +1 -33
- package/es/plot.js.map +1 -1
- package/package.json +7 -7
package/cjs/plot.d.ts
CHANGED
|
@@ -14,7 +14,6 @@ export declare class Plot implements IPlot {
|
|
|
14
14
|
private _mergeScales;
|
|
15
15
|
protected parseViewSpec(): ViewSpec;
|
|
16
16
|
run(morphConfig?: IRunningConfig): this;
|
|
17
|
-
runAsync(morphConfig?: IRunningConfig): Promise<this>;
|
|
18
17
|
release(): this;
|
|
19
18
|
updateSpec(spec: PlotSpec): this;
|
|
20
19
|
parseSpec(spec: PlotSpec, isUpdate?: boolean): this;
|
package/cjs/plot.js
CHANGED
|
@@ -1,31 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
4
|
-
return new (P || (P = Promise))((function(resolve, reject) {
|
|
5
|
-
function fulfilled(value) {
|
|
6
|
-
try {
|
|
7
|
-
step(generator.next(value));
|
|
8
|
-
} catch (e) {
|
|
9
|
-
reject(e);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
function rejected(value) {
|
|
13
|
-
try {
|
|
14
|
-
step(generator.throw(value));
|
|
15
|
-
} catch (e) {
|
|
16
|
-
reject(e);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
function step(result) {
|
|
20
|
-
var value;
|
|
21
|
-
result.done ? resolve(result.value) : (value = result.value, value instanceof P ? value : new P((function(resolve) {
|
|
22
|
-
resolve(value);
|
|
23
|
-
}))).then(fulfilled, rejected);
|
|
24
|
-
}
|
|
25
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
26
|
-
}));
|
|
27
|
-
};
|
|
28
|
-
|
|
29
3
|
Object.defineProperty(exports, "__esModule", {
|
|
30
4
|
value: !0
|
|
31
5
|
}), exports.Plot = void 0;
|
|
@@ -115,13 +89,7 @@ class Plot {
|
|
|
115
89
|
}
|
|
116
90
|
run(morphConfig) {
|
|
117
91
|
return this.view && (this._hasInited ? this.view.updateSpec(this.parseViewSpec()) : this.view.parseSpec(this.parseViewSpec()),
|
|
118
|
-
this._hasInited = !0, this.view.
|
|
119
|
-
}
|
|
120
|
-
runAsync(morphConfig) {
|
|
121
|
-
return __awaiter(this, void 0, void 0, (function*() {
|
|
122
|
-
return this.view && (this._hasInited ? this.view.updateSpec(this.parseViewSpec()) : this.view.parseSpec(this.parseViewSpec()),
|
|
123
|
-
this._hasInited = !0, yield this.view.runAsync(morphConfig)), this;
|
|
124
|
-
}));
|
|
92
|
+
this._hasInited = !0, this.view.run(morphConfig)), this;
|
|
125
93
|
}
|
|
126
94
|
release() {
|
|
127
95
|
return this.view && this.view.release(), this;
|
package/cjs/plot.js.map
CHANGED
|
@@ -1 +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 IRunningConfig,\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-core';\nimport type { ILogger } from '@visactor/vutils';\nimport { Logger, isNil, merge } from '@visactor/vutils';\nimport { mergeGrammarSpecs } from './util';\nimport { PlotMakType } from './enums';\nimport { Factory, SIGNAL_VIEW_BOX, View } from '@visactor/vgrammar-core';\n\nexport class Plot implements IPlot {\n static useMarks(marks: IPlotMarkConstructor[]) {\n marks.forEach(mark => {\n Factory.registerPlotMarks(mark.type, mark);\n });\n }\n readonly view: IView;\n private _semanticMarks: PlotMark[];\n private _hasInited?: boolean;\n private _coordinate: CoordinateOption;\n private _logger: ILogger;\n private _theme?: string;\n\n constructor(option?: IPlotOptions) {\n this.view = new View(option);\n this._semanticMarks = [];\n this._logger = Logger.getInstance();\n }\n\n theme(theme: string) {\n this._theme = theme;\n\n this.view.parseSpec({ theme });\n\n return this;\n }\n\n private _mergeScales(scales: ScaleSpec[], prevScales: ScaleSpec[]) {\n return scales.reduce((res, scale) => {\n if (scale.id) {\n const prevIndex = res.findIndex(prev => prev.id === scale.id);\n\n if (prevIndex >= 0) {\n const prevScale = res[prevIndex];\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\n if ((scale as any).userScale) {\n res[prevIndex] = merge(prevScale, (scale as any).userScale);\n }\n } else {\n (scale as any).userScale = null;\n res.push(scale);\n }\n }\n\n return res;\n }, prevScales);\n }\n\n protected parseViewSpec() {\n const spec: ViewSpec = {\n theme: this._theme,\n data: [],\n interactions: [],\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, interactions } = 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 if (interactions && interactions.length) {\n spec.interactions = spec.interactions.concat(interactions);\n }\n });\n\n spec.marks = [\n {\n type: 'group',\n id: 'plotContainer',\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?: IRunningConfig) {\n if (this.view) {\n if (!this._hasInited) {\n this.view.parseSpec(this.parseViewSpec());\n } else {\n this.view.updateSpec(this.parseViewSpec());\n }\n this._hasInited = true;\n\n this.view.runSync(morphConfig);\n }\n\n return this;\n }\n\n async runAsync(morphConfig?: IRunningConfig) {\n if (this.view) {\n if (!this._hasInited) {\n this.view.parseSpec(this.parseViewSpec());\n } else {\n this.view.updateSpec(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"]}
|
|
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 IRunningConfig,\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-core';\nimport type { ILogger } from '@visactor/vutils';\nimport { Logger, isNil, merge } from '@visactor/vutils';\nimport { mergeGrammarSpecs } from './util';\nimport { PlotMakType } from './enums';\nimport { Factory, SIGNAL_VIEW_BOX, View } from '@visactor/vgrammar-core';\n\nexport class Plot implements IPlot {\n static useMarks(marks: IPlotMarkConstructor[]) {\n marks.forEach(mark => {\n Factory.registerPlotMarks(mark.type, mark);\n });\n }\n readonly view: IView;\n private _semanticMarks: PlotMark[];\n private _hasInited?: boolean;\n private _coordinate: CoordinateOption;\n private _logger: ILogger;\n private _theme?: string;\n\n constructor(option?: IPlotOptions) {\n this.view = new View(option);\n this._semanticMarks = [];\n this._logger = Logger.getInstance();\n }\n\n theme(theme: string) {\n this._theme = theme;\n\n this.view.parseSpec({ theme });\n\n return this;\n }\n\n private _mergeScales(scales: ScaleSpec[], prevScales: ScaleSpec[]) {\n return scales.reduce((res, scale) => {\n if (scale.id) {\n const prevIndex = res.findIndex(prev => prev.id === scale.id);\n\n if (prevIndex >= 0) {\n const prevScale = res[prevIndex];\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\n if ((scale as any).userScale) {\n res[prevIndex] = merge(prevScale, (scale as any).userScale);\n }\n } else {\n (scale as any).userScale = null;\n res.push(scale);\n }\n }\n\n return res;\n }, prevScales);\n }\n\n protected parseViewSpec() {\n const spec: ViewSpec = {\n theme: this._theme,\n data: [],\n interactions: [],\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, interactions } = 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 if (interactions && interactions.length) {\n spec.interactions = spec.interactions.concat(interactions);\n }\n });\n\n spec.marks = [\n {\n type: 'group',\n id: 'plotContainer',\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?: IRunningConfig) {\n if (this.view) {\n if (!this._hasInited) {\n this.view.parseSpec(this.parseViewSpec());\n } else {\n this.view.updateSpec(this.parseViewSpec());\n }\n this._hasInited = true;\n\n this.view.run(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/plot.d.ts
CHANGED
|
@@ -14,7 +14,6 @@ export declare class Plot implements IPlot {
|
|
|
14
14
|
private _mergeScales;
|
|
15
15
|
protected parseViewSpec(): ViewSpec;
|
|
16
16
|
run(morphConfig?: IRunningConfig): this;
|
|
17
|
-
runAsync(morphConfig?: IRunningConfig): Promise<this>;
|
|
18
17
|
release(): this;
|
|
19
18
|
updateSpec(spec: PlotSpec): this;
|
|
20
19
|
parseSpec(spec: PlotSpec, isUpdate?: boolean): this;
|
package/es/plot.js
CHANGED
|
@@ -1,29 +1,3 @@
|
|
|
1
|
-
var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
2
|
-
return new (P || (P = Promise))((function(resolve, reject) {
|
|
3
|
-
function fulfilled(value) {
|
|
4
|
-
try {
|
|
5
|
-
step(generator.next(value));
|
|
6
|
-
} catch (e) {
|
|
7
|
-
reject(e);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
function rejected(value) {
|
|
11
|
-
try {
|
|
12
|
-
step(generator.throw(value));
|
|
13
|
-
} catch (e) {
|
|
14
|
-
reject(e);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
function step(result) {
|
|
18
|
-
var value;
|
|
19
|
-
result.done ? resolve(result.value) : (value = result.value, value instanceof P ? value : new P((function(resolve) {
|
|
20
|
-
resolve(value);
|
|
21
|
-
}))).then(fulfilled, rejected);
|
|
22
|
-
}
|
|
23
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
-
}));
|
|
25
|
-
};
|
|
26
|
-
|
|
27
1
|
import { Logger, isNil, merge } from "@visactor/vutils";
|
|
28
2
|
|
|
29
3
|
import { mergeGrammarSpecs } from "./util";
|
|
@@ -115,13 +89,7 @@ export class Plot {
|
|
|
115
89
|
}
|
|
116
90
|
run(morphConfig) {
|
|
117
91
|
return this.view && (this._hasInited ? this.view.updateSpec(this.parseViewSpec()) : this.view.parseSpec(this.parseViewSpec()),
|
|
118
|
-
this._hasInited = !0, this.view.
|
|
119
|
-
}
|
|
120
|
-
runAsync(morphConfig) {
|
|
121
|
-
return __awaiter(this, void 0, void 0, (function*() {
|
|
122
|
-
return this.view && (this._hasInited ? this.view.updateSpec(this.parseViewSpec()) : this.view.parseSpec(this.parseViewSpec()),
|
|
123
|
-
this._hasInited = !0, yield this.view.runAsync(morphConfig)), this;
|
|
124
|
-
}));
|
|
92
|
+
this._hasInited = !0, this.view.run(morphConfig)), this;
|
|
125
93
|
}
|
|
126
94
|
release() {
|
|
127
95
|
return this.view && this.view.release(), this;
|
package/es/plot.js.map
CHANGED
|
@@ -1 +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 IRunningConfig,\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-core';\nimport type { ILogger } from '@visactor/vutils';\nimport { Logger, isNil, merge } from '@visactor/vutils';\nimport { mergeGrammarSpecs } from './util';\nimport { PlotMakType } from './enums';\nimport { Factory, SIGNAL_VIEW_BOX, View } from '@visactor/vgrammar-core';\n\nexport class Plot implements IPlot {\n static useMarks(marks: IPlotMarkConstructor[]) {\n marks.forEach(mark => {\n Factory.registerPlotMarks(mark.type, mark);\n });\n }\n readonly view: IView;\n private _semanticMarks: PlotMark[];\n private _hasInited?: boolean;\n private _coordinate: CoordinateOption;\n private _logger: ILogger;\n private _theme?: string;\n\n constructor(option?: IPlotOptions) {\n this.view = new View(option);\n this._semanticMarks = [];\n this._logger = Logger.getInstance();\n }\n\n theme(theme: string) {\n this._theme = theme;\n\n this.view.parseSpec({ theme });\n\n return this;\n }\n\n private _mergeScales(scales: ScaleSpec[], prevScales: ScaleSpec[]) {\n return scales.reduce((res, scale) => {\n if (scale.id) {\n const prevIndex = res.findIndex(prev => prev.id === scale.id);\n\n if (prevIndex >= 0) {\n const prevScale = res[prevIndex];\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\n if ((scale as any).userScale) {\n res[prevIndex] = merge(prevScale, (scale as any).userScale);\n }\n } else {\n (scale as any).userScale = null;\n res.push(scale);\n }\n }\n\n return res;\n }, prevScales);\n }\n\n protected parseViewSpec() {\n const spec: ViewSpec = {\n theme: this._theme,\n data: [],\n interactions: [],\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, interactions } = 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 if (interactions && interactions.length) {\n spec.interactions = spec.interactions.concat(interactions);\n }\n });\n\n spec.marks = [\n {\n type: 'group',\n id: 'plotContainer',\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?: IRunningConfig) {\n if (this.view) {\n if (!this._hasInited) {\n this.view.parseSpec(this.parseViewSpec());\n } else {\n this.view.updateSpec(this.parseViewSpec());\n }\n this._hasInited = true;\n\n this.view.runSync(morphConfig);\n }\n\n return this;\n }\n\n async runAsync(morphConfig?: IRunningConfig) {\n if (this.view) {\n if (!this._hasInited) {\n this.view.parseSpec(this.parseViewSpec());\n } else {\n this.view.updateSpec(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"]}
|
|
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 IRunningConfig,\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-core';\nimport type { ILogger } from '@visactor/vutils';\nimport { Logger, isNil, merge } from '@visactor/vutils';\nimport { mergeGrammarSpecs } from './util';\nimport { PlotMakType } from './enums';\nimport { Factory, SIGNAL_VIEW_BOX, View } from '@visactor/vgrammar-core';\n\nexport class Plot implements IPlot {\n static useMarks(marks: IPlotMarkConstructor[]) {\n marks.forEach(mark => {\n Factory.registerPlotMarks(mark.type, mark);\n });\n }\n readonly view: IView;\n private _semanticMarks: PlotMark[];\n private _hasInited?: boolean;\n private _coordinate: CoordinateOption;\n private _logger: ILogger;\n private _theme?: string;\n\n constructor(option?: IPlotOptions) {\n this.view = new View(option);\n this._semanticMarks = [];\n this._logger = Logger.getInstance();\n }\n\n theme(theme: string) {\n this._theme = theme;\n\n this.view.parseSpec({ theme });\n\n return this;\n }\n\n private _mergeScales(scales: ScaleSpec[], prevScales: ScaleSpec[]) {\n return scales.reduce((res, scale) => {\n if (scale.id) {\n const prevIndex = res.findIndex(prev => prev.id === scale.id);\n\n if (prevIndex >= 0) {\n const prevScale = res[prevIndex];\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\n if ((scale as any).userScale) {\n res[prevIndex] = merge(prevScale, (scale as any).userScale);\n }\n } else {\n (scale as any).userScale = null;\n res.push(scale);\n }\n }\n\n return res;\n }, prevScales);\n }\n\n protected parseViewSpec() {\n const spec: ViewSpec = {\n theme: this._theme,\n data: [],\n interactions: [],\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, interactions } = 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 if (interactions && interactions.length) {\n spec.interactions = spec.interactions.concat(interactions);\n }\n });\n\n spec.marks = [\n {\n type: 'group',\n id: 'plotContainer',\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?: IRunningConfig) {\n if (this.view) {\n if (!this._hasInited) {\n this.view.parseSpec(this.parseViewSpec());\n } else {\n this.view.updateSpec(this.parseViewSpec());\n }\n this._hasInited = true;\n\n this.view.run(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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visactor/vgrammar-plot",
|
|
3
|
-
"version": "0.11.0
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Plots of vgrammar.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"plot",
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
"dist"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@visactor/vgrammar-util": "0.11.0
|
|
28
|
-
"@visactor/vgrammar-coordinate": "0.11.0
|
|
29
|
-
"@visactor/vgrammar-core": "0.11.0
|
|
27
|
+
"@visactor/vgrammar-util": "0.11.0",
|
|
28
|
+
"@visactor/vgrammar-coordinate": "0.11.0",
|
|
29
|
+
"@visactor/vgrammar-core": "0.11.0",
|
|
30
30
|
"@visactor/vscale": "~0.17.3",
|
|
31
|
-
"@visactor/vrender-components": "
|
|
32
|
-
"@visactor/vrender-core": "
|
|
33
|
-
"@visactor/vrender-kits": "
|
|
31
|
+
"@visactor/vrender-components": "0.17.14",
|
|
32
|
+
"@visactor/vrender-core": "0.17.14",
|
|
33
|
+
"@visactor/vrender-kits": "0.17.14",
|
|
34
34
|
"@visactor/vutils": "~0.17.3"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|