@eeacms/react-chart-editor
Version:
plotly.js chart editor react component UI
2 lines • 6.6 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _react=_interopRequireWildcard(require("react"));var _Dropdown=_interopRequireDefault(require("./Dropdown"));var _Info=_interopRequireDefault(require("./Info"));var _propTypes=_interopRequireDefault(require("prop-types"));var _constants=require("../../lib/constants");var _Button=_interopRequireDefault(require("../widgets/Button"));var _plotlyIcons=require("plotly-icons");var _lib=require("../../lib");var _2=require("./..");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,n=new WeakMap;return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?o(f,t,i):f[t]=e[t]);return f})(e,t)}(function(){var enterModule=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.enterModule:undefined;enterModule&&enterModule(module)})();var __signature__=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.default.signature:function(a){return a};class UnconnectedSingleSubplotCreator extends _react.Component{canAddSubplot(){const currentAxisId=this.props.fullContainer[this.props.attr];const currentTraceIndex=this.props.fullContainer.index;return this.context.fullData.some(d=>d.index!==currentTraceIndex&&d[this.props.attr]===currentAxisId)}addAndUpdateSubplot(){const{attr,layoutAttr,updateContainer}=this.props;const{fullLayout:{_subplots:subplots}}=this.context;const lastSubplotNumber=Number(subplots[layoutAttr][subplots[layoutAttr].length-1].split(_constants.SUBPLOT_TO_ATTR[layoutAttr].layout)[1])||1;updateContainer({[attr]:_constants.SUBPLOT_TO_ATTR[layoutAttr].layout+(lastSubplotNumber+1)})}updateSubplot(update){const currentSubplotId=this.props.fullContainer[_constants.SUBPLOT_TO_ATTR[this.props.layoutAttr].data];let subplotToBeGarbageCollected=null;if(currentSubplotId!==update&&!this.context.fullData.some(trace=>trace[_constants.SUBPLOT_TO_ATTR[this.props.layoutAttr].data]===currentSubplotId&&trace.index!==this.props.fullContainer.index)){subplotToBeGarbageCollected=currentSubplotId}this.context.onUpdate({type:_constants.EDITOR_ACTIONS.UPDATE_TRACES,payload:{subplotToBeGarbageCollected,update:{[this.props.attr]:update},traceIndexes:[this.props.fullContainer.index]}})}render(){const icon=_react.default.createElement(_plotlyIcons.PlusIcon,null);const extraComponent=this.canAddSubplot()?_react.default.createElement(_Button.default,{variant:"no-text",icon:icon,onClick:()=>this.addAndUpdateSubplot()}):_react.default.createElement(_Button.default,{variant:"no-text--disabled",icon:icon,onClick:()=>{}});return _react.default.createElement(_Dropdown.default,{label:this.props.label,attr:this.props.attr,clearable:false,options:this.props.options,updatePlot:u=>this.updateSubplot(u),extraComponent:extraComponent})}__reactstandin__regenerateByEval(key,code){this[key]=eval(code)}}UnconnectedSingleSubplotCreator.propTypes={attr:_propTypes.default.string,layoutAttr:_propTypes.default.string,label:_propTypes.default.string,options:_propTypes.default.array,container:_propTypes.default.object,fullContainer:_propTypes.default.object,updateContainer:_propTypes.default.func};UnconnectedSingleSubplotCreator.contextTypes={fullLayout:_propTypes.default.object,data:_propTypes.default.array,fullData:_propTypes.default.array,onUpdate:_propTypes.default.func};const SingleSubplotCreator=(0,_lib.connectToContainer)(UnconnectedSingleSubplotCreator);class UnconnectedSubplotCreator extends _react.Component{render(){const subplotType=(0,_lib.traceTypeToAxisType)(this.props.container.type);if(!["geo","mapbox","polar","gl3d","ternary"].some(t=>t===subplotType)){return null}const isFirstTraceOfAxisType=this.context.data.filter(d=>(0,_lib.traceTypeToAxisType)(d.type)===subplotType).length===1;if(isFirstTraceOfAxisType){return null}const{fullLayout,localize:_}=this.context;function getOptions(subplotType){return fullLayout._subplots[subplotType].map(subplotId=>({label:(0,_lib.getSubplotTitle)(subplotId,subplotType,_),value:subplotId}))}return _react.default.createElement(_2.PlotlySection,{name:_("Subplots to Use")},_react.default.createElement(SingleSubplotCreator,{attr:_constants.SUBPLOT_TO_ATTR[subplotType].data,layoutAttr:subplotType,label:(0,_constants.subplotName)(_constants.SUBPLOT_TO_ATTR[subplotType].layout,_),options:getOptions(subplotType)}),_react.default.createElement(_Info.default,null,_("You can style and position your subplots in the "),_react.default.createElement("a",{onClick:()=>this.context.setPanel("Structure","Subplots")},_("Subplots")),_(" panel.")))}__reactstandin__regenerateByEval(key,code){this[key]=eval(code)}}UnconnectedSubplotCreator.propTypes={container:_propTypes.default.object,fullContainer:_propTypes.default.object};UnconnectedSubplotCreator.contextTypes={data:_propTypes.default.array,fullData:_propTypes.default.array,fullLayout:_propTypes.default.object,localize:_propTypes.default.func,setPanel:_propTypes.default.func};const _default=(0,_lib.connectToContainer)(UnconnectedSubplotCreator,{modifyPlotProps:(props,context,plotProps)=>{const{data}=context;const{fullContainer}=plotProps;plotProps.isVisible=data.length>1&&data[fullContainer.index]&&["geo","mapbox","polar","gl3d","ternary"].some(t=>t===(0,_lib.traceTypeToAxisType)(data[fullContainer.index].type))}});var _default2=exports.default=_default;;(function(){var reactHotLoader=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.default:undefined;if(!reactHotLoader){return}reactHotLoader.register(UnconnectedSingleSubplotCreator,"UnconnectedSingleSubplotCreator","/react-chart-editor/src/components/fields/SubplotCreator.js");reactHotLoader.register(SingleSubplotCreator,"SingleSubplotCreator","/react-chart-editor/src/components/fields/SubplotCreator.js");reactHotLoader.register(UnconnectedSubplotCreator,"UnconnectedSubplotCreator","/react-chart-editor/src/components/fields/SubplotCreator.js");reactHotLoader.register(_default,"default","/react-chart-editor/src/components/fields/SubplotCreator.js")})();;(function(){var leaveModule=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.leaveModule:undefined;leaveModule&&leaveModule(module)})();
//# sourceMappingURL=SubplotCreator.js.map