diff --git a/README.md b/README.md index 9d88a3a..cd8b665 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,7 @@ You can override the built-in option renderer by specifying your own `optionRend | labelKey | `string` | Attribute of option that contains the display text. | | option | `Object` | The option to be rendered. | | options | `Array` | Array of options (objects) contained in the select menu. | +| renderMenuContainer | `Function(menu)` | Allows you to add additional content around menu. Receives menu as argument. Use `{menu}` render menu. | | selectValue | `Function` | Callback to update the selected values; for example, you may want to call this function on click. | | style | `Object` | Styles that must be passed to the rendered option. These styles are specifying the position of each option (required for correct option displaying in the dropdown). | valueArray | `Array` | Array of the currently-selected options. Use this property to determine if your rendered option should be highlighted or styled differently. | diff --git a/source/VirtualizedSelect/VirtualizedSelect.example.css b/source/VirtualizedSelect/VirtualizedSelect.example.css index 5a76311..bd423c0 100644 --- a/source/VirtualizedSelect/VirtualizedSelect.example.css +++ b/source/VirtualizedSelect/VirtualizedSelect.example.css @@ -72,3 +72,36 @@ text-decoration: underline; cursor: pointer; } + +.btnGroup { + display: flex; + flex-direction: row; + +} + +.btnGroup button { + flex: 1 1 0; + height: 30px; + + background: #e0e0e0e0; + + appearance: none; + border-radius: 0; + border-top: none; + border-right: none; + border-bottom: 1px solid #ddd; + border-left: 1px solid #ddd; + +} + +.btnGroup button:hover { + background: #dcdcdc; +} + +.btnGroup button:active { + background: #cdcdcdcd; +} + +.btnGroup button:first-child { + border-left: none; +} diff --git a/source/VirtualizedSelect/VirtualizedSelect.example.js b/source/VirtualizedSelect/VirtualizedSelect.example.js index d70d734..7c93875 100644 --- a/source/VirtualizedSelect/VirtualizedSelect.example.js +++ b/source/VirtualizedSelect/VirtualizedSelect.example.js @@ -9,8 +9,9 @@ export default class VirtualizedSelectExample extends Component { static propTypes = { cityData: PropTypes.array.isRequired, countryData: PropTypes.array.isRequired, - nameData: PropTypes.array.isRequired - }; + nameData: PropTypes.array.isRequired, + animalData: PropTypes.array.isRequired + } constructor (props) { super(props) @@ -29,16 +30,28 @@ export default class VirtualizedSelectExample extends Component { multi: false, searchable: true, selectedCreatable: null, - selectedCity: null + selectedCity: null, + selectedAnimal: null } this._loadGithubUsers = this._loadGithubUsers.bind(this) } render () { - const { cityData, countryData, nameData } = this.props - const { clearable, creatableOptions, disabled, githubUsers, multi, searchable, selectedCity, selectedCountry, selectedCreatable, selectedGithubUser, selectedName } = this.state - + const { cityData, countryData, nameData, animalData } = this.props + const { clearable, creatableOptions, disabled, githubUsers, multi, searchable, selectedCity, selectedCountry, selectedCreatable, selectedGithubUser, selectedName, selectedAnimal } = this.state + const menuContainer = (menu) => { + const selectAll = () => this.setState({ selectedAnimal: animalData }) + const clearAll = () => this.setState({ selectedAnimal: [] }) + return ( +
+
+ +
+ {menu} +
+ ) + } return (

@@ -196,6 +209,28 @@ export default class VirtualizedSelectExample extends Component { value={selectedCreatable} valueKey='value' /> + +

+ Decorated menu +

+ +
+ Decorates menu with select and deselect all options +
+ + { + console.log(selectedAnimal) + this.setState({ selectedAnimal }) + }} + options={animalData} + renderMenuContainer={menuContainer} + searchable + value={selectedAnimal} + valueKey='name' + />
) } diff --git a/source/VirtualizedSelect/VirtualizedSelect.js b/source/VirtualizedSelect/VirtualizedSelect.js index 957e940..63a302d 100644 --- a/source/VirtualizedSelect/VirtualizedSelect.js +++ b/source/VirtualizedSelect/VirtualizedSelect.js @@ -15,6 +15,7 @@ export default class VirtualizedSelect extends Component { maxHeight: PropTypes.number, optionHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]), optionRenderer: PropTypes.func, + renderMenuContainer: PropTypes.func, selectComponent: PropTypes.func }; @@ -62,7 +63,7 @@ export default class VirtualizedSelect extends Component { // See https://github.com/JedWatson/react-select/#effeciently-rendering-large-lists-with-windowing _renderMenu ({ focusedOption, focusOption, labelKey, onSelect, options, selectValue, valueArray, valueKey }) { - const { listProps, optionRenderer } = this.props + const { listProps, optionRenderer, renderMenuContainer } = this.props const focusedOptionIndex = options.indexOf(focusedOption) const height = this._calculateListHeight({ options }) const innerRowRenderer = optionRenderer || this._optionRenderer @@ -93,7 +94,7 @@ export default class VirtualizedSelect extends Component { }) } - return ( + const menu = ( {({ width }) => ( ) + return renderMenuContainer ? renderMenuContainer(menu) : menu } _calculateListHeight ({ options }) { diff --git a/source/demo/Application.js b/source/demo/Application.js index 4c9b831..e54a4c7 100644 --- a/source/demo/Application.js +++ b/source/demo/Application.js @@ -7,6 +7,7 @@ import VirtualizedSelectExample from '../VirtualizedSelect/VirtualizedSelect.exa import cityData from './data/cities.js' import countryData from './data/countries.js' import nameData from './data/names.js' +import animalData from './data/animals' import styles from './Application.css' import '../../styles.css' @@ -34,6 +35,7 @@ class Application extends Component { cityData={cityData} countryData={countryData} nameData={nameData} + animalData={animalData} /> diff --git a/source/demo/data/animals.js b/source/demo/data/animals.js new file mode 100644 index 0000000..98c9797 --- /dev/null +++ b/source/demo/data/animals.js @@ -0,0 +1,739 @@ +export default [ + {name: 'Asian foreset tortoise'}, + {name: 'Eagle, bateleur'}, + {name: 'Dragon, frilled'}, + {name: 'Cat, toddy'}, + {name: 'White-headed vulture'}, + {name: 'Mocking cliffchat'}, + {name: 'Savanna fox'}, + {name: 'American beaver'}, + {name: 'Rabbit, eastern cottontail'}, + {name: 'Shelduck, european'}, + {name: 'Laughing kookaburra'}, + {name: 'Gull, pacific'}, + {name: 'Crow, american'}, + {name: 'Cockatoo, slender-billed'}, + {name: 'Grouse, sage'}, + {name: 'Possum, common brushtail'}, + {name: 'Cheetah'}, + {name: 'Macaw, blue and yellow'}, + {name: 'Robin, kalahari scrub'}, + {name: 'Phalarope, red-necked'}, + {name: 'Lesser double-collared sunbird'}, + {name: 'Indian tree pie'}, + {name: 'Ox, musk'}, + {name: 'Deer, red'}, + {name: 'Kingfisher, pied'}, + {name: 'Lapwing, southern'}, + {name: 'Mountain goat'}, + {name: 'Shrike, common boubou'}, + {name: 'Kingfisher, white-throated'}, + {name: 'Jaguarundi'}, + {name: 'Magpie, australian'}, + {name: 'Western palm tanager (unidentified)'}, + {name: 'Lorikeet, scaly-breasted'}, + {name: 'Hornbill, yellow-billed'}, + {name: 'Stork, white-necked'}, + {name: 'Roseate cockatoo'}, + {name: 'Brown brocket'}, + {name: 'Vulture, lappet-faced'}, + {name: 'Blacksmith plover'}, + {name: 'Otter, north american river'}, + {name: 'Bat, little brown'}, + {name: 'Roller, lilac-breasted'}, + {name: 'Giant armadillo'}, + {name: 'Savannah deer'}, + {name: 'Wallaby, euro'}, + {name: 'Margay'}, + {name: 'Squirrel, eastern fox'}, + {name: 'Mouse, four-striped grass'}, + {name: 'Dragon, ornate rock'}, + {name: 'Pintail, bahama'}, + {name: 'Sloth, hoffman\'s'}, + {name: 'Mexican wolf'}, + {name: 'Rhesus monkey'}, + {name: 'White-eye, pale'}, + {name: 'South American meadowlark (unidentified)'}, + {name: 'Python, carpet'}, + {name: 'Royal tern'}, + {name: 'Wallaby, tammar'}, + {name: 'American buffalo'}, + {name: 'Adouri (unidentified)'}, + {name: 'Defassa waterbuck'}, + {name: 'Hornbill, red-billed'}, + {name: 'Deer, black-tailed'}, + {name: 'Dove, emerald-spotted wood'}, + {name: 'Bandicoot, long-nosed'}, + {name: 'Trumpeter, dark-winged'}, + {name: 'Common shelduck'}, + {name: 'Lizard, goanna'}, + {name: 'Lizard, desert spiny'}, + {name: 'Flicker, campo'}, + {name: 'Pie, rufous tree'}, + {name: 'Sungazer, yellow-brown'}, + {name: 'Rat, desert kangaroo'}, + {name: 'Snowy egret'}, + {name: 'Silver gull'}, + {name: 'Nelson ground squirrel'}, + {name: 'Gerbil (unidentified)'}, + {name: 'Crab (unidentified)'}, + {name: 'Antelope ground squirrel'}, + {name: 'Sage hen'}, + {name: 'Hyena, spotted'}, + {name: 'Badger, european'}, + {name: 'Oriental white-backed vulture'}, + {name: 'Frog (unidentified)'}, + {name: 'Australian magpie'}, + {name: 'Red-headed woodpecker'}, + {name: 'Indian star tortoise'}, + {name: 'Armadillo, common long-nosed'}, + {name: 'Cat, ringtail'}, + {name: 'Pelican, great white'}, + {name: 'Monitor, white-throated'}, + {name: 'Horned rattlesnake'}, + {name: 'American woodcock'}, + {name: 'Crowned hawk-eagle'}, + {name: 'Trumpeter, green-winged'}, + {name: 'Common zorro'}, + {name: 'Heron, goliath'}, + {name: 'Seal, southern elephant'}, + {name: 'Warthog'}, + {name: 'Spotted-tailed quoll'}, + {name: 'Small-clawed otter'}, + {name: 'Crowned eagle'}, + {name: 'Godwit, hudsonian'}, + {name: 'Squirrel, palm'}, + {name: 'Kiskadee, great'}, + {name: 'Beaver, north american'}, + {name: 'Buffalo, wild water'}, + {name: 'Roadrunner, greater'}, + {name: 'Egyptian vulture'}, + {name: 'Wild turkey'}, + {name: 'Three-banded plover'}, + {name: 'Southern sea lion'}, + {name: 'Wagtail, african pied'}, + {name: 'Indian mynah'}, + {name: 'Hedgehog, south african'}, + {name: 'Great horned owl'}, + {name: 'Rhea, greater'}, + {name: 'Deer, roe'}, + {name: 'Bushpig'}, + {name: 'Antelope, sable'}, + {name: 'Rattlesnake, dusky'}, + {name: 'Squirrel, smith\'s bush'}, + {name: 'Insect, stick'}, + {name: 'Crake, african black'}, + {name: 'Crocodile, nile'}, + {name: 'Uinta ground squirrel'}, + {name: 'Cottonmouth'}, + {name: 'Marshbird, brown and yellow'}, + {name: 'Opossum, american virginia'}, + {name: 'Snake, eastern indigo'}, + {name: 'Southern right whale'}, + {name: 'Blackbird, red-winged'}, + {name: 'Puma, south american'}, + {name: 'Bustard, stanley'}, + {name: 'Common waterbuck'}, + {name: 'African wild dog'}, + {name: 'Stork, painted'}, + {name: 'Red-breasted cockatoo'}, + {name: 'Canadian tiger swallowtail butterfly'}, + {name: 'American black bear'}, + {name: 'Asian water buffalo'}, + {name: 'Sage grouse'}, + {name: 'Nighthawk, common'}, + {name: 'Robin, white-throated'}, + {name: 'Galapagos albatross'}, + {name: 'Lemur, brown'}, + {name: 'Chital'}, + {name: 'Prehensile-tailed porcupine'}, + {name: 'Lion, steller sea'}, + {name: 'Starling, superb'}, + {name: 'Snowy sheathbill'}, + {name: 'Common boubou shrike'}, + {name: 'Savannah deer (unidentified)'}, + {name: 'Neotropic cormorant'}, + {name: 'White-browed sparrow weaver'}, + {name: 'Heron, green'}, + {name: 'Eagle owl (unidentified)'}, + {name: 'Cat, long-tailed spotted'}, + {name: 'Lion, asian'}, + {name: 'Frilled dragon'}, + {name: 'Desert kangaroo rat'}, + {name: 'Crab-eating raccoon'}, + {name: 'Giant anteater'}, + {name: 'Squirrel, red'}, + {name: 'Cardinal, red-capped'}, + {name: 'Scaly-breasted lorikeet'}, + {name: 'Blue-tongued lizard'}, + {name: 'Yellow-bellied marmot'}, + {name: 'Common zebra'}, + {name: 'Gray heron'}, + {name: 'Kangaroo, eastern grey'}, + {name: 'Sheep, american bighorn'}, + {name: 'Turtle, eastern box'}, + {name: 'Catfish, blue'}, + {name: 'Tinamou, elegant crested'}, + {name: 'Field flicker'}, + {name: 'Fork-tailed drongo'}, + {name: 'Pied butcher bird'}, + {name: 'Cape cobra'}, + {name: 'Kangaroo, red'}, + {name: 'Sheathbill, snowy'}, + {name: 'Heron, green-backed'}, + {name: 'Steller sea lion'}, + {name: 'Sarus crane'}, + {name: 'Crane, blue'}, + {name: 'Two-banded monitor'}, + {name: 'American marten'}, + {name: 'European shelduck'}, + {name: 'Goose, cape barren'}, + {name: 'Olive baboon'}, + {name: 'Radiated tortoise'}, + {name: 'Beisa oryx'}, + {name: 'Indian giant squirrel'}, + {name: 'Racer, american'}, + {name: 'Kudu, greater'}, + {name: 'Cobra, egyptian'}, + {name: 'Phascogale, red-tailed'}, + {name: 'Skua, long-tailed'}, + {name: 'Blue racer'}, + {name: 'Wallaby, dama'}, + {name: 'Gorilla, western lowland'}, + {name: 'Gnu, brindled'}, + {name: 'Whip-tailed wallaby'}, + {name: 'Plover, blacksmith'}, + {name: 'Honey badger'}, + {name: 'Sloth, two-toed tree'}, + {name: 'Owl, snowy'}, + {name: 'Jackal, black-backed'}, + {name: 'Tyrant flycatcher'}, + {name: 'Capuchin, brown'}, + {name: 'Eurasian badger'}, + {name: 'Lark, horned'}, + {name: 'Grant\'s gazelle'}, + {name: 'Bahama pintail'}, + {name: 'Snake, carpet'}, + {name: 'Black-fronted bulbul'}, + {name: 'Black and white colobus'}, + {name: 'Musk ox'}, + {name: 'Antelope, roan'}, + {name: 'Boa, emerald green tree'}, + {name: 'Penguin, magellanic'}, + {name: 'Jackal, golden'}, + {name: 'Phalarope, red'}, + {name: 'Quoll, spotted-tailed'}, + {name: 'River wallaby'}, + {name: 'Black-eyed bulbul'}, + {name: 'Marmot, yellow-bellied'}, + {name: 'Black-capped chickadee'}, + {name: 'Egret, great'}, + {name: 'Sheep, stone'}, + {name: 'Squirrel glider'}, + {name: 'Southern elephant seal'}, + {name: 'Little blue penguin'}, + {name: 'Rhesus macaque'}, + {name: 'Bee-eater (unidentified)'}, + {name: 'Southern ground hornbill'}, + {name: 'Skimmer, four-spotted'}, + {name: 'Long-billed cockatoo'}, + {name: 'Cormorant, flightless'}, + {name: 'Tokay gecko'}, + {name: 'Red-tailed cockatoo'}, + {name: 'Southern screamer'}, + {name: 'Otter, brazilian'}, + {name: 'Aardwolf'}, + {name: 'White-winged tern'}, + {name: 'Egyptian goose'}, + {name: 'Peacock, blue'}, + {name: 'Booby, blue-footed'}, + {name: 'Orca'}, + {name: 'Osprey'}, + {name: 'Great white pelican'}, + {name: 'Wambenger, red-tailed'}, + {name: 'Marabou stork'}, + {name: 'Pademelon, red-legged'}, + {name: 'Francolin, swainson\'s'}, + {name: 'Urial'}, + {name: 'Langur, common'}, + {name: 'Fox, arctic'}, + {name: 'Gray duiker'}, + {name: 'Lesser mouse lemur'}, + {name: 'Cuis'}, + {name: 'Malleefowl'}, + {name: 'Galapagos hawk'}, + {name: 'Seal, northern elephant'}, + {name: 'Greylag goose'}, + {name: 'Otter, canadian river'}, + {name: 'Gerenuk'}, + {name: 'Black-winged stilt'}, + {name: 'Dragon, western bearded'}, + {name: 'Sacred ibis'}, + {name: 'Coot, red-knobbed'}, + {name: 'Eastern diamondback rattlesnake'}, + {name: 'Common dolphin'}, + {name: 'Blue-faced booby'}, + {name: 'Boar, wild'}, + {name: 'Cockatoo, sulfur-crested'}, + {name: 'Fisher'}, + {name: 'White-bellied sea eagle'}, + {name: 'Seal, common'}, + {name: 'Asian elephant'}, + {name: 'Crested barbet'}, + {name: 'Grey fox'}, + {name: 'Seal, harbor'}, + {name: 'Common raccoon'}, + {name: 'Weaver, white-browed sparrow'}, + {name: 'Cockatoo, red-breasted'}, + {name: 'Common mynah'}, + {name: 'Yellow-billed hornbill'}, + {name: 'Eagle, african fish'}, + {name: 'Gazelle, grant\'s'}, + {name: 'Cougar'}, + {name: 'Chimpanzee'}, + {name: 'Magellanic penguin'}, + {name: 'Red-winged hawk (unidentified)'}, + {name: 'Curlew, black'}, + {name: 'Cockatoo, red-tailed'}, + {name: 'Weaver, lesser masked'}, + {name: 'Fox, north american red'}, + {name: 'Azara\'s zorro'}, + {name: 'Skunk, western spotted'}, + {name: 'Ring-tailed possum'}, + {name: 'Weeper capuchin'}, + {name: 'Crane, wattled'}, + {name: 'Rhinoceros, square-lipped'}, + {name: 'Magpie, black-backed'}, + {name: 'Hartebeest, red'}, + {name: 'Eurasian red squirrel'}, + {name: 'Galapagos sea lion'}, + {name: 'Bison, american'}, + {name: 'Cape wild cat'}, + {name: 'Badger, eurasian'}, + {name: 'Common rhea'}, + {name: 'Cape raven'}, + {name: 'Arctic fox'}, + {name: 'Seal, northern fur'}, + {name: 'Toddy cat'}, + {name: 'Coyote'}, + {name: 'Monster, gila'}, + {name: 'Mississippi alligator'}, + {name: 'Peregrine falcon'}, + {name: 'Rhea, gray'}, + {name: 'Penguin, galapagos'}, + {name: 'Starling, red-shouldered glossy'}, + {name: 'Striated heron'}, + {name: 'Pronghorn'}, + {name: 'Gecko, tokay'}, + {name: 'Dik, kirk\'s dik'}, + {name: 'Magnificent frigate bird'}, + {name: 'Crimson-breasted shrike'}, + {name: 'Oryx, beisa'}, + {name: 'Hippopotamus'}, + {name: 'Tenrec, tailless'}, + {name: 'Chipmunk, least'}, + {name: 'Oribi'}, + {name: 'Hare, arctic'}, + {name: 'Dolphin, striped'}, + {name: 'Roseat flamingo'}, + {name: 'Sally lightfoot crab'}, + {name: 'Clark\'s nutcracker'}, + {name: 'Lourie, grey'}, + {name: 'Collared lizard'}, + {name: 'Pied kingfisher'}, + {name: 'Black-throated cardinal'}, + {name: 'Penguin, fairy'}, + {name: 'Native cat'}, + {name: 'Cat, tiger'}, + {name: 'Iguana, marine'}, + {name: 'Springbok'}, + {name: 'Monkey, red howler'}, + {name: 'Giraffe'}, + {name: 'Gecko (unidentified)'}, + {name: 'Zorro, common'}, + {name: 'Chuckwalla'}, + {name: 'Sea birds (unidentified)'}, + {name: 'Crow, house'}, + {name: 'Monkey, rhesus'}, + {name: 'Carpet python'}, + {name: 'Common ringtail'}, + {name: 'Chilean flamingo'}, + {name: 'Bleu, blue-breasted cordon'}, + {name: 'Squirrel, richardson\'s ground'}, + {name: 'Goose, egyptian'}, + {name: 'Beaver, eurasian'}, + {name: 'Banded mongoose'}, + {name: 'Ring-tailed gecko'}, + {name: 'Bald eagle'}, + {name: 'Drongo, fork-tailed'}, + {name: 'Waxbill, blue'}, + {name: 'Bird, magnificent frigate'}, + {name: 'African lynx'}, + {name: 'Swamp deer'}, + {name: 'Striped skunk'}, + {name: 'Squirrel, golden-mantled ground'}, + {name: 'Tortoise, desert'}, + {name: 'Monkey, black spider'}, + {name: 'Buffalo, american'}, + {name: 'Starling, cape'}, + {name: 'Yellow baboon'}, + {name: 'Great cormorant'}, + {name: 'Small-toothed palm civet'}, + {name: 'Collared peccary'}, + {name: 'Dove, laughing'}, + {name: 'Burmese black mountain tortoise'}, + {name: 'Yellow mongoose'}, + {name: 'Baboon, chacma'}, + {name: 'South American puma'}, + {name: 'Frilled lizard'}, + {name: 'Dragon, netted rock'}, + {name: 'Green-backed heron'}, + {name: 'Phalarope, grey'}, + {name: 'Anaconda (unidentified)'}, + {name: 'Heron, black-crowned night'}, + {name: 'Bare-faced go away bird'}, + {name: 'Gecko, barking'}, + {name: 'Giant heron'}, + {name: 'White-tailed deer'}, + {name: 'Sparrow, rufous-collared'}, + {name: 'Dragonfly, russian'}, + {name: 'Elephant, asian'}, + {name: 'Red sheep'}, + {name: 'Ibis, sacred'}, + {name: 'Malabar squirrel'}, + {name: 'Long-crested hawk eagle'}, + {name: 'Glider, feathertail'}, + {name: 'Western bearded dragon'}, + {name: 'Lemur, ring-tailed'}, + {name: 'White-faced whistling duck'}, + {name: 'Brazilian tapir'}, + {name: 'Lemming, arctic'}, + {name: 'Bobcat'}, + {name: 'Turtle (unidentified)'}, + {name: 'Pelican, brown'}, + {name: 'Denham\'s bustard'}, + {name: 'Paradoxure'}, + {name: 'Spider, wolf'}, + {name: 'Armadillo, seven-banded'}, + {name: 'Cormorant (unidentified)'}, + {name: 'Slender-billed cockatoo'}, + {name: 'Tortoise, galapagos'}, + {name: 'Ringtail cat'}, + {name: 'Serval'}, + {name: 'Black swan'}, + {name: 'Wallaby, whip-tailed'}, + {name: 'Common brushtail possum'}, + {name: 'Guanaco'}, + {name: 'White-winged dove'}, + {name: 'Saddle-billed stork'}, + {name: 'Groundhog'}, + {name: 'Macaw, green-winged'}, + {name: 'Coatimundi, white-nosed'}, + {name: 'Grizzly bear'}, + {name: 'Hyena, brown'}, + {name: 'Four-spotted skimmer'}, + {name: 'Scarlet macaw'}, + {name: 'Burchell\'s gonolek'}, + {name: 'Gull, silver'}, + {name: 'Boa, cook\'s tree'}, + {name: 'American racer'}, + {name: 'Shrew, mandras tree'}, + {name: 'Fairy penguin'}, + {name: 'Monkey, bleeding heart'}, + {name: 'Giant girdled lizard'}, + {name: 'Mongoose, eastern dwarf'}, + {name: 'Black-collared barbet'}, + {name: 'Barbet, black-collared'}, + {name: 'Turaco, violet-crested'}, + {name: 'Openbill stork'}, + {name: 'Tortoise, burmese black mountain'}, + {name: 'Sandhill crane'}, + {name: 'Black-faced kangaroo'}, + {name: 'Shrike, southern white-crowned'}, + {name: 'Tree porcupine'}, + {name: 'Snow goose'}, + {name: 'Spotted wood sandpiper'}, + {name: 'Worm snake (unidentified)'}, + {name: 'Rat, arboral spiny'}, + {name: 'Woodcock, american'}, + {name: 'Hottentot teal'}, + {name: 'Snake, green vine'}, + {name: 'Possum, ring-tailed'}, + {name: 'Sulfur-crested cockatoo'}, + {name: 'Ibex'}, + {name: 'Pale white-eye'}, + {name: 'Dove, little brown'}, + {name: 'Eland, common'}, + {name: 'Turkey, australian brush'}, + {name: 'Tern, royal'}, + {name: 'Shrike, crimson-breasted'}, + {name: 'Cape starling'}, + {name: 'Red kangaroo'}, + {name: 'Ostrich'}, + {name: 'Lion, mountain'}, + {name: 'Snake (unidentified)'}, + {name: 'Rock dove'}, + {name: 'Feral rock pigeon'}, + {name: 'Pintail, white-cheeked'}, + {name: 'Tailless tenrec'}, + {name: 'Common duiker'}, + {name: 'Black vulture'}, + {name: 'Grenadier, purple'}, + {name: 'Red-winged blackbird'}, + {name: 'Gazer, sun'}, + {name: 'Pelican, australian'}, + {name: 'Mongoose, small indian'}, + {name: 'Crab-eating fox'}, + {name: 'Porcupine, tree'}, + {name: 'Caiman, spectacled'}, + {name: 'Heron, striated'}, + {name: 'Buttermilk snake'}, + {name: 'Yellow-throated sandgrouse'}, + {name: 'Vulture, king'}, + {name: 'Thomson\'s gazelle'}, + {name: 'Leadbeateri\'s ground hornbill'}, + {name: 'Glossy ibis'}, + {name: 'Boa, columbian rainbow'}, + {name: 'African ground squirrel (unidentified)'}, + {name: 'Red howler monkey'}, + {name: 'Zorilla'}, + {name: 'Caracara (unidentified)'}, + {name: 'Yellow-rumped siskin'}, + {name: 'Long-nosed bandicoot'}, + {name: 'Savanna baboon'}, + {name: 'Little cormorant'}, + {name: 'Waxbill, black-cheeked'}, + {name: 'Blue wildebeest'}, + {name: 'Iguana, land'}, + {name: 'Agile wallaby'}, + {name: 'Deer, mule'}, + {name: 'Cormorant, large'}, + {name: 'Scottish highland cow'}, + {name: 'Yellow-necked spurfowl'}, + {name: 'Barking gecko'}, + {name: 'Rhinoceros, black'}, + {name: 'African elephant'}, + {name: 'Large-eared bushbaby'}, + {name: 'Mourning collared dove'}, + {name: 'Mandras tree shrew'}, + {name: 'Barrows goldeneye'}, + {name: 'Leopard'}, + {name: 'Pheasant, ring-necked'}, + {name: 'Violet-eared waxbill'}, + {name: 'Woodpecker, downy'}, + {name: 'Legaan, water'}, + {name: 'Squirrel, malabar'}, + {name: 'American badger'}, + {name: 'Sockeye salmon'}, + {name: 'Steenbuck'}, + {name: 'Wolf, timber'}, + {name: 'Langur, hanuman'}, + {name: 'Southern brown bandicoot'}, + {name: 'Lily trotter'}, + {name: 'Salmon pink bird eater tarantula'}, + {name: 'Greater roadrunner'}, + {name: 'Australian pelican'}, + {name: 'Rhea, common'}, + {name: 'Superb starling'}, + {name: 'Common grenadier'}, + {name: 'Waterbuck, common'}, + {name: 'Teal, hottentot'}, + {name: 'Asiatic jackal'}, + {name: 'Raccoon dog'}, + {name: 'Galapagos penguin'}, + {name: 'Screamer, southern'}, + {name: 'Eagle, golden'}, + {name: 'Lion, steller\'s sea'}, + {name: 'Grenadier, common'}, + {name: 'Black-necked stork'}, + {name: 'Painted stork'}, + {name: 'Cockatoo, roseate'}, + {name: 'Burmese brown mountain tortoise'}, + {name: 'Vulture, oriental white-backed'}, + {name: 'White-browed owl'}, + {name: 'Bottle-nose dolphin'}, + {name: 'Squirrel, european red'}, + {name: 'Tarantula'}, + {name: 'Columbian rainbow boa'}, + {name: 'Cardinal, black-throated'}, + {name: 'Weaver, red-billed buffalo'}, + {name: 'Cape Barren goose'}, + {name: 'Duck, mountain'}, + {name: 'Blue-tongued skink'}, + {name: 'Tern, white-winged'}, + {name: 'Red phalarope'}, + {name: 'Tropical buckeye butterfly'}, + {name: 'Puma'}, + {name: 'Killer whale'}, + {name: 'Parakeet, rose-ringed'}, + {name: 'Northern fur seal'}, + {name: 'Duck, white-faced whistling'}, + {name: 'Striped dolphin'}, + {name: 'Bleu, red-cheeked cordon'}, + {name: 'Little grebe'}, + {name: 'Lemur, lesser mouse'}, + {name: 'Chacma baboon'}, + {name: 'Australian spiny anteater'}, + {name: 'Macaque, japanese'}, + {name: 'White-rumped vulture'}, + {name: 'Goose, cereopsis'}, + {name: 'Woylie'}, + {name: 'Blue peacock'}, + {name: 'Stork, white'}, + {name: 'Lion, african'}, + {name: 'Dolphin, bottle-nose'}, + {name: 'Large cormorant'}, + {name: 'Asian water dragon'}, + {name: 'Goose, canada'}, + {name: 'Butterfly, canadian tiger swallowtail'}, + {name: 'Marten, american'}, + {name: 'Swan, black'}, + {name: 'Bonnet macaque'}, + {name: 'Bat, asian false vampire'}, + {name: 'Crested bunting'}, + {name: 'Campo flicker'}, + {name: 'Hummingbird (unidentified)'}, + {name: 'Dove, rock'}, + {name: 'Blue and yellow macaw'}, + {name: 'Common nighthawk'}, + {name: 'Bateleur eagle'}, + {name: 'Southern tamandua'}, + {name: 'Ant (unidentified)'}, + {name: 'Vulture, white-headed'}, + {name: 'Goanna lizard'}, + {name: 'Shelduck, common'}, + {name: 'Skink, blue-tongued'}, + {name: 'Palm squirrel'}, + {name: 'Common green iguana'}, + {name: 'Marine iguana'}, + {name: 'Sambar'}, + {name: 'Cliffchat, mocking'}, + {name: 'Nyala'}, + {name: 'Common langur'}, + {name: 'Ring-necked pheasant'}, + {name: 'Turtle, snake-necked'}, + {name: 'Coqui francolin'}, + {name: 'Squirrel, eurasian red'}, + {name: 'Red brocket'}, + {name: 'Burrowing owl'}, + {name: 'Masked booby'}, + {name: 'Stanley crane'}, + {name: 'Squirrel, african bush'}, + {name: 'Stork, saddle-billed'}, + {name: 'White-cheeked pintail'}, + {name: 'Viper, egyptian'}, + {name: 'Gull, swallow-tail'}, + {name: 'Lion, australian sea'}, + {name: 'Kinkajou'}, + {name: 'Starfish, crown of thorns'}, + {name: 'Sloth, pale-throated three-toed'}, + {name: 'Cook\'s tree boa'}, + {name: 'Argalis'}, + {name: 'American crow'}, + {name: 'Gaur'}, + {name: 'Peccary, collared'}, + {name: 'Roe deer'}, + {name: 'Russian dragonfly'}, + {name: 'Arctic lemming'}, + {name: 'King vulture'}, + {name: 'European badger'}, + {name: 'Bustard, denham\'s'}, + {name: 'Lechwe, kafue flats'}, + {name: 'African buffalo'}, + {name: 'Deer, swamp'}, + {name: 'Wild boar'}, + {name: 'African porcupine'}, + {name: 'Toucan, white-throated'}, + {name: 'Swainson\'s francolin'}, + {name: 'Tsessebe'}, + {name: 'Macaque, rhesus'}, + {name: 'Cormorant, neotropic'}, + {name: 'Colobus, magistrate black'}, + {name: 'Caracara, yellow-headed'}, + {name: 'Canadian river otter'}, + {name: 'Grison'}, + {name: 'Asiatic wild ass'}, + {name: 'Vulture, griffon'}, + {name: 'Wolf, common'}, + {name: 'Arctic hare'}, + {name: 'Southern boubou'}, + {name: 'Skua, great'}, + {name: 'Pine siskin'}, + {name: 'Eagle, crowned'}, + {name: 'Yellow-brown sungazer'}, + {name: 'Jackrabbit, white-tailed'}, + {name: 'Chickadee, black-capped'}, + {name: 'Flamingo, chilean'}, + {name: 'Ring-tailed coatimundi'}, + {name: 'Small Indian mongoose'}, + {name: 'Sugar glider'}, + {name: 'African darter'}, + {name: 'Brown hyena'}, + {name: 'Cockatoo, long-billed'}, + {name: 'Cat, native'}, + {name: 'Duiker, gray'}, + {name: 'Screamer, crested'}, + {name: 'Caribou'}, + {name: 'Snake-necked turtle'}, + {name: 'Civet (unidentified)'}, + {name: 'Gecko, ring-tailed'}, + {name: 'Grouse, greater sage'}, + {name: 'Monkey, vervet'}, + {name: 'Nubian bee-eater'}, + {name: 'Rufous tree pie'}, + {name: 'Lynx, african'}, + {name: 'Lizard, blue-tongued'}, + {name: 'Lizard, collared'}, + {name: 'King cormorant'}, + {name: 'Macaque, pig-tailed'}, + {name: 'Hanuman langur'}, + {name: 'Wildebeest, blue'}, + {name: 'Mudskipper (unidentified)'}, + {name: 'Red-billed tropic bird'}, + {name: 'Southern white-crowned shrike'}, + {name: 'Butterfly (unidentified)'}, + {name: 'Indian red admiral'}, + {name: 'Gonolek, burchell\'s'}, + {name: 'Green vine snake'}, + {name: 'Red-shouldered glossy starling'}, + {name: 'Common wolf'}, + {name: 'Rattlesnake, horned'}, + {name: 'Pine snake (unidentified)'}, + {name: 'Eurasian hoopoe'}, + {name: 'Kangaroo, brush-tailed rat'}, + {name: 'Black-crowned crane'}, + {name: 'Lizard, mexican beaded'}, + {name: 'White stork'}, + {name: 'African fish eagle'}, + {name: 'Flightless cormorant'}, + {name: 'Beaver, european'}, + {name: 'Squirrel, indian giant'}, + {name: 'Tortoise, radiated'}, + {name: 'Chestnut weaver'}, + {name: 'Bat, madagascar fruit'}, + {name: 'Jabiru stork'}, + {name: 'Eastern white pelican'}, + {name: 'Cat, african wild'}, + {name: 'Siskin, yellow-rumped'}, + {name: 'Deer, barasingha'}, + {name: 'Horned puffin'}, + {name: 'Javanese cormorant'}, + {name: 'Corella, long-billed'}, + {name: 'Fox, cape'}, + {name: 'Gecko, bent-toed'}, + {name: 'Fox, savanna'}, + {name: 'Otter, oriental short-clawed'}, + {name: 'Squirrel, pine'}, + {name: 'Manatee'}, + {name: 'Bear, american black'}, + {name: 'Ground legaan'}, + {name: 'Coke\'s hartebeest'}, + {name: 'Zebra, plains'}, + {name: 'Praying mantis (unidentified)'}, + {name: 'Colobus, black and white'}, + {name: 'Elegant crested tinamou'}, + {name: 'Wombat, southern hairy-nosed'}, + {name: 'Black-tailed tree creeper'}, + {name: 'Bird, pied butcher'}, + {name: 'Quail, gambel\'s'} +]