@eeacms/react-chart-editor
Version:
plotly.js chart editor react component UI
2 lines • 4.03 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _react=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _constants=require("../../../../lib/constants");var _reactDom=require("react-dom");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 LinkEditor extends _react.Component{constructor(props){super(props);this.state={position:this.getUpdatedPosition(props),originalLinkURL:props.linkURL}}componentDidMount(){if(this.props.linkURL.trim()===""){(0,_reactDom.findDOMNode)(this.input).focus()}}UNSAFE_componentWillReceiveProps(nextProps){const{props}=this;if(nextProps.linkID!==props.linkID){this.setState({position:this.getUpdatedPosition(props)})}}componentDidUpdate(){(0,_reactDom.findDOMNode)(this.input).setSelectionRange(this.props.linkURL.length,this.props.linkURL.length)}getUpdatedPosition(props){const{x,y}=props.coordinates;return{x,y}}onInputChange(urlValue){const{linkID,onURLChange}=this.props;onURLChange(linkID,urlValue)}onInputKeyDown(ev){const{key}=ev;if(key===_constants.RETURN_KEY){ev.preventDefault();this.props.onClose(this.props.linkID)}if(key===_constants.ESCAPE_KEY){ev.preventDefault();this.onInputChange(this.state.originalLinkURL);this.props.onClose(this.props.linkID)}}render(){const{localize:_}=this.context;const{position}=this.state;const{onBlur,onFocus,linkURL}=this.props;const placeholderText=_("Enter Link URL");const urlText=_("URL");return _react.default.createElement("div",{className:"rich-text-editor__link-editor",style:{left:position.x,top:position.y}},_react.default.createElement("span",{className:"rich-text-editor__link-editor__label"},urlText),_react.default.createElement("input",{className:"rich-text-editor__link-editor__input",onBlur:onBlur,onFocus:onFocus,onChange:ev=>this.onInputChange(ev.target.value),onKeyDown:ev=>this.onInputKeyDown(ev),ref:input=>this.input=input,value:linkURL,placeholder:placeholderText}))}__reactstandin__regenerateByEval(key,code){this[key]=eval(code)}}LinkEditor.propTypes={linkID:_propTypes.default.string.isRequired,linkURL:_propTypes.default.string.isRequired,onBlur:_propTypes.default.func.isRequired,onFocus:_propTypes.default.func.isRequired,onClose:_propTypes.default.func.isRequired,onURLChange:_propTypes.default.func.isRequired,coordinates:_propTypes.default.shape({x:_propTypes.default.number,y:_propTypes.default.number})};LinkEditor.defaultProps={coordinates:{x:0,y:0}};LinkEditor.contextTypes={localize:_propTypes.default.func.isRequired};const _default=LinkEditor;var _default2=exports.default=_default;;(function(){var reactHotLoader=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.default:undefined;if(!reactHotLoader){return}reactHotLoader.register(LinkEditor,"LinkEditor","/react-chart-editor/src/components/widgets/text_editors/RichText/LinkEditor.js");reactHotLoader.register(_default,"default","/react-chart-editor/src/components/widgets/text_editors/RichText/LinkEditor.js")})();;(function(){var leaveModule=typeof reactHotLoaderGlobal!=="undefined"?reactHotLoaderGlobal.leaveModule:undefined;leaveModule&&leaveModule(module)})();
//# sourceMappingURL=LinkEditor.js.map