({
dataset,
config,
}: AltCopyArgs<VersionsBarDataset, VersionsBarConfig>)
| 575 | |
| 576 | // Used for VersionDistribution.vue |
| 577 | export function createAltTextForVersionsBarChart({ |
| 578 | dataset, |
| 579 | config, |
| 580 | }: AltCopyArgs<VersionsBarDataset, VersionsBarConfig>) { |
| 581 | if (!dataset) return '' |
| 582 | |
| 583 | const series = dataset.bars[0]?.series ?? [] |
| 584 | const versions = series.map((value, index) => ({ |
| 585 | index, |
| 586 | name: config.datapointLabels[index] ?? '-', |
| 587 | rawDownloads: value ?? 0, |
| 588 | downloads: config.numberFormatter(value ?? 0), |
| 589 | })) |
| 590 | |
| 591 | const versionWithMaxDownloads = |
| 592 | versions.length > 0 |
| 593 | ? versions.reduce((max, current) => (current.rawDownloads > max.rawDownloads ? current : max)) |
| 594 | : undefined |
| 595 | |
| 596 | const per_version_analysis = versions |
| 597 | .toReversed() |
| 598 | .filter(v => v.index !== versionWithMaxDownloads?.index) |
| 599 | .map(v => |
| 600 | config.$t(`package.versions.copy_alt.per_version_analysis`, { |
| 601 | version: v?.name ?? '-', |
| 602 | downloads: v?.downloads ?? '-', |
| 603 | }), |
| 604 | ) |
| 605 | .join(', ') |
| 606 | |
| 607 | const semver_grouping_mode = |
| 608 | config.semverGroupingMode === 'major' |
| 609 | ? config.$t('package.versions.grouping_major') |
| 610 | : config.$t('package.versions.grouping_minor') |
| 611 | |
| 612 | const altText = `${config.$t('package.versions.copy_alt.general_description', { |
| 613 | package_name: dataset?.bars[0]?.name ?? '-', |
| 614 | versions_count: versions?.length, |
| 615 | semver_grouping_mode: semver_grouping_mode.toLocaleLowerCase(), |
| 616 | first_version: versions[0]?.name ?? '-', |
| 617 | last_version: versions.at(-1)?.name ?? '-', |
| 618 | date_range_label: config.dateRangeLabel ?? '-', |
| 619 | max_downloaded_version: versionWithMaxDownloads?.name ?? '-', |
| 620 | max_version_downloads: versionWithMaxDownloads?.downloads ?? '-', |
| 621 | per_version_analysis, |
| 622 | watermark: config.$t('package.trends.copy_alt.watermark'), |
| 623 | })}` |
| 624 | |
| 625 | return altText |
| 626 | } |
| 627 | |
| 628 | export async function copyAltTextForVersionsBarChart({ |
| 629 | dataset, |
no outgoing calls
no test coverage detected