UNPKG

react-select

Version:

A Select control built with and for ReactJS

919 lines (813 loc) 271 kB
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ /* eslint react/prop-types: 0 */ 'use strict'; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactDom = require('react-dom'); var _reactDom2 = _interopRequireDefault(_reactDom); var _reactSelect = require('react-select'); var _reactSelect2 = _interopRequireDefault(_reactSelect); var _componentsContributors = require('./components/Contributors'); var _componentsContributors2 = _interopRequireDefault(_componentsContributors); var _componentsGithubUsers = require('./components/GithubUsers'); var _componentsGithubUsers2 = _interopRequireDefault(_componentsGithubUsers); var _componentsCustomComponents = require('./components/CustomComponents'); var _componentsCustomComponents2 = _interopRequireDefault(_componentsCustomComponents); var _componentsCustomRender = require('./components/CustomRender'); var _componentsCustomRender2 = _interopRequireDefault(_componentsCustomRender); var _componentsMultiselect = require('./components/Multiselect'); var _componentsMultiselect2 = _interopRequireDefault(_componentsMultiselect); var _componentsNumericSelect = require('./components/NumericSelect'); var _componentsNumericSelect2 = _interopRequireDefault(_componentsNumericSelect); var _componentsVirtualized = require('./components/Virtualized'); var _componentsVirtualized2 = _interopRequireDefault(_componentsVirtualized); var _componentsStates = require('./components/States'); var _componentsStates2 = _interopRequireDefault(_componentsStates); _reactDom2['default'].render(_react2['default'].createElement( 'div', null, _react2['default'].createElement(_componentsStates2['default'], { label: 'States', searchable: true }), _react2['default'].createElement(_componentsMultiselect2['default'], { label: 'Multiselect' }), _react2['default'].createElement(_componentsVirtualized2['default'], { label: 'Virtualized' }), _react2['default'].createElement(_componentsContributors2['default'], { label: 'Contributors (Async)' }), _react2['default'].createElement(_componentsGithubUsers2['default'], { label: 'Github users (Async with fetch.js)' }), _react2['default'].createElement(_componentsNumericSelect2['default'], { label: 'Numeric Values' }), _react2['default'].createElement(_componentsCustomRender2['default'], { label: 'Custom Render Methods' }), _react2['default'].createElement(_componentsCustomComponents2['default'], { label: 'Custom Placeholder, Option and Value Components' }) ), document.getElementById('example')); /* <SelectedValuesField label="Option Creation (tags mode)" options={FLAVOURS} allowCreate hint="Enter a value that's NOT in the list, then hit return" /> */ },{"./components/Contributors":2,"./components/CustomComponents":3,"./components/CustomRender":4,"./components/GithubUsers":5,"./components/Multiselect":6,"./components/NumericSelect":7,"./components/States":8,"./components/Virtualized":9,"react":undefined,"react-dom":undefined,"react-select":undefined}],2:[function(require,module,exports){ 'use strict'; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactSelect = require('react-select'); var _reactSelect2 = _interopRequireDefault(_reactSelect); var CONTRIBUTORS = require('../data/contributors'); var MAX_CONTRIBUTORS = 6; var ASYNC_DELAY = 500; var Contributors = _react2['default'].createClass({ displayName: 'Contributors', propTypes: { label: _react2['default'].PropTypes.string }, getInitialState: function getInitialState() { return { multi: true, value: [CONTRIBUTORS[0]] }; }, onChange: function onChange(value) { this.setState({ value: value }); }, switchToMulti: function switchToMulti() { this.setState({ multi: true, value: [this.state.value] }); }, switchToSingle: function switchToSingle() { this.setState({ multi: false, value: this.state.value[0] }); }, getContributors: function getContributors(input, callback) { input = input.toLowerCase(); var options = CONTRIBUTORS.filter(function (i) { return i.github.substr(0, input.length) === input; }); var data = { options: options.slice(0, MAX_CONTRIBUTORS), complete: options.length <= MAX_CONTRIBUTORS }; setTimeout(function () { callback(null, data); }, ASYNC_DELAY); }, gotoContributor: function gotoContributor(value, event) { window.open('https://github.com/' + value.github); }, render: function render() { return _react2['default'].createElement( 'div', { className: 'section' }, _react2['default'].createElement( 'h3', { className: 'section-heading' }, this.props.label ), _react2['default'].createElement(_reactSelect2['default'].Async, { multi: this.state.multi, value: this.state.value, onChange: this.onChange, onValueClick: this.gotoContributor, valueKey: 'github', labelKey: 'name', loadOptions: this.getContributors }), _react2['default'].createElement( 'div', { className: 'checkbox-list' }, _react2['default'].createElement( 'label', { className: 'checkbox' }, _react2['default'].createElement('input', { type: 'radio', className: 'checkbox-control', checked: this.state.multi, onChange: this.switchToMulti }), _react2['default'].createElement( 'span', { className: 'checkbox-label' }, 'Multiselect' ) ), _react2['default'].createElement( 'label', { className: 'checkbox' }, _react2['default'].createElement('input', { type: 'radio', className: 'checkbox-control', checked: !this.state.multi, onChange: this.switchToSingle }), _react2['default'].createElement( 'span', { className: 'checkbox-label' }, 'Single Value' ) ) ), _react2['default'].createElement( 'div', { className: 'hint' }, 'This example implements custom label and value properties, async options and opens the github profiles in a new window when values are clicked' ) ); } }); module.exports = Contributors; },{"../data/contributors":11,"react":undefined,"react-select":undefined}],3:[function(require,module,exports){ 'use strict'; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactSelect = require('react-select'); var _reactSelect2 = _interopRequireDefault(_reactSelect); var _reactGravatar = require('react-gravatar'); var _reactGravatar2 = _interopRequireDefault(_reactGravatar); var USERS = require('../data/users'); var GRAVATAR_SIZE = 15; var GravatarOption = _react2['default'].createClass({ displayName: 'GravatarOption', propTypes: { children: _react2['default'].PropTypes.node, className: _react2['default'].PropTypes.string, isDisabled: _react2['default'].PropTypes.bool, isFocused: _react2['default'].PropTypes.bool, isSelected: _react2['default'].PropTypes.bool, onFocus: _react2['default'].PropTypes.func, onSelect: _react2['default'].PropTypes.func, option: _react2['default'].PropTypes.object.isRequired }, handleMouseDown: function handleMouseDown(event) { event.preventDefault(); event.stopPropagation(); this.props.onSelect(this.props.option, event); }, handleMouseEnter: function handleMouseEnter(event) { this.props.onFocus(this.props.option, event); }, handleMouseMove: function handleMouseMove(event) { if (this.props.isFocused) return; this.props.onFocus(this.props.option, event); }, render: function render() { var gravatarStyle = { borderRadius: 3, display: 'inline-block', marginRight: 10, position: 'relative', top: -2, verticalAlign: 'middle' }; return _react2['default'].createElement( 'div', { className: this.props.className, onMouseDown: this.handleMouseDown, onMouseEnter: this.handleMouseEnter, onMouseMove: this.handleMouseMove, title: this.props.option.title }, _react2['default'].createElement(_reactGravatar2['default'], { email: this.props.option.email, size: GRAVATAR_SIZE, style: gravatarStyle }), this.props.children ); } }); var GravatarValue = _react2['default'].createClass({ displayName: 'GravatarValue', propTypes: { children: _react2['default'].PropTypes.node, placeholder: _react2['default'].PropTypes.string, value: _react2['default'].PropTypes.object }, render: function render() { var gravatarStyle = { borderRadius: 3, display: 'inline-block', marginRight: 10, position: 'relative', top: -2, verticalAlign: 'middle' }; return _react2['default'].createElement( 'div', { className: 'Select-value', title: this.props.value.title }, _react2['default'].createElement( 'span', { className: 'Select-value-label' }, _react2['default'].createElement(_reactGravatar2['default'], { email: this.props.value.email, size: GRAVATAR_SIZE, style: gravatarStyle }), this.props.children ) ); } }); var UsersField = _react2['default'].createClass({ displayName: 'UsersField', propTypes: { hint: _react2['default'].PropTypes.string, label: _react2['default'].PropTypes.string }, getInitialState: function getInitialState() { return {}; }, setValue: function setValue(value) { this.setState({ value: value }); }, render: function render() { var placeholder = _react2['default'].createElement( 'span', null, '☺ Select User' ); return _react2['default'].createElement( 'div', { className: 'section' }, _react2['default'].createElement( 'h3', { className: 'section-heading' }, this.props.label ), _react2['default'].createElement(_reactSelect2['default'], { onChange: this.setValue, optionComponent: GravatarOption, options: USERS, placeholder: placeholder, value: this.state.value, valueComponent: GravatarValue }), _react2['default'].createElement( 'div', { className: 'hint' }, 'This example implements custom Option and Value components to render a Gravatar image for each user based on their email. It also demonstrates rendering HTML elements as the placeholder.' ) ); } }); module.exports = UsersField; },{"../data/users":13,"react":undefined,"react-gravatar":29,"react-select":undefined}],4:[function(require,module,exports){ 'use strict'; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactSelect = require('react-select'); var _reactSelect2 = _interopRequireDefault(_reactSelect); var DisabledUpsellOptions = _react2['default'].createClass({ displayName: 'DisabledUpsellOptions', propTypes: { label: _react2['default'].PropTypes.string }, getInitialState: function getInitialState() { return {}; }, setValue: function setValue(value) { this.setState({ value: value }); console.log('Support level selected:', value.label); }, renderLink: function renderLink() { return _react2['default'].createElement( 'a', { style: { marginLeft: 5 }, href: '/upgrade', target: '_blank' }, 'Upgrade here!' ); }, renderOption: function renderOption(option) { return _react2['default'].createElement( 'span', { style: { color: option.color } }, option.label, ' ', option.link ); }, renderValue: function renderValue(option) { return _react2['default'].createElement( 'strong', { style: { color: option.color } }, option.label ); }, render: function render() { var options = [{ label: 'Basic customer support', value: 'basic', color: '#E31864' }, { label: 'Premium customer support', value: 'premium', color: '#6216A3' }, { label: 'Pro customer support', value: 'pro', disabled: true, link: this.renderLink() }]; return _react2['default'].createElement( 'div', { className: 'section' }, _react2['default'].createElement( 'h3', { className: 'section-heading' }, this.props.label ), _react2['default'].createElement(_reactSelect2['default'], { placeholder: 'Select your support level', options: options, optionRenderer: this.renderOption, onChange: this.setValue, value: this.state.value, valueRenderer: this.renderValue }), _react2['default'].createElement( 'div', { className: 'hint' }, 'This demonstates custom render methods and links in disabled options' ) ); } }); module.exports = DisabledUpsellOptions; },{"react":undefined,"react-select":undefined}],5:[function(require,module,exports){ 'use strict'; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactSelect = require('react-select'); var _reactSelect2 = _interopRequireDefault(_reactSelect); var _isomorphicFetch = require('isomorphic-fetch'); var _isomorphicFetch2 = _interopRequireDefault(_isomorphicFetch); var GithubUsers = _react2['default'].createClass({ displayName: 'GithubUsers', propTypes: { label: _react2['default'].PropTypes.string }, getInitialState: function getInitialState() { return { multi: true }; }, onChange: function onChange(value) { this.setState({ value: value }); }, switchToMulti: function switchToMulti() { this.setState({ multi: true, value: [this.state.value] }); }, switchToSingle: function switchToSingle() { this.setState({ multi: false, value: this.state.value ? this.state.value[0] : null }); }, getUsers: function getUsers(input) { return (0, _isomorphicFetch2['default'])('https://api.github.com/search/users?q=' + input).then(function (response) { return response.json(); }).then(function (json) { return { options: json.items }; }); }, gotoUser: function gotoUser(value, event) { window.open(value.html_url); }, render: function render() { return _react2['default'].createElement( 'div', { className: 'section' }, _react2['default'].createElement( 'h3', { className: 'section-heading' }, this.props.label ), _react2['default'].createElement(_reactSelect2['default'].Async, { multi: this.state.multi, value: this.state.value, onChange: this.onChange, onValueClick: this.gotoUser, valueKey: 'id', labelKey: 'login', loadOptions: this.getUsers, minimumInput: 1, backspaceRemoves: false }), _react2['default'].createElement( 'div', { className: 'checkbox-list' }, _react2['default'].createElement( 'label', { className: 'checkbox' }, _react2['default'].createElement('input', { type: 'radio', className: 'checkbox-control', checked: this.state.multi, onChange: this.switchToMulti }), _react2['default'].createElement( 'span', { className: 'checkbox-label' }, 'Multiselect' ) ), _react2['default'].createElement( 'label', { className: 'checkbox' }, _react2['default'].createElement('input', { type: 'radio', className: 'checkbox-control', checked: !this.state.multi, onChange: this.switchToSingle }), _react2['default'].createElement( 'span', { className: 'checkbox-label' }, 'Single Value' ) ) ), _react2['default'].createElement( 'div', { className: 'hint' }, 'This example uses fetch.js for showing Async options with Promises' ) ); } }); module.exports = GithubUsers; },{"isomorphic-fetch":21,"react":undefined,"react-select":undefined}],6:[function(require,module,exports){ 'use strict'; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactSelect = require('react-select'); var _reactSelect2 = _interopRequireDefault(_reactSelect); var FLAVOURS = [{ label: 'Chocolate', value: 'chocolate' }, { label: 'Vanilla', value: 'vanilla' }, { label: 'Strawberry', value: 'strawberry' }, { label: 'Caramel', value: 'caramel' }, { label: 'Cookies and Cream', value: 'cookiescream' }, { label: 'Peppermint', value: 'peppermint' }]; var WHY_WOULD_YOU = [{ label: 'Chocolate (are you crazy?)', value: 'chocolate', disabled: true }].concat(FLAVOURS.slice(1)); var MultiSelectField = _react2['default'].createClass({ displayName: 'MultiSelectField', propTypes: { label: _react2['default'].PropTypes.string }, getInitialState: function getInitialState() { return { disabled: false, crazy: false, options: FLAVOURS, value: [] }; }, handleSelectChange: function handleSelectChange(value) { console.log('You\'ve selected:', value); this.setState({ value: value }); }, toggleDisabled: function toggleDisabled(e) { this.setState({ disabled: e.target.checked }); }, toggleChocolate: function toggleChocolate(e) { var crazy = e.target.checked; this.setState({ crazy: crazy, options: crazy ? WHY_WOULD_YOU : FLAVOURS }); }, render: function render() { return _react2['default'].createElement( 'div', { className: 'section' }, _react2['default'].createElement( 'h3', { className: 'section-heading' }, this.props.label ), _react2['default'].createElement(_reactSelect2['default'], { multi: true, simpleValue: true, disabled: this.state.disabled, value: this.state.value, placeholder: 'Select your favourite(s)', options: this.state.options, onChange: this.handleSelectChange }), _react2['default'].createElement( 'div', { className: 'checkbox-list' }, _react2['default'].createElement( 'label', { className: 'checkbox' }, _react2['default'].createElement('input', { type: 'checkbox', className: 'checkbox-control', checked: this.state.disabled, onChange: this.toggleDisabled }), _react2['default'].createElement( 'span', { className: 'checkbox-label' }, 'Disable the control' ) ), _react2['default'].createElement( 'label', { className: 'checkbox' }, _react2['default'].createElement('input', { type: 'checkbox', className: 'checkbox-control', checked: this.state.crazy, onChange: this.toggleChocolate }), _react2['default'].createElement( 'span', { className: 'checkbox-label' }, 'I don\'t like Chocolate (disabled the option)' ) ) ) ); } }); module.exports = MultiSelectField; },{"react":undefined,"react-select":undefined}],7:[function(require,module,exports){ 'use strict'; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactSelect = require('react-select'); var _reactSelect2 = _interopRequireDefault(_reactSelect); var ValuesAsNumbersField = _react2['default'].createClass({ displayName: 'ValuesAsNumbersField', propTypes: { label: _react2['default'].PropTypes.string }, getInitialState: function getInitialState() { return { options: [{ value: 10, label: 'Ten' }, { value: 11, label: 'Eleven' }, { value: 12, label: 'Twelve' }, { value: 23, label: 'Twenty-three' }, { value: 24, label: 'Twenty-four' }], matchPos: 'any', matchValue: true, matchLabel: true, value: null, multi: false }; }, onChangeMatchStart: function onChangeMatchStart(event) { this.setState({ matchPos: event.target.checked ? 'start' : 'any' }); }, onChangeMatchValue: function onChangeMatchValue(event) { this.setState({ matchValue: event.target.checked }); }, onChangeMatchLabel: function onChangeMatchLabel(event) { this.setState({ matchLabel: event.target.checked }); }, onChange: function onChange(value) { this.setState({ value: value }); console.log('Numeric Select value changed to', value); }, onChangeMulti: function onChangeMulti(event) { this.setState({ multi: event.target.checked }); }, render: function render() { var matchProp = 'any'; if (this.state.matchLabel && !this.state.matchValue) { matchProp = 'label'; } if (!this.state.matchLabel && this.state.matchValue) { matchProp = 'value'; } return _react2['default'].createElement( 'div', { className: 'section' }, _react2['default'].createElement( 'h3', { className: 'section-heading' }, this.props.label ), _react2['default'].createElement(_reactSelect2['default'], { matchPos: this.state.matchPos, matchProp: matchProp, multi: this.state.multi, onChange: this.onChange, options: this.state.options, simpleValue: true, value: this.state.value }), _react2['default'].createElement( 'div', { className: 'checkbox-list' }, _react2['default'].createElement( 'label', { className: 'checkbox' }, _react2['default'].createElement('input', { type: 'checkbox', className: 'checkbox-control', checked: this.state.multi, onChange: this.onChangeMulti }), _react2['default'].createElement( 'span', { className: 'checkbox-label' }, 'Multi-Select' ) ), _react2['default'].createElement( 'label', { className: 'checkbox' }, _react2['default'].createElement('input', { type: 'checkbox', className: 'checkbox-control', checked: this.state.matchValue, onChange: this.onChangeMatchValue }), _react2['default'].createElement( 'span', { className: 'checkbox-label' }, 'Match value' ) ), _react2['default'].createElement( 'label', { className: 'checkbox' }, _react2['default'].createElement('input', { type: 'checkbox', className: 'checkbox-control', checked: this.state.matchLabel, onChange: this.onChangeMatchLabel }), _react2['default'].createElement( 'span', { className: 'checkbox-label' }, 'Match label' ) ), _react2['default'].createElement( 'label', { className: 'checkbox' }, _react2['default'].createElement('input', { type: 'checkbox', className: 'checkbox-control', checked: this.state.matchPos === 'start', onChange: this.onChangeMatchStart }), _react2['default'].createElement( 'span', { className: 'checkbox-label' }, 'Only include matches from the start of the string' ) ) ), _react2['default'].createElement( 'div', { className: 'hint' }, 'This example uses simple numeric values' ) ); } }); module.exports = ValuesAsNumbersField; },{"react":undefined,"react-select":undefined}],8:[function(require,module,exports){ 'use strict'; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactSelect = require('react-select'); var _reactSelect2 = _interopRequireDefault(_reactSelect); var STATES = require('../data/states'); var StatesField = _react2['default'].createClass({ displayName: 'StatesField', propTypes: { label: _react2['default'].PropTypes.string, searchable: _react2['default'].PropTypes.bool }, getDefaultProps: function getDefaultProps() { return { label: 'States:', searchable: true }; }, getInitialState: function getInitialState() { return { country: 'AU', disabled: false, searchable: this.props.searchable, selectValue: 'new-south-wales', clearable: true }; }, switchCountry: function switchCountry(e) { var newCountry = e.target.value; console.log('Country changed to ' + newCountry); this.setState({ country: newCountry, selectValue: null }); }, updateValue: function updateValue(newValue) { console.log('State changed to ' + newValue); this.setState({ selectValue: newValue }); }, focusStateSelect: function focusStateSelect() { this.refs.stateSelect.focus(); }, toggleCheckbox: function toggleCheckbox(e) { var newState = {}; newState[e.target.name] = e.target.checked; this.setState(newState); }, render: function render() { var options = STATES[this.state.country]; return _react2['default'].createElement( 'div', { className: 'section' }, _react2['default'].createElement( 'h3', { className: 'section-heading' }, this.props.label ), _react2['default'].createElement(_reactSelect2['default'], { ref: 'stateSelect', autofocus: true, options: options, simpleValue: true, clearable: this.state.clearable, name: 'selected-state', disabled: this.state.disabled, value: this.state.selectValue, onChange: this.updateValue, searchable: this.state.searchable }), _react2['default'].createElement( 'div', { style: { marginTop: 14 } }, _react2['default'].createElement( 'button', { type: 'button', onClick: this.focusStateSelect }, 'Focus Select' ), _react2['default'].createElement( 'label', { className: 'checkbox', style: { marginLeft: 10 } }, _react2['default'].createElement('input', { type: 'checkbox', className: 'checkbox-control', name: 'searchable', checked: this.state.searchable, onChange: this.toggleCheckbox }), _react2['default'].createElement( 'span', { className: 'checkbox-label' }, 'Searchable' ) ), _react2['default'].createElement( 'label', { className: 'checkbox', style: { marginLeft: 10 } }, _react2['default'].createElement('input', { type: 'checkbox', className: 'checkbox-control', name: 'disabled', checked: this.state.disabled, onChange: this.toggleCheckbox }), _react2['default'].createElement( 'span', { className: 'checkbox-label' }, 'Disabled' ) ), _react2['default'].createElement( 'label', { className: 'checkbox', style: { marginLeft: 10 } }, _react2['default'].createElement('input', { type: 'checkbox', className: 'checkbox-control', name: 'clearable', checked: this.state.clearable, onChange: this.toggleCheckbox }), _react2['default'].createElement( 'span', { className: 'checkbox-label' }, 'Clearable' ) ) ), _react2['default'].createElement( 'div', { className: 'checkbox-list' }, _react2['default'].createElement( 'label', { className: 'checkbox' }, _react2['default'].createElement('input', { type: 'radio', className: 'checkbox-control', checked: this.state.country === 'AU', value: 'AU', onChange: this.switchCountry }), _react2['default'].createElement( 'span', { className: 'checkbox-label' }, 'Australia' ) ), _react2['default'].createElement( 'label', { className: 'checkbox' }, _react2['default'].createElement('input', { type: 'radio', className: 'checkbox-control', checked: this.state.country === 'US', value: 'US', onChange: this.switchCountry }), _react2['default'].createElement( 'span', { className: 'checkbox-label' }, 'United States' ) ) ) ); } }); module.exports = StatesField; },{"../data/states":12,"react":undefined,"react-select":undefined}],9:[function(require,module,exports){ 'use strict'; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactVirtualizedSelect = require('react-virtualized-select'); var _reactVirtualizedSelect2 = _interopRequireDefault(_reactVirtualizedSelect); var DATA = require('../data/cities'); var CitiesField = _react2['default'].createClass({ displayName: 'CitiesField', getInitialState: function getInitialState() { return {}; }, updateValue: function updateValue(newValue) { this.setState({ selectValue: newValue }); }, render: function render() { var options = DATA.CITIES; return _react2['default'].createElement( 'div', { className: 'section' }, _react2['default'].createElement( 'h3', { className: 'section-heading' }, 'Cities (Large Dataset)' ), _react2['default'].createElement(_reactVirtualizedSelect2['default'], { ref: 'citySelect', options: options, simpleValue: true, clearable: true, name: 'select-city', value: this.state.selectValue, onChange: this.updateValue, searchable: true, labelKey: 'name', valueKey: 'name' }), _react2['default'].createElement( 'div', { className: 'hint' }, 'Uses ', _react2['default'].createElement( 'a', { href: 'https://github.com/bvaughn/react-virtualized' }, 'react-virtualized' ), ' and ', _react2['default'].createElement( 'a', { href: 'https://github.com/bvaughn/react-virtualized-select/' }, 'react-virtualized-select' ), ' to display a list of the world\'s 1,000 largest cities.' ) ); } }); module.exports = CitiesField; },{"../data/cities":10,"react":undefined,"react-virtualized-select":32}],10:[function(require,module,exports){ 'use strict'; exports.CITIES = [{ name: 'Abilene' }, { name: 'Addison' }, { name: 'Akron' }, { name: 'Alameda' }, { name: 'Albany' }, { name: 'Albany' }, { name: 'Albany' }, { name: 'Albuquerque' }, { name: 'Alexandria' }, { name: 'Alexandria' }, { name: 'Alhambra' }, { name: 'Aliso Viejo' }, { name: 'Allen' }, { name: 'Allentown' }, { name: 'Alpharetta' }, { name: 'Altamonte Springs' }, { name: 'Altoona' }, { name: 'Amarillo' }, { name: 'Ames' }, { name: 'Anaheim' }, { name: 'Anchorage' }, { name: 'Anderson' }, { name: 'Ankeny' }, { name: 'Ann Arbor' }, { name: 'Annapolis' }, { name: 'Antioch' }, { name: 'Apache Junction' }, { name: 'Apex' }, { name: 'Apopka' }, { name: 'Apple Valley' }, { name: 'Apple Valley' }, { name: 'Appleton' }, { name: 'Arcadia' }, { name: 'Arlington' }, { name: 'Arlington Heights' }, { name: 'Arvada' }, { name: 'Asheville' }, { name: 'Athens-Clarke County' }, { name: 'Atlanta' }, { name: 'Atlantic City' }, { name: 'Attleboro' }, { name: 'Auburn' }, { name: 'Auburn' }, { name: 'Augusta-Richmond County' }, { name: 'Aurora' }, { name: 'Aurora' }, { name: 'Austin' }, { name: 'Aventura' }, { name: 'Avondale' }, { name: 'Azusa' }, { name: 'Bakersfield' }, { name: 'Baldwin Park' }, { name: 'Baltimore' }, { name: 'Barnstable Town' }, { name: 'Bartlett' }, { name: 'Bartlett' }, { name: 'Baton Rouge' }, { name: 'Battle Creek' }, { name: 'Bayonne' }, { name: 'Baytown' }, { name: 'Beaumont' }, { name: 'Beaumont' }, { name: 'Beavercreek' }, { name: 'Beaverton' }, { name: 'Bedford' }, { name: 'Bell Gardens' }, { name: 'Belleville' }, { name: 'Bellevue' }, { name: 'Bellevue' }, { name: 'Bellflower' }, { name: 'Bellingham' }, { name: 'Beloit' }, { name: 'Bend' }, { name: 'Bentonville' }, { name: 'Berkeley' }, { name: 'Berwyn' }, { name: 'Bethlehem' }, { name: 'Beverly' }, { name: 'Billings' }, { name: 'Biloxi' }, { name: 'Binghamton' }, { name: 'Birmingham' }, { name: 'Bismarck' }, { name: 'Blacksburg' }, { name: 'Blaine' }, { name: 'Bloomington' }, { name: 'Bloomington' }, { name: 'Bloomington' }, { name: 'Blue Springs' }, { name: 'Boca Raton' }, { name: 'Boise City' }, { name: 'Bolingbrook' }, { name: 'Bonita Springs' }, { name: 'Bossier City' }, { name: 'Boston' }, { name: 'Boulder' }, { name: 'Bountiful' }, { name: 'Bowie' }, { name: 'Bowling Green' }, { name: 'Boynton Beach' }, { name: 'Bozeman' }, { name: 'Bradenton' }, { name: 'Brea' }, { name: 'Bremerton' }, { name: 'Brentwood' }, { name: 'Brentwood' }, { name: 'Bridgeport' }, { name: 'Bristol' }, { name: 'Brockton' }, { name: 'Broken Arrow' }, { name: 'Brookfield' }, { name: 'Brookhaven' }, { name: 'Brooklyn Park' }, { name: 'Broomfield' }, { name: 'Brownsville' }, { name: 'Bryan' }, { name: 'Buckeye' }, { name: 'Buena Park' }, { name: 'Buffalo' }, { name: 'Buffalo Grove' }, { name: 'Bullhead City' }, { name: 'Burbank' }, { name: 'Burien' }, { name: 'Burleson' }, { name: 'Burlington' }, { name: 'Burlington' }, { name: 'Burnsville' }, { name: 'Caldwell' }, { name: 'Calexico' }, { name: 'Calumet City' }, { name: 'Camarillo' }, { name: 'Cambridge' }, { name: 'Camden' }, { name: 'Campbell' }, { name: 'Canton' }, { name: 'Cape Coral' }, { name: 'Cape Girardeau' }, { name: 'Carlsbad' }, { name: 'Carmel' }, { name: 'Carol Stream' }, { name: 'Carpentersville' }, { name: 'Carrollton' }, { name: 'Carson' }, { name: 'Carson City' }, { name: 'Cary' }, { name: 'Casa Grande' }, { name: 'Casper' }, { name: 'Castle Rock' }, { name: 'Cathedral City' }, { name: 'Cedar Falls' }, { name: 'Cedar Hill' }, { name: 'Cedar Park' }, { name: 'Cedar Rapids' }, { name: 'Centennial' }, { name: 'Ceres' }, { name: 'Cerritos' }, { name: 'Champaign' }, { name: 'Chandler' }, { name: 'Chapel Hill' }, { name: 'Charleston' }, { name: 'Charleston' }, { name: 'Charlotte' }, { name: 'Charlottesville' }, { name: 'Chattanooga' }, { name: 'Chelsea' }, { name: 'Chesapeake' }, { name: 'Chesterfield' }, { name: 'Cheyenne' }, { name: 'Chicago' }, { name: 'Chico' }, { name: 'Chicopee' }, { name: 'Chino' }, { name: 'Chino Hills' }, { name: 'Chula Vista' }, { name: 'Cicero' }, { name: 'Cincinnati' }, { name: 'Citrus Heights' }, { name: 'Clarksville' }, { name: 'Clearwater' }, { name: 'Cleveland' }, { name: 'Cleveland' }, { name: 'Cleveland Heights' }, { name: 'Clifton' }, { name: 'Clovis' }, { name: 'Clovis' }, { name: 'Coachella' }, { name: 'Coconut Creek' }, { name: 'Coeur d\'Alene' }, { name: 'College Station' }, { name: 'Collierville' }, { name: 'Colorado Springs' }, { name: 'Colton' }, { name: 'Columbia' }, { name: 'Columbia' }, { name: 'Columbus' }, { name: 'Columbus' }, { name: 'Columbus' }, { name: 'Commerce City' }, { name: 'Compton' }, { name: 'Concord' }, { name: 'Concord' }, { name: 'Concord' }, { name: 'Conroe' }, { name: 'Conway' }, { name: 'Coon Rapids' }, { name: 'Coppell' }, { name: 'Coral Gables' }, { name: 'Coral Springs' }, { name: 'Corona' }, { name: 'Corpus Christi' }, { name: 'Corvallis' }, { name: 'Costa Mesa' }, { name: 'Council Bluffs' }, { name: 'Covina' }, { name: 'Covington' }, { name: 'Cranston' }, { name: 'Crystal Lake' }, { name: 'Culver City' }, { name: 'Cupertino' }, { name: 'Cutler Bay' }, { name: 'Cuyahoga Falls' }, { name: 'Cypress' }, { name: 'Dallas' }, { name: 'Daly City' }, { name: 'Danbury' }, { name: 'Danville' }, { name: 'Danville' }, { name: 'Davenport' }, { name: 'Davie' }, { name: 'Davis' }, { name: 'Dayton' }, { name: 'Daytona Beach' }, { name: 'DeKalb' }, { name: 'DeSoto' }, { name: 'Dearborn' }, { name: 'Dearborn Heights' }, { name: 'Decatur' }, { name: 'Decatur' }, { name: 'Deerfield Beach' }, { name: 'Delano' }, { name: 'Delray Beach' }, { name: 'Deltona' }, { name: 'Denton' }, { name: 'Denver' }, { name: 'Des Moines' }, { name: 'Des Plaines' }, { name: 'Detroit' }, { name: 'Diamond Bar' }, { name: 'Doral' }, { name: 'Dothan' }, { name: 'Dover' }, { name: 'Downers Grove' }, { name: 'Downey' }, { name: 'Draper' }, { name: 'Dublin' }, { name: 'Dublin' }, { name: 'Dubuque' }, { name: 'Duluth' }, { name: 'Duncanville' }, { name: 'Dunwoody' }, { name: 'Durham' }, { name: 'Eagan' }, { name: 'East Lansing' }, { name: 'East Orange' }, { name: 'East Providence' }, { name: 'Eastvale' }, { name: 'Eau Claire' }, { name: 'Eden Prairie' }, { name: 'Edina' }, { name: 'Edinburg' }, { name: 'Edmond' }, { name: 'Edmonds' }, { name: 'El Cajon' }, { name: 'El Centro' }, { name: 'El Monte' }, { name: 'El Paso' }, { name: 'Elgin' }, { name: 'Elizabeth' }, { name: 'Elk Grove' }, { name: 'Elkhart' }, { name: 'Elmhurst' }, { name: 'Elyria' }, { name: 'Encinitas' }, { name: 'Enid' }, { name: 'Erie' }, { name: 'Escondido' }, { name: 'Euclid' }, { name: 'Eugene' }, { name: 'Euless' }, { name: 'Evanston' }, { name: 'Evansville' }, { name: 'Everett' }, { name: 'Everett' }, { name: 'Fairfield' }, { name: 'Fairfield' }, { name: 'Fall River' }, { name: 'Fargo' }, { name: 'Farmington' }, { name: 'Farmington Hills' }, { name: 'Fayetteville' }, { name: 'Fayetteville' }, { name: 'Federal Way' }, { name: 'Findlay' }, { name: 'Fishers' }, { name: 'Fitchburg' }, { name: 'Flagstaff' }, { name: 'Flint' }, { name: 'Florence' }, { name: 'Florence' }, { name: 'Florissant' }, { name: 'Flower Mound' }, { name: 'Folsom' }, { name: 'Fond du Lac' }, { name: 'Fontana' }, { name: 'Fort Collins' }, { name: 'Fort Lauderdale' }, { name: 'Fort Myers' }, { name: 'Fort Pierce' }, { name: 'Fort Smith' }, { name: 'Fort Wayne' }, { name: 'Fort Worth' }, { name: 'Fountain Valley' }, { name: 'Franklin' }, { name: 'Frederick' }, { name: 'Freeport' }, { name: 'Fremont' }, { name: 'Fresno' }, { name: 'Friendswood' }, { name: 'Frisco' }, { name: 'Fullerton' }, { name: 'Gainesville' }, { name: 'Gaithersburg' }, { name: 'Galveston' }, { name: 'Garden Grove' }, { name: 'Gardena' }, { name: 'Garland' }, { name: 'Gary' }, { name: 'Gastonia' }, { name: 'Georgetown' }, { name: 'Germantown' }, { name: 'Gilbert' }, { name: 'Gilroy' }, { name: 'Glendale' }, { name: 'Glendale' }, { name: 'Glendora' }, { name: 'Glenview' }, { name: 'Goodyear' }, { name: 'Goose Creek' }, { name: 'Grand Forks' }, { name: 'Grand Island' }, { name: 'Grand Junction' }, { name: 'Grand Prairie' }, { name: 'Grand Rapids' }, { name: 'Grapevine' }, { name: 'Great Falls' }, { name: 'Greeley' }, { name: 'Green Bay' }, { name: 'Greenacres' }, { name: 'Greenfield' }, { name: 'Greensboro' }, { name: 'Greenville' }, { name: 'Greenville' }, { name: 'Greenwood' }, { name: 'Gresham' }, { name: 'Grove City' }, { name: 'Gulfport' }, { name: 'Hackensack' }, { name: 'Hagerstown' }, { name: 'Hallandale Beach' }, { name: 'Haltom City' }, { name: 'Hamilton' }, { name: 'Hammond' }, { name: 'Hampton' }, { name: 'Hanford' }, { name: 'Hanover Park' }, { name: 'Harlingen' }, { name: 'Harrisburg' }, { name: 'Harrisonburg' }, { name: 'Hartford' }, { name: 'Hattiesburg' }, { name: 'Haverhill' }, { name: 'Hawthorne' }, { name: 'Hayward' }, { name: 'Hemet' }, { name: 'Hempstead' }, { name: 'Henderson' }, { name: 'Hendersonville' }, { name: 'Hesperia' }, { name: 'Hialeah' }, { name: 'Hickory' }, { name: 'High Point' }, { name: 'Highland' }, { name: 'Hillsboro' }, { name: 'Hilton Head Island' }, { name: 'Hoboken' }, { name: 'Hoffman Estates' }, { name: 'Hollywood' }, { name: 'Holyoke' }, { name: 'Homestead' }, { name: 'Honolulu' }, { name: 'Hoover' }, { name: 'Houston' }, { name: 'Huber Heights' }, { name: 'Huntersville' }, { name: 'Huntington' }, { name: 'Huntington Beach' }, { name: 'Huntington Park' }, { name: 'Huntsville' }, { name: 'Huntsville' }, { name: 'Hurst' }, { name: 'Hutchinson' }, { name: 'Idaho Falls' }, { name: 'Independence' }, { name: 'Indianapolis' }, { name: 'Indio' }, { name: 'Inglewood' }, { name: 'Iowa City' }, { name: 'Irvine' }, { name: 'Irving' }, { name: 'Jackson' }, { name: 'Jackson' }, { name: 'Jacksonville' }, { name: 'Jacksonville' }, { name: 'Janesville' }, { name: 'Jefferson City' }, { name: 'Jeffersonville' }, { name: 'Jersey City' }, { name: 'Johns Creek' }, { name: 'Johnson City' }, { name: 'Joliet' }, { name: 'Jonesboro' }, { name: 'Joplin' }, { name: 'Jupiter' }, { name: 'Jurupa Valley' }, { name: 'Kalamazoo' }, { name: 'Kannapolis' }, { name: 'Kansas City' }, { name: 'Kansas City' }, { name: 'Kearny' }, { name: 'Keizer' }, { name: 'Keller' }, { name: 'Kenner' }, { name: 'Kennewick' }, { name: 'Kenosha' }, { name: 'Kent' }, { name: 'Kentwood' }, { name: 'Kettering' }, { name: 'Killeen' }, { name: 'Kingsport' }, { name: 'Kirkland' }, { name: 'Kissimmee' }, { name: 'Knoxville' }, { name: 'Kokomo' }, { name: 'La Crosse' }, { name: 'La Habra' }, { name: 'La Mesa' }, { name: 'La Mirada' }, { name: 'La Puente' }, { name: 'La Quinta' }, { name: 'Lacey' }, { name: 'Lafayette' }, { name: 'Lafayette' }, { name: 'Laguna Niguel' }, { name: 'Lake Charles' }, { name: 'Lake Elsinore' }, { name: 'Lake Forest' }, { name: 'Lake Havasu City' }, { name: 'Lake Oswego' }, { name: 'Lakeland' }, { name: 'Lakeville' }, { name: 'Lakewood' }, { name: 'Lakewood' }, { name: 'Lakewood' }, { name: 'Lakewood' }, { name: 'Lancaster' }, { name: 'Lancaster' }, { name: 'Lancaster' }, { name: 'Lancaster' }, { name: 'Lansing' }, { name: 'Laredo' }, { name: 'Largo' }, { name: 'Las Cruces' }, { name: 'Las Vegas' }, { name: 'Lauderhill' }, { name: 'Lawrence' }, { name: 'Lawrence' }, { name: 'Lawrence' }, { name: 'Lawton' }, { name: 'Layton' }, { name: 'League City' }, { name: 'Lee\'s Summit' }, { name: 'Leesburg' }, { name: 'Lehi' }, { name: 'Lenexa' }, { name: 'Leominster' }, { name: 'Lewisville' }, { name: 'Lexington-Fayette' }, { name: 'Lima' }, { name: 'Lincoln' }, { name: 'Lincoln' }, { name: 'Lincoln Park' }, { name: 'Linden' }, { name: 'Little Rock' }, { name: 'Littleton' }, { name: 'Livermore' }, { name: 'Livonia' }, { name: 'Lodi' }, { name: 'Logan' }, { name: 'Lombard' }, { name: 'Lompoc' }, { name: 'Long Beach' }, { name: 'Longmont' }, { name: 'Longview' }, { name: 'Lorain' }, { name: 'Los Angeles' }, { name: 'Louisville/Jefferson County' }, { name: 'Loveland' }, { name: 'Lowell' }, { name: 'Lubbock' }, { name: 'Lynchburg' }, { name: 'Lynn' }, { name: 'Lynwood' }, { name: 'Macon' }, { name: 'Madera' }, { name: 'Madison' }, { name: 'Madison' }, { name: 'Malden' }, { name: 'Manassas' }, { name: 'Manchester' }, { name: 'Manhattan' }, { name: 'Mankato' }, { name: 'Mansfield' }, { name: 'Mansfield' }, { name: 'Manteca' }, { name: 'Maple Grove' }, { name: 'Maplewood' }, { name: 'Marana' }, { name: 'Margate' }, { name: 'Maricopa' }, { name: 'Marietta' }, { name: 'Marlborough' }, { name: 'Martinez' }, { name: 'Marysville' }, { name: 'McAllen' }, { name: 'McKinney' }, { name: 'Medford' }, { name: 'Medford' }, { name: 'Melbourne' }, { name: 'Memphis' }, { name: 'Menifee' }, { name: 'Mentor' }, { name: 'Merced' }, { name: 'Meriden' }, { name: 'Meridian' }, { name: 'Meridian' }, { name: 'Mesa' }, { name: 'Mesquite' }, { name: 'Methuen' }, { name: 'Miami' }, { name: 'Miami Beach' }, { name: 'Miami Gardens' }, { name: 'Middletown' }, { name: 'Middletown' }, { name: 'Midland' }, { name: 'Midland' }, { name: 'Midwest City' }, { name: 'Milford' }, { name: 'Milpitas' }, { name: 'Milwaukee' }, { name: 'Minneapolis' }, { name: 'Minnetonka' }, { name: 'Minot' }, { name: 'Miramar' }, { name: 'Mishawaka' }, { name: 'Mission' }, { name: 'Mission Viejo' }, { name: 'Missoula' }, { name: 'Missouri City' }, { name: 'Mobile' }, { name: 'Modesto' }, { name: 'Moline' }, { name: 'Monroe' }, { name: 'Monrovia' }, { name: 'Montclair' }, { name: 'Montebello' }, { name: 'Monterey Park' }, { name: 'Montgomery' }, { name: 'Moore' }, { name: 'Moorhead' }, { name: 'Moreno Valley' }, { name: 'Morgan Hill' }, { name: 'Mount Pleasant' }, { name: 'Mount Prospect' }, { name: 'Mount Vernon' }, { name: 'Mountain View' }, { name: 'Muncie' }, { name: 'Murfreesboro' }, { name: 'Murray' }, { name: 'Murrieta' }, { name: 'Muskegon' }, { name: 'Muskogee' }, { name: 'Nampa' }, { name: 'Napa' }, { name: 'Naperville' }, { name: 'Nashua' }, { name: 'Nashville-Davidson' }, { name: 'National City' }, { name: 'New Bedford' }, { name: 'New Berlin' }, { name: 'New Braunfels' }, { name: 'New Britain' }, { name: 'New Brunswick' }, { name: 'New Haven' }, { name: 'New Orleans' }, { name: 'New Rochelle' }, { name: 'New York' }, { name: 'Newark' }, { name: 'Newark' }, { name: 'Newark' }, { name: 'Newport Beach' }, { name: 'Newport News' }, { name: 'Newton' }, { name: 'Niagara Falls' }, { name: 'Noblesville' }, { name: 'Norfolk' }, { name: 'Normal' }, { name: 'Norman' }, { name: 'North Charleston' }, { name: 'North Las Vegas' }, { name: 'North Lauderdale' }, { name: 'North Little Rock' }, { name: 'North Miami' }, { name: 'North Miami Beach' }, { name: 'North Port' }, { name: 'North Richland Hills' }, { name: 'Northglenn' }, { name: 'Norwalk' }, { name: 'Norwalk' }, { name: 'Norwich' }, { name: 'Novato' }, { name: 'Novi' }, { name: 'O\'Fallon' }, { name: 'Oak Lawn' }, { name: 'Oak Park' }, { name: 'Oakland' }, { name: 'Oakland Park' }, { name: 'Oakley' }, { name: 'Ocala' }, { name: 'Oceanside' }, { name: 'Ocoee' }, { name: 'Odessa' }, { name: 'Ogden' }, { name: 'Oklahoma City' }, { name: 'Olathe' }, { name: 'Olympia' }, { name: 'Omaha' }, { name: 'Ontario' }, { name: 'Orange' }, { name: 'Orem' }, { name: 'Orland Park' }, { name: 'Orlando' }, { name: 'Ormond Beach' }, { name: 'Oro Valley' }, { name: 'Oshkosh' }, { name: 'Overland Park' }, { name: 'Owensboro' }, { name: 'Oxnard' }, { name: 'Pacifica' }, { name: 'Palatine' }, { name: 'Palm Bay' }, { name: 'Palm Beach Gardens' }, { name: 'Palm Coast' }, { name: 'Palm Desert' }, { name: 'Palm Springs' }, { name: 'Palmdale' }, { name: 'Palo Alto' }, { name: 'Panama City' }, { name: 'Paramount' }, { name: 'Park Ridge' }, { name: 'Parker' }, { name: 'Parma' }, { name: 'Pasadena' }, { name: 'Pasadena' }, { name: 'Pasco' }, { name: 'Passaic' }, { name: 'Paterson' }, { name: 'Pawtucket' }, { name: 'Peabody' }, { name: 'Peachtree Corners' }, { name: 'Pearland' }, { name: 'Pembroke Pines' }, { name: 'Pensacola' }, { name: 'Peoria' }, { name: 'Peoria' }, { name: 'Perris' }, { name: 'Perth Amboy' }, { name: 'Petaluma' }, { name: 'Pflugerville' }, { name: 'Pharr' }, { name: 'Phenix City' }, { name: 'Philadelphia' }, { name: 'Phoenix' }, { name: 'Pico Rivera' }, { name: 'Pine Bluff' }, { name: 'Pinellas Park' }, { name: 'Pittsburg' }, { name: 'Pittsburgh' }, { name: 'Pittsfield' }, { name: 'Placentia' }, { name: 'Plainfield' }, { name: 'Plainfield' }, { name: 'Plano' }, { name: 'Plantation' }, { name: 'Pleasanton' }, { name: 'Plymouth' }, { name: 'Pocatello' }, { name: 'Pomona' }, { name: 'Pompano Beach' }, { name: 'Pontiac' }, { name: 'Port Arthur' }, { name: 'Port Orange' }, { name: 'Port St. Lucie' }, { name: 'Portage' }, { name: 'Porterville' }, { name: 'Portland' }, { name: 'Portland' }, { name: 'Portsmouth' }, { name: 'Poway' }, { name: 'Prescott' }, { name: 'Prescott Valley' }, { name: 'Providence' }, { name: 'Provo' }, { name: 'Pueblo' }, { name: 'Puyallup' }, { name: 'Quincy' }, { name: 'Quincy' }, { name: 'Racine' }, { name: 'Raleigh' }, { name: 'Rancho Cordova' }, { name: 'Rancho Cucamonga' }, { name: 'Rancho Palos Verdes' }, { name: 'Rancho Santa Margarita' }, { name: 'Rapid City' }, { name: 'Reading' }, { name: 'Redding' }, { name: 'Redlands' }, { name: 'Redmond' }, { name: 'Redondo Beach' }, { name: 'Redwood City' }, { name: 'Reno' }, { name: 'Renton' }, { name: 'Revere' }, { name: 'Rialto' }, { name: 'Richardson' }, { name: 'Richland' }, { name: 'Richmond' }, { name: 'Richmond' }, { name: 'Rio Rancho' }, { name: 'Riverside' }, { name: 'Riverton' }, { name: 'Roanoke' }, { name: 'Rochester' }, { name: 'Rochester' }, { name: 'Rochester Hills' }, { name: 'Rock Hill' }, { name: 'Rock Island' }, { name: 'Rockford' }, { name: 'Rocklin' }, { name: 'Rockville' }, { name: 'Rockwall' }, { name: 'Rocky Mount' }, { name: 'Rogers' }, { name: 'Rohnert Park' }, { name: 'Romeoville' }, { name: 'Rosemead' }, { name: 'Roseville' }, { name: 'Roseville' }, { name: 'Roswell' }, { name: 'Roswell' }, { name: 'Round Rock' }, { name: 'Rowlett' }, { name: 'Roy' }, { name: 'Royal Oak' }, { name: 'Sacramento' }, { name: 'Saginaw' }, { name: 'Salem' }, { name: 'Salem' }, { name: 'Salina' }, { name: 'Salinas' }, { name: 'Salt Lake City' }, { name: 'Sammamish' }, { name: 'San Angelo' }, { name: 'San Antonio' }, { name: 'San Bernardino' }, { name: 'San Bruno' }, { name: 'San Buenaventura (Ventura)' }, { name: 'San Clemente' }, { name: 'San Diego' }, { name: 'San Francisco' }, { name: 'San Gabriel' }, { name: 'San Jacinto' }, { name: 'San Jose' }, { name: 'San Leandro' }, { name: 'San Luis Obispo' }, { name: 'San Marcos' }, { name: 'San Marcos' }, { name: 'San Mateo' }, { name: 'San Rafael' }, { name: 'San Ramon' }, { name: 'Sandy' }, { name: 'Sandy Springs' }, { name: 'Sanford' }, { name: 'Santa Ana' }, { name: 'Santa Barbara' }, { name: 'Santa Clara' }, { name: 'Santa Clarita' }, { name: 'Santa Cruz' }, { name: 'Santa Fe' }, { name: 'Santa Maria' }, { name: 'Santa Monica' }, { name: 'Santa Rosa' }, { name: 'Santee' }, { name: 'Sarasota' }, { name: 'Savannah' }, { name: 'Sayreville' }, { name: 'Schaumburg' }, { name: 'Schenectady' }, { name: 'Scottsdale' }, { name: 'Scranton' }, { name: 'Seattle' }, { name: 'Shakopee' }, { name: 'Shawnee' }, { name: 'Sheboygan' }, { name: 'Shelton' }, { name: 'Sherman' }, { name: 'Shoreline' }, { name: 'Shreveport' }, { name: 'Sierra Vista' }, { name: 'Simi Valley' }, { name: 'Sioux City' }, { name: 'Sioux Falls' }, { name: 'Skokie' }, { name: 'Smyrna' }, { name: 'Smyrna' }, { name: 'Somerville' }, { name: 'South Bend' }, { name: 'South Gate' }, { name: 'South Jordan' }, { name: 'South San Francisco' }, { name: 'Southaven' }, { name: 'Southfield' }, { name: 'Spanish Fork' }, { name: 'Sparks' }, { name: 'Spartanburg' }, { name: 'Spokane' }, { name: 'Spokane Valley' }, { name: 'Springdale' }, { name: 'Springfield' }, { name: 'Springfield' }, { name: 'Springfield' }, { name: 'Springfield' }, { name: 'Springfield' }, { name: 'St. Charles' }, { name: 'St. Clair Shores' }, { name: 'St. Cloud' }, { name: 'St. Cloud' }, { name: 'St. George' }, { name: 'St. Joseph' }, { name: 'St. Louis' }, { name: 'St. Louis Park' }, { name: 'St. Paul' }, { name: 'St. Peters' }, { name: 'St. Petersburg' }, { name: 'Stamford' }, { name: 'Stanton' }, { name: 'State College' }, { name: 'Sterling Heights' }, { name: 'Stillwater' }, { name: 'Stockton' }, { name: 'Streamwood' }, { name: 'Strongsville' }, { name: 'Suffolk' }, { name: 'Sugar Land' }, { name: 'Summerville' }, { name: 'Sumter' }, { name: 'Sunnyvale' }, { name: 'Sunrise' }, { name: 'Surprise' }, { name: 'Syracuse' }, { name: 'Tacoma' }, { name: 'Tallahassee' }, { name: 'Tamara