{"version":3,"file":null,"sources":["src/Annotation.js","src/AnnotationCollection.js","src/Types-d3.js","src/Adapter-d3.js","index.js"],"sourcesContent":["\nexport default class Annotation {\n  constructor({ x, y, dy, dx, text, title, data, type }) {\n    //super() calls parent's constructor\n    this.x = x || 0\n    this.y = y || 0\n    this.dx = dx || 0\n    this.dy = dy || 0\n    this.text = text\n    this.title = title\n    this.type = type\n    this.data = data || {}\n  }\n\n  get position() { return { x: this.x, y: this.y }}\n\n  set position({ x, y }) {\n    this.x = x\n    this.y = y\n  }\n\n  get offset() { return { x: this.dx, y: this.dy }}\n\n  set offset({ x, y }) {\n    this.dx = x\n    this.dy = y\n  }\n\n  get translation() {\n    return {\n    x: this.x + this.dx,\n    y: this.y + this.dy\n  }}\n\n  get json() { return {\n      x: this.x,\n      y: this.y,\n      dx: this.dx,\n      dy: this.dy,\n      text: this.text,\n      title: this.title,\n      data: this.data\n   }}\n}\n","export default class AnnotationCollection {\n\n  constructor({ annotations, accessors }) {\n    this.annotations = annotations\n    this.accessors = accessors\n  }\n\n  get json() {\n    return this.annotations.map(a => a.json)\n  }\n\n  // get annotations() {\n  //   return\n  // }\n}\n","import { select, event } from 'd3-selection'\nimport { drag } from 'd3-drag'\n\nfunction manageEnter(a, d, type, className){\n  a.selectAll(`${type}.${className}`)\n    .data(d)\n    .enter()\n    .append(type)\n    .attr('class', className)\n    .merge(a)\n\n  return a\n}\n\n\nexport const drawEach = (group, collection) => {\n  manageEnter(group, collection.annotations, 'g', 'annotation')\n  group.selectAll('g.annotation')\n    .attr('transform', d => {\n      const translation = d.translation\n      return `translate(${translation.x}, ${translation.y})`\n    })\n\n  return group.selectAll('g.annotation')\n}\n\nfunction dragstarted(d) {\n  event.sourceEvent.stopPropagation();\n  select(this).classed(\"dragging\", true)\n}\n\nfunction dragged(d) {\n  d.type.update(select(this), d)\n}\n\nfunction dragended(d) {\n  select(this).classed(\"dragging\", false);\n}\n\nconst drawText = (a, d) => {\n  a.select('text.annotation-text')\n    .text(d.text)\n\n  if (d.title){\n    a.select('text.annotation-title')\n      .text(d.title)\n      .attr('y', -10)\n  }\n\n  const bbox = a.select('g.annotation-text').node().getBBox();\n  const textBBox = a.select('text.annotation-text').node().getBBox();\n\n  a.select('text.annotation-text')\n  .attr('y', d => {\n    if (d.title || d.dy && d.dy > 0) {\n      return 5 + textBBox.height\n    }\n    return -10\n  })\n\n  return bbox\n}\n\nconst drawConnectorLine = (a, d, bbox) => {\n  a.select('line.connector')\n    .attr('x2', -d.dx || 0)\n    .attr('y2', -d.dy || 0)\n    .attr('x1', () => {\n      if (d.dx && d.dx < 0 && Math.abs(d.dx) > bbox.width/2) {\n          return bbox.width\n      }\n    })\n}\n\nconst drawUnderline = (a, bbox) => {\n  a.select('line.underline')\n    .attr('x1', bbox.x)\n    .attr('x2', bbox.x + bbox.width);\n}\n\nconst drawLine = (a, d) => {\n  a.select('line.threshold')\n    .attr(d.x ? 'x1' : 'y1', )\n    .attr(d.x ? 'x2' : 'y2', )\n}\n\nconst editable = (a, editMode) => {\n  if (editMode) {\n    a.call(drag()\n      .on('start', dragstarted)\n      .on('drag', dragged)\n      .on('end', dragended)\n    )\n  }\n}\n\nexport const d3Callout  = {\n  draw: (a, d, editMode) => {\n      manageEnter(a, [d], 'g', 'annotation-text')\n      manageEnter(a.select('g.annotation-text'), [d], 'text', 'annotation-text')\n      manageEnter(a.select('g.annotation-text'), [d], 'text', 'annotation-title')\n\n      const textBBox = drawText(a, d)\n      drawUnderline(manageEnter(a, [textBBox], 'line', 'underline'), textBBox)\n      drawConnectorLine(manageEnter(a, [d], 'line', 'connector'), d, textBBox)\n      editable(a, editMode)\n  },\n  update: (a, d) => {\n    const offset = d.offset\n    offset.x += event.dx\n    offset.y += event.dy\n    d.offset = offset\n    const translate = d.translation\n    a.attr('transform', d => `translate(${translate.x}, ${translate.y})`)\n\n    const bbox = drawText(a, d)\n    drawConnectorLine(a, d, bbox)\n    drawUnderline(a, bbox)\n  }\n}\n\nexport const d3XYThreshold = {\n  draw: (a, d, editMode) => {\n    console.log('here')\n    drawLine(manageEnter(a, [d], 'line', 'threshold'))\n  }\n}\n\n//TODO\n//const drawConnectorElbow = () => {}\n//Add text wraping option\n//Create threshold annotation\n//Create threshold range annotation\n//Example to use with divided line\n\nexport default {\n  d3Callout,\n  d3XYThreshold\n}\n","// import { Annotation, AnnotationCollection } from 'viz-annotation'\nimport Annotation from './Annotation'\nimport AnnotationCollection from './AnnotationCollection'\nimport { drawEach, d3Callout } from './Types-d3'\nimport { select } from 'd3-selection'\n\nexport default function annotation(){\n  //declare internal variables\n  let annotations = [],\n    collection,\n    accessors= {},\n    editMode = false,\n    type= d3Callout;\n\n  //drawing an annotation in d3\n  const annotation = function(selection){\n    const translatedAnnotations = annotations\n      .map(a => {\n        console.log('a', a)\n        if (!a.x && a.data && accessors.x){ a.x = accessors.x(a.data) }\n        if (!a.y && a.data && accessors.y){ a.y = accessors.y(a.data) }\n        if (!a.type) { console.log('no type'); a.type = type }\n        return new Annotation(a)\n      });\n\n\n    collection = new AnnotationCollection ({\n      annotations: translatedAnnotations,\n      accessors\n    })\n\n    const annotationG = selection.selectAll('g').data([collection])\n    annotationG.enter().append('g').attr('class', 'annotations')\n\n    const group = drawEach(selection.select('g.annotations'), collection)\n    group.each(function(d) { d.type.draw(select(this), d, editMode)})\n\n  }\n\n  //TODO: add in classprefix functionality\n  annotation.type = function(_) {\n    if (!arguments.length) return type;\n    type = _;\n    return annotation;\n  }\n\n  annotation.annotations = function(_) {\n    if (!arguments.length) return collection && collection.annotations || annotations;\n    annotations = _\n    return annotation;\n  };\n\n  annotation.accessors = function(_) {\n    if (!arguments.length) return accessors;\n    accessors = _;\n    return annotation\n  }\n\n  annotation.editMode = function(_) {\n    if (!arguments.length) return editMode;\n    editMode = _\n    return annotation\n  }\n\n  return annotation;\n\n};\n","import annotation from './src/Adapter-d3'\nimport types from './src/Types-d3'\n\nexport default {\n  annotation,\n  annotationCallout : types.d3Callout,\n  annotationXYThreshold : types.d3XYThreshold\n}\n"],"names":["Annotation","x","y","dy","dx","text","title","data","type","AnnotationCollection","annotations","accessors","map","a","json","manageEnter","d","className","selectAll","enter","append","attr","merge","drawEach","group","collection","translation","dragstarted","event","sourceEvent","stopPropagation","select","classed","dragged","update","dragended","drawText","bbox","node","getBBox","textBBox","height","drawConnectorLine","Math","abs","width","drawUnderline","drawLine","editable","editMode","call","drag","on","d3Callout","draw","offset","translate","d3XYThreshold","console","log","annotation","selection","translatedAnnotations","annotationG","each","_","arguments","length","annotationCallout","types","annotationXYThreshold"],"mappings":"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"}