namespace EnvelopeGenerator.ReceiverUI.Options;
public class PdfViewerOptions
{
public const string SectionName = "PdfViewer";
///
/// Base scale for thumbnail rendering (0.2 - 1.5 recommended)
/// Higher values = better quality but slower rendering
/// Default: 0.75
///
public double ThumbnailBaseScale { get; set; } = 0.75;
///
/// Enable HiDPI/Retina support for thumbnails
/// Default: true
///
public bool ThumbnailEnableHiDPI { get; set; } = true;
///
/// Maximum device pixel ratio multiplier for thumbnails (1.0 - 3.0)
/// Caps DPR to avoid excessive memory usage on 4K+ displays
/// Default: 2.0
///
public double ThumbnailMaxDPR { get; set; } = 2.0;
///
/// Enable HiDPI/Retina support for main PDF canvas
/// Default: true
///
public bool MainCanvasEnableHiDPI { get; set; } = true;
///
/// Maximum device pixel ratio multiplier for main canvas (1.0 - 3.0)
/// Default: 2.0
///
public double MainCanvasMaxDPR { get; set; } = 2.0;
///
/// Enable smooth zoom transition (fade effect)
/// Default: true
///
public bool EnableSmoothZoom { get; set; } = true;
///
/// Zoom transition duration in milliseconds (50 - 500)
/// Default: 150
///
public int ZoomTransitionDuration { get; set; } = 150;
///
/// Opacity during rendering (0.0 - 1.0)
/// Lower values = more visible fade effect
/// Default: 0.85
///
public double RenderingOpacity { get; set; } = 0.85;
///
/// Delay between thumbnail renders in milliseconds (10 - 200)
/// Higher values = less browser stress, slower initial load
/// Default: 50
///
public int ThumbnailRenderDelay { get; set; } = 50;
}