@figlinq/react-chart-editor
Version:
plotly.js chart editor react component UI
2 lines • 2.89 kB
JavaScript
function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){_defineProperty(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}function _defineProperty(e,r,t){return(r=_toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _toPropertyKey(t){var i=_toPrimitive(t,"string");return"symbol"==typeof i?i:i+""}function _toPrimitive(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}import Field from"./Field";import PropTypes from"prop-types";import Dropdown from"../widgets/Dropdown";import RadioBlocks from"../widgets/RadioBlocks";import{Component}from"react";import{getParsedTemplateString}from"../../lib";import{jsx as _jsx}from"react/jsx-runtime";class AxesSelector extends Component{constructor(props,context){super(props,context);const{localize:_}=context;if(!context.axesTargetHandler){throw new Error(_("AxesSelector must be nested within a connectAxesToPlot component"))}}render(){const{axesTargetHandler,axesTarget,fullLayout,localize:_}=this.context;const{axesOptions}=this.props;const maxCharsThatFitInRadio=27;const maxOptions=axesOptions.length>4;const multipleSublots=fullLayout&&fullLayout._subplots&&Object.values(fullLayout._subplots).some(s=>s.length>1);const options=multipleSublots?axesOptions.map(option=>option.value==="allaxes"?option:{label:getParsedTemplateString(option.title,{meta:fullLayout.meta}),value:option.value}):axesOptions;const totalCharsInOptions=options&&options.map(o=>o.label).reduce((acc,o)=>acc+o.length,0)||0;return maxOptions||totalCharsInOptions>=maxCharsThatFitInRadio?_jsx(Field,_objectSpread(_objectSpread({},this.props),{},{label:_("Axis to Style"),children:_jsx(Dropdown,{options:options,value:axesTarget,onChange:axesTargetHandler,clearable:false})})):_jsx(Field,_objectSpread(_objectSpread({},this.props),{},{center:true,children:_jsx(RadioBlocks,{options:options,activeOption:axesTarget,onOptionChange:axesTargetHandler})}))}}AxesSelector.contextTypes={axesTargetHandler:PropTypes.func,axesTarget:PropTypes.string,fullLayout:PropTypes.object,localize:PropTypes.func};AxesSelector.propTypes={axesOptions:PropTypes.array};export default AxesSelector;
//# sourceMappingURL=AxesSelector.js.map