diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 96fbf6dfe..9da7a082f 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.9 + specifier: workspace:0.22.10 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.9 + specifier: workspace:0.22.10 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.9 + specifier: workspace:0.22.10 version: link:../react-vrender '@visactor/vrender': - specifier: workspace:0.22.9 + specifier: workspace:0.22.10 version: link:../vrender '@visactor/vutils': specifier: ~0.19.5 @@ -211,10 +211,10 @@ importers: ../../packages/vrender: dependencies: '@visactor/vrender-core': - specifier: workspace:0.22.9 + specifier: workspace:0.22.10 version: link:../vrender-core '@visactor/vrender-kits': - specifier: workspace:0.22.9 + specifier: workspace:0.22.10 version: link:../vrender-kits devDependencies: '@internal/bundler': @@ -281,10 +281,10 @@ importers: ../../packages/vrender-components: dependencies: '@visactor/vrender-core': - specifier: workspace:0.22.9 + specifier: workspace:0.22.10 version: link:../vrender-core '@visactor/vrender-kits': - specifier: workspace:0.22.9 + specifier: workspace:0.22.10 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.9 + specifier: workspace:0.22.10 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.9 + specifier: workspace:0.22.10 version: link:../../packages/vrender '@visactor/vrender-components': - specifier: workspace:0.22.9 + specifier: workspace:0.22.10 version: link:../../packages/vrender-components '@visactor/vrender-core': - specifier: workspace:0.22.9 + specifier: workspace:0.22.10 version: link:../../packages/vrender-core '@visactor/vrender-kits': - specifier: workspace:0.22.9 + specifier: workspace:0.22.10 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 80b2a6aa6..24769dfed 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -1 +1 @@ -[{"definitionName":"lockStepVersion","policyName":"vrenderMain","version":"0.22.9","nextBump":"patch"}] +[{"definitionName":"lockStepVersion","policyName":"vrenderMain","version":"0.22.10","nextBump":"patch"}] diff --git a/docs/assets/changelog/en/changelog.md b/docs/assets/changelog/en/changelog.md index f84b8740b..e15135ddb 100644 --- a/docs/assets/changelog/en/changelog.md +++ b/docs/assets/changelog/en/changelog.md @@ -1,3 +1,17 @@ +# v0.22.9 + +2025-04-18 + + +**🐛 Bug fix** + +- **@visactor/vrender-components**: fix state not sync with mouse +- **@visactor/vrender-core**: fix issue with string anchor and scale + + + +[more detail about v0.22.9](https://github.com/VisActor/VRender/releases/tag/v0.22.9) + # v0.22.8 2025-04-16 diff --git a/docs/assets/changelog/zh/changelog.md b/docs/assets/changelog/zh/changelog.md index e604f5b6e..e6ed0693b 100644 --- a/docs/assets/changelog/zh/changelog.md +++ b/docs/assets/changelog/zh/changelog.md @@ -1,3 +1,17 @@ +# v0.22.9 + +2025-04-18 + + +**🐛 功能修复** + +- **@visactor/vrender-components**: fix state not sync with mouse +- **@visactor/vrender-core**: fix issue with string anchor and scale + + + +[更多详情请查看 v0.22.9](https://github.com/VisActor/VRender/releases/tag/v0.22.9) + # v0.22.8 2025-04-16 diff --git a/docs/package.json b/docs/package.json index 6676750b8..9867285a2 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.9", + "@visactor/vrender": "workspace:0.22.10", "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 cce0637e0..ab02c64b8 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.10", + "tag": "@visactor/react-vrender-utils_v0.22.10", + "date": "Mon, 21 Apr 2025 02:48:16 GMT", + "comments": {} + }, { "version": "0.22.9", "tag": "@visactor/react-vrender-utils_v0.22.9", diff --git a/packages/react-vrender-utils/CHANGELOG.md b/packages/react-vrender-utils/CHANGELOG.md index 2766bbab5..877733226 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 Fri, 18 Apr 2025 06:59:46 GMT and should not be manually modified. +This log was last generated on Mon, 21 Apr 2025 02:48:16 GMT and should not be manually modified. + +## 0.22.10 +Mon, 21 Apr 2025 02:48:16 GMT + +_Version update only_ ## 0.22.9 Fri, 18 Apr 2025 06:59:46 GMT diff --git a/packages/react-vrender-utils/package.json b/packages/react-vrender-utils/package.json index 9bfd32b00..e5ee46d87 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.9", + "version": "0.22.10", "description": "", "sideEffects": false, "main": "cjs/index.js", @@ -24,8 +24,8 @@ "react-dom": "^18.2.0" }, "dependencies": { - "@visactor/vrender": "workspace:0.22.9", - "@visactor/react-vrender": "workspace:0.22.9", + "@visactor/vrender": "workspace:0.22.10", + "@visactor/react-vrender": "workspace:0.22.10", "@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 18480de5c..e784078db 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.10", + "tag": "@visactor/react-vrender_v0.22.10", + "date": "Mon, 21 Apr 2025 02:48:16 GMT", + "comments": {} + }, { "version": "0.22.9", "tag": "@visactor/react-vrender_v0.22.9", diff --git a/packages/react-vrender/CHANGELOG.md b/packages/react-vrender/CHANGELOG.md index 4ac8872bc..ac8e4dbb1 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 Fri, 18 Apr 2025 06:59:46 GMT and should not be manually modified. +This log was last generated on Mon, 21 Apr 2025 02:48:16 GMT and should not be manually modified. + +## 0.22.10 +Mon, 21 Apr 2025 02:48:16 GMT + +_Version update only_ ## 0.22.9 Fri, 18 Apr 2025 06:59:46 GMT diff --git a/packages/react-vrender/package.json b/packages/react-vrender/package.json index def92138a..4741b0619 100644 --- a/packages/react-vrender/package.json +++ b/packages/react-vrender/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/react-vrender", - "version": "0.22.9", + "version": "0.22.10", "description": "", "sideEffects": false, "main": "cjs/index.js", @@ -23,7 +23,7 @@ "react": "^18.2.0" }, "dependencies": { - "@visactor/vrender": "workspace:0.22.9", + "@visactor/vrender": "workspace:0.22.10", "@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 d852d23ba..7c3e3516e 100644 --- a/packages/vrender-components/CHANGELOG.json +++ b/packages/vrender-components/CHANGELOG.json @@ -1,6 +1,21 @@ { "name": "@visactor/vrender-components", "entries": [ + { + "version": "0.22.10", + "tag": "@visactor/vrender-components_v0.22.10", + "date": "Mon, 21 Apr 2025 02:48:16 GMT", + "comments": { + "none": [ + { + "comment": "fix: fix preventDefault() error when passive: true\n\n" + }, + { + "comment": "docs: update changlog of rush\n\n" + } + ] + } + }, { "version": "0.22.9", "tag": "@visactor/vrender-components_v0.22.9", diff --git a/packages/vrender-components/CHANGELOG.md b/packages/vrender-components/CHANGELOG.md index 3901d7053..4fa9d4762 100644 --- a/packages/vrender-components/CHANGELOG.md +++ b/packages/vrender-components/CHANGELOG.md @@ -1,6 +1,18 @@ # Change Log - @visactor/vrender-components -This log was last generated on Fri, 18 Apr 2025 06:59:46 GMT and should not be manually modified. +This log was last generated on Mon, 21 Apr 2025 02:48:16 GMT and should not be manually modified. + +## 0.22.10 +Mon, 21 Apr 2025 02:48:16 GMT + +### Updates + +- fix: fix preventDefault() error when passive: true + + +- docs: update changlog of rush + + ## 0.22.9 Fri, 18 Apr 2025 06:59:46 GMT diff --git a/packages/vrender-components/package.json b/packages/vrender-components/package.json index e594a0919..60831aa7b 100644 --- a/packages/vrender-components/package.json +++ b/packages/vrender-components/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vrender-components", - "version": "0.22.9", + "version": "0.22.10", "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.9", - "@visactor/vrender-kits": "workspace:0.22.9" + "@visactor/vrender-core": "workspace:0.22.10", + "@visactor/vrender-kits": "workspace:0.22.10" }, "devDependencies": { "@internal/bundler": "workspace:*", diff --git a/packages/vrender-components/src/data-zoom/data-zoom.ts b/packages/vrender-components/src/data-zoom/data-zoom.ts index 3f3c605a2..eb97228b3 100644 --- a/packages/vrender-components/src/data-zoom/data-zoom.ts +++ b/packages/vrender-components/src/data-zoom/data-zoom.ts @@ -247,7 +247,9 @@ export class DataZoom extends AbstractComponent> { evtTarget.removeEventListener(trigger, this._onHandlerPointerUp); }); - (this as unknown as IGroup).removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true }); + (this as unknown as IGroup).removeEventListener('pointermove', this._onHandlerPointerMove, { + capture: true + }); } /** @@ -283,7 +285,9 @@ export class DataZoom extends AbstractComponent> { * move的时候,需要通过 capture: true,能够在捕获截断被拦截, */ evtTarget.addEventListener('pointermove', this._onHandlerPointerMove, { capture: true }); - (this as unknown as IGroup).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); @@ -299,7 +303,6 @@ export class DataZoom extends AbstractComponent> { * 4. 在endHandler上拖拽,同上 */ private _pointerMove = (e: FederatedPointerEvent) => { - e.preventDefault(); const { start: startAttr, end: endAttr, brushSelect, realTime = true } = this.attribute as DataZoomAttributes; const pos = this.eventPosToStagePos(e); const { attPos, max } = this._layoutCache; diff --git a/packages/vrender-components/src/scrollbar/scrollbar.ts b/packages/vrender-components/src/scrollbar/scrollbar.ts index 146a6aaa7..8346010a2 100644 --- a/packages/vrender-components/src/scrollbar/scrollbar.ts +++ b/packages/vrender-components/src/scrollbar/scrollbar.ts @@ -4,7 +4,7 @@ import type { IRectGraphicAttribute, FederatedPointerEvent, IGroup, IRect } from '@visactor/vrender-core'; // eslint-disable-next-line no-duplicate-imports import { vglobal } from '@visactor/vrender-core'; -import { merge, normalizePadding, clamp, clampRange, debounce, throttle } from '@visactor/vutils'; +import { merge, normalizePadding, clamp, clampRange, debounce, throttle, isValid } from '@visactor/vutils'; import { AbstractComponent } from '../core/base'; import type { ScrollBarAttributes } from './type'; @@ -141,8 +141,24 @@ export class ScrollBar extends AbstractComponent> if (this._slider) { this._slider.addEventListener('pointerdown', this._onSliderPointerDown as EventListener); } + + (vglobal.env === 'browser' ? vglobal : this.stage).addEventListener('touchmove', this._handleTouchMove, { + passive: false + }); } + private _handleTouchMove = (e: TouchEvent) => { + if (isValid(this._prePos)) { + // 正在滚动中的时候 + /** + * https://developer.mozilla.org/zh-CN/docs/Web/CSS/overscroll-behavior + * 由于浏览器的overscroll-behavior属性,需要在move的时候阻止浏览器默认行为,否则会因为浏览器检测到scroll行为,阻止pointer事件, + * 抛出pointercancel事件,导致拖拽行为中断。 + */ + e.preventDefault(); + } + }; + protected render() { this._reset(); const { @@ -327,7 +343,7 @@ export class ScrollBar extends AbstractComponent> * move的时候,需要通过 capture: true,能够在捕获截断被拦截, * move的时候,需要显示的设置passive: false,因为在移动端需要禁用浏览器默认行为 */ - obj.addEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true, passive: true }); + obj.addEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true }); triggers.forEach((trigger: string) => { obj.addEventListener(trigger, this._onSliderPointerUp); }); @@ -355,7 +371,6 @@ export class ScrollBar extends AbstractComponent> }; private _onSliderPointerMove = (e: any) => { - e.preventDefault(); const { stopSliderMovePropagation = true } = this.attribute as ScrollBarAttributes; if (stopSliderMovePropagation) { e.stopPropagation(); @@ -375,7 +390,7 @@ export class ScrollBar extends AbstractComponent> const triggers = getEndTriggersOfDrag(); const obj = vglobal.env === 'browser' ? vglobal : this.stage; - obj.removeEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true, passive: false }); + obj.removeEventListener('pointermove', this._onSliderPointerMoveWithDelay, { capture: true }); triggers.forEach((trigger: string) => { obj.removeEventListener(trigger, this._onSliderPointerUp); }); @@ -387,6 +402,7 @@ export class ScrollBar extends AbstractComponent> const preScrollRange = this.getScrollRange(); const [currentPos, currentScrollValue] = this._computeScrollValue(e); const range: [number, number] = [preScrollRange[0] + currentScrollValue, preScrollRange[1] + currentScrollValue]; + this._prePos = null; this._dispatchEvent(SCROLLBAR_END_EVENT, { pre: preRange, @@ -400,4 +416,15 @@ export class ScrollBar extends AbstractComponent> this._sliderRenderBounds = null; this._sliderLimitRange = null; } + + release(all?: boolean): void { + /** + * 浏览器上的事件必须解绑,防止内存泄漏,场景树上的事件会自动解绑 + */ + super.release(all); + (vglobal.env === 'browser' ? vglobal : this.stage).addEventListener('touchmove', this._handleTouchMove, { + passive: false + }); + this._clearDragEvents(); + } } diff --git a/packages/vrender-components/src/slider/slider.ts b/packages/vrender-components/src/slider/slider.ts index 1dfcf44e3..bf0cc5e37 100644 --- a/packages/vrender-components/src/slider/slider.ts +++ b/packages/vrender-components/src/slider/slider.ts @@ -665,7 +665,9 @@ export class Slider extends AbstractComponent> { 'pointerdown', this._onRailPointerDown as EventListenerOrEventListenerObject ); - + /** + * move的时候,需要显示的设置passive: false,因为在移动端需要禁用浏览器默认行为 + */ (vglobal.env === 'browser' ? vglobal : this.stage).addEventListener('touchmove', this._handleTouchMove, { passive: false }); @@ -747,10 +749,9 @@ export class Slider extends AbstractComponent> { const obj = vglobal.env === 'browser' ? vglobal : this.stage; /** - * move的时候,需要通过 capture: true,能够在捕获截断被拦截, - * move的时候,需要显示的设置passive: false,因为在移动端需要禁用浏览器默认行为 + * move的时候,需要通过 capture: true,能够在捕获截断被拦截 */ - obj.addEventListener('pointermove', this._onHandlerPointerMove, { capture: true, passive: false }); + obj.addEventListener('pointermove', this._onHandlerPointerMove, { capture: true }); triggers.forEach((trigger: string) => { obj.addEventListener(trigger, this._onHandlerPointerUp); }); @@ -760,20 +761,18 @@ export class Slider extends AbstractComponent> { const triggers = getEndTriggersOfDrag(); const obj = vglobal.env === 'browser' ? vglobal : this.stage; - obj.removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true, passive: false }); + obj.removeEventListener('pointermove', this._onHandlerPointerMove, { capture: true }); triggers.forEach((trigger: string) => { obj.removeEventListener(trigger, this._onHandlerPointerUp); }); - obj.removeEventListener('pointermove', this._onTrackPointerMove, { capture: true, passive: false }); + obj.removeEventListener('pointermove', this._onTrackPointerMove, { capture: true }); triggers.forEach((trigger: string) => { obj.removeEventListener(trigger, this._onTrackPointerUp); }); } private _onHandlerPointerMove = (e: FederatedPointerEvent) => { - e.preventDefault(); - this._isChanging = true; const { railWidth, railHeight, min, max } = this.attribute as SliderAttributes; if (max === min) { @@ -839,14 +838,13 @@ export class Slider extends AbstractComponent> { const triggers = getEndTriggersOfDrag(); const obj = vglobal.env === 'browser' ? vglobal : this.stage; - obj.addEventListener('pointermove', this._onTrackPointerMove, { capture: true, passive: false }); + obj.addEventListener('pointermove', this._onTrackPointerMove, { capture: true }); triggers.forEach((trigger: string) => { obj.addEventListener(trigger, this._onTrackPointerUp); }); }; private _onTrackPointerMove = (e: FederatedPointerEvent) => { - e.preventDefault(); this._isChanging = true; const { railWidth, railHeight, min, max, inverse } = this.attribute as SliderAttributes; diff --git a/packages/vrender-core/CHANGELOG.json b/packages/vrender-core/CHANGELOG.json index 7bc520928..837f526fd 100644 --- a/packages/vrender-core/CHANGELOG.json +++ b/packages/vrender-core/CHANGELOG.json @@ -1,6 +1,24 @@ { "name": "@visactor/vrender-core", "entries": [ + { + "version": "0.22.10", + "tag": "@visactor/vrender-core_v0.22.10", + "date": "Mon, 21 Apr 2025 02:48:16 GMT", + "comments": { + "none": [ + { + "comment": "fix: fix issue with symbol gradient, and support native conical gradient" + }, + { + "comment": "fix: fix preventDefault() error when passive: true\n\n" + }, + { + "comment": "docs: update changlog of rush\n\n" + } + ] + } + }, { "version": "0.22.9", "tag": "@visactor/vrender-core_v0.22.9", diff --git a/packages/vrender-core/CHANGELOG.md b/packages/vrender-core/CHANGELOG.md index c0e34d7fc..49c1c6b2a 100644 --- a/packages/vrender-core/CHANGELOG.md +++ b/packages/vrender-core/CHANGELOG.md @@ -1,6 +1,19 @@ # Change Log - @visactor/vrender-core -This log was last generated on Fri, 18 Apr 2025 06:59:46 GMT and should not be manually modified. +This log was last generated on Mon, 21 Apr 2025 02:48:16 GMT and should not be manually modified. + +## 0.22.10 +Mon, 21 Apr 2025 02:48:16 GMT + +### Updates + +- fix: fix issue with symbol gradient, and support native conical gradient +- fix: fix preventDefault() error when passive: true + + +- docs: update changlog of rush + + ## 0.22.9 Fri, 18 Apr 2025 06:59:46 GMT diff --git a/packages/vrender-core/package.json b/packages/vrender-core/package.json index af080b288..605bec07d 100644 --- a/packages/vrender-core/package.json +++ b/packages/vrender-core/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vrender-core", - "version": "0.22.9", + "version": "0.22.10", "description": "", "sideEffects": [ "./src/modules.ts", diff --git a/packages/vrender-core/src/common/canvas-utils.ts b/packages/vrender-core/src/common/canvas-utils.ts index 08086dc50..946e66dbf 100644 --- a/packages/vrender-core/src/common/canvas-utils.ts +++ b/packages/vrender-core/src/common/canvas-utils.ts @@ -59,8 +59,9 @@ export function createColor( x /= scaleX; y /= scaleY; if (angle || scaleX !== 1 || scaleY !== 1) { - x = 0; - y = 0; + // symbol的时候锚点是在中间的,所以bounds不能按0算 + x = (params as any).x1WithoutTransform ?? 0; + y = (params as any).y1WithoutTransform ?? 0; w = (params as any).widthWithoutTransform ?? w; h = (params as any).heightWithoutTransform ?? h; } @@ -117,5 +118,7 @@ function createConicGradient(context: IContext2d, color: IConicalGradient, x: nu }); let deltaAngle; - return (canvasGradient as any).GetPattern(w + x, h + y, deltaAngle); + return (canvasGradient as any).GetPattern + ? (canvasGradient as any).GetPattern(w + x, h + y, deltaAngle) + : canvasGradient; } diff --git a/packages/vrender-core/src/graphic/graphic.ts b/packages/vrender-core/src/graphic/graphic.ts index 14b80c5aa..b4239bf63 100644 --- a/packages/vrender-core/src/graphic/graphic.ts +++ b/packages/vrender-core/src/graphic/graphic.ts @@ -225,6 +225,8 @@ export abstract class Graphic = Partial implements ISymbol this.widthWithoutTransform = aabbBounds.x2 - aabbBounds.x1; this.heightWithoutTransform = aabbBounds.y2 - aabbBounds.y1; + this.x1WithoutTransform = aabbBounds.x1; + this.y1WithoutTransform = aabbBounds.y1; const { lineJoin = symbolTheme.lineJoin } = attribute; application.graphicService.transformAABBBounds(attribute, aabbBounds, symbolTheme, lineJoin === 'miter', this); diff --git a/packages/vrender-kits/CHANGELOG.json b/packages/vrender-kits/CHANGELOG.json index 17d95376b..4546344ae 100644 --- a/packages/vrender-kits/CHANGELOG.json +++ b/packages/vrender-kits/CHANGELOG.json @@ -1,6 +1,18 @@ { "name": "@visactor/vrender-kits", "entries": [ + { + "version": "0.22.10", + "tag": "@visactor/vrender-kits_v0.22.10", + "date": "Mon, 21 Apr 2025 02:48:16 GMT", + "comments": { + "none": [ + { + "comment": "fix: fix issue with symbol gradient, and support native conical gradient" + } + ] + } + }, { "version": "0.22.9", "tag": "@visactor/vrender-kits_v0.22.9", diff --git a/packages/vrender-kits/CHANGELOG.md b/packages/vrender-kits/CHANGELOG.md index fa21475b8..b3df28c49 100644 --- a/packages/vrender-kits/CHANGELOG.md +++ b/packages/vrender-kits/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @visactor/vrender-kits -This log was last generated on Fri, 18 Apr 2025 06:59:46 GMT and should not be manually modified. +This log was last generated on Mon, 21 Apr 2025 02:48:16 GMT and should not be manually modified. + +## 0.22.10 +Mon, 21 Apr 2025 02:48:16 GMT + +### Updates + +- fix: fix issue with symbol gradient, and support native conical gradient ## 0.22.9 Fri, 18 Apr 2025 06:59:46 GMT diff --git a/packages/vrender-kits/package.json b/packages/vrender-kits/package.json index b1578c435..7424ad503 100644 --- a/packages/vrender-kits/package.json +++ b/packages/vrender-kits/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vrender-kits", - "version": "0.22.9", + "version": "0.22.10", "description": "", "sideEffects": false, "main": "cjs/index.js", @@ -21,7 +21,7 @@ }, "dependencies": { "@visactor/vutils": "~0.19.5", - "@visactor/vrender-core": "workspace:0.22.9", + "@visactor/vrender-core": "workspace:0.22.10", "@resvg/resvg-js": "2.4.1", "roughjs": "4.5.2", "gifuct-js": "2.1.2", diff --git a/packages/vrender-kits/src/canvas/contributions/browser/context.ts b/packages/vrender-kits/src/canvas/contributions/browser/context.ts index 942319f9c..3e5fef416 100644 --- a/packages/vrender-kits/src/canvas/contributions/browser/context.ts +++ b/packages/vrender-kits/src/canvas/contributions/browser/context.ts @@ -706,6 +706,11 @@ export class BrowserContext2d implements IContext2d { } createConicGradient(x: number, y: number, startAngle: number, endAngle: number): IConicalGradientData { + // 检测浏览器是否原生支持conic-gradient + const isNative = this.nativeContext.createConicGradient; + if (isNative && Math.abs(endAngle - startAngle - Math.PI * 2) < 0.001) { + return this.nativeContext.createConicGradient(startAngle, x, y); + } let edit = false; let pattern: CanvasPattern | null; // eslint-disable-next-line @typescript-eslint/no-this-alias diff --git a/packages/vrender/CHANGELOG.json b/packages/vrender/CHANGELOG.json index 1c7a9f390..32f8ba4d6 100644 --- a/packages/vrender/CHANGELOG.json +++ b/packages/vrender/CHANGELOG.json @@ -1,6 +1,12 @@ { "name": "@visactor/vrender", "entries": [ + { + "version": "0.22.10", + "tag": "@visactor/vrender_v0.22.10", + "date": "Mon, 21 Apr 2025 02:48:16 GMT", + "comments": {} + }, { "version": "0.22.9", "tag": "@visactor/vrender_v0.22.9", diff --git a/packages/vrender/CHANGELOG.md b/packages/vrender/CHANGELOG.md index 588345246..44bfb60cf 100644 --- a/packages/vrender/CHANGELOG.md +++ b/packages/vrender/CHANGELOG.md @@ -1,6 +1,11 @@ # Change Log - @visactor/vrender -This log was last generated on Fri, 18 Apr 2025 06:59:46 GMT and should not be manually modified. +This log was last generated on Mon, 21 Apr 2025 02:48:16 GMT and should not be manually modified. + +## 0.22.10 +Mon, 21 Apr 2025 02:48:16 GMT + +_Version update only_ ## 0.22.9 Fri, 18 Apr 2025 06:59:46 GMT diff --git a/packages/vrender/__tests__/browser/src/pages/rect.ts b/packages/vrender/__tests__/browser/src/pages/rect.ts index bd64b8f70..53682c067 100644 --- a/packages/vrender/__tests__/browser/src/pages/rect.ts +++ b/packages/vrender/__tests__/browser/src/pages/rect.ts @@ -1,4 +1,4 @@ -import { createStage, createRect, IGraphic, createGroup } from '@visactor/vrender'; +import { createStage, createRect, IGraphic, createGroup, createSymbol } from '@visactor/vrender'; import { roughModule } from '@visactor/vrender-kits'; import { addShapesToStage, colorPools } from '../utils'; @@ -68,17 +68,39 @@ export const page = () => { lineDash: [100, 10], lineDashOffset: -100 }); - - const group = createGroup({ + const star = createSymbol({ x: 300, y: 100, + scaleX: 2, + scaleY: 2, + angle: 30, + size: 100, + symbolType: 'square', + // cornerRadius: [0, 10, 10, 0], + stroke: 'red', + // scaleCenter: ['50%', '50%'], + // _debug_bounds: true, + fill: 'conic-gradient(from 90deg, rgba(5,0,255,1) 16%, rgba(0,255,10,1) 41%, rgba(9,9,121,1) 53%, rgba(0,212,255,1) 100%)', + // fill: 'linear-gradient(90deg, #215F97 0%, #FF948F 100%)', + // cornerRadius: [5, 10, 15, 20], + lineWidth: 5, + anchor: ['50%', '50%'], + // anchor: [400, 200], + lineDash: [100, 10], + lineDashOffset: -100 + }); + + const group = createGroup({ + x: 0, + y: 0, width: 200, - height: 200, - angle: 45, - anchor: ['50%', '50%'] + height: 200 + // angle: 45, + // anchor: ['50%', '50%'] }); group.appendChild(r); + group.appendChild(star); // r.animate().to({ lineDash: [2000, 1000], lineDashOffset: 100 }, 1000, 'linear'); diff --git a/packages/vrender/package.json b/packages/vrender/package.json index 83380e51b..7a442588b 100644 --- a/packages/vrender/package.json +++ b/packages/vrender/package.json @@ -1,6 +1,6 @@ { "name": "@visactor/vrender", - "version": "0.22.9", + "version": "0.22.10", "description": "", "sideEffects": true, "main": "cjs/index.js", @@ -24,8 +24,8 @@ "test-watch": "cross-env DEBUG_MODE=1 jest --watch" }, "dependencies": { - "@visactor/vrender-core": "workspace:0.22.9", - "@visactor/vrender-kits": "workspace:0.22.9" + "@visactor/vrender-core": "workspace:0.22.10", + "@visactor/vrender-kits": "workspace:0.22.10" }, "devDependencies": { "@internal/bundler": "workspace:*", diff --git a/tools/bugserver-trigger/package.json b/tools/bugserver-trigger/package.json index 7390b2f15..68c6b42e9 100644 --- a/tools/bugserver-trigger/package.json +++ b/tools/bugserver-trigger/package.json @@ -8,10 +8,10 @@ "ci": "ts-node --transpileOnly --skipProject ./scripts/trigger-test.ts" }, "dependencies": { - "@visactor/vrender": "workspace:0.22.9", - "@visactor/vrender-core": "workspace:0.22.9", - "@visactor/vrender-kits": "workspace:0.22.9", - "@visactor/vrender-components": "workspace:0.22.9" + "@visactor/vrender": "workspace:0.22.10", + "@visactor/vrender-core": "workspace:0.22.10", + "@visactor/vrender-kits": "workspace:0.22.10", + "@visactor/vrender-components": "workspace:0.22.10" }, "devDependencies": { "@rushstack/eslint-patch": "~1.1.4",