Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Bug: IndexSizeError: negative radius passed to canvas.arc when drawing box/label with non-positive size

Aperta Adatta ai principianti
#986 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
68/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
chart.js, javascript

Direzione di ricerca

Inizia dal percorso di disegno dell’annotazione e da addRoundedRectPath indicato nello stack, quindi traccia il modo in cui la larghezza e l’altezza del riquadro o dell’etichetta arrivano al clamp del border-radius. Assicurati che dimensioni non positive non possano passare un raggio negativo a CanvasRenderingContext2D.arc, oppure che vengano ignorate come suggerito. Il lavoro è concluso quando il caso del grafico collassato non genera più IndexSizeError, mentre i riquadri arrotondati validi continuano a essere disegnati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

When an annotation box (or label background) is drawn with a non-positive width/height — e.g. chart area briefly collapsed during layout/resize — the plugin clamps borderRadius with:

clamp(corners, 0, Math.min(w, h) / 2)

If w or h is negative, that max is negative, so even borderRadius: 0 becomes negative. Chart.js then calls ctx.arc(..., radius, ...) and the browser throws:

IndexSizeError: Failed to execute 'arc' on 'CanvasRenderingContext2D': The radius provided (…) is negative.

Where
Plugin: chartjs-plugin-annotation v3.0.1
Stack: annotation draw → addRoundedRectPath → CanvasRenderingContext2D.arc

Triggered in our app during chart expand/collapse / layout thrash (plot area briefly invalid)

Suggestion: Clamp radius with a non-negative max, e.g. Math.max(0, Math.min(w, h) / 2), or skip drawing when w <= 0 or h <= 0.

Lingua principale
JavaScript
Stelle
623
Fork
377
Merge medio
11h 20m
PR unite (30g)
7

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di chartjs/chartjs-plugin-annotation

Tutte le issue di chartjs/chartjs-plugin-annotation

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.