import { Injectable , InjectionToken } from '@angular/core' ; export class ImageViewerConfig { width ? : number ; height ? : number ; bgStyle ? : string ; scaleStep ? : number ; rotateStepper ? : boolean ; buttonStyle ? : ButtonStyle ; loadingMessage ? : string ; tooltips ? : { enabled ? : boolean ; bgStyle ? : string ; bgAlpha ? : number ; textStyle ? : string ; textAlpha ? : number ; padding ? : number ; radius ? : number ; } ; nextPageButton ? : ButtonConfig ; beforePageButton ? : ButtonConfig ; zoomOutButton ? : ButtonConfig ; zoomInButton ? : ButtonConfig ; rotateLeftButton ? : ButtonConfig ; rotateRightButton ? : ButtonConfig ; resetButton ? : ButtonConfig ; } export interface ButtonStyle { iconFontFamily ? : string ; alpha ? : number ; hoverAlpha ? : number ; bgStyle ? : string ; iconStyle ? : string ; borderStyle ? : string ; borderWidth ? : number ; } export interface ButtonConfig { icon ? : string ; tooltip ? : string ; sortId ? : number ; show ? : boolean ; } export function createButtonConfig ( icon ? , tooltip ? , sortId = 0 , show = true ) { return { icon : icon , tooltip : tooltip , sortId : sortId , show : show } ; } export const IMAGEVIEWER_CONFIG = new InjectionToken < ImageViewerConfig > ( 'imageviewer.config' ) ; export let IMAGEVIEWER_CONFIG_DEFAULT = { width : 800 , height : 600 , bgStyle : '#ECEFF1' , scaleStep : 0.1 , rotateStepper : false , loadingMessage : 'Loading...' , buttonStyle : { iconFontFamily : 'Material Icons' , alpha : 0.5 , hoverAlpha : 0.7 , bgStyle : '#000000' , iconStyle : '#ffffff' , borderStyle : '#000000' , borderWidth : 0 } , tooltips : { enabled : true , bgStyle : '#000000' , bgAlpha : 0.5 , textStyle : '#ffffff' , textAlpha : 0.9 , padding : 15 , radius : 20 } , nextPageButton : createButtonConfig ( String . fromCharCode ( 0xE409 ) , 'Next page' , 0 ) , beforePageButton : createButtonConfig ( String . fromCharCode ( 0xE408 ) , 'Previous page' , 1 ) , zoomOutButton : createButtonConfig ( String . fromCharCode ( 0xE900 ) , 'Zoom out' , 0 ) , zoomInButton : createButtonConfig ( String . fromCharCode ( 0xE8FF ) , 'Zoom in' , 1 ) , rotateLeftButton : createButtonConfig ( String . fromCharCode ( 0xE419 ) , 'Rotate left' , 2 ) , rotateRightButton : createButtonConfig ( String . fromCharCode ( 0xE41A ) , 'Rotate right' , 3 ) , resetButton : createButtonConfig ( String . fromCharCode ( 0xE863 ) , 'Reset' , 4 ) } ;