@@ -297,7 +297,7 @@ export default class WorldMap {
297
297
} ) ;
298
298
299
299
this . createClickthrough ( circle , dataPoint ) ;
300
- const content = this . getPopupContent ( dataPoint . locationName , dataPoint . valueRounded ) ;
300
+ const content = this . getPopupContent ( dataPoint ) ;
301
301
this . createPopup ( circle , content ) ;
302
302
return circle ;
303
303
}
@@ -319,7 +319,7 @@ export default class WorldMap {
319
319
320
320
// Re-create popup.
321
321
circle . unbindPopup ( ) ;
322
- const content = this . getPopupContent ( dataPoint . locationName , dataPoint . valueRounded ) ;
322
+ const content = this . getPopupContent ( dataPoint ) ;
323
323
this . createPopup ( circle , content ) ;
324
324
325
325
// Re-create clickthrough-link.
@@ -418,12 +418,16 @@ export default class WorldMap {
418
418
extendPopupContent ( circle , dataPoint ) {
419
419
const popup = circle . getPopup ( ) ;
420
420
let popupContent = popup . _content ;
421
- popupContent += `\n${ this . getPopupContent ( dataPoint . locationName , dataPoint . valueRounded ) } ` ;
421
+ popupContent += `\n${ this . getPopupContent ( dataPoint ) } ` ;
422
422
circle . setPopupContent ( popupContent ) ;
423
423
}
424
424
425
- getPopupContent ( locationName , value ) {
425
+ getPopupContent ( dataPoint ) {
426
426
let unit ;
427
+
428
+ let locationName = dataPoint . locationName ;
429
+ let value = dataPoint . value ;
430
+
427
431
if ( _ . isNaN ( value ) ) {
428
432
value = 'n/a' ;
429
433
} else {
@@ -433,7 +437,27 @@ export default class WorldMap {
433
437
if ( this . ctrl . settings . formatOmitEmptyValue && value === 'n/a' ) {
434
438
return `${ locationName } ` . trim ( ) ;
435
439
} else {
436
- return `${ locationName } : ${ value } ${ unit || '' } ` . trim ( ) ;
440
+ let fieldPrefix = '__field_' ;
441
+
442
+ let specialFields = [
443
+ fieldPrefix + this . ctrl . settings . esLocationName ,
444
+ fieldPrefix + this . ctrl . settings . esMetric ,
445
+ fieldPrefix + this . ctrl . settings . esGeoPoint ,
446
+ ] ;
447
+
448
+ let freeDataFields = Object . keys ( dataPoint ) . filter (
449
+ ( key : string ) => key . startsWith ( fieldPrefix ) && ! specialFields . includes ( key )
450
+ ) ;
451
+
452
+ let freeDataDisplay = freeDataFields
453
+ . map ( ( field : string ) => {
454
+ let name = field . slice ( fieldPrefix . length ) ;
455
+ let value = dataPoint [ field ] ;
456
+ return `<br />${ name } : ${ value } ` ;
457
+ } )
458
+ . join ( '' ) ;
459
+
460
+ return `${ locationName } : ${ value } ${ unit || '' } ${ freeDataDisplay } ` . trim ( ) ;
437
461
}
438
462
}
439
463
0 commit comments