@figlinq/react-chart-editor
Version:
plotly.js chart editor react component UI
2 lines • 1.52 kB
JavaScript
import PlotlyFold from"./PlotlyFold";import PlotlyPanel from"./PlotlyPanel";import PropTypes from"prop-types";import{connectRangeSelectorToAxis,getParsedTemplateString}from"../../lib";import{EDITOR_ACTIONS}from"../../lib/constants";import{jsx as _jsx}from"react/jsx-runtime";const RangeSelectorFold=connectRangeSelectorToAxis(PlotlyFold);const RangeSelectorAccordion=(_ref,_ref2)=>{let{children}=_ref;let{fullContainer,layout,localize:_}=_ref2;if(!fullContainer?.rangeselector?.visible||fullContainer._axisGroup===0){return null}const{rangeselector:{buttons=[]}}=fullContainer;const content=buttons.length&&buttons.map((btn,i)=>_jsx(RangeSelectorFold,{rangeselectorIndex:i,name:getParsedTemplateString(btn.label,{meta:layout}),canDelete:true,children:children},i));const addAction={label:_("Button"),handler:_ref3=>{let{fullContainer,updateContainer}=_ref3;if(updateContainer){const rangeselectorIndex=Array.isArray(fullContainer.rangeselector.buttons)?fullContainer.rangeselector.buttons.length:0;updateContainer({[`rangeselector.buttons[${rangeselectorIndex}]`]:{}},false,EDITOR_ACTIONS.ADD_RANGESELECTOR)}}};return _jsx(PlotlyPanel,{addAction:addAction,children:content||null})};RangeSelectorAccordion.contextTypes={fullContainer:PropTypes.object,localize:PropTypes.func,layout:PropTypes.object};RangeSelectorAccordion.propTypes={children:PropTypes.node};RangeSelectorAccordion.plotly_editor_traits={no_visibility_forcing:true};export default RangeSelectorAccordion;
//# sourceMappingURL=RangeSelectorAccordion.js.map