@@ -194,6 +194,37 @@ drawing.symbolNumber = function(v) {
194194} ;
195195
196196function singlePointStyle ( d , sel , trace , markerScale , lineScale , marker , markerLine ) {
197+ // only scatter & box plots get marker path and opacity
198+ // bars, histograms don't
199+ if ( Registry . traceIs ( trace , 'symbols' ) ) {
200+ var sizeFn = makeBubbleSizeFn ( trace ) ;
201+
202+ sel . attr ( 'd' , function ( d ) {
203+ var r ;
204+
205+ // handle multi-trace graph edit case
206+ if ( d . ms === 'various' || marker . size === 'various' ) r = 3 ;
207+ else r = subTypes . isBubble ( trace ) ?
208+ sizeFn ( d . ms ) : ( marker . size || 6 ) / 2 ;
209+
210+ // store the calculated size so hover can use it
211+ d . mrc = r ;
212+
213+ // turn the symbol into a sanitized number
214+ var x = drawing . symbolNumber ( d . mx || marker . symbol ) || 0 ,
215+ xBase = x % 100 ;
216+
217+ // save if this marker is open
218+ // because that impacts how to handle colors
219+ d . om = x % 200 >= 100 ;
220+
221+ return drawing . symbolFuncs [ xBase ] ( r ) +
222+ ( x >= 200 ? DOTPATH : '' ) ;
223+ } )
224+ . style ( 'opacity' , function ( d ) {
225+ return ( d . mo + 1 || marker . opacity + 1 ) - 1 ;
226+ } ) ;
227+ }
197228
198229 // 'so' is suspected outliers, for box plots
199230 var fillColor ,
@@ -254,41 +285,9 @@ drawing.singlePointStyle = function(d, sel, trace) {
254285drawing . pointStyle = function ( s , trace ) {
255286 if ( ! s . size ( ) ) return ;
256287
257- var marker = trace . marker ;
258-
259- // only scatter & box plots get marker path and opacity
260- // bars, histograms don't
261- if ( Registry . traceIs ( trace , 'symbols' ) ) {
262- var sizeFn = makeBubbleSizeFn ( trace ) ;
263-
264- s . attr ( 'd' , function ( d ) {
265- var r ;
266-
267- // handle multi-trace graph edit case
268- if ( d . ms === 'various' || marker . size === 'various' ) r = 3 ;
269- else r = subTypes . isBubble ( trace ) ?
270- sizeFn ( d . ms ) : ( marker . size || 6 ) / 2 ;
271-
272- // store the calculated size so hover can use it
273- d . mrc = r ;
274-
275- // turn the symbol into a sanitized number
276- var x = drawing . symbolNumber ( d . mx || marker . symbol ) || 0 ,
277- xBase = x % 100 ;
278-
279- // save if this marker is open
280- // because that impacts how to handle colors
281- d . om = x % 200 >= 100 ;
282-
283- return drawing . symbolFuncs [ xBase ] ( r ) +
284- ( x >= 200 ? DOTPATH : '' ) ;
285- } )
286- . style ( 'opacity' , function ( d ) {
287- return ( d . mo + 1 || marker . opacity + 1 ) - 1 ;
288- } ) ;
289- }
290288 // allow array marker and marker line colors to be
291289 // scaled by given max and min to colorscales
290+ var marker = trace . marker ;
292291 var markerIn = ( trace . _input || { } ) . marker || { } ,
293292 markerScale = drawing . tryColorscale ( marker , markerIn , '' ) ,
294293 lineScale = drawing . tryColorscale ( marker , markerIn , 'line.' ) ;
0 commit comments