{"version":3,"sources":["../src/uniqueArray.js"],"names":["uniqueCountWithSet","arr","Set","size","uniqueCountLegacy","seen","forEach","item","indexOf","push","length","getUniqueCount","requiredUniqueArray","props","propName","componentName","rest","result","array","isRequired","propValue","uniqueCount","RangeError","uniqueArray"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA,SAASA,kBAAT,CAA4BC,GAA5B,EAAiC;AAAE,SAAO,IAAIC,GAAJ,CAAQD,GAAR,EAAaE,IAApB;AAA2B;AAC9D;;;AACA,SAASC,iBAAT,CAA2BH,GAA3B,EAAgC;AAC9B,MAAMI,IAAI,GAAG,EAAb;AACAJ,EAAAA,GAAG,CAACK,OAAJ,CAAY,UAACC,IAAD,EAAU;AACpB,QAAIF,IAAI,CAACG,OAAL,CAAaD,IAAb,MAAuB,CAAC,CAA5B,EAA+B;AAC7BF,MAAAA,IAAI,CAACI,IAAL,CAAUF,IAAV;AACD;AACF,GAJD;AAKA,SAAOF,IAAI,CAACK,MAAZ;AACD;;AAED,IAAMC,cAAc,GAAG,OAAOT,GAAP,KAAe,UAAf,GAA4BF,kBAA5B;AAAiD;AAA2BI,iBAAnG;;AAEA,SAASQ,mBAAT,CAA6BC,KAA7B,EAAoCC,QAApC,EAA8CC,aAA9C,EAAsE;AAAA,oCAANC,IAAM;AAANA,IAAAA,IAAM;AAAA;;AACpE,MAAMC,MAAM,GAAGC,iBAAMC,UAAN,0BAAiBN,KAAjB,EAAwBC,QAAxB,EAAkCC,aAAlC,SAAoDC,IAApD,EAAf;;AACA,MAAIC,MAAM,IAAI,IAAd,EAAoB;AAClB,WAAOA,MAAP;AACD;;AAJmE,MAMhDG,SANgD,GAMlCP,KANkC,CAM3DC,QAN2D;AAOpE,MAAMO,WAAW,GAAGV,cAAc,CAACS,SAAD,CAAlC;;AACA,MAAIC,WAAW,KAAKD,SAAS,CAACV,MAA9B,EAAsC;AACpC,WAAO,IAAIY,UAAJ,WAAkBP,aAAlB,sCAA2DK,SAAS,CAACV,MAAV,GAAmBW,WAA9E,8BAAP;AACD;;AACD,SAAO,IAAP;AACD;;AAED,SAASE,WAAT,CAAqBV,KAArB,EAA4BC,QAA5B,EAA+C;AAAA,MACzBM,SADyB,GACXP,KADW,CACpCC,QADoC;;AAE7C,MAAIM,SAAS,IAAI,IAAjB,EAAuB;AACrB,WAAO,IAAP;AACD;;AAJ4C,qCAANJ,IAAM;AAANA,IAAAA,IAAM;AAAA;;AAM7C,SAAOJ,mBAAmB,MAAnB,UAAoBC,KAApB,EAA2BC,QAA3B,SAAwCE,IAAxC,EAAP;AACD;;AACDO,WAAW,CAACJ,UAAZ,GAAyBP,mBAAzB;;eAEe;AAAA,SAAM,+BAAcW,WAAd,EAA2B,aAA3B,CAAN;AAAA,C","sourcesContent":["import { array } from 'prop-types';\nimport wrapValidator from './helpers/wrapValidator';\n\nfunction uniqueCountWithSet(arr) { return new Set(arr).size; }\n/* istanbul ignore next */\nfunction uniqueCountLegacy(arr) {\n const seen = [];\n arr.forEach((item) => {\n if (seen.indexOf(item) === -1) {\n seen.push(item);\n }\n });\n return seen.length;\n}\n\nconst getUniqueCount = typeof Set === 'function' ? uniqueCountWithSet : /* istanbul ignore next */ uniqueCountLegacy;\n\nfunction requiredUniqueArray(props, propName, componentName, ...rest) {\n const result = array.isRequired(props, propName, componentName, ...rest);\n if (result != null) {\n return result;\n }\n\n const { [propName]: propValue } = props;\n const uniqueCount = getUniqueCount(propValue);\n if (uniqueCount !== propValue.length) {\n return new RangeError(`${componentName}: values must be unique. ${propValue.length - uniqueCount} duplicate values found.`);\n }\n return null;\n}\n\nfunction uniqueArray(props, propName, ...rest) {\n const { [propName]: propValue } = props;\n if (propValue == null) {\n return null;\n }\n\n return requiredUniqueArray(props, propName, ...rest);\n}\nuniqueArray.isRequired = requiredUniqueArray;\n\nexport default () => wrapValidator(uniqueArray, 'uniqueArray');\n"],"file":"uniqueArray.js"}