Bug: IndexSizeError: negative radius passed to canvas.arc when drawing box/label with non-positive size
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
- Ambito
- data-visualization
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
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di chartjs/chartjs-plugin-annotation
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 48/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
TypeScript type issuesForse già presa @joshkel l’ha presa 439 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
-
enhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
Tutte le issue di chartjs/chartjs-plugin-annotation
Issue simili
-
Remove: Fox Deportes SDApertacheck:passed feeds:remove
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 65/100
iptv-org/database#37176 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 9 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
hawk-digital-environments/HAWKI#443 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
feedback simulation workshop
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
githubnext/gh-aw-workshop#4370 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
AltimateAI/vscode-dbt-power-user#2089 ·