@multiplatform.one/frappe-ui 7.83.0 → 7.83.1
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/cjs/FrappeReportBuilder.cjs +7 -16
- package/dist/cjs/FrappeReportBuilder.native.js +7 -16
- package/dist/cjs/FrappeReportBuilder.native.js.map +1 -1
- package/dist/cjs/index.cjs +4 -0
- package/dist/cjs/index.native.js +4 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/report/exportCsv.cjs +82 -0
- package/dist/cjs/report/exportCsv.native.js +96 -0
- package/dist/cjs/report/exportCsv.native.js.map +1 -0
- package/dist/esm/FrappeReportBuilder.mjs +7 -16
- package/dist/esm/FrappeReportBuilder.mjs.map +1 -1
- package/dist/esm/FrappeReportBuilder.native.js +7 -16
- package/dist/esm/FrappeReportBuilder.native.js.map +1 -1
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/report/exportCsv.mjs +55 -0
- package/dist/esm/report/exportCsv.mjs.map +1 -0
- package/dist/esm/report/exportCsv.native.js +66 -0
- package/dist/esm/report/exportCsv.native.js.map +1 -0
- package/dist/jsx/FrappeReportBuilder.mjs +7 -16
- package/dist/jsx/FrappeReportBuilder.mjs.map +1 -1
- package/dist/jsx/FrappeReportBuilder.native.js +7 -16
- package/dist/jsx/FrappeReportBuilder.native.js.map +1 -1
- package/dist/jsx/index.js +2 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -1
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +4 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/report/exportCsv.mjs +55 -0
- package/dist/jsx/report/exportCsv.mjs.map +1 -0
- package/dist/jsx/report/exportCsv.native.js +96 -0
- package/dist/jsx/report/exportCsv.native.js.map +1 -0
- package/package.json +16 -16
- package/src/FrappeReportBuilder.export.spec.tsx +143 -0
- package/src/FrappeReportBuilder.tsx +7 -31
- package/src/index.ts +6 -0
- package/src/report/exportCsv.spec.ts +118 -0
- package/src/report/exportCsv.ts +84 -0
- package/types/FrappeReportBuilder.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/report/exportCsv.d.ts +23 -0
- package/types/report/exportCsv.d.ts.map +1 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
// FZ-8893: the built-in Export CSV saves through @multiplatform.one/platform/file,
|
|
2
|
+
// so native gets the directory picker instead of a dead download, and the toast
|
|
3
|
+
// says what happened: written, download requested, nothing on cancel, or the
|
|
4
|
+
// FileSaveError.
|
|
5
|
+
import { notify } from "@multiplatform.one/components";
|
|
6
|
+
import { InMemoryFixtureProvider } from "@multiplatform.one/frappe";
|
|
7
|
+
import { FileSaveError, saveFile } from "@multiplatform.one/platform/file";
|
|
8
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
9
|
+
import { cleanup, fireEvent, screen, waitFor } from "@testing-library/react";
|
|
10
|
+
import i18next from "i18next";
|
|
11
|
+
import React from "react";
|
|
12
|
+
import { initReactI18next } from "react-i18next";
|
|
13
|
+
import { afterEach, beforeAll, describe, expect, it, vi } from "vitest";
|
|
14
|
+
import { FrappeProvider } from "./FrappeProvider";
|
|
15
|
+
import { FrappeReportBuilder } from "./FrappeReportBuilder";
|
|
16
|
+
|
|
17
|
+
vi.mock("@multiplatform.one/components", async (importOriginal) => ({
|
|
18
|
+
...(await importOriginal<typeof import("@multiplatform.one/components")>()),
|
|
19
|
+
notify: vi.fn(),
|
|
20
|
+
}));
|
|
21
|
+
vi.mock("@multiplatform.one/platform/file", async (importOriginal) => ({
|
|
22
|
+
...(await importOriginal<typeof import("@multiplatform.one/platform/file")>()),
|
|
23
|
+
saveFile: vi.fn(),
|
|
24
|
+
}));
|
|
25
|
+
|
|
26
|
+
const save = vi.mocked(saveFile);
|
|
27
|
+
const toast = vi.mocked(notify);
|
|
28
|
+
|
|
29
|
+
beforeAll(async () => {
|
|
30
|
+
await i18next.use(initReactI18next).init({
|
|
31
|
+
lng: "en",
|
|
32
|
+
interpolation: { escapeValue: false },
|
|
33
|
+
resources: { en: { translation: {} } },
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
afterEach(() => {
|
|
38
|
+
cleanup();
|
|
39
|
+
save.mockReset();
|
|
40
|
+
toast.mockReset();
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
const customers = [
|
|
44
|
+
{ name: "CUST-001", doctype: "Customer", customer_name: "Acme Corp" },
|
|
45
|
+
{ name: "CUST-002", doctype: "Customer", customer_name: "Globex, Inc" },
|
|
46
|
+
];
|
|
47
|
+
|
|
48
|
+
let run = 0;
|
|
49
|
+
function renderBuilder() {
|
|
50
|
+
run += 1;
|
|
51
|
+
renderWithProviders(
|
|
52
|
+
<FrappeProvider
|
|
53
|
+
baseURL={`https://report-export-${run}.spec.test`}
|
|
54
|
+
fixtures={
|
|
55
|
+
new InMemoryFixtureProvider({
|
|
56
|
+
DocType: [
|
|
57
|
+
{
|
|
58
|
+
name: "Customer",
|
|
59
|
+
doctype: "DocType",
|
|
60
|
+
module: "Selling",
|
|
61
|
+
title_field: "customer_name",
|
|
62
|
+
fields: [
|
|
63
|
+
{
|
|
64
|
+
fieldname: "customer_name",
|
|
65
|
+
fieldtype: "Data",
|
|
66
|
+
label: "Customer Name",
|
|
67
|
+
in_list_view: 1,
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
Customer: customers,
|
|
73
|
+
})
|
|
74
|
+
}
|
|
75
|
+
>
|
|
76
|
+
<FrappeReportBuilder doctype="Customer" />
|
|
77
|
+
</FrappeProvider>,
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
async function exportCsv() {
|
|
82
|
+
await screen.findByText("Acme Corp");
|
|
83
|
+
fireEvent.click(screen.getByRole("button", { name: "Export CSV" }));
|
|
84
|
+
await waitFor(() => expect(save).toHaveBeenCalledTimes(1));
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function toasts(severity: string) {
|
|
88
|
+
return toast.mock.calls.map(([event]) => event).filter((event) => event.severity === severity);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
describe("FrappeReportBuilder Export CSV (FZ-8893)", () => {
|
|
92
|
+
it("saves the filtered result's CSV bytes as text/csv", async () => {
|
|
93
|
+
save.mockResolvedValue({ status: "download-requested" });
|
|
94
|
+
renderBuilder();
|
|
95
|
+
await exportCsv();
|
|
96
|
+
const [options] = save.mock.calls[0];
|
|
97
|
+
expect(options.filename).toBe("Customer_report.csv");
|
|
98
|
+
expect(options.mimeType).toBe("text/csv;charset=utf-8;");
|
|
99
|
+
const text = new TextDecoder().decode(options.bytes);
|
|
100
|
+
expect(text).toContain("Acme Corp");
|
|
101
|
+
expect(text).toContain('"Globex, Inc"');
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
it("a requested download is the export-done toast", async () => {
|
|
105
|
+
save.mockResolvedValue({ status: "download-requested" });
|
|
106
|
+
renderBuilder();
|
|
107
|
+
await exportCsv();
|
|
108
|
+
await waitFor(() => expect(toasts("success")).toHaveLength(1));
|
|
109
|
+
expect(String(toasts("success")[0].body)).toMatch(/Exported 2 rows to CSV/);
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it("a written file is a success toast naming the file", async () => {
|
|
113
|
+
save.mockResolvedValue({
|
|
114
|
+
status: "written",
|
|
115
|
+
uri: "file:///docs/Customer_report.csv",
|
|
116
|
+
requestedFilename: "Customer_report.csv",
|
|
117
|
+
filename: "Customer_report.csv",
|
|
118
|
+
byteLength: 40,
|
|
119
|
+
});
|
|
120
|
+
renderBuilder();
|
|
121
|
+
await exportCsv();
|
|
122
|
+
await waitFor(() => expect(toasts("success")).toHaveLength(1));
|
|
123
|
+
expect(String(toasts("success")[0].body)).toMatch(/Saved 2 rows to Customer_report\.csv/);
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
it("a cancelled picker shows no success toast", async () => {
|
|
127
|
+
save.mockResolvedValue({ status: "not-saved", reason: "cancelled-or-refused" });
|
|
128
|
+
renderBuilder();
|
|
129
|
+
await exportCsv();
|
|
130
|
+
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
131
|
+
expect(toasts("success")).toHaveLength(0);
|
|
132
|
+
expect(toasts("error")).toHaveLength(0);
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
it("a FileSaveError is an error toast", async () => {
|
|
136
|
+
save.mockRejectedValue(new FileSaveError("picker-failed", "No writable folder was chosen."));
|
|
137
|
+
renderBuilder();
|
|
138
|
+
await exportCsv();
|
|
139
|
+
await waitFor(() => expect(toasts("error")).toHaveLength(1));
|
|
140
|
+
expect(toasts("error")[0].body).toBe("No writable folder was chosen.");
|
|
141
|
+
expect(toasts("success")).toHaveLength(0);
|
|
142
|
+
});
|
|
143
|
+
});
|
|
@@ -39,7 +39,6 @@ import {
|
|
|
39
39
|
type FrappeFieldType,
|
|
40
40
|
} from "@multiplatform.one/frappe";
|
|
41
41
|
import { Button } from "@multiplatform.one/forms";
|
|
42
|
-
import { downloadBlob } from "@multiplatform.one/platform";
|
|
43
42
|
import { storage } from "@multiplatform.one/store";
|
|
44
43
|
import { DataTablePagination } from "@multiplatform.one/table";
|
|
45
44
|
import { useLayoutSizeClass, useResolvedKnobs } from "@multiplatform.one/theme";
|
|
@@ -50,6 +49,7 @@ import { FrappeNotConfigured } from "./FrappeNotConfigured";
|
|
|
50
49
|
import { useFrappeConfig } from "./FrappeProvider";
|
|
51
50
|
import { isPermissionError, refusalReason } from "./liveErrors";
|
|
52
51
|
import { recordKeyLabel, useRecordShape } from "./recordShape";
|
|
52
|
+
import { canSaveCsv, exportCsvFile } from "./report/exportCsv";
|
|
53
53
|
import { ReportGrid } from "./report/ReportGrid";
|
|
54
54
|
import { ReportViewToolbar } from "./report/ReportViewToolbar";
|
|
55
55
|
import {
|
|
@@ -237,21 +237,6 @@ function aggregateGroups(
|
|
|
237
237
|
});
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
-
/**
|
|
241
|
-
* The export button needs somewhere to put a file: a DOM anchor and an
|
|
242
|
-
* object URL. Native and GTK have neither, so the built-in CSV path is left
|
|
243
|
-
* out there (B12); a host `onExport` owns delivery and shows everywhere.
|
|
244
|
-
*/
|
|
245
|
-
function canDownloadCsv(): boolean {
|
|
246
|
-
return (
|
|
247
|
-
typeof document !== "undefined" &&
|
|
248
|
-
typeof document.createElement === "function" &&
|
|
249
|
-
typeof Blob !== "undefined" &&
|
|
250
|
-
typeof URL !== "undefined" &&
|
|
251
|
-
typeof URL.createObjectURL === "function"
|
|
252
|
-
);
|
|
253
|
-
}
|
|
254
|
-
|
|
255
240
|
export function FrappeReportBuilder(props: FrappeReportBuilderProps) {
|
|
256
241
|
const config = useFrappeConfig();
|
|
257
242
|
if (!(props.baseURL ?? config?.baseURL) && !config?.fixtures) {
|
|
@@ -688,26 +673,17 @@ function FrappeReportBuilderBody({
|
|
|
688
673
|
);
|
|
689
674
|
|
|
690
675
|
// ── Export: full filtered + ordered result ──────────────────
|
|
691
|
-
const exportEnabled = Boolean(onExport) ||
|
|
676
|
+
const exportEnabled = Boolean(onExport) || canSaveCsv();
|
|
692
677
|
const handleExport = useCallback(() => {
|
|
693
678
|
if (onExport) {
|
|
694
679
|
onExport(orderedRows);
|
|
695
680
|
return;
|
|
696
681
|
}
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
);
|
|
703
|
-
notify({
|
|
704
|
-
severity: "success",
|
|
705
|
-
scope: "page",
|
|
706
|
-
body: t("report.exportDone", {
|
|
707
|
-
count: orderedRows.length,
|
|
708
|
-
defaultValue_one: "Exported {{count}} row to CSV",
|
|
709
|
-
defaultValue_other: "Exported {{count}} rows to CSV",
|
|
710
|
-
}),
|
|
682
|
+
void exportCsvFile({
|
|
683
|
+
csv: buildReportCsv(selectedColumns, orderedRows),
|
|
684
|
+
filename: `${doctype}_report.csv`,
|
|
685
|
+
rowCount: orderedRows.length,
|
|
686
|
+
t,
|
|
711
687
|
});
|
|
712
688
|
}, [onExport, selectedColumns, orderedRows, doctype, t]);
|
|
713
689
|
|
package/src/index.ts
CHANGED
|
@@ -543,6 +543,12 @@ export {
|
|
|
543
543
|
type UseQueryReportOptions,
|
|
544
544
|
type UseQueryReportResult,
|
|
545
545
|
} from "./report/useQueryReport";
|
|
546
|
+
export {
|
|
547
|
+
canSaveCsv,
|
|
548
|
+
CSV_MIME_TYPE,
|
|
549
|
+
exportCsvFile,
|
|
550
|
+
type ExportCsvFileOptions,
|
|
551
|
+
} from "./report/exportCsv";
|
|
546
552
|
export {
|
|
547
553
|
buildQueryReportColumns,
|
|
548
554
|
buildQueryReportCsv,
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { notify } from "@multiplatform.one/components";
|
|
2
|
+
import { FileSaveError, saveFile } from "@multiplatform.one/platform/file";
|
|
3
|
+
import type { TFunction } from "i18next";
|
|
4
|
+
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
5
|
+
import { CSV_MIME_TYPE, canSaveCsv, exportCsvFile } from "./exportCsv";
|
|
6
|
+
|
|
7
|
+
vi.mock("@multiplatform.one/components", async (importOriginal) => ({
|
|
8
|
+
...(await importOriginal<typeof import("@multiplatform.one/components")>()),
|
|
9
|
+
notify: vi.fn(),
|
|
10
|
+
}));
|
|
11
|
+
vi.mock("@multiplatform.one/platform/file", async (importOriginal) => ({
|
|
12
|
+
...(await importOriginal<typeof import("@multiplatform.one/platform/file")>()),
|
|
13
|
+
saveFile: vi.fn(),
|
|
14
|
+
}));
|
|
15
|
+
const native = vi.hoisted(() => ({ ios: false }));
|
|
16
|
+
vi.mock("@multiplatform.one/platform", async (importOriginal) => {
|
|
17
|
+
const actual = await importOriginal<typeof import("@multiplatform.one/platform")>();
|
|
18
|
+
return {
|
|
19
|
+
...actual,
|
|
20
|
+
get isIos() {
|
|
21
|
+
return native.ios;
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const t = ((key: string, options?: unknown) =>
|
|
27
|
+
typeof options === "string"
|
|
28
|
+
? `${key}|${options}`
|
|
29
|
+
: `${key}|${JSON.stringify(options)}`) as TFunction;
|
|
30
|
+
const save = vi.mocked(saveFile);
|
|
31
|
+
const toast = vi.mocked(notify);
|
|
32
|
+
const csv = 'Name,Café\nA-1,"a, b"';
|
|
33
|
+
|
|
34
|
+
afterEach(() => {
|
|
35
|
+
save.mockReset();
|
|
36
|
+
toast.mockReset();
|
|
37
|
+
native.ios = false;
|
|
38
|
+
vi.unstubAllGlobals();
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
describe("exportCsvFile (FZ-8893)", () => {
|
|
42
|
+
it("hands saveFile the CSV's UTF-8 bytes, its filename and the CSV type", async () => {
|
|
43
|
+
save.mockResolvedValue({ status: "download-requested" });
|
|
44
|
+
await exportCsvFile({ csv, filename: "Customer_report.csv", rowCount: 1, t });
|
|
45
|
+
const [options] = save.mock.calls[0];
|
|
46
|
+
expect(options.filename).toBe("Customer_report.csv");
|
|
47
|
+
expect(options.mimeType).toBe(CSV_MIME_TYPE);
|
|
48
|
+
expect(Array.from(options.bytes)).toEqual(Array.from(new TextEncoder().encode(csv)));
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it("a written file is a success toast naming the file", async () => {
|
|
52
|
+
save.mockResolvedValue({
|
|
53
|
+
status: "written",
|
|
54
|
+
uri: "file:///docs/Customer_report%202.csv",
|
|
55
|
+
requestedFilename: "Customer_report.csv",
|
|
56
|
+
filename: "Customer_report 2.csv",
|
|
57
|
+
byteLength: 20,
|
|
58
|
+
});
|
|
59
|
+
const result = await exportCsvFile({ csv, filename: "Customer_report.csv", rowCount: 3, t });
|
|
60
|
+
expect(result?.status).toBe("written");
|
|
61
|
+
expect(toast).toHaveBeenCalledTimes(1);
|
|
62
|
+
expect(toast.mock.calls[0][0]).toMatchObject({ severity: "success" });
|
|
63
|
+
expect(String(toast.mock.calls[0][0].body)).toContain("report.exportSaved");
|
|
64
|
+
expect(String(toast.mock.calls[0][0].body)).toContain("Customer_report 2.csv");
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
it("a requested download is the export-done toast", async () => {
|
|
68
|
+
save.mockResolvedValue({ status: "download-requested" });
|
|
69
|
+
await exportCsvFile({ csv, filename: "x.csv", rowCount: 2, t });
|
|
70
|
+
expect(toast).toHaveBeenCalledTimes(1);
|
|
71
|
+
expect(toast.mock.calls[0][0]).toMatchObject({ severity: "success" });
|
|
72
|
+
expect(String(toast.mock.calls[0][0].body)).toContain("report.exportDone");
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
it("a cancelled picker says nothing", async () => {
|
|
76
|
+
save.mockResolvedValue({ status: "not-saved", reason: "cancelled-or-refused" });
|
|
77
|
+
const result = await exportCsvFile({ csv, filename: "x.csv", rowCount: 2, t });
|
|
78
|
+
expect(result).toEqual({ status: "not-saved", reason: "cancelled-or-refused" });
|
|
79
|
+
expect(toast).not.toHaveBeenCalled();
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
it("a FileSaveError is an error toast with its message", async () => {
|
|
83
|
+
save.mockRejectedValue(new FileSaveError("write-failed", "The file could not be written."));
|
|
84
|
+
const result = await exportCsvFile({ csv, filename: "x.csv", rowCount: 2, t });
|
|
85
|
+
expect(result).toBeUndefined();
|
|
86
|
+
expect(toast).toHaveBeenCalledTimes(1);
|
|
87
|
+
expect(toast.mock.calls[0][0]).toMatchObject({
|
|
88
|
+
severity: "error",
|
|
89
|
+
body: "The file could not be written.",
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
it("any other failure is the generic error toast", async () => {
|
|
94
|
+
save.mockRejectedValue(new Error("boom"));
|
|
95
|
+
await exportCsvFile({ csv, filename: "x.csv", rowCount: 2, t });
|
|
96
|
+
expect(toast.mock.calls[0][0]).toMatchObject({
|
|
97
|
+
severity: "error",
|
|
98
|
+
body: "report.exportFailed|CSV export failed",
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
describe("canSaveCsv (FZ-8893)", () => {
|
|
104
|
+
it("is true on web with a DOM download", () => {
|
|
105
|
+
expect(canSaveCsv()).toBe(true);
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
it("is false with neither a DOM nor a native picker (GTK)", () => {
|
|
109
|
+
vi.stubGlobal("document", undefined);
|
|
110
|
+
expect(canSaveCsv()).toBe(false);
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
it("is true on iOS, where there is no DOM download", () => {
|
|
114
|
+
vi.stubGlobal("document", undefined);
|
|
115
|
+
native.ios = true;
|
|
116
|
+
expect(canSaveCsv()).toBe(true);
|
|
117
|
+
});
|
|
118
|
+
});
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { notify } from "@multiplatform.one/components";
|
|
2
|
+
import { isAndroid, isIos } from "@multiplatform.one/platform";
|
|
3
|
+
import { FileSaveError, saveFile, type FileSaveResult } from "@multiplatform.one/platform/file";
|
|
4
|
+
import type { TFunction } from "i18next";
|
|
5
|
+
|
|
6
|
+
/** The Blob type web CSV exports have always carried. */
|
|
7
|
+
export const CSV_MIME_TYPE = "text/csv;charset=utf-8;";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Whether this platform can put a CSV somewhere: the native directory picker
|
|
11
|
+
* on iOS and Android, a DOM download on web. GTK has neither.
|
|
12
|
+
*/
|
|
13
|
+
export function canSaveCsv(): boolean {
|
|
14
|
+
if (isIos || isAndroid) return true;
|
|
15
|
+
return (
|
|
16
|
+
typeof document !== "undefined" &&
|
|
17
|
+
typeof document.createElement === "function" &&
|
|
18
|
+
typeof Blob !== "undefined" &&
|
|
19
|
+
typeof URL !== "undefined" &&
|
|
20
|
+
typeof URL.createObjectURL === "function"
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface ExportCsvFileOptions {
|
|
25
|
+
csv: string;
|
|
26
|
+
filename: string;
|
|
27
|
+
rowCount: number;
|
|
28
|
+
/** The caller's translator; keys live under `report.*` in its namespace. */
|
|
29
|
+
t: TFunction;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Saves a CSV through `@multiplatform.one/platform/file` and says what
|
|
34
|
+
* happened: a written file or a requested download is a success toast, a
|
|
35
|
+
* cancelled picker says nothing, a `FileSaveError` is an error toast.
|
|
36
|
+
*/
|
|
37
|
+
export async function exportCsvFile({
|
|
38
|
+
csv,
|
|
39
|
+
filename,
|
|
40
|
+
rowCount,
|
|
41
|
+
t,
|
|
42
|
+
}: ExportCsvFileOptions): Promise<FileSaveResult | undefined> {
|
|
43
|
+
let result: FileSaveResult;
|
|
44
|
+
try {
|
|
45
|
+
result = await saveFile({
|
|
46
|
+
bytes: new TextEncoder().encode(csv),
|
|
47
|
+
filename,
|
|
48
|
+
mimeType: CSV_MIME_TYPE,
|
|
49
|
+
});
|
|
50
|
+
} catch (error) {
|
|
51
|
+
notify({
|
|
52
|
+
severity: "error",
|
|
53
|
+
scope: "page",
|
|
54
|
+
body:
|
|
55
|
+
error instanceof FileSaveError
|
|
56
|
+
? error.message
|
|
57
|
+
: t("report.exportFailed", "CSV export failed"),
|
|
58
|
+
});
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
if (result.status === "written") {
|
|
62
|
+
notify({
|
|
63
|
+
severity: "success",
|
|
64
|
+
scope: "page",
|
|
65
|
+
body: t("report.exportSaved", {
|
|
66
|
+
count: rowCount,
|
|
67
|
+
filename: result.filename ?? result.requestedFilename,
|
|
68
|
+
defaultValue_one: "Saved {{count}} row to {{filename}}",
|
|
69
|
+
defaultValue_other: "Saved {{count}} rows to {{filename}}",
|
|
70
|
+
}),
|
|
71
|
+
});
|
|
72
|
+
} else if (result.status === "download-requested") {
|
|
73
|
+
notify({
|
|
74
|
+
severity: "success",
|
|
75
|
+
scope: "page",
|
|
76
|
+
body: t("report.exportDone", {
|
|
77
|
+
count: rowCount,
|
|
78
|
+
defaultValue_one: "Exported {{count}} row to CSV",
|
|
79
|
+
defaultValue_other: "Exported {{count}} rows to CSV",
|
|
80
|
+
}),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return result;
|
|
84
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrappeReportBuilder.d.ts","sourceRoot":"","sources":["../src/FrappeReportBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAOL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"FrappeReportBuilder.d.ts","sourceRoot":"","sources":["../src/FrappeReportBuilder.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAOL,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,+BAA+B,CAAC;AAYvC,OAAc,EAA6C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AA4B3C,KAAK,WAAW,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAE7C,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;IAC7E,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,EAAE,CAAC;IAClD;;;OAGG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;IACtD,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IACxC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,yEAAyE;IACzE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,0CAA0C;IAC1C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC;IACrD,4CAA4C;IAC5C,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,oDAAoD;IACpD,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAsHD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,2CAMlE;AAipBD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
|
package/types/index.d.ts
CHANGED
|
@@ -132,6 +132,7 @@ export { FrappeReportView, reportColumnToDataTableColumn, reportFieldtypeToTable
|
|
|
132
132
|
export { buildRunFilters, compactFilterValues, compactQueryReportFilters, defaultFilterValues, extractScriptFilters, humanizeFrappeError, isEmptyFilterValue, normalizeFilterMeta, normalizeQueryReportColumns, normalizeQueryReportPayload, normalizeQueryReportRows, normalizeReportColumn, normalizeReportPayload, normalizeReportRows, scrubFieldname, stripHtml as stripReportHtml, type FrappeReportColumn, type FrappeReportFilterDef, type FrappeReportPayload, type FrappeReportRow, type FrappeReportRunResponse, type FrappeReportValues, type QueryReportColumn, type QueryReportFilterInput, type QueryReportFilterMeta, type QueryReportFilters, type QueryReportFixture, type QueryReportMeta, type QueryReportPayload, type QueryReportRow, type QueryReportRunMessage, type ScriptFilterExtraction, } from "./report/queryReport";
|
|
133
133
|
export { reportCall, useFrappeReport, type FrappeReportConnection, type FrappeReportFixture, type UseFrappeReportOptions, type UseFrappeReportResult, } from "./report/useFrappeReport";
|
|
134
134
|
export { useQueryReport, type UseQueryReportOptions, type UseQueryReportResult, } from "./report/useQueryReport";
|
|
135
|
+
export { canSaveCsv, CSV_MIME_TYPE, exportCsvFile, type ExportCsvFileOptions, } from "./report/exportCsv";
|
|
135
136
|
export { buildQueryReportColumns, buildQueryReportCsv, type BuildQueryReportColumnsArgs, } from "./report/queryReportColumns";
|
|
136
137
|
export { FrappeReportBuilder, type FrappeReportBuilderProps, type ReportColumn, type GroupByConfig, } from "./FrappeReportBuilder";
|
|
137
138
|
export { buildGridRows as buildReportGridRows, buildReportCsv, columnAlign as reportColumnAlign, columnFilterTuple as reportColumnFilterTuple, columnFilterTuples as reportColumnFilterTuples, compareCellValues as compareReportCellValues, computeTotals as computeReportTotals, DEFAULT_REPORT_PAGE_SIZE, defaultColumnWidth as defaultReportColumnWidth, defaultReportFieldnames, fromDeskReportSettings, orderReportRows, parseDeskOrderBy, parseReportFiltersParam, REPORT_NUMERIC_FIELDTYPES, REPORT_PAGE_SIZES, reportColumnsFromMeta, resolveSelectedColumns as resolveReportColumns, toDeskReportSettings, type DeskReportSettings, type ReportColumnDef, type ReportDataRow, type ReportFilters, type ReportGridRow, type ReportGroupHeader, type ReportMetaSource, type ReportRow, type ReportSortState, type ReportTotalsCell, type ReportViewConfig, } from "./report/reportViewModel";
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type FileSaveResult } from "@multiplatform.one/platform/file";
|
|
2
|
+
import type { TFunction } from "i18next";
|
|
3
|
+
/** The Blob type web CSV exports have always carried. */
|
|
4
|
+
export declare const CSV_MIME_TYPE = "text/csv;charset=utf-8;";
|
|
5
|
+
/**
|
|
6
|
+
* Whether this platform can put a CSV somewhere: the native directory picker
|
|
7
|
+
* on iOS and Android, a DOM download on web. GTK has neither.
|
|
8
|
+
*/
|
|
9
|
+
export declare function canSaveCsv(): boolean;
|
|
10
|
+
export interface ExportCsvFileOptions {
|
|
11
|
+
csv: string;
|
|
12
|
+
filename: string;
|
|
13
|
+
rowCount: number;
|
|
14
|
+
/** The caller's translator; keys live under `report.*` in its namespace. */
|
|
15
|
+
t: TFunction;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Saves a CSV through `@multiplatform.one/platform/file` and says what
|
|
19
|
+
* happened: a written file or a requested download is a success toast, a
|
|
20
|
+
* cancelled picker says nothing, a `FileSaveError` is an error toast.
|
|
21
|
+
*/
|
|
22
|
+
export declare function exportCsvFile({ csv, filename, rowCount, t, }: ExportCsvFileOptions): Promise<FileSaveResult | undefined>;
|
|
23
|
+
//# sourceMappingURL=exportCsv.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportCsv.d.ts","sourceRoot":"","sources":["../../src/report/exportCsv.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAChG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,yDAAyD;AACzD,eAAO,MAAM,aAAa,4BAA4B,CAAC;AAEvD;;;GAGG;AACH,wBAAgB,UAAU,IAAI,OAAO,CASpC;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,CAAC,EAAE,SAAS,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,EAClC,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,CAAC,GACF,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CA0C5D"}
|