{"version":3,"sources":["src/index.js"],"names":["React","Component","PropTypes","getContextualizer","ContextProps","props","Object","keys","reduce","x","key","children","displayName","childContextTypes","propTypes","withPropsFromContext","WithPropsFromContext","propList","prop","context","contextTypes","any","Target","name"],"mappings":";;;;;;;;;;AAAA,OAAOA,KAAP,IAAeC,SAAf,QAA+B,OAA/B;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAEA,OAAO,IAAMC,oBAAoB,SAApBA,iBAAoB,YAAa;AAAA,MACtCC,YADsC;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA,wCAEvB;AAAA;;AACjB,YAAMC,QAAQC,OAAOC,IAAP,CAAY,KAAKF,KAAjB,EACXG,MADW,CACJ,UAACC,CAAD,EAAIC,GAAJ,EAAY;AAClB,cAAIA,QAAQ,UAAZ,EAAwB;AACtBD,cAAEC,GAAF,IAAS,OAAKL,KAAL,CAAWK,GAAX,CAAT;AACD;;AAED,iBAAOD,CAAP;AACD,SAPW,EAOT,EAPS,CAAd;;AASA,eAAOJ,KAAP;AACD;AAbyC;AAAA;AAAA,+BAehC;AACR,eAAO;AAAA;AAAA;AAAO,eAAKA,KAAL,CAAWM;AAAlB,SAAP;AACD;AAjByC;;AAAA;AAAA,IACjBV,SADiB;;AAoB5CG,eAAaQ,WAAb,GAA2B,cAA3B;;AAEAR,eAAaS,iBAAb,GAAiCC,SAAjC;AACA,SAAOV,YAAP;AACD,CAxBM;;AA0BP,OAAO,IAAMW,uBAAuB,SAAvBA,oBAAuB;AAAA,SAAY,kBAAU;AAAA,QAClDC,oBADkD;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA,iCAE5C;AAAA;;AACR,cAAMX,qBACDY,SAAST,MAAT,CACD,UAACC,CAAD,EAAIS,IAAJ,EAAa;AACXT,cAAES,IAAF,IAAU,OAAKC,OAAL,CAAaD,IAAb,CAAV;;AAEA,mBAAOT,CAAP;AACD,WALA,EAMD,EANC,CADC,EASD,KAAKJ,KATJ,CAAN;;AAYA,iBACE,oBAAC,MAAD,EAAYA,KAAZ,CADF;AAGD;AAlBqD;;AAAA;AAAA,MACrBJ,SADqB;;AAqBxDe,yBAAqBI,YAArB,GAAoCH,SAAST,MAAT,CAClC,UAACC,CAAD,EAAIS,IAAJ,EAAa;AACXT,QAAES,IAAF,IAAUhB,UAAUmB,GAApB;AACA,aAAOZ,CAAP;AACD,KAJiC,EAKlC,EALkC,CAApC;;AAQAO,yBAAqBJ,WAArB,GAAmCU,OAAOV,WAAP,IAAsBU,OAAOC,IAAhE;;AAEA,WAAOP,oBAAP;AACD,GAhCmC;AAAA,CAA7B","file":"index.js","sourceRoot":"/Users/fernando.canel/Code/me/react-context-props","sourcesContent":["import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\n\nexport const getContextualizer = propTypes => {\n  class ContextProps extends Component {\n    getChildContext () {\n      const props = Object.keys(this.props)\n        .reduce((x, key) => {\n          if (key !== 'children') {\n            x[key] = this.props[key]\n          }\n\n          return x\n        }, {})\n\n      return props\n    }\n\n    render () {\n      return <span>{this.props.children}</span>\n    }\n  }\n\n  ContextProps.displayName = 'ContextProps'\n\n  ContextProps.childContextTypes = propTypes\n  return ContextProps\n}\n\nexport const withPropsFromContext = propList => Target => {\n  class WithPropsFromContext extends Component {\n    render () {\n      const props = {\n        ...propList.reduce(\n          (x, prop) => {\n            x[prop] = this.context[prop]\n\n            return x\n          },\n          {}\n        ),\n        ...this.props\n      }\n\n      return (\n        <Target {...props} />\n      )\n    }\n  }\n\n  WithPropsFromContext.contextTypes = propList.reduce(\n    (x, prop) => {\n      x[prop] = PropTypes.any\n      return x\n    },\n    {}\n  )\n\n  WithPropsFromContext.displayName = Target.displayName || Target.name\n\n  return WithPropsFromContext\n}\n"]}