{"version":3,"sources":["../src/nChildren.js"],"names":["nChildren","n","propType","node","isNaN","TypeError","validator","nChildrenValidator","props","propName","componentName","children","childrenCount","React","Children","count","RangeError","rest","isRequired"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAEe,SAASA,SAAT,CAAmBC,CAAnB,EAAuC;AAAA,MAAjBC,QAAiB,uEAANC,eAAM;;AACpD,MAAI,OAAOF,CAAP,KAAa,QAAb,IAAyBG,KAAK,CAACH,CAAD,CAA9B,IAAqCA,CAAC,GAAG,CAA7C,EAAgD;AAC9C,UAAM,IAAII,SAAJ,CAAc,mCAAd,CAAN;AACD;;AAED,MAAMC,SAAS,GAAG,SAASC,kBAAT,CAA4BC,KAA5B,EAAmCC,QAAnC,EAA6CC,aAA7C,EAAqE;AACrF,QAAID,QAAQ,KAAK,UAAjB,EAA6B;AAC3B,aAAO,IAAIJ,SAAJ,WAAiBK,aAAjB,8DAAP;AACD;;AAHoF,QAK7EC,QAL6E,GAKhEH,KALgE,CAK7EG,QAL6E;;AAMrF,QAAMC,aAAa,GAAGC,kBAAMC,QAAN,CAAeC,KAAf,CAAqBJ,QAArB,CAAtB;;AAEA,QAAIC,aAAa,KAAKX,CAAtB,EAAyB;AACvB,aAAO,IAAIe,UAAJ,WACFN,aADE,iCACkCT,CADlC,qCAC8DW,aAD9D,gBAAP;AAGD;;AAZoF,sCAANK,IAAM;AAANA,MAAAA,IAAM;AAAA;;AAarF,WAAOf,QAAQ,MAAR,UAASM,KAAT,EAAgBC,QAAhB,EAA0BC,aAA1B,SAA4CO,IAA5C,EAAP;AACD,GAdD;;AAeAX,EAAAA,SAAS,CAACY,UAAV,GAAuBZ,SAAvB;AAEA,SAAO,+BAAcA,SAAd,sBAAsCL,CAAtC,GAA2CA,CAA3C,CAAP;AACD","sourcesContent":["import React from 'react';\nimport { node } from 'prop-types';\nimport wrapValidator from './helpers/wrapValidator';\n\nexport default function nChildren(n, propType = node) {\n if (typeof n !== 'number' || isNaN(n) || n < 0) {\n throw new TypeError('a non-negative number is required');\n }\n\n const validator = function nChildrenValidator(props, propName, componentName, ...rest) {\n if (propName !== 'children') {\n return new TypeError(`${componentName} is using the nChildren validator on a non-children prop`);\n }\n\n const { children } = props;\n const childrenCount = React.Children.count(children);\n\n if (childrenCount !== n) {\n return new RangeError(\n `${componentName} expects to receive ${n} children, but received ${childrenCount} children.`,\n );\n }\n return propType(props, propName, componentName, ...rest);\n };\n validator.isRequired = validator;\n\n return wrapValidator(validator, `nChildren:${n}`, n);\n}\n"],"file":"nChildren.js"}