@@ -108,6 +108,17 @@ function getGroupDownloads(versions: string[]): number | undefined {
108108 return hasValue ? total : undefined
109109}
110110
111+ const groupDownloadsMap = computed (() => {
112+ const map = new Map <string , number >()
113+ for (const group of versionGroups .value ) {
114+ const downloads = getGroupDownloads (group .versions )
115+ if (downloads !== undefined ) {
116+ map .set (group .groupKey , downloads )
117+ }
118+ }
119+ return map
120+ })
121+
111122function getDownloadsAriaLabel(downloads : number ): string {
112123 return ` ${numberFormatter .value .format (downloads )} ${t (' package.downloads.title' )} `
113124}
@@ -523,13 +534,13 @@ const flatItems = computed<FlatItem[]>(() => {
523534 >v{{ item.versions[0] }}</span
524535 >
525536 <span
526- v-if =" getGroupDownloads (item.versions )"
537+ v-if =" groupDownloadsMap.has (item.groupKey )"
527538 class =" ms-auto w-28 grid grid-flow-col auto-cols-max items-center justify-end gap-1 text-xs text-fg-muted tabular-nums shrink-0"
528- :aria-label =" getDownloadsAriaLabel(getGroupDownloads (item.versions )!)"
539+ :aria-label =" getDownloadsAriaLabel(groupDownloadsMap.get (item.groupKey )!)"
529540 dir =" ltr"
530- :title =" getDownloadsAriaLabel(getGroupDownloads (item.versions )!)"
541+ :title =" getDownloadsAriaLabel(groupDownloadsMap.get (item.groupKey )!)"
531542 >
532- <span >{{ numberFormatter.format(getGroupDownloads (item.versions )!) }}</span >
543+ <span >{{ numberFormatter.format(groupDownloadsMap.get (item.groupKey )!) }}</span >
533544 <span class =" i-lucide:chart-line" aria-hidden =" true" ></span >
534545 </span >
535546 <span v-else class =" ms-auto w-28 shrink-0" />
@@ -661,13 +672,13 @@ const flatItems = computed<FlatItem[]>(() => {
661672 >v{{ item.versions[0] }}</span
662673 >
663674 <span
664- v-if =" getGroupDownloads (item.versions )"
675+ v-if =" groupDownloadsMap.has (item.groupKey )"
665676 class =" ms-auto w-28 grid grid-flow-col auto-cols-max items-center justify-end gap-1 text-xs text-fg-muted tabular-nums shrink-0"
666- :aria-label =" getDownloadsAriaLabel(getGroupDownloads (item.versions )!)"
677+ :aria-label =" getDownloadsAriaLabel(groupDownloadsMap.get (item.groupKey )!)"
667678 dir =" ltr"
668- :title =" getDownloadsAriaLabel(getGroupDownloads (item.versions )!)"
679+ :title =" getDownloadsAriaLabel(groupDownloadsMap.get (item.groupKey )!)"
669680 >
670- <span >{{ numberFormatter.format(getGroupDownloads (item.versions )!) }}</span >
681+ <span >{{ numberFormatter.format(groupDownloadsMap.get (item.groupKey )!) }}</span >
671682 <span class =" i-lucide:chart-line" aria-hidden =" true" ></span >
672683 </span >
673684 <span v-else class =" ms-auto w-28 shrink-0" />
0 commit comments