eai-frontend-components 2.0.50 → 2.0.52

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/index.js CHANGED
@@ -10366,6 +10366,32 @@ const NavUser = ({ userName, userEmail, userInitials, callbackLogout }) => {
10366
10366
  } }) }) }), jsxRuntime.jsxs(DropdownMenuContent, { className: 'w-[250px] rounded-lg', side: isMobile ? 'bottom' : 'right', align: 'end', sideOffset: 4, children: [jsxRuntime.jsx(DropdownMenuLabel, { className: 'p-0 font-normal', children: jsxRuntime.jsxs("div", { className: 'flex items-center gap-2 px-1 py-1.5 text-left text-sm', children: [jsxRuntime.jsxs(Avatar, { className: 'h-8 w-8 rounded-lg', children: [jsxRuntime.jsx(AvatarImage, { src: userInitials, alt: userName }), jsxRuntime.jsx(AvatarFallback, { className: 'rounded-lg bg-background-primary text-white', children: userInitials })] }), jsxRuntime.jsxs("div", { className: 'grid flex-1 text-left text-sm leading-tight', children: [jsxRuntime.jsx("span", { className: 'truncate font-semibold', children: userName }), jsxRuntime.jsx("span", { className: 'truncate text-xs', children: userEmail })] })] }) }), jsxRuntime.jsx(DropdownMenuItem, { className: 'p-0 font-normal cursor-pointer', onClick: () => handleLogout(), children: jsxRuntime.jsxs("div", { className: 'flex items-center gap-2 px-1 py-1.5 text-left text-sm', children: [jsxRuntime.jsx("div", { className: 'flex w-8 h-8 p-2 items-center rounded-md', children: jsxRuntime.jsx(lucideReact.LogOut, { size: 16 }) }), "Log out"] }) })] })] }) }) }));
10367
10367
  };
10368
10368
 
10369
+ const downloadWithServiceWorker = async (urlDownload, fileName) => {
10370
+ try {
10371
+ const response = await fetch(urlDownload);
10372
+ if (!response.ok) {
10373
+ throw new Error('Erro ao fazer o download');
10374
+ }
10375
+ const blob = await response.blob();
10376
+ const url = window.URL.createObjectURL(blob);
10377
+ const a = document.createElement('a');
10378
+ a.href = url;
10379
+ a.download = fileName;
10380
+ document.body.appendChild(a);
10381
+ a.click();
10382
+ document.body.removeChild(a);
10383
+ window.URL.revokeObjectURL(url);
10384
+ }
10385
+ catch (error) {
10386
+ toast({
10387
+ title: 'Erro ao fazer o download',
10388
+ description: error instanceof Error ? error.message : 'Tente novamente mais tarde.',
10389
+ variant: 'destructive',
10390
+ });
10391
+ console.error(error);
10392
+ }
10393
+ };
10394
+
10369
10395
  function DataTableExport({ exportData, totalRows }) {
10370
10396
  const ExportDataSchema = zod.z.object({
10371
10397
  model: zod.z.string(),
@@ -10388,6 +10414,7 @@ function DataTableExport({ exportData, totalRows }) {
10388
10414
  }
10389
10415
  const params = new URLSearchParams(exportData.params).toString();
10390
10416
  window.open(`${exportData.url}?${params}`, '_blank');
10417
+ downloadWithServiceWorker(`${exportData.url}?${params}`, 'data.xlsx');
10391
10418
  };
10392
10419
  const renderExport = () => {
10393
10420
  if (!exportData)
@@ -10870,6 +10897,7 @@ exports.convertInternetToDisplay = convertInternetToDisplay;
10870
10897
  exports.convertMbToGb = convertMbToGb;
10871
10898
  exports.convertMonthToDays = convertMonthToDays;
10872
10899
  exports.convertSecondsToMinutes = convertSecondsToMinutes;
10900
+ exports.downloadWithServiceWorker = downloadWithServiceWorker;
10873
10901
  exports.formHelpText = formHelpText;
10874
10902
  exports.formLabel = formLabel;
10875
10903
  exports.formLabelAndSubLabel = formLabelAndSubLabel;