@eeacms/react-chart-editor
Version:
plotly.js chart editor react component UI
2 lines • 5.71 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:true});exports.default=exports.Panel=void 0;var _PanelHeader=_interopRequireDefault(require("./PanelHeader"));var _PanelEmpty=_interopRequireDefault(require("./PanelEmpty"));var _propTypes=_interopRequireDefault(require("prop-types"));var _react=_interopRequireWildcard(require("react"));var _immutabilityHelper=_interopRequireDefault(require("immutability-helper"));var _lib=require("../../lib");var _plotlyIcons=require("plotly-icons");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 _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}(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 PanelErrorImpl extends _react.Component{render(){const{localize:_}=this.context;return _react.default.createElement(_PanelEmpty.default,{icon:_plotlyIcons.EmbedIconIcon,heading:_("Well this is embarrassing.")},_react.default.createElement("p",null,_("This panel could not be displayed due to an error.")))}__reactstandin__regenerateByEval(key,code){this[key]=eval(code)}}PanelErrorImpl.contextTypes={localize:_propTypes.default.func};const PanelError=PanelErrorImpl;class Panel extends _react.Component{constructor(props){super(props);this.state={individualFoldStates:[],hasError:false};this.toggleFolds=this.toggleFolds.bind(this);this.toggleFold=this.toggleFold.bind(this)}getChildContext(){return{deleteContainer:this.props.deleteAction?this.props.deleteAction:null}}componentDidCatch(){this.setState({hasError:true})}toggleFolds(){const{individualFoldStates}=this.state;const hasOpen=individualFoldStates.length>0&&individualFoldStates.some(s=>s!==true);this.setState({individualFoldStates:individualFoldStates.map(()=>hasOpen)})}toggleFold(index){this.setState((0,_immutabilityHelper.default)(this.state,{individualFoldStates:{$toggle:[index]}}))}calculateFolds(){let numFolds=0;_react.default.Children.forEach(this.props.children,child=>{if((child&&child.type&&child.type.plotly_editor_traits||{}).foldable){numFolds++}});if(this.state.individualFoldStates.length!==numFolds){const newFoldStates=new Array(numFolds).fill(this.props.collapsedOnStart);this.setState({individualFoldStates:this.props.addAction?newFoldStates.map((e,i)=>i!==numFolds-1):newFoldStates})}}componentDidUpdate(){this.calculateFolds()}componentDidMount(){this.calculateFolds()}render(){const{individualFoldStates,hasError}=this.state;const{canReorder}=this.props;if(hasError){return _react.default.createElement(PanelError,null)}const newChildren=_react.default.Children.map(this.props.children,(child,index)=>{if((child&&child.type&&child.type.plotly_editor_traits||{}).foldable){return(0,_react.cloneElement)(child,{key:index,folded:individualFoldStates[index]||false,toggleFold:()=>this.toggleFold(index),canMoveUp:canReorder&&individualFoldStates.length>1&&index>0,canMoveDown:canReorder&&individualFoldStates.length>1&&index!==individualFoldStates.length-1})}return child});return _react.default.createElement("div",{className:"panel".concat(this.props.noPadding?" panel--no-padding":"")},_react.default.createElement(_PanelHeader.default,{addAction:this.props.addAction,allowCollapse:this.props.showExpandCollapse&&individualFoldStates.length>1,toggleFolds:this.toggleFolds,hasOpen:individualFoldStates.some(s=>s===false)}),_react.default.createElement("div",{className:(0,_lib.bem)("panel","content")},newChildren))}__reactstandin__regenerateByEval(key,code){this[key]=eval(code)}}exports.Panel=Panel;Panel.propTypes={addAction:_propTypes.default.object,children:_propTypes.default.node,deleteAction:_propTypes.default.func,noPadding:_propTypes.default.bool,showExpandCollapse:_propTypes.default.bool,canReorder:_propTypes.default.bool,collapsedOnStart:_propTypes.default.bool};Panel.defaultProps={showExpandCollapse:true,collapsedOnStart:false};Panel.contextTypes={localize:_propTypes.default.func};Panel.childContextTypes={deleteContainer:_propTypes.default.func};class PlotlyPanel extends Panel{}PlotlyPanel.plotly_editor_traits={container_panel:true,no_visibility_forcing:true};const _default=PlotlyPanel;var _default2=exports.default=_default;;(function(){var reactHotLoader=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.default:undefined;if(!reactHotLoader){return}reactHotLoader.register(PanelErrorImpl,"PanelErrorImpl","/react-chart-editor/src/components/containers/PlotlyPanel.js");reactHotLoader.register(PanelError,"PanelError","/react-chart-editor/src/components/containers/PlotlyPanel.js");reactHotLoader.register(Panel,"Panel","/react-chart-editor/src/components/containers/PlotlyPanel.js");reactHotLoader.register(PlotlyPanel,"PlotlyPanel","/react-chart-editor/src/components/containers/PlotlyPanel.js");reactHotLoader.register(_default,"default","/react-chart-editor/src/components/containers/PlotlyPanel.js")})();;(function(){var leaveModule=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.leaveModule:undefined;leaveModule&&leaveModule(module)})();
//# sourceMappingURL=PlotlyPanel.js.map