(gd, cdModule)
| 20 | var isValidTextValue = require('../../lib').isValidTextValue; |
| 21 | |
| 22 | function plot(gd, cdModule) { |
| 23 | var isStatic = gd._context.staticPlot; |
| 24 | |
| 25 | var fullLayout = gd._fullLayout; |
| 26 | var gs = fullLayout._size; |
| 27 | |
| 28 | clearMinTextSize('pie', fullLayout); |
| 29 | |
| 30 | prerenderTitles(cdModule, gd); |
| 31 | layoutAreas(cdModule, gs); |
| 32 | |
| 33 | var plotGroups = Lib.makeTraceGroups(fullLayout._pielayer, cdModule, 'trace').each(function (cd) { |
| 34 | var plotGroup = d3.select(this); |
| 35 | var cd0 = cd[0]; |
| 36 | var trace = cd0.trace; |
| 37 | |
| 38 | setCoords(cd); |
| 39 | |
| 40 | // TODO: miter might look better but can sometimes cause problems |
| 41 | // maybe miter with a small-ish stroke-miterlimit? |
| 42 | plotGroup.attr('stroke-linejoin', 'round'); |
| 43 | |
| 44 | plotGroup.each(function () { |
| 45 | var slices = d3.select(this).selectAll('g.slice').data(cd); |
| 46 | |
| 47 | slices.enter().append('g').classed('slice', true); |
| 48 | slices.exit().remove(); |
| 49 | |
| 50 | var quadrants = [ |
| 51 | [[], []], // y<0: x<0, x>=0 |
| 52 | [[], []] // y>=0: x<0, x>=0 |
| 53 | ]; |
| 54 | var hasOutsideText = false; |
| 55 | |
| 56 | slices.each(function (pt, i) { |
| 57 | if (pt.hidden) { |
| 58 | d3.select(this).selectAll('path,g').remove(); |
| 59 | return; |
| 60 | } |
| 61 | |
| 62 | // to have consistent event data compared to other traces |
| 63 | pt.pointNumber = pt.i; |
| 64 | pt.curveNumber = trace.index; |
| 65 | |
| 66 | quadrants[pt.pxmid[1] < 0 ? 0 : 1][pt.pxmid[0] < 0 ? 0 : 1].push(pt); |
| 67 | |
| 68 | var cx = cd0.cx; |
| 69 | var cy = cd0.cy; |
| 70 | var sliceTop = d3.select(this); |
| 71 | var slicePath = sliceTop.selectAll('path.surface').data([pt]); |
| 72 | |
| 73 | slicePath |
| 74 | .enter() |
| 75 | .append('path') |
| 76 | .classed('surface', true) |
| 77 | .style({ 'pointer-events': isStatic ? 'none' : 'all' }); |
| 78 | |
| 79 | sliceTop.call(attachFxHandlers, gd, cd); |
nothing calls this directly
no test coverage detected
searching dependent graphs…