@oslokommune/punkt-elements
Version:
Komponentbiblioteket til Punkt, et designsystem laget av Oslo Origo
89 lines (81 loc) • 2.74 kB
text/typescript
import type { TemplateResult } from 'lit'
import type {
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[]
}