UNPKG

@eeacms/react-chart-editor

Version:

plotly.js chart editor react component UI

2 lines 7.44 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.UnconnectedDataSelector=void 0;exports.attributeIsData=attributeIsData;exports.default=void 0;var _Dropdown=_interopRequireDefault(require("../widgets/Dropdown"));var _propTypes=_interopRequireDefault(require("prop-types"));var _react=_interopRequireWildcard(require("react"));var _Field=_interopRequireDefault(require("./Field"));var _nested_property=_interopRequireDefault(require("plotly.js/src/lib/nested_property"));var _lib=require("../../lib");var _constants=require("../../lib/constants");var _dereference=require("../../lib/dereference");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)}var __signature__=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.default.signature:function(a){return a};function attributeIsData(){let meta=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};return meta.valType==="data_array"||meta.arrayOk}class UnconnectedDataSelector extends _react.Component{constructor(props,context){super(props,context);this.updatePlot=this.updatePlot.bind(this);this.setLocals(props,context)}UNSAFE_componentWillReceiveProps(nextProps,nextContext){this.setLocals(nextProps,nextContext)}setLocals(props,context){var _props$container;this.dataSources=context.dataSources||{};this.dataSourceOptions=context.dataSourceOptions||[];this.srcAttr=props.attr+"src";this.srcProperty=(0,_nested_property.default)(props.container,this.srcAttr).get();this.fullValue=this.context.srcConverters?this.context.srcConverters.toSrc(this.srcProperty,(_props$container=props.container)===null||_props$container===void 0?void 0:_props$container.type):this.srcProperty;this.is2D=false;if(props.container){this.is2D=(props.attr==="x"||props.attr==="y")&&["scatter","scattergl","bar","funnel","heatmap","heatmapgl","violin","waterfall","box","contour","contourgl"].includes(props.container.type)||props.attr==="z"&&["contour","contourgl","heatmap","heatmapgl","surface","carpet","contourcarpet"].includes(props.container.type)||props.container.type==="table"&&props.attr!=="columnorder"||Array.isArray(this.fullValue)}this.hasData=props.container?props.attr in props.container:false}updatePlot(value){if(!this.props.updateContainer){return}const update={};let data;const adjustedValue=Array.isArray(value)&&value.length===1&&(this.props.attr==="x"||this.props.attr==="y")?value[0]:value;if(Array.isArray(adjustedValue)){data=adjustedValue.filter(v=>Array.isArray(this.dataSources[v])).map(v=>this.dataSources[v])}else{data=this.dataSources[adjustedValue]||null}update[this.props.attr]=(0,_lib.maybeTransposeData)(data,this.srcAttr,this.props.container.type);update[this.srcAttr]=(0,_lib.maybeAdjustSrc)(adjustedValue,this.srcAttr,this.props.container.type,{fromSrc:this.context.srcConverters?this.context.srcConverters.fromSrc:null});if(this.props.container.type){update["meta.columnNames."+this.props.attr]=(0,_dereference.getColumnNames)(Array.isArray(adjustedValue)?adjustedValue:[adjustedValue],this.dataSourceOptions)}this.props.updateContainer(update)}render(){const{localize:_}=this.context;const{label}=this.props;let newLabel;if(typeof label==="object"){const traceType=this.props.container.type;if(label[traceType]){newLabel=label[traceType]}else{newLabel=label["*"]}}else{newLabel=label}return _react.default.createElement(_Field.default,_objectSpread(_objectSpread({},this.props),{},{label:newLabel}),_react.default.createElement(_Dropdown.default,{options:this.dataSourceOptions,value:this.fullValue,onChange:this.updatePlot,multi:this.is2D,searchable:true,clearable:true,placeholder:this.hasData?_("Data inlined in figure"):_("Choose data..."),disabled:this.dataSourceOptions.length===0,components:this.props.dataSourceComponents}))}__reactstandin__regenerateByEval(key,code){this[key]=eval(code)}}exports.UnconnectedDataSelector=UnconnectedDataSelector;UnconnectedDataSelector.propTypes=_objectSpread({fullValue:_propTypes.default.any,updatePlot:_propTypes.default.func,container:_propTypes.default.object},_Field.default.propTypes);UnconnectedDataSelector.contextTypes={dataSources:_propTypes.default.object,dataSourceComponents:_propTypes.default.object,dataSourceOptions:_propTypes.default.array,srcConverters:_propTypes.default.shape({toSrc:_propTypes.default.func.isRequired,fromSrc:_propTypes.default.func.isRequired}),container:_propTypes.default.object,localize:_propTypes.default.func};UnconnectedDataSelector.displayName="UnconnectedDataSelector";function modifyPlotProps(props,context,plotProps){if(attributeIsData(plotProps.attrMeta)&&context.container&&_constants.TRANSFORMS_LIST.indexOf(context.container.type)===-1){plotProps.isVisible=true}}const _default=(0,_lib.connectToContainer)(UnconnectedDataSelector,{modifyPlotProps});var _default2=exports.default=_default;;(function(){var reactHotLoader=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.default:undefined;if(!reactHotLoader){return}reactHotLoader.register(attributeIsData,"attributeIsData","/react-chart-editor/src/components/fields/DataSelector.js");reactHotLoader.register(UnconnectedDataSelector,"UnconnectedDataSelector","/react-chart-editor/src/components/fields/DataSelector.js");reactHotLoader.register(modifyPlotProps,"modifyPlotProps","/react-chart-editor/src/components/fields/DataSelector.js");reactHotLoader.register(_default,"default","/react-chart-editor/src/components/fields/DataSelector.js")})();;(function(){var leaveModule=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.leaveModule:undefined;leaveModule&&leaveModule(module)})(); //# sourceMappingURL=DataSelector.js.map