forked from susielu/d3-legend
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindexRollupNext.js.map
1 lines (1 loc) · 55.7 KB
/
indexRollupNext.js.map
1
{"version":3,"file":"indexRollupNext.js","sources":["src/legend.js","src/color.js","src/size.js","src/symbol.js","src/helpers.js","index.js"],"sourcesContent":["import { select } from \"d3-selection\"\nimport { format, formatPrefix } from \"d3-format\"\n\nconst d3_identity = d => d\n\nconst d3_reverse = arr => {\n const mirror = []\n for (let i = 0, l = arr.length; i < l; i++) {\n mirror[i] = arr[l - i - 1]\n }\n return mirror\n}\n\n//Text wrapping code adapted from Mike Bostock\nconst d3_textWrapping = (text, width) => {\n text.each(function() {\n var text = select(this),\n words = text\n .text()\n .split(/\\s+/)\n .reverse(),\n word,\n line = [],\n lineNumber = 0,\n lineHeight = 1.2, //ems\n y = text.attr(\"y\"),\n dy = parseFloat(text.attr(\"dy\")) || 0,\n tspan = text\n .text(null)\n .append(\"tspan\")\n .attr(\"x\", 0)\n .attr(\"dy\", dy + \"em\")\n\n while ((word = words.pop())) {\n line.push(word)\n tspan.text(line.join(\" \"))\n if (tspan.node().getComputedTextLength() > width && line.length > 1) {\n line.pop()\n tspan.text(line.join(\" \"))\n line = [word]\n tspan = text\n .append(\"tspan\")\n .attr(\"x\", 0)\n .attr(\"dy\", lineHeight + dy + \"em\")\n .text(word)\n }\n }\n })\n}\n\nconst d3_mergeLabels = (gen = [], labels, domain, range, labelDelimiter) => {\n if (typeof labels === \"object\") {\n if (labels.length === 0) return gen\n\n let i = labels.length\n for (; i < gen.length; i++) {\n labels.push(gen[i])\n }\n return labels\n } else if (typeof labels === \"function\") {\n const customLabels = []\n const genLength = gen.length\n for (let i = 0; i < genLength; i++) {\n customLabels.push(\n labels({\n i,\n genLength,\n generatedLabels: gen,\n domain,\n range,\n labelDelimiter\n })\n )\n }\n return customLabels\n }\n\n return gen\n}\n\nconst d3_linearLegend = (scale, cells, labelFormat) => {\n let data = []\n\n if (cells.length > 1) {\n data = cells\n } else {\n const domain = scale.domain(),\n increment = (domain[domain.length - 1] - domain[0]) / (cells - 1)\n let i = 0\n\n for (; i < cells; i++) {\n data.push(domain[0] + i * increment)\n }\n }\n\n const labels = data.map(labelFormat)\n return {\n data: data,\n labels: labels,\n feature: d => scale(d)\n }\n}\n\nconst d3_quantLegend = (scale, labelFormat, labelDelimiter) => {\n const labels = scale.range().map(d => {\n const invert = scale.invertExtent(d)\n return (\n labelFormat(invert[0]) +\n \" \" +\n labelDelimiter +\n \" \" +\n labelFormat(invert[1])\n )\n })\n\n return {\n data: scale.range(),\n labels: labels,\n feature: d3_identity\n }\n}\n\nconst d3_ordinalLegend = scale => ({\n data: scale.domain(),\n labels: scale.domain(),\n feature: d => scale(d)\n})\n\nconst d3_cellOver = (cellDispatcher, d, obj) => {\n cellDispatcher.call(\"cellover\", obj, d)\n}\n\nconst d3_cellOut = (cellDispatcher, d, obj) => {\n cellDispatcher.call(\"cellout\", obj, d)\n}\n\nconst d3_cellClick = (cellDispatcher, d, obj) => {\n cellDispatcher.call(\"cellclick\", obj, d)\n}\n\nconst d3_contextmenu = (cellDispatcher, d, obj) => {\n cellDispatcher.call(\"cellcontextmenu\", obj, d)\n}\n\nexport default {\n d3_drawShapes: (\n shape,\n shapes,\n shapeHeight,\n shapeWidth,\n shapeRadius,\n path\n ) => {\n if (shape === \"rect\") {\n shapes.attr(\"height\", shapeHeight).attr(\"width\", shapeWidth)\n } else if (shape === \"circle\") {\n shapes.attr(\"r\", shapeRadius)\n } else if (shape === \"line\") {\n shapes\n .attr(\"x1\", 0)\n .attr(\"x2\", shapeWidth)\n .attr(\"y1\", 0)\n .attr(\"y2\", 0)\n } else if (shape === \"path\") {\n shapes.attr(\"d\", path)\n }\n },\n\n d3_addText: function(svg, enter, labels, classPrefix, labelWidth) {\n enter.append(\"text\").attr(\"class\", classPrefix + \"label\")\n const text = svg\n .selectAll(`g.${classPrefix}cell text.${classPrefix}label`)\n .data(labels)\n .text(d3_identity)\n\n if (labelWidth) {\n svg\n .selectAll(`g.${classPrefix}cell text.${classPrefix}label`)\n .call(d3_textWrapping, labelWidth)\n }\n\n return text\n },\n\n d3_calcType: function(\n scale,\n ascending,\n cells,\n labels,\n labelFormat,\n labelDelimiter\n ) {\n const type = scale.invertExtent\n ? d3_quantLegend(scale, labelFormat, labelDelimiter)\n : scale.ticks\n ? d3_linearLegend(scale, cells, labelFormat)\n : d3_ordinalLegend(scale)\n\n //for d3.scaleSequential that doesn't have a range function\n const range = (scale.range && scale.range()) || scale.domain()\n type.labels = d3_mergeLabels(\n type.labels,\n labels,\n scale.domain(),\n range,\n labelDelimiter\n )\n\n if (ascending) {\n type.labels = d3_reverse(type.labels)\n type.data = d3_reverse(type.data)\n }\n\n return type\n },\n\n d3_filterCells: (type, cellFilter) => {\n let filterCells = type.data\n .map((d, i) => ({ data: d, label: type.labels[i] }))\n .filter(cellFilter)\n const dataValues = filterCells.map(d => d.data)\n const labelValues = filterCells.map(d => d.label)\n type.data = type.data.filter(d => dataValues.indexOf(d) !== -1)\n type.labels = type.labels.filter(d => labelValues.indexOf(d) !== -1)\n return type\n },\n\n d3_placement: (orient, cell, cellTrans, text, textTrans, labelAlign, labelPosition) => {\n cell.attr(\"transform\", cellTrans);\n text.attr(\"transform\", textTrans);\n if (orient === \"horizontal\" && labelPosition === \"below\") {\n text.style(\"text-anchor\", labelAlign);\n }\n },\n\n d3_addEvents: function(cells, dispatcher) {\n cells\n .on(\"mouseover.legend\", function(d) {\n d3_cellOver(dispatcher, d, this)\n })\n .on(\"mouseout.legend\", function(d) {\n d3_cellOut(dispatcher, d, this)\n })\n .on(\"click.legend\", function(d) {\n d3_cellClick(dispatcher, d, this)\n })\n .on(\"contextmenu.legend\", function(d) {\n d3_contextmenu(dispatcher, d, this);\n });\n },\n\n d3_title: (svg, title, classPrefix, titleWidth) => {\n if (title !== \"\") {\n const titleText = svg.selectAll(\"text.\" + classPrefix + \"legendTitle\")\n\n titleText\n .data([title])\n .enter()\n .append(\"text\")\n .attr(\"class\", classPrefix + \"legendTitle\")\n\n svg.selectAll(\"text.\" + classPrefix + \"legendTitle\").text(title)\n\n if (titleWidth) {\n svg\n .selectAll(\"text.\" + classPrefix + \"legendTitle\")\n .call(d3_textWrapping, titleWidth)\n }\n\n const cellsSvg = svg.select(\".\" + classPrefix + \"legendCells\")\n const yOffset = svg\n .select(\".\" + classPrefix + \"legendTitle\")\n .nodes()\n .map(d => d.getBBox().height)[0],\n xOffset = -cellsSvg.nodes().map(function(d) {\n return d.getBBox().x\n })[0]\n cellsSvg.attr(\"transform\", \"translate(\" + xOffset + \",\" + yOffset + \")\")\n }\n },\n\n d3_defaultLocale: {\n format,\n formatPrefix\n },\n\n d3_defaultFormatSpecifier: \".01f\",\n\n d3_defaultDelimiter: \"to\"\n}\n","import helper from \"./legend\"\nimport { dispatch } from \"d3-dispatch\"\nimport { scaleLinear } from \"d3-scale\"\nimport { formatLocale, formatSpecifier } from \"d3-format\"\n\nimport { sum } from \"d3-array\"\n\nexport default function color() {\n let scale = scaleLinear(),\n shape = \"rect\",\n shapeWidth = 15,\n shapeHeight = 15,\n shapeRadius = 10,\n shapePadding = 2,\n cells = [5],\n cellFilter,\n labels = [],\n classPrefix = \"\",\n useClass = false,\n title = \"\",\n locale = helper.d3_defaultLocale,\n specifier = helper.d3_defaultFormatSpecifier,\n labelOffset = 10,\n labelAlign = \"middle\",\n labelPosition = \"below\",\n labelDelimiter = helper.d3_defaultDelimiter,\n labelWrap,\n orient = \"vertical\",\n ascending = false,\n path,\n titleWidth,\n legendDispatcher = dispatch(\"cellover\", \"cellout\", \"cellclick\", \"cellcontextmenu\")\n\n function legend(svg) {\n const type = helper.d3_calcType(\n scale,\n ascending,\n cells,\n labels,\n locale.format(specifier),\n labelDelimiter\n ),\n legendG = svg.selectAll(\"g\").data([scale])\n\n legendG\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"legendCells\")\n\n if (cellFilter) {\n helper.d3_filterCells(type, cellFilter)\n }\n\n let cell = svg\n .select(\".\" + classPrefix + \"legendCells\")\n .selectAll(\".\" + classPrefix + \"cell\")\n .data(type.data)\n\n const cellEnter = cell\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"cell\")\n cellEnter.append(shape).attr(\"class\", classPrefix + \"swatch\")\n\n let shapes = svg\n .selectAll(\n \"g.\" + classPrefix + \"cell \" + shape + \".\" + classPrefix + \"swatch\"\n )\n .data(type.data)\n\n //add event handlers\n helper.d3_addEvents(cellEnter, legendDispatcher)\n\n cell\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n shapes\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n\n shapes = shapes.merge(shapes)\n\n helper.d3_drawShapes(\n shape,\n shapes,\n shapeHeight,\n shapeWidth,\n shapeRadius,\n path\n )\n const text = helper.d3_addText(\n svg,\n cellEnter,\n type.labels,\n classPrefix,\n labelWrap\n )\n\n // we need to merge the selection, otherwise changes in the legend (e.g. change of orientation) are applied only to the new cells and not the existing ones.\n cell = cellEnter.merge(cell)\n\n // sets placement\n const textSize = text.nodes().map(d => d.getBBox()),\n shapeSize = shapes.nodes().map(d => d.getBBox())\n //sets scale\n //everything is fill except for line which is stroke,\n if (!useClass) {\n if (shape == \"line\") {\n shapes.style(\"stroke\", type.feature)\n } else {\n shapes.style(\"fill\", type.feature)\n }\n } else {\n shapes.attr(\"class\", d => `${classPrefix}swatch ${type.feature(d)}`)\n }\n\n let cellTrans,\n textTrans,\n textAlign = labelAlign == \"start\" ? 0 : labelAlign == \"middle\" ? 0.5 : 1\n\n //positions cells and text\n if (orient === \"vertical\") {\n const cellSize = textSize.map((d, i) =>\n Math.max(d.height, shapeSize[i].height)\n )\n\n cellTrans = (d, i) => {\n const height = sum(cellSize.slice(0, i))\n return `translate(0, ${height + i * shapePadding})`\n }\n\n textTrans = (d, i) =>\n `translate( ${shapeSize[i].width +\n shapeSize[i].x +\n labelOffset}, ${shapeSize[i].y + shapeSize[i].height / 2 + 5})`\n } else if (orient === \"horizontal\") {\n cellTrans = (d, i) =>\n `translate(${i * (shapeSize[i].width + shapePadding)},0)`\n if (labelPosition === \"below\") {\n textTrans = (d, i) => `translate(${(shapeSize[i].width * textAlign +\n shapeSize[i].x)},\n ${(shapeSize[i].height + shapeSize[i].y + labelOffset + 8)})`\n } else if (labelPosition === \"right\") {\n textTrans = (d, i) => `translate(${(shapeSize[i].width + shapeSize[i].x + 4)},\n ${(shapeSize[i].height + shapeSize[i].y)})`\n }\n }\n helper.d3_placement(orient, cell, cellTrans, text, textTrans, labelAlign, labelPosition)\n helper.d3_title(svg, title, classPrefix, titleWidth)\n\n cell.transition().style(\"opacity\", 1)\n }\n\n legend.scale = function(_) {\n if (!arguments.length) return scale\n scale = _\n return legend\n }\n\n legend.cells = function(_) {\n if (!arguments.length) return cells\n if (_.length > 1 || _ >= 2) {\n cells = _\n }\n return legend\n }\n\n legend.cellFilter = function(_) {\n if (!arguments.length) return cellFilter\n cellFilter = _\n return legend\n }\n\n legend.shape = function(_, d) {\n if (!arguments.length) return shape\n if (\n _ == \"rect\" ||\n _ == \"circle\" ||\n _ == \"line\" ||\n (_ == \"path\" && typeof d === \"string\")\n ) {\n shape = _\n path = d\n }\n return legend\n }\n\n legend.shapeWidth = function(_) {\n if (!arguments.length) return shapeWidth\n shapeWidth = +_\n return legend\n }\n\n legend.shapeHeight = function(_) {\n if (!arguments.length) return shapeHeight\n shapeHeight = +_\n return legend\n }\n\n legend.shapeRadius = function(_) {\n if (!arguments.length) return shapeRadius\n shapeRadius = +_\n return legend\n }\n\n legend.shapePadding = function(_) {\n if (!arguments.length) return shapePadding\n shapePadding = +_\n return legend\n }\n\n legend.labels = function(_) {\n if (!arguments.length) return labels\n labels = _\n return legend\n }\n\n legend.labelAlign = function(_) {\n if (!arguments.length) return labelAlign\n if (_ == \"start\" || _ == \"end\" || _ == \"middle\") {\n labelAlign = _\n }\n return legend\n }\n\n legend.labelPosition = function(_) {\n if (!arguments.length) return labelPosition\n if (_ == \"below\" || _ == \"right\") {\n labelPosition = _\n }\n return legend\n }\n\n legend.locale = function(_) {\n if (!arguments.length) return locale\n locale = formatLocale(_)\n return legend\n }\n\n legend.labelFormat = function(_) {\n if (!arguments.length) return legend.locale().format(specifier)\n specifier = formatSpecifier(_)\n return legend\n }\n\n legend.labelOffset = function(_) {\n if (!arguments.length) return labelOffset\n labelOffset = +_\n return legend\n }\n\n legend.labelDelimiter = function(_) {\n if (!arguments.length) return labelDelimiter\n labelDelimiter = _\n return legend\n }\n\n legend.labelWrap = function(_) {\n if (!arguments.length) return labelWrap\n labelWrap = _\n return legend\n }\n\n legend.useClass = function(_) {\n if (!arguments.length) return useClass\n if (_ === true || _ === false) {\n useClass = _\n }\n return legend\n }\n\n legend.orient = function(_) {\n if (!arguments.length) return orient\n _ = _.toLowerCase()\n if (_ == \"horizontal\" || _ == \"vertical\") {\n orient = _\n }\n return legend\n }\n\n legend.ascending = function(_) {\n if (!arguments.length) return ascending\n ascending = !!_\n return legend\n }\n\n legend.classPrefix = function(_) {\n if (!arguments.length) return classPrefix\n classPrefix = _\n return legend\n }\n\n legend.title = function(_) {\n if (!arguments.length) return title\n title = _\n return legend\n }\n\n legend.titleWidth = function(_) {\n if (!arguments.length) return titleWidth\n titleWidth = _\n return legend\n }\n\n legend.textWrap = function(_) {\n if (!arguments.length) return textWrap\n textWrap = _\n return legend\n }\n\n legend.on = function() {\n const value = legendDispatcher.on.apply(legendDispatcher, arguments)\n return value === legendDispatcher ? legend : value\n }\n\n return legend\n}\n","import helper from \"./legend\"\nimport { dispatch } from \"d3-dispatch\"\nimport { scaleLinear } from \"d3-scale\"\nimport { formatLocale, formatSpecifier } from \"d3-format\"\nimport { sum, max } from \"d3-array\"\n\nexport default function size() {\n let scale = scaleLinear(),\n shape = \"rect\",\n shapeWidth = 15,\n shapePadding = 2,\n cells = [5],\n cellFilter,\n labels = [],\n classPrefix = \"\",\n title = \"\",\n locale = helper.d3_defaultLocale,\n specifier = helper.d3_defaultFormatSpecifier,\n labelOffset = 10,\n labelAlign = \"middle\",\n labelPosition = \"below\",\n labelDelimiter = helper.d3_defaultDelimiter,\n labelWrap,\n orient = \"vertical\",\n ascending = false,\n path,\n titleWidth,\n legendDispatcher = dispatch(\"cellover\", \"cellout\", \"cellclick\", \"cellcontextmenu\");\n\n function legend(svg) {\n const type = helper.d3_calcType(\n scale,\n ascending,\n cells,\n labels,\n locale.format(specifier),\n labelDelimiter\n ),\n legendG = svg.selectAll(\"g\").data([scale])\n\n if (cellFilter) {\n helper.d3_filterCells(type, cellFilter)\n }\n\n legendG\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"legendCells\")\n\n let cell = svg\n .select(\".\" + classPrefix + \"legendCells\")\n .selectAll(\".\" + classPrefix + \"cell\")\n .data(type.data)\n const cellEnter = cell\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"cell\")\n cellEnter.append(shape).attr(\"class\", classPrefix + \"swatch\")\n\n let shapes = svg.selectAll(\n \"g.\" + classPrefix + \"cell \" + shape + \".\" + classPrefix + \"swatch\"\n )\n\n //add event handlers\n helper.d3_addEvents(cellEnter, legendDispatcher)\n\n cell\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n\n shapes\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n shapes = shapes.merge(shapes)\n\n //creates shape\n if (shape === \"line\") {\n helper.d3_drawShapes(shape, shapes, 0, shapeWidth)\n shapes.attr(\"stroke-width\", type.feature)\n } else {\n helper.d3_drawShapes(\n shape,\n shapes,\n type.feature,\n type.feature,\n type.feature,\n path\n )\n }\n\n const text = helper.d3_addText(\n svg,\n cellEnter,\n type.labels,\n classPrefix,\n labelWrap\n )\n\n // we need to merge the selection, otherwise changes in the legend (e.g. change of orientation) are applied only to the new cells and not the existing ones.\n cell = cellEnter.merge(cell)\n\n //sets placement\n\n const textSize = text.nodes().map(d => d.getBBox()),\n shapeSize = shapes.nodes().map((d, i) => {\n const bbox = d.getBBox()\n const stroke = scale(type.data[i])\n\n if (shape === \"line\" && orient === \"horizontal\") {\n bbox.height = bbox.height + stroke\n } else if (shape === \"line\" && orient === \"vertical\") {\n bbox.width = bbox.width\n }\n return bbox\n })\n\n const maxH = max(shapeSize, d => d.height + d.y),\n maxW = max(shapeSize, d => d.width + d.x)\n\n let cellTrans,\n textTrans,\n textAlign = labelAlign == \"start\" ? 0 : labelAlign == \"middle\" ? 0.5 : 1\n\n //positions cells and text\n if (orient === \"vertical\") {\n const cellSize = textSize.map((d, i) =>\n Math.max(d.height, shapeSize[i].height)\n )\n const y =\n shape == \"circle\" || shape == \"line\" ? shapeSize[0].height / 2 : 0\n cellTrans = (d, i) => {\n const height = sum(cellSize.slice(0, i))\n\n return `translate(0, ${y + height + i * shapePadding})`\n }\n\n textTrans = (d, i) => `translate( ${maxW + labelOffset},\n ${shapeSize[i].y + shapeSize[i].height / 2 + 5})`\n } else if (orient === \"horizontal\") {\n cellTrans = (d, i) => {\n const width = sum(shapeSize.slice(0, i), d => d.width)\n const y = shape == \"circle\" || shape == \"line\" ? maxH / 2 : 0\n return `translate(${width + i * shapePadding}, ${y})`\n }\n\n const offset = shape == \"line\" ? maxH / 2 : maxH\n textTrans = (d, i) => {\n return `translate( ${shapeSize[i].width * textAlign + shapeSize[i].x},\n ${offset + labelOffset})`\n }\n }\n\n helper.d3_placement(orient, cell, cellTrans, text, textTrans, labelAlign)\n helper.d3_title(svg, title, classPrefix, titleWidth)\n\n cell.transition().style(\"opacity\", 1)\n }\n\n legend.scale = function(_) {\n if (!arguments.length) return scale\n scale = _\n return legend\n }\n\n legend.cells = function(_) {\n if (!arguments.length) return cells\n if (_.length > 1 || _ >= 2) {\n cells = _\n }\n return legend\n }\n\n legend.cellFilter = function(_) {\n if (!arguments.length) return cellFilter\n cellFilter = _\n return legend\n }\n\n legend.shape = function(_, d) {\n if (!arguments.length) return shape\n if (_ == \"rect\" || _ == \"circle\" || _ == \"line\") {\n shape = _\n path = d\n }\n return legend\n }\n\n legend.shapeWidth = function(_) {\n if (!arguments.length) return shapeWidth\n shapeWidth = +_\n return legend\n }\n\n legend.shapePadding = function(_) {\n if (!arguments.length) return shapePadding\n shapePadding = +_\n return legend\n }\n\n legend.labels = function(_) {\n if (!arguments.length) return labels\n labels = _\n return legend\n }\n\n legend.labelAlign = function(_) {\n if (!arguments.length) return labelAlign\n if (_ == \"start\" || _ == \"end\" || _ == \"middle\") {\n labelAlign = _\n }\n return legend\n }\n\n legend.locale = function(_) {\n if (!arguments.length) return locale\n locale = formatLocale(_)\n return legend\n }\n\n legend.labelFormat = function(_) {\n if (!arguments.length) return legend.locale().format(specifier)\n specifier = formatSpecifier(_)\n return legend\n }\n\n legend.labelOffset = function(_) {\n if (!arguments.length) return labelOffset\n labelOffset = +_\n return legend\n }\n\n legend.labelDelimiter = function(_) {\n if (!arguments.length) return labelDelimiter\n labelDelimiter = _\n return legend\n }\n\n legend.labelWrap = function(_) {\n if (!arguments.length) return labelWrap\n labelWrap = _\n return legend\n }\n\n legend.orient = function(_) {\n if (!arguments.length) return orient\n _ = _.toLowerCase()\n if (_ == \"horizontal\" || _ == \"vertical\") {\n orient = _\n }\n return legend\n }\n\n legend.ascending = function(_) {\n if (!arguments.length) return ascending\n ascending = !!_\n return legend\n }\n\n legend.classPrefix = function(_) {\n if (!arguments.length) return classPrefix\n classPrefix = _\n return legend\n }\n\n legend.title = function(_) {\n if (!arguments.length) return title\n title = _\n return legend\n }\n\n legend.titleWidth = function(_) {\n if (!arguments.length) return titleWidth\n titleWidth = _\n return legend\n }\n\n legend.on = function() {\n const value = legendDispatcher.on.apply(legendDispatcher, arguments)\n return value === legendDispatcher ? legend : value\n }\n\n return legend\n}\n","import helper from \"./legend\"\nimport { dispatch } from \"d3-dispatch\"\nimport { scaleLinear } from \"d3-scale\"\nimport { formatLocale, formatSpecifier } from \"d3-format\"\nimport { sum, max } from \"d3-array\"\n\nexport default function symbol() {\n let scale = scaleLinear(),\n shape = \"path\",\n shapeWidth = 15,\n shapeHeight = 15,\n shapeRadius = 10,\n shapePadding = 5,\n cells = [5],\n cellFilter,\n labels = [],\n classPrefix = \"\",\n title = \"\",\n locale = helper.d3_defaultLocale,\n specifier = helper.d3_defaultFormatSpecifier,\n labelAlign = \"middle\",\n labelPosition = \"below\",\n labelOffset = 10,\n labelDelimiter = helper.d3_defaultDelimiter,\n labelWrap,\n orient = \"vertical\",\n ascending = false,\n titleWidth,\n legendDispatcher = dispatch(\"cellover\", \"cellout\", \"cellclick\", \"cellcontextmenu\")\n\n function legend(svg) {\n const type = helper.d3_calcType(\n scale,\n ascending,\n cells,\n labels,\n locale.format(specifier),\n labelDelimiter\n ),\n legendG = svg.selectAll(\"g\").data([scale])\n\n if (cellFilter) {\n helper.d3_filterCells(type, cellFilter)\n }\n\n legendG\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"legendCells\")\n\n let cell = svg\n .select(\".\" + classPrefix + \"legendCells\")\n .selectAll(\".\" + classPrefix + \"cell\")\n .data(type.data)\n const cellEnter = cell\n .enter()\n .append(\"g\")\n .attr(\"class\", classPrefix + \"cell\")\n cellEnter.append(shape).attr(\"class\", classPrefix + \"swatch\")\n\n let shapes = svg.selectAll(\"g.\" + classPrefix + \"cell \" + shape + \".\" + classPrefix + \"swatch\")\n\n //add event handlers\n helper.d3_addEvents(cellEnter, legendDispatcher)\n\n //remove old shapes\n cell\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n shapes\n .exit()\n .transition()\n .style(\"opacity\", 0)\n .remove()\n shapes = shapes.merge(shapes)\n\n helper.d3_drawShapes(\n shape,\n shapes,\n shapeHeight,\n shapeWidth,\n shapeRadius,\n type.feature\n )\n const text = helper.d3_addText(\n svg,\n cellEnter,\n type.labels,\n classPrefix,\n labelWrap\n )\n\n // we need to merge the selection, otherwise changes in the legend (e.g. change of orientation) are applied only to the new cells and not the existing ones.\n cell = cellEnter.merge(cell)\n\n // sets placement\n const textSize = text.nodes().map(d => d.getBBox()),\n shapeSize = shapes.nodes().map(d => d.getBBox())\n\n const maxH = max(shapeSize, d => d.height),\n maxW = max(shapeSize, d => d.width)\n\n let cellTrans,\n textTrans,\n textAlign = labelAlign == \"start\" ? 0 : labelAlign == \"middle\" ? 0.5 : 1\n\n //positions cells and text\n if (orient === \"vertical\") {\n const cellSize = textSize.map((d, i) => Math.max(maxH, d.height))\n\n cellTrans = (d, i) => {\n const height = sum(cellSize.slice(0, i))\n return `translate(0, ${height + i * shapePadding} )`\n }\n textTrans = (d, i) => `translate( ${maxW + labelOffset},\n ${shapeSize[i].y + shapeSize[i].height / 2 + 5})`\n } else if (orient === \"horizontal\") {\n cellTrans = (d, i) => `translate( ${i * (maxW + shapePadding)},0)`\n textTrans = (d, i) => `translate( ${shapeSize[i].width * textAlign +\n shapeSize[i].x},\n ${maxH + labelOffset})`\n }\n\n helper.d3_placement(orient, cell, cellTrans, text, textTrans, labelAlign)\n helper.d3_title(svg, title, classPrefix, titleWidth)\n cell.transition().style(\"opacity\", 1)\n }\n\n legend.scale = function(_) {\n if (!arguments.length) return scale\n scale = _\n return legend\n }\n\n legend.cells = function(_) {\n if (!arguments.length) return cells\n if (_.length > 1 || _ >= 2) {\n cells = _\n }\n return legend\n }\n\n legend.cellFilter = function(_) {\n if (!arguments.length) return cellFilter\n cellFilter = _\n return legend\n }\n\n legend.shapePadding = function(_) {\n if (!arguments.length) return shapePadding\n shapePadding = +_\n return legend\n }\n\n legend.labels = function(_) {\n if (!arguments.length) return labels\n labels = _\n return legend\n }\n\n legend.labelAlign = function(_) {\n if (!arguments.length) return labelAlign\n if (_ == \"start\" || _ == \"end\" || _ == \"middle\") {\n labelAlign = _\n }\n return legend\n }\n\n legend.locale = function(_) {\n if (!arguments.length) return locale\n locale = formatLocale(_)\n return legend\n }\n\n legend.labelFormat = function(_) {\n if (!arguments.length) return legend.locale().format(specifier)\n specifier = formatSpecifier(_)\n return legend\n }\n\n legend.labelOffset = function(_) {\n if (!arguments.length) return labelOffset\n labelOffset = +_\n return legend\n }\n\n legend.labelDelimiter = function(_) {\n if (!arguments.length) return labelDelimiter\n labelDelimiter = _\n return legend\n }\n\n legend.labelWrap = function(_) {\n if (!arguments.length) return labelWrap\n labelWrap = _\n return legend\n }\n\n legend.orient = function(_) {\n if (!arguments.length) return orient\n _ = _.toLowerCase()\n if (_ == \"horizontal\" || _ == \"vertical\") {\n orient = _\n }\n return legend\n }\n\n legend.ascending = function(_) {\n if (!arguments.length) return ascending\n ascending = !!_\n return legend\n }\n\n legend.classPrefix = function(_) {\n if (!arguments.length) return classPrefix\n classPrefix = _\n return legend\n }\n\n legend.title = function(_) {\n if (!arguments.length) return title\n title = _\n return legend\n }\n\n legend.titleWidth = function(_) {\n if (!arguments.length) return titleWidth\n titleWidth = _\n return legend\n }\n\n legend.on = function() {\n const value = legendDispatcher.on.apply(legendDispatcher, arguments)\n return value === legendDispatcher ? legend : value\n }\n\n return legend\n}\n","export const thresholdLabels = function({\n i,\n genLength,\n generatedLabels,\n labelDelimiter\n}) {\n if (i === 0) {\n const values = generatedLabels[i].split(` ${labelDelimiter} `)\n return `Less than ${values[1]}`\n } else if (i === genLength - 1) {\n const values = generatedLabels[i].split(` ${labelDelimiter} `)\n return `${values[0]} or more`\n }\n return generatedLabels[i]\n}\n\nexport default {\n thresholdLabels\n}\n","import legendColor from './src/color'\nimport legendSize from './src/size'\nimport legendSymbol from './src/symbol'\nimport legendHelpers from './src/helpers'\n\nexport { legendColor, legendSize, legendSymbol, legendHelpers }\n\nexport default {\n legendColor,\n legendSize,\n legendSymbol,\n legendHelpers\n};\n"],"names":["d3_identity","d","d3_reverse","mirror","i","l","arr","length","d3_textWrapping","text","width","each","select","words","split","reverse","word","line","lineNumber","lineHeight","attr","dy","parseFloat","tspan","append","pop","push","join","node","getComputedTextLength","d3_mergeLabels","gen","labels","domain","range","labelDelimiter","customLabels","genLength","d3_linearLegend","scale","cells","labelFormat","data","increment","map","d3_quantLegend","invert","invertExtent","d3_ordinalLegend","d3_cellOver","cellDispatcher","obj","call","d3_cellOut","d3_cellClick","d3_contextmenu","shape","shapes","shapeHeight","shapeWidth","shapeRadius","path","svg","enter","classPrefix","labelWidth","selectAll","ascending","type","ticks","cellFilter","filterCells","label","filter","dataValues","labelValues","indexOf","orient","cell","cellTrans","textTrans","labelAlign","labelPosition","style","dispatcher","on","title","titleWidth","titleText","cellsSvg","yOffset","nodes","getBBox","height","xOffset","x","color","scaleLinear","shapePadding","useClass","locale","helper","d3_defaultLocale","specifier","d3_defaultFormatSpecifier","labelOffset","d3_defaultDelimiter","labelWrap","legendDispatcher","dispatch","legend","d3_calcType","format","legendG","d3_filterCells","cellEnter","d3_addEvents","exit","transition","remove","merge","d3_drawShapes","d3_addText","textSize","shapeSize","feature","textAlign","cellSize","Math","max","sum","slice","y","d3_placement","d3_title","_","arguments","formatLocale","formatSpecifier","toLowerCase","textWrap","value","apply","size","bbox","stroke","maxH","maxW","offset","symbol","thresholdLabels","generatedLabels","values"],"mappings":"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"}