package.es-modules.Series.Sankey.SankeySeriesDefaults.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of highcharts Show documentation
Show all versions of highcharts Show documentation
JavaScript charting framework
The newest version!
/* *
*
* Sankey diagram module
*
* (c) 2010-2024 Torstein Honsi
*
* License: www.highcharts.com/license
*
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
*
* */
'use strict';
/* *
*
* API Options
*
* */
/**
* A sankey diagram is a type of flow diagram, in which the width of the
* link between two nodes is shown proportionally to the flow quantity.
*
* @sample highcharts/demo/sankey-diagram/
* Sankey diagram
* @sample highcharts/plotoptions/sankey-inverted/
* Inverted sankey diagram
* @sample highcharts/plotoptions/sankey-outgoing
* Sankey diagram with outgoing links
*
* @extends plotOptions.column
* @since 6.0.0
* @product highcharts
* @excluding animationLimit, boostThreshold, borderRadius,
* crisp, cropThreshold, colorAxis, colorKey, depth, dragDrop,
* edgeColor, edgeWidth, findNearestPointBy, grouping,
* groupPadding, groupZPadding, maxPointWidth, negativeColor,
* pointInterval, pointIntervalUnit, pointPadding,
* pointPlacement, pointRange, pointStart, pointWidth,
* shadow, softThreshold, stacking, threshold, zoneAxis,
* zones, minPointLength, dataSorting, boostBlending
* @requires modules/sankey
* @optionparent plotOptions.sankey
*
* @private
*/
const SankeySeriesDefaults = {
borderWidth: 0,
colorByPoint: true,
/**
* Higher numbers makes the links in a sankey diagram or dependency
* wheelrender more curved. A `curveFactor` of 0 makes the lines
* straight.
*
* @private
*/
curveFactor: 0.33,
/**
* Options for the data labels appearing on top of the nodes and links.
* For sankey charts, data labels are visible for the nodes by default,
* but hidden for links. This is controlled by modifying the
* `nodeFormat`, and the `format` that applies to links and is an empty
* string by default.
*
* @declare Highcharts.SeriesSankeyDataLabelsOptionsObject
*
* @private
*/
dataLabels: {
enabled: true,
backgroundColor: 'none', // Enable padding
crop: false,
/**
* The
* [format string](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting)
* specifying what to show for _nodes_ in the sankey diagram. By
* default the `nodeFormatter` returns `{point.name}`.
*
* @sample highcharts/plotoptions/sankey-link-datalabels/
* Node and link data labels
*
* @type {string}
*/
nodeFormat: void 0,
/**
* Callback to format data labels for _nodes_ in the sankey diagram.
* The `nodeFormat` option takes precedence over the
* `nodeFormatter`.
*
* @type {Highcharts.SeriesSankeyDataLabelsFormatterCallbackFunction}
* @since 6.0.2
*/
nodeFormatter: function () {
return this.point.name;
},
format: void 0,
/**
* @type {Highcharts.SeriesSankeyDataLabelsFormatterCallbackFunction}
*/
formatter: function () {
return;
},
inside: true
},
/**
* @default true
* @extends plotOptions.series.inactiveOtherPoints
* @private
*/
inactiveOtherPoints: true,
/**
* Set options on specific levels. Takes precedence over series options,
* but not node and link options.
*
* @sample highcharts/demo/sunburst
* Sunburst chart
*
* @type {Array<*>}
* @since 7.1.0
* @apioption plotOptions.sankey.levels
*/
/**
* Can set `borderColor` on all nodes which lay on the same level.
*
* @type {Highcharts.ColorString}
* @apioption plotOptions.sankey.levels.borderColor
*/
/**
* Can set `borderWidth` on all nodes which lay on the same level.
*
* @type {number}
* @apioption plotOptions.sankey.levels.borderWidth
*/
/**
* Can set `color` on all nodes which lay on the same level.
*
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
* @apioption plotOptions.sankey.levels.color
*/
/**
* Can set `colorByPoint` on all nodes which lay on the same level.
*
* @type {boolean}
* @default true
* @apioption plotOptions.sankey.levels.colorByPoint
*/
/**
* Can set `dataLabels` on all points which lay on the same level.
*
* @extends plotOptions.sankey.dataLabels
* @apioption plotOptions.sankey.levels.dataLabels
*/
/**
* Decides which level takes effect from the options set in the levels
* object.
*
* @type {number}
* @apioption plotOptions.sankey.levels.level
*/
/**
* Can set `linkOpacity` on all points which lay on the same level.
*
* @type {number}
* @default 0.5
* @apioption plotOptions.sankey.levels.linkOpacity
*/
/**
* Can set `states` on all nodes and points which lay on the same level.
*
* @extends plotOptions.sankey.states
* @apioption plotOptions.sankey.levels.states
*/
/**
* Determines color mode for sankey links. Available options:
*
* - `from` color of the sankey link will be the same as the 'from node'
*
* - `gradient` color of the sankey link will be set to gradient between
* colors of 'from node' and 'to node'
*
* - `to` color of the sankey link will be same as the 'to node'.
*
* @sample highcharts/demo/vertical-sankey
* Vertical sankey diagram with gradients
* @sample highcharts/series-sankey/link-color-mode
* Sankey diagram with gradients and explanation
*
* @type {('from'|'gradient'|'to')}
* @since 11.2.0
*/
linkColorMode: 'from',
/**
* Opacity for the links between nodes in the sankey diagram.
*
* @private
*/
linkOpacity: 0.5,
/**
* Opacity for the nodes in the sankey diagram.
*
* @private
*/
opacity: 1,
/**
* The minimal width for a line of a sankey. By default,
* 0 values are not shown.
*
* @sample highcharts/plotoptions/sankey-minlinkwidth
* Sankey diagram with minimal link height
*
* @type {number}
* @since 7.1.3
* @default 0
* @apioption plotOptions.sankey.minLinkWidth
*
* @private
*/
minLinkWidth: 0,
/**
* Determines which side of the chart the nodes are to be aligned to. When
* the chart is inverted, `top` aligns to the left and `bottom` to the
* right.
*
* @sample highcharts/plotoptions/sankey-nodealignment
* Node alignment demonstrated
*
* @type {'top'|'center'|'bottom'}
* @apioption plotOptions.sankey.nodeAlignment
*/
nodeAlignment: 'center',
/**
* The pixel width of each node in a sankey diagram or dependency wheel, or
* the height in case the chart is inverted.
*
* Can be a number or a percentage string.
*
* Sankey series also support setting it to `auto`. With this setting, the
* nodes are sized to fill up the plot area in the longitudinal direction,
* regardless of the number of levels.
*
* @see [sankey.nodeDistance](#nodeDistance)
* @sample highcharts/series-sankey/node-distance
* Sankey with auto node width combined with node distance
* @sample highcharts/series-organization/node-distance
* Organization chart with node distance of 50%
*
* @type {number|string}
*/
nodeWidth: 20,
/**
* The padding between nodes in a sankey diagram or dependency wheel, in
* pixels. For sankey charts, this applies to the nodes of the same column,
* so vertical distance by default, or horizontal distance in an inverted
* (vertical) sankey.
*
* If the number of nodes is so great that it is impossible to lay them out
* within the plot area with the given `nodePadding`, they will be rendered
* with a smaller padding as a strategy to avoid overflow.
*/
nodePadding: 10,
/**
* The distance between nodes in a sankey diagram in the longitudinal
* direction. The longitudinal direction means the direction that the chart
* flows - in a horizontal chart the distance is horizontal, in an inverted
* chart (vertical), the distance is vertical.
*
* If a number is given, it denotes pixels. If a percentage string is given,
* the distance is a percentage of the rendered node width. A `nodeDistance`
* of `100%` will render equal widths for the nodes and the gaps between
* them.
*
* This option applies only when the `nodeWidth` option is `auto`, making
* the node width respond to the number of columns.
*
* @since 11.4.0
* @sample highcharts/series-sankey/node-distance
* Sankey with dnode distance of 100% means equal to node width
* @sample highcharts/series-organization/node-distance
* Organization chart with node distance of 50%
* @type {number|string}
*/
nodeDistance: 30,
showInLegend: false,
states: {
hover: {
/**
* Opacity for the links between nodes in the sankey diagram in
* hover mode.
*/
linkOpacity: 1,
/**
* Opacity for the nodes in the sankey diagram in hover mode.
*/
opacity: 1
},
/**
* The opposite state of a hover for a single point node/link.
*
* @declare Highcharts.SeriesStatesInactiveOptionsObject
*/
inactive: {
/**
* Opacity for the links between nodes in the sankey diagram in
* inactive mode.
*/
linkOpacity: 0.1,
/**
* Opacity of the nodes in the sankey diagram in inactive mode.
*/
opacity: 0.1,
/**
* Animation when not hovering over the marker.
*
* @type {boolean|Partial}
* @apioption plotOptions.series.states.inactive.animation
*/
animation: {
/** @internal */
duration: 50
}
}
},
tooltip: {
/**
* A callback for defining the format for _nodes_ in the chart's
* tooltip, as opposed to links.
*
* @type {Highcharts.FormatterCallbackFunction}
* @since 6.0.2
* @apioption plotOptions.sankey.tooltip.nodeFormatter
*/
/**
* Whether the tooltip should follow the pointer or stay fixed on
* the item.
*/
followPointer: true,
headerFormat: '{series.name}
',
pointFormat: '{point.fromNode.name} \u2192 {point.toNode.name}: {point.weight}
',
/**
* The
* [format string](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting)
* specifying what to show for _nodes_ in tooltip of a diagram
* series, as opposed to links.
*/
nodeFormat: '{point.name}: {point.sum}
'
}
};
/**
* A `sankey` series. If the [type](#series.sankey.type) option is not
* specified, it is inherited from [chart.type](#chart.type).
*
* @extends series,plotOptions.sankey
* @excluding animationLimit, boostBlending, boostThreshold, borderColor,
* borderRadius, borderWidth, crisp, cropThreshold, dataParser,
* dataURL, depth, dragDrop, edgeColor, edgeWidth,
* findNearestPointBy, getExtremesFromAll, grouping, groupPadding,
* groupZPadding, label, maxPointWidth, negativeColor, pointInterval,
* pointIntervalUnit, pointPadding, pointPlacement, pointRange,
* pointStart, pointWidth, shadow, softThreshold, stacking,
* threshold, zoneAxis, zones, dataSorting
* @product highcharts
* @requires modules/sankey
* @apioption series.sankey
*/
/**
* A collection of options for the individual nodes. The nodes in a sankey
* diagram are auto-generated instances of `Highcharts.Point`, but options can
* be applied here and linked by the `id`.
*
* @sample highcharts/css/sankey/
* Sankey diagram with node options
*
* @declare Highcharts.SeriesSankeyNodesOptionsObject
* @type {Array<*>}
* @product highcharts
* @apioption series.sankey.nodes
*/
/**
* The id of the auto-generated node, referring to the `from` or `to` setting of
* the link.
*
* @type {string}
* @product highcharts
* @apioption series.sankey.nodes.id
*/
/**
* The color of the auto generated node.
*
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
* @product highcharts
* @apioption series.sankey.nodes.color
*/
/**
* The color index of the auto generated node, especially for use in styled
* mode.
*
* @type {number}
* @product highcharts
* @apioption series.sankey.nodes.colorIndex
*/
/**
* An optional column index of where to place the node. The default behaviour is
* to place it next to the preceding node. Note that this option name is
* counter intuitive in inverted charts, like for example an organization chart
* rendered top down. In this case the "columns" are horizontal.
*
* @sample highcharts/plotoptions/sankey-node-column/
* Specified node column
*
* @type {number}
* @since 6.0.5
* @product highcharts
* @apioption series.sankey.nodes.column
*/
/**
* Individual data label for each node. The options are the same as
* the ones for [series.sankey.dataLabels](#series.sankey.dataLabels).
*
* @extends plotOptions.sankey.dataLabels
* @apioption series.sankey.nodes.dataLabels
*/
/**
* The height of the node.
*
* @sample highcharts/series-sankey/height/
* Sankey diagram with height options
*
* @type {number}
* @since 11.3.0
* @apioption series.sankey.nodes.height
*/
/**
* An optional level index of where to place the node. The default behaviour is
* to place it next to the preceding node. Alias of `nodes.column`, but in
* inverted sankeys and org charts, the levels are laid out as rows.
*
* @type {number}
* @since 7.1.0
* @product highcharts
* @apioption series.sankey.nodes.level
*/
/**
* The name to display for the node in data labels and tooltips. Use this when
* the name is different from the `id`. Where the id must be unique for each
* node, this is not necessary for the name.
*
* @sample highcharts/css/sankey/
* Sankey diagram with node options
*
* @type {string}
* @product highcharts
* @apioption series.sankey.nodes.name
*/
/**
* This option is deprecated, use
* [offsetHorizontal](#series.sankey.nodes.offsetHorizontal) and
* [offsetVertical](#series.sankey.nodes.offsetVertical) instead.
*
* In a horizontal layout, the vertical offset of a node in terms of weight.
* Positive values shift the node downwards, negative shift it upwards. In a
* vertical layout, like organization chart, the offset is horizontal.
*
* If a percentage string is given, the node is offset by the percentage of the
* node size plus `nodePadding`.
*
* @deprecated
* @type {number|string}
* @default 0
* @since 6.0.5
* @product highcharts
* @apioption series.sankey.nodes.offset
*/
/**
* The horizontal offset of a node. Positive values shift the node right,
* negative shift it left.
*
* If a percentage string is given, the node is offset by the percentage of the
* node size.
*
* @sample highcharts/plotoptions/sankey-node-column/
* Specified node offset
*
* @type {number|string}
* @since 9.3.0
* @product highcharts
* @apioption series.sankey.nodes.offsetHorizontal
*/
/**
* The vertical offset of a node. Positive values shift the node down,
* negative shift it up.
*
* If a percentage string is given, the node is offset by the percentage of the
* node size.
*
* @sample highcharts/plotoptions/sankey-node-column/
* Specified node offset
*
* @type {number|string}
* @since 9.3.0
* @product highcharts
* @apioption series.sankey.nodes.offsetVertical
*/
/**
* An array of data points for the series. For the `sankey` series type,
* points can be given in the following way:
*
* An array of objects with named values. The following snippet shows only a
* few settings, see the complete options set below. If the total number of data
* points exceeds the series' [turboThreshold](#series.area.turboThreshold),
* this option is not available.
*
* ```js
* data: [{
* from: 'Category1',
* to: 'Category2',
* weight: 2
* }, {
* from: 'Category1',
* to: 'Category3',
* weight: 5
* }]
* ```
*
* When you provide the data as tuples, the keys option has to be set as well.
*
* ```js
* keys: ['from', 'to', 'weight'],
* data: [
* ['Category1', 'Category2', 2],
* ['Category1', 'Category3', 5]
* ]
* ```
*
* @sample {highcharts} highcharts/series/data-array-of-objects/
* Config objects
*
* @declare Highcharts.SeriesSankeyPointOptionsObject
* @type {Array<*>|Array>}
* @extends series.line.data
* @excluding dragDrop, drilldown, marker, x, y
* @product highcharts
* @apioption series.sankey.data
*/
/**
* The color for the individual _link_. By default, the link color is the same
* as the node it extends from. The `series.fillOpacity` option also applies to
* the points, so when setting a specific link color, consider setting the
* `fillOpacity` to 1.
*
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
* @product highcharts
* @apioption series.sankey.data.color
*/
/**
* @type {Highcharts.SeriesSankeyDataLabelsOptionsObject|Array}
* @product highcharts
* @apioption series.sankey.data.dataLabels
*/
/**
* The node that the link runs from.
*
* @type {string}
* @product highcharts
* @apioption series.sankey.data.from
*/
/**
* The node that the link runs to.
*
* @type {string}
* @product highcharts
* @apioption series.sankey.data.to
*/
/**
* Whether the link goes out of the system.
*
* @sample highcharts/plotoptions/sankey-outgoing
* Sankey chart with outgoing links
*
* @type {boolean}
* @default false
* @product highcharts
* @apioption series.sankey.data.outgoing
*/
/**
* The weight of the link.
*
* @type {number|null}
* @product highcharts
* @apioption series.sankey.data.weight
*/
''; // Adds doclets above to transpiled file
/* *
*
* Default Export
*
* */
export default SankeySeriesDefaults;