Appearance
Preview Dialog ​
File Information ​
- Path:
components/dam/Dialogs/PreviewDialog.vue - Purpose: Full-screen asset preview with navigation and actions
Overview ​
The Preview Dialog component provides a full-screen preview interface for viewing assets with navigation controls, zoom functionality, and action buttons. It supports images, videos, PDFs, and other file types.
Key Features ​
Asset Preview
- Full-screen preview
- Image preview
- Video playback
- PDF viewer
- Document preview
Navigation
- Previous asset navigation
- Next asset navigation
- Keyboard shortcuts
- Asset list navigation
Zoom Controls
- Zoom in/out
- Pan functionality
- Fit to screen
- Reset zoom
Actions
- Download asset
- Share asset
- Edit asset
- Delete asset
- View details
Asset Information
- Asset name display
- Asset metadata
- File size and type
- Creation date
Props ​
javascript
{
dialog: {
type: Boolean,
default: false
},
asset: {
type: Object,
required: true
},
assetList: {
type: Array,
default: () => []
// List of assets for navigation
},
currentIndex: {
type: Number,
default: 0
// Current asset index in list
}
}Data Properties ​
javascript
{
zoomLevel: 1, // Zoom level (1 = 100%)
panning: false, // Panning state
panStart: null, // Pan start position
loading: false // Loading state
}Computed Properties ​
currentAsset ​
Returns current asset being previewed
hasPrevious ​
Checks if previous asset exists
hasNext ​
Checks if next asset exists
previewUrl ​
Returns asset preview URL
Methods ​
openPreview(asset, index) ​
Opens preview for asset:
- Sets current asset
- Sets current index
- Loads asset preview
- Handles errors
closePreview() ​
Closes preview dialog:
- Emits close event
- Resets zoom
- Clears state
navigatePrevious() ​
Navigates to previous asset:
- Decrements index
- Loads previous asset
- Updates preview
navigateNext() ​
Navigates to next asset:
- Increments index
- Loads next asset
- Updates preview
zoomIn() ​
Zooms in preview:
- Increases zoom level
- Updates zoom
- Maintains center
zoomOut() ​
Zooms out preview:
- Decreases zoom level
- Updates zoom
- Maintains center
resetZoom() ​
Resets zoom level:
- Sets zoom to 1
- Resets pan
- Fits to screen
downloadAsset() ​
Downloads current asset:
- Gets download URL
- Triggers download
- Handles errors
Events ​
close- Dialog closedasset-changed- Asset changed (navigation)download- Asset download requestedshare- Asset share requestededit- Asset edit requested
Keyboard Shortcuts ​
Arrow Left- Previous assetArrow Right- Next assetEscape- Close dialog+/-- Zoom in/out0- Reset zoom
Usage Examples ​
Basic Usage ​
vue
<template>
<PreviewDialog
:dialog="showPreview"
:asset="selectedAsset"
:asset-list="assets"
:current-index="currentIndex"
@close="showPreview = false"
@asset-changed="handleAssetChanged"
/>
</template>
<script>
import PreviewDialog from '~/components/dam/Dialogs/PreviewDialog.vue'
export default {
components: {
PreviewDialog
}
}
</script>Integration Points ​
- Asset List: Opens from asset cards
- Search Results: Preview from search
- Folder Views: Preview from folders
- Quick View: Alternative preview
Notes for Development ​
- Supports multiple file types
- Keyboard navigation enabled
- Zoom for images only
- Video playback supported
- PDF viewer integration
Related Documentation ​
- Quick View Dialog - Quick preview alternative
- Asset Details Page - Asset management
- Asset List Component - Asset display