UNPKG

plotly.js

Version:

The open source javascript graphing library that powers plotly

266 lines (237 loc) 7.82 kB
/** * Copyright 2012-2020, Plotly, Inc. * All rights reserved. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ 'use strict'; var scatterAttrs = require('../scatter/attributes'); var hovertemplateAttrs = require('../../plots/template_attributes').hovertemplateAttrs; var texttemplateAttrs = require('../../plots/template_attributes').texttemplateAttrs; var colorScaleAttrs = require('../../components/colorscale/attributes'); var fontAttrs = require('../../plots/font_attributes'); var constants = require('./constants'); var extendFlat = require('../../lib/extend').extendFlat; var textFontAttrs = fontAttrs({ editType: 'calc', arrayOk: true, colorEditType: 'style', description: '' }); var scatterMarkerAttrs = scatterAttrs.marker; var scatterMarkerLineAttrs = scatterMarkerAttrs.line; var markerLineWidth = extendFlat({}, scatterMarkerLineAttrs.width, { dflt: 0 }); var markerLine = extendFlat({ width: markerLineWidth, editType: 'calc' }, colorScaleAttrs('marker.line')); var marker = extendFlat({ line: markerLine, editType: 'calc' }, colorScaleAttrs('marker'), { opacity: { valType: 'number', arrayOk: true, dflt: 1, min: 0, max: 1, role: 'style', editType: 'style', description: 'Sets the opacity of the bars.' } }); module.exports = { x: scatterAttrs.x, x0: scatterAttrs.x0, dx: scatterAttrs.dx, y: scatterAttrs.y, y0: scatterAttrs.y0, dy: scatterAttrs.dy, xperiod: scatterAttrs.xperiod, yperiod: scatterAttrs.yperiod, xperiod0: scatterAttrs.xperiod0, yperiod0: scatterAttrs.yperiod0, xperiodalignment: scatterAttrs.xperiodalignment, yperiodalignment: scatterAttrs.yperiodalignment, text: scatterAttrs.text, texttemplate: texttemplateAttrs({editType: 'plot'}, { keys: constants.eventDataKeys }), hovertext: scatterAttrs.hovertext, hovertemplate: hovertemplateAttrs({}, { keys: constants.eventDataKeys }), textposition: { valType: 'enumerated', role: 'info', values: ['inside', 'outside', 'auto', 'none'], dflt: 'none', arrayOk: true, editType: 'calc', description: [ 'Specifies the location of the `text`.', '*inside* positions `text` inside, next to the bar end', '(rotated and scaled if needed).', '*outside* positions `text` outside, next to the bar end', '(scaled if needed), unless there is another bar stacked on', 'this one, then the text gets pushed inside.', '*auto* tries to position `text` inside the bar, but if', 'the bar is too small and no bar is stacked on this one', 'the text is moved outside.' ].join(' ') }, insidetextanchor: { valType: 'enumerated', values: ['end', 'middle', 'start'], dflt: 'end', role: 'info', editType: 'plot', description: [ 'Determines if texts are kept at center or start/end points in `textposition` *inside* mode.' ].join(' ') }, textangle: { valType: 'angle', dflt: 'auto', role: 'info', editType: 'plot', description: [ 'Sets the angle of the tick labels with respect to the bar.', 'For example, a `tickangle` of -90 draws the tick labels', 'vertically. With *auto* the texts may automatically be', 'rotated to fit with the maximum size in bars.' ].join(' ') }, textfont: extendFlat({}, textFontAttrs, { description: 'Sets the font used for `text`.' }), insidetextfont: extendFlat({}, textFontAttrs, { description: 'Sets the font used for `text` lying inside the bar.' }), outsidetextfont: extendFlat({}, textFontAttrs, { description: 'Sets the font used for `text` lying outside the bar.' }), constraintext: { valType: 'enumerated', values: ['inside', 'outside', 'both', 'none'], role: 'info', dflt: 'both', editType: 'calc', description: [ 'Constrain the size of text inside or outside a bar to be no', 'larger than the bar itself.' ].join(' ') }, cliponaxis: extendFlat({}, scatterAttrs.cliponaxis, { description: [ 'Determines whether the text nodes', 'are clipped about the subplot axes.', 'To show the text nodes above axis lines and tick labels,', 'make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*.' ].join(' ') }), orientation: { valType: 'enumerated', role: 'info', values: ['v', 'h'], editType: 'calc+clearAxisTypes', description: [ 'Sets the orientation of the bars.', 'With *v* (*h*), the value of the each bar spans', 'along the vertical (horizontal).' ].join(' ') }, base: { valType: 'any', dflt: null, arrayOk: true, role: 'info', editType: 'calc', description: [ 'Sets where the bar base is drawn (in position axis units).', 'In *stack* or *relative* barmode,', 'traces that set *base* will be excluded', 'and drawn in *overlay* mode instead.' ].join(' ') }, offset: { valType: 'number', dflt: null, arrayOk: true, role: 'info', editType: 'calc', description: [ 'Shifts the position where the bar is drawn', '(in position axis units).', 'In *group* barmode,', 'traces that set *offset* will be excluded', 'and drawn in *overlay* mode instead.' ].join(' ') }, width: { valType: 'number', dflt: null, min: 0, arrayOk: true, role: 'info', editType: 'calc', description: [ 'Sets the bar width (in position axis units).' ].join(' ') }, marker: marker, offsetgroup: { valType: 'string', role: 'info', dflt: '', editType: 'calc', description: [ 'Set several traces linked to the same position axis', 'or matching axes to the same', 'offsetgroup where bars of the same position coordinate will line up.' ].join(' ') }, alignmentgroup: { valType: 'string', role: 'info', dflt: '', editType: 'calc', description: [ 'Set several traces linked to the same position axis', 'or matching axes to the same', 'alignmentgroup. This controls whether bars compute their positional', 'range dependently or independently.' ].join(' ') }, selected: { marker: { opacity: scatterAttrs.selected.marker.opacity, color: scatterAttrs.selected.marker.color, editType: 'style' }, textfont: scatterAttrs.selected.textfont, editType: 'style' }, unselected: { marker: { opacity: scatterAttrs.unselected.marker.opacity, color: scatterAttrs.unselected.marker.color, editType: 'style' }, textfont: scatterAttrs.unselected.textfont, editType: 'style' }, r: scatterAttrs.r, t: scatterAttrs.t, _deprecated: { bardir: { valType: 'enumerated', role: 'info', editType: 'calc', values: ['v', 'h'], description: 'Renamed to `orientation`.' } } };