{"version":3,"sources":["src/index.js"],"names":["React","Component","PropTypes","getContextualizer","propTypes","targetProp","ContextProps","props","Object","keys","reduce","x","key","children","displayName","childContextTypes","shape","withPropsFromContext","WithPropsFromContext","propList","prop","context","contextTypes","any","Target","name"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAEA,OAAO,IAAMC,oBAAoB,SAApBA,iBAAoB,CAACC,SAAD,EAAYC,UAAZ,EAA2B;AAAA,MACpDC,YADoD;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA,wCAEtC;AAAA;;AAChB,YAAMC,QAAQC,OAAOC,IAAP,CAAY,KAAKF,KAAjB,EAAwBG,MAAxB,CAA+B,UAACC,CAAD,EAAIC,GAAJ,EAAY;AACvD,cAAIA,QAAQ,UAAZ,EAAwB;AACtBD,cAAEC,GAAF,IAAS,OAAKL,KAAL,CAAWK,GAAX,CAAT;AACD;;AAED,iBAAOD,CAAP;AACD,SANa,EAMX,EANW,CAAd;;AAQA,eAAON,iCAAgBA,UAAhB,EAA6BE,KAA7B,IAAuCA,KAA9C;AACD;AAZuD;AAAA;AAAA,+BAc/C;AACP,eAAO;AAAA;AAAA;AAAO,eAAKA,KAAL,CAAWM;AAAlB,SAAP;AACD;AAhBuD;;AAAA;AAAA,IAC/BZ,SAD+B;;AAmB1DK,eAAaQ,WAAb,GAA2B,cAA3B;;AAEAR,eAAaS,iBAAb,GAAiCV,iCAC1BA,UAD0B,EACbH,UAAUc,KAAV,CAAgBZ,SAAhB,CADa,IAE7BA,SAFJ;AAGA,SAAOE,YAAP;AACD,CAzBM;;AA2BP,OAAO,IAAMW,uBAAuB,SAAvBA,oBAAuB;AAAA,SAAY,kBAAU;AAAA,QAClDC,oBADkD;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA,iCAE7C;AAAA;;AACP,cAAMX,qBACDY,SAAST,MAAT,CAAgB,UAACC,CAAD,EAAIS,IAAJ,EAAa;AAC9BT,cAAES,IAAF,IAAU,OAAKC,OAAL,CAAaD,IAAb,CAAV;;AAEA,mBAAOT,CAAP;AACD,WAJE,EAIA,EAJA,CADC,EAMD,KAAKJ,KANJ,CAAN;;AASA,iBAAO,oBAAC,MAAD,EAAYA,KAAZ,CAAP;AACD;AAbqD;;AAAA;AAAA,MACrBN,SADqB;;AAgBxDiB,yBAAqBI,YAArB,GAAoCH,SAAST,MAAT,CAAgB,UAACC,CAAD,EAAIS,IAAJ,EAAa;AAC/DT,QAAES,IAAF,IAAUlB,UAAUqB,GAApB;AACA,aAAOZ,CAAP;AACD,KAHmC,EAGjC,EAHiC,CAApC;;AAKAO,yBAAqBJ,WAArB,GAAmCU,OAAOV,WAAP,IAAsBU,OAAOC,IAAhE;;AAEA,WAAOP,oBAAP;AACD,GAxBmC;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, targetProp) => {\n  class ContextProps extends Component {\n    getChildContext() {\n      const props = Object.keys(this.props).reduce((x, key) => {\n        if (key !== 'children') {\n          x[key] = this.props[key]\n        }\n\n        return x\n      }, {})\n\n      return targetProp ? { [targetProp]: props } : props\n    }\n\n    render() {\n      return <span>{this.props.children}</span>\n    }\n  }\n\n  ContextProps.displayName = 'ContextProps'\n\n  ContextProps.childContextTypes = targetProp\n    ? { [targetProp]: PropTypes.shape(propTypes) }\n    : propTypes\n  return ContextProps\n}\n\nexport const withPropsFromContext = propList => Target => {\n  class WithPropsFromContext extends Component {\n    render() {\n      const props = {\n        ...propList.reduce((x, prop) => {\n          x[prop] = this.context[prop]\n\n          return x\n        }, {}),\n        ...this.props,\n      }\n\n      return <Target {...props} />\n    }\n  }\n\n  WithPropsFromContext.contextTypes = propList.reduce((x, prop) => {\n    x[prop] = PropTypes.any\n    return x\n  }, {})\n\n  WithPropsFromContext.displayName = Target.displayName || Target.name\n\n  return WithPropsFromContext\n}\n"]}