{"version":3,"file":"ExportButtons-BtYHz3q3.mjs","sources":["../../node_modules/lucide-react/dist/esm/icons/download.js","../../node_modules/export-to-csv/output/index.js","../../node_modules/js-cookie/dist/js.cookie.mjs","../../src/hooks/use-export-csv.ts","../../src/components/default/export/ButtonExportCsv.tsx","../../src/components/default/export/ExportButtons.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.479.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }],\n  [\"polyline\", { points: \"7 10 12 15 17 10\", key: \"2ggqvy\" }],\n  [\"line\", { x1: \"12\", x2: \"12\", y1: \"15\", y2: \"3\", key: \"1vk2je\" }]\n];\nconst Download = createLucideIcon(\"Download\", __iconNode);\n\nexport { __iconNode, Download as default };\n//# sourceMappingURL=download.js.map\n","var q;(function(x){x[\"csv\"]=\"text/csv\";x[\"tsv\"]=\"text/tab-separated-values\";x[\"plain\"]=\"text/plain\"})(q||(q={}));var X=(W)=>W,z=(W)=>W,Z=X,_=X,Y=X,N=X,V=X;var h={fieldSeparator:\",\",decimalSeparator:\".\",quoteStrings:!0,quoteCharacter:'\"',showTitle:!1,title:\"My Generated Report\",filename:\"generated\",showColumnHeaders:!0,useTextFile:!1,fileExtension:\"csv\",mediaType:q.csv,useBom:!0,columnHeaders:[],useKeysAsHeaders:!1,boolDisplay:{true:\"TRUE\",false:\"FALSE\"},replaceUndefinedWith:\"\"},F=\"\\r\\n\",R=\"\\uFEFF\",G=(W)=>Object.assign({},h,W);class K extends Error{constructor(W){super(W);this.name=\"CsvGenerationError\"}}class B extends Error{constructor(W){super(W);this.name=\"EmptyHeadersError\"}}class L extends Error{constructor(W){super(W);this.name=\"CsvDownloadEnvironmentError\"}}class P extends Error{constructor(W){super(W);this.name=\"UnsupportedDataFormatError\"}}var s=function(W,$){if($=='\"'&&W.indexOf('\"')>-1)return W.replace(/\"/g,'\"\"');return W},w=(W)=>typeof W===\"object\"?N(W.key):N(W),y=(W)=>typeof W===\"object\"?V(W.displayLabel):V(W),T=(W,...$)=>$.reduce((j,x)=>x(j),W),E=(W)=>($)=>W.useBom?_(z($)+R):$,M=(W)=>($)=>W.showTitle?S(_(z($)+W.title))(Y(\"\")):$,S=(W)=>($)=>_(z(W)+z($)+F),O=(W)=>($,j)=>l(W)(Y(z($)+z(j))),l=(W)=>($)=>X(z($)+W.fieldSeparator),b=(W,$)=>(j)=>{if(!W.showColumnHeaders)return j;if($.length<1)throw new B(\"Option to show headers but none supplied. Make sure there are keys in your collection or that you've supplied headers through the config options.\");let x=Y(\"\");for(let A=0;A<$.length;A++){const J=y($[A]);x=O(W)(x,v(W,z(J)))}return x=Y(z(x).slice(0,-1)),S(j)(x)},C=(W,$,j)=>(x)=>{let A=x;for(var J=0;J<j.length;J++){let I=Y(\"\");for(let U=0;U<$.length;U++){const H=w($[U]),D=j[J][z(H)];I=O(W)(I,v(W,D))}I=Y(z(I).slice(0,-1)),A=S(A)(I)}return A},k=z,m=(W)=>+W===W&&(!isFinite(W)||Boolean(W%1)),p=(W,$)=>{if(m($)){if(W.decimalSeparator===\"locale\")return Z($.toLocaleString());if(W.decimalSeparator)return Z($.toString().replace(\".\",W.decimalSeparator))}return Z($.toString())},Q=(W,$)=>{let j=$;if(W.quoteStrings||W.fieldSeparator&&$.indexOf(W.fieldSeparator)>-1||W.quoteCharacter&&$.indexOf(W.quoteCharacter)>-1||$.indexOf(\"\\n\")>-1||$.indexOf(\"\\r\")>-1)j=W.quoteCharacter+s($,W.quoteCharacter)+W.quoteCharacter;return Z(j)},g=(W,$)=>{const j=$?\"true\":\"false\";return Z(W.boolDisplay[j])},r=(W,$)=>{if(typeof $===\"undefined\"&&W.replaceUndefinedWith!==void 0)return Q(W,W.replaceUndefinedWith+\"\");if($===null)return Q(W,\"null\");return Q(W,\"\")},v=(W,$)=>{if(typeof $===\"number\")return p(W,$);if(typeof $===\"string\")return Q(W,$);if(typeof $===\"boolean\"&&W.boolDisplay)return g(W,$);if($===null||typeof $===\"undefined\")return r(W,$);throw new P(`\n    typeof ${typeof $} isn't supported. Only number, string, boolean, null and undefined are supported.\n    Please convert the data in your object to one of those before generating the CSV.\n    `)};var BW=(W)=>($)=>{const j=G(W),x=j.useKeysAsHeaders?Object.keys($[0]):j.columnHeaders;let A=T(_(\"\"),E(j),M(j),b(j,x),C(j,x,$));if(z(A).length<1)throw new K(\"Output is empty. Is your data formatted correctly?\");return A},f=(W)=>($)=>{const j=G(W),x=z($),A=j.useTextFile?\"text/plain\":j.mediaType;return new Blob([x],{type:`${A};charset=utf8;`})},LW=(W)=>($)=>{if(!window)throw new L(\"Downloading only supported in a browser environment.\");const j=f(W)($),x=G(W),A=x.useTextFile?\"txt\":x.fileExtension,J=`${x.filename}.${A}`,I=document.createElement(\"a\");I.download=J,I.href=URL.createObjectURL(j),I.setAttribute(\"visibility\",\"hidden\"),document.body.appendChild(I),I.click(),document.body.removeChild(I)};export{G as mkConfig,BW as generateCsv,LW as download,k as asString,f as asBlob,q as MediaType};\n","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n    for (var key in source) {\n      target[key] = source[key];\n    }\n  }\n  return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n  read: function (value) {\n    if (value[0] === '\"') {\n      value = value.slice(1, -1);\n    }\n    return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n  },\n  write: function (value) {\n    return encodeURIComponent(value).replace(\n      /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n      decodeURIComponent\n    )\n  }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n  function set (name, value, attributes) {\n    if (typeof document === 'undefined') {\n      return\n    }\n\n    attributes = assign({}, defaultAttributes, attributes);\n\n    if (typeof attributes.expires === 'number') {\n      attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n    }\n    if (attributes.expires) {\n      attributes.expires = attributes.expires.toUTCString();\n    }\n\n    name = encodeURIComponent(name)\n      .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n      .replace(/[()]/g, escape);\n\n    var stringifiedAttributes = '';\n    for (var attributeName in attributes) {\n      if (!attributes[attributeName]) {\n        continue\n      }\n\n      stringifiedAttributes += '; ' + attributeName;\n\n      if (attributes[attributeName] === true) {\n        continue\n      }\n\n      // Considers RFC 6265 section 5.2:\n      // ...\n      // 3.  If the remaining unparsed-attributes contains a %x3B (\";\")\n      //     character:\n      // Consume the characters of the unparsed-attributes up to,\n      // not including, the first %x3B (\";\") character.\n      // ...\n      stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n    }\n\n    return (document.cookie =\n      name + '=' + converter.write(value, name) + stringifiedAttributes)\n  }\n\n  function get (name) {\n    if (typeof document === 'undefined' || (arguments.length && !name)) {\n      return\n    }\n\n    // To prevent the for loop in the first place assign an empty array\n    // in case there are no cookies at all.\n    var cookies = document.cookie ? document.cookie.split('; ') : [];\n    var jar = {};\n    for (var i = 0; i < cookies.length; i++) {\n      var parts = cookies[i].split('=');\n      var value = parts.slice(1).join('=');\n\n      try {\n        var found = decodeURIComponent(parts[0]);\n        jar[found] = converter.read(value, found);\n\n        if (name === found) {\n          break\n        }\n      } catch (e) {}\n    }\n\n    return name ? jar[name] : jar\n  }\n\n  return Object.create(\n    {\n      set,\n      get,\n      remove: function (name, attributes) {\n        set(\n          name,\n          '',\n          assign({}, attributes, {\n            expires: -1\n          })\n        );\n      },\n      withAttributes: function (attributes) {\n        return init(this.converter, assign({}, this.attributes, attributes))\n      },\n      withConverter: function (converter) {\n        return init(assign({}, this.converter, converter), this.attributes)\n      }\n    },\n    {\n      attributes: { value: Object.freeze(defaultAttributes) },\n      converter: { value: Object.freeze(converter) }\n    }\n  )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","import { download, generateCsv, mkConfig } from \"export-to-csv\";\nimport Cookies from \"js-cookie\";\nimport { useState } from \"react\";\nimport type { ExportConfig } from \"@/types/export-config\";\nimport { formatDateToBrazilian } from \"@/utils/date\";\n\nfunction getValueByPath<T extends object>(obj: T, path: string): unknown {\n\t// biome-ignore lint/suspicious/noExplicitAny: <any>\n\treturn path.split(\".\").reduce((acc: any, key: string) => acc?.[key], obj);\n}\n\ninterface ExportToCsvParams<TData> {\n\tfetchData: () => Promise<TData[]>;\n\tconfig: ExportConfig<TData>;\n\tfileName?: string;\n\tskipDateSuffix?: boolean;\n}\n\nexport const useExportCsv = <TData extends object>() => {\n\tconst [isExporting, setIsExporting] = useState(false);\n\n\tconst exportToCsv = async ({\n\t\tfetchData,\n\t\tconfig,\n\t\tfileName,\n\t\tskipDateSuffix = false,\n\t}: ExportToCsvParams<TData>) => {\n\t\ttry {\n\t\t\tsetIsExporting(true);\n\n\t\t\tconst data = await fetchData();\n\n\t\t\tif (!data || data.length === 0) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tconfig.emptyMessage ?? \"Nenhum dado encontrado para os filtros selecionados.\",\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst rowData = data.map((row) => {\n\t\t\t\treturn config.exportableFields.reduce(\n\t\t\t\t\t(acc, path) => {\n\t\t\t\t\t\tconst rawValue = getValueByPath(row, path);\n\t\t\t\t\t\tconst newKey = config.columnMapping[path] || path;\n\t\t\t\t\t\tconst formatter = config.fieldFormatters?.[path];\n\n\t\t\t\t\t\tconst formattedOrRawValue = formatter != null ? formatter(rawValue, row) : rawValue;\n\n\t\t\t\t\t\tacc[newKey] = formattedOrRawValue == null ? \"\" : String(formattedOrRawValue);\n\n\t\t\t\t\t\treturn acc;\n\t\t\t\t\t},\n\t\t\t\t\t{} as Record<string, string>,\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tconst dateCookie = Cookies.get(\"date\");\n\t\t\tconst dateSuffix = formatDateToBrazilian(dateCookie ?? new Date(), \"dd_MM_yyyy\");\n\n\t\t\tconst finalFileName = skipDateSuffix\n\t\t\t\t? `${fileName ?? config.defaultFileName}`\n\t\t\t\t: `${fileName ?? config.defaultFileName}-${dateSuffix}`;\n\n\t\t\tconst csvConfig = mkConfig({\n\t\t\t\tfieldSeparator: \";\",\n\t\t\t\tdecimalSeparator: \",\",\n\t\t\t\tuseKeysAsHeaders: true,\n\t\t\t\tfilename: finalFileName,\n\t\t\t});\n\n\t\t\tconst csv = generateCsv(csvConfig)(rowData);\n\t\t\tdownload(csvConfig)(csv);\n\t\t} catch (error) {\n\t\t\tconsole.error(\"Erro durante a exportação para CSV:\", error);\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tsetIsExporting(false);\n\t\t}\n\t};\n\n\treturn {\n\t\texportToCsv,\n\t\tisExporting,\n\t};\n};\n","import type { Table } from \"@tanstack/react-table\";\nimport { DownloadIcon } from \"lucide-react\";\nimport React from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport { useExportCsv } from \"@/hooks/use-export-csv\";\nimport type { ExportConfig } from \"@/types/export-config\";\n\ninterface ButtonExportCsvProps<TData extends object> {\n\ttable: Table<TData>;\n\tdisabled?: boolean;\n\taction?: () => void;\n\tfileName?: string;\n\tconfig?: ExportConfig<TData>;\n\ttext?: string;\n\trowsToExport?: TData[];\n}\n\nexport const ButtonExportCsv = <TData extends object>({\n\ttable,\n\tdisabled,\n\taction,\n\tfileName,\n\tconfig,\n\ttext = \"Exportar\",\n\trowsToExport,\n}: ButtonExportCsvProps<TData>): React.ReactElement => {\n\tconst { exportToCsv, isExporting } = useExportCsv<TData>();\n\n\tasync function handleExportData() {\n\t\tif (!config) {\n\t\t\tconsole.warn(\"props de config não foi passada\");\n\t\t\treturn;\n\t\t}\n\n\t\texportToCsv({\n\t\t\tfetchData: async () => {\n\t\t\t\treturn rowsToExport ?? table.getFilteredRowModel().rows.map((r) => r.original);\n\t\t\t},\n\t\t\tconfig,\n\t\t\tfileName,\n\t\t\tskipDateSuffix: false,\n\t\t});\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tvariant=\"secondary\"\n\t\t\tsize=\"sm\"\n\t\t\tdisabled={table?.getRowCount?.() === 0 || disabled || isExporting}\n\t\t\tonClick={() => (action ? action() : handleExportData())}\n\t\t>\n\t\t\t<DownloadIcon className=\"size-4\" aria-hidden=\"true\" />\n\t\t\t{text}\n\t\t</Button>\n\t);\n};\n","import { ChevronDownIcon, UploadIcon } from \"lucide-react\";\nimport React from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport { ButtonGroup } from \"@/components/ui/button-group\";\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface ExportOption {\n\tlabel: string;\n\tonExport: () => Promise<void> | void;\n\tdisabled?: boolean;\n}\n\ninterface ExportButtonsProps {\n\toptions: ExportOption[];\n\tbuttonLabel?: string;\n\tdisabledButtons?: boolean;\n}\n\nexport function ExportButtons({\n\toptions = [],\n\tbuttonLabel = \"Exportar\",\n\tdisabledButtons,\n}: ExportButtonsProps) {\n\tconst [open, setOpen] = React.useState(false);\n\n\tif (options.length === 0) return null;\n\n\treturn (\n\t\t<ButtonGroup>\n\t\t\t<DropdownMenu open={open} onOpenChange={setOpen}>\n\t\t\t\t<DropdownMenuTrigger disabled={disabledButtons} asChild>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tclassName=\"flex items-center gap-2\"\n\t\t\t\t\t\taria-label=\"Exportar opções\"\n\t\t\t\t\t\tdisabled={disabledButtons}\n\t\t\t\t\t>\n\t\t\t\t\t\t<UploadIcon className=\"size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t\t{buttonLabel}\n\t\t\t\t\t\t<ChevronDownIcon\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"size-4 transition-transform duration-200\",\n\t\t\t\t\t\t\t\topen ? \"rotate-180\" : \"rotate-0\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Button>\n\t\t\t\t</DropdownMenuTrigger>\n\n\t\t\t\t<DropdownMenuContent className=\"w-44\">\n\t\t\t\t\t{options.map((option, index) => (\n\t\t\t\t\t\t<DropdownMenuItem key={index} onClick={option.onExport} disabled={option.disabled}>\n\t\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t))}\n\t\t\t\t</DropdownMenuContent>\n\t\t\t</DropdownMenu>\n\t\t</ButtonGroup>\n\t);\n}\n"],"names":["q","x","X","W","z","Z","_","Y","N","V","h","fieldSeparator","decimalSeparator","quoteStrings","quoteCharacter","showTitle","title","filename","showColumnHeaders","useTextFile","fileExtension","mediaType","csv","useBom","columnHeaders","useKeysAsHeaders","boolDisplay","true","false","replaceUndefinedWith","F","R","G","Object","assign","K","Error","name","B","L","P","s","$","indexOf","replace","w","key","y","displayLabel","T","reduce","j","E","M","S","O","l","b","length","A","J","v","slice","C","I","U","H","D","m","isFinite","Boolean","p","toLocaleString","toString","Q","g","r","BW","keys","f","Blob","type","LW","window","document","createElement","download","href","URL","createObjectURL","setAttribute","body","appendChild","click","removeChild","target","i","arguments","source","defaultConverter","read","value","decodeURIComponent","write","encodeURIComponent","init","converter","defaultAttributes","set","attributes","expires","Date","now","toUTCString","escape","stringifiedAttributes","attributeName","split","cookie","get","cookies","jar","parts","join","found","e","create","remove","withAttributes","withConverter","freeze","api","path","getValueByPath","obj","acc","useExportCsv","isExporting","setIsExporting","useState","exportToCsv","fetchData","config","fileName","skipDateSuffix","data","emptyMessage","rowData","map","row","exportableFields","rawValue","newKey","columnMapping","formatter","fieldFormatters","formattedOrRawValue","String","dateCookie","Cookies","dateSuffix","formatDateToBrazilian","finalFileName","defaultFileName","csvConfig","mkConfig","generateCsv","error","console","ButtonExportCsv","table","disabled","action","text","rowsToExport","handleExportData","warn","getFilteredRowModel","rows","original","React","Button","variant","size","getRowCount","onClick","DownloadIcon","className","aria-hidden","ExportButtons","options","buttonLabel","disabledButtons","open","setOpen","ButtonGroup","DropdownMenu","onOpenChange","DropdownMenuTrigger","asChild","aria-label","UploadIcon","ChevronDownIcon","cn","DropdownMenuContent","option","index","DropdownMenuItem","onExport","label"],"mappings":"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","x_google_ignoreList":[0,1,2]}