{"version":3,"sources":["webpack:///./node_modules/lodash/_baseFindIndex.js","webpack:///./node_modules/lodash/toInteger.js","webpack:///./node_modules/lodash/findIndex.js","webpack:///./node_modules/lodash/toFinite.js","webpack:///./src/svg/icn-search.js","webpack:///./src/components/modules/CollectionIndex.js","webpack:///./src/pages/collection/indexed.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./src/svg/icn-close.js"],"names":["module","exports","array","predicate","fromIndex","fromRight","length","index","toFinite","value","result","remainder","baseFindIndex","baseIteratee","toInteger","nativeMax","Math","max","toNumber","IconSearch","className","width","height","viewBox","stroke","strokeWidth","fill","fillRule","transform","cx","cy","r","x1","y1","x2","y2","CollectionIndex","data","items","mediums","sort","a","b","name","localeCompare","filter","item","split","taxaObj","forEach","medium","obj","slug","children","type","indexOf","typeObj","push","secondaryType","secondaryTypeObj","tertiaryType","tertiaryTypeObj","toggleAccordion","e","target","closest","classList","toggle","malValues","values","foundValueIndex","count","foundTypeIndex","types","replace","cleanupValues","map","key","classnames","onClick","Link","to","Indexed","taxa","allMalTaxa","nodes","childTaxa","allMalItem","useState","closeNavTo","setCloseNavTo","fromTaxon","setFromTaxon","useEffect","window","history","state","Layout","pageTitle","shouldAnimate","isObject","isSymbol","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary","test","slice","IconClose"],"mappings":"4EAuBAA,EAAOC,QAZP,SAAuBC,EAAOC,EAAWC,EAAWC,GAIlD,IAHA,IAAIC,EAASJ,EAAMI,OACfC,EAAQH,GAAaC,EAAY,GAAK,GAElCA,EAAYE,MAAYA,EAAQD,GACtC,GAAIH,EAAUD,EAAMK,GAAQA,EAAOL,GACjC,OAAOK,EAGX,OAAQ,I,qBCpBV,IAAIC,EAAW,EAAQ,QAmCvBR,EAAOC,QAPP,SAAmBQ,GACjB,IAAIC,EAASF,EAASC,GAClBE,EAAYD,EAAS,EAEzB,OAAOA,GAAWA,EAAUC,EAAYD,EAASC,EAAYD,EAAU,I,qBChCzE,IAAIE,EAAgB,EAAQ,QACxBC,EAAe,EAAQ,QACvBC,EAAY,EAAQ,QAGpBC,EAAYC,KAAKC,IAiDrBjB,EAAOC,QAZP,SAAmBC,EAAOC,EAAWC,GACnC,IAAIE,EAAkB,MAATJ,EAAgB,EAAIA,EAAMI,OACvC,IAAKA,EACH,OAAQ,EAEV,IAAIC,EAAqB,MAAbH,EAAoB,EAAIU,EAAUV,GAI9C,OAHIG,EAAQ,IACVA,EAAQQ,EAAUT,EAASC,EAAO,IAE7BK,EAAcV,EAAOW,EAAaV,EAAW,GAAII,K,qBCnD1D,IAAIW,EAAW,EAAQ,QAyCvBlB,EAAOC,QAZP,SAAkBQ,GAChB,OAAKA,GAGLA,EAAQS,EAAST,MA9BJ,KA+BaA,KA/Bb,IACG,uBA+BFA,EAAQ,GAAK,EAAI,GAGxBA,GAAUA,EAAQA,EAAQ,EAPd,IAAVA,EAAcA,EAAQ,I,kCC/BjC,yBAqBeU,IAnBI,SAAC,GAAwB,IAAD,IAArBC,iBAAqB,MAAT,GAAS,EACzC,OACE,yBAAKA,UAAWA,EAAWC,MAAM,OAAOC,OAAO,OAAOC,QAAQ,aAC5D,uBAAGC,OAAO,OAAOC,YAAY,IAAIC,KAAK,OAAOC,SAAS,WACpD,uBACEC,UAAU,qCACVJ,OAAO,UACPC,YAAY,KAEZ,uBAAGG,UAAU,oCACX,4BAAQC,GAAG,MAAMC,GAAG,MAAMC,EAAE,QAC5B,0BAAMC,GAAG,OAAOC,GAAG,aAAaC,GAAG,aAAaC,GAAG,e,gJC8PhDC,EApQS,SAAC,GAAqC,IAAnCC,EAAkC,EAAlCA,KAAMC,EAA4B,EAA5BA,MAA4B,IAArBlB,iBAAqB,MAAT,GAAS,EAErDmB,GADNF,EAAOA,EAAKG,MAAK,SAACC,EAAGC,GAAJ,OAAUD,EAAEE,KAAKC,cAAcF,EAAEC,UAC7BE,QAAO,SAAAC,GAAI,OAAIA,EAAKH,KAAKI,MAAM,MAAMzC,OAAS,KAqB/D0C,EAAU,GACdT,EAAQU,SAAQ,SAAAC,GACd,IAAIC,EAAM,CAAE1C,MAAOyC,EAAOP,KAAMS,KAAMF,EAAOE,KAAMC,SAAU,IACjDhB,EAAKQ,QAAO,SAAAS,GACtB,OACmC,IAAjCA,EAAKX,KAAKI,MAAM,MAAMzC,QACa,IAAnCgD,EAAKX,KAAKY,QAAQL,EAAOP,SAGvBM,SAAQ,SAAAK,GACZ,IAAIE,EAAU,CAAE/C,MAAO6C,EAAKX,KAAMS,KAAME,EAAKF,KAAMC,SAAU,IAC7DF,EAAIE,SAASI,KAAKD,GACGnB,EAAKQ,QAAO,SAAAa,GAC/B,OAC4C,IAA1CA,EAAcf,KAAKI,MAAM,MAAMzC,QACW,IAA1CoD,EAAcf,KAAKY,QAAQD,EAAKX,SAGrBM,SAAQ,SAAAS,GACrB,IAAIC,EAAmB,CACrBlD,MAAOiD,EAAcf,KACrBS,KAAMM,EAAcN,KACpBC,SAAU,IAEZG,EAAQH,SAASI,KAAKE,GACFtB,EAAKQ,QAAO,SAAAe,GAC9B,OAC2C,IAAzCA,EAAajB,KAAKI,MAAM,MAAMzC,QACoB,IAAlDsD,EAAajB,KAAKY,QAAQG,EAAcf,SAG9BM,SAAQ,SAAAW,GACpB,IAAIC,EAAkB,CACpBpD,MAAOmD,EAAajB,KACpBS,KAAMQ,EAAaR,MAErBO,EAAiBN,SAASI,KAAKI,YAIrCb,EAAQS,KAAKN,MAEf,IAAMW,EAAkB,SAAAC,GACtBA,EAAEC,OAAOC,QAAQ,cAAcC,UAAUC,OAAO,wBAe9CC,EAAY,GA2ChB,OA1CA9B,EAAMW,SAAQ,SAAAH,GACZA,EAAKuB,OAAOpB,SAAQ,SAAAxC,GAGlB,GAAIA,EAAM4B,KAAK/B,OAAS,EAAG,CAGzB,IAAIgE,EAAkB,IAAYF,EAAW,CAAC,OAAQ3D,EAAMkC,OAE5D,IAAyB,IAArB2B,EAAwB,CAC1B,IAAInB,EAAMiB,EAAUE,GAGpBnB,EAAIoB,OAAS,EACb,IAAIC,EAAiB,IAAYrB,EAAIsB,MAAO,CAAC,OAAQhE,EAAM4B,QACnC,IAApBmC,EACFrB,EAAIsB,MAAMD,GAAgBD,OAAS,EAEnCpB,EAAIsB,MAAMhB,KAAK,CACbd,KAAMlC,EAAM4B,KAAKqC,QAAQ,gBAAiB,IAAIA,QAAQ,KAAM,IAC5DH,MAAO,IAGXH,EAAUE,GAAmBnB,MACxB,CAEL,IAAIA,EAAM,CACRR,KAAMlC,EAAMkC,KAAK+B,QAAQ,gBAAiB,IAAIA,QAAQ,KAAM,IAC5DH,MAAO,EACPE,MAAO,CACL,CACE9B,KAAMlC,EAAM4B,KAAKqC,QAAQ,gBAAiB,IAAIA,QAAQ,KAAM,IAC5DH,MAAO,KAIbH,EAAUX,KAAKN,WAKvBiB,EAAYO,YAAcP,GAExB,6BACEhD,UAAcA,EAAL,qEAET,6BAASA,UAAU,kBAChB4B,EAAQ4B,KAAI,SAAC9B,EAAMvC,GAClB,OACE,wBACEsE,IAAKtE,EACLa,UAAW0D,IACT,4CACA,CACE,sBAAiC,IAAVvE,EACvB,SAAUA,GAAS,KAIvB,4BACEa,UAAW0D,IACT,sEACA,CACE,aAAwB,IAAVvE,IAGlBwE,QAASjB,GAET,0BAAM1C,UAAU,WACb0B,EAAKrC,MAAMsC,MAAM,MAAMD,EAAKrC,MAAMsC,MAAM,MAAMzC,OAAS,IAE1D,yBAAKc,UAAU,sDACb,0BAAMA,UAAU,OAChB,0BAAMA,UAAU,SAGpB,wBAAIA,UAAU,mBACZ,4BACG0B,EAAKO,SAASuB,KAAI,SAACtB,EAAM/C,GACxB,OACE,wBAAIsE,IAAKtE,GACP,kBAACyE,EAAA,EAAD,CACEC,GAAE,eAAiB3B,EAAKF,KACxBhC,UAAU,0CAGRkC,EAAK7C,MAAMsC,MAAM,MACfO,EAAK7C,MAAMsC,MAAM,MAAMzC,OAAS,IAItC,wBAAIc,UAAU,wCACXkC,EAAKD,SAASuB,KAAI,SAAClB,EAAenD,GACjC,OACE,wBAAIsE,IAAKtE,EAAOa,UAAU,eACxB,kBAAC4D,EAAA,EAAD,CACEC,GAAE,eAAiBvB,EAAcN,KACjChC,UAAU,0CAGRsC,EAAcjD,MAAMsC,MAAM,MACxBW,EAAcjD,MAAMsC,MAAM,MAAMzC,OAAS,IAI/C,wBAAIc,UAAU,kBACXsC,EAAcL,SAASuB,KACtB,SAAChB,EAAcrD,GACb,OACE,wBAAIsE,IAAKtE,GACP,kBAACyE,EAAA,EAAD,CACEC,GAAE,eAAiBrB,EAAaR,KAChChC,UAAU,MAGRwC,EAAanD,MAAMsC,MAAM,MACvBa,EAAanD,MAAMsC,MAAM,MACtBzC,OAAS,yBAsBtD,6BAASc,UAAU,6BAChBgD,EAAUQ,KAAI,SAACnE,EAAOF,GACrB,OACE,wBACEsE,IAAKtE,EACLa,UAAW0D,IACT,wEACA,CACE,SAAUvE,GAAS,KAIvB,yBAAKa,UAAU,wCACb,0BAAMA,UAAU,OAAOX,EAAMkC,OAE/B,wBAAIvB,UAAU,OACZ,wBAAIA,UAAU,kBACXX,EAAMgE,MAAMG,KAAI,SAAC9B,EAAMvC,GACtB,OACE,wBAAIsE,IAAKtE,GACP,kBAACyE,EAAA,EAAD,CACEC,GAAE,IAAM7B,YAAK3C,EAAMkC,MAAjB,IAA0BS,YAAKN,EAAKH,MACtCvB,UAAU,MAET0B,EAAKH,mB,wBChMjBuC,UApDC,SAAC,GAAc,IAAZ7C,EAAW,EAAXA,KACX8C,EAAO9C,EAAK+C,WAAWC,MAAM7C,MAAK,SAACC,EAAGC,GAC1C,OAAOA,EAAE4C,UAAUhF,OAASmC,EAAE6C,UAAUhF,UAEpCgC,EAAQD,EAAKkD,WAAWF,MAJF,EAKQG,mBAAS,eAAtCC,EALqB,KAKTC,EALS,OAMMF,oBAAS,GAApCG,EANqB,KAMVC,EANU,KAmB5B,OAZAC,qBAAU,WACRH,EACEI,OAAOC,QAAQC,OAASF,OAAOC,QAAQC,MAAML,UAA7C,IACQG,OAAOC,QAAQC,MAAML,UACzB,eAENC,KACEE,OAAOC,QAAQC,QAASF,OAAOC,QAAQC,MAAML,YACzCG,OAAOC,QAAQC,MAAML,aAG1B,IAED,kBAACM,EAAA,EAAD,CAAQC,UAAU,WAChB,6BAAS9E,UAAU,yGACjB,wBAAIA,UAAU,cACZ,kBAAC4D,EAAA,EAAD,CACE5D,UAAU,oFACV6D,GAAG,qBACHkB,eAAe,EACfR,UAAWA,GAEX,kBAAC,IAAD,CAAWvE,UAAU,0CACrB,kBAAC,IAAD,CAAYA,UAAU,kCAExB,kBAAC4D,EAAA,EAAD,CACE5D,UAAU,6EACV6D,GAAIQ,EACJU,eAAe,GAEf,kBAAC,IAAD,CAAW/E,UAAU,yCACrB,0BAAMA,UAAU,+BAAhB,YAKN,kBAAC,EAAD,CACEA,UAAU,sBACViB,KAAM8C,EACN7C,MAAOA,O,qBCtDf,IAAI8D,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QAMnBC,EAAS,aAGTC,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAeC,SA8CnB3G,EAAOC,QArBP,SAAkBQ,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAI4F,EAAS5F,GACX,OA7CM,IA+CR,GAAI2F,EAAS3F,GAAQ,CACnB,IAAImG,EAAgC,mBAAjBnG,EAAMoG,QAAwBpG,EAAMoG,UAAYpG,EACnEA,EAAQ2F,EAASQ,GAAUA,EAAQ,GAAMA,EAE3C,GAAoB,iBAATnG,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAEhCA,EAAQA,EAAMiE,QAAQ4B,EAAQ,IAC9B,IAAIQ,EAAWN,EAAWO,KAAKtG,GAC/B,OAAQqG,GAAYL,EAAUM,KAAKtG,GAC/BiG,EAAajG,EAAMuG,MAAM,GAAIF,EAAW,EAAI,GAC3CP,EAAWQ,KAAKtG,GA1Db,KA0D6BA,I,kCC9DvC,yBA2CewG,IAzCG,SAAC,GAAwB,IAAD,IAArB7F,iBAAqB,MAAT,GAAS,EACxC,OACE,yBAAKA,UAAWA,EAAWC,MAAM,OAAOC,OAAO,OAAOC,QAAQ,aAC5D,uBAAGC,OAAO,OAAOC,YAAY,IAAIC,KAAK,OAAOC,SAAS,WACpD,uBACEC,UAAU,sCACVJ,OAAO,UACPC,YAAY,UAEZ,uBAAGG,UAAU,qCACX,0BACEI,GAAG,aACHC,GAAG,aACHC,GAAG,aACHC,GAAG,gBAEL,0BACEH,GAAG,cACHC,GAAG,aACHC,GAAG,UACHC,GAAG,eAEL,0BACEH,GAAG,aACHC,GAAG,aACHC,GAAG,aACHC,GAAG,eAEL,0BACEH,GAAG,cACHC,GAAG,cACHC,GAAG,UACHC,GAAG","file":"component---src-pages-collection-indexed-js-b2f8acd0fa56f8f342d1.js","sourcesContent":["/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","import React from 'react';\n\nconst IconSearch = ({ className = '' }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default IconSearch;\n","import React from 'react';\nimport _ from 'lodash';\nimport Link from 'components/base/Link';\nimport classnames from 'classnames';\nimport { slug } from 'components/utils/helpers';\nimport { cleanupValues } from 'components/utils/helpers';\n\nconst CollectionIndex = ({ data, items, className = '' }) => {\n data = data.sort((a, b) => a.name.localeCompare(b.name));\n const mediums = data.filter(item => item.name.split('__').length < 2);\n // Construct the object to draw categories on page\n // [\n // {\n // value: \"something\"\n // children: [\n // {\n // value: \"something__whatever\"\n // children: [\n // {\n // value: \"something__whatever__somethingElse\"\n // children: []\n // }\n // ]\n // }\n // ]\n // values: [\"something__value\"...]\n // secondaryValues: [\"something__value__whateverelse\"]\n // tertiaryValues: [\"something__value__whateverelse__mything\"]\n // }\n // ]\n let taxaObj = [];\n mediums.forEach(medium => {\n let obj = { value: medium.name, slug: medium.slug, children: [] };\n let types = data.filter(type => {\n return (\n type.name.split('__').length === 2 &&\n type.name.indexOf(medium.name) === 0\n );\n });\n types.forEach(type => {\n let typeObj = { value: type.name, slug: type.slug, children: [] };\n obj.children.push(typeObj);\n let secondaryTypes = data.filter(secondaryType => {\n return (\n secondaryType.name.split('__').length === 3 &&\n secondaryType.name.indexOf(type.name) === 0\n );\n });\n secondaryTypes.forEach(secondaryType => {\n let secondaryTypeObj = {\n value: secondaryType.name,\n slug: secondaryType.slug,\n children: []\n };\n typeObj.children.push(secondaryTypeObj);\n let tertiaryTypes = data.filter(tertiaryType => {\n return (\n tertiaryType.name.split('__').length === 4 &&\n tertiaryType.name.indexOf(secondaryType.name) === 0\n );\n });\n tertiaryTypes.forEach(tertiaryType => {\n let tertiaryTypeObj = {\n value: tertiaryType.name,\n slug: tertiaryType.slug\n };\n secondaryTypeObj.children.push(tertiaryTypeObj);\n });\n });\n });\n taxaObj.push(obj);\n });\n const toggleAccordion = e => {\n e.target.closest('.Accordion').classList.toggle('Accordion--collapse');\n };\n // We're going to go through the item values and create objects that look like the following:\n // [\n // {\n // name: \"Type\",\n // count: 123,\n // types: [\n // {\n // name: \"Manual\",\n // count: 12\n // }\n // ]\n // }\n // ]\n let malValues = [];\n items.forEach(item => {\n item.values.forEach(value => {\n // value has a name and data (both strings)\n // want to check if data exists\n if (value.data.length > 0) {\n // then we want to check if an object with this name\n // exists inside of malValues\n let foundValueIndex = _.findIndex(malValues, ['name', value.name]);\n // if the object with this name already exists\n if (foundValueIndex !== -1) {\n let obj = malValues[foundValueIndex];\n // update the object,\n // increase the count of times seen\n obj.count += 1;\n let foundTypeIndex = _.findIndex(obj.types, ['name', value.data]);\n if (foundTypeIndex !== -1) {\n obj.types[foundTypeIndex].count += 1;\n } else {\n obj.types.push({\n name: value.data.replace(/[^\\x00-\\x7F]/g, '').replace(/\"/g, ''), // eslint-disable-line\n count: 1\n });\n }\n malValues[foundValueIndex] = obj;\n } else {\n // otherwise create a new object\n let obj = {\n name: value.name.replace(/[^\\x00-\\x7F]/g, '').replace(/\"/g, ''), // eslint-disable-line\n count: 1,\n types: [\n {\n name: value.data.replace(/[^\\x00-\\x7F]/g, '').replace(/\"/g, ''), // eslint-disable-line\n count: 1\n }\n ]\n };\n malValues.push(obj);\n }\n }\n });\n });\n malValues = cleanupValues(malValues);\n return (\n \n \n {taxaObj.map((item, index) => {\n return (\n = 4\n }\n )}\n >\n \n \n {item.value.split('__')[item.value.split('__').length - 1]}\n \n \n \n \n
\n \n \n \n {item.children.map((type, index) => {\n return (\n \n \n {\n type.value.split('__')[\n type.value.split('__').length - 1\n ]\n }\n \n \n {type.children.map((secondaryType, index) => {\n return (\n \n \n {\n secondaryType.value.split('__')[\n secondaryType.value.split('__').length - 1\n ]\n }\n \n \n {secondaryType.children.map(\n (tertiaryType, index) => {\n return (\n \n \n {\n tertiaryType.value.split('__')[\n tertiaryType.value.split('__')\n .length - 1\n ]\n }\n \n \n );\n }\n )}\n \n \n );\n })}\n \n \n );\n })}\n \n \n \n );\n })}\n \n \n {malValues.map((value, index) => {\n return (\n = 4\n }\n )}\n >\n \n {value.name} \n
\n \n \n {value.types.map((item, index) => {\n return (\n \n \n {item.name}\n \n \n );\n })}\n \n \n \n );\n })}\n \n \n );\n};\n\nexport default CollectionIndex;\n","import React, { useState, useEffect } from 'react';\nimport { graphql } from 'gatsby';\nimport Layout from 'components/Layout';\nimport Link from 'components/base/Link';\nimport CollectionIndex from 'components/modules/CollectionIndex';\nimport IconSearch from 'svg/icn-search';\nimport IconClose from 'svg/icn-close';\n\nconst Indexed = ({ data }) => {\n const taxa = data.allMalTaxa.nodes.sort((a, b) => {\n return b.childTaxa.length - a.childTaxa.length;\n });\n const items = data.allMalItem.nodes;\n const [closeNavTo, setCloseNavTo] = useState('/collection');\n const [fromTaxon, setFromTaxon] = useState(false);\n useEffect(() => {\n setCloseNavTo(\n window.history.state && window.history.state.fromTaxon\n ? `/${window.history.state.fromTaxon}`\n : '/collection'\n );\n setFromTaxon(\n window.history.state && window.history.state.fromTaxon\n ? window.history.state.fromTaxon\n : false\n );\n }, []);\n return (\n \n \n \n \n \n \n \n \n \n Index \n \n \n \n {/* The index */}\n \n \n );\n};\n\nexport default Indexed;\n\n// Should return one item (with images) for each mal taxa\n// We used to filter this based off of taxas that had no parent\n// (so, root taxa) but latest API changes 4/27/2020\n// have made it so that all parent ids are now null\nexport const query = graphql`\n query indexedTaxaAndItems {\n allMalTaxa {\n nodes {\n name\n slug\n childTaxa {\n id\n name\n slug\n }\n }\n }\n allMalItem {\n nodes {\n _360_images {\n url\n }\n images {\n url\n }\n values {\n name\n data\n }\n name\n slug\n accessionNumber\n }\n }\n }\n`;\n","var isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","import React from 'react';\n\nconst IconClose = ({ className = '' }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default IconClose;\n"],"sourceRoot":""}