@figlinq/react-chart-editor
Version:
plotly.js chart editor react component UI
2 lines • 4.39 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 PropTypes from"prop-types";import{DataSelector,Radio,Numeric,MultiColorPicker}from"../index";import RadioBlocks from"../widgets/RadioBlocks";import Field from"./Field";import{connectToContainer}from"../../lib";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";const ErrorBars=(props,_ref)=>{let{localize:_}=_ref;const updatePlot=value=>{if(value==="symmetric"){props.updatePlot(_objectSpread(_objectSpread({},props.fullValue),{},{visible:true,symmetric:true}))}if(value==="asymmetric"){props.updatePlot(_objectSpread(_objectSpread({},props.fullValue),{},{visible:true,symmetric:false}))}if(value==="hidden"){props.updatePlot(_objectSpread(_objectSpread({},props.fullValue),{},{visible:false}))}};const getMode=()=>{let mode;if(!props.fullValue.visible){mode="hidden"}if(props.fullValue.visible&&(props.fullValue.symmetric||typeof props.fullValue.symmetric==="undefined")){mode="symmetric"}if(props.fullValue.visible&&props.fullValue.symmetric===false){mode="asymmetric"}return mode};const renderModeSelector=()=>_jsx(Field,{children:_jsx(RadioBlocks,{alignment:"center",onOptionChange:updatePlot,activeOption:getMode(),options:[{label:_("None"),value:"hidden"},{label:_("Symmetric"),value:"symmetric"},{label:_("Asymmetric"),value:"asymmetric"}]})});const renderErrorBarControls=()=>{const mode=getMode();const showCustomDataControl=props.fullValue.type==="data";const styleAttrs=_jsxs(_Fragment,{children:[_jsx(Radio,{label:_("Copy Y Style"),attr:`${props.attr}.copy_ystyle`,options:[{label:_("Yes"),value:true},{label:_("No"),value:false}]}),_jsx(Radio,{label:_("Copy Z Style"),attr:`${props.attr}.copy_zstyle`,options:[{label:_("Yes"),value:true},{label:_("No"),value:false}]}),_jsx(MultiColorPicker,{label:_("Color"),attr:`${props.attr}.color`}),_jsx(Numeric,{label:_("Thickness"),attr:`${props.attr}.thickness`}),_jsx(Numeric,{label:_("Crossbar Width"),attr:`${props.attr}.width`})]});if(mode==="symmetric"){return _jsxs(_Fragment,{children:[_jsx(Radio,{label:_("Error Type"),attr:`${props.attr}.type`,options:[{label:_("%"),value:"percent"},{label:_("Constant"),value:"constant"},{label:_("\u221A"),value:"sqrt"},{label:_("Data"),value:"data"}]}),_jsx(Numeric,{label:_("Value"),attr:`${props.attr}.value`}),showCustomDataControl?_jsx(DataSelector,{label:_("Custom Data"),attr:`${props.attr}.array`}):null,styleAttrs]})}if(mode==="asymmetric"){return _jsxs(_Fragment,{children:[_jsx(Radio,{label:_("Error Type"),attr:`${props.attr}.type`,options:[{label:_("%"),value:"percent"},{label:_("Constant"),value:"constant"},{label:_("Data"),value:"data"}]}),_jsx(Numeric,{label:_("Value"),attr:`${props.attr}.value`}),_jsx(Numeric,{label:_("Value (-)"),attr:`${props.attr}.valueminus`}),showCustomDataControl?_jsxs(_Fragment,{children:[_jsx(DataSelector,{label:_("Error (+)"),attr:`${props.attr}.array`}),_jsx(DataSelector,{label:_("Error (-)"),attr:`${props.attr}.arrayminus`})]}):null,styleAttrs]})}return null};return _jsxs(_Fragment,{children:[renderModeSelector(),renderErrorBarControls()]})};ErrorBars.propTypes={attr:PropTypes.string,fullValue:PropTypes.object,updatePlot:PropTypes.func};ErrorBars.contextTypes={localize:PropTypes.func};export default connectToContainer(ErrorBars);
//# sourceMappingURL=ErrorBars.js.map