UNPKG

3.15 kBSource Map (JSON)View Raw
1{"version":3,"file":"EscapeOutside.js","sources":["../src/components/EscapeOutside/EscapeOutside.js"],"sourcesContent":["import React from 'react'\nimport PropTypes from 'prop-types'\nimport { noop, KEY_ESC } from '../../utils'\n\nclass EscapeOutside extends React.Component {\n static propTypes = {\n children: PropTypes.node.isRequired,\n onEscapeOutside: PropTypes.func.isRequired,\n }\n\n static defaultProps = {\n onEscapeOutside: noop,\n }\n\n _element = React.createRef()\n _document = null\n\n componentDidMount() {\n this._document = this._element.ownerDocument\n this._document.addEventListener('keydown', this.handleEscape)\n this._document.addEventListener('click', this.handleClick)\n this._document.addEventListener('touchend', this.handleClick)\n }\n\n componentWillUnmount() {\n this._document.removeEventListener('keydown', this.handleEscape)\n this._document.removeEventListener('click', this.handleClick)\n this._document.removeEventListener('touchend', this.handleClick)\n }\n\n handleClick = e => {\n const { onEscapeOutside } = this.props\n if (!this._element.contains(e.target)) {\n onEscapeOutside()\n }\n }\n\n handleEscape = e => {\n const { onEscapeOutside } = this.props\n if (e.keyCode === KEY_ESC) {\n onEscapeOutside()\n }\n }\n\n render() {\n const { children, onEscapeOutside, ...rest } = this.props\n\n return (\n <div {...rest} ref={n => (this._element = n)}>\n {children}\n </div>\n )\n }\n}\n\nexport default EscapeOutside\n"],"names":["EscapeOutside","React","createRef","e","onEscapeOutside","props","_element","contains","target","keyCode","KEY_ESC","_document","ownerDocument","addEventListener","handleEscape","handleClick","removeEventListener","children","rest","n","Component","PropTypes","node","isRequired","func","noop"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIMA;;;;;;;;;;;;;;;;+FAUOC,cAAK,CAACC,SAAN;;gGACC;;kGAeE,UAAAC,CAAC,EAAI;AAAA,UACTC,eADS,GACW,MAAKC,KADhB,CACTD,eADS;;AAEjB,UAAI,CAAC,MAAKE,QAAL,CAAcC,QAAd,CAAuBJ,CAAC,CAACK,MAAzB,CAAL,EAAuC;AACrCJ,QAAAA,eAAe;AAChB;AACF;;mGAEc,UAAAD,CAAC,EAAI;AAAA,UACVC,eADU,GACU,MAAKC,KADf,CACVD,eADU;;AAElB,UAAID,CAAC,CAACM,OAAF,KAAcC,gBAAlB,EAA2B;AACzBN,QAAAA,eAAe;AAChB;AACF;;;;;;;wCAzBmB;AAClB,WAAKO,SAAL,GAAiB,KAAKL,QAAL,CAAcM,aAA/B;;AACA,WAAKD,SAAL,CAAeE,gBAAf,CAAgC,SAAhC,EAA2C,KAAKC,YAAhD;;AACA,WAAKH,SAAL,CAAeE,gBAAf,CAAgC,OAAhC,EAAyC,KAAKE,WAA9C;;AACA,WAAKJ,SAAL,CAAeE,gBAAf,CAAgC,UAAhC,EAA4C,KAAKE,WAAjD;AACD;;;2CAEsB;AACrB,WAAKJ,SAAL,CAAeK,mBAAf,CAAmC,SAAnC,EAA8C,KAAKF,YAAnD;;AACA,WAAKH,SAAL,CAAeK,mBAAf,CAAmC,OAAnC,EAA4C,KAAKD,WAAjD;;AACA,WAAKJ,SAAL,CAAeK,mBAAf,CAAmC,UAAnC,EAA+C,KAAKD,WAApD;AACD;;;6BAgBQ;AAAA;;AAAA,wBACwC,KAAKV,KAD7C;AAAA,UACCY,QADD,eACCA,QADD;AAAA,UACWb,eADX,eACWA,eADX;AAAA,UAC+Bc,IAD/B;;AAGP,0BACEjB,4DAASiB,IAAT;AAAe,QAAA,GAAG,EAAE,aAAAC,CAAC;AAAA,iBAAK,MAAI,CAACb,QAAL,GAAgBa,CAArB;AAAA;AAArB,UACGF,QADH,CADF;AAKD;;;;EAhDyBhB,cAAK,CAACmB;;iCAA5BpB,4BACe;AACjBiB,EAAAA,QAAQ,EAAEI,eAAS,CAACC,IAAV,CAAeC,UADR;AAEjBnB,EAAAA,eAAe,EAAEiB,eAAS,CAACG,IAAV,CAAeD;AAFf;;iCADfvB,+BAMkB;AACpBI,EAAAA,eAAe,EAAEqB;AADG;;;;"}
\No newline at end of file