{"version":3,"sources":["webpack:////home/git/gitlab/node_modules/d3-dispatch/src/dispatch.js","webpack:////home/git/gitlab/node_modules/d3-drag/src/noevent.js","webpack:////home/git/gitlab/node_modules/d3-drag/src/nodrag.js","webpack:////home/git/gitlab/node_modules/d3-drag/src/event.js","webpack:////home/git/gitlab/node_modules/d3-drag/src/drag.js","webpack:////home/git/gitlab/node_modules/d3-timer/src/timer.js","webpack:////home/git/gitlab/node_modules/d3-timer/src/timeout.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/schedule.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/interrupt.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/tween.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/interpolate.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/remove.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/selection.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/text.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/index.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/select.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/selectAll.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/filter.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/merge.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/transition.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/on.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/attr.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/attrTween.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/style.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/styleTween.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/delay.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/duration.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/transition/ease.js","webpack:////home/git/gitlab/node_modules/d3-ease/src/poly.js","webpack:////home/git/gitlab/node_modules/d3-ease/src/sin.js","webpack:////home/git/gitlab/node_modules/d3-ease/src/back.js","webpack:////home/git/gitlab/node_modules/d3-ease/src/elastic.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/selection/transition.js","webpack:////home/git/gitlab/node_modules/d3-ease/src/cubic.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/selection/index.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/selection/interrupt.js","webpack:////home/git/gitlab/node_modules/d3-transition/src/active.js","webpack:////home/git/gitlab/node_modules/d3-brush/src/constant.js","webpack:////home/git/gitlab/node_modules/d3-brush/src/event.js","webpack:////home/git/gitlab/node_modules/d3-brush/src/noevent.js","webpack:////home/git/gitlab/node_modules/d3-brush/src/brush.js","webpack:///./lib/utils/tick_formats.js","webpack:///./pages/projects/graphs/show/stat_graph_contributors_graph.js","webpack:///./pages/projects/graphs/show/stat_graph_contributors_util.js","webpack:///./pages/projects/graphs/show/stat_graph_contributors.js","webpack:///./pages/projects/graphs/show/index.js"],"names":["noop","value","dispatch","t","i","n","arguments","length","_","Error","Dispatch","this","get","type","name","c","set","callback","slice","concat","push","prototype","constructor","on","typename","types","T","trim","split","map","indexOf","hasOwnProperty","copy","call","that","args","Array","apply","src_dispatch","noevent","d3_selection","preventDefault","stopImmediatePropagation","nodrag","view","root","document","documentElement","selection","Object","__noselect","style","MozUserSelect","yesdrag","noclick","setTimeout","DragEvent","target","subject","id","active","x","y","dx","dy","identifier","taskHead","taskTail","timer_frame","timeout","interval","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","window","requestAnimationFrame","bind","f","clearNow","Timer","_call","_time","_next","timer","delay","time","restart","wake","e","timerFlush","t0","t2","t1","Infinity","sleep","nap","poke","clearTimeout","clearInterval","setInterval","TypeError","stop","src_timeout","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","transition_schedule","node","index","group","timing","schedules","__transition","self","tween","start","j","o","state","__data__","tick","duration","ease","create","init","schedule","schedule_get","schedule_set","interrupt","empty","tweenValue","transition","_id","each","transition_interpolate","a","b","d3_interpolate","d3_color","Selection","transition_id","Transition","groups","parents","_groups","_parents","_name","newId","selection_prototype","select","m","subgroups","subnode","subgroup","selectAll","child","children","inherit","k","l","filter","match","merge","groups0","groups1","m0","m1","Math","min","merges","group0","group1","id0","id1","nodes","size","listener","on0","on1","sit","every","on_start","onFunction","attr","fullname","attrTween","local","interpolate","value00","value10","interpolate0","value0","value1","getAttributeNS","space","removeAttributeNS","getAttribute","removeAttribute","key","_value","setAttributeNS","setAttribute","priority","styleTween","removeProperty","styleRemove","styleRemoveEnd","styleFunction","styleConstant","setProperty","text","textContent","textFunction","textConstant","remove","parent","parentNode","removeChild","tween0","tween1","splice","easeConstant","custom","polyIn","pow","exponent","polyOut","polyInOut","PI","s","backIn","overshoot","backOut","backInOut","tau","defaultTiming","p","asin","max","elasticIn","sin","amplitude","period","elasticOut","elasticInOut","transition_inherit","src_constant","src_event","noevent_nopropagation","src_noevent","MODE_DRAG","MODE_SPACE","MODE_HANDLE","MODE_CENTER","X","handles","brush_type","input","output","xy","Y","cursors","overlay","w","nw","ne","se","sw","flipX","flipY","signsX","signsY","brush_defaultFilter","button","defaultExtent","svg","ownerSVGElement","width","baseVal","height","__brush","brush_empty","extent","brush_brush","dim","touchending","listeners","brush","handleSize","property","initialize","data","enter","append","handle","d","exit","redraw","started","emitter","Emitter","touches","changedTouches","w0","w1","n0","n1","e0","e1","s0","s1","moving","lockX","lockY","mode","metaKey","altKey","signX","signY","W","N","E","S","shifting","shiftKey","point0","point","emit","beforestart","moved","ended","keyCode","move","point1","abs","end","selection0","selection1","starting","dayFormat","monthFormat","yearFormat","dateTimeFormats","locale","month","day","year","dateTickFormat","date","getDate","format","getMonth","d3","d3_array","scaleTime","d3_scale","scaleLinear","axisLeft","d3_axis","axisBottom","area","d3_shape","brushX","timeParse","d3_time_format","hasProp","extend","ctor","__super__","ContributorsGraph","MARGIN","top","right","bottom","left","x_domain","y_domain","dates","determine_width","baseWidth","$parentElement","parseFloat","css","set_x_domain","set_y_domain","commits","additions","deletions","init_x_domain","init_y_domain","init_domain","set_dates","domain","set_domain","create_scale","range","clamp","nice","draw_x_axis","x_axis","draw_y_axis","y_axis","set_data","stat_graph_contributors_graph_ContributorsMasterGraph","superClass","ContributorsMasterGraph","data1","jquery_default","update_content","x_max_domain","process_dates","get_dates","parse_dates","underscore_default","pluck","parseDate","forEach","create_axes","scale","tickFormat","ticks","create_svg","create_area","y0","y1","create_brush","draw_path","datum","add_brush","invert","trigger","draw","stat_graph_contributors_graph_ContributorsAuthorGraph","ContributorsAuthorGraph","$parentElements","list_item","_this","persons","querySelectorAll","stat_graph_contributors_util","parse_log","log","by_author","by_email","entry","len","total","normalized_email","add_date","author_email","toLowerCase","author_name","add_author","store_data","toArray","collection","author","store_commits","store_additions","store_deletions","add","field","get_total_data","parsed_log","total_data","pick_field","sortBy","pick","get_author_data","date_range","author_data","log_entry","parsed_log_entry","parse_log_entry","isEmpty","reverse","parsed_entry","omit","in_range","ref","stat_graph_contributors","ContributorsStatGraph","dateFormat","author_commits","total_commits","set_current_field","add_master_graph","add_authors_graph","change_date_header","master_graph","limited_author_data","authors","author_graph","author_header","create_author_header","format_author_commit_info","class","author_commit_info","author_commit_info_span","html","redraw_master","redraw_authors","redraw_author_commit_info","appendTo","formattedDateRange","startDate","endDate","author_list_item","find","addEventListener","url","querySelector","dataset","projectGraphPath","axios_utils","then","_ref","graph","change","fadeIn","hide","catch","flash"],"mappings":"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","file":"pages.projects.graphs.show.ea7eb74c.chunk.js","sourcesContent":["var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag\";\nimport noevent, {nopropagation} from \"./noevent\";\nimport constant from \"./constant\";\nimport DragEvent from \"./event\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return \"ontouchstart\" in this;\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation();\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTING) throw new Error(\"too late; already started\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n // Dispatch the interrupt event.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions. No interrupt event is dispatched\n // because the cancelled transitions never started. Note that this also\n // removes this transition from the pending list!\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(null, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n if (active) schedule.on.call(\"interrupt\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {get, set} from \"./schedule\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {tweenValue} from \"./tween\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr\";\nimport transition_attrTween from \"./attrTween\";\nimport transition_delay from \"./delay\";\nimport transition_duration from \"./duration\";\nimport transition_ease from \"./ease\";\nimport transition_filter from \"./filter\";\nimport transition_merge from \"./merge\";\nimport transition_on from \"./on\";\nimport transition_remove from \"./remove\";\nimport transition_select from \"./select\";\nimport transition_selectAll from \"./selectAll\";\nimport transition_selection from \"./selection\";\nimport transition_style from \"./style\";\nimport transition_styleTween from \"./styleTween\";\nimport transition_text from \"./text\";\nimport transition_transition from \"./transition\";\nimport transition_tween from \"./tween\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease\n};\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index\";\nimport schedule, {get} from \"./schedule\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index\";\nimport schedule, {get} from \"./schedule\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {Transition, newId} from \"./index\";\nimport schedule, {get} from \"./schedule\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set, init} from \"./schedule\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween\";\nimport interpolate from \"./interpolate\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = this.getAttribute(name);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0, value1 = value(this);\n if (value1 == null) return void this.removeAttribute(name);\n value0 = this.getAttribute(name);\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0, value1 = value(this);\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n value0 = this.getAttributeNS(fullname.space, fullname.local);\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value + \"\"));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrTweenNS(fullname, value) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.setAttributeNS(fullname.space, fullname.local, i(t));\n };\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.setAttribute(name, i(t));\n };\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {tweenValue} from \"./tween\";\nimport interpolate from \"./interpolate\";\n\nfunction styleRemove(name, interpolate) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0 = style(this, name),\n value1 = (this.style.removeProperty(name), style(this, name));\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nfunction styleRemoveEnd(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var value00,\n interpolate0;\n return function() {\n var value0 = style(this, name);\n return value0 === value1 ? null\n : value0 === value00 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var value00,\n value10,\n interpolate0;\n return function() {\n var value0 = style(this, name),\n value1 = value(this);\n if (value1 == null) value1 = (this.style.removeProperty(name), style(this, name));\n return value0 === value1 ? null\n : value0 === value00 && value1 === value10 ? interpolate0\n : interpolate0 = interpolate(value00 = value0, value10 = value1);\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleRemove(name, i))\n .on(\"end.style.\" + name, styleRemoveEnd(name))\n : this.styleTween(name, typeof value === \"function\"\n ? styleFunction(name, i, tweenValue(this, \"style.\" + name, value))\n : styleConstant(name, i, value + \"\"), priority);\n}\n","function styleTween(name, value, priority) {\n function tween() {\n var node = this, i = value.apply(node, arguments);\n return i && function(t) {\n node.style.setProperty(name, i(t), priority);\n };\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {get, init} from \"./schedule\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return t * t * ((s + 1) * t - s);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((s + 1) * t + s) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n","var tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)\n : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n","import {Transition, newId} from \"../transition/index\";\nimport schedule from \"../transition/schedule\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt\";\nimport selection_transition from \"./transition\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {Transition} from \"./transition/index\";\nimport {SCHEDULED} from \"./transition/schedule\";\n\nvar root = [null];\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(target, type, selection) {\n this.target = target;\n this.type = type;\n this.selection = selection;\n}\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {customEvent, event, mouse, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant\";\nimport BrushEvent from \"./event\";\nimport noevent, {nopropagation} from \"./noevent\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nvar X = {\n name: \"x\",\n handles: [\"e\", \"w\"].map(type),\n input: function(x, e) { return x && [[x[0], e[0][1]], [x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y && [[e[0][0], y[0]], [e[1][0], y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"e\", \"s\", \"w\", \"nw\", \"ne\", \"se\", \"sw\"].map(type),\n input: function(xy) { return xy; },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n listeners = dispatch(brush, \"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\")\n .on(\"mousedown.brush touchstart.brush\", started);\n }\n\n brush.move = function(group, selection) {\n if (group.selection) {\n group\n .on(\"start.brush\", function() { emitter(this, arguments).beforestart().start(); })\n .on(\"interrupt.brush end.brush\", function() { emitter(this, arguments).end(); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && empty(selection1) ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 && selection1 ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 == null || empty(selection1) ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args) {\n return that.__brush.emitter || new Emitter(that, args);\n }\n\n function Emitter(that, args) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function() {\n if (this.starting) this.starting = false, this.emit(\"start\");\n return this;\n },\n brush: function() {\n this.emit(\"brush\");\n return this;\n },\n end: function() {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\");\n return this;\n },\n emit: function(type) {\n customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function started() {\n if (event.touches) { if (event.changedTouches.length < event.touches.length) return noevent(); }\n else if (touchending) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx,\n dy,\n moving,\n shifting = signX && signY && event.shiftKey,\n lockX,\n lockY,\n point0 = mouse(that),\n point = point0,\n emit = emitter(that, arguments).beforestart();\n\n if (type === \"overlay\") {\n state.selection = selection = [\n [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],\n [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]\n ];\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n group\n .on(\"touchmove.brush\", moved, true)\n .on(\"touchend.brush touchcancel.brush\", ended, true);\n } else {\n var view = select(event.view)\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n\n dragDisable(event.view);\n }\n\n nopropagation();\n interrupt(that);\n redraw.call(that);\n emit.start();\n\n function moved() {\n var point1 = mouse(that);\n if (shifting && !lockX && !lockY) {\n if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;\n else lockX = true;\n }\n point = point1;\n moving = true;\n noevent();\n move();\n }\n\n function move() {\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));\n if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush();\n }\n }\n\n function ended() {\n nopropagation();\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n group.on(\"touchmove.brush touchend.brush touchcancel.brush\", null);\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end();\n }\n\n function keydowned() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n\n function keyupped() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = extent.apply(this, arguments);\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","import { createDateTimeFormat } from '../../locale';\n\nlet dateTimeFormats;\n\nexport const initDateFormats = () => {\n const dayFormat = createDateTimeFormat({ month: 'short', day: 'numeric' });\n const monthFormat = createDateTimeFormat({ month: 'long' });\n const yearFormat = createDateTimeFormat({ year: 'numeric' });\n\n dateTimeFormats = {\n dayFormat,\n monthFormat,\n yearFormat,\n };\n};\n\ninitDateFormats();\n\n/**\n Formats a localized date in way that it can be used for d3.js axis.tickFormat().\n\n That is, it displays\n - 4-digit for first of January\n - full month name for first of every month\n - day and abbreviated month otherwise\n\n see also https://github.com/d3/d3-3.x-api-reference/blob/master/SVG-Axes.md#tickFormat\n */\nexport const dateTickFormat = (date) => {\n if (date.getDate() !== 1) {\n return dateTimeFormats.dayFormat.format(date);\n }\n\n if (date.getMonth() > 0) {\n return dateTimeFormats.monthFormat.format(date);\n }\n\n return dateTimeFormats.yearFormat.format(date);\n};\n","/* eslint-disable func-names, space-before-function-paren, prefer-rest-params, max-len, no-restricted-syntax, vars-on-top, no-use-before-define, no-param-reassign, new-cap, no-underscore-dangle, wrap-iife, comma-dangle, no-return-assign, prefer-arrow-callback, quotes, prefer-template, newline-per-chained-call, no-else-return, no-shadow */\n\nimport $ from 'jquery';\nimport _ from 'underscore';\nimport { extent, max } from 'd3-array';\nimport { select, event as d3Event } from 'd3-selection';\nimport { scaleTime, scaleLinear } from 'd3-scale';\nimport { axisLeft, axisBottom } from 'd3-axis';\nimport { area } from 'd3-shape';\nimport { brushX } from 'd3-brush';\nimport { timeParse } from 'd3-time-format';\nimport { dateTickFormat } from '~/lib/utils/tick_formats';\n\nconst d3 = { extent, max, select, scaleTime, scaleLinear, axisLeft, axisBottom, area, brushX, timeParse };\n\nconst hasProp = {}.hasOwnProperty;\nconst extend = function(child, parent) { for (const key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\n\nexport const ContributorsGraph = (function() {\n function ContributorsGraph() {}\n\n ContributorsGraph.prototype.MARGIN = {\n top: 20,\n right: 10,\n bottom: 30,\n left: 40\n };\n\n ContributorsGraph.prototype.x_domain = null;\n\n ContributorsGraph.prototype.y_domain = null;\n\n ContributorsGraph.prototype.dates = [];\n\n ContributorsGraph.prototype.determine_width = function(baseWidth, $parentElement) {\n const parentPaddingWidth = parseFloat($parentElement.css('padding-left')) + parseFloat($parentElement.css('padding-right'));\n const marginWidth = this.MARGIN.left + this.MARGIN.right;\n return baseWidth - parentPaddingWidth - marginWidth;\n };\n\n ContributorsGraph.set_x_domain = function(data) {\n return ContributorsGraph.prototype.x_domain = data;\n };\n\n ContributorsGraph.set_y_domain = function(data) {\n return ContributorsGraph.prototype.y_domain = [\n 0, d3.max(data, function(d) {\n return d.commits = d.commits || d.additions || d.deletions;\n })\n ];\n };\n\n ContributorsGraph.init_x_domain = function(data) {\n return ContributorsGraph.prototype.x_domain = d3.extent(data, function(d) {\n return d.date;\n });\n };\n\n ContributorsGraph.init_y_domain = function(data) {\n return ContributorsGraph.prototype.y_domain = [\n 0, d3.max(data, function(d) {\n return d.commits = d.commits || d.additions || d.deletions;\n })\n ];\n };\n\n ContributorsGraph.init_domain = function(data) {\n ContributorsGraph.init_x_domain(data);\n return ContributorsGraph.init_y_domain(data);\n };\n\n ContributorsGraph.set_dates = function(data) {\n return ContributorsGraph.prototype.dates = data;\n };\n\n ContributorsGraph.prototype.set_x_domain = function() {\n return this.x.domain(this.x_domain);\n };\n\n ContributorsGraph.prototype.set_y_domain = function() {\n return this.y.domain(this.y_domain);\n };\n\n ContributorsGraph.prototype.set_domain = function() {\n this.set_x_domain();\n return this.set_y_domain();\n };\n\n ContributorsGraph.prototype.create_scale = function(width, height) {\n this.x = d3.scaleTime().range([0, width]).clamp(true);\n return this.y = d3.scaleLinear().range([height, 0]).nice();\n };\n\n ContributorsGraph.prototype.draw_x_axis = function() {\n return this.svg.append(\"g\").attr(\"class\", \"x axis\").attr(\"transform\", \"translate(0, \" + this.height + \")\").call(this.x_axis);\n };\n\n ContributorsGraph.prototype.draw_y_axis = function() {\n return this.svg.append(\"g\").attr(\"class\", \"y axis\").call(this.y_axis);\n };\n\n ContributorsGraph.prototype.set_data = function(data) {\n return this.data = data;\n };\n\n return ContributorsGraph;\n})();\n\nexport const ContributorsMasterGraph = (function(superClass) {\n extend(ContributorsMasterGraph, superClass);\n\n function ContributorsMasterGraph(data1) {\n const $parentElement = $('#contributors-master');\n\n this.data = data1;\n this.update_content = this.update_content.bind(this);\n this.width = this.determine_width($('.js-graphs-show').width(), $parentElement);\n this.height = 200;\n this.x = null;\n this.y = null;\n this.x_axis = null;\n this.y_axis = null;\n this.area = null;\n this.svg = null;\n this.brush = null;\n this.x_max_domain = null;\n }\n\n ContributorsMasterGraph.prototype.process_dates = function(data) {\n const dates = this.get_dates(data);\n this.parse_dates(data);\n return ContributorsGraph.set_dates(dates);\n };\n\n ContributorsMasterGraph.prototype.get_dates = function(data) {\n return _.pluck(data, 'date');\n };\n\n ContributorsMasterGraph.prototype.parse_dates = function(data) {\n const parseDate = d3.timeParse(\"%Y-%m-%d\");\n return data.forEach(function(d) {\n return d.date = parseDate(d.date);\n });\n };\n\n ContributorsMasterGraph.prototype.create_scale = function() {\n return ContributorsMasterGraph.__super__.create_scale.call(this, this.width, this.height);\n };\n\n ContributorsMasterGraph.prototype.create_axes = function() {\n this.x_axis = d3.axisBottom()\n .scale(this.x)\n .tickFormat(dateTickFormat);\n return this.y_axis = d3.axisLeft().scale(this.y).ticks(5);\n };\n\n ContributorsMasterGraph.prototype.create_svg = function() {\n this.svg = d3.select(\"#contributors-master\")\n .append(\"svg\")\n .attr(\"width\", this.width + this.MARGIN.left + this.MARGIN.right)\n .attr(\"height\", this.height + this.MARGIN.top + this.MARGIN.bottom)\n .attr(\"class\", \"tint-box\")\n .append(\"g\")\n .attr(\"transform\", \"translate(\" + this.MARGIN.left + \",\" + this.MARGIN.top + \")\");\n return this.svg;\n };\n\n ContributorsMasterGraph.prototype.create_area = function(x, y) {\n return this.area = d3.area().x(function(d) {\n return x(d.date);\n }).y0(this.height).y1(function(d) {\n d.commits = d.commits || d.additions || d.deletions;\n return y(d.commits);\n });\n };\n\n ContributorsMasterGraph.prototype.create_brush = function() {\n return this.brush = d3.brushX(this.x).extent([[this.x.range()[0], 0], [this.x.range()[1], this.height]]).on(\"end\", this.update_content);\n };\n\n ContributorsMasterGraph.prototype.draw_path = function(data) {\n return this.svg.append(\"path\").datum(data).attr(\"class\", \"area\").attr(\"d\", this.area);\n };\n\n ContributorsMasterGraph.prototype.add_brush = function() {\n return this.svg.append(\"g\").attr(\"class\", \"selection\").call(this.brush).selectAll(\"rect\").attr(\"height\", this.height);\n };\n\n ContributorsMasterGraph.prototype.update_content = function() {\n // d3Event.selection replaces the function brush.empty() calls\n if (d3Event.selection != null) {\n ContributorsGraph.set_x_domain(d3Event.selection.map(this.x.invert));\n } else {\n ContributorsGraph.set_x_domain(this.x_max_domain);\n }\n return $(\"#brush_change\").trigger('change');\n };\n\n ContributorsMasterGraph.prototype.draw = function() {\n this.process_dates(this.data);\n this.create_scale();\n this.create_axes();\n ContributorsGraph.init_domain(this.data);\n this.x_max_domain = this.x_domain;\n this.set_domain();\n this.create_area(this.x, this.y);\n this.create_svg();\n this.create_brush();\n this.draw_path(this.data);\n this.draw_x_axis();\n this.draw_y_axis();\n return this.add_brush();\n };\n\n ContributorsMasterGraph.prototype.redraw = function() {\n this.process_dates(this.data);\n ContributorsGraph.set_y_domain(this.data);\n this.set_y_domain();\n this.svg.select(\"path\").datum(this.data);\n this.svg.select(\"path\").attr(\"d\", this.area);\n return this.svg.select(\".y.axis\").call(this.y_axis);\n };\n\n return ContributorsMasterGraph;\n})(ContributorsGraph);\n\nexport const ContributorsAuthorGraph = (function(superClass) {\n extend(ContributorsAuthorGraph, superClass);\n\n function ContributorsAuthorGraph(data1) {\n const $parentElements = $('.person');\n\n this.data = data1;\n // Don't split graph size in half for mobile devices.\n if ($(window).width() < 790) {\n this.width = this.determine_width($('.js-graphs-show').width(), $parentElements);\n } else {\n this.width = this.determine_width($('.js-graphs-show').width() / 2, $parentElements);\n }\n this.height = 200;\n this.x = null;\n this.y = null;\n this.x_axis = null;\n this.y_axis = null;\n this.area = null;\n this.svg = null;\n this.list_item = null;\n }\n\n ContributorsAuthorGraph.prototype.create_scale = function() {\n return ContributorsAuthorGraph.__super__.create_scale.call(this, this.width, this.height);\n };\n\n ContributorsAuthorGraph.prototype.create_axes = function() {\n this.x_axis = d3.axisBottom()\n .scale(this.x)\n .ticks(8)\n .tickFormat(dateTickFormat);\n return this.y_axis = d3.axisLeft().scale(this.y).ticks(5);\n };\n\n ContributorsAuthorGraph.prototype.create_area = function(x, y) {\n return this.area = d3.area().x(function(d) {\n const parseDate = d3.timeParse(\"%Y-%m-%d\");\n return x(parseDate(d));\n }).y0(this.height).y1((function(_this) {\n return function(d) {\n if (_this.data[d] != null) {\n return y(_this.data[d]);\n } else {\n return y(0);\n }\n };\n })(this));\n };\n\n ContributorsAuthorGraph.prototype.create_svg = function() {\n const persons = document.querySelectorAll('.person');\n this.list_item = persons[persons.length - 1];\n this.svg = d3.select(this.list_item)\n .append(\"svg\")\n .attr(\"width\", this.width + this.MARGIN.left + this.MARGIN.right)\n .attr(\"height\", this.height + this.MARGIN.top + this.MARGIN.bottom)\n .attr(\"class\", \"spark\")\n .append(\"g\")\n .attr(\"transform\", \"translate(\" + this.MARGIN.left + \",\" + this.MARGIN.top + \")\");\n return this.svg;\n };\n\n ContributorsAuthorGraph.prototype.draw_path = function(data) {\n return this.svg.append(\"path\").datum(data).attr(\"class\", \"area-contributor\").attr(\"d\", this.area);\n };\n\n ContributorsAuthorGraph.prototype.draw = function() {\n this.create_scale();\n this.create_axes();\n this.set_domain();\n this.create_area(this.x, this.y);\n this.create_svg();\n this.draw_path(this.dates);\n this.draw_x_axis();\n return this.draw_y_axis();\n };\n\n ContributorsAuthorGraph.prototype.redraw = function() {\n this.set_domain();\n this.svg.select(\"path\").datum(this.dates);\n this.svg.select(\"path\").attr(\"d\", this.area);\n this.svg.select(\".x.axis\").call(this.x_axis);\n return this.svg.select(\".y.axis\").call(this.y_axis);\n };\n\n return ContributorsAuthorGraph;\n})(ContributorsGraph);\n","/* eslint-disable func-names, space-before-function-paren, object-shorthand, no-var, one-var, camelcase, one-var-declaration-per-line, comma-dangle, no-param-reassign, no-return-assign, quotes, prefer-arrow-callback, wrap-iife, consistent-return, no-unused-vars, max-len, no-cond-assign, no-else-return, max-len */\nimport _ from 'underscore';\n\nexport default {\n parse_log: function(log) {\n var by_author, by_email, data, entry, i, len, total, normalized_email;\n total = {};\n by_author = {};\n by_email = {};\n for (i = 0, len = log.length; i < len; i += 1) {\n entry = log[i];\n if (total[entry.date] == null) {\n this.add_date(entry.date, total);\n }\n normalized_email = entry.author_email.toLowerCase();\n data = by_author[entry.author_name] || by_email[normalized_email];\n if (data == null) {\n data = this.add_author(entry, by_author, by_email);\n }\n if (!data[entry.date]) {\n this.add_date(entry.date, data);\n }\n this.store_data(entry, total[entry.date], data[entry.date]);\n }\n total = _.toArray(total);\n by_author = _.toArray(by_author);\n return {\n total: total,\n by_author: by_author\n };\n },\n add_date: function(date, collection) {\n collection[date] = {};\n return collection[date].date = date;\n },\n add_author: function(author, by_author, by_email) {\n var data, normalized_email;\n data = {};\n data.author_name = author.author_name;\n data.author_email = author.author_email;\n normalized_email = author.author_email.toLowerCase();\n by_author[author.author_name] = data;\n by_email[normalized_email] = data;\n return data;\n },\n store_data: function(entry, total, by_author) {\n this.store_commits(total, by_author);\n this.store_additions(entry, total, by_author);\n return this.store_deletions(entry, total, by_author);\n },\n store_commits: function(total, by_author) {\n this.add(total, \"commits\", 1);\n return this.add(by_author, \"commits\", 1);\n },\n add: function(collection, field, value) {\n if (collection[field] == null) {\n collection[field] = 0;\n }\n return collection[field] += value;\n },\n store_additions: function(entry, total, by_author) {\n if (entry.additions == null) {\n entry.additions = 0;\n }\n this.add(total, \"additions\", entry.additions);\n return this.add(by_author, \"additions\", entry.additions);\n },\n store_deletions: function(entry, total, by_author) {\n if (entry.deletions == null) {\n entry.deletions = 0;\n }\n this.add(total, \"deletions\", entry.deletions);\n return this.add(by_author, \"deletions\", entry.deletions);\n },\n get_total_data: function(parsed_log, field) {\n var log, total_data;\n log = parsed_log.total;\n total_data = this.pick_field(log, field);\n return _.sortBy(total_data, function(d) {\n return d.date;\n });\n },\n pick_field: function(log, field) {\n var total_data;\n total_data = [];\n _.each(log, function(d) {\n return total_data.push(_.pick(d, [field, 'date']));\n });\n return total_data;\n },\n get_author_data: function(parsed_log, field, date_range) {\n var author_data, log;\n if (date_range == null) {\n date_range = null;\n }\n log = parsed_log.by_author;\n author_data = [];\n _.each(log, (function(_this) {\n return function(log_entry) {\n var parsed_log_entry;\n parsed_log_entry = _this.parse_log_entry(log_entry, field, date_range);\n if (!_.isEmpty(parsed_log_entry.dates)) {\n return author_data.push(parsed_log_entry);\n }\n };\n })(this));\n return _.sortBy(author_data, function(d) {\n return d[field];\n }).reverse();\n },\n parse_log_entry: function(log_entry, field, date_range) {\n var parsed_entry;\n parsed_entry = {};\n parsed_entry.author_name = log_entry.author_name;\n parsed_entry.author_email = log_entry.author_email;\n parsed_entry.dates = {};\n parsed_entry.commits = parsed_entry.additions = parsed_entry.deletions = 0;\n _.each(_.omit(log_entry, 'author_name', 'author_email'), (function(_this) {\n return function(value, key) {\n if (_this.in_range(value.date, date_range)) {\n parsed_entry.dates[value.date] = value[field];\n parsed_entry.commits += value.commits;\n parsed_entry.additions += value.additions;\n return parsed_entry.deletions += value.deletions;\n }\n };\n })(this));\n return parsed_entry;\n },\n in_range: function(date, date_range) {\n var ref;\n if (date_range === null || (date_range[0] <= (ref = new Date(date)) && ref <= date_range[1])) {\n return true;\n } else {\n return false;\n }\n }\n};\n","/* eslint-disable func-names, space-before-function-paren, wrap-iife, no-var, one-var, camelcase, one-var-declaration-per-line, quotes, no-param-reassign, quote-props, comma-dangle, prefer-template, max-len, no-return-assign, no-shadow */\n\nimport $ from 'jquery';\nimport _ from 'underscore';\nimport { n__, s__, createDateTimeFormat, sprintf } from '~/locale';\nimport { ContributorsGraph, ContributorsAuthorGraph, ContributorsMasterGraph } from './stat_graph_contributors_graph';\nimport ContributorsStatGraphUtil from './stat_graph_contributors_util';\n\nexport default (function() {\n function ContributorsStatGraph() {\n this.dateFormat = createDateTimeFormat({ year: 'numeric', month: 'long', day: 'numeric' });\n }\n\n ContributorsStatGraph.prototype.init = function(log) {\n var author_commits, total_commits;\n this.parsed_log = ContributorsStatGraphUtil.parse_log(log);\n this.set_current_field(\"commits\");\n total_commits = ContributorsStatGraphUtil.get_total_data(this.parsed_log, this.field);\n author_commits = ContributorsStatGraphUtil.get_author_data(this.parsed_log, this.field);\n this.add_master_graph(total_commits);\n this.add_authors_graph(author_commits);\n return this.change_date_header();\n };\n\n ContributorsStatGraph.prototype.add_master_graph = function(total_data) {\n this.master_graph = new ContributorsMasterGraph(total_data);\n return this.master_graph.draw();\n };\n\n ContributorsStatGraph.prototype.add_authors_graph = function(author_data) {\n var limited_author_data;\n this.authors = [];\n limited_author_data = author_data.slice(0, 100);\n return _.each(limited_author_data, (function(_this) {\n return function(d) {\n var author_graph, author_header;\n author_header = _this.create_author_header(d);\n $(\".contributors-list\").append(author_header);\n _this.authors[d.author_name] = author_graph = new ContributorsAuthorGraph(d.dates);\n return author_graph.draw();\n };\n })(this));\n };\n\n ContributorsStatGraph.prototype.format_author_commit_info = function(author) {\n var commits;\n commits = $('', {\n \"class\": 'graph-author-commits-count'\n });\n commits.text(n__('%d commit', '%d commits', author.commits));\n return $('').append(commits);\n };\n\n ContributorsStatGraph.prototype.create_author_header = function(author) {\n var author_commit_info, author_commit_info_span, author_email, author_name, list_item;\n list_item = $('
', {\n \"class\": 'person',\n style: 'display: block;'\n });\n author_name = $('