@oslokommune/punkt-elements
Version:
Komponentbiblioteket til Punkt, et designsystem laget av Oslo Origo
71 lines (70 loc) • 2.88 kB
TypeScript
import { TemplateResult } from 'lit';
import { IFileItem, IFileTransfer, IFileValidateDetail, IFilesChangedDetail, ITransferCancelledDetail, TFilesChangedReason, TFileUploadItemRenderer, TFileValidator, TFileUploadStrategy, TTransferProgress } from '../../shared-types';
export type TUploadStrategy = TFileUploadStrategy;
export type { TFileUploadItemRenderer, TFilesChangedReason, TFileValidator, TTransferProgress };
export type TFileValidateDetail = IFileValidateDetail;
export type TFileTransfer = IFileTransfer;
export type TTransferCancelledDetail = ITransferCancelledDetail;
export type TFilesChangedDetail = IFilesChangedDetail;
export type FileItem = IFileItem;
export type TFileComment = {
text: string;
timestamp: string;
};
export type TQueueOperationLabel = string | ((file: FileItem) => string);
export type TQueueOperationContext = {
file: FileItem;
inputName: string;
disabled: boolean;
isActive: boolean;
activate: () => void;
close: () => void;
getAttribute: <T>(name: string) => T | undefined;
setAttribute: (name: string, value: unknown) => void;
};
export type TQueueItemOperation = {
id: string;
title: TQueueOperationLabel;
ariaLabel?: TQueueOperationLabel;
onClick?: (context: TQueueOperationContext) => void;
renderInlineUI?: (context: TQueueOperationContext) => TemplateResult | null;
renderExtendedUI?: (context: TQueueOperationContext) => TemplateResult | null;
renderContent?: (context: TQueueOperationContext) => TemplateResult | null;
renderHidden?: (context: TQueueOperationContext) => TemplateResult | null;
};
export interface IPktFileUpload {
id?: string;
name?: string;
label?: string;
helptext?: string;
required?: boolean;
multiple?: boolean;
disabled?: boolean;
fullwidth?: boolean;
uploadStrategy?: TUploadStrategy;
itemRenderer?: TFileUploadItemRenderer;
accept?: string;
allowedFormats?: string[];
formatErrorMessage?: string;
maxFileSize?: string | number;
sizeErrorMessage?: string;
onFileValidation?: TFileValidator;
/** External error state (combined with internal validation errors). */
hasError?: boolean;
/** External error message shown under the component. */
errorMessage?: string;
/** Show "Valgfritt" tag in input-wrapper. */
optionalTag?: boolean;
/** Show "Må fylles ut" tag in input-wrapper. */
requiredTag?: boolean;
/** Trailing characters to keep when truncating long filenames. */
truncateTail?: number;
/** Transfer states keyed by `fileId` (custom strategy progress/error/cancel rendering). */
transfers?: TFileTransfer[];
addCommentsEnabled?: boolean;
renameFilesEnabled?: boolean;
extraOperations?: TQueueItemOperation[];
enableImagePreview?: boolean;
value?: FileItem[];
defaultValue?: FileItem[];
}