@eeacms/react-chart-editor
Version:
plotly.js chart editor react component UI
2 lines • 4.41 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _react=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _classnames=_interopRequireDefault(require("classnames"));var _plotlyIcons=require("plotly-icons");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 SymbolSelector extends _react.Component{constructor(props){super(props);this.state={isOpen:false};this.togglePanel=this.togglePanel.bind(this)}shouldComponentUpdate(nextProps,nextState){const{markerColor,borderColor}=this.props;const{markerColor:nextMarkerColor,borderColor:nextBorderColor}=nextProps;return this.props.value!==nextProps.value||this.state.isOpen!==nextState.isOpen||markerColor!==nextMarkerColor||borderColor!==nextBorderColor}togglePanel(){this.setState({isOpen:!this.state.isOpen})}renderActiveOption(){const{markerColor,borderColor,symbolOptions,value}=this.props;const currentSymbol=symbolOptions.find(symbol=>symbol.value===value);if(!currentSymbol){return _react.default.createElement("span",{style:{paddingTop:"5px",paddingLeft:"15px"}},"-")}const symbolStyle={stroke:currentSymbol.fill==="none"?markerColor:borderColor,strokeOpacity:"1",strokeWidth:"2px",fill:currentSymbol.fill==="none"?"none":markerColor};return _react.default.createElement("span",null,_react.default.createElement("svg",{width:"18",height:"18"},_react.default.createElement("g",{transform:"translate(8,8)"},_react.default.createElement("path",{d:currentSymbol.label,style:symbolStyle}))))}renderOptions(){const{markerColor,borderColor,symbolOptions}=this.props;return symbolOptions.map(option=>{const{fill,value,label}=option;const symbolStyle={stroke:fill==="none"?markerColor:borderColor,strokeOpacity:"1",strokeWidth:"2px",fill:fill==="none"?"none":markerColor};return _react.default.createElement("div",{className:"symbol-selector__item",key:value,onClick:()=>this.props.onChange(value)},_react.default.createElement("svg",{width:"28",height:"28",className:"symbol-selector__symbol","data-value":value},_react.default.createElement("g",{transform:"translate(14,14)"},_react.default.createElement("path",{d:label,style:symbolStyle}))))})}render(){const{isOpen}=this.state;const toggleClass=(0,_classnames.default)("symbol-selector__toggle",{"symbol-selector__toggle--dark":this.props.backgroundDark});return _react.default.createElement("div",null,_react.default.createElement("div",{className:toggleClass,onClick:this.togglePanel},_react.default.createElement("span",{className:"symbol-selector__toggle_option"},this.renderActiveOption()),_react.default.createElement("span",null,_react.default.createElement(_plotlyIcons.CarretDownIcon,{className:"symbol-selector__toggle__caret"}))),isOpen&&this.renderOptions())}__reactstandin__regenerateByEval(key,code){this[key]=eval(code)}}exports.default=SymbolSelector;SymbolSelector.propTypes={backgroundDark:_propTypes.default.bool,markerColor:_propTypes.default.string,borderColor:_propTypes.default.string,value:_propTypes.default.string,onChange:_propTypes.default.func,symbolOptions:_propTypes.default.array};;(function(){var reactHotLoader=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.default:undefined;if(!reactHotLoader){return}reactHotLoader.register(SymbolSelector,"SymbolSelector","/react-chart-editor/src/components/widgets/SymbolSelector.js")})();;(function(){var leaveModule=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.leaveModule:undefined;leaveModule&&leaveModule(module)})();
//# sourceMappingURL=SymbolSelector.js.map