UNPKG

@eeacms/react-chart-editor

Version:

plotly.js chart editor react component UI

2 lines 7.35 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _Dropdown=require("./Dropdown");var _propTypes=_interopRequireDefault(require("prop-types"));var _react=_interopRequireWildcard(require("react"));var _lib=require("../../lib");var _constants=require("../../lib/constants");var _widgets=require("../widgets");var _Field=_interopRequireDefault(require("./Field"));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)})();function _extends(){return _extends=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},_extends.apply(null,arguments)}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)}var __signature__=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.default.signature:function(a){return a};class TraceSelector extends _react.Component{constructor(props,context){super(props,context);this.updatePlot=this.updatePlot.bind(this);this.setGl=this.setGl.bind(this);this.glEnabled=this.glEnabled.bind(this);this.setTraceDefaults=this.setTraceDefaults.bind(this);this.toggleGlControls=this.toggleGlControls.bind(this);this.setTraceDefaults(props.container,props.fullContainer,props.updateContainer);this.setLocals(props,context);this.state={showGlControls:false}}glEnabled(){return this.props.container.type&&this.props.container.type.endsWith("gl")?"gl":""}toggleGlControls(){this.setState({showGlControls:!this.state.showGlControls})}setLocals(props,context){const _=context.localize;if(props.traceOptions){this.traceOptions=props.traceOptions}else if(context.traceTypesConfig){this.traceOptions=context.traceTypesConfig.traces(_)}else if(context.plotSchema){this.traceOptions=(0,_lib.computeTraceOptionsFromSchema)(context.plotSchema,_,this.context)}else{this.traceOptions=[{label:_("Scatter"),value:"scatter"}]}if(props.container){this.fullValue=(0,_lib.plotlyTraceToCustomTrace)(props.container)}}setTraceDefaults(container,fullContainer,updateContainer,gl){if(container&&!container.mode&&fullContainer.type==="scatter"){updateContainer({type:"scatter"+(gl||this.context.glByDefault?gl:this.glEnabled()),mode:fullContainer.mode||"markers"})}}UNSAFE_componentWillReceiveProps(nextProps,nextContext){const{container,fullContainer,updateContainer}=nextProps;this.setTraceDefaults(container,fullContainer,updateContainer);this.setLocals(nextProps,nextContext)}updatePlot(value){const{updateContainer}=this.props;const{glByDefault}=this.context;if(updateContainer){updateContainer((0,_lib.traceTypeToPlotlyInitFigure)(value,this.glEnabled()||glByDefault))}}setGl(value){const{container,fullContainer,updateContainer}=this.props;const gl="gl";this.setTraceDefaults(container,fullContainer,updateContainer,value);const traceType=this.fullValue.endsWith(gl)&&value===""?this.fullValue.slice(0,-gl.length):this.fullValue;updateContainer((0,_lib.traceTypeToPlotlyInitFigure)(traceType,value))}render(){const props=Object.assign({},this.props,{fullValue:this.fullValue,updatePlot:this.updatePlot,options:this.traceOptions,clearable:false});const{localize:_,advancedTraceTypeSelector}=this.context;const options=[{label:_("SVG"),value:""},{label:_("WebGL"),value:"gl"}];if(advancedTraceTypeSelector){return _react.default.createElement("div",null,_react.default.createElement(_Field.default,props,_react.default.createElement("div",{style:{display:"flex",width:"100%",alignItems:"center"}},_react.default.createElement(_widgets.TraceTypeSelectorButton,_extends({},props,{traceTypesConfig:this.context.traceTypesConfig,handleClick:()=>this.context.openModal(_widgets.TraceTypeSelector,_objectSpread(_objectSpread({},props),{},{traceTypesConfig:this.context.traceTypesConfig,glByDefault:this.context.glByDefault}))})),!_constants.TRACES_WITH_GL.includes(this.props.container.type)?"":_react.default.createElement(_plotlyIcons.CogIcon,{className:"menupanel__icon",onClick:this.toggleGlControls}))),!(_constants.TRACES_WITH_GL.includes(this.props.container.type)&&this.state.showGlControls)?"":_react.default.createElement(_Field.default,{label:_("Rendering")},_react.default.createElement(_widgets.RadioBlocks,{options:options,activeOption:this.glEnabled(),onOptionChange:this.setGl})))}return _react.default.createElement(_Dropdown.UnconnectedDropdown,props)}__reactstandin__regenerateByEval(key,code){this[key]=eval(code)}}TraceSelector.contextTypes={openModal:_propTypes.default.func,advancedTraceTypeSelector:_propTypes.default.bool,traceTypesConfig:_propTypes.default.object,plotSchema:_propTypes.default.object,config:_propTypes.default.object,localize:_propTypes.default.func,glByDefault:_propTypes.default.bool};TraceSelector.propTypes={container:_propTypes.default.object.isRequired,fullContainer:_propTypes.default.object.isRequired,fullValue:_propTypes.default.any,updateContainer:_propTypes.default.func};const _default=(0,_lib.connectToContainer)(TraceSelector);var _default2=exports.default=_default;;(function(){var reactHotLoader=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.default:undefined;if(!reactHotLoader){return}reactHotLoader.register(TraceSelector,"TraceSelector","/react-chart-editor/src/components/fields/TraceSelector.js");reactHotLoader.register(_default,"default","/react-chart-editor/src/components/fields/TraceSelector.js")})();;(function(){var leaveModule=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.leaveModule:undefined;leaveModule&&leaveModule(module)})(); //# sourceMappingURL=TraceSelector.js.map