@@ -111,6 +111,40 @@ let GalleryDeluxe = {
111111 if ( activeImage ) {
112112 let modal = document . getElementById ( 'gd-modal' ) ;
113113
114+ if ( params . enable_exif ) {
115+ let exif = document . getElementById ( 'gd-modal-exif' ) ;
116+ const onTimeOutClass = 'gd-modal-exif-ontimeout' ;
117+ exif . classList . remove ( onTimeOutClass ) ;
118+ let child = exif . lastElementChild ;
119+ while ( child ) {
120+ exif . removeChild ( child ) ;
121+ child = exif . lastElementChild ;
122+ }
123+ let dl = document . createElement ( 'dl' ) ;
124+ exif . appendChild ( dl ) ;
125+
126+ const addTag = ( tag , value ) => {
127+ let dt = document . createElement ( 'dt' ) ;
128+ dt . innerText = camelToTitle ( tag ) ;
129+ dl . appendChild ( dt ) ;
130+ let dd = document . createElement ( 'dd' ) ;
131+ dd . innerText = value ;
132+ dl . appendChild ( dd ) ;
133+ } ;
134+
135+ let date = new Date ( activeImage . exif . Date ) ;
136+ var dateString = new Date ( date . getTime ( ) - date . getTimezoneOffset ( ) * 60000 ) . toISOString ( ) . split ( 'T' ) [ 0 ] ;
137+ addTag ( 'Date' , dateString ) ;
138+ let tags = activeImage . exif . Tags ;
139+ for ( const tag in tags ) {
140+ addTag ( tag , tags [ tag ] ) ;
141+ }
142+
143+ setTimeout ( ( ) => {
144+ exif . classList . add ( onTimeOutClass ) ;
145+ } , 1000 ) ;
146+ }
147+
114148 let thumbnail = new Image ( ) ;
115149 thumbnail . classList . add ( 'gd-modal-content' ) ;
116150 thumbnail . width = activeImage . width ;
@@ -208,4 +242,10 @@ let GalleryDeluxe = {
208242 } ,
209243} ;
210244
245+ function camelToTitle ( text ) {
246+ return text . replace ( / ( [ A - Z ] ) / g, ' $1' ) . replace ( / ^ ./ , function ( str ) {
247+ return str . toUpperCase ( ) ;
248+ } ) ;
249+ }
250+
211251export default GalleryDeluxe ;
0 commit comments