@@ -296,6 +296,25 @@ HTMLWidgets.widget({
296
296
} ) ;
297
297
}
298
298
299
+
300
+ var legendEventData = function ( d ) {
301
+ // if legendgroup is not relevant just return the trace
302
+ var trace = d . data [ d . curveNumber ] ;
303
+ if ( ! trace . legendgroup ) return trace ;
304
+
305
+ // if legendgroup was specified, return all traces that match the group
306
+ var legendgrps = d . data . map ( function ( trace ) { return trace . legendgroup ; } ) ;
307
+ var traces = [ ] ;
308
+ for ( i = 0 ; i < legendgrps . length ; i ++ ) {
309
+ if ( legendgrps [ i ] == trace . legendgroup ) {
310
+ traces . push ( d . data [ i ] ) ;
311
+ }
312
+ }
313
+
314
+ return traces ;
315
+ } ;
316
+
317
+
299
318
// send user input event data to shiny
300
319
if ( HTMLWidgets . shinyMode ) {
301
320
@@ -938,87 +957,3 @@ function debounce(func, wait, immediate) {
938
957
if ( callNow ) func . apply ( context , args ) ;
939
958
} ;
940
959
} ;
941
-
942
-
943
- if ( HTMLWidgets . shinyMode ) {
944
- window . plotlyInputEvents
945
-
946
- // This Shiny.addCustomMessageHandler() callback is fired once per flush
947
- // (i.e. whenever an input value changes)
948
- Shiny . addCustomMessageHandler ( "plotlyEventData" , function ( message ) {
949
- var evt = message . event ;
950
- var src = message . source ;
951
- var priority = message . priority ;
952
-
953
- // Maintain a list of event definitions that we've already registered
954
- var msgID = evt + "-" + src + "-" + priority ;
955
- var plotlyInputEvents = crosstalk . var ( "plotlyInputEvents" ) . get ( ) || [ ] ;
956
- if ( plotlyInputEvents . indexOf ( msgID ) > - 1 ) {
957
- return ;
958
- }
959
- plotlyInputEvents . push ( msgID ) ;
960
- crosstalk . var ( "plotlyInputEvents" ) . set ( plotlyInputEvents )
961
-
962
- } ) ;
963
- }
964
-
965
-
966
- // Attach attributes (e.g., "key", "z") to plotly event data
967
- function eventDataWithKey ( eventData ) {
968
- if ( eventData === undefined || ! eventData . hasOwnProperty ( "points" ) ) {
969
- return null ;
970
- }
971
- return eventData . points . map ( function ( pt ) {
972
- var obj = {
973
- curveNumber : pt . curveNumber ,
974
- pointNumber : pt . pointNumber ,
975
- x : pt . x ,
976
- y : pt . y
977
- } ;
978
-
979
- // If 'z' is reported with the event data, then use it!
980
- if ( pt . hasOwnProperty ( "z" ) ) {
981
- obj . z = pt . z ;
982
- }
983
-
984
- var trace = pt . data ;
985
-
986
- if ( ! trace . _isSimpleKey ) {
987
- var attrsToAttach = [ "key" ] ;
988
- } else {
989
- // simple keys fire the whole key
990
- obj . key = trace . key ;
991
- var attrsToAttach = [ ] ;
992
- }
993
-
994
- for ( var i = 0 ; i < attrsToAttach . length ; i ++ ) {
995
- var attr = trace [ attrsToAttach [ i ] ] ;
996
- if ( Array . isArray ( attr ) ) {
997
- // pointNumber can be an array (e.g., heatmaps)
998
- // TODO: can pointNumber be 3D?
999
- obj [ attrsToAttach [ i ] ] = typeof pt . pointNumber === "number" ?
1000
- attr [ pt . pointNumber ] : attr [ pt . pointNumber [ 0 ] ] [ pt . pointNumber [ 1 ] ] ;
1001
- }
1002
- }
1003
- return obj ;
1004
- } ) ;
1005
- }
1006
-
1007
- var legendEventData = function ( d ) {
1008
- // if legendgroup is not relevant just return the trace
1009
- var trace = d . data [ d . curveNumber ] ;
1010
- if ( ! trace . legendgroup ) return trace ;
1011
-
1012
- // if legendgroup was specified, return all traces that match the group
1013
- var legendgrps = d . data . map ( function ( trace ) { return trace . legendgroup ; } ) ;
1014
- var traces = [ ] ;
1015
- for ( i = 0 ; i < legendgrps . length ; i ++ ) {
1016
- if ( legendgrps [ i ] == trace . legendgroup ) {
1017
- traces . push ( d . data [ i ] ) ;
1018
- }
1019
- }
1020
-
1021
- return traces ;
1022
- } ;
1023
-
1024
-
0 commit comments