UNPKG

@eeacms/react-chart-editor

Version:

plotly.js chart editor react component UI

2 lines 8.69 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.FilterValue=exports.FilterOperation=void 0;var _Field=_interopRequireDefault(require("./Field"));var _propTypes=_interopRequireDefault(require("prop-types"));var _react=_interopRequireWildcard(require("react"));var _Dropdown=_interopRequireDefault(require("../widgets/Dropdown"));var _TextInput=_interopRequireDefault(require("../widgets/TextInput"));var _lib=require("../../lib");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 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)}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)}var __signature__=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.default.signature:function(a){return a};const operations=_=>({inequality:[{value:"!=",label:_("Target \u2260 Reference")},{value:"<",label:_("Target < Reference")},{value:"<=",label:_("Target \u2264 Reference")},{value:"=",label:_("Target = Reference")},{value:">",label:_("Target > Reference")},{value:">=",label:_("Target \u2265 Reference")}],inrange:[{value:"[]",label:_("Lower \u2264 Target \u2264 Upper")},{value:"()",label:_("Lower < Target < Upper")},{value:"[)",label:_("Lower \u2264 Target < Upper")},{value:"(]",label:_("Lower < Target \u2264 Upper")}],exrange:[{value:")(",label:_("Lower \u2264 Target \u2264 Upper")},{value:"][",label:_("Lower < Target < Upper")},{value:")[",label:_("Lower \u2264 Target < Upper")},{value:"](",label:_("Lower < Target \u2264 Upper")}],inset:[{value:"{}",label:_("Include")}],exset:[{value:"}{",label:_("Exclude")}]});const findOperation=(operator,_)=>{let op="inequality";const ops=operations(_);for(const key in ops){if(ops.hasOwnProperty(key)&&ops[key].map(o=>o.value).indexOf(operator)!==-1){op=key;break}}return op};class UnconnectedFilterOperation extends _react.Component{constructor(props,context){super(props,context);const{localize:_}=context;this.state={operation:findOperation(this.props.fullValue,_),operator:operations(_).inequality[0].value};this.setOperation=this.setOperation.bind(this)}setOperation(value){const{localize:_}=this.context;const operator=operations(_)[value][0].value;this.setState({operation:value,operator:operator});this.props.updatePlot(operator)}render(){const{fullValue,updatePlot,backgroundDark,attr}=this.props;const{localize:_}=this.context;const operators=[{label:_("Inequality"),value:"inequality"},{label:_("Include Range"),value:"inrange"},{label:_("Exclude Range"),value:"exrange"},{label:_("Include Values"),value:"inset"},{label:_("Exclude Values"),value:"exset"}];const opValue=fullValue&&fullValue.length>0?fullValue:this.state.operator;return _react.default.createElement("div",null,_react.default.createElement(_Field.default,_extends({},this.props,{attr:attr}),_react.default.createElement(_Dropdown.default,{backgroundDark:backgroundDark,options:operators,value:findOperation(opValue,_),onChange:this.setOperation,clearable:false}),this.state.operation==="inset"||this.state.operation==="exset"?null:_react.default.createElement(_Dropdown.default,{backgroundDark:backgroundDark,options:operations(_)[this.state.operation],value:opValue,onChange:updatePlot,clearable:false})))}__reactstandin__regenerateByEval(key,code){this[key]=eval(code)}}UnconnectedFilterOperation.propTypes=_objectSpread({fullValue:_propTypes.default.any,updatePlot:_propTypes.default.func},_Field.default.propTypes);UnconnectedFilterOperation.contextTypes={localize:_propTypes.default.func};class UnconnectedFilterValue extends _react.Component{constructor(props,context){super(props,context);this.state={value:"",valueMax:""};this.setValue=this.setValue.bind(this);this.setValueMax=this.setValueMax.bind(this)}setValue(v){const{localize:_,container}=this.context;const op=findOperation(container.operation,_);this.setState({value:v});let val;val=op==="inrange"||op==="exrange"?[v,this.state.valueMax]:v;if(op==="inset"||op==="exset"){val=val.split(",");val=val.map(v=>v.trim())}this.props.updatePlot(val)}setValueMax(v){this.setState({valueMax:v});this.props.updatePlot([this.state.value,v])}render(){const{localize:_,container}=this.context;const operation=container&&container.operation?container.operation:"=";const{fullValue,attr,defaultValue}=this.props;const op=findOperation(operation,_);let label1=_("Reference");if(op==="inrange"||op==="exrange"){label1=_("Lower Bound")}else if(op==="inset"||op==="exset"){label1=_("Values")}let val1=fullValue;if((op==="inset"||op==="exset")&&Array.isArray(fullValue)){val1=fullValue.join(", ")}else if(Array.isArray(fullValue)){val1=fullValue[0]}return _react.default.createElement("div",null,_react.default.createElement(_Field.default,_extends({},this.props,{label:label1}),_react.default.createElement(_TextInput.default,{value:val1,defaultValue:val1,onUpdate:this.setValue})),!(op==="inrange"||op==="exrange")?null:_react.default.createElement(_Field.default,_extends({},this.props,{label:_("Upper Bound"),attr:attr}),_react.default.createElement(_TextInput.default,{value:Array.isArray(fullValue)?fullValue[1]:fullValue,defaultValue:defaultValue,onUpdate:this.setValueMax})))}__reactstandin__regenerateByEval(key,code){this[key]=eval(code)}}UnconnectedFilterValue.propTypes=_objectSpread({defaultValue:_propTypes.default.string,fullValue:_propTypes.default.any,updatePlot:_propTypes.default.func},_Field.default.propTypes);UnconnectedFilterValue.contextTypes={localize:_propTypes.default.func,container:_propTypes.default.object};const FilterOperation=exports.FilterOperation=(0,_lib.connectToContainer)(UnconnectedFilterOperation);const FilterValue=exports.FilterValue=(0,_lib.connectToContainer)(UnconnectedFilterValue);;(function(){var reactHotLoader=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.default:undefined;if(!reactHotLoader){return}reactHotLoader.register(operations,"operations","/react-chart-editor/src/components/fields/FilterOperation.js");reactHotLoader.register(findOperation,"findOperation","/react-chart-editor/src/components/fields/FilterOperation.js");reactHotLoader.register(UnconnectedFilterOperation,"UnconnectedFilterOperation","/react-chart-editor/src/components/fields/FilterOperation.js");reactHotLoader.register(UnconnectedFilterValue,"UnconnectedFilterValue","/react-chart-editor/src/components/fields/FilterOperation.js");reactHotLoader.register(FilterOperation,"FilterOperation","/react-chart-editor/src/components/fields/FilterOperation.js");reactHotLoader.register(FilterValue,"FilterValue","/react-chart-editor/src/components/fields/FilterOperation.js")})();;(function(){var leaveModule=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.leaveModule:undefined;leaveModule&&leaveModule(module)})(); //# sourceMappingURL=FilterOperation.js.map