From 580907f3efb6992c75cd41c6f8c1b6c1f38be9b0 Mon Sep 17 00:00:00 2001 From: Vera Zabeida Date: Mon, 16 Sep 2019 13:41:30 -0400 Subject: [PATCH 1/4] add customConfig visibility_rules --- dev/App.js | 3 + package.json | 2 +- src/EditorControls.js | 15 ++- src/PlotlyEditor.js | 2 + src/components/containers/PlotlySection.js | 16 +++- src/lib/connectToContainer.js | 18 +++- src/lib/index.js | 9 +- src/lib/unpackPlotProps.js | 102 ++++++++++++++++++++- 8 files changed, 154 insertions(+), 13 deletions(-) diff --git a/dev/App.js b/dev/App.js index fd8349776..7ff298846 100644 --- a/dev/App.js +++ b/dev/App.js @@ -14,6 +14,8 @@ import 'brace/theme/textmate'; // https://github.com/plotly/react-chart-editor#mapbox-access-tokens import ACCESS_TOKENS from '../accessTokens'; +import {customConfigTest} from '../src/__stories__'; + const dataSourceOptions = Object.keys(dataSources).map(name => ({ value: name, label: name, @@ -183,6 +185,7 @@ class App extends Component { // makeDefaultTrace={() => ({type: 'scattergl', mode: 'markers'})} // fontOptions={[{label:'Arial', value: 'arial'}]} // chartHelp={chartHelp} + // customConfig={customConfigTest} > {this.props.children} @@ -91,6 +92,7 @@ PlotlyEditor.propTypes = { glByDefault: PropTypes.bool, fontOptions: PropTypes.array, chartHelp: PropTypes.object, + customConfig: PropTypes.object, }; PlotlyEditor.defaultProps = { diff --git a/src/components/containers/PlotlySection.js b/src/components/containers/PlotlySection.js index 677be29da..21a615897 100644 --- a/src/components/containers/PlotlySection.js +++ b/src/components/containers/PlotlySection.js @@ -1,6 +1,10 @@ import React, {Component} from 'react'; import PropTypes from 'prop-types'; -import {containerConnectedContextTypes, unpackPlotProps} from '../../lib'; +import { + containerConnectedContextTypes, + unpackPlotProps, + isVisibleGivenCustomConfig, +} from '../../lib'; export class Section extends Component { constructor() { @@ -45,7 +49,7 @@ export default class PlotlySection extends Section { determineVisibility(nextProps, nextContext) { const {isVisible} = unpackPlotProps(nextProps, nextContext); - this.sectionVisible = Boolean(isVisible); + this.sectionVisible = isVisibleGivenCustomConfig(isVisible, nextProps, nextContext); React.Children.forEach(nextProps.children, child => { if (!child || this.sectionVisible) { @@ -57,7 +61,13 @@ export default class PlotlySection extends Section { if (child.type.modifyPlotProps) { child.type.modifyPlotProps(child.props, nextContext, plotProps); } - this.sectionVisible = this.sectionVisible || plotProps.isVisible; + + this.sectionVisible = isVisibleGivenCustomConfig( + this.sectionVisible || plotProps.isVisible, + child.props, + nextContext, + child.type && child.type.displayName ? child.type.displayName : null + ); return; } diff --git a/src/lib/connectToContainer.js b/src/lib/connectToContainer.js index 0a5fedee5..62e566e87 100644 --- a/src/lib/connectToContainer.js +++ b/src/lib/connectToContainer.js @@ -1,6 +1,6 @@ import React, {Component} from 'react'; import PropTypes from 'prop-types'; -import unpackPlotProps from './unpackPlotProps'; +import unpackPlotProps, {isVisibleGivenCustomConfig} from './unpackPlotProps'; import {getDisplayName} from '../lib'; export const containerConnectedContextTypes = { @@ -18,6 +18,8 @@ export const containerConnectedContextTypes = { plotly: PropTypes.object, updateContainer: PropTypes.func, traceIndexes: PropTypes.array, + customConfig: PropTypes.object, + hasValidCustomConfigVisibilityRules: PropTypes.bool, }; export default function connectToContainer(WrappedComponent, config = {}) { @@ -44,7 +46,7 @@ export default function connectToContainer(WrappedComponent, config = {}) { } setLocals(props, context) { - this.plotProps = unpackPlotProps(props, context); + this.plotProps = unpackPlotProps(props, context, WrappedComponent); this.attr = props.attr; ContainerConnectedComponent.modifyPlotProps(props, context, this.plotProps); } @@ -62,7 +64,17 @@ export default function connectToContainer(WrappedComponent, config = {}) { // is also wrapped by a component that `unpackPlotProps`. That way inner // component can skip computation as it can see plotProps is already defined. const {plotProps = this.plotProps, ...props} = Object.assign({}, this.plotProps, this.props); - if (props.isVisible) { + const wrappedComponentDisplayName = + WrappedComponent && WrappedComponent.displayName ? WrappedComponent.displayName : null; + + if ( + isVisibleGivenCustomConfig( + props.isVisible, + props, + this.context, + wrappedComponentDisplayName + ) + ) { return ; } diff --git a/src/lib/index.js b/src/lib/index.js index 7c8baccf7..d9fce5f0d 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -23,7 +23,11 @@ import getAllAxes, { } from './getAllAxes'; import localize, {localizeString} from './localize'; import tinyColor from 'tinycolor2'; -import unpackPlotProps from './unpackPlotProps'; +import unpackPlotProps, { + computeCustomConfigVisibility, + hasValidCustomConfigVisibilityRules, + isVisibleGivenCustomConfig, +} from './unpackPlotProps'; import walkObject, {isPlainObject} from './walkObject'; import {traceTypeToPlotlyInitFigure, plotlyTraceToCustomTrace} from './customTraceType'; import * as PlotlyIcons from 'plotly-icons'; @@ -216,6 +220,7 @@ function getParsedTemplateString(originalString, context) { export { adjustColorscale, + computeCustomConfigVisibility, axisIdToAxisName, bem, camelCase, @@ -244,6 +249,7 @@ export { getFullTrace, getSubplotTitle, isPlainObject, + hasValidCustomConfigVisibilityRules, localize, localizeString, lowerCase, @@ -261,5 +267,6 @@ export { transpose, unpackPlotProps, upperCase, + isVisibleGivenCustomConfig, walkObject, }; diff --git a/src/lib/unpackPlotProps.js b/src/lib/unpackPlotProps.js index 138707609..af917202f 100644 --- a/src/lib/unpackPlotProps.js +++ b/src/lib/unpackPlotProps.js @@ -1,7 +1,104 @@ +/* eslint-disable no-console */ + import nestedProperty from 'plotly.js/src/lib/nested_property'; import isNumeric from 'fast-isnumeric'; import {MULTI_VALUED, MULTI_VALUED_PLACEHOLDER} from './constants'; +const hasFullValue = fullValue => fullValue !== void 0 && fullValue !== null; + +export function hasValidCustomConfigVisibilityRules(customConfig) { + if ( + customConfig && + customConfig === Object(customConfig) && + Object.keys(customConfig).length && + customConfig.visibility_rules + ) { + if (customConfig.visibility_rules.blacklist && customConfig.visibility_rules.whitelist) { + console.error( + 'customConfig.visibility_rules can have a blacklist OR whitelist key, both are present in your config.' + ); + return false; + } + + if ( + !Object.keys(customConfig.visibility_rules).some(key => + ['blacklist', 'whitelist'].includes(key) + ) + ) { + console.error( + 'customConfig.visibility_rules must have at least a blacklist or whitelist key.' + ); + return false; + } + + const isValidRule = rule => { + if (rule.exceptions) { + return rule.exceptions.every(isValidRule); + } + return rule.type && ['attrName', 'controlType'].includes(rule.type) && rule.regex_match; + }; + + const errorMessage = + "All rules and exceptions must have a type (one of: 'attrName' or 'controlType') and regex_match key."; + + if ( + customConfig.visibility_rules.blacklist && + !customConfig.visibility_rules.blacklist.every(isValidRule) + ) { + console.error(errorMessage); + return false; + } + + if ( + customConfig.visibility_rules.whitelist && + !customConfig.visibility_rules.whitelist.every(isValidRule) + ) { + console.error(errorMessage); + return false; + } + + return true; + } + return false; +} + +export function computeCustomConfigVisibility(props, customConfig, wrappedComponentDisplayName) { + let isVisible; + + const isRegexMatch = rule => { + const stringToTest = rule.type === 'attrName' ? props.attr : wrappedComponentDisplayName; + return RegExp(rule.regex_match).test(stringToTest); + }; + + const passesTest = rule => { + const hasException = rule => { + if (rule.exceptions) { + return rule.exceptions.some(exception => passesTest(exception)); + } + return false; + }; + return isRegexMatch(rule) && !hasException(rule); + }; + + if (customConfig.visibility_rules.blacklist) { + isVisible = !customConfig.visibility_rules.blacklist.some(passesTest); + } + + if (customConfig.visibility_rules.whitelist) { + isVisible = customConfig.visibility_rules.whitelist.some(passesTest); + } + + return isVisible; +} + +export function isVisibleGivenCustomConfig(initial, nextProps, nextContext, componentDisplayName) { + let show = initial; + if (show && nextContext.hasValidCustomConfigVisibilityRules) { + show = computeCustomConfigVisibility(nextProps, nextContext.customConfig, componentDisplayName); + } + return show; +} + export default function unpackPlotProps(props, context) { const {container, getValObject, defaultContainer, updateContainer} = context; @@ -28,10 +125,7 @@ export default function unpackPlotProps(props, context) { multiValued = true; } - let isVisible = false; - if (props.show || (fullValue !== void 0 && fullValue !== null)) { - isVisible = true; - } + const isVisible = Boolean(hasFullValue(fullValue) || props.show); let defaultValue = props.defaultValue; if (defaultValue === void 0 && defaultContainer) { From d571b00eb2d9e91b6b7de4b8b6eabcfda0dbb937 Mon Sep 17 00:00:00 2001 From: Vera Zabeida Date: Mon, 16 Sep 2019 13:42:52 -0400 Subject: [PATCH 2/4] add displayName to components --- src/components/fields/ColorArrayPicker.js | 2 ++ src/components/fields/ColorPicker.js | 2 ++ src/components/fields/ColorscalePicker.js | 2 ++ src/components/fields/ColorwayPicker.js | 2 ++ src/components/fields/DataSelector.js | 2 ++ src/components/fields/DateTimePicker.js | 2 ++ src/components/fields/Dropdown.js | 2 ++ src/components/fields/DropdownCustom.js | 2 ++ src/components/fields/Dropzone.js | 2 ++ src/components/fields/DualNumeric.js | 2 ++ src/components/fields/Flaglist.js | 2 ++ src/components/fields/GroupCreator.js | 2 ++ src/components/fields/HoverLabelNameLength.js | 2 ++ src/components/fields/MarkerColor.js | 2 ++ src/components/fields/MarkerSize.js | 2 ++ src/components/fields/MultiColorPicker.js | 2 ++ src/components/fields/Numeric.js | 2 ++ src/components/fields/NumericOrDate.js | 2 ++ src/components/fields/PieColorscalePicker.js | 2 ++ src/components/fields/Radio.js | 2 ++ src/components/fields/RectanglePositioner.js | 2 ++ src/components/fields/Text.js | 2 ++ src/components/fields/TextEditor.js | 2 ++ src/components/fields/TextPosition.js | 2 ++ src/components/fields/VisibilitySelect.js | 2 ++ src/components/fields/derived.js | 1 + 26 files changed, 51 insertions(+) diff --git a/src/components/fields/ColorArrayPicker.js b/src/components/fields/ColorArrayPicker.js index 3855e0c26..982d31805 100644 --- a/src/components/fields/ColorArrayPicker.js +++ b/src/components/fields/ColorArrayPicker.js @@ -130,4 +130,6 @@ UnconnectedColorArrayPicker.contextTypes = { updateContainer: PropTypes.func, }; +UnconnectedColorArrayPicker.displayName = 'UnconnectedColorArrayPicker'; + export default connectToContainer(UnconnectedColorArrayPicker); diff --git a/src/components/fields/ColorPicker.js b/src/components/fields/ColorPicker.js index f14303b83..75d333371 100644 --- a/src/components/fields/ColorPicker.js +++ b/src/components/fields/ColorPicker.js @@ -51,4 +51,6 @@ UnconnectedColorPicker.propTypes = { ...Field.propTypes, }; +UnconnectedColorPicker.displayName = 'UnconnectedColorPicker'; + export default connectToContainer(UnconnectedColorPicker); diff --git a/src/components/fields/ColorscalePicker.js b/src/components/fields/ColorscalePicker.js index 35f636d87..be05e2bca 100644 --- a/src/components/fields/ColorscalePicker.js +++ b/src/components/fields/ColorscalePicker.js @@ -65,4 +65,6 @@ UnconnectedColorscalePicker.contextTypes = { onUpdate: PropTypes.func, }; +UnconnectedColorscalePicker.displayName = 'UnconnectedColorscalePicker'; + export default connectToContainer(UnconnectedColorscalePicker); diff --git a/src/components/fields/ColorwayPicker.js b/src/components/fields/ColorwayPicker.js index 3771a1e57..51f12998a 100644 --- a/src/components/fields/ColorwayPicker.js +++ b/src/components/fields/ColorwayPicker.js @@ -25,4 +25,6 @@ UnconnectedColorwayPicker.propTypes = { ...Field.propTypes, }; +UnconnectedColorwayPicker.displayName = 'UnconnectedColorwayPicker'; + export default connectToContainer(UnconnectedColorwayPicker); diff --git a/src/components/fields/DataSelector.js b/src/components/fields/DataSelector.js index 92ac3e6b1..41f594da1 100644 --- a/src/components/fields/DataSelector.js +++ b/src/components/fields/DataSelector.js @@ -156,6 +156,8 @@ UnconnectedDataSelector.contextTypes = { container: PropTypes.object, }; +UnconnectedDataSelector.displayName = 'UnconnectedDataSelector'; + function modifyPlotProps(props, context, plotProps) { if ( attributeIsData(plotProps.attrMeta) && diff --git a/src/components/fields/DateTimePicker.js b/src/components/fields/DateTimePicker.js index 1cddef6f4..842fee028 100644 --- a/src/components/fields/DateTimePicker.js +++ b/src/components/fields/DateTimePicker.js @@ -25,4 +25,6 @@ UnconnectedDateTimePicker.propTypes = { ...Field.propTypes, }; +UnconnectedDateTimePicker.displayName = 'UnconnectedDateTimePicker'; + export default connectToContainer(UnconnectedDateTimePicker); diff --git a/src/components/fields/Dropdown.js b/src/components/fields/Dropdown.js index 1bbdda58f..08a481c22 100644 --- a/src/components/fields/Dropdown.js +++ b/src/components/fields/Dropdown.js @@ -39,4 +39,6 @@ UnconnectedDropdown.propTypes = { ...Field.propTypes, }; +UnconnectedDropdown.displayName = 'UnconnectedDropdown'; + export default connectToContainer(UnconnectedDropdown); diff --git a/src/components/fields/DropdownCustom.js b/src/components/fields/DropdownCustom.js index ecc314cfb..4b1280307 100644 --- a/src/components/fields/DropdownCustom.js +++ b/src/components/fields/DropdownCustom.js @@ -97,4 +97,6 @@ UnconnectedDropdownCustom.contextTypes = { updateContainer: PropTypes.func, }; +UnconnectedDropdownCustom.displayName = 'UnconnectedDropdownCustom'; + export default connectToContainer(UnconnectedDropdownCustom); diff --git a/src/components/fields/Dropzone.js b/src/components/fields/Dropzone.js index cbeae6547..5bbc3028e 100644 --- a/src/components/fields/Dropzone.js +++ b/src/components/fields/Dropzone.js @@ -24,4 +24,6 @@ UnconnectedDropzone.propTypes = { ...Field.propTypes, }; +UnconnectedDropzone.displayName = 'UnconnectedDropzone'; + export default connectToContainer(UnconnectedDropzone); diff --git a/src/components/fields/DualNumeric.js b/src/components/fields/DualNumeric.js index ce406ddc7..84e61ab74 100644 --- a/src/components/fields/DualNumeric.js +++ b/src/components/fields/DualNumeric.js @@ -90,4 +90,6 @@ UnconnectedDualNumericFraction.contextTypes = { fullContainer: PropTypes.object, }; +UnconnectedDualNumericFraction.displayName = 'UnconnectedDualNumericFraction'; + export default connectToContainer(UnconnectedDualNumericFraction); diff --git a/src/components/fields/Flaglist.js b/src/components/fields/Flaglist.js index aca7199b9..231418500 100644 --- a/src/components/fields/Flaglist.js +++ b/src/components/fields/Flaglist.js @@ -25,4 +25,6 @@ UnconnectedFlaglist.propTypes = { ...Field.propTypes, }; +UnconnectedFlaglist.displayName = 'UnconnectedFlaglist'; + export default connectToContainer(UnconnectedFlaglist); diff --git a/src/components/fields/GroupCreator.js b/src/components/fields/GroupCreator.js index e7fb7ff25..c46ff0dd4 100644 --- a/src/components/fields/GroupCreator.js +++ b/src/components/fields/GroupCreator.js @@ -81,4 +81,6 @@ UnconnectedGroupCreator.contextTypes = { fullData: PropTypes.array, }; +UnconnectedGroupCreator.displayName = 'UnconnectedGroupCreator'; + export default connectToContainer(UnconnectedGroupCreator); diff --git a/src/components/fields/HoverLabelNameLength.js b/src/components/fields/HoverLabelNameLength.js index e29e48708..6ee9630f5 100644 --- a/src/components/fields/HoverLabelNameLength.js +++ b/src/components/fields/HoverLabelNameLength.js @@ -81,6 +81,8 @@ UnconnectedHoverLabelNameLength.contextTypes = { localize: PropTypes.func, }; +UnconnectedHoverLabelNameLength.displayName = 'UnconnectedHoverLabelNameLength'; + export default connectToContainer(UnconnectedHoverLabelNameLength, { modifyPlotProps: (props, context, plotProps) => { const {container} = plotProps; diff --git a/src/components/fields/MarkerColor.js b/src/components/fields/MarkerColor.js index ea657e50f..9c80408ca 100644 --- a/src/components/fields/MarkerColor.js +++ b/src/components/fields/MarkerColor.js @@ -226,4 +226,6 @@ UnconnectedMarkerColor.contextTypes = { container: PropTypes.object, }; +UnconnectedMarkerColor.displayName = 'UnconnectedMarkerColor'; + export default connectToContainer(UnconnectedMarkerColor); diff --git a/src/components/fields/MarkerSize.js b/src/components/fields/MarkerSize.js index def878e00..0d5f400aa 100644 --- a/src/components/fields/MarkerSize.js +++ b/src/components/fields/MarkerSize.js @@ -97,4 +97,6 @@ UnconnectedMarkerSize.contextTypes = { updateContainer: PropTypes.func, }; +UnconnectedMarkerSize.displayName = 'UnconnectedMarkerSize'; + export default connectToContainer(UnconnectedMarkerSize); diff --git a/src/components/fields/MultiColorPicker.js b/src/components/fields/MultiColorPicker.js index d5d6657fd..f1e9f1d84 100644 --- a/src/components/fields/MultiColorPicker.js +++ b/src/components/fields/MultiColorPicker.js @@ -142,6 +142,8 @@ UnconnectedMultiColorPicker.contextTypes = { fullData: PropTypes.array, }; +UnconnectedMultiColorPicker.displayName = 'UnconnectedMultiColorPicker'; + export default connectToContainer(UnconnectedMultiColorPicker, { modifyPlotProps(props, context, plotProps) { if (plotProps.isVisible) { diff --git a/src/components/fields/Numeric.js b/src/components/fields/Numeric.js index f3a991298..846e1b044 100644 --- a/src/components/fields/Numeric.js +++ b/src/components/fields/Numeric.js @@ -47,4 +47,6 @@ UnconnectedNumeric.propTypes = { ...Field.propTypes, }; +UnconnectedNumeric.displayName = 'UnconnectedNumeric'; + export default connectToContainer(UnconnectedNumeric); diff --git a/src/components/fields/NumericOrDate.js b/src/components/fields/NumericOrDate.js index 2f72a6c20..7cb401feb 100644 --- a/src/components/fields/NumericOrDate.js +++ b/src/components/fields/NumericOrDate.js @@ -35,4 +35,6 @@ UnconnectedNumericOrDate.propTypes = { ...Field.propTypes, }; +UnconnectedNumericOrDate.displayName = 'UnconnectedNumericOrDate'; + export default connectToContainer(UnconnectedNumericOrDate); diff --git a/src/components/fields/PieColorscalePicker.js b/src/components/fields/PieColorscalePicker.js index 15fdb4e27..8f68a1219 100644 --- a/src/components/fields/PieColorscalePicker.js +++ b/src/components/fields/PieColorscalePicker.js @@ -47,6 +47,8 @@ UnconnectedPieColorscalePicker.contextTypes = { graphDiv: PropTypes.object, }; +UnconnectedPieColorscalePicker.displayName = 'UnconnectedPieColorscalePicker'; + export default connectToContainer(UnconnectedPieColorscalePicker, { modifyPlotProps: (props, context, plotProps) => { if ( diff --git a/src/components/fields/Radio.js b/src/components/fields/Radio.js index ccf63f9c7..7f8f11242 100644 --- a/src/components/fields/Radio.js +++ b/src/components/fields/Radio.js @@ -32,4 +32,6 @@ UnconnectedRadio.defaultProps = { center: true, }; +UnconnectedRadio.displayName = 'UnconnectedRadio'; + export default connectToContainer(UnconnectedRadio); diff --git a/src/components/fields/RectanglePositioner.js b/src/components/fields/RectanglePositioner.js index c14478b34..6e7b1970e 100644 --- a/src/components/fields/RectanglePositioner.js +++ b/src/components/fields/RectanglePositioner.js @@ -185,4 +185,6 @@ UnconnectedRectanglePositioner.contextTypes = { fullLayout: PropTypes.object, }; +UnconnectedRectanglePositioner.displayName = 'UnconnectedRectanglePositioner'; + export default connectToContainer(UnconnectedRectanglePositioner); diff --git a/src/components/fields/Text.js b/src/components/fields/Text.js index 0d888c80d..b9c62cb48 100644 --- a/src/components/fields/Text.js +++ b/src/components/fields/Text.js @@ -36,4 +36,6 @@ UnconnectedText.propTypes = { ...Field.propTypes, }; +UnconnectedText.displayName = 'UnconnectedText'; + export default connectToContainer(UnconnectedText); diff --git a/src/components/fields/TextEditor.js b/src/components/fields/TextEditor.js index c5a0a76f7..676e6e7f3 100644 --- a/src/components/fields/TextEditor.js +++ b/src/components/fields/TextEditor.js @@ -127,6 +127,8 @@ UnconnectedTextEditor.contextTypes = { fullLayout: PropTypes.object, }; +UnconnectedTextEditor.displayName = 'UnconnectedTextEditor'; + export default connectToContainer(UnconnectedTextEditor, { modifyPlotProps: (props, context, plotProps) => { if (plotProps.isVisible && plotProps.multiValued) { diff --git a/src/components/fields/TextPosition.js b/src/components/fields/TextPosition.js index d0a12efa4..ddbffbb20 100644 --- a/src/components/fields/TextPosition.js +++ b/src/components/fields/TextPosition.js @@ -77,6 +77,8 @@ UnconnectedTextPosition.contextTypes = { localize: PropTypes.func, }; +UnconnectedTextPosition.displayName = 'UnconnectedTextPosition'; + export default connectToContainer(UnconnectedTextPosition, { modifyPlotProps: (props, context, plotProps) => { const {localize: _} = context; diff --git a/src/components/fields/VisibilitySelect.js b/src/components/fields/VisibilitySelect.js index d36bb98da..b46da658a 100644 --- a/src/components/fields/VisibilitySelect.js +++ b/src/components/fields/VisibilitySelect.js @@ -83,4 +83,6 @@ UnconnectedVisibilitySelect.contextTypes = { updateContainer: PropTypes.func, }; +UnconnectedVisibilitySelect.displayName = 'UnconnectedVisibilitySelect'; + export default connectToContainer(UnconnectedVisibilitySelect); diff --git a/src/components/fields/derived.js b/src/components/fields/derived.js index 569eda5fc..bc6d8822b 100644 --- a/src/components/fields/derived.js +++ b/src/components/fields/derived.js @@ -254,6 +254,7 @@ UnconnectedNumericFraction.defaultProps = { units: '%', showSlider: true, }; +UnconnectedNumericFraction.displayName = 'UnconnectedNumericFraction'; const numericFractionModifyPlotProps = (props, context, plotProps) => { const {attrMeta, fullValue, updatePlot} = plotProps; From f35e34452a297917dcd8b44cbcb3102944311ba6 Mon Sep 17 00:00:00 2001 From: Vera Zabeida Date: Mon, 16 Sep 2019 13:43:46 -0400 Subject: [PATCH 3/4] add tests --- src/__stories__/index.js | 77 +++++++++++++++- .../ConnectedContainersVisibility-test.js | 51 +++++++++++ src/lib/__tests__/unpackPlotProps-test.js | 88 +++++++++++++++++++ src/lib/test-utils.js | 2 +- 4 files changed, 213 insertions(+), 5 deletions(-) create mode 100644 src/lib/__tests__/unpackPlotProps-test.js diff --git a/src/__stories__/index.js b/src/__stories__/index.js index a6586e3de..38afd39aa 100644 --- a/src/__stories__/index.js +++ b/src/__stories__/index.js @@ -12,6 +12,72 @@ import './stories.css'; import React from 'react'; import {storiesOf} from '@storybook/react'; +export const customConfigTest = { + visibility_rules: { + blacklist: [ + {type: 'attrName', regex_match: 'font.family'}, + {type: 'attrName', regex_match: 'font.size'}, + { + type: 'attrName', + regex_match: 'color', + exceptions: [ + { + type: 'attrName', + regex_match: 'colorbar', + exceptions: [ + {type: 'attrName', regex_match: 'colorbar.bgcolor'}, + {type: 'attrName', regex_match: 'colorbar.tickfont.color'}, + {type: 'attrName', regex_match: 'colorbar.title.font.color'}, + {type: 'attrName', regex_match: 'colorbar.outlinecolor'}, + {type: 'attrName', regex_match: 'colorbar.bordercolor'}, + {type: 'attrName', regex_match: 'colorbar.tickcolor'}, + ], + }, + { + type: 'attrName', + regex_match: 'coloraxis', + exceptions: [ + {type: 'attrName', regex_match: 'coloraxis.colorscale'}, + {type: 'attrName', regex_match: 'coloraxis.colorbar.outlinecolor'}, + {type: 'attrName', regex_match: 'coloraxis.colorbar.bordercolor'}, + {type: 'attrName', regex_match: 'coloraxis.colorbar.bgcolor'}, + {type: 'attrName', regex_match: 'coloraxis.colorbar.tickcolor'}, + {type: 'attrName', regex_match: 'coloraxis.colorbar.tickfont.color'}, + {type: 'attrName', regex_match: 'coloraxis.colorbar.title.font.color'}, + ], + }, + { + type: 'attrName', + regex_match: 'colorscales', + exceptions: [ + { + type: 'attrName', + regex_match: 'colorscales.items.concentrationscales.colorscale', + }, + ], + }, + {type: 'attrName', regex_match: 'autocolorscale'}, + {type: 'attrName', regex_match: 'usecolormap'}, + {type: 'attrName', regex_match: 'bundlecolors'}, + { + type: 'attrName', + regex_match: 'marker.color', + exceptions: [ + {type: 'controlType', regex_match: '^UnconnectedMultiColorPicker$'}, + {type: 'controlType', regex_match: '^UnconnectedColorscalePicker$'}, + {type: 'attrName', regex_match: 'marker.colorbar.outlinecolor'}, + {type: 'attrName', regex_match: 'marker.colorbar.bordercolor'}, + {type: 'attrName', regex_match: 'marker.colorbar.bgcolor'}, + {type: 'attrName', regex_match: 'marker.colorbar.tickcolor'}, + {type: 'attrName', regex_match: 'marker.colorbar.tickfont.color'}, + {type: 'attrName', regex_match: 'marker.colorbar.title.font.color'}, + ], + }, + ], + }, + ], + }, +}; /** * To add more Percy tests - add a mock file to /dev/percy, add it to /dev/percy/index.js @@ -34,7 +100,7 @@ window.URL.createObjectURL = function() { return null; }; -const panelFixture = (Panel, group, name, figure) => { +const panelFixture = (Panel, group, name, figure, customConfig) => { const gd = setupGraphDiv(figure, plotly); gd._context = plotly.setPlotConfig(); gd._context.setBackground = () => { @@ -48,6 +114,7 @@ const panelFixture = (Panel, group, name, figure) => { graphDiv={gd} dataSources={fixtures.scatter().dataSources} dataSourceOptions={fixtures.scatter().dataSourceOptions} + customConfig={customConfig || {}} > @@ -67,8 +134,10 @@ Object.keys(mocks).forEach(m => { const panelGroup = words[0]; const panelName = words.slice(1, -1).join(' '); - stories = stories.add(`${m}_${p}`, () => - panelFixture(panels[p], panelGroup, panelName, mocks[m]) - ); + stories = stories + .add(`${m}_${p}`, () => panelFixture(panels[p], panelGroup, panelName, mocks[m])) + .add(`${m}_${p}_withCustomConfig`, () => + panelFixture(panels[p], panelGroup, panelName, mocks[m], customConfigTest) + ); }); }); diff --git a/src/components/containers/__tests__/ConnectedContainersVisibility-test.js b/src/components/containers/__tests__/ConnectedContainersVisibility-test.js index d306aefb9..2dad23642 100644 --- a/src/components/containers/__tests__/ConnectedContainersVisibility-test.js +++ b/src/components/containers/__tests__/ConnectedContainersVisibility-test.js @@ -74,6 +74,57 @@ describe('Basic PlotlySection rules', () => { it('HIDES Field', () => expect(wrapper.find('input').length).toEqual(0)); }); + describe('PlotlyPanel > PlotlySection > Field-with-no-visible-attr-based-on-customConfig', () => { + const wrapper = mount( + + + + + + + + ); + + it('HIDES Field based on customConfig', () => + expect(wrapper.find('input').length).toEqual(0)); + it('HIDES PlotlySection because no visible children according to custom config', () => + expect(wrapper.find('div.section').length).toEqual(0)); + }); + + describe('PlotlyPanel > PlotlySection > Field-with-no-visible-attr-based-on-customConfig', () => { + const wrapper = mount( + + + + + + + + + ); + + it('HIDES the title.font.color Field based on customConfig', () => + expect(wrapper.find('input').length).toEqual(1)); + it('SHOWS PlotlySection if it has an attr that is accepted by customConfig', () => + expect(wrapper.find('div.section').length).toEqual(1)); + }); + describe('div > PlotlySection > Field-with-visible-attr', () => { const wrapper = mount( diff --git a/src/lib/__tests__/unpackPlotProps-test.js b/src/lib/__tests__/unpackPlotProps-test.js new file mode 100644 index 000000000..fe443a93f --- /dev/null +++ b/src/lib/__tests__/unpackPlotProps-test.js @@ -0,0 +1,88 @@ +import {computeCustomConfigVisibility} from '../index'; + +const validate = (string, expected, config, wrappedComponentDisplayName) => { + const isVisible = computeCustomConfigVisibility( + {attr: string}, + config, + wrappedComponentDisplayName + ); + expect(isVisible).toBe(expected[string]); +}; + +describe('computeCustomConfigVisibility', () => { + const customConfig = { + visibility_rules: { + blacklist: [ + { + type: 'attrName', + regex_match: 'color', + exceptions: [ + { + type: 'attrName', + regex_match: 'colorscale', + exceptions: [ + {type: 'attrName', regex_match: 'colorscale.title.font.color'}, + {type: 'attrName', regex_match: 'colorscale.tickcolor'}, + ], + }, + ], + }, + ], + }, + }; + + it('correctly blacklists attributes taking into account exceptions', () => { + const cases = { + bg_color: false, + 'font.color': false, + somethingElse: true, + colorscale: true, + 'colorscale.somethingElse': true, + 'colorscale.title.font.color': false, + 'colorscale.tickcolor': false, + }; + + Object.keys(cases).forEach(c => validate(c, cases, customConfig)); + }); + + it('correctly whitelists attributes taking into account exceptions', () => { + const config = {visibility_rules: {whitelist: customConfig.visibility_rules.blacklist}}; + + const cases = { + bg_color: true, + 'font.color': true, + somethingElse: false, + colorscale: false, + 'colorscale.somethingElse': false, + 'colorscale.title.font.color': true, + 'colorscale.tickcolor': true, + }; + + Object.keys(cases).forEach(c => validate(c, cases, config)); + }); + + it('correctly displays visibility based on controlType', () => { + const config = { + visibility_rules: { + blacklist: [ + { + type: 'attrName', + regex_match: 'color', + exceptions: [ + { + type: 'attrName', + regex_match: 'marker.color', + exceptions: [{type: 'controlType', regex_match: '^ColorscalePicker$'}], + }, + ], + }, + ], + }, + }; + + const case1 = {'marker.color': false}; + const case2 = {'marker.color': true}; + Object.keys(case1).forEach(c => validate(c, case1, config, 'ColorscalePicker')); + Object.keys(case2).forEach(c => validate(c, case2, config, 'AnotherPicker')); + }); +}); diff --git a/src/lib/test-utils.js b/src/lib/test-utils.js index 2da40a86c..8b947fec0 100644 --- a/src/lib/test-utils.js +++ b/src/lib/test-utils.js @@ -104,7 +104,7 @@ function applyConfig(config = {}, {graphDiv: {data, layout}, dataSourceOptions, // replace simple graphDiv with properly mocked GD including fullData/fullLayout const graphDiv = setupGraphDiv({data, layout}); - return {dataSources, dataSourceOptions, graphDiv}; + return {dataSources, dataSourceOptions, graphDiv, customConfig: config.customConfig || {}}; } /* From 601502577d0c02f2fabc54b893350e84cc96eb21 Mon Sep 17 00:00:00 2001 From: Vera Zabeida Date: Mon, 16 Sep 2019 13:43:58 -0400 Subject: [PATCH 4/4] rerun translation keys --- .../combined-translation-keys.txt | 541 +++++++++--------- scripts/translationKeys/translation-keys.txt | 489 ++++++++-------- 2 files changed, 520 insertions(+), 510 deletions(-) diff --git a/scripts/translationKeys/combined-translation-keys.txt b/scripts/translationKeys/combined-translation-keys.txt index a6f617b2c..f76f6e875 100644 --- a/scripts/translationKeys/combined-translation-keys.txt +++ b/scripts/translationKeys/combined-translation-keys.txt @@ -1,6 +1,9 @@ # // react-chart-editor: /default_panels/StyleAxesPanel.js:228 $ // react-chart-editor: /default_panels/StyleAxesPanel.js:227 -% // react-chart-editor: /components/fields/derived.js:506 +% // react-chart-editor: /components/fields/derived.js:508 +% initial // react-chart-editor: /components/fields/derived.js:515 +% previous // react-chart-editor: /components/fields/derived.js:516 +% total // react-chart-editor: /components/fields/derived.js:517 ("Top", "Middle", "Bottom") + ("Left", "Center", "Right") // react-chart-editor: /components/fields/TextPosition.js:45 1 234,56 // react-chart-editor: /default_panels/StyleLayoutPanel.js:65 1 234.56 // react-chart-editor: /default_panels/StyleLayoutPanel.js:64 @@ -20,7 +23,7 @@ $ 45 // react-chart-editor: /default_panels/StyleAxesPanel.js:178 90 // react-chart-editor: /default_panels/StyleAxesPanel.js:179 @ // react-chart-editor: /default_panels/StyleAxesPanel.js:229 -A // react-chart-editor: /components/fields/derived.js:569 +A // react-chart-editor: /components/fields/derived.js:581 Above // react-chart-editor: /default_panels/StyleImagesPanel.js:35 Active Color // react-chart-editor: /default_panels/StyleAxesPanel.js:384 Active Icon Color // react-chart-editor: /default_panels/StyleLayoutPanel.js:88 @@ -36,19 +39,20 @@ All All points in a trace are colored in the same color. // react-chart-editor: /components/fields/MarkerColor.js:168 All traces will be colored in the the same color. // react-chart-editor: /components/fields/ColorArrayPicker.js:104 All will be colored in the same color. // react-chart-editor: /components/fields/MultiColorPicker.js:89 -Ambient // react-chart-editor: /default_panels/StyleTracesPanel.js:587 +Ambient // react-chart-editor: /default_panels/StyleTracesPanel.js:673 Anchor // react-chart-editor: /default_panels/StyleColorbarsPanel.js:87 Anchor Point // react-chart-editor: /default_panels/StyleAxesPanel.js:390 Anchor to // react-chart-editor: /default_panels/GraphSubplotsPanel.js:31 Angle // react-chart-editor: /default_panels/StyleAxesPanel.js:173 +Annotate // react-chart-editor: /DefaultEditor.js:97 Annotation // react-chart-editor: /components/containers/AnnotationAccordion.js:34 -AnnotationArrowRef must be given either "axref" or "ayref" as attrs. Instead was given // react-chart-editor: /components/fields/derived.js:356 -AnnotationRef must be given either "xref" or "yref" as attrs. Instead was given // react-chart-editor: /components/fields/derived.js:403 +AnnotationArrowRef must be given either "axref" or "ayref" as attrs. Instead was given // react-chart-editor: /components/fields/derived.js:357 +AnnotationRef must be given either "xref" or "yref" as attrs. Instead was given // react-chart-editor: /components/fields/derived.js:404 Annotations are text and arrows you can use to point out specific parts of your figure. // react-chart-editor: /components/containers/AnnotationAccordion.js:60 Any // react-chart-editor: /default_panels/StyleLayoutPanel.js:127 April // react-chart-editor: /components/widgets/DateTimePicker.js:78 -Area // react-chart-editor: /default_panels/StyleTracesPanel.js:358 -Arrangement // react-chart-editor: /default_panels/StyleTracesPanel.js:716 +Area // react-chart-editor: /default_panels/StyleTracesPanel.js:390 +Arrangement // react-chart-editor: /default_panels/StyleTracesPanel.js:749 Arrow // react-chart-editor: /default_panels/StyleNotesPanel.js:49 Arrowhead // react-chart-editor: /default_panels/StyleNotesPanel.js:56 Ascending // react-chart-editor: /default_panels/GraphTransformsPanel.js:85 @@ -62,71 +66,72 @@ Auto margins Autoscale // plotly.js: components/modebar/buttons.js:148 Average // react-chart-editor: /default_panels/GraphTransformsPanel.js:40 && react-chart-editor: /components/fields/derived.js:136 Axes // react-chart-editor: /DefaultEditor.js:93 -Axes to Use // react-chart-editor: /components/fields/AxesCreator.js:159 -AxesSelector must be nested within a connectAxesToPlot component // react-chart-editor: /components/fields/AxesSelector.js:13 -Axis // react-chart-editor: /components/fields/AxesCreator.js:151 +Axes to Use // react-chart-editor: /components/fields/AxesCreator.js:158 +AxesSelector must be nested within a connectAxesToPlot component // react-chart-editor: /components/fields/AxesSelector.js:14 +Axis // react-chart-editor: /components/fields/AxesCreator.js:150 Axis Background // react-chart-editor: /default_panels/StyleAxesPanel.js:138 Axis Line // react-chart-editor: /default_panels/StyleAxesPanel.js:82 -Axis to Style // react-chart-editor: /components/fields/AxesSelector.js:43 +Axis to Style // react-chart-editor: /components/fields/AxesSelector.js:46 Azimuthal Equal Area // react-chart-editor: /default_panels/StyleMapsPanel.js:67 Azimuthal Equidistant // react-chart-editor: /default_panels/StyleMapsPanel.js:69 -B // react-chart-editor: /components/fields/derived.js:570 +B // react-chart-editor: /components/fields/derived.js:582 Background // react-chart-editor: /default_panels/StyleSlidersPanel.js:19 Background Color // react-chart-editor: /default_panels/StyleAxesPanel.js:336 Backward // react-chart-editor: /default_panels/StyleAxesPanel.js:373 -Bandwidth // react-chart-editor: /default_panels/StyleTracesPanel.js:669 +Bandwidth // react-chart-editor: /default_panels/StyleTracesPanel.js:702 Bar // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:17 -Bar Grouping, Sizing and Spacing // react-chart-editor: /default_panels/StyleTracesPanel.js:233 +Bar Grouping, Sizing and Spacing // react-chart-editor: /default_panels/StyleTracesPanel.js:239 Bar Mode // react-chart-editor: /default_panels/GraphSubplotsPanel.js:75 Bar Options // react-chart-editor: /default_panels/GraphSubplotsPanel.js:73 Bar Padding // react-chart-editor: /default_panels/GraphSubplotsPanel.js:79 -Bar Position // react-chart-editor: /default_panels/StyleTracesPanel.js:274 -Bar Width // react-chart-editor: /default_panels/StyleTracesPanel.js:259 +Bar Position // react-chart-editor: /default_panels/StyleTracesPanel.js:306 +Bar Width // react-chart-editor: /default_panels/StyleTracesPanel.js:265 Bars // react-chart-editor: /components/containers/TraceMarkerSection.js:19 -Base // react-chart-editor: /default_panels/StyleTracesPanel.js:275 +Base // react-chart-editor: /default_panels/StyleTracesPanel.js:307 +Base Ratio // react-chart-editor: /default_panels/StyleTracesPanel.js:129 Basic // react-chart-editor: /default_panels/StyleMapsPanel.js:19 Bearing // react-chart-editor: /default_panels/StyleMapsPanel.js:33 Below // react-chart-editor: /default_panels/StyleImagesPanel.js:35 -Between // react-chart-editor: /default_panels/StyleTracesPanel.js:647 -Binning // react-chart-editor: /default_panels/StyleTracesPanel.js:263 -Blank // react-chart-editor: /default_panels/StyleTracesPanel.js:473 +Between // react-chart-editor: /default_panels/StyleTracesPanel.js:411 +Binning // react-chart-editor: /default_panels/StyleTracesPanel.js:295 +Blank // react-chart-editor: /default_panels/StyleTracesPanel.js:559 Border // react-chart-editor: /default_panels/StyleSlidersPanel.js:23 Border Color // react-chart-editor: /default_panels/StyleAxesPanel.js:338 Border Width // react-chart-editor: /default_panels/StyleAxesPanel.js:337 Borders and Background // react-chart-editor: /default_panels/StyleColorbarsPanel.js:249 -Both // react-chart-editor: /default_panels/StyleTracesPanel.js:517 +Both // react-chart-editor: /default_panels/StyleTracesPanel.js:603 Bottom // react-chart-editor: /components/fields/derived.js:99 -Bottom Center // react-chart-editor: /components/fields/TextPosition.js:91 -Bottom Left // react-chart-editor: /components/fields/TextPosition.js:90 -Bottom Right // react-chart-editor: /components/fields/TextPosition.js:92 +Bottom Center // react-chart-editor: /components/fields/TextPosition.js:93 +Bottom Left // react-chart-editor: /components/fields/TextPosition.js:92 +Bottom Right // react-chart-editor: /components/fields/TextPosition.js:94 Boundaries // react-chart-editor: /default_panels/GraphSubplotsPanel.js:22 -Box // react-chart-editor: /default_panels/StyleTracesPanel.js:691 -Box Fill Color // react-chart-editor: /default_panels/StyleTracesPanel.js:697 -Box Line Color // react-chart-editor: /default_panels/StyleTracesPanel.js:699 -Box Line Width // react-chart-editor: /default_panels/StyleTracesPanel.js:698 -Box Mean // react-chart-editor: /default_panels/StyleTracesPanel.js:681 -Box Mode // react-chart-editor: /default_panels/StyleTracesPanel.js:282 -Box Padding // react-chart-editor: /default_panels/StyleTracesPanel.js:287 +Box // react-chart-editor: /default_panels/StyleTracesPanel.js:724 +Box Fill Color // react-chart-editor: /default_panels/StyleTracesPanel.js:730 +Box Line Color // react-chart-editor: /default_panels/StyleTracesPanel.js:732 +Box Line Width // react-chart-editor: /default_panels/StyleTracesPanel.js:731 +Box Mean // react-chart-editor: /default_panels/StyleTracesPanel.js:714 +Box Mode // react-chart-editor: /default_panels/StyleTracesPanel.js:314 +Box Padding // react-chart-editor: /default_panels/StyleTracesPanel.js:319 Box Select // plotly.js: components/modebar/buttons.js:112 -Box Size and Spacing // react-chart-editor: /default_panels/StyleTracesPanel.js:279 -Box Width // react-chart-editor: /default_panels/StyleTracesPanel.js:286 -Boxes // react-chart-editor: /components/fields/derived.js:653 -Boxes and Points // react-chart-editor: /components/fields/derived.js:655 +Box Size and Spacing // react-chart-editor: /default_panels/StyleTracesPanel.js:311 +Box Width // react-chart-editor: /default_panels/StyleTracesPanel.js:318 +Boxes // react-chart-editor: /components/fields/derived.js:665 +Boxes and Points // react-chart-editor: /components/fields/derived.js:667 Button // react-chart-editor: /components/containers/RangeSelectorAccordion.js:44 Button Labels // react-chart-editor: /default_panels/StyleUpdateMenusPanel.js:21 Buttons // react-chart-editor: /components/containers/UpdateMenuAccordion.js:22 By // react-chart-editor: /default_panels/GraphTransformsPanel.js:76 By Type // react-chart-editor: /components/containers/TraceAccordion.js:166 -C // react-chart-editor: /components/fields/derived.js:571 +C // react-chart-editor: /components/fields/derived.js:583 Call out your data. // react-chart-editor: /components/containers/AnnotationAccordion.js:57 Candlestick // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:121 -Canvas // react-chart-editor: /components/fields/derived.js:412 +Canvas // react-chart-editor: /components/fields/derived.js:413 Carpet // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:105 Carpet Contour // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:113 Carpet Scatter // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:109 Categorical // react-chart-editor: /default_panels/StyleAxesPanel.js:51 Cell Options // react-chart-editor: /default_panels/GraphCreatePanel.js:160 -Cells // react-chart-editor: /default_panels/StyleTracesPanel.js:199 +Cells // react-chart-editor: /default_panels/StyleTracesPanel.js:205 Center // react-chart-editor: /default_panels/StyleAxesPanel.js:396 Center Latitude // react-chart-editor: /default_panels/StyleMapsPanel.js:30 Center Longitude // react-chart-editor: /default_panels/StyleMapsPanel.js:31 @@ -141,28 +146,28 @@ Click on the + button above to add a trace. Click on the + button above to add a transform. // react-chart-editor: /components/containers/TransformAccordion.js:128 Click on the + button above to add an annotation. // react-chart-editor: /components/containers/AnnotationAccordion.js:63 Click on the + button above to add an image. // react-chart-editor: /components/containers/ImageAccordion.js:61 -Click to enter Colorscale title // plotly.js: plots/plots.js:326 +Click to enter Colorscale title // plotly.js: plots/plots.js:325 Click to enter Component A title // plotly.js: plots/ternary/ternary.js:376 Click to enter Component B title // plotly.js: plots/ternary/ternary.js:386 Click to enter Component C title // plotly.js: plots/ternary/ternary.js:396 -Click to enter Plot title // plotly.js: plot_api/plot_api.js:584 -Click to enter X axis title // plotly.js: plots/plots.js:324 -Click to enter Y axis title // plotly.js: plots/plots.js:325 +Click to enter Plot title // plotly.js: plot_api/plot_api.js:569 +Click to enter X axis title // plotly.js: plots/plots.js:323 +Click to enter Y axis title // plotly.js: plots/plots.js:324 Click to enter radial axis title // plotly.js: plots/polar/polar.js:498 Clip To // react-chart-editor: /components/fields/HoverLabelNameLength.js:54 -Clip on Axes // react-chart-editor: /default_panels/StyleTracesPanel.js:524 +Clip on Axes // react-chart-editor: /default_panels/StyleTracesPanel.js:610 Clockwise // react-chart-editor: /components/fields/derived.js:105 Close // react-chart-editor: /default_panels/GraphCreatePanel.js:123 -Closest // react-chart-editor: /components/fields/derived.js:685 +Closest // react-chart-editor: /components/fields/derived.js:697 Coastlines // react-chart-editor: /default_panels/StyleMapsPanel.js:102 Collapse All // react-chart-editor: /components/containers/PanelHeader.js:35 Color // react-chart-editor: /components/fields/ErrorBars.js:102 Color Bar // react-chart-editor: /components/fields/MarkerColor.js:188 Color Bar Container // react-chart-editor: /default_panels/StyleColorbarsPanel.js:254 Color Bars // react-chart-editor: /DefaultEditor.js:96 -Coloring // react-chart-editor: /default_panels/StyleTracesPanel.js:379 -Colors // react-chart-editor: /default_panels/StyleTracesPanel.js:107 -Colorscale // react-chart-editor: /default_panels/StyleTracesPanel.js:466 +Coloring // react-chart-editor: /default_panels/StyleTracesPanel.js:465 +Colors // react-chart-editor: /default_panels/StyleTracesPanel.js:100 +Colorscale // react-chart-editor: /default_panels/StyleTracesPanel.js:552 Colorscale Direction // react-chart-editor: /components/fields/MarkerColor.js:183 Colorscale Range // react-chart-editor: /components/fields/MarkerColor.js:193 Colorscales // react-chart-editor: /default_panels/StyleLayoutPanel.js:28 @@ -176,36 +181,37 @@ Cones & Streamtubes Conic Conformal // react-chart-editor: /default_panels/StyleMapsPanel.js:73 Conic Equal Area // react-chart-editor: /default_panels/StyleMapsPanel.js:72 Conic Equidistant // react-chart-editor: /default_panels/StyleMapsPanel.js:74 -Connect // react-chart-editor: /default_panels/StyleTracesPanel.js:473 -Connect Gaps // react-chart-editor: /default_panels/StyleTracesPanel.js:471 -Connector Styles // react-chart-editor: /default_panels/StyleTracesPanel.js:635 +Connect // react-chart-editor: /default_panels/StyleTracesPanel.js:559 +Connect Gaps // react-chart-editor: /default_panels/StyleTracesPanel.js:557 +Connector Styles // react-chart-editor: /default_panels/StyleTracesPanel.js:398 Constant // react-chart-editor: /components/fields/ColorArrayPicker.js:89 -Constrain Text // react-chart-editor: /default_panels/StyleTracesPanel.js:513 -Constraint // react-chart-editor: /default_panels/StyleTracesPanel.js:375 +Constrain Text // react-chart-editor: /default_panels/StyleTracesPanel.js:599 +Constraint // react-chart-editor: /default_panels/StyleTracesPanel.js:461 Contain // react-chart-editor: /default_panels/StyleImagesPanel.js:26 Continue // react-chart-editor: /components/widgets/text_editors/MultiFormat.js:192 Continuing will convert your LaTeX expression into raw text. // react-chart-editor: /components/widgets/text_editors/MultiFormat.js:111 Continuing will convert your note to LaTeX-style text. // react-chart-editor: /components/widgets/text_editors/MultiFormat.js:106 Continuing will remove your expression. // react-chart-editor: /components/widgets/text_editors/MultiFormat.js:116 Contour // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:41 -Contour Carpet // react-chart-editor: /lib/traceTypes.js:248 -Contour Color // react-chart-editor: /default_panels/StyleTracesPanel.js:749 -Contour Labels // react-chart-editor: /default_panels/StyleTracesPanel.js:395 -Contour Lines // react-chart-editor: /default_panels/StyleTracesPanel.js:390 -Contour Width // react-chart-editor: /default_panels/StyleTracesPanel.js:750 -Contours // react-chart-editor: /default_panels/StyleTracesPanel.js:369 +Contour Carpet // react-chart-editor: /lib/traceTypes.js:258 +Contour Color // react-chart-editor: /default_panels/StyleTracesPanel.js:783 +Contour Labels // react-chart-editor: /default_panels/StyleTracesPanel.js:481 +Contour Lines // react-chart-editor: /default_panels/StyleTracesPanel.js:476 +Contour Width // react-chart-editor: /default_panels/StyleTracesPanel.js:784 +Contours // react-chart-editor: /default_panels/StyleTracesPanel.js:455 +Control // react-chart-editor: /DefaultEditor.js:100 Copy Y Style // react-chart-editor: /components/fields/ErrorBars.js:93 Copy Z Style // react-chart-editor: /components/fields/ErrorBars.js:98 Count // react-chart-editor: /default_panels/GraphTransformsPanel.js:38 && react-chart-editor: /components/fields/derived.js:134 Counter Clockwise // react-chart-editor: /default_panels/StyleAxesPanel.js:75 Counterclockwise // react-chart-editor: /components/fields/derived.js:106 -Country Abbreviations (ISO-3) // react-chart-editor: /components/fields/LocationSelector.js:32 +Country Abbreviations (ISO-3) // react-chart-editor: /components/fields/LocationSelector.js:33 Country Borders // react-chart-editor: /default_panels/StyleMapsPanel.js:86 -Country Names // react-chart-editor: /components/fields/LocationSelector.js:31 +Country Names // react-chart-editor: /components/fields/LocationSelector.js:32 Crossbar Width // react-chart-editor: /components/fields/ErrorBars.js:104 Cube // react-chart-editor: /default_panels/GraphSubplotsPanel.js:44 -Cumulative // react-chart-editor: /default_panels/StyleTracesPanel.js:157 -Current Bin // react-chart-editor: /default_panels/StyleTracesPanel.js:172 +Cumulative // react-chart-editor: /default_panels/StyleTracesPanel.js:163 +Current Bin // react-chart-editor: /default_panels/StyleTracesPanel.js:178 Custom // react-chart-editor: /components/fields/MarkerColor.js:195 Custom Data // react-chart-editor: /components/fields/ErrorBars.js:123 Dark // react-chart-editor: /default_panels/StyleMapsPanel.js:22 @@ -214,25 +220,25 @@ Date Day // react-chart-editor: /default_panels/StyleAxesPanel.js:360 Days // react-chart-editor: /components/fields/AxisInterval.js:164 December // react-chart-editor: /components/widgets/DateTimePicker.js:86 -Decreasing // react-chart-editor: /default_panels/StyleTracesPanel.js:168 -Decreasing Marker Styles // react-chart-editor: /default_panels/StyleTracesPanel.js:615 +Decreasing // react-chart-editor: /default_panels/StyleTracesPanel.js:174 +Decreasing Marker Styles // react-chart-editor: /default_panels/StyleTracesPanel.js:432 Default // react-chart-editor: /components/fields/derived.js:148 Defaults // react-chart-editor: /default_panels/StyleLayoutPanel.js:25 Degrees // react-chart-editor: /default_panels/GraphCreatePanel.js:143 -Density // react-chart-editor: /default_panels/StyleTracesPanel.js:151 +Density // react-chart-editor: /default_panels/StyleTracesPanel.js:157 Descending // react-chart-editor: /default_panels/GraphTransformsPanel.js:86 Diagonal // react-chart-editor: /default_panels/StyleLayoutPanel.js:130 -Diameter // react-chart-editor: /default_panels/StyleTracesPanel.js:358 -Diffuse // react-chart-editor: /default_panels/StyleTracesPanel.js:588 +Diameter // react-chart-editor: /default_panels/StyleTracesPanel.js:390 +Diffuse // react-chart-editor: /default_panels/StyleTracesPanel.js:674 Direction // react-chart-editor: /default_panels/StyleAxesPanel.js:71 -Disable // react-chart-editor: /components/fields/derived.js:688 +Disable // react-chart-editor: /components/fields/derived.js:700 Disabled // react-chart-editor: /default_panels/GraphTransformsPanel.js:73 -Display // react-chart-editor: /default_panels/StyleTracesPanel.js:217 +Display // react-chart-editor: /default_panels/StyleTracesPanel.js:223 Distributions // react-chart-editor: /lib/traceTypes.js:18 -Divergence // react-chart-editor: /components/fields/derived.js:588 +Divergence // react-chart-editor: /components/fields/derived.js:600 Diverging // react-chart-editor: /default_panels/StyleLayoutPanel.js:42 -Double-click on legend to isolate one trace // plotly.js: components/legend/handle_click.js:89 -Double-click to zoom back out // plotly.js: plots/cartesian/dragbox.js:1089 +Double-click on legend to isolate one trace // plotly.js: components/legend/handle_click.js:27 +Double-click to zoom back out // plotly.js: plots/cartesian/dragbox.js:1094 Download plot // plotly.js: components/modebar/buttons.js:53 Download plot as a png // plotly.js: components/modebar/buttons.js:52 Drag // react-chart-editor: /default_panels/StyleLayoutPanel.js:109 @@ -257,9 +263,9 @@ Enter html formatted text Equirectangular // react-chart-editor: /default_panels/StyleMapsPanel.js:57 Error (+) // react-chart-editor: /components/fields/ErrorBars.js:146 Error (-) // react-chart-editor: /components/fields/ErrorBars.js:147 -Error Bars X // react-chart-editor: /default_panels/StyleTracesPanel.js:769 -Error Bars Y // react-chart-editor: /default_panels/StyleTracesPanel.js:776 -Error Bars Z // react-chart-editor: /default_panels/StyleTracesPanel.js:782 +Error Bars X // react-chart-editor: /default_panels/StyleTracesPanel.js:800 +Error Bars Y // react-chart-editor: /default_panels/StyleTracesPanel.js:807 +Error Bars Z // react-chart-editor: /default_panels/StyleTracesPanel.js:813 Error Type // react-chart-editor: /components/fields/ErrorBars.js:112 Europe // react-chart-editor: /default_panels/StyleMapsPanel.js:44 Every label // react-chart-editor: /default_panels/StyleAxesPanel.js:240 @@ -269,41 +275,43 @@ Exclude Range Exclude Values // react-chart-editor: /components/fields/FilterOperation.js:87 Expand All // react-chart-editor: /components/containers/PanelHeader.js:40 Exponents // react-chart-editor: /default_panels/StyleAxesPanel.js:197 -Extended Colors // react-chart-editor: /default_panels/StyleTracesPanel.js:109 -Face Normal // react-chart-editor: /default_panels/StyleTracesPanel.js:593 +Extended Colors // react-chart-editor: /default_panels/StyleTracesPanel.js:102 +Face Normal // react-chart-editor: /default_panels/StyleTracesPanel.js:679 Facecolor // react-chart-editor: /default_panels/GraphCreatePanel.js:173 False // react-chart-editor: /default_panels/StyleAxesPanel.js:159 February // react-chart-editor: /components/widgets/DateTimePicker.js:76 File loaded! // react-chart-editor: /components/widgets/Dropzone.js:31 Fill // react-chart-editor: /default_panels/StyleImagesPanel.js:27 Fill Color // react-chart-editor: /default_panels/GraphCreatePanel.js:155 -Fill to // react-chart-editor: /default_panels/StyleTracesPanel.js:477 -Filled Area // react-chart-editor: /default_panels/StyleTracesPanel.js:476 -Fills // react-chart-editor: /components/fields/derived.js:668 +Fill to // react-chart-editor: /default_panels/StyleTracesPanel.js:563 +Filled Area // react-chart-editor: /default_panels/StyleTracesPanel.js:562 +Fills // react-chart-editor: /components/fields/derived.js:680 Filter // react-chart-editor: /components/containers/TransformAccordion.js:21 Finance // react-chart-editor: /lib/traceTypes.js:13 First // react-chart-editor: /default_panels/GraphTransformsPanel.js:47 First label // react-chart-editor: /default_panels/StyleAxesPanel.js:241 -Fixed // react-chart-editor: /default_panels/StyleTracesPanel.js:722 +Fixed // react-chart-editor: /default_panels/StyleTracesPanel.js:755 Fixed Width // react-chart-editor: /default_panels/StyleLayoutPanel.js:99 Fixed height // react-chart-editor: /default_panels/StyleLayoutPanel.js:100 -Flatshading // react-chart-editor: /default_panels/StyleTracesPanel.js:228 +Flatshading // react-chart-editor: /default_panels/StyleTracesPanel.js:234 Font // react-chart-editor: /default_panels/StyleSlidersPanel.js:27 Font Color // react-chart-editor: /default_panels/GraphCreatePanel.js:156 Font Size // react-chart-editor: /default_panels/GraphCreatePanel.js:157 -Fraction // react-chart-editor: /default_panels/StyleTracesPanel.js:254 +Fraction // react-chart-editor: /default_panels/StyleTracesPanel.js:260 Fraction of Plot // react-chart-editor: /default_panels/StyleColorbarsPanel.js:64 Fraction of canvas // react-chart-editor: /default_panels/StyleSlidersPanel.js:38 Free // react-chart-editor: /components/fields/derived.js:36 -Freeform // react-chart-editor: /default_panels/StyleTracesPanel.js:721 -Fresnel // react-chart-editor: /default_panels/StyleTracesPanel.js:591 -Gap // react-chart-editor: /default_panels/StyleTracesPanel.js:101 +Freeform // react-chart-editor: /default_panels/StyleTracesPanel.js:754 +Fresnel // react-chart-editor: /default_panels/StyleTracesPanel.js:677 +Funnel // react-chart-editor: /lib/traceTypes.js:205 +Funnel Area // react-chart-editor: /lib/traceTypes.js:210 +Funnel Dimensions // react-chart-editor: /default_panels/StyleTracesPanel.js:120 Gap Between Groups // react-chart-editor: /default_panels/StyleLegendPanel.js:91 -Gaps // react-chart-editor: /default_panels/StyleTracesPanel.js:413 -Gaps Between Cells // react-chart-editor: /default_panels/StyleTracesPanel.js:567 -Gaps in Data // react-chart-editor: /default_panels/StyleTracesPanel.js:576 +Gaps // react-chart-editor: /default_panels/StyleTracesPanel.js:499 +Gaps Between Cells // react-chart-editor: /default_panels/StyleTracesPanel.js:653 +Gaps in Data // react-chart-editor: /default_panels/StyleTracesPanel.js:662 General // react-chart-editor: /DefaultEditor.js:91 -Geo // react-chart-editor: /lib/constants.js:106 +Geo // react-chart-editor: /lib/constants.js:107 Gnomonic // react-chart-editor: /default_panels/StyleMapsPanel.js:75 Go back // react-chart-editor: /components/widgets/text_editors/MultiFormat.js:185 Go to the // react-chart-editor: /components/containers/TraceRequiredPanel.js:24 @@ -311,38 +319,36 @@ Gradians Grid Lines // react-chart-editor: /default_panels/StyleAxesPanel.js:100 Grid Spacing // react-chart-editor: /default_panels/StyleAxesPanel.js:119 Group // react-chart-editor: /default_panels/StyleTracesPanel.js:71 -Group gap // react-chart-editor: /default_panels/StyleTracesPanel.js:102 Grouped // react-chart-editor: /default_panels/StyleLegendPanel.js:82 Groups // react-chart-editor: /default_panels/GraphCreatePanel.js:75 -Half // react-chart-editor: /default_panels/StyleTracesPanel.js:177 +Half // react-chart-editor: /default_panels/StyleTracesPanel.js:183 Hammer // react-chart-editor: /default_panels/StyleMapsPanel.js:78 -Hard // react-chart-editor: /default_panels/StyleTracesPanel.js:665 -Header // react-chart-editor: /default_panels/StyleTracesPanel.js:181 +Hard // react-chart-editor: /default_panels/StyleTracesPanel.js:698 +Header // react-chart-editor: /default_panels/StyleTracesPanel.js:187 Header Options // react-chart-editor: /default_panels/GraphCreatePanel.js:154 Headers // react-chart-editor: /default_panels/GraphCreatePanel.js:133 Heads up! // react-chart-editor: /components/widgets/text_editors/MultiFormat.js:169 -Heatmap // react-chart-editor: /default_panels/StyleTracesPanel.js:383 +Heatmap // react-chart-editor: /default_panels/StyleTracesPanel.js:469 Heatmap GL // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:89 Height // react-chart-editor: /default_panels/StyleAxesPanel.js:335 Hide // react-chart-editor: /components/fields/HoverLabelNameLength.js:56 High // react-chart-editor: /default_panels/GraphCreatePanel.js:121 Histogram // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:25 -Histogram Function // react-chart-editor: /default_panels/StyleTracesPanel.js:144 -Histogram Normalization // react-chart-editor: /default_panels/StyleTracesPanel.js:146 +Histogram Function // react-chart-editor: /default_panels/StyleTracesPanel.js:150 +Histogram Normalization // react-chart-editor: /default_panels/StyleTracesPanel.js:152 Hole // react-chart-editor: /default_panels/GraphSubplotsPanel.js:89 -Hole Size // react-chart-editor: /default_panels/StyleTracesPanel.js:317 +Hole Size // react-chart-editor: /default_panels/StyleTracesPanel.js:349 Horizontal // react-chart-editor: /default_panels/GraphCreatePanel.js:88 Horizontal Alignment // react-chart-editor: /default_panels/StyleNotesPanel.js:28 Horizontal Boundaries // react-chart-editor: /default_panels/StyleShapesPanel.js:30 -Horizontal Gap // react-chart-editor: /default_panels/StyleTracesPanel.js:568 -Horizontal Gaps // react-chart-editor: /default_panels/StyleTracesPanel.js:572 +Horizontal Gap // react-chart-editor: /default_panels/StyleTracesPanel.js:654 +Horizontal Gaps // react-chart-editor: /default_panels/StyleTracesPanel.js:658 Horizontal Position // react-chart-editor: /default_panels/StyleLayoutPanel.js:78 Horizontal Positioning // react-chart-editor: /default_panels/StyleAxesPanel.js:388 Hour // react-chart-editor: /default_panels/StyleAxesPanel.js:361 Hover // react-chart-editor: /default_panels/StyleLayoutPanel.js:145 -Hover Action // react-chart-editor: /default_panels/StyleTracesPanel.js:765 Hover on // react-chart-editor: /default_panels/StyleTracesPanel.js:766 -Hover/Tooltip Text // react-chart-editor: /default_panels/StyleTracesPanel.js:732 +Hover/Tooltip // react-chart-editor: /default_panels/StyleTracesPanel.js:765 I (Optional) // react-chart-editor: /default_panels/GraphCreatePanel.js:117 IDs // react-chart-editor: /default_panels/GraphCreatePanel.js:38 IE only supports svg. Changing format to svg. // plotly.js: components/modebar/buttons.js:63 @@ -352,29 +358,29 @@ Images Include // react-chart-editor: /components/fields/FilterOperation.js:29 Include Range // react-chart-editor: /components/fields/FilterOperation.js:75 Include Values // react-chart-editor: /components/fields/FilterOperation.js:83 -Increasing // react-chart-editor: /default_panels/StyleTracesPanel.js:167 -Increasing Marker Styles // react-chart-editor: /default_panels/StyleTracesPanel.js:600 +Increasing // react-chart-editor: /default_panels/StyleTracesPanel.js:173 +Increasing Marker Styles // react-chart-editor: /default_panels/StyleTracesPanel.js:417 Individually // react-chart-editor: /components/containers/TraceAccordion.js:165 Inequality // react-chart-editor: /components/fields/FilterOperation.js:71 -Infer Zero // react-chart-editor: /default_panels/StyleTracesPanel.js:416 -Inside // react-chart-editor: /components/fields/TextPosition.js:96 +Infer Zero // react-chart-editor: /default_panels/StyleTracesPanel.js:502 +Inside // react-chart-editor: /components/fields/TextPosition.js:98 Intensity // react-chart-editor: /default_panels/GraphCreatePanel.js:172 Interactions // react-chart-editor: /default_panels/StyleLayoutPanel.js:108 -Interpolate // react-chart-editor: /default_panels/StyleTracesPanel.js:417 -Interpolate Gaps // react-chart-editor: /default_panels/StyleTracesPanel.js:581 +Interpolate // react-chart-editor: /default_panels/StyleTracesPanel.js:503 +Interpolate Gaps // react-chart-editor: /default_panels/StyleTracesPanel.js:667 Isosurface // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:137 Item Sizing // react-chart-editor: /default_panels/StyleLegendPanel.js:87 J (Optional) // react-chart-editor: /default_panels/GraphCreatePanel.js:118 January // react-chart-editor: /components/widgets/DateTimePicker.js:75 -Jitter // react-chart-editor: /default_panels/StyleTracesPanel.js:339 +Jitter // react-chart-editor: /default_panels/StyleTracesPanel.js:371 July // react-chart-editor: /components/widgets/DateTimePicker.js:81 June // react-chart-editor: /components/widgets/DateTimePicker.js:80 K (Optional) // react-chart-editor: /default_panels/GraphCreatePanel.js:119 -KDE // react-chart-editor: /components/fields/derived.js:661 +KDE // react-chart-editor: /components/fields/derived.js:673 Kavrayskiy 7 // react-chart-editor: /default_panels/StyleMapsPanel.js:65 LaTeX // react-chart-editor: /components/widgets/text_editors/MultiFormat.js:24 LaTeX is a math typesetting language that doesn't work with rich text. // react-chart-editor: /components/widgets/text_editors/MultiFormat.js:105 -Label // react-chart-editor: /components/fields/derived.js:504 +Label // react-chart-editor: /components/fields/derived.js:506 Label Format // react-chart-editor: /default_panels/StyleAxesPanel.js:186 Label Prefix // react-chart-editor: /default_panels/StyleColorbarsPanel.js:158 Label Suffix // react-chart-editor: /default_panels/StyleColorbarsPanel.js:184 @@ -385,8 +391,8 @@ Lasso Lasso Select // plotly.js: components/modebar/buttons.js:121 Last // react-chart-editor: /default_panels/GraphTransformsPanel.js:48 Last label // react-chart-editor: /default_panels/StyleAxesPanel.js:242 -Lat/Lon // react-chart-editor: /components/fields/LocationSelector.js:99 -Latitude // react-chart-editor: /components/fields/derived.js:563 +Lat/Lon // react-chart-editor: /components/fields/LocationSelector.js:100 +Latitude // react-chart-editor: /components/fields/derived.js:575 Leaves // react-chart-editor: /default_panels/StyleTracesPanel.js:59 Left // react-chart-editor: /components/fields/derived.js:94 Legend // react-chart-editor: /default_panels/StyleLegendPanel.js:16 @@ -394,26 +400,26 @@ Legend Box Legend Group // react-chart-editor: /default_panels/StyleTracesPanel.js:71 Length // react-chart-editor: /default_panels/StyleAxesPanel.js:304 Length Mode // react-chart-editor: /default_panels/StyleSlidersPanel.js:35 -Levels // react-chart-editor: /default_panels/StyleTracesPanel.js:374 +Levels // react-chart-editor: /default_panels/StyleTracesPanel.js:460 Light // react-chart-editor: /default_panels/StyleMapsPanel.js:21 -Light Position // react-chart-editor: /default_panels/StyleTracesPanel.js:595 -Lighting // react-chart-editor: /default_panels/StyleTracesPanel.js:586 +Light Position // react-chart-editor: /default_panels/StyleTracesPanel.js:681 +Lighting // react-chart-editor: /default_panels/StyleTracesPanel.js:672 Line // react-chart-editor: /default_panels/StyleShapesPanel.js:24 -Line Color // react-chart-editor: /default_panels/StyleTracesPanel.js:603 -Line Shape // react-chart-editor: /default_panels/StyleTracesPanel.js:644 -Line Type // react-chart-editor: /default_panels/StyleTracesPanel.js:642 +Line Color // react-chart-editor: /default_panels/StyleTracesPanel.js:405 +Line Shape // react-chart-editor: /default_panels/StyleTracesPanel.js:408 +Line Type // react-chart-editor: /default_panels/StyleTracesPanel.js:406 Line Width // react-chart-editor: /default_panels/StyleNotesPanel.js:54 Linear // react-chart-editor: /default_panels/StyleAxesPanel.js:48 Lines // react-chart-editor: /default_panels/StyleAxesPanel.js:81 Lines, Rectangles and Ellipses. // react-chart-editor: /components/containers/ShapeAccordion.js:55 Links // react-chart-editor: /default_panels/GraphCreatePanel.js:79 Loading... // react-chart-editor: /components/widgets/Dropzone.js:110 -Location // react-chart-editor: /components/fields/derived.js:558 -Location Format // react-chart-editor: /components/fields/LocationSelector.js:27 -Locations // react-chart-editor: /components/fields/LocationSelector.js:25 +Location // react-chart-editor: /components/fields/derived.js:570 +Location Format // react-chart-editor: /components/fields/LocationSelector.js:28 +Locations // react-chart-editor: /components/fields/LocationSelector.js:26 Log // react-chart-editor: /default_panels/StyleAxesPanel.js:49 Logos, watermarks and more. // react-chart-editor: /components/containers/ImageAccordion.js:55 -Longitude // react-chart-editor: /components/fields/derived.js:563 +Longitude // react-chart-editor: /components/fields/derived.js:575 Looks like there aren't any traces defined yet. // react-chart-editor: /components/containers/TraceRequiredPanel.js:22 Low // react-chart-editor: /default_panels/GraphCreatePanel.js:122 Lower < Target < Upper // react-chart-editor: /components/fields/FilterOperation.js:19 @@ -427,45 +433,45 @@ Map Options Map Positioning // react-chart-editor: /default_panels/StyleMapsPanel.js:29 Map Projection // react-chart-editor: /default_panels/StyleMapsPanel.js:37 Map Style // react-chart-editor: /default_panels/StyleMapsPanel.js:14 -Mapbox // react-chart-editor: /lib/constants.js:107 +Mapbox // react-chart-editor: /lib/constants.js:108 Mapbox Style // react-chart-editor: /default_panels/StyleMapsPanel.js:16 Maps // react-chart-editor: /DefaultEditor.js:94 March // react-chart-editor: /components/widgets/DateTimePicker.js:77 Margin Color // react-chart-editor: /default_panels/StyleLayoutPanel.js:27 -Marker Color // react-chart-editor: /default_panels/StyleTracesPanel.js:604 +Marker Color // react-chart-editor: /default_panels/StyleTracesPanel.js:421 Max // react-chart-editor: /components/fields/MarkerColor.js:200 -Max Contour // react-chart-editor: /default_panels/StyleTracesPanel.js:408 -Max Contours // react-chart-editor: /default_panels/StyleTracesPanel.js:404 +Max Contour // react-chart-editor: /default_panels/StyleTracesPanel.js:494 +Max Contours // react-chart-editor: /default_panels/StyleTracesPanel.js:490 Max Depth // react-chart-editor: /default_panels/StyleTracesPanel.js:61 Max Number of Labels // react-chart-editor: /default_panels/StyleAxesPanel.js:279 Max Number of Lines // react-chart-editor: /default_panels/StyleAxesPanel.js:126 Max Number of Markers // react-chart-editor: /default_panels/StyleAxesPanel.js:315 -Max Number of Points // react-chart-editor: /default_panels/StyleTracesPanel.js:364 +Max Number of Points // react-chart-editor: /default_panels/StyleTracesPanel.js:396 Max Tube segments // react-chart-editor: /default_panels/StyleTracesPanel.js:91 -Max X Bins // react-chart-editor: /default_panels/StyleTracesPanel.js:266 -Max Y Bins // react-chart-editor: /default_panels/StyleTracesPanel.js:271 +Max X Bins // react-chart-editor: /default_panels/StyleTracesPanel.js:298 +Max Y Bins // react-chart-editor: /default_panels/StyleTracesPanel.js:303 Maximum // react-chart-editor: /components/fields/derived.js:138 May // react-chart-editor: /components/widgets/DateTimePicker.js:79 -Mean // react-chart-editor: /default_panels/StyleTracesPanel.js:685 -Mean & SD // react-chart-editor: /default_panels/StyleTracesPanel.js:686 -Meanline // react-chart-editor: /default_panels/StyleTracesPanel.js:701 -Meanline Color // react-chart-editor: /default_panels/StyleTracesPanel.js:707 -Meanline Width // react-chart-editor: /default_panels/StyleTracesPanel.js:706 +Mean // react-chart-editor: /default_panels/StyleTracesPanel.js:718 +Mean & SD // react-chart-editor: /default_panels/StyleTracesPanel.js:719 +Meanline // react-chart-editor: /default_panels/StyleTracesPanel.js:734 +Meanline Color // react-chart-editor: /default_panels/StyleTracesPanel.js:740 +Meanline Width // react-chart-editor: /default_panels/StyleTracesPanel.js:739 Measure // react-chart-editor: /default_panels/GraphCreatePanel.js:71 Median // react-chart-editor: /default_panels/GraphTransformsPanel.js:41 Menus // react-chart-editor: /DefaultEditor.js:101 Mercator // react-chart-editor: /default_panels/StyleMapsPanel.js:58 Meta Text // react-chart-editor: /default_panels/StyleLayoutPanel.js:180 Middle // react-chart-editor: /default_panels/StyleAxesPanel.js:410 -Middle Center // react-chart-editor: /components/fields/TextPosition.js:88 -Middle Left // react-chart-editor: /components/fields/TextPosition.js:87 -Middle Right // react-chart-editor: /components/fields/TextPosition.js:89 +Middle Center // react-chart-editor: /components/fields/TextPosition.js:90 +Middle Left // react-chart-editor: /components/fields/TextPosition.js:89 +Middle Right // react-chart-editor: /components/fields/TextPosition.js:91 Miller // react-chart-editor: /default_panels/StyleMapsPanel.js:64 Milliseconds // react-chart-editor: /components/fields/AxisInterval.js:167 Min // react-chart-editor: /components/fields/MarkerColor.js:199 -Min Contour // react-chart-editor: /default_panels/StyleTracesPanel.js:407 +Min Contour // react-chart-editor: /default_panels/StyleTracesPanel.js:493 Minimum // react-chart-editor: /components/fields/derived.js:137 -Minimum Size // react-chart-editor: /default_panels/StyleTracesPanel.js:360 +Minimum Size // react-chart-editor: /default_panels/StyleTracesPanel.js:392 Minute // react-chart-editor: /default_panels/StyleAxesPanel.js:362 Minutes // react-chart-editor: /components/fields/AxisInterval.js:165 Mirror Axis // react-chart-editor: /default_panels/StyleAxesPanel.js:94 @@ -481,7 +487,7 @@ Multiple Values My custom title %{meta[1]} // react-chart-editor: /default_panels/StyleLayoutPanel.js:191 Name // react-chart-editor: /default_panels/StyleTracesPanel.js:57 Natural Earth // react-chart-editor: /default_panels/StyleMapsPanel.js:60 -Negative // react-chart-editor: /default_panels/StyleTracesPanel.js:677 +Negative // react-chart-editor: /default_panels/StyleTracesPanel.js:710 Negative Sequential // react-chart-editor: /default_panels/StyleLayoutPanel.js:49 No // react-chart-editor: /components/fields/ErrorBars.js:95 No Clip // react-chart-editor: /components/fields/HoverLabelNameLength.js:55 @@ -489,24 +495,24 @@ No Results Nodes // react-chart-editor: /default_panels/GraphCreatePanel.js:73 None // react-chart-editor: /components/fields/derived.js:62 None label // react-chart-editor: /default_panels/StyleColorbarsPanel.js:179 -Norm // react-chart-editor: /components/fields/derived.js:587 +Norm // react-chart-editor: /components/fields/derived.js:599 Normal // react-chart-editor: /components/fields/MarkerColor.js:185 -Normalization // react-chart-editor: /default_panels/StyleTracesPanel.js:250 +Normalization // react-chart-editor: /default_panels/StyleTracesPanel.js:256 North America // react-chart-editor: /default_panels/StyleMapsPanel.js:47 -Notches // react-chart-editor: /default_panels/StyleTracesPanel.js:480 +Notches // react-chart-editor: /default_panels/StyleTracesPanel.js:566 Note Text // react-chart-editor: /default_panels/StyleNotesPanel.js:21 Note: X and Y Values are used for binning. If Z values are provided, they are used as inputs to the histogram function which you can configure in the // react-chart-editor: /default_panels/GraphCreatePanel.js:110 Note: in horizontal orientation, Y values are used for binning. If X values are provided, they are used as inputs to the histogram function which you can configure in the // react-chart-editor: /default_panels/GraphCreatePanel.js:101 Note: in vertical orientation, X values are used for binning. If Y values are provided, they are used as inputs to the histogram function which you can configure in the // react-chart-editor: /default_panels/GraphCreatePanel.js:92 November // react-chart-editor: /components/widgets/DateTimePicker.js:85 Number format // react-chart-editor: /default_panels/StyleLayoutPanel.js:60 -Number of Contours // react-chart-editor: /default_panels/StyleTracesPanel.js:400 -Number of Occurences // react-chart-editor: /default_panels/StyleTracesPanel.js:148 +Number of Contours // react-chart-editor: /default_panels/StyleTracesPanel.js:486 +Number of Occurences // react-chart-editor: /default_panels/StyleTracesPanel.js:154 OHLC // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:117 Oceans // react-chart-editor: /default_panels/StyleMapsPanel.js:110 October // react-chart-editor: /components/widgets/DateTimePicker.js:84 Off // react-chart-editor: /components/fields/RectanglePositioner.js:87 -Offset // react-chart-editor: /default_panels/StyleTracesPanel.js:276 +Offset // react-chart-editor: /default_panels/StyleTracesPanel.js:308 On // react-chart-editor: /components/fields/RectanglePositioner.js:87 Opacity // react-chart-editor: /default_panels/StyleShapesPanel.js:48 Open // react-chart-editor: /default_panels/GraphCreatePanel.js:120 @@ -518,31 +524,28 @@ Order Orientation // react-chart-editor: /default_panels/GraphCreatePanel.js:86 Orthographic // react-chart-editor: /default_panels/GraphSubplotsPanel.js:64 Outdoors // react-chart-editor: /default_panels/StyleMapsPanel.js:20 -Outliers // react-chart-editor: /default_panels/StyleTracesPanel.js:322 -Outside // react-chart-editor: /components/fields/TextPosition.js:97 -Overlaid // react-chart-editor: /default_panels/StyleTracesPanel.js:245 +Outliers // react-chart-editor: /default_panels/StyleTracesPanel.js:354 +Outside // react-chart-editor: /components/fields/TextPosition.js:99 +Overlaid // react-chart-editor: /default_panels/StyleTracesPanel.js:251 Overlay // react-chart-editor: /default_panels/GraphSubplotsPanel.js:77 Padding // react-chart-editor: /default_panels/StyleColorbarsPanel.js:113 Pan // plotly.js: components/modebar/buttons.js:103 && react-chart-editor: /default_panels/StyleLayoutPanel.js:116 -Parallel Categories // react-chart-editor: /lib/traceTypes.js:233 +Parallel Categories // react-chart-editor: /lib/traceTypes.js:243 Parallel Coordinates // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:93 Parent Value Mode // react-chart-editor: /default_panels/GraphCreatePanel.js:41 Parents // react-chart-editor: /default_panels/GraphCreatePanel.js:35 -Percent // react-chart-editor: /components/fields/derived.js:576 -Perpendicular // react-chart-editor: /default_panels/StyleTracesPanel.js:720 +Percent // react-chart-editor: /components/fields/derived.js:588 +Perpendicular // react-chart-editor: /default_panels/StyleTracesPanel.js:753 Perspective // react-chart-editor: /default_panels/GraphSubplotsPanel.js:63 Pie // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:37 -Pie Colors // react-chart-editor: /default_panels/StyleTracesPanel.js:105 -Pie Segments // react-chart-editor: /components/containers/TraceMarkerSection.js:21 -Pie Title // react-chart-editor: /default_panels/StyleTracesPanel.js:125 Pitch // react-chart-editor: /default_panels/StyleMapsPanel.js:34 Pixels // react-chart-editor: /default_panels/StyleColorbarsPanel.js:65 Plot Background // react-chart-editor: /default_panels/GraphSubplotsPanel.js:70 Point Cloud // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:85 -Point Opacity // react-chart-editor: /default_panels/StyleTracesPanel.js:347 -Points // react-chart-editor: /components/containers/TraceMarkerSection.js:25 -Points and Fills // react-chart-editor: /components/fields/derived.js:669 -Polar // react-chart-editor: /lib/constants.js:108 +Point Opacity // react-chart-editor: /default_panels/StyleTracesPanel.js:379 +Points // react-chart-editor: /components/containers/TraceMarkerSection.js:23 +Points and Fills // react-chart-editor: /components/fields/derived.js:681 +Polar // react-chart-editor: /lib/constants.js:109 Polar Bar // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:133 Polar Scatter // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:125 Polar Scatter GL // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:129 @@ -550,17 +553,17 @@ Polar Sector Position // react-chart-editor: /default_panels/StyleAxesPanel.js:92 Position On // react-chart-editor: /default_panels/StyleAxesPanel.js:111 Position on // react-chart-editor: /default_panels/StyleAxesPanel.js:162 -Positive // react-chart-editor: /default_panels/StyleTracesPanel.js:676 -Positive/Negative Stacked // react-chart-editor: /default_panels/StyleTracesPanel.js:243 +Positive // react-chart-editor: /default_panels/StyleTracesPanel.js:709 +Positive/Negative Stacked // react-chart-editor: /default_panels/StyleTracesPanel.js:249 Prefix // react-chart-editor: /default_panels/StyleAxesPanel.js:222 -Previous X // react-chart-editor: /components/fields/derived.js:621 -Previous Y // react-chart-editor: /components/fields/derived.js:620 -Probability // react-chart-editor: /default_panels/StyleTracesPanel.js:150 -Probability Density // react-chart-editor: /default_panels/StyleTracesPanel.js:152 +Previous X // react-chart-editor: /components/fields/derived.js:633 +Previous Y // react-chart-editor: /components/fields/derived.js:632 +Probability // react-chart-editor: /default_panels/StyleTracesPanel.js:156 +Probability Density // react-chart-editor: /default_panels/StyleTracesPanel.js:158 Produced with Plotly // plotly.js: components/modebar/modebar.js:304 Projection // react-chart-editor: /default_panels/GraphSubplotsPanel.js:58 -Pull // react-chart-editor: /default_panels/StyleTracesPanel.js:318 -R // react-chart-editor: /components/fields/derived.js:574 +Pull // react-chart-editor: /default_panels/StyleTracesPanel.js:350 +R // react-chart-editor: /components/fields/derived.js:586 RMS // react-chart-editor: /default_panels/GraphTransformsPanel.js:43 Radians // react-chart-editor: /default_panels/GraphCreatePanel.js:142 Radius // react-chart-editor: /default_panels/GraphCreatePanel.js:137 @@ -589,26 +592,28 @@ Right Rivers // react-chart-editor: /default_panels/StyleMapsPanel.js:131 Robinson // react-chart-editor: /default_panels/StyleMapsPanel.js:63 Roll // react-chart-editor: /default_panels/StyleMapsPanel.js:158 -Root // react-chart-editor: /components/fields/derived.js:710 -Rotation // react-chart-editor: /default_panels/StyleTracesPanel.js:316 -Roughness // react-chart-editor: /default_panels/StyleTracesPanel.js:590 +Root // react-chart-editor: /components/fields/derived.js:722 +Rotation // react-chart-editor: /default_panels/StyleTracesPanel.js:348 +Roughness // react-chart-editor: /default_panels/StyleTracesPanel.js:676 SVG // react-chart-editor: /components/fields/TraceSelector.js:101 Sankey // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:97 Satellite // react-chart-editor: /default_panels/StyleMapsPanel.js:23 Satellite Map // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:159 Satellite with Streets // react-chart-editor: /default_panels/StyleMapsPanel.js:24 Scale // react-chart-editor: /default_panels/StyleMapsPanel.js:155 -Scale Group // react-chart-editor: /default_panels/StyleTracesPanel.js:654 -Scale Mode // react-chart-editor: /default_panels/StyleTracesPanel.js:656 -Scaling // react-chart-editor: /default_panels/StyleTracesPanel.js:653 +Scale Group // react-chart-editor: /default_panels/StyleTracesPanel.js:687 +Scale Mode // react-chart-editor: /default_panels/StyleTracesPanel.js:689 +Scaling // react-chart-editor: /default_panels/StyleTracesPanel.js:686 Scatter // react-chart-editor: /components/fields/TraceSelector.js:48 -Scatter Carpet // react-chart-editor: /lib/traceTypes.js:243 +Scatter Carpet // react-chart-editor: /lib/traceTypes.js:253 Scatter GL // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:81 -Scatterplot Matrix // react-chart-editor: /lib/traceTypes.js:238 -Scene // react-chart-editor: /lib/constants.js:104 +Scatterplot Matrix // react-chart-editor: /lib/traceTypes.js:248 +Scene // react-chart-editor: /lib/constants.js:105 Second // react-chart-editor: /default_panels/StyleAxesPanel.js:363 Seconds // react-chart-editor: /components/fields/AxisInterval.js:166 See a basic example. // react-chart-editor: /components/widgets/TraceTypeSelector.js:128 +Segment Colors // react-chart-editor: /default_panels/StyleTracesPanel.js:95 +Segments // react-chart-editor: /components/containers/TraceMarkerSection.js:21 Select // react-chart-editor: /default_panels/StyleLayoutPanel.js:115 Select Data Point // react-chart-editor: /default_panels/StyleLayoutPanel.js:141 Select Direction // react-chart-editor: /default_panels/StyleLayoutPanel.js:124 @@ -621,8 +626,8 @@ Sequential Shape // react-chart-editor: /components/containers/ShapeAccordion.js:22 Shapes // react-chart-editor: /DefaultEditor.js:98 Show // react-chart-editor: /components/fields/MarkerColor.js:190 -Show All // react-chart-editor: /default_panels/StyleTracesPanel.js:321 -Show Contour // react-chart-editor: /default_panels/StyleTracesPanel.js:744 +Show All // react-chart-editor: /default_panels/StyleTracesPanel.js:353 +Show Contour // react-chart-editor: /default_panels/StyleTracesPanel.js:778 Show Exponents // react-chart-editor: /default_panels/StyleAxesPanel.js:210 Show Prefix // react-chart-editor: /default_panels/StyleAxesPanel.js:237 Show Sides // react-chart-editor: /default_panels/StyleAxesPanel.js:434 @@ -635,31 +640,32 @@ Single Sinusoidal // react-chart-editor: /default_panels/StyleMapsPanel.js:81 Size // react-chart-editor: /default_panels/StyleColorbarsPanel.js:58 Size Mode // react-chart-editor: /default_panels/StyleTracesPanel.js:77 -Size Scale // react-chart-editor: /default_panels/StyleTracesPanel.js:350 +Size Scale // react-chart-editor: /default_panels/StyleTracesPanel.js:382 Size and Margins // react-chart-editor: /default_panels/StyleLayoutPanel.js:91 Size and Positioning // react-chart-editor: /default_panels/StyleColorbarsPanel.js:57 Slider // react-chart-editor: /components/containers/SliderAccordion.js:20 Sliders // react-chart-editor: /DefaultEditor.js:100 -Smoothing // react-chart-editor: /default_panels/StyleTracesPanel.js:469 -Snap // react-chart-editor: /default_panels/StyleTracesPanel.js:719 +Smoothing // react-chart-editor: /default_panels/StyleTracesPanel.js:555 +Snap // react-chart-editor: /default_panels/StyleTracesPanel.js:752 Snap to Grid // react-chart-editor: /components/fields/RectanglePositioner.js:82 Snapshot succeeded // plotly.js: components/modebar/buttons.js:75 -Soft // react-chart-editor: /default_panels/StyleTracesPanel.js:664 +Soft // react-chart-editor: /default_panels/StyleTracesPanel.js:697 Sorry, there was a problem downloading your snapshot! // plotly.js: components/modebar/buttons.js:78 Sort // react-chart-editor: /components/containers/TransformAccordion.js:24 -Sorted // react-chart-editor: /default_panels/StyleTracesPanel.js:306 +Sorted // react-chart-editor: /default_panels/StyleTracesPanel.js:338 Sources // react-chart-editor: /default_panels/GraphCreatePanel.js:80 South America // react-chart-editor: /default_panels/StyleMapsPanel.js:48 -Span // react-chart-editor: /default_panels/StyleTracesPanel.js:670 -Span Mode // react-chart-editor: /default_panels/StyleTracesPanel.js:661 -Spanning // react-chart-editor: /default_panels/StyleTracesPanel.js:646 +Span // react-chart-editor: /default_panels/StyleTracesPanel.js:703 +Span Mode // react-chart-editor: /default_panels/StyleTracesPanel.js:694 +Spanning // react-chart-editor: /default_panels/StyleTracesPanel.js:410 Specialized // react-chart-editor: /lib/traceTypes.js:27 -Specular // react-chart-editor: /default_panels/StyleTracesPanel.js:589 +Specular // react-chart-editor: /default_panels/StyleTracesPanel.js:675 Spike Lines // react-chart-editor: /default_panels/StyleAxesPanel.js:419 Split // react-chart-editor: /components/containers/TransformAccordion.js:22 -Split labels // react-chart-editor: /default_panels/StyleTracesPanel.js:737 +Split labels // react-chart-editor: /default_panels/StyleTracesPanel.js:771 Stack // react-chart-editor: /default_panels/GraphSubplotsPanel.js:77 -Stacking // react-chart-editor: /default_panels/StyleTracesPanel.js:410 +Stacked // react-chart-editor: /default_panels/StyleTracesPanel.js:273 +Stacking // react-chart-editor: /default_panels/StyleTracesPanel.js:496 Standard Deviation // react-chart-editor: /default_panels/GraphTransformsPanel.js:44 Start Point // react-chart-editor: /default_panels/StyleShapesPanel.js:32 Start at Level // react-chart-editor: /default_panels/StyleTracesPanel.js:60 @@ -670,21 +676,20 @@ Stepmode Stereographic // react-chart-editor: /default_panels/StyleMapsPanel.js:76 Streamtube // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:69 Stretch // react-chart-editor: /default_panels/StyleImagesPanel.js:28 -Strict Sum Stacked // react-chart-editor: /default_panels/StyleTracesPanel.js:244 +Strict Sum Stacked // react-chart-editor: /default_panels/StyleTracesPanel.js:250 Structure // react-chart-editor: /DefaultEditor.js:86 Style // react-chart-editor: /default_panels/StyleAxesPanel.js:382 Sub-Country Unit Borders // react-chart-editor: /default_panels/StyleMapsPanel.js:94 -Subplots // react-chart-editor: /components/fields/AxesCreator.js:163 +Subplot Title // react-chart-editor: /default_panels/StyleTracesPanel.js:131 +Subplots // react-chart-editor: /components/fields/AxesCreator.js:162 Subplots to Use // react-chart-editor: /components/fields/SubplotCreator.js:126 Suffix // react-chart-editor: /default_panels/StyleAxesPanel.js:247 Sum // react-chart-editor: /default_panels/GraphSubplotsPanel.js:83 && react-chart-editor: /components/fields/derived.js:135 Sunburst // react-chart-editor: /lib/traceTypes.js:180 -Sunburst Colors // react-chart-editor: /default_panels/StyleTracesPanel.js:115 -Sunburst Segments // react-chart-editor: /components/containers/TraceMarkerSection.js:23 Supported formats are: // react-chart-editor: /components/widgets/Dropzone.js:53 Surface // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:57 -Suspected Outliers // react-chart-editor: /default_panels/StyleTracesPanel.js:323 -Symbol // react-chart-editor: /default_panels/StyleTracesPanel.js:361 +Suspected Outliers // react-chart-editor: /default_panels/StyleTracesPanel.js:355 +Symbol // react-chart-editor: /default_panels/StyleTracesPanel.js:393 Symmetric // react-chart-editor: /components/fields/ErrorBars.js:77 Table // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:101 Tail // react-chart-editor: /default_panels/StyleTracesPanel.js:85 @@ -697,14 +702,14 @@ Target ≠ Reference Target ≤ Reference // react-chart-editor: /components/fields/FilterOperation.js:12 Target ≥ Reference // react-chart-editor: /components/fields/FilterOperation.js:15 Targets // react-chart-editor: /default_panels/GraphCreatePanel.js:81 -Template // react-chart-editor: /components/fields/derived.js:523 +Template // react-chart-editor: /components/fields/derived.js:535 Ternary // react-chart-editor: /default_panels/GraphSubplotsPanel.js:82 Ternary Scatter // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:45 -Text // react-chart-editor: /components/fields/derived.js:510 +Text // react-chart-editor: /components/fields/derived.js:522 Text Alignment // react-chart-editor: /default_panels/StyleLayoutPanel.js:148 -Text Attributes // react-chart-editor: /default_panels/StyleTracesPanel.js:487 -Text Position // react-chart-editor: /default_panels/StyleTracesPanel.js:508 -Theta // react-chart-editor: /components/fields/derived.js:574 +Text Attributes // react-chart-editor: /default_panels/StyleTracesPanel.js:573 +Text Position // react-chart-editor: /default_panels/StyleTracesPanel.js:594 +Theta // react-chart-editor: /components/fields/derived.js:586 Theta Unit // react-chart-editor: /default_panels/GraphCreatePanel.js:140 Thickness // react-chart-editor: /components/fields/ErrorBars.js:103 This input has multiple values associated with it. Changing this setting will override these custom inputs. // react-chart-editor: /lib/constants.js:20 @@ -722,22 +727,22 @@ Tip Title // react-chart-editor: /default_panels/StyleColorbarsPanel.js:37 Titles // react-chart-editor: /default_panels/StyleAxesPanel.js:32 To Date // react-chart-editor: /default_panels/StyleAxesPanel.js:372 -To Next // react-chart-editor: /components/fields/derived.js:632 -To Self // react-chart-editor: /components/fields/derived.js:631 +To Next // react-chart-editor: /components/fields/derived.js:644 +To Self // react-chart-editor: /components/fields/derived.js:643 To upload multiple files, create multiple files and upload them individually. // react-chart-editor: /components/widgets/Dropzone.js:103 Toggle Spike Lines // plotly.js: components/modebar/buttons.js:569 Toggle show closest data on hover // plotly.js: components/modebar/buttons.js:361 Top // react-chart-editor: /components/fields/derived.js:99 -Top Center // react-chart-editor: /components/fields/TextPosition.js:85 -Top Left // react-chart-editor: /components/fields/TextPosition.js:84 -Top Right // react-chart-editor: /components/fields/TextPosition.js:86 +Top Center // react-chart-editor: /components/fields/TextPosition.js:87 +Top Left // react-chart-editor: /components/fields/TextPosition.js:86 +Top Right // react-chart-editor: /components/fields/TextPosition.js:88 Total // react-chart-editor: /default_panels/GraphCreatePanel.js:43 -Total Marker Styles // react-chart-editor: /default_panels/StyleTracesPanel.js:630 +Total Marker Styles // react-chart-editor: /default_panels/StyleTracesPanel.js:447 Trace // react-chart-editor: /components/containers/TraceAccordion.js:138 -Trace Name // react-chart-editor: /default_panels/StyleTracesPanel.js:741 +Trace Name // react-chart-editor: /default_panels/StyleTracesPanel.js:775 Trace Opacity // react-chart-editor: /default_panels/StyleTracesPanel.js:58 Trace Order // react-chart-editor: /default_panels/StyleLegendPanel.js:77 -Trace name // react-chart-editor: /components/fields/derived.js:606 +Trace name // react-chart-editor: /components/fields/derived.js:618 Trace your data. // react-chart-editor: /components/containers/TraceAccordion.js:118 Traces // react-chart-editor: /components/containers/TraceRequiredPanel.js:25 Traces of various types like bar and line are the building blocks of your figure. // react-chart-editor: /components/containers/TraceAccordion.js:120 @@ -752,64 +757,64 @@ Turntable Turntable rotation // plotly.js: components/modebar/buttons.js:290 Type // react-chart-editor: /default_panels/GraphCreatePanel.js:30 Typeface // react-chart-editor: /default_panels/StyleAxesPanel.js:36 -U // react-chart-editor: /components/fields/derived.js:584 +U // react-chart-editor: /components/fields/derived.js:596 URL // react-chart-editor: /components/widgets/text_editors/RichText/LinkEditor.js:90 USA // react-chart-editor: /default_panels/StyleMapsPanel.js:43 -USA State Abbreviations (e.g. NY) // react-chart-editor: /components/fields/LocationSelector.js:34 -Unsorted // react-chart-editor: /default_panels/StyleTracesPanel.js:306 +USA State Abbreviations (e.g. NY) // react-chart-editor: /components/fields/LocationSelector.js:35 +Unsorted // react-chart-editor: /default_panels/StyleTracesPanel.js:338 Upper Bound // react-chart-editor: /components/fields/FilterOperation.js:183 -V // react-chart-editor: /components/fields/derived.js:585 -Value // react-chart-editor: /components/fields/derived.js:505 +V // react-chart-editor: /components/fields/derived.js:597 +Value // react-chart-editor: /components/fields/derived.js:507 Value (-) // react-chart-editor: /components/fields/ErrorBars.js:143 -Value Format // react-chart-editor: /default_panels/StyleTracesPanel.js:762 -Value Suffix // react-chart-editor: /default_panels/StyleTracesPanel.js:763 -Values // react-chart-editor: /components/fields/derived.js:522 +Value Format // react-chart-editor: /default_panels/StyleTracesPanel.js:796 +Value Suffix // react-chart-editor: /default_panels/StyleTracesPanel.js:797 +Values // react-chart-editor: /components/fields/derived.js:534 Variable // react-chart-editor: /components/fields/ColorArrayPicker.js:90 -Vertex Normal // react-chart-editor: /default_panels/StyleTracesPanel.js:592 +Vertex Normal // react-chart-editor: /default_panels/StyleTracesPanel.js:678 Vertexcolor // react-chart-editor: /default_panels/GraphCreatePanel.js:174 Vertical // react-chart-editor: /default_panels/GraphCreatePanel.js:88 Vertical Alignment // react-chart-editor: /default_panels/StyleNotesPanel.js:38 Vertical Boundaries // react-chart-editor: /default_panels/StyleShapesPanel.js:36 -Vertical Gap // react-chart-editor: /default_panels/StyleTracesPanel.js:569 -Vertical Gaps // react-chart-editor: /default_panels/StyleTracesPanel.js:573 +Vertical Gap // react-chart-editor: /default_panels/StyleTracesPanel.js:655 +Vertical Gaps // react-chart-editor: /default_panels/StyleTracesPanel.js:659 Vertical Positioning // react-chart-editor: /default_panels/StyleAxesPanel.js:402 View tutorials on this chart type. // react-chart-editor: /components/widgets/TraceTypeSelector.js:120 Violin // react-chart-editor: /lib/computeTraceOptionsFromSchema.js:49 -Violin Mode // react-chart-editor: /default_panels/StyleTracesPanel.js:293 -Violin Padding // react-chart-editor: /default_panels/StyleTracesPanel.js:298 -Violin Size and Spacing // react-chart-editor: /default_panels/StyleTracesPanel.js:290 -Violin Width // react-chart-editor: /default_panels/StyleTracesPanel.js:297 -Violins // react-chart-editor: /components/fields/derived.js:659 -Violins and Points // react-chart-editor: /components/fields/derived.js:662 -Violins, Points and KDE // react-chart-editor: /components/fields/derived.js:663 -Visible Sides // react-chart-editor: /default_panels/StyleTracesPanel.js:673 -W // react-chart-editor: /components/fields/derived.js:586 -Waterfall // react-chart-editor: /default_panels/StyleTracesPanel.js:94 +Violin Mode // react-chart-editor: /default_panels/StyleTracesPanel.js:325 +Violin Padding // react-chart-editor: /default_panels/StyleTracesPanel.js:330 +Violin Size and Spacing // react-chart-editor: /default_panels/StyleTracesPanel.js:322 +Violin Width // react-chart-editor: /default_panels/StyleTracesPanel.js:329 +Violins // react-chart-editor: /components/fields/derived.js:671 +Violins and Points // react-chart-editor: /components/fields/derived.js:674 +Violins, Points and KDE // react-chart-editor: /components/fields/derived.js:675 +Visible Sides // react-chart-editor: /default_panels/StyleTracesPanel.js:706 +W // react-chart-editor: /components/fields/derived.js:598 +Waterfall // react-chart-editor: /lib/traceTypes.js:200 WebGL // react-chart-editor: /components/fields/TraceSelector.js:101 Well this is embarrassing. // react-chart-editor: /components/containers/PlotlyPanel.js:14 -Whisker Width // react-chart-editor: /default_panels/StyleTracesPanel.js:301 +Whisker Width // react-chart-editor: /default_panels/StyleTracesPanel.js:333 Width // react-chart-editor: /default_panels/GraphCreatePanel.js:167 Winkel Tripel // react-chart-editor: /default_panels/StyleMapsPanel.js:62 World // react-chart-editor: /default_panels/StyleMapsPanel.js:42 -X // react-chart-editor: /components/fields/derived.js:541 -X = 0 // react-chart-editor: /components/fields/derived.js:619 +X // react-chart-editor: /components/fields/derived.js:553 +X = 0 // react-chart-editor: /components/fields/derived.js:631 X Anchor // react-chart-editor: /default_panels/GraphSubplotsPanel.js:30 -X Axis // react-chart-editor: /components/fields/derived.js:686 -X Bin End // react-chart-editor: /default_panels/StyleTracesPanel.js:265 -X Bin Size // react-chart-editor: /default_panels/StyleTracesPanel.js:267 -X Bin Start // react-chart-editor: /default_panels/StyleTracesPanel.js:264 +X Axis // react-chart-editor: /components/fields/derived.js:698 +X Bin End // react-chart-editor: /default_panels/StyleTracesPanel.js:297 +X Bin Size // react-chart-editor: /default_panels/StyleTracesPanel.js:299 +X Bin Start // react-chart-editor: /default_panels/StyleTracesPanel.js:296 X Offset // react-chart-editor: /default_panels/StyleNotesPanel.js:58 X Overlay // react-chart-editor: /default_panels/GraphSubplotsPanel.js:23 X Values // react-chart-editor: /default_panels/GraphCreatePanel.js:49 X Vector // react-chart-editor: /default_panels/StyleNotesPanel.js:60 X start // react-chart-editor: /default_panels/GraphCreatePanel.js:130 -Y // react-chart-editor: /components/fields/derived.js:541 -Y = 0 // react-chart-editor: /components/fields/derived.js:618 +Y // react-chart-editor: /components/fields/derived.js:553 +Y = 0 // react-chart-editor: /components/fields/derived.js:630 Y Anchor // react-chart-editor: /default_panels/GraphSubplotsPanel.js:34 -Y Axis // react-chart-editor: /components/fields/derived.js:687 -Y Bin End // react-chart-editor: /default_panels/StyleTracesPanel.js:270 -Y Bin Size // react-chart-editor: /default_panels/StyleTracesPanel.js:272 -Y Bin Start // react-chart-editor: /default_panels/StyleTracesPanel.js:269 +Y Axis // react-chart-editor: /components/fields/derived.js:699 +Y Bin End // react-chart-editor: /default_panels/StyleTracesPanel.js:302 +Y Bin Size // react-chart-editor: /default_panels/StyleTracesPanel.js:304 +Y Bin Start // react-chart-editor: /default_panels/StyleTracesPanel.js:301 Y Offset // react-chart-editor: /default_panels/StyleNotesPanel.js:59 Y Overlay // react-chart-editor: /default_panels/GraphSubplotsPanel.js:24 Y Values // react-chart-editor: /default_panels/GraphCreatePanel.js:57 @@ -823,10 +828,10 @@ Yikes! This doesn't look like a valid Yikes! You can only upload one file at a time. // react-chart-editor: /components/widgets/Dropzone.js:101 You can add as many as you like, mixing and matching types and arranging them into subplots. // react-chart-editor: /components/containers/TraceAccordion.js:124 You can refer to the items in this column in any text fields of the editor like so: // react-chart-editor: /default_panels/StyleLayoutPanel.js:185 -You can style and position your axes in the // react-chart-editor: /components/fields/AxesCreator.js:162 +You can style and position your axes in the // react-chart-editor: /components/fields/AxesCreator.js:161 You can style and position your subplots in the // react-chart-editor: /components/fields/SubplotCreator.js:134 You need to provide a component for the modal to open! // react-chart-editor: /components/containers/ModalProvider.js:33 -Z // react-chart-editor: /components/fields/derived.js:556 +Z // react-chart-editor: /components/fields/derived.js:568 Z Values // react-chart-editor: /default_panels/GraphCreatePanel.js:66 Z start // react-chart-editor: /default_panels/GraphCreatePanel.js:132 Zero Line // react-chart-editor: /default_panels/StyleAxesPanel.js:129 @@ -837,49 +842,49 @@ Zoom in Zoom out // plotly.js: components/modebar/buttons.js:139 ^ // react-chart-editor: /default_panels/StyleAxesPanel.js:253 absolute // react-chart-editor: /default_panels/StyleTracesPanel.js:78 -according to axis // react-chart-editor: /components/fields/derived.js:378 -close: // plotly.js: traces/ohlc/calc.js:106 -concentration: // plotly.js: traces/sankey/plot.js:165 +according to axis // react-chart-editor: /components/fields/derived.js:379 +close: // plotly.js: traces/ohlc/calc.js:110 +concentration: // plotly.js: traces/sankey/plot.js:166 e+6 // react-chart-editor: /default_panels/StyleAxesPanel.js:202 -high: // plotly.js: traces/ohlc/calc.js:104 +high: // plotly.js: traces/ohlc/calc.js:108 image // react-chart-editor: /default_panels/StyleImagesPanel.js:20 image/jpeg, image/jpg, image/svg, image/png, image/gif, image/bmp, image/webp // react-chart-editor: /components/widgets/Dropzone.js:15 -in pixels // react-chart-editor: /components/fields/derived.js:367 -incoming flow count: // plotly.js: traces/sankey/plot.js:166 +in pixels // react-chart-editor: /components/fields/derived.js:368 +incoming flow count: // plotly.js: traces/sankey/plot.js:167 k/M/B // react-chart-editor: /default_panels/StyleAxesPanel.js:206 k/M/G // react-chart-editor: /default_panels/StyleAxesPanel.js:205 kde: // plotly.js: traces/violin/calc.js:94 lat: // plotly.js: traces/scattergeo/calc.js:48 lon: // plotly.js: traces/scattergeo/calc.js:49 -low: // plotly.js: traces/ohlc/calc.js:105 -lower fence: // plotly.js: traces/box/calc.js:146 -max: // plotly.js: traces/box/calc.js:144 -mean ± σ: // plotly.js: traces/box/calc.js:145 -mean: // plotly.js: traces/box/calc.js:145 -median: // plotly.js: traces/box/calc.js:140 -min: // plotly.js: traces/box/calc.js:141 -new text // plotly.js: plots/plots.js:327 && react-chart-editor: /components/containers/AnnotationAccordion.js:44 +low: // plotly.js: traces/ohlc/calc.js:109 +lower fence: // plotly.js: traces/box/calc.js:150 +max: // plotly.js: traces/box/calc.js:148 +mean ± σ: // plotly.js: traces/box/calc.js:149 +mean: // plotly.js: traces/box/calc.js:149 +median: // plotly.js: traces/box/calc.js:144 +min: // plotly.js: traces/box/calc.js:145 +new text // plotly.js: plots/plots.js:326 && react-chart-editor: /components/containers/AnnotationAccordion.js:44 noon // react-chart-editor: /components/widgets/DateTimePicker.js:145 -open: // plotly.js: traces/ohlc/calc.js:103 -outgoing flow count: // plotly.js: traces/sankey/plot.js:167 +open: // plotly.js: traces/ohlc/calc.js:107 +outgoing flow count: // plotly.js: traces/sankey/plot.js:168 panel under Structure to define traces. // react-chart-editor: /components/containers/TraceRequiredPanel.js:26 panel under Style. If Y values are omitted, the histogram function defaults to Count. // react-chart-editor: /default_panels/GraphCreatePanel.js:96 -panel. // react-chart-editor: /components/fields/AxesCreator.js:164 -q1: // plotly.js: traces/box/calc.js:142 -q3: // plotly.js: traces/box/calc.js:143 +panel. // react-chart-editor: /components/fields/AxesCreator.js:163 +q1: // plotly.js: traces/box/calc.js:146 +q3: // plotly.js: traces/box/calc.js:147 scaled // react-chart-editor: /default_panels/StyleTracesPanel.js:78 -source: // plotly.js: traces/sankey/plot.js:163 -target: // plotly.js: traces/sankey/plot.js:164 +source: // plotly.js: traces/sankey/plot.js:164 +target: // plotly.js: traces/sankey/plot.js:165 to upload here or click to choose a file from your computer. // react-chart-editor: /components/widgets/Dropzone.js:48 to us. // react-chart-editor: /components/widgets/Dropzone.js:127 -trace // plotly.js: plots/plots.js:329 +trace // plotly.js: plots/plots.js:328 transforms allow you to create multiple traces from one source trace, so as to style them differently. // react-chart-editor: /components/containers/TransformAccordion.js:112 transforms allow you to filter data out from a trace. // react-chart-editor: /components/containers/TransformAccordion.js:107 transforms allow you to sort a trace, so as to control marker overlay or line connection order. // react-chart-editor: /components/containers/TransformAccordion.js:124 transforms allow you to summarize a trace using an aggregate function like "average" or "minimum". // react-chart-editor: /components/containers/TransformAccordion.js:118 under Style panel. If X values are omitted, the histogram function defaults to Count. // react-chart-editor: /default_panels/GraphCreatePanel.js:105 under Style panel. If Z values are omitted, the histogram function defaults to Count. // react-chart-editor: /default_panels/GraphCreatePanel.js:114 -upper fence: // plotly.js: traces/box/calc.js:147 +upper fence: // plotly.js: traces/box/calc.js:151 x // react-chart-editor: /default_panels/StyleAxesPanel.js:226 x10^6 // react-chart-editor: /default_panels/StyleAxesPanel.js:204 √ // react-chart-editor: /components/fields/ErrorBars.js:117 \ No newline at end of file diff --git a/scripts/translationKeys/translation-keys.txt b/scripts/translationKeys/translation-keys.txt index 8af823bcb..ee576b29f 100644 --- a/scripts/translationKeys/translation-keys.txt +++ b/scripts/translationKeys/translation-keys.txt @@ -1,7 +1,7 @@ - Axis // /components/fields/AxesCreator.js:151 + Axis // /components/fields/AxesCreator.js:150 panel under Structure to define traces. // /components/containers/TraceRequiredPanel.js:26 panel under Style. If Y values are omitted, the histogram function defaults to Count. // /default_panels/GraphCreatePanel.js:96 - panel. // /components/fields/AxesCreator.js:164 + panel. // /components/fields/AxesCreator.js:163 to upload here or click to choose a file from your computer. // /components/widgets/Dropzone.js:48 to us. // /components/widgets/Dropzone.js:127 transforms allow you to create multiple traces from one source trace, so as to style them differently. // /components/containers/TransformAccordion.js:112 @@ -12,7 +12,10 @@ under Style panel. If Z values are omitted, the histogram function defaults to Count. // /default_panels/GraphCreatePanel.js:114 # // /default_panels/StyleAxesPanel.js:228 $ // /default_panels/StyleAxesPanel.js:227 -% // /components/fields/derived.js:506 +% // /components/fields/derived.js:508 +% initial // /components/fields/derived.js:515 +% previous // /components/fields/derived.js:516 +% total // /components/fields/derived.js:517 ("Top", "Middle", "Bottom") + ("Left", "Center", "Right") // /components/fields/TextPosition.js:45 1 234,56 // /default_panels/StyleLayoutPanel.js:65 1 234.56 // /default_panels/StyleLayoutPanel.js:64 @@ -32,7 +35,7 @@ $ 45 // /default_panels/StyleAxesPanel.js:178 90 // /default_panels/StyleAxesPanel.js:179 @ // /default_panels/StyleAxesPanel.js:229 -A // /components/fields/derived.js:569 +A // /components/fields/derived.js:581 Above // /default_panels/StyleImagesPanel.js:35 Active Color // /default_panels/StyleAxesPanel.js:384 Active Icon Color // /default_panels/StyleLayoutPanel.js:88 @@ -48,19 +51,20 @@ All All points in a trace are colored in the same color. // /components/fields/MarkerColor.js:168 All traces will be colored in the the same color. // /components/fields/ColorArrayPicker.js:104 All will be colored in the same color. // /components/fields/MultiColorPicker.js:89 -Ambient // /default_panels/StyleTracesPanel.js:587 +Ambient // /default_panels/StyleTracesPanel.js:673 Anchor // /default_panels/StyleColorbarsPanel.js:87 Anchor Point // /default_panels/StyleAxesPanel.js:390 Anchor to // /default_panels/GraphSubplotsPanel.js:31 Angle // /default_panels/StyleAxesPanel.js:173 +Annotate // /DefaultEditor.js:97 Annotation // /components/containers/AnnotationAccordion.js:34 -AnnotationArrowRef must be given either "axref" or "ayref" as attrs. Instead was given // /components/fields/derived.js:356 -AnnotationRef must be given either "xref" or "yref" as attrs. Instead was given // /components/fields/derived.js:403 +AnnotationArrowRef must be given either "axref" or "ayref" as attrs. Instead was given // /components/fields/derived.js:357 +AnnotationRef must be given either "xref" or "yref" as attrs. Instead was given // /components/fields/derived.js:404 Annotations are text and arrows you can use to point out specific parts of your figure. // /components/containers/AnnotationAccordion.js:60 Any // /default_panels/StyleLayoutPanel.js:127 April // /components/widgets/DateTimePicker.js:78 -Area // /default_panels/StyleTracesPanel.js:358 -Arrangement // /default_panels/StyleTracesPanel.js:716 +Area // /default_panels/StyleTracesPanel.js:390 +Arrangement // /default_panels/StyleTracesPanel.js:749 Arrow // /default_panels/StyleNotesPanel.js:49 Arrowhead // /default_panels/StyleNotesPanel.js:56 Ascending // /default_panels/GraphTransformsPanel.js:85 @@ -74,69 +78,70 @@ Auto margins Average // /default_panels/GraphTransformsPanel.js:40 Average // /components/fields/derived.js:136 Axes // /DefaultEditor.js:93 -Axes to Use // /components/fields/AxesCreator.js:159 -AxesSelector must be nested within a connectAxesToPlot component // /components/fields/AxesSelector.js:13 +Axes to Use // /components/fields/AxesCreator.js:158 +AxesSelector must be nested within a connectAxesToPlot component // /components/fields/AxesSelector.js:14 Axis Background // /default_panels/StyleAxesPanel.js:138 Axis Line // /default_panels/StyleAxesPanel.js:82 -Axis to Style // /components/fields/AxesSelector.js:43 +Axis to Style // /components/fields/AxesSelector.js:46 Azimuthal Equal Area // /default_panels/StyleMapsPanel.js:67 Azimuthal Equidistant // /default_panels/StyleMapsPanel.js:69 -B // /components/fields/derived.js:570 +B // /components/fields/derived.js:582 Background // /default_panels/StyleSlidersPanel.js:19 Background Color // /default_panels/StyleAxesPanel.js:336 Backward // /default_panels/StyleAxesPanel.js:373 -Bandwidth // /default_panels/StyleTracesPanel.js:669 +Bandwidth // /default_panels/StyleTracesPanel.js:702 Bar // /lib/computeTraceOptionsFromSchema.js:17 -Bar Grouping, Sizing and Spacing // /default_panels/StyleTracesPanel.js:233 +Bar Grouping, Sizing and Spacing // /default_panels/StyleTracesPanel.js:239 Bar Mode // /default_panels/GraphSubplotsPanel.js:75 Bar Options // /default_panels/GraphSubplotsPanel.js:73 Bar Padding // /default_panels/GraphSubplotsPanel.js:79 -Bar Position // /default_panels/StyleTracesPanel.js:274 -Bar Width // /default_panels/StyleTracesPanel.js:259 +Bar Position // /default_panels/StyleTracesPanel.js:306 +Bar Width // /default_panels/StyleTracesPanel.js:265 Bars // /components/containers/TraceMarkerSection.js:19 -Base // /default_panels/StyleTracesPanel.js:275 +Base // /default_panels/StyleTracesPanel.js:307 +Base Ratio // /default_panels/StyleTracesPanel.js:129 Basic // /default_panels/StyleMapsPanel.js:19 Bearing // /default_panels/StyleMapsPanel.js:33 Below // /default_panels/StyleImagesPanel.js:35 -Between // /default_panels/StyleTracesPanel.js:647 -Binning // /default_panels/StyleTracesPanel.js:263 -Blank // /default_panels/StyleTracesPanel.js:473 +Between // /default_panels/StyleTracesPanel.js:411 +Binning // /default_panels/StyleTracesPanel.js:295 +Blank // /default_panels/StyleTracesPanel.js:559 Border // /default_panels/StyleSlidersPanel.js:23 Border Color // /default_panels/StyleAxesPanel.js:338 Border Width // /default_panels/StyleAxesPanel.js:337 Borders and Background // /default_panels/StyleColorbarsPanel.js:249 -Both // /default_panels/StyleTracesPanel.js:517 +Both // /default_panels/StyleTracesPanel.js:603 Bottom // /components/fields/derived.js:99 -Bottom Center // /components/fields/TextPosition.js:91 -Bottom Left // /components/fields/TextPosition.js:90 -Bottom Right // /components/fields/TextPosition.js:92 +Bottom Center // /components/fields/TextPosition.js:93 +Bottom Left // /components/fields/TextPosition.js:92 +Bottom Right // /components/fields/TextPosition.js:94 Boundaries // /default_panels/GraphSubplotsPanel.js:22 -Box // /default_panels/StyleTracesPanel.js:691 -Box Fill Color // /default_panels/StyleTracesPanel.js:697 -Box Line Color // /default_panels/StyleTracesPanel.js:699 -Box Line Width // /default_panels/StyleTracesPanel.js:698 -Box Mean // /default_panels/StyleTracesPanel.js:681 -Box Mode // /default_panels/StyleTracesPanel.js:282 -Box Padding // /default_panels/StyleTracesPanel.js:287 -Box Size and Spacing // /default_panels/StyleTracesPanel.js:279 -Box Width // /default_panels/StyleTracesPanel.js:286 -Boxes // /components/fields/derived.js:653 -Boxes and Points // /components/fields/derived.js:655 +Box // /default_panels/StyleTracesPanel.js:724 +Box Fill Color // /default_panels/StyleTracesPanel.js:730 +Box Line Color // /default_panels/StyleTracesPanel.js:732 +Box Line Width // /default_panels/StyleTracesPanel.js:731 +Box Mean // /default_panels/StyleTracesPanel.js:714 +Box Mode // /default_panels/StyleTracesPanel.js:314 +Box Padding // /default_panels/StyleTracesPanel.js:319 +Box Size and Spacing // /default_panels/StyleTracesPanel.js:311 +Box Width // /default_panels/StyleTracesPanel.js:318 +Boxes // /components/fields/derived.js:665 +Boxes and Points // /components/fields/derived.js:667 Button // /components/containers/RangeSelectorAccordion.js:44 Button Labels // /default_panels/StyleUpdateMenusPanel.js:21 Buttons // /components/containers/UpdateMenuAccordion.js:22 By // /default_panels/GraphTransformsPanel.js:76 By Type // /components/containers/TraceAccordion.js:166 -C // /components/fields/derived.js:571 +C // /components/fields/derived.js:583 Call out your data. // /components/containers/AnnotationAccordion.js:57 Candlestick // /lib/computeTraceOptionsFromSchema.js:121 -Canvas // /components/fields/derived.js:412 +Canvas // /components/fields/derived.js:413 Carpet // /lib/computeTraceOptionsFromSchema.js:105 Carpet Contour // /lib/computeTraceOptionsFromSchema.js:113 Carpet Scatter // /lib/computeTraceOptionsFromSchema.js:109 Categorical // /default_panels/StyleAxesPanel.js:51 Cell Options // /default_panels/GraphCreatePanel.js:160 -Cells // /default_panels/StyleTracesPanel.js:199 +Cells // /default_panels/StyleTracesPanel.js:205 Center // /default_panels/StyleAxesPanel.js:396 Center Latitude // /default_panels/StyleMapsPanel.js:30 Center Longitude // /default_panels/StyleMapsPanel.js:31 @@ -152,19 +157,19 @@ Click on the + button above to add a transform. Click on the + button above to add an annotation. // /components/containers/AnnotationAccordion.js:63 Click on the + button above to add an image. // /components/containers/ImageAccordion.js:61 Clip To // /components/fields/HoverLabelNameLength.js:54 -Clip on Axes // /default_panels/StyleTracesPanel.js:524 +Clip on Axes // /default_panels/StyleTracesPanel.js:610 Clockwise // /components/fields/derived.js:105 Close // /default_panels/GraphCreatePanel.js:123 -Closest // /components/fields/derived.js:685 +Closest // /components/fields/derived.js:697 Coastlines // /default_panels/StyleMapsPanel.js:102 Collapse All // /components/containers/PanelHeader.js:35 Color // /components/fields/ErrorBars.js:102 Color Bar // /components/fields/MarkerColor.js:188 Color Bar Container // /default_panels/StyleColorbarsPanel.js:254 Color Bars // /DefaultEditor.js:96 -Coloring // /default_panels/StyleTracesPanel.js:379 -Colors // /default_panels/StyleTracesPanel.js:107 -Colorscale // /default_panels/StyleTracesPanel.js:466 +Coloring // /default_panels/StyleTracesPanel.js:465 +Colors // /default_panels/StyleTracesPanel.js:100 +Colorscale // /default_panels/StyleTracesPanel.js:552 Colorscale Direction // /components/fields/MarkerColor.js:183 Colorscale Range // /components/fields/MarkerColor.js:193 Colorscales // /default_panels/StyleLayoutPanel.js:28 @@ -177,37 +182,38 @@ Cones & Streamtubes Conic Conformal // /default_panels/StyleMapsPanel.js:73 Conic Equal Area // /default_panels/StyleMapsPanel.js:72 Conic Equidistant // /default_panels/StyleMapsPanel.js:74 -Connect // /default_panels/StyleTracesPanel.js:473 -Connect Gaps // /default_panels/StyleTracesPanel.js:471 -Connector Styles // /default_panels/StyleTracesPanel.js:635 +Connect // /default_panels/StyleTracesPanel.js:559 +Connect Gaps // /default_panels/StyleTracesPanel.js:557 +Connector Styles // /default_panels/StyleTracesPanel.js:398 Constant // /components/fields/ColorArrayPicker.js:89 -Constrain Text // /default_panels/StyleTracesPanel.js:513 -Constraint // /default_panels/StyleTracesPanel.js:375 +Constrain Text // /default_panels/StyleTracesPanel.js:599 +Constraint // /default_panels/StyleTracesPanel.js:461 Contain // /default_panels/StyleImagesPanel.js:26 Continue // /components/widgets/text_editors/MultiFormat.js:192 Continuing will convert your LaTeX expression into raw text. // /components/widgets/text_editors/MultiFormat.js:111 Continuing will convert your note to LaTeX-style text. // /components/widgets/text_editors/MultiFormat.js:106 Continuing will remove your expression. // /components/widgets/text_editors/MultiFormat.js:116 Contour // /lib/computeTraceOptionsFromSchema.js:41 -Contour Carpet // /lib/traceTypes.js:248 -Contour Color // /default_panels/StyleTracesPanel.js:749 -Contour Labels // /default_panels/StyleTracesPanel.js:395 -Contour Lines // /default_panels/StyleTracesPanel.js:390 -Contour Width // /default_panels/StyleTracesPanel.js:750 -Contours // /default_panels/StyleTracesPanel.js:369 +Contour Carpet // /lib/traceTypes.js:258 +Contour Color // /default_panels/StyleTracesPanel.js:783 +Contour Labels // /default_panels/StyleTracesPanel.js:481 +Contour Lines // /default_panels/StyleTracesPanel.js:476 +Contour Width // /default_panels/StyleTracesPanel.js:784 +Contours // /default_panels/StyleTracesPanel.js:455 +Control // /DefaultEditor.js:100 Copy Y Style // /components/fields/ErrorBars.js:93 Copy Z Style // /components/fields/ErrorBars.js:98 Count // /default_panels/GraphTransformsPanel.js:38 Count // /components/fields/derived.js:134 Counter Clockwise // /default_panels/StyleAxesPanel.js:75 Counterclockwise // /components/fields/derived.js:106 -Country Abbreviations (ISO-3) // /components/fields/LocationSelector.js:32 +Country Abbreviations (ISO-3) // /components/fields/LocationSelector.js:33 Country Borders // /default_panels/StyleMapsPanel.js:86 -Country Names // /components/fields/LocationSelector.js:31 +Country Names // /components/fields/LocationSelector.js:32 Crossbar Width // /components/fields/ErrorBars.js:104 Cube // /default_panels/GraphSubplotsPanel.js:44 -Cumulative // /default_panels/StyleTracesPanel.js:157 -Current Bin // /default_panels/StyleTracesPanel.js:172 +Cumulative // /default_panels/StyleTracesPanel.js:163 +Current Bin // /default_panels/StyleTracesPanel.js:178 Custom // /components/fields/MarkerColor.js:195 Custom Data // /components/fields/ErrorBars.js:123 Dark // /default_panels/StyleMapsPanel.js:22 @@ -216,22 +222,22 @@ Date Day // /default_panels/StyleAxesPanel.js:360 Days // /components/fields/AxisInterval.js:164 December // /components/widgets/DateTimePicker.js:86 -Decreasing // /default_panels/StyleTracesPanel.js:168 -Decreasing Marker Styles // /default_panels/StyleTracesPanel.js:615 +Decreasing // /default_panels/StyleTracesPanel.js:174 +Decreasing Marker Styles // /default_panels/StyleTracesPanel.js:432 Default // /components/fields/derived.js:148 Defaults // /default_panels/StyleLayoutPanel.js:25 Degrees // /default_panels/GraphCreatePanel.js:143 -Density // /default_panels/StyleTracesPanel.js:151 +Density // /default_panels/StyleTracesPanel.js:157 Descending // /default_panels/GraphTransformsPanel.js:86 Diagonal // /default_panels/StyleLayoutPanel.js:130 -Diameter // /default_panels/StyleTracesPanel.js:358 -Diffuse // /default_panels/StyleTracesPanel.js:588 +Diameter // /default_panels/StyleTracesPanel.js:390 +Diffuse // /default_panels/StyleTracesPanel.js:674 Direction // /default_panels/StyleAxesPanel.js:71 -Disable // /components/fields/derived.js:688 +Disable // /components/fields/derived.js:700 Disabled // /default_panels/GraphTransformsPanel.js:73 -Display // /default_panels/StyleTracesPanel.js:217 +Display // /default_panels/StyleTracesPanel.js:223 Distributions // /lib/traceTypes.js:18 -Divergence // /components/fields/derived.js:588 +Divergence // /components/fields/derived.js:600 Diverging // /default_panels/StyleLayoutPanel.js:42 Drag // /default_panels/StyleLayoutPanel.js:109 Drop the // /components/widgets/Dropzone.js:46 @@ -254,9 +260,9 @@ Enter html formatted text Equirectangular // /default_panels/StyleMapsPanel.js:57 Error (+) // /components/fields/ErrorBars.js:146 Error (-) // /components/fields/ErrorBars.js:147 -Error Bars X // /default_panels/StyleTracesPanel.js:769 -Error Bars Y // /default_panels/StyleTracesPanel.js:776 -Error Bars Z // /default_panels/StyleTracesPanel.js:782 +Error Bars X // /default_panels/StyleTracesPanel.js:800 +Error Bars Y // /default_panels/StyleTracesPanel.js:807 +Error Bars Z // /default_panels/StyleTracesPanel.js:813 Error Type // /components/fields/ErrorBars.js:112 Europe // /default_panels/StyleMapsPanel.js:44 Every label // /default_panels/StyleAxesPanel.js:240 @@ -266,41 +272,43 @@ Exclude Range Exclude Values // /components/fields/FilterOperation.js:87 Expand All // /components/containers/PanelHeader.js:40 Exponents // /default_panels/StyleAxesPanel.js:197 -Extended Colors // /default_panels/StyleTracesPanel.js:109 -Face Normal // /default_panels/StyleTracesPanel.js:593 +Extended Colors // /default_panels/StyleTracesPanel.js:102 +Face Normal // /default_panels/StyleTracesPanel.js:679 Facecolor // /default_panels/GraphCreatePanel.js:173 False // /default_panels/StyleAxesPanel.js:159 February // /components/widgets/DateTimePicker.js:76 File loaded! // /components/widgets/Dropzone.js:31 Fill // /default_panels/StyleImagesPanel.js:27 Fill Color // /default_panels/GraphCreatePanel.js:155 -Fill to // /default_panels/StyleTracesPanel.js:477 -Filled Area // /default_panels/StyleTracesPanel.js:476 -Fills // /components/fields/derived.js:668 +Fill to // /default_panels/StyleTracesPanel.js:563 +Filled Area // /default_panels/StyleTracesPanel.js:562 +Fills // /components/fields/derived.js:680 Filter // /components/containers/TransformAccordion.js:21 Finance // /lib/traceTypes.js:13 First // /default_panels/GraphTransformsPanel.js:47 First label // /default_panels/StyleAxesPanel.js:241 -Fixed // /default_panels/StyleTracesPanel.js:722 +Fixed // /default_panels/StyleTracesPanel.js:755 Fixed Width // /default_panels/StyleLayoutPanel.js:99 Fixed height // /default_panels/StyleLayoutPanel.js:100 -Flatshading // /default_panels/StyleTracesPanel.js:228 +Flatshading // /default_panels/StyleTracesPanel.js:234 Font // /default_panels/StyleSlidersPanel.js:27 Font Color // /default_panels/GraphCreatePanel.js:156 Font Size // /default_panels/GraphCreatePanel.js:157 -Fraction // /default_panels/StyleTracesPanel.js:254 +Fraction // /default_panels/StyleTracesPanel.js:260 Fraction of Plot // /default_panels/StyleColorbarsPanel.js:64 Fraction of canvas // /default_panels/StyleSlidersPanel.js:38 Free // /components/fields/derived.js:36 -Freeform // /default_panels/StyleTracesPanel.js:721 -Fresnel // /default_panels/StyleTracesPanel.js:591 -Gap // /default_panels/StyleTracesPanel.js:101 +Freeform // /default_panels/StyleTracesPanel.js:754 +Fresnel // /default_panels/StyleTracesPanel.js:677 +Funnel // /lib/traceTypes.js:205 +Funnel Area // /lib/traceTypes.js:210 +Funnel Dimensions // /default_panels/StyleTracesPanel.js:120 Gap Between Groups // /default_panels/StyleLegendPanel.js:91 -Gaps // /default_panels/StyleTracesPanel.js:413 -Gaps Between Cells // /default_panels/StyleTracesPanel.js:567 -Gaps in Data // /default_panels/StyleTracesPanel.js:576 +Gaps // /default_panels/StyleTracesPanel.js:499 +Gaps Between Cells // /default_panels/StyleTracesPanel.js:653 +Gaps in Data // /default_panels/StyleTracesPanel.js:662 General // /DefaultEditor.js:91 -Geo // /lib/constants.js:106 +Geo // /lib/constants.js:107 Gnomonic // /default_panels/StyleMapsPanel.js:75 Go back // /components/widgets/text_editors/MultiFormat.js:185 Go to the // /components/containers/TraceRequiredPanel.js:24 @@ -308,38 +316,36 @@ Gradians Grid Lines // /default_panels/StyleAxesPanel.js:100 Grid Spacing // /default_panels/StyleAxesPanel.js:119 Group // /default_panels/StyleTracesPanel.js:71 -Group gap // /default_panels/StyleTracesPanel.js:102 Grouped // /default_panels/StyleLegendPanel.js:82 Groups // /default_panels/GraphCreatePanel.js:75 -Half // /default_panels/StyleTracesPanel.js:177 +Half // /default_panels/StyleTracesPanel.js:183 Hammer // /default_panels/StyleMapsPanel.js:78 -Hard // /default_panels/StyleTracesPanel.js:665 -Header // /default_panels/StyleTracesPanel.js:181 +Hard // /default_panels/StyleTracesPanel.js:698 +Header // /default_panels/StyleTracesPanel.js:187 Header Options // /default_panels/GraphCreatePanel.js:154 Headers // /default_panels/GraphCreatePanel.js:133 Heads up! // /components/widgets/text_editors/MultiFormat.js:169 -Heatmap // /default_panels/StyleTracesPanel.js:383 +Heatmap // /default_panels/StyleTracesPanel.js:469 Heatmap GL // /lib/computeTraceOptionsFromSchema.js:89 Height // /default_panels/StyleAxesPanel.js:335 Hide // /components/fields/HoverLabelNameLength.js:56 High // /default_panels/GraphCreatePanel.js:121 Histogram // /lib/computeTraceOptionsFromSchema.js:25 -Histogram Function // /default_panels/StyleTracesPanel.js:144 -Histogram Normalization // /default_panels/StyleTracesPanel.js:146 +Histogram Function // /default_panels/StyleTracesPanel.js:150 +Histogram Normalization // /default_panels/StyleTracesPanel.js:152 Hole // /default_panels/GraphSubplotsPanel.js:89 -Hole Size // /default_panels/StyleTracesPanel.js:317 +Hole Size // /default_panels/StyleTracesPanel.js:349 Horizontal // /default_panels/GraphCreatePanel.js:88 Horizontal Alignment // /default_panels/StyleNotesPanel.js:28 Horizontal Boundaries // /default_panels/StyleShapesPanel.js:30 -Horizontal Gap // /default_panels/StyleTracesPanel.js:568 -Horizontal Gaps // /default_panels/StyleTracesPanel.js:572 +Horizontal Gap // /default_panels/StyleTracesPanel.js:654 +Horizontal Gaps // /default_panels/StyleTracesPanel.js:658 Horizontal Position // /default_panels/StyleLayoutPanel.js:78 Horizontal Positioning // /default_panels/StyleAxesPanel.js:388 Hour // /default_panels/StyleAxesPanel.js:361 Hover // /default_panels/StyleLayoutPanel.js:145 -Hover Action // /default_panels/StyleTracesPanel.js:765 Hover on // /default_panels/StyleTracesPanel.js:766 -Hover/Tooltip Text // /default_panels/StyleTracesPanel.js:732 +Hover/Tooltip // /default_panels/StyleTracesPanel.js:765 I (Optional) // /default_panels/GraphCreatePanel.js:117 IDs // /default_panels/GraphCreatePanel.js:38 Icon Color // /default_panels/StyleLayoutPanel.js:87 @@ -348,29 +354,29 @@ Images Include // /components/fields/FilterOperation.js:29 Include Range // /components/fields/FilterOperation.js:75 Include Values // /components/fields/FilterOperation.js:83 -Increasing // /default_panels/StyleTracesPanel.js:167 -Increasing Marker Styles // /default_panels/StyleTracesPanel.js:600 +Increasing // /default_panels/StyleTracesPanel.js:173 +Increasing Marker Styles // /default_panels/StyleTracesPanel.js:417 Individually // /components/containers/TraceAccordion.js:165 Inequality // /components/fields/FilterOperation.js:71 -Infer Zero // /default_panels/StyleTracesPanel.js:416 -Inside // /components/fields/TextPosition.js:96 +Infer Zero // /default_panels/StyleTracesPanel.js:502 +Inside // /components/fields/TextPosition.js:98 Intensity // /default_panels/GraphCreatePanel.js:172 Interactions // /default_panels/StyleLayoutPanel.js:108 -Interpolate // /default_panels/StyleTracesPanel.js:417 -Interpolate Gaps // /default_panels/StyleTracesPanel.js:581 +Interpolate // /default_panels/StyleTracesPanel.js:503 +Interpolate Gaps // /default_panels/StyleTracesPanel.js:667 Isosurface // /lib/computeTraceOptionsFromSchema.js:137 Item Sizing // /default_panels/StyleLegendPanel.js:87 J (Optional) // /default_panels/GraphCreatePanel.js:118 January // /components/widgets/DateTimePicker.js:75 -Jitter // /default_panels/StyleTracesPanel.js:339 +Jitter // /default_panels/StyleTracesPanel.js:371 July // /components/widgets/DateTimePicker.js:81 June // /components/widgets/DateTimePicker.js:80 K (Optional) // /default_panels/GraphCreatePanel.js:119 -KDE // /components/fields/derived.js:661 +KDE // /components/fields/derived.js:673 Kavrayskiy 7 // /default_panels/StyleMapsPanel.js:65 LaTeX // /components/widgets/text_editors/MultiFormat.js:24 LaTeX is a math typesetting language that doesn't work with rich text. // /components/widgets/text_editors/MultiFormat.js:105 -Label // /components/fields/derived.js:504 +Label // /components/fields/derived.js:506 Label Format // /default_panels/StyleAxesPanel.js:186 Label Prefix // /default_panels/StyleColorbarsPanel.js:158 Label Suffix // /default_panels/StyleColorbarsPanel.js:184 @@ -380,8 +386,8 @@ Land Lasso // /default_panels/StyleLayoutPanel.js:117 Last // /default_panels/GraphTransformsPanel.js:48 Last label // /default_panels/StyleAxesPanel.js:242 -Lat/Lon // /components/fields/LocationSelector.js:99 -Latitude // /components/fields/derived.js:563 +Lat/Lon // /components/fields/LocationSelector.js:100 +Latitude // /components/fields/derived.js:575 Leaves // /default_panels/StyleTracesPanel.js:59 Left // /components/fields/derived.js:94 Legend // /default_panels/StyleLegendPanel.js:16 @@ -389,26 +395,26 @@ Legend Box Legend Group // /default_panels/StyleTracesPanel.js:71 Length // /default_panels/StyleAxesPanel.js:304 Length Mode // /default_panels/StyleSlidersPanel.js:35 -Levels // /default_panels/StyleTracesPanel.js:374 +Levels // /default_panels/StyleTracesPanel.js:460 Light // /default_panels/StyleMapsPanel.js:21 -Light Position // /default_panels/StyleTracesPanel.js:595 -Lighting // /default_panels/StyleTracesPanel.js:586 +Light Position // /default_panels/StyleTracesPanel.js:681 +Lighting // /default_panels/StyleTracesPanel.js:672 Line // /default_panels/StyleShapesPanel.js:24 -Line Color // /default_panels/StyleTracesPanel.js:603 -Line Shape // /default_panels/StyleTracesPanel.js:644 -Line Type // /default_panels/StyleTracesPanel.js:642 +Line Color // /default_panels/StyleTracesPanel.js:405 +Line Shape // /default_panels/StyleTracesPanel.js:408 +Line Type // /default_panels/StyleTracesPanel.js:406 Line Width // /default_panels/StyleNotesPanel.js:54 Linear // /default_panels/StyleAxesPanel.js:48 Lines // /default_panels/StyleAxesPanel.js:81 Lines, Rectangles and Ellipses. // /components/containers/ShapeAccordion.js:55 Links // /default_panels/GraphCreatePanel.js:79 Loading... // /components/widgets/Dropzone.js:110 -Location // /components/fields/derived.js:558 -Location Format // /components/fields/LocationSelector.js:27 -Locations // /components/fields/LocationSelector.js:25 +Location // /components/fields/derived.js:570 +Location Format // /components/fields/LocationSelector.js:28 +Locations // /components/fields/LocationSelector.js:26 Log // /default_panels/StyleAxesPanel.js:49 Logos, watermarks and more. // /components/containers/ImageAccordion.js:55 -Longitude // /components/fields/derived.js:563 +Longitude // /components/fields/derived.js:575 Looks like there aren't any traces defined yet. // /components/containers/TraceRequiredPanel.js:22 Low // /default_panels/GraphCreatePanel.js:122 Lower < Target < Upper // /components/fields/FilterOperation.js:19 @@ -422,45 +428,45 @@ Map Options Map Positioning // /default_panels/StyleMapsPanel.js:29 Map Projection // /default_panels/StyleMapsPanel.js:37 Map Style // /default_panels/StyleMapsPanel.js:14 -Mapbox // /lib/constants.js:107 +Mapbox // /lib/constants.js:108 Mapbox Style // /default_panels/StyleMapsPanel.js:16 Maps // /DefaultEditor.js:94 March // /components/widgets/DateTimePicker.js:77 Margin Color // /default_panels/StyleLayoutPanel.js:27 -Marker Color // /default_panels/StyleTracesPanel.js:604 +Marker Color // /default_panels/StyleTracesPanel.js:421 Max // /components/fields/MarkerColor.js:200 -Max Contour // /default_panels/StyleTracesPanel.js:408 -Max Contours // /default_panels/StyleTracesPanel.js:404 +Max Contour // /default_panels/StyleTracesPanel.js:494 +Max Contours // /default_panels/StyleTracesPanel.js:490 Max Depth // /default_panels/StyleTracesPanel.js:61 Max Number of Labels // /default_panels/StyleAxesPanel.js:279 Max Number of Lines // /default_panels/StyleAxesPanel.js:126 Max Number of Markers // /default_panels/StyleAxesPanel.js:315 -Max Number of Points // /default_panels/StyleTracesPanel.js:364 +Max Number of Points // /default_panels/StyleTracesPanel.js:396 Max Tube segments // /default_panels/StyleTracesPanel.js:91 -Max X Bins // /default_panels/StyleTracesPanel.js:266 -Max Y Bins // /default_panels/StyleTracesPanel.js:271 +Max X Bins // /default_panels/StyleTracesPanel.js:298 +Max Y Bins // /default_panels/StyleTracesPanel.js:303 Maximum // /components/fields/derived.js:138 May // /components/widgets/DateTimePicker.js:79 -Mean // /default_panels/StyleTracesPanel.js:685 -Mean & SD // /default_panels/StyleTracesPanel.js:686 -Meanline // /default_panels/StyleTracesPanel.js:701 -Meanline Color // /default_panels/StyleTracesPanel.js:707 -Meanline Width // /default_panels/StyleTracesPanel.js:706 +Mean // /default_panels/StyleTracesPanel.js:718 +Mean & SD // /default_panels/StyleTracesPanel.js:719 +Meanline // /default_panels/StyleTracesPanel.js:734 +Meanline Color // /default_panels/StyleTracesPanel.js:740 +Meanline Width // /default_panels/StyleTracesPanel.js:739 Measure // /default_panels/GraphCreatePanel.js:71 Median // /default_panels/GraphTransformsPanel.js:41 Menus // /DefaultEditor.js:101 Mercator // /default_panels/StyleMapsPanel.js:58 Meta Text // /default_panels/StyleLayoutPanel.js:180 Middle // /default_panels/StyleAxesPanel.js:410 -Middle Center // /components/fields/TextPosition.js:88 -Middle Left // /components/fields/TextPosition.js:87 -Middle Right // /components/fields/TextPosition.js:89 +Middle Center // /components/fields/TextPosition.js:90 +Middle Left // /components/fields/TextPosition.js:89 +Middle Right // /components/fields/TextPosition.js:91 Miller // /default_panels/StyleMapsPanel.js:64 Milliseconds // /components/fields/AxisInterval.js:167 Min // /components/fields/MarkerColor.js:199 -Min Contour // /default_panels/StyleTracesPanel.js:407 +Min Contour // /default_panels/StyleTracesPanel.js:493 Minimum // /components/fields/derived.js:137 -Minimum Size // /default_panels/StyleTracesPanel.js:360 +Minimum Size // /default_panels/StyleTracesPanel.js:392 Minute // /default_panels/StyleAxesPanel.js:362 Minutes // /components/fields/AxisInterval.js:165 Mirror Axis // /default_panels/StyleAxesPanel.js:94 @@ -476,7 +482,7 @@ Multiple Values My custom title %{meta[1]} // /default_panels/StyleLayoutPanel.js:191 Name // /default_panels/StyleTracesPanel.js:57 Natural Earth // /default_panels/StyleMapsPanel.js:60 -Negative // /default_panels/StyleTracesPanel.js:677 +Negative // /default_panels/StyleTracesPanel.js:710 Negative Sequential // /default_panels/StyleLayoutPanel.js:49 No // /components/fields/ErrorBars.js:95 No Clip // /components/fields/HoverLabelNameLength.js:55 @@ -484,24 +490,24 @@ No Results Nodes // /default_panels/GraphCreatePanel.js:73 None // /components/fields/derived.js:62 None label // /default_panels/StyleColorbarsPanel.js:179 -Norm // /components/fields/derived.js:587 +Norm // /components/fields/derived.js:599 Normal // /components/fields/MarkerColor.js:185 -Normalization // /default_panels/StyleTracesPanel.js:250 +Normalization // /default_panels/StyleTracesPanel.js:256 North America // /default_panels/StyleMapsPanel.js:47 -Notches // /default_panels/StyleTracesPanel.js:480 +Notches // /default_panels/StyleTracesPanel.js:566 Note Text // /default_panels/StyleNotesPanel.js:21 Note: X and Y Values are used for binning. If Z values are provided, they are used as inputs to the histogram function which you can configure in the // /default_panels/GraphCreatePanel.js:110 Note: in horizontal orientation, Y values are used for binning. If X values are provided, they are used as inputs to the histogram function which you can configure in the // /default_panels/GraphCreatePanel.js:101 Note: in vertical orientation, X values are used for binning. If Y values are provided, they are used as inputs to the histogram function which you can configure in the // /default_panels/GraphCreatePanel.js:92 November // /components/widgets/DateTimePicker.js:85 Number format // /default_panels/StyleLayoutPanel.js:60 -Number of Contours // /default_panels/StyleTracesPanel.js:400 -Number of Occurences // /default_panels/StyleTracesPanel.js:148 +Number of Contours // /default_panels/StyleTracesPanel.js:486 +Number of Occurences // /default_panels/StyleTracesPanel.js:154 OHLC // /lib/computeTraceOptionsFromSchema.js:117 Oceans // /default_panels/StyleMapsPanel.js:110 October // /components/widgets/DateTimePicker.js:84 Off // /components/fields/RectanglePositioner.js:87 -Offset // /default_panels/StyleTracesPanel.js:276 +Offset // /default_panels/StyleTracesPanel.js:308 On // /components/fields/RectanglePositioner.js:87 Opacity // /default_panels/StyleShapesPanel.js:48 Open // /default_panels/GraphCreatePanel.js:120 @@ -512,31 +518,28 @@ Order Orientation // /default_panels/GraphCreatePanel.js:86 Orthographic // /default_panels/GraphSubplotsPanel.js:64 Outdoors // /default_panels/StyleMapsPanel.js:20 -Outliers // /default_panels/StyleTracesPanel.js:322 -Outside // /components/fields/TextPosition.js:97 -Overlaid // /default_panels/StyleTracesPanel.js:245 +Outliers // /default_panels/StyleTracesPanel.js:354 +Outside // /components/fields/TextPosition.js:99 +Overlaid // /default_panels/StyleTracesPanel.js:251 Overlay // /default_panels/GraphSubplotsPanel.js:77 Padding // /default_panels/StyleColorbarsPanel.js:113 Pan // /default_panels/StyleLayoutPanel.js:116 -Parallel Categories // /lib/traceTypes.js:233 +Parallel Categories // /lib/traceTypes.js:243 Parallel Coordinates // /lib/computeTraceOptionsFromSchema.js:93 Parent Value Mode // /default_panels/GraphCreatePanel.js:41 Parents // /default_panels/GraphCreatePanel.js:35 -Percent // /components/fields/derived.js:576 -Perpendicular // /default_panels/StyleTracesPanel.js:720 +Percent // /components/fields/derived.js:588 +Perpendicular // /default_panels/StyleTracesPanel.js:753 Perspective // /default_panels/GraphSubplotsPanel.js:63 Pie // /lib/computeTraceOptionsFromSchema.js:37 -Pie Colors // /default_panels/StyleTracesPanel.js:105 -Pie Segments // /components/containers/TraceMarkerSection.js:21 -Pie Title // /default_panels/StyleTracesPanel.js:125 Pitch // /default_panels/StyleMapsPanel.js:34 Pixels // /default_panels/StyleColorbarsPanel.js:65 Plot Background // /default_panels/GraphSubplotsPanel.js:70 Point Cloud // /lib/computeTraceOptionsFromSchema.js:85 -Point Opacity // /default_panels/StyleTracesPanel.js:347 -Points // /components/containers/TraceMarkerSection.js:25 -Points and Fills // /components/fields/derived.js:669 -Polar // /lib/constants.js:108 +Point Opacity // /default_panels/StyleTracesPanel.js:379 +Points // /components/containers/TraceMarkerSection.js:23 +Points and Fills // /components/fields/derived.js:681 +Polar // /lib/constants.js:109 Polar Bar // /lib/computeTraceOptionsFromSchema.js:133 Polar Scatter // /lib/computeTraceOptionsFromSchema.js:125 Polar Scatter GL // /lib/computeTraceOptionsFromSchema.js:129 @@ -544,16 +547,16 @@ Polar Sector Position // /default_panels/StyleAxesPanel.js:92 Position On // /default_panels/StyleAxesPanel.js:111 Position on // /default_panels/StyleAxesPanel.js:162 -Positive // /default_panels/StyleTracesPanel.js:676 -Positive/Negative Stacked // /default_panels/StyleTracesPanel.js:243 +Positive // /default_panels/StyleTracesPanel.js:709 +Positive/Negative Stacked // /default_panels/StyleTracesPanel.js:249 Prefix // /default_panels/StyleAxesPanel.js:222 -Previous X // /components/fields/derived.js:621 -Previous Y // /components/fields/derived.js:620 -Probability // /default_panels/StyleTracesPanel.js:150 -Probability Density // /default_panels/StyleTracesPanel.js:152 +Previous X // /components/fields/derived.js:633 +Previous Y // /components/fields/derived.js:632 +Probability // /default_panels/StyleTracesPanel.js:156 +Probability Density // /default_panels/StyleTracesPanel.js:158 Projection // /default_panels/GraphSubplotsPanel.js:58 -Pull // /default_panels/StyleTracesPanel.js:318 -R // /components/fields/derived.js:574 +Pull // /default_panels/StyleTracesPanel.js:350 +R // /components/fields/derived.js:586 RMS // /default_panels/GraphTransformsPanel.js:43 Radians // /default_panels/GraphCreatePanel.js:142 Radius // /default_panels/GraphCreatePanel.js:137 @@ -576,26 +579,28 @@ Right Rivers // /default_panels/StyleMapsPanel.js:131 Robinson // /default_panels/StyleMapsPanel.js:63 Roll // /default_panels/StyleMapsPanel.js:158 -Root // /components/fields/derived.js:710 -Rotation // /default_panels/StyleTracesPanel.js:316 -Roughness // /default_panels/StyleTracesPanel.js:590 +Root // /components/fields/derived.js:722 +Rotation // /default_panels/StyleTracesPanel.js:348 +Roughness // /default_panels/StyleTracesPanel.js:676 SVG // /components/fields/TraceSelector.js:101 Sankey // /lib/computeTraceOptionsFromSchema.js:97 Satellite // /default_panels/StyleMapsPanel.js:23 Satellite Map // /lib/computeTraceOptionsFromSchema.js:159 Satellite with Streets // /default_panels/StyleMapsPanel.js:24 Scale // /default_panels/StyleMapsPanel.js:155 -Scale Group // /default_panels/StyleTracesPanel.js:654 -Scale Mode // /default_panels/StyleTracesPanel.js:656 -Scaling // /default_panels/StyleTracesPanel.js:653 +Scale Group // /default_panels/StyleTracesPanel.js:687 +Scale Mode // /default_panels/StyleTracesPanel.js:689 +Scaling // /default_panels/StyleTracesPanel.js:686 Scatter // /components/fields/TraceSelector.js:48 -Scatter Carpet // /lib/traceTypes.js:243 +Scatter Carpet // /lib/traceTypes.js:253 Scatter GL // /lib/computeTraceOptionsFromSchema.js:81 -Scatterplot Matrix // /lib/traceTypes.js:238 -Scene // /lib/constants.js:104 +Scatterplot Matrix // /lib/traceTypes.js:248 +Scene // /lib/constants.js:105 Second // /default_panels/StyleAxesPanel.js:363 Seconds // /components/fields/AxisInterval.js:166 See a basic example. // /components/widgets/TraceTypeSelector.js:128 +Segment Colors // /default_panels/StyleTracesPanel.js:95 +Segments // /components/containers/TraceMarkerSection.js:21 Select // /default_panels/StyleLayoutPanel.js:115 Select Data Point // /default_panels/StyleLayoutPanel.js:141 Select Direction // /default_panels/StyleLayoutPanel.js:124 @@ -608,8 +613,8 @@ Sequential Shape // /components/containers/ShapeAccordion.js:22 Shapes // /DefaultEditor.js:98 Show // /components/fields/MarkerColor.js:190 -Show All // /default_panels/StyleTracesPanel.js:321 -Show Contour // /default_panels/StyleTracesPanel.js:744 +Show All // /default_panels/StyleTracesPanel.js:353 +Show Contour // /default_panels/StyleTracesPanel.js:778 Show Exponents // /default_panels/StyleAxesPanel.js:210 Show Prefix // /default_panels/StyleAxesPanel.js:237 Show Sides // /default_panels/StyleAxesPanel.js:434 @@ -621,29 +626,30 @@ Single Sinusoidal // /default_panels/StyleMapsPanel.js:81 Size // /default_panels/StyleColorbarsPanel.js:58 Size Mode // /default_panels/StyleTracesPanel.js:77 -Size Scale // /default_panels/StyleTracesPanel.js:350 +Size Scale // /default_panels/StyleTracesPanel.js:382 Size and Margins // /default_panels/StyleLayoutPanel.js:91 Size and Positioning // /default_panels/StyleColorbarsPanel.js:57 Slider // /components/containers/SliderAccordion.js:20 Sliders // /DefaultEditor.js:100 -Smoothing // /default_panels/StyleTracesPanel.js:469 -Snap // /default_panels/StyleTracesPanel.js:719 +Smoothing // /default_panels/StyleTracesPanel.js:555 +Snap // /default_panels/StyleTracesPanel.js:752 Snap to Grid // /components/fields/RectanglePositioner.js:82 -Soft // /default_panels/StyleTracesPanel.js:664 +Soft // /default_panels/StyleTracesPanel.js:697 Sort // /components/containers/TransformAccordion.js:24 -Sorted // /default_panels/StyleTracesPanel.js:306 +Sorted // /default_panels/StyleTracesPanel.js:338 Sources // /default_panels/GraphCreatePanel.js:80 South America // /default_panels/StyleMapsPanel.js:48 -Span // /default_panels/StyleTracesPanel.js:670 -Span Mode // /default_panels/StyleTracesPanel.js:661 -Spanning // /default_panels/StyleTracesPanel.js:646 +Span // /default_panels/StyleTracesPanel.js:703 +Span Mode // /default_panels/StyleTracesPanel.js:694 +Spanning // /default_panels/StyleTracesPanel.js:410 Specialized // /lib/traceTypes.js:27 -Specular // /default_panels/StyleTracesPanel.js:589 +Specular // /default_panels/StyleTracesPanel.js:675 Spike Lines // /default_panels/StyleAxesPanel.js:419 Split // /components/containers/TransformAccordion.js:22 -Split labels // /default_panels/StyleTracesPanel.js:737 +Split labels // /default_panels/StyleTracesPanel.js:771 Stack // /default_panels/GraphSubplotsPanel.js:77 -Stacking // /default_panels/StyleTracesPanel.js:410 +Stacked // /default_panels/StyleTracesPanel.js:273 +Stacking // /default_panels/StyleTracesPanel.js:496 Standard Deviation // /default_panels/GraphTransformsPanel.js:44 Start Point // /default_panels/StyleShapesPanel.js:32 Start at Level // /default_panels/StyleTracesPanel.js:60 @@ -654,22 +660,21 @@ Stepmode Stereographic // /default_panels/StyleMapsPanel.js:76 Streamtube // /lib/computeTraceOptionsFromSchema.js:69 Stretch // /default_panels/StyleImagesPanel.js:28 -Strict Sum Stacked // /default_panels/StyleTracesPanel.js:244 +Strict Sum Stacked // /default_panels/StyleTracesPanel.js:250 Structure // /DefaultEditor.js:86 Style // /default_panels/StyleAxesPanel.js:382 Sub-Country Unit Borders // /default_panels/StyleMapsPanel.js:94 -Subplots // /components/fields/AxesCreator.js:163 +Subplot Title // /default_panels/StyleTracesPanel.js:131 +Subplots // /components/fields/AxesCreator.js:162 Subplots to Use // /components/fields/SubplotCreator.js:126 Suffix // /default_panels/StyleAxesPanel.js:247 Sum // /default_panels/GraphSubplotsPanel.js:83 Sum // /components/fields/derived.js:135 Sunburst // /lib/traceTypes.js:180 -Sunburst Colors // /default_panels/StyleTracesPanel.js:115 -Sunburst Segments // /components/containers/TraceMarkerSection.js:23 Supported formats are: // /components/widgets/Dropzone.js:53 Surface // /lib/computeTraceOptionsFromSchema.js:57 -Suspected Outliers // /default_panels/StyleTracesPanel.js:323 -Symbol // /default_panels/StyleTracesPanel.js:361 +Suspected Outliers // /default_panels/StyleTracesPanel.js:355 +Symbol // /default_panels/StyleTracesPanel.js:393 Symmetric // /components/fields/ErrorBars.js:77 Table // /lib/computeTraceOptionsFromSchema.js:101 Tail // /default_panels/StyleTracesPanel.js:85 @@ -681,14 +686,14 @@ Target ≠ Reference Target ≤ Reference // /components/fields/FilterOperation.js:12 Target ≥ Reference // /components/fields/FilterOperation.js:15 Targets // /default_panels/GraphCreatePanel.js:81 -Template // /components/fields/derived.js:523 +Template // /components/fields/derived.js:535 Ternary // /default_panels/GraphSubplotsPanel.js:82 Ternary Scatter // /lib/computeTraceOptionsFromSchema.js:45 -Text // /components/fields/derived.js:510 +Text // /components/fields/derived.js:522 Text Alignment // /default_panels/StyleLayoutPanel.js:148 -Text Attributes // /default_panels/StyleTracesPanel.js:487 -Text Position // /default_panels/StyleTracesPanel.js:508 -Theta // /components/fields/derived.js:574 +Text Attributes // /default_panels/StyleTracesPanel.js:573 +Text Position // /default_panels/StyleTracesPanel.js:594 +Theta // /components/fields/derived.js:586 Theta Unit // /default_panels/GraphCreatePanel.js:140 Thickness // /components/fields/ErrorBars.js:103 This input has multiple values associated with it. Changing this setting will override these custom inputs. // /lib/constants.js:20 @@ -706,20 +711,20 @@ Tip Title // /default_panels/StyleColorbarsPanel.js:37 Titles // /default_panels/StyleAxesPanel.js:32 To Date // /default_panels/StyleAxesPanel.js:372 -To Next // /components/fields/derived.js:632 -To Self // /components/fields/derived.js:631 +To Next // /components/fields/derived.js:644 +To Self // /components/fields/derived.js:643 To upload multiple files, create multiple files and upload them individually. // /components/widgets/Dropzone.js:103 Top // /components/fields/derived.js:99 -Top Center // /components/fields/TextPosition.js:85 -Top Left // /components/fields/TextPosition.js:84 -Top Right // /components/fields/TextPosition.js:86 +Top Center // /components/fields/TextPosition.js:87 +Top Left // /components/fields/TextPosition.js:86 +Top Right // /components/fields/TextPosition.js:88 Total // /default_panels/GraphCreatePanel.js:43 -Total Marker Styles // /default_panels/StyleTracesPanel.js:630 +Total Marker Styles // /default_panels/StyleTracesPanel.js:447 Trace // /components/containers/TraceAccordion.js:138 -Trace Name // /default_panels/StyleTracesPanel.js:741 +Trace Name // /default_panels/StyleTracesPanel.js:775 Trace Opacity // /default_panels/StyleTracesPanel.js:58 Trace Order // /default_panels/StyleLegendPanel.js:77 -Trace name // /components/fields/derived.js:606 +Trace name // /components/fields/derived.js:618 Trace your data. // /components/containers/TraceAccordion.js:118 Traces // /components/containers/TraceRequiredPanel.js:25 Traces of various types like bar and line are the building blocks of your figure. // /components/containers/TraceAccordion.js:120 @@ -733,64 +738,64 @@ Try again with a supported file format: Turntable // /default_panels/StyleLayoutPanel.js:119 Type // /default_panels/GraphCreatePanel.js:30 Typeface // /default_panels/StyleAxesPanel.js:36 -U // /components/fields/derived.js:584 +U // /components/fields/derived.js:596 URL // /components/widgets/text_editors/RichText/LinkEditor.js:90 USA // /default_panels/StyleMapsPanel.js:43 -USA State Abbreviations (e.g. NY) // /components/fields/LocationSelector.js:34 -Unsorted // /default_panels/StyleTracesPanel.js:306 +USA State Abbreviations (e.g. NY) // /components/fields/LocationSelector.js:35 +Unsorted // /default_panels/StyleTracesPanel.js:338 Upper Bound // /components/fields/FilterOperation.js:183 -V // /components/fields/derived.js:585 -Value // /components/fields/derived.js:505 +V // /components/fields/derived.js:597 +Value // /components/fields/derived.js:507 Value (-) // /components/fields/ErrorBars.js:143 -Value Format // /default_panels/StyleTracesPanel.js:762 -Value Suffix // /default_panels/StyleTracesPanel.js:763 -Values // /components/fields/derived.js:522 +Value Format // /default_panels/StyleTracesPanel.js:796 +Value Suffix // /default_panels/StyleTracesPanel.js:797 +Values // /components/fields/derived.js:534 Variable // /components/fields/ColorArrayPicker.js:90 -Vertex Normal // /default_panels/StyleTracesPanel.js:592 +Vertex Normal // /default_panels/StyleTracesPanel.js:678 Vertexcolor // /default_panels/GraphCreatePanel.js:174 Vertical // /default_panels/GraphCreatePanel.js:88 Vertical Alignment // /default_panels/StyleNotesPanel.js:38 Vertical Boundaries // /default_panels/StyleShapesPanel.js:36 -Vertical Gap // /default_panels/StyleTracesPanel.js:569 -Vertical Gaps // /default_panels/StyleTracesPanel.js:573 +Vertical Gap // /default_panels/StyleTracesPanel.js:655 +Vertical Gaps // /default_panels/StyleTracesPanel.js:659 Vertical Positioning // /default_panels/StyleAxesPanel.js:402 View tutorials on this chart type. // /components/widgets/TraceTypeSelector.js:120 Violin // /lib/computeTraceOptionsFromSchema.js:49 -Violin Mode // /default_panels/StyleTracesPanel.js:293 -Violin Padding // /default_panels/StyleTracesPanel.js:298 -Violin Size and Spacing // /default_panels/StyleTracesPanel.js:290 -Violin Width // /default_panels/StyleTracesPanel.js:297 -Violins // /components/fields/derived.js:659 -Violins and Points // /components/fields/derived.js:662 -Violins, Points and KDE // /components/fields/derived.js:663 -Visible Sides // /default_panels/StyleTracesPanel.js:673 -W // /components/fields/derived.js:586 -Waterfall // /default_panels/StyleTracesPanel.js:94 +Violin Mode // /default_panels/StyleTracesPanel.js:325 +Violin Padding // /default_panels/StyleTracesPanel.js:330 +Violin Size and Spacing // /default_panels/StyleTracesPanel.js:322 +Violin Width // /default_panels/StyleTracesPanel.js:329 +Violins // /components/fields/derived.js:671 +Violins and Points // /components/fields/derived.js:674 +Violins, Points and KDE // /components/fields/derived.js:675 +Visible Sides // /default_panels/StyleTracesPanel.js:706 +W // /components/fields/derived.js:598 +Waterfall // /lib/traceTypes.js:200 WebGL // /components/fields/TraceSelector.js:101 Well this is embarrassing. // /components/containers/PlotlyPanel.js:14 -Whisker Width // /default_panels/StyleTracesPanel.js:301 +Whisker Width // /default_panels/StyleTracesPanel.js:333 Width // /default_panels/GraphCreatePanel.js:167 Winkel Tripel // /default_panels/StyleMapsPanel.js:62 World // /default_panels/StyleMapsPanel.js:42 -X // /components/fields/derived.js:541 -X = 0 // /components/fields/derived.js:619 +X // /components/fields/derived.js:553 +X = 0 // /components/fields/derived.js:631 X Anchor // /default_panels/GraphSubplotsPanel.js:30 -X Axis // /components/fields/derived.js:686 -X Bin End // /default_panels/StyleTracesPanel.js:265 -X Bin Size // /default_panels/StyleTracesPanel.js:267 -X Bin Start // /default_panels/StyleTracesPanel.js:264 +X Axis // /components/fields/derived.js:698 +X Bin End // /default_panels/StyleTracesPanel.js:297 +X Bin Size // /default_panels/StyleTracesPanel.js:299 +X Bin Start // /default_panels/StyleTracesPanel.js:296 X Offset // /default_panels/StyleNotesPanel.js:58 X Overlay // /default_panels/GraphSubplotsPanel.js:23 X Values // /default_panels/GraphCreatePanel.js:49 X Vector // /default_panels/StyleNotesPanel.js:60 X start // /default_panels/GraphCreatePanel.js:130 -Y // /components/fields/derived.js:541 -Y = 0 // /components/fields/derived.js:618 +Y // /components/fields/derived.js:553 +Y = 0 // /components/fields/derived.js:630 Y Anchor // /default_panels/GraphSubplotsPanel.js:34 -Y Axis // /components/fields/derived.js:687 -Y Bin End // /default_panels/StyleTracesPanel.js:270 -Y Bin Size // /default_panels/StyleTracesPanel.js:272 -Y Bin Start // /default_panels/StyleTracesPanel.js:269 +Y Axis // /components/fields/derived.js:699 +Y Bin End // /default_panels/StyleTracesPanel.js:302 +Y Bin Size // /default_panels/StyleTracesPanel.js:304 +Y Bin Start // /default_panels/StyleTracesPanel.js:301 Y Offset // /default_panels/StyleNotesPanel.js:59 Y Overlay // /default_panels/GraphSubplotsPanel.js:24 Y Values // /default_panels/GraphCreatePanel.js:57 @@ -804,10 +809,10 @@ Yikes! This doesn't look like a valid Yikes! You can only upload one file at a time. // /components/widgets/Dropzone.js:101 You can add as many as you like, mixing and matching types and arranging them into subplots. // /components/containers/TraceAccordion.js:124 You can refer to the items in this column in any text fields of the editor like so: // /default_panels/StyleLayoutPanel.js:185 -You can style and position your axes in the // /components/fields/AxesCreator.js:162 +You can style and position your axes in the // /components/fields/AxesCreator.js:161 You can style and position your subplots in the // /components/fields/SubplotCreator.js:134 You need to provide a component for the modal to open! // /components/containers/ModalProvider.js:33 -Z // /components/fields/derived.js:556 +Z // /components/fields/derived.js:568 Z Values // /default_panels/GraphCreatePanel.js:66 Z start // /default_panels/GraphCreatePanel.js:132 Zero Line // /default_panels/StyleAxesPanel.js:129 @@ -816,11 +821,11 @@ Zoom Interactivity Zoom Level // /default_panels/StyleMapsPanel.js:32 ^ // /default_panels/StyleAxesPanel.js:253 absolute // /default_panels/StyleTracesPanel.js:78 -according to axis // /components/fields/derived.js:378 +according to axis // /components/fields/derived.js:379 e+6 // /default_panels/StyleAxesPanel.js:202 image // /default_panels/StyleImagesPanel.js:20 image/jpeg, image/jpg, image/svg, image/png, image/gif, image/bmp, image/webp // /components/widgets/Dropzone.js:15 -in pixels // /components/fields/derived.js:367 +in pixels // /components/fields/derived.js:368 k/M/B // /default_panels/StyleAxesPanel.js:206 k/M/G // /default_panels/StyleAxesPanel.js:205 new text // /components/containers/AnnotationAccordion.js:44