{"version":3,"sources":["../src/keysOf.js"],"names":["keysOfValidator","propType","name","TypeError","validator","keysOf","props","propName","componentName","location","propFullName","rest","propValue","firstError","Object","keys","some","key","isRequired","keyedByRequired"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAEe,SAASA,eAAT,CAAyBC,QAAzB,EAAoD;AAAA,MAAjBC,IAAiB,uEAAV,QAAU;;AACjE,MAAI,OAAOD,QAAP,KAAoB,UAAxB,EAAoC;AAClC,UAAM,IAAIE,SAAJ,CAAc,sDAAd,CAAN;AACD;;AAED,MAAMC,SAAS,GAAG,SAASC,MAAT,CAChBC,KADgB,EAEhBC,QAFgB,EAGhBC,aAHgB,EAIhBC,QAJgB,EAKhBC,YALgB,EAOhB;AAAA,sCADGC,IACH;AADGA,MAAAA,IACH;AAAA;;AAAA,QACoBC,SADpB,GACkCN,KADlC,CACSC,QADT;;AAGA,QAAIK,SAAS,IAAI,IAAb,IAAqB,6BAAYA,SAAZ,CAAzB,EAAiD;AAC/C,aAAO,IAAP;AACD;;AAED,QAAIC,UAAU,GAAG,IAAjB;AACAC,IAAAA,MAAM,CAACC,IAAP,CAAYH,SAAZ,EAAuBI,IAAvB,CAA4B,UAACC,GAAD,EAAS;AACnCJ,MAAAA,UAAU,GAAGZ,QAAQ,MAAR,8BACRgB,GADQ,EACFA,GADE,GAEXA,GAFW,EAGXT,aAHW,EAIXC,QAJW,aAKPC,YALO,eAKUO,GALV,UAMRN,IANQ,EAAb;AAQA,aAAOE,UAAU,IAAI,IAArB;AACD,KAVD;AAWA,WAAOA,UAAU,IAAI,IAArB;AACD,GA3BD;;AA6BAT,EAAAA,SAAS,CAACc,UAAV,GAAuB,SAASC,eAAT,CAAyBb,KAAzB,EAAgCC,QAAhC,EAA0CC,aAA1C,EAAkE;AAAA,QACnEI,SADmE,GACrDN,KADqD,CAC9EC,QAD8E;;AAGvF,QAAIK,SAAS,IAAI,IAAjB,EAAuB;AACrB,aAAO,IAAIT,SAAJ,WAAiBK,aAAjB,eAAmCD,QAAnC,wCAAyEK,SAAzE,EAAP;AACD;;AALsF,uCAAND,IAAM;AAANA,MAAAA,IAAM;AAAA;;AAOvF,WAAOP,SAAS,MAAT,UAAUE,KAAV,EAAiBC,QAAjB,EAA2BC,aAA3B,SAA6CG,IAA7C,EAAP;AACD,GARD;;AAUA,SAAO,+BAAcP,SAAd,EAAyBF,IAAzB,EAA+BD,QAA/B,CAAP;AACD","sourcesContent":["import isPrimitive from './helpers/isPrimitive';\nimport wrapValidator from './helpers/wrapValidator';\n\nexport default function keysOfValidator(propType, name = 'keysOf') {\n if (typeof propType !== 'function') {\n throw new TypeError('argument to keysOf must be a valid PropType function');\n }\n\n const validator = function keysOf(\n props,\n propName,\n componentName,\n location,\n propFullName,\n ...rest\n ) {\n const { [propName]: propValue } = props;\n\n if (propValue == null || isPrimitive(propValue)) {\n return null;\n }\n\n let firstError = null;\n Object.keys(propValue).some((key) => {\n firstError = propType(\n { [key]: key },\n key,\n componentName,\n location,\n `(${propFullName}).${key}`,\n ...rest,\n );\n return firstError != null;\n });\n return firstError || null;\n };\n\n validator.isRequired = function keyedByRequired(props, propName, componentName, ...rest) {\n const { [propName]: propValue } = props;\n\n if (propValue == null) {\n return new TypeError(`${componentName}: ${propName} is required, but value is ${propValue}`);\n }\n\n return validator(props, propName, componentName, ...rest);\n };\n\n return wrapValidator(validator, name, propType);\n}\n"],"file":"keysOf.js"}