UNPKG

@figlinq/react-chart-editor

Version:
2 lines 2.83 kB
import PropTypes from"prop-types";import{PanelMenuWrapper}from"./components";import{GraphCreatePanel,GraphTransformsPanel,GraphSubplotsPanel,StyleLayoutPanel,StyleAxesPanel,StyleMapsPanel,StyleLegendPanel,StyleNotesPanel,StyleShapesPanel,StyleSlidersPanel,StyleImagesPanel,StyleTracesPanel,StyleColorbarsPanel,StyleUpdateMenusPanel}from"./default_panels";import{traceHasColorbar}from"./default_panels/StyleColorbarsPanel";import Logo from"./components/widgets/Logo";import{TRANSFORMABLE_TRACES,TRACE_TO_AXIS}from"./lib/constants";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";const DefaultEditor=(_ref,_ref2)=>{let{logoSrc,logoLinkUrl,children,menuPanelOrder}=_ref;let{fullData,fullLayout,layout,localize:_}=_ref2;const hasTransforms=()=>fullData.some(d=>TRANSFORMABLE_TRACES.includes(d.type));const hasAxes=()=>Object.keys(fullLayout._subplots).filter(type=>!["cartesian","mapbox"].includes(type)&&fullLayout._subplots[type].length>0).length>0;const hasMenus=()=>{const{updatemenus=[]}=fullLayout;return updatemenus.length>0};const hasSliders=()=>{const{sliders=[]}=layout;return sliders.length>0};const hasColorbars=()=>fullData.some(d=>traceHasColorbar({},d));const hasLegend=()=>fullData.some(t=>t.showlegend!==undefined);const hasMaps=()=>fullData.some(d=>[...TRACE_TO_AXIS.geo,...TRACE_TO_AXIS.mapbox].includes(d.type));return _jsxs(PanelMenuWrapper,{menuPanelOrder:menuPanelOrder,children:[Boolean(logoSrc)&&_jsx(Logo,{src:logoSrc,link:logoLinkUrl}),_jsx(GraphCreatePanel,{group:_("Structure"),name:_("Traces")}),_jsx(GraphSubplotsPanel,{group:_("Structure"),name:_("Subplots")}),hasTransforms()&&_jsx(GraphTransformsPanel,{group:_("Structure"),name:_("Transforms")}),_jsx(StyleLayoutPanel,{group:_("Style"),name:_("General"),collapsedOnStart:true}),_jsx(StyleTracesPanel,{group:_("Style"),name:_("Traces")}),hasAxes()&&_jsx(StyleAxesPanel,{group:_("Style"),name:_("Axes"),collapsedOnStart:true}),hasMaps()&&_jsx(StyleMapsPanel,{group:_("Style"),name:_("Maps")}),hasLegend()&&_jsx(StyleLegendPanel,{group:_("Style"),name:_("Legend")}),hasColorbars()&&_jsx(StyleColorbarsPanel,{group:_("Style"),name:_("Color Bars")}),_jsx(StyleNotesPanel,{group:_("Annotate"),name:_("Text")}),_jsx(StyleShapesPanel,{group:_("Annotate"),name:_("Shapes")}),_jsx(StyleImagesPanel,{group:_("Annotate"),name:_("Images")}),hasSliders()&&_jsx(StyleSlidersPanel,{group:_("Control"),name:_("Sliders")}),hasMenus()&&_jsx(StyleUpdateMenusPanel,{group:_("Control"),name:_("Menus")}),children||null]})};DefaultEditor.propTypes={children:PropTypes.node,logoSrc:PropTypes.string,logoLinkUrl:PropTypes.string,menuPanelOrder:PropTypes.array};DefaultEditor.contextTypes={localize:PropTypes.func,fullData:PropTypes.array,fullLayout:PropTypes.object,layout:PropTypes.object};export default DefaultEditor; //# sourceMappingURL=DefaultEditor.js.map