UNPKG

@eeacms/react-chart-editor

Version:

plotly.js chart editor react component UI

2 lines 7.02 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=exports.UnconnectedTextEditor=void 0;var _Field=_interopRequireDefault(require("./Field"));var _react=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _lib=require("../../lib");var _nested_property=_interopRequireDefault(require("plotly.js/src/lib/nested_property"));var _LaTeX=_interopRequireDefault(require("../widgets/text_editors/LaTeX"));var _RichText=_interopRequireDefault(require("../widgets/text_editors/RichText"));var _MultiFormat=_interopRequireDefault(require("../widgets/text_editors/MultiFormat"));var _HTML=_interopRequireDefault(require("../widgets/text_editors/HTML"));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};const TEMPLATE_STRING_REGEX=/%{([^\s%{}:]*)(:[^}]*)?}/g;const INDEX_IN_TEMPLATE_STRING_REGEX=/%{(meta(\[(\d+)]))}/;class UnconnectedTextEditor extends _react.Component{hasTemplateStrings(value){if(!value){return false}return value.match(TEMPLATE_STRING_REGEX)}updatePlot(value){const{updatePlot}=this.props;const templateStrings=this.hasTemplateStrings(value);let adjustedValue=value;if(templateStrings){adjustedValue=adjustedValue.replace(TEMPLATE_STRING_REGEX,match=>{const index=INDEX_IN_TEMPLATE_STRING_REGEX.exec(match);if(index){const adjustedIndex=parseInt(index[3],10)-1;if(!isNaN(adjustedIndex)){return"%{meta[".concat(adjustedIndex<0?0:adjustedIndex,"]}")}}return match})}if(adjustedValue===""){adjustedValue=this.props.emptyValue}updatePlot(adjustedValue)}getAdjustedFullValue(fullValue){const templateStrings=this.hasTemplateStrings(fullValue);if(templateStrings){return fullValue.replace(TEMPLATE_STRING_REGEX,match=>{const index=INDEX_IN_TEMPLATE_STRING_REGEX.exec(match);if(index){const adjustedIndex=parseInt(index[3],10)+1;if(!isNaN(adjustedIndex)){return"%{meta[".concat(adjustedIndex,"]}")}return match}return match})}return fullValue}render(){const{attr,container,htmlOnly,latexOnly,multiValued,richTextOnly}=this.props;const{localize:_}=this.context;let fullValue=this.getAdjustedFullValue(this.props.fullValue);let placeholder=this.props.placeholder;if(multiValued||fullValue&&(!container||!(0,_nested_property.default)(container,attr))){placeholder=fullValue;fullValue=""}let editor;if(latexOnly){placeholder=_("Enter LaTeX formatted text");editor=_react.default.createElement(_LaTeX.default,{value:fullValue,placeholder:placeholder,onChange:this.updatePlot.bind(this)})}else if(richTextOnly){editor=_react.default.createElement(_RichText.default,{value:fullValue,emptyValue:this.props.emptyValue,placeholder:placeholder,onChange:this.updatePlot.bind(this)})}else if(htmlOnly){placeholder=_("Enter html formatted text");editor=_react.default.createElement(_HTML.default,{value:fullValue,placeholder:placeholder,onChange:this.updatePlot.bind(this)})}else{editor=_react.default.createElement(_MultiFormat.default,{value:fullValue,emptyValue:this.props.emptyValue,placeholder:placeholder,onChange:this.updatePlot.bind(this)})}return _react.default.createElement(_Field.default,this.props,_react.default.createElement("div",{className:"text-editor"},editor))}__reactstandin__regenerateByEval(key,code){this[key]=eval(code)}}exports.UnconnectedTextEditor=UnconnectedTextEditor;UnconnectedTextEditor.propTypes=_objectSpread(_objectSpread({},_Field.default.propTypes),{},{fullValue:_propTypes.default.any,emptyValue:_propTypes.default.any,htmlOnly:_propTypes.default.bool,latexOnly:_propTypes.default.bool,richTextOnly:_propTypes.default.bool,updatePlot:_propTypes.default.func,placeholder:_propTypes.default.string});UnconnectedTextEditor.contextTypes={localize:_propTypes.default.func,fullLayout:_propTypes.default.object};UnconnectedTextEditor.displayName="UnconnectedTextEditor";const _default=(0,_lib.connectToContainer)(UnconnectedTextEditor,{modifyPlotProps:(props,context,plotProps)=>{plotProps.emptyValue=null;if(plotProps.isVisible&&plotProps.multiValued){plotProps.isVisible=false}if(context.fullLayout&&context.fullLayout._dfltTitle&&Object.values(context.fullLayout._dfltTitle).includes(plotProps.fullValue)){plotProps.placeholder=plotProps.fullValue;plotProps.fullValue=""}}});var _default2=exports.default=_default;;(function(){var reactHotLoader=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.default:undefined;if(!reactHotLoader){return}reactHotLoader.register(TEMPLATE_STRING_REGEX,"TEMPLATE_STRING_REGEX","/react-chart-editor/src/components/fields/TextEditor.js");reactHotLoader.register(INDEX_IN_TEMPLATE_STRING_REGEX,"INDEX_IN_TEMPLATE_STRING_REGEX","/react-chart-editor/src/components/fields/TextEditor.js");reactHotLoader.register(UnconnectedTextEditor,"UnconnectedTextEditor","/react-chart-editor/src/components/fields/TextEditor.js");reactHotLoader.register(_default,"default","/react-chart-editor/src/components/fields/TextEditor.js")})();;(function(){var leaveModule=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.leaveModule:undefined;leaveModule&&leaveModule(module)})(); //# sourceMappingURL=TextEditor.js.map