-
Notifications
You must be signed in to change notification settings - Fork 24
/
dc.graph.d3-force.worker.js.map
1 lines (1 loc) · 72.8 KB
/
dc.graph.d3-force.worker.js.map
1
{"version":3,"sources":["src/core.js","src/generate_objects.js","src/graphviz_attrs.js","src/d3_force_layout.js","src/webworker_message.js"],"names":[],"mappings":"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","file":"dc.graph.d3-force.worker.js","sourcesContent":["/**\n * The entire dc.graph.js library is scoped under the **dc_graph** name space. It does not introduce\n * anything else into the global name space.\n *\n * Like in dc.js and most libraries built on d3, most `dc_graph` functions are designed to allow function chaining, meaning they return the current diagram\n * instance whenever it is appropriate. The getter forms of functions do not participate in function\n * chaining because they return values that are not the diagram.\n * @namespace dc_graph\n * @version 0.9.9.2\n * @example\n * // Example chaining\n * diagram.width(600)\n * .height(400)\n * .nodeDimension(nodeDim)\n * .nodeGroup(nodeGroup);\n */\n\nvar dc_graph = {\n version: '0.9.9.2',\n constants: {\n CHART_CLASS: 'dc-graph'\n }\n};\n\nfunction get_original(x) {\n return x.orig;\n}\n\nfunction identity(x) {\n return x;\n};\n\nvar property = function (defaultValue, unwrap) {\n if(unwrap === undefined)\n unwrap = get_original;\n else if(unwrap === false)\n unwrap = identity;\n var value = defaultValue, react = null;\n var cascade = [];\n var ret = function (_) {\n if (!arguments.length) {\n return value;\n }\n if(react)\n react(_);\n value = _;\n return this;\n };\n ret.cascade = function (n, f) {\n for(var i = 0; i<cascade.length; ++i) {\n if(cascade[i].n === n) {\n if(f)\n cascade[i].f = f;\n else cascade.splice(i, 1);\n return ret;\n } else if(cascade[i].n > n) {\n cascade.splice(i, 0, {n: n, f: f});\n return ret;\n }\n }\n cascade.push({n: n, f: f});\n return ret;\n };\n ret._eval = function(o, n) {\n if(n===0 || !cascade.length)\n return dc_graph.functor_wrap(ret(), unwrap)(o);\n else {\n var last = cascade[n-1];\n return last.f(o, function() {\n return ret._eval(o, n-1);\n });\n }\n };\n ret.eval = function(o) {\n return ret._eval(o, cascade.length);\n };\n ret.react = function(_) {\n if (!arguments.length) {\n return react;\n }\n react = _;\n return this;\n };\n return ret;\n};\n\nfunction named_children() {\n var _children = {};\n var f = function(id, object) {\n if(arguments.length === 1)\n return _children[id];\n if(f.reject) {\n var reject = f.reject(id, object);\n if(reject) {\n console.groupCollapsed(reject);\n console.trace();\n console.groupEnd();\n return this;\n }\n }\n // do not notify unnecessarily\n if(_children[id] === object)\n return this;\n if(_children[id])\n _children[id].parent(null);\n _children[id] = object;\n if(object)\n object.parent(this);\n return this;\n };\n f.enum = function() {\n return Object.keys(_children);\n };\n f.nameOf = function(o) {\n var found = Object.entries(_children).find(function(kv) {\n return kv[1] == o;\n });\n return found ? found[0] : null;\n };\n return f;\n}\n\nfunction deprecated_property(message, defaultValue) {\n var prop = property(defaultValue);\n var ret = function() {\n if(arguments.length) {\n console.warn(message);\n prop.apply(property, arguments);\n return this;\n }\n return prop();\n };\n ['cascade', '_eval', 'eval', 'react'].forEach(function(method) {\n ret[method] = prop[method];\n });\n return ret;\n}\n\nfunction onetime_trace(level, message) {\n var said = false;\n return function() {\n if(said)\n return;\n if(level === 'trace') {\n console.groupCollapsed(message);\n console.trace();\n console.groupEnd();\n }\n else\n console[level](message);\n said = true;\n };\n}\n\nfunction deprecation_warning(message) {\n return onetime_trace('warn', message);\n}\n\nfunction trace_function(level, message, f) {\n var dep = onetime_trace(level, message);\n return function() {\n dep();\n return f.apply(this, arguments);\n };\n}\nfunction deprecate_function(message, f) {\n return trace_function('warn', message, f);\n}\n\n// http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\nfunction uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);\n return v.toString(16);\n });\n}\n\nfunction is_ie() {\n var ua = window.navigator.userAgent;\n\n return(ua.indexOf('MSIE ') > 0 ||\n ua.indexOf('Trident/') > 0 ||\n ua.indexOf('Edge/') > 0);\n}\n\nfunction is_safari() {\n return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n}\n\n// polyfill Object.assign for IE\n// it's just too useful to do without\nif (typeof Object.assign != 'function') {\n // Must be writable: true, enumerable: false, configurable: true\n Object.defineProperty(Object, \"assign\", {\n value: function assign(target, varArgs) { // .length of function is 2\n 'use strict';\n if (target == null) { // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var to = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n\n if (nextSource != null) { // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n },\n writable: true,\n configurable: true\n });\n}\n\n\n// https://tc39.github.io/ecma262/#sec-array.prototype.includes\nif (!Array.prototype.includes) {\n Object.defineProperty(Array.prototype, 'includes', {\n value: function(valueToFind, fromIndex) {\n\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n // 1. Let O be ? ToObject(this value).\n var o = Object(this);\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n var len = o.length >>> 0;\n\n // 3. If len is 0, return false.\n if (len === 0) {\n return false;\n }\n\n // 4. Let n be ? ToInteger(fromIndex).\n // (If fromIndex is undefined, this step produces the value 0.)\n var n = fromIndex | 0;\n\n // 5. If n >= 0, then\n // a. Let k be n.\n // 6. Else n < 0,\n // a. Let k be len + n.\n // b. If k < 0, let k be 0.\n var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n function sameValueZero(x, y) {\n return x === y || (typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y));\n }\n\n // 7. Repeat, while k < len\n while (k < len) {\n // a. Let elementK be the result of ? Get(O, ! ToString(k)).\n // b. If SameValueZero(valueToFind, elementK) is true, return true.\n if (sameValueZero(o[k], valueToFind)) {\n return true;\n }\n // c. Increase k by 1.\n k++;\n }\n\n // 8. Return false\n return false;\n }\n });\n}\n\nif (!Object.entries) {\n Object.entries = function( obj ){\n var ownProps = Object.keys( obj ),\n i = ownProps.length,\n resArray = new Array(i); // preallocate the Array\n while (i--)\n resArray[i] = [ownProps[i], obj[ownProps[i]]];\n return resArray;\n };\n}\n\n// https://github.com/KhaledElAnsari/Object.values\nObject.values = Object.values ? Object.values : function(obj) {\n var allowedTypes = [\"[object String]\", \"[object Object]\", \"[object Array]\", \"[object Function]\"];\n var objType = Object.prototype.toString.call(obj);\n\n if(obj === null || typeof obj === \"undefined\") {\n\tthrow new TypeError(\"Cannot convert undefined or null to object\");\n } else if(!~allowedTypes.indexOf(objType)) {\n\treturn [];\n } else {\n\t// if ES6 is supported\n\tif (Object.keys) {\n\t return Object.keys(obj).map(function (key) {\n\t\treturn obj[key];\n\t });\n\t}\n\n\tvar result = [];\n\tfor (var prop in obj) {\n\t if (obj.hasOwnProperty(prop)) {\n\t\tresult.push(obj[prop]);\n\t }\n\t}\n\n\treturn result;\n }\n};\n\nfunction getBBoxNoThrow(elem) {\n // firefox seems to have issues with some of my texts\n // just catch for now\n try {\n return elem.getBBox();\n } catch(xep) {\n return {x: 0, y: 0, width:0, height: 0};\n }\n}\n","// create or re-use objects in a map, delete the ones that were not reused\nfunction regenerate_objects(preserved, list, need, key, assign, create, destroy) {\n if(!create) create = function(k, o) { };\n if(!destroy) destroy = function(k) { };\n var keep = {};\n function wrap(o) {\n var k = key(o);\n if(!preserved[k])\n create(k, preserved[k] = {}, o);\n var o1 = preserved[k];\n assign(o1, o);\n keep[k] = true;\n return o1;\n }\n var wlist = list.map(wrap);\n if(need)\n need.forEach(function(k) {\n if(!preserved[k]) { // hasn't been created, needs to be\n create(k, preserved[k] = {}, null);\n assign(preserved[k], null);\n }\n if(!keep[k]) { // wasn't in list, should be\n wlist.push(preserved[k]);\n keep[k] = true;\n }\n });\n // delete any objects from last round that are no longer used\n for(var k in preserved)\n if(!keep[k]) {\n destroy(k, preserved[k]);\n delete preserved[k];\n }\n return wlist;\n}\n","/**\n * `dc_graph.graphviz_attrs defines a basic set of attributes which layout engines should\n * implement - although these are not required, they make it easier for clients and\n * modes (like expand_collapse) to work with multiple layout engines.\n *\n * these attributes are {@link http://www.graphviz.org/doc/info/attrs.html from graphviz}\n * @class graphviz_attrs\n * @memberof dc_graph\n * @return {Object}\n **/\ndc_graph.graphviz_attrs = function() {\n return {\n /**\n * Direction to draw ranks.\n * @method rankdir\n * @memberof dc_graph.graphviz_attrs\n * @instance\n * @param {String} [rankdir='TB'] 'TB', 'LR', 'BT', or 'RL'\n **/\n rankdir: property('TB'),\n /**\n * Spacing in between nodes in the same rank.\n * @method nodesep\n * @memberof dc_graph.graphviz_attrs\n * @instance\n * @param {String} [nodesep=40]\n **/\n nodesep: property(40),\n /**\n * Spacing in between ranks.\n * @method ranksep\n * @memberof dc_graph.graphviz_attrs\n * @instance\n * @param {String} [ranksep=40]\n **/\n ranksep: property(40)\n };\n};\n\n// graphlib-dot seems to wrap nodes in an extra {value}\n// actually this is quite a common problem with generic libs\nfunction nvalue(n) {\n return n.value.value ? n.value.value : n.value;\n}\n\n// apply standard accessors to a diagram in order to style it as graphviz would\n// this is a work in progress\ndc_graph.apply_graphviz_accessors = function(diagram) {\n diagram\n .nodeLabel(function(n) {\n var label = nvalue(n).label;\n if(label === undefined)\n label = n.key;\n return label && label.split(/\\n|\\\\n/);\n })\n .nodeRadius(function(n) {\n // should do width & height instead, #25\n return nvalue(n).radius || 25;\n })\n .nodeShape(function(n) { return nvalue(n).shape; })\n .nodeFill(function(n) { return nvalue(n).fillcolor || 'white'; })\n .nodeOpacity(function(n) {\n // not standard gv\n return nvalue(n).opacity || 1;\n })\n .nodeLabelFill(function(n) { return nvalue(n).fontcolor || 'black'; })\n .nodeTitle(function(n) {\n return (nvalue(n).htmltip || nvalue(n).jsontip) ? null :\n nvalue(n).tooltip !== undefined ?\n nvalue(n).tooltip :\n diagram.nodeLabel()(n);\n })\n .nodeStrokeWidth(function(n) {\n // it is debatable whether a point === a pixel but they are close\n // https://graphicdesign.stackexchange.com/questions/199/point-vs-pixel-what-is-the-difference\n var penwidth = nvalue(n).penwidth;\n return penwidth !== undefined ? +penwidth : 1;\n })\n .edgeLabel(function(e) { return e.value.label ? e.value.label.split(/\\n|\\\\n/) : ''; })\n .edgeStroke(function(e) { return e.value.color || 'black'; })\n .edgeOpacity(function(e) {\n // not standard gv\n return e.value.opacity || 1;\n })\n .edgeArrowSize(function(e) {\n return e.value.arrowsize || 1;\n })\n // need directedness to default these correctly, see #106\n .edgeArrowhead(function(e) {\n var head = e.value.arrowhead;\n return head !== undefined ? head : 'vee';\n })\n .edgeArrowtail(function(e) {\n var tail = e.value.arrowtail;\n return tail !== undefined ? tail : null;\n })\n .edgeStrokeDashArray(function(e) {\n switch(e.value.style) {\n case 'dotted':\n return [1,5];\n }\n return null;\n });\n var draw_clusters = diagram.child('draw-clusters');\n if(draw_clusters) {\n draw_clusters\n .clusterStroke(function(c) {\n return c.value.color || 'black';\n })\n .clusterFill(function(c) {\n return c.value.style === 'filled' ? c.value.fillcolor || c.value.color || c.value.bgcolor : null;\n })\n .clusterLabel(function(c) {\n return c.value.label;\n });\n }\n};\n\ndc_graph.snapshot_graphviz = function(diagram) {\n var xDomain = diagram.x().domain(), yDomain = diagram.y().domain();\n return {\n nodes: diagram.nodeGroup().all().map(function(n) {\n return diagram.getWholeNode(n.key);\n })\n .filter(function(x) { return x; })\n .map(function(n) {\n return {\n key: diagram.nodeKey.eval(n),\n label: diagram.nodeLabel.eval(n),\n fillcolor: diagram.nodeFillScale()(diagram.nodeFill.eval(n)),\n penwidth: diagram.nodeStrokeWidth.eval(n),\n // not supported as input, see dc.graph.js#25\n // width: n.cola.dcg_rx*2,\n // height: n.cola.dcg_ry*2,\n\n // not graphviz attributes\n // until we have w/h\n radius: diagram.nodeRadius.eval(n),\n // does not seem to exist in gv\n opacity: diagram.nodeOpacity.eval(n),\n // should be pos\n x: n.cola.x,\n y: n.cola.y\n };\n }),\n edges: diagram.edgeGroup().all().map(function(e) {\n return diagram.getWholeEdge(e.key);\n }).map(function(e) {\n return {\n key: diagram.edgeKey.eval(e),\n source: diagram.edgeSource.eval(e),\n target: diagram.edgeTarget.eval(e),\n color: diagram.edgeStroke.eval(e),\n arrowsize: diagram.edgeArrowSize.eval(e),\n opacity: diagram.edgeOpacity.eval(e),\n // should support dir, see dc.graph.js#106\n arrowhead: diagram.edgeArrowhead.eval(e),\n arrowtail: diagram.edgeArrowtail.eval(e)\n };\n }),\n bounds: {\n left: xDomain[0],\n top: yDomain[0],\n right: xDomain[1],\n bottom: yDomain[1]\n }\n };\n};\n","/**\n * `dc_graph.d3_force_layout` is an adaptor for d3-force layouts in dc.graph.js\n * @class d3_force_layout\n * @memberof dc_graph\n * @param {String} [id=uuid()] - Unique identifier\n * @return {dc_graph.d3_force_layout}\n **/\ndc_graph.d3_force_layout = function(id) {\n var _layoutId = id || uuid();\n var _simulation = null; // d3-force simulation\n var _dispatch = d3.dispatch('tick', 'start', 'end');\n // node and edge objects shared with d3-force, preserved from one iteration\n // to the next (as long as the object is still in the layout)\n var _nodes = {}, _edges = {};\n var _wnodes = [], _wedges = [];\n var _options = null;\n var _paths = null;\n\n function init(options) {\n _options = options;\n\n _simulation = d3.layout.force()\n .size([options.width, options.height]);\n if(options.linkDistance) {\n if(typeof options.linkDistance === 'number')\n _simulation.linkDistance(options.linkDistance);\n else if(options.linkDistance === 'auto')\n _simulation.linkDistance(function(e) {\n return e.dcg_edgeLength;\n });\n }\n\n _simulation.on('tick', /* _tick = */ function() {\n dispatchState('tick');\n }).on('start', function() {\n _dispatch.start();\n }).on('end', /* _done = */ function() {\n dispatchState('end');\n });\n }\n\n function dispatchState(event) {\n _dispatch[event](\n _wnodes,\n _wedges.map(function(e) {\n return {dcg_edgeKey: e.dcg_edgeKey};\n })\n );\n }\n\n function data(nodes, edges, constraints) {\n var nodeIDs = {};\n nodes.forEach(function(d, i) {\n nodeIDs[d.dcg_nodeKey] = i;\n });\n\n _wnodes = regenerate_objects(_nodes, nodes, null, function(v) {\n return v.dcg_nodeKey;\n }, function(v1, v) {\n v1.dcg_nodeKey = v.dcg_nodeKey;\n v1.width = v.width;\n v1.height = v.height;\n v1.id = v.dcg_nodeKey;\n if(v.dcg_nodeFixed) {\n v1.fixed = true;\n v1.x = v.dcg_nodeFixed.x;\n v1.y = v.dcg_nodeFixed.y;\n } else v1.fixed = false;\n });\n\n _wedges = regenerate_objects(_edges, edges, null, function(e) {\n return e.dcg_edgeKey;\n }, function(e1, e) {\n e1.dcg_edgeKey = e.dcg_edgeKey;\n // cola edges can work with indices or with object references\n // but it will replace indices with object references\n e1.source = _nodes[e.dcg_edgeSource];\n e1.source.id = nodeIDs[e1.source.dcg_nodeKey];\n e1.target = _nodes[e.dcg_edgeTarget];\n e1.target.id = nodeIDs[e1.target.dcg_nodeKey];\n e1.dcg_edgeLength = e.dcg_edgeLength;\n });\n\n _simulation.nodes(_wnodes);\n _simulation.links(_wedges);\n }\n\n function start() {\n installForces();\n runSimulation(_options.iterations);\n }\n\n function stop() {\n if(_simulation)\n _simulation.stop();\n }\n\n function savePositions() {\n var data = {};\n Object.keys(_nodes).forEach(function(key) {\n data[key] = {x: _nodes[key].x, y: _nodes[key].y};\n });\n return data;\n }\n\n function restorePositions(data) {\n Object.keys(data).forEach(function(key) {\n if(_nodes[key]) {\n _nodes[key].fixed = false;\n _nodes[key].x = data[key].x;\n _nodes[key].y = data[key].y;\n }\n });\n }\n\n function installForces() {\n if(_paths === null)\n _simulation.gravity(_options.gravityStrength)\n .charge(_options.initialCharge);\n else {\n if(_options.fixOffPathNodes) {\n var nodesOnPath = d3.set(); // nodes on path\n _paths.forEach(function(path) {\n path.forEach(function(nid) {\n nodesOnPath.add(nid);\n });\n });\n\n // fix nodes not on paths\n Object.keys(_nodes).forEach(function(key) {\n if(!nodesOnPath.has(key)) {\n _nodes[key].fixed = true;\n } else {\n _nodes[key].fixed = false;\n }\n });\n }\n\n // enlarge charge force to separate nodes on paths\n _simulation.charge(_options.chargeForce);\n }\n };\n\n function runSimulation(iterations) {\n if(!iterations) {\n dispatchState('end');\n return;\n }\n _simulation.start();\n for (var i = 0; i < 300; ++i) {\n _simulation.tick();\n if(_paths)\n applyPathAngleForces();\n }\n _simulation.stop();\n }\n\n function applyPathAngleForces() {\n function _dot(v1, v2) { return v1.x*v2.x + v1.y*v2.y; };\n function _len(v) { return Math.sqrt(v.x*v.x + v.y*v.y); };\n function _angle(v1, v2) {\n var a = _dot(v1, v2) / (_len(v1)*_len(v2));\n a = Math.min(a, 1);\n a = Math.max(a, -1);\n return Math.acos(a);\n };\n // perpendicular unit length vector\n function _pVec(v) {\n var xx = -v.y/v.x, yy = 1;\n var length = _len({x: xx, y: yy});\n return {x: xx/length, y: yy/length};\n };\n\n function updateNode(node, angle, pVec, alpha) {\n node.x += pVec.x*(Math.PI-angle)*alpha;\n node.y += pVec.y*(Math.PI-angle)*alpha;\n }\n\n _paths.forEach(function(path) {\n if(path.length < 3) return; // at least 3 nodes (and 2 edges): A->B->C\n for(var i = 1; i < path.length-1; ++i) {\n var current = _nodes[path[i]];\n var prev = _nodes[path[i-1]];\n var next = _nodes[path[i+1]];\n\n // calculate the angle\n var vPrev = {x: prev.x - current.x, y: prev.y - current.y};\n var vNext = {x: next.x - current.x, y: next.y - current.y};\n\n var angle = _angle(vPrev, vNext); // angle in [0, PI]\n\n var pvecPrev = _pVec(vPrev);\n var pvecNext = _pVec(vNext);\n\n // make sure the perpendicular vector is in the\n // direction that makes the angle more towards 180 degree\n // 1. calculate the middle point of node 'prev' and 'next'\n var mid = {x: (prev.x+next.x)/2.0, y: (prev.y+next.y)/2.0};\n // 2. calculate the vectors: 'prev' pointing to 'mid', 'next' pointing to 'mid'\n var prev_mid = {x: mid.x-prev.x, y: mid.y-prev.y};\n var next_mid = {x: mid.x-next.x, y: mid.y-next.y};\n // 3. the 'correct' vector: the angle between pvec and prev_mid(next_mid) should\n // be an obtuse angle\n pvecPrev = _angle(prev_mid, pvecPrev) >= Math.PI/2.0 ? pvecPrev : {x: -pvecPrev.x, y: -pvecPrev.y};\n pvecNext = _angle(next_mid, pvecNext) >= Math.PI/2.0 ? pvecNext : {x: -pvecNext.x, y: -pvecNext.y};\n\n // modify positions of prev and next\n updateNode(prev, angle, pvecPrev, _options.angleForce);\n updateNode(next, angle, pvecNext, _options.angleForce);\n }\n\n });\n }\n\n var graphviz = dc_graph.graphviz_attrs(), graphviz_keys = Object.keys(graphviz);\n\n var engine = Object.assign(graphviz, {\n layoutAlgorithm: function() {\n return 'd3-force';\n },\n layoutId: function() {\n return _layoutId;\n },\n supportsWebworker: function() {\n return true;\n },\n supportsMoving: function() {\n return true;\n },\n parent: property(null),\n on: function(event, f) {\n if(arguments.length === 1)\n return _dispatch.on(event);\n _dispatch.on(event, f);\n return this;\n },\n init: function(options) {\n this.optionNames().forEach(function(option) {\n options[option] = options[option] || this[option]();\n }.bind(this));\n init(options);\n return this;\n },\n data: function(graph, nodes, edges, constraints) {\n data(nodes, edges, constraints);\n },\n start: function() {\n start();\n },\n stop: function() {\n stop();\n },\n paths: function(paths) {\n _paths = paths;\n },\n savePositions: savePositions,\n restorePositions: restorePositions,\n optionNames: function() {\n return ['iterations', 'angleForce', 'chargeForce', 'gravityStrength',\n 'initialCharge', 'linkDistance', 'fixOffPathNodes']\n .concat(graphviz_keys);\n },\n iterations: property(300),\n angleForce: property(0.02),\n chargeForce: property(-500),\n gravityStrength: property(1.0),\n initialCharge: property(-400),\n linkDistance: property(20),\n fixOffPathNodes: property(false),\n populateLayoutNode: function() {},\n populateLayoutEdge: function() {}\n });\n return engine;\n};\n\ndc_graph.d3_force_layout.scripts = ['d3.js'];\n","var _layouts;\n\nfunction postResponse(event, layoutId) {\n return function() {\n var message = {\n response: event,\n layoutId: layoutId\n };\n message.args = Array.prototype.slice.call(arguments);\n postMessage(message);\n };\n}\n\nonmessage = function(e) {\n var args = e.data.args;\n switch(e.data.command) {\n case 'init':\n // find a function under dc_graph that has `scripts`\n var layout_name;\n for(var name in dc_graph) {\n if(typeof dc_graph[name] === 'function' && dc_graph[name].scripts)\n layout_name = name;\n }\n if(!_layouts) {\n _layouts = {};\n importScripts.apply(null, dc_graph[layout_name].scripts);\n if(dc_graph[layout_name].optional_scripts) {\n try {\n importScripts.apply(null, dc_graph[layout_name].optional_scripts);\n }\n catch(xep) {\n console.log(xep);\n }\n }\n }\n\n _layouts[args.layoutId] = dc_graph[layout_name]()\n .on('tick', postResponse('tick', args.layoutId))\n .on('start', postResponse('start', args.layoutId))\n .on('end', postResponse('end', args.layoutId))\n .init(args.options);\n break;\n case 'data':\n if(_layouts)\n _layouts[args.layoutId].data(args.graph, args.nodes, args.edges, args.clusters, args.constraints);\n break;\n case 'start':\n // if(args.initialOnly) {\n // if(args.showLayoutSteps)\n // _tick();\n // _done();\n // }\n // else\n _layouts[args.layoutId].start();\n break;\n case 'stop':\n if(_layouts)\n _layouts[args.layoutId].stop();\n break;\n }\n};\n\n"]}