highcharts
Version:
JavaScript charting framework
356 lines (355 loc) • 10.6 kB
JavaScript
/* *
*
* This module implements sunburst charts in Highcharts.
*
* (c) 2016-2025 Highsoft AS
*
* Authors: Jon Arild Nygard
*
* License: www.highcharts.com/license
*
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
*
* */
'use strict';
/* *
*
* API Options
*
* */
/**
* A Sunburst displays hierarchical data, where a level in the hierarchy is
* represented by a circle. The center represents the root node of the tree.
* The visualization bears a resemblance to both treemap and pie charts.
*
* @sample highcharts/demo/sunburst
* Sunburst chart
*
* @extends plotOptions.pie
* @excluding allAreas, clip, colorAxis, colorKey, compare, compareBase,
* dataGrouping, depth, dragDrop, endAngle, gapSize, gapUnit,
* ignoreHiddenPoint, innerSize, joinBy, legendType, linecap,
* minSize, navigatorOptions, pointRange
* @product highcharts
* @requires modules/sunburst
* @optionparent plotOptions.sunburst
*
* @private
*/
const SunburstSeriesDefaults = {
/**
* Options for the breadcrumbs, the navigation at the top leading the
* way up through the traversed levels.
*
* @since 10.0.0
* @product highcharts
* @extends navigation.breadcrumbs
* @apioption plotOptions.sunburst.breadcrumbs
*/
/**
* Set options on specific levels. Takes precedence over series options,
* but not point options.
*
* @sample highcharts/demo/sunburst
* Sunburst chart
*
* @type {Array<*>}
* @apioption plotOptions.sunburst.levels
*/
/**
* Can set a `borderColor` on all points which lies on the same level.
*
* @type {Highcharts.ColorString}
* @apioption plotOptions.sunburst.levels.borderColor
*/
/**
* Can set a `borderWidth` on all points which lies on the same level.
*
* @type {number}
* @apioption plotOptions.sunburst.levels.borderWidth
*/
/**
* Can set a `borderDashStyle` on all points which lies on the same
* level.
*
* @type {Highcharts.DashStyleValue}
* @apioption plotOptions.sunburst.levels.borderDashStyle
*/
/**
* Can set a `color` on all points which lies on the same level.
*
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
* @apioption plotOptions.sunburst.levels.color
*/
/**
* Determines whether the chart should receive one color per point based
* on this level.
*
* @type {boolean}
* @apioption plotOptions.sunburst.levels.colorByPoint
*/
/**
* Can set a `colorVariation` on all points which lies on the same
* level.
*
* @apioption plotOptions.sunburst.levels.colorVariation
*/
/**
* The key of a color variation. Currently supports `brightness` only.
*
* @type {string}
* @apioption plotOptions.sunburst.levels.colorVariation.key
*/
/**
* The ending value of a color variation. The last sibling will receive
* this value.
*
* @type {number}
* @apioption plotOptions.sunburst.levels.colorVariation.to
*/
/**
* Can set `dataLabels` on all points which lies on the same level.
*
* @extends plotOptions.sunburst.dataLabels
* @apioption plotOptions.sunburst.levels.dataLabels
*/
/**
* Decides which level takes effect from the options set in the levels
* object.
*
* @sample highcharts/demo/sunburst
* Sunburst chart
*
* @type {number}
* @apioption plotOptions.sunburst.levels.level
*/
/**
* Can set a `levelSize` on all points which lies on the same level.
*
* @type {Object}
* @apioption plotOptions.sunburst.levels.levelSize
*/
/**
* When enabled the user can click on a point which is a parent and
* zoom in on its children. Deprecated and replaced by
* [allowTraversingTree](#plotOptions.sunburst.allowTraversingTree).
*
* @deprecated
* @type {boolean}
* @default false
* @since 6.0.0
* @product highcharts
* @apioption plotOptions.sunburst.allowDrillToNode
*/
/**
* When enabled the user can click on a point which is a parent and
* zoom in on its children.
*
* @type {boolean}
* @default false
* @since 7.0.3
* @product highcharts
* @apioption plotOptions.sunburst.allowTraversingTree
*/
/**
* The center of the sunburst chart relative to the plot area. Can be
* percentages or pixel values.
*
* @sample {highcharts} highcharts/plotoptions/pie-center/
* Centered at 100, 100
*
* @type {Array<number|string>}
* @default ["50%", "50%"]
* @product highcharts
*
* @private
*/
center: ['50%', '50%'],
/**
* @product highcharts
*
* @private
*/
clip: false,
colorByPoint: false,
/**
* Disable inherited opacity from Treemap series.
*
* @ignore-option
*
* @private
*/
opacity: 1,
/**
* @declare Highcharts.SeriesSunburstDataLabelsOptionsObject
*
* @private
*/
dataLabels: {
allowOverlap: true,
defer: true,
/**
* Decides how the data label will be rotated relative to the
* perimeter of the sunburst. Valid values are `circular`, `auto`,
* `parallel` and `perpendicular`. When `circular`, the best fit
* will be computed for the point, so that the label is curved
* around the center when there is room for it, otherwise
* perpendicular. The legacy `auto` option works similar to
* `circular`, but instead of curving the labels they are tangent to
* the perimeter.
*
* The `rotation` option takes precedence over `rotationMode`.
*
* @type {string}
* @sample {highcharts}
* highcharts/plotoptions/sunburst-datalabels-rotationmode-circular/
* Circular rotation mode
* @validvalue ["auto", "perpendicular", "parallel", "circular"]
* @since 6.0.0
*/
rotationMode: 'circular',
style: {
/** @internal */
textOverflow: 'ellipsis'
}
},
/**
* Which point to use as a root in the visualization.
*
* @type {string}
*
* @private
*/
rootId: void 0,
/**
* Used together with the levels and `allowDrillToNode` options. When
* set to false the first level visible when drilling is considered
* to be level one. Otherwise the level will be the same as the tree
* structure.
*
* @private
*/
levelIsConstant: true,
/**
* Determines the width of the ring per level.
*
* @sample {highcharts} highcharts/plotoptions/sunburst-levelsize/
* Sunburst with various sizes per level
*
* @since 6.0.5
*
* @private
*/
levelSize: {
/**
* The value used for calculating the width of the ring. Its' affect
* is determined by `levelSize.unit`.
*
* @sample {highcharts} highcharts/plotoptions/sunburst-levelsize/
* Sunburst with various sizes per level
*/
value: 1,
/**
* How to interpret `levelSize.value`.
*
* - `percentage` gives a width relative to result of outer radius
* minus inner radius.
*
* - `pixels` gives the ring a fixed width in pixels.
*
* - `weight` takes the remaining width after percentage and pixels,
* and distributes it across all "weighted" levels. The value
* relative to the sum of all weights determines the width.
*
* @sample {highcharts} highcharts/plotoptions/sunburst-levelsize/
* Sunburst with various sizes per level
*
* @validvalue ["percentage", "pixels", "weight"]
*/
unit: 'weight'
},
/**
* Options for the button appearing when traversing down in a sunburst.
* Since v9.3.3 the `traverseUpButton` is replaced by `breadcrumbs`.
*
* @extends plotOptions.treemap.traverseUpButton
* @since 6.0.0
* @deprecated
* @apioption plotOptions.sunburst.traverseUpButton
*
*/
/**
* If a point is sliced, moved out from the center, how many pixels
* should it be moved?.
*
* @sample highcharts/plotoptions/sunburst-sliced
* Sliced sunburst
*
* @since 6.0.4
*
* @private
*/
slicedOffset: 10
};
/**
* A `sunburst` series. If the [type](#series.sunburst.type) option is
* not specified, it is inherited from [chart.type](#chart.type).
*
* @extends series,plotOptions.sunburst
* @excluding dataParser, dataURL, stack, dataSorting, boostThreshold,
* boostBlending
* @product highcharts
* @requires modules/sunburst
* @apioption series.sunburst
*/
/**
* @type {Array<number|null|*>}
* @extends series.treemap.data
* @excluding x, y
* @product highcharts
* @apioption series.sunburst.data
*/
/**
* @type {Highcharts.SeriesSunburstDataLabelsOptionsObject|Array<Highcharts.SeriesSunburstDataLabelsOptionsObject>}
* @product highcharts
* @apioption series.sunburst.data.dataLabels
*/
/**
* The value of the point, resulting in a relative area of the point
* in the sunburst.
*
* @type {number|null}
* @since 6.0.0
* @product highcharts
* @apioption series.sunburst.data.value
*/
/**
* Use this option to build a tree structure. The value should be the id of the
* point which is the parent. If no points has a matching id, or this option is
* undefined, then the parent will be set to the root.
*
* @type {string}
* @since 6.0.0
* @product highcharts
* @apioption series.sunburst.data.parent
*/
/**
* Whether to display a slice offset from the center. When a sunburst point is
* sliced, its children are also offset.
*
* @sample highcharts/plotoptions/sunburst-sliced
* Sliced sunburst
*
* @type {boolean}
* @default false
* @since 6.0.4
* @product highcharts
* @apioption series.sunburst.data.sliced
*/
''; // Detach doclets above
/* *
*
* Default Export
*
* */
export default SunburstSeriesDefaults;