latest changes--

This commit is contained in:
2026-06-03 17:47:30 +05:30
parent b709add3b6
commit 16a7fba7cf
2 changed files with 107 additions and 107 deletions
+106 -106
View File
@@ -13,20 +13,20 @@ import vegaEmbed, {
type Result,
} from "vega-embed";
import * as XLSX from "xlsx";
// import * as XLSX from "xlsx";
import { saveAs } from "file-saver";
// import { saveAs } from "file-saver";
import jsPDF from "jspdf";
// import jsPDF from "jspdf";
import html2canvas from "html2canvas";
// import html2canvas from "html2canvas";
import {
AlertTriangle,
Download,
FileSpreadsheet,
FileText,
ImageIcon,
// Download,
// FileSpreadsheet,
// FileText,
// ImageIcon,
RefreshCcw,
Sparkles,
CheckCircle2,
@@ -424,8 +424,8 @@ function VegaLiteArtifact({
const [renderError, setRenderError] = useState("");
const [vegaResult, setVegaResult] =
useState<Result | null>(null);
// const [vegaResult, setVegaResult] =
// useState<Result | null>(null);
const [activeTab, setActiveTab] = useState<
"answer" | "chart" | "sql"
@@ -492,7 +492,7 @@ function VegaLiteArtifact({
);
}
setVegaResult(result);
// setVegaResult(result);
} catch (finalError) {
console.error(
"FINAL VEGA ERROR =>",
@@ -520,143 +520,143 @@ function VegaLiteArtifact({
GET VALUES
===================================================== */
const getValues = () => {
const data = (safeSpec as any)?.data;
// const getValues = () => {
// const data = (safeSpec as any)?.data;
if (
!data?.values ||
!Array.isArray(data.values)
) {
return [];
}
// if (
// !data?.values ||
// !Array.isArray(data.values)
// ) {
// return [];
// }
return data.values;
};
// return data.values;
// };
/* =====================================================
EXPORT EXCEL
===================================================== */
const downloadExcel = () => {
const values = getValues();
// const downloadExcel = () => {
// const values = getValues();
if (!values.length) {
alert("No data available");
return;
}
// if (!values.length) {
// alert("No data available");
// return;
// }
const worksheet =
XLSX.utils.json_to_sheet(values);
// const worksheet =
// XLSX.utils.json_to_sheet(values);
const workbook =
XLSX.utils.book_new();
// const workbook =
// XLSX.utils.book_new();
XLSX.utils.book_append_sheet(
workbook,
worksheet,
"Chart Data",
);
// XLSX.utils.book_append_sheet(
// workbook,
// worksheet,
// "Chart Data",
// );
const excelBuffer = XLSX.write(
workbook,
{
bookType: "xlsx",
type: "array",
},
);
// const excelBuffer = XLSX.write(
// workbook,
// {
// bookType: "xlsx",
// type: "array",
// },
// );
const blob = new Blob(
[excelBuffer],
{
type:
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
},
);
// const blob = new Blob(
// [excelBuffer],
// {
// type:
// "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
// },
// );
saveAs(blob, "chart-data.xlsx");
};
// saveAs(blob, "chart-data.xlsx");
// };
/* =====================================================
EXPORT CSV
===================================================== */
const downloadCSV = () => {
const values = getValues();
// const downloadCSV = () => {
// const values = getValues();
if (!values.length) {
alert("No data available");
return;
}
// if (!values.length) {
// alert("No data available");
// return;
// }
const headers = Object.keys(
values[0],
);
// const headers = Object.keys(
// values[0],
// );
const csvRows = [
headers.join(","),
// const csvRows = [
// headers.join(","),
...values.map((row: any) =>
headers
.map((field) => row[field])
.join(","),
),
];
// ...values.map((row: any) =>
// headers
// .map((field) => row[field])
// .join(","),
// ),
// ];
const blob = new Blob(
[csvRows.join("\n")],
{
type: "text/csv",
},
);
// const blob = new Blob(
// [csvRows.join("\n")],
// {
// type: "text/csv",
// },
// );
saveAs(blob, "chart-data.csv");
};
// saveAs(blob, "chart-data.csv");
// };
/* =====================================================
EXPORT PDF
===================================================== */
const downloadPDF = async () => {
if (!chartRef.current) return;
// const downloadPDF = async () => {
// if (!chartRef.current) return;
const canvas =
await html2canvas(
chartRef.current,
);
// const canvas =
// await html2canvas(
// chartRef.current,
// );
const image =
canvas.toDataURL("image/png");
// const image =
// canvas.toDataURL("image/png");
const pdf = new jsPDF(
"landscape",
);
// const pdf = new jsPDF(
// "landscape",
// );
pdf.addImage(
image,
"PNG",
10,
10,
270,
150,
);
// pdf.addImage(
// image,
// "PNG",
// 10,
// 10,
// 270,
// 150,
// );
pdf.save("chart-report.pdf");
};
// pdf.save("chart-report.pdf");
// };
/* =====================================================
EXPORT PNG
===================================================== */
const downloadPNG = async () => {
if (!vegaResult) return;
// const downloadPNG = async () => {
// if (!vegaResult) return;
const imageURL =
await vegaResult.view.toImageURL(
"png",
);
// const imageURL =
// await vegaResult.view.toImageURL(
// "png",
// );
saveAs(imageURL, "chart.png");
};
// saveAs(imageURL, "chart.png");
// };
/* =====================================================
RETRY
+1 -1
View File
@@ -154,7 +154,7 @@ export default function Login() {
text-transparent
"
>
GenBI
Yoda
</h1>
<p className="mt-2 text-sm text-slate-500">