@visactor/vchart-extension 2.0.4-alpha.7 → 2.0.4-alpha.8

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.
@@ -115,7 +115,6 @@ export declare class ImageCloudSeries<T extends IImageCloudSeriesSpec> extends B
115
115
  createCanvas: (params: import("@visactor/vrender-core").ICreateCanvasParams) => any;
116
116
  createImage: typeof createImage;
117
117
  onUpdateMaskCanvas: (inputImage?: HTMLCanvasElement, maskImage?: HTMLCanvasElement) => void;
118
- onLayoutFinished: () => void;
119
118
  };
120
119
  protected _buildMarkAttributeContext(): void;
121
120
  initAnimation(): void;
@@ -105,11 +105,7 @@ class ImageCloudSeries extends vchart_1.BaseSeries {
105
105
  inputImage && this._maskMark && this._maskMark.getProduct().getChildren().forEach((element => {
106
106
  element.setAttribute("background", inputImage);
107
107
  })), maskImage && "masked" === (null === (_a = this._spec.layoutConfig) || void 0 === _a ? void 0 : _a.placement) && this._rootMark.getProduct().setAttribute("background", maskImage);
108
- }).bind(this),
109
- onLayoutFinished: () => {
110
- var _a, _b;
111
- return null === (_b = null === (_a = this._option.globalInstance.getChart().getOption().performanceHook) || void 0 === _a ? void 0 : _a.afterWordcloudShapeDraw) || void 0 === _b ? void 0 : _b.call(_a, this._option.globalInstance);
112
- }
108
+ }).bind(this)
113
109
  };
114
110
  }
115
111
  _buildMarkAttributeContext() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/charts/image-cloud/series/image-cloud.ts"],"names":[],"mappings":"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","file":"image-cloud.js","sourcesContent":["import type { IImageCloudSeriesSpec } from './interface';\nimport { IMAGE_CLOUD_SERIES_TYPE, ImageCloudMarkNameEnum, imageCloudSeriesMark } from './constant';\nimport type { IPoint } from '@visactor/vutils';\nimport { isValid } from '@visactor/vutils';\nimport { imagecloudTransform } from '@visactor/vlayouts';\nimport type { GridLayoutConfig } from '@visactor/vlayouts';\nimport { registerImageCloudAnimation } from './animation';\nimport { ImageCloudTooltipHelper } from './tooltip-helper';\nimport { createImage } from '@visactor/vrender-core';\nimport type { Datum, IImageMark, IMark, IRectMark } from '@visactor/vchart';\nimport {\n animationConfig,\n AttributeLevel,\n BaseSeries,\n DEFAULT_DATA_KEY,\n Factory,\n registerImageMark,\n userAnimationConfig,\n vglobal\n} from '@visactor/vchart';\n\nexport class ImageCloudSeries<T extends IImageCloudSeriesSpec> extends BaseSeries<T> {\n static readonly type: string = IMAGE_CLOUD_SERIES_TYPE;\n type = IMAGE_CLOUD_SERIES_TYPE;\n\n static readonly mark = imageCloudSeriesMark;\n\n protected _urlField: string;\n protected _nameField?: string;\n protected _valueField?: string;\n setValueField(field: string) {\n if (isValid(field)) {\n this._valueField = field;\n }\n }\n\n protected _imageMark?: IImageMark;\n protected _maskMark?: IRectMark;\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._nameField = this._spec.nameField;\n this._valueField = this._spec.valueField;\n this._urlField = this._spec.urlField;\n }\n\n initMark() {\n if (this._spec.imageMask?.visible) {\n this._maskMark = this._createMark(imageCloudSeriesMark.imageMask, {\n dataView: false,\n skipBeforeLayouted: true\n }) as IRectMark;\n }\n\n this._imageMark = this._createMark(imageCloudSeriesMark.image, {\n key: datum => `${datum[DEFAULT_DATA_KEY]}-${datum.frequency}`,\n isSeriesMark: true,\n skipBeforeLayouted: true\n }) as IImageMark;\n }\n\n initMarkStyle() {\n this._initImageMarkStyle();\n this._initMaskMarkStyle();\n }\n\n protected _initImageMarkStyle() {\n if (!this._imageMark) {\n return;\n }\n\n this._imageMark.setTransform([\n {\n type: 'imagecloud',\n ...this._imageCloudTransformOption()\n }\n ]);\n\n this.setMarkStyle(\n this._imageMark,\n {\n x: (datum: Datum) => datum.x,\n y: (datum: Datum) => datum.y,\n width: (datum: Datum) => datum.width,\n height: (datum: Datum) => datum.height,\n visible: (datum: Datum) => datum.visible,\n angle: (datum: Datum) => datum.angle,\n clipConfig: (datum: Datum) => datum.clipConfig,\n image: (datum: Datum) => datum[this._urlField],\n scaleCenter: ['50%', '50%']\n },\n 'normal',\n AttributeLevel.Series\n );\n\n const isMasked = (this._spec.layoutConfig as GridLayoutConfig)?.placement === 'masked';\n if (isMasked) {\n this.setMarkStyle(\n this._imageMark,\n {\n globalCompositeOperation: 'source-atop'\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n this._rootMark,\n {\n width: () => this._region.getLayoutRect().width,\n height: () => this._region.getLayoutRect().height,\n globalCompositeOperation: 'destination-in',\n clip: true,\n drawMode: 1\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n\n if (this._spec.layoutConfig?.layoutMode === 'stack') {\n this.setMarkStyle(\n this._imageMark,\n {\n stroke: 'white',\n lineWidth: 2,\n shadowBlur: 6,\n shadowColor: 'grey'\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n protected isFillingImage(datum: Datum) {\n return datum._frequency > 1;\n }\n\n protected _initMaskMarkStyle() {\n if (!this._maskMark) {\n return;\n }\n this._maskMark.setMarkConfig({ interactive: false });\n this.setMarkStyle(\n this._maskMark,\n {\n width: () => {\n return this._region.getLayoutRect().width;\n },\n height: () => {\n return this._region.getLayoutRect().height;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n\n protected initTooltip(): void {\n this._tooltipHelper = new ImageCloudTooltipHelper(this);\n this._imageMark && this._tooltipHelper.activeTriggerSet.mark.add(this._imageMark);\n }\n\n protected _imageCloudTransformOption() {\n return {\n size: () => {\n const { width, height } = this._region.getLayoutRect();\n return [width, height];\n },\n image: { field: this._urlField },\n weight: { field: this._valueField },\n imageConfig: {\n imageSize: this._spec.imageSize,\n imageSizeRange: this._spec.imageSizeRange,\n padding: this._spec.image?.padding\n },\n ratio: this._spec.ratio,\n mask: this._spec.maskShape,\n maskConfig: this._spec.imageMask,\n layoutConfig: this._spec.layoutConfig,\n createCanvas: vglobal.createCanvas.bind(vglobal),\n createImage,\n onUpdateMaskCanvas: ((inputImage?: HTMLCanvasElement, maskImage?: HTMLCanvasElement) => {\n if (inputImage && this._maskMark) {\n this._maskMark\n .getProduct()\n .getChildren()\n .forEach((element: any) => {\n element.setAttribute('background', inputImage);\n });\n }\n if (maskImage && (this._spec.layoutConfig as GridLayoutConfig)?.placement === 'masked') {\n this._rootMark.getProduct().setAttribute('background', maskImage);\n }\n }).bind(this),\n onLayoutFinished: () =>\n this._option.globalInstance\n .getChart()\n .getOption()\n .performanceHook?.afterWordcloudShapeDraw?.(this._option.globalInstance)\n };\n }\n\n protected _buildMarkAttributeContext(): void {\n super._buildMarkAttributeContext();\n this._markAttributeContext.isFillingImage = this.isFillingImage.bind(this);\n }\n\n initAnimation(): void {\n [this._imageMark].forEach(mark => {\n if (mark) {\n const appearPreset = (this._spec?.animationAppear as any)?.preset;\n const params = {\n center: () => {\n const { width, height } = this._region.getLayoutRect();\n return { x: width / 2, y: height / 2 };\n },\n height: () => {\n const { height } = this._region.getLayoutRect();\n return height;\n }\n };\n mark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('imageCloud')(params, appearPreset),\n userAnimationConfig(ImageCloudMarkNameEnum.image, this._spec, this._markAttributeContext)\n )\n );\n }\n });\n }\n\n getDimensionField(): string[] {\n return [this._nameField ?? this._spec.urlField];\n }\n\n getMeasureField(): string[] {\n return [this._valueField];\n }\n\n getStatisticFields() {\n const fields: { key: string; operations: Array<'max' | 'min' | 'values'> }[] = [];\n fields.push({ key: this._nameField, operations: ['values'] });\n fields.push({ key: this._valueField, operations: ['max', 'min'] });\n return fields;\n }\n\n getActiveMarks(): IMark[] {\n return [this._imageMark];\n }\n\n getMarkData(datum: Datum) {\n return datum?.datum ?? datum;\n }\n\n getGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n dataToPosition(data: Datum): IPoint | null {\n return null;\n }\n\n dataToPositionX(data: Datum): number | null {\n return this.dataToPosition(data)?.x;\n }\n dataToPositionY(data: Datum): number | null {\n return this.dataToPosition(data)?.y;\n }\n\n valueToPosition(value1: any, value2?: any): null {\n return null;\n }\n\n getStackGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackValueField(): string {\n // do nothing\n return '';\n }\n}\n\nexport const registerImageCloudSeries = () => {\n registerImageMark();\n registerImageCloudAnimation();\n Factory.registerSeries(ImageCloudSeries.type, ImageCloudSeries);\n Factory.registerGrammarTransform('imagecloud', {\n transform: imagecloudTransform\n });\n};\n"]}
1
+ {"version":3,"sources":["../src/charts/image-cloud/series/image-cloud.ts"],"names":[],"mappings":"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","file":"image-cloud.js","sourcesContent":["import type { IImageCloudSeriesSpec } from './interface';\nimport { IMAGE_CLOUD_SERIES_TYPE, ImageCloudMarkNameEnum, imageCloudSeriesMark } from './constant';\nimport type { IPoint } from '@visactor/vutils';\nimport { isValid } from '@visactor/vutils';\nimport { imagecloudTransform } from '@visactor/vlayouts';\nimport type { GridLayoutConfig } from '@visactor/vlayouts';\nimport { registerImageCloudAnimation } from './animation';\nimport { ImageCloudTooltipHelper } from './tooltip-helper';\nimport { createImage } from '@visactor/vrender-core';\nimport type { Datum, IImageMark, IMark, IRectMark } from '@visactor/vchart';\nimport {\n animationConfig,\n AttributeLevel,\n BaseSeries,\n DEFAULT_DATA_KEY,\n Factory,\n registerImageMark,\n userAnimationConfig,\n vglobal\n} from '@visactor/vchart';\n\nexport class ImageCloudSeries<T extends IImageCloudSeriesSpec> extends BaseSeries<T> {\n static readonly type: string = IMAGE_CLOUD_SERIES_TYPE;\n type = IMAGE_CLOUD_SERIES_TYPE;\n\n static readonly mark = imageCloudSeriesMark;\n\n protected _urlField: string;\n protected _nameField?: string;\n protected _valueField?: string;\n setValueField(field: string) {\n if (isValid(field)) {\n this._valueField = field;\n }\n }\n\n protected _imageMark?: IImageMark;\n protected _maskMark?: IRectMark;\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._nameField = this._spec.nameField;\n this._valueField = this._spec.valueField;\n this._urlField = this._spec.urlField;\n }\n\n initMark() {\n if (this._spec.imageMask?.visible) {\n this._maskMark = this._createMark(imageCloudSeriesMark.imageMask, {\n dataView: false,\n skipBeforeLayouted: true\n }) as IRectMark;\n }\n\n this._imageMark = this._createMark(imageCloudSeriesMark.image, {\n key: datum => `${datum[DEFAULT_DATA_KEY]}-${datum.frequency}`,\n isSeriesMark: true,\n skipBeforeLayouted: true\n }) as IImageMark;\n }\n\n initMarkStyle() {\n this._initImageMarkStyle();\n this._initMaskMarkStyle();\n }\n\n protected _initImageMarkStyle() {\n if (!this._imageMark) {\n return;\n }\n\n this._imageMark.setTransform([\n {\n type: 'imagecloud',\n ...this._imageCloudTransformOption()\n }\n ]);\n\n this.setMarkStyle(\n this._imageMark,\n {\n x: (datum: Datum) => datum.x,\n y: (datum: Datum) => datum.y,\n width: (datum: Datum) => datum.width,\n height: (datum: Datum) => datum.height,\n visible: (datum: Datum) => datum.visible,\n angle: (datum: Datum) => datum.angle,\n clipConfig: (datum: Datum) => datum.clipConfig,\n image: (datum: Datum) => datum[this._urlField],\n scaleCenter: ['50%', '50%']\n },\n 'normal',\n AttributeLevel.Series\n );\n\n const isMasked = (this._spec.layoutConfig as GridLayoutConfig)?.placement === 'masked';\n if (isMasked) {\n this.setMarkStyle(\n this._imageMark,\n {\n globalCompositeOperation: 'source-atop'\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n this._rootMark,\n {\n width: () => this._region.getLayoutRect().width,\n height: () => this._region.getLayoutRect().height,\n globalCompositeOperation: 'destination-in',\n clip: true,\n drawMode: 1\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n\n if (this._spec.layoutConfig?.layoutMode === 'stack') {\n this.setMarkStyle(\n this._imageMark,\n {\n stroke: 'white',\n lineWidth: 2,\n shadowBlur: 6,\n shadowColor: 'grey'\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n protected isFillingImage(datum: Datum) {\n return datum._frequency > 1;\n }\n\n protected _initMaskMarkStyle() {\n if (!this._maskMark) {\n return;\n }\n this._maskMark.setMarkConfig({ interactive: false });\n this.setMarkStyle(\n this._maskMark,\n {\n width: () => {\n return this._region.getLayoutRect().width;\n },\n height: () => {\n return this._region.getLayoutRect().height;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n\n protected initTooltip(): void {\n this._tooltipHelper = new ImageCloudTooltipHelper(this);\n this._imageMark && this._tooltipHelper.activeTriggerSet.mark.add(this._imageMark);\n }\n\n protected _imageCloudTransformOption() {\n return {\n size: () => {\n const { width, height } = this._region.getLayoutRect();\n return [width, height];\n },\n image: { field: this._urlField },\n weight: { field: this._valueField },\n imageConfig: {\n imageSize: this._spec.imageSize,\n imageSizeRange: this._spec.imageSizeRange,\n padding: this._spec.image?.padding\n },\n ratio: this._spec.ratio,\n mask: this._spec.maskShape,\n maskConfig: this._spec.imageMask,\n layoutConfig: this._spec.layoutConfig,\n createCanvas: vglobal.createCanvas.bind(vglobal),\n createImage,\n onUpdateMaskCanvas: ((inputImage?: HTMLCanvasElement, maskImage?: HTMLCanvasElement) => {\n if (inputImage && this._maskMark) {\n this._maskMark\n .getProduct()\n .getChildren()\n .forEach((element: any) => {\n element.setAttribute('background', inputImage);\n });\n }\n if (maskImage && (this._spec.layoutConfig as GridLayoutConfig)?.placement === 'masked') {\n this._rootMark.getProduct().setAttribute('background', maskImage);\n }\n }).bind(this)\n };\n }\n\n protected _buildMarkAttributeContext(): void {\n super._buildMarkAttributeContext();\n this._markAttributeContext.isFillingImage = this.isFillingImage.bind(this);\n }\n\n initAnimation(): void {\n [this._imageMark].forEach(mark => {\n if (mark) {\n const appearPreset = (this._spec?.animationAppear as any)?.preset;\n const params = {\n center: () => {\n const { width, height } = this._region.getLayoutRect();\n return { x: width / 2, y: height / 2 };\n },\n height: () => {\n const { height } = this._region.getLayoutRect();\n return height;\n }\n };\n mark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('imageCloud')(params, appearPreset),\n userAnimationConfig(ImageCloudMarkNameEnum.image, this._spec, this._markAttributeContext)\n )\n );\n }\n });\n }\n\n getDimensionField(): string[] {\n return [this._nameField ?? this._spec.urlField];\n }\n\n getMeasureField(): string[] {\n return [this._valueField];\n }\n\n getStatisticFields() {\n const fields: { key: string; operations: Array<'max' | 'min' | 'values'> }[] = [];\n fields.push({ key: this._nameField, operations: ['values'] });\n fields.push({ key: this._valueField, operations: ['max', 'min'] });\n return fields;\n }\n\n getActiveMarks(): IMark[] {\n return [this._imageMark];\n }\n\n getMarkData(datum: Datum) {\n return datum?.datum ?? datum;\n }\n\n getGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n dataToPosition(data: Datum): IPoint | null {\n return null;\n }\n\n dataToPositionX(data: Datum): number | null {\n return this.dataToPosition(data)?.x;\n }\n dataToPositionY(data: Datum): number | null {\n return this.dataToPosition(data)?.y;\n }\n\n valueToPosition(value1: any, value2?: any): null {\n return null;\n }\n\n getStackGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackValueField(): string {\n // do nothing\n return '';\n }\n}\n\nexport const registerImageCloudSeries = () => {\n registerImageMark();\n registerImageCloudAnimation();\n Factory.registerSeries(ImageCloudSeries.type, ImageCloudSeries);\n Factory.registerGrammarTransform('imagecloud', {\n transform: imagecloudTransform\n });\n};\n"]}
@@ -115,7 +115,6 @@ export declare class ImageCloudSeries<T extends IImageCloudSeriesSpec> extends B
115
115
  createCanvas: (params: import("@visactor/vrender-core").ICreateCanvasParams) => any;
116
116
  createImage: typeof createImage;
117
117
  onUpdateMaskCanvas: (inputImage?: HTMLCanvasElement, maskImage?: HTMLCanvasElement) => void;
118
- onLayoutFinished: () => void;
119
118
  };
120
119
  protected _buildMarkAttributeContext(): void;
121
120
  initAnimation(): void;
@@ -111,11 +111,7 @@ export class ImageCloudSeries extends BaseSeries {
111
111
  inputImage && this._maskMark && this._maskMark.getProduct().getChildren().forEach((element => {
112
112
  element.setAttribute("background", inputImage);
113
113
  })), maskImage && "masked" === (null === (_a = this._spec.layoutConfig) || void 0 === _a ? void 0 : _a.placement) && this._rootMark.getProduct().setAttribute("background", maskImage);
114
- }).bind(this),
115
- onLayoutFinished: () => {
116
- var _a, _b;
117
- return null === (_b = null === (_a = this._option.globalInstance.getChart().getOption().performanceHook) || void 0 === _a ? void 0 : _a.afterWordcloudShapeDraw) || void 0 === _b ? void 0 : _b.call(_a, this._option.globalInstance);
118
- }
114
+ }).bind(this)
119
115
  };
120
116
  }
121
117
  _buildMarkAttributeContext() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/charts/image-cloud/series/image-cloud.ts"],"names":[],"mappings":"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","file":"image-cloud.js","sourcesContent":["import type { IImageCloudSeriesSpec } from './interface';\nimport { IMAGE_CLOUD_SERIES_TYPE, ImageCloudMarkNameEnum, imageCloudSeriesMark } from './constant';\nimport type { IPoint } from '@visactor/vutils';\nimport { isValid } from '@visactor/vutils';\nimport { imagecloudTransform } from '@visactor/vlayouts';\nimport type { GridLayoutConfig } from '@visactor/vlayouts';\nimport { registerImageCloudAnimation } from './animation';\nimport { ImageCloudTooltipHelper } from './tooltip-helper';\nimport { createImage } from '@visactor/vrender-core';\nimport type { Datum, IImageMark, IMark, IRectMark } from '@visactor/vchart';\nimport {\n animationConfig,\n AttributeLevel,\n BaseSeries,\n DEFAULT_DATA_KEY,\n Factory,\n registerImageMark,\n userAnimationConfig,\n vglobal\n} from '@visactor/vchart';\n\nexport class ImageCloudSeries<T extends IImageCloudSeriesSpec> extends BaseSeries<T> {\n static readonly type: string = IMAGE_CLOUD_SERIES_TYPE;\n type = IMAGE_CLOUD_SERIES_TYPE;\n\n static readonly mark = imageCloudSeriesMark;\n\n protected _urlField: string;\n protected _nameField?: string;\n protected _valueField?: string;\n setValueField(field: string) {\n if (isValid(field)) {\n this._valueField = field;\n }\n }\n\n protected _imageMark?: IImageMark;\n protected _maskMark?: IRectMark;\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._nameField = this._spec.nameField;\n this._valueField = this._spec.valueField;\n this._urlField = this._spec.urlField;\n }\n\n initMark() {\n if (this._spec.imageMask?.visible) {\n this._maskMark = this._createMark(imageCloudSeriesMark.imageMask, {\n dataView: false,\n skipBeforeLayouted: true\n }) as IRectMark;\n }\n\n this._imageMark = this._createMark(imageCloudSeriesMark.image, {\n key: datum => `${datum[DEFAULT_DATA_KEY]}-${datum.frequency}`,\n isSeriesMark: true,\n skipBeforeLayouted: true\n }) as IImageMark;\n }\n\n initMarkStyle() {\n this._initImageMarkStyle();\n this._initMaskMarkStyle();\n }\n\n protected _initImageMarkStyle() {\n if (!this._imageMark) {\n return;\n }\n\n this._imageMark.setTransform([\n {\n type: 'imagecloud',\n ...this._imageCloudTransformOption()\n }\n ]);\n\n this.setMarkStyle(\n this._imageMark,\n {\n x: (datum: Datum) => datum.x,\n y: (datum: Datum) => datum.y,\n width: (datum: Datum) => datum.width,\n height: (datum: Datum) => datum.height,\n visible: (datum: Datum) => datum.visible,\n angle: (datum: Datum) => datum.angle,\n clipConfig: (datum: Datum) => datum.clipConfig,\n image: (datum: Datum) => datum[this._urlField],\n scaleCenter: ['50%', '50%']\n },\n 'normal',\n AttributeLevel.Series\n );\n\n const isMasked = (this._spec.layoutConfig as GridLayoutConfig)?.placement === 'masked';\n if (isMasked) {\n this.setMarkStyle(\n this._imageMark,\n {\n globalCompositeOperation: 'source-atop'\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n this._rootMark,\n {\n width: () => this._region.getLayoutRect().width,\n height: () => this._region.getLayoutRect().height,\n globalCompositeOperation: 'destination-in',\n clip: true,\n drawMode: 1\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n\n if (this._spec.layoutConfig?.layoutMode === 'stack') {\n this.setMarkStyle(\n this._imageMark,\n {\n stroke: 'white',\n lineWidth: 2,\n shadowBlur: 6,\n shadowColor: 'grey'\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n protected isFillingImage(datum: Datum) {\n return datum._frequency > 1;\n }\n\n protected _initMaskMarkStyle() {\n if (!this._maskMark) {\n return;\n }\n this._maskMark.setMarkConfig({ interactive: false });\n this.setMarkStyle(\n this._maskMark,\n {\n width: () => {\n return this._region.getLayoutRect().width;\n },\n height: () => {\n return this._region.getLayoutRect().height;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n\n protected initTooltip(): void {\n this._tooltipHelper = new ImageCloudTooltipHelper(this);\n this._imageMark && this._tooltipHelper.activeTriggerSet.mark.add(this._imageMark);\n }\n\n protected _imageCloudTransformOption() {\n return {\n size: () => {\n const { width, height } = this._region.getLayoutRect();\n return [width, height];\n },\n image: { field: this._urlField },\n weight: { field: this._valueField },\n imageConfig: {\n imageSize: this._spec.imageSize,\n imageSizeRange: this._spec.imageSizeRange,\n padding: this._spec.image?.padding\n },\n ratio: this._spec.ratio,\n mask: this._spec.maskShape,\n maskConfig: this._spec.imageMask,\n layoutConfig: this._spec.layoutConfig,\n createCanvas: vglobal.createCanvas.bind(vglobal),\n createImage,\n onUpdateMaskCanvas: ((inputImage?: HTMLCanvasElement, maskImage?: HTMLCanvasElement) => {\n if (inputImage && this._maskMark) {\n this._maskMark\n .getProduct()\n .getChildren()\n .forEach((element: any) => {\n element.setAttribute('background', inputImage);\n });\n }\n if (maskImage && (this._spec.layoutConfig as GridLayoutConfig)?.placement === 'masked') {\n this._rootMark.getProduct().setAttribute('background', maskImage);\n }\n }).bind(this),\n onLayoutFinished: () =>\n this._option.globalInstance\n .getChart()\n .getOption()\n .performanceHook?.afterWordcloudShapeDraw?.(this._option.globalInstance)\n };\n }\n\n protected _buildMarkAttributeContext(): void {\n super._buildMarkAttributeContext();\n this._markAttributeContext.isFillingImage = this.isFillingImage.bind(this);\n }\n\n initAnimation(): void {\n [this._imageMark].forEach(mark => {\n if (mark) {\n const appearPreset = (this._spec?.animationAppear as any)?.preset;\n const params = {\n center: () => {\n const { width, height } = this._region.getLayoutRect();\n return { x: width / 2, y: height / 2 };\n },\n height: () => {\n const { height } = this._region.getLayoutRect();\n return height;\n }\n };\n mark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('imageCloud')(params, appearPreset),\n userAnimationConfig(ImageCloudMarkNameEnum.image, this._spec, this._markAttributeContext)\n )\n );\n }\n });\n }\n\n getDimensionField(): string[] {\n return [this._nameField ?? this._spec.urlField];\n }\n\n getMeasureField(): string[] {\n return [this._valueField];\n }\n\n getStatisticFields() {\n const fields: { key: string; operations: Array<'max' | 'min' | 'values'> }[] = [];\n fields.push({ key: this._nameField, operations: ['values'] });\n fields.push({ key: this._valueField, operations: ['max', 'min'] });\n return fields;\n }\n\n getActiveMarks(): IMark[] {\n return [this._imageMark];\n }\n\n getMarkData(datum: Datum) {\n return datum?.datum ?? datum;\n }\n\n getGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n dataToPosition(data: Datum): IPoint | null {\n return null;\n }\n\n dataToPositionX(data: Datum): number | null {\n return this.dataToPosition(data)?.x;\n }\n dataToPositionY(data: Datum): number | null {\n return this.dataToPosition(data)?.y;\n }\n\n valueToPosition(value1: any, value2?: any): null {\n return null;\n }\n\n getStackGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackValueField(): string {\n // do nothing\n return '';\n }\n}\n\nexport const registerImageCloudSeries = () => {\n registerImageMark();\n registerImageCloudAnimation();\n Factory.registerSeries(ImageCloudSeries.type, ImageCloudSeries);\n Factory.registerGrammarTransform('imagecloud', {\n transform: imagecloudTransform\n });\n};\n"]}
1
+ {"version":3,"sources":["../src/charts/image-cloud/series/image-cloud.ts"],"names":[],"mappings":"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","file":"image-cloud.js","sourcesContent":["import type { IImageCloudSeriesSpec } from './interface';\nimport { IMAGE_CLOUD_SERIES_TYPE, ImageCloudMarkNameEnum, imageCloudSeriesMark } from './constant';\nimport type { IPoint } from '@visactor/vutils';\nimport { isValid } from '@visactor/vutils';\nimport { imagecloudTransform } from '@visactor/vlayouts';\nimport type { GridLayoutConfig } from '@visactor/vlayouts';\nimport { registerImageCloudAnimation } from './animation';\nimport { ImageCloudTooltipHelper } from './tooltip-helper';\nimport { createImage } from '@visactor/vrender-core';\nimport type { Datum, IImageMark, IMark, IRectMark } from '@visactor/vchart';\nimport {\n animationConfig,\n AttributeLevel,\n BaseSeries,\n DEFAULT_DATA_KEY,\n Factory,\n registerImageMark,\n userAnimationConfig,\n vglobal\n} from '@visactor/vchart';\n\nexport class ImageCloudSeries<T extends IImageCloudSeriesSpec> extends BaseSeries<T> {\n static readonly type: string = IMAGE_CLOUD_SERIES_TYPE;\n type = IMAGE_CLOUD_SERIES_TYPE;\n\n static readonly mark = imageCloudSeriesMark;\n\n protected _urlField: string;\n protected _nameField?: string;\n protected _valueField?: string;\n setValueField(field: string) {\n if (isValid(field)) {\n this._valueField = field;\n }\n }\n\n protected _imageMark?: IImageMark;\n protected _maskMark?: IRectMark;\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._nameField = this._spec.nameField;\n this._valueField = this._spec.valueField;\n this._urlField = this._spec.urlField;\n }\n\n initMark() {\n if (this._spec.imageMask?.visible) {\n this._maskMark = this._createMark(imageCloudSeriesMark.imageMask, {\n dataView: false,\n skipBeforeLayouted: true\n }) as IRectMark;\n }\n\n this._imageMark = this._createMark(imageCloudSeriesMark.image, {\n key: datum => `${datum[DEFAULT_DATA_KEY]}-${datum.frequency}`,\n isSeriesMark: true,\n skipBeforeLayouted: true\n }) as IImageMark;\n }\n\n initMarkStyle() {\n this._initImageMarkStyle();\n this._initMaskMarkStyle();\n }\n\n protected _initImageMarkStyle() {\n if (!this._imageMark) {\n return;\n }\n\n this._imageMark.setTransform([\n {\n type: 'imagecloud',\n ...this._imageCloudTransformOption()\n }\n ]);\n\n this.setMarkStyle(\n this._imageMark,\n {\n x: (datum: Datum) => datum.x,\n y: (datum: Datum) => datum.y,\n width: (datum: Datum) => datum.width,\n height: (datum: Datum) => datum.height,\n visible: (datum: Datum) => datum.visible,\n angle: (datum: Datum) => datum.angle,\n clipConfig: (datum: Datum) => datum.clipConfig,\n image: (datum: Datum) => datum[this._urlField],\n scaleCenter: ['50%', '50%']\n },\n 'normal',\n AttributeLevel.Series\n );\n\n const isMasked = (this._spec.layoutConfig as GridLayoutConfig)?.placement === 'masked';\n if (isMasked) {\n this.setMarkStyle(\n this._imageMark,\n {\n globalCompositeOperation: 'source-atop'\n },\n 'normal',\n AttributeLevel.Series\n );\n this.setMarkStyle(\n this._rootMark,\n {\n width: () => this._region.getLayoutRect().width,\n height: () => this._region.getLayoutRect().height,\n globalCompositeOperation: 'destination-in',\n clip: true,\n drawMode: 1\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n\n if (this._spec.layoutConfig?.layoutMode === 'stack') {\n this.setMarkStyle(\n this._imageMark,\n {\n stroke: 'white',\n lineWidth: 2,\n shadowBlur: 6,\n shadowColor: 'grey'\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n\n protected isFillingImage(datum: Datum) {\n return datum._frequency > 1;\n }\n\n protected _initMaskMarkStyle() {\n if (!this._maskMark) {\n return;\n }\n this._maskMark.setMarkConfig({ interactive: false });\n this.setMarkStyle(\n this._maskMark,\n {\n width: () => {\n return this._region.getLayoutRect().width;\n },\n height: () => {\n return this._region.getLayoutRect().height;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n\n protected initTooltip(): void {\n this._tooltipHelper = new ImageCloudTooltipHelper(this);\n this._imageMark && this._tooltipHelper.activeTriggerSet.mark.add(this._imageMark);\n }\n\n protected _imageCloudTransformOption() {\n return {\n size: () => {\n const { width, height } = this._region.getLayoutRect();\n return [width, height];\n },\n image: { field: this._urlField },\n weight: { field: this._valueField },\n imageConfig: {\n imageSize: this._spec.imageSize,\n imageSizeRange: this._spec.imageSizeRange,\n padding: this._spec.image?.padding\n },\n ratio: this._spec.ratio,\n mask: this._spec.maskShape,\n maskConfig: this._spec.imageMask,\n layoutConfig: this._spec.layoutConfig,\n createCanvas: vglobal.createCanvas.bind(vglobal),\n createImage,\n onUpdateMaskCanvas: ((inputImage?: HTMLCanvasElement, maskImage?: HTMLCanvasElement) => {\n if (inputImage && this._maskMark) {\n this._maskMark\n .getProduct()\n .getChildren()\n .forEach((element: any) => {\n element.setAttribute('background', inputImage);\n });\n }\n if (maskImage && (this._spec.layoutConfig as GridLayoutConfig)?.placement === 'masked') {\n this._rootMark.getProduct().setAttribute('background', maskImage);\n }\n }).bind(this)\n };\n }\n\n protected _buildMarkAttributeContext(): void {\n super._buildMarkAttributeContext();\n this._markAttributeContext.isFillingImage = this.isFillingImage.bind(this);\n }\n\n initAnimation(): void {\n [this._imageMark].forEach(mark => {\n if (mark) {\n const appearPreset = (this._spec?.animationAppear as any)?.preset;\n const params = {\n center: () => {\n const { width, height } = this._region.getLayoutRect();\n return { x: width / 2, y: height / 2 };\n },\n height: () => {\n const { height } = this._region.getLayoutRect();\n return height;\n }\n };\n mark.setAnimationConfig(\n animationConfig(\n Factory.getAnimationInKey('imageCloud')(params, appearPreset),\n userAnimationConfig(ImageCloudMarkNameEnum.image, this._spec, this._markAttributeContext)\n )\n );\n }\n });\n }\n\n getDimensionField(): string[] {\n return [this._nameField ?? this._spec.urlField];\n }\n\n getMeasureField(): string[] {\n return [this._valueField];\n }\n\n getStatisticFields() {\n const fields: { key: string; operations: Array<'max' | 'min' | 'values'> }[] = [];\n fields.push({ key: this._nameField, operations: ['values'] });\n fields.push({ key: this._valueField, operations: ['max', 'min'] });\n return fields;\n }\n\n getActiveMarks(): IMark[] {\n return [this._imageMark];\n }\n\n getMarkData(datum: Datum) {\n return datum?.datum ?? datum;\n }\n\n getGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n dataToPosition(data: Datum): IPoint | null {\n return null;\n }\n\n dataToPositionX(data: Datum): number | null {\n return this.dataToPosition(data)?.x;\n }\n dataToPositionY(data: Datum): number | null {\n return this.dataToPosition(data)?.y;\n }\n\n valueToPosition(value1: any, value2?: any): null {\n return null;\n }\n\n getStackGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackValueField(): string {\n // do nothing\n return '';\n }\n}\n\nexport const registerImageCloudSeries = () => {\n registerImageMark();\n registerImageCloudAnimation();\n Factory.registerSeries(ImageCloudSeries.type, ImageCloudSeries);\n Factory.registerGrammarTransform('imagecloud', {\n transform: imagecloudTransform\n });\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vchart-extension",
3
- "version": "2.0.4-alpha.7",
3
+ "version": "2.0.4-alpha.8",
4
4
  "description": "vchart extension package, including extension plugins and components",
5
5
  "sideEffects": false,
6
6
  "main": "cjs/index.js",
@@ -12,14 +12,14 @@
12
12
  "build"
13
13
  ],
14
14
  "dependencies": {
15
- "@visactor/vrender-core": "1.0.13",
16
- "@visactor/vrender-kits": "1.0.13",
17
- "@visactor/vrender-components": "1.0.13",
18
- "@visactor/vrender-animate": "1.0.13",
15
+ "@visactor/vrender-core": "1.0.11",
16
+ "@visactor/vrender-kits": "1.0.11",
17
+ "@visactor/vrender-components": "1.0.11",
18
+ "@visactor/vrender-animate": "1.0.11",
19
19
  "@visactor/vutils": "~1.0.6",
20
20
  "@visactor/vdataset": "~1.0.6",
21
21
  "@visactor/vlayouts": "~1.0.6",
22
- "@visactor/vchart": "2.0.4-alpha.7"
22
+ "@visactor/vchart": "2.0.4-alpha.8"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@rushstack/eslint-patch": "~1.1.4",
@@ -44,8 +44,8 @@
44
44
  "rollup-plugin-sizes": "1.0.5",
45
45
  "rollup": "3.20.5",
46
46
  "@internal/bundler": "0.0.1",
47
- "@internal/ts-config": "0.0.1",
48
- "@internal/eslint-config": "0.0.1"
47
+ "@internal/eslint-config": "0.0.1",
48
+ "@internal/ts-config": "0.0.1"
49
49
  },
50
50
  "publishConfig": {
51
51
  "access": "public",