{"version":3,"sources":["https://lively-kernel.org/lively4/BP2019RH1/src/external/d3.tip.v0.6.3.js"],"names":["d3","tip","direction","d3_tip_direction","offset","d3_tip_offset","html","d3_tip_html","node","initNode","svg","point","target","vis","getSVGNode","createSVGPoint","document","body","appendChild","show","args","Array","prototype","slice","call","arguments","length","SVGElement","pop","content","apply","poffset","dir","nodel","select","i","coords","style","opacity","classed","directions","direction_callbacks","get","top","left","hide","attr","n","v","selection","functor","map","direction_n","s","direction_s","e","direction_e","w","direction_w","nw","direction_nw","ne","direction_ne","sw","direction_sw","se","direction_se","keys","bbox","getScreenBBox","y","offsetHeight","x","offsetWidth","createElement","position","pointerEvents","boxSizing","el","tagName","toLowerCase","ownerSVGElement","targetel","event","matrix","getScreenCTM","tbbox","getBBox","width","height","scrollTop","documentElement","scrollLeft","matrixTransform"],"mappings":"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","file":"d3.tip.v0.6.3.js","sourcesContent":["// d3.tip\n// Copyright (c) 2013 Justin Palmer\n//\n// Tooltips for d3.js SVG visualizations\n\n// Public - contructs a new tooltip\n//\n// Returns a tip\n\nimport d3 from \"https://lively-kernel.org/lively4/lively4-bp2019/src/external/d3.v5.js\"\n\nd3.tip = function() {\n  var direction = d3_tip_direction,\n      offset    = d3_tip_offset,\n      html      = d3_tip_html,\n      node      = initNode(),\n      svg       = null,\n      point     = null,\n      target    = null\n\n  function tip(vis) {\n    svg = getSVGNode(vis)\n    point = svg.createSVGPoint()\n    document.body.appendChild(node)\n  }\n\n  // Public - show the tooltip on the screen\n  //\n  // Returns a tip\n  tip.show = function() {\n    var args = Array.prototype.slice.call(arguments)\n    if(args[args.length - 1] instanceof SVGElement) target = args.pop()\n\n    var content = html.apply(this, args),\n        poffset = offset.apply(this, args),\n        dir     = direction.apply(this, args),\n        nodel   = d3.select(node), i = 0,\n        coords\n\n    nodel.html(content)\n      .style({ opacity: 1, 'pointer-events': 'all' })\n\n    while(i--) nodel.classed(directions[i], false)\n    coords = direction_callbacks.get(dir).apply(this)\n    nodel.classed(dir, true).style({\n      top: (coords.top +  poffset[0]) + 'px',\n      left: (coords.left + poffset[1]) + 'px'\n    })\n\n    return tip\n  }\n\n  // Public - hide the tooltip\n  //\n  // Returns a tip\n  tip.hide = function() {\n    nodel = d3.select(node)\n    nodel.style({ opacity: 0, 'pointer-events': 'none' })\n    return tip\n  }\n\n  // Public: Proxy attr calls to the d3 tip container.  Sets or gets attribute value.\n  //\n  // n - name of the attribute\n  // v - value of the attribute\n  //\n  // Returns tip or attribute value\n  tip.attr = function(n, v) {\n    if (arguments.length < 2 && typeof n === 'string') {\n      return d3.select(node).attr(n)\n    } else {\n      var args =  Array.prototype.slice.call(arguments)\n      d3.selection.prototype.attr.apply(d3.select(node), args)\n    }\n\n    return tip\n  }\n\n  // Public: Proxy style calls to the d3 tip container.  Sets or gets a style value.\n  //\n  // n - name of the property\n  // v - value of the property\n  //\n  // Returns tip or style property value\n  tip.style = function(n, v) {\n    if (arguments.length < 2 && typeof n === 'string') {\n      return d3.select(node).style(n)\n    } else {\n      var args =  Array.prototype.slice.call(arguments)\n      d3.selection.prototype.style.apply(d3.select(node), args)\n    }\n\n    return tip\n  }\n\n  // Public: Set or get the direction of the tooltip\n  //\n  // v - One of n(north), s(south), e(east), or w(west), nw(northwest),\n  //     sw(southwest), ne(northeast) or se(southeast)\n  //\n  // Returns tip or direction\n  tip.direction = function(v) {\n    if (!arguments.length) return direction\n    direction = v == null ? v : d3.functor(v)\n\n    return tip\n  }\n\n  // Public: Sets or gets the offset of the tip\n  //\n  // v - Array of [x, y] offset\n  //\n  // Returns offset or\n  tip.offset = function(v) {\n    if (!arguments.length) return offset\n    offset = v == null ? v : d3.functor(v)\n\n    return tip\n  }\n\n  // Public: sets or gets the html value of the tooltip\n  //\n  // v - String value of the tip\n  //\n  // Returns html value or tip\n  tip.html = function(v) {\n    if (!arguments.length) return html\n    html = v == null ? v : d3.functor(v)\n\n    return tip\n  }\n\n  function d3_tip_direction() { return 'n' }\n  function d3_tip_offset() { return [0, 0] }\n  function d3_tip_html() { return ' ' }\n\n  var direction_callbacks = d3.map({\n    n:  direction_n,\n    s:  direction_s,\n    e:  direction_e,\n    w:  direction_w,\n    nw: direction_nw,\n    ne: direction_ne,\n    sw: direction_sw,\n    se: direction_se\n  }),\n\n  directions = direction_callbacks.keys()\n\n  function direction_n() {\n    var bbox = getScreenBBox()\n    return {\n      top:  bbox.n.y - node.offsetHeight,\n      left: bbox.n.x - node.offsetWidth / 2\n    }\n  }\n\n  function direction_s() {\n    var bbox = getScreenBBox()\n    return {\n      top:  bbox.s.y,\n      left: bbox.s.x - node.offsetWidth / 2\n    }\n  }\n\n  function direction_e() {\n    var bbox = getScreenBBox()\n    return {\n      top:  bbox.e.y - node.offsetHeight / 2,\n      left: bbox.e.x\n    }\n  }\n\n  function direction_w() {\n    var bbox = getScreenBBox()\n    return {\n      top:  bbox.w.y - node.offsetHeight / 2,\n      left: bbox.w.x - node.offsetWidth\n    }\n  }\n\n  function direction_nw() {\n    var bbox = getScreenBBox()\n    return {\n      top:  bbox.nw.y - node.offsetHeight,\n      left: bbox.nw.x - node.offsetWidth\n    }\n  }\n\n  function direction_ne() {\n    var bbox = getScreenBBox()\n    return {\n      top:  bbox.ne.y - node.offsetHeight,\n      left: bbox.ne.x\n    }\n  }\n\n  function direction_sw() {\n    var bbox = getScreenBBox()\n    return {\n      top:  bbox.sw.y,\n      left: bbox.sw.x - node.offsetWidth\n    }\n  }\n\n  function direction_se() {\n    var bbox = getScreenBBox()\n    return {\n      top:  bbox.se.y,\n      left: bbox.e.x\n    }\n  }\n\n  function initNode() {\n    var node = d3.select(document.createElement('div'))\n    node.style({\n      position: 'absolute',\n      opacity: 0,\n      pointerEvents: 'none',\n      boxSizing: 'border-box'\n    })\n\n    return node.node()\n  }\n\n  function getSVGNode(el) {\n    el = el.node()\n    if(el.tagName.toLowerCase() == 'svg')\n      return el\n\n    return el.ownerSVGElement\n  }\n\n  // Private - gets the screen coordinates of a shape\n  //\n  // Given a shape on the screen, will return an SVGPoint for the directions\n  // n(north), s(south), e(east), w(west), ne(northeast), se(southeast), nw(northwest),\n  // sw(southwest).\n  //\n  //    +-+-+\n  //    |   |\n  //    +   +\n  //    |   |\n  //    +-+-+\n  //\n  // Returns an Object {n, s, e, w, nw, sw, ne, se}\n  function getScreenBBox() {\n    var targetel   = target || d3.event.target,\n        bbox       = {},\n        matrix     = targetel.getScreenCTM(),\n        tbbox      = targetel.getBBox(),\n        width      = tbbox.width,\n        height     = tbbox.height,\n        x          = tbbox.x,\n        y          = tbbox.y,\n        scrollTop  = document.documentElement.scrollTop || document.body.scrollTop,\n        scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft\n\n\n    point.x = x + scrollLeft\n    point.y = y + scrollTop\n    bbox.nw = point.matrixTransform(matrix)\n    point.x += width\n    bbox.ne = point.matrixTransform(matrix)\n    point.y += height\n    bbox.se = point.matrixTransform(matrix)\n    point.x -= width\n    bbox.sw = point.matrixTransform(matrix)\n    point.y -= height / 2\n    bbox.w  = point.matrixTransform(matrix)\n    point.x += width\n    bbox.e = point.matrixTransform(matrix)\n    point.x -= width / 2\n    point.y -= height / 2\n    bbox.n = point.matrixTransform(matrix)\n    point.y += height\n    bbox.s = point.matrixTransform(matrix)\n\n    return bbox\n  }\n\n  return tip\n};"]}