{"version":3,"sources":["middlewares/ChangeToBlur2Mw.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,qBAAa,eAAgB,SAAQ,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC;IACnE,KAAK;;MAA8B;IACnC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAQ;IACtC,KAAK,UAAS;IAEd,OAAO,aAIL;IAEF,MAAM,aAKJ;IAEF,iBAAiB;IASjB,oBAAoB;IAOpB,MAAM;CAaP;AACD,eAAe,eAAe,CAAC","file":"ChangeToBlur2Mw.d.ts","sourcesContent":["import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { MiddlewareProps } from '../core';\n\nexport class ChangeToBlur2Mw extends React.Component<MiddlewareProps> {\n  state = { value: this.props.data };\n  element: Element | null | Text = null;\n  focus = false;\n\n  onFocus = () => {\n    const { data } = this.props;\n    this.focus = true;\n    this.setState({ value: data });\n  };\n\n  onBlur = () => {\n    const { onChange } = this.props;\n    const { value } = this.state;\n    this.focus = false;\n    onChange(value);\n  };\n\n  componentDidMount() {\n    const { schema } = this.props;\n    if (typeof schema === 'boolean' || schema.type === 'object' || schema.type === 'array') return;\n    this.element = ReactDOM.findDOMNode(this);\n    if (this.element) {\n      this.element.addEventListener('focus', this.onFocus, true);\n      this.element.addEventListener('blur', this.onBlur, true);\n    }\n  }\n  componentWillUnmount() {\n    if (this.element) {\n      this.element.removeEventListener('focus', this.onFocus);\n      this.element.removeEventListener('blur', this.onBlur);\n    }\n  }\n\n  render() {\n    const { data, next, onChange } = this.props;\n    const { value } = this.state;\n    return next({\n      ...this.props,\n      data: this.focus ? value : data,\n      onChange: this.focus\n        ? (value: any) => {\n            this.setState({ value });\n          }\n        : onChange,\n    });\n  }\n}\nexport default ChangeToBlur2Mw;\n"]}