master
fixRegression: Fix #21586. (1). Remove some verbose and unnecessary code. (2). Remove the breaking change to `visualMap[type='continuous'].formatter: function () {}` - not necessary, and that breaking change can cause the existing lables display incorrectly when labels touch. (3). Switch to a more comprehensive implementation - adjust the positions of the two labels to avoid overlap. The previous approach (merging two labels) may occupy extra horizontal space and may unexpectedly cause overlap with other content. (4). Add visual test for `visualMap[type='continuous']`
test(visual): update fs-extra version
test: fix some outdated recorded interaction
fix regression: Fix appendData broken by previous commits.
test: recorded zoom action in related test cases. (#11291)
test(visual): fix replay of interactions.
test: upload part of action records files.
refact: fix bugs caused by the refactor. export types
test: add alert if scroll changed during action recording
fix(alignTicks): Change alignTick strategy: (1) Previously some series data may be out of the calculated extent and can not be displayed. (2) Previously the precision is incorrect for small float number (fixed at 10 rather than based on the magnitude of the value). (3) Make the tick precision more acceptable when min/max of axis is fixed, and remove console warning, because whey can be specified when dataZoom dragging. (4) Clarify the related code for LogScale.
refactor(scale): For readability and maintainability (1) Migrate `calcNiceTicks` and `calcNiceExtent` from Scale class override member functions to plain functions, similar to `axisAlignTicks`. Previously it's hard to modify and error-prone. (2) Remove unnecessary override on Scale class hierarchy and limit override usage, which is difficult to understand and error-prone. (3) Simplify the inheritance - shift `LogScale` and `TimeScale` inheritance from `IntervalScale` to `Scale`. (4) Clarify the impl of `IntervalScale` - uniform the parameters setting entry for both "nice ticks" and "align ticks".
fix(test axis break): fix visual case (js error).
(test) Fix axis break test cases.
refactor&feature: (1) Uniform series data union logic; previous they are implemented in several inconsistent ways and error-prone. And also strict the extent calculation with uniformed utilities. (2) Refactor Scale - uniform the implementation of the numeric transformations (such as axis breaks, logarithm, ordinal related handling) with a decorator pattern and decouple them from Scale class hierarchy. This brings consistent handling for details and enables further extension. (3) Refactor Scale - decouple "axis nice" logic from Scale and make the "axis nice" and "axis align" implemented in the same code style. This removes override (hard to read and maintain), and uniforms the parameters of IntervalScale (previous its parameters can be generated by itself or outside, which is confusing), and reduce scale-type-specified handling (e.g., if (isLogScale) ...) in calculation. (4) Enable "value" axis and "log" axis to render "bar" and "pictorialBar" series without overflowing the axis. Previously only "time" axis enables that on only "bar" series. Introduce "SCALE_EXTENT_KIND_MAPPING" to cover this generalized behavior and use strict "clip" for bar series without extra margin (a previous compromise). And clarify `barGrid` code accordingly, which removes duplicated time-consuming calculation in "bandWidth" calculation. Close #19972. Close #17858. Close #12720. Close #13321. Close #20718. Close #20421. Close #20503.
fix(axis):null value item on category axis should be able to show tooltip
fix: (1) Fix time axis reach safeLimit when value scale is milisecond. (2) Fix regression - containShape should be word properly in single value case. And simply the code.
Fix and add test cases (introduced by preceding commits)
test: add test case for #11112
Fix category axis min/max ticks/labels show hide when interval > 0. Remove unnecessary code. Fix relevant TS.
fix: Fix min/max label show in category axis. Previously, axisLabel.showMinLabel/showMaxLabel did not control label and ticks on axis edges, but controls the filtered labels by axisLabel.interval settings. This impl did not align with the intent of that option.
feat(grid layout): clarify code. tweak. add visual test case.
feat(axis): add minor ticks on polar. more test cases.
feat(axis): support tooltip for angleAxis label
fix: bar background border radius. The original PR is #12331 fbe73ae This commit fixes: also update `r` when "update" rather than only in "add". Add more test cases.
fix: (1) Fix: fix bar overflow issue on category axis with boundaryGap: false - use the newly added containShape handler. (2) Fix regression: Drop the previous containShape strategy on bar series, use a simple strategy for better compatibility. (3) Fix regression: Fix new added bar clip feature on single data item case. (4) Fix regression: Clarify code.
fix(polar): polar bar animation should start from r0 rather than 0
test(polar): update test case
Supplement tests and fix boxplot (broken by preceding commits)
fix&feature: (1) feature: Add option boxplot.clip (2) feature: Enable boxplot and candlestick containShape for "value"/"time"/"log" axis, enable proper shadow axisPointer. (candlestick-case.html, boxplot-multi.html) (3) fix: Fix candlestick ends shapes can not be displayed on "value"/"time" axis. (candlestick-case.html) (4) fix: candlestick shape width is inappropriate when datazoom filterMode is 'none'/'empty'. (candlestick-case.html) (5) fix: In polar coordinate system, support "value"/"time" axis as angle/radius axis, enable propere bandWidth for bar series, enable proper shadow axisPointer. (bar-polar-multi-series-radial.html, bar-polar-multi-series.html)
fix regression: (1) Revert the recent change to zlevelKey for backward compatibility. (2) Add guard to progressive block.
fix regression: Fix NPE and simplify code.
fix: Fix and clarify the definition of axis.`startValue`.
fix: Fix issues in regression test.
fix(bar): fix bar width calculation with barMaxWidth constraint and barGap -100% #7356
test: fix test cases
fix: the cover of the brush component should be able to roam with the coordinate system when using updateTransform. fix #11754.
test regression: fix recent broken.
test(chord): add test visual actions
test: add two new test cases for scatter clip on Cartesian 2D coordinate system.
test: add coarse-pointer in test env
test: optimize ui
test: add more recorded test actions. tweak some tests
fix(custom): remove incremental el when switched back to normal.
refact: move transition helpers to animation module
test(custom): update test case for custom update
fix(custom): fix potential NPE when applying leave transition.
test: add more recorded interactions.
test(dataZoom): fix test case -- accidentally broken in v6. And add more case for dataZoom edge cases.
test: add apache license in the test files.
chore: upgrade zrender to latest nightly version
**There are these issues existing before this commit:** (1). If no dimensions specified on dataset, series can not really share one storage instance. (Because the each series will create its own dimension name (like ['x', 'y', 'value'], ['x', 'value', 'y'], and the storage hash is based on those names. So the hash can not match). (2). Each time `setOption` update series (but not change `dataset`), new data stack dimensions (and corresponding chunks) will be keep added to the shared data storage, and then the chunks will be more and more. (3). When "unused dimension omit" happen, the index of SeriesData['dimensions'] and SeriesData['getDimension'] is not the dimensionIndex that users known. But there are someplace still use dimensionIndex to visit them. (especially in visualMap and other similar cases that user can input dimension index via option). (4). If user only specify type but no name in dimensions, their will be some bug when "unused dimension omit" happen. (Because unused dimensions will not auto-generate dimension name by `createDimensions` and so that it has no dimension name in storage, and can not be queried by dimension name). (5). If different series option specify its own `dimensions` but share one `dataset`, the `source` get by `sourceManager` is different `source` instances in each series. Those `source` instances contain different `dimensionDefine` but reference the same data. And then a data storage created by based on s
feat(state): add emphasis.disabled
feat(pie):emphasis color inherit support
fix(emphasis): fix focus self not work when item emphasis by other component
support data[i].title/data[i].detail & add test
test(gauge): add visual test cases for gauge #10945
fix: map/geo label move when hover. fix #14796
fix: (1) Fix geo roam (pan and zoom) causes visual artifacts -- geo coord sys and its content (e.g., scatter) should visually align during roaming animation and manual roam. (2) Refactor to uniform roaming impl (via RoamController and ViewCoordSys) and clarify `updateTransform` and related code. (3) Enable scatter and effectScatter clip in geo. (4) Fix aria: palette is modified to ec instance local rather than global, which is more reasonable. (5) Fix map series roaming bug: roam and then click legend hide the first series and then roam and then click legend to restore the first series, the map should not jump.
fix(visualMap): fix the indicator doesn't show when hovering on map label.
test: [geo svg] add visual test.
test: [geo svg] add test case.
fix(series): add non-null check for `seriesData.getLinkedData`.
test(matrix): complete visual test for matrix.
test(graphic): add vrt recordings.
fix(graphic): 1) fix some options may be unexpectedly reset when calling setOption. 2) fix group children can't be updated when calling setOption with no `type` option.
feat(graphic): add draggable support on group elements.
fix(heatmap): add 0.5px to avoid the gaps in Cartesian 2D coordinate system when dpr is not an integer.
feat: add new visual testcases for hoverFocus.html
fix: [blur] make API trigger emphasis blur correct (should leave blur firstly for other series).
fix: fix #11547 and add test cases.
fix: when label animation is not finished, start a new label animation, the label should not jump the the last final value.
fix: [map labelLayout] fix hideOverlap work correct in map series.
fix(legend): fix legend item is selected but corresponding series may not show after dispatching `legendAllSelect` action.
test(legend): add more test case for legend using visualMap encoded color.
fix(line): fix animation is not stopped when direct update points.
fix(line): set default z/zlevel for temporary symbol to avoid warnings.
fix(line): fix memory explosion issue with gradient, shadow and animation. #12229
fix(line): ensure the correct order of indices, add test case. close #14689
test(states): add interaction for gradient emphasis
test: add action recording for test of bug #9718
test(lines): add test case for clearing lines.
fix(lines): symbolSize should be updated #18350
fix(logScale): (1) Thoroughly resolve a long-standing issue of non-positive data on LogScale - exclude non-positive series data items when calculate dataExtent on LogScale. (2) Include `Infinite` into `connectNulls` handling on line series; the `Infinite` value may be generated by `log(0)` and previously the corresponding effect in unpredictable on line series (sometimes display as connected but sometimes not).
fix regression: fix test cases.
fix(markLine): fix markLine label shows wrong tooltip content.
test(matrix): (1) Migrate (split) test case from `matrix2.html` to `matrix4.html`, as the previous is too long to visual test regression. (2) Fix test case for coordClamp.
test(visual): fix test cases, add marks
test(matrix): Add visual test (partial, not complete)
test(pie): update test cases
test(pie): add test case for switching between NaN value
test: tweak actions.
fix(pie): fix `endAngle` is not applied on the empty circle
fix(pie): fix `labelLine` may not be hidden when `minShowLabelRadian` is specified, resolves #17013.
fix(pie): fix percent isn't updated when the legend is changed
test(pie): add a test case to cover #18412
test(line): add VRT test case
fix(radar): improve logic and add test cases of #21081
fix(radar): fix regression bug brought by branch merging. (#15985)
feat(animation): add animaiton configuration in resize
fix(rich-inherit-plain): fix and add test case.
test(labelLine): add test for #19180
fix(sankey): fix other state color is 'target/source/gradient'
fix(scale): Fix that extreme small numbers can not be displayed in Cartesian due to the inappropriate rounding precision. Close #16266
fix(scatter): fix jitter layout does not support progressive rendering and causes chart to stuck and potential NPE
test: tweak some recorded interactions. try to fix puppeteer may trigger mouseout issue. add run timestamp
fix regression: bandWidth and containShape should properly handle single item and empty.
test(series):mismatched dimension index when canOmitUnusedDimensions is true
test: tweak test case title and add VRT action.
fix(splitLine): fix chart throws errors when `radiusAxis.splitLine` is enabled.
test: Add test util for canvas layer debug.
fix(sunburst): normalize label rotation when decompress from matrix
fix(ssr): fix label doesn't show in line series when `ssr` is enabled.`
fix(timeline): fix chart can't work when axis line is not shown.
fix(toolbox) add visual test action file for the solution
test(toolbox): add test case for #10951
feature: support `tooltip.appendToBody`. Fix #8049. Based on the PR ecomfe/zrender#559 .
feat(axisPointer): add option to disable emphasis. close #18495
fix: make component tooltip.formatter do not inherit the global tooltip.formatter, but has component specific default tooltip.formatter.
test(tooltip): add test case for `displayTransition` option
fix(tooltip): fix tooltip arrow may cover the content when border is wide.
fix(tooltip): Changing tooltip config doesn't refresh the displayed tooltip
test(valueFormatter): add recorded user interaction
test(tooltip): update test case for tooltip xss
fix(tree): fix tree unexpected expand (#16548)
fix(tree): radial tree with single root doesn't work
fix: Enable treemap emphasis label formatter. Fix #11854. And add test cases. Note: the implementation of "insert levelModel" is modified from "Tree.getModel" to "beforeLink nodeData.wrapMethod('getItemModel', ...)", because the former one miss the case of `data.getItemModel`, which is needed in label formatter fetcher.
fix: enable `dispatchAction` highlight downplay for treemap. fix #9816.
test(treemap): record test visual action for #18304
test(ut): ad style transition test case
more precise when determine if using id as key in universal transition (#15303)
test(ut): fixed animiation update duration
test(visual): sort actions meta data by keys
fix(visualMap): fix continuous visualMap mouseover event not register except first countinous visualMap (#19097)
fix(visualMap): tweak #20551 & add VRT test