{"version":3,"sources":["../src/requiredBy.js"],"names":["getRequiredBy","requiredByPropName","propType","defaultValue","requiredBy","props","propName","componentName","propValue","TypeError","rest","isRequired","requiredByRequired"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEe,SAASA,aAAT,CAAuBC,kBAAvB,EAA2CC,QAA3C,EAA0E;AAAA,MAArBC,YAAqB,uEAAN,IAAM;;AACvF,WAASC,UAAT,CAAoBC,KAApB,EAA2BC,QAA3B,EAAqCC,aAArC,EAA6D;AAC3D,QAAIF,KAAK,CAACJ,kBAAD,CAAT,EAA+B;AAAA,UACTO,SADS,GACKH,KADL,CACpBC,QADoB;;AAE7B,UAAI,0BAAGE,SAAH,EAAcL,YAAd,KAA+B,OAAOK,SAAP,KAAqB,WAAxD,EAAqE;AACnE,eAAO,IAAIC,SAAJ,WACFF,aADE,oBACqBN,kBADrB,kCAC0DK,QAD1D,6BAAP;AAGD;AACF;;AAR0D,sCAANI,IAAM;AAANA,MAAAA,IAAM;AAAA;;AAS3D,WAAOR,QAAQ,MAAR,UAASG,KAAT,EAAgBC,QAAhB,EAA0BC,aAA1B,SAA4CG,IAA5C,EAAP;AACD;;AACDN,EAAAA,UAAU,CAACO,UAAX,GAAwB,SAASC,kBAAT,CAA4BP,KAA5B,EAAmCC,QAAnC,EAA6CC,aAA7C,EAAqE;AAAA,QACvEC,SADuE,GACzDH,KADyD,CAClFC,QADkF;;AAE3F,QAAI,0BAAGE,SAAH,EAAcL,YAAd,CAAJ,EAAiC;AAC/B,aAAO,IAAIM,SAAJ,WAAiBF,aAAjB,0BAAyCD,QAAzC,6BAAP;AACD;;AAJ0F,uCAANI,IAAM;AAANA,MAAAA,IAAM;AAAA;;AAK3F,WAAOR,QAAQ,CAACS,UAAT,OAAAT,QAAQ,GAAYG,KAAZ,EAAmBC,QAAnB,EAA6BC,aAA7B,SAA+CG,IAA/C,EAAf;AACD,GAND;;AAQA,SAAO,+BACLN,UADK,6BAEUH,kBAFV,aAGL,CAACA,kBAAD,EAAqBE,YAArB,CAHK,CAAP;AAKD","sourcesContent":["import is from 'object-is';\nimport wrapValidator from './helpers/wrapValidator';\n\nexport default function getRequiredBy(requiredByPropName, propType, defaultValue = null) {\n function requiredBy(props, propName, componentName, ...rest) {\n if (props[requiredByPropName]) {\n const { [propName]: propValue } = props;\n if (is(propValue, defaultValue) || typeof propValue === 'undefined') {\n return new TypeError(\n `${componentName}: when ${requiredByPropName} is true, prop “${propName}” must be present.`,\n );\n }\n }\n return propType(props, propName, componentName, ...rest);\n }\n requiredBy.isRequired = function requiredByRequired(props, propName, componentName, ...rest) {\n const { [propName]: propValue } = props;\n if (is(propValue, defaultValue)) {\n return new TypeError(`${componentName}: prop “${propName}” must be present.`);\n }\n return propType.isRequired(props, propName, componentName, ...rest);\n };\n\n return wrapValidator(\n requiredBy,\n `requiredBy “${requiredByPropName}”`,\n [requiredByPropName, defaultValue],\n );\n}\n"],"file":"requiredBy.js"}