UNPKG

@seasketch/geoprocessing

Version:

Geoprocessing and reporting framework for SeaSketch 2.0

40 lines (39 loc) 1.71 kB
import React from "react"; import { DropdownProps } from "./Dropdown.js"; declare const SUPPORTED_FORMATS: readonly ["json", "csv"]; export type SUPPORTED_FORMAT = (typeof SUPPORTED_FORMATS)[number]; export type StringOrNumber = string | number; export interface DataFormatters { [key: string]: () => string; } export interface DownloadOption { /** File extension for format, also used to uniquely identify each format */ extension: SUPPORTED_FORMAT; /** Label to display for download option */ label: string; /** MIME type of associated with data format */ contentType: string; /** Object blob URL aka DOMString, stores transformed data in format */ url: string; } type DataDownloadDropdownProps = Omit<DropdownProps, "children">; export interface DataDownloadProps extends DataDownloadDropdownProps { /** Name minus extension */ filename?: string; /** Raw data to format and allow to download, nested objects and arrays will get flattened */ data: object[]; /** Formats to offer, defaults to csv only */ formats?: SUPPORTED_FORMAT[]; /** Add sketch name to filename, default to true */ addSketchName?: boolean; /** Add timestamp to filename, defaults to true */ addTimestamp?: boolean; titleElement?: JSX.Element; } /** * Dropdown menu for transforming data to CSV/JSON format and initiating a browser download * Defaults to CSV and JSON, and filename will include sketch name from ReportContext (if available) * and current timestamp */ export declare const DataDownload: ({ filename, data, formats, addSketchName, addTimestamp, ...dropdownProps }: DataDownloadProps) => React.JSX.Element; export default DataDownload;