@visactor/vstory 0.0.8-alpha.14 → 0.0.8-alpha.15

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/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './story/canvas/canvas';
1
2
  export * from './story';
2
3
  export * from './story/utils/vchart-pick';
3
4
  export * from './story/utils/chart';
package/cjs/index.js CHANGED
@@ -21,6 +21,7 @@ Object.defineProperty(exports, "__esModule", {
21
21
 
22
22
  const story_1 = require("./story");
23
23
 
24
- (0, story_1.registerCharacter)(), __exportStar(require("./story"), exports), __exportStar(require("./story/utils/vchart-pick"), exports),
24
+ (0, story_1.registerCharacter)(), __exportStar(require("./story/canvas/canvas"), exports),
25
+ __exportStar(require("./story"), exports), __exportStar(require("./story/utils/vchart-pick"), exports),
25
26
  __exportStar(require("./story/utils/chart"), exports), __exportStar(require("./story/utils/layout"), exports),
26
27
  __exportStar(require("./template/unit"), exports);
package/cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mCAA4C;AAE5C,IAAA,yBAAiB,GAAE,CAAC;AAEpB,0CAAwB;AACxB,4DAA0C;AAC1C,sDAAoC;AACpC,uDAAqC;AAErC,kDAAgC","file":"index.js","sourcesContent":["import { registerCharacter } from './story';\n\nregisterCharacter();\n\nexport * from './story';\nexport * from './story/utils/vchart-pick';\nexport * from './story/utils/chart';\nexport * from './story/utils/layout';\n\nexport * from './template/unit';\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mCAA4C;AAE5C,IAAA,yBAAiB,GAAE,CAAC;AAEpB,wDAAsC;AACtC,0CAAwB;AACxB,4DAA0C;AAC1C,sDAAoC;AACpC,uDAAqC;AAErC,kDAAgC","file":"index.js","sourcesContent":["import { registerCharacter } from './story';\n\nregisterCharacter();\n\nexport * from './story/canvas/canvas';\nexport * from './story';\nexport * from './story/utils/vchart-pick';\nexport * from './story/utils/chart';\nexport * from './story/utils/layout';\n\nexport * from './template/unit';\n"]}
@@ -2,6 +2,7 @@ import type { Story } from '../story';
2
2
  import type { IStage } from '@visactor/vrender';
3
3
  import type { IStoryCanvas, StoryEvent } from '../interface/runtime-interface';
4
4
  import type { ICharacter } from '../character/runtime-interface';
5
+ export declare function setBrowserEnv(): void;
5
6
  export declare class StoryCanvas implements IStoryCanvas {
6
7
  protected _story: Story;
7
8
  protected _canvas: HTMLCanvasElement;
@@ -10,15 +11,26 @@ export declare class StoryCanvas implements IStoryCanvas {
10
11
  getCanvas(): HTMLCanvasElement;
11
12
  protected _container: HTMLDivElement | null;
12
13
  get container(): HTMLDivElement;
14
+ protected _params: {
15
+ container?: HTMLDivElement;
16
+ canvas?: HTMLCanvasElement;
17
+ width?: number;
18
+ height?: number;
19
+ dpr?: number;
20
+ pluginList?: string[];
21
+ };
22
+ get dpr(): number;
13
23
  constructor(story: Story, params: {
14
24
  container?: HTMLDivElement;
15
25
  canvas?: HTMLCanvasElement;
16
26
  width?: number;
17
27
  height?: number;
28
+ dpr?: number;
29
+ pluginList?: string[];
18
30
  });
19
31
  resize(w: number, h: number): void;
20
32
  protected _initCanvasByContainer(): void;
21
- protected _initCanvasByCanvas(canvas: HTMLCanvasElement, width: number, height: number): void;
33
+ protected _initCanvasByCanvas(canvas: HTMLCanvasElement, width: number, height: number, dpr: number): void;
22
34
  getEventDetail(event: StoryEvent): {
23
35
  character: ICharacter;
24
36
  characterInfo: undefined;
@@ -2,12 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: !0
5
- }), exports.StoryCanvas = void 0;
5
+ }), exports.StoryCanvas = exports.setBrowserEnv = void 0;
6
6
 
7
7
  const vrender_1 = require("@visactor/vrender"), vrender_2 = require("@visactor/vrender");
8
8
 
9
- (0, vrender_1.preLoadAllModule)(), (0, vrender_2.loadBrowserEnv)(vrender_1.container),
10
- vrender_1.vglobal.setEnv("browser");
9
+ function setBrowserEnv() {
10
+ (0, vrender_1.preLoadAllModule)(), (0, vrender_2.loadBrowserEnv)(vrender_1.container),
11
+ vrender_1.vglobal.setEnv("browser");
12
+ }
13
+
14
+ exports.setBrowserEnv = setBrowserEnv;
11
15
 
12
16
  class StoryCanvas {
13
17
  getStage() {
@@ -19,15 +23,20 @@ class StoryCanvas {
19
23
  get container() {
20
24
  return this._container;
21
25
  }
26
+ get dpr() {
27
+ var _a;
28
+ return null !== (_a = this._params.dpr) && void 0 !== _a ? _a : vrender_1.vglobal.devicePixelRatio;
29
+ }
22
30
  constructor(story, params) {
23
- this._story = story, this._container = params.container, this._container && this._initCanvasByContainer(),
24
- params.canvas && this._initCanvasByCanvas(params.canvas, params.width || 500, params.height || 500);
31
+ this._story = story, this._params = params, this._container = params.container,
32
+ this._container && this._initCanvasByContainer(), params.canvas && this._initCanvasByCanvas(params.canvas, params.width || 500, params.height || 500, params.dpr);
25
33
  }
26
34
  resize(w, h) {
27
35
  this._canvas && (this._canvas.width = w * vrender_1.vglobal.devicePixelRatio, this._canvas.height = h * vrender_1.vglobal.devicePixelRatio,
28
36
  this._canvas.style.width = w + "px", this._canvas.style.height = h + "px", this._stage.resize(w, h));
29
37
  }
30
38
  _initCanvasByContainer() {
39
+ var _a;
31
40
  const canvas = document.createElement("canvas");
32
41
  canvas.style.position = "absolute", canvas.id = `_visactor_story_canvas_${this._story.id}`,
33
42
  this._container.appendChild(canvas), this._canvas = canvas;
@@ -35,19 +44,20 @@ class StoryCanvas {
35
44
  canvas: this._canvas,
36
45
  width: this._container.clientWidth,
37
46
  height: this._container.clientHeight,
38
- dpr: vrender_1.vglobal.devicePixelRatio,
47
+ dpr: this.dpr,
39
48
  canvasControled: !0,
40
49
  autoRender: !0,
41
50
  disableDirtyBounds: !0,
42
51
  ticker: new vrender_1.ManualTicker([]),
43
- pluginList: [ "RichTextEditPlugin" ],
52
+ pluginList: null !== (_a = this._params.pluginList) && void 0 !== _a ? _a : [],
44
53
  event: {
45
54
  clickInterval: 300
46
55
  }
47
56
  });
48
57
  this._stage = stage;
49
58
  }
50
- _initCanvasByCanvas(canvas, width, height) {
59
+ _initCanvasByCanvas(canvas, width, height, dpr) {
60
+ var _a;
51
61
  this._canvas = canvas;
52
62
  const stage = (0, vrender_1.createStage)({
53
63
  canvas: this._canvas,
@@ -57,8 +67,8 @@ class StoryCanvas {
57
67
  autoRender: !0,
58
68
  disableDirtyBounds: !0,
59
69
  ticker: new vrender_1.ManualTicker([]),
60
- pluginList: [ "RichTextEditPlugin" ],
61
- dpr: vrender_1.vglobal.devicePixelRatio,
70
+ pluginList: null !== (_a = this._params.pluginList) && void 0 !== _a ? _a : [],
71
+ dpr: this.dpr,
62
72
  event: {
63
73
  clickInterval: 300
64
74
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/story/canvas/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import type { Story } from '../story';\nimport type { IStage } from '@visactor/vrender';\nimport { createStage, vglobal, container, preLoadAllModule, ManualTicker } from '@visactor/vrender';\nimport { loadBrowserEnv } from '@visactor/vrender';\nimport type { IStoryCanvas, StoryEvent } from '../interface/runtime-interface';\nimport type { ICharacter } from '../character/runtime-interface';\n\npreLoadAllModule();\nloadBrowserEnv(container);\nvglobal.setEnv('browser');\n\nexport class StoryCanvas implements IStoryCanvas {\n protected _story: Story;\n protected _canvas: HTMLCanvasElement;\n protected _stage: IStage;\n getStage() {\n return this._stage;\n }\n\n getCanvas() {\n return this._canvas;\n }\n\n protected _container: HTMLDivElement | null;\n get container() {\n return this._container;\n }\n\n constructor(\n story: Story,\n params: {\n container?: HTMLDivElement;\n canvas?: HTMLCanvasElement;\n width?: number;\n height?: number;\n }\n ) {\n this._story = story;\n this._container = params.container;\n this._container && this._initCanvasByContainer();\n params.canvas && this._initCanvasByCanvas(params.canvas, params.width || 500, params.height || 500);\n }\n\n resize(w: number, h: number) {\n if (this._canvas) {\n this._canvas.width = w * vglobal.devicePixelRatio;\n this._canvas.height = h * vglobal.devicePixelRatio;\n this._canvas.style.width = w + 'px';\n this._canvas.style.height = h + 'px';\n this._stage.resize(w, h);\n }\n }\n\n protected _initCanvasByContainer() {\n const canvas = document.createElement('canvas');\n canvas.style.position = 'absolute';\n canvas.id = `_visactor_story_canvas_${this._story.id}`;\n this._container.appendChild(canvas);\n this._canvas = canvas;\n const stage = createStage({\n canvas: this._canvas,\n width: this._container.clientWidth,\n height: this._container.clientHeight,\n dpr: vglobal.devicePixelRatio,\n canvasControled: true,\n // 得开启自动渲染,否则编辑场景中无法触发视图更新\n autoRender: true,\n disableDirtyBounds: true,\n ticker: new ManualTicker([]),\n pluginList: ['RichTextEditPlugin'],\n event: {\n clickInterval: 300\n }\n });\n // @ts-ignore\n this._stage = stage;\n }\n\n protected _initCanvasByCanvas(canvas: HTMLCanvasElement, width: number, height: number) {\n this._canvas = canvas;\n const stage = createStage({\n canvas: this._canvas,\n width,\n height,\n canvasControled: true,\n // 得开启自动渲染,否则编辑场景中无法触发视图更新\n autoRender: true,\n disableDirtyBounds: true,\n ticker: new ManualTicker([]),\n pluginList: ['RichTextEditPlugin'],\n dpr: vglobal.devicePixelRatio,\n event: {\n clickInterval: 300\n }\n });\n // @ts-ignore\n this._stage = stage;\n }\n\n getEventDetail(event: StoryEvent) {\n // 得到交互元素的详细信息\n const characterMap = this._story.getCharacters();\n let characterInfo;\n let character: ICharacter;\n Object.keys(this._story.getCharacters()).find(id => {\n const characterTemp = characterMap[id];\n const info = characterTemp.checkEvent(event);\n if (info) {\n characterInfo = info;\n character = characterTemp;\n return true;\n }\n return false;\n });\n\n return {\n character,\n characterInfo\n };\n }\n\n release() {\n this._stage.release();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/story/canvas/canvas.ts"],"names":[],"mappings":"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","file":"canvas.js","sourcesContent":["import type { Story } from '../story';\nimport type { IStage } from '@visactor/vrender';\nimport { createStage, vglobal, container, preLoadAllModule, ManualTicker } from '@visactor/vrender';\nimport { loadBrowserEnv } from '@visactor/vrender';\nimport type { IStoryCanvas, StoryEvent } from '../interface/runtime-interface';\nimport type { ICharacter } from '../character/runtime-interface';\n\nexport function setBrowserEnv() {\n preLoadAllModule();\n loadBrowserEnv(container);\n vglobal.setEnv('browser');\n}\n\nexport class StoryCanvas implements IStoryCanvas {\n protected _story: Story;\n protected _canvas: HTMLCanvasElement;\n protected _stage: IStage;\n getStage() {\n return this._stage;\n }\n\n getCanvas() {\n return this._canvas;\n }\n\n protected _container: HTMLDivElement | null;\n get container() {\n return this._container;\n }\n\n protected _params: {\n container?: HTMLDivElement;\n canvas?: HTMLCanvasElement;\n width?: number;\n height?: number;\n dpr?: number;\n pluginList?: string[];\n };\n get dpr() {\n return this._params.dpr ?? vglobal.devicePixelRatio;\n }\n\n constructor(\n story: Story,\n params: {\n container?: HTMLDivElement;\n canvas?: HTMLCanvasElement;\n width?: number;\n height?: number;\n dpr?: number;\n pluginList?: string[];\n }\n ) {\n this._story = story;\n this._params = params;\n this._container = params.container;\n this._container && this._initCanvasByContainer();\n params.canvas && this._initCanvasByCanvas(params.canvas, params.width || 500, params.height || 500, params.dpr);\n }\n\n resize(w: number, h: number) {\n if (this._canvas) {\n this._canvas.width = w * vglobal.devicePixelRatio;\n this._canvas.height = h * vglobal.devicePixelRatio;\n this._canvas.style.width = w + 'px';\n this._canvas.style.height = h + 'px';\n this._stage.resize(w, h);\n }\n }\n\n protected _initCanvasByContainer() {\n const canvas = document.createElement('canvas');\n canvas.style.position = 'absolute';\n canvas.id = `_visactor_story_canvas_${this._story.id}`;\n this._container.appendChild(canvas);\n this._canvas = canvas;\n const stage = createStage({\n canvas: this._canvas,\n width: this._container.clientWidth,\n height: this._container.clientHeight,\n dpr: this.dpr,\n canvasControled: true,\n // 得开启自动渲染,否则编辑场景中无法触发视图更新\n autoRender: true,\n disableDirtyBounds: true,\n ticker: new ManualTicker([]),\n pluginList: this._params.pluginList ?? [],\n event: {\n clickInterval: 300\n }\n });\n // @ts-ignore\n this._stage = stage;\n }\n\n protected _initCanvasByCanvas(canvas: HTMLCanvasElement, width: number, height: number, dpr: number) {\n this._canvas = canvas;\n const stage = createStage({\n canvas: this._canvas,\n width,\n height,\n canvasControled: true,\n // 得开启自动渲染,否则编辑场景中无法触发视图更新\n autoRender: true,\n disableDirtyBounds: true,\n ticker: new ManualTicker([]),\n pluginList: this._params.pluginList ?? [],\n dpr: this.dpr,\n event: {\n clickInterval: 300\n }\n });\n // @ts-ignore\n this._stage = stage;\n }\n\n getEventDetail(event: StoryEvent) {\n // 得到交互元素的详细信息\n const characterMap = this._story.getCharacters();\n let characterInfo;\n let character: ICharacter;\n Object.keys(this._story.getCharacters()).find(id => {\n const characterTemp = characterMap[id];\n const info = characterTemp.checkEvent(event);\n if (info) {\n characterInfo = info;\n character = characterTemp;\n return true;\n }\n return false;\n });\n\n return {\n character,\n characterInfo\n };\n }\n\n release() {\n this._stage.release();\n }\n}\n"]}
@@ -33,8 +33,8 @@ class CharacterChart extends character_1.CharacterVisactor {
33
33
  ClassType: core_1.VChart,
34
34
  vchart: null,
35
35
  zIndex: this._spec.zIndex,
36
- mode: "desktop-browser",
37
- dpr: window.devicePixelRatio,
36
+ mode: "node" === this._option.story.option.renderMode ? "desktop-browser" : "node",
37
+ dpr: this._option.canvas.dpr,
38
38
  interactive: !1,
39
39
  autoRender: !1,
40
40
  disableDirtyBounds: !0,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/story/character/chart/character.ts"],"names":[],"mappings":"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","file":"character.js","sourcesContent":["import { CommonSpecRuntime } from './runtime/common-spec';\nimport { ComponentSpecRuntime } from './runtime/component-spec';\nimport type { IChartCharacterRuntimeConstructor } from './runtime/interface';\nimport { cloneDeep } from '@visactor/vutils';\nimport { VChart } from '@visactor/vchart/esm/core';\nimport type { IChartCharacterSpec } from '../dsl-interface';\nimport { Chart } from './graphic/vchart-graphic';\nimport { CharacterVisactor } from '../visactor/character';\nimport { SpecProcess } from './spec-process/spec-process';\nimport { ChartDataTempTransform } from './spec-process/data-temp-transform';\nimport type { ITicker } from '@visactor/vrender';\nimport type { IChartTemp } from './temp/interface';\nimport { SeriesSpecRuntime } from './runtime/series-spec';\nimport type { StoryEvent } from '../../interface/runtime-interface';\nimport type { ICharacterPickInfo } from '../runtime-interface';\nimport { getLayoutFromWidget } from '../../utils/layout';\nimport { getChartModelWithEvent } from '../../utils/vchart-pick';\nimport { mergeChartOption } from '../../utils/chart';\n\nexport class CharacterChart extends CharacterVisactor {\n static type = 'CharacterChart';\n static RunTime: IChartCharacterRuntimeConstructor[] = [\n ComponentSpecRuntime as unknown as IChartCharacterRuntimeConstructor,\n CommonSpecRuntime as unknown as IChartCharacterRuntimeConstructor,\n SeriesSpecRuntime as unknown as IChartCharacterRuntimeConstructor\n ];\n\n readonly visActorType = 'chart';\n\n protected declare _specProcess: SpecProcess;\n protected _ticker: ITicker;\n\n declare _graphic: Chart;\n\n protected declare _spec: IChartCharacterSpec;\n get spec() {\n return this._spec;\n }\n\n protected _initSpecProcess(): void {\n this._specProcess = new SpecProcess(this as any, ChartDataTempTransform, this.onSpecReady);\n }\n\n protected _initRuntime(): void {\n CharacterChart.RunTime.forEach(R => {\n this._runtime.push(new R(this));\n });\n }\n\n protected _parserSpec(): void {\n this._specProcess.updateConfig(this._spec);\n }\n protected _initGraphics(): void {\n const { spec, viewBox } = this._getChartOption();\n // @ts-ignore\n this._graphic = new Chart({\n renderCanvas: this._option.canvas.getCanvas(),\n spec,\n ClassType: VChart,\n vchart: null,\n zIndex: this._spec.zIndex,\n mode: 'desktop-browser',\n dpr: window.devicePixelRatio,\n interactive: false,\n autoRender: false,\n disableDirtyBounds: true,\n viewBox,\n ticker: this._option.canvas.getStage().ticker,\n visibleAll: false,\n ...(this._spec.options.panel ?? {}),\n chartInitOptions: mergeChartOption(\n {\n animation: true,\n disableTriggerEvent: true,\n performanceHook: {\n afterInitializeChart: () => {\n (<IChartTemp>this.specProcess.dataTempTransform?.specTemp)?.afterInitializeChart({ character: this });\n this._runtime.forEach(r => r.afterInitializeChart?.());\n },\n afterVRenderDraw: () => {\n this._runtime.forEach(r => r.afterVRenderDraw?.());\n }\n }\n },\n this._spec.options.initOption ?? {}\n )\n });\n this.option.graphicParent.add(this._graphic as any);\n }\n\n setAttributes(attr: Record<string, any>): void {\n // character 的属性\n if (attr.position) {\n this._spec.position = attr.position;\n // 位置属性\n this._graphic.updateViewBox(this.getViewBoxFromSpec().viewBox);\n }\n }\n getViewBoxFromSpec() {\n const layout = getLayoutFromWidget(this._spec.position);\n const viewBox = {\n x1: layout.x,\n x2: layout.x + layout.width,\n y1: layout.y,\n y2: layout.y + layout.height\n };\n return { layout, viewBox };\n }\n\n private _getChartOption() {\n const { layout, viewBox } = this.getViewBoxFromSpec();\n const spec = cloneDeep(this._specProcess.getVisSpec() ?? this._spec.options.spec);\n spec.width = layout.width;\n spec.height = layout.height;\n return {\n viewBox,\n spec\n };\n }\n\n protected _afterRender(): void {\n // console.log('afterRender');\n return;\n }\n protected _updateVisactorSpec(): void {\n this._graphic?.updateSpec(this._specProcess.getVisSpec());\n }\n\n clearCharacter(): void {\n this._graphic.vProduct.release();\n this._graphic.parent.removeChild(this._graphic);\n }\n\n tickTo(t: number): void {\n this._ticker.tickAt(t);\n }\n\n checkEvent(event: StoryEvent): false | ICharacterPickInfo {\n if (!(event.detailPath ?? event.path).some(g => g === this._graphic)) {\n return false;\n }\n const chartPath = event.detailPath[event.detailPath.length - 1];\n const result = getChartModelWithEvent(this._graphic.vProduct, event);\n if (!result) {\n // 点击到图表的空白区域\n if (this._graphic.pointInViewBox((event as any).canvasX, (event as any).canvasY)) {\n return {\n part: 'null',\n graphic: null,\n modelInfo: null,\n graphicType: 'null'\n };\n }\n return false;\n }\n const graphic = chartPath?.[chartPath.length - 1];\n return {\n part: result.type,\n modelInfo: result,\n graphic,\n graphicType: graphic.type\n };\n }\n\n release(): void {\n this.option.graphicParent.removeChild(this._graphic as any);\n this._graphic.release && this._graphic.release();\n }\n\n private _reflow() {\n if (!this._graphic) {\n this._initGraphics();\n return;\n }\n const { spec } = this._getChartOption();\n this._graphic.updateSpec(spec);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/story/character/chart/character.ts"],"names":[],"mappings":"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","file":"character.js","sourcesContent":["import { CommonSpecRuntime } from './runtime/common-spec';\nimport { ComponentSpecRuntime } from './runtime/component-spec';\nimport type { IChartCharacterRuntimeConstructor } from './runtime/interface';\nimport { cloneDeep } from '@visactor/vutils';\nimport { VChart } from '@visactor/vchart/esm/core';\nimport type { IChartCharacterSpec } from '../dsl-interface';\nimport { Chart } from './graphic/vchart-graphic';\nimport { CharacterVisactor } from '../visactor/character';\nimport { SpecProcess } from './spec-process/spec-process';\nimport { ChartDataTempTransform } from './spec-process/data-temp-transform';\nimport type { ITicker } from '@visactor/vrender';\nimport type { IChartTemp } from './temp/interface';\nimport { SeriesSpecRuntime } from './runtime/series-spec';\nimport type { StoryEvent } from '../../interface/runtime-interface';\nimport type { ICharacterPickInfo } from '../runtime-interface';\nimport { getLayoutFromWidget } from '../../utils/layout';\nimport { getChartModelWithEvent } from '../../utils/vchart-pick';\nimport { mergeChartOption } from '../../utils/chart';\n\nexport class CharacterChart extends CharacterVisactor {\n static type = 'CharacterChart';\n static RunTime: IChartCharacterRuntimeConstructor[] = [\n ComponentSpecRuntime as unknown as IChartCharacterRuntimeConstructor,\n CommonSpecRuntime as unknown as IChartCharacterRuntimeConstructor,\n SeriesSpecRuntime as unknown as IChartCharacterRuntimeConstructor\n ];\n\n readonly visActorType = 'chart';\n\n protected declare _specProcess: SpecProcess;\n protected _ticker: ITicker;\n\n declare _graphic: Chart;\n\n protected declare _spec: IChartCharacterSpec;\n get spec() {\n return this._spec;\n }\n\n protected _initSpecProcess(): void {\n this._specProcess = new SpecProcess(this as any, ChartDataTempTransform, this.onSpecReady);\n }\n\n protected _initRuntime(): void {\n CharacterChart.RunTime.forEach(R => {\n this._runtime.push(new R(this));\n });\n }\n\n protected _parserSpec(): void {\n this._specProcess.updateConfig(this._spec);\n }\n protected _initGraphics(): void {\n const { spec, viewBox } = this._getChartOption();\n // @ts-ignore\n this._graphic = new Chart({\n renderCanvas: this._option.canvas.getCanvas(),\n spec,\n ClassType: VChart,\n vchart: null,\n zIndex: this._spec.zIndex,\n mode: this._option.story.option.renderMode === 'node' ? 'desktop-browser' : 'node',\n dpr: this._option.canvas.dpr,\n interactive: false,\n autoRender: false,\n disableDirtyBounds: true,\n viewBox,\n ticker: this._option.canvas.getStage().ticker,\n visibleAll: false,\n ...(this._spec.options.panel ?? {}),\n chartInitOptions: mergeChartOption(\n {\n animation: true,\n disableTriggerEvent: true,\n performanceHook: {\n afterInitializeChart: () => {\n (<IChartTemp>this.specProcess.dataTempTransform?.specTemp)?.afterInitializeChart({ character: this });\n this._runtime.forEach(r => r.afterInitializeChart?.());\n },\n afterVRenderDraw: () => {\n this._runtime.forEach(r => r.afterVRenderDraw?.());\n }\n }\n },\n this._spec.options.initOption ?? {}\n )\n });\n this.option.graphicParent.add(this._graphic as any);\n }\n\n setAttributes(attr: Record<string, any>): void {\n // character 的属性\n if (attr.position) {\n this._spec.position = attr.position;\n // 位置属性\n this._graphic.updateViewBox(this.getViewBoxFromSpec().viewBox);\n }\n }\n getViewBoxFromSpec() {\n const layout = getLayoutFromWidget(this._spec.position);\n const viewBox = {\n x1: layout.x,\n x2: layout.x + layout.width,\n y1: layout.y,\n y2: layout.y + layout.height\n };\n return { layout, viewBox };\n }\n\n private _getChartOption() {\n const { layout, viewBox } = this.getViewBoxFromSpec();\n const spec = cloneDeep(this._specProcess.getVisSpec() ?? this._spec.options.spec);\n spec.width = layout.width;\n spec.height = layout.height;\n return {\n viewBox,\n spec\n };\n }\n\n protected _afterRender(): void {\n // console.log('afterRender');\n return;\n }\n protected _updateVisactorSpec(): void {\n this._graphic?.updateSpec(this._specProcess.getVisSpec());\n }\n\n clearCharacter(): void {\n this._graphic.vProduct.release();\n this._graphic.parent.removeChild(this._graphic);\n }\n\n tickTo(t: number): void {\n this._ticker.tickAt(t);\n }\n\n checkEvent(event: StoryEvent): false | ICharacterPickInfo {\n if (!(event.detailPath ?? event.path).some(g => g === this._graphic)) {\n return false;\n }\n const chartPath = event.detailPath[event.detailPath.length - 1];\n const result = getChartModelWithEvent(this._graphic.vProduct, event);\n if (!result) {\n // 点击到图表的空白区域\n if (this._graphic.pointInViewBox((event as any).canvasX, (event as any).canvasY)) {\n return {\n part: 'null',\n graphic: null,\n modelInfo: null,\n graphicType: 'null'\n };\n }\n return false;\n }\n const graphic = chartPath?.[chartPath.length - 1];\n return {\n part: result.type,\n modelInfo: result,\n graphic,\n graphicType: graphic.type\n };\n }\n\n release(): void {\n this.option.graphicParent.removeChild(this._graphic as any);\n this._graphic.release && this._graphic.release();\n }\n\n private _reflow() {\n if (!this._graphic) {\n this._initGraphics();\n return;\n }\n const { spec } = this._getChartOption();\n this._graphic.updateSpec(spec);\n }\n}\n"]}
@@ -1,2 +1,3 @@
1
+ export declare function registerEditPlugin(): void;
1
2
  export declare function registerCharacter(): void;
2
3
  export * from './story';
@@ -17,7 +17,7 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
17
17
 
18
18
  Object.defineProperty(exports, "__esModule", {
19
19
  value: !0
20
- }), exports.registerCharacter = void 0;
20
+ }), exports.registerCharacter = exports.registerEditPlugin = void 0;
21
21
 
22
22
  const character_qipao_1 = require("./character/component/characters/character-qipao"), character_rect_1 = require("./character/component/characters/character-rect"), factory_1 = require("./factory/factory"), vrender_1 = require("@visactor/vrender"), vrender_2 = require("@visactor/vrender"), vchart_graphic_render_1 = require("./character/chart/graphic/vchart-graphic-render"), character_text_1 = require("./character/component/characters/character-text"), vchart_graphic_picker_1 = require("./character/chart/graphic/vchart-graphic-picker"), character_1 = require("../constants/character"), character_line_1 = require("./character/component/characters/character-line"), character_image_1 = require("./character/component/characters/character-image"), character_shape_1 = require("./character/component/characters/character-shape"), vchart_1 = require("./character/chart/characters/vchart"), component_group_graphic_render_1 = require("./character/component/character-group/component-group-graphic-render"), character_timeline_1 = require("./character/component/characters/character-timeline"), rankingBar_1 = require("./character/chart/characters/rankingBar"), character_unit_1 = require("./character/component/characters/character-unit"), splitModule = new vrender_1.ContainerModule((bind => {
23
23
  bind(vchart_graphic_render_1.VChartRender).toSelf().inSingletonScope(), bind(vchart_graphic_render_1.ChartRender).toService(vchart_graphic_render_1.VChartRender),
@@ -25,10 +25,17 @@ const character_qipao_1 = require("./character/component/characters/character-qi
25
25
  bind(vrender_2.CanvasPickerContribution).toService(vchart_graphic_picker_1.VChartPicker),
26
26
  bind(component_group_graphic_render_1.ComponentGroupRender).toSelf().inSingletonScope(),
27
27
  bind(vrender_1.GraphicRender).toService(component_group_graphic_render_1.ComponentGroupRender);
28
- })), editPlugin = new vrender_1.ContainerModule((bind => {
29
- bind(vrender_1.RichTextEditPlugin).toSelf(), bind(vrender_1.AutoEnablePlugins).toService(vrender_1.RichTextEditPlugin);
30
28
  }));
31
29
 
30
+ function registerEditPlugin() {
31
+ const editPlugin = new vrender_1.ContainerModule((bind => {
32
+ bind(vrender_1.RichTextEditPlugin).toSelf(), bind(vrender_1.AutoEnablePlugins).toService(vrender_1.RichTextEditPlugin);
33
+ }));
34
+ vrender_1.container.load(editPlugin);
35
+ }
36
+
37
+ exports.registerEditPlugin = registerEditPlugin;
38
+
32
39
  let _register = !1;
33
40
 
34
41
  function registerCharacter() {
@@ -42,7 +49,7 @@ function registerCharacter() {
42
49
  factory_1.StoryFactory.registerCharacter(character_1.StoryComponentType.SHAPE, character_shape_1.CharacterComponentShape),
43
50
  factory_1.StoryFactory.registerCharacter(character_1.StoryComponentType.TIMELINE, character_timeline_1.CharacterComponentTimeline),
44
51
  factory_1.StoryFactory.registerCharacter(character_1.StoryComponentType.UNIT, character_unit_1.CharacterComponentUnit),
45
- vrender_1.container.load(splitModule), vrender_1.container.load(editPlugin));
52
+ vrender_1.container.load(splitModule));
46
53
  }
47
54
 
48
55
  exports.registerCharacter = registerCharacter, registerCharacter(), __exportStar(require("./story"), exports);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/story/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,sFAA2F;AAC3F,oFAAyF;AACzF,+CAAiD;AACjD,+CAAqH;AACrH,+CAA6D;AAC7D,2FAA4F;AAC5F,oFAAyF;AAEzF,2FAA+E;AAC/E,sDAA4D;AAC5D,oFAAyF;AACzF,sFAA2F;AAC3F,sFAA2F;AAC3F,gEAAsE;AACtE,yHAA4G;AAC5G,4FAAiG;AACjG,wEAA8E;AAC9E,oFAAyF;AAEzF,MAAM,WAAW,GAAG,IAAI,yBAAe,CAAC,IAAI,CAAC,EAAE;IAE7C,IAAI,CAAC,oCAAY,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC/C,IAAI,CAAC,mCAAW,CAAC,CAAC,SAAS,CAAC,oCAAY,CAAC,CAAC;IAC1C,IAAI,CAAC,uBAAa,CAAC,CAAC,SAAS,CAAC,mCAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,oCAAY,CAAC,CAAC,EAAE,CAAC,oCAAY,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACvD,IAAI,CAAC,kCAAwB,CAAC,CAAC,SAAS,CAAC,oCAAY,CAAC,CAAC;IAGvD,IAAI,CAAC,qDAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACvD,IAAI,CAAC,uBAAa,CAAC,CAAC,SAAS,CAAC,qDAAoB,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,IAAI,yBAAe,CAAC,IAAI,CAAC,EAAE;IAC5C,IAAI,CAAC,4BAAkB,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,IAAI,CAAC,2BAAiB,CAAC,CAAC,SAAS,CAAC,4BAAkB,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEH,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,SAAgB,iBAAiB;IAC/B,IAAI,SAAS,EAAE;QACb,OAAO;KACR;IACD,SAAS,GAAG,IAAI,CAAC;IACjB,sBAAY,CAAC,iBAAiB,CAAC,wBAAe,CAAC,IAAI,EAAE,wBAAe,CAAC,CAAC;IACtE,sBAAY,CAAC,iBAAiB,CAAC,gCAAmB,CAAC,IAAI,EAAE,gCAAmB,CAAC,CAAC;IAK9E,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,IAAI,EAAE,uCAAsB,CAAC,CAAC;IAChF,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,IAAI,EAAE,uCAAsB,CAAC,CAAC;IAEhF,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,KAAK,EAAE,yCAAuB,CAAC,CAAC;IAClF,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,IAAI,EAAE,uCAAsB,CAAC,CAAC;IAChF,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,KAAK,EAAE,yCAAuB,CAAC,CAAC;IAClF,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,KAAK,EAAE,yCAAuB,CAAC,CAAC;IAClF,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,QAAQ,EAAE,+CAA0B,CAAC,CAAC;IACxF,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,IAAI,EAAE,uCAAsB,CAAC,CAAC;IAEhF,mBAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5B,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7B,CAAC;AAvBD,8CAuBC;AAED,iBAAiB,EAAE,CAAC;AAEpB,0CAAwB","file":"index.js","sourcesContent":["import { CharacterComponentQipao } from './character/component/characters/character-qipao';\nimport { CharacterComponentRect } from './character/component/characters/character-rect';\nimport { StoryFactory } from './factory/factory';\nimport { AutoEnablePlugins, ContainerModule, GraphicRender, RichTextEditPlugin, container } from '@visactor/vrender';\nimport { CanvasPickerContribution } from '@visactor/vrender';\nimport { ChartRender, VChartRender } from './character/chart/graphic/vchart-graphic-render';\nimport { CharacterComponentText } from './character/component/characters/character-text';\n// import { CharacterComponentRichText } from './character/component/characters/character-richtext';\nimport { VChartPicker } from './character/chart/graphic/vchart-graphic-picker';\nimport { StoryComponentType } from '../constants/character';\nimport { CharacterComponentLine } from './character/component/characters/character-line';\nimport { CharacterComponentImage } from './character/component/characters/character-image';\nimport { CharacterComponentShape } from './character/component/characters/character-shape';\nimport { VChartCharacter } from './character/chart/characters/vchart';\nimport { ComponentGroupRender } from './character/component/character-group/component-group-graphic-render';\nimport { CharacterComponentTimeline } from './character/component/characters/character-timeline';\nimport { RankingBarCharacter } from './character/chart/characters/rankingBar';\nimport { CharacterComponentUnit } from './character/component/characters/character-unit';\n\nconst splitModule = new ContainerModule(bind => {\n // chart渲染器注入\n bind(VChartRender).toSelf().inSingletonScope();\n bind(ChartRender).toService(VChartRender);\n bind(GraphicRender).toService(ChartRender);\n bind(VChartPicker).to(VChartPicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(VChartPicker);\n\n // component渲染器注入\n bind(ComponentGroupRender).toSelf().inSingletonScope();\n bind(GraphicRender).toService(ComponentGroupRender);\n});\n\nconst editPlugin = new ContainerModule(bind => {\n bind(RichTextEditPlugin).toSelf();\n bind(AutoEnablePlugins).toService(RichTextEditPlugin);\n});\n\nlet _register = false;\nexport function registerCharacter() {\n if (_register) {\n return;\n }\n _register = true;\n StoryFactory.registerCharacter(VChartCharacter.type, VChartCharacter);\n StoryFactory.registerCharacter(RankingBarCharacter.type, RankingBarCharacter);\n\n // StoryFactory.registerCharacter('BarChart', CharacterChart);\n // StoryFactory.registerCharacter('CharacterChart', CharacterChart);\n // StoryFactory.registerCharacter('LineChart', CharacterChart);\n StoryFactory.registerCharacter(StoryComponentType.RECT, CharacterComponentRect);\n StoryFactory.registerCharacter(StoryComponentType.TEXT, CharacterComponentText);\n // StoryFactory.registerCharacter(StoryComponentType.RICH_TEXT, CharacterComponentRichText);\n StoryFactory.registerCharacter(StoryComponentType.QIPAO, CharacterComponentQipao);\n StoryFactory.registerCharacter(StoryComponentType.LINE, CharacterComponentLine);\n StoryFactory.registerCharacter(StoryComponentType.IMAGE, CharacterComponentImage);\n StoryFactory.registerCharacter(StoryComponentType.SHAPE, CharacterComponentShape);\n StoryFactory.registerCharacter(StoryComponentType.TIMELINE, CharacterComponentTimeline);\n StoryFactory.registerCharacter(StoryComponentType.UNIT, CharacterComponentUnit);\n\n container.load(splitModule);\n container.load(editPlugin);\n}\n\nregisterCharacter();\n\nexport * from './story';\n"]}
1
+ {"version":3,"sources":["../src/story/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,sFAA2F;AAC3F,oFAAyF;AACzF,+CAAiD;AACjD,+CAAqH;AACrH,+CAA6D;AAC7D,2FAA4F;AAC5F,oFAAyF;AAEzF,2FAA+E;AAC/E,sDAA4D;AAC5D,oFAAyF;AACzF,sFAA2F;AAC3F,sFAA2F;AAC3F,gEAAsE;AACtE,yHAA4G;AAC5G,4FAAiG;AACjG,wEAA8E;AAC9E,oFAAyF;AAEzF,MAAM,WAAW,GAAG,IAAI,yBAAe,CAAC,IAAI,CAAC,EAAE;IAE7C,IAAI,CAAC,oCAAY,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAC/C,IAAI,CAAC,mCAAW,CAAC,CAAC,SAAS,CAAC,oCAAY,CAAC,CAAC;IAC1C,IAAI,CAAC,uBAAa,CAAC,CAAC,SAAS,CAAC,mCAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,oCAAY,CAAC,CAAC,EAAE,CAAC,oCAAY,CAAC,CAAC,gBAAgB,EAAE,CAAC;IACvD,IAAI,CAAC,kCAAwB,CAAC,CAAC,SAAS,CAAC,oCAAY,CAAC,CAAC;IAGvD,IAAI,CAAC,qDAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACvD,IAAI,CAAC,uBAAa,CAAC,CAAC,SAAS,CAAC,qDAAoB,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEH,SAAgB,kBAAkB;IAChC,MAAM,UAAU,GAAG,IAAI,yBAAe,CAAC,IAAI,CAAC,EAAE;QAC5C,IAAI,CAAC,4BAAkB,CAAC,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,2BAAiB,CAAC,CAAC,SAAS,CAAC,4BAAkB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IACH,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7B,CAAC;AAND,gDAMC;AAED,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,SAAgB,iBAAiB;IAC/B,IAAI,SAAS,EAAE;QACb,OAAO;KACR;IACD,SAAS,GAAG,IAAI,CAAC;IACjB,sBAAY,CAAC,iBAAiB,CAAC,wBAAe,CAAC,IAAI,EAAE,wBAAe,CAAC,CAAC;IACtE,sBAAY,CAAC,iBAAiB,CAAC,gCAAmB,CAAC,IAAI,EAAE,gCAAmB,CAAC,CAAC;IAK9E,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,IAAI,EAAE,uCAAsB,CAAC,CAAC;IAChF,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,IAAI,EAAE,uCAAsB,CAAC,CAAC;IAEhF,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,KAAK,EAAE,yCAAuB,CAAC,CAAC;IAClF,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,IAAI,EAAE,uCAAsB,CAAC,CAAC;IAChF,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,KAAK,EAAE,yCAAuB,CAAC,CAAC;IAClF,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,KAAK,EAAE,yCAAuB,CAAC,CAAC;IAClF,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,QAAQ,EAAE,+CAA0B,CAAC,CAAC;IACxF,sBAAY,CAAC,iBAAiB,CAAC,8BAAkB,CAAC,IAAI,EAAE,uCAAsB,CAAC,CAAC;IAEhF,mBAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAtBD,8CAsBC;AAED,iBAAiB,EAAE,CAAC;AAEpB,0CAAwB","file":"index.js","sourcesContent":["import { CharacterComponentQipao } from './character/component/characters/character-qipao';\nimport { CharacterComponentRect } from './character/component/characters/character-rect';\nimport { StoryFactory } from './factory/factory';\nimport { AutoEnablePlugins, ContainerModule, GraphicRender, RichTextEditPlugin, container } from '@visactor/vrender';\nimport { CanvasPickerContribution } from '@visactor/vrender';\nimport { ChartRender, VChartRender } from './character/chart/graphic/vchart-graphic-render';\nimport { CharacterComponentText } from './character/component/characters/character-text';\n// import { CharacterComponentRichText } from './character/component/characters/character-richtext';\nimport { VChartPicker } from './character/chart/graphic/vchart-graphic-picker';\nimport { StoryComponentType } from '../constants/character';\nimport { CharacterComponentLine } from './character/component/characters/character-line';\nimport { CharacterComponentImage } from './character/component/characters/character-image';\nimport { CharacterComponentShape } from './character/component/characters/character-shape';\nimport { VChartCharacter } from './character/chart/characters/vchart';\nimport { ComponentGroupRender } from './character/component/character-group/component-group-graphic-render';\nimport { CharacterComponentTimeline } from './character/component/characters/character-timeline';\nimport { RankingBarCharacter } from './character/chart/characters/rankingBar';\nimport { CharacterComponentUnit } from './character/component/characters/character-unit';\n\nconst splitModule = new ContainerModule(bind => {\n // chart渲染器注入\n bind(VChartRender).toSelf().inSingletonScope();\n bind(ChartRender).toService(VChartRender);\n bind(GraphicRender).toService(ChartRender);\n bind(VChartPicker).to(VChartPicker).inSingletonScope();\n bind(CanvasPickerContribution).toService(VChartPicker);\n\n // component渲染器注入\n bind(ComponentGroupRender).toSelf().inSingletonScope();\n bind(GraphicRender).toService(ComponentGroupRender);\n});\n\nexport function registerEditPlugin() {\n const editPlugin = new ContainerModule(bind => {\n bind(RichTextEditPlugin).toSelf();\n bind(AutoEnablePlugins).toService(RichTextEditPlugin);\n });\n container.load(editPlugin);\n}\n\nlet _register = false;\nexport function registerCharacter() {\n if (_register) {\n return;\n }\n _register = true;\n StoryFactory.registerCharacter(VChartCharacter.type, VChartCharacter);\n StoryFactory.registerCharacter(RankingBarCharacter.type, RankingBarCharacter);\n\n // StoryFactory.registerCharacter('BarChart', CharacterChart);\n // StoryFactory.registerCharacter('CharacterChart', CharacterChart);\n // StoryFactory.registerCharacter('LineChart', CharacterChart);\n StoryFactory.registerCharacter(StoryComponentType.RECT, CharacterComponentRect);\n StoryFactory.registerCharacter(StoryComponentType.TEXT, CharacterComponentText);\n // StoryFactory.registerCharacter(StoryComponentType.RICH_TEXT, CharacterComponentRichText);\n StoryFactory.registerCharacter(StoryComponentType.QIPAO, CharacterComponentQipao);\n StoryFactory.registerCharacter(StoryComponentType.LINE, CharacterComponentLine);\n StoryFactory.registerCharacter(StoryComponentType.IMAGE, CharacterComponentImage);\n StoryFactory.registerCharacter(StoryComponentType.SHAPE, CharacterComponentShape);\n StoryFactory.registerCharacter(StoryComponentType.TIMELINE, CharacterComponentTimeline);\n StoryFactory.registerCharacter(StoryComponentType.UNIT, CharacterComponentUnit);\n\n container.load(splitModule);\n}\n\nregisterCharacter();\n\nexport * from './story';\n"]}
@@ -10,8 +10,11 @@ export interface IStoryInitOption {
10
10
  scaleX?: number;
11
11
  scaleY?: number;
12
12
  };
13
+ dpr?: number;
14
+ renderMode?: 'node' | 'browser';
13
15
  }
14
16
  export interface IStoryCanvas {
17
+ readonly dpr: number;
15
18
  getStage: () => IStage;
16
19
  getCanvas: () => HTMLCanvasElement;
17
20
  resize: (w: number, height: number) => void;
@@ -25,6 +28,7 @@ export interface IStory {
25
28
  readonly id: string;
26
29
  readonly player: IPlayer;
27
30
  readonly characterTree: ICharacterTree;
31
+ readonly option: IStoryInitOption;
28
32
  canvas: IStoryCanvas;
29
33
  getCharacters: () => {
30
34
  [key: string]: ICharacter;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/story/interface/runtime-interface.ts"],"names":[],"mappings":"","file":"runtime-interface.js","sourcesContent":["import type { IGraphic, IStage } from '@visactor/vrender';\nimport type { ICharacter, ICharacterSpec } from '../character';\nimport type { IPlayer } from '../../player/interface/player';\n\nexport interface IStoryInitOption {\n dom?: string | HTMLDivElement; // dom id\n canvas?: string | HTMLCanvasElement; // canvas id\n width?: number;\n height?: number;\n playerOption?: {\n scaleX?: number;\n scaleY?: number;\n };\n}\n\nexport interface IStoryCanvas {\n getStage: () => IStage;\n getCanvas: () => HTMLCanvasElement;\n resize: (w: number, height: number) => void;\n getEventDetail: (event: StoryEvent) => {\n character: ICharacter;\n characterInfo: undefined;\n };\n release: () => void;\n}\n\nexport interface IStory {\n readonly id: string;\n readonly player: IPlayer;\n readonly characterTree: ICharacterTree;\n canvas: IStoryCanvas;\n getCharacters: () => { [key: string]: ICharacter };\n getCharactersById: (key: string) => ICharacter | null;\n}\nexport interface ICharacterTree {\n getCharacters: () => { [key: string]: ICharacter };\n getCharactersById: (key: string) => ICharacter | null;\n addCharacter: (spec: ICharacterSpec) => ICharacter;\n initCharacters: (spec: ICharacterSpec[]) => void;\n}\n\nexport type StoryEvent = Event & {\n detailPath: IGraphic[];\n path: IGraphic[];\n canvasX?: number;\n canvasY?: number;\n};\n"]}
1
+ {"version":3,"sources":["../src/story/interface/runtime-interface.ts"],"names":[],"mappings":"","file":"runtime-interface.js","sourcesContent":["import type { IGraphic, IStage } from '@visactor/vrender';\nimport type { ICharacter, ICharacterSpec } from '../character';\nimport type { IPlayer } from '../../player/interface/player';\n\nexport interface IStoryInitOption {\n dom?: string | HTMLDivElement; // dom id\n canvas?: string | HTMLCanvasElement; // canvas id\n width?: number;\n height?: number;\n playerOption?: {\n scaleX?: number;\n scaleY?: number;\n };\n dpr?: number;\n renderMode?: 'node' | 'browser';\n}\n\nexport interface IStoryCanvas {\n readonly dpr: number;\n getStage: () => IStage;\n getCanvas: () => HTMLCanvasElement;\n resize: (w: number, height: number) => void;\n getEventDetail: (event: StoryEvent) => {\n character: ICharacter;\n characterInfo: undefined;\n };\n release: () => void;\n}\n\nexport interface IStory {\n readonly id: string;\n readonly player: IPlayer;\n readonly characterTree: ICharacterTree;\n readonly option: IStoryInitOption;\n canvas: IStoryCanvas;\n getCharacters: () => { [key: string]: ICharacter };\n getCharactersById: (key: string) => ICharacter | null;\n}\nexport interface ICharacterTree {\n getCharacters: () => { [key: string]: ICharacter };\n getCharactersById: (key: string) => ICharacter | null;\n addCharacter: (spec: ICharacterSpec) => ICharacter;\n initCharacters: (spec: ICharacterSpec[]) => void;\n}\n\nexport type StoryEvent = Event & {\n detailPath: IGraphic[];\n path: IGraphic[];\n canvasX?: number;\n canvasY?: number;\n};\n"]}
@@ -12,6 +12,8 @@ export declare class Story implements IStory {
12
12
  get canvas(): IStoryCanvas;
13
13
  get player(): IPlayer;
14
14
  get characterTree(): ICharacterTree;
15
+ protected _option: IStoryInitOption;
16
+ get option(): IStoryInitOption;
15
17
  constructor(spec: IStorySpec | null, option: IStoryInitOption);
16
18
  load(spec: IStorySpec): void;
17
19
  getCharacters(): {
@@ -44,12 +44,16 @@ class Story {
44
44
  get characterTree() {
45
45
  return this._characterTree;
46
46
  }
47
+ get option() {
48
+ return this._option;
49
+ }
47
50
  constructor(spec, option) {
48
- this.id = "test-mvp_" + Story._id_++, this._canvas = new canvas_1.StoryCanvas(this, {
51
+ this.id = "test-mvp_" + Story._id_++, this._option = option, this._canvas = new canvas_1.StoryCanvas(this, {
49
52
  container: (0, vutils_1.isString)(option.dom) ? document.getElementById(option.dom) : option.dom,
50
53
  canvas: (0, vutils_1.isString)(option.canvas) ? document.getElementById(option.canvas) : option.canvas,
51
54
  width: option.width,
52
- height: option.height
55
+ height: option.height,
56
+ dpr: option.dpr
53
57
  }), this._player = new player_1.Player(this, option.playerOption), this._characterTree = new character_tree_1.CharacterTree(this),
54
58
  spec && this.load(spec);
55
59
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/story/story.ts"],"names":[],"mappings":"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","file":"story.js","sourcesContent":["import { isString } from '@visactor/vutils';\nimport type { ICharacterTree, IStory, IStoryCanvas, IStoryInitOption } from './interface/runtime-interface';\nimport type { ICharacter } from './character/runtime-interface';\nimport { StoryCanvas } from './canvas/canvas';\nimport type { IStorySpec } from './interface';\nimport { defaultTicker, defaultTimeline } from '@visactor/vrender';\nimport { CharacterTree } from './character-tree/character-tree';\nimport type { IPlayer } from '../player/interface/player';\nimport { Player } from '../player/player';\n\ndefaultTicker.remTimeline(defaultTimeline);\n\nexport class Story implements IStory {\n static _id_ = 0;\n\n protected _player: IPlayer;\n\n readonly id: string;\n\n protected _canvas: IStoryCanvas;\n\n protected _characterTree: ICharacterTree;\n\n protected _spec: IStorySpec;\n\n get canvas() {\n return this._canvas;\n }\n\n get player(): IPlayer {\n return this._player;\n }\n\n get characterTree() {\n return this._characterTree;\n }\n\n constructor(spec: IStorySpec | null, option: IStoryInitOption) {\n this.id = 'test-mvp_' + Story._id_++;\n this._canvas = new StoryCanvas(this, {\n container: isString(option.dom) ? (document.getElementById(option.dom) as HTMLDivElement) : option.dom,\n canvas: isString(option.canvas) ? (document.getElementById(option.canvas) as HTMLCanvasElement) : option.canvas,\n width: option.width,\n height: option.height\n });\n this._player = new Player(this, option.playerOption) as any;\n\n this._characterTree = new CharacterTree(this);\n spec && this.load(spec);\n }\n\n load(spec: IStorySpec) {\n this._spec = spec;\n if (!spec) {\n return;\n }\n this._characterTree.initCharacters(spec.characters);\n this._player.initActs(spec.acts);\n }\n\n getCharacters(): { [key: string]: ICharacter } {\n return this._characterTree.getCharacters();\n }\n\n getCharactersById(key: string) {\n return this._characterTree.getCharactersById(key);\n }\n\n // private _createAct(spec: IActSpec) {\n // this._player.addAct(spec, this._characters);\n // }\n\n play(loop: boolean = true) {\n // player 开始播放\n this._spec && this.load(this._spec);\n this._player.play();\n if (loop) {\n this._player.once('onstop', () => {\n this.play(loop);\n });\n }\n }\n\n pause() {\n this._player.pause();\n return;\n }\n\n async encodeToVideo(actIndexOrId: number, millsecond: number, fps: number) {\n return this._player.encodeToVideo(millsecond, fps);\n }\n\n getPlayer() {\n return this._player;\n }\n\n release() {\n this._player.release();\n this._canvas.release();\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/story/story.ts"],"names":[],"mappings":"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","file":"story.js","sourcesContent":["import { isString } from '@visactor/vutils';\nimport type { ICharacterTree, IStory, IStoryCanvas, IStoryInitOption } from './interface/runtime-interface';\nimport type { ICharacter } from './character/runtime-interface';\nimport { StoryCanvas } from './canvas/canvas';\nimport type { IStorySpec } from './interface';\nimport { defaultTicker, defaultTimeline } from '@visactor/vrender';\nimport { CharacterTree } from './character-tree/character-tree';\nimport type { IPlayer } from '../player/interface/player';\nimport { Player } from '../player/player';\n\ndefaultTicker.remTimeline(defaultTimeline);\n\nexport class Story implements IStory {\n static _id_ = 0;\n\n protected _player: IPlayer;\n\n readonly id: string;\n\n protected _canvas: IStoryCanvas;\n\n protected _characterTree: ICharacterTree;\n\n protected _spec: IStorySpec;\n\n get canvas() {\n return this._canvas;\n }\n\n get player(): IPlayer {\n return this._player;\n }\n\n get characterTree() {\n return this._characterTree;\n }\n\n protected _option: IStoryInitOption;\n get option() {\n return this._option;\n }\n\n constructor(spec: IStorySpec | null, option: IStoryInitOption) {\n this.id = 'test-mvp_' + Story._id_++;\n this._option = option;\n this._canvas = new StoryCanvas(this, {\n container: isString(option.dom) ? (document.getElementById(option.dom) as HTMLDivElement) : option.dom,\n canvas: isString(option.canvas) ? (document.getElementById(option.canvas) as HTMLCanvasElement) : option.canvas,\n width: option.width,\n height: option.height,\n dpr: option.dpr\n });\n this._player = new Player(this, option.playerOption) as any;\n\n this._characterTree = new CharacterTree(this);\n spec && this.load(spec);\n }\n\n load(spec: IStorySpec) {\n this._spec = spec;\n if (!spec) {\n return;\n }\n this._characterTree.initCharacters(spec.characters);\n this._player.initActs(spec.acts);\n }\n\n getCharacters(): { [key: string]: ICharacter } {\n return this._characterTree.getCharacters();\n }\n\n getCharactersById(key: string) {\n return this._characterTree.getCharactersById(key);\n }\n\n // private _createAct(spec: IActSpec) {\n // this._player.addAct(spec, this._characters);\n // }\n\n play(loop: boolean = true) {\n // player 开始播放\n this._spec && this.load(this._spec);\n this._player.play();\n if (loop) {\n this._player.once('onstop', () => {\n this.play(loop);\n });\n }\n }\n\n pause() {\n this._player.pause();\n return;\n }\n\n async encodeToVideo(actIndexOrId: number, millsecond: number, fps: number) {\n return this._player.encodeToVideo(millsecond, fps);\n }\n\n getPlayer() {\n return this._player;\n }\n\n release() {\n this._player.release();\n this._canvas.release();\n }\n}\n"]}
package/dist/index.js CHANGED
@@ -70786,7 +70786,7 @@
70786
70786
  _initGraphics() {
70787
70787
  var _a, _b;
70788
70788
  const { spec, viewBox } = this._getChartOption();
70789
- this._graphic = new Chart(Object.assign(Object.assign({ renderCanvas: this._option.canvas.getCanvas(), spec, ClassType: VChart, vchart: null, zIndex: this._spec.zIndex, mode: 'desktop-browser', dpr: window.devicePixelRatio, interactive: false, autoRender: false, disableDirtyBounds: true, viewBox, ticker: this._option.canvas.getStage().ticker, visibleAll: false }, ((_a = this._spec.options.panel) !== null && _a !== void 0 ? _a : {})), { chartInitOptions: mergeChartOption({
70789
+ this._graphic = new Chart(Object.assign(Object.assign({ renderCanvas: this._option.canvas.getCanvas(), spec, ClassType: VChart, vchart: null, zIndex: this._spec.zIndex, mode: this._option.story.option.renderMode === 'node' ? 'desktop-browser' : 'node', dpr: this._option.canvas.dpr, interactive: false, autoRender: false, disableDirtyBounds: true, viewBox, ticker: this._option.canvas.getStage().ticker, visibleAll: false }, ((_a = this._spec.options.panel) !== null && _a !== void 0 ? _a : {})), { chartInitOptions: mergeChartOption({
70790
70790
  animation: true,
70791
70791
  disableTriggerEvent: true,
70792
70792
  performanceHook: {
@@ -108710,9 +108710,11 @@
108710
108710
  }
108711
108711
  }
108712
108712
 
108713
- preLoadAllModule();
108714
- loadBrowserEnv(container);
108715
- vglobal.setEnv('browser');
108713
+ function setBrowserEnv() {
108714
+ preLoadAllModule();
108715
+ loadBrowserEnv(container);
108716
+ vglobal.setEnv('browser');
108717
+ }
108716
108718
  class StoryCanvas {
108717
108719
  getStage() {
108718
108720
  return this._stage;
@@ -108723,11 +108725,16 @@
108723
108725
  get container() {
108724
108726
  return this._container;
108725
108727
  }
108728
+ get dpr() {
108729
+ var _a;
108730
+ return (_a = this._params.dpr) !== null && _a !== void 0 ? _a : vglobal.devicePixelRatio;
108731
+ }
108726
108732
  constructor(story, params) {
108727
108733
  this._story = story;
108734
+ this._params = params;
108728
108735
  this._container = params.container;
108729
108736
  this._container && this._initCanvasByContainer();
108730
- params.canvas && this._initCanvasByCanvas(params.canvas, params.width || 500, params.height || 500);
108737
+ params.canvas && this._initCanvasByCanvas(params.canvas, params.width || 500, params.height || 500, params.dpr);
108731
108738
  }
108732
108739
  resize(w, h) {
108733
108740
  if (this._canvas) {
@@ -108739,6 +108746,7 @@
108739
108746
  }
108740
108747
  }
108741
108748
  _initCanvasByContainer() {
108749
+ var _a;
108742
108750
  const canvas = document.createElement('canvas');
108743
108751
  canvas.style.position = 'absolute';
108744
108752
  canvas.id = `_visactor_story_canvas_${this._story.id}`;
@@ -108748,19 +108756,20 @@
108748
108756
  canvas: this._canvas,
108749
108757
  width: this._container.clientWidth,
108750
108758
  height: this._container.clientHeight,
108751
- dpr: vglobal.devicePixelRatio,
108759
+ dpr: this.dpr,
108752
108760
  canvasControled: true,
108753
108761
  autoRender: true,
108754
108762
  disableDirtyBounds: true,
108755
108763
  ticker: new ManualTicker([]),
108756
- pluginList: ['RichTextEditPlugin'],
108764
+ pluginList: (_a = this._params.pluginList) !== null && _a !== void 0 ? _a : [],
108757
108765
  event: {
108758
108766
  clickInterval: 300
108759
108767
  }
108760
108768
  });
108761
108769
  this._stage = stage;
108762
108770
  }
108763
- _initCanvasByCanvas(canvas, width, height) {
108771
+ _initCanvasByCanvas(canvas, width, height, dpr) {
108772
+ var _a;
108764
108773
  this._canvas = canvas;
108765
108774
  const stage = createStage({
108766
108775
  canvas: this._canvas,
@@ -108770,8 +108779,8 @@
108770
108779
  autoRender: true,
108771
108780
  disableDirtyBounds: true,
108772
108781
  ticker: new ManualTicker([]),
108773
- pluginList: ['RichTextEditPlugin'],
108774
- dpr: vglobal.devicePixelRatio,
108782
+ pluginList: (_a = this._params.pluginList) !== null && _a !== void 0 ? _a : [],
108783
+ dpr: this.dpr,
108775
108784
  event: {
108776
108785
  clickInterval: 300
108777
108786
  }
@@ -108935,13 +108944,18 @@
108935
108944
  get characterTree() {
108936
108945
  return this._characterTree;
108937
108946
  }
108947
+ get option() {
108948
+ return this._option;
108949
+ }
108938
108950
  constructor(spec, option) {
108939
108951
  this.id = 'test-mvp_' + Story._id_++;
108952
+ this._option = option;
108940
108953
  this._canvas = new StoryCanvas(this, {
108941
108954
  container: isString$3(option.dom) ? document.getElementById(option.dom) : option.dom,
108942
108955
  canvas: isString$3(option.canvas) ? document.getElementById(option.canvas) : option.canvas,
108943
108956
  width: option.width,
108944
- height: option.height
108957
+ height: option.height,
108958
+ dpr: option.dpr
108945
108959
  });
108946
108960
  this._player = new Player(this, option.playerOption);
108947
108961
  this._characterTree = new CharacterTree(this);
@@ -108998,10 +109012,13 @@
108998
109012
  bind(ComponentGroupRender).toSelf().inSingletonScope();
108999
109013
  bind(GraphicRender).toService(ComponentGroupRender);
109000
109014
  });
109001
- const editPlugin = new ContainerModule(bind => {
109002
- bind(RichTextEditPlugin).toSelf();
109003
- bind(AutoEnablePlugins).toService(RichTextEditPlugin);
109004
- });
109015
+ function registerEditPlugin() {
109016
+ const editPlugin = new ContainerModule(bind => {
109017
+ bind(RichTextEditPlugin).toSelf();
109018
+ bind(AutoEnablePlugins).toService(RichTextEditPlugin);
109019
+ });
109020
+ container.load(editPlugin);
109021
+ }
109005
109022
  let _register = false;
109006
109023
  function registerCharacter() {
109007
109024
  if (_register) {
@@ -109019,7 +109036,6 @@
109019
109036
  StoryFactory.registerCharacter(StoryComponentType.TIMELINE, CharacterComponentTimeline);
109020
109037
  StoryFactory.registerCharacter(StoryComponentType.UNIT, CharacterComponentUnit);
109021
109038
  container.load(splitModule);
109022
- container.load(editPlugin);
109023
109039
  }
109024
109040
  registerCharacter();
109025
109041
 
@@ -109328,6 +109344,7 @@
109328
109344
  registerCharacter();
109329
109345
 
109330
109346
  exports.Story = Story;
109347
+ exports.StoryCanvas = StoryCanvas;
109331
109348
  exports.axisMarkPick = axisMarkPick;
109332
109349
  exports.colorLegendMarkPick = colorLegendMarkPick;
109333
109350
  exports.continuousPlayerMarkPick = continuousPlayerMarkPick;
@@ -109344,8 +109361,10 @@
109344
109361
  exports.mergeChartOption = mergeChartOption;
109345
109362
  exports.mergeSpec = mergeSpec$1;
109346
109363
  exports.registerCharacter = registerCharacter;
109364
+ exports.registerEditPlugin = registerEditPlugin;
109347
109365
  exports.scrollBarMarkPick = scrollBarMarkPick;
109348
109366
  exports.seriesMarkPick = seriesMarkPick;
109367
+ exports.setBrowserEnv = setBrowserEnv;
109349
109368
  exports.sizeLegendMarkPick = sizeLegendMarkPick;
109350
109369
  exports.titleBarMarkPick = titleBarMarkPick;
109351
109370