{"version":3,"file":"SVGDownloadButton.cjs","names":[],"sources":["../src/Components/Actions/SVGDownloadButton.tsx"],"sourcesContent":["import { Button } from '@undp/design-system-react/Button';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport type { JSX } from 'react';\r\nimport { ImageDown } from '@/Components/Icons';\r\nimport type { Color } from '@/Types';\r\nimport { svgDownload } from '@/Utils/svgDownload';\r\n\r\ninterface Props {\r\n  buttonContent?: string | JSX.Element;\r\n  buttonColor?: Color;\r\n  nodeID: string | HTMLElement;\r\n  filename?: string;\r\n  buttonSmall?: boolean;\r\n  className?: string;\r\n}\r\n\r\nexport function SVGDownloadButton(props: Props) {\r\n  const {\r\n    nodeID,\r\n    filename = 'image',\r\n    buttonContent,\r\n    buttonColor = 'surface-sm',\r\n    buttonSmall,\r\n    className = '',\r\n  } = props;\r\n  return (\r\n    <Button\r\n      variant='primary'\r\n      endIcon='none'\r\n      className={cn(\r\n        'undp-viz-download-button border border-stroke',\r\n        buttonSmall ? 'p-2' : 'py-4 px-6',\r\n        className,\r\n      )}\r\n      onClick={() => {\r\n        if (typeof nodeID === 'string') {\r\n          if (document.getElementById(nodeID)) {\r\n            svgDownload(document.getElementById(nodeID) as HTMLElement, filename);\r\n          } else {\r\n            console.error('Cannot find the html element');\r\n          }\r\n        } else {\r\n          svgDownload(nodeID as HTMLElement, filename);\r\n        }\r\n      }}\r\n      color={buttonColor}\r\n      aria-label='Click to download the graph as svg'\r\n    >\r\n      {buttonContent || <ImageDown />}\r\n    </Button>\r\n  );\r\n}\r\n"],"mappings":"8SAgBA,SAAgB,EAAkB,EAAc,CAC9C,GAAM,CACJ,SACA,WAAW,QACX,gBACA,cAAc,aACd,cACA,YAAY,IACV,EACJ,OACE,EAAA,EAAA,KAAC,EAAA,OAAD,CACE,QAAQ,UACR,QAAQ,OACR,WAAA,EAAA,EAAA,IACE,gDACA,EAAc,MAAQ,YACtB,CACF,EACA,YAAe,CACT,OAAO,GAAW,SAChB,SAAS,eAAe,CAAM,EAChC,EAAA,EAAY,SAAS,eAAe,CAAM,EAAkB,CAAQ,EAEpE,QAAQ,MAAM,8BAA8B,EAG9C,EAAA,EAAY,EAAuB,CAAQ,CAE/C,EACA,MAAO,EACP,aAAW,8CAEV,IAAiB,EAAA,EAAA,KAAC,EAAA,EAAD,CAAY,CAAA,CACxB,CAAA,CAEZ"}