react-select
Version:
A Select control built with and for ReactJS
919 lines (813 loc) • 271 kB
JavaScript
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