a59dbff9f1
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
51 lines
1.1 KiB
TypeScript
51 lines
1.1 KiB
TypeScript
/**
|
|
* Files module types
|
|
*/
|
|
|
|
export type ViewMode = 'grid' | 'list' | 'details'
|
|
|
|
export type SortField = 'label' | 'size' | 'modifiedOn' | 'createdOn' | 'mime'
|
|
|
|
export type SortOrder = 'asc' | 'desc'
|
|
|
|
export interface ViewSettings {
|
|
mode: ViewMode
|
|
sortField: SortField
|
|
sortOrder: SortOrder
|
|
showHidden: boolean
|
|
}
|
|
|
|
export interface BreadcrumbItem {
|
|
id: string
|
|
label: string
|
|
isRoot: boolean
|
|
}
|
|
|
|
export interface ContextMenuAction {
|
|
id: string
|
|
label: string
|
|
icon: string
|
|
disabled?: boolean
|
|
divider?: boolean
|
|
}
|
|
|
|
/**
|
|
* Shape of an item registered at the `documents_file_viewer` integration point.
|
|
* Stored under `meta` so it fits inside a standard `ModuleIntegrationItem`.
|
|
*/
|
|
export interface DocumentViewerMeta {
|
|
/** Exact MIME type matches, e.g. ['application/pdf'] */
|
|
mimeTypes?: string[]
|
|
/** Glob-style patterns, e.g. ['image/*', 'video/*'] */
|
|
mimePatterns?: string[]
|
|
}
|
|
|
|
export interface DocumentViewerItem {
|
|
id: string
|
|
label?: string
|
|
priority?: number
|
|
meta: DocumentViewerMeta
|
|
/** Async factory returning the Vue viewer component */
|
|
component: () => Promise<unknown>
|
|
}
|