🚀 chartjs/Chart.js - Release Notes

v4.4.8 (2025-02-19)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/4.4.8/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/4.4.8/)
* [API](https://www.chartjs.org/docs/4.4.8/api/)
* [Samples](https://www.chartjs.org/docs/4.4.8/samples/information.html)

- #12034 [fix] Handle non-primitives in isNumber

## Bugs Fixed

- #12035 Export ...ParsedData interfaces
- #12012 Fix helpers \`Chart\` type
- #11991 Bugfix: TypeError in Interaction due to out-of-bounds index
- #11986 Bugfix: return nearest non-null point on interaction when spanGaps=true
- #11984 Bugfix: span gaps over null values beyond scale limits

## Types

- #12035 Export ...ParsedData interfaces
- #12012 Fix helpers \`Chart\` type
- #12010 Type fixes for time adapters

## Documentation

- #12005 Correct broken link in animations.md
- #11997 Update linear-step-size.md

## Development

- #12036 chore: bump to v4.4.8

Thanks to @etimberg, @joshkel, @marisst, @pensono and @prems51

v4.4.7 (2024-12-01)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/4.4.7/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/4.4.7/)
* [API](https://www.chartjs.org/docs/4.4.7/api/)
* [Samples](https://www.chartjs.org/docs/4.4.7/samples/information.html)

## Types

- #11521 fix: correct typing for doughnut, pie, and polarArea charts
- #11948 Export TRBL from geometric

## Documentation

- #11968 Add documentation about setting default tooltip fonts
- #11962 Show correct title in multi series pie chart example

## Development

- #11969 Chore: bump version to 4.4.7
- #11959 Bump cross-spawn from 6.0.5 to 6.0.6
- #11501 Simplify check undefinded

Thanks to @Connormiha, @DustinEwan, @LeeLenaleee, @dependabot and @dependabot[bot]

v4.4.6 (2024-10-28)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/4.4.6/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/4.4.6/)
* [API](https://www.chartjs.org/docs/4.4.6/api/)
* [Samples](https://www.chartjs.org/docs/4.4.6/samples/information.html)

## Bugs Fixed

- #11938 Fix: applyStack() returned the sum of all values for hidden dataset indices, which causes incorrect animations when showing/hiding stacked datasets.

## Development

- #11943 chore: version bump for 4.4.6 release
- #11933 Fix 404 to samples in release drafter

Thanks to @DeyLak, @LeeLenaleee and @etimberg

v4.4.5 (2024-10-15)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/4.4.5/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/4.4.5/)
* [API](https://www.chartjs.org/docs/4.4.5/api/)
* [Samples](https://www.chartjs.org/docs/4.4.5/samples/)

## Bugs Fixed

- #11927 Don't apply default colors in the colors plugin when defaults are used
- #11907 Avoid error if borderOpts.dash is undefined
- #11882 Fix initial dataset stacks

## Types

- #11931 Allow array's in backgroundColor defaults and add hover background and border color to defaults 

## Documentation

- #11930 Fix typo in time.md

## Development

- #11932 Bump package version to 4.4.5
- #11875 Bump socket.io from 4.6.1 to 4.7.5

Thanks to @HieroglypH, @LeeLenaleee, @dependabot, @dependabot[bot] and @dregad

v4.4.4 (2024-08-20)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/4.4.4/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/4.4.4/)
* [API](https://www.chartjs.org/docs/4.4.4/api/)
* [Samples](https://www.chartjs.org/docs/4.4.4/samples/)

## Bugs Fixed

- #11873 Check if range method exists on element before executing it
- #11863 Return false from the average tooltip positioner on no valid data
- #11858 Bugfix/issue 11804 tooltip show for all invisible
- #11851 fix: Unset \_resizeBeforeDraw before \_resize() call to avoid possible recursion
- #11844 fix issue #11717
- #11788 Fix drawing angle lines on reversed radial scale

## Types

- #11867 fix(types): exclude DeepPartial\ from ChartOptions interface
- #11862 fix(types): add xCenter and yCenter properties to RadialLinearScale interface
- #11817 Remove box padding from legend types
- #11796 Add fit method to LegendElement interface
- #11780 types: Allow passing undefined for chart options

## Documentation

- #11871 Add radial linear scale to docs section of samples
- #11823 Update OffscreenCanvas documentation, as it is widely available now
- #11781 Fix some typos

## Development

- #11874 Bump package version to 4.4.4

Thanks to @CatchABus, @LeeLenaleee, @MichelHMachado, @artus9033, @huqingkun, @jdufresne and @joliss

v4.4.3 (2024-05-17)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/4.4.3/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/4.4.3/)
* [API](https://www.chartjs.org/docs/4.4.3/api/)
* [Samples](https://www.chartjs.org/docs/4.4.3/samples/)

- #11754 Fix error when object prototype is frozen

## Bugs Fixed

- #11764 do not attempt to clear canvas if one does not exist
- #11755 #11450 hide bar by dataindex
- #11690 Create parsed object with correct keys
- #11707 platform.isAttached should return false if canvas is false-y

## Documentation

- #11762 Update license year

## Development

- #11776 Bump to 4.4.3
- #11773 Bump pnpm/action-setup from 3.0.0 to 4.0.0
- #11720 Bump follow-redirects from 1.15.4 to 1.15.6

Thanks to @DAcodedBEAT, @EricWittrock, @LeeLenaleee, @LiamSwayne, @dependabot and @dependabot[bot]

v4.4.2 (2024-02-28)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/4.4.2/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/4.4.2/)
* [API](https://www.chartjs.org/docs/4.4.2/api/)
* [Samples](https://www.chartjs.org/docs/4.4.2/samples/)

## Bugs Fixed

- #11685 addListener and removeListener should be only invoked on truthy values
- #11682 fix #11503, autoskipping 0 tick when min is below 0
- #11616 fix(#11615): fix calculating caretX position on stacked bar with index interaction.

## Types

- #11662 bugfix #10896 - Changed 'r' to optional for BubbleChart

## Documentation

- #11674 docs(types): fix description in index.d.ts
- #11614 Add extra calrification for html legend

## Development

- #11689 Bump to 4.4.2
- #11664 Bump pnpm/action-setup from 2.4.0 to 3.0.0
- #11657 Bump release-drafter/release-drafter from 5 to 6
- #11650 Bump dorny/paths-filter from 2 to 3
- #11636 Bump socket.io-parser from 4.2.2 to 4.2.4
- #11635 Bump follow-redirects from 1.15.2 to 1.15.4
- #11633 Update pnpm lockfile

Thanks to @DAcodedBEAT, @LeeLenaleee, @Megaemce, @dependabot, @dependabot[bot], @mirumirumi, @smoonsf and @waszkiewiczja

v4.4.1 (2023-12-04)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/4.4.1/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/4.4.1/)
* [API](https://www.chartjs.org/docs/4.4.1/api/)
* [Samples](https://www.chartjs.org/docs/4.4.1/samples/)

## Bugs Fixed

- #11605 Update font spec type
- #11596 Tooltip fixes (getLabelAndValue on null controller, null getParsed)
- #11588 fix: Guard access to window in helpers.dom.ts for browserless rendering
- #11577 Fix backdrop padding
- #11488 Change type of mode in chart.update(mode)

## Types

- #11605 Update font spec type
- #11572 fix: Property platform missing from chart configuration typings
- #11569 fix: pass Plugin TType down to hooks chart arg
- #11488 Change type of mode in chart.update(mode)

## Documentation

- #11562 Fix migration docs links
- #11483 docs: Fix typo for documentation of plugins.tooltip.textDirection

## Development

- #11606 Bump 4.4.1
- #11599 Remove size limit from CI
- #11570 Replace deprecated command with environment file
- #11560 Bump actions/setup-node from 3 to 4
- #11490 fix: simplify check hasFunction

Thanks to @CatchABus, @Cazka, @Connormiha, @LeeLenaleee, @Sengulair, @bboy-chocomint, @dependabot, @dependabot[bot], @jongwooo, @joshkel and @unverbraucht

v4.4.0 (2023-08-24)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/4.4.0/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/4.4.0/)
* [API](https://www.chartjs.org/docs/4.4.0/api/)
* [Samples](https://www.chartjs.org/docs/4.4.0/samples/)

## Enhancements

- #11404 Add clip option to scale configuration to allow unclipped scales

## Bugs Fixed

- #11435 BorderRadius of Bar Chart issue on Firefox 116

## Types

- #11348 fix: Add backgroundColor type on CoreScaleOptions

## Documentation

- #11439 Replace html extension with md extension for docs

## Development

- #11461 Bump 4.4.0

Thanks to @LeeLenaleee, @Mer-cat, @bogdankorshunov and @stockiNail

v4.3.3 (2023-08-02)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/4.3.3/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/4.3.3/)
* [API](https://www.chartjs.org/docs/4.3.3/api/)
* [Samples](https://www.chartjs.org/docs/4.3.3/samples/)

- #11432 Revert fix for monotone cubic interpolation

## Development

- #11427 Bump pnpm/action-setup from 2.2.4 to 2.4.0

Thanks to @dependabot, @dependabot[bot] and @stockiNail

v4.3.2 (2023-07-26)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/4.3.2/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/4.3.2/)
* [API](https://www.chartjs.org/docs/4.3.2/api/)
* [Samples](https://www.chartjs.org/docs/4.3.2/samples/)

## Types

- #11422 Revert feature to disable plugins by TS
- #11419 Updates to scale type definitions

## Development

- #11423 Bump 4.3.2

Thanks to @LeeLenaleee, @joshkel and @stockiNail

v4.3.1 (2023-07-24)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/4.3.1/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/4.3.1/)
* [API](https://www.chartjs.org/docs/4.3.1/api/)
* [Samples](https://www.chartjs.org/docs/4.3.1/samples/)

- #11417 Bump 4.3.1
- #11330 [docs] HTML Legend sample: add flex-shrink: 0 to color box

## Bugs Fixed

- #11377 Fix curve path if scale limits are set for line chart
- #11388 Fix time series scale to have each data point is spread equidistant
- #11352 Fix mismatch between hit boxes and drawn items in legend plugin
- #11346 Add text stoke radial linear scale
- #11334 Fix toggling showLine option on scatter controller

## Types

- #11403 Add  missing feature for disabling plugins in TyeScript
- #11396 Fix type of tickBorderDash in GridLineOptions
- #11187 Split the TimeScaleOptions type into composable sub types
- #11383 fix: add pointStyleWidth to type definitions
- #11358 Add \`beforeDraw\` to drawtime type
- #11350 Add events property to Plugin defined type
- #11309 Export explicitly the plugin options definition which is augmented by plugins implementation

## Documentation

- #11345 Clarify update docs
- #11324 Refined grammar and updated overall .md documentation files
- #11322 minor correction of documentation for 'Grace'
- #11284 Correct tooltip dates displaying incorrectly reported in #11229
- #11300 Expend note that chart must be in its own dedicated container

## Development

- #11318 Switch from Slack to Discord
- #11301  Update slack link
- #11302 Update size limits

Thanks to @Frenzie, @LeeLenaleee, @etimberg, @matthewhegarty, @mukham12, @skopz356 and @stockiNail

v4.3.0 (2023-04-28)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/4.3.0/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/4.3.0/)
* [API](https://www.chartjs.org/docs/4.3.0/api/)
* [Samples](https://www.chartjs.org/docs/4.3.0/samples/)

- #11257 Bump to 4.3.0
- #11217 Enable applying of gradients and pattern on line segments
- #11134 Use custom scale defaults and dataset axis ID options to determine the axis
- #11061 fix RTL tooltip colorBox placement

## Enhancements

- #11055 Enable point labels hiding when overlapped
- #11180 Border is counted as part of ArcElement
- #11121 refactor: rewrite config helpers to ts
- #11100 refactor: rewrite canvas helpers to ts
- #11127 Add borderDash options to arc element

## Bugs Fixed

- #11238 Check for isNaN before building number formatter options
- #11116 Fix: don't generate ticks > max if max is specified

## Types

- #11121 refactor: rewrite config helpers to ts
- #11100 refactor: rewrite canvas helpers to ts
- #11143 Docs: fix tooltip model doc.

## Documentation

- #11241 Add redirect for old V3 migration guides in release notes
- #11244 Fix documentation about how to manage own custom plugin for types
- #11220 docs: Fix a few typos
- #11154 Update tooltip.md

## Development

- #11240 Add version specific urls to release template
- #11212 Update size limits
- #11209 chore: change pnpm version in engines field to be able to use 8.x.x
- #11174 Add colors plugin to size limit
- #11165 Disable canvas acceleration in Firefox 110 in test cases
- #11145 Simplify \_arrayUnique
- #11135 Change labelColors to labelColor in tooltip drawColorBox method.

Thanks to @CodingMarco, @Connormiha, @Demir-Utku, @LeeLenaleee, @dangreen, @defunctzombie, @etimberg, @leo2436, @olenderhub, @shahabhm, @stockiNail and @timgates42

v4.2.1 (2023-02-10)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

- #11045 fix: decimation plugin data not writeable after clean

## Bugs Fixed

- #11069 Use maxTicksLimit option to calculate the labels size on ticks

## Types

- #11102 chore: #10963 revert
- #11115 Add colors plugin TS options to be configured
- #11081 fix: add bgColor type in RadialLinearScaleOptions
- #11095 🐛 fixes compilation error when option --isolatedModules is set

## Documentation

- #11110 Remove override warning tooltips
- #11093 Remove meetup banner
- #11077 Fix documentation typo

## Development

- #11130 Bump to 4.2.1
- #11124 Remove circumference property retrieving from arc element for center calculation because not used
- #11113 Update link to new template

Thanks to @LeeLenaleee, @choichoijin, @dangreen, @etimberg, @jljouannic, @johakr, @n1313 and @stockiNail

v4.2.0 (2023-01-18)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

- #11054 Add pointLabel context type documentation
- #11043 chore: Add Chart.js meetup announcement to README

## Enhancements

- #11063 Add format method to time scale to format timestamp using scale options

## Bugs Fixed

- #11003 Check colors definition in the chart options

## Types

- #11017 Change 'normal' update mode to 'default' as documented
- #11051 fix: updated type for doughnut offset

## Documentation

- #11058 Add banner to docs
- #11057 Update banner

## Development

- #11070 Bump to 4.2.0
- #11056 Remove console.warn from a test case where not needed

Thanks to @ankane, @igorlukanin, @mlankamp and @stockiNail

v4.1.2 (2023-01-05)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

## Types

- #11016 fix: fix Plugin interface
- #11008 Add Z index to border options

## Documentation

- #11006 Fixes missing markdown links in docs

## Development

- #11034 chore: version bump
- #11004 Update link to UMD bundle for master
- #11000 chore: replace cp with js code

Thanks to @LeeLenaleee, @dangreen and @matveycodes

v4.1.1 (2022-12-17)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

- #10988 chore: Revert "Add Product Hunt button (temporarily)"

## Bugs Fixed

- #10971 fix: avoid resize loop when browser zoom is set to 90%
- #10993 fix: move types to src dir to escape src / dist dirs in paths
- #10992 fix: hotfix chart.js/auto for commonjs

## Types

- #10993 fix: move types to src dir to escape src / dist dirs in paths

## Development

- #10997 Bump to 4.1.1

Thanks to @dangreen, @etimberg, @gbaron and @igorlukanin

v4.1.0 (2022-12-16)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

- #10980 chore: Add Product Hunt button (temporarily)
- #10917 fix: move @kurkle/color to dependencies

## Enhancements

- #10966 add getLabelItems public method
- #10984 feat: restore commonjs bundle
- #10964 Allow dynamic datasets to be colored
- #10904 Allow color plugin to work with custom dataset controllers
- #10870 feat: colors for mixed charts
- #10886 Pointstyle false

## Bugs Fixed

- #10942 Ensure that args are saved inside of the throttled helper
- #10766 fix: stacked bar chart minBarLength causes overlapping
- #10898 Set the transition mode to the context for scriptable options

## Types

- #10963 fix: unbind instance config from chart type
- #10910 Add stepSize option to time scale options types

## Documentation

- #10976 docs: Update Slack link
- #10965 Broken link is fixed.
- #10955 Update auto import in usage docs
- #10903 docs: add info about ESM into migration guide.
- #10885 update migration guide
- #10884 Move border opts to correct location for samples
- #10872 Remove V3 support, update readme

## Development

- #10962 test: turn on types linting
- #10983 bunp version to 4.1.0
- #10974 chore: add lint cache
- #10930 Update react template to V4 vite
- #10919 Use UDM build for reproducible sample

Thanks to @Kit-p, @LeeLenaleee, @Simon-He95, @benmccann, @dangreen, @etimberg, @igorlukanin, @letheri and @stockiNail

v4.0.1 (2022-11-14)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

## Bugs Fixed

- #10871 Fix release



Thanks to @LeeLenaleee

v4.0.0 (2022-11-14)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/migration/v4-migration.html)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

## Bugs Fixed

- #10869 Remove type attribute from dataset specific type specification
- #10867 check the data set type in DoughnutController
- #10806 fix: Always draw full arcs and borders for doughnut slices
- #10855 Fix the missing apply for the color on the legend labels
- #10851 Enable colors plugin for pie charts

## Types

- #10869 Remove type attribute from dataset specific type specification
- #10753 refactor: migrate helpers.options to typescript

## Documentation

- #10816 Updated docs (why Chart.js + getting started + step-by-step guide)
- #10857 docs: notes about html legend, tooltip and title
- #10826 Fix month
- #10827 Grammar error fixes
- #10831 Update example chart config type, remove whitespace

## Development

- #10868 v4.0.0 bump

Thanks to @BrilliantDeviation7, @LeeLenaleee, @dangreen, @etimberg, @gibson042, @igorlukanin, @luckened, @puneetkathar1, @stockiNail and @t-mangoe

V4.0.0-alpha.3 (2022-10-24)

No notes available

v4.0.0-alpha.2 (2022-10-12)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/getting-started/v3-migration)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

## Development

- #10790 Bump alpha 2

Thanks to @LeeLenaleee

v4.0.0-alpha.1 (2022-10-12)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/getting-started/v3-migration)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

- #10759 Fix #10749 - backdrops with rotated labels
- #10667 fix: calc visible points on update
- #10655 Provide an empty object when the target of the resolver is undefined
- #10661 TypeScript: NodeNext support
- #10639 enable pointStyleWidth for all legend styles

## Breaking Changes

- #10733 Convert the curve helpers to TS
- #10728 Convert helpers.extra to TS
- #10663 Fix autoskip logic
- #10653 Use ticks.steSize instead of time.stepSize on time and timeseries scales
- #10646 fix: respect aspect ratio with container height
- #10643 feat: remove default axis override when custom id is given
- #10612 Remove tooltip constructor fallbacks, \`this.chart\` and \`this.\_chart\`
- #9166 Refine logarithmic scaling / tick generation
- #10571 Put the border opts in own object
- #10548 fix: same-looking tooltips on charts
- #10551 Use borderRadius for legend and remove fallbacks
- #10591 Change way that linear scales calculate min and max
- #10526 feat: sideEffects false
- #10549 Remove destroy hook
- #10540 fix: pass timestamp to ticks callback
- #10525 feat: add ESM support
- #10504 fix: treeshaking
- #10550 Move parameter of TType in ChartMeta to first option
- #10469 Fix offset on doughnut charts

## Enhancements

- #10683 Use guard clause typings
- #10702 Add warning if filler plugin is used but not registered
- #10653 Use ticks.steSize instead of time.stepSize on time and timeseries scales
- #10643 feat: remove default axis override when custom id is given
- #10608 Use the element's window in getComputedStyle
- #10571 Put the border opts in own object
- #10605 Change react integration test to TS
- #10548 fix: same-looking tooltips on charts
- #10551 Use borderRadius for legend and remove fallbacks
- #10567 feat: tooltip callbacks fallback
- #10568 build: emit sourcemaps
- #10526 feat: sideEffects false
- #10525 feat: add ESM support
- #10504 fix: treeshaking

## Bugs Fixed

- #10691 Use the correct area to clip  for dataset drawing when stacked scales are used
- #10693 fix: aspect ratio calc
- #10641 FIX: render multiline legend items without overlapping (#10532)
- #10663 Fix autoskip logic
- #9166 Refine logarithmic scaling / tick generation
- #10598 fix: allow beforeTooltipDraw to be cancelable
- #10540 fix: pass timestamp to ticks callback
- #10469 Fix offset on doughnut charts

## Types

- #10772 Convert the Arc element to TS
- #10734 refactor: migrate helpers.dom to typescript
- #10733 Convert the curve helpers to TS
- #10730 Convert the PointElement to TS
- #10760 Types: Change grid option of CartesianScaleOptions and RadialLinearScaleOptions to Partial of GridLineOptions
- #10739 Allow to configure X and Y axis ID in TS for bubble charts
- #10728 Convert helpers.extra to TS
- #10729 Export declare const enums
- #10726 Types: Export UpdateModeEnum as const
- #10722 refactor: move batch of helpers to ts
- #10712 Add defaults to plugin interface
- #10683 Use guard clause typings
- #10660 fix: types and tests
- #10652 Update bar data type to comply with floating bar charts data
- #10627 Convert the easing helpers to typescript
- #10582 Allow animations to be set to false for the tooltip typings 
- #10590 Add \`grouped\` option to the typings for barchart
- #10585 add correct padding object to type
- #10579 fix: allow nulls in barchart data type
- #10550 Move parameter of TType in ChartMeta to first option

## Documentation

- #10763 docs: fix typos
- #10748 Updated dead sample link
- #10719 Update namespace of logarithmic ticks section
- #10708 Unify data structure snipets and add ts explanation
- #10702 Add warning if filler plugin is used but not registered
- #10666 Fixed broken link in docs
- #10645 Update link to master umd build
- #10640 Fix broken link
- #10621 docs: fix images loading
- #10569 Document components for bundle optimization
- #10613 move option to correct namespace
- #10611 fix lint in docs
- #10607 Documentation: how to add static typing to plugins

## Development

- #10787 Bump alpha v4
- #10632 Bump \`markdown-it\` in docs
- #10591 Change way that linear scales calculate min and max
- #10573 chore: upgrade dependencies
- #10589 Downgrade karma preprocessor

Thanks to @Brainshaker95, @GrantHynd, @LeeLenaleee, @Lonylis, @New-dev0, @Zivangu9, @amincheloh, @benmccann, @cmcnulty, @dangreen, @etimberg, @jdufresne, @jwilliams-met, @kartik-madhak, @kurkle, @lucianosantana, @luckened, @rupert-br, @sashashura, @stockiNail, @touletan and @wenzdey

v3.9.1 (2022-08-03)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/getting-started/v3-migration)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

## Bugs Fixed

- #10552 fix import helpers

Thanks to @LeeLenaleee

v3.9.0 (2022-08-02)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/getting-started/v3-migration)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

## Enhancements

- #10439 feat: remove line element from scatter controller
- #10528 feat: pass some chart options to DateAdapter
- #10405 Add circular prop to arc element
- #10530 Skip all borders if borderSkipped === true
- #10517 parsing: support dot(s) in object keys
- #10519 Enable borderDash option in the grid as scriptable

## Performance

- #10517 parsing: support dot(s) in object keys

## Bugs Fixed

- #10524 pass boxWidth only if pointStyleWidth presents
- #10523 fix: calc visible points on update #10467

## Documentation

- #10527 Add docs for changing from time scale to logarithmic/linear scale
- #10518 Improve docs radial linear grid
- #10522 Fix Stack Overflow tag: chart.js
- #10520 Fix Stack Overflow tag: chart.js
- #10515 Fix dead link on reload or open in new tab
- #10516 Clarifying threshold requirement in the docs for decimation

## Development

- #10541 Bump to 3.9.0

Thanks to @LeeLenaleee, @M4sterShake, @benmccann, @dangreen, @kurkle, @peterhauke, @stockiNail, @thabarbados and @touletan

v3.8.2 (2022-07-24)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/getting-started/v3-migration)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

## Bugs Fixed

- #10513 Explicitly include package.json files for subpackages

## Development

- #10513 Explicitly include package.json files for subpackages

Thanks to @etimberg

v3.8.1 (2022-07-24)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/getting-started/v3-migration)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

## Enhancements

- #10495 Improve error message with id of the canvas
- #10412 Add pointStyleWidth option for legend

## Bugs Fixed

- #10484 Resolve plugin defaults for local plugins
- #10489 draw tooltip with object borderwidth
- #10451 Fix options update when changing to shared opts
- #10454 Fix crash with skipNull and uneven datasets
- #10414 Respect \`fill: false\` with custom draw times

## Types

- #10494 Allow clip to be configurable in options object typescript
- #10436 Add index to legendItem interface
- #10404 Add padding to pointLabels type, add type to scriptable context
- #10387 Allow for each dataset to be individually typed without a main type

## Documentation

- #10490 document defaults for plugins
- #10497 Update link to be able to use within github
- #10446 Add a stale version warning + a link to the latest version of docs
- #10470 Update integration.md
- #10447 Enforce maximum width on chart editor blocks in the docs
- #10456 Update aspectRatio documentation
- #10415 Update responsive.md
- #10434 Clarify helpers need to be imported when using bundlers
- #10410 Fix typo in link to documentation from sample
- #10400 Fix default value of 'includeInvisible' option in the documentation
- #10392 Clarify api docs

## Development

- #10509 Bump to 3.8.1
- #10493 Bump terser from 4.8.0 to 4.8.1
- #10471 Bump moment from 2.29.2 to 2.29.4
- #10431 Bump actions/setup-node from 2 to 3
- #10430 Bump actions/checkout from 2 to 3
- #10393 Bump eventsource from 1.1.0 to 1.1.1

Thanks to @LeeLenaleee, @Pourbahrami, @andrewl64, @dependabot, @dependabot[bot], @etimberg, @ideabrian, @igorlukanin, @kurkle, @naveensrinivasan, @stockiNail and @touletan

v3.8.0 (2022-05-25)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/getting-started/v3-migration)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

- #10341 Correct auto.esm.js import to allow module to work in browser
- #10316 Use abs() when comparing for spanGaps
- #10320 Bump async from 2.6.3 to 2.6.4
- #10290 Bump moment from 2.29.1 to 2.29.2
- #10260 Bump minimist from 1.2.5 to 1.2.6
- #10204 Bump karma from 6.3.14 to 6.3.16
- #10200 Bump url-parse from 1.5.7 to 1.5.10
- #10198 Bump prismjs from 1.25.0 to 1.27.0
- #10181 Bump url-parse from 1.5.3 to 1.5.7
- #10146 Bump karma from 6.3.9 to 6.3.14
- #10150 Bump log4js from 6.3.0 to 6.4.1
- #10152 Bump engine.io from 6.1.0 to 6.1.2
- #10151 Bump node-fetch from 2.6.6 to 2.6.7
- #10149 Bump follow-redirects from 1.14.6 to 1.14.8

## Enhancements

- #10362 Add option to include invisible points
- #10328 Resolve canvasGradient is undefined in node
- #10293 Enable configuration of radial scale point label border radius
- #10278 Allow time scale to offset using skipped ticks
- #10046 Interaction functions
- #10182 Allow individual chart controllers to opt-in to the decimation plugin
- #10088 Make object notation usable for polarArea and radar
- #10106 Add new align 'inner' for X axis

## Bugs Fixed

- #10371 Update to v0.2.1 color dependency to fix bug with invalid colours
- #10340 Update scale polarArea correctly on data hide
- #10289 display tooltips only at points in chart area
- #10328 Resolve canvasGradient is undefined in node
- #10301 Trigger legend onLeave when the mouse leaves the canvas
- #10276 Document tooltip draw hooks and only call hooks when the tooltip draws
- #10157 minimum bar length setting keeps bar base in view

## Types

- #10364 Types: Allow font to be partial scriptable and individually scriptable
- #10283 Types: add 'middle' to borderSkipped
- #10275 Export types for cartesian and radial tick options
- #10269 add startAngle to radial scale options typings
- #10254 Add missing fields to the ScriptableContext type
- #10179 Allow array for line opts in dataset

## Documentation

- #10308 Add links to docs in all the samples
- #10259 Fix a typo in data-structures.md
- #10266 Correct chart initialization flow
- #10250 Update link to filler plugin
- #10184 Fix broken link in Animations docs page.
- #10158 remove hardcoded licenseYear in docs
- #10156 update link to license and bump license year
- #10154 Document scale update plugin hooks

## Development

- #10377 Bump to 3.8.0
- #10247 Resolve circulair import filler plugin
- #10243 Replace deprecated String.prototype.substr()
- #10040 Refactor filler plugin for easier maintenance

Thanks to @CommanderRoot, @LeeLenaleee, @Talla2XLC, @akiraaso, @dependabot, @dependabot[bot], @etimberg, @joshkel, @kurkle, @kylejonesdev, @linkviii, @luke-heberling, @msteiger, @pzelnip, @t-mangoe and @yhvicey

v3.7.1 (2022-02-12)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/getting-started/v3-migration)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

## Bugs Fixed

- #10024 Fix using above/below filling option with discontinuous lines

## Types

- #10124 Add missing mouse events to CoreChartOptions.events type
- #10133 Allow spanGaps to be specified on LineOptions
- #10137 Ensure that min/max of TimeScaleOptions can be a string
- #10075 fix: allow colors as array
- #10131 Correct type for updateHoverStyle
- #10130 Type Chart.legend property
- #10111 Change repeating alingment string to single type
- #10078 Move scriptable and array to helper function in types
- #10057 add typing and docs for maxTicksLimit all scales

## Documentation

- #10138 Sort docs sub menus alphabetically, add line and plugin sample
- #10100 Sort line and bubble dataset options alphabetically
- #10103 Fix typos found by codespell
- #10057 add typing and docs for maxTicksLimit all scales
- #10045 typo Cofiguration

## Development

- #10148 Bump to 3.7.1
- #10117 add SubTitle to TS register test 
- #10078 Move scriptable and array to helper function in types
- #10038 Improve issue templates

Thanks to @DimitriPapadopoulos, @LeeLenaleee, @LovelyAndy, @caub, @charlesmass2, @etimberg, @jmorel and @stockiNail

v3.7.0 (2021-12-23)

# Essential Links

* [npm](https://www.npmjs.com/package/chart.js)
* [Migration guide](https://www.chartjs.org/docs/latest/getting-started/v3-migration)
* [Docs](https://www.chartjs.org/docs/latest/)
* [API](https://www.chartjs.org/docs/latest/api/)
* [Samples](https://www.chartjs.org/docs/latest/samples/)

## Enhancements

- #9949 Add centerPointLabels option for linear radial scale
- #9970 Limit active element changes to chartArea
- #9944 Improvements to tooltip positioners
- #9933 add beforeDestroy hook
- #9919 Support "r" axis for non-intersecting interaction
- #9920 Feature/active elements on top
- #9877 Add borderJoinStyle option for arc elements

## Bugs Fixed

- #10021 radialLinear: fix positioning \& scaling
- #10020 radialLinear: fix getIndexAngle when there are no labels (left)
- #10018 radialLinear: Hide pointLabels of hidden data
- #9992 Fix setActiveElements behavior after a mouse event
- #9970 Limit active element changes to chartArea
- #9969 Pass object from array as value to \_fallback

## Types

- #9986 Types/ type suggestedMin and suggestedMax for time scale
- #9985 Types/Allow min-max as string timescale
- #9937 Types/allow for multiline labels in tick callback

## Documentation

- #10013 Docs/Add sample for centered point labels
- #9994 Docs/clarify usage of ticks callback (#9991)
- #9960 Docs/clarify samples 
- #9952 Try to improve documentation for new users

## Development

- #10011 Bump version to 3.7.0, update deps

Thanks to @LeeLenaleee, @doug-a-brunner, @joshkel, @kurkle, @luukdv and @t-mangoe