forked from susielu/d3-legend
-
Notifications
You must be signed in to change notification settings - Fork 0
/
indexRollup.js.map
1 lines (1 loc) · 49.2 KB
/
indexRollup.js.map
1
{"version":3,"file":"indexRollup.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'\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.text().split(/\\s+/).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.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.append(\"tspan\")\n .attr(\"x\", 0)\n .attr(\"dy\", lineHeight + dy + \"em\").text(word);\n }\n }\n });\n}\n\n\nconst d3_mergeLabels = (gen=[], labels, domain, range) => {\n\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(labels({\n i,\n genLength,\n generatedLabels : gen,\n domain,\n range }))\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\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\n return {data: data,\n labels: labels,\n feature: d => scale(d)};\n}\n\nconst d3_quantLegend = (scale, labelFormat, labelDelimiter) => {\n const labels = scale.range().map( d => {\n const invert = scale.invertExtent(d);\n return labelFormat(invert[0]) + \" \" + labelDelimiter + \" \" + labelFormat(invert[1]);\n });\n\n return {data: scale.range(),\n labels: labels,\n feature: d3_identity\n };\n}\n\nconst d3_ordinalLegend= scale => ({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\n\nexport default {\n\n d3_drawShapes: (shape, shapes, shapeHeight, shapeWidth, shapeRadius, path) => {\n if (shape === \"rect\"){\n shapes.attr(\"height\", shapeHeight).attr(\"width\", shapeWidth);\n\n } else if (shape === \"circle\") {\n shapes.attr(\"r\", shapeRadius)//.attr(\"cx\", shapeRadius).attr(\"cy\", shapeRadius);\n\n } else if (shape === \"line\") {\n shapes.attr(\"x1\", 0).attr(\"x2\", shapeWidth).attr(\"y1\", 0).attr(\"y2\", 0);\n\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 svg.selectAll(`g.${classPrefix}cell text.${classPrefix}label`)\n .data(labels)\n .text(d3_identity);\n\n // if (labelWidth){\n // svg.selectAll(`g.${classPrefix}cell text.${classPrefix}label`)\n // .call(d3_textWrapping, labelWidth)\n // }\n },\n\n d3_calcType: function (scale, ascending, cells, labels, labelFormat, labelDelimiter){\n const type = scale.invertExtent ?\n d3_quantLegend(scale, labelFormat, labelDelimiter) : scale.ticks ?\n d3_linearLegend(scale, cells, labelFormat) : d3_ordinalLegend(scale);\n\n //hack for d3.scaleSequential that doesn't have a range function\n const range = scale.range !== undefined ? scale.range(): [scale(scale.domain()[0]), scale(scale.domain()[1])]\n type.labels = d3_mergeLabels(type.labels, labels, scale.domain(), range);\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.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) => {\n cell.attr(\"transform\", cellTrans);\n text.attr(\"transform\", textTrans);\n if (orient === \"horizontal\"){\n text.style(\"text-anchor\", labelAlign);\n }\n },\n\n d3_addEvents: function(cells, dispatcher){\n cells.on(\"mouseover.legend\", function (d) { d3_cellOver(dispatcher, d, this); })\n .on(\"mouseout.legend\", function (d) { d3_cellOut(dispatcher, d, this); })\n .on(\"click.legend\", function (d) { d3_cellClick(dispatcher, d, this); });\n },\n\n d3_title: (svg, title, classPrefix, titleWidth) => {\n if (title !== \"\"){\n\n const titleText = svg.selectAll('text.' + classPrefix + 'legendTitle');\n\n titleText.data([title])\n .enter()\n .append('text')\n .attr('class', classPrefix + 'legendTitle');\n\n svg.selectAll('text.' + classPrefix + 'legendTitle')\n .text(title)\n\n if (titleWidth){\n svg.selectAll('text.' + classPrefix + 'legendTitle')\n .call(d3_textWrapping, titleWidth)\n }\n\n const cellsSvg = svg.select('.' + classPrefix + 'legendCells')\n const yOffset = svg.select('.' + classPrefix + 'legendTitle').nodes()\n .map(d => d.getBBox().height)[0],\n\n xOffset = -cellsSvg.nodes().map(function(d) { return d.getBBox().x})[0];\n cellsSvg.attr('transform', 'translate(' + xOffset + ',' + (yOffset) + ')');\n\n }\n }\n}\n","import helper from './legend';\nimport { dispatch } from 'd3-dispatch';\nimport { scaleLinear } from 'd3-scale';\nimport { format } from 'd3-format';\n\nexport default function color(){\n\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 labelFormat = format(\".01f\"),\n labelOffset = 10,\n labelAlign = \"middle\",\n labelDelimiter = \"to\",\n labelWidth,\n orient = \"vertical\",\n ascending = false,\n path,\n titleWidth,\n legendDispatcher = dispatch(\"cellover\", \"cellout\", \"cellclick\");\n\n function legend(svg) {\n\n const type = helper.d3_calcType(scale, ascending, cells, labels, labelFormat, labelDelimiter),\n legendG = svg.selectAll('g').data([scale]);\n\n legendG.enter().append('g').attr('class', classPrefix + 'legendCells');\n \n if (cellFilter){\n helper.d3_filterCells(type, cellFilter)\n }\n \n let cell = svg.select('.' + classPrefix + 'legendCells')\n .selectAll(\".\" + classPrefix + \"cell\").data(type.data)\n\n const cellEnter = cell.enter().append(\"g\")\n .attr(\"class\", classPrefix + \"cell\")\n cellEnter.append(shape).attr(\"class\", classPrefix + \"swatch\")\n\n const shapes = svg.selectAll(\"g.\" + classPrefix + \"cell \" + shape);\n\n //add event handlers\n helper.d3_addEvents(cellEnter, legendDispatcher);\n\n cell.exit().transition().style(\"opacity\", 0).remove();\n\n helper.d3_drawShapes(shape, shapes, shapeHeight, shapeWidth, shapeRadius, path);\n helper.d3_addText( svg, cellEnter, type.labels, classPrefix)\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 text = cell.selectAll(\"text\"),\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 cellTrans = (d,i) => `translate(0, ${i * (shapeSize[i].height + shapePadding)})`;\n textTrans = (d,i) => `translate( ${(shapeSize[i].width + shapeSize[i].x +\n labelOffset)}, ${(shapeSize[i].y + shapeSize[i].height/2 + 5)})`;\n\n } else if (orient === \"horizontal\"){\n cellTrans = (d,i) => `translate(${(i * (shapeSize[i].width + shapePadding))},0)`\n textTrans = (d,i) => `translate(${(shapeSize[i].width*textAlign + shapeSize[i].x)},\n ${(shapeSize[i].height + shapeSize[i].y + labelOffset + 8)})`;\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\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\" || (_ == \"path\" && (typeof d === 'string')) ){\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.labelFormat = function(_) {\n if (!arguments.length) return labelFormat;\n labelFormat = typeof(_) === 'string' ? format(_) : _;\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.labelWidth = function(_) {\n if (!arguments.length) return labelWidth;\n labelWidth = _;\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.on = function(){\n const value = legendDispatcher.on.apply(legendDispatcher, arguments)\n return value === legendDispatcher ? legend : value;\n }\n\n return legend;\n\n};\n","import helper from './legend';\nimport { dispatch } from 'd3-dispatch';\nimport { scaleLinear } from 'd3-scale';\nimport { format } from 'd3-format';\nimport { sum, max } from 'd3-array';\n\nexport default function size(){\n\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 labelFormat = format(\".01f\"),\n labelOffset = 10,\n labelAlign = \"middle\",\n labelDelimiter = \"to\",\n labelWidth,\n orient = \"vertical\",\n ascending = false,\n path,\n titleWidth,\n legendDispatcher = dispatch(\"cellover\", \"cellout\", \"cellclick\");\n\n function legend(svg){\n\n const type = helper.d3_calcType(scale, ascending, cells, labels, labelFormat, labelDelimiter),\n legendG = svg.selectAll('g').data([scale]);\n\n if (cellFilter){\n helper.d3_filterCells(type, cellFilter)\n }\n\n legendG.enter().append('g').attr('class', classPrefix + 'legendCells');\n\n let cell = svg.select('.' + classPrefix + 'legendCells')\n .selectAll(\".\" + classPrefix + \"cell\").data(type.data)\n const cellEnter = cell.enter().append(\"g\")\n .attr(\"class\", classPrefix + \"cell\")\n cellEnter.append(shape).attr(\"class\", classPrefix + \"swatch\")\n\n const shapes = svg.selectAll(\"g.\" + classPrefix + \"cell \" + shape);\n\n //add event handlers\n helper.d3_addEvents(cellEnter, legendDispatcher);\n\n cell.exit().transition().style(\"opacity\", 0).remove();\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(shape, shapes, type.feature, type.feature, type.feature, path);\n }\n\n helper.d3_addText( svg, cellEnter, type.labels, classPrefix)\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 text = cell.selectAll(\"text\"),\n shapeSize = shapes.nodes().map(\n (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\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\n cellTrans = (d,i) => {\n const height = sum(shapeSize.slice(0, i + 1 ), d => d.height);\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\n } else if (orient === \"horizontal\"){\n cellTrans = (d,i) => {\n const width = sum(shapeSize.slice(0, i + 1 ), d => d.width);\n return `translate(${(width + i*shapePadding)},0)`; };\n\n textTrans = (d,i) => `translate( ${(shapeSize[i].width*textAlign + 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\n cell.transition().style(\"opacity\", 1);\n\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.labelFormat = function(_) {\n if (!arguments.length) return labelFormat;\n labelFormat = typeof(_) === 'string' ? format(_) : _;\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.labelWidth = function(_) {\n if (!arguments.length) return labelWidth;\n labelWidth = _;\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};\n","import helper from './legend';\nimport { dispatch } from 'd3-dispatch';\nimport { scaleLinear } from 'd3-scale';\nimport { format } from 'd3-format';\nimport { max } from 'd3-array';\n\nexport default function symbol(){\n\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 labelFormat = format(\".01f\"),\n labelAlign = \"middle\",\n labelOffset = 10,\n labelDelimiter = \"to\",\n labelWidth,\n orient = \"vertical\",\n ascending = false,\n titleWidth,\n legendDispatcher = dispatch(\"cellover\", \"cellout\", \"cellclick\");\n\n function legend(svg){\n\n const type = helper.d3_calcType(scale, ascending, cells, labels, labelFormat, labelDelimiter),\n legendG = svg.selectAll('g').data([scale]);\n\n if (cellFilter){\n helper.d3_filterCells(type, cellFilter)\n }\n\n legendG.enter().append('g').attr('class', classPrefix + 'legendCells');\n\n let cell = svg.select('.' + classPrefix + 'legendCells')\n .selectAll(\".\" + classPrefix + \"cell\").data(type.data)\n const cellEnter = cell.enter().append(\"g\")\n .attr(\"class\", classPrefix + \"cell\")\n cellEnter.append(shape).attr(\"class\", classPrefix + \"swatch\")\n\n const shapes = svg.selectAll(\"g.\" + classPrefix + \"cell \" + shape);\n\n //add event handlers\n helper.d3_addEvents(cellEnter, legendDispatcher);\n\n //remove old shapes\n cell.exit().transition().style(\"opacity\", 0).remove();\n\n helper.d3_drawShapes(shape, shapes, shapeHeight, shapeWidth, shapeRadius, type.feature);\n helper.d3_addText( svg, cellEnter, type.labels, classPrefix, labelWidth)\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 text = cell.selectAll(\"text\"),\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 cellTrans = (d,i) => `translate(0, ${(i * (maxH + shapePadding))} )`;\n textTrans = (d,i) => `translate( ${(maxW + labelOffset)},\n ${(shapeSize[i].y + shapeSize[i].height/2 + 5)})`;\n\n } else if (orient === \"horizontal\"){\n cellTrans = (d,i) => `translate( ${(i * (maxW + shapePadding))},0)`;\n textTrans = (d,i) => `translate( ${(shapeSize[i].width*textAlign + 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\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.labelFormat = function(_) {\n if (!arguments.length) return labelFormat;\n labelFormat = typeof(_) === 'string' ? format(_) : _;\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.labelWidth = function(_) {\n if (!arguments.length) return labelWidth;\n labelWidth = _;\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};\n","export const thresholdLabels = function({ i, genLength, generatedLabels }){\n\n if (i === 0 ){\n return generatedLabels[i].replace('NaN to', 'Less than')\n } else if (i === genLength - 1) {\n return `More than ${generatedLabels[genLength - 1].replace(' to NaN', '')}`\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","arr","mirror","i","l","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","customLabels","genLength","d3_linearLegend","scale","cells","labelFormat","data","increment","map","d3_quantLegend","labelDelimiter","invert","invertExtent","d3_ordinalLegend","d3_cellOver","cellDispatcher","obj","call","d3_cellOut","d3_cellClick","shape","shapes","shapeHeight","shapeWidth","shapeRadius","path","svg","enter","classPrefix","labelWidth","selectAll","ascending","type","ticks","undefined","cellFilter","filterCells","label","filter","dataValues","labelValues","indexOf","orient","cell","cellTrans","textTrans","labelAlign","style","dispatcher","on","title","titleWidth","titleText","cellsSvg","yOffset","nodes","getBBox","height","xOffset","x","color","scaleLinear","shapePadding","useClass","format","labelOffset","legendDispatcher","dispatch","legend","helper","d3_calcType","legendG","d3_filterCells","cellEnter","d3_addEvents","exit","transition","remove","d3_drawShapes","d3_addText","merge","shapeSize","feature","textAlign","y","d3_placement","d3_title","_","arguments","toLowerCase","value","apply","size","bbox","stroke","maxH","max","maxW","sum","slice","symbol","thresholdLabels","generatedLabels","replace"],"mappings":"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"}