This is an automated email from the ASF dual-hosted git repository. ovilia pushed a commit to branch v6 in repository https://gitbox.apache.org/repos/asf/echarts.git
commit f6c28b73498bfde7c4382602ac187843db097643 Merge: a244af6f1 23d26a81a Author: Ovilia <[email protected]> AuthorDate: Mon Aug 26 16:14:59 2024 +0800 Merge branch 'v6' into next-thumbnail .eslintrc-common.yaml | 2 +- .github/ISSUE_TEMPLATE/bug_report.yml | 6 +- .github/workflows/.scripts/update-notice-year.js | 93 + .github/workflows/ci.yml | 60 +- .github/workflows/nightly-next.yml | 10 +- .github/workflows/nightly.yml | 9 +- .github/workflows/pr-preview.yml | 78 + .github/workflows/source-release.yml | 27 +- .github/workflows/stale.yml | 2 +- .github/workflows/teardown-pr-preview.yml | 30 + .github/workflows/update-notice-year.yml | 24 + .gitignore | 4 + .husky/pre-commit | 5 + .huskyrc | 5 - .npmignore | 8 +- .vscode/settings.json | 5 +- CONTRIBUTING.md | 24 +- KEYS | 107 + NOTICE | 4 +- README.md | 9 +- build/build.js | 43 +- build/config.js | 25 +- build/package.json | 3 + build/pre-publish.js | 53 +- .../template/ssr/client/index.d.ts | 15 +- .../template/ssr/client/index.js | 15 +- build/testDts.js | 27 +- dist/echarts.common.js | 14536 ++++-------- dist/echarts.common.js.map | 2 +- dist/echarts.common.min.js | 4 +- dist/echarts.esm.js | 23198 ++++++------------ dist/echarts.esm.js.map | 2 +- dist/echarts.esm.min.js | 4 +- dist/echarts.esm.min.mjs | 45 + dist/{echarts.esm.js => echarts.esm.mjs} | 23200 ++++++------------- dist/{echarts.js.map => echarts.esm.mjs.map} | 2 +- dist/echarts.js | 23198 ++++++------------ dist/echarts.js.map | 2 +- dist/echarts.min.js | 4 +- dist/echarts.simple.js | 9786 +++----- dist/echarts.simple.js.map | 2 +- dist/echarts.simple.min.js | 4 +- dist/extension/bmap.js | 113 +- dist/extension/bmap.js.map | 2 +- dist/extension/dataTool.js | 61 +- dist/extension/dataTool.js.map | 2 +- dist/package.json | 3 + i18n/langAR-obj.js | 178 + i18n/langAR.js | 174 + i18n/langCS-obj.js | 5 +- i18n/langCS.js | 5 +- i18n/langDE-obj.js | 7 +- i18n/langDE.js | 7 +- i18n/langEN-obj.js | 4 +- i18n/langEN.js | 4 +- i18n/langES-obj.js | 60 + i18n/langES.js | 60 + i18n/langFI-obj.js | 60 + i18n/langFI.js | 60 + i18n/langFR-obj.js | 4 +- i18n/langFR.js | 4 +- i18n/langHU-obj.js | 175 + i18n/langHU.js | 171 + i18n/langIT-obj.js | 4 +- i18n/langIT.js | 4 +- i18n/langJA-obj.js | 4 +- i18n/langJA.js | 4 +- i18n/langKO-obj.js | 4 +- i18n/langKO.js | 4 +- i18n/langNL-obj.js | 175 + i18n/langNL.js | 171 + i18n/langPL-obj.js | 4 +- i18n/langPL.js | 4 +- i18n/langPT-br-obj.js | 4 +- i18n/langPT-br.js | 4 +- i18n/langRO-obj.js | 4 +- i18n/langRO.js | 4 +- i18n/langRU-obj.js | 4 +- i18n/langRU.js | 4 +- i18n/langSI-obj.js | 5 +- i18n/langSI.js | 5 +- i18n/langTH-obj.js | 60 + i18n/langTH.js | 60 + i18n/langTR-obj.js | 175 + i18n/langTR.js | 171 + i18n/{langUA-obj.js => langUK-obj.js} | 4 +- i18n/{langUA.js => langUK.js} | 6 +- i18n/langVI-obj.js | 200 + i18n/langVI.js | 196 + i18n/langZH-obj.js | 5 +- i18n/langZH.js | 5 +- i18n/package.json | 3 + package-lock.json | 7043 ++---- package.README.md | 40 + package.json | 156 +- src/chart/bar/BarSeries.ts | 6 +- src/chart/bar/BarView.ts | 32 +- src/chart/bar/BaseBarSeries.ts | 88 +- src/chart/bar/PictorialBarSeries.ts | 6 + src/chart/bar/PictorialBarView.ts | 13 + src/chart/bar/install.ts | 4 +- src/chart/bar/installPictorialBar.ts | 4 +- src/chart/candlestick/CandlestickSeries.ts | 1 - src/chart/candlestick/CandlestickView.ts | 23 +- src/chart/candlestick/candlestickVisual.ts | 31 +- src/chart/custom/CustomView.ts | 42 +- src/chart/graph/GraphSeries.ts | 2 +- src/chart/graph/GraphView.ts | 10 +- src/chart/graph/forceHelper.ts | 2 +- src/chart/heatmap/HeatmapView.ts | 8 +- src/chart/helper/Line.ts | 20 +- src/chart/helper/createClipPathFromCoordSys.ts | 12 +- src/chart/helper/{pieHelper.ts => sectorHelper.ts} | 0 src/chart/line/LineView.ts | 35 +- src/chart/lines/LinesSeries.ts | 6 +- src/chart/lines/LinesView.ts | 4 +- src/chart/map/MapSeries.ts | 4 +- src/chart/map/MapView.ts | 6 +- src/chart/parallel/ParallelSeries.ts | 2 +- src/chart/pie/PieSeries.ts | 9 +- src/chart/pie/PieView.ts | 7 +- src/chart/pie/labelLayout.ts | 6 +- src/chart/pie/pieLayout.ts | 111 +- src/chart/sankey/SankeySeries.ts | 2 +- src/chart/sankey/SankeyView.ts | 120 +- src/chart/scatter/ScatterView.ts | 9 +- src/chart/sunburst/SunburstPiece.ts | 53 +- src/chart/sunburst/SunburstSeries.ts | 20 +- src/chart/themeRiver/ThemeRiverSeries.ts | 4 +- src/chart/tree/TreeSeries.ts | 2 +- src/chart/tree/layoutHelper.ts | 4 +- src/chart/treemap/TreemapSeries.ts | 20 +- src/chart/treemap/TreemapView.ts | 58 +- src/chart/treemap/treemapLayout.ts | 6 +- src/chart/treemap/treemapVisual.ts | 8 +- src/component/axis/AngleAxisView.ts | 13 +- src/component/axis/AxisBuilder.ts | 54 +- src/component/axis/CartesianAxisView.ts | 11 +- src/component/axis/RadiusAxisView.ts | 12 +- src/component/axisPointer/AxisPointerModel.ts | 1 + src/component/axisPointer/BaseAxisPointer.ts | 8 +- src/component/axisPointer/axisTrigger.ts | 8 +- src/component/axisPointer/modelHelper.ts | 12 +- src/component/axisPointer/viewHelper.ts | 2 +- src/component/dataZoom/AxisProxy.ts | 15 +- src/component/dataZoom/DataZoomModel.ts | 8 +- src/component/dataZoom/SliderZoomView.ts | 4 +- src/component/graphic/GraphicModel.ts | 12 +- src/component/graphic/install.ts | 6 +- src/component/helper/BrushController.ts | 12 +- src/component/helper/BrushTargetManager.ts | 4 +- src/component/helper/MapDraw.ts | 9 +- src/component/legend/LegendModel.ts | 6 +- src/component/legend/LegendView.ts | 41 +- src/component/legend/legendAction.ts | 96 +- src/component/marker/MarkAreaView.ts | 13 +- src/component/marker/MarkerModel.ts | 20 +- src/component/marker/markerHelper.ts | 29 +- src/component/parallel/ParallelView.ts | 6 +- src/component/toolbox/ToolboxView.ts | 14 +- src/component/toolbox/feature/SaveAsImage.ts | 7 +- src/component/toolbox/featureManager.ts | 4 + src/component/tooltip/TooltipHTMLContent.ts | 75 +- src/component/tooltip/TooltipModel.ts | 12 +- src/component/tooltip/TooltipRichContent.ts | 7 +- src/component/tooltip/TooltipView.ts | 39 +- src/component/tooltip/seriesFormatTooltip.ts | 7 +- src/component/tooltip/tooltipMarkup.ts | 9 +- src/component/transform/filterTransform.ts | 8 +- src/component/visualMap/ContinuousModel.ts | 4 +- src/component/visualMap/ContinuousView.ts | 31 +- src/component/visualMap/PiecewiseModel.ts | 4 +- src/component/visualMap/VisualMapModel.ts | 4 +- src/coord/Axis.ts | 10 +- src/coord/CoordinateSystem.ts | 14 +- src/coord/View.ts | 2 +- src/coord/axisCommonTypes.ts | 33 +- src/coord/axisDefault.ts | 4 +- src/coord/axisHelper.ts | 155 +- src/coord/axisTickLabelBuilder.ts | 49 +- src/coord/cartesian/AxisModel.ts | 15 +- src/coord/cartesian/Cartesian2D.ts | 12 +- src/coord/cartesian/Grid.ts | 55 +- src/coord/cartesian/defaultAxisExtentFromData.ts | 2 +- src/coord/geo/Geo.ts | 6 +- src/coord/geo/GeoModel.ts | 8 +- src/coord/geo/GeoSVGResource.ts | 2 +- src/coord/geo/geoTypes.ts | 4 +- src/coord/parallel/Parallel.ts | 2 +- src/coord/parallel/ParallelModel.ts | 2 +- src/coord/polar/AxisModel.ts | 1 + src/coord/polar/polarCreator.ts | 3 +- src/coord/scaleRawExtentInfo.ts | 14 +- src/core/echarts.ts | 82 +- src/core/locale.ts | 2 +- src/data/DataStore.ts | 12 +- src/data/Graph.ts | 88 +- src/data/Source.ts | 18 +- src/data/helper/createDimensions.ts | 17 +- src/data/helper/dataProvider.ts | 4 +- src/data/helper/dataStackHelper.ts | 4 +- src/data/helper/dataValueHelper.ts | 16 +- src/data/helper/dimensionHelper.ts | 4 +- src/data/helper/sourceHelper.ts | 14 +- src/data/helper/sourceManager.ts | 16 +- src/data/helper/transform.ts | 10 +- src/echarts.all.ts | 6 +- src/export/core.ts | 45 +- src/i18n/langAR.ts | 147 + src/i18n/langCS.ts | 40 +- src/i18n/langDE.ts | 42 +- src/i18n/langEN.ts | 38 +- src/i18n/langES.ts | 60 + src/i18n/langFI.ts | 60 + src/i18n/langFR.ts | 38 +- src/i18n/langHU.ts | 144 + src/i18n/langIT.ts | 38 +- src/i18n/langJA.ts | 38 +- src/i18n/langKO.ts | 38 +- src/i18n/langNL.ts | 144 + src/i18n/langPL.ts | 38 +- src/i18n/langPT-br.ts | 38 +- src/i18n/langRO.ts | 38 +- src/i18n/langRU.ts | 4 +- src/i18n/langSI.ts | 40 +- src/i18n/langSV.ts | 144 + src/i18n/langTH.ts | 60 + src/i18n/langTR.ts | 144 + src/i18n/{langUA.ts => langUK.ts} | 4 +- src/i18n/langVI.ts | 169 + src/i18n/langZH.ts | 6 +- src/label/LabelManager.ts | 15 +- src/label/labelGuideHelper.ts | 8 +- src/label/labelStyle.ts | 6 +- src/layout/barGrid.ts | 21 +- src/layout/barPolar.ts | 6 +- src/legacy/dataSelectAction.ts | 2 +- src/model/Series.ts | 9 +- src/processor/dataSample.ts | 18 +- src/util/ECEventProcessor.ts | 2 +- src/util/KDTree.ts | 8 +- src/util/clazz.ts | 10 +- src/util/conditionalExpression.ts | 12 +- src/util/decal.ts | 6 +- src/util/format.ts | 2 +- src/util/graphic.ts | 18 +- src/util/innerStore.ts | 6 + src/util/layout.ts | 8 +- src/util/model.ts | 30 +- src/util/number.ts | 16 +- src/util/states.ts | 49 +- src/util/styleCompat.ts | 12 +- src/util/symbol.ts | 2 +- src/util/time.ts | 7 +- src/util/types.ts | 40 +- src/visual/aria.ts | 17 +- src/visual/style.ts | 8 +- ssr/client/dist/index.js | 105 + ssr/client/dist/index.js.map | 1 + ssr/client/dist/package.json | 3 + ssr/client/src/.eslintrc.yaml | 48 + ssr/client/src/index.ts | 94 + test/axis-align-lastLabel.html | 150 + test/axis-containLabelAndName.html | 158 + test/axis-customTicks.html | 388 + test/axis-lastLabel.html | 29 +- test/axis-splitLine.html | 83 + test/bar-markArea.html | 470 +- test/bar-polar-animation.html | 131 + test/bar-polar-borderRadius.html | 192 + test/bar-startValue.html | 225 + test/candlestick-case.html | 51 +- test/clip-custom.html | 127 + test/{graph-case.html => clip-line-cap.html} | 52 +- test/clip.html | 8 +- test/clip2.html | 157 + test/dataset-category.html | 39 + test/dataset-layout.html | 28 +- test/dataset-source-two-typed-array.html | 271 + test/emphasis-self.html | 137 + test/gauge-distance.html | 14 +- test/gauge-group-title-detail.html | 20 +- test/gauge-simple.html | 8 +- test/gauge.html | 22 +- test/graph-case.html | 369 +- test/graph-grid.html | 2 +- test/heatmap.html | 112 +- test/{graph-case.html => label-ellipsis.html} | 61 +- test/legend-action.html | 136 + test/legend-style.html | 56 + test/lib/config.js | 1 + test/lib/testHelper.js | 3 + test/line-endLabel.html | 44 +- test/line-sampling.html | 113 + test/lines-symbolSize-update.html | 107 + test/manual-svg-color-bug-202311.html | 184 + test/map-china.html | 1 + test/markArea.html | 461 +- test/markPoint.html | 198 +- test/marker-case.html | 66 +- test/node/ssr.js | 4 + test/package.json | 3 + test/pictorial-single.html | 101 + test/pie-coordinate-system.html | 328 +- test/pie-endAngle.html | 93 + test/pie-label.html | 3 + test/pie-pad-angle.html | 133 + test/pie.html | 35 +- test/polar-end-angle.html | 85 + test/roseType-labeline.html | 120 + test/runTest/.eslintrc.yaml | 43 + test/runTest/actions/__meta__.json | 26 +- test/runTest/actions/bar-polar-animation.json | 1 + test/runTest/actions/candlestick-case.json | 2 +- test/runTest/actions/clip2.json | 1 + test/runTest/actions/emphasis-self.json | 1 + test/runTest/actions/graph-case.json | 1 + test/runTest/actions/heatmap.json | 2 +- test/runTest/actions/legend-action.json | 1 + test/runTest/actions/lines-symbolSize-update.json | 1 + test/runTest/actions/pie-endAngle.json | 1 + test/runTest/actions/pie.json | 2 +- test/runTest/actions/roseType-labeline.json | 1 + .../runTest/actions/sankey-emphasis-lineStyle.json | 1 + test/runTest/actions/sunburst-label-rotate.json | 1 + test/runTest/actions/svg-ssr.json | 1 + test/runTest/actions/tooltip-axisPointer2.json | 2 +- test/runTest/actions/tooltip-domnode.json | 1 + test/runTest/actions/tooltip.json | 2 +- test/runTest/actions/treemap-scaleLimit.json | 1 + .../actions/visualMap-multi-continuous.json | 1 + test/runTest/client/index.html | 4 +- test/runTest/package-lock.json | 5023 ++++ test/runTest/package.json | 13 +- test/runTest/recorder/index.html | 4 +- test/runTest/server.js | 15 +- test/sankey-borderRadius.html | 93 + test/sankey-emphasis-lineStyle.html | 98 + test/sankey-emphasis.html | 62 + test/sankey-labelValue.html | 111 + test/sankey.html | 38 + test/ssr.html | 208 + test/sunburst-label-align.html | 1197 + test/sunburst-label-rotate.html | 110 + test/sunburst-label.html | 125 + test/svg-ssr.html | 158 + test/toolbox-textStyle.html | 122 +- test/tooltip-alwaysShowContent.html | 265 + test/tooltip-appendTo.html | 550 + test/tooltip-axisPointer2.html | 216 +- test/tooltip-domnode.html | 28 + test/tooltip-valueFormatter.html | 39 +- test/tooltip.html | 76 +- test/treemap-cursor.html | 193 + test/treemap-scaleLimit.html | 185 + test/ut/{jest.config.js => jest.config.cjs} | 0 test/ut/spec/series/aria-columns-exclude.test.ts | 97 + test/ut/spec/series/custom.test.ts | 42 + test/ut/spec/util/time.test.ts | 145 + test/visualMap-multi-continuous.html | 319 + theme/package.json | 3 + tsconfig.json | 1 + 362 files changed, 50401 insertions(+), 73447 deletions(-) diff --cc src/chart/graph/GraphView.ts index f5c4b7ba6,f4559521f..614a0043b --- a/src/chart/graph/GraphView.ts +++ b/src/chart/graph/GraphView.ts @@@ -222,14 -208,14 +222,16 @@@ class GraphView extends ChartView } dispose() { + this.remove(); + this._controller && this._controller.dispose(); this._controllerHost = null; + this._thumbnail.dispose(); } - _startForceLayoutIteration( + private _startForceLayoutIteration( forceLayout: GraphSeriesModel['forceLayout'], + api: ExtensionAPI, layoutAnimation?: boolean ) { const self = this; @@@ -341,88 -302,13 +343,92 @@@ this._lineDraw.updateLayout(); } - remove(ecModel: GlobalModel, api: ExtensionAPI) { + remove() { + clearTimeout(this._layoutTimeout); + this._layouting = false; + this._layoutTimeout = null; + this._symbolDraw && this._symbolDraw.remove(); this._lineDraw && this._lineDraw.remove(); + this._controller && this._controller.disable(); + this._thumbnail.remove(); + } + + // TODO: register thumbnail (consider code size). + private _renderThumbnail( + seriesModel: GraphSeriesModel, + api: ExtensionAPI, + symbolDraw: SymbolDraw, + lineDraw: LineDraw + ) { + const thumbnail = this._thumbnail; + this.group.add(thumbnail.group); + + const renderThumbnailContent = (viewGroup: graphic.Group) => { + const symbolNodes = symbolDraw.group.children(); + const lineNodes = lineDraw.group.children(); + + const lineGroup = new graphic.Group(); + const symbolGroup = new graphic.Group(); + viewGroup.add(symbolGroup); + viewGroup.add(lineGroup); + + for (let i = 0; i < symbolNodes.length; i++) { + const node = symbolNodes[i]; + const sub = (node as graphic.Group).children()[0]; + const x = (node as Symbol).x; + const y = (node as Symbol).y; + const subShape = clone((sub as graphic.Path).shape); + const shape = extend(subShape, { + width: sub.scaleX, + height: sub.scaleY, + x: x - sub.scaleX / 2, + y: y - sub.scaleY / 2 + }); + const style = clone((sub as graphic.Path).style); + const subThumbnail = new (sub as any).constructor({ + shape, + style, + z2: 151 + }); + symbolGroup.add(subThumbnail); + } + + for (let i = 0; i < lineNodes.length; i++) { + const node = lineNodes[i]; + const line = (node as graphic.Group).children()[0]; + const style = clone((line as ECLinePath).style); + const shape = clone((line as ECLinePath).shape); + const lineThumbnail = new ECLinePath({ + style, + shape, + z2: 151 + }); + lineGroup.add(lineThumbnail); + } + }; + + thumbnail.render({ + seriesModel, + api, + roamType: seriesModel.get('roam'), + z2Setting: { + background: 150, + window: 160 + }, + seriesBoundingRect: this._mainGroup.getBoundingRect(), + renderThumbnailContent + }); + + thumbnail + .off('pan') + .off('zoom') + .on('pan', (event) => { + this._updateViewOnPan(seriesModel, api, event.dx, event.dy); + }) + .on('zoom', (event) => { + this._updateViewOnZoom(seriesModel, api, event.scale, event.originX, event.originY); + }); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
