{"version":3,"sources":["../src/childrenOf.js"],"names":["validateChildren","propType","children","props","rest","error","some","child","childrenOf","childrenOfPropType","propName","componentName","TypeError","propValue","length","isRequired","typeName","name"],"mappings":";;;;;;;AAAA;;AACA;;;;;;;;;;AAEA,SAASA,gBAAT,CAA0BC,QAA1B,EAAoCC,QAApC,EAA8CC,KAA9C,EAA8D;AAAA,oCAANC,IAAM;AAANA,IAAAA,IAAM;AAAA;;AAC5D,MAAIC,KAAJ;AACAH,EAAAA,QAAQ,CAACI,IAAT,CAAc,UAACC,KAAD,EAAW;AACvBF,IAAAA,KAAK,GAAGJ,QAAQ,MAAR,0CAAcE,KAAd;AAAqBD,MAAAA,QAAQ,EAAEK;AAA/B,QAAwC,UAAxC,SAAuDH,IAAvD,EAAR;AACA,WAAOC,KAAP;AACD,GAHD;AAKA,SAAOA,KAAK,IAAI,IAAhB;AACD;;AAEc,SAASG,UAAT,CAAoBP,QAApB,EAA8B;AAC3C,WAASQ,kBAAT,CAA4BN,KAA5B,EAAmCO,QAAnC,EAA6CC,aAA7C,EAAqE;AACnE,QAAID,QAAQ,KAAK,UAAjB,EAA6B;AAC3B,aAAO,IAAIE,SAAJ,WAAiBD,aAAjB,uEAA0FD,QAA1F,QAAP;AACD;;AAHkE,QAK/CG,SAL+C,GAKjCV,KALiC,CAK1DO,QAL0D;;AAOnE,QAAIG,SAAS,IAAI,IAAjB,EAAuB;AACrB,aAAO,IAAP;AACD;;AACD,QAAMX,QAAQ,GAAG,oCAAmBW,SAAnB,CAAjB;;AACA,QAAIX,QAAQ,CAACY,MAAT,KAAoB,CAAxB,EAA2B;AACzB,aAAO,IAAP;AACD;;AAbkE,uCAANV,IAAM;AAANA,MAAAA,IAAM;AAAA;;AAenE,WAAOJ,gBAAgB,MAAhB,UAAiBC,QAAjB,EAA2BC,QAA3B,EAAqCC,KAArC,EAA4CQ,aAA5C,SAA8DP,IAA9D,EAAP;AACD;;AAEDK,EAAAA,kBAAkB,CAACM,UAAnB,GAAgC,UAACZ,KAAD,EAAQO,QAAR,EAAkBC,aAAlB,EAA6C;AAC3E,QAAID,QAAQ,KAAK,UAAjB,EAA6B;AAC3B,aAAO,IAAIE,SAAJ,WAAiBD,aAAjB,uEAA0FD,QAA1F,QAAP;AACD;;AAED,QAAMR,QAAQ,GAAG,oCAAmBC,KAAK,CAACO,QAAD,CAAxB,CAAjB;;AACA,QAAIR,QAAQ,CAACY,MAAT,KAAoB,CAAxB,EAA2B;AACzB,aAAO,IAAIF,SAAJ,YAAmBD,aAAnB,kDAAyEV,QAAQ,CAACe,QAAT,IAAqBf,QAAQ,CAACgB,IAAvG,EAAP;AACD;;AAR0E,uCAATb,IAAS;AAATA,MAAAA,IAAS;AAAA;;AAU3E,WAAOJ,gBAAgB,MAAhB,UAAiBC,QAAjB,EAA2BC,QAA3B,EAAqCC,KAArC,EAA4CQ,aAA5C,SAA8DP,IAA9D,EAAP;AACD,GAXD;;AAaA,SAAO,+BAAcK,kBAAd,EAAkC,YAAlC,EAAgDR,QAAhD,CAAP;AACD","sourcesContent":["import renderableChildren from './helpers/renderableChildren';\nimport wrapValidator from './helpers/wrapValidator';\n\nfunction validateChildren(propType, children, props, ...rest) {\n let error;\n children.some((child) => {\n error = propType({ ...props, children: child }, 'children', ...rest);\n return error;\n });\n\n return error || null;\n}\n\nexport default function childrenOf(propType) {\n function childrenOfPropType(props, propName, componentName, ...rest) {\n if (propName !== 'children') {\n return new TypeError(`${componentName} is using the childrenOf validator on non-children prop \"${propName}\"`);\n }\n\n const { [propName]: propValue } = props;\n\n if (propValue == null) {\n return null;\n }\n const children = renderableChildren(propValue);\n if (children.length === 0) {\n return null;\n }\n\n return validateChildren(propType, children, props, componentName, ...rest);\n }\n\n childrenOfPropType.isRequired = (props, propName, componentName, ...rest) => {\n if (propName !== 'children') {\n return new TypeError(`${componentName} is using the childrenOf validator on non-children prop \"${propName}\"`);\n }\n\n const children = renderableChildren(props[propName]);\n if (children.length === 0) {\n return new TypeError(`\\`${componentName}\\` requires at least one node of type ${propType.typeName || propType.name}`);\n }\n\n return validateChildren(propType, children, props, componentName, ...rest);\n };\n\n return wrapValidator(childrenOfPropType, 'childrenOf', propType);\n}\n"],"file":"childrenOf.js"}