@openshift-migration-advisor/shared-components 0.27.0 → 0.28.0-9da6a7613f16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/charts/MigrationDonutChart.d.ts.map +1 -1
- package/dist/charts/MigrationDonutChart.js +7 -0
- package/dist/report/ChartExportProvider.d.ts +4 -3
- package/dist/report/ChartExportProvider.d.ts.map +1 -1
- package/dist/report/ChartExportProvider.js +7 -4
- package/dist/report/ClustersOverview.d.ts +24 -0
- package/dist/report/ClustersOverview.d.ts.map +1 -0
- package/dist/report/ClustersOverview.js +228 -0
- package/dist/report/ClustersOverviewStyles.d.ts +12 -0
- package/dist/report/ClustersOverviewStyles.d.ts.map +1 -0
- package/dist/report/ClustersOverviewStyles.js +101 -0
- package/dist/report/CpuAndMemoryOverview.d.ts +19 -0
- package/dist/report/CpuAndMemoryOverview.d.ts.map +1 -0
- package/dist/report/CpuAndMemoryOverview.js +112 -0
- package/dist/report/FeatureStatusBadge.js +1 -1
- package/dist/report/StorageOverview.d.ts +27 -0
- package/dist/report/StorageOverview.d.ts.map +1 -0
- package/dist/report/StorageOverview.js +319 -0
- package/dist/report/captureChartElement.d.ts +6 -1
- package/dist/report/captureChartElement.d.ts.map +1 -1
- package/dist/report/captureChartElement.js +41 -12
- package/dist/report/chartExport.d.ts +23 -0
- package/dist/report/chartExport.d.ts.map +1 -1
- package/dist/report/chartExport.js +21 -1
- package/dist/report/chartExportContext.d.ts +6 -2
- package/dist/report/chartExportContext.d.ts.map +1 -1
- package/dist/report/dashboardStyles.d.ts +6 -0
- package/dist/report/dashboardStyles.d.ts.map +1 -1
- package/dist/report/dashboardStyles.js +7 -4
- package/dist/report/index.d.ts +5 -2
- package/dist/report/index.d.ts.map +1 -1
- package/dist/report/index.js +3 -0
- package/dist/report/pdfExport.d.ts +2 -2
- package/dist/report/pdfExport.d.ts.map +1 -1
- package/dist/report/pdfExport.js +52 -3
- package/package.json +2 -2
- package/src/charts/MigrationDonutChart.tsx +9 -0
- package/src/report/ChartExportProvider.tsx +18 -6
- package/src/report/ClustersOverview.tsx +451 -0
- package/src/report/ClustersOverviewStyles.ts +110 -0
- package/src/report/CpuAndMemoryOverview.tsx +277 -0
- package/src/report/FeatureStatusBadge.tsx +1 -1
- package/src/report/StorageOverview.tsx +629 -0
- package/src/report/__tests__/ChartExportProvider.test.tsx +110 -2
- package/src/report/__tests__/ClustersOverview.test.tsx +241 -0
- package/src/report/__tests__/CpuAndMemoryOverview.test.tsx +200 -0
- package/src/report/__tests__/StorageOverview.test.tsx +223 -0
- package/src/report/__tests__/captureChartElement.test.ts +120 -0
- package/src/report/__tests__/chartExportPackagers.test.ts +75 -0
- package/src/report/captureChartElement.ts +55 -10
- package/src/report/chartExport.ts +41 -1
- package/src/report/chartExportContext.tsx +9 -1
- package/src/report/dashboardStyles.ts +7 -4
- package/src/report/index.ts +17 -0
- package/src/report/pdfExport.ts +81 -2
package/dist/report/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export { CARD_EMPTY_STATE_DESCRIPTION, CardEmptyState, type CardEmptyStateProps, } from "./CardEmptyState.js";
|
|
2
2
|
export { ChartDownloadButton, ChartHeaderActions, } from "./ChartDownloadButton.js";
|
|
3
|
-
export { type BuildChartDocument, type CaptureChartElement, ChartExportProvider, type ChartExportProviderProps, type EncodeChartPng, type ZipChartFiles, } from "./ChartExportProvider.js";
|
|
3
|
+
export { type BuildChartDocument, type BuildPdfDocument, type CaptureChartElement, ChartExportProvider, type ChartExportProviderProps, type EncodeChartPng, type ZipChartFiles, } from "./ChartExportProvider.js";
|
|
4
4
|
export { ChartExportSurface } from "./ChartExportSurface.js";
|
|
5
|
+
export { ClustersOverview, type ClustersOverviewProps, type InventoryDataLike, } from "./ClustersOverview.js";
|
|
6
|
+
export { CpuAndMemoryOverview, type CpuAndMemoryOverviewProps, } from "./CpuAndMemoryOverview.js";
|
|
5
7
|
export { captureChartElement } from "./captureChartElement.js";
|
|
6
|
-
export { CHART_EXPORT_CAPTURING_ATTR, CHART_EXPORT_HIDE_ATTR, CHART_EXPORT_SCROLL_ATTR, type ChartCaptureSource, type ChartExportFile, type ChartExportMeta, type ChartExportView, canvasToBlob, chartExportHideProps, chartExportRootStyle, chartExportScrollProps, chartExportViewsFromLabels, chartPngFilename, downloadBlob, type RegisteredChart, releaseCanvas, restoreChartExportViews, shouldIgnoreChartExportElement, slugifyExportName, sortRegisteredChartsByDocumentOrder, toBulkChartCaptureSources, } from "./chartExport.js";
|
|
8
|
+
export { CHART_EXPORT_CAPTURING_ATTR, CHART_EXPORT_HIDE_ATTR, CHART_EXPORT_SCROLL_ATTR, type ChartCaptureSource, type ChartExportFile, type ChartExportMeta, type ChartExportView, canvasToBlob, chartExportHideProps, chartExportRootStyle, chartExportScrollProps, chartExportViewsFromLabels, chartPngFilename, downloadBlob, type PdfTextPage, type PdfTextPageItem, type RegisteredChart, releaseCanvas, restoreChartExportViews, shouldIgnoreChartExportElement, slugifyExportName, sortRegisteredChartsByDocumentOrder, toBulkChartCaptureSources, } from "./chartExport.js";
|
|
7
9
|
export { type ChartExportApi, type ChartExportFormat, useChartExport, useRegisterChart, } from "./chartExportContext.js";
|
|
8
10
|
export { getChartExportFilename, getChartZipFilename, getDatedChartExportBasename, } from "./chartExportFilenames.js";
|
|
9
11
|
export { chartColorFailure, chartColorSuccess, REPORT_CARD_EMPTY_STATE_TITLES, } from "./constants.js";
|
|
@@ -34,6 +36,7 @@ export { buildHostPowerStateChart, buildVmPowerStateChart, HOST_POWER_COLORS, VM
|
|
|
34
36
|
export { ExportReportButton, type ExportReportButtonProps, ReportExportMenu, type ReportExportMenuProps, } from "./ReportExportMenu.js";
|
|
35
37
|
export { ReportTable, type ReportTableProps } from "./ReportTable.js";
|
|
36
38
|
export { type ReportExportOption, type StandardReportExportHandlers, standardReportExportOptions, } from "./reportExportOptions.js";
|
|
39
|
+
export { type StorageDiskTierData, StorageOverview, type StorageOverviewProps, } from "./StorageOverview.js";
|
|
37
40
|
export { SupportTierBadge } from "./SupportTierBadge.js";
|
|
38
41
|
export { ALL_TIERS_FILTER, type OsBarChartViewModel, type OsTableRow, useOsBarChartViewModel, } from "./useOsBarChartViewModel.js";
|
|
39
42
|
export { VCenterClusterDetails, type VCenterClusterDetailsProps, } from "./VCenterClusterDetails.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/report/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/report/index.ts"],"names":[],"mappings":"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"}
|
package/dist/report/index.js
CHANGED
|
@@ -2,6 +2,8 @@ export { CARD_EMPTY_STATE_DESCRIPTION, CardEmptyState, } from "./CardEmptyState.
|
|
|
2
2
|
export { ChartDownloadButton, ChartHeaderActions, } from "./ChartDownloadButton.js";
|
|
3
3
|
export { ChartExportProvider, } from "./ChartExportProvider.js";
|
|
4
4
|
export { ChartExportSurface } from "./ChartExportSurface.js";
|
|
5
|
+
export { ClustersOverview, } from "./ClustersOverview.js";
|
|
6
|
+
export { CpuAndMemoryOverview, } from "./CpuAndMemoryOverview.js";
|
|
5
7
|
export { captureChartElement } from "./captureChartElement.js";
|
|
6
8
|
export { CHART_EXPORT_CAPTURING_ATTR, CHART_EXPORT_HIDE_ATTR, CHART_EXPORT_SCROLL_ATTR, canvasToBlob, chartExportHideProps, chartExportRootStyle, chartExportScrollProps, chartExportViewsFromLabels, chartPngFilename, downloadBlob, releaseCanvas, restoreChartExportViews, shouldIgnoreChartExportElement, slugifyExportName, sortRegisteredChartsByDocumentOrder, toBulkChartCaptureSources, } from "./chartExport.js";
|
|
7
9
|
export { useChartExport, useRegisterChart, } from "./chartExportContext.js";
|
|
@@ -31,6 +33,7 @@ export { buildHostPowerStateChart, buildVmPowerStateChart, HOST_POWER_COLORS, VM
|
|
|
31
33
|
export { ExportReportButton, ReportExportMenu, } from "./ReportExportMenu.js";
|
|
32
34
|
export { ReportTable } from "./ReportTable.js";
|
|
33
35
|
export { standardReportExportOptions, } from "./reportExportOptions.js";
|
|
36
|
+
export { StorageOverview, } from "./StorageOverview.js";
|
|
34
37
|
export { SupportTierBadge } from "./SupportTierBadge.js";
|
|
35
38
|
export { ALL_TIERS_FILTER, useOsBarChartViewModel, } from "./useOsBarChartViewModel.js";
|
|
36
39
|
export { VCenterClusterDetails, } from "./VCenterClusterDetails.js";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { type ChartCaptureSource } from "./chartExport.js";
|
|
2
|
-
export declare function buildPdfFromCharts(charts: ChartCaptureSource[], documentTitle: string): Promise<Blob>;
|
|
1
|
+
import { type ChartCaptureSource, type PdfTextPage } from "./chartExport.js";
|
|
2
|
+
export declare function buildPdfFromCharts(charts: ChartCaptureSource[], documentTitle: string, extraPages?: PdfTextPage[]): Promise<Blob>;
|
|
3
3
|
//# sourceMappingURL=pdfExport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdfExport.d.ts","sourceRoot":"","sources":["../../src/report/pdfExport.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"pdfExport.d.ts","sourceRoot":"","sources":["../../src/report/pdfExport.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAEjB,MAAM,kBAAkB,CAAC;AAQ1B,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,kBAAkB,EAAE,EAC5B,aAAa,EAAE,MAAM,EACrB,UAAU,GAAE,WAAW,EAAO,GAC7B,OAAO,CAAC,IAAI,CAAC,CA2Df"}
|
package/dist/report/pdfExport.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import jsPDF from "jspdf";
|
|
2
|
-
import { releaseCanvas } from "./chartExport.js";
|
|
2
|
+
import { releaseCanvas, } from "./chartExport.js";
|
|
3
3
|
import { fitPdfImageSize, placePdfBlock, sliceCanvas } from "./pdfPage.js";
|
|
4
4
|
const MARGIN_MM = 10;
|
|
5
5
|
const GAP_MM = 8;
|
|
6
6
|
/** Flatten captures onto white; jsPDF cannot embed transparent PNG alpha cleanly. */
|
|
7
7
|
const PAGE_BACKGROUND = "#ffffff";
|
|
8
|
-
export async function buildPdfFromCharts(charts, documentTitle) {
|
|
8
|
+
export async function buildPdfFromCharts(charts, documentTitle, extraPages = []) {
|
|
9
9
|
const pdf = new jsPDF("p", "mm", "a4");
|
|
10
10
|
const pageWidth = pdf.internal.pageSize.getWidth();
|
|
11
11
|
const pageHeight = pdf.internal.pageSize.getHeight();
|
|
@@ -13,7 +13,7 @@ export async function buildPdfFromCharts(charts, documentTitle) {
|
|
|
13
13
|
const contentHeight = pageHeight - MARGIN_MM * 2;
|
|
14
14
|
const pageTop = MARGIN_MM;
|
|
15
15
|
const pageBottom = pageHeight - MARGIN_MM;
|
|
16
|
-
addCoverPage(pdf, documentTitle, charts.map((chart) => chart.title), pageWidth, pageHeight);
|
|
16
|
+
addCoverPage(pdf, documentTitle, [...charts.map((chart) => chart.title), ...extraPages.map((p) => p.title)], pageWidth, pageHeight);
|
|
17
17
|
let cursorY = null;
|
|
18
18
|
for (const chart of charts) {
|
|
19
19
|
const canvas = await chart.capture();
|
|
@@ -33,6 +33,9 @@ export async function buildPdfFromCharts(charts, documentTitle) {
|
|
|
33
33
|
releaseCanvas(canvas);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
+
if (extraPages.length > 0) {
|
|
37
|
+
addExtraPages(pdf, extraPages, pageWidth, pageHeight);
|
|
38
|
+
}
|
|
36
39
|
addPageNumbers(pdf, pageWidth, pageHeight);
|
|
37
40
|
return pdf.output("blob");
|
|
38
41
|
}
|
|
@@ -70,6 +73,52 @@ function addChartImage(pdf, canvas, x, y, widthMm, heightMm) {
|
|
|
70
73
|
releaseCanvas(flattened);
|
|
71
74
|
}
|
|
72
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Append one native-text PDF page per entry in `extraPages`, rendered as
|
|
78
|
+
* label/value rows rather than a captured image. Each page starts fresh so
|
|
79
|
+
* its content never bleeds into a chart page.
|
|
80
|
+
*/
|
|
81
|
+
function addExtraPages(pdf, extraPages, pageWidth, pageHeight) {
|
|
82
|
+
const LABEL_COL_WIDTH = 68; // mm — enough for the longest label
|
|
83
|
+
const VALUE_COL_X = MARGIN_MM + LABEL_COL_WIDTH;
|
|
84
|
+
const VALUE_COL_WIDTH = pageWidth - MARGIN_MM - LABEL_COL_WIDTH;
|
|
85
|
+
const LINE_HEIGHT = 7; // mm between rows
|
|
86
|
+
for (const page of extraPages) {
|
|
87
|
+
pdf.addPage();
|
|
88
|
+
let y = MARGIN_MM + 8;
|
|
89
|
+
pdf.setFontSize(16);
|
|
90
|
+
pdf.setFont("helvetica", "bold");
|
|
91
|
+
pdf.text(page.title, MARGIN_MM, y);
|
|
92
|
+
y += 10;
|
|
93
|
+
pdf.setDrawColor(0, 103, 187);
|
|
94
|
+
pdf.setLineWidth(0.5);
|
|
95
|
+
pdf.line(MARGIN_MM, y, pageWidth - MARGIN_MM, y);
|
|
96
|
+
y += 10;
|
|
97
|
+
pdf.setFontSize(11);
|
|
98
|
+
for (const item of page.items) {
|
|
99
|
+
pdf.setFont("helvetica", "bold");
|
|
100
|
+
const labelLines = pdf.splitTextToSize(item.label, LABEL_COL_WIDTH - 4);
|
|
101
|
+
pdf.text(labelLines, MARGIN_MM, y);
|
|
102
|
+
pdf.setFont("helvetica", "normal");
|
|
103
|
+
const valueLines = pdf.splitTextToSize(item.value, VALUE_COL_WIDTH);
|
|
104
|
+
pdf.text(valueLines, VALUE_COL_X, y);
|
|
105
|
+
y += LINE_HEIGHT * Math.max(labelLines.length, valueLines.length);
|
|
106
|
+
if (y > pageHeight - MARGIN_MM - 25) {
|
|
107
|
+
pdf.addPage();
|
|
108
|
+
y = MARGIN_MM + 10;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (page.footer) {
|
|
112
|
+
y += 4;
|
|
113
|
+
pdf.setFontSize(9);
|
|
114
|
+
pdf.setFont("helvetica", "bolditalic");
|
|
115
|
+
const footerLines = pdf.splitTextToSize(page.footer, pageWidth - MARGIN_MM * 2);
|
|
116
|
+
pdf.text(footerLines, MARGIN_MM, y);
|
|
117
|
+
pdf.setFont("helvetica", "normal");
|
|
118
|
+
pdf.setFontSize(11);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
73
122
|
function addPageNumbers(pdf, pageWidth, pageHeight) {
|
|
74
123
|
const totalPages = pdf.getNumberOfPages();
|
|
75
124
|
pdf.setFontSize(9);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openshift-migration-advisor/shared-components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0-9da6a7613f16",
|
|
4
4
|
"description": "Shared React UI components for Migration Advisor apps (report charts, forms, OS support tiers)",
|
|
5
5
|
"author": "Montse Ortega <mortegag@redhat.com>",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"README.md"
|
|
47
47
|
],
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"html2canvas-pro": "^2.
|
|
49
|
+
"html2canvas-pro": "^2.5.2",
|
|
50
50
|
"jspdf": "^4.2.1",
|
|
51
51
|
"jszip": "^3.10.2"
|
|
52
52
|
}
|
|
@@ -108,6 +108,10 @@ const themedChartTooltipFlyoutPadding = {
|
|
|
108
108
|
right: 10,
|
|
109
109
|
} as const;
|
|
110
110
|
|
|
111
|
+
/** Victory SVG text defaults to a serif face; match PatternFly / html2canvas export. */
|
|
112
|
+
const chartTextFontFamily =
|
|
113
|
+
"RedHatText, Overpass, Helvetica, Arial, sans-serif";
|
|
114
|
+
|
|
111
115
|
const styles = {
|
|
112
116
|
legendIcon: css`
|
|
113
117
|
margin-right: 4px;
|
|
@@ -136,6 +140,7 @@ const styles = {
|
|
|
136
140
|
background: none;
|
|
137
141
|
padding: var(--pf-t--global--spacer--xs) var(--pf-t--global--spacer--ml);
|
|
138
142
|
margin: 0;
|
|
143
|
+
font-family: ${chartTextFontFamily};
|
|
139
144
|
transition: opacity var(--pf-t--global--motion--duration--short);
|
|
140
145
|
white-space: nowrap;
|
|
141
146
|
|
|
@@ -146,6 +151,7 @@ const styles = {
|
|
|
146
151
|
legendLabel: css`
|
|
147
152
|
gap: var(--pf-t--global--spacer--lg);
|
|
148
153
|
padding: var(--pf-t--global--spacer--xs) var(--pf-t--global--spacer--ml);
|
|
154
|
+
font-family: ${chartTextFontFamily};
|
|
149
155
|
white-space: nowrap;
|
|
150
156
|
`,
|
|
151
157
|
legendInner: css`
|
|
@@ -422,6 +428,7 @@ export const MigrationDonutChart: FC<MigrationDonutChartProps> = ({
|
|
|
422
428
|
labels: {
|
|
423
429
|
fontSize: labelFontSize,
|
|
424
430
|
fill: "var(--pf-t--global--text--color--regular)",
|
|
431
|
+
fontFamily: chartTextFontFamily,
|
|
425
432
|
},
|
|
426
433
|
}}
|
|
427
434
|
/>
|
|
@@ -474,6 +481,7 @@ export const MigrationDonutChart: FC<MigrationDonutChartProps> = ({
|
|
|
474
481
|
fill: titleColor,
|
|
475
482
|
fontSize: titleFontSize,
|
|
476
483
|
fontWeight: "bold",
|
|
484
|
+
fontFamily: chartTextFontFamily,
|
|
477
485
|
},
|
|
478
486
|
]}
|
|
479
487
|
/>
|
|
@@ -487,6 +495,7 @@ export const MigrationDonutChart: FC<MigrationDonutChartProps> = ({
|
|
|
487
495
|
{
|
|
488
496
|
fill: subTitleColor,
|
|
489
497
|
fontSize: subTitleFontSize,
|
|
498
|
+
fontFamily: chartTextFontFamily,
|
|
490
499
|
},
|
|
491
500
|
]}
|
|
492
501
|
/>
|
|
@@ -6,11 +6,13 @@ import {
|
|
|
6
6
|
useRef,
|
|
7
7
|
useState,
|
|
8
8
|
} from "react";
|
|
9
|
+
import { CHART_CAPTURE_SCALE_SINGLE } from "./captureChartElement.js";
|
|
9
10
|
import {
|
|
10
11
|
type ChartCaptureSource,
|
|
11
12
|
type ChartExportFile,
|
|
12
13
|
canvasToBlob,
|
|
13
14
|
downloadBlob,
|
|
15
|
+
type PdfTextPage,
|
|
14
16
|
type RegisteredChart,
|
|
15
17
|
releaseCanvas,
|
|
16
18
|
restoreChartExportViews,
|
|
@@ -28,6 +30,7 @@ import { getChartExportFilename } from "./chartExportFilenames.js";
|
|
|
28
30
|
|
|
29
31
|
export type CaptureChartElement = (
|
|
30
32
|
element: HTMLElement,
|
|
33
|
+
options?: import("./captureChartElement.js").CaptureChartElementOptions,
|
|
31
34
|
) => Promise<HTMLCanvasElement>;
|
|
32
35
|
export type ZipChartFiles = (files: ChartExportFile[]) => Promise<Blob>;
|
|
33
36
|
export type EncodeChartPng = (canvas: HTMLCanvasElement) => Promise<Blob>;
|
|
@@ -36,6 +39,12 @@ export type BuildChartDocument = (
|
|
|
36
39
|
documentTitle: string,
|
|
37
40
|
) => Promise<Blob>;
|
|
38
41
|
|
|
42
|
+
export type BuildPdfDocument = (
|
|
43
|
+
charts: ChartCaptureSource[],
|
|
44
|
+
documentTitle: string,
|
|
45
|
+
extraPages?: PdfTextPage[],
|
|
46
|
+
) => Promise<Blob>;
|
|
47
|
+
|
|
39
48
|
export type {
|
|
40
49
|
ChartExportApi,
|
|
41
50
|
ChartExportFormat,
|
|
@@ -47,7 +56,7 @@ export interface ChartExportProviderProps {
|
|
|
47
56
|
capture?: CaptureChartElement;
|
|
48
57
|
zipFiles?: ZipChartFiles;
|
|
49
58
|
encodePng?: EncodeChartPng;
|
|
50
|
-
buildPdf?:
|
|
59
|
+
buildPdf?: BuildPdfDocument;
|
|
51
60
|
buildHtml?: BuildChartDocument;
|
|
52
61
|
downloadFile?: (blob: Blob, filename: string) => void;
|
|
53
62
|
getZipFilename?: () => string;
|
|
@@ -96,8 +105,8 @@ async function resolveZip(override?: ZipChartFiles): Promise<ZipChartFiles> {
|
|
|
96
105
|
}
|
|
97
106
|
|
|
98
107
|
async function resolvePdf(
|
|
99
|
-
override?:
|
|
100
|
-
): Promise<
|
|
108
|
+
override?: BuildPdfDocument,
|
|
109
|
+
): Promise<BuildPdfDocument> {
|
|
101
110
|
if (override) {
|
|
102
111
|
return override;
|
|
103
112
|
}
|
|
@@ -220,7 +229,9 @@ export const ChartExportProvider: FC<ChartExportProviderProps> = ({
|
|
|
220
229
|
throw new Error("The chart is not ready to export yet.");
|
|
221
230
|
}
|
|
222
231
|
const captureFn = await resolveCapture(capture);
|
|
223
|
-
const canvas = await captureFn(chart.element
|
|
232
|
+
const canvas = await captureFn(chart.element, {
|
|
233
|
+
scale: CHART_CAPTURE_SCALE_SINGLE,
|
|
234
|
+
});
|
|
224
235
|
try {
|
|
225
236
|
downloadFile(await encodePng(canvas), chart.filename);
|
|
226
237
|
} finally {
|
|
@@ -281,11 +292,11 @@ export const ChartExportProvider: FC<ChartExportProviderProps> = ({
|
|
|
281
292
|
]);
|
|
282
293
|
|
|
283
294
|
const downloadPdf = useCallback(
|
|
284
|
-
async (documentTitle: string) => {
|
|
295
|
+
async (documentTitle: string, extraPages?: PdfTextPage[]) => {
|
|
285
296
|
await runCapture(
|
|
286
297
|
async () => {
|
|
287
298
|
const charts = listCharts();
|
|
288
|
-
if (charts.length === 0) {
|
|
299
|
+
if (charts.length === 0 && (extraPages?.length ?? 0) === 0) {
|
|
289
300
|
throw new Error("The report is not ready to export yet.");
|
|
290
301
|
}
|
|
291
302
|
const captureFn = await resolveCapture(capture);
|
|
@@ -296,6 +307,7 @@ export const ChartExportProvider: FC<ChartExportProviderProps> = ({
|
|
|
296
307
|
await build(
|
|
297
308
|
toCaptureSources(charts, captureFn, prepareElement),
|
|
298
309
|
documentTitle,
|
|
310
|
+
extraPages,
|
|
299
311
|
),
|
|
300
312
|
getPdfFilename(),
|
|
301
313
|
);
|