diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 9e1f209f5..96fbf6dfe 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -22,7 +22,7 @@ importers: specifier: ~0.5.7 version: 0.5.7 '@visactor/vrender': - specifier: workspace:0.22.8 + specifier: workspace:0.22.9 version: link:../packages/vrender '@visactor/vutils': specifier: ~0.19.5 @@ -95,7 +95,7 @@ importers: ../../packages/react-vrender: dependencies: '@visactor/vrender': - specifier: workspace:0.22.8 + specifier: workspace:0.22.9 version: link:../vrender '@visactor/vutils': specifier: ~0.19.5 @@ -153,10 +153,10 @@ importers: ../../packages/react-vrender-utils: dependencies: '@visactor/react-vrender': - specifier: workspace:0.22.8 + specifier: workspace:0.22.9 version: link:../react-vrender '@visactor/vrender': - specifier: workspace:0.22.8 + specifier: workspace:0.22.9 version: link:../vrender '@visactor/vutils': specifier: ~0.19.5 @@ -211,10 +211,10 @@ importers: ../../packages/vrender: dependencies: '@visactor/vrender-core': - specifier: workspace:0.22.8 + specifier: workspace:0.22.9 version: link:../vrender-core '@visactor/vrender-kits': - specifier: workspace:0.22.8 + specifier: workspace:0.22.9 version: link:../vrender-kits devDependencies: '@internal/bundler': @@ -281,10 +281,10 @@ importers: ../../packages/vrender-components: dependencies: '@visactor/vrender-core': - specifier: workspace:0.22.8 + specifier: workspace:0.22.9 version: link:../vrender-core '@visactor/vrender-kits': - specifier: workspace:0.22.8 + specifier: workspace:0.22.9 version: link:../vrender-kits '@visactor/vscale': specifier: ~0.19.5 @@ -403,7 +403,7 @@ importers: specifier: 2.4.1 version: 2.4.1 '@visactor/vrender-core': - specifier: workspace:0.22.8 + specifier: workspace:0.22.9 version: link:../vrender-core '@visactor/vutils': specifier: ~0.19.5 @@ -519,16 +519,16 @@ importers: ../../tools/bugserver-trigger: dependencies: '@visactor/vrender': - specifier: workspace:0.22.8 + specifier: workspace:0.22.9 version: link:../../packages/vrender '@visactor/vrender-components': - specifier: workspace:0.22.8 + specifier: workspace:0.22.9 version: link:../../packages/vrender-components '@visactor/vrender-core': - specifier: workspace:0.22.8 + specifier: workspace:0.22.9 version: link:../../packages/vrender-core '@visactor/vrender-kits': - specifier: workspace:0.22.8 + specifier: workspace:0.22.9 version: link:../../packages/vrender-kits devDependencies: '@internal/bundler': diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 56fc5626a..80b2a6aa6 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -1 +1 @@ -[{"definitionName":"lockStepVersion","policyName":"vrenderMain","version":"0.22.8","nextBump":"patch"}] +[{"definitionName":"lockStepVersion","policyName":"vrenderMain","version":"0.22.9","nextBump":"patch"}] diff --git a/docs/assets/changelog/en/changelog.md b/docs/assets/changelog/en/changelog.md index 790d9ca15..f84b8740b 100644 --- a/docs/assets/changelog/en/changelog.md +++ b/docs/assets/changelog/en/changelog.md @@ -1,3 +1,16 @@ +# v0.22.8 + +2025-04-16 + + +**🐛 Bug fix** + +- **@visactor/vrender-components**: brush bug from aeolus and self test + + + +[more detail about v0.22.8](https://github.com/VisActor/VRender/releases/tag/v0.22.8) + # v0.22.5 2025-03-13 diff --git a/docs/assets/changelog/zh/changelog.md b/docs/assets/changelog/zh/changelog.md index 97f7a5ee7..e604f5b6e 100644 --- a/docs/assets/changelog/zh/changelog.md +++ b/docs/assets/changelog/zh/changelog.md @@ -1,3 +1,16 @@ +# v0.22.8 + +2025-04-16 + + +**🐛 功能修复** + +- **@visactor/vrender-components**: brush bug from aeolus and self test + + + +[更多详情请查看 v0.22.8](https://github.com/VisActor/VRender/releases/tag/v0.22.8) + # v0.22.5 2025-03-13 diff --git a/docs/package.json b/docs/package.json index d12fccddb..6676750b8 100644 --- a/docs/package.json +++ b/docs/package.json @@ -13,7 +13,7 @@ "@visactor/vchart": "1.3.0", "@visactor/vutils": "~0.19.5", "@visactor/vgrammar": "~0.5.7", - "@visactor/vrender": "workspace:0.22.8", + "@visactor/vrender": "workspace:0.22.9", "markdown-it": "^13.0.0", "highlight.js": "^11.8.0", "axios": "^1.4.0", diff --git a/packages/react-vrender-utils/CHANGELOG.json b/packages/react-vrender-utils/CHANGELOG.json index 1cbc85c96..cce0637e0 100644 --- a/packages/react-vrender-utils/CHANGELOG.json +++ b/packages/react-vrender-utils/CHANGELOG.json @@ -1,6 +1,12 @@ { "name": "@visactor/react-vrender-utils", "entries": [ + { + "version": "0.22.9", + "tag": "@visactor/react-vrender-utils_v0.22.9", + "date": "Fri, 18 Apr 2025 06:59:46 GMT", + "comments": {} + }, { "version": "0.22.8", "tag": "@visactor/react-vrender-utils_v0.22.8", diff --git a/packages/react-vrender-utils/CHANGELOG.md b/packages/react-vrender-utils/CHANGELOG.md index efa2be238..2766bbab5 100644 --- a/packages/react-vrender-utils/CHANGELOG.md +++ b/packages/react-vrender-utils/CHANGELOG.md @@ -1,6 +1,11 @@ # Change Log - @visactor/react-vrender-utils -This log was last generated on Wed, 16 Apr 2025 03:17:31 GMT and should not be manually modified. +This log was last generated on Fri, 18 Apr 2025 06:59:46 GMT and should not be manually modified. + +## 0.22.9 +Fri, 18 Apr 2025 06:59:46 GMT + +_Version update only_ ## 0.22.8 Wed, 16 Apr 2025 03:17:31 GMT diff --git a/packages/react-vrender-utils/package.json b/packages/react-vrender-utils/package.json index 65fa50856..9bfd32b00 100644 --- a/packages/react-vrender-utils/package.json +++ b/packages/react-vrender-utils/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/react-vrender-utils", - "version": "0.22.8", + "version": "0.22.9", "description": "", "sideEffects": false, "main": "cjs/index.js", @@ -24,8 +24,8 @@ "react-dom": "^18.2.0" }, "dependencies": { - "@visactor/vrender": "workspace:0.22.8", - "@visactor/react-vrender": "workspace:0.22.8", + "@visactor/vrender": "workspace:0.22.9", + "@visactor/react-vrender": "workspace:0.22.9", "@visactor/vutils": "~0.19.5", "react-reconciler": "^0.29.0", "tslib": "^2.3.1" diff --git a/packages/react-vrender/CHANGELOG.json b/packages/react-vrender/CHANGELOG.json index 7c92dff0e..18480de5c 100644 --- a/packages/react-vrender/CHANGELOG.json +++ b/packages/react-vrender/CHANGELOG.json @@ -1,6 +1,12 @@ { "name": "@visactor/react-vrender", "entries": [ + { + "version": "0.22.9", + "tag": "@visactor/react-vrender_v0.22.9", + "date": "Fri, 18 Apr 2025 06:59:46 GMT", + "comments": {} + }, { "version": "0.22.8", "tag": "@visactor/react-vrender_v0.22.8", diff --git a/packages/react-vrender/CHANGELOG.md b/packages/react-vrender/CHANGELOG.md index c564cb938..4ac8872bc 100644 --- a/packages/react-vrender/CHANGELOG.md +++ b/packages/react-vrender/CHANGELOG.md @@ -1,6 +1,11 @@ # Change Log - @visactor/react-vrender -This log was last generated on Wed, 16 Apr 2025 03:17:31 GMT and should not be manually modified. +This log was last generated on Fri, 18 Apr 2025 06:59:46 GMT and should not be manually modified. + +## 0.22.9 +Fri, 18 Apr 2025 06:59:46 GMT + +_Version update only_ ## 0.22.8 Wed, 16 Apr 2025 03:17:31 GMT diff --git a/packages/react-vrender/package.json b/packages/react-vrender/package.json index 6033f1ec7..def92138a 100644 --- a/packages/react-vrender/package.json +++ b/packages/react-vrender/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/react-vrender", - "version": "0.22.8", + "version": "0.22.9", "description": "", "sideEffects": false, "main": "cjs/index.js", @@ -23,7 +23,7 @@ "react": "^18.2.0" }, "dependencies": { - "@visactor/vrender": "workspace:0.22.8", + "@visactor/vrender": "workspace:0.22.9", "@visactor/vutils": "~0.19.5", "react-reconciler": "^0.29.0", "tslib": "^2.3.1" diff --git a/packages/vrender-components/CHANGELOG.json b/packages/vrender-components/CHANGELOG.json index 4621219ed..d852d23ba 100644 --- a/packages/vrender-components/CHANGELOG.json +++ b/packages/vrender-components/CHANGELOG.json @@ -1,6 +1,18 @@ { "name": "@visactor/vrender-components", "entries": [ + { + "version": "0.22.9", + "tag": "@visactor/vrender-components_v0.22.9", + "date": "Fri, 18 Apr 2025 06:59:46 GMT", + "comments": { + "none": [ + { + "comment": "fix: fix state not sync with mouse\n\n" + } + ] + } + }, { "version": "0.22.8", "tag": "@visactor/vrender-components_v0.22.8", diff --git a/packages/vrender-components/CHANGELOG.md b/packages/vrender-components/CHANGELOG.md index 921298293..3901d7053 100644 --- a/packages/vrender-components/CHANGELOG.md +++ b/packages/vrender-components/CHANGELOG.md @@ -1,6 +1,15 @@ # Change Log - @visactor/vrender-components -This log was last generated on Wed, 16 Apr 2025 03:17:31 GMT and should not be manually modified. +This log was last generated on Fri, 18 Apr 2025 06:59:46 GMT and should not be manually modified. + +## 0.22.9 +Fri, 18 Apr 2025 06:59:46 GMT + +### Updates + +- fix: fix state not sync with mouse + + ## 0.22.8 Wed, 16 Apr 2025 03:17:31 GMT diff --git a/packages/vrender-components/package.json b/packages/vrender-components/package.json index ea13ed173..e594a0919 100644 --- a/packages/vrender-components/package.json +++ b/packages/vrender-components/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vrender-components", - "version": "0.22.8", + "version": "0.22.9", "description": "components library for dp visualization", "sideEffects": false, "main": "cjs/index.js", @@ -27,8 +27,8 @@ "dependencies": { "@visactor/vutils": "~0.19.5", "@visactor/vscale": "~0.19.5", - "@visactor/vrender-core": "workspace:0.22.8", - "@visactor/vrender-kits": "workspace:0.22.8" + "@visactor/vrender-core": "workspace:0.22.9", + "@visactor/vrender-kits": "workspace:0.22.9" }, "devDependencies": { "@internal/bundler": "workspace:*", diff --git a/packages/vrender-components/src/brush/brush.ts b/packages/vrender-components/src/brush/brush.ts index f9d0d87d0..4da78c53c 100644 --- a/packages/vrender-components/src/brush/brush.ts +++ b/packages/vrender-components/src/brush/brush.ts @@ -92,6 +92,7 @@ export class Brush extends AbstractComponent> { this._activeMoveState = brushMoved && this._isPosInBrushMask(e); // 如果是移动状态,在这里会标记operatingMask为正在移动的mask this._activeDrawState = !this._activeMoveState; this._startPos = this.eventPosToStagePos(e); + this._cacheDrawPoints = [this._startPos]; }; /** @@ -151,7 +152,8 @@ export class Brush extends AbstractComponent> { private _initDraw(e: FederatedPointerEvent) { const { brushMode } = this.attribute as BrushAttributes; const pos = this.eventPosToStagePos(e); - this._cacheDrawPoints = [pos]; + + this._cacheDrawPoints.push(pos); brushMode === 'single' && this._clearMask(); this._addBrushMask(); this._dispatchBrushEvent(IOperateType.drawStart, e); diff --git a/packages/vrender-components/src/data-zoom/data-zoom.ts b/packages/vrender-components/src/data-zoom/data-zoom.ts index 4d60d41d2..3f3c605a2 100644 --- a/packages/vrender-components/src/data-zoom/data-zoom.ts +++ b/packages/vrender-components/src/data-zoom/data-zoom.ts @@ -242,10 +242,12 @@ export class DataZoom extends AbstractComponent> { const evtTarget = vglobal.env === 'browser' ? vglobal : this.stage; const triggers = getEndTriggersOfDrag(); - evtTarget.removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true, passive: false }); + evtTarget.removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true }); triggers.forEach((trigger: string) => { evtTarget.removeEventListener(trigger, this._onHandlerPointerUp); }); + + (this as unknown as IGroup).removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true }); } /** @@ -279,9 +281,10 @@ export class DataZoom extends AbstractComponent> { /** * move的时候,需要通过 capture: true,能够在捕获截断被拦截, - * move的时候,需要显示的设置passive: false,因为在移动端需要禁用浏览器默认行为 */ - evtTarget.addEventListener('pointermove', this._onHandlerPointerMove, { capture: true, passive: false }); + evtTarget.addEventListener('pointermove', this._onHandlerPointerMove, { capture: true }); + (this as unknown as IGroup).addEventListener('pointermove', this._onHandlerPointerMove, { capture: true }); + triggers.forEach((trigger: string) => { evtTarget.addEventListener(trigger, this._onHandlerPointerUp); }); @@ -326,6 +329,7 @@ export class DataZoom extends AbstractComponent> { end = end + dis; } } + this._activeCache.lastPos = pos; brushSelect && this.renderDragMask(); } start = Math.min(Math.max(start, 0), 1); @@ -333,7 +337,6 @@ export class DataZoom extends AbstractComponent> { // 避免attributes相同时, 重复渲染 if (startAttr !== start || endAttr !== end) { - this._activeCache.lastPos = pos; this.setStateAttr(start, end, true); if (realTime) { this._dispatchEvent('change', { diff --git a/packages/vrender-core/CHANGELOG.json b/packages/vrender-core/CHANGELOG.json index 78baa69d1..7bc520928 100644 --- a/packages/vrender-core/CHANGELOG.json +++ b/packages/vrender-core/CHANGELOG.json @@ -1,6 +1,18 @@ { "name": "@visactor/vrender-core", "entries": [ + { + "version": "0.22.9", + "tag": "@visactor/vrender-core_v0.22.9", + "date": "Fri, 18 Apr 2025 06:59:46 GMT", + "comments": { + "none": [ + { + "comment": "fix: fix issue with string anchor and scale" + } + ] + } + }, { "version": "0.22.8", "tag": "@visactor/vrender-core_v0.22.8", diff --git a/packages/vrender-core/CHANGELOG.md b/packages/vrender-core/CHANGELOG.md index 83b7d149a..c0e34d7fc 100644 --- a/packages/vrender-core/CHANGELOG.md +++ b/packages/vrender-core/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @visactor/vrender-core -This log was last generated on Wed, 16 Apr 2025 03:17:31 GMT and should not be manually modified. +This log was last generated on Fri, 18 Apr 2025 06:59:46 GMT and should not be manually modified. + +## 0.22.9 +Fri, 18 Apr 2025 06:59:46 GMT + +### Updates + +- fix: fix issue with string anchor and scale ## 0.22.8 Wed, 16 Apr 2025 03:17:31 GMT diff --git a/packages/vrender-core/package.json b/packages/vrender-core/package.json index 33b3a7e1a..af080b288 100644 --- a/packages/vrender-core/package.json +++ b/packages/vrender-core/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vrender-core", - "version": "0.22.8", + "version": "0.22.9", "description": "", "sideEffects": [ "./src/modules.ts", diff --git a/packages/vrender-core/src/common/segment/index.ts b/packages/vrender-core/src/common/segment/index.ts index 5cfdaf783..4c065929d 100644 --- a/packages/vrender-core/src/common/segment/index.ts +++ b/packages/vrender-core/src/common/segment/index.ts @@ -3,7 +3,7 @@ import type { ICurveType, IGenSegmentParams, ISegPath2D } from '../../interface' import { genLinearSegments } from './linear'; import { genBasisSegments } from './basis'; import { genMonotoneXSegments, genMonotoneYSegments } from './monotone'; -import { genStepSegments } from './step'; +import { genStepClosedSegments, genStepSegments } from './step'; import { genLinearClosedSegments } from './linear-closed'; import { genCatmullRomSegments } from './catmull-rom'; import { genCatmullRomClosedSegments } from './catmull-rom-close'; @@ -31,6 +31,8 @@ export function calcLineCache( return genMonotoneYSegments(points, params); case 'step': return genStepSegments(points, 0.5, params); + case 'stepClosed': + return genStepClosedSegments(points, 0.5, params); case 'stepBefore': return genStepSegments(points, 0, params); case 'stepAfter': diff --git a/packages/vrender-core/src/common/segment/step.ts b/packages/vrender-core/src/common/segment/step.ts index f6981e038..c3e589219 100644 --- a/packages/vrender-core/src/common/segment/step.ts +++ b/packages/vrender-core/src/common/segment/step.ts @@ -107,6 +107,16 @@ export class Step implements ICurvedSegment { } } +export class StepClosed extends Step implements ILinearSegment { + declare context: ISegPath2D; + + protected declare startPoint?: IPointLike; + + lineEnd() { + this.context.closePath(); + } +} + export function genStepSegments(points: IPointLike[], t: number, params: IGenSegmentParams = {}): ISegPath2D | null { const { direction, startPoint } = params; if (points.length < 2 - Number(!!startPoint)) { @@ -129,3 +139,26 @@ export function genStepSegments(points: IPointLike[], t: number, params: IGenSeg export function genStepTypeSegments(path: ILinearSegment, points: IPointLike[]): void { return genCurveSegments(path, points, 1); } + +export function genStepClosedSegments( + points: IPointLike[], + t: number, + params: IGenSegmentParams = {} +): ISegPath2D | null { + const { direction, startPoint } = params; + if (points.length < 2 - Number(!!startPoint)) { + return null; + } + const segContext = new SegContext( + 'step', + direction ?? + (abs(points[points.length - 1].x - points[0].x) > abs(points[points.length - 1].y - points[0].y) + ? Direction.ROW + : Direction.COLUMN) + ); + const step = new StepClosed(segContext, t, startPoint); + + genStepTypeSegments(step, points); + + return segContext; +} diff --git a/packages/vrender-core/src/graphic/graphic.ts b/packages/vrender-core/src/graphic/graphic.ts index ffac66a6d..14b80c5aa 100644 --- a/packages/vrender-core/src/graphic/graphic.ts +++ b/packages/vrender-core/src/graphic/graphic.ts @@ -1205,21 +1205,24 @@ export abstract class Graphic = Partial { if (params.b) { return params.b; } - const { scaleX, scaleY, angle, scaleCenter } = this.attribute; // 拷贝一份,避免计算bounds的过程中计算matrix,然后matrix又修改了bounds - tempBounds.copy(this._AABBBounds); - // @ts-ignore - this.setAttributes({ angle: 0, scaleCenter: null }); - params.b = this.AABBBounds.clone(); - this._AABBBounds.copy(tempBounds); + const graphic = this.clone(); + graphic.attribute.angle = 0; + graphic.attribute.scaleCenter = null; + if (resetScale) { + graphic.attribute.scaleX = 1; + graphic.attribute.scaleY = 1; + } // @ts-ignore - this.setAttributes({ scaleX, scaleY, angle, scaleCenter }); + // this.setAttributes({ angle: 0, scaleCenter: null }); + params.b = graphic.AABBBounds; + return params.b; }; if (typeof anchor[0] === 'string') { @@ -1269,7 +1272,7 @@ export abstract class Graphic = Partial