UNPKG

@oslokommune/punkt-elements

Version:

Komponentbiblioteket til Punkt, et designsystem laget av Oslo Origo

74 lines (73 loc) 2.76 kB
/** * fileupload.ts * * Type definitions for the fileupload component. * Used by both Elements and React implementations. */ export type TUploadStrategy = 'form' | 'custom'; export type TFileUploadItemRenderer = 'filename' | 'thumbnail'; export type TFilesChangedReason = 'add' | 'remove' | 'update'; export type TFileValidator = (file: File) => string | null; export type TTransferProgress = number | 'done' | 'error' | 'canceled' | 'queued'; /** A selected file plus metadata used by the FileUpload UI. */ export interface IFileItem { fileId: string; file?: File; attributes: { targetFilename: string; } & Record<string, unknown>; } /** Transfer status for a file when using `uploadStrategy="custom"`. */ export interface IFileTransfer { fileId: string; progress: TTransferProgress; errorMessage?: string; showProgress?: boolean; lastProgress?: number; } /** Detail payload for the `file-validate` event (Lit) / callback equivalent (React). */ export interface IFileValidateDetail { file: File; errorMessage: string | null; } /** Detail payload for `transfer-cancelled` event / `onTransferCancelled` callback. */ export interface ITransferCancelledDetail { fileId: string; file?: File; attributes: { targetFilename: string; } & Record<string, unknown>; } /** Detail payload for the `files-changed` event. */ export interface IFilesChangedDetail { files: IFileItem[]; reason: TFilesChangedReason; changedFileIds?: string[]; } /** Default Norwegian Bokmål strings used by both implementations. */ export interface IFileUploadStrings { dropZoneDragMultiple: string; dropZoneDragSingle: string; dropZoneDragMultipleThumbnail: string; dropZoneDragSingleThumbnail: string; dropZoneDragActiveMultiple: string; dropZoneDragActiveSingle: string; dropZoneDragActiveMultipleThumbnail: string; dropZoneDragActiveSingleThumbnail: string; dropZoneOpenFileDialogMultiple: string; dropZoneOpenFileDialogSingle: string; dropZoneOpenFileDialogMultipleThumbnail: string; dropZoneOpenFileDialogSingleThumbnail: string; supportedFormatsPrefix: string; invalidFormatDefault: (formats: string) => string; sizeTooLargeDefault: (maxSize: string) => string; requiredMissing: string; genericValidationRejection: string; unknownFilename: string; fileLabel: (count: number) => string; srFileAdded: (filename: string) => string; srFilesAdded: (count: number) => string; srFilesUploadedOfTotal: (uploaded: number, total: number, label: string) => string; srFilesFailedOfTotal: (failed: number, total: number, label: string) => string; } export declare const defaultFileUploadStrings: IFileUploadStrings;