diff --git a/dist/unipept-visualizations.js.map b/dist/unipept-visualizations.js.map index af32b55..090f0e3 100644 --- a/dist/unipept-visualizations.js.map +++ b/dist/unipept-visualizations.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap b0b049baf223248a841f","webpack:///./src/index.js","webpack:///./src/treeview/treeview.js","webpack:///./src/shared/univis.js","webpack:///./src/shared/maxcountheap.js","webpack:///./src/treeview/treeviewNode.js","webpack:///./src/shared/node.js","webpack:///./src/treemap/treemap.js","webpack:///./src/treemap/treemapNode.js","webpack:///./src/sunburst/sunburst.js","webpack:///./src/sunburst/sunburstNode.js"],"names":["TreeView","element","data","options","that","MARGIN","top","right","bottom","left","DURATION","COLOR_SCALE","d3","scale","category10","DEFAULTS","height","width","nodeDistance","levelsToExpand","minNodeSize","maxNodeSize","countAccessor","d","count","rerootCallback","undefined","colors","name","nodeFillColor","nodeStrokeColor","linkStrokeColor","enableInnerArcs","enableExpandOnClick","enableRightClick","enableLabels","getLabel","enableTooltips","getTooltip","getTooltipTitle","getTooltipText","enableAutoExpand","settings","visibleRoot","tooltipTimer","nodeId","root","tree","tooltip","diagonal","widthScale","innerArc","zoomListener","svg","init","initTooltip","initInnerArcs","layout","nodeSize","separation","a","b","distance","parent","projection","y","x","linear","range","behavior","zoom","scaleExtent","on","attr","event","translate","select","append","call","draw","createNode","id","style","arcScale","Math","PI","arc","outerRadius","startAngle","endAngle","self_count","domain","x0","y0","setSelected","children","forEach","i","color","functor","setRecursiveProperty","collapseAll","initialExpand","expandAll","update","centerNode","expand","allowedCount","isFinite","pq","size","toExpand","remove","add","c","source","nodes","reverse","links","depth","node","selectAll","nodeEnter","enter","click","tooltipIn","tooltipOut","rightClick","isLeaf","text","nodeUpdate","transition","duration","_children","nodeExit","exit","link","target","insert","o","selected","defaultPrevented","shiftKey","collapse","reroot","preventDefault","html","pageY","pageX","setTimeout","clearTimeout","reset","setFullScreen","isFullScreen","w","h","$","window","getRoot","fn","treeview","get","Univis","s","split","reduce","charCodeAt","textColor","brightness","rgb","err","r","g","comp","heapify","floor","length","sink","bubbleUp","index","value","parentIndex","targetIndex","MaxCountHeap","iterable","_data","Array","from","item","push","output","pop","TreeviewNode","setCount","sum","new","Node","property","_height","max","getHeight","_depth","getDepth","construct","map","n","TreeMap","className","levels","getLevel","getBreadcrumbTooltip","colorRoot","colorLeaf","colorBreadcrumbs","labelHeight","current","treemapLayout","breadcrumbs","treemap","colorScale","initCSS","elementClass","addClass","prop","appendTo","empty","padding","interpolate","interpolateLab","setBreadcrumbs","crumbs","temp","triggerCallback","getReadableColorFor","tooltipMove","order","position","dx","dy","resize","TreemapNode","Sunburst","colorCounter","addEmptyChildren","redraw","breadcrumbWidth","radius","currentMaxLevel","vis","partition","sort","min","innerRadius","path","colour","getComputedTextLength","my","maxY","xd","yd","yr","t","shift","breadArc","bc","getTitleText","round","enableBreadcrumbs","attrTween","arcTween","e","isParentOf","angle","each","useFixedColors","fixedColors","abs","stringHash","rank","colours","hsl","singleChild","l","getColor","COLORS","FIXED_COLORS","p","ml","some","sunburst","SunburstNode"],"mappings":"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","file":"unipept-visualizations.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b0b049baf223248a841f","import TreeView from \"./treeview/treeview\";\nimport TreeMap from \"./treemap/treemap\";\nimport Sunburst from \"./sunburst/sunburst\";\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","/**\n * Zoomable treeview, inspiration from\n * - http://bl.ocks.org/mbostock/4339083\n * - https://gist.github.com/robschmuecker/7880033\n * - http://www.brightpointinc.com/interactive/budget/index.html?source=d3js\n */\nimport Univis from \"../shared/univis\";\nimport MaxCountHeap from \"../shared/maxcountheap\";\nimport TreeviewNode from \"./treeviewNode\";\n\n\nexport default function TreeView(element, data, options = {}) {\n let that = {};\n\n const MARGIN = {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5,\n },\n DURATION = 750,\n COLOR_SCALE = d3.scale.category10(),\n DEFAULTS = {\n height: 300,\n width: 600,\n nodeDistance: 180,\n levelsToExpand: 2,\n minNodeSize: 2,\n maxNodeSize: 105,\n\n countAccessor: d => d.data.count,\n rerootCallback: undefined,\n\n colors: d => COLOR_SCALE(d.name),\n nodeFillColor: nodeFillColor,\n nodeStrokeColor: nodeStrokeColor,\n linkStrokeColor: linkStrokeColor,\n\n enableInnerArcs: true,\n enableExpandOnClick: true,\n enableRightClick: true,\n\n enableLabels: true,\n getLabel: d => d.name,\n\n enableTooltips: true,\n getTooltip: getTooltip,\n getTooltipTitle: Univis.getTooltipTitle,\n getTooltipText: Univis.getTooltipText,\n enableAutoExpand: false,\n };\n\n let settings;\n\n let visibleRoot,\n tooltipTimer;\n\n let nodeId = 0,\n root;\n\n let tree,\n tooltip,\n diagonal,\n widthScale,\n innerArc,\n zoomListener,\n svg;\n\n function init() {\n settings = Object.assign({}, DEFAULTS, options);\n TreeviewNode.settings = settings;\n\n settings.width = settings.width - MARGIN.right - MARGIN.left;\n settings.height = settings.height - MARGIN.top - MARGIN.bottom;\n\n if (settings.enableTooltips) {\n initTooltip();\n }\n\n if (settings.enableInnerArcs) {\n initInnerArcs();\n }\n\n tree = d3.layout.tree()\n .nodeSize([2, 10])\n .separation((a, b) => {\n let width = (nodeSize(a) + nodeSize(b)),\n distance = width / 2 + 4;\n return (a.parent === b.parent) ? distance : distance + 4;\n });\n\n diagonal = d3.svg.diagonal().projection(d => [d.y, d.x]);\n\n widthScale = d3.scale.linear().range([settings.minNodeSize, settings.maxNodeSize]);\n\n // define the zoomListener which calls the zoom function on the \"zoom\" event constrained within the scaleExtents\n zoomListener = d3.behavior.zoom()\n .scaleExtent([0.1, 3])\n .on(\"zoom\", () => {\n svg.attr(\"transform\", `translate(${d3.event.translate})scale(${d3.event.scale})`);\n });\n\n svg = d3.select(element).append(\"svg\")\n .attr(\"version\", \"1.1\")\n .attr(\"xmlns\", \"http://www.w3.org/2000/svg\")\n .attr(\"viewBox\", `0 0 ${settings.width + MARGIN.right + MARGIN.left} ${settings.height + MARGIN.top + MARGIN.bottom}`)\n .attr(\"width\", settings.width + MARGIN.right + MARGIN.left)\n .attr(\"height\", settings.height + MARGIN.top + MARGIN.bottom)\n .call(zoomListener)\n .append(\"g\")\n .attr(\"transform\", `translate(${MARGIN.left},${MARGIN.top})`)\n .append(\"g\");\n\n draw(TreeviewNode.createNode(data));\n }\n\n function initTooltip() {\n tooltip = d3.select(\"body\")\n .append(\"div\")\n .attr(\"id\", element.id + \"-tooltip\")\n .attr(\"class\", \"tip\")\n .style(\"position\", \"absolute\")\n .style(\"z-index\", \"10\")\n .style(\"visibility\", \"hidden\")\n .style(\"background-color\", \"white\")\n .style(\"padding\", \"2px\")\n .style(\"border\", \"1px solid #dddddd\")\n .style(\"border-radius\", \"3px;\");\n }\n\n function initInnerArcs() {\n let arcScale = d3.scale.linear().range([0, 2 * Math.PI]);\n\n innerArc = d3.svg.arc()\n .outerRadius(nodeSize)\n .startAngle(0)\n .endAngle(d => arcScale(d.data.self_count / d.data.count) || 0);\n }\n\n function draw(data) {\n widthScale.domain([0, data.data.count]);\n\n root = data;\n root.x0 = settings.height / 2;\n root.y0 = 0;\n\n // set everything visible\n root.setSelected(true);\n\n root.children.forEach((d, i) => {\n d.color = d3.functor(settings.colors).call(this, d, i);\n d.setRecursiveProperty(\"color\", d.color);\n });\n\n if (settings.enableExpandOnClick) {\n root.collapseAll();\n initialExpand(root);\n } else {\n root.expandAll();\n }\n\n update(root);\n centerNode(root);\n }\n\n function initialExpand(root) {\n if(!settings.enableAutoExpand) {\n root.expand();\n return;\n }\n\n root.expand(1);\n let allowedCount = root.data.count * (isFinite(settings.enableAutoExpand) ? settings.enableAutoExpand : 0.8);\n const pq = new MaxCountHeap(root.children || []);\n while (allowedCount > 0 && pq.size > 0) {\n const toExpand = pq.remove();\n allowedCount -= toExpand.data.count;\n toExpand.expand(1);\n (toExpand.children || []).forEach(c => pq.add(c));\n }\n }\n\n function update(source) {\n // Compute the new tree layout.\n let nodes = tree.nodes(root).reverse(),\n links = tree.links(nodes);\n\n // Normalize for fixed-depth.\n nodes.forEach(d => {\n d.y = d.depth * settings.nodeDistance;\n });\n\n // Update the nodes…\n let node = svg.selectAll(\"g.node\")\n .data(nodes, d => d.id || (d.id = ++nodeId));\n\n // Enter any new nodes at the parent's previous position.\n let nodeEnter = node.enter().append(\"g\")\n .attr(\"class\", \"node\")\n .style(\"cursor\", \"pointer\")\n .attr(\"transform\", d => `translate(${source.y || 0},${source.x0 || 0})`)\n .on(\"click\", click)\n .on(\"mouseover\", tooltipIn)\n .on(\"mouseout\", tooltipOut)\n .on(\"contextmenu\", rightClick);\n\n nodeEnter.append(\"circle\")\n .attr(\"r\", 1e-6)\n .style(\"stroke-width\", \"1.5px\")\n .style(\"stroke\", settings.nodeStrokeColor)\n .style(\"fill\", settings.nodeFillColor);\n\n if (settings.enableInnerArcs) {\n nodeEnter.append(\"path\")\n .attr(\"d\", innerArc)\n .style(\"fill\", settings.nodeStrokeColor)\n .style(\"fill-opacity\", 0);\n }\n\n if (settings.enableLabels) {\n nodeEnter.append(\"text\")\n .attr(\"x\", d => d.isLeaf() ? 10 : -10)\n .attr(\"dy\", \".35em\")\n .attr(\"text-anchor\", d => d.isLeaf() ? \"start\" : \"end\")\n .text(settings.getLabel)\n .style(\"font\", \"10px sans-serif\")\n .style(\"fill-opacity\", 1e-6);\n }\n\n // Transition nodes to their new position.\n let nodeUpdate = node.transition()\n .duration(DURATION)\n .attr(\"transform\", d => `translate(${d.y},${d.x})`);\n\n nodeUpdate.select(\"circle\")\n .attr(\"r\", nodeSize)\n .style(\"fill-opacity\", d => d._children ? 1 : 0)\n .style(\"stroke\", settings.nodeStrokeColor)\n .style(\"fill\", settings.nodeFillColor);\n\n if (settings.enableLabels) {\n nodeUpdate.select(\"text\")\n .style(\"fill-opacity\", 1);\n }\n\n if (settings.enableInnerArcs) {\n nodeUpdate.select(\"path\")\n .duration(DURATION)\n .attr(\"d\", innerArc)\n .style(\"fill-opacity\", 0.8);\n }\n\n // Transition exiting nodes to the parent's new position.\n let nodeExit = node.exit().transition()\n .duration(DURATION)\n .attr(\"transform\", d => `translate(${source.y},${source.x})`)\n .remove();\n\n nodeExit.select(\"circle\")\n .attr(\"r\", 1e-6);\n\n nodeExit.select(\"path\")\n .style(\"fill-opacity\", 1e-6);\n\n nodeExit.select(\"text\")\n .style(\"fill-opacity\", 1e-6);\n\n // Update the links…\n let link = svg.selectAll(\"path.link\")\n .data(links, d => d.target.id);\n\n // Enter any new links at the parent's previous position.\n link.enter().insert(\"path\", \"g\")\n .attr(\"class\", \"link\")\n .style(\"fill\", \"none\")\n .style(\"stroke-opacity\", \"0.5\")\n .style(\"stroke-linecap\", \"round\")\n .style(\"stroke\", settings.linkStrokeColor)\n .style(\"stroke-width\", 1e-6)\n .attr(\"d\", d => {\n let o = {\n x: (source.x0 || 0),\n y: (source.y0 || 0),\n };\n return diagonal({\n source: o,\n target: o,\n });\n });\n\n // Transition links to their new position.\n link.transition()\n .duration(DURATION)\n .attr(\"d\", diagonal)\n .style(\"stroke\", settings.linkStrokeColor)\n .style(\"stroke-width\", d => {\n if (d.source.selected) {\n return widthScale(d.target.data.count) + \"px\";\n } else {\n return \"4px\";\n }\n });\n\n // Transition exiting nodes to the parent's new position.\n link.exit().transition()\n .duration(DURATION)\n .style(\"stroke-width\", 1e-6)\n .attr(\"d\", d => {\n let o = {\n x: source.x,\n y: source.y,\n };\n return diagonal({\n source: o,\n target: o,\n });\n })\n .remove();\n\n // Stash the old positions for transition.\n nodes.forEach(d => {\n [d.x0, d.y0] = [d.x, d.y];\n });\n }\n\n function nodeSize(d) {\n if (d.selected) {\n return widthScale(d.data.count) / 2;\n } else {\n return 2;\n }\n }\n\n // Toggle children on click.\n function click(d) {\n if (!settings.enableExpandOnClick) {\n return;\n }\n\n // check if click is triggered by panning on a node\n if (d3.event.defaultPrevented) {\n return;\n }\n\n if (d3.event.shiftKey) {\n d.expandAll();\n } else if (d.children) {\n d.collapse();\n } else {\n d.expand();\n }\n update(d);\n centerNode(d);\n }\n\n function rightClick(d) {\n if (settings.enableRightClick) {\n reroot(d);\n }\n }\n\n // Sets the width of the right clicked node to 100%\n function reroot(d) {\n if (d === visibleRoot && d !== root) {\n reroot(root);\n return;\n }\n visibleRoot = d;\n\n // set Selection properties\n root.setSelected(false);\n d.setSelected(true);\n\n // scale the lines\n widthScale.domain([0, d.data.count]);\n\n d.expand();\n\n // redraw\n if (d3.event !== null) {\n d3.event.preventDefault();\n }\n update(d);\n centerNode(d);\n\n if (settings.rerootCallback) {\n settings.rerootCallback.call(null, d);\n }\n }\n\n // Center a node\n function centerNode(source) {\n let scale = zoomListener.scale(),\n [x, y] = [-source.y0, -source.x0];\n x = x * scale + settings.width / 4;\n y = y * scale + settings.height / 2;\n svg.transition()\n .duration(DURATION)\n .attr(\"transform\", `translate(${x},${y})scale(${scale})`);\n zoomListener.scale(scale);\n zoomListener.translate([x, y]);\n }\n\n // tooltip functions\n function tooltipIn(d, i) {\n if (!settings.enableTooltips) {\n return;\n }\n tooltip.html(settings.getTooltip(d))\n .style(\"top\", (d3.event.pageY - 5) + \"px\")\n .style(\"left\", (d3.event.pageX + 15) + \"px\");\n\n tooltipTimer = setTimeout(() => {\n tooltip.style(\"visibility\", \"visible\");\n }, 1000);\n }\n\n function tooltipOut(d, i) {\n if (!settings.enableTooltips) {\n return;\n }\n clearTimeout(tooltipTimer);\n tooltip.style(\"visibility\", \"hidden\");\n }\n\n /** ************ Default methods ***************/\n // set fill color\n function nodeFillColor(d) {\n if (d.selected) {\n return d._children ? d.color || \"#aaa\" : \"#fff\";\n } else {\n return \"#aaa\";\n }\n }\n\n // set node stroke color\n function nodeStrokeColor(d) {\n if (d.selected) {\n return d.color || \"#aaa\";\n } else {\n return \"#aaa\";\n }\n }\n\n // set link stroke color\n function linkStrokeColor(d) {\n if (d.source.selected) {\n return d.target.color;\n } else {\n return \"#aaa\";\n }\n }\n\n function getTooltip(d) {\n return `

${settings.getTooltipTitle(d)}

${settings.getTooltipText(d)}

`;\n }\n\n /** ************* Public methods ***************/\n that.reset = function reset() {\n zoomListener.scale(1);\n reroot(root);\n };\n\n /**\n * Sets the visualisation in full screen mode\n *\n * @param isFullScreen indicates if we're in full screen mode\n */\n that.setFullScreen = function setFullScreen(isFullScreen) {\n // the delay is because the event fires before we're in fullscreen\n // so the height en width functions don't give a correct result\n // without the delay\n setTimeout(() => {\n let [w, h] = [settings.width, settings.height];\n if (isFullScreen) {\n w = $(window).width();\n h = $(window).height() - 44;\n }\n $(element).children(\"svg\")\n .attr(\"width\", w)\n .attr(\"height\", h);\n }, 1000);\n };\n\n /**\n * Get the root of the visual tree\n *\n * @return {TreeviewNode} The root node of the visualisation\n */\n that.getRoot = function getRoot() {\n return root;\n };\n\n /**\n * Apply changes made to the tree or its data\n */\n that.update = update;\n\n /**\n * Center a node of the tree\n */\n that.centerNode = centerNode;\n\n // initialize the object\n init();\n\n // return the object\n return that;\n}\n\n$.fn.treeview = function (data, options) {\n return new TreeView(this.get(0), data, options);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/treeview/treeview.js","export default class Univis {\n\n /**\n * Hash function for strings from\n * http://stackoverflow.com/a/15710692/865696\n */\n static stringHash(s) {\n return s.split(\"\").reduce(function (a, b) {\n let c = ((a << 5) - a) + b.charCodeAt(0);\n return c & c;\n }, 0);\n }\n\n /*\n * Returns the readable text color based on the brightness of a given backgroud color\n */\n static getReadableColorFor(color) {\n let textColor = \"#000\";\n try {\n textColor = Univis.brightness(d3.rgb(color)) < 125 ? \"#eee\" : \"#000\";\n } catch (err) { /* go on */ }\n return textColor;\n }\n\n /*\n * Returns the brightness of an rgb-color\n * from: http:// www.w3.org/WAI/ER/WD-AERT/#color-contrast\n */\n static brightness(rgb) {\n return rgb.r * 0.299 + rgb.g * 0.587 + rgb.b * 0.114;\n }\n\n static getTooltipTitle(d) {\n return d.name;\n }\n\n static getTooltipText(d) {\n return `${d.data.count} hits`;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/univis.js","/*\n * A priority qeueue that works with Nodes.\n * Based on https://github.com/gkz/es-collections\n */\n\n/* eslint-disable require-jsdoc, no-param-reassign */\n\nconst comp = (a, b) => b.data.count - a.data.count;\n\nfunction heapify(data) {\n for (let i = Math.floor((data.length - 2) / 2); i >= 0; i--) {\n sink(data, comp, i);\n }\n return data;\n}\n\nfunction bubbleUp(data, index) {\n const value = data[index];\n\n while (index > 0) {\n const parentIndex = Math.floor((index - 1) / 2);\n const parent = data[parentIndex];\n if (comp(value, parent) < 0) {\n data[index] = parent;\n } else {\n break;\n }\n index = parentIndex;\n }\n data[index] = value;\n return index;\n}\n\nfunction sink(data, index) {\n const value = data[index];\n const size = data.length;\n\n while (2 * index + 1 < size) {\n let targetIndex = 2 * index + 1;\n if (targetIndex < size - 1\n && comp(data[targetIndex + 1], data[targetIndex]) < 0) {\n targetIndex++;\n }\n if (comp(value, data[targetIndex]) <= 0) {\n break;\n }\n data[index] = data[targetIndex];\n index = targetIndex;\n }\n data[index] = value;\n return index;\n}\n\n\nexport default class MaxCountHeap {\n constructor(iterable = []) {\n this._data = heapify(Array.from(iterable));\n }\n add(item) {\n this._data.push(item);\n bubbleUp(this._data, this.size - 1);\n return this;\n }\n peek() {\n return this._data[0];\n }\n remove() {\n const output = this._data[0];\n if (this.size > 1) {\n this._data[0] = this._data.pop();\n sink(this._data, 0);\n } else {\n this._data.pop();\n }\n return output;\n }\n clear() {\n this._data = [];\n }\n get size() {\n return this._data.length;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/maxcountheap.js","import Node from \"../shared/node\";\n\nexport default class TreeviewNode extends Node {\n constructor(node = {}) {\n super(node);\n this.settings = TreeviewNode.settings;\n this.setCount();\n }\n\n static new(node = {}) {\n return new TreeviewNode(node);\n }\n\n static createNode(node) {\n return Node.createNode(node, TreeviewNode.new);\n }\n\n setCount() {\n if (this.settings.countAccessor(this)) {\n this.data.count = this.settings.countAccessor(this);\n } else if (this.children) {\n this.data.count = this.children.reduce((sum, c) => sum + c.data.count, 0);\n } else {\n this.data.count = 0;\n }\n }\n\n setSelected(value) {\n this.setRecursiveProperty(\"selected\", value);\n }\n\n // collapse everything\n collapseAll() {\n if (this.children && this.children.length === 0) {\n this.children = null;\n }\n if (this.children) {\n this._children = this.children;\n this._children.forEach(c => {\n c.collapseAll();\n });\n this.children = null;\n }\n }\n\n // Collapses a node\n collapse() {\n if (this.children) {\n this._children = this.children;\n this.children = null;\n }\n }\n\n expandAll() {\n this.expand(100);\n }\n\n // Expands a node and its children\n expand(i = this.settings.levelsToExpand) {\n if (i > 0) {\n if (this._children) {\n this.children = this._children;\n this._children = null;\n }\n if (this.children) {\n this.children.forEach(c => {\n c.expand(i - 1);\n });\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/treeview/treeviewNode.js","export default class Node {\n constructor(node = {}) {\n this.data = {};\n Object.assign(this, node);\n }\n\n static new(node = {}) {\n return new Node(node);\n }\n\n static createNode(node, construct = Node.new) {\n if (node.children) {\n node.children = node.children.map(\n n => Node.createNode(n, construct)\n );\n }\n return construct.call(null, node);\n }\n\n // sets a property for a node and all its children\n setRecursiveProperty(property, value) {\n this[property] = value;\n if (this.children) {\n this.children.forEach(c => {\n c.setRecursiveProperty(property, value);\n });\n } else if (this._children) {\n this._children.forEach(c => {\n c.setRecursiveProperty(property, value);\n });\n }\n }\n\n // Returns true if a node is a leaf\n isLeaf() {\n return (!this.children && !this._children) ||\n (this.children && this.children.length === 0) ||\n (this._children && this._children.length === 0);\n }\n\n getHeight() {\n if (this._height === undefined) {\n if (this.isLeaf()) {\n this._height = 0;\n } else {\n this._height = d3.max(this.children, c => c.getHeight()) + 1;\n }\n }\n return this._height;\n }\n\n getDepth() {\n if (this._depth === undefined) {\n if (this.parent === undefined) {\n this._depth = 0;\n } else {\n this._depth = this.parent.getDepth() + 1;\n }\n }\n return this._depth;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/shared/node.js","/**\n * Interactive treemap\n */\nimport Univis from \"../shared/univis\";\nimport TreemapNode from \"./treemapNode\";\n\nexport default function TreeMap(element, data, options = {}) {\n let that = {};\n\n const MARGIN = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n },\n DEFAULTS = {\n height: 300,\n width: 600,\n\n className: \"unipept-treemap\",\n levels: undefined,\n getLevel: d => d.getDepth(),\n\n countAccessor: d => d.data.self_count,\n rerootCallback: undefined,\n\n getBreadcrumbTooltip: d => d.name,\n colorRoot: \"#104B7D\",\n colorLeaf: \"#fdffcc\",\n colorBreadcrumbs: \"#FF8F00\",\n\n labelHeight: 10,\n getLabel: d => d.name,\n\n enableTooltips: true,\n getTooltip: getTooltip,\n getTooltipTitle: Univis.getTooltipTitle,\n getTooltipText: Univis.getTooltipText,\n };\n\n let settings;\n\n let root,\n nodeId = 0,\n current,\n treemapLayout,\n breadcrumbs,\n treemap,\n tooltip,\n colorScale;\n\n /**\n * Initializes Treemap\n */\n function init() {\n settings = Object.assign({}, DEFAULTS, options);\n\n root = TreemapNode.createNode(data);\n\n settings.width = settings.width - MARGIN.right - MARGIN.left;\n settings.height = settings.height - MARGIN.top - MARGIN.bottom;\n\n settings.levels = settings.levels || root.getHeight();\n\n if (settings.enableTooltips) {\n initTooltip();\n }\n\n initCSS();\n\n // setup the visualisation\n draw(root);\n reroot(root, false);\n }\n\n function initTooltip() {\n tooltip = d3.select(\"body\")\n .append(\"div\")\n .attr(\"id\", element.id + \"-tooltip\")\n .attr(\"class\", \"tip\")\n .style(\"position\", \"absolute\")\n .style(\"z-index\", \"10\")\n .style(\"visibility\", \"hidden\")\n .style(\"background-color\", \"white\")\n .style(\"padding\", \"2px\")\n .style(\"border\", \"1px solid #dddddd\")\n .style(\"border-radius\", \"3px;\");\n }\n\n function initCSS() {\n let elementClass = settings.className;\n $(element).addClass(elementClass);\n $(\"