@carbon/charts 0.48.3 → 0.48.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -39,6 +39,7 @@ var Legend = /** @class */ (function (_super) {
39
39
  var userProvidedOrder = Tools.getProperty(legendOptions, 'order');
40
40
  var svg = this.getComponentContainer()
41
41
  .classed('center-aligned', alignment === Alignments.CENTER)
42
+ .classed('right-aligned', alignment === Alignments.RIGHT)
42
43
  .classed(legendOrientation, true)
43
44
  .classed('has-deactivated-items', hasDeactivatedItems)
44
45
  .attr('role', Roles.GROUP)
@@ -1 +1 @@
1
- {"version":3,"file":"legend.js","sourceRoot":"","sources":["legend.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { Tools } from '../../tools';\nimport {\n\tAlignments,\n\tColorClassNameTypes,\n\tLegendItemType,\n\tRenderTypes,\n\tRoles,\n\tEvents,\n\tTruncationTypes,\n} from '../../interfaces';\nimport * as Configuration from '../../configuration';\n\n// D3 Imports\nimport { select } from 'd3-selection';\n\nexport class Legend extends Component {\n\ttype = 'legend';\n\trenderType = RenderTypes.HTML;\n\n\trender() {\n\t\tconst options = this.getOptions();\n\t\tconst legendOptions = Tools.getProperty(options, 'legend');\n\t\tconst alignment = Tools.getProperty(legendOptions, 'alignment');\n\n\t\tconst legendOrientation = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'legend',\n\t\t\t'orientation'\n\t\t);\n\n\t\tlet dataGroups = this.model.getDataGroups();\n\n\t\t// Check if there are disabled legend items\n\t\tconst { DISABLED } = Configuration.legend.items.status;\n\t\tconst hasDeactivatedItems = dataGroups.some(\n\t\t\t(dataGroup) => dataGroup.status === DISABLED\n\t\t);\n\t\tconst userProvidedOrder = Tools.getProperty(legendOptions, 'order');\n\n\t\tconst svg = this.getComponentContainer()\n\t\t\t.classed('center-aligned', alignment === Alignments.CENTER)\n\t\t\t.classed(legendOrientation, true)\n\t\t\t.classed('has-deactivated-items', hasDeactivatedItems)\n\t\t\t.attr('role', Roles.GROUP)\n\t\t\t.attr('data-name', 'legend-items');\n\n\t\tif (userProvidedOrder) {\n\t\t\tdataGroups = this.sortDataGroups(dataGroups, userProvidedOrder);\n\t\t}\n\n\t\tconst legendItems = svg\n\t\t\t.selectAll('div.legend-item')\n\t\t\t.data(dataGroups, (dataGroup) => dataGroup.name);\n\n\t\tconst addedLegendItems = legendItems\n\t\t\t.enter()\n\t\t\t.append('div')\n\t\t\t.attr('class', 'legend-item');\n\n\t\taddedLegendItems\n\t\t\t.merge(svg.selectAll('div.legend-item'))\n\t\t\t.classed('active', function (d, i) {\n\t\t\t\treturn d.status === Configuration.legend.items.status.ACTIVE;\n\t\t\t});\n\n\t\tconst legendClickable = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\t'legend',\n\t\t\t'clickable'\n\t\t);\n\t\tsvg.classed('clickable', legendClickable && dataGroups.length > 1);\n\n\t\tconst checkboxRadius = Configuration.legend.checkbox.radius;\n\n\t\tconst addedCheckboxes = addedLegendItems\n\t\t\t.append('div')\n\t\t\t.classed('checkbox', true);\n\n\t\taddedCheckboxes\n\t\t\t.merge(legendItems.select('div.checkbox'))\n\t\t\t.attr('role', Roles.CHECKBOX)\n\t\t\t.attr('tabindex', legendClickable ? 0 : -1)\n\t\t\t.attr('aria-label', (d) => d.name)\n\t\t\t.attr(\n\t\t\t\t'aria-checked',\n\t\t\t\t({ status }) =>\n\t\t\t\t\tstatus === Configuration.legend.items.status.ACTIVE\n\t\t\t)\n\t\t\t.attr('width', checkboxRadius * 2)\n\t\t\t.attr('height', checkboxRadius * 2)\n\t\t\t.attr('rx', 1)\n\t\t\t.attr('ry', 1)\n\t\t\t.attr('class', (d, i) =>\n\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.BACKGROUND],\n\t\t\t\t\tdataGroupName: d.name,\n\t\t\t\t\toriginalClassName: 'checkbox',\n\t\t\t\t})\n\t\t\t)\n\t\t\t.style('background', (d) =>\n\t\t\t\td.status === Configuration.legend.items.status.ACTIVE\n\t\t\t\t\t? this.model.getFillColor(d.name) ||\n\t\t\t\t\t this.model.getStrokeColor(d.name)\n\t\t\t\t\t: null\n\t\t\t)\n\t\t\t.classed('active', function (d, i) {\n\t\t\t\treturn d.status === Configuration.legend.items.status.ACTIVE;\n\t\t\t});\n\n\t\tconst addedCheckIcons = addedCheckboxes\n\t\t\t.append('svg')\n\t\t\t.attr('focusable', false)\n\t\t\t.attr('preserveAspectRatio', 'xMidYMid meet')\n\t\t\t.attr('xmlns', 'http://www.w3.org/2000/svg')\n\t\t\t.attr('width', '11')\n\t\t\t.attr('height', '11')\n\t\t\t.attr('viewBox', '0 0 31 28')\n\t\t\t.attr('aria-hidden', true)\n\t\t\t.style('will-change', 'transform')\n\t\t\t.append('path')\n\t\t\t.attr(\n\t\t\t\t'd',\n\t\t\t\t'M13 21.2l-7.1-7.1-1.4 1.4 7.1 7.1L13 24 27.1 9.9l-1.4-1.5z'\n\t\t\t);\n\n\t\tconst addedLegendItemsText = addedLegendItems\n\t\t\t.append('p')\n\t\t\t.merge(legendItems.select('p'));\n\n\t\tthis.truncateLegendText(addedLegendItemsText);\n\n\t\tconst additionalItemsOption = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'legend',\n\t\t\t'additionalItems'\n\t\t);\n\n\t\t// add additional legend items\n\t\tif (additionalItemsOption && dataGroups.length) {\n\t\t\tconst self = this;\n\n\t\t\tconst additionalItems = svg\n\t\t\t\t.selectAll('div.additional-item')\n\t\t\t\t.data(additionalItemsOption);\n\n\t\t\tadditionalItems.exit().remove();\n\n\t\t\tconst addedAdditionalItems = additionalItems\n\t\t\t\t.enter()\n\t\t\t\t.append('div')\n\t\t\t\t.merge(additionalItems)\n\t\t\t\t.classed('legend-item', true)\n\t\t\t\t.classed('additional', true);\n\n\t\t\t// remove nested child elements that no longer needed\n\t\t\taddedAdditionalItems.selectAll('*').remove();\n\n\t\t\t// get index of item with same type to assign distinct classname\n\t\t\tlet previousType;\n\t\t\tlet indexOfItem = 1;\n\n\t\t\t// add different type of legend items\n\t\t\taddedAdditionalItems\n\t\t\t\t.append('svg')\n\t\t\t\t.classed('icon', true)\n\t\t\t\t.each(function (d, i) {\n\t\t\t\t\tconst additionalItem = select(this);\n\n\t\t\t\t\tif (!previousType || previousType != d.type) {\n\t\t\t\t\t\tpreviousType = d.type;\n\t\t\t\t\t\tindexOfItem = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tindexOfItem++;\n\t\t\t\t\t}\n\n\t\t\t\t\tself.addAdditionalItem(additionalItem, d, indexOfItem);\n\t\t\t\t});\n\n\t\t\tconst addedAdditionalItemsText = addedAdditionalItems\n\t\t\t\t.append('p')\n\t\t\t\t.merge(addedAdditionalItems.select('p'));\n\n\t\t\tthis.truncateLegendText(addedAdditionalItemsText);\n\t\t}\n\n\t\t// Remove old elements as needed.\n\t\tlegendItems\n\t\t\t.exit()\n\t\t\t.on('mouseover', null)\n\t\t\t.on('click', null)\n\t\t\t.on('mouseout', null)\n\t\t\t.remove();\n\n\t\tif (legendClickable && addedLegendItems.size() > 1) {\n\t\t\tthis.addEventListeners();\n\t\t}\n\t}\n\n\tsortDataGroups(dataGroups, legendOrder) {\n\t\t// Sort data in user defined order\n\t\tdataGroups.sort(\n\t\t\t(dataA, dataB) =>\n\t\t\t\tlegendOrder.indexOf(dataA.name) -\n\t\t\t\tlegendOrder.indexOf(dataB.name)\n\t\t);\n\n\t\t// If user only defined partial ordering, ordered items are placed before unordered ones\n\t\tif (legendOrder.length < dataGroups.length) {\n\t\t\tconst definedOrderIndex = dataGroups.length - legendOrder.length;\n\t\t\tconst definedOrder = dataGroups.slice(definedOrderIndex);\n\n\t\t\treturn definedOrder.concat(dataGroups.slice(0, definedOrderIndex));\n\t\t}\n\t\treturn dataGroups;\n\t}\n\n\taddAdditionalItem(additionalItem, itemConfig, indexOfItem) {\n\t\tconst { width, height } = Configuration.legend.area;\n\n\t\tif (itemConfig.type === LegendItemType.RADIUS) {\n\t\t\t// Circular icon\n\t\t\tadditionalItem\n\t\t\t\t.style('width', `${height}px`)\n\t\t\t\t.style('height', `${height}px`);\n\t\t} else {\n\t\t\tadditionalItem\n\t\t\t\t.style('width', `${width}px`)\n\t\t\t\t.style('height', `${height}px`);\n\t\t}\n\n\t\tif (itemConfig.type === LegendItemType.RADIUS) {\n\t\t\tconst { iconData, fill, stroke } = Configuration.legend.radius;\n\n\t\t\tconst circleEnter = additionalItem\n\t\t\t\t.attr('fill', 'none')\n\t\t\t\t.selectAll('circle')\n\t\t\t\t.data(iconData)\n\t\t\t\t.enter();\n\n\t\t\tcircleEnter\n\t\t\t\t.append('circle')\n\t\t\t\t.classed('radius', true)\n\t\t\t\t.attr('role', Roles.IMG)\n\t\t\t\t.attr('aria-label', 'radius')\n\t\t\t\t.attr('cx', (d) => d.cx)\n\t\t\t\t.attr('cy', (d) => d.cy)\n\t\t\t\t.attr('r', (d) => d.r)\n\t\t\t\t.style('fill', itemConfig.fill ? itemConfig.fill : fill)\n\t\t\t\t.style(\n\t\t\t\t\t'stroke',\n\t\t\t\t\titemConfig.stroke ? itemConfig.stroke : stroke\n\t\t\t\t);\n\t\t} else if (itemConfig.type === LegendItemType.LINE) {\n\t\t\tconst lineConfig = Configuration.legend.line;\n\n\t\t\tif (additionalItem.select('line.line').empty()) {\n\t\t\t\tadditionalItem\n\t\t\t\t\t.append('line')\n\t\t\t\t\t.classed(`line-${indexOfItem}`, true)\n\t\t\t\t\t.attr('role', Roles.IMG)\n\t\t\t\t\t.attr('aria-label', 'line')\n\t\t\t\t\t.attr('x1', 0)\n\t\t\t\t\t.attr('y1', lineConfig.yPosition)\n\t\t\t\t\t.attr('x2', width)\n\t\t\t\t\t.attr('y2', lineConfig.yPosition)\n\t\t\t\t\t.style(\n\t\t\t\t\t\t'stroke',\n\t\t\t\t\t\titemConfig.stroke\n\t\t\t\t\t\t\t? itemConfig.stroke\n\t\t\t\t\t\t\t: lineConfig.stroke\n\t\t\t\t\t)\n\t\t\t\t\t.style('stroke-width', lineConfig.strokeWidth);\n\t\t\t}\n\t\t} else if (itemConfig.type === LegendItemType.AREA) {\n\t\t\tif (additionalItem.select('rect.area').empty()) {\n\t\t\t\tadditionalItem\n\t\t\t\t\t.append('rect')\n\t\t\t\t\t.classed(`area-${indexOfItem}`, true)\n\t\t\t\t\t.attr('role', Roles.IMG)\n\t\t\t\t\t.attr('aria-label', 'area')\n\t\t\t\t\t.attr('width', width)\n\t\t\t\t\t.attr('height', height)\n\t\t\t\t\t.style(\n\t\t\t\t\t\t'fill',\n\t\t\t\t\t\tindexOfItem > 3 && !itemConfig.fill\n\t\t\t\t\t\t\t? Configuration.legend.area.fill\n\t\t\t\t\t\t\t: itemConfig.fill\n\t\t\t\t\t)\n\t\t\t\t\t.style('stroke', itemConfig.stroke);\n\t\t\t}\n\t\t} else if (itemConfig.type === LegendItemType.SIZE) {\n\t\t\tconst { iconData, fill, stroke } = Configuration.legend.size;\n\n\t\t\tconst sizeEnter = additionalItem\n\t\t\t\t.attr('fill', 'none')\n\t\t\t\t.attr('role', Roles.IMG)\n\t\t\t\t.attr('aria-label', 'size')\n\t\t\t\t.selectAll('rect')\n\t\t\t\t.data(iconData)\n\t\t\t\t.enter();\n\n\t\t\tsizeEnter\n\t\t\t\t.append('rect')\n\t\t\t\t.classed('size', true)\n\t\t\t\t.attr('width', (d) => d.width)\n\t\t\t\t.attr('height', (d) => d.height)\n\t\t\t\t.attr('y', (d) => 0)\n\t\t\t\t.style('fill', itemConfig.fill ? itemConfig.fill : fill)\n\t\t\t\t.style('stroke', itemConfig.stroke ? itemConfig.stroke : stroke)\n\t\t\t\t.style('stroke-width', 1);\n\t\t} else if (itemConfig.type === LegendItemType.QUARTILE) {\n\t\t\tconst { iconData } = Configuration.legend.quartile;\n\n\t\t\tconst quartileEnter = additionalItem\n\t\t\t\t.selectAll('rect')\n\t\t\t\t.attr('role', Roles.IMG)\n\t\t\t\t.attr('aria-label', 'quartile')\n\t\t\t\t.data(iconData)\n\t\t\t\t.enter();\n\n\t\t\tquartileEnter\n\t\t\t\t.append('rect')\n\t\t\t\t.attr(\n\t\t\t\t\t'class',\n\t\t\t\t\t(d, i) => `quartile-${i === 0 ? 'wrapper' : 'line'}`\n\t\t\t\t)\n\t\t\t\t.attr('x', (d) => d.x)\n\t\t\t\t.attr('y', (d) => d.y)\n\t\t\t\t.attr('width', (d) => d.width)\n\t\t\t\t.attr('height', (d) => d.height);\n\t\t} else if (itemConfig.type === LegendItemType.ZOOM) {\n\t\t\tconst { iconData, color } = Tools.getProperty(\n\t\t\t\tConfiguration,\n\t\t\t\t'legend',\n\t\t\t\t'zoom'\n\t\t\t);\n\n\t\t\tconst zoomEnter = additionalItem\n\t\t\t\t.attr('role', Roles.IMG)\n\t\t\t\t.attr('aria-label', 'zoom')\n\t\t\t\t.selectAll('g.icon')\n\t\t\t\t.data(iconData)\n\t\t\t\t.enter();\n\n\t\t\t// add '+' for the magnifying icon\n\t\t\tzoomEnter\n\t\t\t\t.append('g')\n\t\t\t\t.attr('x', (d) => d.x)\n\t\t\t\t.attr('y', (d) => d.y)\n\t\t\t\t.attr('width', (d) => d.width)\n\t\t\t\t.attr('height', (d) => d.height)\n\t\t\t\t.append('polygon')\n\t\t\t\t.attr(\n\t\t\t\t\t'points',\n\t\t\t\t\t'7.7 4.82 5.78 4.82 5.78 2.89 4.82 2.89 4.82 4.82 2.89 4.82 2.89 5.78 4.82 5.78 4.82 7.7 5.78 7.7 5.78 5.78 7.7 5.78 7.7 4.82'\n\t\t\t\t)\n\t\t\t\t.attr('fill', (d) =>\n\t\t\t\t\titemConfig.color ? itemConfig.color : color\n\t\t\t\t);\n\n\t\t\t// add the magnifying zoom icon handle/circle\n\t\t\tzoomEnter\n\t\t\t\t.append('path')\n\t\t\t\t.attr(\n\t\t\t\t\t'd',\n\t\t\t\t\t'M9.36,8.67A5.22,5.22,0,0,0,10.59,5.3,5.3,5.3,0,1,0,5.3,10.59,5.22,5.22,0,0,0,8.67,9.36L12.32,13l.68-.68Zm-4.06,1A4.34,4.34,0,1,1,9.63,5.3,4.33,4.33,0,0,1,5.3,9.63Z'\n\t\t\t\t)\n\t\t\t\t.attr('fill', (d) =>\n\t\t\t\t\titemConfig.color ? itemConfig.color : color\n\t\t\t\t);\n\t\t}\n\t}\n\n\ttruncateLegendText(addedLegendItemsText) {\n\t\tconst trucationOptions = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\t'legend',\n\t\t\t'truncation'\n\t\t);\n\t\t// Truncation\n\t\t// get user provided custom values for truncation\n\t\tconst truncationType = Tools.getProperty(trucationOptions, 'type');\n\t\tconst truncationThreshold = Tools.getProperty(\n\t\t\ttrucationOptions,\n\t\t\t'threshold'\n\t\t);\n\t\tconst truncationNumCharacter = Tools.getProperty(\n\t\t\ttrucationOptions,\n\t\t\t'numCharacter'\n\t\t);\n\n\t\t// truncate the legend label if it's too long\n\t\tif (truncationType !== TruncationTypes.NONE) {\n\t\t\taddedLegendItemsText.html(function (d) {\n\t\t\t\tif (d.name.length > truncationThreshold) {\n\t\t\t\t\treturn Tools.truncateLabel(\n\t\t\t\t\t\td.name,\n\t\t\t\t\t\ttruncationType,\n\t\t\t\t\t\ttruncationNumCharacter\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\treturn d.name;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\taddedLegendItemsText.html((d) => d.name);\n\t\t}\n\t}\n\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tconst svg = this.getComponentContainer();\n\t\tconst options = this.getOptions();\n\t\tconst legendOptions = Tools.getProperty(options, 'legend');\n\t\tconst truncationThreshold = Tools.getProperty(\n\t\t\tlegendOptions,\n\t\t\t'truncation',\n\t\t\t'threshold'\n\t\t);\n\n\t\tsvg.selectAll('div.legend-item')\n\t\t\t.on('mouseover', function (event) {\n\t\t\t\tself.services.events.dispatchEvent(Events.Legend.ITEM_HOVER, {\n\t\t\t\t\thoveredElement: select(this),\n\t\t\t\t});\n\n\t\t\t\tconst hoveredItem = select(this);\n\t\t\t\thoveredItem.select('div.checkbox').classed('hovered', true);\n\n\t\t\t\tconst hoveredItemData = hoveredItem.datum() as any;\n\t\t\t\tif (hoveredItemData.name.length > truncationThreshold) {\n\t\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\thoveredElement: hoveredItem,\n\t\t\t\t\t\tcontent: hoveredItemData.name,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('mousemove', function (event) {\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE, {\n\t\t\t\t\tevent,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('click', function () {\n\t\t\t\tself.services.events.dispatchEvent(Events.Legend.ITEM_CLICK, {\n\t\t\t\t\tclickedElement: select(this),\n\t\t\t\t});\n\n\t\t\t\tconst clickedItem = select(this);\n\t\t\t\tconst clickedItemData = clickedItem.datum() as any;\n\n\t\t\t\tself.model.toggleDataLabel(clickedItemData.name);\n\t\t\t})\n\t\t\t.on('mouseout', function () {\n\t\t\t\tconst hoveredItem = select(this);\n\t\t\t\thoveredItem.select('div.checkbox').classed('hovered', false);\n\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE);\n\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\thoveredElement: hoveredItem,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\n\t\tsvg.selectAll('div.legend-item div.checkbox').on(\n\t\t\t'keyup',\n\t\t\tfunction (event, d) {\n\t\t\t\tif (event.key && (event.key === 'Enter' || event.key === ' ')) {\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tself.model.toggleDataLabel(d.name);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tsvg.selectAll('g.additional-item').on('mouseover', function (event) {\n\t\t\tconst hoveredItem = select(this);\n\n\t\t\tconst hoveredItemData = hoveredItem.datum() as any;\n\t\t\tif (hoveredItemData.name.length > truncationThreshold) {\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\tevent,\n\t\t\t\t\thoveredElement: hoveredItem,\n\t\t\t\t\tcontent: hoveredItemData.name,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n}\n"]}
1
+ {"version":3,"file":"legend.js","sourceRoot":"","sources":["legend.ts"],"names":[],"mappings":"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","sourcesContent":["// Internal Imports\nimport { Component } from '../component';\nimport { Tools } from '../../tools';\nimport {\n\tAlignments,\n\tColorClassNameTypes,\n\tLegendItemType,\n\tRenderTypes,\n\tRoles,\n\tEvents,\n\tTruncationTypes,\n} from '../../interfaces';\nimport * as Configuration from '../../configuration';\n\n// D3 Imports\nimport { select } from 'd3-selection';\n\nexport class Legend extends Component {\n\ttype = 'legend';\n\trenderType = RenderTypes.HTML;\n\n\trender() {\n\t\tconst options = this.getOptions();\n\t\tconst legendOptions = Tools.getProperty(options, 'legend');\n\t\tconst alignment = Tools.getProperty(legendOptions, 'alignment');\n\n\t\tconst legendOrientation = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'legend',\n\t\t\t'orientation'\n\t\t);\n\n\t\tlet dataGroups = this.model.getDataGroups();\n\n\t\t// Check if there are disabled legend items\n\t\tconst { DISABLED } = Configuration.legend.items.status;\n\t\tconst hasDeactivatedItems = dataGroups.some(\n\t\t\t(dataGroup) => dataGroup.status === DISABLED\n\t\t);\n\t\tconst userProvidedOrder = Tools.getProperty(legendOptions, 'order');\n\n\t\tconst svg = this.getComponentContainer()\n\t\t\t.classed('center-aligned', alignment === Alignments.CENTER)\n\t\t\t.classed('right-aligned', alignment === Alignments.RIGHT)\n\t\t\t.classed(legendOrientation, true)\n\t\t\t.classed('has-deactivated-items', hasDeactivatedItems)\n\t\t\t.attr('role', Roles.GROUP)\n\t\t\t.attr('data-name', 'legend-items');\n\n\t\tif (userProvidedOrder) {\n\t\t\tdataGroups = this.sortDataGroups(dataGroups, userProvidedOrder);\n\t\t}\n\n\t\tconst legendItems = svg\n\t\t\t.selectAll('div.legend-item')\n\t\t\t.data(dataGroups, (dataGroup) => dataGroup.name);\n\n\t\tconst addedLegendItems = legendItems\n\t\t\t.enter()\n\t\t\t.append('div')\n\t\t\t.attr('class', 'legend-item');\n\n\t\taddedLegendItems\n\t\t\t.merge(svg.selectAll('div.legend-item'))\n\t\t\t.classed('active', function (d, i) {\n\t\t\t\treturn d.status === Configuration.legend.items.status.ACTIVE;\n\t\t\t});\n\n\t\tconst legendClickable = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\t'legend',\n\t\t\t'clickable'\n\t\t);\n\t\tsvg.classed('clickable', legendClickable && dataGroups.length > 1);\n\n\t\tconst checkboxRadius = Configuration.legend.checkbox.radius;\n\n\t\tconst addedCheckboxes = addedLegendItems\n\t\t\t.append('div')\n\t\t\t.classed('checkbox', true);\n\n\t\taddedCheckboxes\n\t\t\t.merge(legendItems.select('div.checkbox'))\n\t\t\t.attr('role', Roles.CHECKBOX)\n\t\t\t.attr('tabindex', legendClickable ? 0 : -1)\n\t\t\t.attr('aria-label', (d) => d.name)\n\t\t\t.attr(\n\t\t\t\t'aria-checked',\n\t\t\t\t({ status }) =>\n\t\t\t\t\tstatus === Configuration.legend.items.status.ACTIVE\n\t\t\t)\n\t\t\t.attr('width', checkboxRadius * 2)\n\t\t\t.attr('height', checkboxRadius * 2)\n\t\t\t.attr('rx', 1)\n\t\t\t.attr('ry', 1)\n\t\t\t.attr('class', (d, i) =>\n\t\t\t\tthis.model.getColorClassName({\n\t\t\t\t\tclassNameTypes: [ColorClassNameTypes.BACKGROUND],\n\t\t\t\t\tdataGroupName: d.name,\n\t\t\t\t\toriginalClassName: 'checkbox',\n\t\t\t\t})\n\t\t\t)\n\t\t\t.style('background', (d) =>\n\t\t\t\td.status === Configuration.legend.items.status.ACTIVE\n\t\t\t\t\t? this.model.getFillColor(d.name) ||\n\t\t\t\t\t this.model.getStrokeColor(d.name)\n\t\t\t\t\t: null\n\t\t\t)\n\t\t\t.classed('active', function (d, i) {\n\t\t\t\treturn d.status === Configuration.legend.items.status.ACTIVE;\n\t\t\t});\n\n\t\tconst addedCheckIcons = addedCheckboxes\n\t\t\t.append('svg')\n\t\t\t.attr('focusable', false)\n\t\t\t.attr('preserveAspectRatio', 'xMidYMid meet')\n\t\t\t.attr('xmlns', 'http://www.w3.org/2000/svg')\n\t\t\t.attr('width', '11')\n\t\t\t.attr('height', '11')\n\t\t\t.attr('viewBox', '0 0 31 28')\n\t\t\t.attr('aria-hidden', true)\n\t\t\t.style('will-change', 'transform')\n\t\t\t.append('path')\n\t\t\t.attr(\n\t\t\t\t'd',\n\t\t\t\t'M13 21.2l-7.1-7.1-1.4 1.4 7.1 7.1L13 24 27.1 9.9l-1.4-1.5z'\n\t\t\t);\n\n\t\tconst addedLegendItemsText = addedLegendItems\n\t\t\t.append('p')\n\t\t\t.merge(legendItems.select('p'));\n\n\t\tthis.truncateLegendText(addedLegendItemsText);\n\n\t\tconst additionalItemsOption = Tools.getProperty(\n\t\t\toptions,\n\t\t\t'legend',\n\t\t\t'additionalItems'\n\t\t);\n\n\t\t// add additional legend items\n\t\tif (additionalItemsOption && dataGroups.length) {\n\t\t\tconst self = this;\n\n\t\t\tconst additionalItems = svg\n\t\t\t\t.selectAll('div.additional-item')\n\t\t\t\t.data(additionalItemsOption);\n\n\t\t\tadditionalItems.exit().remove();\n\n\t\t\tconst addedAdditionalItems = additionalItems\n\t\t\t\t.enter()\n\t\t\t\t.append('div')\n\t\t\t\t.merge(additionalItems)\n\t\t\t\t.classed('legend-item', true)\n\t\t\t\t.classed('additional', true);\n\n\t\t\t// remove nested child elements that no longer needed\n\t\t\taddedAdditionalItems.selectAll('*').remove();\n\n\t\t\t// get index of item with same type to assign distinct classname\n\t\t\tlet previousType;\n\t\t\tlet indexOfItem = 1;\n\n\t\t\t// add different type of legend items\n\t\t\taddedAdditionalItems\n\t\t\t\t.append('svg')\n\t\t\t\t.classed('icon', true)\n\t\t\t\t.each(function (d, i) {\n\t\t\t\t\tconst additionalItem = select(this);\n\n\t\t\t\t\tif (!previousType || previousType != d.type) {\n\t\t\t\t\t\tpreviousType = d.type;\n\t\t\t\t\t\tindexOfItem = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tindexOfItem++;\n\t\t\t\t\t}\n\n\t\t\t\t\tself.addAdditionalItem(additionalItem, d, indexOfItem);\n\t\t\t\t});\n\n\t\t\tconst addedAdditionalItemsText = addedAdditionalItems\n\t\t\t\t.append('p')\n\t\t\t\t.merge(addedAdditionalItems.select('p'));\n\n\t\t\tthis.truncateLegendText(addedAdditionalItemsText);\n\t\t}\n\n\t\t// Remove old elements as needed.\n\t\tlegendItems\n\t\t\t.exit()\n\t\t\t.on('mouseover', null)\n\t\t\t.on('click', null)\n\t\t\t.on('mouseout', null)\n\t\t\t.remove();\n\n\t\tif (legendClickable && addedLegendItems.size() > 1) {\n\t\t\tthis.addEventListeners();\n\t\t}\n\t}\n\n\tsortDataGroups(dataGroups, legendOrder) {\n\t\t// Sort data in user defined order\n\t\tdataGroups.sort(\n\t\t\t(dataA, dataB) =>\n\t\t\t\tlegendOrder.indexOf(dataA.name) -\n\t\t\t\tlegendOrder.indexOf(dataB.name)\n\t\t);\n\n\t\t// If user only defined partial ordering, ordered items are placed before unordered ones\n\t\tif (legendOrder.length < dataGroups.length) {\n\t\t\tconst definedOrderIndex = dataGroups.length - legendOrder.length;\n\t\t\tconst definedOrder = dataGroups.slice(definedOrderIndex);\n\n\t\t\treturn definedOrder.concat(dataGroups.slice(0, definedOrderIndex));\n\t\t}\n\t\treturn dataGroups;\n\t}\n\n\taddAdditionalItem(additionalItem, itemConfig, indexOfItem) {\n\t\tconst { width, height } = Configuration.legend.area;\n\n\t\tif (itemConfig.type === LegendItemType.RADIUS) {\n\t\t\t// Circular icon\n\t\t\tadditionalItem\n\t\t\t\t.style('width', `${height}px`)\n\t\t\t\t.style('height', `${height}px`);\n\t\t} else {\n\t\t\tadditionalItem\n\t\t\t\t.style('width', `${width}px`)\n\t\t\t\t.style('height', `${height}px`);\n\t\t}\n\n\t\tif (itemConfig.type === LegendItemType.RADIUS) {\n\t\t\tconst { iconData, fill, stroke } = Configuration.legend.radius;\n\n\t\t\tconst circleEnter = additionalItem\n\t\t\t\t.attr('fill', 'none')\n\t\t\t\t.selectAll('circle')\n\t\t\t\t.data(iconData)\n\t\t\t\t.enter();\n\n\t\t\tcircleEnter\n\t\t\t\t.append('circle')\n\t\t\t\t.classed('radius', true)\n\t\t\t\t.attr('role', Roles.IMG)\n\t\t\t\t.attr('aria-label', 'radius')\n\t\t\t\t.attr('cx', (d) => d.cx)\n\t\t\t\t.attr('cy', (d) => d.cy)\n\t\t\t\t.attr('r', (d) => d.r)\n\t\t\t\t.style('fill', itemConfig.fill ? itemConfig.fill : fill)\n\t\t\t\t.style(\n\t\t\t\t\t'stroke',\n\t\t\t\t\titemConfig.stroke ? itemConfig.stroke : stroke\n\t\t\t\t);\n\t\t} else if (itemConfig.type === LegendItemType.LINE) {\n\t\t\tconst lineConfig = Configuration.legend.line;\n\n\t\t\tif (additionalItem.select('line.line').empty()) {\n\t\t\t\tadditionalItem\n\t\t\t\t\t.append('line')\n\t\t\t\t\t.classed(`line-${indexOfItem}`, true)\n\t\t\t\t\t.attr('role', Roles.IMG)\n\t\t\t\t\t.attr('aria-label', 'line')\n\t\t\t\t\t.attr('x1', 0)\n\t\t\t\t\t.attr('y1', lineConfig.yPosition)\n\t\t\t\t\t.attr('x2', width)\n\t\t\t\t\t.attr('y2', lineConfig.yPosition)\n\t\t\t\t\t.style(\n\t\t\t\t\t\t'stroke',\n\t\t\t\t\t\titemConfig.stroke\n\t\t\t\t\t\t\t? itemConfig.stroke\n\t\t\t\t\t\t\t: lineConfig.stroke\n\t\t\t\t\t)\n\t\t\t\t\t.style('stroke-width', lineConfig.strokeWidth);\n\t\t\t}\n\t\t} else if (itemConfig.type === LegendItemType.AREA) {\n\t\t\tif (additionalItem.select('rect.area').empty()) {\n\t\t\t\tadditionalItem\n\t\t\t\t\t.append('rect')\n\t\t\t\t\t.classed(`area-${indexOfItem}`, true)\n\t\t\t\t\t.attr('role', Roles.IMG)\n\t\t\t\t\t.attr('aria-label', 'area')\n\t\t\t\t\t.attr('width', width)\n\t\t\t\t\t.attr('height', height)\n\t\t\t\t\t.style(\n\t\t\t\t\t\t'fill',\n\t\t\t\t\t\tindexOfItem > 3 && !itemConfig.fill\n\t\t\t\t\t\t\t? Configuration.legend.area.fill\n\t\t\t\t\t\t\t: itemConfig.fill\n\t\t\t\t\t)\n\t\t\t\t\t.style('stroke', itemConfig.stroke);\n\t\t\t}\n\t\t} else if (itemConfig.type === LegendItemType.SIZE) {\n\t\t\tconst { iconData, fill, stroke } = Configuration.legend.size;\n\n\t\t\tconst sizeEnter = additionalItem\n\t\t\t\t.attr('fill', 'none')\n\t\t\t\t.attr('role', Roles.IMG)\n\t\t\t\t.attr('aria-label', 'size')\n\t\t\t\t.selectAll('rect')\n\t\t\t\t.data(iconData)\n\t\t\t\t.enter();\n\n\t\t\tsizeEnter\n\t\t\t\t.append('rect')\n\t\t\t\t.classed('size', true)\n\t\t\t\t.attr('width', (d) => d.width)\n\t\t\t\t.attr('height', (d) => d.height)\n\t\t\t\t.attr('y', (d) => 0)\n\t\t\t\t.style('fill', itemConfig.fill ? itemConfig.fill : fill)\n\t\t\t\t.style('stroke', itemConfig.stroke ? itemConfig.stroke : stroke)\n\t\t\t\t.style('stroke-width', 1);\n\t\t} else if (itemConfig.type === LegendItemType.QUARTILE) {\n\t\t\tconst { iconData } = Configuration.legend.quartile;\n\n\t\t\tconst quartileEnter = additionalItem\n\t\t\t\t.selectAll('rect')\n\t\t\t\t.attr('role', Roles.IMG)\n\t\t\t\t.attr('aria-label', 'quartile')\n\t\t\t\t.data(iconData)\n\t\t\t\t.enter();\n\n\t\t\tquartileEnter\n\t\t\t\t.append('rect')\n\t\t\t\t.attr(\n\t\t\t\t\t'class',\n\t\t\t\t\t(d, i) => `quartile-${i === 0 ? 'wrapper' : 'line'}`\n\t\t\t\t)\n\t\t\t\t.attr('x', (d) => d.x)\n\t\t\t\t.attr('y', (d) => d.y)\n\t\t\t\t.attr('width', (d) => d.width)\n\t\t\t\t.attr('height', (d) => d.height);\n\t\t} else if (itemConfig.type === LegendItemType.ZOOM) {\n\t\t\tconst { iconData, color } = Tools.getProperty(\n\t\t\t\tConfiguration,\n\t\t\t\t'legend',\n\t\t\t\t'zoom'\n\t\t\t);\n\n\t\t\tconst zoomEnter = additionalItem\n\t\t\t\t.attr('role', Roles.IMG)\n\t\t\t\t.attr('aria-label', 'zoom')\n\t\t\t\t.selectAll('g.icon')\n\t\t\t\t.data(iconData)\n\t\t\t\t.enter();\n\n\t\t\t// add '+' for the magnifying icon\n\t\t\tzoomEnter\n\t\t\t\t.append('g')\n\t\t\t\t.attr('x', (d) => d.x)\n\t\t\t\t.attr('y', (d) => d.y)\n\t\t\t\t.attr('width', (d) => d.width)\n\t\t\t\t.attr('height', (d) => d.height)\n\t\t\t\t.append('polygon')\n\t\t\t\t.attr(\n\t\t\t\t\t'points',\n\t\t\t\t\t'7.7 4.82 5.78 4.82 5.78 2.89 4.82 2.89 4.82 4.82 2.89 4.82 2.89 5.78 4.82 5.78 4.82 7.7 5.78 7.7 5.78 5.78 7.7 5.78 7.7 4.82'\n\t\t\t\t)\n\t\t\t\t.attr('fill', (d) =>\n\t\t\t\t\titemConfig.color ? itemConfig.color : color\n\t\t\t\t);\n\n\t\t\t// add the magnifying zoom icon handle/circle\n\t\t\tzoomEnter\n\t\t\t\t.append('path')\n\t\t\t\t.attr(\n\t\t\t\t\t'd',\n\t\t\t\t\t'M9.36,8.67A5.22,5.22,0,0,0,10.59,5.3,5.3,5.3,0,1,0,5.3,10.59,5.22,5.22,0,0,0,8.67,9.36L12.32,13l.68-.68Zm-4.06,1A4.34,4.34,0,1,1,9.63,5.3,4.33,4.33,0,0,1,5.3,9.63Z'\n\t\t\t\t)\n\t\t\t\t.attr('fill', (d) =>\n\t\t\t\t\titemConfig.color ? itemConfig.color : color\n\t\t\t\t);\n\t\t}\n\t}\n\n\ttruncateLegendText(addedLegendItemsText) {\n\t\tconst trucationOptions = Tools.getProperty(\n\t\t\tthis.getOptions(),\n\t\t\t'legend',\n\t\t\t'truncation'\n\t\t);\n\t\t// Truncation\n\t\t// get user provided custom values for truncation\n\t\tconst truncationType = Tools.getProperty(trucationOptions, 'type');\n\t\tconst truncationThreshold = Tools.getProperty(\n\t\t\ttrucationOptions,\n\t\t\t'threshold'\n\t\t);\n\t\tconst truncationNumCharacter = Tools.getProperty(\n\t\t\ttrucationOptions,\n\t\t\t'numCharacter'\n\t\t);\n\n\t\t// truncate the legend label if it's too long\n\t\tif (truncationType !== TruncationTypes.NONE) {\n\t\t\taddedLegendItemsText.html(function (d) {\n\t\t\t\tif (d.name.length > truncationThreshold) {\n\t\t\t\t\treturn Tools.truncateLabel(\n\t\t\t\t\t\td.name,\n\t\t\t\t\t\ttruncationType,\n\t\t\t\t\t\ttruncationNumCharacter\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\treturn d.name;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\taddedLegendItemsText.html((d) => d.name);\n\t\t}\n\t}\n\n\taddEventListeners() {\n\t\tconst self = this;\n\t\tconst svg = this.getComponentContainer();\n\t\tconst options = this.getOptions();\n\t\tconst legendOptions = Tools.getProperty(options, 'legend');\n\t\tconst truncationThreshold = Tools.getProperty(\n\t\t\tlegendOptions,\n\t\t\t'truncation',\n\t\t\t'threshold'\n\t\t);\n\n\t\tsvg.selectAll('div.legend-item')\n\t\t\t.on('mouseover', function (event) {\n\t\t\t\tself.services.events.dispatchEvent(Events.Legend.ITEM_HOVER, {\n\t\t\t\t\thoveredElement: select(this),\n\t\t\t\t});\n\n\t\t\t\tconst hoveredItem = select(this);\n\t\t\t\thoveredItem.select('div.checkbox').classed('hovered', true);\n\n\t\t\t\tconst hoveredItemData = hoveredItem.datum() as any;\n\t\t\t\tif (hoveredItemData.name.length > truncationThreshold) {\n\t\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\t\tevent,\n\t\t\t\t\t\thoveredElement: hoveredItem,\n\t\t\t\t\t\tcontent: hoveredItemData.name,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.on('mousemove', function (event) {\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.MOVE, {\n\t\t\t\t\tevent,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.on('click', function () {\n\t\t\t\tself.services.events.dispatchEvent(Events.Legend.ITEM_CLICK, {\n\t\t\t\t\tclickedElement: select(this),\n\t\t\t\t});\n\n\t\t\t\tconst clickedItem = select(this);\n\t\t\t\tconst clickedItemData = clickedItem.datum() as any;\n\n\t\t\t\tself.model.toggleDataLabel(clickedItemData.name);\n\t\t\t})\n\t\t\t.on('mouseout', function () {\n\t\t\t\tconst hoveredItem = select(this);\n\t\t\t\thoveredItem.select('div.checkbox').classed('hovered', false);\n\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.HIDE);\n\n\t\t\t\tself.services.events.dispatchEvent(\n\t\t\t\t\tEvents.Legend.ITEM_MOUSEOUT,\n\t\t\t\t\t{\n\t\t\t\t\t\thoveredElement: hoveredItem,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\n\t\tsvg.selectAll('div.legend-item div.checkbox').on(\n\t\t\t'keyup',\n\t\t\tfunction (event, d) {\n\t\t\t\tif (event.key && (event.key === 'Enter' || event.key === ' ')) {\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tself.model.toggleDataLabel(d.name);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tsvg.selectAll('g.additional-item').on('mouseover', function (event) {\n\t\t\tconst hoveredItem = select(this);\n\n\t\t\tconst hoveredItemData = hoveredItem.datum() as any;\n\t\t\tif (hoveredItemData.name.length > truncationThreshold) {\n\t\t\t\tself.services.events.dispatchEvent(Events.Tooltip.SHOW, {\n\t\t\t\t\tevent,\n\t\t\t\t\thoveredElement: hoveredItem,\n\t\t\t\t\tcontent: hoveredItemData.name,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n}\n"]}
package/demo/styles.css CHANGED
@@ -10992,6 +10992,7 @@ div.container.theme--white div.bx--cc--legend {
10992
10992
  flex-wrap: wrap;
10993
10993
  }
10994
10994
  div.container.theme--white div.bx--cc--legend[data-name=legend-items] {
10995
+ width: 100%;
10995
10996
  margin: -5px;
10996
10997
  }
10997
10998
  div.container.theme--white div.bx--cc--legend div.legend-item {
@@ -11028,6 +11029,9 @@ div.container.theme--white div.bx--cc--legend div.legend-item p {
11028
11029
  div.container.theme--white div.bx--cc--legend.center-aligned {
11029
11030
  justify-content: center;
11030
11031
  }
11032
+ div.container.theme--white div.bx--cc--legend.right-aligned {
11033
+ justify-content: flex-end;
11034
+ }
11031
11035
  div.container.theme--white div.bx--cc--legend.has-deactivated-items div.legend-item div.checkbox svg {
11032
11036
  display: block;
11033
11037
  }
@@ -15033,6 +15037,7 @@ div.container.theme--g10 div.bx--cc--legend {
15033
15037
  flex-wrap: wrap;
15034
15038
  }
15035
15039
  div.container.theme--g10 div.bx--cc--legend[data-name=legend-items] {
15040
+ width: 100%;
15036
15041
  margin: -5px;
15037
15042
  }
15038
15043
  div.container.theme--g10 div.bx--cc--legend div.legend-item {
@@ -15069,6 +15074,9 @@ div.container.theme--g10 div.bx--cc--legend div.legend-item p {
15069
15074
  div.container.theme--g10 div.bx--cc--legend.center-aligned {
15070
15075
  justify-content: center;
15071
15076
  }
15077
+ div.container.theme--g10 div.bx--cc--legend.right-aligned {
15078
+ justify-content: flex-end;
15079
+ }
15072
15080
  div.container.theme--g10 div.bx--cc--legend.has-deactivated-items div.legend-item div.checkbox svg {
15073
15081
  display: block;
15074
15082
  }
@@ -19473,6 +19481,7 @@ div.container.theme--g90 div.bx--cc--legend {
19473
19481
  flex-wrap: wrap;
19474
19482
  }
19475
19483
  div.container.theme--g90 div.bx--cc--legend[data-name=legend-items] {
19484
+ width: 100%;
19476
19485
  margin: -5px;
19477
19486
  }
19478
19487
  div.container.theme--g90 div.bx--cc--legend div.legend-item {
@@ -19509,6 +19518,9 @@ div.container.theme--g90 div.bx--cc--legend div.legend-item p {
19509
19518
  div.container.theme--g90 div.bx--cc--legend.center-aligned {
19510
19519
  justify-content: center;
19511
19520
  }
19521
+ div.container.theme--g90 div.bx--cc--legend.right-aligned {
19522
+ justify-content: flex-end;
19523
+ }
19512
19524
  div.container.theme--g90 div.bx--cc--legend.has-deactivated-items div.legend-item div.checkbox svg {
19513
19525
  display: block;
19514
19526
  }
@@ -23931,6 +23943,7 @@ div.container.theme--g100 div.bx--cc--legend {
23931
23943
  flex-wrap: wrap;
23932
23944
  }
23933
23945
  div.container.theme--g100 div.bx--cc--legend[data-name=legend-items] {
23946
+ width: 100%;
23934
23947
  margin: -5px;
23935
23948
  }
23936
23949
  div.container.theme--g100 div.bx--cc--legend div.legend-item {
@@ -23967,6 +23980,9 @@ div.container.theme--g100 div.bx--cc--legend div.legend-item p {
23967
23980
  div.container.theme--g100 div.bx--cc--legend.center-aligned {
23968
23981
  justify-content: center;
23969
23982
  }
23983
+ div.container.theme--g100 div.bx--cc--legend.right-aligned {
23984
+ justify-content: flex-end;
23985
+ }
23970
23986
  div.container.theme--g100 div.bx--cc--legend.has-deactivated-items div.legend-item div.checkbox svg {
23971
23987
  display: block;
23972
23988
  }