All Downloads are FREE. Search and download functionalities are using the official Maven repository.

package.es-modules.Series.Organization.OrganizationSeriesDefaults.js Maven / Gradle / Ivy

The newest version!
/* *
 *
 *  Organization chart module
 *
 *  (c) 2018-2024 Torstein Honsi
 *
 *  License: www.highcharts.com/license
 *
 *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
 *
 * */
'use strict';
/* *
 *
 *  API Options
 *
 * */
/**
 * An organization chart is a diagram that shows the structure of an
 * organization and the relationships and relative ranks of its parts and
 * positions.
 *
 * @sample       highcharts/demo/organization-chart/
 *               Organization chart
 * @sample       highcharts/series-organization/horizontal/
 *               Horizontal organization chart
 * @sample       highcharts/series-organization/borderless
 *               Borderless design
 * @sample       highcharts/series-organization/center-layout
 *               Centered layout
 *
 * @extends      plotOptions.sankey
 * @excluding    allowPointSelect, curveFactor, dataSorting
 * @since        7.1.0
 * @product      highcharts
 * @requires     modules/organization
 * @optionparent plotOptions.organization
 */
const OrganizationSeriesDefaults = {
    /**
     * The border color of the node cards.
     *
     * @type {Highcharts.ColorString}
     */
    borderColor: "#666666" /* Palette.neutralColor60 */,
    /**
     * The border radius of the node cards.
     *
     * @private
     */
    borderRadius: 3,
    /**
     * Radius for the rounded corners of the links between nodes. This
     * option is now deprecated, and moved to
     * [link.radius](#plotOptions.organization.link.radius).
     *
     * @sample   highcharts/series-organization/link-options
     *           Square links
     *
     * @deprecated
     * @apioption series.organization.linkRadius
     */
    /**
     * Link Styling options
     * @since 10.3.0
     * @product highcharts
     */
    link: {
        /**
         * Modifier of the shape of the curved link. Works best for values
         * between 0 and 1, where 0 is a straight line, and 1 is a shape
         * close to the default one.
         *
         * @default 0.5
         * @type {number}
         * @since 10.3.0
         * @product highcharts
         * @apioption series.organization.link.offset
         */
        /**
         * The color of the links between nodes.
         *
         * @type {Highcharts.ColorString}
         */
        color: "#666666" /* Palette.neutralColor60 */,
        /**
         * The line width of the links connecting nodes, in pixels.
         *
         * @sample   highcharts/series-organization/link-options
         *           Square links
         */
        lineWidth: 1,
        /**
         * Radius for the rounded corners of the links between nodes.
         * Works for `default` link type.
         *
         * @sample   highcharts/series-organization/link-options
         *           Square links
         */
        radius: 10,
        /**
         * Type of the link shape.
         *
         * @sample   highcharts/series-organization/different-link-types
         *           Different link types
         *
         * @declare Highcharts.OrganizationLinkTypeValue
         * @type {'default' | 'curved' | 'straight'}
         * @default 'default'
         * @product highcharts
         */
        type: 'default'
    },
    borderWidth: 1,
    /**
     * @declare Highcharts.SeriesOrganizationDataLabelsOptionsObject
     *
     * @private
     */
    dataLabels: {
        /* eslint-disable valid-jsdoc */
        /**
         * A callback for defining the format for _nodes_ in the
         * organization chart. The `nodeFormat` option takes precedence
         * over `nodeFormatter`.
         *
         * In an organization chart, the `nodeFormatter` is a quite complex
         * function of the available options, striving for a good default
         * layout of cards with or without images. In organization chart,
         * the data labels come with `useHTML` set to true, meaning they
         * will be rendered as true HTML above the SVG.
         *
         * @sample highcharts/series-organization/datalabels-nodeformatter
         *         Modify the default label format output
         *
         * @type  {Highcharts.SeriesSankeyDataLabelsFormatterCallbackFunction}
         * @since 6.0.2
         */
        nodeFormatter: function () {
            const outerStyle = {
                width: '100%',
                height: '100%',
                display: 'flex',
                'flex-direction': 'row',
                'align-items': 'center',
                'justify-content': 'center'
            }, imageStyle = {
                'max-height': '100%',
                'border-radius': '50%'
            }, innerStyle = {
                width: '100%',
                padding: 0,
                'text-align': 'center',
                'white-space': 'normal'
            }, nameStyle = {
                margin: 0
            }, titleStyle = {
                margin: 0
            }, descriptionStyle = {
                opacity: 0.75,
                margin: '5px'
            };
            // eslint-disable-next-line valid-jsdoc
            /**
             * @private
             */
            function styleAttr(style) {
                return Object.keys(style).reduce(function (str, key) {
                    return str + key + ':' + style[key] + ';';
                }, 'style="') + '"';
            }
            const { description, image, title } = this.point;
            if (image) {
                imageStyle['max-width'] = '30%';
                innerStyle.width = '70%';
            }
            // PhantomJS doesn't support flex, roll back to absolute
            // positioning
            if (this
                .series.chart.renderer.forExport) {
                outerStyle.display = 'block';
                innerStyle.position = 'absolute';
                innerStyle.left = image ? '30%' : 0;
                innerStyle.top = 0;
            }
            let html = '
'; if (image) { html += ''; } html += '
'; if (this.point.name) { html += '

' + this.point.name + '

'; } if (title) { html += '

' + (title || '') + '

'; } if (description) { html += '

' + description + '

'; } html += '
' + '
'; return html; }, /* eslint-enable valid-jsdoc */ style: { /** @internal */ fontWeight: 'normal', /** @internal */ fontSize: '0.9em' }, useHTML: true, linkTextPath: { attributes: { startOffset: '95%', textAnchor: 'end' } } }, /** * The indentation in pixels of hanging nodes, nodes which parent has * [layout](#series.organization.nodes.layout) set to `hanging`. * * @private */ hangingIndent: 20, /** * Defines the indentation of a `hanging` layout parent's children. * Possible options: * * - `inherit` (default): Only the first child adds the indentation, * children of a child with indentation inherit the indentation. * - `cumulative`: All children of a child with indentation add its * own indent. The option may cause overlapping of nodes. * Then use `shrink` option: * - `shrink`: Nodes shrink by the * [hangingIndent](#plotOptions.organization.hangingIndent) * value until they reach the * [minNodeLength](#plotOptions.organization.minNodeLength). * * @sample highcharts/series-organization/hanging-cumulative * Every indent increases the indentation * * @sample highcharts/series-organization/hanging-shrink * Every indent decreases the nodes' width * * @type {Highcharts.OrganizationHangingIndentTranslationValue} * @since 10.0.0 * @default inherit * * @private */ hangingIndentTranslation: 'inherit', /** * Whether links connecting hanging nodes should be drawn on the left * or right side. Useful for RTL layouts. * **Note:** Only effects inverted charts (vertical layout). * * @sample highcharts/series-organization/hanging-side * Nodes hanging from right side. * * @type {'left'|'right'} * @since 11.3.0 * @default 'left' */ hangingSide: 'left', /** * * The color of the links between nodes. This option is moved to * [link.color](#plotOptions.organization.link.color). * * @type {Highcharts.ColorString} * @deprecated * @apioption series.organization.linkColor * @private */ /** * The line width of the links connecting nodes, in pixels. This option * is now deprecated and moved to the * [link.radius](#plotOptions.organization.link.lineWidth). * * @sample highcharts/series-organization/link-options * Square links * * @deprecated * @apioption series.organization.linkLineWidth * @private */ /** * In a horizontal chart, the minimum width of the **hanging** nodes * only, in pixels. In a vertical chart, the minimum height of the * **haning** nodes only, in pixels too. * * Note: Used only when * [hangingIndentTranslation](#plotOptions.organization.hangingIndentTranslation) * is set to `shrink`. * * @see [nodeWidth](#plotOptions.organization.nodeWidth) * * @private */ minNodeLength: 10, /** * In a horizontal chart, the width of the nodes in pixels. Note that * most organization charts are inverted (vertical), so the name of this * option is counterintuitive. * * @see [minNodeLength](#plotOptions.organization.minNodeLength) * * @private */ nodeWidth: 50, tooltip: { nodeFormat: '{point.name}
{point.title}
{point.description}' } }; /** * An `organization` series. If the [type](#series.organization.type) option is * not specified, it is inherited from [chart.type](#chart.type). * * @extends series,plotOptions.organization * @exclude dataSorting, boostThreshold, boostBlending * @product highcharts * @requires modules/sankey * @requires modules/organization * @apioption series.organization */ /** * @type {Highcharts.SeriesOrganizationDataLabelsOptionsObject|Array} * @product highcharts * @apioption series.organization.data.dataLabels */ /** * A collection of options for the individual nodes. The nodes in an org chart * are auto-generated instances of `Highcharts.Point`, but options can be * applied here and linked by the `id`. * * @extends series.sankey.nodes * @type {Array<*>} * @product highcharts * @apioption series.organization.nodes */ /** * Individual data label for each node. The options are the same as * the ones for [series.organization.dataLabels](#series.organization.dataLabels). * * @type {Highcharts.SeriesOrganizationDataLabelsOptionsObject|Array} * * @apioption series.organization.nodes.dataLabels */ /** * The job description for the node card, will be inserted by the default * `dataLabel.nodeFormatter`. * * @sample highcharts/demo/organization-chart * Org chart with job descriptions * * @type {string} * @product highcharts * @apioption series.organization.nodes.description */ /** * An image for the node card, will be inserted by the default * `dataLabel.nodeFormatter`. * * @sample highcharts/demo/organization-chart * Org chart with images * * @type {string} * @product highcharts * @apioption series.organization.nodes.image */ /** * The format string specifying what to show for *links* in the * organization chart. * * Best to use with [`linkTextPath`](#series.organization.dataLabels.linkTextPath) enabled. * * @sample highcharts/series-organization/link-labels * Organization chart with link labels * * @type {string} * @product highcharts * @apioption series.organization.dataLabels.linkFormat * @since 11.0.0 */ /** * Callback to format data labels for _links_ in the * organization chart. The `linkFormat` option takes * precedence over the `linkFormatter`. * * @type {OrganizationDataLabelsFormatterCallbackFunction} * @product highcharts * @apioption series.organization.dataLabels.linkFormatter * @since 11.0.0 */ /** * Options for a _link_ label text which should follow link * connection. * * @sample highcharts/series-organization/link-labels * Organization chart with link labels * * @type { DataLabelTextPathOptions } * @product highcharts * @apioption series.organization.dataLabels.linkTextPath * @since 11.0.0 */ /** * Layout for the node's children. If `hanging`, this node's children will hang * below their parent, allowing a tighter packing of nodes in the diagram. * * Note: Since version 10.0.0, the `hanging` layout is set by default for * children of a parent using `hanging` layout. * * @sample highcharts/demo/organization-chart * Hanging layout * * @type {Highcharts.SeriesOrganizationNodesLayoutValue} * @default normal * @product highcharts * @apioption series.organization.nodes.layout */ /** * The job title for the node card, will be inserted by the default * `dataLabel.nodeFormatter`. * * @sample highcharts/demo/organization-chart * Org chart with job titles * * @type {string} * @product highcharts * @apioption series.organization.nodes.title */ /** * An array of data points for the series. For the `organization` 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 * }] * ``` * * @type {Array<*>} * @extends series.sankey.data * @product highcharts * @apioption series.organization.data */ ''; // Keeps doclets above in JS file /* * * * Default Export * * */ export default OrganizationSeriesDefaults;




© 2015 - 2024 Weber Informatics LLC | Privacy Policy