From 16bbeb87494702b09f25b4b18020f93bfa7577a0 Mon Sep 17 00:00:00 2001 From: Bel LaPointe <153096461+breel-render@users.noreply.github.com> Date: Mon, 22 Jul 2024 07:12:36 -0600 Subject: [PATCH] pie trims common prefix and sorts slice names --- src/view/chart.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/view/chart.go b/src/view/chart.go index 8434702..29c44b8 100644 --- a/src/view/chart.go +++ b/src/view/chart.go @@ -3,6 +3,8 @@ package view import ( "fmt" "io" + "slices" + "strings" "github.com/go-echarts/go-echarts/v2/charts" "github.com/go-echarts/go-echarts/v2/opts" @@ -123,6 +125,20 @@ func (pie *Pie) AddX(v interface{}) { } func (pie *Pie) Render(w io.Writer) error { + slices.SortFunc(pie.series, func(a, b opts.PieData) int { + return strings.Compare(a.Name, b.Name) + }) + commonPrefixLen := 0 + for i := 0; i < len(pie.series[0].Name) && i < len(pie.series[len(pie.series)-1].Name); i++ { + if pie.series[0].Name[i] != pie.series[len(pie.series)-1].Name[i] { + break + } + commonPrefixLen = i + } + for i := range pie.series { + pie.series[i].Name = pie.series[i].Name[commonPrefixLen:] + } + pie.AddSeries("", pie.series) pie.SetGlobalOptions(charts.WithLegendOpts(opts.Legend{ Show: false,