The Events Calendar Shortcode - Version 2.0

Version Description

  • Adds a block in addition to the shortcode that can be used with the new WordPress editor (as of version 5.0) or Gutenberg plugin
Download this release

Release Info

Developer brianhogg
Plugin Icon 128x128 The Events Calendar Shortcode
Version 2.0
Comparing to
See all releases

Code changes from version 1.10.1 to 2.0

block/components/categorySetting.js ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import Select from 'react-select';
2
+
3
+ const { Component, Fragment } = wp.element;
4
+ const { apiFetch } = wp;
5
+
6
+ /**
7
+ * Setting component for event categories
8
+ */
9
+ class CategorySetting extends Component {
10
+ constructor( props ) {
11
+ super( props );
12
+
13
+ this.state = {
14
+ selectOptions: [],
15
+ selectedCats: [],
16
+ isLoading: true,
17
+ };
18
+ }
19
+
20
+ /**
21
+ * Load in event categories from tribe endpoint - CDM
22
+ */
23
+ componentDidMount() {
24
+ apiFetch( { path: '/tribe/events/v1/categories/' } ).then( ( response ) => {
25
+ const selectOptions = response.categories.map( ( category ) => {
26
+ return { value: category.slug, label: category.name };
27
+ } );
28
+
29
+ const { cat } = this.props.attributes;
30
+ const catArray = ( typeof cat === 'undefined' ) ? [] : cat.split( ', ' );
31
+
32
+ const selectedCats = selectOptions.filter( ( option ) => {
33
+ if ( catArray.indexOf( option.value ) > -1 ) {
34
+ return option.value;
35
+ }
36
+ } );
37
+
38
+ this.setState( {
39
+ selectOptions,
40
+ selectedCats,
41
+ isLoading: false,
42
+ } );
43
+ } );
44
+ }
45
+
46
+ /**
47
+ * Handle selection change
48
+ *
49
+ * @param {Array} selectedCats the selected categories
50
+ */
51
+ handleChange = ( selectedCats ) => {
52
+ const formattedSelection = selectedCats.map( ( category ) => {
53
+ return category.value;
54
+ } );
55
+ const stringSelection = formattedSelection.join( ', ' );
56
+
57
+ this.setState( { selectedCats } );
58
+ this.props.setAttributes( { cat: stringSelection } );
59
+ }
60
+
61
+ /**
62
+ * @return {ReactElement} Category Setting
63
+ */
64
+ render() {
65
+ return (
66
+ <Fragment>
67
+ <Select
68
+ className={ 'ecs-select multi' }
69
+ classNamePrefix={ 'select' }
70
+ value={ this.state.selectedCats }
71
+ onChange={ this.handleChange }
72
+ options={ this.state.selectOptions }
73
+ isMulti={ 'true' }
74
+ isLoading={ this.state.isLoading }
75
+ />
76
+ </Fragment>
77
+ );
78
+ }
79
+ }
80
+
81
+ export default CategorySetting;
82
+
block/components/designSetting.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import Select from 'react-select';
2
+
3
+ const { Component, Fragment } = wp.element;
4
+ const { __ } = wp.i18n;
5
+
6
+ /**
7
+ * Setting component for design
8
+ */
9
+ class DesignSetting extends Component {
10
+ /**
11
+ * @return {ReactElement} Design Setting
12
+ */
13
+ render() {
14
+ return (
15
+ <Fragment>
16
+ <Select
17
+ className={ 'ecs-select' }
18
+ classNamePrefix={ 'select' }
19
+ options={ [
20
+ { label: __( 'Standard', 'the-events-calendar-shortcode' ), value: 'standard' },
21
+ ] }
22
+ value={ { label: __( 'Standard', 'the-events-calendar-shortcode' ), value: 'standard' } }
23
+ />
24
+ <div className={ 'ecs-setting-help' }>
25
+ <a
26
+ href={ 'https://eventcalendarnewsletter.com/the-events-calendar-shortcode/?utm_source=plugin&utm_medium=link&utm_campaign=block-design-help&utm_content=description#designs' }
27
+ target={ '_blank' }
28
+ >{ __( 'Upgrade to Pro', 'the-events-calendar-shortcode' ) }</a>
29
+ { __( ' for more designs!', 'the-events-calendar-shortcode' ) }
30
+ </div>
31
+ </Fragment>
32
+ );
33
+ }
34
+ }
35
+
36
+ export default DesignSetting;
block/components/excerptSetting.js ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const { Component } = wp.element;
2
+ const { __ } = wp.i18n;
3
+
4
+ /**
5
+ * Setting component for the excerpt
6
+ */
7
+ class ExcerptSetting extends Component {
8
+ isValid = ( excerpt ) => {
9
+ return ( excerpt !== 'false' );
10
+ }
11
+
12
+ /**
13
+ * Handle excerpt checkbox input change
14
+ *
15
+ * @param {Object} event input onChange event
16
+ */
17
+ handleChange = ( event ) => {
18
+ const value = ( event.target.checked ) ? '100' : 'false';
19
+ this.props.setAttributes( { excerpt: value } );
20
+ }
21
+
22
+ /**
23
+ * Handle excerpt length input change
24
+ *
25
+ * @param {Object} event input onChange event
26
+ */
27
+ handleLengthChange = ( event ) => {
28
+ if ( ! event.target.validity.patternMismatch ) {
29
+ this.props.setAttributes( { excerpt: `${ event.target.value }` } );
30
+ } else {
31
+ this.props.setAttributes( { excerpt: '100' } );
32
+ }
33
+ }
34
+
35
+ /**
36
+ * @return {ReactElement} Excerpt Setting
37
+ */
38
+ render() {
39
+ const { excerpt } = this.props.attributes;
40
+
41
+ return (
42
+ <div className={ 'ecs-settings-excerpt' }>
43
+ <div className={ 'ecs-setting-excerpt-enable' }>
44
+ <input
45
+ id={ 'ecs-setting-excerpt' }
46
+ type={ 'checkbox' }
47
+ checked={ excerpt !== 'false' }
48
+ onChange={ this.handleChange }
49
+ /><label
50
+ className={ 'components-base-control__label' }
51
+ htmlFor={ 'ecs-setting-excerpt' }
52
+ >{ __( 'Show excerpt of events', 'the-events-calendar-shortcode' ) }</label>
53
+ </div>
54
+
55
+ { this.isValid( excerpt ) ? <div className={ 'ecs-setting-excerpt' }>
56
+ <div className={ 'ecs-setting-text-field' }>
57
+ <label
58
+ className={ 'ecs-setting-label' }
59
+ htmlFor={ 'ecs-setting-excerpt-length' }
60
+ >{ __( 'Length', 'the-events-calendar-shortcode' ) }</label>
61
+ <input
62
+ id={ 'ecs-setting-excerpt-length' }
63
+ style={ { borderColor: ! isNaN( parseInt( excerpt ) ) ? 'inherit' : 'red' } }
64
+ type={ 'text' }
65
+ label={ __( 'Excerpt Length' ) }
66
+ value={ excerpt }
67
+ pattern={ '[0-9]*' }
68
+ onChange={ this.handleLengthChange }
69
+ />
70
+ </div>
71
+ </div> : null }
72
+ <div className={ 'ecs-setting-help' }>
73
+ { __( 'Want to show the full description of events or HTML from your excerpt? ', 'the-events-calendar-shortcode' )}
74
+ <a
75
+ href={ 'https://eventcalendarnewsletter.com/the-events-calendar-shortcode/?utm_source=plugin&utm_medium=link&utm_campaign=block-excerpt-help&utm_content=description' }
76
+ target={ '_blank' }
77
+ >{ __( 'Upgrade to Pro', 'the-events-calendar-shortcode' ) }</a>
78
+ </div>
79
+ </div>
80
+ );
81
+ }
82
+ }
83
+
84
+ export default ExcerptSetting;
block/components/keyValueSetting.js ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const { Component, Fragment } = wp.element;
2
+ const { __ } = wp.i18n;
3
+ const { TextControl } = wp.components;
4
+
5
+ /**
6
+ * Setting component for key/value
7
+ */
8
+ class KeyValueSetting extends Component {
9
+ /**
10
+ * @param {string} key The new key
11
+ */
12
+ handleKeyChange = ( key ) => {
13
+ this.updateKeyValueAttribute( 'key', key );
14
+ }
15
+
16
+ /**
17
+ * @param {string} value The new value
18
+ */
19
+ handleValueChange = ( value ) => {
20
+ this.updateKeyValueAttribute( 'value', value );
21
+ }
22
+
23
+ /**
24
+ * @param {string} type key or value input
25
+ * @param {string} newValue the updated input for key or value
26
+ */
27
+ updateKeyValueAttribute = ( type, newValue ) => {
28
+ const { uid } = this.props;
29
+ let { keyValue } = this.props.attributes;
30
+
31
+ keyValue = typeof keyValue === 'undefined' ? {} : JSON.parse( keyValue );
32
+ keyValue[ uid ] = { ...keyValue[ uid ], [ type ]: newValue };
33
+
34
+ this.props.setAttributes( { keyValue: JSON.stringify( keyValue ) } );
35
+ }
36
+
37
+ /**
38
+ * @return {ReactElement} Key Value Repeater
39
+ */
40
+ render() {
41
+ let { keyValue } = this.props.attributes;
42
+
43
+ keyValue = typeof keyValue === 'undefined' ? {} : JSON.parse( keyValue );
44
+ const item = keyValue[ this.props.uid ];
45
+
46
+ return (
47
+ <Fragment>
48
+ <div className={ 'ecs-key-value' }>
49
+ <TextControl
50
+ label={ __( 'Key', 'the-events-calendar-shortcode' ) }
51
+ value={ item.key }
52
+ onChange={ this.handleKeyChange }
53
+ />
54
+ <TextControl
55
+ label={ __( 'Value', 'the-events-calendar-shortcode' ) }
56
+ value={ item.value }
57
+ onChange={ this.handleValueChange }
58
+ />
59
+ </div>
60
+ <div className={ 'ecs-setting-help' }>
61
+ <a
62
+ href={ 'https://eventcalendarnewsletter.com/events-calendar-shortcode-pro-options/?utm_source=plugin&utm_medium=link&utm_campaign=block-advanced-help&utm_content=description' }
63
+ target={ '_blank' }
64
+ >{ __( 'View documentation on available options', 'the-events-calendar-shortcode' ) }</a>
65
+ { __( ' where key="value" in the shortcode can be entered in the boxes above', 'the-events-calendar-shortcode' ) }
66
+ </div>
67
+ </Fragment>
68
+ );
69
+ }
70
+ }
71
+
72
+ export default KeyValueSetting;
block/components/limitSetting.js ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const { Component, Fragment } = wp.element;
2
+
3
+ /**
4
+ * Setting component for limit
5
+ */
6
+ class LimitSetting extends Component {
7
+ /**
8
+ * Handle limit input change
9
+ *
10
+ * @param {Object} event input onChange event
11
+ */
12
+ handleChange = ( event ) => {
13
+ this.props.setAttributes( { limit: parseInt( event.target.value ) } );
14
+ }
15
+
16
+ /**
17
+ * @return {ReactElement} Limit Setting
18
+ */
19
+ render() {
20
+ const { attributes } = this.props;
21
+
22
+ return (
23
+ <Fragment>
24
+ <input
25
+ id={ 'ecs-setting-limit' }
26
+ type={ 'number' }
27
+ min={ 1 }
28
+ value={ attributes.limit }
29
+ onChange={ this.handleChange }
30
+ />
31
+ </Fragment>
32
+ );
33
+ }
34
+ }
35
+
36
+ export default LimitSetting;
37
+
block/components/monthSetting.js ADDED
@@ -0,0 +1,133 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const { Component } = wp.element;
2
+ const { __ } = wp.i18n;
3
+
4
+ /**
5
+ * Setting component for month
6
+ */
7
+ class MonthSetting extends Component {
8
+ constructor( props ) {
9
+ super( props );
10
+ let { month } = props.attributes;
11
+ month = typeof month === 'undefined' ? '' : month;
12
+ const valid = ( month !== '' && month !== 'current' );
13
+
14
+ this.state = {
15
+ year: valid ? month.slice( 0, 4 ) : '',
16
+ month: valid ? month.slice( 5 ) : '',
17
+ monthValid: valid,
18
+ yearValid: valid,
19
+ };
20
+ }
21
+ /**
22
+ * Handle current checkbox input change
23
+ *
24
+ * @param {Object} event input onChange event
25
+ */
26
+ handleChange = ( event ) => {
27
+ const current = ( event.target.checked ) ? 'current' : '';
28
+ this.props.setAttributes( { month: current } );
29
+ }
30
+
31
+ /**
32
+ * Handle year input change
33
+ *
34
+ * @param {Object} event input onChange event
35
+ */
36
+ handleYearChange = ( event ) => {
37
+ const { month, monthValid } = this.state;
38
+
39
+ if ( ! event.target.validity.patternMismatch && monthValid ) {
40
+ this.props.setAttributes( { month: `${ event.target.value }-${ month }` } );
41
+ } else {
42
+ this.props.setAttributes( { month: '' } );
43
+ }
44
+
45
+ this.setState( {
46
+ year: event.target.value,
47
+ yearValid: ! event.target.validity.patternMismatch,
48
+ } );
49
+ }
50
+
51
+ /**
52
+ * Handle month input change
53
+ *
54
+ * @param {Object} event input onChange event
55
+ */
56
+ handleMonthChange = ( event ) => {
57
+ const { year, yearValid } = this.state;
58
+
59
+ if ( ! event.target.validity.patternMismatch && yearValid ) {
60
+ this.props.setAttributes( { month: `${ year }-${ event.target.value }` } );
61
+ } else {
62
+ this.props.setAttributes( { month: '' } );
63
+ }
64
+
65
+ this.setState( {
66
+ month: event.target.value,
67
+ monthValid: ! event.target.validity.patternMismatch,
68
+ } );
69
+ }
70
+
71
+ /**
72
+ * @return {ReactElement} Month Setting
73
+ */
74
+ render() {
75
+ const { month } = this.props.attributes;
76
+ const current = ( month === 'current' ) ? true : false;
77
+
78
+ return (
79
+ <div className={ 'ecs-settings-month' }>
80
+ <div className={ 'ecs-setting-current' }>
81
+ <input
82
+ id={ 'ecs-setting-current' }
83
+ type={ 'checkbox' }
84
+ checked={ current }
85
+ onChange={ this.handleChange }
86
+ /><label
87
+ className={ 'components-base-control__label' }
88
+ htmlFor={ 'ecs-setting-current' }
89
+ >{ __( 'Current Month Only?', 'the-events-calendar-shortcode' ) }</label>
90
+ </div>
91
+
92
+ { ! current ? <div className={ 'ecs-setting-year-month' }>
93
+ <div className={ 'ecs-setting-text-field' }>
94
+ <label
95
+ className={ 'ecs-setting-label' }
96
+ htmlFor={ 'ecs-setting-year' }
97
+ >{ __( 'Year', 'the-events-calendar-shortcode' ) }</label>
98
+ <input
99
+ id={ 'ecs-setting-year' }
100
+ style={ { borderColor: this.state.yearValid ? 'inherit' : 'red' } }
101
+ type={ 'text' }
102
+ label={ __( 'Year' ) }
103
+ placeholder={ 'YYYY' }
104
+ value={ this.state.year }
105
+ pattern={ '[0-9]{4}' }
106
+ onChange={ this.handleYearChange }
107
+ />
108
+ </div>
109
+
110
+ <div className={ 'ecs-month-divider' } />
111
+
112
+ <div className={ 'ecs-setting-text-field' }>
113
+ <label
114
+ className={ 'ecs-setting-label' }
115
+ htmlFor={ 'ecs-setting-month' }
116
+ >{ __( 'Month', 'the-events-calendar-shortcode' ) }</label>
117
+ <input
118
+ id={ 'ecs-setting-month' }
119
+ style={ { borderColor: this.state.monthValid ? 'inherit' : 'red' } }
120
+ type={ 'text' }
121
+ placeholder={ 'MM' }
122
+ value={ this.state.month }
123
+ pattern={ '(0[1-9]|1[012])' }
124
+ onChange={ this.handleMonthChange }
125
+ />
126
+ </div>
127
+ </div> : null }
128
+ </div>
129
+ );
130
+ }
131
+ }
132
+
133
+ export default MonthSetting;
block/components/orderBySetting.js ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import Select from 'react-select';
2
+
3
+ const { Component, Fragment } = wp.element;
4
+ const { __ } = wp.i18n;
5
+
6
+ class OrderBySetting extends Component {
7
+ /**
8
+ * Handle selection change
9
+ *
10
+ * @param {Array} selectedOrderBy the selected option
11
+ */
12
+ handleChange = ( selectedOrderBy ) => {
13
+ this.props.setAttributes( { orderby: selectedOrderBy.value } );
14
+ }
15
+
16
+ /**
17
+ * @return {ReactElement} OrderBy Setting
18
+ */
19
+ render() {
20
+ const { orderby } = this.props.attributes;
21
+
22
+ const orderByOptions = [
23
+ {
24
+ label: __( 'Start Date', 'the-events-calendar-shortcode' ),
25
+ value: 'startdate',
26
+ },
27
+ {
28
+ label: __( 'End Date', 'the-events-calendar-shortcode' ),
29
+ value: 'enddate',
30
+ },
31
+ {
32
+ label: __( 'Title', 'the-events-calendar-shortcode' ),
33
+ value: 'title',
34
+ },
35
+ ];
36
+ const selectedOrderBy = orderByOptions.filter( ( option ) => option.value === orderby );
37
+
38
+ return (
39
+ <Fragment>
40
+ <Select
41
+ className={ 'ecs-select' }
42
+ classNamePrefix={ 'select' }
43
+ value={ selectedOrderBy }
44
+ onChange={ this.handleChange }
45
+ options={ orderByOptions }
46
+ />
47
+ </Fragment>
48
+ );
49
+ }
50
+ }
51
+
52
+ export default OrderBySetting;
53
+
block/components/orderSetting.js ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import Select from 'react-select';
2
+
3
+ const { Component, Fragment } = wp.element;
4
+ const { __ } = wp.i18n;
5
+
6
+ class OrderSetting extends Component {
7
+ /**
8
+ * Handle selection change
9
+ *
10
+ * @param {Array} selectedOrder the selected categories
11
+ */
12
+ handleChange = ( selectedOrder ) => {
13
+ this.props.setAttributes( { order: selectedOrder.value } );
14
+ }
15
+
16
+ /**
17
+ * @return {ReactElement} Order Setting
18
+ */
19
+ render() {
20
+ const { order } = this.props.attributes;
21
+
22
+ const orderOptions = [
23
+ {
24
+ label: __( 'Ascending', 'the-events-calendar-shortcode' ),
25
+ value: 'ASC',
26
+ },
27
+ {
28
+ label: __( 'Descending', 'the-events-calendar-shortcode' ),
29
+ value: 'DESC',
30
+ },
31
+ ];
32
+ const selectedOrder = orderOptions.filter( ( option ) => option.value === order );
33
+
34
+ return (
35
+ <Fragment>
36
+ <Select
37
+ className={ 'ecs-select' }
38
+ classNamePrefix={ 'select' }
39
+ value={ selectedOrder }
40
+ onChange={ this.handleChange }
41
+ options={ orderOptions }
42
+ />
43
+ </Fragment>
44
+ );
45
+ }
46
+ }
47
+
48
+ export default OrderSetting;
49
+
block/components/pastSetting.js ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const { Component, Fragment } = wp.element;
2
+ const { __ } = wp.i18n;
3
+
4
+ /**
5
+ * Setting component for past
6
+ */
7
+ class PastSetting extends Component {
8
+ /**
9
+ * Handle past checkbox input change
10
+ *
11
+ * @param {Object} event input onChange event
12
+ */
13
+ handleChange = ( event ) => {
14
+ const past = ( event.target.checked ) ? 'yes' : '';
15
+ this.props.setAttributes( { past: past } );
16
+ }
17
+
18
+ /**
19
+ * @return {ReactElement} Past Setting
20
+ */
21
+ render() {
22
+ const past = ( this.props.attributes.past === 'yes' ) ? true : false;
23
+
24
+ return (
25
+ <Fragment>
26
+ <input
27
+ id={ 'ecs-setting-past' }
28
+ type={ 'checkbox' }
29
+ checked={ past }
30
+ onChange={ this.handleChange }
31
+ />
32
+ <label
33
+ className={ 'components-base-control__label' }
34
+ htmlFor={ 'ecs-setting-past' }
35
+ >{ __( 'Show only past events?', 'the-events-calendar-shortcode' ) }</label>
36
+ </Fragment>
37
+ );
38
+ }
39
+ }
40
+
41
+ export default PastSetting;
block/components/settingSelector.js ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import Select from 'react-select';
2
+
3
+ const { Component } = wp.element;
4
+ const { __ } = wp.i18n;
5
+
6
+ class SettingSelector extends Component {
7
+ /**
8
+ * @param {string} newSetting the selected setting to add
9
+ */
10
+ handleChange = ( newSetting ) => {
11
+ const { handleSelect } = this.props;
12
+
13
+ if ( newSetting.value === 'other' ) {
14
+ // handle keyValue setting
15
+ handleSelect( newSetting.value, true );
16
+ } else {
17
+ // handle new normal setting
18
+ handleSelect( newSetting.value );
19
+ }
20
+ }
21
+
22
+ /**
23
+ * @return {ReactElement} Setting Selector
24
+ */
25
+ render() {
26
+ const { settingsConfig, activeSettings } = this.props;
27
+
28
+ // build options from config object
29
+ const selectOptions = Object.keys( settingsConfig ).map( ( key ) => {
30
+ return {
31
+ value: key,
32
+ label: settingsConfig[ key ].label,
33
+ };
34
+ } );
35
+
36
+ // add default option
37
+ selectOptions.push( {
38
+ value: 'new-setting',
39
+ label: __( 'Choose another option', 'the-events-calendar-shortcode' ),
40
+ isDisabled: true,
41
+ } );
42
+
43
+ // generate the available options
44
+ const availableOptions = selectOptions.filter( ( option ) => {
45
+ return activeSettings.indexOf( option.value ) < 0;
46
+ } );
47
+
48
+ return (
49
+ <Select
50
+ className={ 'ecs-select' }
51
+ classNamePrefix={ 'select' }
52
+ options={ availableOptions }
53
+ value={ {
54
+ value: 'new-setting',
55
+ label: __( 'Choose another option', 'the-events-calendar-shortcode' ),
56
+ } }
57
+ onChange={ this.handleChange }
58
+ />
59
+ );
60
+ }
61
+ }
62
+
63
+ export default SettingSelector;
64
+
block/components/settingSwitcher.js ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import Select from 'react-select';
2
+
3
+ const { Component } = wp.element;
4
+
5
+ class SettingSwitcher extends Component {
6
+ /**
7
+ * @param {string} newSetting the selected setting to switch to
8
+ */
9
+ handleChange = ( newSetting ) => {
10
+ const { setting, uid, handleSwitch } = this.props;
11
+
12
+ if ( newSetting.value === 'other' ) {
13
+ // handle switching to a keyValue setting
14
+ handleSwitch( setting, newSetting.value, 'add' );
15
+ } else if ( setting === 'other' ) {
16
+ // handle switching from a keyValue setting
17
+ handleSwitch( setting, newSetting.value, uid );
18
+ } else {
19
+ // handle switching between normal setting
20
+ handleSwitch( setting, newSetting.value );
21
+ }
22
+ }
23
+
24
+ /**
25
+ * @return {ReactElement} Setting Switcher
26
+ */
27
+ render() {
28
+ const { settingsConfig, setting } = this.props;
29
+ let { activeSettings } = this.props;
30
+
31
+ // build options from config object
32
+ const selectOptions = Object.keys( settingsConfig ).map( ( key ) => {
33
+ return {
34
+ value: key,
35
+ label: settingsConfig[ key ].label,
36
+ };
37
+ } );
38
+
39
+ // remove the current setting from the activeSettings in order to display it in the select
40
+ activeSettings = setting ? activeSettings.filter( ( value ) => value !== setting ) : activeSettings;
41
+
42
+ // generate the available options
43
+ const availableOptions = selectOptions.filter( ( option ) => {
44
+ return activeSettings.indexOf( option.value ) < 0;
45
+ } );
46
+
47
+ const selectedValue = selectOptions.filter( ( option ) => option.value === setting );
48
+
49
+ return (
50
+ <Select
51
+ className={ 'ecs-select' }
52
+ classNamePrefix={ 'select' }
53
+ options={ availableOptions }
54
+ value={ selectedValue }
55
+ onChange={ this.handleChange }
56
+ />
57
+ );
58
+ }
59
+ }
60
+
61
+ export default SettingSwitcher;
62
+
block/components/thumbnailSetting.js ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const { Component, Fragment } = wp.element;
2
+ const { __ } = wp.i18n;
3
+ const { TextControl } = wp.components;
4
+
5
+ /**
6
+ * Setting component for month
7
+ */
8
+ class ThumbnailSetting extends Component {
9
+ /**
10
+ * Handle current checkbox input change
11
+ *
12
+ * @param {Object} event input onChange event
13
+ */
14
+ handleChange = ( event ) => {
15
+ this.props.setAttributes( { thumb: ( event.target.checked ) ? 'true' : 'false' } );
16
+ }
17
+
18
+ handleThumbWidthChange = ( event ) => {
19
+ this.props.setAttributes( {
20
+ thumbwidth: isNaN( parseInt( event.target.value ) ) ? '' : parseInt( event.target.value )
21
+ } );
22
+ }
23
+
24
+ handleThumbHeightChange = ( event ) => {
25
+ this.props.setAttributes( {
26
+ thumbheight: isNaN( parseInt( event.target.value ) ) ? '' : parseInt( event.target.value )
27
+ } );
28
+ }
29
+
30
+ handleThumbSizeChange = ( value ) => {
31
+ this.props.setAttributes( { thumbsize: value } );
32
+ }
33
+
34
+ /**
35
+ * @return {ReactElement} Thumb Setting
36
+ */
37
+ render() {
38
+ const { thumb, thumbwidth, thumbheight, thumbsize } = this.props.attributes;
39
+
40
+ return (
41
+ <div className={ 'ecs-settings-thumb' }>
42
+ <div>
43
+ <input
44
+ id={ 'ecs-setting-thumb' }
45
+ type={ 'checkbox' }
46
+ checked={ thumb === 'true' }
47
+ onChange={ this.handleChange }
48
+ /><label
49
+ className={ 'components-base-control__label' }
50
+ htmlFor={ 'ecs-setting-thumb' }
51
+ >{ __( 'Show thumbnail image', 'the-events-calendar-shortcode' ) }</label>
52
+ </div>
53
+
54
+ { thumb !== 'false' ? <Fragment>
55
+ <div className={ 'ecs-settings-thumb-width-height' }>
56
+ <div className={ 'ecs-setting-text-field' }>
57
+ <label
58
+ className={ 'ecs-setting-label' }
59
+ htmlFor={ 'ecs-setting-thumbwidth' }
60
+ >{ __( 'Width', 'the-events-calendar-shortcode' ) }</label>
61
+ <input
62
+ id={ 'ecs-setting-thumbwidth' }
63
+ type={ 'text' }
64
+ label={ __( 'Width' ) }
65
+ value={ thumbwidth }
66
+ onChange={ this.handleThumbWidthChange }
67
+ />
68
+ </div>
69
+
70
+ <div className={ 'ecs-thumb-divider' }>
71
+ x
72
+ </div>
73
+
74
+ <div className={ 'ecs-setting-text-field' }>
75
+ <label
76
+ className={ 'ecs-setting-label' }
77
+ htmlFor={ 'ecs-setting-thumbheight' }
78
+ >{ __( 'Height', 'the-events-calendar-shortcode' ) }</label>
79
+ <input
80
+ id={ 'ecs-setting-thumbheight' }
81
+ type={ 'text' }
82
+ label={ __( 'Height' ) }
83
+ value={ thumbheight }
84
+ onChange={ this.handleThumbHeightChange }
85
+ />
86
+ </div>
87
+
88
+ <div className={ 'ecs-thumb-divider' }>
89
+ <em>or</em>
90
+ </div>
91
+ </div>
92
+ <div className={ 'ecs-settings-thumb-size' }>
93
+ <TextControl
94
+ label={ __( 'Size', 'the-events-calendar-shortcode' ) }
95
+ value={ thumbsize }
96
+ onChange={ this.handleThumbSizeChange }
97
+ />
98
+ </div>
99
+ <div className={ 'ecs-setting-help' }>
100
+ { __( 'This differs depending on the your theme, but typical defaults include "medium" and "large"', 'the-events-calendar-shortcode' ) }
101
+ </div>
102
+ </Fragment> : null }
103
+ </div>
104
+ );
105
+ }
106
+ }
107
+
108
+ export default ThumbnailSetting;
block/components/venueSetting.js ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const { Component, Fragment } = wp.element;
2
+ const { __ } = wp.i18n;
3
+
4
+ /**
5
+ * Setting component for past
6
+ */
7
+ class VenueSetting extends Component {
8
+ handleChange = ( event ) => {
9
+ this.props.setAttributes( { venue: ( event.target.checked ) ? 'true' : 'false' } );
10
+ }
11
+
12
+ /**
13
+ * @return {ReactElement} Venue Setting
14
+ */
15
+ render() {
16
+ const venue = ( this.props.attributes.venue === 'false' ) ? false : true;
17
+
18
+ return (
19
+ <Fragment>
20
+ <input
21
+ id={ 'ecs-setting-venue' }
22
+ type={ 'checkbox' }
23
+ checked={ venue }
24
+ onChange={ this.handleChange }
25
+ />
26
+ <label
27
+ className={ 'components-base-control__label' }
28
+ htmlFor={ 'ecs-setting-venue' }
29
+ >{ __( 'Show venue information', 'the-events-calendar-shortcode' ) }</label>
30
+ </Fragment>
31
+ );
32
+ }
33
+ }
34
+
35
+ export default VenueSetting;
block/config/settings.js ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import DesignSetting from '../components/designSetting';
2
+ import CategorySetting from '../components/categorySetting';
3
+ import LimitSetting from '../components/limitSetting';
4
+ import MonthSetting from '../components/monthSetting';
5
+ import ExcerptSetting from '../components/excerptSetting';
6
+ import PastSetting from '../components/pastSetting';
7
+ import ThumbnailSetting from '../components/thumbnailSetting';
8
+ import OrderBySetting from '../components/orderBySetting';
9
+ import OrderSetting from '../components/orderSetting';
10
+ import KeyValueSetting from '../components/keyValueSetting';
11
+ import VenueSetting from "../components/venueSetting";
12
+
13
+ const { __ } = wp.i18n;
14
+
15
+ const config = {
16
+ design: {
17
+ component: DesignSetting,
18
+ label: __( 'Design', 'the-events-calendar-shortcode' ),
19
+ removable: false,
20
+ },
21
+ limit: {
22
+ component: LimitSetting,
23
+ label: __( 'Number of Events', 'the-events-calendar-shortcode' ),
24
+ removable: false,
25
+ },
26
+ cat: {
27
+ component: CategorySetting,
28
+ label: __( 'Category', 'the-events-calendar-shortcode' ),
29
+ removable: true,
30
+ },
31
+ month: {
32
+ component: MonthSetting,
33
+ label: __( 'Month', 'the-events-calendar-shortcode' ),
34
+ removable: true,
35
+ },
36
+ excerpt: {
37
+ component: ExcerptSetting,
38
+ label: __( 'Excerpt (Short Description)', 'the-events-calendar-shortcode' ),
39
+ removable: true,
40
+ },
41
+ thumb: {
42
+ component: ThumbnailSetting,
43
+ label: __( 'Thumbnail', 'the-events-calendar-shortcode' ),
44
+ removable: true,
45
+ },
46
+ venue: {
47
+ component: VenueSetting,
48
+ label: __( 'Venue', 'the-events-calendar-shortcode' ),
49
+ removable: true,
50
+ },
51
+ past: {
52
+ component: PastSetting,
53
+ label: __( 'Past Events', 'the-events-calendar-shortcode' ),
54
+ removable: true,
55
+ },
56
+ orderby: {
57
+ component: OrderBySetting,
58
+ label: __( 'Order By', 'the-events-calendar-shortcode' ),
59
+ removable: true,
60
+ },
61
+ order: {
62
+ component: OrderSetting,
63
+ label: __( 'Order', 'the-events-calendar-shortcode' ),
64
+ removable: true,
65
+ },
66
+ other: {
67
+ component: KeyValueSetting,
68
+ label: __( 'Advanced/Other', 'the-events-calendar-shortcode' ),
69
+ removable: true,
70
+ },
71
+ };
72
+
73
+ export default config;
block/config/svg.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ const logo = <svg xmlns="http://www.w3.org/2000/svg" width="525" height="462" viewBox="0 0 525 462">
2
+ <image x="18" y="4" width="488" height="443" xlinkHref="data:img/png;base64,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" />
3
+ </svg>;
4
+
5
+ export default logo;
block/containers/block.js ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import BlockEdit from './blockEdit';
2
+ import BlockPreview from './blockPreview';
3
+
4
+ const { Component } = wp.element;
5
+
6
+ class Block extends Component {
7
+ /**
8
+ * @return {ReactElement} The block preview or the edit form
9
+ */
10
+ render() {
11
+ const { isSelected } = this.props;
12
+ const blockMode = isSelected ? <BlockEdit { ...this.props } /> : <BlockPreview { ...this.props } />;
13
+
14
+ return blockMode;
15
+ }
16
+ }
17
+
18
+ export default Block;
block/containers/blockEdit.js ADDED
@@ -0,0 +1,241 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import SettingSelector from '../components/settingSelector';
2
+ import SettingSwitcher from '../components/settingSwitcher';
3
+
4
+ import uuid from 'uuid/v4';
5
+ import { withContentRect } from 'react-measure';
6
+
7
+ const { Component, Fragment } = wp.element;
8
+ const { IconButton } = wp.components;
9
+ const { __ } = wp.i18n;
10
+
11
+ class BlockEdit extends Component {
12
+ /**
13
+ * Handle addition of settings from settings list and attributes
14
+ *
15
+ * @param {string} setting The setting to add
16
+ * @param {boolean} keyValue Whether to create unique id for keyValue type setting
17
+ */
18
+ handleAddSetting = ( setting, keyValue ) => {
19
+ let { settings } = this.props.attributes;
20
+ settings = JSON.parse( settings );
21
+
22
+ if ( keyValue ) {
23
+ setting = this.handleAddKeyValue();
24
+ }
25
+
26
+ settings.push( setting );
27
+
28
+ this.props.setAttributes( {
29
+ settings: JSON.stringify( settings ),
30
+ } );
31
+ }
32
+
33
+ /**
34
+ * Handle switching of settings from settings list and attributes
35
+ *
36
+ * @param {string} setting The setting to remove
37
+ * @param {string} newSetting The setting to add
38
+ * @param {string|null} keyValue Whether to create unique id for keyValue type setting
39
+ */
40
+ handleSwitchSetting = ( setting, newSetting, keyValue ) => {
41
+ let { settings } = this.props.attributes;
42
+ settings = JSON.parse( settings );
43
+
44
+ if ( keyValue === 'add' ) {
45
+ newSetting = this.handleAddKeyValue();
46
+ }
47
+
48
+ if ( keyValue && keyValue.substring( 0, 2 ) === 'kv' ) {
49
+ this.handleRemoveKeyValue( keyValue );
50
+ setting = keyValue;
51
+ } else {
52
+ this.deleteAttributes( setting );
53
+ }
54
+
55
+ // swap old setting with new setting
56
+ const newSettings = settings.map( ( value ) => value === setting ? newSetting : value );
57
+
58
+ this.props.setAttributes( { settings: JSON.stringify( newSettings ) } );
59
+ }
60
+
61
+ /**
62
+ * Handle removal of settings from settings list and attributes
63
+ *
64
+ * @param {string} setting The setting to remove
65
+ * @param {string|null} uid key value setting unique id or null
66
+ */
67
+ handleRemoveSetting = ( setting, uid ) => {
68
+ let { settings } = this.props.attributes;
69
+ settings = JSON.parse( settings );
70
+
71
+ if ( uid ) {
72
+ this.handleRemoveKeyValue( uid );
73
+ setting = uid;
74
+ } else {
75
+ this.deleteAttributes( setting );
76
+ }
77
+
78
+ // remove setting
79
+ const newSettings = settings.filter( ( name ) => name !== setting );
80
+
81
+ this.props.setAttributes( {
82
+ settings: JSON.stringify( newSettings ),
83
+ } );
84
+ }
85
+ /**
86
+ * Utility function to delete one or more attributes
87
+ *
88
+ * @param {string} setting The setting to process
89
+ */
90
+ deleteAttributes = ( setting ) => {
91
+ const { settingsConfig, setAttributes } = this.props;
92
+
93
+ let delAttributes = [ setting ];
94
+ if ( settingsConfig[ setting ].hasOwnProperty( 'delAttributes' ) ) {
95
+ delAttributes = settingsConfig[ setting ].delAttributes;
96
+ }
97
+
98
+ delAttributes.forEach( ( attribute ) => {
99
+ setAttributes( { [ attribute ]: undefined } );
100
+ } );
101
+ }
102
+
103
+ /**
104
+ * Handle switching of settings from settings table and attributes
105
+ *
106
+ * @return {string} generated unique id for key value setting
107
+ */
108
+ handleAddKeyValue = () => {
109
+ let { keyValue } = this.props.attributes;
110
+ keyValue = typeof keyValue === 'undefined' ? {} : JSON.parse( keyValue );
111
+
112
+ const uid = `kv-${ uuid() }`;
113
+ const newKeyValue = { ...keyValue, [ uid ]: {
114
+ key: '',
115
+ value: '',
116
+ } };
117
+
118
+ this.props.setAttributes( { keyValue: JSON.stringify( newKeyValue ) } );
119
+
120
+ return uid;
121
+ }
122
+
123
+ /**
124
+ * Handle removing setting from keyValue object
125
+ *
126
+ * @param {string} uid The unique id of the key value setting
127
+ */
128
+ handleRemoveKeyValue = ( uid ) => {
129
+ let { keyValue } = this.props.attributes;
130
+ keyValue = typeof keyValue === 'undefined' ? {} : JSON.parse( keyValue );
131
+ delete keyValue[ uid ];
132
+
133
+ this.props.setAttributes( { keyValue: JSON.stringify( keyValue ) } );
134
+ }
135
+
136
+ /**
137
+ * @return {ReactElement} settingsRender The rendered settings
138
+ */
139
+ renderSettingsTable = () => {
140
+ const { settingsConfig, contentRect } = this.props;
141
+ let { settings } = this.props.attributes;
142
+ settings = JSON.parse( settings );
143
+
144
+ // Loop through default or active settings and build the settings area
145
+ const settingsRender = settings.map( ( setting ) => {
146
+ // Check if Key Value setting
147
+ let uid = null;
148
+ if ( setting.substring( 0, 2 ) === 'kv' ) {
149
+ uid = setting;
150
+ setting = 'other';
151
+ }
152
+
153
+ // bail if no config for this setting
154
+ if ( typeof settingsConfig[ setting ] === 'undefined' ) {
155
+ return;
156
+ }
157
+
158
+ // Get the setting selector unless default setting
159
+ const selectorComponent = settingsConfig[ setting ].removable ?
160
+ <SettingSwitcher
161
+ setting={ setting }
162
+ uid={ uid }
163
+ activeSettings={ settings }
164
+ settingsConfig={ settingsConfig }
165
+ handleSwitch={ this.handleSwitchSetting }
166
+ { ...this.props }
167
+ /> : <span>{ settingsConfig[ setting ].label }</span>;
168
+
169
+ // Get the right component from our config
170
+ const SettingComponent = settingsConfig[ setting ].component;
171
+
172
+ // Add remove button if removable
173
+ const removeCallback = () => this.handleRemoveSetting( setting, uid );
174
+ const removeComponent = settingsConfig[ setting ].removable ?
175
+ <IconButton
176
+ icon={ 'no-alt' }
177
+ onClick={ removeCallback }
178
+ /> : null;
179
+
180
+ const rowClassName = contentRect.bounds.width < 530 ? 'ecs-settings-row mobile' : 'ecs-settings-row';
181
+
182
+ return (
183
+ <div className={ rowClassName } key={ uid ? uid : setting }>
184
+ <div className={ 'ecs-selector-col' }>
185
+ { selectorComponent }
186
+ </div>
187
+ <div className={ 'ecs-setting-col' }>
188
+ <SettingComponent
189
+ { ...this.props }
190
+ uid={ uid }
191
+ />
192
+ </div>
193
+ <div className={ 'ecs-remove-col' }>
194
+ { removeComponent }
195
+ </div>
196
+ </div>
197
+ );
198
+ } );
199
+
200
+ const addClassName = contentRect.bounds.width < 680 ? 'ecs-setting-add mobile' : 'ecs-setting-add';
201
+
202
+ return (
203
+ <Fragment>
204
+ <div className={ 'ecs-settings-area' }>
205
+ { settingsRender }
206
+ </div>
207
+ <div className={ addClassName }>
208
+ <SettingSelector
209
+ activeSettings={ settings }
210
+ settingsConfig={ settingsConfig }
211
+ handleSelect={ this.handleAddSetting }
212
+ { ...this.props }
213
+ />
214
+ <div className={ 'ecs-flex-fill' }></div>
215
+ </div>
216
+ </Fragment>
217
+ );
218
+ }
219
+
220
+ /**
221
+ * @return {ReactElement} The settings controls
222
+ */
223
+ render() {
224
+ return (
225
+ <Fragment>
226
+ <div className={ 'ecs-block-header' }>
227
+ <h3>{ __( 'The Events Calendar Block', 'the-events-calendar-shortcode' ) }</h3>
228
+ </div>
229
+
230
+ <div
231
+ className={ 'ecs-block-edit' }
232
+ ref={ this.props.measureRef }>
233
+ <h4>{ __( 'Configure your settings', 'the-events-calendar-shortcode' ) }</h4>
234
+ { this.renderSettingsTable() }
235
+ </div>
236
+ </Fragment>
237
+ );
238
+ }
239
+ }
240
+
241
+ export default withContentRect( 'bounds' )( BlockEdit );
block/containers/blockPreview.js ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const { Component, Fragment } = wp.element;
2
+ const { ServerSideRender, withFilters } = wp.components;
3
+
4
+ class BlockPreview extends Component {
5
+ /**
6
+ * @return {ReactElement} The block preview
7
+ */
8
+ render() {
9
+ const { attributes } = this.props;
10
+
11
+ return (
12
+ <Fragment>
13
+ <ServerSideRender
14
+ block={ 'events-calendar-shortcode/block' }
15
+ attributes={ attributes }
16
+ />
17
+ </Fragment>
18
+ );
19
+ }
20
+ }
21
+
22
+ export default withFilters( 'ecs.blockPreview' )( BlockPreview );
block/index.js ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import settingsConfig from './config/settings';
2
+ import logo from './config/svg';
3
+ import Block from './containers/block';
4
+
5
+ const { __ } = wp.i18n;
6
+ const { applyFilters } = wp.hooks;
7
+ const { registerBlockType } = wp.blocks;
8
+
9
+ registerBlockType( 'events-calendar-shortcode/block', {
10
+ title: __( 'The Events Calendar Block', 'the-events-calendar-shortcode' ),
11
+ description: __( 'Display your events from The Events Calendar', 'the-events-calendar-shortcode' ),
12
+ icon: logo,
13
+ category: 'common',
14
+ supports: {
15
+ html: false,
16
+ },
17
+
18
+ edit: ( props ) => {
19
+ return (
20
+ <Block
21
+ settingsConfig={ applyFilters( 'ecs.settingsConfig', settingsConfig ) }
22
+ { ...props }
23
+ />
24
+ );
25
+ },
26
+
27
+ save: () => {
28
+ return null;
29
+ },
30
+ } );
block/init.php ADDED
@@ -0,0 +1,117 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Register the block assets and server render callback
4
+ *
5
+ * @since 1.9.0
6
+ */
7
+ function ecs_register_block() {
8
+ if ( ! function_exists( 'register_block_type' ) ) {
9
+ return;
10
+ }
11
+
12
+ wp_register_script(
13
+ 'ecs-block',
14
+ plugins_url( 'static/block.js', dirname( __FILE__ ) ),
15
+ array( 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-editor' ),
16
+ Events_Calendar_Shortcode::VERSION
17
+ );
18
+
19
+ wp_set_script_translations( 'ecs-block', 'the-events-calendar-shortcode' );
20
+
21
+ wp_register_style(
22
+ 'ecs-block',
23
+ plugins_url( 'static/ecs-block.css', dirname( __FILE__ ) ),
24
+ array(),
25
+ Events_Calendar_Shortcode::VERSION
26
+ );
27
+
28
+ $attributes = apply_filters( 'ecs_block_attributes', array(
29
+ 'design' => array(
30
+ 'type' => 'string',
31
+ 'default' => 'standard',
32
+ ),
33
+ 'limit' => array(
34
+ 'type' => 'number',
35
+ 'default' => 5,
36
+ ),
37
+ 'settings' => array(
38
+ 'type' => 'string',
39
+ 'default' => json_encode( array( 'design', 'limit' ) ),
40
+ ),
41
+ 'cat' => array( 'type' => 'string' ),
42
+ 'month' => array( 'type' => 'string' ),
43
+ 'thumb' => array(
44
+ 'type' => 'string',
45
+ 'default' => 'false',
46
+ ),
47
+ 'thumbsize' => array( 'type' => 'string' ),
48
+ 'thumbwidth' => array(
49
+ 'type' => 'string',
50
+ 'default' => '150',
51
+ ),
52
+ 'thumbheight' => array(
53
+ 'type' => 'string',
54
+ 'default' => '150',
55
+ ),
56
+ 'venue' => array(
57
+ 'type' => 'string',
58
+ 'default' => 'false',
59
+ ),
60
+ 'past' => array( 'type' => 'string' ),
61
+ 'orderby' => array(
62
+ 'type' => 'string',
63
+ 'default' => 'startdate',
64
+ ),
65
+ 'order' => array(
66
+ 'type' => 'string',
67
+ 'default' => 'ASC',
68
+ ),
69
+ 'excerpt' => array(
70
+ 'type' => 'string',
71
+ 'default' => 'false',
72
+ ),
73
+ 'keyValue' => array( 'type' => 'string' ),
74
+ ) );
75
+
76
+ register_block_type( 'events-calendar-shortcode/block', array(
77
+ 'style' => 'ecs-block',
78
+ 'script' => 'ecs-block',
79
+ 'render_callback' => 'ecs_render_block',
80
+ 'attributes' => $attributes,
81
+ ) );
82
+ }
83
+ add_action( 'init', 'ecs_register_block' );
84
+
85
+
86
+ /**
87
+ * Maps the saved block attributes to the existing shortcode for front-end render
88
+ *
89
+ * @param array $attributes
90
+ *
91
+ * @since 1.9.0
92
+ */
93
+ function ecs_render_block( $attributes ) {
94
+ $attribute_str = '';
95
+
96
+ foreach ( $attributes as $key => $value ) {
97
+ if ( $key === 'settings' )
98
+ continue;
99
+
100
+ if ( $key === 'keyValue' ) {
101
+ $kv_attributes = json_decode( $value );
102
+
103
+ foreach ( $kv_attributes as $kv_attribute ) {
104
+ $attribute_str .= " {$kv_attribute->key}=\"{$kv_attribute->value}\"";
105
+ }
106
+ continue;
107
+ }
108
+
109
+ if ( isset( $attributes[ $key ] ) && ! empty( $attributes[ $key ] ) ) {
110
+ $attribute_str .= " {$key}=\"{$value}\"";
111
+ }
112
+ }
113
+
114
+ $shortcode_str = "[ecs-list-events{$attribute_str}]";
115
+
116
+ return do_shortcode( $shortcode_str );
117
+ }
block/styles/index.scss ADDED
@@ -0,0 +1,217 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ // Header
3
+ .ecs-block-header {
4
+ text-align: center;
5
+
6
+ h3 {
7
+ margin: 0;
8
+ }
9
+ }
10
+
11
+ // Block Container
12
+ .ecs-block-edit {
13
+ padding: 10px 15px;
14
+
15
+ font-family: sans-serif;
16
+ font-size: 18px;
17
+
18
+ h4 {
19
+ margin: 0;
20
+ }
21
+ }
22
+
23
+ // Settings Row
24
+ .ecs-settings-row {
25
+ display: flex;
26
+ padding: 18px 0;
27
+ border-bottom: 1px solid #e5e5e5;
28
+
29
+ &.mobile {
30
+ flex-direction: column;
31
+
32
+ > * {
33
+ margin-bottom: 8px;
34
+ }
35
+
36
+ .ecs-remove-col {
37
+ align-self: center;
38
+ margin-bottom: 0;
39
+ }
40
+ }
41
+
42
+ > * {
43
+ padding: 0 10px;
44
+ }
45
+
46
+ .ecs-selector-col {
47
+ flex: 3;
48
+ display: flex;
49
+ align-items: center;
50
+ }
51
+
52
+ .ecs-setting-col {
53
+ flex: 4;
54
+ }
55
+
56
+ .ecs-remove-col {
57
+ flex: 1;
58
+ display: flex;
59
+ align-items: center;
60
+ justify-content: flex-end;
61
+ }
62
+ }
63
+
64
+ // Setting Selector
65
+ .ecs-setting-add {
66
+ display: flex;
67
+ padding: 18px 0;
68
+
69
+ > .ecs-select {
70
+ flex: 3;
71
+ padding: 0 10px;
72
+ }
73
+
74
+ > .ecs-flex-fill {
75
+ flex: 5;
76
+ padding: 0 10px;
77
+ }
78
+
79
+ &.mobile {
80
+ > .ecs-flex-fill {
81
+ display: none;
82
+ }
83
+ }
84
+ }
85
+
86
+ // General Setting Input Text
87
+ .ecs-setting-text-field {
88
+ display: flex;
89
+ flex-direction: column;
90
+
91
+ label {
92
+ font-size: 13px;
93
+ }
94
+ }
95
+
96
+ .ecs-setting-help {
97
+ line-height: 1.1;
98
+ font-size: 16px;
99
+ margin-top: 10px;
100
+ }
101
+
102
+ // Key Value Setting
103
+ .ecs-key-value {
104
+ display: flex;
105
+
106
+ :first-child {
107
+ margin-right: 10px;
108
+ }
109
+
110
+ > div {
111
+ flex: 1;
112
+ }
113
+ }
114
+
115
+ // React Select Overrides
116
+ .ecs-select {
117
+ flex-grow: 1;
118
+
119
+ &.multi .select__control{
120
+ max-height: none;
121
+ }
122
+
123
+ .select__control {
124
+ max-height: 30px;
125
+ font-family: sans-serif;
126
+ font-size: 18px;
127
+ }
128
+
129
+ .select__value-container {
130
+ padding: 0 8px;
131
+ }
132
+
133
+ .select__menu {
134
+ opacity: 1;
135
+ z-index: 99999;
136
+ margin-top: 0;
137
+ border-radius: 0;
138
+ }
139
+
140
+ .select__option {
141
+ padding: 1px 12px;
142
+ }
143
+
144
+ .select__option--is-disabled.select__option--is-selected {
145
+ display: none;
146
+ }
147
+
148
+ .select__multi-value {
149
+ background-color: #ebf5ff;
150
+ background-color: rgba(0,126,255,.08);
151
+ border-radius: 2px;
152
+ border: 1px solid #c2e0ff;
153
+ border: 1px solid rgba(0,126,255,.24);
154
+ color: #007eff;
155
+ font-size: .9em;
156
+ line-height: 1.4;
157
+ margin-left: 5px;
158
+ margin-top: 5px;
159
+ vertical-align: top;
160
+ }
161
+ }
162
+
163
+ // Month Setting
164
+ .ecs-settings-month {
165
+ display: flex;
166
+ flex-direction: column;
167
+
168
+ .ecs-setting-year-month {
169
+ display: flex;
170
+ align-items: center;
171
+
172
+ .ecs-setting-text-field input {
173
+ width: 60px;
174
+ }
175
+
176
+ .ecs-month-divider {
177
+ width: 10px;
178
+ height: 19px;
179
+ margin: 0 10px;
180
+ border-bottom: 1px solid black;
181
+ }
182
+ }
183
+ }
184
+
185
+ // Thumbnail
186
+ .ecs-settings-thumb {
187
+ display: flex;
188
+ flex-direction: column;
189
+
190
+ .ecs-settings-thumb-width-height {
191
+ display: flex;
192
+ align-items: center;
193
+
194
+ .ecs-setting-text-field input {
195
+ width: 60px;
196
+ }
197
+
198
+ .ecs-thumb-divider {
199
+ width: 10px;
200
+ height: 19px;
201
+ margin: 0 10px;
202
+
203
+ em {
204
+ white-space: nowrap;
205
+ }
206
+ }
207
+ }
208
+
209
+ .ecs-settings-thumb-size {
210
+ margin-top: 5px;
211
+ }
212
+
213
+ .ecs-setting-help {
214
+ margin-top: 5px;
215
+ }
216
+ }
217
+
readme.txt CHANGED
@@ -1,25 +1,25 @@
1
- === The Events Calendar Shortcode ===
2
  Contributors: brianhogg
3
  Tags: event, events, calendar, shortcode, modern tribe
4
  Requires at least: 4.1
5
  Tested up to: 5.0
6
- Stable tag: 1.10.1
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
10
- Adds shortcode functionality to The Events Calendar Plugin (Free Version) by Modern Tribe, so you can list your events anywhere.
11
 
12
  == Description ==
13
 
14
- This plugin adds a shortcode for use with The Events Calendar Plugin (by Modern Tribe).
15
 
16
- With this plugin, just add the shortcode on a page to display a list of your events. For example to show next 8 events in the category festival:
17
 
18
  `[ecs-list-events cat="festival" limit="8"]`
19
 
20
  [youtube https://www.youtube.com/watch?v=0okrUs-xOq4]
21
 
22
- = Shortcode Options: =
23
  * Basic shortcode: `[ecs-list-events]`
24
  * cat - Represents single event category. `[ecs-list-events cat='festival']` Use commas when you want multiple categories `[ecs-list-events cat='festival, workshops']`
25
  * limit - Total number of events to show. Default is 5. `[ecs-list-events limit='3']`
@@ -72,12 +72,11 @@ This plugin is not developed by or affiliated with The Events Calendar or Modern
72
 
73
  3. If you don't already have The Events Calendar (the calendar you add your events to) you will be prompted to install it
74
 
75
- You can then add the `[ecs-list-events]` shortcode to the page or post you want to list events on. [Full list of options available in the documentation](https://eventcalendarnewsletter.com/events-calendar-shortcode-pro-options/?utm_source=wordpress.org&utm_medium=link&utm_campaign=tecs-readme-install-docs&utm_content=description).
76
-
77
 
78
  == Frequently Asked Questions ==
79
 
80
- = What are the shortcode options? =
81
 
82
  * Basic shortcode: `[ecs-list-events]`
83
  * cat - Show events from an event category `[ecs-list-events cat='festival']` or specify multiple categories `[ecs-list-events cat='festival, workshops']`
@@ -118,13 +117,15 @@ With [The Events Calendar Shortcode PRO](https://eventcalendarnewsletter.com/the
118
  * filter bar - Allow the user to filter the events shown in the full calendar design (ie. by category, state/province, country, venue, etc)
119
  * hiderecurring - To only show the first instance of a recurring event, set to 'true'
120
 
121
- [Get The Events Calendar Shortcode PRO](https://eventcalendarnewsletter.com/the-events-calendar-shortcode?utm_source=wordpress.org&utm_medium=link&utm_campaign=tecs-readme-faq-options-bottom&utm_content=description)
122
 
123
- = How do I use this shortcode in a widget? =
 
 
124
 
125
- You can put the shortcode in a text widget, though not all themes support use of a shortcode in a widget.
126
 
127
- If a regular text widget doesn't work, put the shortcode in a <a href="https://wordpress.org/plugins/black-studio-tinymce-widget/">Visual Editor Widget</a>.
128
 
129
  = What are the classes for styling the list of events? =
130
 
@@ -138,26 +139,30 @@ By default the plugin does not include styling. Events are listed in ul li tags
138
  * span .ecs-all-events
139
  * p .ecs-excerpt
140
 
141
- Want a better looking design without knowing any CSS? Check out [The Events Calendar Shortcode PRO](https://eventcalendarnewsletter.com/the-events-calendar-shortcode?utm_source=wordpress.org&utm_medium=link&utm_campaign=tecs-readme-faq-design&utm_content=description)
142
 
143
  = How do I include a list of events in a page template? =
144
 
145
- `include echo do_shortcode("[ecs-list-events]");`
146
 
147
  Put this in the template where you want the events list to display.
148
 
149
  = How do I include a monthly calendar view instead of a list? =
150
 
151
- The [pro version of the plugin](https://eventcalendarnewsletter.com/the-events-calendar-shortcode?utm_source=wordpress.org&utm_medium=link&utm_campaign=tecs-readme-faq-calendar&utm_content=description) has the option to put `design="calendar"` in the shortcode to show a calendar view of the events you want.
152
 
153
  == Screenshots ==
154
 
155
- 1. After adding the plugin, add the shortcode where you want the list of events to appear in the page
156
- 2. Events will appear in a list
157
- 3. Many settings you can use in the shortcode to change what details appear in the events listing
 
158
 
159
  == Upgrade Notice ==
160
 
 
 
 
161
  = 1.10.1 =
162
  * Fixing error with very old versions of PHP
163
 
@@ -257,6 +262,9 @@ Fix missing ul
257
 
258
  == Changelog ==
259
 
 
 
 
260
  = 1.10.1 =
261
  * Fixing error with very old versions of PHP
262
 
1
+ === The Events Calendar Shortcode & Block ===
2
  Contributors: brianhogg
3
  Tags: event, events, calendar, shortcode, modern tribe
4
  Requires at least: 4.1
5
  Tested up to: 5.0
6
+ Stable tag: 2.0
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
10
+ Adds shortcode and block functionality to The Events Calendar Plugin (Free Version) by Modern Tribe, so you can list your events anywhere.
11
 
12
  == Description ==
13
 
14
+ This plugin adds a shortcode and a block for use with The Events Calendar Plugin (by Modern Tribe).
15
 
16
+ With this plugin either add the block in the new editor, or just add the shortcode on a page to display a list of your events. For example to show next 8 events in the category festival:
17
 
18
  `[ecs-list-events cat="festival" limit="8"]`
19
 
20
  [youtube https://www.youtube.com/watch?v=0okrUs-xOq4]
21
 
22
+ = Shortcode and Block Options: =
23
  * Basic shortcode: `[ecs-list-events]`
24
  * cat - Represents single event category. `[ecs-list-events cat='festival']` Use commas when you want multiple categories `[ecs-list-events cat='festival, workshops']`
25
  * limit - Total number of events to show. Default is 5. `[ecs-list-events limit='3']`
72
 
73
  3. If you don't already have The Events Calendar (the calendar you add your events to) you will be prompted to install it
74
 
75
+ You can then add The Events Calendar Block or `[ecs-list-events]` shortcode to the page or post you want to list events on. [Full list of options available in the documentation](https://eventcalendarnewsletter.com/events-calendar-shortcode-pro-options/?utm_source=wordpress.org&utm_medium=link&utm_campaign=tecs-readme-install-docs&utm_content=description).
 
76
 
77
  == Frequently Asked Questions ==
78
 
79
+ = What are the shortcode and block options? =
80
 
81
  * Basic shortcode: `[ecs-list-events]`
82
  * cat - Show events from an event category `[ecs-list-events cat='festival']` or specify multiple categories `[ecs-list-events cat='festival, workshops']`
117
  * filter bar - Allow the user to filter the events shown in the full calendar design (ie. by category, state/province, country, venue, etc)
118
  * hiderecurring - To only show the first instance of a recurring event, set to 'true'
119
 
120
+ [Get The Events Calendar Shortcode & Block PRO](https://eventcalendarnewsletter.com/the-events-calendar-shortcode?utm_source=wordpress.org&utm_medium=link&utm_campaign=tecs-readme-faq-options-bottom&utm_content=description)
121
 
122
+ = Can I use this plugin to list my events using the new WordPress 5.0 editor (Gutenberg)? =
123
+
124
+ Yes! There is now a block to list your events anywhere in a page or post, just click "+" in the top-left and search for The Events Calendar Block (under Common).
125
 
126
+ = How do I use this shortcode in a widget? =
127
 
128
+ You can put the shortcode in a text widget (as of WordPress 4.7). If a regular text widget doesn't work, put the shortcode in a <a href="https://wordpress.org/plugins/black-studio-tinymce-widget/">Visual Editor Widget</a>.
129
 
130
  = What are the classes for styling the list of events? =
131
 
139
  * span .ecs-all-events
140
  * p .ecs-excerpt
141
 
142
+ Want a better looking design without knowing any CSS? Check out [The Events Calendar Shortcode & Block PRO](https://eventcalendarnewsletter.com/the-events-calendar-shortcode?utm_source=wordpress.org&utm_medium=link&utm_campaign=tecs-readme-faq-design&utm_content=description)
143
 
144
  = How do I include a list of events in a page template? =
145
 
146
+ `<?php echo do_shortcode("[ecs-list-events]"); ?>`
147
 
148
  Put this in the template where you want the events list to display.
149
 
150
  = How do I include a monthly calendar view instead of a list? =
151
 
152
+ The [pro version of the plugin](https://eventcalendarnewsletter.com/the-events-calendar-shortcode?utm_source=wordpress.org&utm_medium=link&utm_campaign=tecs-readme-faq-calendar&utm_content=description) has the option to put `design="calendar"` in the shortcode (or pick Calendar as the design with the block) to show a calendar view of the events you want.
153
 
154
  == Screenshots ==
155
 
156
+ 1. Add a block in the page or post where you want your events to appear (new WordPress 5.0 editor or Gutenberg plugin)
157
+ 2. You can also add the shortcode where you want the list of events to appear in the page
158
+ 3. Events will appear in a list
159
+ 4. Many settings you can use in the shortcode to change what details appear in the events listing
160
 
161
  == Upgrade Notice ==
162
 
163
+ = 2.0 =
164
+ * Adds a block in addition to the shortcode that can be used with the new WordPress editor (as of version 5.0) or Gutenberg plugin
165
+
166
  = 1.10.1 =
167
  * Fixing error with very old versions of PHP
168
 
262
 
263
  == Changelog ==
264
 
265
+ = 2.0 =
266
+ * Adds a block in addition to the shortcode that can be used with the new WordPress editor (as of version 5.0) or Gutenberg plugin
267
+
268
  = 1.10.1 =
269
  * Fixing error with very old versions of PHP
270
 
static/block.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(n){var r={};function o(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.m=n,o.c=r,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)o.d(n,r,function(e){return t[e]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=30)}([function(e,t){e.exports=React},function(e,a,u){"use strict";(function(e){u.d(a,"b",function(){return o}),u.d(a,"a",function(){return i});var t=u(15),n=void 0!==e?e:{},r=Object(t.a)(n),o=(r.flush,r.hydrate,r.cx,r.merge,r.getRegisteredStyles,r.injectGlobal),i=(r.keyframes,r.css);r.sheet,r.caches}).call(this,u(5))},function(e,t,n){e.exports=n(18)()},function(e,t){e.exports=ReactDOM},function(e,t,n){"use strict";var r=u(n(20)),o=u(n(25)),i=u(n(9)),a=u(n(6));function u(e){return e&&e.__esModule?e:{default:e}}e.exports={Transition:a.default,TransitionGroup:i.default,ReplaceTransition:o.default,CSSTransition:r.default}},function(ca,da){var ea;ea=function(){return this}();try{ea=ea||Function("return this")()||eval("this")}catch(e){"object"==typeof window&&(ea=window)}ca.exports=ea},function(e,t,n){"use strict";t.__esModule=!0,t.default=t.EXITING=t.ENTERED=t.ENTERING=t.EXITED=t.UNMOUNTED=void 0;var r=function(e){{if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}return t.default=e,t}}(n(2)),i=u(n(0)),o=u(n(3)),a=n(7);n(8);function u(e){return e&&e.__esModule?e:{default:e}}var s="unmounted";t.UNMOUNTED=s;var l="exited";t.EXITED=l;var c="entering";t.ENTERING=c;var p="entered";t.ENTERED=p;var f="exiting";t.EXITING=f;var d=function(a){var e,t;function n(e,t){var n;n=a.call(this,e,t)||this;var r,o=t.transitionGroup,i=o&&!o.isMounting?e.enter:e.appear;return n.appearStatus=null,e.in?i?(r=l,n.appearStatus=c):r=p:r=e.unmountOnExit||e.mountOnEnter?s:l,n.state={status:r},n.nextCallback=null,n}t=a,(e=n).prototype=Object.create(t.prototype),(e.prototype.constructor=e).__proto__=t;var r=n.prototype;return r.getChildContext=function(){return{transitionGroup:null}},n.getDerivedStateFromProps=function(e,t){return e.in&&t.status===s?{status:l}:null},r.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},r.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==c&&n!==p&&(t=c):n!==c&&n!==p||(t=f)}this.updateStatus(!1,t)},r.componentWillUnmount=function(){this.cancelNextCallback()},r.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!=typeof r&&(e=r.exit,t=r.enter,n=r.appear),{exit:e,enter:t,appear:n}},r.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t){this.cancelNextCallback();var n=o.default.findDOMNode(this);t===c?this.performEnter(n,e):this.performExit(n)}else this.props.unmountOnExit&&this.state.status===l&&this.setState({status:s})},r.performEnter=function(e,t){var n=this,r=this.props.enter,o=this.context.transitionGroup?this.context.transitionGroup.isMounting:t,i=this.getTimeouts();t||r?(this.props.onEnter(e,o),this.safeSetState({status:c},function(){n.props.onEntering(e,o),n.onTransitionEnd(e,i.enter,function(){n.safeSetState({status:p},function(){n.props.onEntered(e,o)})})})):this.safeSetState({status:p},function(){n.props.onEntered(e)})},r.performExit=function(e){var t=this,n=this.props.exit,r=this.getTimeouts();n?(this.props.onExit(e),this.safeSetState({status:f},function(){t.props.onExiting(e),t.onTransitionEnd(e,r.exit,function(){t.safeSetState({status:l},function(){t.props.onExited(e)})})})):this.safeSetState({status:l},function(){t.props.onExited(e)})},r.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},r.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},r.setNextCallback=function(t){var n=this,r=!0;return this.nextCallback=function(e){r&&(r=!1,n.nextCallback=null,t(e))},this.nextCallback.cancel=function(){r=!1},this.nextCallback},r.onTransitionEnd=function(e,t,n){this.setNextCallback(n),e?(this.props.addEndListener&&this.props.addEndListener(e,this.nextCallback),null!=t&&setTimeout(this.nextCallback,t)):setTimeout(this.nextCallback,0)},r.render=function(){var e=this.state.status;if(e===s)return null;var t=this.props,n=t.children,r=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],0<=t.indexOf(n)||(o[n]=e[n]);return o}(t,["children"]);if(delete r.in,delete r.mountOnEnter,delete r.unmountOnExit,delete r.appear,delete r.enter,delete r.exit,delete r.timeout,delete r.addEndListener,delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,"function"==typeof n)return n(e,r);var o=i.default.Children.only(n);return i.default.cloneElement(o,r)},n}(i.default.Component);function h(){}d.contextTypes={transitionGroup:r.object},d.childContextTypes={transitionGroup:function(){}},d.propTypes={},d.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:h,onEntering:h,onEntered:h,onExit:h,onExiting:h,onExited:h},d.UNMOUNTED=0,d.EXITED=1,d.ENTERING=2,d.ENTERED=3,d.EXITING=4;var m=(0,a.polyfill)(d);t.default=m},function(e,t,n){"use strict";function s(){var e=this.constructor.getDerivedStateFromProps(this.props,this.state);null!=e&&this.setState(e)}function l(n){this.setState(function(e){var t=this.constructor.getDerivedStateFromProps(n,e);return null!=t?t:null}.bind(this))}function c(e,t){try{var n=this.props,r=this.state;this.props=e,this.state=t,this.__reactInternalSnapshotFlag=!0,this.__reactInternalSnapshot=this.getSnapshotBeforeUpdate(n,r)}finally{this.props=n,this.state=r}}function r(e){var t=e.prototype;if(!t||!t.isReactComponent)throw new Error("Can only polyfill class components");if("function"!=typeof e.getDerivedStateFromProps&&"function"!=typeof t.getSnapshotBeforeUpdate)return e;var n=null,r=null,o=null;if("function"==typeof t.componentWillMount?n="componentWillMount":"function"==typeof t.UNSAFE_componentWillMount&&(n="UNSAFE_componentWillMount"),"function"==typeof t.componentWillReceiveProps?r="componentWillReceiveProps":"function"==typeof t.UNSAFE_componentWillReceiveProps&&(r="UNSAFE_componentWillReceiveProps"),"function"==typeof t.componentWillUpdate?o="componentWillUpdate":"function"==typeof t.UNSAFE_componentWillUpdate&&(o="UNSAFE_componentWillUpdate"),null!==n||null!==r||null!==o){var i=e.displayName||e.name,a="function"==typeof e.getDerivedStateFromProps?"getDerivedStateFromProps()":"getSnapshotBeforeUpdate()";throw Error("Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n"+i+" uses "+a+" but also contains the following legacy lifecycles:"+(null!==n?"\n "+n:"")+(null!==r?"\n "+r:"")+(null!==o?"\n "+o:"")+"\n\nThe above lifecycles should be removed. Learn more about this warning here:\nhttps://fb.me/react-async-component-lifecycle-hooks")}if("function"==typeof e.getDerivedStateFromProps&&(t.componentWillMount=s,t.componentWillReceiveProps=l),"function"==typeof t.getSnapshotBeforeUpdate){if("function"!=typeof t.componentDidUpdate)throw new Error("Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype");t.componentWillUpdate=c;var u=t.componentDidUpdate;t.componentDidUpdate=function(e,t,n){var r=this.__reactInternalSnapshotFlag?this.__reactInternalSnapshot:n;u.call(this,e,t,r)}}return e}n.r(t),n.d(t,"polyfill",function(){return r}),c.__suppressDeprecationWarning=l.__suppressDeprecationWarning=s.__suppressDeprecationWarning=!0},function(e,t,n){"use strict";t.__esModule=!0,t.transitionTimeout=function(e){var t="transition"+e+"Timeout",n="transition"+e;return function(e){if(e[n]){if(null==e[t])return new Error(t+" wasn't supplied to CSSTransitionGroup: this can cause unreliable animations and won't be supported in a future version of React. See https://fb.me/react-animation-transition-group-timeout for more information.");if("number"!=typeof e[t])return new Error(t+" must be a number (in milliseconds)")}return null}},t.classNamesShape=t.timeoutsShape=void 0;var r,o=(r=n(2))&&r.__esModule?r:{default:r};var i=o.default.oneOfType([o.default.number,o.default.shape({enter:o.default.number,exit:o.default.number}).isRequired]);t.timeoutsShape=i;var a=o.default.oneOfType([o.default.string,o.default.shape({enter:o.default.string,exit:o.default.string,active:o.default.string}),o.default.shape({enter:o.default.string,enterDone:o.default.string,enterActive:o.default.string,exit:o.default.string,exitDone:o.default.string,exitActive:o.default.string})]);t.classNamesShape=a},function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=u(n(2)),i=u(n(0)),o=n(7),a=n(26);function u(e){return e&&e.__esModule?e:{default:e}}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function l(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var c=Object.values||function(t){return Object.keys(t).map(function(e){return t[e]})},p=function(o){var e,t;function n(e,t){var n,r=(n=o.call(this,e,t)||this).handleExited.bind(l(l(n)));return n.state={handleExited:r,firstRender:!0},n}t=o,(e=n).prototype=Object.create(t.prototype),(e.prototype.constructor=e).__proto__=t;var r=n.prototype;return r.getChildContext=function(){return{transitionGroup:{isMounting:!this.appeared}}},r.componentDidMount=function(){this.appeared=!0},n.getDerivedStateFromProps=function(e,t){var n=t.children,r=t.handleExited;return{children:t.firstRender?(0,a.getInitialChildMapping)(e,r):(0,a.getNextChildMapping)(e,n,r),firstRender:!1}},r.handleExited=function(n,e){var t=(0,a.getChildMapping)(this.props.children);n.key in t||(n.props.onExited&&n.props.onExited(e),this.setState(function(e){var t=s({},e.children);return delete t[n.key],{children:t}}))},r.render=function(){var e=this.props,t=e.component,n=e.childFactory,r=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],0<=t.indexOf(n)||(o[n]=e[n]);return o}(e,["component","childFactory"]),o=c(this.state.children).map(n);return delete r.appear,delete r.enter,delete r.exit,null===t?o:i.default.createElement(t,r,o)},n}(i.default.Component);p.childContextTypes={transitionGroup:r.default.object.isRequired},p.propTypes={},p.defaultProps={component:"div",childFactory:function(e){return e}};var f=(0,o.polyfill)(p);t.default=f,e.exports=t.default},function(p,e,f){(function(e){for(var r=f(16),t="undefined"==typeof window?e:window,n=["moz","webkit"],o="AnimationFrame",i=t["request"+o],a=t["cancel"+o]||t["cancelRequest"+o],u=0;!i&&u<n.length;u++)i=t[n[u]+"Request"+o],a=t[n[u]+"Cancel"+o]||t[n[u]+"CancelRequest"+o];if(!i||!a){var s=0,l=0,c=[];i=function(e){if(0===c.length){var t=r(),n=Math.max(0,1e3/60-(t-s));s=n+t,setTimeout(function(){for(var e=c.slice(0),t=c.length=0;t<e.length;t++)if(!e[t].cancelled)try{e[t].callback(s)}catch(e){setTimeout(function(){throw e},0)}},Math.round(n))}return c.push({handle:++l,callback:e,cancelled:!1}),l},a=function(e){for(var t=0;t<c.length;t++)c[t].handle===e&&(c[t].cancelled=!0)}}p.exports=function(e){return i.call(t,e)},p.exports.cancel=function(){a.apply(t,arguments)},p.exports.polyfill=function(e){e||(e=t),e.requestAnimationFrame=i,e.cancelAnimationFrame=a}}).call(this,f(5))},function(e,t,n){e.exports=function(){"use strict";return function(c){var p="/*|*/";function f(e){if(e)try{c(e+"}")}catch(e){}}return function(e,t,n,r,o,i,a,u,s,l){switch(e){case 1:if(0===s&&64===t.charCodeAt(0))return c(t+";"),"";break;case 2:if(0===u)return t+p;break;case 3:switch(u){case 102:case 112:return c(n[0]+t),"";default:return t+(0===l?p:"")}case-2:t.split("/*|*/}").forEach(f)}}}}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r=function(){function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}}(),o=n(0),a=s(o),u=s(n(2));function s(e){return e&&e.__esModule?e:{default:e}}var l={position:"absolute",top:0,left:0,visibility:"hidden",height:0,overflow:"scroll",whiteSpace:"pre"},c=["extraWidth","injectStyles","inputClassName","inputRef","inputStyle","minWidth","onAutosize","placeholderIsMinWidth"],p=function(e,t){t.style.fontSize=e.fontSize,t.style.fontFamily=e.fontFamily,t.style.fontWeight=e.fontWeight,t.style.fontStyle=e.fontStyle,t.style.letterSpacing=e.letterSpacing,t.style.textTransform=e.textTransform},f=!("undefined"==typeof window||!window.navigator)&&/MSIE |Trident\/|Edge\//.test(window.navigator.userAgent),d=function(){return f?"_"+Math.random().toString(36).substr(2,12):void 0},h=function(e){function n(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n);var t=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,e));return t.inputRef=function(e){t.input=e,"function"==typeof t.props.inputRef&&t.props.inputRef(e)},t.placeHolderSizerRef=function(e){t.placeHolderSizer=e},t.sizerRef=function(e){t.sizer=e},t.state={inputWidth:e.minWidth,inputId:e.id||d()},t}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(n,o.Component),r(n,[{key:"componentDidMount",value:function(){this.mounted=!0,this.copyInputStyles(),this.updateInputWidth()}},{key:"componentWillReceiveProps",value:function(e){var t=e.id;t!==this.props.id&&this.setState({inputId:t||d()})}},{key:"componentDidUpdate",value:function(e,t){t.inputWidth!==this.state.inputWidth&&"function"==typeof this.props.onAutosize&&this.props.onAutosize(this.state.inputWidth),this.updateInputWidth()}},{key:"componentWillUnmount",value:function(){this.mounted=!1}},{key:"copyInputStyles",value:function(){if(this.mounted&&window.getComputedStyle){var e=this.input&&window.getComputedStyle(this.input);e&&(p(e,this.sizer),this.placeHolderSizer&&p(e,this.placeHolderSizer))}}},{key:"updateInputWidth",value:function(){if(this.mounted&&this.sizer&&void 0!==this.sizer.scrollWidth){var e=void 0;e=this.props.placeholder&&(!this.props.value||this.props.value&&this.props.placeholderIsMinWidth)?Math.max(this.sizer.scrollWidth,this.placeHolderSizer.scrollWidth)+2:this.sizer.scrollWidth+2,(e+="number"===this.props.type&&void 0===this.props.extraWidth?16:parseInt(this.props.extraWidth)||0)<this.props.minWidth&&(e=this.props.minWidth),e!==this.state.inputWidth&&this.setState({inputWidth:e})}}},{key:"getInput",value:function(){return this.input}},{key:"focus",value:function(){this.input.focus()}},{key:"blur",value:function(){this.input.blur()}},{key:"select",value:function(){this.input.select()}},{key:"renderStyles",value:function(){var e=this.props.injectStyles;return f&&e?a.default.createElement("style",{dangerouslySetInnerHTML:{__html:"input#"+this.state.inputId+"::-ms-clear {display: none;}"}}):null}},{key:"render",value:function(){var e=[this.props.defaultValue,this.props.value,""].reduce(function(e,t){return null!=e?e:t}),t=i({},this.props.style);t.display||(t.display="inline-block");var n,r=i({boxSizing:"content-box",width:this.state.inputWidth+"px"},this.props.inputStyle),o=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(this.props,[]);return n=o,c.forEach(function(e){return delete n[e]}),o.className=this.props.inputClassName,o.id=this.state.inputId,o.style=r,a.default.createElement("div",{className:this.props.className,style:t},this.renderStyles(),a.default.createElement("input",i({},o,{ref:this.inputRef})),a.default.createElement("div",{ref:this.sizerRef,style:l},e),this.props.placeholder?a.default.createElement("div",{ref:this.placeHolderSizerRef,style:l},this.props.placeholder):null)}}]),n}();h.propTypes={className:u.default.string,defaultValue:u.default.any,extraWidth:u.default.oneOfType([u.default.number,u.default.string]),id:u.default.string,injectStyles:u.default.bool,inputClassName:u.default.string,inputRef:u.default.func,inputStyle:u.default.object,minWidth:u.default.oneOfType([u.default.number,u.default.string]),onAutosize:u.default.func,onChange:u.default.func,placeholder:u.default.string,placeholderIsMinWidth:u.default.bool,style:u.default.object,value:u.default.any},h.defaultProps={minWidth:1,injectStyles:!0},t.default=h},function(e,t,n){var a=n(27),u=n(28);e.exports=function(e,t,n){var r=t&&n||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var o=(e=e||{}).random||(e.rng||a)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t)for(var i=0;i<16;++i)t[r+i]=o[i];return t||u(o)}},function(e,P,t){"use strict";(function(e){var r=function(){if("undefined"!=typeof Map)return Map;function r(e,n){var r=-1;return e.some(function(e,t){return e[0]===n&&(r=t,!0)}),r}return function(){function e(){this.__entries__=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),e.prototype.get=function(e){var t=r(this.__entries__,e),n=this.__entries__[t];return n&&n[1]},e.prototype.set=function(e,t){var n=r(this.__entries__,e);~n?this.__entries__[n][1]=t:this.__entries__.push([e,t])},e.prototype.delete=function(e){var t=this.__entries__,n=r(t,e);~n&&t.splice(n,1)},e.prototype.has=function(e){return!!~r(this.__entries__,e)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var o=r[n];e.call(t,o[1],o[0])}},e}()}(),n="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,t=void 0!==e&&e.Math===Math?e:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),s="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(t):function(e){return setTimeout(function(){return e(Date.now())},1e3/60)},l=2;var o=["top","right","bottom","left","width","height","size","weight"],i="undefined"!=typeof MutationObserver,a=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,r=!1,o=0;function i(){n&&(n=!1,e()),r&&u()}function a(){s(i)}function u(){var e=Date.now();if(n){if(e-o<l)return;r=!0}else r=!(n=!0),setTimeout(a,t);o=e}return u}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter(function(e){return e.gatherActive(),e.hasActive()});return e.forEach(function(e){return e.broadcastActive()}),0<e.length},e.prototype.connect_=function(){n&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),i?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){n&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;o.some(function(e){return!!~n.indexOf(e)})&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),c=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var o=r[n];Object.defineProperty(e,o,{value:t[o],enumerable:!1,writable:!1,configurable:!0})}return e},f=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||t},d=b(0,0,0,0);function h(e){return parseFloat(e)||0}function m(n){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];return e.reduce(function(e,t){return e+h(n["border-"+t+"-width"])},0)}function u(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return d;var r,o=f(e).getComputedStyle(e),i=function(e){for(var t={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var o=r[n],i=e["padding-"+o];t[o]=h(i)}return t}(o),a=i.left+i.right,u=i.top+i.bottom,s=h(o.width),l=h(o.height);if("border-box"===o.boxSizing&&(Math.round(s+a)!==t&&(s-=m(o,"left","right")+a),Math.round(l+u)!==n&&(l-=m(o,"top","bottom")+u)),(r=e)!==f(r).document.documentElement){var c=Math.round(s+a)-t,p=Math.round(l+u)-n;1!==Math.abs(c)&&(s-=c),1!==Math.abs(p)&&(l-=p)}return b(i.left,i.top,s,l)}var p="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof f(e).SVGGraphicsElement}:function(e){return e instanceof f(e).SVGElement&&"function"==typeof e.getBBox};function v(e){return n?p(e)?b(0,0,(t=e.getBBox()).width,t.height):u(e):d;var t}function b(e,t,n,r){return{x:e,y:t,width:n,height:r}}var g=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=b(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=v(this.target);return(this.contentRect_=e).width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),y=function(e,t){var n,r,o,i,a,u,s,l=(r=(n=t).x,o=n.y,i=n.width,a=n.height,u="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,s=Object.create(u.prototype),c(s,{x:r,y:o,width:i,height:a,top:o,right:r+i,bottom:a+o,left:r}),s);c(this,{target:e,contentRect:l})},E=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new r,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof f(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new g(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof f(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var t=this;this.clearActive(),this.observations_.forEach(function(e){e.isActive()&&t.activeObservations_.push(e)})},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map(function(e){return new y(e.target,e.broadcastRect())});this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return 0<this.activeObservations_.length},e}(),O="undefined"!=typeof WeakMap?new WeakMap:new r,w=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=a.getInstance(),r=new E(t,n,this);O.set(this,r)};["observe","unobserve","disconnect"].forEach(function(t){w.prototype[t]=function(){var e;return(e=O.get(this))[t].apply(e,arguments)}});var x=void 0!==t.ResizeObserver?t.ResizeObserver:w;P.a=x}).call(this,t(5))},function(e,t,n){"use strict";var r=function(t){var n={};return function(e){return void 0===n[e]&&(n[e]=t(e)),n[e]}},o={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1};var x=function(e){for(var t,n=e.length,r=n^n,o=0;4<=n;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16),((r^=r>>>15)>>>0).toString(36)};var P=function(e){function A(e,t,n){var r=t.trim().split(p),o=(t=r).length,i=e.length;switch(i){case 0:case 1:var a=0;for(e=0===i?"":e[0]+" ";a<o;++a)t[a]=l(e,t[a],n).trim();break;default:var u=a=0;for(t=[];a<o;++a)for(var s=0;s<i;++s)t[u++]=l(e[s]+" ",r[a],n).trim()}return t}function l(e,t,n){var r=t.charCodeAt(0);switch(r<33&&(r=(t=t.trim()).charCodeAt(0)),r){case 38:return t.replace(o,"$1"+e.trim());case 58:return e.trim()+t.replace(o,"$1"+e.trim());default:if(0<1*n&&0<t.indexOf("\f"))return t.replace(o,(58===e.charCodeAt(0)?"":"$1")+e.trim())}return e+t}function k(e,t,n,r){var o=e+";",i=2*t+3*n+4*r;if(944===i){e=o.indexOf(":",9)+1;var a=o.substring(e,o.length-1).trim();return a=o.substring(0,e).trim()+a+";",1===q||2===q&&j(a,1)?"-webkit-"+a+a:a}if(0===q||2===q&&!j(o,1))return o;switch(i){case 1015:return 97===o.charCodeAt(10)?"-webkit-"+o+o:o;case 951:return 116===o.charCodeAt(3)?"-webkit-"+o+o:o;case 963:return 110===o.charCodeAt(5)?"-webkit-"+o+o:o;case 1009:if(100!==o.charCodeAt(4))break;case 969:case 942:return"-webkit-"+o+o;case 978:return"-webkit-"+o+"-moz-"+o+o;case 1019:case 983:return"-webkit-"+o+"-moz-"+o+"-ms-"+o+o;case 883:if(45===o.charCodeAt(8))return"-webkit-"+o+o;if(0<o.indexOf("image-set(",11))return o.replace(v,"$1-webkit-$2")+o;break;case 932:if(45===o.charCodeAt(4))switch(o.charCodeAt(5)){case 103:return"-webkit-box-"+o.replace("-grow","")+"-webkit-"+o+"-ms-"+o.replace("grow","positive")+o;case 115:return"-webkit-"+o+"-ms-"+o.replace("shrink","negative")+o;case 98:return"-webkit-"+o+"-ms-"+o.replace("basis","preferred-size")+o}return"-webkit-"+o+"-ms-"+o+o;case 964:return"-webkit-"+o+"-ms-flex-"+o+o;case 1023:if(99!==o.charCodeAt(8))break;return"-webkit-box-pack"+(a=o.substring(o.indexOf(":",15)).replace("flex-","").replace("space-between","justify"))+"-webkit-"+o+"-ms-flex-pack"+a+o;case 1005:return s.test(o)?o.replace(u,":-webkit-")+o.replace(u,":-moz-")+o:o;case 1e3:switch(t=(a=o.substring(13).trim()).indexOf("-")+1,a.charCodeAt(0)+a.charCodeAt(t)){case 226:a=o.replace(f,"tb");break;case 232:a=o.replace(f,"tb-rl");break;case 220:a=o.replace(f,"lr");break;default:return o}return"-webkit-"+o+"-ms-"+a+o;case 1017:if(-1===o.indexOf("sticky",9))break;case 975:switch(t=(o=e).length-10,i=(a=(33===o.charCodeAt(t)?o.substring(0,t):o).substring(e.indexOf(":",7)+1).trim()).charCodeAt(0)+(0|a.charCodeAt(7))){case 203:if(a.charCodeAt(8)<111)break;case 115:o=o.replace(a,"-webkit-"+a)+";"+o;break;case 207:case 102:o=o.replace(a,"-webkit-"+(102<i?"inline-":"")+"box")+";"+o.replace(a,"-webkit-"+a)+";"+o.replace(a,"-ms-"+a+"box")+";"+o}return o+";";case 938:if(45===o.charCodeAt(5))switch(o.charCodeAt(6)){case 105:return a=o.replace("-items",""),"-webkit-"+o+"-webkit-box-"+a+"-ms-flex-"+a+o;case 115:return"-webkit-"+o+"-ms-flex-item-"+o.replace(h,"")+o;default:return"-webkit-"+o+"-ms-flex-line-pack"+o.replace("align-content","").replace(h,"")+o}break;case 973:case 989:if(45!==o.charCodeAt(3)||122===o.charCodeAt(4))break;case 931:case 953:if(!0===m.test(e))return 115===(a=e.substring(e.indexOf(":")+1)).charCodeAt(0)?k(e.replace("stretch","fill-available"),t,n,r).replace(":fill-available",":stretch"):o.replace(a,"-webkit-"+a)+o.replace(a,"-moz-"+a.replace("fill-",""))+o;break;case 962:if(o="-webkit-"+o+(102===o.charCodeAt(5)?"-ms-"+o:"")+o,211===n+r&&105===o.charCodeAt(13)&&0<o.indexOf("transform",10))return o.substring(0,o.indexOf(";",27)+1).replace(c,"$1-webkit-$2")+o}return o}function j(e,t){var n=e.indexOf(1===t?":":"{"),r=e.substring(0,3!==t?n:10);return n=e.substring(n+1,e.length-1),a(2!==t?r:r.replace(i,"$1"),n,t)}function R(e,t){var n=k(t,t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2));return n!==t+";"?n.replace(r," or ($1)").substring(4):"("+t+")"}function D(e,t,n,r,o,i,a,u,s,l){for(var c,p=0,f=t;p<X;++p)switch(c=b[p].call(d,e,f,n,r,o,i,a,u,s,l)){case void 0:case!1:case!0:case null:break;default:f=c}if(f!==t)return f}function t(e){return void 0!==(e=e.prefix)&&(a=null,e?"function"!=typeof e?q=1:(q=2,a=e):q=0),t}function d(e,t){var n=e;if(n.charCodeAt(0)<33&&(n=n.trim()),n=[n],0<X){var r=D(-1,t,n,n,B,z,0,0,0,0);void 0!==r&&"string"==typeof r&&(t=r)}var o=function e(t,n,r,o,i){for(var a,u,s,l,c,p=0,f=0,d=0,h=0,m=0,v=0,b=s=a=0,g=0,y=0,E=0,O=0,w=r.length,x=w-1,P="",C="",S="",N="";g<w;){if(u=r.charCodeAt(g),g===x&&0!==f+h+d+p&&(0!==f&&(u=47===f?10:47),h=d=p=0,w++,x++),0===f+h+d+p){if(g===x&&(0<y&&(P=P.replace(F,"")),0<P.trim().length)){switch(u){case 32:case 9:case 59:case 13:case 10:break;default:P+=r.charAt(g)}u=59}switch(u){case 123:for(a=(P=P.trim()).charCodeAt(0),s=1,O=++g;g<w;){switch(u=r.charCodeAt(g)){case 123:s++;break;case 125:s--;break;case 47:switch(u=r.charCodeAt(g+1)){case 42:case 47:e:{for(b=g+1;b<x;++b)switch(r.charCodeAt(b)){case 47:if(42!==u||42!==r.charCodeAt(b-1)||g+2===b)break;g=b+1;break e;case 10:if(47===u){g=b+1;break e}}g=b}}break;case 91:u++;case 40:u++;case 34:case 39:for(;g++<x&&r.charCodeAt(g)!==u;);}if(0===s)break;g++}switch(s=r.substring(O,g),0===a&&(a=(P=P.replace(V,"").trim()).charCodeAt(0)),a){case 64:switch(0<y&&(P=P.replace(F,"")),u=P.charCodeAt(1)){case 100:case 109:case 115:case 45:y=n;break;default:y=G}if(O=(s=e(n,y,s,u,i+1)).length,0<X&&(c=D(3,s,y=A(G,P,E),n,B,z,O,u,i,o),P=y.join(""),void 0!==c&&0===(O=(s=c.trim()).length)&&(u=0,s="")),0<O)switch(u){case 115:P=P.replace(H,R);case 100:case 109:case 45:s=P+"{"+s+"}";break;case 107:s=(P=P.replace(T,"$1 $2"))+"{"+s+"}",s=1===q||2===q&&j("@"+s,3)?"@-webkit-"+s+"@"+s:"@"+s;break;default:s=P+s,112===o&&(C+=s,s="")}else s="";break;default:s=e(n,A(n,P,E),s,o,i+1)}S+=s,s=E=y=b=a=0,P="",u=r.charCodeAt(++g);break;case 125:case 59:if(1<(O=(P=(0<y?P.replace(F,""):P).trim()).length))switch(0===b&&(a=P.charCodeAt(0),45===a||96<a&&a<123)&&(O=(P=P.replace(" ",":")).length),0<X&&void 0!==(c=D(1,P,n,t,B,z,C.length,o,i,o))&&0===(O=(P=c.trim()).length)&&(P="\0\0"),a=P.charCodeAt(0),u=P.charCodeAt(1),a){case 0:break;case 64:if(105===u||99===u){N+=P+r.charAt(g);break}default:58!==P.charCodeAt(O-1)&&(C+=k(P,a,u,P.charCodeAt(2)))}E=y=b=a=0,P="",u=r.charCodeAt(++g)}}switch(u){case 13:case 10:47===f?f=0:0===1+a&&107!==o&&0<P.length&&(y=1,P+="\0"),0<X*I&&D(0,P,n,t,B,z,C.length,o,i,o),z=1,B++;break;case 59:case 125:if(0===f+h+d+p){z++;break}default:switch(z++,l=r.charAt(g),u){case 9:case 32:if(0===h+p+f)switch(m){case 44:case 58:case 9:case 32:l="";break;default:32!==u&&(l=" ")}break;case 0:l="\\0";break;case 12:l="\\f";break;case 11:l="\\v";break;case 38:0===h+f+p&&(y=E=1,l="\f"+l);break;case 108:if(0===h+f+p+W&&0<b)switch(g-b){case 2:112===m&&58===r.charCodeAt(g-3)&&(W=m);case 8:111===v&&(W=v)}break;case 58:0===h+f+p&&(b=g);break;case 44:0===f+d+h+p&&(y=1,l+="\r");break;case 34:case 39:0===f&&(h=h===u?0:0===h?u:h);break;case 91:0===h+f+d&&p++;break;case 93:0===h+f+d&&p--;break;case 41:0===h+f+p&&d--;break;case 40:if(0===h+f+p){if(0===a)switch(2*m+3*v){case 533:break;default:a=1}d++}break;case 64:0===f+d+h+p+b+s&&(s=1);break;case 42:case 47:if(!(0<h+p+d))switch(f){case 0:switch(2*u+3*r.charCodeAt(g+1)){case 235:f=47;break;case 220:O=g,f=42}break;case 42:47===u&&42===m&&O+2!==g&&(33===r.charCodeAt(O+2)&&(C+=r.substring(O,g+1)),l="",f=0)}}0===f&&(P+=l)}v=m,m=u,g++}if(0<(O=C.length)){if(y=n,0<X&&void 0!==(c=D(2,C,y,t,B,z,O,o,i,o))&&0===(C=c).length)return N+C+S;if(C=y.join(",")+"{"+C+"}",0!=q*W){switch(2!==q||j(C,2)||(W=0),W){case 111:C=C.replace(M,":-moz-$1")+C;break;case 112:C=C.replace(L,"::-webkit-input-$1")+C.replace(L,"::-moz-$1")+C.replace(L,":-ms-input-$1")+C}W=0}}return N+C+S}(G,n,t,0,0);return 0<X&&void 0!==(r=D(-2,o,n,n,B,z,o.length,0,0,0))&&(o=r),W=0,z=B=1,o}var V=/^\0+/g,F=/[\0\r\f]/g,u=/: */g,s=/zoo|gra/,c=/([,: ])(transform)/g,p=/,\r+?/g,o=/([\t\r\n ])*\f?&/g,T=/@(k\w+)\s*(\S*)\s*/,L=/::(place)/g,M=/:(read-only)/g,f=/[svh]\w+-[tblr]{2}/,H=/\(\s*(.*)\s*\)/g,r=/([\s\S]*?);/g,h=/-self|flex-/g,i=/[^]*?(:[rp][el]a[\w-]+)[^]*/,m=/stretch|:\s*\w+\-(?:conte|avail)/,v=/([^-])(image-set\()/,z=1,B=1,W=0,q=1,G=[],b=[],X=0,a=null,I=0;return d.use=function e(t){switch(t){case void 0:case null:X=b.length=0;break;default:switch(t.constructor){case Array:for(var n=0,r=t.length;n<r;++n)e(t[n]);break;case Function:b[X++]=t;break;case Boolean:I=0|!!t}}return e},d.set=t,void 0!==e&&t(e),d},i=n(11),C=n.n(i),a=/[A-Z]|^ms/g,S=r(function(e){return e.replace(a,"-$&").toLowerCase()}),N=function(e,t){return null==t||"boolean"==typeof t?"":1===o[e]||45===e.charCodeAt(1)||isNaN(t)||0===t?t:t+"px"},A="undefined"!=typeof document;function u(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key||""),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),(void 0!==e.container?e.container:document.head).appendChild(t),t}var k=function(){function e(e){this.isSpeedy=!0,this.tags=[],this.ctr=0,this.opts=e}var t=e.prototype;return t.inject=function(){if(this.injected)throw new Error("already injected!");this.tags[0]=u(this.opts),this.injected=!0},t.speedy=function(e){if(0!==this.ctr)throw new Error("cannot change speedy now");this.isSpeedy=!!e},t.insert=function(e,t){if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(this.tags[this.tags.length-1]);try{n.insertRule(e,n.cssRules.length)}catch(e){0}}else{var r=u(this.opts);this.tags.push(r),r.appendChild(document.createTextNode(e+(t||"")))}this.ctr++,this.ctr%65e3==0&&this.tags.push(u(this.opts))},t.flush=function(){this.tags.forEach(function(e){return e.parentNode.removeChild(e)}),this.tags=[],this.ctr=0,this.injected=!1},e}();t.a=function(e,t){if(void 0!==e.__SECRET_EMOTION__)return e.__SECRET_EMOTION__;void 0===t&&(t={});var n,r,o=t.key||"css",i=C()(function(e){n+=e,A&&u.insert(e,l)});void 0!==t.prefix&&(r={prefix:t.prefix});var a={registered:{},inserted:{},nonce:t.nonce,key:o},u=new k(t);A&&u.inject();var s=new P(r);s.use(t.stylisPlugins)(i);var l="";function c(e,t){if(null==e)return"";switch(typeof e){case"boolean":return"";case"function":if(void 0===e.__emotion_styles)return c.call(this,void 0===this?e():e(this.mergedProps,this.context),t);var n=e.toString();return n;case"object":return function(e){if(d.has(e))return d.get(e);var n="";return Array.isArray(e)?e.forEach(function(e){n+=c.call(this,e,!1)},this):Object.keys(e).forEach(function(t){"object"!=typeof e[t]?void 0!==a.registered[e[t]]?n+=t+"{"+a.registered[e[t]]+"}":n+=S(t)+":"+N(t,e[t])+";":Array.isArray(e[t])&&"string"==typeof e[t][0]&&void 0===a.registered[e[t][0]]?e[t].forEach(function(e){n+=S(t)+":"+N(t,e)+";"}):n+=t+"{"+c.call(this,e[t],!1)+"}"},this),d.set(e,n),n}.call(this,e);default:var r=a.registered[e];return!1===t&&void 0!==r?r:e}}var p,f,d=new WeakMap,h=/label:\s*([^\s;\n{]+)\s*;/g,m=function(n){var e,r=!0,o="",i="";null==n||void 0===n.raw?o+=c.call(this,n,r=!1):o+=n[0];for(var t=arguments.length,a=new Array(1<t?t-1:0),u=1;u<t;u++)a[u-1]=arguments[u];return a.forEach(function(e,t){o+=c.call(this,e,46===o.charCodeAt(o.length-1)),!0===r&&void 0!==n[t+1]&&(o+=n[t+1])},this),o=(f=o).replace(h,function(e,t){return i+="-"+t,""}),p=x(o+(e=i))+e,o};function v(e,t){void 0===a.inserted[p]&&(n="",s(e,t),a.inserted[p]=n)}var b=function(){var e=m.apply(this,arguments),t=o+"-"+p;return void 0===a.registered[t]&&(a.registered[t]=f),v("."+t,e),t};function g(t,e){var n="";return e.split(" ").forEach(function(e){void 0!==a.registered[e]?t.push(e):n+=e+" "}),n}function y(e,t){var n=[],r=g(n,e);return n.length<2?e:r+b(n,t)}function E(e){a.inserted[e]=!0}if(A){var O=document.querySelectorAll("[data-emotion-"+o+"]");Array.prototype.forEach.call(O,function(e){u.tags[0].parentNode.insertBefore(e,u.tags[0]),e.getAttribute("data-emotion-"+o).split(" ").forEach(E)})}var w={flush:function(){A&&(u.flush(),u.inject()),a.inserted={},a.registered={}},hydrate:function(e){e.forEach(E)},cx:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return y(function e(t){for(var n=t.length,r=0,o="";r<n;r++){var i=t[r];if(null!=i){var a=void 0;switch(typeof i){case"boolean":break;case"function":a=e([i()]);break;case"object":if(Array.isArray(i))a=e(i);else for(var u in a="",i)i[u]&&u&&(a&&(a+=" "),a+=u);break;default:a=i}a&&(o&&(o+=" "),o+=a)}}return o}(t))},merge:y,getRegisteredStyles:g,injectGlobal:function(){v("",m.apply(this,arguments))},keyframes:function(){var e=m.apply(this,arguments),t="animation-"+p;return v("","@keyframes "+t+"{"+e+"}"),t},css:b,sheet:u,caches:a};return e.__SECRET_EMOTION__=w}},function(u,e,t){(function(a){(function(){var e,t,n,r,o,i;"undefined"!=typeof performance&&null!==performance&&performance.now?u.exports=function(){return performance.now()}:null!=a&&a.hrtime?(u.exports=function(){return(e()-o)/1e6},t=a.hrtime,r=(e=function(){var e;return 1e9*(e=t())[0]+e[1]})(),i=1e9*a.uptime(),o=r-i):n=Date.now?(u.exports=function(){return Date.now()-n},Date.now()):(u.exports=function(){return(new Date).getTime()-n},(new Date).getTime())}).call(this)}).call(this,t(17))},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function u(t){if(n===setTimeout)return setTimeout(t,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var s,l=[],c=!1,p=-1;function f(){c&&s&&(c=!1,s.length?l=s.concat(l):p=-1,l.length&&d())}function d(){if(!c){var e=u(f);c=!0;for(var t=l.length;t;){for(s=l,l=[];++p<t;)s&&s[p].run();p=-1,t=l.length}s=null,c=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function m(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(1<arguments.length)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new h(e,t)),1!==l.length||c||u(d)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=m,o.addListener=m,o.once=m,o.off=m,o.removeListener=m,o.removeAllListeners=m,o.emit=m,o.prependListener=m,o.prependOnceListener=m,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t,n){"use strict";var u=n(19);function r(){}e.exports=function(){function e(e,t,n,r,o,i){if(i!==u){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}var n={array:e.isRequired=e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=r,n.PropTypes=n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;!function(e){{if(e&&e.__esModule)return;var t={};if(null!=e)for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=Object.defineProperty&&Object.getOwnPropertyDescriptor?Object.getOwnPropertyDescriptor(e,n):{};r.get||r.set?Object.defineProperty(t,n,r):t[n]=e[n]}t.default=e}}(n(2));var r=u(n(21)),o=u(n(24)),i=u(n(0)),a=u(n(6));n(8);function u(e){return e&&e.__esModule?e:{default:e}}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var l=function(t,e){return t&&e&&e.split(" ").forEach(function(e){return(0,r.default)(t,e)})},c=function(t,e){return t&&e&&e.split(" ").forEach(function(e){return(0,o.default)(t,e)})},p=function(o){var e,t;function n(){for(var r,e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return(r=o.call.apply(o,[this].concat(t))||this).onEnter=function(e,t){var n=r.getClassNames(t?"appear":"enter").className;r.removeClasses(e,"exit"),l(e,n),r.props.onEnter&&r.props.onEnter(e)},r.onEntering=function(e,t){var n=r.getClassNames(t?"appear":"enter").activeClassName;r.reflowAndAddClass(e,n),r.props.onEntering&&r.props.onEntering(e)},r.onEntered=function(e,t){var n=r.getClassNames("enter").doneClassName;r.removeClasses(e,t?"appear":"enter"),l(e,n),r.props.onEntered&&r.props.onEntered(e)},r.onExit=function(e){var t=r.getClassNames("exit").className;r.removeClasses(e,"appear"),r.removeClasses(e,"enter"),l(e,t),r.props.onExit&&r.props.onExit(e)},r.onExiting=function(e){var t=r.getClassNames("exit").activeClassName;r.reflowAndAddClass(e,t),r.props.onExiting&&r.props.onExiting(e)},r.onExited=function(e){var t=r.getClassNames("exit").doneClassName;r.removeClasses(e,"exit"),l(e,t),r.props.onExited&&r.props.onExited(e)},r.getClassNames=function(e){var t=r.props.classNames,n="string"!=typeof t?t[e]:t+"-"+e;return{className:n,activeClassName:"string"!=typeof t?t[e+"Active"]:n+"-active",doneClassName:"string"!=typeof t?t[e+"Done"]:n+"-done"}},r}t=o,(e=n).prototype=Object.create(t.prototype),(e.prototype.constructor=e).__proto__=t;var r=n.prototype;return r.removeClasses=function(e,t){var n=this.getClassNames(t),r=n.className,o=n.activeClassName,i=n.doneClassName;r&&c(e,r),o&&c(e,o),i&&c(e,i)},r.reflowAndAddClass=function(e,t){t&&(e&&e.scrollTop,l(e,t))},r.render=function(){var e=s({},this.props);return delete e.classNames,i.default.createElement(a.default,s({},e,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},n}(i.default.Component);p.propTypes={};var f=p;t.default=f,e.exports=t.default},function(e,t,n){"use strict";var r=n(22);t.__esModule=!0,t.default=function(e,t){e.classList?e.classList.add(t):(0,o.default)(e,t)||("string"==typeof e.className?e.className=e.className+" "+t:e.setAttribute("class",(e.className&&e.className.baseVal||"")+" "+t))};var o=r(n(23));e.exports=t.default},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){return e.classList?!!t&&e.classList.contains(t):-1!==(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")},e.exports=t.default},function(e,t,n){"use strict";function r(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}e.exports=function(e,t){e.classList?e.classList.remove(t):"string"==typeof e.className?e.className=r(e.className,t):e.setAttribute("class",r(e.className&&e.className.baseVal||"",t))}},function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;r(n(2));var u=r(n(0)),a=n(3),s=r(n(9));function r(e){return e&&e.__esModule?e:{default:e}}var o=function(o){var e,t;function n(){for(var r,e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return(r=o.call.apply(o,[this].concat(t))||this).handleEnter=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.handleLifecycle("onEnter",0,t)},r.handleEntering=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.handleLifecycle("onEntering",0,t)},r.handleEntered=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.handleLifecycle("onEntered",0,t)},r.handleExit=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.handleLifecycle("onExit",1,t)},r.handleExiting=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.handleLifecycle("onExiting",1,t)},r.handleExited=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.handleLifecycle("onExited",1,t)},r}t=o,(e=n).prototype=Object.create(t.prototype),(e.prototype.constructor=e).__proto__=t;var r=n.prototype;return r.handleLifecycle=function(e,t,n){var r,o=this.props.children,i=u.default.Children.toArray(o)[t];i.props[e]&&(r=i.props)[e].apply(r,n),this.props[e]&&this.props[e]((0,a.findDOMNode)(this))},r.render=function(){var e=this.props,t=e.children,n=e.in,r=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],0<=t.indexOf(n)||(o[n]=e[n]);return o}(e,["children","in"]),o=u.default.Children.toArray(t),i=o[0],a=o[1];return delete r.onEnter,delete r.onEntering,delete r.onEntered,delete r.onExit,delete r.onExiting,delete r.onExited,u.default.createElement(s.default,r,n?u.default.cloneElement(i,{key:"first",onEnter:this.handleEnter,onEntering:this.handleEntering,onEntered:this.handleEntered}):u.default.cloneElement(a,{key:"second",onEnter:this.handleExit,onEntering:this.handleExiting,onEntered:this.handleExited}))},n}(u.default.Component);o.propTypes={};var i=o;t.default=i,e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.getChildMapping=r,t.mergeChildMappings=o,t.getInitialChildMapping=function(t,n){return r(t.children,function(e){return(0,p.cloneElement)(e,{onExited:n.bind(null,e),in:!0,appear:f(e,"appear",t),enter:f(e,"enter",t),exit:f(e,"exit",t)})})},t.getNextChildMapping=function(a,u,s){var l=r(a.children),c=o(u,l);return Object.keys(c).forEach(function(e){var t=c[e];if((0,p.isValidElement)(t)){var n=e in u,r=e in l,o=u[e],i=(0,p.isValidElement)(o)&&!o.props.in;!r||n&&!i?r||!n||i?r&&n&&(0,p.isValidElement)(o)&&(c[e]=(0,p.cloneElement)(t,{onExited:s.bind(null,t),in:o.props.in,exit:f(t,"exit",a),enter:f(t,"enter",a)})):c[e]=(0,p.cloneElement)(t,{in:!1}):c[e]=(0,p.cloneElement)(t,{onExited:s.bind(null,t),in:!0,exit:f(t,"exit",a),enter:f(t,"enter",a)})}}),c};var p=n(0);function r(e,n){var r=Object.create(null);return e&&p.Children.map(e,function(e){return e}).forEach(function(e){var t;r[e.key]=(t=e,n&&(0,p.isValidElement)(t)?n(t):t)}),r}function o(t,n){function e(e){return e in n?n[e]:t[e]}t=t||{},n=n||{};var r,o=Object.create(null),i=[];for(var a in t)a in n?i.length&&(o[a]=i,i=[]):i.push(a);var u={};for(var s in n){if(o[s])for(r=0;r<o[s].length;r++){var l=o[s][r];u[o[s][r]]=e(l)}u[s]=e(s)}for(r=0;r<i.length;r++)u[i[r]]=e(i[r]);return u}function f(e,t,n){return null!=n[t]?n[t]:e.props[t]}},function(e,t){var n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var r=new Uint8Array(16);e.exports=function(){return n(r),r}}else{var o=new Array(16);e.exports=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),o[t]=e>>>((3&t)<<3)&255;return o}}},function(e,t){for(var o=[],n=0;n<256;++n)o[n]=(n+256).toString(16).substr(1);e.exports=function(e,t){var n=t||0,r=o;return[r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]]].join("")}},,function(e,t,n){"use strict";n.r(t);var r=n(10),c=n.n(r),u=n(0),L=n.n(u),b=n(1),h=n(3),o=n(2),s=n.n(o),i=n(12),p=n.n(i),l=function(e,t){return e===t};var a=function(r,n){var o;void 0===n&&(n=l);var i,a=[],u=!1,s=function(e,t){return n(e,a[t])};return function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return u&&o===this&&t.length===a.length&&t.every(s)||(i=r.apply(this,t),u=!0,o=this,a=t),i}},d=n(4),m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},v=function(){function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}}(),g=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},M=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},y=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},H=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},E=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},O=function(e,t){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,t){var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(e){o=!0,i=e}finally{try{!r&&u.return&&u.return()}finally{if(o)throw i}}return n}(e,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")},w=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)},x=function(){};var P=function(e){return Array.isArray(e)?e.filter(Boolean):"object"===(void 0===e?"undefined":m(e))&&null!==e?[e]:[]};function C(e){return-1<[document.documentElement,document.body,window].indexOf(e)}function A(e){return C(e)?window.pageYOffset:e.scrollTop}function k(e,t){C(e)?window.scrollTo(0,t):e.scrollTop=t}function j(r,e){var o=2<arguments.length&&void 0!==arguments[2]?arguments[2]:200,i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:x,a=A(r),u=e-a,s=10,l=0;!function e(){var t,n=u*((t=(t=l+=s)/o-1)*t*t+1)+a;k(r,n),l<o?c()(e):i(r)}()}function S(){try{return document.createEvent("TouchEvent"),!0}catch(e){return!1}}function N(e){var t=e.maxHeight,n=e.menuEl,r=e.minHeight,o=e.placement,i=e.shouldScroll,a=e.isFixedPosition,u=e.theme.spacing,s=function(e){var t=getComputedStyle(e),n="absolute"===t.position,r=/(auto|scroll)/,o=document.documentElement;if("fixed"===t.position)return o;for(var i=e;i=i.parentElement;)if(t=getComputedStyle(i),(!n||"static"!==t.position)&&r.test(t.overflow+t.overflowY+t.overflowX))return i;return o}(n),l={placement:"bottom",maxHeight:t};if(!n||!n.offsetParent)return l;var c=s.getBoundingClientRect().height,p=n.getBoundingClientRect(),f=p.bottom,d=p.height,h=p.top,m=n.offsetParent.getBoundingClientRect().top,v=window.innerHeight,b=A(s),g=parseInt(getComputedStyle(n).marginBottom,10),y=parseInt(getComputedStyle(n).marginTop,10),E=m-y,O=v-h,w=E+b,x=c-b-h,P=f-v+b+g,C=b+h-y;switch(o){case"auto":case"bottom":if(d<=O)return{placement:"bottom",maxHeight:t};if(d<=x&&!a)return i&&j(s,P,160),{placement:"bottom",maxHeight:t};if(!a&&r<=x||a&&r<=O)return i&&j(s,P,160),{placement:"bottom",maxHeight:a?O-g:x-g};if("auto"===o||a){var S=t;return(!a&&r<=w||a&&r<=E)&&(S=a?E-g-u.controlHeight:w-g-u.controlHeight),{placement:"top",maxHeight:S}}if("bottom"===o)return k(s,P),{placement:"bottom",maxHeight:t};break;case"top":if(d<=E)return{placement:"top",maxHeight:t};if(d<=w&&!a)return i&&j(s,C,160),{placement:"top",maxHeight:t};if(!a&&r<=w||a&&r<=E){var N=t;return(!a&&r<=w||a&&r<=E)&&(N=a?E-y:w-y),i&&j(s,C,160),{placement:"top",maxHeight:N}}return{placement:"bottom",maxHeight:t};default:throw new Error('Invalid placement provided "'+o+'".')}return l}var R=function(e){return"auto"===e?"bottom":e},z=function(e){function i(){var e,t,p;f(this,i);for(var n=arguments.length,r=Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=p=E(this,(e=i.__proto__||Object.getPrototypeOf(i)).call.apply(e,[this].concat(r)))).state={maxHeight:p.props.maxMenuHeight,placement:null},p.getPlacement=function(e){var t=p.props,n=t.minMenuHeight,r=t.maxMenuHeight,o=t.menuPlacement,i=t.menuPosition,a=t.menuShouldScrollIntoView,u=t.theme,s=p.context.getPortalPlacement;if(e){var l="fixed"===i,c=N({maxHeight:r,menuEl:e,minHeight:n,placement:o,shouldScroll:a&&!l,isFixedPosition:l,theme:u});s&&s(c),p.setState(c)}},p.getUpdatedProps=function(){var e=p.props.menuPlacement,t=p.state.placement||R(e);return M({},p.props,{placement:t,maxHeight:p.state.maxHeight})},E(p,t)}return y(i,e),v(i,[{key:"render",value:function(){return(0,this.props.children)({ref:this.getPlacement,placerProps:this.getUpdatedProps()})}}]),i}(u.Component);z.contextTypes={getPortalPlacement:s.a.func};var D=function(e){var t=e.theme,n=t.spacing.baseUnit;return{color:t.colors.neutral40,padding:2*n+"px "+3*n+"px",textAlign:"center"}},V=D,F=D,T=function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,i=e.innerProps;return L.a.createElement("div",M({className:r(Object(b.a)(o("noOptionsMessage",e)),{"menu-notice":!0,"menu-notice--no-options":!0},n)},i),t)};T.defaultProps={children:"No options"};var B=function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,i=e.innerProps;return L.a.createElement("div",M({className:r(Object(b.a)(o("loadingMessage",e)),{"menu-notice":!0,"menu-notice--loading":!0},n)},i),t)};B.defaultProps={children:"Loading..."};var W=function(e){function a(){var e,t,n;f(this,a);for(var r=arguments.length,o=Array(r),i=0;i<r;i++)o[i]=arguments[i];return(t=n=E(this,(e=a.__proto__||Object.getPrototypeOf(a)).call.apply(e,[this].concat(o)))).state={placement:null},n.getPortalPlacement=function(e){var t=e.placement;t!==R(n.props.menuPlacement)&&n.setState({placement:t})},E(n,t)}return y(a,e),v(a,[{key:"getChildContext",value:function(){return{getPortalPlacement:this.getPortalPlacement}}},{key:"render",value:function(){var e=this.props,t=e.appendTo,n=e.children,r=e.controlElement,o=e.menuPlacement,i=e.menuPosition,a=e.getStyles,u="fixed"===i;if(!t&&!u||!r)return null;var s,l=this.state.placement||R(o),c={bottom:(s=r.getBoundingClientRect()).bottom,height:s.height,left:s.left,right:s.right,top:s.top,width:s.width},p=u?0:window.pageYOffset,f={offset:c[l]+p,position:i,rect:c},d=L.a.createElement("div",{className:Object(b.a)(a("menuPortal",f))},n);return t?Object(h.createPortal)(d,t):d}}]),a}(u.Component);W.childContextTypes={getPortalPlacement:s.a.func};var q=Array.isArray,G=Object.keys,X=Object.prototype.hasOwnProperty;function I(e,t){try{return function e(t,n){if(t===n)return!0;if(t&&n&&"object"==(void 0===t?"undefined":m(t))&&"object"==(void 0===n?"undefined":m(n))){var r,o,i,a=q(t),u=q(n);if(a&&u){if((o=t.length)!=n.length)return!1;for(r=o;0!=r--;)if(!e(t[r],n[r]))return!1;return!0}if(a!=u)return!1;var s=t instanceof Date,l=n instanceof Date;if(s!=l)return!1;if(s&&l)return t.getTime()==n.getTime();var c=t instanceof RegExp,p=n instanceof RegExp;if(c!=p)return!1;if(c&&p)return t.toString()==n.toString();var f=G(t);if((o=f.length)!==G(n).length)return!1;for(r=o;0!=r--;)if(!X.call(n,f[r]))return!1;for(r=o;0!=r--;)if(!("_owner"===(i=f[r])&&t.$$typeof||e(t[i],n[i])))return!1;return!0}return t!=t&&n!=n}(e,t)}catch(e){if(e.message&&e.message.match(/stack|recursion/i))return console.warn("Warning: react-fast-compare does not handle circular references.",e.name,e.message),!1;throw e}}var U=[{base:"A",letters:/[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g},{base:"AA",letters:/[\uA732]/g},{base:"AE",letters:/[\u00C6\u01FC\u01E2]/g},{base:"AO",letters:/[\uA734]/g},{base:"AU",letters:/[\uA736]/g},{base:"AV",letters:/[\uA738\uA73A]/g},{base:"AY",letters:/[\uA73C]/g},{base:"B",letters:/[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g},{base:"C",letters:/[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g},{base:"D",letters:/[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g},{base:"DZ",letters:/[\u01F1\u01C4]/g},{base:"Dz",letters:/[\u01F2\u01C5]/g},{base:"E",letters:/[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g},{base:"F",letters:/[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g},{base:"G",letters:/[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g},{base:"H",letters:/[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g},{base:"I",letters:/[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g},{base:"J",letters:/[\u004A\u24BF\uFF2A\u0134\u0248]/g},{base:"K",letters:/[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g},{base:"L",letters:/[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g},{base:"LJ",letters:/[\u01C7]/g},{base:"Lj",letters:/[\u01C8]/g},{base:"M",letters:/[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g},{base:"N",letters:/[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g},{base:"NJ",letters:/[\u01CA]/g},{base:"Nj",letters:/[\u01CB]/g},{base:"O",letters:/[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g},{base:"OI",letters:/[\u01A2]/g},{base:"OO",letters:/[\uA74E]/g},{base:"OU",letters:/[\u0222]/g},{base:"P",letters:/[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g},{base:"Q",letters:/[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g},{base:"R",letters:/[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g},{base:"S",letters:/[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g},{base:"T",letters:/[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g},{base:"TZ",letters:/[\uA728]/g},{base:"U",letters:/[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g},{base:"V",letters:/[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g},{base:"VY",letters:/[\uA760]/g},{base:"W",letters:/[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g},{base:"X",letters:/[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g},{base:"Y",letters:/[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g},{base:"Z",letters:/[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g},{base:"a",letters:/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g},{base:"aa",letters:/[\uA733]/g},{base:"ae",letters:/[\u00E6\u01FD\u01E3]/g},{base:"ao",letters:/[\uA735]/g},{base:"au",letters:/[\uA737]/g},{base:"av",letters:/[\uA739\uA73B]/g},{base:"ay",letters:/[\uA73D]/g},{base:"b",letters:/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g},{base:"c",letters:/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g},{base:"d",letters:/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g},{base:"dz",letters:/[\u01F3\u01C6]/g},{base:"e",letters:/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g},{base:"f",letters:/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g},{base:"g",letters:/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g},{base:"h",letters:/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g},{base:"hv",letters:/[\u0195]/g},{base:"i",letters:/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g},{base:"j",letters:/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g},{base:"k",letters:/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g},{base:"l",letters:/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g},{base:"lj",letters:/[\u01C9]/g},{base:"m",letters:/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g},{base:"n",letters:/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g},{base:"nj",letters:/[\u01CC]/g},{base:"o",letters:/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g},{base:"oi",letters:/[\u01A3]/g},{base:"ou",letters:/[\u0223]/g},{base:"oo",letters:/[\uA74F]/g},{base:"p",letters:/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g},{base:"q",letters:/[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g},{base:"r",letters:/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g},{base:"s",letters:/[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g},{base:"t",letters:/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g},{base:"tz",letters:/[\uA729]/g},{base:"u",letters:/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g},{base:"v",letters:/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g},{base:"vy",letters:/[\uA761]/g},{base:"w",letters:/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g},{base:"x",letters:/[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g},{base:"y",letters:/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g},{base:"z",letters:/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g}],Z=function(e){for(var t=0;t<U.length;t++)e=e.replace(U[t].letters,U[t].base);return e},Y=function(e){return e.replace(/^\s+|\s+$/g,"")},K=function(e){return e.label+" "+e.value},J=function(e){return L.a.createElement("span",M({className:Object(b.a)({zIndex:9999,border:0,clip:"rect(1px, 1px, 1px, 1px)",height:1,width:1,position:"absolute",overflow:"hidden",padding:0,whiteSpace:"nowrap",backgroundColor:"red",color:"blue"})},e))},Q=function(e){function t(){return f(this,t),E(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return y(t,e),v(t,[{key:"render",value:function(){var e=this.props,t=(e.in,e.out,e.onExited,e.appear,e.enter,e.exit,e.innerRef),n=H(e,["in","out","onExited","appear","enter","exit","innerRef"]);return L.a.createElement("input",M({ref:t},n,{className:Object(b.a)({background:0,border:0,fontSize:"inherit",outline:0,padding:0,width:1,color:"transparent",left:-100,opacity:0,position:"relative",transform:"scale(0)"})}))}}]),t}(u.Component),_=function(e){function t(){return f(this,t),E(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return y(t,e),v(t,[{key:"componentDidMount",value:function(){this.props.innerRef(Object(h.findDOMNode)(this))}},{key:"componentWillUnmount",value:function(){this.props.innerRef(null)}},{key:"render",value:function(){return this.props.children}}]),t}(u.Component),$=["boxSizing","height","overflow","paddingRight","position"],ee={boxSizing:"border-box",overflow:"hidden",position:"relative",height:"100%"};function te(e){e.preventDefault()}function ne(e){e.stopPropagation()}function re(){var e=this.scrollTop,t=this.scrollHeight,n=e+this.offsetHeight;0===e?this.scrollTop=1:n===t&&(this.scrollTop=e-1)}function oe(){return"ontouchstart"in window||navigator.maxTouchPoints}var ie=!("undefined"==typeof window||!window.document||!window.document.createElement),ae=0,ue=function(e){function a(){var e,t,n;f(this,a);for(var r=arguments.length,o=Array(r),i=0;i<r;i++)o[i]=arguments[i];return(t=n=E(this,(e=a.__proto__||Object.getPrototypeOf(a)).call.apply(e,[this].concat(o)))).originalStyles={},n.listenerOptions={capture:!1,passive:!1},E(n,t)}return y(a,e),v(a,[{key:"componentDidMount",value:function(){var n=this;if(ie){var e=this.props,t=e.accountForScrollbars,r=e.touchScrollTarget,o=document.body,i=o&&o.style;if(t&&$.forEach(function(e){var t=i&&i[e];n.originalStyles[e]=t}),t&&ae<1){var a=parseInt(this.originalStyles.paddingRight,10)||0,u=document.body?document.body.clientWidth:0,s=window.innerWidth-u+a||0;Object.keys(ee).forEach(function(e){var t=ee[e];i&&(i[e]=t)}),i&&(i.paddingRight=s+"px")}o&&oe()&&(o.addEventListener("touchmove",te,this.listenerOptions),r&&(r.addEventListener("touchstart",re,this.listenerOptions),r.addEventListener("touchmove",ne,this.listenerOptions))),ae+=1}}},{key:"componentWillUnmount",value:function(){var n=this;if(ie){var e=this.props,t=e.accountForScrollbars,r=e.touchScrollTarget,o=document.body,i=o&&o.style;ae=Math.max(ae-1,0),t&&ae<1&&$.forEach(function(e){var t=n.originalStyles[e];i&&(i[e]=t)}),o&&oe()&&(o.removeEventListener("touchmove",te,this.listenerOptions),r&&(r.removeEventListener("touchstart",re,this.listenerOptions),r.removeEventListener("touchmove",ne,this.listenerOptions)))}}},{key:"render",value:function(){return null}}]),a}(u.Component);ue.defaultProps={accountForScrollbars:!0};var se=function(e){function a(){var e,t,n;f(this,a);for(var r=arguments.length,o=Array(r),i=0;i<r;i++)o[i]=arguments[i];return(t=n=E(this,(e=a.__proto__||Object.getPrototypeOf(a)).call.apply(e,[this].concat(o)))).state={touchScrollTarget:null},n.getScrollTarget=function(e){e!==n.state.touchScrollTarget&&n.setState({touchScrollTarget:e})},n.blurSelectInput=function(){document.activeElement&&document.activeElement.blur()},E(n,t)}return y(a,e),v(a,[{key:"render",value:function(){var e=this.props,t=e.children,n=e.isEnabled,r=this.state.touchScrollTarget;return n?L.a.createElement("div",null,L.a.createElement("div",{onClick:this.blurSelectInput,className:Object(b.a)({position:"fixed",left:0,bottom:0,right:0,top:0})}),L.a.createElement(_,{innerRef:this.getScrollTarget},t),r?L.a.createElement(ue,{touchScrollTarget:r}):null):t}}]),a}(u.PureComponent),le=function(e){function i(){var e,t,m;f(this,i);for(var n=arguments.length,r=Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=m=E(this,(e=i.__proto__||Object.getPrototypeOf(i)).call.apply(e,[this].concat(r)))).isBottom=!1,m.isTop=!1,m.cancelScroll=function(e){e.preventDefault(),e.stopPropagation()},m.handleEventDelta=function(e,t){var n=m.props,r=n.onBottomArrive,o=n.onBottomLeave,i=n.onTopArrive,a=n.onTopLeave,u=m.scrollTarget,s=u.scrollTop,l=u.scrollHeight,c=u.clientHeight,p=m.scrollTarget,f=0<t,d=l-c-s,h=!1;t<d&&m.isBottom&&(o&&o(e),m.isBottom=!1),f&&m.isTop&&(a&&a(e),m.isTop=!1),f&&d<t?(r&&!m.isBottom&&r(e),p.scrollTop=l,h=!0,m.isBottom=!0):!f&&s<-t&&(i&&!m.isTop&&i(e),h=!(p.scrollTop=0),m.isTop=!0),h&&m.cancelScroll(e)},m.onWheel=function(e){m.handleEventDelta(e,e.deltaY)},m.onTouchStart=function(e){m.touchStart=e.changedTouches[0].clientY},m.onTouchMove=function(e){var t=m.touchStart-e.changedTouches[0].clientY;m.handleEventDelta(e,t)},m.getScrollTarget=function(e){m.scrollTarget=e},E(m,t)}return y(i,e),v(i,[{key:"componentDidMount",value:function(){this.startListening(this.scrollTarget)}},{key:"componentWillUnmount",value:function(){this.stopListening(this.scrollTarget)}},{key:"startListening",value:function(e){e.scrollHeight<=e.clientHeight||("function"==typeof e.addEventListener&&e.addEventListener("wheel",this.onWheel,!1),"function"==typeof e.addEventListener&&e.addEventListener("touchstart",this.onTouchStart,!1),"function"==typeof e.addEventListener&&e.addEventListener("touchmove",this.onTouchMove,!1))}},{key:"stopListening",value:function(e){e.scrollHeight<=e.clientHeight||("function"==typeof e.removeEventListener&&e.removeEventListener("wheel",this.onWheel,!1),"function"==typeof e.removeEventListener&&e.removeEventListener("touchstart",this.onTouchStart,!1),"function"==typeof e.removeEventListener&&e.removeEventListener("touchmove",this.onTouchMove,!1))}},{key:"render",value:function(){return L.a.createElement(_,{innerRef:this.getScrollTarget},this.props.children)}}]),i}(u.Component),ce=function(e){function t(){return f(this,t),E(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return y(t,e),v(t,[{key:"render",value:function(){var e=this.props,t=e.isEnabled,n=H(e,["isEnabled"]);return t?L.a.createElement(le,n):this.props.children}}]),t}(u.Component);ce.defaultProps={isEnabled:!0};var pe=function(e){function t(){return f(this,t),E(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return y(t,e),v(t,[{key:"render",value:function(){var e=this.props,t=e.children,n=e.className,r=e.cx,o=e.isMulti,i=e.getStyles,a=e.hasValue;return L.a.createElement("div",{className:r(Object(b.a)(i("valueContainer",this.props)),{"value-container":!0,"value-container--is-multi":o,"value-container--has-value":a},n)},t)}}]),t}(u.Component),fe=function(e){var t=e.size,n=H(e,["size"]);return L.a.createElement("svg",M({height:t,width:t,viewBox:"0 0 20 20","aria-hidden":"true",focusable:"false",className:Object(b.a)({display:"inline-block",fill:"currentColor",lineHeight:1,stroke:"currentColor",strokeWidth:0})},n))},de=function(e){return L.a.createElement(fe,M({size:20},e),L.a.createElement("path",{d:"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z"}))},he=function(e){return L.a.createElement(fe,M({size:20},e),L.a.createElement("path",{d:"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"}))},me=function(e){var t=e.isFocused,n=e.theme,r=n.spacing.baseUnit,o=n.colors;return{color:t?o.neutral60:o.neutral20,display:"flex",padding:2*r,transition:"color 150ms",":hover":{color:t?o.neutral80:o.neutral40}}},ve=me,be=function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,i=e.innerProps;return L.a.createElement("div",M({},i,{className:r(Object(b.a)(o("dropdownIndicator",e)),{indicator:!0,"dropdown-indicator":!0},n)}),t)};be.defaultProps={children:L.a.createElement(he,null)};var ge=me,ye=function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,i=e.innerProps;return L.a.createElement("div",M({},i,{className:r(Object(b.a)(o("clearIndicator",e)),{indicator:!0,"clear-indicator":!0},n)}),t)};ye.defaultProps={children:L.a.createElement(de,null)};var Ee="react-select-loading-indicator",Oe=function(e){var t=e.color,n=e.delay,r=e.offset;return L.a.createElement("span",{className:Object(b.a)({animationDuration:"1s",animationDelay:n+"ms",animationIterationCount:"infinite",animationName:Ee,animationTimingFunction:"ease-in-out",backgroundColor:t,borderRadius:"1em",display:"inline-block",marginLeft:r?"1em":null,height:"1em",verticalAlign:"top",width:"1em"})})};Object(b.b)("@keyframes ",Ee,"{0%,80%,100%{opacity:0;}40%{opacity:1;}};");var we=function(e){var t=e.className,n=e.cx,r=e.getStyles,o=e.innerProps,i=e.isFocused,a=e.isRtl,u=e.theme.colors,s=i?u.neutral80:u.neutral20;return L.a.createElement("div",M({},o,{className:n(Object(b.a)(r("loadingIndicator",e)),{indicator:!0,"loading-indicator":!0},t)}),L.a.createElement(Oe,{color:s,delay:0,offset:a}),L.a.createElement(Oe,{color:s,delay:160,offset:!0}),L.a.createElement(Oe,{color:s,delay:320,offset:!a}))};we.defaultProps={size:4};var xe=function(e){var t=e.children,n=e.innerProps;return L.a.createElement("div",n,t)},Pe=xe,Ce=xe,Se=function(e){function t(){return f(this,t),E(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return y(t,e),v(t,[{key:"render",value:function(){var e=this.props,t=e.children,n=e.innerProps;return L.a.createElement("div",n,t)}}]),t}(u.Component);Se.defaultProps={children:L.a.createElement(de,{size:14})};var Ne=function(e){function t(){return f(this,t),E(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return y(t,e),v(t,[{key:"render",value:function(){var e=this.props,t=e.children,n=e.className,r=e.components,o=e.cx,i=e.data,a=e.getStyles,u=e.innerProps,s=e.isDisabled,l=e.removeProps,c=e.selectProps,p=r.Container,f=r.Label,d=r.Remove,h=M({className:o(Object(b.a)(a("multiValue",this.props)),{"multi-value":!0,"multi-value--is-disabled":s},n)},u),m={className:o(Object(b.a)(a("multiValueLabel",this.props)),{"multi-value__label":!0},n)},v=M({className:o(Object(b.a)(a("multiValueRemove",this.props)),{"multi-value__remove":!0},n)},l);return L.a.createElement(p,{data:i,innerProps:h,selectProps:c},L.a.createElement(f,{data:i,innerProps:m,selectProps:c},t),L.a.createElement(d,{data:i,innerProps:v,selectProps:c}))}}]),t}(u.Component);Ne.defaultProps={cropWithEllipsis:!0};var Ae={ClearIndicator:ye,Control:function(e){var t=e.children,n=e.cx,r=e.getStyles,o=e.className,i=e.isDisabled,a=e.isFocused,u=e.innerRef,s=e.innerProps;return L.a.createElement("div",M({ref:u,className:n(Object(b.a)(r("control",e)),{control:!0,"control--is-disabled":i,"control--is-focused":a},o)},s),t)},DropdownIndicator:be,DownChevron:he,CrossIcon:de,Group:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,i=e.Heading,a=e.headingProps,u=e.label,s=e.theme;return L.a.createElement("div",{className:r(Object(b.a)(o("group",e)),{group:!0},n)},L.a.createElement(i,M({},a,{theme:s,getStyles:o,cx:r}),u),L.a.createElement("div",null,t))},GroupHeading:function(e){var t=e.className,n=e.cx,r=e.getStyles,o=e.theme,i=H(e,["className","cx","getStyles","theme"]);return L.a.createElement("div",M({className:n(Object(b.a)(r("groupHeading",M({theme:o},i))),{"group-heading":!0},t)},i))},IndicatorsContainer:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles;return L.a.createElement("div",{className:r(Object(b.a)(o("indicatorsContainer",e)),{indicators:!0},n)},t)},IndicatorSeparator:function(e){var t=e.className,n=e.cx,r=e.getStyles,o=e.innerProps;return L.a.createElement("span",M({},o,{className:n(Object(b.a)(r("indicatorSeparator",e)),{"indicator-separator":!0},t)}))},Input:function(e){var t,n=e.className,r=e.cx,o=e.getStyles,i=e.innerRef,a=e.isHidden,u=e.isDisabled,s=e.theme,l=H(e,["className","cx","getStyles","innerRef","isHidden","isDisabled","theme"]);return L.a.createElement("div",{className:Object(b.a)(o("input",M({theme:s},l)))},L.a.createElement(p.a,M({className:r(null,{input:!0},n),inputRef:i,inputStyle:(t=a,{background:0,border:0,fontSize:"inherit",opacity:t?0:1,outline:0,padding:0,color:"inherit"}),disabled:u},l)))},LoadingIndicator:we,Menu:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,i=e.innerRef,a=e.innerProps,u=r(Object(b.a)(o("menu",e)),{menu:!0},n);return L.a.createElement("div",M({className:u},a,{ref:i}),t)},MenuList:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,i=e.isMulti,a=e.innerRef;return L.a.createElement("div",{className:r(Object(b.a)(o("menuList",e)),{"menu-list":!0,"menu-list--is-multi":i},n),ref:a},t)},MenuPortal:W,LoadingMessage:B,NoOptionsMessage:T,MultiValue:Ne,MultiValueContainer:Pe,MultiValueLabel:Ce,MultiValueRemove:Se,Option:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,i=e.isDisabled,a=e.isFocused,u=e.isSelected,s=e.innerRef,l=e.innerProps;return L.a.createElement("div",M({ref:s,className:r(Object(b.a)(o("option",e)),{option:!0,"option--is-disabled":i,"option--is-focused":a,"option--is-selected":u},n)},l),t)},Placeholder:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,i=e.innerProps;return L.a.createElement("div",M({className:r(Object(b.a)(o("placeholder",e)),{placeholder:!0},n)},i),t)},SelectContainer:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,i=e.innerProps,a=e.isDisabled,u=e.isRtl;return L.a.createElement("div",M({className:r(Object(b.a)(o("container",e)),{"--is-disabled":a,"--is-rtl":u},n)},i),t)},SingleValue:function(e){var t=e.children,n=e.className,r=e.cx,o=e.getStyles,i=e.isDisabled,a=e.innerProps;return L.a.createElement("div",M({className:r(Object(b.a)(o("singleValue",e)),{"single-value":!0,"single-value--is-disabled":i},n)},a),t)},ValueContainer:pe},ke=function(e){return M({},Ae,e.components)},je={clearIndicator:ge,container:function(e){var t=e.isDisabled;return{direction:e.isRtl?"rtl":null,pointerEvents:t?"none":null,position:"relative"}},control:function(e){var t=e.isDisabled,n=e.isFocused,r=e.theme,o=r.colors,i=r.borderRadius,a=r.spacing;return{alignItems:"center",backgroundColor:t?o.neutral5:o.neutral0,borderColor:t?o.neutral10:n?o.primary:o.neutral20,borderRadius:i,borderStyle:"solid",borderWidth:1,boxShadow:n?"0 0 0 1px "+o.primary:null,cursor:"default",display:"flex",flexWrap:"wrap",justifyContent:"space-between",minHeight:a.controlHeight,outline:"0 !important",position:"relative",transition:"all 100ms","&:hover":{borderColor:n?o.primary:o.neutral30}}},dropdownIndicator:ve,group:function(e){var t=e.theme.spacing;return{paddingBottom:2*t.baseUnit,paddingTop:2*t.baseUnit}},groupHeading:function(e){var t=e.theme.spacing;return{color:"#999",cursor:"default",display:"block",fontSize:"75%",fontWeight:"500",marginBottom:"0.25em",paddingLeft:3*t.baseUnit,paddingRight:3*t.baseUnit,textTransform:"uppercase"}},indicatorsContainer:function(){return{alignItems:"center",alignSelf:"stretch",display:"flex",flexShrink:0}},indicatorSeparator:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing.baseUnit,o=n.colors;return{alignSelf:"stretch",backgroundColor:t?o.neutral10:o.neutral20,marginBottom:2*r,marginTop:2*r,width:1}},input:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing,o=n.colors;return{margin:r.baseUnit/2,paddingBottom:r.baseUnit/2,paddingTop:r.baseUnit/2,visibility:t?"hidden":"visible",color:o.neutral80}},loadingIndicator:function(e){var t=e.isFocused,n=e.size,r=e.theme,o=r.colors,i=r.spacing.baseUnit;return{color:t?o.neutral60:o.neutral20,display:"flex",padding:2*i,transition:"color 150ms",alignSelf:"center",fontSize:n,lineHeight:1,marginRight:n,textAlign:"center",verticalAlign:"middle"}},loadingMessage:F,menu:function(e){var t,n,r=e.placement,o=e.theme,i=o.borderRadius,a=o.spacing,u=o.colors;return g(t={},(n=r)?{bottom:"top",top:"bottom"}[n]:"bottom","100%"),g(t,"backgroundColor",u.neutral0),g(t,"borderRadius",i),g(t,"boxShadow","0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)"),g(t,"marginBottom",a.menuGutter),g(t,"marginTop",a.menuGutter),g(t,"position","absolute"),g(t,"width","100%"),g(t,"zIndex",1),t},menuList:function(e){var t=e.maxHeight,n=e.theme.spacing.baseUnit;return{maxHeight:t,overflowY:"auto",paddingBottom:n,paddingTop:n,position:"relative",WebkitOverflowScrolling:"touch"}},menuPortal:function(e){var t=e.rect,n=e.offset,r=e.position;return{left:t.left,position:r,top:n,width:t.width,zIndex:1}},multiValue:function(e){var t=e.theme,n=t.spacing,r=t.borderRadius;return{backgroundColor:t.colors.neutral10,borderRadius:r/2,display:"flex",margin:n.baseUnit/2,minWidth:0}},multiValueLabel:function(e){var t=e.theme,n=t.borderRadius,r=t.colors,o=e.cropWithEllipsis;return{borderRadius:n/2,color:r.neutral80,fontSize:"85%",overflow:"hidden",padding:3,paddingLeft:6,textOverflow:o?"ellipsis":null,whiteSpace:"nowrap"}},multiValueRemove:function(e){var t=e.theme,n=t.spacing,r=t.borderRadius,o=t.colors;return{alignItems:"center",borderRadius:r/2,backgroundColor:e.isFocused&&o.dangerLight,display:"flex",paddingLeft:n.baseUnit,paddingRight:n.baseUnit,":hover":{backgroundColor:o.dangerLight,color:o.danger}}},noOptionsMessage:V,option:function(e){var t=e.isDisabled,n=e.isFocused,r=e.isSelected,o=e.theme,i=o.spacing,a=o.colors;return{backgroundColor:r?a.primary:n?a.primary25:"transparent",color:t?a.neutral20:r?a.neutral0:"inherit",cursor:"default",display:"block",fontSize:"inherit",padding:2*i.baseUnit+"px "+3*i.baseUnit+"px",width:"100%",userSelect:"none",WebkitTapHighlightColor:"rgba(0, 0, 0, 0)",":active":{backgroundColor:r?a.primary:a.primary50}}},placeholder:function(e){var t=e.theme,n=t.spacing;return{color:t.colors.neutral50,marginLeft:n.baseUnit/2,marginRight:n.baseUnit/2,position:"absolute",top:"50%",transform:"translateY(-50%)"}},singleValue:function(e){var t=e.isDisabled,n=e.theme,r=n.spacing,o=n.colors;return{color:t?o.neutral40:o.neutral80,marginLeft:r.baseUnit/2,marginRight:r.baseUnit/2,maxWidth:"calc(100% - "+2*r.baseUnit+"px)",overflow:"hidden",position:"absolute",textOverflow:"ellipsis",whiteSpace:"nowrap",top:"50%",transform:"translateY(-50%)"}},valueContainer:function(e){var t=e.theme.spacing;return{alignItems:"center",display:"flex",flex:1,flexWrap:"wrap",padding:t.baseUnit/2+"px "+2*t.baseUnit+"px",WebkitOverflowScrolling:"touch",position:"relative",overflow:"hidden"}}};var Re,De={borderRadius:4,colors:{primary:"#2684FF",primary75:"#4C9AFF",primary50:"#B2D4FF",primary25:"#DEEBFF",danger:"#DE350B",dangerLight:"#FFBDAD",neutral0:"hsl(0, 0%, 100%)",neutral5:"hsl(0, 0%, 95%)",neutral10:"hsl(0, 0%, 90%)",neutral20:"hsl(0, 0%, 80%)",neutral30:"hsl(0, 0%, 70%)",neutral40:"hsl(0, 0%, 60%)",neutral50:"hsl(0, 0%, 50%)",neutral60:"hsl(0, 0%, 40%)",neutral70:"hsl(0, 0%, 30%)",neutral80:"hsl(0, 0%, 20%)",neutral90:"hsl(0, 0%, 10%)"},spacing:{baseUnit:4,controlHeight:38,menuGutter:8}},Ve={backspaceRemovesValue:!0,blurInputOnSelect:S(),captureMenuScroll:!S(),closeMenuOnSelect:!0,closeMenuOnScroll:!1,components:{},controlShouldRenderValue:!0,escapeClearsValue:!1,filterOption:function(e,t){var n=M({ignoreCase:!0,ignoreAccents:!0,stringify:K,trim:!0,matchFrom:"any"},Re),r=n.ignoreCase,o=n.ignoreAccents,i=n.stringify,a=n.trim,u=n.matchFrom,s=a?Y(t):t,l=a?Y(i(e)):i(e);return r&&(s=s.toLowerCase(),l=l.toLowerCase()),o&&(s=Z(s),l=Z(l)),"start"===u?l.substr(0,s.length)===s:-1<l.indexOf(s)},formatGroupLabel:function(e){return e.label},getOptionLabel:function(e){return e.label},getOptionValue:function(e){return e.value},isDisabled:!1,isLoading:!1,isMulti:!1,isRtl:!1,isSearchable:!0,isOptionDisabled:function(e){return!!e.isDisabled},loadingMessage:function(){return"Loading..."},maxMenuHeight:300,minMenuHeight:140,menuIsOpen:!1,menuPlacement:"bottom",menuPosition:"absolute",menuShouldBlockScroll:!1,menuShouldScrollIntoView:!function(){try{return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}catch(e){return!1}}(),noOptionsMessage:function(){return"No options"},openMenuOnFocus:!1,openMenuOnClick:!0,options:[],pageSize:5,placeholder:"Select...",screenReaderStatus:function(e){var t=e.count;return t+" result"+(1!==t?"s":"")+" available"},styles:{},tabIndex:"0",tabSelectsValue:!0},Fe=1,Te=function(e){function i(e){f(this,i);var t=E(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,e));Le.call(t);var n=e.value;t.cacheComponents=a(t.cacheComponents,I).bind(t),t.cacheComponents(e.components),t.instancePrefix="react-select-"+(t.props.instanceId||++Fe);var r=P(n),o=t.buildMenuOptions(e,r);return t.state.menuOptions=o,t.state.selectValue=r,t}return y(i,e),v(i,[{key:"componentDidMount",value:function(){this.startListeningComposition(),this.startListeningToTouch(),this.props.closeMenuOnScroll&&document&&document.addEventListener&&document.addEventListener("scroll",this.onScroll,!0),this.props.autoFocus&&this.focusInput()}},{key:"componentWillReceiveProps",value:function(e){var t=this.props,n=t.options,r=t.value,o=t.inputValue;if(this.cacheComponents(e.components),e.value!==r||e.options!==n||e.inputValue!==o){var i=P(e.value),a=this.buildMenuOptions(e,i),u=this.getNextFocusedValue(i),s=this.getNextFocusedOption(a.focusable);this.setState({menuOptions:a,selectValue:i,focusedOption:s,focusedValue:u})}null!=this.inputIsHiddenAfterUpdate&&(this.setState({inputIsHidden:this.inputIsHiddenAfterUpdate}),delete this.inputIsHiddenAfterUpdate)}},{key:"componentDidUpdate",value:function(e){var t,n,r,o,i,a=this.props,u=a.isDisabled,s=a.menuIsOpen,l=this.state.isFocused;(l&&!u&&e.isDisabled||l&&s&&!e.menuIsOpen)&&this.focusInput(),this.menuListRef&&this.focusedOptionRef&&this.scrollToFocusedOptionOnUpdate&&(t=this.menuListRef,n=this.focusedOptionRef,r=t.getBoundingClientRect(),o=n.getBoundingClientRect(),i=n.offsetHeight/3,o.bottom+i>r.bottom?k(t,Math.min(n.offsetTop+n.clientHeight-t.offsetHeight+i,t.scrollHeight)):o.top-i<r.top&&k(t,Math.max(n.offsetTop-i,0))),this.scrollToFocusedOptionOnUpdate=!1}},{key:"componentWillUnmount",value:function(){this.stopListeningComposition(),this.stopListeningToTouch(),document.removeEventListener("scroll",this.onScroll,!0)}},{key:"onMenuOpen",value:function(){this.props.onMenuOpen()}},{key:"onMenuClose",value:function(){var e=this.props,t=e.isSearchable,n=e.isMulti;this.announceAriaLiveContext({event:"input",context:{isSearchable:t,isMulti:n}}),this.onInputChange("",{action:"menu-close"}),this.props.onMenuClose()}},{key:"onInputChange",value:function(e,t){this.props.onInputChange(e,t)}},{key:"focusInput",value:function(){this.inputRef&&this.inputRef.focus()}},{key:"blurInput",value:function(){this.inputRef&&this.inputRef.blur()}},{key:"openMenu",value:function(e){var t=this.state,n=t.menuOptions,r=t.selectValue,o=this.props.isMulti,i="first"===e?0:n.focusable.length-1;if(!o){var a=n.focusable.indexOf(r[0]);-1<a&&(i=a)}this.scrollToFocusedOptionOnUpdate=!0,this.inputIsHiddenAfterUpdate=!1,this.onMenuOpen(),this.setState({focusedValue:null,focusedOption:n.focusable[i]}),this.announceAriaLiveContext({event:"menu"})}},{key:"focusValue",value:function(e){var t=this.props,n=t.isMulti,r=t.isSearchable,o=this.state,i=o.selectValue,a=o.focusedValue;if(n){this.setState({focusedOption:null});var u=i.indexOf(a);a||(u=-1,this.announceAriaLiveContext({event:"value"}));var s=i.length-1,l=-1;if(i.length){switch(e){case"previous":l=0===u?0:-1===u?s:u-1;break;case"next":-1<u&&u<s&&(l=u+1)}-1===l&&this.announceAriaLiveContext({event:"input",context:{isSearchable:r,isMulti:n}}),this.setState({inputIsHidden:-1!==l,focusedValue:i[l]})}}}},{key:"focusOption",value:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"first",t=this.props.pageSize,n=this.state,r=n.focusedOption,o=n.menuOptions.focusable;if(o.length){var i=0,a=o.indexOf(r);r||(a=-1,this.announceAriaLiveContext({event:"menu"})),"up"===e?i=0<a?a-1:o.length-1:"down"===e?i=(a+1)%o.length:"pageup"===e?(i=a-t)<0&&(i=0):"pagedown"===e?(i=a+t)>o.length-1&&(i=o.length-1):"last"===e&&(i=o.length-1),this.scrollToFocusedOptionOnUpdate=!0,this.setState({focusedOption:o[i],focusedValue:null})}}},{key:"getTheme",value:function(){return this.props.theme?"function"==typeof this.props.theme?this.props.theme(De):M({},De,this.props.theme):De}},{key:"getCommonProps",value:function(){var e=this.clearValue,t=this.getStyles,n=this.setValue,r=this.selectOption,o=this.props,i=o.classNamePrefix,a=o.isMulti,u=o.isRtl,s=o.options,l=this.state.selectValue,c=this.hasValue();return{cx:function(e,t,n,r){var o,i,a=[t,r];if(n&&e)for(var u in n)n.hasOwnProperty(u)&&n[u]&&a.push(""+(o=e,(i=u)?"-"===i[0]?o+i:o+"__"+i:o));return a.filter(function(e){return e}).map(function(e){return String(e).trim()}).join(" ")}.bind(null,i),clearValue:e,getStyles:t,getValue:function(){return l},hasValue:c,isMulti:a,isRtl:u,options:s,selectOption:r,setValue:n,selectProps:o,theme:this.getTheme()}}},{key:"getNextFocusedValue",value:function(e){if(this.clearFocusValueOnUpdate)return this.clearFocusValueOnUpdate=!1,null;var t=this.state,n=t.focusedValue,r=t.selectValue.indexOf(n);if(-1<r){if(-1<e.indexOf(n))return n;if(r<e.length)return e[r]}return null}},{key:"getNextFocusedOption",value:function(e){var t=this.state.focusedOption;return t&&-1<e.indexOf(t)?t:e[0]}},{key:"hasValue",value:function(){return 0<this.state.selectValue.length}},{key:"hasOptions",value:function(){return!!this.state.menuOptions.render.length}},{key:"countOptions",value:function(){return this.state.menuOptions.focusable.length}},{key:"isClearable",value:function(){var e=this.props,t=e.isClearable,n=e.isMulti;return void 0===t?n:t}},{key:"isOptionDisabled",value:function(e,t){return"function"==typeof this.props.isOptionDisabled&&this.props.isOptionDisabled(e,t)}},{key:"isOptionSelected",value:function(e,t){var n=this;if(-1<t.indexOf(e))return!0;if("function"==typeof this.props.isOptionSelected)return this.props.isOptionSelected(e,t);var r=this.getOptionValue(e);return t.some(function(e){return n.getOptionValue(e)===r})}},{key:"filterOption",value:function(e,t){return!this.props.filterOption||this.props.filterOption(e,t)}},{key:"formatOptionLabel",value:function(e,t){if("function"!=typeof this.props.formatOptionLabel)return this.getOptionLabel(e);var n=this.props.inputValue,r=this.state.selectValue;return this.props.formatOptionLabel(e,{context:t,inputValue:n,selectValue:r})}},{key:"formatGroupLabel",value:function(e){return this.props.formatGroupLabel(e)}},{key:"startListeningComposition",value:function(){document&&document.addEventListener&&(document.addEventListener("compositionstart",this.onCompositionStart,!1),document.addEventListener("compositionend",this.onCompositionEnd,!1))}},{key:"stopListeningComposition",value:function(){document&&document.removeEventListener&&(document.removeEventListener("compositionstart",this.onCompositionStart),document.removeEventListener("compositionend",this.onCompositionEnd))}},{key:"startListeningToTouch",value:function(){document&&document.addEventListener&&(document.addEventListener("touchstart",this.onTouchStart,!1),document.addEventListener("touchmove",this.onTouchMove,!1),document.addEventListener("touchend",this.onTouchEnd,!1))}},{key:"stopListeningToTouch",value:function(){document&&document.removeEventListener&&(document.removeEventListener("touchstart",this.onTouchStart),document.removeEventListener("touchmove",this.onTouchMove),document.removeEventListener("touchend",this.onTouchEnd))}},{key:"buildMenuOptions",value:function(e,l){var c=this,t=e.inputValue,p=void 0===t?"":t,n=e.options,a=function(e,t){var n=c.isOptionDisabled(e,l),r=c.isOptionSelected(e,l),o=c.getOptionLabel(e),i=c.getOptionValue(e);if(!(c.shouldHideSelectedOptions()&&r||!c.filterOption({label:o,value:i,data:e},p))){var a=n?void 0:function(){return c.onOptionHover(e)},u=n?void 0:function(){return c.selectOption(e)},s=c.getElementId("option")+"-"+t;return{innerProps:{id:s,onClick:u,onMouseMove:a,onMouseOver:a,role:"option",tabIndex:-1},data:e,isDisabled:n,isSelected:r,key:s,label:o,type:"option",value:i}}};return n.reduce(function(r,e,o){if(e.options){c.hasGroups||(c.hasGroups=!0);var t=e.options.map(function(e,t){var n=a(e,o+"-"+t);return n&&!n.isDisabled&&r.focusable.push(e),n}).filter(Boolean);if(t.length){var n=c.getElementId("group")+"-"+o;r.render.push({type:"group",key:n,data:e,options:t})}}else{var i=a(e,""+o);i&&(r.render.push(i),i.isDisabled||r.focusable.push(e))}return r},{render:[],focusable:[]})}},{key:"constructAriaLiveMessage",value:function(){var e,t,n,r,o,i,a,u,s,l,c=this.state,p=c.ariaLiveContext,f=c.selectValue,d=c.focusedValue,h=c.focusedOption,m=this.props,v=m.options,b=m.menuIsOpen,g=m.inputValue,y=m.screenReaderStatus;return(d?(e={focusedValue:d,getOptionLabel:this.getOptionLabel,selectValue:f},t=e.focusedValue,n=e.getOptionLabel,r=e.selectValue,"value "+n(t)+" focused, "+(r.indexOf(t)+1)+" of "+r.length+"."):"")+" "+(h&&b?(o={focusedOption:h,getOptionLabel:this.getOptionLabel,options:v},i=o.focusedOption,a=o.getOptionLabel,u=o.options,"option "+a(i)+" focused, "+(u.indexOf(i)+1)+" of "+u.length+"."):"")+" "+(s={inputValue:g,screenReaderMessage:y({count:this.countOptions()})},l=s.inputValue,s.screenReaderMessage+(l?" for search term "+l:"")+".")+" "+p}},{key:"renderInput",value:function(){var e=this.props,t=e.isDisabled,n=e.isSearchable,r=e.inputId,o=e.inputValue,i=e.tabIndex,a=this.components.Input,u=this.state.inputIsHidden,s=r||this.getElementId("input");if(!n)return L.a.createElement(Q,{id:s,innerRef:this.getInputRef,onBlur:this.onInputBlur,onChange:x,onFocus:this.onInputFocus,readOnly:!0,tabIndex:i,value:""});var l={"aria-autocomplete":"list","aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"]},c=this.commonProps,p=c.cx,f=c.theme;return L.a.createElement(a,M({autoCapitalize:"none",autoComplete:"off",autoCorrect:"off",cx:p,getStyles:this.getStyles,id:s,innerRef:this.getInputRef,isDisabled:t,isHidden:u,onBlur:this.onInputBlur,onChange:this.handleInputChange,onFocus:this.onInputFocus,spellCheck:"false",tabIndex:i,theme:f,type:"text",value:o},l))}},{key:"renderPlaceholderOrValue",value:function(){var n=this,e=this.components,r=e.MultiValue,o=e.MultiValueContainer,i=e.MultiValueLabel,a=e.MultiValueRemove,t=e.SingleValue,u=e.Placeholder,s=this.commonProps,l=this.props,c=l.controlShouldRenderValue,p=l.isDisabled,f=l.isMulti,d=l.inputValue,h=l.placeholder,m=this.state,v=m.selectValue,b=m.focusedValue;if(!this.hasValue()||!c)return d?null:L.a.createElement(u,M({},s,{key:"placeholder",isDisabled:p}),h);if(f)return v.map(function(e){var t=e===b;return L.a.createElement(r,M({},s,{components:{Container:o,Label:i,Remove:a},isFocused:t,isDisabled:p,key:n.getOptionValue(e),removeProps:{onClick:function(){return n.removeValue(e)},onTouchEnd:function(){return n.removeValue(e)},onMouseDown:function(e){e.preventDefault(),e.stopPropagation()}},data:e}),n.formatOptionLabel(e,"value"))});if(d)return null;var g=v[0];return L.a.createElement(t,M({},s,{data:g,isDisabled:p}),this.formatOptionLabel(g,"value"))}},{key:"renderClearIndicator",value:function(){var e=this.components.ClearIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,o=n.isLoading,i=this.state.isFocused;if(!this.isClearable()||!e||r||!this.hasValue()||o)return null;var a={onMouseDown:this.onClearIndicatorMouseDown,onTouchEnd:this.onClearIndicatorTouchEnd,"aria-hidden":"true"};return L.a.createElement(e,M({},t,{innerProps:a,isFocused:i}))}},{key:"renderLoadingIndicator",value:function(){var e=this.components.LoadingIndicator,t=this.commonProps,n=this.props,r=n.isDisabled,o=n.isLoading,i=this.state.isFocused;if(!e||!o)return null;return L.a.createElement(e,M({},t,{innerProps:{"aria-hidden":"true"},isDisabled:r,isFocused:i}))}},{key:"renderIndicatorSeparator",value:function(){var e=this.components,t=e.DropdownIndicator,n=e.IndicatorSeparator;if(!t||!n)return null;var r=this.commonProps,o=this.props.isDisabled,i=this.state.isFocused;return L.a.createElement(n,M({},r,{isDisabled:o,isFocused:i}))}},{key:"renderDropdownIndicator",value:function(){var e=this.components.DropdownIndicator;if(!e)return null;var t=this.commonProps,n=this.props.isDisabled,r=this.state.isFocused,o={onMouseDown:this.onDropdownIndicatorMouseDown,onTouchEnd:this.onDropdownIndicatorTouchEnd,"aria-hidden":"true"};return L.a.createElement(e,M({},t,{innerProps:o,isDisabled:n,isFocused:r}))}},{key:"renderMenu",value:function(){var i=this,e=this.components,r=e.Group,o=e.GroupHeading,a=e.Menu,u=e.MenuList,t=e.MenuPortal,n=e.LoadingMessage,s=e.NoOptionsMessage,l=e.Option,c=this.commonProps,p=this.state,f=p.focusedOption,d=p.menuOptions,h=this.props,m=h.captureMenuScroll,v=h.inputValue,b=h.isLoading,g=h.loadingMessage,y=h.minMenuHeight,E=h.maxMenuHeight,O=h.menuIsOpen,w=h.menuPlacement,x=h.menuPosition,P=h.menuPortalTarget,C=h.menuShouldBlockScroll,S=h.menuShouldScrollIntoView,N=h.noOptionsMessage,A=h.onMenuScrollToTop,k=h.onMenuScrollToBottom;if(!O)return null;var j=function(e){var t=f===e.data;return e.innerRef=t?i.getFocusedOptionRef:void 0,L.a.createElement(l,M({},c,e,{isFocused:t}),i.formatOptionLabel(e.data,"menu"))},R=void 0;if(this.hasOptions())R=d.render.map(function(e){if("group"===e.type){e.type;var t=H(e,["type"]),n=e.key+"-heading";return L.a.createElement(r,M({},c,t,{Heading:o,headingProps:{id:n},label:i.formatGroupLabel(e.data)}),e.options.map(function(e){return j(e)}))}if("option"===e.type)return j(e)});else if(b){var D=g({inputValue:v});if(null===D)return null;R=L.a.createElement(n,c,D)}else{var V=N({inputValue:v});if(null===V)return null;R=L.a.createElement(s,c,V)}var F={minMenuHeight:y,maxMenuHeight:E,menuPlacement:w,menuPosition:x,menuShouldScrollIntoView:S},T=L.a.createElement(z,M({},c,F),function(e){var t=e.ref,n=e.placerProps,r=n.placement,o=n.maxHeight;return L.a.createElement(a,M({},c,F,{innerRef:t,innerProps:{onMouseDown:i.onMenuMouseDown,onMouseMove:i.onMenuMouseMove},isLoading:b,placement:r}),L.a.createElement(ce,{isEnabled:m,onTopArrive:A,onBottomArrive:k},L.a.createElement(se,{isEnabled:C},L.a.createElement(u,M({},c,{innerRef:i.getMenuListRef,isLoading:b,maxHeight:o}),R))))});return P||"fixed"===x?L.a.createElement(t,M({},c,{appendTo:P,controlElement:this.controlRef,menuPlacement:w,menuPosition:x}),T):T}},{key:"renderFormField",value:function(){var n=this,e=this.props,t=e.delimiter,r=e.isDisabled,o=e.isMulti,i=e.name,a=this.state.selectValue;if(i&&!r){if(o){if(t){var u=a.map(function(e){return n.getOptionValue(e)}).join(t);return L.a.createElement("input",{name:i,type:"hidden",value:u})}var s=0<a.length?a.map(function(e,t){return L.a.createElement("input",{key:"i-"+t,name:i,type:"hidden",value:n.getOptionValue(e)})}):L.a.createElement("input",{name:i,type:"hidden"});return L.a.createElement("div",null,s)}var l=a[0]?this.getOptionValue(a[0]):"";return L.a.createElement("input",{name:i,type:"hidden",value:l})}}},{key:"renderLiveRegion",value:function(){return this.state.isFocused?L.a.createElement(J,{"aria-live":"assertive"},L.a.createElement("p",{id:"aria-selection-event"}," ",this.state.ariaLiveSelection),L.a.createElement("p",{id:"aria-context"}," ",this.constructAriaLiveMessage())):null}},{key:"render",value:function(){var e=this.components,t=e.Control,n=e.IndicatorsContainer,r=e.SelectContainer,o=e.ValueContainer,i=this.props,a=i.className,u=i.id,s=i.isDisabled,l=this.state.isFocused,c=this.commonProps=this.getCommonProps();return L.a.createElement(r,M({},c,{className:a,innerProps:{id:u,onKeyDown:this.onKeyDown},isDisabled:s,isFocused:l}),this.renderLiveRegion(),L.a.createElement(t,M({},c,{innerRef:this.getControlRef,innerProps:{onMouseDown:this.onControlMouseDown,onTouchEnd:this.onControlTouchEnd},isDisabled:s,isFocused:l}),L.a.createElement(o,M({},c,{isDisabled:s}),this.renderPlaceholderOrValue(),this.renderInput()),L.a.createElement(n,M({},c,{isDisabled:s}),this.renderClearIndicator(),this.renderLoadingIndicator(),this.renderIndicatorSeparator(),this.renderDropdownIndicator())),this.renderMenu(),this.renderFormField())}}]),i}(u.Component);Te.defaultProps=Ve;var Le=function(){var b=this;this.state={ariaLiveSelection:"",ariaLiveContext:"",focusedOption:null,focusedValue:null,inputIsHidden:!1,isFocused:!1,isComposing:!1,menuOptions:{render:[],focusable:[]},selectValue:[]},this.blockOptionHover=!1,this.clearFocusValueOnUpdate=!1,this.hasGroups=!1,this.initialTouchX=0,this.initialTouchY=0,this.instancePrefix="",this.openAfterFocus=!1,this.scrollToFocusedOptionOnUpdate=!1,this.controlRef=null,this.getControlRef=function(e){b.controlRef=e},this.focusedOptionRef=null,this.getFocusedOptionRef=function(e){b.focusedOptionRef=e},this.menuListRef=null,this.getMenuListRef=function(e){b.menuListRef=e},this.inputRef=null,this.getInputRef=function(e){b.inputRef=e},this.cacheComponents=function(e){b.components=ke({components:e})},this.focus=this.focusInput,this.blur=this.blurInput,this.setValue=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"set-value",n=arguments[2],r=b.props,o=r.closeMenuOnSelect,i=r.isMulti,a=r.onChange;b.onInputChange("",{action:"set-value"}),o&&(b.inputIsHiddenAfterUpdate=!i,b.onMenuClose()),b.clearFocusValueOnUpdate=!0,a(e,{action:t,option:n})},this.selectOption=function(e){var t=b.props,n=t.blurInputOnSelect;if(t.isMulti){var r=b.state.selectValue;if(b.isOptionSelected(e,r)){var o=b.getOptionValue(e);b.setValue(r.filter(function(e){return b.getOptionValue(e)!==o}),"deselect-option",e),b.announceAriaLiveSelection({event:"deselect-option",context:{value:b.getOptionLabel(e)}})}else b.setValue([].concat(w(r),[e]),"select-option",e),b.announceAriaLiveSelection({event:"select-option",context:{value:b.getOptionLabel(e)}})}else b.setValue(e,"select-option"),b.announceAriaLiveSelection({event:"select-option",context:{value:b.getOptionLabel(e)}});n&&b.blurInput()},this.removeValue=function(e){var t=b.props.onChange,n=b.state.selectValue,r=b.getOptionValue(e);t(n.filter(function(e){return b.getOptionValue(e)!==r}),{action:"remove-value",removedValue:e}),b.announceAriaLiveSelection({event:"remove-value",context:{value:e?b.getOptionLabel(e):void 0}}),b.focusInput()},this.clearValue=function(){var e=b.props,t=e.isMulti;(0,e.onChange)(t?[]:null,{action:"clear"})},this.popValue=function(){var e=b.props.onChange,t=b.state.selectValue,n=t[t.length-1];b.announceAriaLiveSelection({event:"pop-value",context:{value:n?b.getOptionLabel(n):void 0}}),e(t.slice(0,t.length-1),{action:"pop-value",removedValue:n})},this.getOptionLabel=function(e){return b.props.getOptionLabel(e)},this.getOptionValue=function(e){return b.props.getOptionValue(e)},this.getStyles=function(e,t){var n=je[e](t);n.boxSizing="border-box";var r=b.props.styles[e];return r?r(n,t):n},this.getElementId=function(e){return b.instancePrefix+"-"+e},this.getActiveDescendentId=function(){var e=b.props.menuIsOpen,t=b.state,n=t.menuOptions,r=t.focusedOption;if(r&&e){var o=n.focusable.indexOf(r),i=n.render[o];return i&&i.key}},this.announceAriaLiveSelection=function(e){var t=e.event,n=e.context;b.setState({ariaLiveSelection:function(e,t){var n=t.value;if(n)switch(e){case"deselect-option":case"pop-value":case"remove-value":return"option "+n+", deselected.";case"select-option":return"option "+n+", selected."}}(t,n)})},this.announceAriaLiveContext=function(e){var t=e.event,n=e.context;b.setState({ariaLiveContext:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=t.isSearchable,r=t.isMulti,o=t.label;switch(e){case"menu":return"Use Up and Down to choose options, press Backspace to select the currently focused option, press Escape to exit the menu, press Tab to select the option and exit the menu.";case"input":return(o||"Select")+" is focused "+(n?",type to refine list":"")+", press Down to open the menu, "+(r?" press left to focus selected values":"");case"value":return"Use left and right to toggle between focused values, press Enter to remove the currently focused value"}}(t,M({},n,{label:b.props["aria-label"]}))})},this.onMenuMouseDown=function(e){0===e.button&&(e.stopPropagation(),e.preventDefault(),b.focusInput())},this.onMenuMouseMove=function(e){b.blockOptionHover=!1},this.onControlMouseDown=function(e){var t=b.props.openMenuOnClick;b.state.isFocused?b.props.menuIsOpen?b.onMenuClose():b.openMenu("first"):(t&&(b.openAfterFocus=!0),b.focusInput()),"INPUT"!==e.target.tagName&&e.preventDefault()},this.onDropdownIndicatorMouseDown=function(e){if(!(e&&"mousedown"===e.type&&0!==e.button||b.props.isDisabled)){var t=b.props,n=t.isMulti,r=t.menuIsOpen;b.focusInput(),r?(b.inputIsHiddenAfterUpdate=!n,b.onMenuClose()):b.openMenu("first"),e.preventDefault(),e.stopPropagation()}},this.onClearIndicatorMouseDown=function(e){e&&"mousedown"===e.type&&0!==e.button||(b.clearValue(),e.stopPropagation(),b.openAfterFocus=!1,setTimeout(function(){return b.focusInput()}))},this.onScroll=function(e){"boolean"==typeof b.props.closeMenuOnScroll?e.target instanceof HTMLElement&&C(e.target)&&b.props.onMenuClose():"function"==typeof b.props.closeMenuOnScroll&&b.props.closeMenuOnScroll(e)&&b.props.onMenuClose()},this.onCompositionStart=function(){b.setState({isComposing:!0})},this.onCompositionEnd=function(){b.setState({isComposing:!1})},this.onTouchStart=function(e){var t=O(e.touches,1)[0];b.initialTouchX=t.clientX,b.initialTouchY=t.clientY,b.userIsDragging=!1},this.onTouchMove=function(e){var t=O(e.touches,1)[0],n=Math.abs(t.clientX-b.initialTouchX),r=Math.abs(t.clientY-b.initialTouchY);b.userIsDragging=5<n||5<r},this.onTouchEnd=function(e){if(!b.userIsDragging){var t=e.target;b.controlRef&&!b.controlRef.contains(t)&&b.menuListRef&&!b.menuListRef.contains(t)&&b.blurInput(),b.initialTouchX=0,b.initialTouchY=0}},this.onControlTouchEnd=function(e){b.userIsDragging||b.onControlMouseDown(e)},this.onClearIndicatorTouchEnd=function(e){b.userIsDragging||b.onClearIndicatorMouseDown(e)},this.onDropdownIndicatorTouchEnd=function(e){b.userIsDragging||b.onDropdownIndicatorMouseDown(e)},this.handleInputChange=function(e){var t=e.currentTarget.value;b.inputIsHiddenAfterUpdate=!1,b.onInputChange(t,{action:"input-change"}),b.onMenuOpen()},this.onInputFocus=function(e){var t=b.props,n=t.isSearchable,r=t.isMulti;b.props.onFocus&&b.props.onFocus(e),b.inputIsHiddenAfterUpdate=!1,b.announceAriaLiveContext({event:"input",context:{isSearchable:n,isMulti:r}}),b.setState({isFocused:!0}),(b.openAfterFocus||b.props.openMenuOnFocus)&&b.openMenu("first"),b.openAfterFocus=!1},this.onInputBlur=function(e){b.props.onBlur&&b.props.onBlur(e),b.onInputChange("",{action:"input-blur"}),b.onMenuClose(),b.setState({focusedValue:null,isFocused:!1})},this.onOptionHover=function(e){b.blockOptionHover||b.state.focusedOption===e||b.setState({focusedOption:e})},this.shouldHideSelectedOptions=function(){var e=b.props,t=e.hideSelectedOptions,n=e.isMulti;return void 0===t?n:t},this.onKeyDown=function(e){var t=b.props,n=t.isMulti,r=t.backspaceRemovesValue,o=t.escapeClearsValue,i=t.inputValue,a=t.isClearable,u=t.isDisabled,s=t.menuIsOpen,l=t.onKeyDown,c=t.tabSelectsValue,p=t.openMenuOnFocus,f=b.state,d=f.isComposing,h=f.focusedOption,m=f.focusedValue,v=f.selectValue;if(!(u||"function"==typeof l&&(l(e),e.defaultPrevented))){switch(b.blockOptionHover=!0,e.key){case"ArrowLeft":if(!n||i)return;b.focusValue("previous");break;case"ArrowRight":if(!n||i)return;b.focusValue("next");break;case"Delete":case"Backspace":if(i)return;if(m)b.removeValue(m);else{if(!r)return;b.popValue()}break;case"Tab":if(e.shiftKey||!s||!c||!h||p&&b.isOptionSelected(h,v))return;b.selectOption(h);break;case"Enter":if(s){if(!h)return;if(d)return;b.selectOption(h)}else b.focusOption("first");break;case"Escape":s?(b.inputIsHiddenAfterUpdate=!1,b.onInputChange("",{action:"menu-close"}),b.onMenuClose()):a&&o&&b.clearValue();break;case" ":if(i)return;if(!s){b.openMenu("first");break}if(!h)return;b.selectOption(h);break;case"ArrowUp":s?b.focusOption("up"):b.openMenu("last");break;case"ArrowDown":s?b.focusOption("down"):b.openMenu("first");break;case"PageUp":if(!s)return;b.focusOption("pageup");break;case"PageDown":if(!s)return;b.focusOption("pagedown");break;case"Home":if(!s)return;b.focusOption("first");break;case"End":if(!s)return;b.focusOption("last");break;default:return}e.preventDefault()}}},Me=function(n){var e,t;return t=e=function(e){function a(){var e,t,r;f(this,a);for(var n=arguments.length,o=Array(n),i=0;i<n;i++)o[i]=arguments[i];return(t=r=E(this,(e=a.__proto__||Object.getPrototypeOf(a)).call.apply(e,[this].concat(o)))).state={inputValue:void 0!==r.props.inputValue?r.props.inputValue:r.props.defaultInputValue,menuIsOpen:void 0!==r.props.menuIsOpen?r.props.menuIsOpen:r.props.defaultMenuIsOpen,value:void 0!==r.props.value?r.props.value:r.props.defaultValue},r.onChange=function(e,t){r.callProp("onChange",e,t),r.setState({value:e})},r.onInputChange=function(e,t){var n=r.callProp("onInputChange",e,t);r.setState({inputValue:void 0!==n?n:e})},r.onMenuOpen=function(){r.callProp("onMenuOpen"),r.setState({menuIsOpen:!0})},r.onMenuClose=function(){r.callProp("onMenuClose"),r.setState({menuIsOpen:!1})},E(r,t)}return y(a,e),v(a,[{key:"focus",value:function(){this.select.focus()}},{key:"blur",value:function(){this.select.blur()}},{key:"getProp",value:function(e){return void 0!==this.props[e]?this.props[e]:this.state[e]}},{key:"callProp",value:function(e){if("function"==typeof this.props[e]){for(var t,n=arguments.length,r=Array(1<n?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return(t=this.props)[e].apply(t,w(r))}}},{key:"render",value:function(){var t=this;return L.a.createElement(n,M({},this.props,{ref:function(e){t.select=e},inputValue:this.getProp("inputValue"),menuIsOpen:this.getProp("menuIsOpen"),onChange:this.onChange,onInputChange:this.onInputChange,onMenuClose:this.onMenuClose,onMenuOpen:this.onMenuOpen,value:this.getProp("value")}))}}]),a}(u.Component),e.defaultProps={defaultInputValue:"",defaultMenuIsOpen:!1,defaultValue:null},t},He={cacheOptions:!1,defaultOptions:!1},ze=function(c){var e,t;return t=e=function(e){function t(e){f(this,t);var a=E(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return a.mounted=!1,a.optionsCache={},a.handleInputChange=function(e,t){var n=a.props,r=n.cacheOptions,o=function(e,t,n){if(n){var r=n(e,t);if("string"==typeof r)return r}return e}(e,t,n.onInputChange);if(!o)return delete a.lastRequest,void a.setState({inputValue:"",loadedInputValue:"",loadedOptions:[],isLoading:!1,passEmptyOptions:!1});if(r&&a.optionsCache[o])a.setState({inputValue:o,loadedInputValue:o,loadedOptions:a.optionsCache[o],isLoading:!1,passEmptyOptions:!1});else{var i=a.lastRequest={};a.setState({inputValue:o,isLoading:!0,passEmptyOptions:!a.state.loadedInputValue},function(){a.loadOptions(o,function(e){a.mounted&&(e&&(a.optionsCache[o]=e),i===a.lastRequest&&(delete a.lastRequest,a.setState({isLoading:!1,loadedInputValue:o,loadedOptions:e||[],passEmptyOptions:!1})))})})}return o},a.state={defaultOptions:Array.isArray(e.defaultOptions)?e.defaultOptions:void 0,inputValue:"",isLoading:!0===e.defaultOptions,loadedOptions:[],passEmptyOptions:!1},a}return y(t,e),v(t,[{key:"componentDidMount",value:function(){var n=this;(this.mounted=!0)===this.props.defaultOptions&&this.loadOptions("",function(e){if(n.mounted){var t=!!n.lastRequest;n.setState({defaultOptions:e||[],isLoading:t})}})}},{key:"componentWillReceiveProps",value:function(e){e.cacheOptions!==this.props.cacheOptions&&(this.optionsCache={}),e.defaultOptions!==this.props.defaultOptions&&this.setState({defaultOptions:Array.isArray(e.defaultOptions)?e.defaultOptions:void 0})}},{key:"componentWillUnmount",value:function(){this.mounted=!1}},{key:"focus",value:function(){this.select.focus()}},{key:"blur",value:function(){this.select.blur()}},{key:"loadOptions",value:function(e,t){var n=this.props.loadOptions;if(!n)return t();var r=n(e,t);r&&"function"==typeof r.then&&r.then(t,function(){return t()})}},{key:"render",value:function(){var t=this,e=this.props,n=(e.loadOptions,H(e,["loadOptions"])),r=this.state,o=r.defaultOptions,i=r.inputValue,a=r.isLoading,u=r.loadedInputValue,s=r.loadedOptions,l=r.passEmptyOptions?[]:i&&u?s:o||[];return L.a.createElement(c,M({},n,{filterOption:this.props.filterOption||null,ref:function(e){t.select=e},options:l,isLoading:a,onInputChange:this.handleInputChange}))}}]),t}(u.Component),e.defaultProps=He,t},Be=(ze(Me(Te)),function(e,t){var n=e.toLowerCase();return t.value.toLowerCase()===n||t.label.toLowerCase()===n}),We=M({allowCreateWhileLoading:!1,createOptionPosition:"last"},{formatCreateLabel:function(e){return'Create "'+e+'"'},isValidNewOption:function(t,e,n){return!(!t||e.some(function(e){return Be(t,e)})||n.some(function(e){return Be(t,e)}))},getNewOptionData:function(e,t){return{label:t,value:e,__isNew__:!0}}}),qe=function(r){var e,t;return t=e=function(e){function n(e){f(this,n);var d=E(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,e));d.onChange=function(e,t){var n=d.props,r=n.getNewOptionData,o=n.inputValue,i=n.isMulti,a=n.onChange,u=n.onCreateOption,s=n.value;if("select-option"!==t.action)return a(e,t);var l=d.state.newOption,c=Array.isArray(e)?e:[e];if(c[c.length-1]!==l)a(e,t);else if(u)u(o);else{var p=r(o,o),f={action:"create-option"};a(i?[].concat(w(P(s)),[p]):p,f)}};var t=e.options||[];return d.state={newOption:void 0,options:t},d}return y(n,e),v(n,[{key:"componentWillReceiveProps",value:function(e){var t=e.allowCreateWhileLoading,n=e.createOptionPosition,r=e.formatCreateLabel,o=e.getNewOptionData,i=e.inputValue,a=e.isLoading,u=e.isValidNewOption,s=e.value,l=e.options||[],c=this.state.newOption;c=u(i,P(s),l)?o(i,r(i)):void 0,this.setState({newOption:c,options:!t&&a||!c?l:"first"===n?[c].concat(w(l)):[].concat(w(l),[c])})}},{key:"focus",value:function(){this.select.focus()}},{key:"blur",value:function(){this.select.blur()}},{key:"render",value:function(){var t=this,e=H(this.props,[]),n=this.state.options;return L.a.createElement(r,M({},e,{ref:function(e){t.select=e},options:n,onChange:this.onChange}))}}]),n}(u.Component),e.defaultProps=We,t},Ge=(Me(qe(Te)),ze(Me(qe(Te))),function(e){var n=e.component,t=e.duration,r=void 0===t?1:t,o=e.in,i=(e.onExited,H(e,["component","duration","in","onExited"])),a={entering:{opacity:0},entered:{opacity:1,transition:"opacity "+r+"ms"},exiting:{opacity:0},exited:{opacity:0}};return L.a.createElement(d.Transition,{mountOnEnter:!0,unmountOnExit:!0,in:o,timeout:r},function(e){var t={style:M({},a[e])};return L.a.createElement(n,M({innerProps:t},i))})}),Xe=function(e){function a(){var e,t,n;f(this,a);for(var r=arguments.length,o=Array(r),i=0;i<r;i++)o[i]=arguments[i];return(t=n=E(this,(e=a.__proto__||Object.getPrototypeOf(a)).call.apply(e,[this].concat(o)))).duration=260,n.state={width:"auto"},n.transition={exiting:{width:0,transition:"width "+n.duration+"ms ease-out"},exited:{width:0}},n.getWidth=function(e){if(e&&isNaN(n.state.width)){var t=e.getBoundingClientRect().width;n.setState({width:t})}},n.getStyle=function(e){return{overflow:"hidden",whiteSpace:"nowrap",width:e}},n.getTransition=function(e){return n.transition[e]},E(n,t)}return y(a,e),v(a,[{key:"render",value:function(){var n=this,e=this.props,r=e.children,t=e.in,o=this.state.width;return L.a.createElement(d.Transition,{enter:!1,mountOnEnter:!0,unmountOnExit:!0,in:t,timeout:this.duration},function(e){var t=M({},n.getStyle(o),n.getTransition(e));return L.a.createElement("div",{ref:n.getWidth,style:t},r)})}}]),a}(u.Component),Ie=function(e){var t,n,r,o,i,a=ke({components:e}),u=a.Input,s=a.MultiValue,l=a.Placeholder,c=a.SingleValue,p=a.ValueContainer,f=H(a,["Input","MultiValue","Placeholder","SingleValue","ValueContainer"]);return M({Input:(i=u,function(e){e.in,e.onExited,e.appear,e.enter,e.exit;var t=e.innerRef,n=H(e,["in","onExited","appear","enter","exit","innerRef"]);return L.a.createElement(i,M({innerRef:t},n))}),MultiValue:(o=s,function(e){var t=e.in,n=e.onExited,r=H(e,["in","onExited"]);return L.a.createElement(Xe,{in:t,onExited:n},L.a.createElement(o,M({cropWithEllipsis:t},r)))}),Placeholder:(r=l,function(e){return L.a.createElement(Ge,M({component:r,duration:e.isMulti?260:1},e))}),SingleValue:(n=c,function(e){return L.a.createElement(Ge,M({component:n},e))}),ValueContainer:(t=p,function(e){return L.a.createElement(d.TransitionGroup,M({component:t},e))})},f)},Ue=Ie(),Ze=(Ue.Input,Ue.MultiValue,Ue.Placeholder,Ue.SingleValue,Ue.ValueContainer,a(Ie,I),Me(Te));function Ye(e){return(Ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ke(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Je(e,t){return!t||"object"!==Ye(t)&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function Qe(e){return(Qe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _e(e,t){return(_e=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var $e=wp.element,et=$e.Component,tt=$e.Fragment,nt=wp.i18n.__,rt=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Je(this,Qe(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_e(e,t)}(t,et),n=t,(r=[{key:"render",value:function(){return React.createElement(tt,null,React.createElement(Ze,{className:"ecs-select",classNamePrefix:"select",options:[{label:nt("Standard","the-events-calendar-shortcode"),value:"standard"}],value:{label:nt("Standard","the-events-calendar-shortcode"),value:"standard"}}),React.createElement("div",{className:"ecs-setting-help"},React.createElement("a",{href:"https://eventcalendarnewsletter.com/the-events-calendar-shortcode/?utm_source=plugin&utm_medium=link&utm_campaign=block-design-help&utm_content=description#designs",target:"_blank"},nt("Upgrade to Pro","the-events-calendar-shortcode")),nt(" for more designs!","the-events-calendar-shortcode")))}}])&&Ke(n.prototype,r),o&&Ke(n,o),t}();function ot(e){return(ot="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function it(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function at(e){return(at=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ut(e,t){return(ut=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function st(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var lt=wp.element,ct=lt.Component,pt=lt.Fragment,ft=wp.apiFetch,dt=function(e){function u(e){var n,t,r,o,i,a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u),t=this,r=at(u).call(this,e),n=!r||"object"!==ot(r)&&"function"!=typeof r?st(t):r,o=st(st(n)),a=function(e){var t=e.map(function(e){return e.value}).join(", ");n.setState({selectedCats:e}),n.props.setAttributes({cat:t})},(i="handleChange")in o?Object.defineProperty(o,i,{value:a,enumerable:!0,configurable:!0,writable:!0}):o[i]=a,n.state={selectOptions:[],selectedCats:[],isLoading:!0},n}var t,n,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&ut(e,t)}(u,ct),t=u,(n=[{key:"componentDidMount",value:function(){var i=this;ft({path:"/tribe/events/v1/categories/"}).then(function(e){var t=e.categories.map(function(e){return{value:e.slug,label:e.name}}),n=i.props.attributes.cat,r=void 0===n?[]:n.split(", "),o=t.filter(function(e){if(-1<r.indexOf(e.value))return e.value});i.setState({selectOptions:t,selectedCats:o,isLoading:!1})})}},{key:"render",value:function(){return React.createElement(pt,null,React.createElement(Ze,{className:"ecs-select multi",classNamePrefix:"select",value:this.state.selectedCats,onChange:this.handleChange,options:this.state.selectOptions,isMulti:"true",isLoading:this.state.isLoading}))}}])&&it(t.prototype,n),r&&it(t,r),u}();function ht(e){return(ht="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function mt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function vt(e){return(vt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function bt(e,t){return(bt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function gt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var yt=wp.element,Et=yt.Component,Ot=yt.Fragment,wt=function(e){function c(){var e,t,n,r,o,i,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c);for(var u=arguments.length,s=new Array(u),l=0;l<u;l++)s[l]=arguments[l];return n=this,r=(e=vt(c)).call.apply(e,[this].concat(s)),t=!r||"object"!==ht(r)&&"function"!=typeof r?gt(n):r,o=gt(gt(t)),a=function(e){t.props.setAttributes({limit:parseInt(e.target.value)})},(i="handleChange")in o?Object.defineProperty(o,i,{value:a,enumerable:!0,configurable:!0,writable:!0}):o[i]=a,t}var t,n,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&bt(e,t)}(c,Et),t=c,(n=[{key:"render",value:function(){var e=this.props.attributes;return L.a.createElement(Ot,null,L.a.createElement("input",{id:"ecs-setting-limit",type:"number",min:1,value:e.limit,onChange:this.handleChange}))}}])&&mt(t.prototype,n),r&&mt(t,r),c}();function xt(e){return(xt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ct(e){return(Ct=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function St(e,t){return(St=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Nt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function At(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var kt=wp.element.Component,jt=wp.i18n.__,Rt=function(e){function a(e){var o,t,n;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),t=this,n=Ct(a).call(this,e),At(Nt(Nt(o=!n||"object"!==xt(n)&&"function"!=typeof n?Nt(t):n)),"handleChange",function(e){var t=e.target.checked?"current":"";o.props.setAttributes({month:t})}),At(Nt(Nt(o)),"handleYearChange",function(e){var t=o.state,n=t.month,r=t.monthValid;!e.target.validity.patternMismatch&&r?o.props.setAttributes({month:"".concat(e.target.value,"-").concat(n)}):o.props.setAttributes({month:""}),o.setState({year:e.target.value,yearValid:!e.target.validity.patternMismatch})}),At(Nt(Nt(o)),"handleMonthChange",function(e){var t=o.state,n=t.year,r=t.yearValid;!e.target.validity.patternMismatch&&r?o.props.setAttributes({month:"".concat(n,"-").concat(e.target.value)}):o.props.setAttributes({month:""}),o.setState({month:e.target.value,monthValid:!e.target.validity.patternMismatch})});var r=e.attributes.month,i=""!==(r=void 0===r?"":r)&&"current"!==r;return o.state={year:i?r.slice(0,4):"",month:i?r.slice(5):"",monthValid:i,yearValid:i},o}var t,n,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&St(e,t)}(a,kt),t=a,(n=[{key:"render",value:function(){var e="current"===this.props.attributes.month;return L.a.createElement("div",{className:"ecs-settings-month"},L.a.createElement("div",{className:"ecs-setting-current"},L.a.createElement("input",{id:"ecs-setting-current",type:"checkbox",checked:e,onChange:this.handleChange}),L.a.createElement("label",{className:"components-base-control__label",htmlFor:"ecs-setting-current"},jt("Current Month Only?","the-events-calendar-shortcode"))),e?null:L.a.createElement("div",{className:"ecs-setting-year-month"},L.a.createElement("div",{className:"ecs-setting-text-field"},L.a.createElement("label",{className:"ecs-setting-label",htmlFor:"ecs-setting-year"},jt("Year","the-events-calendar-shortcode")),L.a.createElement("input",{id:"ecs-setting-year",style:{borderColor:this.state.yearValid?"inherit":"red"},type:"text",label:jt("Year"),placeholder:"YYYY",value:this.state.year,pattern:"[0-9]{4}",onChange:this.handleYearChange})),L.a.createElement("div",{className:"ecs-month-divider"}),L.a.createElement("div",{className:"ecs-setting-text-field"},L.a.createElement("label",{className:"ecs-setting-label",htmlFor:"ecs-setting-month"},jt("Month","the-events-calendar-shortcode")),L.a.createElement("input",{id:"ecs-setting-month",style:{borderColor:this.state.monthValid?"inherit":"red"},type:"text",placeholder:"MM",value:this.state.month,pattern:"(0[1-9]|1[012])",onChange:this.handleMonthChange}))))}}])&&Pt(t.prototype,n),r&&Pt(t,r),a}();function Dt(e){return(Dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Vt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Ft(e){return(Ft=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Tt(e,t){return(Tt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Lt(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Mt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ht=wp.element.Component,zt=wp.i18n.__,Bt=function(e){function u(){var e,n,t,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u);for(var o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];return t=this,r=(e=Ft(u)).call.apply(e,[this].concat(i)),Mt(Lt(Lt(n=!r||"object"!==Dt(r)&&"function"!=typeof r?Lt(t):r)),"isValid",function(e){return"false"!==e}),Mt(Lt(Lt(n)),"handleChange",function(e){var t=e.target.checked?"100":"false";n.props.setAttributes({excerpt:t})}),Mt(Lt(Lt(n)),"handleLengthChange",function(e){e.target.validity.patternMismatch?n.props.setAttributes({excerpt:"100"}):n.props.setAttributes({excerpt:"".concat(e.target.value)})}),n}var t,n,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Tt(e,t)}(u,Ht),t=u,(n=[{key:"render",value:function(){var e=this.props.attributes.excerpt;return L.a.createElement("div",{className:"ecs-settings-excerpt"},L.a.createElement("div",{className:"ecs-setting-excerpt-enable"},L.a.createElement("input",{id:"ecs-setting-excerpt",type:"checkbox",checked:"false"!==e,onChange:this.handleChange}),L.a.createElement("label",{className:"components-base-control__label",htmlFor:"ecs-setting-excerpt"},zt("Show excerpt of events","the-events-calendar-shortcode"))),this.isValid(e)?L.a.createElement("div",{className:"ecs-setting-excerpt"},L.a.createElement("div",{className:"ecs-setting-text-field"},L.a.createElement("label",{className:"ecs-setting-label",htmlFor:"ecs-setting-excerpt-length"},zt("Length","the-events-calendar-shortcode")),L.a.createElement("input",{id:"ecs-setting-excerpt-length",style:{borderColor:isNaN(parseInt(e))?"red":"inherit"},type:"text",label:zt("Excerpt Length"),value:e,pattern:"[0-9]*",onChange:this.handleLengthChange}))):null,L.a.createElement("div",{className:"ecs-setting-help"},zt("Want to show the full description of events or HTML from your excerpt? ","the-events-calendar-shortcode"),L.a.createElement("a",{href:"https://eventcalendarnewsletter.com/the-events-calendar-shortcode/?utm_source=plugin&utm_medium=link&utm_campaign=block-excerpt-help&utm_content=description",target:"_blank"},zt("Upgrade to Pro","the-events-calendar-shortcode"))))}}])&&Vt(t.prototype,n),r&&Vt(t,r),u}();function Wt(e){return(Wt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function qt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Gt(e){return(Gt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Xt(e,t){return(Xt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function It(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var Ut=wp.element,Zt=Ut.Component,Yt=Ut.Fragment,Kt=wp.i18n.__,Jt=function(e){function c(){var e,n,t,r,o,i,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c);for(var u=arguments.length,s=new Array(u),l=0;l<u;l++)s[l]=arguments[l];return t=this,r=(e=Gt(c)).call.apply(e,[this].concat(s)),n=!r||"object"!==Wt(r)&&"function"!=typeof r?It(t):r,o=It(It(n)),a=function(e){var t=e.target.checked?"yes":"";n.props.setAttributes({past:t})},(i="handleChange")in o?Object.defineProperty(o,i,{value:a,enumerable:!0,configurable:!0,writable:!0}):o[i]=a,n}var t,n,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Xt(e,t)}(c,Zt),t=c,(n=[{key:"render",value:function(){var e="yes"===this.props.attributes.past;return L.a.createElement(Yt,null,L.a.createElement("input",{id:"ecs-setting-past",type:"checkbox",checked:e,onChange:this.handleChange}),L.a.createElement("label",{className:"components-base-control__label",htmlFor:"ecs-setting-past"},Kt("Show only past events?","the-events-calendar-shortcode")))}}])&&qt(t.prototype,n),r&&qt(t,r),c}();function Qt(e){return(Qt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _t(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function $t(e){return($t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function en(e,t){return(en=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function tn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function nn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var rn=wp.element,on=rn.Component,an=rn.Fragment,un=wp.i18n.__,sn=wp.components.TextControl,ln=function(e){function u(){var e,t,n,r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u);for(var o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];return n=this,r=(e=$t(u)).call.apply(e,[this].concat(i)),nn(tn(tn(t=!r||"object"!==Qt(r)&&"function"!=typeof r?tn(n):r)),"handleChange",function(e){t.props.setAttributes({thumb:e.target.checked?"true":"false"})}),nn(tn(tn(t)),"handleThumbWidthChange",function(e){t.props.setAttributes({thumbwidth:isNaN(parseInt(e.target.value))?"":parseInt(e.target.value)})}),nn(tn(tn(t)),"handleThumbHeightChange",function(e){t.props.setAttributes({thumbheight:isNaN(parseInt(e.target.value))?"":parseInt(e.target.value)})}),nn(tn(tn(t)),"handleThumbSizeChange",function(e){t.props.setAttributes({thumbsize:e})}),t}var t,n,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&en(e,t)}(u,on),t=u,(n=[{key:"render",value:function(){var e=this.props.attributes,t=e.thumb,n=e.thumbwidth,r=e.thumbheight,o=e.thumbsize;return L.a.createElement("div",{className:"ecs-settings-thumb"},L.a.createElement("div",null,L.a.createElement("input",{id:"ecs-setting-thumb",type:"checkbox",checked:"true"===t,onChange:this.handleChange}),L.a.createElement("label",{className:"components-base-control__label",htmlFor:"ecs-setting-thumb"},un("Show thumbnail image","the-events-calendar-shortcode"))),"false"!==t?L.a.createElement(an,null,L.a.createElement("div",{className:"ecs-settings-thumb-width-height"},L.a.createElement("div",{className:"ecs-setting-text-field"},L.a.createElement("label",{className:"ecs-setting-label",htmlFor:"ecs-setting-thumbwidth"},un("Width","the-events-calendar-shortcode")),L.a.createElement("input",{id:"ecs-setting-thumbwidth",type:"text",label:un("Width"),value:n,onChange:this.handleThumbWidthChange})),L.a.createElement("div",{className:"ecs-thumb-divider"},"x"),L.a.createElement("div",{className:"ecs-setting-text-field"},L.a.createElement("label",{className:"ecs-setting-label",htmlFor:"ecs-setting-thumbheight"},un("Height","the-events-calendar-shortcode")),L.a.createElement("input",{id:"ecs-setting-thumbheight",type:"text",label:un("Height"),value:r,onChange:this.handleThumbHeightChange})),L.a.createElement("div",{className:"ecs-thumb-divider"},L.a.createElement("em",null,"or"))),L.a.createElement("div",{className:"ecs-settings-thumb-size"},L.a.createElement(sn,{label:un("Size","the-events-calendar-shortcode"),value:o,onChange:this.handleThumbSizeChange})),L.a.createElement("div",{className:"ecs-setting-help"},un('This differs depending on the your theme, but typical defaults include "medium" and "large"',"the-events-calendar-shortcode"))):null)}}])&&_t(t.prototype,n),r&&_t(t,r),u}();function cn(e){return(cn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function pn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function fn(e){return(fn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function dn(e,t){return(dn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function hn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var mn=wp.element,vn=mn.Component,bn=mn.Fragment,gn=wp.i18n.__,yn=function(e){function c(){var e,t,n,r,o,i,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c);for(var u=arguments.length,s=new Array(u),l=0;l<u;l++)s[l]=arguments[l];return n=this,r=(e=fn(c)).call.apply(e,[this].concat(s)),t=!r||"object"!==cn(r)&&"function"!=typeof r?hn(n):r,o=hn(hn(t)),a=function(e){t.props.setAttributes({orderby:e.value})},(i="handleChange")in o?Object.defineProperty(o,i,{value:a,enumerable:!0,configurable:!0,writable:!0}):o[i]=a,t}var t,n,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&dn(e,t)}(c,vn),t=c,(n=[{key:"render",value:function(){var t=this.props.attributes.orderby,e=[{label:gn("Start Date","the-events-calendar-shortcode"),value:"startdate"},{label:gn("End Date","the-events-calendar-shortcode"),value:"enddate"},{label:gn("Title","the-events-calendar-shortcode"),value:"title"}],n=e.filter(function(e){return e.value===t});return React.createElement(bn,null,React.createElement(Ze,{className:"ecs-select",classNamePrefix:"select",value:n,onChange:this.handleChange,options:e}))}}])&&pn(t.prototype,n),r&&pn(t,r),c}();function En(e){return(En="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function On(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function wn(e){return(wn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function xn(e,t){return(xn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Pn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var Cn=wp.element,Sn=Cn.Component,Nn=Cn.Fragment,An=wp.i18n.__,kn=function(e){function c(){var e,t,n,r,o,i,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c);for(var u=arguments.length,s=new Array(u),l=0;l<u;l++)s[l]=arguments[l];return n=this,r=(e=wn(c)).call.apply(e,[this].concat(s)),t=!r||"object"!==En(r)&&"function"!=typeof r?Pn(n):r,o=Pn(Pn(t)),a=function(e){t.props.setAttributes({order:e.value})},(i="handleChange")in o?Object.defineProperty(o,i,{value:a,enumerable:!0,configurable:!0,writable:!0}):o[i]=a,t}var t,n,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&xn(e,t)}(c,Sn),t=c,(n=[{key:"render",value:function(){var t=this.props.attributes.order,e=[{label:An("Ascending","the-events-calendar-shortcode"),value:"ASC"},{label:An("Descending","the-events-calendar-shortcode"),value:"DESC"}],n=e.filter(function(e){return e.value===t});return React.createElement(Nn,null,React.createElement(Ze,{className:"ecs-select",classNamePrefix:"select",value:n,onChange:this.handleChange,options:e}))}}])&&On(t.prototype,n),r&&On(t,r),c}();function jn(e){return(jn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Rn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Dn(e){return(Dn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Vn(e,t){return(Vn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Fn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Tn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Ln=wp.element,Mn=Ln.Component,Hn=Ln.Fragment,zn=wp.i18n.__,Bn=wp.components.TextControl,Wn=function(e){function u(){var e,o,t,n;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return t=this,n=(e=Dn(u)).call.apply(e,[this].concat(i)),Tn(Fn(Fn(o=!n||"object"!==jn(n)&&"function"!=typeof n?Fn(t):n)),"handleKeyChange",function(e){o.updateKeyValueAttribute("key",e)}),Tn(Fn(Fn(o)),"handleValueChange",function(e){o.updateKeyValueAttribute("value",e)}),Tn(Fn(Fn(o)),"updateKeyValueAttribute",function(e,t){var n=o.props.uid,r=o.props.attributes.keyValue;(r=void 0===r?{}:JSON.parse(r))[n]=function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(e){Tn(t,e,n[e])})}return t}({},r[n],Tn({},e,t)),o.props.setAttributes({keyValue:JSON.stringify(r)})}),o}var t,n,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Vn(e,t)}(u,Mn),t=u,(n=[{key:"render",value:function(){var e=this.props.attributes.keyValue,t=(e=void 0===e?{}:JSON.parse(e))[this.props.uid];return L.a.createElement(Hn,null,L.a.createElement("div",{className:"ecs-key-value"},L.a.createElement(Bn,{label:zn("Key","the-events-calendar-shortcode"),value:t.key,onChange:this.handleKeyChange}),L.a.createElement(Bn,{label:zn("Value","the-events-calendar-shortcode"),value:t.value,onChange:this.handleValueChange})),L.a.createElement("div",{className:"ecs-setting-help"},L.a.createElement("a",{href:"https://eventcalendarnewsletter.com/events-calendar-shortcode-pro-options/?utm_source=plugin&utm_medium=link&utm_campaign=block-advanced-help&utm_content=description",target:"_blank"},zn("View documentation on available options","the-events-calendar-shortcode")),zn(' where key="value" in the shortcode can be entered in the boxes above',"the-events-calendar-shortcode")))}}])&&Rn(t.prototype,n),r&&Rn(t,r),u}();function qn(e){return(qn="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Gn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Xn(e){return(Xn=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function In(e,t){return(In=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Un(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var Zn=wp.element,Yn=Zn.Component,Kn=Zn.Fragment,Jn=wp.i18n.__,Qn=function(e){function c(){var e,t,n,r,o,i,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c);for(var u=arguments.length,s=new Array(u),l=0;l<u;l++)s[l]=arguments[l];return n=this,r=(e=Xn(c)).call.apply(e,[this].concat(s)),t=!r||"object"!==qn(r)&&"function"!=typeof r?Un(n):r,o=Un(Un(t)),a=function(e){t.props.setAttributes({venue:e.target.checked?"true":"false"})},(i="handleChange")in o?Object.defineProperty(o,i,{value:a,enumerable:!0,configurable:!0,writable:!0}):o[i]=a,t}var t,n,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&In(e,t)}(c,Yn),t=c,(n=[{key:"render",value:function(){var e="false"!==this.props.attributes.venue;return L.a.createElement(Kn,null,L.a.createElement("input",{id:"ecs-setting-venue",type:"checkbox",checked:e,onChange:this.handleChange}),L.a.createElement("label",{className:"components-base-control__label",htmlFor:"ecs-setting-venue"},Jn("Show venue information","the-events-calendar-shortcode")))}}])&&Gn(t.prototype,n),r&&Gn(t,r),c}(),_n=wp.i18n.__,$n={design:{component:rt,label:_n("Design","the-events-calendar-shortcode"),removable:!1},limit:{component:wt,label:_n("Number of Events","the-events-calendar-shortcode"),removable:!1},cat:{component:dt,label:_n("Category","the-events-calendar-shortcode"),removable:!0},month:{component:Rt,label:_n("Month","the-events-calendar-shortcode"),removable:!0},excerpt:{component:Bt,label:_n("Excerpt (Short Description)","the-events-calendar-shortcode"),removable:!0},thumb:{component:ln,label:_n("Thumbnail","the-events-calendar-shortcode"),removable:!0},venue:{component:Qn,label:_n("Venue","the-events-calendar-shortcode"),removable:!0},past:{component:Jt,label:_n("Past Events","the-events-calendar-shortcode"),removable:!0},orderby:{component:yn,label:_n("Order By","the-events-calendar-shortcode"),removable:!0},order:{component:kn,label:_n("Order","the-events-calendar-shortcode"),removable:!0},other:{component:Wn,label:_n("Advanced/Other","the-events-calendar-shortcode"),removable:!0}},er=L.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"525",height:"462",viewBox:"0 0 525 462"},L.a.createElement("image",{x:"18",y:"4",width:"488",height:"443",xlinkHref:"data:img/png;base64,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"}));function tr(e){return(tr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function nr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function rr(e){return(rr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function or(e,t){return(or=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ir(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var ar=wp.element.Component,ur=wp.i18n.__,sr=function(e){function c(){var e,n,t,r,o,i,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c);for(var u=arguments.length,s=new Array(u),l=0;l<u;l++)s[l]=arguments[l];return t=this,r=(e=rr(c)).call.apply(e,[this].concat(s)),n=!r||"object"!==tr(r)&&"function"!=typeof r?ir(t):r,o=ir(ir(n)),a=function(e){var t=n.props.handleSelect;"other"===e.value?t(e.value,!0):t(e.value)},(i="handleChange")in o?Object.defineProperty(o,i,{value:a,enumerable:!0,configurable:!0,writable:!0}):o[i]=a,n}var t,n,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&or(e,t)}(c,ar),t=c,(n=[{key:"render",value:function(){var e=this.props,t=e.settingsConfig,n=e.activeSettings,r=Object.keys(t).map(function(e){return{value:e,label:t[e].label}});r.push({value:"new-setting",label:ur("Choose another option","the-events-calendar-shortcode"),isDisabled:!0});var o=r.filter(function(e){return n.indexOf(e.value)<0});return React.createElement(Ze,{className:"ecs-select",classNamePrefix:"select",options:o,value:{value:"new-setting",label:ur("Choose another option","the-events-calendar-shortcode")},onChange:this.handleChange})}}])&&nr(t.prototype,n),r&&nr(t,r),c}();function lr(e){return(lr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function cr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function pr(e){return(pr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function fr(e,t){return(fr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function dr(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}var hr=wp.element.Component,mr=function(e){function c(){var e,i,t,n,r,o,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c);for(var u=arguments.length,s=new Array(u),l=0;l<u;l++)s[l]=arguments[l];return t=this,n=(e=pr(c)).call.apply(e,[this].concat(s)),i=!n||"object"!==lr(n)&&"function"!=typeof n?dr(t):n,r=dr(dr(i)),a=function(e){var t=i.props,n=t.setting,r=t.uid,o=t.handleSwitch;"other"===e.value?o(n,e.value,"add"):"other"===n?o(n,e.value,r):o(n,e.value)},(o="handleChange")in r?Object.defineProperty(r,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[o]=a,i}var t,n,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&fr(e,t)}(c,hr),t=c,(n=[{key:"render",value:function(){var e=this.props,t=e.settingsConfig,n=e.setting,r=this.props.activeSettings,o=Object.keys(t).map(function(e){return{value:e,label:t[e].label}});r=n?r.filter(function(e){return e!==n}):r;var i=o.filter(function(e){return r.indexOf(e.value)<0}),a=o.filter(function(e){return e.value===n});return React.createElement(Ze,{className:"ecs-select",classNamePrefix:"select",options:i,value:a,onChange:this.handleChange})}}])&&cr(t.prototype,n),r&&cr(t,r),c}(),vr=n(13),br=n.n(vr);function gr(){return(gr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var yr=n(14),Er=["client","offset","scroll","bounds","margin"];function Or(a){return function(i){var e,t;return t=e=function(r){var e,t;function n(){for(var o,e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return(o=r.call.apply(r,[this].concat(t))||this).state={contentRect:{entry:{},client:{},offset:{},scroll:{},bounds:{},margin:{}}},o._animationFrameID=null,o._resizeObserver=new yr.a(function(){o.measure()}),o.measure=function(e){var t,n,r=function(e,t){var n={};if(-1<t.indexOf("client")&&(n.client={top:e.clientTop,left:e.clientLeft,width:e.clientWidth,height:e.clientHeight}),-1<t.indexOf("offset")&&(n.offset={top:e.offsetTop,left:e.offsetLeft,width:e.offsetWidth,height:e.offsetHeight}),-1<t.indexOf("scroll")&&(n.scroll={top:e.scrollTop,left:e.scrollLeft,width:e.scrollWidth,height:e.scrollHeight}),-1<t.indexOf("bounds")){var r=e.getBoundingClientRect();n.bounds={top:r.top,right:r.right,bottom:r.bottom,left:r.left,width:r.width,height:r.height}}if(-1<t.indexOf("margin")){var o=getComputedStyle(e);n.margin={top:o?parseInt(o.marginTop):0,right:o?parseInt(o.marginRight):0,bottom:o?parseInt(o.marginBottom):0,left:o?parseInt(o.marginLeft):0}}return n}(o._node,a||(t=o.props,n=[],Er.forEach(function(e){t[e]&&n.push(e)}),n));e&&(r.entry=e[0].contentRect),o._animationFrameID=window.requestAnimationFrame(function(){o._resizeObserver&&o.setState({contentRect:r})}),"function"==typeof o.props.onResize&&o.props.onResize(r)},o._handleRef=function(e){o._resizeObserver&&(e?o._resizeObserver.observe(e):o._resizeObserver.unobserve(o._node)),o._node=e,"function"==typeof o.props.innerRef&&o.props.innerRef(e)},o}t=r,(e=n).prototype=Object.create(t.prototype),(e.prototype.constructor=e).__proto__=t;var o=n.prototype;return o.componentWillUnmount=function(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null),window.cancelAnimationFrame(this._animationFrameID)},o.render=function(){var e=this.props,t=(e.innerRef,e.onResize,function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],0<=t.indexOf(n)||(o[n]=e[n]);return o}(e,["innerRef","onResize"]));return Object(u.createElement)(i,gr({},t,{measureRef:this._handleRef,measure:this.measure,contentRect:this.state.contentRect}))},n}(u.Component),e.propTypes={client:s.a.bool,offset:s.a.bool,scroll:s.a.bool,bounds:s.a.bool,margin:s.a.bool,innerRef:s.a.func,onResize:s.a.func},t}}var wr=Or()(function(e){var t=e.measure,n=e.measureRef,r=e.contentRect;return(0,e.children)({measure:t,measureRef:n,contentRect:r})});wr.displayName="Measure",wr.propTypes.children=s.a.func;function xr(e){return(xr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pr(){return(Pr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function Cr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Sr(e){return(Sr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Nr(e,t){return(Nr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Ar(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function kr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var jr=wp.element,Rr=jr.Component,Dr=jr.Fragment,Vr=wp.components.IconButton,Fr=wp.i18n.__,Tr=function(e){function a(){var e,l,t,n;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return t=this,n=(e=Sr(a)).call.apply(e,[this].concat(o)),kr(Ar(Ar(l=!n||"object"!==xr(n)&&"function"!=typeof n?Ar(t):n)),"handleAddSetting",function(e,t){var n=l.props.attributes.settings;n=JSON.parse(n),t&&(e=l.handleAddKeyValue()),n.push(e),l.props.setAttributes({settings:JSON.stringify(n)})}),kr(Ar(Ar(l)),"handleSwitchSetting",function(t,n,e){var r=l.props.attributes.settings;r=JSON.parse(r),"add"===e&&(n=l.handleAddKeyValue()),e&&"kv"===e.substring(0,2)?(l.handleRemoveKeyValue(e),t=e):l.deleteAttributes(t);var o=r.map(function(e){return e===t?n:e});l.props.setAttributes({settings:JSON.stringify(o)})}),kr(Ar(Ar(l)),"handleRemoveSetting",function(t,e){var n=l.props.attributes.settings;n=JSON.parse(n),e?(l.handleRemoveKeyValue(e),t=e):l.deleteAttributes(t);var r=n.filter(function(e){return e!==t});l.props.setAttributes({settings:JSON.stringify(r)})}),kr(Ar(Ar(l)),"deleteAttributes",function(e){var t=l.props,n=t.settingsConfig,r=t.setAttributes,o=[e];n[e].hasOwnProperty("delAttributes")&&(o=n[e].delAttributes),o.forEach(function(e){r(kr({},e,void 0))})}),kr(Ar(Ar(l)),"handleAddKeyValue",function(){var e=l.props.attributes.keyValue;e=void 0===e?{}:JSON.parse(e);var t="kv-".concat(br()()),n=function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(e){kr(t,e,n[e])})}return t}({},e,kr({},t,{key:"",value:""}));return l.props.setAttributes({keyValue:JSON.stringify(n)}),t}),kr(Ar(Ar(l)),"handleRemoveKeyValue",function(e){var t=l.props.attributes.keyValue;delete(t=void 0===t?{}:JSON.parse(t))[e],l.props.setAttributes({keyValue:JSON.stringify(t)})}),kr(Ar(Ar(l)),"renderSettingsTable",function(){var e=l.props,a=e.settingsConfig,u=e.contentRect,s=l.props.attributes.settings,t=(s=JSON.parse(s)).map(function(e){var t=null;if("kv"===e.substring(0,2)&&(t=e,e="other"),void 0!==a[e]){var n=a[e].removable?React.createElement(mr,Pr({setting:e,uid:t,activeSettings:s,settingsConfig:a,handleSwitch:l.handleSwitchSetting},l.props)):React.createElement("span",null,a[e].label),r=a[e].component,o=a[e].removable?React.createElement(Vr,{icon:"no-alt",onClick:function(){return l.handleRemoveSetting(e,t)}}):null,i=u.bounds.width<530?"ecs-settings-row mobile":"ecs-settings-row";return React.createElement("div",{className:i,key:t||e},React.createElement("div",{className:"ecs-selector-col"},n),React.createElement("div",{className:"ecs-setting-col"},React.createElement(r,Pr({},l.props,{uid:t}))),React.createElement("div",{className:"ecs-remove-col"},o))}}),n=u.bounds.width<680?"ecs-setting-add mobile":"ecs-setting-add";return React.createElement(Dr,null,React.createElement("div",{className:"ecs-settings-area"},t),React.createElement("div",{className:n},React.createElement(sr,Pr({activeSettings:s,settingsConfig:a,handleSelect:l.handleAddSetting},l.props)),React.createElement("div",{className:"ecs-flex-fill"})))}),l}var t,n,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Nr(e,t)}(a,Rr),t=a,(n=[{key:"render",value:function(){return React.createElement(Dr,null,React.createElement("div",{className:"ecs-block-header"},React.createElement("h3",null,Fr("The Events Calendar Block","the-events-calendar-shortcode"))),React.createElement("div",{className:"ecs-block-edit",ref:this.props.measureRef},React.createElement("h4",null,Fr("Configure your settings","the-events-calendar-shortcode")),this.renderSettingsTable()))}}])&&Cr(t.prototype,n),r&&Cr(t,r),a}(),Lr=Or("bounds")(Tr);function Mr(e){return(Mr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Hr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function zr(e,t){return!t||"object"!==Mr(t)&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function Br(e){return(Br=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Wr(e,t){return(Wr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var qr=wp.element,Gr=qr.Component,Xr=qr.Fragment,Ir=wp.components,Ur=Ir.ServerSideRender,Zr=Ir.withFilters,Yr=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),zr(this,Br(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Wr(e,t)}(t,Gr),n=t,(r=[{key:"render",value:function(){var e=this.props.attributes;return L.a.createElement(Xr,null,L.a.createElement(Ur,{block:"events-calendar-shortcode/block",attributes:e}))}}])&&Hr(n.prototype,r),o&&Hr(n,o),t}(),Kr=Zr("ecs.blockPreview")(Yr);function Jr(e){return(Jr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Qr(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _r(e,t){return!t||"object"!==Jr(t)&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function $r(e){return($r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function eo(e,t){return(eo=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var to=wp.element.Component,no=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),_r(this,$r(t).apply(this,arguments))}var n,r,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&eo(e,t)}(t,to),n=t,(r=[{key:"render",value:function(){return this.props.isSelected?React.createElement(Lr,this.props):React.createElement(Kr,this.props)}}])&&Qr(n.prototype,r),o&&Qr(n,o),t}();function ro(){return(ro=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}var oo=wp.i18n.__,io=wp.hooks.applyFilters;(0,wp.blocks.registerBlockType)("events-calendar-shortcode/block",{title:oo("The Events Calendar Block","the-events-calendar-shortcode"),description:oo("Display your events from The Events Calendar","the-events-calendar-shortcode"),icon:er,category:"common",supports:{html:!1},edit:function(e){return React.createElement(no,ro({settingsConfig:io("ecs.settingsConfig",$n)},e))},save:function(){return null}})}]);
static/block.js.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./block/components/categorySetting.js","webpack:///./block/components/designSetting.js","webpack:///./block/components/excerptSetting.js","webpack:///./block/components/keyValueSetting.js","webpack:///./block/components/limitSetting.js","webpack:///./block/components/monthSetting.js","webpack:///./block/components/orderBySetting.js","webpack:///./block/components/orderSetting.js","webpack:///./block/components/pastSetting.js","webpack:///./block/components/settingSelector.js","webpack:///./block/components/settingSwitcher.js","webpack:///./block/components/thumbnailSetting.js","webpack:///./block/components/venueSetting.js","webpack:///./block/config/settings.js","webpack:///./block/config/svg.js","webpack:///./block/containers/block.js","webpack:///./block/containers/blockEdit.js","webpack:///./block/containers/blockPreview.js","webpack:///./block/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack:///./node_modules/@emotion/hash/dist/hash.esm.js","webpack:///./node_modules/@emotion/memoize/dist/memoize.esm.js","webpack:///./node_modules/@emotion/stylis/dist/stylis.esm.js","webpack:///./node_modules/@emotion/unitless/dist/unitless.esm.js","webpack:///./node_modules/create-emotion/dist/index.esm.js","webpack:///./node_modules/dom-helpers/class/addClass.js","webpack:///./node_modules/dom-helpers/class/hasClass.js","webpack:///./node_modules/dom-helpers/class/removeClass.js","webpack:///./node_modules/emotion/dist/index.esm.js","webpack:///./node_modules/memoize-one/dist/memoize-one.esm.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/performance-now/lib/performance-now.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/prop-types/checkPropTypes.js","webpack:///./node_modules/prop-types/factoryWithTypeCheckers.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/raf/index.js","webpack:///./node_modules/react-input-autosize/lib/AutosizeInput.js","webpack:///./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack:///./node_modules/react-measure/dist/index.esm.js","webpack:///./node_modules/react-select/dist/react-select.esm.js","webpack:///./node_modules/react-transition-group/CSSTransition.js","webpack:///./node_modules/react-transition-group/ReplaceTransition.js","webpack:///./node_modules/react-transition-group/Transition.js","webpack:///./node_modules/react-transition-group/TransitionGroup.js","webpack:///./node_modules/react-transition-group/index.js","webpack:///./node_modules/react-transition-group/utils/ChildMapping.js","webpack:///./node_modules/react-transition-group/utils/PropTypes.js","webpack:///./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack:///./node_modules/stylis-rule-sheet/index.js","webpack:///./node_modules/uuid/lib/bytesToUuid.js","webpack:///./node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/uuid/v4.js","webpack:///(webpack)/buildin/global.js","webpack:///external \"React\"","webpack:///external \"ReactDOM\""],"names":["wp","element","Component","Fragment","apiFetch","CategorySetting","props","selectedCats","formattedSelection","map","category","value","stringSelection","join","setState","setAttributes","cat","state","selectOptions","isLoading","path","then","response","categories","slug","label","name","attributes","catArray","split","filter","option","indexOf","handleChange","__","i18n","DesignSetting","ExcerptSetting","excerpt","event","target","checked","validity","patternMismatch","isValid","borderColor","isNaN","parseInt","handleLengthChange","TextControl","components","KeyValueSetting","key","updateKeyValueAttribute","type","newValue","uid","keyValue","JSON","parse","stringify","item","handleKeyChange","handleValueChange","LimitSetting","limit","MonthSetting","current","month","monthValid","year","yearValid","valid","slice","handleYearChange","handleMonthChange","OrderBySetting","selectedOrderBy","orderby","orderByOptions","OrderSetting","selectedOrder","order","orderOptions","PastSetting","past","SettingSelector","newSetting","handleSelect","settingsConfig","activeSettings","Object","keys","push","isDisabled","availableOptions","SettingSwitcher","setting","handleSwitch","selectedValue","ThumbnailSetting","thumb","thumbwidth","thumbheight","thumbsize","handleThumbWidthChange","handleThumbHeightChange","handleThumbSizeChange","VenueSetting","venue","config","design","component","removable","other","logo","Block","isSelected","blockMode","IconButton","BlockEdit","settings","handleAddKeyValue","substring","handleRemoveKeyValue","deleteAttributes","newSettings","delAttributes","hasOwnProperty","forEach","attribute","undefined","uuid","newKeyValue","contentRect","settingsRender","selectorComponent","handleSwitchSetting","SettingComponent","removeCallback","handleRemoveSetting","removeComponent","rowClassName","bounds","width","addClassName","handleAddSetting","measureRef","renderSettingsTable","withContentRect","ServerSideRender","withFilters","BlockPreview","applyFilters","hooks","registerBlockType","blocks","title","description","icon","supports","html","edit","save"],"mappings":"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CA;;AAEA,wC;;;;;;;;;;;;ACNA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe,gFAAiB,EAAC;;;;;;;;;;;;;ACpCjC;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;ACRvB;AAAA;AACA;AACA,yKAAyK,OAAO;AAChL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;;AAEA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,0BAA0B,UAAU;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2CAA2C,OAAO;AAClD;AACA;;AAEA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B,yBAAyB,OAAO;AAChC;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iDAAiD;AACjD;;AAEA;AACA;AACA,kFAAkF,qCAAqC,yCAAyC;AAChK;;AAEA,qBAAqB;;AAErB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iMAAiM;AACjM;;AAEA;AACA;;AAEA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA,6BAA6B,OAAO;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACnnB1B;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AC7C5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuC;AACE;AACF;AACF;AACW;;AAEhD;AACA,uBAAuB,gEAAO;AAC9B;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA,MAAM,yDAAQ;AACd;AACA;AACA;;AAEA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,SAAS;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,IAAqC;AACjD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,yBAAyB,uBAAuB,EAAE;AAClD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH,iBAAiB,iCAAiC;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,aAAoB,kBAAkB;;AAE1D;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2FAA2F,KAAK,uDAAuD,KAAK;AAC5J;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,YAAY,IAAqC;AACjD,6CAA6C;AAC7C;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB;;AAEjB;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB,wDAAe;AACvC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,uDAAM;AACzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sDAAsD,aAAoB;AAC1E;AACA;;AAEA;AACA;;AAEA,kCAAkC,aAAoB;AACtD,gSAAgS,YAAY,kIAAkI,aAAa;AAC3b;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,8BAA8B,oCAAoC;AAClE,WAAW;AACX,yFAAyF;AACzF;AACA,SAAS;AACT,iDAAiD,aAAoB;AACrE;AACA;;AAEA;AACA;AACA,wFAAwF;AACxF,aAAa;AACb,WAAW;AACX,8BAA8B,wDAAwD;AACtF;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC,GAAG,OAAO;;AAE/C;AACA,WAAW,6DAAU;AACrB;;AAEA,MAAM,IAAqC;AAC3C;AACA,kFAAkF;;AAElF;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,oGAAoG,aAAa;AACjH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gFAAgF,eAAe;AAC/F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iEAAiE;;AAEjE;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;ACtgBhB;;AAEb,6BAA6B,mBAAO,CAAC,oHAA8C;;AAEnF;AACA;;AAEA,uCAAuC,mBAAO,CAAC,gEAAY;;AAE3D;AACA,0DAA0D,yJAAyJ;AACnN;;AAEA,oC;;;;;;;;;;;;ACba;;AAEb;AACA;;AAEA;AACA,qFAAqF;AACrF;;AAEA,oC;;;;;;;;;;;;ACTa;;AAEb;AACA;AACA;;AAEA;AACA,6DAA6D,mHAAmH;AAChL,E;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;;AAE3C;;AAEA,qBAAqB,8DAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEuG;;;;;;;;;;;;;;AChBvG;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0EAA0E,aAAa;AACvF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEe,oEAAK,EAAC;;;;;;;;;;;;;ACrCrB;AACA;AACA;AACA;AACA;;AAEa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACzFA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;;;;;;;;;;;;;ACnCA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;;ACvLtC;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,IAAI,IAAqC;AACzC,6BAA6B,mBAAO,CAAC,yFAA4B;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,aAAa,mBAAO,CAAC,4DAAe;;AAEpC,2BAA2B,mBAAO,CAAC,yFAA4B;AAC/D,qBAAqB,mBAAO,CAAC,qEAAkB;;AAE/C;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,KAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC,wFAAwF,SAAM;AACzI;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC,4FAA4F,SAAM;AAC7I;AACA;;AAEA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;AC1iBA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,mBAAO,CAAC,uFAA2B;AACtD,CAAC,MAAM,EAIN;;;;;;;;;;;;;AC3BD;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA;;;;;;;;;;;;ACXA,wDAAU,mBAAO,CAAC,8EAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA,cAAc,4BAA4B;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA,aAAa;AACb,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC1Ea;;AAEb;AACA;AACA,CAAC;;AAED,mDAAmD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe;;AAE9P,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;;AAEA,iBAAiB,mBAAO,CAAC,sDAAY;;AAErC;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,8CAA8C,iBAAiB,qBAAqB,oCAAoC,6DAA6D,oBAAoB,EAAE,eAAe;;AAE1N,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA,yEAAyE;AACzE,2DAA2D,eAAe;AAC1E,KAAK,EAAE;AACP;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK,uDAAuD;AAC5D;AACA,sDAAsD,eAAe,qBAAqB;AAC1F;AACA;AACA,MAAM,wCAAwC;AAC9C;AACA;AACA;AACA;AACA,MAAM,mDAAmD;AACzD;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;;;;;;;AC3QA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEoB;;;;;;;;;;;;;AC7JpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AAC0C;AAC9B;AACrB;AACd;AACmB;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,wFAAc;;AAEpB;AACA;;AAEA,2EAA2E,aAAa;AACxF;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA;AACA;AACA,oCAAoC,gEAAc;AAClD;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;;AAEX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,uGAA6B;;AAEjD,eAAe,2DAAa,mBAAmB,kFAAQ,GAAG;AAC1D;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,KAAK,CAAC,+CAAS;AACf,cAAc,iDAAS;AACvB,cAAc,iDAAS;AACvB,cAAc,iDAAS;AACvB,cAAc,iDAAS;AACvB,cAAc,iDAAS;AACvB,gBAAgB,iDAAS;AACzB,gBAAgB,iDAAS;AACzB,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA,6BAA6B,iDAAS;;AAEvB,sEAAO,EAAC;AACI;;;;;;;;;;;;;ACrM3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsB;AACkC;AACZ;AACU;AACnB;AACc;AACZ;AACgC;;AAErE;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+CAA+C,+BAA+B;AAC9E;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,6CAA6C,gBAAgB;;AAE7D;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,2BAA2B;AACjD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;;AAEA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM,0CAAG;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;;AAEtB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,mEAAmE,aAAa;AAChF;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA,KAAK;AACL;;AAEA;;AAEA,wBAAwB,gBAAgB,yDAAyD;AACjG,KAAK;AACL;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC,CAAC,+CAAS;;AAEX;AACA,sBAAsB,iDAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,mDAAG,6BAA6B,aAAa;;AAEzE,SAAS,4CAAK;AACd;AACA,cAAc,gBAAgB,eAAe,gBAAgB;AAC7D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA,kCAAkC,mDAAG;AACrC;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA,kCAAkC,mDAAG;AACrC;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA,kCAAkC,mDAAG;AACrC;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,sEAAsE,eAAe;AACrF;AACA;;AAEA,6MAA6M,kBAAkB;AAC/N;;AAEA;;AAEA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA,wBAAwB,4CAAK;AAC7B;AACA,SAAS,uCAAuC,mDAAG,kCAAkC;AACrF;AACA;;AAEA,wBAAwB,8DAAY;AACpC;AACA,GAAG;AACH;AACA,CAAC,CAAC,+CAAS;AACX;AACA,sBAAsB,iDAAS;AAC/B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,wOAAwO,GAAG,mCAAmC,GAAG,+CAA+C,GAAG,mCAAmC,GAAG,mCAAmC,GAAG,yCAAyC,GAAG,mCAAmC,GAAG,kFAAkF,GAAG,oGAAoG,GAAG,gHAAgH,GAAG,yCAAyC,GAAG,yCAAyC,GAAG,gNAAgN,GAAG,gEAAgE,GAAG,sHAAsH,GAAG,gHAAgH,GAAG,oJAAoJ,GAAG,0DAA0D,GAAG,gHAAgH,GAAG,wIAAwI,GAAG,mCAAmC,GAAG,mCAAmC,GAAG,4EAA4E,GAAG,4HAA4H,GAAG,mCAAmC,GAAG,mCAAmC,GAAG,8RAA8R,GAAG,mCAAmC,GAAG,mCAAmC,GAAG,mCAAmC,GAAG,wFAAwF,GAAG,gEAAgE,GAAG,kIAAkI,GAAG,kIAAkI,GAAG,sHAAsH,GAAG,mCAAmC,GAAG,wOAAwO,GAAG,4EAA4E,GAAG,mCAAmC,GAAG,wFAAwF,GAAG,0DAA0D,GAAG,sHAAsH,GAAG,gHAAgH,GAAG,8OAA8O,GAAG,mCAAmC,GAAG,+CAA+C,GAAG,mCAAmC,GAAG,mCAAmC,GAAG,yCAAyC,GAAG,mCAAmC,GAAG,kFAAkF,GAAG,0GAA0G,GAAG,gHAAgH,GAAG,yCAAyC,GAAG,sNAAsN,GAAG,gEAAgE,GAAG,sHAAsH,GAAG,sHAAsH,GAAG,mCAAmC,GAAG,oJAAoJ,GAAG,gEAAgE,GAAG,gHAAgH,GAAG,8IAA8I,GAAG,mCAAmC,GAAG,4EAA4E,GAAG,kIAAkI,GAAG,mCAAmC,GAAG,8RAA8R,GAAG,mCAAmC,GAAG,mCAAmC,GAAG,mCAAmC,GAAG,wFAAwF,GAAG,gEAAgE,GAAG,kIAAkI,GAAG,wIAAwI,GAAG,4HAA4H,GAAG,mCAAmC,GAAG,wOAAwO,GAAG,4EAA4E,GAAG,mCAAmC,GAAG,8FAA8F,GAAG,0DAA0D,GAAG,4HAA4H,GAAG,gHAAgH;;AAEhsP;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,4CAAK;AACd,eAAe,mDAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,4CAAK;AAClB;AACA,OAAO;AACP,mBAAmB,mDAAG;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC,CAAC,+CAAS;;AAEX;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,6DAAW;AACrC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC,CAAC,+CAAS;;AAEX;;AAEA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,mEAAmE,aAAa;AAChF;AACA;;AAEA,gNAAgN;AAChN;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,mBAAmB;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC,CAAC,+CAAS;;AAEX;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,mEAAmE,aAAa;AAChF;AACA;;AAEA,wMAAwM,0BAA0B;AAClO;AACA,sBAAsB,yBAAyB;AAC/C,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;;;AAGA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,4CAAK;AAClB;AACA;AACA,QAAQ,4CAAK;AACb;AACA,qBAAqB,mDAAG,EAAE,0DAA0D;AACpF,SAAS;AACT,QAAQ,4CAAK;AACb;AACA,WAAW,iCAAiC;AAC5C;AACA;AACA,4BAA4B,4CAAK,4BAA4B,uCAAuC;AACpG;AACA;AACA,GAAG;AACH;AACA,CAAC,CAAC,mDAAa;;AAEf;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,mEAAmE,aAAa;AAChF;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,4CAAK;AAClB;AACA,SAAS,iCAAiC;AAC1C;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC,CAAC,+CAAS;;AAEX;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,4CAAK;AAC9B;AACA,GAAG;AACH;AACA,CAAC,CAAC,+CAAS;;AAEX,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA,kCAAkC,mDAAG;AACrC;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,aAAa,4CAAK;AAClB;AACA;AACA,sCAAsC,mDAAG;AACzC;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC,CAAC,+CAAS;;AAEX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAAS,4CAAK;AACd;AACA;AACA,kCAAkC,mDAAG;AACrC;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;AACA,0CAA0C,mDAAG;AAC7C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA,SAAS,4CAAK;AACd;AACA,cAAc,WAAW;AACzB,IAAI,4CAAK,wBAAwB,kWAAkW;AACnY;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA,cAAc,WAAW;AACzB,IAAI,4CAAK,wBAAwB,6RAA6R;AAC9T;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA,eAAe;AACf,kCAAkC,mDAAG;AACrC;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,YAAY,4CAAK;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA,eAAe;AACf,kCAAkC,mDAAG;AACrC;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA,YAAY,4CAAK;AACjB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK,kCAAkC;AAChD,gCAAgC,mDAAG,2CAA2C,8BAA8B;AAC5G,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,4CAAK;AACd,eAAe,mDAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA,4DAAY,iCAAiC,YAAY,WAAW,IAAI,aAAa;;AAErF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,SAAS,4CAAK;AACd;AACA,eAAe;AACf,kCAAkC,mDAAG;AACrC;AACA;AACA,OAAO;AACP,KAAK;AACL,IAAI,4CAAK,4BAA4B,wCAAwC;AAC7E,IAAI,4CAAK,4BAA4B,yCAAyC;AAC9E,IAAI,4CAAK,4BAA4B,2CAA2C;AAChF;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA,kCAAkC,mDAAG;AACrC;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA,kCAAkC,mDAAG,8BAA8B,gBAAgB;AACnF,KAAK;AACL,IAAI,4CAAK;AACT;AACA,iBAAiB,iBAAiB,6CAA6C;AAC/E;AACA;AACA,IAAI,4CAAK;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd,gCAAgC,mDAAG,qCAAqC,eAAe,kBAAkB,wBAAwB;AACjI,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA;AACA,iBAAiB,mDAAG,8BAA8B,eAAe;AACjE,KAAK;AACL,IAAI,4CAAK,eAAe,2DAAa;AACrC,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,4CAAK;AAClB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC,CAAC,+CAAS;;AAEX;AACA,YAAY,4CAAK,2BAA2B,WAAW;AACvD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,oCAAoC,mDAAG;AACvC;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA,oCAAoC,mDAAG;AACvC;AACA,SAAS;AACT;;AAEA;AACA,oCAAoC,mDAAG;AACvC;AACA,SAAS;AACT,OAAO;;AAEP,aAAa,4CAAK;AAClB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,4CAAK;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,QAAQ,4CAAK;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA,CAAC,CAAC,+CAAS;;AAEX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA,kCAAkC,mDAAG;AACrC;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA,kCAAkC,mDAAG;AACrC;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA,kCAAkC,mDAAG;AACrC;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB,uBAAuB;AACvB,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,YAAY;AACZ;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,4BAA4B,2DAAU;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mHAAmH;AAC1I;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB,OAAO;AACP,8BAA8B,uBAAuB;AACrD;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP,oCAAoC,gBAAgB;AACpD;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,sCAAsC,iBAAiB;AACvD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,sCAAsC,gBAAgB;AACtD;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA,sFAAsF,2CAA2C;AACjI;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,GAAG,4BAA4B;AACtC;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,iDAAiD,6BAA6B;AAC9E,OAAO;;AAEP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA,eAAe,4CAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA,aAAa,4CAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,mCAAmC,4CAAK;AACxC;AACA,qBAAqB,gBAAgB,6CAA6C;AAClF;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,4CAAK;AACtB;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,4CAAK;AAClB;AACA,mBAAmB,gBAAgB,4CAA4C;AAC/E;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,aAAa,4CAAK,0CAA0C;AAC5D;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA,wBAAwB;AACxB,aAAa,4CAAK,4CAA4C;AAC9D;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;;AAGA,aAAa,4CAAK,8CAA8C;AAChE;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA,aAAa,4CAAK,6CAA6C;AAC/D;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,4CAAK;AACpB;AACA,qBAAqB,uBAAuB,uBAAuB;AACnE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mBAAmB,4CAAK;AACxB;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,eAAe;AACf;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT,OAAO;AACP,sCAAsC,yBAAyB;AAC/D;AACA,iBAAiB,4CAAK;AACtB;AACA;AACA;AACA;AACA,OAAO;AACP,yCAAyC,yBAAyB;AAClE;AACA,iBAAiB,4CAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,4CAAK;AAC7B;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,iBAAiB,4CAAK;AACtB;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,aAAa;AACb,YAAY,4CAAK;AACjB;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,cAAc,4CAAK;AACnB;AACA,iBAAiB,mCAAmC;AACpD,gBAAgB,4CAAK;AACrB;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4DAA4D,4CAAK;AACjE;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX,iBAAiB,4CAAK,yBAAyB,4CAA4C;AAC3F,SAAS;AACT;AACA,mBAAmB,4CAAK;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW,IAAI,4CAAK,yBAAyB,6BAA6B;;AAE1E,iBAAiB,4CAAK;AACtB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,eAAe,4CAAK,yBAAyB,6CAA6C;AAC1F;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,aAAa,4CAAK;AAClB;AACA,SAAS,2BAA2B;AACpC,QAAQ,4CAAK;AACb;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA,QAAQ,4CAAK;AACb;AACA,WAAW,qBAAqB;AAChC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA,aAAa,4CAAK;AAClB;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA,QAAQ,4CAAK;AACb;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,WAAW;AACX,UAAU,4CAAK;AACf;AACA,uBAAuB,gBAAgB,yBAAyB;AAChE;AACA;AACA;AACA,UAAU,4CAAK;AACf;AACA,uBAAuB,gBAAgB,yBAAyB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC,CAAC,+CAAS;;AAEX;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,2CAA2C,4BAA4B;AACvE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB;AACpB,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB;AAClB,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mCAAmC,kBAAkB;AACrD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA,iEAAiE;AACjE;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sCAAsC,yBAAyB;AAC/D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,uBAAuB;AACrD;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,+BAA+B;AACpD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,qEAAqE,aAAa;AAClF;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,wBAAwB,eAAe;AACvC,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,wBAAwB,mBAAmB;AAC3C,OAAO;AACP;AACA,wBAAwB,oBAAoB;AAC5C,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,gGAAgG,eAAe;AAC/G;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,eAAe,4CAAK,2CAA2C;AAC/D;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA,GAAG,CAAC,+CAAS;AACb;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B,sDAAsD;AACnF,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU,4CAAK,2CAA2C;AAC1D;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA,GAAG,CAAC,+CAAS;AACb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yDAAyD;AACzD;AACA,iCAAiC;AACjC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA,eAAe,4CAAK,2CAA2C;AAC/D;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA,GAAG,CAAC,+CAAS;AACb;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,aAAa;AAC5B,cAAc,uDAAuD;AACrE,cAAc,aAAa;AAC3B,aAAa;AACb;;AAEA,SAAS,4CAAK;AACd,IAAI,iEAAU;AACd,KAAK,2EAA2E;AAChF;AACA;AACA,0BAA0B;AAC1B;AACA,aAAa,4CAAK,8BAA8B,yBAAyB;AACzE;AACA;AACA;AACA;;AAEA,mDAAmD;AACnD;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,mEAAmE,aAAa;AAChF;AACA;;AAEA,uOAAuO,gBAAgB;AACvP,gBAAgB,kEAAkE;AAClF,eAAe;AACf,KAAK;AACL;AACA;AACA;AACA;;AAEA,wBAAwB,gBAAgB;AACxC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA,8BAA8B;;;AAG9B;;;AAGA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,aAAa,4CAAK;AAClB,QAAQ,iEAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iCAAiC;AACjC,iBAAiB,4CAAK;AACtB;AACA,aAAa,qCAAqC;AAClD;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC,CAAC,+CAAS;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4CAAK,2CAA2C,qBAAqB;AAC3E;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA,WAAW,4CAAK;AAChB;AACA,OAAO,mCAAmC;AAC1C,MAAM,4CAAK,2CAA2C,2BAA2B;AACjF;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,4CAAK;AAChB;AACA;AACA,KAAK;AACL;AACA;;AAEA,gBAAgB;;AAEhB;AACA;AACA,WAAW,4CAAK,+BAA+B,8BAA8B;AAC7E;AACA;;AAEA;AACA;AACA;AACA,WAAW,4CAAK,eAAe,sEAAe,YAAY,8BAA8B;AACxF;AACA;;AAEA;AACA,yCAAyC,iCAAiC;AAC1E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,YAAY,2DAAU;;AAEtB;;AAEe,sEAAO,EAAC;AACuH;;;;;;;;;;;;;ACjqJjI;;AAEb;AACA;;AAEA,wCAAwC,mBAAO,CAAC,sDAAY;;AAE5D,uCAAuC,mBAAO,CAAC,gFAA4B;;AAE3E,0CAA0C,mBAAO,CAAC,sFAA+B;;AAEjF,oCAAoC,mBAAO,CAAC,oBAAO;;AAEnD,yCAAyC,mBAAO,CAAC,yEAAc;;AAE/D,iBAAiB,mBAAO,CAAC,mFAAmB;;AAE5C,sCAAsC,uCAAuC,gBAAgB;;AAE7F,uCAAuC,6BAA6B,YAAY,EAAE,OAAO,iBAAiB,mBAAmB,uBAAuB,sDAAsD,sHAAsH,4BAA4B,0CAA0C,EAAE,OAAO,wBAAwB,EAAE,EAAE,EAAE,EAAE,sBAAsB,eAAe,EAAE;;AAEtd,+CAA+C,0DAA0D,2CAA2C,iCAAiC;;AAErL,qBAAqB,gDAAgD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe,GAAG,wCAAwC;;AAE3T;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA,gBAAgB,KAAqC,cAAc;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,IAAI,SAAE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uEAAuE,aAAa;AACpF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc,UAAU,IAAI;AACrD,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8CAA8C;;AAE9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,+CAA+C;;;AAG/C;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;;AAEA;AACA;;AAEA;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8EAA8E;;;AAG9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAqC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B,QAAQ;AACR,iCAAiC,aAAa,OAAO,EAAE;AACvD;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0EAA0E,IAAI;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA,aAAa,KAAqC,8BAA8B,SAAE;AAClF;;AAEA,0FAA0F,aAAa;AACvG;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,GAAG,SAAE;;AAEN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,2B;;;;;;;;;;;;ACzlBa;;AAEb;AACA;;AAEA,wCAAwC,mBAAO,CAAC,sDAAY;;AAE5D,oCAAoC,mBAAO,CAAC,oBAAO;;AAEnD,6BAA6B,mBAAO,CAAC,qGAAyB;;AAE9D,oBAAoB,mBAAO,CAAC,yFAAsB;;AAElD,sCAAsC,uCAAuC,gBAAgB;;AAE7F,0DAA0D,+BAA+B,iBAAiB,sCAAsC,YAAY,YAAY,uBAAuB,OAAO,qBAAqB,0CAA0C,2BAA2B,EAAE,eAAe;;AAEjT,qBAAqB,gDAAgD,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,2BAA2B,EAAE,EAAE,EAAE,eAAe,GAAG,wCAAwC;;AAE3T,+CAA+C,0DAA0D,2CAA2C,iCAAiC;;AAErL,uCAAuC,uBAAuB,uFAAuF,EAAE,aAAa;;AAEpK;AACA;AACA;AACA,GAAG;AACH;;AAEA,gBAAgB,KAAqC;AACrD;AACA;AACA;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG,SAAE;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,sGAAsG;;;AAGtG;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gCAAgC;;AAEhC;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA,4BAA4B,KAAqC,eAAe,SAAE;AAClF;;AAEA;;AAEA;AACA,oC;;;;;;;;;;;;AClMa;;AAEb,4CAA4C,mBAAO,CAAC,+EAAiB;;AAErE,gDAAgD,mBAAO,CAAC,uFAAqB;;AAE7E,8CAA8C,mBAAO,CAAC,mFAAmB;;AAEzE,yCAAyC,mBAAO,CAAC,yEAAc;;AAE/D,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;;;ACjBa;;AAEb;AACA;AACA;AACA;AACA;;AAEA,aAAa,mBAAO,CAAC,oBAAO;;AAE5B;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB;AACA,YAAY,OAAO;AACnB;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA;;AAEA;AACA,GAAG;;;AAGH,aAAa,wBAAwB;AACrC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,C;;;;;;;;;;;;ACrJa;;AAEb;AACA;AACA;;AAEA,wCAAwC,mBAAO,CAAC,sDAAY;;AAE5D,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uRAAuR;AACvR,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,0C;;;;;;;;;;;;AChDA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA,iCAAiC,YAAY;AAC7C,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC,6BAA6B,EAAE,aAAa;AAC5G,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qDAAqD,mCAAmC,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,6CAA6C,yBAAyB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,kCAAkC,iEAAiE;AACnG;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,8CAA8C;AAC9C,CAAC;AACD;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2CAA2C;AAC7E;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC;AACA,eAAe,yBAAyB;AACxC;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEc,oEAAK,EAAC;;;;;;;;;;;;;AC/5BrB;AACA,CAAC,KAA4D;AAC7D,EAAE,SACwC;AAC1C,CAAC;;AAED;;AAEA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA,0BAA0B;AAC1B,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC/CD;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACjCA,UAAU,mBAAO,CAAC,yDAAW;AAC7B,kBAAkB,mBAAO,CAAC,iEAAmB;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AC5BA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;ACnBA,uB;;;;;;;;;;;ACAA,0B","file":"block.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./block/index.js\");\n","import Select from 'react-select';\n\nconst { Component, Fragment } = wp.element;\nconst { apiFetch } = wp;\n\n/**\n* Setting component for event categories\n*/\nclass CategorySetting extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tselectOptions: [],\n\t\t\tselectedCats: [],\n\t\t\tisLoading: true,\n\t\t};\n\t}\n\n\t/**\n\t * Load in event categories from tribe endpoint - CDM\n\t */\n\tcomponentDidMount() {\n\t\tapiFetch( { path: '/tribe/events/v1/categories/' } ).then( ( response ) => {\n\t\t\tconst selectOptions = response.categories.map( ( category ) => {\n\t\t\t\treturn { value: category.slug, label: category.name };\n\t\t\t} );\n\n\t\t\tconst { cat } = this.props.attributes;\n\t\t\tconst catArray = ( typeof cat === 'undefined' ) ? [] : cat.split( ', ' );\n\n\t\t\tconst selectedCats = selectOptions.filter( ( option ) => {\n\t\t\t\tif ( catArray.indexOf( option.value ) > -1 ) {\n\t\t\t\t\treturn option.value;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\tthis.setState( {\n\t\t\t\tselectOptions,\n\t\t\t\tselectedCats,\n\t\t\t\tisLoading: false,\n\t\t\t} );\n\t\t} );\n\t}\n\n\t/**\n\t * Handle selection change\n\t *\n\t * @param {Array} selectedCats the selected categories\n\t */\n\thandleChange = ( selectedCats ) => {\n\t\tconst formattedSelection = selectedCats.map( ( category ) => {\n\t\t\treturn category.value;\n\t\t} );\n\t\tconst stringSelection = formattedSelection.join( ', ' );\n\n\t\tthis.setState( { selectedCats } );\n\t\tthis.props.setAttributes( { cat: stringSelection } );\n\t}\n\n\t/**\n\t * @return {ReactElement} Category Setting\n\t */\n\trender() {\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<Select\n\t\t\t\t\tclassName={ 'ecs-select multi' }\n\t\t\t\t\tclassNamePrefix={ 'select' }\n\t\t\t\t\tvalue={ this.state.selectedCats }\n\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\toptions={ this.state.selectOptions }\n\t\t\t\t\tisMulti={ 'true' }\n\t\t\t\t\tisLoading={ this.state.isLoading }\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default CategorySetting;\n\n","import Select from 'react-select';\n\nconst { Component, Fragment } = wp.element;\nconst { __ } = wp.i18n;\n\n/**\n* Setting component for design\n*/\nclass DesignSetting extends Component {\n\t/**\n\t * @return {ReactElement} Design Setting\n\t */\n\trender() {\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<Select\n\t\t\t\t\tclassName={ 'ecs-select' }\n\t\t\t\t\tclassNamePrefix={ 'select' }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Standard', 'the-events-calendar-shortcode' ), value: 'standard' },\n\t\t\t\t\t] }\n\t\t\t\t\tvalue={ { label: __( 'Standard', 'the-events-calendar-shortcode' ), value: 'standard' } }\n\t\t\t\t/>\n\t\t\t\t<div className={ 'ecs-setting-help' }>\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ 'https://eventcalendarnewsletter.com/the-events-calendar-shortcode/?utm_source=plugin&utm_medium=link&utm_campaign=block-design-help&utm_content=description#designs' }\n\t\t\t\t\t\ttarget={ '_blank' }\n\t\t\t\t\t>{ __( 'Upgrade to Pro', 'the-events-calendar-shortcode' ) }</a>\n\t\t\t\t\t{ __( ' for more designs!', 'the-events-calendar-shortcode' ) }\n\t\t\t\t</div>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default DesignSetting;\n","const { Component } = wp.element;\nconst { __ } = wp.i18n;\n\n/**\n* Setting component for the excerpt\n*/\nclass ExcerptSetting extends Component {\n\tisValid = ( excerpt ) => {\n\t\treturn ( excerpt !== 'false' );\n\t}\n\n\t/**\n\t* Handle excerpt checkbox input change\n\t*\n\t* @param {Object} event input onChange event\n\t*/\n\thandleChange = ( event ) => {\n\t\tconst value = ( event.target.checked ) ? '100' : 'false';\n\t\tthis.props.setAttributes( { excerpt: value } );\n\t}\n\n\t/**\n\t* Handle excerpt length input change\n\t*\n\t* @param {Object} event input onChange event\n\t*/\n\thandleLengthChange = ( event ) => {\n\t\tif ( ! event.target.validity.patternMismatch ) {\n\t\t\tthis.props.setAttributes( { excerpt: `${ event.target.value }` } );\n\t\t} else {\n\t\t\tthis.props.setAttributes( { excerpt: '100' } );\n\t\t}\n\t}\n\n\t/**\n\t * @return {ReactElement} Excerpt Setting\n\t */\n\trender() {\n\t\tconst { excerpt } = this.props.attributes;\n\n\t\treturn (\n\t\t\t<div className={ 'ecs-settings-excerpt' }>\n\t\t\t\t<div className={ 'ecs-setting-excerpt-enable' }>\n\t\t\t\t\t<input\n\t\t\t\t\t\tid={ 'ecs-setting-excerpt' }\n\t\t\t\t\t\ttype={ 'checkbox' }\n\t\t\t\t\t\tchecked={ excerpt !== 'false' }\n\t\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\t/><label\n\t\t\t\t\t\tclassName={ 'components-base-control__label' }\n\t\t\t\t\t\thtmlFor={ 'ecs-setting-excerpt' }\n\t\t\t\t\t>{ __( 'Show excerpt of events', 'the-events-calendar-shortcode' ) }</label>\n\t\t\t\t</div>\n\n\t\t\t\t{ this.isValid( excerpt ) ? <div className={ 'ecs-setting-excerpt' }>\n\t\t\t\t\t<div className={ 'ecs-setting-text-field' }>\n\t\t\t\t\t\t<label\n\t\t\t\t\t\t\tclassName={ 'ecs-setting-label' }\n\t\t\t\t\t\t\thtmlFor={ 'ecs-setting-excerpt-length' }\n\t\t\t\t\t\t>{ __( 'Length', 'the-events-calendar-shortcode' ) }</label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tid={ 'ecs-setting-excerpt-length' }\n\t\t\t\t\t\t\tstyle={ { borderColor: ! isNaN( parseInt( excerpt ) ) ? 'inherit' : 'red' } }\n\t\t\t\t\t\t\ttype={ 'text' }\n\t\t\t\t\t\t\tlabel={ __( 'Excerpt Length' ) }\n\t\t\t\t\t\t\tvalue={ excerpt }\n\t\t\t\t\t\t\tpattern={ '[0-9]*' }\n\t\t\t\t\t\t\tonChange={ this.handleLengthChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div> : null }\n\t\t\t\t<div className={ 'ecs-setting-help' }>\n\t\t\t\t\t{ __( 'Want to show the full description of events or HTML from your excerpt? ', 'the-events-calendar-shortcode' )}\n <a\n href={ 'https://eventcalendarnewsletter.com/the-events-calendar-shortcode/?utm_source=plugin&utm_medium=link&utm_campaign=block-excerpt-help&utm_content=description' }\n target={ '_blank' }\n >{ __( 'Upgrade to Pro', 'the-events-calendar-shortcode' ) }</a>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default ExcerptSetting;\n","const { Component, Fragment } = wp.element;\nconst { __ } = wp.i18n;\nconst { TextControl } = wp.components;\n\n/**\n* Setting component for key/value\n*/\nclass KeyValueSetting extends Component {\n\t/**\n\t * @param {string} key The new key\n\t */\n\thandleKeyChange = ( key ) => {\n\t\tthis.updateKeyValueAttribute( 'key', key );\n\t}\n\n\t/**\n\t * @param {string} value The new value\n\t */\n\thandleValueChange = ( value ) => {\n\t\tthis.updateKeyValueAttribute( 'value', value );\n\t}\n\n\t/**\n\t * @param {string} type key or value input\n\t * @param {string} newValue the updated input for key or value\n\t */\n\tupdateKeyValueAttribute = ( type, newValue ) => {\n\t\tconst { uid } = this.props;\n\t\tlet { keyValue } = this.props.attributes;\n\n\t\tkeyValue = typeof keyValue === 'undefined' ? {} : JSON.parse( keyValue );\n\t\tkeyValue[ uid ] = { ...keyValue[ uid ], [ type ]: newValue };\n\n\t\tthis.props.setAttributes( { keyValue: JSON.stringify( keyValue ) } );\n\t}\n\n\t/**\n\t * @return {ReactElement} Key Value Repeater\n\t */\n\trender() {\n\t\tlet { keyValue } = this.props.attributes;\n\n\t\tkeyValue = typeof keyValue === 'undefined' ? {} : JSON.parse( keyValue );\n\t\tconst item = keyValue[ this.props.uid ];\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<div className={ 'ecs-key-value' }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Key', 'the-events-calendar-shortcode' ) }\n\t\t\t\t\t\tvalue={ item.key }\n\t\t\t\t\t\tonChange={ this.handleKeyChange }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ __( 'Value', 'the-events-calendar-shortcode' ) }\n\t\t\t\t\t\tvalue={ item.value }\n\t\t\t\t\t\tonChange={ this.handleValueChange }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n <div className={ 'ecs-setting-help' }>\n <a\n href={ 'https://eventcalendarnewsletter.com/events-calendar-shortcode-pro-options/?utm_source=plugin&utm_medium=link&utm_campaign=block-advanced-help&utm_content=description' }\n target={ '_blank' }\n >{ __( 'View documentation on available options', 'the-events-calendar-shortcode' ) }</a>\n { __( ' where key=\"value\" in the shortcode can be entered in the boxes above', 'the-events-calendar-shortcode' ) }\n\t\t\t\t</div>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default KeyValueSetting;\n","const { Component, Fragment } = wp.element;\n\n/**\n* Setting component for limit\n*/\nclass LimitSetting extends Component {\n\t/**\n\t * Handle limit input change\n\t *\n\t * @param {Object} event input onChange event\n\t */\n\thandleChange = ( event ) => {\n\t\tthis.props.setAttributes( { limit: parseInt( event.target.value ) } );\n\t}\n\n\t/**\n\t * @return {ReactElement} Limit Setting\n\t */\n\trender() {\n\t\tconst { attributes } = this.props;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<input\n\t\t\t\t\tid={ 'ecs-setting-limit' }\n\t\t\t\t\ttype={ 'number' }\n\t\t\t\t\tmin={ 1 }\n\t\t\t\t\tvalue={ attributes.limit }\n\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default LimitSetting;\n\n","const { Component } = wp.element;\nconst { __ } = wp.i18n;\n\n/**\n* Setting component for month\n*/\nclass MonthSetting extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tlet { month } = props.attributes;\n\t\tmonth = typeof month === 'undefined' ? '' : month;\n\t\tconst valid = ( month !== '' && month !== 'current' );\n\n\t\tthis.state = {\n\t\t\tyear: valid ? month.slice( 0, 4 ) : '',\n\t\t\tmonth: valid ? month.slice( 5 ) : '',\n\t\t\tmonthValid: valid,\n\t\t\tyearValid: valid,\n\t\t};\n\t}\n\t/**\n\t* Handle current checkbox input change\n\t*\n\t* @param {Object} event input onChange event\n\t*/\n\thandleChange = ( event ) => {\n\t\tconst current = ( event.target.checked ) ? 'current' : '';\n\t\tthis.props.setAttributes( { month: current } );\n\t}\n\n\t/**\n\t* Handle year input change\n\t*\n\t* @param {Object} event input onChange event\n\t*/\n\thandleYearChange = ( event ) => {\n\t\tconst { month, monthValid } = this.state;\n\n\t\tif ( ! event.target.validity.patternMismatch && monthValid ) {\n\t\t\tthis.props.setAttributes( { month: `${ event.target.value }-${ month }` } );\n\t\t} else {\n\t\t\tthis.props.setAttributes( { month: '' } );\n\t\t}\n\n\t\tthis.setState( {\n\t\t\tyear: event.target.value,\n\t\t\tyearValid: ! event.target.validity.patternMismatch,\n\t\t} );\n\t}\n\n\t/**\n\t* Handle month input change\n\t*\n\t* @param {Object} event input onChange event\n\t*/\n\thandleMonthChange = ( event ) => {\n\t\tconst { year, yearValid } = this.state;\n\n\t\tif ( ! event.target.validity.patternMismatch && yearValid ) {\n\t\t\tthis.props.setAttributes( { month: `${ year }-${ event.target.value }` } );\n\t\t} else {\n\t\t\tthis.props.setAttributes( { month: '' } );\n\t\t}\n\n\t\tthis.setState( {\n\t\t\tmonth: event.target.value,\n\t\t\tmonthValid: ! event.target.validity.patternMismatch,\n\t\t} );\n\t}\n\n\t/**\n\t * @return {ReactElement} Month Setting\n\t */\n\trender() {\n\t\tconst { month } = this.props.attributes;\n\t\tconst current = ( month === 'current' ) ? true : false;\n\n\t\treturn (\n\t\t\t<div className={ 'ecs-settings-month' }>\n\t\t\t\t<div className={ 'ecs-setting-current' }>\n\t\t\t\t\t<input\n\t\t\t\t\t\tid={ 'ecs-setting-current' }\n\t\t\t\t\t\ttype={ 'checkbox' }\n\t\t\t\t\t\tchecked={ current }\n\t\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\t/><label\n\t\t\t\t\t\tclassName={ 'components-base-control__label' }\n\t\t\t\t\t\thtmlFor={ 'ecs-setting-current' }\n\t\t\t\t\t>{ __( 'Current Month Only?', 'the-events-calendar-shortcode' ) }</label>\n\t\t\t\t</div>\n\n\t\t\t\t{ ! current ? <div className={ 'ecs-setting-year-month' }>\n\t\t\t\t\t<div className={ 'ecs-setting-text-field' }>\n\t\t\t\t\t\t<label\n\t\t\t\t\t\t\tclassName={ 'ecs-setting-label' }\n\t\t\t\t\t\t\thtmlFor={ 'ecs-setting-year' }\n\t\t\t\t\t\t>{ __( 'Year', 'the-events-calendar-shortcode' ) }</label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tid={ 'ecs-setting-year' }\n\t\t\t\t\t\t\tstyle={ { borderColor: this.state.yearValid ? 'inherit' : 'red' } }\n\t\t\t\t\t\t\ttype={ 'text' }\n\t\t\t\t\t\t\tlabel={ __( 'Year' ) }\n\t\t\t\t\t\t\tplaceholder={ 'YYYY' }\n\t\t\t\t\t\t\tvalue={ this.state.year }\n\t\t\t\t\t\t\tpattern={ '[0-9]{4}' }\n\t\t\t\t\t\t\tonChange={ this.handleYearChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className={ 'ecs-month-divider' } />\n\n\t\t\t\t\t<div className={ 'ecs-setting-text-field' }>\n\t\t\t\t\t\t<label\n\t\t\t\t\t\t\tclassName={ 'ecs-setting-label' }\n\t\t\t\t\t\t\thtmlFor={ 'ecs-setting-month' }\n\t\t\t\t\t\t>{ __( 'Month', 'the-events-calendar-shortcode' ) }</label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tid={ 'ecs-setting-month' }\n\t\t\t\t\t\t\tstyle={ { borderColor: this.state.monthValid ? 'inherit' : 'red' } }\n\t\t\t\t\t\t\ttype={ 'text' }\n\t\t\t\t\t\t\tplaceholder={ 'MM' }\n\t\t\t\t\t\t\tvalue={ this.state.month }\n\t\t\t\t\t\t\tpattern={ '(0[1-9]|1[012])' }\n\t\t\t\t\t\t\tonChange={ this.handleMonthChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div> : null }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default MonthSetting;\n","import Select from 'react-select';\n\nconst { Component, Fragment } = wp.element;\nconst { __ } = wp.i18n;\n\nclass OrderBySetting extends Component {\n\t/**\n\t * Handle selection change\n\t *\n\t * @param {Array} selectedOrderBy the selected option\n\t */\n\thandleChange = ( selectedOrderBy ) => {\n\t\tthis.props.setAttributes( { orderby: selectedOrderBy.value } );\n\t}\n\n\t/**\n\t * @return {ReactElement} OrderBy Setting\n\t */\n\trender() {\n\t\tconst { orderby } = this.props.attributes;\n\n\t\tconst orderByOptions = [\n\t\t\t{\n\t\t\t\tlabel: __( 'Start Date', 'the-events-calendar-shortcode' ),\n\t\t\t\tvalue: 'startdate',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'End Date', 'the-events-calendar-shortcode' ),\n\t\t\t\tvalue: 'enddate',\n\t\t\t},\n {\n label: __( 'Title', 'the-events-calendar-shortcode' ),\n value: 'title',\n },\n ];\n const selectedOrderBy = orderByOptions.filter( ( option ) => option.value === orderby );\n\n return (\n\t\t\t<Fragment>\n\t\t\t\t<Select\n\t\t\t\t\tclassName={ 'ecs-select' }\n\t\t\t\t\tclassNamePrefix={ 'select' }\n\t\t\t\t\tvalue={ selectedOrderBy }\n\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\toptions={ orderByOptions }\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default OrderBySetting;\n\n","import Select from 'react-select';\n\nconst { Component, Fragment } = wp.element;\nconst { __ } = wp.i18n;\n\nclass OrderSetting extends Component {\n\t/**\n\t * Handle selection change\n\t *\n\t * @param {Array} selectedOrder the selected categories\n\t */\n\thandleChange = ( selectedOrder ) => {\n\t\tthis.props.setAttributes( { order: selectedOrder.value } );\n\t}\n\n\t/**\n\t * @return {ReactElement} Order Setting\n\t */\n\trender() {\n\t\tconst { order } = this.props.attributes;\n\n\t\tconst orderOptions = [\n\t\t\t{\n\t\t\t\tlabel: __( 'Ascending', 'the-events-calendar-shortcode' ),\n\t\t\t\tvalue: 'ASC',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: __( 'Descending', 'the-events-calendar-shortcode' ),\n\t\t\t\tvalue: 'DESC',\n\t\t\t},\n ];\n const selectedOrder = orderOptions.filter( ( option ) => option.value === order );\n\n return (\n\t\t\t<Fragment>\n\t\t\t\t<Select\n\t\t\t\t\tclassName={ 'ecs-select' }\n\t\t\t\t\tclassNamePrefix={ 'select' }\n\t\t\t\t\tvalue={ selectedOrder }\n\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\toptions={ orderOptions }\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default OrderSetting;\n\n","const { Component, Fragment } = wp.element;\nconst { __ } = wp.i18n;\n\n/**\n* Setting component for past\n*/\nclass PastSetting extends Component {\n\t/**\n\t* Handle past checkbox input change\n\t*\n\t* @param {Object} event input onChange event\n\t*/\n\thandleChange = ( event ) => {\n\t\tconst past = ( event.target.checked ) ? 'yes' : '';\n\t\tthis.props.setAttributes( { past: past } );\n\t}\n\n\t/**\n\t * @return {ReactElement} Past Setting\n\t */\n\trender() {\n\t\tconst past = ( this.props.attributes.past === 'yes' ) ? true : false;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<input\n\t\t\t\t\tid={ 'ecs-setting-past' }\n\t\t\t\t\ttype={ 'checkbox' }\n\t\t\t\t\tchecked={ past }\n\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t/>\n\t\t\t\t<label\n\t\t\t\t\tclassName={ 'components-base-control__label' }\n\t\t\t\t\thtmlFor={ 'ecs-setting-past' }\n\t\t\t\t>{ __( 'Show only past events?', 'the-events-calendar-shortcode' ) }</label>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default PastSetting;\n","import Select from 'react-select';\n\nconst { Component } = wp.element;\nconst { __ } = wp.i18n;\n\nclass SettingSelector extends Component {\n\t/**\n\t* @param {string} newSetting the selected setting to add\n\t*/\n\thandleChange = ( newSetting ) => {\n\t\tconst { handleSelect } = this.props;\n\n\t\tif ( newSetting.value === 'other' ) {\n\t\t\t// handle keyValue setting\n\t\t\thandleSelect( newSetting.value, true );\n\t\t} else {\n\t\t\t// handle new normal setting\n\t\t\thandleSelect( newSetting.value );\n\t\t}\n\t}\n\n\t/**\n\t* @return {ReactElement} Setting Selector\n\t*/\n\trender() {\n\t\tconst { settingsConfig, activeSettings } = this.props;\n\n\t\t// build options from config object\n\t\tconst selectOptions = Object.keys( settingsConfig ).map( ( key ) => {\n\t\t\treturn {\n\t\t\t\tvalue: key,\n\t\t\t\tlabel: settingsConfig[ key ].label,\n\t\t\t};\n\t\t} );\n\n\t\t// add default option\n\t\tselectOptions.push( {\n\t\t\tvalue: 'new-setting',\n\t\t\tlabel: __( 'Choose another option', 'the-events-calendar-shortcode' ),\n\t\t\tisDisabled: true,\n\t\t} );\n\n\t\t// generate the available options\n\t\tconst availableOptions = selectOptions.filter( ( option ) => {\n\t\t\treturn activeSettings.indexOf( option.value ) < 0;\n\t\t} );\n\n\t\treturn (\n\t\t\t<Select\n\t\t\t\tclassName={ 'ecs-select' }\n\t\t\t\tclassNamePrefix={ 'select' }\n\t\t\t\toptions={ availableOptions }\n\t\t\t\tvalue={ {\n\t\t\t\t\tvalue: 'new-setting',\n\t\t\t\t\tlabel: __( 'Choose another option', 'the-events-calendar-shortcode' ),\n\t\t\t\t} }\n\t\t\t\tonChange={ this.handleChange }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default SettingSelector;\n\n","import Select from 'react-select';\n\nconst { Component } = wp.element;\n\nclass SettingSwitcher extends Component {\n\t/**\n\t* @param {string} newSetting the selected setting to switch to\n\t*/\n\thandleChange = ( newSetting ) => {\n\t\tconst { setting, uid, handleSwitch } = this.props;\n\n\t\tif ( newSetting.value === 'other' ) {\n\t\t\t// handle switching to a keyValue setting\n\t\t\thandleSwitch( setting, newSetting.value, 'add' );\n\t\t} else if ( setting === 'other' ) {\n\t\t\t// handle switching from a keyValue setting\n\t\t\thandleSwitch( setting, newSetting.value, uid );\n\t\t} else {\n\t\t\t// handle switching between normal setting\n\t\t\thandleSwitch( setting, newSetting.value );\n\t\t}\n\t}\n\n\t/**\n\t* @return {ReactElement} Setting Switcher\n\t*/\n\trender() {\n\t\tconst { settingsConfig, setting } = this.props;\n\t\tlet { activeSettings } = this.props;\n\n\t\t// build options from config object\n\t\tconst selectOptions = Object.keys( settingsConfig ).map( ( key ) => {\n\t\t\treturn {\n\t\t\t\tvalue: key,\n\t\t\t\tlabel: settingsConfig[ key ].label,\n\t\t\t};\n\t\t} );\n\n\t\t// remove the current setting from the activeSettings in order to display it in the select\n\t\tactiveSettings = setting ? activeSettings.filter( ( value ) => value !== setting ) : activeSettings;\n\n\t\t// generate the available options\n\t\tconst availableOptions = selectOptions.filter( ( option ) => {\n\t\t\treturn activeSettings.indexOf( option.value ) < 0;\n\t\t} );\n\n\t\tconst selectedValue = selectOptions.filter( ( option ) => option.value === setting );\n\n\t\treturn (\n\t\t\t<Select\n\t\t\t\tclassName={ 'ecs-select' }\n\t\t\t\tclassNamePrefix={ 'select' }\n\t\t\t\toptions={ availableOptions }\n\t\t\t\tvalue={ selectedValue }\n\t\t\t\tonChange={ this.handleChange }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default SettingSwitcher;\n\n","const { Component, Fragment } = wp.element;\nconst { __ } = wp.i18n;\nconst { TextControl } = wp.components;\n\n/**\n* Setting component for month\n*/\nclass ThumbnailSetting extends Component {\n\t/**\n\t* Handle current checkbox input change\n\t*\n\t* @param {Object} event input onChange event\n\t*/\n\thandleChange = ( event ) => {\n\t\tthis.props.setAttributes( { thumb: ( event.target.checked ) ? 'true' : 'false' } );\n\t}\n\n\thandleThumbWidthChange = ( event ) => {\n\t\tthis.props.setAttributes( {\n\t\t\tthumbwidth: isNaN( parseInt( event.target.value ) ) ? '' : parseInt( event.target.value )\n\t\t} );\n\t}\n\n\thandleThumbHeightChange = ( event ) => {\n\t\tthis.props.setAttributes( {\n\t\t\tthumbheight: isNaN( parseInt( event.target.value ) ) ? '' : parseInt( event.target.value )\n\t\t} );\n\t}\n\n\thandleThumbSizeChange = ( value ) => {\n\t\tthis.props.setAttributes( { thumbsize: value } );\n\t}\n\n\t/**\n\t * @return {ReactElement} Thumb Setting\n\t */\n\trender() {\n\t\tconst { thumb, thumbwidth, thumbheight, thumbsize } = this.props.attributes;\n\n\t\treturn (\n\t\t\t<div className={ 'ecs-settings-thumb' }>\n\t\t\t\t<div>\n\t\t\t\t\t<input\n\t\t\t\t\t\tid={ 'ecs-setting-thumb' }\n\t\t\t\t\t\ttype={ 'checkbox' }\n\t\t\t\t\t\tchecked={ thumb === 'true' }\n\t\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t\t/><label\n\t\t\t\t\t\tclassName={ 'components-base-control__label' }\n\t\t\t\t\t\thtmlFor={ 'ecs-setting-thumb' }\n\t\t\t\t\t>{ __( 'Show thumbnail image', 'the-events-calendar-shortcode' ) }</label>\n\t\t\t\t</div>\n\n\t\t\t\t{ thumb !== 'false' ? <Fragment>\n\t\t\t\t\t<div className={ 'ecs-settings-thumb-width-height' }>\n\t\t\t\t\t\t<div className={ 'ecs-setting-text-field' }>\n\t\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t\tclassName={ 'ecs-setting-label' }\n\t\t\t\t\t\t\t\thtmlFor={ 'ecs-setting-thumbwidth' }\n\t\t\t\t\t\t\t>{ __( 'Width', 'the-events-calendar-shortcode' ) }</label>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tid={ 'ecs-setting-thumbwidth' }\n\t\t\t\t\t\t\t\ttype={ 'text' }\n\t\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\t\tvalue={ thumbwidth }\n\t\t\t\t\t\t\t\tonChange={ this.handleThumbWidthChange }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className={ 'ecs-thumb-divider' }>\n\t\t\t\t\t\t\tx\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className={ 'ecs-setting-text-field' }>\n\t\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t\tclassName={ 'ecs-setting-label' }\n\t\t\t\t\t\t\t\thtmlFor={ 'ecs-setting-thumbheight' }\n\t\t\t\t\t\t\t>{ __( 'Height', 'the-events-calendar-shortcode' ) }</label>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\tid={ 'ecs-setting-thumbheight' }\n\t\t\t\t\t\t\t\ttype={ 'text' }\n\t\t\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\t\t\tvalue={ thumbheight }\n\t\t\t\t\t\t\t\tonChange={ this.handleThumbHeightChange }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className={ 'ecs-thumb-divider' }>\n\t\t\t\t\t\t\t<em>or</em>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className={ 'ecs-settings-thumb-size' }>\n <TextControl\n label={ __( 'Size', 'the-events-calendar-shortcode' ) }\n value={ thumbsize }\n onChange={ this.handleThumbSizeChange }\n />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className={ 'ecs-setting-help' }>\n\t\t\t\t\t\t{ __( 'This differs depending on the your theme, but typical defaults include \"medium\" and \"large\"', 'the-events-calendar-shortcode' ) }\n\t\t\t\t\t</div>\n\t\t\t\t</Fragment> : null }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default ThumbnailSetting;\n","const { Component, Fragment } = wp.element;\nconst { __ } = wp.i18n;\n\n/**\n* Setting component for past\n*/\nclass VenueSetting extends Component {\n\thandleChange = ( event ) => {\n\t\tthis.props.setAttributes( { venue: ( event.target.checked ) ? 'true' : 'false' } );\n\t}\n\n\t/**\n\t * @return {ReactElement} Venue Setting\n\t */\n\trender() {\n\t\tconst venue = ( this.props.attributes.venue === 'false' ) ? false : true;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<input\n\t\t\t\t\tid={ 'ecs-setting-venue' }\n\t\t\t\t\ttype={ 'checkbox' }\n\t\t\t\t\tchecked={ venue }\n\t\t\t\t\tonChange={ this.handleChange }\n\t\t\t\t/>\n\t\t\t\t<label\n\t\t\t\t\tclassName={ 'components-base-control__label' }\n\t\t\t\t\thtmlFor={ 'ecs-setting-venue' }\n\t\t\t\t>{ __( 'Show venue information', 'the-events-calendar-shortcode' ) }</label>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default VenueSetting;\n","import DesignSetting from '../components/designSetting';\nimport CategorySetting from '../components/categorySetting';\nimport LimitSetting from '../components/limitSetting';\nimport MonthSetting from '../components/monthSetting';\nimport ExcerptSetting from '../components/excerptSetting';\nimport PastSetting from '../components/pastSetting';\nimport ThumbnailSetting from '../components/thumbnailSetting';\nimport OrderBySetting from '../components/orderBySetting';\nimport OrderSetting from '../components/orderSetting';\nimport KeyValueSetting from '../components/keyValueSetting';\nimport VenueSetting from \"../components/venueSetting\";\n\nconst { __ } = wp.i18n;\n\nconst config = {\n\tdesign: {\n\t\tcomponent: DesignSetting,\n\t\tlabel: __( 'Design', 'the-events-calendar-shortcode' ),\n\t\tremovable: false,\n\t},\n\tlimit: {\n\t\tcomponent: LimitSetting,\n\t\tlabel: __( 'Number of Events', 'the-events-calendar-shortcode' ),\n\t\tremovable: false,\n\t},\n\tcat: {\n\t\tcomponent: CategorySetting,\n\t\tlabel: __( 'Category', 'the-events-calendar-shortcode' ),\n\t\tremovable: true,\n\t},\n\tmonth: {\n\t\tcomponent: MonthSetting,\n\t\tlabel: __( 'Month', 'the-events-calendar-shortcode' ),\n\t\tremovable: true,\n\t},\n\texcerpt: {\n\t\tcomponent: ExcerptSetting,\n\t\tlabel: __( 'Excerpt (Short Description)', 'the-events-calendar-shortcode' ),\n\t\tremovable: true,\n\t},\n thumb: {\n component: ThumbnailSetting,\n label: __( 'Thumbnail', 'the-events-calendar-shortcode' ),\n removable: true,\n },\n\tvenue: {\n\t\tcomponent: VenueSetting,\n\t\tlabel: __( 'Venue', 'the-events-calendar-shortcode' ),\n\t\tremovable: true,\n\t},\n\tpast: {\n\t\tcomponent: PastSetting,\n\t\tlabel: __( 'Past Events', 'the-events-calendar-shortcode' ),\n\t\tremovable: true,\n\t},\n\torderby: {\n\t\tcomponent: OrderBySetting,\n\t\tlabel: __( 'Order By', 'the-events-calendar-shortcode' ),\n\t\tremovable: true,\n\t},\n\torder: {\n\t\tcomponent: OrderSetting,\n\t\tlabel: __( 'Order', 'the-events-calendar-shortcode' ),\n\t\tremovable: true,\n\t},\n\tother: {\n\t\tcomponent: KeyValueSetting,\n\t\tlabel: __( 'Advanced/Other', 'the-events-calendar-shortcode' ),\n\t\tremovable: true,\n\t},\n};\n\nexport default config;\n","const logo = <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"525\" height=\"462\" viewBox=\"0 0 525 462\">\n\t<image x=\"18\" y=\"4\" width=\"488\" height=\"443\" xlinkHref=\"data:img/png;base64,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\" />\n</svg>;\n\nexport default logo;\n","import BlockEdit from './blockEdit';\nimport BlockPreview from './blockPreview';\n\nconst { Component } = wp.element;\n\nclass Block extends Component {\n\t/**\n\t* @return {ReactElement} The block preview or the edit form\n\t*/\n\trender() {\n\t\tconst { isSelected } = this.props;\n\t\tconst blockMode = isSelected ? <BlockEdit { ...this.props } /> : <BlockPreview { ...this.props } />;\n\n\t\treturn blockMode;\n\t}\n}\n\nexport default Block;\n","import SettingSelector from '../components/settingSelector';\nimport SettingSwitcher from '../components/settingSwitcher';\n\nimport uuid from 'uuid/v4';\nimport { withContentRect } from 'react-measure';\n\nconst { Component, Fragment } = wp.element;\nconst { IconButton } = wp.components;\nconst { __ } = wp.i18n;\n\nclass BlockEdit extends Component {\n\t/**\n\t * Handle addition of settings from settings list and attributes\n\t *\n\t * @param {string} setting The setting to add\n\t * @param {boolean} keyValue Whether to create unique id for keyValue type setting\n\t */\n\thandleAddSetting = ( setting, keyValue ) => {\n\t\tlet { settings } = this.props.attributes;\n\t\tsettings = JSON.parse( settings );\n\n\t\tif ( keyValue ) {\n\t\t\tsetting = this.handleAddKeyValue();\n\t\t}\n\n\t\tsettings.push( setting );\n\n\t\tthis.props.setAttributes( {\n\t\t\tsettings: JSON.stringify( settings ),\n\t\t} );\n\t}\n\n\t/**\n\t * Handle switching of settings from settings list and attributes\n\t *\n\t * @param {string} setting The setting to remove\n\t * @param {string} newSetting The setting to add\n\t * @param {string|null} keyValue Whether to create unique id for keyValue type setting\n\t */\n\thandleSwitchSetting = ( setting, newSetting, keyValue ) => {\n\t\tlet { settings } = this.props.attributes;\n\t\tsettings = JSON.parse( settings );\n\n\t\tif ( keyValue === 'add' ) {\n\t\t\tnewSetting = this.handleAddKeyValue();\n\t\t}\n\n\t\tif ( keyValue && keyValue.substring( 0, 2 ) === 'kv' ) {\n\t\t\tthis.handleRemoveKeyValue( keyValue );\n\t\t\tsetting = keyValue;\n\t\t} else {\n\t\t\tthis.deleteAttributes( setting );\n\t\t}\n\n\t\t// swap old setting with new setting\n\t\tconst newSettings = settings.map( ( value ) => value === setting ? newSetting : value );\n\n\t\tthis.props.setAttributes( { settings: JSON.stringify( newSettings ) } );\n\t}\n\n\t/**\n\t * Handle removal of settings from settings list and attributes\n\t *\n\t * @param {string} setting The setting to remove\n\t * @param {string|null} uid key value setting unique id or null\n\t */\n\thandleRemoveSetting = ( setting, uid ) => {\n\t\tlet { settings } = this.props.attributes;\n\t\tsettings = JSON.parse( settings );\n\n\t\tif ( uid ) {\n\t\t\tthis.handleRemoveKeyValue( uid );\n\t\t\tsetting = uid;\n\t\t} else {\n\t\t\tthis.deleteAttributes( setting );\n\t\t}\n\n\t\t// remove setting\n\t\tconst newSettings = settings.filter( ( name ) => name !== setting );\n\n\t\tthis.props.setAttributes( {\n\t\t\tsettings: JSON.stringify( newSettings ),\n\t\t} );\n\t}\n\t/**\n\t * Utility function to delete one or more attributes\n\t *\n\t * @param {string} setting The setting to process\n\t */\n\tdeleteAttributes = ( setting ) => {\n\t\tconst { settingsConfig, setAttributes } = this.props;\n\n\t\tlet delAttributes = [ setting ];\n\t\tif ( settingsConfig[ setting ].hasOwnProperty( 'delAttributes' ) ) {\n\t\t\tdelAttributes = settingsConfig[ setting ].delAttributes;\n\t\t}\n\n\t\tdelAttributes.forEach( ( attribute ) => {\n\t\t\tsetAttributes( { [ attribute ]: undefined } );\n\t\t} );\n\t}\n\n\t/**\n\t * Handle switching of settings from settings table and attributes\n\t *\n\t * @return {string} generated unique id for key value setting\n\t */\n\thandleAddKeyValue = () => {\n\t\tlet { keyValue } = this.props.attributes;\n\t\tkeyValue = typeof keyValue === 'undefined' ? {} : JSON.parse( keyValue );\n\n\t\tconst uid = `kv-${ uuid() }`;\n\t\tconst newKeyValue = { ...keyValue, [ uid ]: {\n\t\t\tkey: '',\n\t\t\tvalue: '',\n\t\t} };\n\n\t\tthis.props.setAttributes( { keyValue: JSON.stringify( newKeyValue ) } );\n\n\t\treturn uid;\n\t}\n\n\t/**\n\t * Handle removing setting from keyValue object\n\t *\n\t * @param {string} uid The unique id of the key value setting\n\t */\n\thandleRemoveKeyValue = ( uid ) => {\n\t\tlet { keyValue } = this.props.attributes;\n\t\tkeyValue = typeof keyValue === 'undefined' ? {} : JSON.parse( keyValue );\n\t\tdelete keyValue[ uid ];\n\n\t\tthis.props.setAttributes( { keyValue: JSON.stringify( keyValue ) } );\n\t}\n\n\t/**\n\t * @return {ReactElement} settingsRender The rendered settings\n\t */\n\trenderSettingsTable = () => {\n\t\tconst { settingsConfig, contentRect } = this.props;\n\t\tlet { settings } = this.props.attributes;\n\t\tsettings = JSON.parse( settings );\n\n\t\t// Loop through default or active settings and build the settings area\n\t\tconst settingsRender = settings.map( ( setting ) => {\n\t\t\t// Check if Key Value setting\n\t\t\tlet uid = null;\n\t\t\tif ( setting.substring( 0, 2 ) === 'kv' ) {\n\t\t\t\tuid = setting;\n\t\t\t\tsetting = 'other';\n\t\t\t}\n\n\t\t\t// bail if no config for this setting\n\t\t\tif ( typeof settingsConfig[ setting ] === 'undefined' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Get the setting selector unless default setting\n\t\t\tconst selectorComponent = settingsConfig[ setting ].removable ?\n\t\t\t\t<SettingSwitcher\n\t\t\t\t\tsetting={ setting }\n\t\t\t\t\tuid={ uid }\n\t\t\t\t\tactiveSettings={ settings }\n\t\t\t\t\tsettingsConfig={ settingsConfig }\n\t\t\t\t\thandleSwitch={ this.handleSwitchSetting }\n\t\t\t\t\t{ ...this.props }\n\t\t\t\t/> : <span>{ settingsConfig[ setting ].label }</span>;\n\n\t\t\t// Get the right component from our config\n\t\t\tconst SettingComponent = settingsConfig[ setting ].component;\n\n\t\t\t// Add remove button if removable\n\t\t\tconst removeCallback = () => this.handleRemoveSetting( setting, uid );\n\t\t\tconst removeComponent = settingsConfig[ setting ].removable ?\n\t\t\t\t<IconButton\n\t\t\t\t\ticon={ 'no-alt' }\n\t\t\t\t\tonClick={ removeCallback }\n\t\t\t\t/> : null;\n\n\t\t\tconst rowClassName = contentRect.bounds.width < 530 ? 'ecs-settings-row mobile' : 'ecs-settings-row';\n\n\t\t\treturn (\n\t\t\t\t<div className={ rowClassName } key={ uid ? uid : setting }>\n\t\t\t\t\t<div className={ 'ecs-selector-col' }>\n\t\t\t\t\t\t{ selectorComponent }\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className={ 'ecs-setting-col' }>\n\t\t\t\t\t\t<SettingComponent\n\t\t\t\t\t\t\t{ ...this.props }\n\t\t\t\t\t\t\tuid={ uid }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className={ 'ecs-remove-col' }>\n\t\t\t\t\t\t{ removeComponent }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t);\n\t\t} );\n\n\t\tconst addClassName = contentRect.bounds.width < 680 ? 'ecs-setting-add mobile' : 'ecs-setting-add';\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<div className={ 'ecs-settings-area' }>\n\t\t\t\t\t{ settingsRender }\n\t\t\t\t</div>\n\t\t\t\t<div className={ addClassName }>\n\t\t\t\t\t<SettingSelector\n\t\t\t\t\t\tactiveSettings={ settings }\n\t\t\t\t\t\tsettingsConfig={ settingsConfig }\n\t\t\t\t\t\thandleSelect={ this.handleAddSetting }\n\t\t\t\t\t\t{ ...this.props }\n\t\t\t\t\t/>\n\t\t\t\t\t<div className={ 'ecs-flex-fill' }></div>\n\t\t\t\t</div>\n\t\t\t</Fragment>\n\t\t);\n\t}\n\n\t/**\n\t * @return {ReactElement} The settings controls\n\t */\n\trender() {\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<div className={ 'ecs-block-header' }>\n\t\t\t\t\t<h3>{ __( 'The Events Calendar Block', 'the-events-calendar-shortcode' ) }</h3>\n\t\t\t\t</div>\n\n\t\t\t\t<div\n\t\t\t\t\tclassName={ 'ecs-block-edit' }\n\t\t\t\t\tref={ this.props.measureRef }>\n\t\t\t\t\t<h4>{ __( 'Configure your settings', 'the-events-calendar-shortcode' ) }</h4>\n\t\t\t\t\t{ this.renderSettingsTable() }\n\t\t\t\t</div>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default withContentRect( 'bounds' )( BlockEdit );\n","const { Component, Fragment } = wp.element;\nconst { ServerSideRender, withFilters } = wp.components;\n\nclass BlockPreview extends Component {\n\t/**\n\t* @return {ReactElement} The block preview\n\t*/\n\trender() {\n\t\tconst { attributes } = this.props;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<ServerSideRender\n\t\t\t\t\tblock={ 'events-calendar-shortcode/block' }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default withFilters( 'ecs.blockPreview' )( BlockPreview );\n","import settingsConfig from './config/settings';\nimport logo from './config/svg';\nimport Block from './containers/block';\n\nconst { __ } = wp.i18n;\nconst { applyFilters } = wp.hooks;\nconst {\tregisterBlockType } = wp.blocks;\n\nregisterBlockType( 'events-calendar-shortcode/block', {\n\ttitle: __( 'The Events Calendar Block', 'the-events-calendar-shortcode' ),\n\tdescription: __( 'Display your events from The Events Calendar', 'the-events-calendar-shortcode' ),\n\ticon: logo,\n\tcategory: 'common',\n\tsupports: {\n\t\thtml: false,\n\t},\n\n\tedit: ( props ) => {\n\t\treturn (\n\t\t\t<Block\n\t\t\t\tsettingsConfig={ applyFilters( 'ecs.settingsConfig', settingsConfig ) }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t);\n\t},\n\n\tsave: () => {\n\t\treturn null;\n\t},\n} );\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","/* eslint-disable */\n// murmurhash2 via https://github.com/garycourt/murmurhash-js/blob/master/murmurhash2_gc.js\nfunction murmurhash2_32_gc(str) {\n var l = str.length,\n h = l ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return (h >>> 0).toString(36);\n}\n\nexport default murmurhash2_32_gc;\n","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;\n","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e, m).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e, m).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n switch (d.constructor) {\n case Array:\n for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n }\n\n break;\n\n case Function:\n S[A++] = d;\n break;\n\n case Boolean:\n Y = !!d | 0;\n }\n\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","import memoize from '@emotion/memoize';\nimport unitless from '@emotion/unitless';\nimport hashString from '@emotion/hash';\nimport Stylis from '@emotion/stylis';\nimport stylisRuleSheet from 'stylis-rule-sheet';\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar processStyleName = memoize(function (styleName) {\n return styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\nvar processStyleValue = function processStyleValue(key, value) {\n if (value == null || typeof value === 'boolean') {\n return '';\n }\n\n if (unitless[key] !== 1 && key.charCodeAt(1) !== 45 && // custom properties\n !isNaN(value) && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|calc|counters?|url)\\(/;\n var contentValues = ['normal', 'none', 'counter', 'open-quote', 'close-quote', 'no-open-quote', 'no-close-quote', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n console.error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n return oldProcessStyleValue(key, value);\n };\n}\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'function':\n if (process.env.NODE_ENV !== 'production') {\n console.error('Passing functions to cx is deprecated and will be removed in the next major version of Emotion.\\n' + 'Please call the function before passing it to cx.');\n }\n\n toAdd = classnames([arg()]);\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\nvar isBrowser = typeof document !== 'undefined';\n\n/*\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n- 'polyfills' on server side\n\n// usage\n\nimport StyleSheet from 'glamor/lib/sheet'\nlet styleSheet = new StyleSheet()\n\nstyleSheet.inject()\n- 'injects' the stylesheet into the page (or into memory if on server)\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction makeStyleTag(opts) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', opts.key || '');\n\n if (opts.nonce !== undefined) {\n tag.setAttribute('nonce', opts.nonce);\n }\n\n tag.appendChild(document.createTextNode('')) // $FlowFixMe\n ;\n (opts.container !== undefined ? opts.container : document.head).appendChild(tag);\n return tag;\n}\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(options) {\n this.isSpeedy = process.env.NODE_ENV === 'production'; // the big drawback here is that the css won't be editable in devtools\n\n this.tags = [];\n this.ctr = 0;\n this.opts = options;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.inject = function inject() {\n if (this.injected) {\n throw new Error('already injected!');\n }\n\n this.tags[0] = makeStyleTag(this.opts);\n this.injected = true;\n };\n\n _proto.speedy = function speedy(bool) {\n if (this.ctr !== 0) {\n // cannot change speedy mode after inserting any rule to sheet. Either call speedy(${bool}) earlier in your app, or call flush() before speedy(${bool})\n throw new Error(\"cannot change speedy now\");\n }\n\n this.isSpeedy = !!bool;\n };\n\n _proto.insert = function insert(rule, sourceMap) {\n // this is the ultrafast version, works across browsers\n if (this.isSpeedy) {\n var tag = this.tags[this.tags.length - 1];\n var sheet = sheetForTag(tag);\n\n try {\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('illegal rule', rule); // eslint-disable-line no-console\n }\n }\n } else {\n var _tag = makeStyleTag(this.opts);\n\n this.tags.push(_tag);\n\n _tag.appendChild(document.createTextNode(rule + (sourceMap || '')));\n }\n\n this.ctr++;\n\n if (this.ctr % 65000 === 0) {\n this.tags.push(makeStyleTag(this.opts));\n }\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0; // todo - look for remnants in document.styleSheets\n\n this.injected = false;\n };\n\n return StyleSheet;\n}();\n\nfunction createEmotion(context, options) {\n if (context.__SECRET_EMOTION__ !== undefined) {\n return context.__SECRET_EMOTION__;\n }\n\n if (options === undefined) options = {};\n var key = options.key || 'css';\n\n if (process.env.NODE_ENV !== 'production') {\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var current;\n\n function insertRule(rule) {\n current += rule;\n\n if (isBrowser) {\n sheet.insert(rule, currentSourceMap);\n }\n }\n\n var insertionPlugin = stylisRuleSheet(insertRule);\n var stylisOptions;\n\n if (options.prefix !== undefined) {\n stylisOptions = {\n prefix: options.prefix\n };\n }\n\n var caches = {\n registered: {},\n inserted: {},\n nonce: options.nonce,\n key: key\n };\n var sheet = new StyleSheet(options);\n\n if (isBrowser) {\n // 🚀\n sheet.inject();\n }\n\n var stylis = new Stylis(stylisOptions);\n stylis.use(options.stylisPlugins)(insertionPlugin);\n var currentSourceMap = '';\n\n function handleInterpolation(interpolation, couldBeSelectorInterpolation) {\n if (interpolation == null) {\n return '';\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n return '';\n\n case 'function':\n if (interpolation.__emotion_styles !== undefined) {\n var selector = interpolation.toString();\n\n if (selector === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n return selector;\n }\n\n if (this === undefined && process.env.NODE_ENV !== 'production') {\n console.error('Interpolating functions in css calls is deprecated and will be removed in the next major version of Emotion.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n return handleInterpolation.call(this, this === undefined ? interpolation() : // $FlowFixMe\n interpolation(this.mergedProps, this.context), couldBeSelectorInterpolation);\n\n case 'object':\n return createStringFromObject.call(this, interpolation);\n\n default:\n var cached = caches.registered[interpolation];\n return couldBeSelectorInterpolation === false && cached !== undefined ? cached : interpolation;\n }\n }\n\n var objectToStringCache = new WeakMap();\n\n function createStringFromObject(obj) {\n if (objectToStringCache.has(obj)) {\n // $FlowFixMe\n return objectToStringCache.get(obj);\n }\n\n var string = '';\n\n if (Array.isArray(obj)) {\n obj.forEach(function (interpolation) {\n string += handleInterpolation.call(this, interpolation, false);\n }, this);\n } else {\n Object.keys(obj).forEach(function (key) {\n if (typeof obj[key] !== 'object') {\n if (caches.registered[obj[key]] !== undefined) {\n string += key + \"{\" + caches.registered[obj[key]] + \"}\";\n } else {\n string += processStyleName(key) + \":\" + processStyleValue(key, obj[key]) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with babel-plugin-emotion.');\n }\n\n if (Array.isArray(obj[key]) && typeof obj[key][0] === 'string' && caches.registered[obj[key][0]] === undefined) {\n obj[key].forEach(function (value) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value) + \";\";\n });\n } else {\n string += key + \"{\" + handleInterpolation.call(this, obj[key], false) + \"}\";\n }\n }\n }, this);\n }\n\n objectToStringCache.set(obj, string);\n return string;\n }\n\n var name;\n var stylesWithLabel;\n var labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*;/g;\n\n var createClassName = function createClassName(styles, identifierName) {\n return hashString(styles + identifierName) + identifierName;\n };\n\n if (process.env.NODE_ENV !== 'production') {\n var oldCreateClassName = createClassName;\n var sourceMappingUrlPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n\n createClassName = function createClassName(styles, identifierName) {\n return oldCreateClassName(styles.replace(sourceMappingUrlPattern, function (sourceMap) {\n currentSourceMap = sourceMap;\n return '';\n }), identifierName);\n };\n }\n\n var createStyles = function createStyles(strings) {\n var stringMode = true;\n var styles = '';\n var identifierName = '';\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation.call(this, strings, false);\n } else {\n styles += strings[0];\n }\n\n for (var _len = arguments.length, interpolations = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n interpolations[_key - 1] = arguments[_key];\n }\n\n interpolations.forEach(function (interpolation, i) {\n styles += handleInterpolation.call(this, interpolation, styles.charCodeAt(styles.length - 1) === 46 // .\n );\n\n if (stringMode === true && strings[i + 1] !== undefined) {\n styles += strings[i + 1];\n }\n }, this);\n stylesWithLabel = styles;\n styles = styles.replace(labelPattern, function (match, p1) {\n identifierName += \"-\" + p1;\n return '';\n });\n name = createClassName(styles, identifierName);\n return styles;\n };\n\n if (process.env.NODE_ENV !== 'production') {\n var oldStylis = stylis;\n\n stylis = function stylis(selector, styles) {\n oldStylis(selector, styles);\n currentSourceMap = '';\n };\n }\n\n function insert(scope, styles) {\n if (caches.inserted[name] === undefined) {\n current = '';\n stylis(scope, styles);\n caches.inserted[name] = current;\n }\n }\n\n var css = function css() {\n var styles = createStyles.apply(this, arguments);\n var selector = key + \"-\" + name;\n\n if (caches.registered[selector] === undefined) {\n caches.registered[selector] = stylesWithLabel;\n }\n\n insert(\".\" + selector, styles);\n return selector;\n };\n\n var keyframes = function keyframes() {\n var styles = createStyles.apply(this, arguments);\n var animation = \"animation-\" + name;\n insert('', \"@keyframes \" + animation + \"{\" + styles + \"}\");\n return animation;\n };\n\n var injectGlobal = function injectGlobal() {\n var styles = createStyles.apply(this, arguments);\n insert('', styles);\n };\n\n function getRegisteredStyles(registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (caches.registered[className] !== undefined) {\n registeredStyles.push(className);\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n }\n\n function merge(className, sourceMap) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles, sourceMap);\n }\n\n function cx() {\n for (var _len2 = arguments.length, classNames = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n classNames[_key2] = arguments[_key2];\n }\n\n return merge(classnames(classNames));\n }\n\n function hydrateSingleId(id) {\n caches.inserted[id] = true;\n }\n\n function hydrate(ids) {\n ids.forEach(hydrateSingleId);\n }\n\n function flush() {\n if (isBrowser) {\n sheet.flush();\n sheet.inject();\n }\n\n caches.inserted = {};\n caches.registered = {};\n }\n\n if (isBrowser) {\n var chunks = document.querySelectorAll(\"[data-emotion-\" + key + \"]\");\n Array.prototype.forEach.call(chunks, function (node) {\n // $FlowFixMe\n sheet.tags[0].parentNode.insertBefore(node, sheet.tags[0]); // $FlowFixMe\n\n node.getAttribute(\"data-emotion-\" + key).split(' ').forEach(hydrateSingleId);\n });\n }\n\n var emotion = {\n flush: flush,\n hydrate: hydrate,\n cx: cx,\n merge: merge,\n getRegisteredStyles: getRegisteredStyles,\n injectGlobal: injectGlobal,\n keyframes: keyframes,\n css: css,\n sheet: sheet,\n caches: caches\n };\n context.__SECRET_EMOTION__ = emotion;\n return emotion;\n}\n\nexport default createEmotion;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","import createEmotion from 'create-emotion';\n\nvar context = typeof global !== 'undefined' ? global : {};\n\nvar _createEmotion = createEmotion(context),\n flush = _createEmotion.flush,\n hydrate = _createEmotion.hydrate,\n cx = _createEmotion.cx,\n merge = _createEmotion.merge,\n getRegisteredStyles = _createEmotion.getRegisteredStyles,\n injectGlobal = _createEmotion.injectGlobal,\n keyframes = _createEmotion.keyframes,\n css = _createEmotion.css,\n sheet = _createEmotion.sheet,\n caches = _createEmotion.caches;\n\nexport { flush, hydrate, cx, merge, getRegisteredStyles, injectGlobal, keyframes, css, sheet, caches };\n","var simpleIsEqual = function simpleIsEqual(a, b) {\n return a === b;\n};\n\nfunction index (resultFn, isEqual) {\n if (isEqual === void 0) {\n isEqual = simpleIsEqual;\n }\n\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n\n var isNewArgEqualToLast = function isNewArgEqualToLast(newArg, index) {\n return isEqual(newArg, lastArgs[index]);\n };\n\n var result = function result() {\n for (var _len = arguments.length, newArgs = new Array(_len), _key = 0; _key < _len; _key++) {\n newArgs[_key] = arguments[_key];\n }\n\n if (calledOnce && lastThis === this && newArgs.length === lastArgs.length && newArgs.every(isNewArgEqualToLast)) {\n return lastResult;\n }\n\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n };\n\n return result;\n}\n\nexport default index;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n )\n\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar sizerStyle = {\n\tposition: 'absolute',\n\ttop: 0,\n\tleft: 0,\n\tvisibility: 'hidden',\n\theight: 0,\n\toverflow: 'scroll',\n\twhiteSpace: 'pre'\n};\n\nvar INPUT_PROPS_BLACKLIST = ['extraWidth', 'injectStyles', 'inputClassName', 'inputRef', 'inputStyle', 'minWidth', 'onAutosize', 'placeholderIsMinWidth'];\n\nvar cleanInputProps = function cleanInputProps(inputProps) {\n\tINPUT_PROPS_BLACKLIST.forEach(function (field) {\n\t\treturn delete inputProps[field];\n\t});\n\treturn inputProps;\n};\n\nvar copyStyles = function copyStyles(styles, node) {\n\tnode.style.fontSize = styles.fontSize;\n\tnode.style.fontFamily = styles.fontFamily;\n\tnode.style.fontWeight = styles.fontWeight;\n\tnode.style.fontStyle = styles.fontStyle;\n\tnode.style.letterSpacing = styles.letterSpacing;\n\tnode.style.textTransform = styles.textTransform;\n};\n\nvar isIE = typeof window !== 'undefined' && window.navigator ? /MSIE |Trident\\/|Edge\\//.test(window.navigator.userAgent) : false;\n\nvar generateId = function generateId() {\n\t// we only need an auto-generated ID for stylesheet injection, which is only\n\t// used for IE. so if the browser is not IE, this should return undefined.\n\treturn isIE ? '_' + Math.random().toString(36).substr(2, 12) : undefined;\n};\n\nvar AutosizeInput = function (_Component) {\n\t_inherits(AutosizeInput, _Component);\n\n\tfunction AutosizeInput(props) {\n\t\t_classCallCheck(this, AutosizeInput);\n\n\t\tvar _this = _possibleConstructorReturn(this, (AutosizeInput.__proto__ || Object.getPrototypeOf(AutosizeInput)).call(this, props));\n\n\t\t_this.inputRef = function (el) {\n\t\t\t_this.input = el;\n\t\t\tif (typeof _this.props.inputRef === 'function') {\n\t\t\t\t_this.props.inputRef(el);\n\t\t\t}\n\t\t};\n\n\t\t_this.placeHolderSizerRef = function (el) {\n\t\t\t_this.placeHolderSizer = el;\n\t\t};\n\n\t\t_this.sizerRef = function (el) {\n\t\t\t_this.sizer = el;\n\t\t};\n\n\t\t_this.state = {\n\t\t\tinputWidth: props.minWidth,\n\t\t\tinputId: props.id || generateId()\n\t\t};\n\t\treturn _this;\n\t}\n\n\t_createClass(AutosizeInput, [{\n\t\tkey: 'componentDidMount',\n\t\tvalue: function componentDidMount() {\n\t\t\tthis.mounted = true;\n\t\t\tthis.copyInputStyles();\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentWillReceiveProps',\n\t\tvalue: function componentWillReceiveProps(nextProps) {\n\t\t\tvar id = nextProps.id;\n\n\t\t\tif (id !== this.props.id) {\n\t\t\t\tthis.setState({ inputId: id || generateId() });\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'componentDidUpdate',\n\t\tvalue: function componentDidUpdate(prevProps, prevState) {\n\t\t\tif (prevState.inputWidth !== this.state.inputWidth) {\n\t\t\t\tif (typeof this.props.onAutosize === 'function') {\n\t\t\t\t\tthis.props.onAutosize(this.state.inputWidth);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateInputWidth();\n\t\t}\n\t}, {\n\t\tkey: 'componentWillUnmount',\n\t\tvalue: function componentWillUnmount() {\n\t\t\tthis.mounted = false;\n\t\t}\n\t}, {\n\t\tkey: 'copyInputStyles',\n\t\tvalue: function copyInputStyles() {\n\t\t\tif (!this.mounted || !window.getComputedStyle) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar inputStyles = this.input && window.getComputedStyle(this.input);\n\t\t\tif (!inputStyles) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcopyStyles(inputStyles, this.sizer);\n\t\t\tif (this.placeHolderSizer) {\n\t\t\t\tcopyStyles(inputStyles, this.placeHolderSizer);\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'updateInputWidth',\n\t\tvalue: function updateInputWidth() {\n\t\t\tif (!this.mounted || !this.sizer || typeof this.sizer.scrollWidth === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar newInputWidth = void 0;\n\t\t\tif (this.props.placeholder && (!this.props.value || this.props.value && this.props.placeholderIsMinWidth)) {\n\t\t\t\tnewInputWidth = Math.max(this.sizer.scrollWidth, this.placeHolderSizer.scrollWidth) + 2;\n\t\t\t} else {\n\t\t\t\tnewInputWidth = this.sizer.scrollWidth + 2;\n\t\t\t}\n\t\t\t// add extraWidth to the detected width. for number types, this defaults to 16 to allow for the stepper UI\n\t\t\tvar extraWidth = this.props.type === 'number' && this.props.extraWidth === undefined ? 16 : parseInt(this.props.extraWidth) || 0;\n\t\t\tnewInputWidth += extraWidth;\n\t\t\tif (newInputWidth < this.props.minWidth) {\n\t\t\t\tnewInputWidth = this.props.minWidth;\n\t\t\t}\n\t\t\tif (newInputWidth !== this.state.inputWidth) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tinputWidth: newInputWidth\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}, {\n\t\tkey: 'getInput',\n\t\tvalue: function getInput() {\n\t\t\treturn this.input;\n\t\t}\n\t}, {\n\t\tkey: 'focus',\n\t\tvalue: function focus() {\n\t\t\tthis.input.focus();\n\t\t}\n\t}, {\n\t\tkey: 'blur',\n\t\tvalue: function blur() {\n\t\t\tthis.input.blur();\n\t\t}\n\t}, {\n\t\tkey: 'select',\n\t\tvalue: function select() {\n\t\t\tthis.input.select();\n\t\t}\n\t}, {\n\t\tkey: 'renderStyles',\n\t\tvalue: function renderStyles() {\n\t\t\t// this method injects styles to hide IE's clear indicator, which messes\n\t\t\t// with input size detection. the stylesheet is only injected when the\n\t\t\t// browser is IE, and can also be disabled by the `injectStyles` prop.\n\t\t\tvar injectStyles = this.props.injectStyles;\n\n\t\t\treturn isIE && injectStyles ? _react2.default.createElement('style', { dangerouslySetInnerHTML: {\n\t\t\t\t\t__html: 'input#' + this.state.inputId + '::-ms-clear {display: none;}'\n\t\t\t\t} }) : null;\n\t\t}\n\t}, {\n\t\tkey: 'render',\n\t\tvalue: function render() {\n\t\t\tvar sizerValue = [this.props.defaultValue, this.props.value, ''].reduce(function (previousValue, currentValue) {\n\t\t\t\tif (previousValue !== null && previousValue !== undefined) {\n\t\t\t\t\treturn previousValue;\n\t\t\t\t}\n\t\t\t\treturn currentValue;\n\t\t\t});\n\n\t\t\tvar wrapperStyle = _extends({}, this.props.style);\n\t\t\tif (!wrapperStyle.display) wrapperStyle.display = 'inline-block';\n\n\t\t\tvar inputStyle = _extends({\n\t\t\t\tboxSizing: 'content-box',\n\t\t\t\twidth: this.state.inputWidth + 'px'\n\t\t\t}, this.props.inputStyle);\n\n\t\t\tvar inputProps = _objectWithoutProperties(this.props, []);\n\n\t\t\tcleanInputProps(inputProps);\n\t\t\tinputProps.className = this.props.inputClassName;\n\t\t\tinputProps.id = this.state.inputId;\n\t\t\tinputProps.style = inputStyle;\n\n\t\t\treturn _react2.default.createElement(\n\t\t\t\t'div',\n\t\t\t\t{ className: this.props.className, style: wrapperStyle },\n\t\t\t\tthis.renderStyles(),\n\t\t\t\t_react2.default.createElement('input', _extends({}, inputProps, { ref: this.inputRef })),\n\t\t\t\t_react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.sizerRef, style: sizerStyle },\n\t\t\t\t\tsizerValue\n\t\t\t\t),\n\t\t\t\tthis.props.placeholder ? _react2.default.createElement(\n\t\t\t\t\t'div',\n\t\t\t\t\t{ ref: this.placeHolderSizerRef, style: sizerStyle },\n\t\t\t\t\tthis.props.placeholder\n\t\t\t\t) : null\n\t\t\t);\n\t\t}\n\t}]);\n\n\treturn AutosizeInput;\n}(_react.Component);\n\nAutosizeInput.propTypes = {\n\tclassName: _propTypes2.default.string, // className for the outer element\n\tdefaultValue: _propTypes2.default.any, // default field value\n\textraWidth: _propTypes2.default.oneOfType([// additional width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tid: _propTypes2.default.string, // id to use for the input, can be set for consistent snapshots\n\tinjectStyles: _propTypes2.default.bool, // inject the custom stylesheet to hide clear UI, defaults to true\n\tinputClassName: _propTypes2.default.string, // className for the input element\n\tinputRef: _propTypes2.default.func, // ref callback for the input element\n\tinputStyle: _propTypes2.default.object, // css styles for the input element\n\tminWidth: _propTypes2.default.oneOfType([// minimum width for input element\n\t_propTypes2.default.number, _propTypes2.default.string]),\n\tonAutosize: _propTypes2.default.func, // onAutosize handler: function(newWidth) {}\n\tonChange: _propTypes2.default.func, // onChange handler: function(event) {}\n\tplaceholder: _propTypes2.default.string, // placeholder text\n\tplaceholderIsMinWidth: _propTypes2.default.bool, // don't collapse size to less than the placeholder\n\tstyle: _propTypes2.default.object, // css styles for the outer element\n\tvalue: _propTypes2.default.any // field value\n};\nAutosizeInput.defaultProps = {\n\tminWidth: 1,\n\tinjectStyles: true\n};\n\nexports.default = AutosizeInput;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport { Component, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport ResizeObserver from 'resize-observer-polyfill';\n\nvar types = ['client', 'offset', 'scroll', 'bounds', 'margin'];\nfunction getTypes(props) {\n var allowedTypes = [];\n types.forEach(function (type) {\n if (props[type]) {\n allowedTypes.push(type);\n }\n });\n return allowedTypes;\n}\n\nfunction getContentRect(node, types) {\n var calculations = {};\n\n if (types.indexOf('client') > -1) {\n calculations.client = {\n top: node.clientTop,\n left: node.clientLeft,\n width: node.clientWidth,\n height: node.clientHeight\n };\n }\n\n if (types.indexOf('offset') > -1) {\n calculations.offset = {\n top: node.offsetTop,\n left: node.offsetLeft,\n width: node.offsetWidth,\n height: node.offsetHeight\n };\n }\n\n if (types.indexOf('scroll') > -1) {\n calculations.scroll = {\n top: node.scrollTop,\n left: node.scrollLeft,\n width: node.scrollWidth,\n height: node.scrollHeight\n };\n }\n\n if (types.indexOf('bounds') > -1) {\n var rect = node.getBoundingClientRect();\n calculations.bounds = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.width,\n height: rect.height\n };\n }\n\n if (types.indexOf('margin') > -1) {\n var styles = getComputedStyle(node);\n calculations.margin = {\n top: styles ? parseInt(styles.marginTop) : 0,\n right: styles ? parseInt(styles.marginRight) : 0,\n bottom: styles ? parseInt(styles.marginBottom) : 0,\n left: styles ? parseInt(styles.marginLeft) : 0\n };\n }\n\n return calculations;\n}\n\nfunction withContentRect(types) {\n return function (WrappedComponent) {\n var _class, _temp;\n\n return _temp = _class =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(WithContentRect, _Component);\n\n function WithContentRect() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.state = {\n contentRect: {\n entry: {},\n client: {},\n offset: {},\n scroll: {},\n bounds: {},\n margin: {}\n }\n };\n _this._animationFrameID = null;\n _this._resizeObserver = new ResizeObserver(function () {\n _this.measure();\n });\n\n _this.measure = function (entries) {\n var contentRect = getContentRect(_this._node, types || getTypes(_this.props));\n\n if (entries) {\n contentRect.entry = entries[0].contentRect;\n }\n\n _this._animationFrameID = window.requestAnimationFrame(function () {\n if (_this._resizeObserver) {\n _this.setState({\n contentRect: contentRect\n });\n }\n });\n\n if (typeof _this.props.onResize === 'function') {\n _this.props.onResize(contentRect);\n }\n };\n\n _this._handleRef = function (node) {\n if (_this._resizeObserver) {\n if (node) {\n _this._resizeObserver.observe(node);\n } else {\n _this._resizeObserver.unobserve(_this._node);\n }\n }\n\n _this._node = node;\n\n if (typeof _this.props.innerRef === 'function') {\n _this.props.innerRef(node);\n }\n };\n\n return _this;\n }\n\n var _proto = WithContentRect.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._resizeObserver) {\n this._resizeObserver.disconnect();\n\n this._resizeObserver = null;\n }\n\n window.cancelAnimationFrame(this._animationFrameID);\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n innerRef = _this$props.innerRef,\n onResize = _this$props.onResize,\n props = _objectWithoutPropertiesLoose(_this$props, [\"innerRef\", \"onResize\"]);\n\n return createElement(WrappedComponent, _extends({}, props, {\n measureRef: this._handleRef,\n measure: this.measure,\n contentRect: this.state.contentRect\n }));\n };\n\n return WithContentRect;\n }(Component), _class.propTypes = {\n client: PropTypes.bool,\n offset: PropTypes.bool,\n scroll: PropTypes.bool,\n bounds: PropTypes.bool,\n margin: PropTypes.bool,\n innerRef: PropTypes.func,\n onResize: PropTypes.func\n }, _temp;\n };\n}\n\nvar Measure = withContentRect()(function (_ref) {\n var measure = _ref.measure,\n measureRef = _ref.measureRef,\n contentRect = _ref.contentRect,\n children = _ref.children;\n return children({\n measure: measure,\n measureRef: measureRef,\n contentRect: contentRect\n });\n});\nMeasure.displayName = 'Measure';\nMeasure.propTypes.children = PropTypes.func;\n\nexport default Measure;\nexport { withContentRect };\n","import raf from 'raf';\nimport React, { Component, PureComponent } from 'react';\nimport { css, injectGlobal } from 'emotion';\nimport { createPortal, findDOMNode } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport AutosizeInput from 'react-input-autosize';\nimport memoizeOne from 'memoize-one';\nimport { Transition, TransitionGroup } from 'react-transition-group';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n// ==============================\n// NO OP\n// ==============================\n\nvar noop = function noop() {};\n\n// ==============================\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n @returns 'react-select__comp react-select__comp--some'\n*/\nfunction applyPrefixToName(prefix, name) {\n if (!name) {\n return prefix;\n } else if (name[0] === '-') {\n return prefix + name;\n } else {\n return prefix + '__' + name;\n }\n}\n\nfunction classNames(prefix, cssKey, state, className) {\n var arr = [cssKey, className];\n if (state && prefix) {\n for (var key in state) {\n if (state.hasOwnProperty(key) && state[key]) {\n arr.push('' + applyPrefixToName(prefix, key));\n }\n }\n }\n\n return arr.filter(function (i) {\n return i;\n }).map(function (i) {\n return String(i).trim();\n }).join(' ');\n}\n// ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n if (Array.isArray(value)) return value.filter(Boolean);\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value !== null) return [value];\n return [];\n};\n\n// ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n if (onInputChange) {\n var newValue = onInputChange(inputValue, actionMeta);\n if (typeof newValue === 'string') return newValue;\n }\n return inputValue;\n}\n\n// ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n return [document.documentElement, document.body, window].indexOf(el) > -1;\n}\n\n// Normalized scrollTo & scrollTop\n// ------------------------------\n\nfunction getScrollTop(el) {\n if (isDocumentElement(el)) {\n return window.pageYOffset;\n }\n return el.scrollTop;\n}\n\nfunction scrollTo(el, top) {\n // with a scroll distance, we perform scroll on the element\n if (isDocumentElement(el)) {\n window.scrollTo(0, top);\n return;\n }\n\n el.scrollTop = top;\n}\n\n// Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === 'absolute';\n var overflowRx = /(auto|scroll)/;\n var docEl = document.documentElement; // suck it, flow...\n\n if (style.position === 'fixed') return docEl;\n\n for (var parent = element; parent = parent.parentElement;) {\n style = getComputedStyle(parent);\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent;\n }\n }\n\n return docEl;\n}\n\n// Animated Scroll To\n// ------------------------------\n\n/**\n @param t: time (elapsed)\n @param b: initial value\n @param c: amount of change\n @param d: duration\n*/\nfunction easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n}\n\nfunction animatedScrollTo(element, to) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n\n var start = getScrollTop(element);\n var change = to - start;\n var increment = 10;\n var currentTime = 0;\n\n function animateScroll() {\n currentTime += increment;\n var val = easeOutCubic(currentTime, start, change, duration);\n scrollTo(element, val);\n if (currentTime < duration) {\n raf(animateScroll);\n } else {\n callback(element);\n }\n }\n animateScroll();\n}\n\n// Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n var menuRect = menuEl.getBoundingClientRect();\n var focusedRect = focusedEl.getBoundingClientRect();\n var overScroll = focusedEl.offsetHeight / 3;\n\n if (focusedRect.bottom + overScroll > menuRect.bottom) {\n scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n } else if (focusedRect.top - overScroll < menuRect.top) {\n scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n }\n}\n\n// ==============================\n// Get bounding client object\n// ==============================\n\n// cannot get keys using array notation with DOMRect\nfunction getBoundingClientObj(element) {\n var rect = element.getBoundingClientRect();\n return {\n bottom: rect.bottom,\n height: rect.height,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n width: rect.width\n };\n}\n\n// ==============================\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n// ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n try {\n return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)\n );\n } catch (e) {\n return false;\n }\n}\n\n// ==============================\n// Menu\n// ==============================\n\n// Get Menu Placement\n// ------------------------------\n\nfunction getMenuPlacement(_ref) {\n var maxHeight = _ref.maxHeight,\n menuEl = _ref.menuEl,\n minHeight = _ref.minHeight,\n placement = _ref.placement,\n shouldScroll = _ref.shouldScroll,\n isFixedPosition = _ref.isFixedPosition,\n theme = _ref.theme;\n var spacing = theme.spacing;\n\n var scrollParent = getScrollParent(menuEl);\n var defaultState = { placement: 'bottom', maxHeight: maxHeight };\n\n // something went wrong, return default state\n if (!menuEl || !menuEl.offsetParent) return defaultState;\n\n // we can't trust `scrollParent.scrollHeight` --> it may increase when\n // the menu is rendered\n\n var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n scrollHeight = _scrollParent$getBoun.height;\n\n var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n menuBottom = _menuEl$getBoundingCl.bottom,\n menuHeight = _menuEl$getBoundingCl.height,\n menuTop = _menuEl$getBoundingCl.top;\n\n // $FlowFixMe function returns above if there's no offsetParent\n\n\n var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n containerTop = _menuEl$offsetParent$.top;\n\n var viewHeight = window.innerHeight;\n var scrollTop = getScrollTop(scrollParent);\n\n var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n var viewSpaceAbove = containerTop - marginTop;\n var viewSpaceBelow = viewHeight - menuTop;\n var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n\n var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n var scrollUp = scrollTop + menuTop - marginTop;\n var scrollDuration = 160;\n\n switch (placement) {\n case 'auto':\n case 'bottom':\n // 1: the menu will fit, do nothing\n if (viewSpaceBelow >= menuHeight) {\n return { placement: 'bottom', maxHeight: maxHeight };\n }\n\n // 2: the menu will fit, if scrolled\n if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n return { placement: 'bottom', maxHeight: maxHeight };\n }\n\n // 3: the menu will fit, if constrained\n if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n\n return {\n placement: 'bottom',\n maxHeight: constrainedHeight\n };\n }\n\n // 4. Forked beviour when there isn't enough space below\n\n // AUTO: flip the menu, render above\n if (placement === 'auto' || isFixedPosition) {\n // may need to be constrained after flipping\n var _constrainedHeight = maxHeight;\n\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight = isFixedPosition ? viewSpaceAbove - marginBottom - spacing.controlHeight : scrollSpaceAbove - marginBottom - spacing.controlHeight;\n }\n\n return { placement: 'top', maxHeight: _constrainedHeight };\n }\n\n // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n if (placement === 'bottom') {\n scrollTo(scrollParent, scrollDown);\n return { placement: 'bottom', maxHeight: maxHeight };\n }\n break;\n case 'top':\n // 1: the menu will fit, do nothing\n if (viewSpaceAbove >= menuHeight) {\n return { placement: 'top', maxHeight: maxHeight };\n }\n\n // 2: the menu will fit, if scrolled\n if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return { placement: 'top', maxHeight: maxHeight };\n }\n\n // 3: the menu will fit, if constrained\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n var _constrainedHeight2 = maxHeight;\n\n // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n }\n\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n\n return {\n placement: 'top',\n maxHeight: _constrainedHeight2\n };\n }\n\n // 4. not enough space, the browser WILL NOT increase scrollable area when\n // absolutely positioned element rendered above the viewport (only below).\n // Flip the menu, render below\n return { placement: 'bottom', maxHeight: maxHeight };\n default:\n throw new Error('Invalid placement provided \"' + placement + '\".');\n }\n\n // fulfil contract with flow: implicit return value of undefined\n return defaultState;\n}\n\n// Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n var placementToCSSProp = { bottom: 'top', top: 'bottom' };\n return placement ? placementToCSSProp[placement] : 'bottom';\n}\nvar coercePlacement = function coercePlacement(p) {\n return p === 'auto' ? 'bottom' : p;\n};\n\nvar menuCSS = function menuCSS(_ref2) {\n var _ref3;\n\n var placement = _ref2.placement,\n _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n spacing = _ref2$theme.spacing,\n colors = _ref2$theme.colors;\n return _ref3 = {}, defineProperty(_ref3, alignToControl(placement), '100%'), defineProperty(_ref3, 'backgroundColor', colors.neutral0), defineProperty(_ref3, 'borderRadius', borderRadius), defineProperty(_ref3, 'boxShadow', '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)'), defineProperty(_ref3, 'marginBottom', spacing.menuGutter), defineProperty(_ref3, 'marginTop', spacing.menuGutter), defineProperty(_ref3, 'position', 'absolute'), defineProperty(_ref3, 'width', '100%'), defineProperty(_ref3, 'zIndex', 1), _ref3;\n};\n\n// NOTE: internal only\nvar MenuPlacer = function (_Component) {\n inherits(MenuPlacer, _Component);\n\n function MenuPlacer() {\n var _ref4;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, MenuPlacer);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = possibleConstructorReturn(this, (_ref4 = MenuPlacer.__proto__ || Object.getPrototypeOf(MenuPlacer)).call.apply(_ref4, [this].concat(args))), _this), _this.state = {\n maxHeight: _this.props.maxMenuHeight,\n placement: null\n }, _this.getPlacement = function (ref) {\n var _this$props = _this.props,\n minMenuHeight = _this$props.minMenuHeight,\n maxMenuHeight = _this$props.maxMenuHeight,\n menuPlacement = _this$props.menuPlacement,\n menuPosition = _this$props.menuPosition,\n menuShouldScrollIntoView = _this$props.menuShouldScrollIntoView,\n theme = _this$props.theme;\n var getPortalPlacement = _this.context.getPortalPlacement;\n\n\n if (!ref) return;\n\n // DO NOT scroll if position is fixed\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: ref,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n theme: theme\n });\n\n if (getPortalPlacement) getPortalPlacement(state);\n\n _this.setState(state);\n }, _this.getUpdatedProps = function () {\n var menuPlacement = _this.props.menuPlacement;\n\n var placement = _this.state.placement || coercePlacement(menuPlacement);\n\n return _extends({}, _this.props, { placement: placement, maxHeight: _this.state.maxHeight });\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(MenuPlacer, [{\n key: 'render',\n value: function render() {\n var children = this.props.children;\n\n\n return children({\n ref: this.getPlacement,\n placerProps: this.getUpdatedProps()\n });\n }\n }]);\n return MenuPlacer;\n}(Component);\n\nMenuPlacer.contextTypes = {\n getPortalPlacement: PropTypes.func\n};\nvar Menu = function Menu(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n\n var cn = cx( /*#__PURE__*/css(getStyles('menu', props)), { menu: true }, className);\n\n return React.createElement(\n 'div',\n _extends({ className: cn }, innerProps, { ref: innerRef }),\n children\n );\n};\n\n// ==============================\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref5) {\n var maxHeight = _ref5.maxHeight,\n baseUnit = _ref5.theme.spacing.baseUnit;\n return {\n maxHeight: maxHeight,\n overflowY: 'auto',\n paddingBottom: baseUnit,\n paddingTop: baseUnit,\n position: 'relative', // required for offset[Height, Top] > keyboard scroll\n WebkitOverflowScrolling: 'touch'\n };\n};\nvar MenuList = function MenuList(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isMulti = props.isMulti,\n innerRef = props.innerRef;\n\n return React.createElement(\n 'div',\n {\n className: cx( /*#__PURE__*/css(getStyles('menuList', props)), {\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }, className),\n ref: innerRef\n },\n children\n );\n};\n\n// ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref6) {\n var _ref6$theme = _ref6.theme,\n baseUnit = _ref6$theme.spacing.baseUnit,\n colors = _ref6$theme.colors;\n return {\n color: colors.neutral40,\n padding: baseUnit * 2 + 'px ' + baseUnit * 3 + 'px',\n textAlign: 'center'\n };\n};\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\n\nvar NoOptionsMessage = function NoOptionsMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return React.createElement(\n 'div',\n _extends({\n className: cx( /*#__PURE__*/css(getStyles('noOptionsMessage', props)), {\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }, className)\n }, innerProps),\n children\n );\n};\nNoOptionsMessage.defaultProps = {\n children: 'No options'\n};\n\nvar LoadingMessage = function LoadingMessage(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return React.createElement(\n 'div',\n _extends({\n className: cx( /*#__PURE__*/css(getStyles('loadingMessage', props)), {\n 'menu-notice': true,\n 'menu-notice--loading': true\n }, className)\n }, innerProps),\n children\n );\n};\nLoadingMessage.defaultProps = {\n children: 'Loading...'\n};\n\n// ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref7) {\n var rect = _ref7.rect,\n offset = _ref7.offset,\n position = _ref7.position;\n return {\n left: rect.left,\n position: position,\n top: offset,\n width: rect.width,\n zIndex: 1\n };\n};\n\nvar MenuPortal = function (_Component2) {\n inherits(MenuPortal, _Component2);\n\n function MenuPortal() {\n var _ref8;\n\n var _temp2, _this2, _ret2;\n\n classCallCheck(this, MenuPortal);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = possibleConstructorReturn(this, (_ref8 = MenuPortal.__proto__ || Object.getPrototypeOf(MenuPortal)).call.apply(_ref8, [this].concat(args))), _this2), _this2.state = { placement: null }, _this2.getPortalPlacement = function (_ref9) {\n var placement = _ref9.placement;\n\n var initialPlacement = coercePlacement(_this2.props.menuPlacement);\n\n // avoid re-renders if the placement has not changed\n if (placement !== initialPlacement) {\n _this2.setState({ placement: placement });\n }\n }, _temp2), possibleConstructorReturn(_this2, _ret2);\n }\n\n createClass(MenuPortal, [{\n key: 'getChildContext',\n value: function getChildContext() {\n return {\n getPortalPlacement: this.getPortalPlacement\n };\n }\n\n // callback for occassions where the menu must \"flip\"\n\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n appendTo = _props.appendTo,\n children = _props.children,\n controlElement = _props.controlElement,\n menuPlacement = _props.menuPlacement,\n position = _props.menuPosition,\n getStyles = _props.getStyles;\n\n var isFixed = position === 'fixed';\n\n // bail early if required elements aren't present\n if (!appendTo && !isFixed || !controlElement) {\n return null;\n }\n\n var placement = this.state.placement || coercePlacement(menuPlacement);\n var rect = getBoundingClientObj(controlElement);\n var scrollDistance = isFixed ? 0 : window.pageYOffset;\n var offset = rect[placement] + scrollDistance;\n var state = { offset: offset, position: position, rect: rect };\n\n // same wrapper element whether fixed or portalled\n var menuWrapper = React.createElement(\n 'div',\n { className: /*#__PURE__*/ /*#__PURE__*/css(getStyles('menuPortal', state)) },\n children\n );\n\n return appendTo ? createPortal(menuWrapper, appendTo) : menuWrapper;\n }\n }]);\n return MenuPortal;\n}(Component);\nMenuPortal.childContextTypes = {\n getPortalPlacement: PropTypes.func\n};\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && (typeof a === 'undefined' ? 'undefined' : _typeof(a)) == 'object' && (typeof b === 'undefined' ? 'undefined' : _typeof(b)) == 'object') {\n var arrA = isArray(a),\n arrB = isArray(b),\n i,\n length,\n key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length) {\n return false;\n }\n\n for (i = length; i-- !== 0;) {\n if (!hasProp.call(b, keys[i])) return false;\n }\n // end fast-deep-equal\n\n // Custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nfunction exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (error.message && error.message.match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n}\n\nvar diacritics = [{ base: 'A', letters: /[\\u0041\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F]/g }, { base: 'AA', letters: /[\\uA732]/g }, { base: 'AE', letters: /[\\u00C6\\u01FC\\u01E2]/g }, { base: 'AO', letters: /[\\uA734]/g }, { base: 'AU', letters: /[\\uA736]/g }, { base: 'AV', letters: /[\\uA738\\uA73A]/g }, { base: 'AY', letters: /[\\uA73C]/g }, { base: 'B', letters: /[\\u0042\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181]/g }, { base: 'C', letters: /[\\u0043\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\u00C7\\u1E08\\u0187\\u023B\\uA73E]/g }, { base: 'D', letters: /[\\u0044\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779]/g }, { base: 'DZ', letters: /[\\u01F1\\u01C4]/g }, { base: 'Dz', letters: /[\\u01F2\\u01C5]/g }, { base: 'E', letters: /[\\u0045\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E]/g }, { base: 'F', letters: /[\\u0046\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B]/g }, { base: 'G', letters: /[\\u0047\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E]/g }, { base: 'H', letters: /[\\u0048\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D]/g }, { base: 'I', letters: /[\\u0049\\u24BE\\uFF29\\u00CC\\u00CD\\u00CE\\u0128\\u012A\\u012C\\u0130\\u00CF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197]/g }, { base: 'J', letters: /[\\u004A\\u24BF\\uFF2A\\u0134\\u0248]/g }, { base: 'K', letters: /[\\u004B\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2]/g }, { base: 'L', letters: /[\\u004C\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780]/g }, { base: 'LJ', letters: /[\\u01C7]/g }, { base: 'Lj', letters: /[\\u01C8]/g }, { base: 'M', letters: /[\\u004D\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C]/g }, { base: 'N', letters: /[\\u004E\\u24C3\\uFF2E\\u01F8\\u0143\\u00D1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4]/g }, { base: 'NJ', letters: /[\\u01CA]/g }, { base: 'Nj', letters: /[\\u01CB]/g }, { base: 'O', letters: /[\\u004F\\u24C4\\uFF2F\\u00D2\\u00D3\\u00D4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\u00D5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\u00D6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\u00D8\\u01FE\\u0186\\u019F\\uA74A\\uA74C]/g }, { base: 'OI', letters: /[\\u01A2]/g }, { base: 'OO', letters: /[\\uA74E]/g }, { base: 'OU', letters: /[\\u0222]/g }, { base: 'P', letters: /[\\u0050\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754]/g }, { base: 'Q', letters: /[\\u0051\\u24C6\\uFF31\\uA756\\uA758\\u024A]/g }, { base: 'R', letters: /[\\u0052\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782]/g }, { base: 'S', letters: /[\\u0053\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784]/g }, { base: 'T', letters: /[\\u0054\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786]/g }, { base: 'TZ', letters: /[\\uA728]/g }, { base: 'U', letters: /[\\u0055\\u24CA\\uFF35\\u00D9\\u00DA\\u00DB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\u00DC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244]/g }, { base: 'V', letters: /[\\u0056\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245]/g }, { base: 'VY', letters: /[\\uA760]/g }, { base: 'W', letters: /[\\u0057\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72]/g }, { base: 'X', letters: /[\\u0058\\u24CD\\uFF38\\u1E8A\\u1E8C]/g }, { base: 'Y', letters: /[\\u0059\\u24CE\\uFF39\\u1EF2\\u00DD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE]/g }, { base: 'Z', letters: /[\\u005A\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762]/g }, { base: 'a', letters: /[\\u0061\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250]/g }, { base: 'aa', letters: /[\\uA733]/g }, { base: 'ae', letters: /[\\u00E6\\u01FD\\u01E3]/g }, { base: 'ao', letters: /[\\uA735]/g }, { base: 'au', letters: /[\\uA737]/g }, { base: 'av', letters: /[\\uA739\\uA73B]/g }, { base: 'ay', letters: /[\\uA73D]/g }, { base: 'b', letters: /[\\u0062\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253]/g }, { base: 'c', letters: /[\\u0063\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184]/g }, { base: 'd', letters: /[\\u0064\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A]/g }, { base: 'dz', letters: /[\\u01F3\\u01C6]/g }, { base: 'e', letters: /[\\u0065\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD]/g }, { base: 'f', letters: /[\\u0066\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C]/g }, { base: 'g', letters: /[\\u0067\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F]/g }, { base: 'h', letters: /[\\u0068\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265]/g }, { base: 'hv', letters: /[\\u0195]/g }, { base: 'i', letters: /[\\u0069\\u24D8\\uFF49\\u00EC\\u00ED\\u00EE\\u0129\\u012B\\u012D\\u00EF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131]/g }, { base: 'j', letters: /[\\u006A\\u24D9\\uFF4A\\u0135\\u01F0\\u0249]/g }, { base: 'k', letters: /[\\u006B\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3]/g }, { base: 'l', letters: /[\\u006C\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747]/g }, { base: 'lj', letters: /[\\u01C9]/g }, { base: 'm', letters: /[\\u006D\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F]/g }, { base: 'n', letters: /[\\u006E\\u24DD\\uFF4E\\u01F9\\u0144\\u00F1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5]/g }, { base: 'nj', letters: /[\\u01CC]/g }, { base: 'o', letters: /[\\u006F\\u24DE\\uFF4F\\u00F2\\u00F3\\u00F4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\u00F5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\u00F6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\u00F8\\u01FF\\u0254\\uA74B\\uA74D\\u0275]/g }, { base: 'oi', letters: /[\\u01A3]/g }, { base: 'ou', letters: /[\\u0223]/g }, { base: 'oo', letters: /[\\uA74F]/g }, { base: 'p', letters: /[\\u0070\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755]/g }, { base: 'q', letters: /[\\u0071\\u24E0\\uFF51\\u024B\\uA757\\uA759]/g }, { base: 'r', letters: /[\\u0072\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783]/g }, { base: 's', letters: /[\\u0073\\u24E2\\uFF53\\u00DF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B]/g }, { base: 't', letters: /[\\u0074\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787]/g }, { base: 'tz', letters: /[\\uA729]/g }, { base: 'u', letters: /[\\u0075\\u24E4\\uFF55\\u00F9\\u00FA\\u00FB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\u00FC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289]/g }, { base: 'v', letters: /[\\u0076\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C]/g }, { base: 'vy', letters: /[\\uA761]/g }, { base: 'w', letters: /[\\u0077\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73]/g }, { base: 'x', letters: /[\\u0078\\u24E7\\uFF58\\u1E8B\\u1E8D]/g }, { base: 'y', letters: /[\\u0079\\u24E8\\uFF59\\u1EF3\\u00FD\\u0177\\u1EF9\\u0233\\u1E8F\\u00FF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF]/g }, { base: 'z', letters: /[\\u007A\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763]/g }];\n\nvar stripDiacritics = function stripDiacritics(str) {\n\tfor (var i = 0; i < diacritics.length; i++) {\n\t\tstr = str.replace(diacritics[i].letters, diacritics[i].base);\n\t}\n\treturn str;\n};\n\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\nvar defaultStringify = function defaultStringify(option) {\n return option.label + ' ' + option.value;\n};\n\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n var _ignoreCase$ignoreAcc = _extends({\n ignoreCase: true,\n ignoreAccents: true,\n stringify: defaultStringify,\n trim: true,\n matchFrom: 'any'\n }, config),\n ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n stringify = _ignoreCase$ignoreAcc.stringify,\n trim = _ignoreCase$ignoreAcc.trim,\n matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n\n var input = trim ? trimString(rawInput) : rawInput;\n var candidate = trim ? trimString(stringify(option)) : stringify(option);\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n if (ignoreAccents) {\n input = stripDiacritics(input);\n candidate = stripDiacritics(candidate);\n }\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\n// Assistive text to describe visual elements. Hidden for sighted users.\nvar A11yText = function A11yText(props) {\n return React.createElement('span', _extends({\n className: css({\n zIndex: 9999,\n border: 0,\n clip: 'rect(1px, 1px, 1px, 1px)',\n height: 1,\n width: 1,\n position: 'absolute',\n overflow: 'hidden',\n padding: 0,\n whiteSpace: 'nowrap',\n backgroundColor: 'red',\n color: 'blue'\n })\n }, props));\n};\n\nvar DummyInput = function (_Component) {\n inherits(DummyInput, _Component);\n\n function DummyInput() {\n classCallCheck(this, DummyInput);\n return possibleConstructorReturn(this, (DummyInput.__proto__ || Object.getPrototypeOf(DummyInput)).apply(this, arguments));\n }\n\n createClass(DummyInput, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n inProp = _props.in,\n out = _props.out,\n onExited = _props.onExited,\n appear = _props.appear,\n enter = _props.enter,\n exit = _props.exit,\n innerRef = _props.innerRef,\n props = objectWithoutProperties(_props, ['in', 'out', 'onExited', 'appear', 'enter', 'exit', 'innerRef']);\n\n return React.createElement('input', _extends({\n ref: innerRef\n }, props, {\n className: css({\n // get rid of any default styles\n background: 0,\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n\n // important! without `width` browsers won't allow focus\n width: 1,\n\n // remove cursor on desktop\n color: 'transparent',\n\n // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n left: -100,\n opacity: 0,\n position: 'relative',\n transform: 'scale(0)'\n })\n }));\n }\n }]);\n return DummyInput;\n}(Component);\n\nvar NodeResolver = function (_Component) {\n inherits(NodeResolver, _Component);\n\n function NodeResolver() {\n classCallCheck(this, NodeResolver);\n return possibleConstructorReturn(this, (NodeResolver.__proto__ || Object.getPrototypeOf(NodeResolver)).apply(this, arguments));\n }\n\n createClass(NodeResolver, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.props.innerRef(findDOMNode(this));\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.props.innerRef(null);\n }\n }, {\n key: 'render',\n value: function render() {\n return this.props.children;\n }\n }]);\n return NodeResolver;\n}(Component);\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\n\nvar LOCK_STYLES = {\n boxSizing: 'border-box', // account for possible declaration `width: 100%;` on body\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n};\n\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\n\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\n\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n}\n\n// `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar activeScrollLocks = 0;\n\nvar ScrollLock = function (_Component) {\n inherits(ScrollLock, _Component);\n\n function ScrollLock() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, ScrollLock);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = possibleConstructorReturn(this, (_ref = ScrollLock.__proto__ || Object.getPrototypeOf(ScrollLock)).call.apply(_ref, [this].concat(args))), _this), _this.originalStyles = {}, _this.listenerOptions = {\n capture: false,\n passive: false\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(ScrollLock, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n if (!canUseDOM) return;\n\n var _props = this.props,\n accountForScrollbars = _props.accountForScrollbars,\n touchScrollTarget = _props.touchScrollTarget;\n\n var target = document.body;\n var targetStyle = target && target.style;\n\n if (accountForScrollbars) {\n // store any styles already applied to the body\n STYLE_KEYS.forEach(function (key) {\n var val = targetStyle && targetStyle[key];\n _this2.originalStyles[key] = val;\n });\n }\n\n // apply the lock styles and padding if this is the first scroll lock\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(this.originalStyles.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n\n if (targetStyle) {\n targetStyle.paddingRight = adjustedPadding + 'px';\n }\n }\n\n // account for touch devices\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, this.listenerOptions);\n\n // Allow scroll on provided target\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n }\n\n // increment active scroll locks\n activeScrollLocks += 1;\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var _this3 = this;\n\n if (!canUseDOM) return;\n\n var _props2 = this.props,\n accountForScrollbars = _props2.accountForScrollbars,\n touchScrollTarget = _props2.touchScrollTarget;\n\n var target = document.body;\n var targetStyle = target && target.style;\n\n // safely decrement active scroll locks\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0);\n\n // reapply original body styles, if any\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = _this3.originalStyles[key];\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n }\n\n // remove touch listeners\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, this.listenerOptions);\n\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, this.listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, this.listenerOptions);\n }\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return null;\n }\n }]);\n return ScrollLock;\n}(Component);\n\nScrollLock.defaultProps = {\n accountForScrollbars: true\n};\n\n// NOTE:\n// We shouldn't need this after updating to React v16.3.0, which introduces:\n// - createRef() https://reactjs.org/docs/react-api.html#reactcreateref\n// - forwardRef() https://reactjs.org/docs/react-api.html#reactforwardref\n\nvar ScrollBlock = function (_PureComponent) {\n inherits(ScrollBlock, _PureComponent);\n\n function ScrollBlock() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, ScrollBlock);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = possibleConstructorReturn(this, (_ref = ScrollBlock.__proto__ || Object.getPrototypeOf(ScrollBlock)).call.apply(_ref, [this].concat(args))), _this), _this.state = { touchScrollTarget: null }, _this.getScrollTarget = function (ref) {\n if (ref === _this.state.touchScrollTarget) return;\n _this.setState({ touchScrollTarget: ref });\n }, _this.blurSelectInput = function () {\n if (document.activeElement) {\n document.activeElement.blur();\n }\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n // must be in state to trigger a re-render, only runs once per instance\n\n\n // this will close the menu when a user clicks outside\n\n\n createClass(ScrollBlock, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n isEnabled = _props.isEnabled;\n var touchScrollTarget = this.state.touchScrollTarget;\n\n // bail early if not enabled\n\n if (!isEnabled) return children;\n\n /*\n * Div\n * ------------------------------\n * blocks scrolling on non-body elements behind the menu\n * NodeResolver\n * ------------------------------\n * we need a reference to the scrollable element to \"unlock\" scroll on\n * mobile devices\n * ScrollLock\n * ------------------------------\n * actually does the scroll locking\n */\n return React.createElement(\n 'div',\n null,\n React.createElement('div', {\n onClick: this.blurSelectInput,\n className: css({ position: 'fixed', left: 0, bottom: 0, right: 0, top: 0 })\n }),\n React.createElement(\n NodeResolver,\n { innerRef: this.getScrollTarget },\n children\n ),\n touchScrollTarget ? React.createElement(ScrollLock, { touchScrollTarget: touchScrollTarget }) : null\n );\n }\n }]);\n return ScrollBlock;\n}(PureComponent);\n\nvar ScrollCaptor = function (_Component) {\n inherits(ScrollCaptor, _Component);\n\n function ScrollCaptor() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, ScrollCaptor);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = possibleConstructorReturn(this, (_ref = ScrollCaptor.__proto__ || Object.getPrototypeOf(ScrollCaptor)).call.apply(_ref, [this].concat(args))), _this), _this.isBottom = false, _this.isTop = false, _this.cancelScroll = function (event) {\n event.preventDefault();\n event.stopPropagation();\n }, _this.handleEventDelta = function (event, delta) {\n var _this$props = _this.props,\n onBottomArrive = _this$props.onBottomArrive,\n onBottomLeave = _this$props.onBottomLeave,\n onTopArrive = _this$props.onTopArrive,\n onTopLeave = _this$props.onTopLeave;\n var _this$scrollTarget = _this.scrollTarget,\n scrollTop = _this$scrollTarget.scrollTop,\n scrollHeight = _this$scrollTarget.scrollHeight,\n clientHeight = _this$scrollTarget.clientHeight;\n\n var target = _this.scrollTarget;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false;\n\n // reset bottom/top flags\n if (availableScroll > delta && _this.isBottom) {\n if (onBottomLeave) onBottomLeave(event);\n _this.isBottom = false;\n }\n if (isDeltaPositive && _this.isTop) {\n if (onTopLeave) onTopLeave(event);\n _this.isTop = false;\n }\n\n // bottom limit\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !_this.isBottom) {\n onBottomArrive(event);\n }\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n _this.isBottom = true;\n\n // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !_this.isTop) {\n onTopArrive(event);\n }\n target.scrollTop = 0;\n shouldCancelScroll = true;\n _this.isTop = true;\n }\n\n // cancel scroll\n if (shouldCancelScroll) {\n _this.cancelScroll(event);\n }\n }, _this.onWheel = function (event) {\n _this.handleEventDelta(event, event.deltaY);\n }, _this.onTouchStart = function (event) {\n // set touch start so we can calculate touchmove delta\n _this.touchStart = event.changedTouches[0].clientY;\n }, _this.onTouchMove = function (event) {\n var deltaY = _this.touchStart - event.changedTouches[0].clientY;\n _this.handleEventDelta(event, deltaY);\n }, _this.getScrollTarget = function (ref) {\n _this.scrollTarget = ref;\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(ScrollCaptor, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.startListening(this.scrollTarget);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.stopListening(this.scrollTarget);\n }\n }, {\n key: 'startListening',\n value: function startListening(el) {\n // bail early if no scroll available\n if (el.scrollHeight <= el.clientHeight) return;\n\n // all the if statements are to appease Flow 😢\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('wheel', this.onWheel, false);\n }\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchstart', this.onTouchStart, false);\n }\n if (typeof el.addEventListener === 'function') {\n el.addEventListener('touchmove', this.onTouchMove, false);\n }\n }\n }, {\n key: 'stopListening',\n value: function stopListening(el) {\n // bail early if no scroll available\n if (el.scrollHeight <= el.clientHeight) return;\n\n // all the if statements are to appease Flow 😢\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('wheel', this.onWheel, false);\n }\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchstart', this.onTouchStart, false);\n }\n if (typeof el.removeEventListener === 'function') {\n el.removeEventListener('touchmove', this.onTouchMove, false);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(\n NodeResolver,\n { innerRef: this.getScrollTarget },\n this.props.children\n );\n }\n }]);\n return ScrollCaptor;\n}(Component);\n\nvar ScrollCaptorSwitch = function (_Component2) {\n inherits(ScrollCaptorSwitch, _Component2);\n\n function ScrollCaptorSwitch() {\n classCallCheck(this, ScrollCaptorSwitch);\n return possibleConstructorReturn(this, (ScrollCaptorSwitch.__proto__ || Object.getPrototypeOf(ScrollCaptorSwitch)).apply(this, arguments));\n }\n\n createClass(ScrollCaptorSwitch, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n isEnabled = _props.isEnabled,\n props = objectWithoutProperties(_props, ['isEnabled']);\n\n return isEnabled ? React.createElement(ScrollCaptor, props) : this.props.children;\n }\n }]);\n return ScrollCaptorSwitch;\n}(Component);\n\nScrollCaptorSwitch.defaultProps = { isEnabled: true };\n\nvar instructionsAriaMessage = function instructionsAriaMessage(event) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var isSearchable = context.isSearchable,\n isMulti = context.isMulti,\n label = context.label;\n\n switch (event) {\n case 'menu':\n return 'Use Up and Down to choose options, press Backspace to select the currently focused option, press Escape to exit the menu, press Tab to select the option and exit the menu.';\n case 'input':\n return (label ? label : 'Select') + ' is focused ' + (isSearchable ? ',type to refine list' : '') + ', press Down to open the menu, ' + (isMulti ? ' press left to focus selected values' : '');\n case 'value':\n return 'Use left and right to toggle between focused values, press Enter to remove the currently focused value';\n }\n};\n\nvar valueEventAriaMessage = function valueEventAriaMessage(event, context) {\n var value = context.value;\n\n if (!value) return;\n switch (event) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return 'option ' + value + ', deselected.';\n case 'select-option':\n return 'option ' + value + ', selected.';\n }\n};\n\nvar valueFocusAriaMessage = function valueFocusAriaMessage(_ref) {\n var focusedValue = _ref.focusedValue,\n getOptionLabel = _ref.getOptionLabel,\n selectValue = _ref.selectValue;\n return 'value ' + getOptionLabel(focusedValue) + ' focused, ' + (selectValue.indexOf(focusedValue) + 1) + ' of ' + selectValue.length + '.';\n};\nvar optionFocusAriaMessage = function optionFocusAriaMessage(_ref2) {\n var focusedOption = _ref2.focusedOption,\n getOptionLabel = _ref2.getOptionLabel,\n options = _ref2.options;\n return 'option ' + getOptionLabel(focusedOption) + ' focused, ' + (options.indexOf(focusedOption) + 1) + ' of ' + options.length + '.';\n};\nvar resultsAriaMessage = function resultsAriaMessage(_ref3) {\n var inputValue = _ref3.inputValue,\n screenReaderMessage = _ref3.screenReaderMessage;\n return '' + screenReaderMessage + (inputValue ? ' for search term ' + inputValue : '') + '.';\n};\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\n\nvar getOptionLabel = function getOptionLabel(option) {\n return option.label;\n};\n\nvar getOptionValue = function getOptionValue(option) {\n return option.value;\n};\n\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\n// ==============================\n// Root Container\n// ==============================\n\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n direction: isRtl ? 'rtl' : null,\n pointerEvents: isDisabled ? 'none' : null, // cancel mouse events when disabled\n position: 'relative'\n };\n};\nvar SelectContainer = function SelectContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n isRtl = props.isRtl;\n\n return React.createElement(\n 'div',\n _extends({\n className: cx( /*#__PURE__*/css(getStyles('container', props)), {\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }, className)\n }, innerProps),\n children\n );\n};\n\n// ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n alignItems: 'center',\n display: 'flex',\n flex: 1,\n flexWrap: 'wrap',\n padding: spacing.baseUnit / 2 + 'px ' + spacing.baseUnit * 2 + 'px',\n WebkitOverflowScrolling: 'touch',\n position: 'relative',\n overflow: 'hidden'\n };\n};\nvar ValueContainer = function (_Component) {\n inherits(ValueContainer, _Component);\n\n function ValueContainer() {\n classCallCheck(this, ValueContainer);\n return possibleConstructorReturn(this, (ValueContainer.__proto__ || Object.getPrototypeOf(ValueContainer)).apply(this, arguments));\n }\n\n createClass(ValueContainer, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n cx = _props.cx,\n isMulti = _props.isMulti,\n getStyles = _props.getStyles,\n hasValue = _props.hasValue;\n\n\n return React.createElement(\n 'div',\n {\n className: cx( /*#__PURE__*/css(getStyles('valueContainer', this.props)), {\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }, className)\n },\n children\n );\n }\n }]);\n return ValueContainer;\n}(Component);\n\n// ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles;\n\n\n return React.createElement(\n 'div',\n {\n className: cx( /*#__PURE__*/css(getStyles('indicatorsContainer', props)), {\n 'indicators': true\n }, className)\n },\n children\n );\n};\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\n\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = objectWithoutProperties(_ref, ['size']);\n return React.createElement('svg', _extends({\n height: size,\n width: size,\n viewBox: '0 0 20 20',\n 'aria-hidden': 'true',\n focusable: 'false',\n className: /*#__PURE__*/ /*#__PURE__*/css({\n display: 'inline-block',\n fill: 'currentColor',\n lineHeight: 1,\n stroke: 'currentColor',\n strokeWidth: 0\n })\n }, props));\n};\n\nvar CrossIcon = function CrossIcon(props) {\n return React.createElement(\n Svg,\n _extends({ size: 20 }, props),\n React.createElement('path', { d: 'M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z' })\n );\n};\nvar DownChevron = function DownChevron(props) {\n return React.createElement(\n Svg,\n _extends({ size: 20 }, props),\n React.createElement('path', { d: 'M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z' })\n );\n};\n\n// ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref2) {\n var isFocused = _ref2.isFocused,\n _ref2$theme = _ref2.theme,\n baseUnit = _ref2$theme.spacing.baseUnit,\n colors = _ref2$theme.colors;\n return {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n\n ':hover': {\n color: isFocused ? colors.neutral80 : colors.neutral40\n }\n };\n};\n\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return React.createElement(\n 'div',\n _extends({}, innerProps, {\n className: cx( /*#__PURE__*/css(getStyles('dropdownIndicator', props)), {\n 'indicator': true,\n 'dropdown-indicator': true\n }, className)\n }),\n children\n );\n};\nDropdownIndicator.defaultProps = {\n children: React.createElement(DownChevron, null)\n};\n\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return React.createElement(\n 'div',\n _extends({}, innerProps, {\n className: cx( /*#__PURE__*/css(getStyles('clearIndicator', props)), {\n 'indicator': true,\n 'clear-indicator': true\n }, className)\n }),\n children\n );\n};\n\nClearIndicator.defaultProps = {\n children: React.createElement(CrossIcon, null)\n};\n\n// ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref3) {\n var isDisabled = _ref3.isDisabled,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return {\n alignSelf: 'stretch',\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2,\n width: 1\n };\n};\n\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return React.createElement('span', _extends({}, innerProps, {\n className: cx( /*#__PURE__*/css(getStyles('indicatorSeparator', props)), { 'indicator-separator': true }, className)\n }));\n};\n\n// ==============================\n// Loading\n// ==============================\n\nvar keyframesName = 'react-select-loading-indicator';\n\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref4) {\n var isFocused = _ref4.isFocused,\n size = _ref4.size,\n _ref4$theme = _ref4.theme,\n colors = _ref4$theme.colors,\n baseUnit = _ref4$theme.spacing.baseUnit;\n return {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n display: 'flex',\n padding: baseUnit * 2,\n transition: 'color 150ms',\n alignSelf: 'center',\n fontSize: size,\n lineHeight: 1,\n marginRight: size,\n textAlign: 'center',\n verticalAlign: 'middle'\n };\n};\n\nvar LoadingDot = function LoadingDot(_ref5) {\n var color = _ref5.color,\n delay = _ref5.delay,\n offset = _ref5.offset;\n return React.createElement('span', {\n className: css({\n animationDuration: '1s',\n animationDelay: delay + 'ms',\n animationIterationCount: 'infinite',\n animationName: keyframesName,\n animationTimingFunction: 'ease-in-out',\n backgroundColor: color,\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : null,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n })\n });\n};\n\n// eslint-disable-next-line no-unused-expressions\ninjectGlobal('@keyframes ', keyframesName, '{0%,80%,100%{opacity:0;}40%{opacity:1;}};');\n\nvar LoadingIndicator = function LoadingIndicator(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps,\n isFocused = props.isFocused,\n isRtl = props.isRtl,\n colors = props.theme.colors;\n\n var color = isFocused ? colors.neutral80 : colors.neutral20;\n\n return React.createElement(\n 'div',\n _extends({}, innerProps, {\n className: cx( /*#__PURE__*/css(getStyles('loadingIndicator', props)), {\n 'indicator': true,\n 'loading-indicator': true\n }, className)\n }),\n React.createElement(LoadingDot, { color: color, delay: 0, offset: isRtl }),\n React.createElement(LoadingDot, { color: color, delay: 160, offset: true }),\n React.createElement(LoadingDot, { color: color, delay: 320, offset: !isRtl })\n );\n};\nLoadingIndicator.defaultProps = { size: 4 };\n\nvar css$1 = function css$$1(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n _ref$theme = _ref.theme,\n colors = _ref$theme.colors,\n borderRadius = _ref$theme.borderRadius,\n spacing = _ref$theme.spacing;\n return {\n alignItems: 'center',\n backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n borderRadius: borderRadius,\n borderStyle: 'solid',\n borderWidth: 1,\n boxShadow: isFocused ? '0 0 0 1px ' + colors.primary : null,\n cursor: 'default',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minHeight: spacing.controlHeight,\n outline: '0 !important',\n position: 'relative',\n transition: 'all 100ms',\n\n '&:hover': {\n borderColor: isFocused ? colors.primary : colors.neutral30\n }\n };\n};\n\nvar Control = function Control(props) {\n var children = props.children,\n cx = props.cx,\n getStyles = props.getStyles,\n className = props.className,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n\n return React.createElement(\n 'div',\n _extends({\n ref: innerRef,\n className: cx( /*#__PURE__*/css(getStyles('control', props)), {\n 'control': true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused\n }, className)\n }, innerProps),\n children\n );\n};\n\nvar groupCSS = function groupCSS(_ref) {\n var spacing = _ref.theme.spacing;\n return {\n paddingBottom: spacing.baseUnit * 2,\n paddingTop: spacing.baseUnit * 2\n };\n};\n\nvar Group = function Group(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n Heading = props.Heading,\n headingProps = props.headingProps,\n label = props.label,\n theme = props.theme;\n\n return React.createElement(\n 'div',\n {\n className: cx( /*#__PURE__*/css(getStyles('group', props)), { 'group': true }, className)\n },\n React.createElement(\n Heading,\n _extends({}, headingProps, { theme: theme, getStyles: getStyles, cx: cx }),\n label\n ),\n React.createElement(\n 'div',\n null,\n children\n )\n );\n};\n\nvar groupHeadingCSS = function groupHeadingCSS(_ref2) {\n var spacing = _ref2.theme.spacing;\n return {\n color: '#999',\n cursor: 'default',\n display: 'block',\n fontSize: '75%',\n fontWeight: '500',\n marginBottom: '0.25em',\n paddingLeft: spacing.baseUnit * 3,\n paddingRight: spacing.baseUnit * 3,\n textTransform: 'uppercase'\n };\n};\n\nvar GroupHeading = function GroupHeading(props) {\n var className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n theme = props.theme,\n cleanProps = objectWithoutProperties(props, ['className', 'cx', 'getStyles', 'theme']);\n\n return React.createElement('div', _extends({\n className: cx( /*#__PURE__*/css(getStyles('groupHeading', _extends({ theme: theme }, cleanProps))), { 'group-heading': true }, className)\n }, cleanProps));\n};\n\nvar inputCSS = function inputCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n margin: spacing.baseUnit / 2,\n paddingBottom: spacing.baseUnit / 2,\n paddingTop: spacing.baseUnit / 2,\n visibility: isDisabled ? 'hidden' : 'visible',\n color: colors.neutral80\n };\n};\nvar inputStyle = function inputStyle(isHidden) {\n return {\n background: 0,\n border: 0,\n fontSize: 'inherit',\n opacity: isHidden ? 0 : 1,\n outline: 0,\n padding: 0,\n color: 'inherit'\n };\n};\n\nvar Input = function Input(_ref2) {\n var className = _ref2.className,\n cx = _ref2.cx,\n getStyles = _ref2.getStyles,\n innerRef = _ref2.innerRef,\n isHidden = _ref2.isHidden,\n isDisabled = _ref2.isDisabled,\n theme = _ref2.theme,\n props = objectWithoutProperties(_ref2, ['className', 'cx', 'getStyles', 'innerRef', 'isHidden', 'isDisabled', 'theme']);\n return React.createElement(\n 'div',\n {\n className: css(getStyles('input', _extends({ theme: theme }, props)))\n },\n React.createElement(AutosizeInput, _extends({\n className: cx(null, { 'input': true }, className),\n inputRef: innerRef,\n inputStyle: inputStyle(isHidden),\n disabled: isDisabled\n }, props))\n );\n};\n\nvar multiValueCSS = function multiValueCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n borderRadius = _ref$theme.borderRadius,\n colors = _ref$theme.colors;\n return {\n backgroundColor: colors.neutral10,\n borderRadius: borderRadius / 2,\n display: 'flex',\n margin: spacing.baseUnit / 2,\n minWidth: 0 // resolves flex/text-overflow bug\n };\n};\n\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2) {\n var _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n colors = _ref2$theme.colors,\n cropWithEllipsis = _ref2.cropWithEllipsis;\n return {\n borderRadius: borderRadius / 2,\n color: colors.neutral80,\n fontSize: '85%',\n overflow: 'hidden',\n padding: 3,\n paddingLeft: 6,\n textOverflow: cropWithEllipsis ? 'ellipsis' : null,\n whiteSpace: 'nowrap'\n };\n};\n\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3) {\n var _ref3$theme = _ref3.theme,\n spacing = _ref3$theme.spacing,\n borderRadius = _ref3$theme.borderRadius,\n colors = _ref3$theme.colors,\n isFocused = _ref3.isFocused;\n return {\n alignItems: 'center',\n borderRadius: borderRadius / 2,\n backgroundColor: isFocused && colors.dangerLight,\n display: 'flex',\n paddingLeft: spacing.baseUnit,\n paddingRight: spacing.baseUnit,\n ':hover': {\n backgroundColor: colors.dangerLight,\n color: colors.danger\n }\n };\n};\n\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return React.createElement(\n 'div',\n innerProps,\n children\n );\n};\n\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\n\nvar MultiValueRemove = function (_Component) {\n inherits(MultiValueRemove, _Component);\n\n function MultiValueRemove() {\n classCallCheck(this, MultiValueRemove);\n return possibleConstructorReturn(this, (MultiValueRemove.__proto__ || Object.getPrototypeOf(MultiValueRemove)).apply(this, arguments));\n }\n\n createClass(MultiValueRemove, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n innerProps = _props.innerProps;\n\n return React.createElement(\n 'div',\n innerProps,\n children\n );\n }\n }]);\n return MultiValueRemove;\n}(Component);\n\nMultiValueRemove.defaultProps = {\n children: React.createElement(CrossIcon, { size: 14 })\n};\n\nvar MultiValue = function (_Component2) {\n inherits(MultiValue, _Component2);\n\n function MultiValue() {\n classCallCheck(this, MultiValue);\n return possibleConstructorReturn(this, (MultiValue.__proto__ || Object.getPrototypeOf(MultiValue)).apply(this, arguments));\n }\n\n createClass(MultiValue, [{\n key: 'render',\n value: function render() {\n var _props2 = this.props,\n children = _props2.children,\n className = _props2.className,\n components = _props2.components,\n cx = _props2.cx,\n data = _props2.data,\n getStyles = _props2.getStyles,\n innerProps = _props2.innerProps,\n isDisabled = _props2.isDisabled,\n removeProps = _props2.removeProps,\n selectProps = _props2.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n\n\n var containerInnerProps = _extends({\n className: cx( /*#__PURE__*/css(getStyles('multiValue', this.props)), {\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n }, className)\n }, innerProps);\n\n var labelInnerProps = {\n className: cx( /*#__PURE__*/css(getStyles('multiValueLabel', this.props)), {\n 'multi-value__label': true\n }, className)\n };\n\n var removeInnerProps = _extends({\n className: cx( /*#__PURE__*/css(getStyles('multiValueRemove', this.props)), {\n 'multi-value__remove': true\n }, className)\n }, removeProps);\n\n return React.createElement(\n Container,\n {\n data: data,\n innerProps: containerInnerProps,\n selectProps: selectProps\n },\n React.createElement(\n Label,\n {\n data: data,\n innerProps: labelInnerProps,\n selectProps: selectProps\n },\n children\n ),\n React.createElement(Remove, {\n data: data,\n innerProps: removeInnerProps,\n selectProps: selectProps\n })\n );\n }\n }]);\n return MultiValue;\n}(Component);\n\nMultiValue.defaultProps = {\n cropWithEllipsis: true\n};\n\nvar optionCSS = function optionCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n isSelected = _ref.isSelected,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n cursor: 'default',\n display: 'block',\n fontSize: 'inherit',\n padding: spacing.baseUnit * 2 + 'px ' + spacing.baseUnit * 3 + 'px',\n width: '100%',\n userSelect: 'none',\n WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)',\n\n // provide some affordance on touch devices\n ':active': {\n backgroundColor: isSelected ? colors.primary : colors.primary50\n }\n };\n};\n\nvar Option = function Option(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n isSelected = props.isSelected,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n\n return React.createElement(\n 'div',\n _extends({\n ref: innerRef,\n className: cx( /*#__PURE__*/css(getStyles('option', props)), {\n 'option': true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }, className)\n }, innerProps),\n children\n );\n};\n\nvar placeholderCSS = function placeholderCSS(_ref) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n color: colors.neutral50,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n position: 'absolute',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar Placeholder = function Placeholder(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n innerProps = props.innerProps;\n\n return React.createElement(\n 'div',\n _extends({\n className: cx( /*#__PURE__*/css(getStyles('placeholder', props)), {\n 'placeholder': true\n }, className)\n }, innerProps),\n children\n );\n};\n\nvar css$2 = function css$$1(_ref) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return {\n color: isDisabled ? colors.neutral40 : colors.neutral80,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2,\n maxWidth: 'calc(100% - ' + spacing.baseUnit * 2 + 'px)',\n overflow: 'hidden',\n position: 'absolute',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n top: '50%',\n transform: 'translateY(-50%)'\n };\n};\n\nvar SingleValue = function SingleValue(props) {\n var children = props.children,\n className = props.className,\n cx = props.cx,\n getStyles = props.getStyles,\n isDisabled = props.isDisabled,\n innerProps = props.innerProps;\n\n return React.createElement(\n 'div',\n _extends({\n className: cx( /*#__PURE__*/css(getStyles('singleValue', props)), {\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }, className)\n }, innerProps),\n children\n );\n};\n\nvar components = {\n ClearIndicator: ClearIndicator,\n Control: Control,\n DropdownIndicator: DropdownIndicator,\n DownChevron: DownChevron,\n CrossIcon: CrossIcon,\n Group: Group,\n GroupHeading: GroupHeading,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: IndicatorSeparator,\n Input: Input,\n LoadingIndicator: LoadingIndicator,\n Menu: Menu,\n MenuList: MenuList,\n MenuPortal: MenuPortal,\n LoadingMessage: LoadingMessage,\n NoOptionsMessage: NoOptionsMessage,\n MultiValue: MultiValue,\n MultiValueContainer: MultiValueContainer,\n MultiValueLabel: MultiValueLabel,\n MultiValueRemove: MultiValueRemove,\n Option: Option,\n Placeholder: Placeholder,\n SelectContainer: SelectContainer,\n SingleValue: SingleValue,\n ValueContainer: ValueContainer\n};\n\nvar defaultComponents = function defaultComponents(props) {\n return _extends({}, components, props.components);\n};\n\nvar defaultStyles = {\n clearIndicator: clearIndicatorCSS,\n container: containerCSS,\n control: css$1,\n dropdownIndicator: dropdownIndicatorCSS,\n group: groupCSS,\n groupHeading: groupHeadingCSS,\n indicatorsContainer: indicatorsContainerCSS,\n indicatorSeparator: indicatorSeparatorCSS,\n input: inputCSS,\n loadingIndicator: loadingIndicatorCSS,\n loadingMessage: loadingMessageCSS,\n menu: menuCSS,\n menuList: menuListCSS,\n menuPortal: menuPortalCSS,\n multiValue: multiValueCSS,\n multiValueLabel: multiValueLabelCSS,\n multiValueRemove: multiValueRemoveCSS,\n noOptionsMessage: noOptionsMessageCSS,\n option: optionCSS,\n placeholder: placeholderCSS,\n singleValue: css$2,\n valueContainer: valueContainerCSS\n};\n\n// Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // initialize with source styles\n var styles = _extends({}, source);\n\n // massage in target styles\n Object.keys(target).forEach(function (key) {\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n\n return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n\n neutral0: 'hsl(0, 0%, 100%)',\n neutral5: 'hsl(0, 0%, 95%)',\n neutral10: 'hsl(0, 0%, 90%)',\n neutral20: 'hsl(0, 0%, 80%)',\n neutral30: 'hsl(0, 0%, 70%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 50%)',\n neutral60: 'hsl(0, 0%, 40%)',\n neutral70: 'hsl(0, 0%, 30%)',\n neutral80: 'hsl(0, 0%, 20%)',\n neutral90: 'hsl(0, 0%, 10%)'\n};\n\nvar borderRadius = 4;\nvar baseUnit = 4; /* Used to calculate consistent margin/padding on elements */\nvar controlHeight = 38; /* The minimum height of the control */\nvar menuGutter = baseUnit * 2; /* The amount of space between the control and menu */\n\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\n\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nvar defaultProps = {\n backspaceRemovesValue: true,\n blurInputOnSelect: isTouchCapable(),\n captureMenuScroll: !isTouchCapable(),\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: createFilter(),\n formatGroupLabel: formatGroupLabel,\n getOptionLabel: getOptionLabel,\n getOptionValue: getOptionValue,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: isOptionDisabled,\n loadingMessage: function loadingMessage() {\n return 'Loading...';\n },\n maxMenuHeight: 300,\n minMenuHeight: 140,\n menuIsOpen: false,\n menuPlacement: 'bottom',\n menuPosition: 'absolute',\n menuShouldBlockScroll: false,\n menuShouldScrollIntoView: !isMobileDevice(),\n noOptionsMessage: function noOptionsMessage() {\n return 'No options';\n },\n openMenuOnFocus: false,\n openMenuOnClick: true,\n options: [],\n pageSize: 5,\n placeholder: 'Select...',\n screenReaderStatus: function screenReaderStatus(_ref) {\n var count = _ref.count;\n return count + ' result' + (count !== 1 ? 's' : '') + ' available';\n },\n styles: {},\n tabIndex: '0',\n tabSelectsValue: true\n};\n\nvar instanceId = 1;\n\nvar Select = function (_Component) {\n inherits(Select, _Component);\n\n // Lifecycle\n // ------------------------------\n\n // Refs\n // ------------------------------\n\n // Misc. Instance Properties\n // ------------------------------\n\n function Select(props) {\n classCallCheck(this, Select);\n\n var _this = possibleConstructorReturn(this, (Select.__proto__ || Object.getPrototypeOf(Select)).call(this, props));\n\n _initialiseProps.call(_this);\n\n var value = props.value;\n\n _this.cacheComponents = memoizeOne(_this.cacheComponents, exportedEqual).bind(_this);\n _this.cacheComponents(props.components);\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n\n var selectValue = cleanValue(value);\n var menuOptions = _this.buildMenuOptions(props, selectValue);\n\n _this.state.menuOptions = menuOptions;\n _this.state.selectValue = selectValue;\n return _this;\n } // TODO\n\n\n createClass(Select, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.startListeningComposition();\n this.startListeningToTouch();\n\n if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n // Listen to all scroll events, and filter them out inside of 'onScroll'\n document.addEventListener('scroll', this.onScroll, true);\n }\n\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var _props = this.props,\n options = _props.options,\n value = _props.value,\n inputValue = _props.inputValue;\n // re-cache custom components\n\n this.cacheComponents(nextProps.components);\n // rebuild the menu options\n if (nextProps.value !== value || nextProps.options !== options || nextProps.inputValue !== inputValue) {\n var _selectValue = cleanValue(nextProps.value);\n var _menuOptions = this.buildMenuOptions(nextProps, _selectValue);\n var _focusedValue = this.getNextFocusedValue(_selectValue);\n var _focusedOption = this.getNextFocusedOption(_menuOptions.focusable);\n this.setState({ menuOptions: _menuOptions, selectValue: _selectValue, focusedOption: _focusedOption, focusedValue: _focusedValue });\n }\n // some updates should toggle the state of the input visibility\n if (this.inputIsHiddenAfterUpdate != null) {\n this.setState({\n inputIsHidden: this.inputIsHiddenAfterUpdate\n });\n delete this.inputIsHiddenAfterUpdate;\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var _props2 = this.props,\n isDisabled = _props2.isDisabled,\n menuIsOpen = _props2.menuIsOpen;\n var isFocused = this.state.isFocused;\n\n\n if (\n // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled ||\n // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n }\n\n // scroll the focused option into view if necessary\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n scrollIntoView(this.menuListRef, this.focusedOptionRef);\n }\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n }\n }, {\n key: 'onMenuOpen',\n\n // ==============================\n // Consumer Handlers\n // ==============================\n\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: 'onMenuClose',\n value: function onMenuClose() {\n var _props3 = this.props,\n isSearchable = _props3.isSearchable,\n isMulti = _props3.isMulti;\n\n this.announceAriaLiveContext({\n event: 'input',\n context: { isSearchable: isSearchable, isMulti: isMulti }\n });\n this.onInputChange('', { action: 'menu-close' });\n this.props.onMenuClose();\n }\n }, {\n key: 'onInputChange',\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n }\n\n // ==============================\n // Methods\n // ==============================\n\n }, {\n key: 'focusInput',\n value: function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n }\n }, {\n key: 'blurInput',\n value: function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n }\n\n // aliased for consumers\n\n }, {\n key: 'openMenu',\n value: function openMenu(focusOption) {\n var _state = this.state,\n menuOptions = _state.menuOptions,\n selectValue = _state.selectValue;\n var isMulti = this.props.isMulti;\n\n var openAtIndex = focusOption === 'first' ? 0 : menuOptions.focusable.length - 1;\n\n if (!isMulti) {\n var selectedIndex = menuOptions.focusable.indexOf(selectValue[0]);\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n }\n\n this.scrollToFocusedOptionOnUpdate = true;\n this.inputIsHiddenAfterUpdate = false;\n\n this.onMenuOpen();\n this.setState({\n focusedValue: null,\n focusedOption: menuOptions.focusable[openAtIndex]\n });\n\n this.announceAriaLiveContext({ event: 'menu' });\n }\n }, {\n key: 'focusValue',\n value: function focusValue(direction) {\n var _props4 = this.props,\n isMulti = _props4.isMulti,\n isSearchable = _props4.isSearchable;\n var _state2 = this.state,\n selectValue = _state2.selectValue,\n focusedValue = _state2.focusedValue;\n\n // Only multiselects support value focusing\n\n if (!isMulti) return;\n\n this.setState({\n focusedOption: null\n });\n\n var focusedIndex = selectValue.indexOf(focusedValue);\n if (!focusedValue) {\n focusedIndex = -1;\n this.announceAriaLiveContext({ event: 'value' });\n }\n\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n break;\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n break;\n }\n\n if (nextFocus === -1) {\n this.announceAriaLiveContext({\n event: 'input',\n context: { isSearchable: isSearchable, isMulti: isMulti }\n });\n }\n\n this.setState({\n inputIsHidden: nextFocus === -1 ? false : true,\n focusedValue: selectValue[nextFocus]\n });\n }\n }, {\n key: 'focusOption',\n value: function focusOption() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n var pageSize = this.props.pageSize;\n var _state3 = this.state,\n focusedOption = _state3.focusedOption,\n menuOptions = _state3.menuOptions;\n\n var options = menuOptions.focusable;\n\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n var focusedIndex = options.indexOf(focusedOption);\n if (!focusedOption) {\n focusedIndex = -1;\n this.announceAriaLiveContext({ event: 'menu' });\n }\n\n if (direction === 'up') {\n nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n } else if (direction === 'down') {\n nextFocus = (focusedIndex + 1) % options.length;\n } else if (direction === 'pageup') {\n nextFocus = focusedIndex - pageSize;\n if (nextFocus < 0) nextFocus = 0;\n } else if (direction === 'pagedown') {\n nextFocus = focusedIndex + pageSize;\n if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n } else if (direction === 'last') {\n nextFocus = options.length - 1;\n }\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n }\n }, {\n key: 'getTheme',\n\n\n // ==============================\n // Getters\n // ==============================\n\n value: function getTheme() {\n // Use the default theme if there are no customizations.\n if (!this.props.theme) {\n return defaultTheme;\n }\n // If the theme prop is a function, assume the function\n // knows how to merge the passed-in default theme with\n // its own modifications.\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n }\n // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n return _extends({}, defaultTheme, this.props.theme);\n }\n }, {\n key: 'getCommonProps',\n value: function getCommonProps() {\n var clearValue = this.clearValue,\n getStyles = this.getStyles,\n setValue = this.setValue,\n selectOption = this.selectOption,\n props = this.props;\n var classNamePrefix = props.classNamePrefix,\n isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var selectValue = this.state.selectValue;\n\n var hasValue = this.hasValue();\n var getValue = function getValue() {\n return selectValue;\n };\n var cxPrefix = classNamePrefix;\n\n var cx = classNames.bind(null, cxPrefix);\n return {\n cx: cx,\n clearValue: clearValue,\n getStyles: getStyles,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n setValue: setValue,\n selectProps: props,\n theme: this.getTheme()\n };\n }\n }, {\n key: 'getNextFocusedValue',\n value: function getNextFocusedValue(nextSelectValue) {\n if (this.clearFocusValueOnUpdate) {\n this.clearFocusValueOnUpdate = false;\n return null;\n }\n var _state4 = this.state,\n focusedValue = _state4.focusedValue,\n lastSelectValue = _state4.selectValue;\n\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n return null;\n }\n }, {\n key: 'getNextFocusedOption',\n value: function getNextFocusedOption(options) {\n var lastFocusedOption = this.state.focusedOption;\n\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n }\n\n // ==============================\n // Helpers\n // ==============================\n\n }, {\n key: 'hasValue',\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n\n return selectValue.length > 0;\n }\n }, {\n key: 'hasOptions',\n value: function hasOptions() {\n return !!this.state.menuOptions.render.length;\n }\n }, {\n key: 'countOptions',\n value: function countOptions() {\n return this.state.menuOptions.focusable.length;\n }\n }, {\n key: 'isClearable',\n value: function isClearable() {\n var _props5 = this.props,\n isClearable = _props5.isClearable,\n isMulti = _props5.isMulti;\n\n // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n\n if (isClearable === undefined) return isMulti;\n\n return isClearable;\n }\n }, {\n key: 'isOptionDisabled',\n value: function isOptionDisabled$$1(option, selectValue) {\n return typeof this.props.isOptionDisabled === 'function' ? this.props.isOptionDisabled(option, selectValue) : false;\n }\n }, {\n key: 'isOptionSelected',\n value: function isOptionSelected(option, selectValue) {\n var _this2 = this;\n\n if (selectValue.indexOf(option) > -1) return true;\n if (typeof this.props.isOptionSelected === 'function') {\n return this.props.isOptionSelected(option, selectValue);\n }\n var candidate = this.getOptionValue(option);\n return selectValue.some(function (i) {\n return _this2.getOptionValue(i) === candidate;\n });\n }\n }, {\n key: 'filterOption',\n value: function filterOption(option, inputValue) {\n return this.props.filterOption ? this.props.filterOption(option, inputValue) : true;\n }\n }, {\n key: 'formatOptionLabel',\n value: function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var _inputValue = this.props.inputValue;\n var _selectValue2 = this.state.selectValue;\n\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: _inputValue,\n selectValue: _selectValue2\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: 'formatGroupLabel',\n value: function formatGroupLabel$$1(data) {\n return this.props.formatGroupLabel(data);\n }\n\n // ==============================\n // Mouse Handlers\n // ==============================\n\n }, {\n key: 'startListeningComposition',\n\n\n // ==============================\n // Composition Handlers\n // ==============================\n\n value: function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n }\n }, {\n key: 'stopListeningComposition',\n value: function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n }\n }, {\n key: 'startListeningToTouch',\n\n\n // ==============================\n // Touch Handlers\n // ==============================\n\n value: function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n }\n }, {\n key: 'stopListeningToTouch',\n value: function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n }\n\n // ==============================\n // Focus Handlers\n // ==============================\n\n // ==============================\n // Keyboard Handlers\n // ==============================\n\n }, {\n key: 'buildMenuOptions',\n\n\n // ==============================\n // Menu Options\n // ==============================\n\n value: function buildMenuOptions(props, selectValue) {\n var _this3 = this;\n\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === undefined ? '' : _props$inputValue,\n options = props.options;\n\n\n var toOption = function toOption(option, id) {\n var isDisabled = _this3.isOptionDisabled(option, selectValue);\n var isSelected = _this3.isOptionSelected(option, selectValue);\n var label = _this3.getOptionLabel(option);\n var value = _this3.getOptionValue(option);\n\n if (_this3.shouldHideSelectedOptions() && isSelected || !_this3.filterOption({ label: label, value: value, data: option }, inputValue)) {\n return;\n }\n\n var onHover = isDisabled ? undefined : function () {\n return _this3.onOptionHover(option);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this3.selectOption(option);\n };\n var optionId = _this3.getElementId('option') + '-' + id;\n\n return {\n innerProps: {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n role: 'option',\n tabIndex: -1\n },\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: 'option',\n value: value\n };\n };\n\n return options.reduce(function (acc, item, itemIndex) {\n if (item.options) {\n // TODO needs a tidier implementation\n if (!_this3.hasGroups) _this3.hasGroups = true;\n\n var items = item.options;\n\n var children = items.map(function (child, i) {\n var option = toOption(child, itemIndex + '-' + i);\n if (option && !option.isDisabled) acc.focusable.push(child);\n return option;\n }).filter(Boolean);\n if (children.length) {\n var groupId = _this3.getElementId('group') + '-' + itemIndex;\n acc.render.push({\n type: 'group',\n key: groupId,\n data: item,\n options: children\n });\n }\n } else {\n var option = toOption(item, '' + itemIndex);\n if (option) {\n acc.render.push(option);\n if (!option.isDisabled) acc.focusable.push(item);\n }\n }\n return acc;\n }, { render: [], focusable: [] });\n }\n\n // ==============================\n // Renderers\n // ==============================\n\n }, {\n key: 'constructAriaLiveMessage',\n value: function constructAriaLiveMessage() {\n var _state5 = this.state,\n ariaLiveContext = _state5.ariaLiveContext,\n selectValue = _state5.selectValue,\n focusedValue = _state5.focusedValue,\n focusedOption = _state5.focusedOption;\n var _props6 = this.props,\n options = _props6.options,\n menuIsOpen = _props6.menuIsOpen,\n inputValue = _props6.inputValue,\n screenReaderStatus = _props6.screenReaderStatus;\n\n // An aria live message representing the currently focused value in the select.\n\n var focusedValueMsg = focusedValue ? valueFocusAriaMessage({\n focusedValue: focusedValue,\n getOptionLabel: this.getOptionLabel,\n selectValue: selectValue\n }) : '';\n // An aria live message representing the currently focused option in the select.\n var focusedOptionMsg = focusedOption && menuIsOpen ? optionFocusAriaMessage({\n focusedOption: focusedOption,\n getOptionLabel: this.getOptionLabel,\n options: options\n }) : '';\n // An aria live message representing the set of focusable results and current searchterm/inputvalue.\n var resultsMsg = resultsAriaMessage({\n inputValue: inputValue,\n screenReaderMessage: screenReaderStatus({ count: this.countOptions() })\n });\n\n return focusedValueMsg + ' ' + focusedOptionMsg + ' ' + resultsMsg + ' ' + ariaLiveContext;\n }\n }, {\n key: 'renderInput',\n value: function renderInput() {\n var _props7 = this.props,\n isDisabled = _props7.isDisabled,\n isSearchable = _props7.isSearchable,\n inputId = _props7.inputId,\n inputValue = _props7.inputValue,\n tabIndex = _props7.tabIndex;\n var Input = this.components.Input;\n var inputIsHidden = this.state.inputIsHidden;\n\n\n var id = inputId || this.getElementId('input');\n\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return React.createElement(DummyInput, {\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: noop,\n onFocus: this.onInputFocus,\n readOnly: true,\n tabIndex: tabIndex,\n value: ''\n });\n }\n\n // aria attributes makes the JSX \"noisy\", separated for clarity\n var ariaAttributes = {\n 'aria-autocomplete': 'list',\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby']\n };\n\n var _commonProps = this.commonProps,\n cx = _commonProps.cx,\n theme = _commonProps.theme;\n\n\n return React.createElement(Input, _extends({\n autoCapitalize: 'none',\n autoComplete: 'off',\n autoCorrect: 'off',\n cx: cx,\n getStyles: this.getStyles,\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n spellCheck: 'false',\n tabIndex: tabIndex,\n theme: theme,\n type: 'text',\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: 'renderPlaceholderOrValue',\n value: function renderPlaceholderOrValue() {\n var _this4 = this;\n\n var _components = this.components,\n MultiValue = _components.MultiValue,\n MultiValueContainer = _components.MultiValueContainer,\n MultiValueLabel = _components.MultiValueLabel,\n MultiValueRemove = _components.MultiValueRemove,\n SingleValue = _components.SingleValue,\n Placeholder = _components.Placeholder;\n var commonProps = this.commonProps;\n var _props8 = this.props,\n controlShouldRenderValue = _props8.controlShouldRenderValue,\n isDisabled = _props8.isDisabled,\n isMulti = _props8.isMulti,\n inputValue = _props8.inputValue,\n placeholder = _props8.placeholder;\n var _state6 = this.state,\n selectValue = _state6.selectValue,\n focusedValue = _state6.focusedValue;\n\n\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : React.createElement(\n Placeholder,\n _extends({}, commonProps, { key: 'placeholder', isDisabled: isDisabled }),\n placeholder\n );\n }\n\n if (isMulti) {\n var selectValues = selectValue.map(function (opt) {\n var isFocused = opt === focusedValue;\n return React.createElement(\n MultiValue,\n _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isFocused,\n isDisabled: isDisabled,\n key: _this4.getOptionValue(opt),\n removeProps: {\n onClick: function onClick() {\n return _this4.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this4.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n data: opt\n }),\n _this4.formatOptionLabel(opt, 'value')\n );\n });\n return selectValues;\n }\n\n if (inputValue) {\n return null;\n }\n\n var singleValue = selectValue[0];\n return React.createElement(\n SingleValue,\n _extends({}, commonProps, { data: singleValue, isDisabled: isDisabled }),\n this.formatOptionLabel(singleValue, 'value')\n );\n }\n }, {\n key: 'renderClearIndicator',\n value: function renderClearIndicator() {\n var ClearIndicator = this.components.ClearIndicator;\n var commonProps = this.commonProps;\n var _props9 = this.props,\n isDisabled = _props9.isDisabled,\n isLoading = _props9.isLoading;\n var isFocused = this.state.isFocused;\n\n\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n\n return React.createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: 'renderLoadingIndicator',\n value: function renderLoadingIndicator() {\n var LoadingIndicator = this.components.LoadingIndicator;\n var commonProps = this.commonProps;\n var _props10 = this.props,\n isDisabled = _props10.isDisabled,\n isLoading = _props10.isLoading;\n var isFocused = this.state.isFocused;\n\n\n if (!LoadingIndicator || !isLoading) return null;\n\n var innerProps = { 'aria-hidden': 'true' };\n return React.createElement(LoadingIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: 'renderIndicatorSeparator',\n value: function renderIndicatorSeparator() {\n var _components2 = this.components,\n DropdownIndicator = _components2.DropdownIndicator,\n IndicatorSeparator = _components2.IndicatorSeparator;\n\n // separator doesn't make sense without the dropdown indicator\n\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n\n\n return React.createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: 'renderDropdownIndicator',\n value: function renderDropdownIndicator() {\n var DropdownIndicator = this.components.DropdownIndicator;\n\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n\n\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n\n return React.createElement(DropdownIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: 'renderMenu',\n value: function renderMenu() {\n var _this5 = this;\n\n var _components3 = this.components,\n Group = _components3.Group,\n GroupHeading = _components3.GroupHeading,\n Menu$$1 = _components3.Menu,\n MenuList$$1 = _components3.MenuList,\n MenuPortal$$1 = _components3.MenuPortal,\n LoadingMessage$$1 = _components3.LoadingMessage,\n NoOptionsMessage$$1 = _components3.NoOptionsMessage,\n Option = _components3.Option;\n var commonProps = this.commonProps;\n var _state7 = this.state,\n focusedOption = _state7.focusedOption,\n menuOptions = _state7.menuOptions;\n var _props11 = this.props,\n captureMenuScroll = _props11.captureMenuScroll,\n inputValue = _props11.inputValue,\n isLoading = _props11.isLoading,\n loadingMessage = _props11.loadingMessage,\n minMenuHeight = _props11.minMenuHeight,\n maxMenuHeight = _props11.maxMenuHeight,\n menuIsOpen = _props11.menuIsOpen,\n menuPlacement = _props11.menuPlacement,\n menuPosition = _props11.menuPosition,\n menuPortalTarget = _props11.menuPortalTarget,\n menuShouldBlockScroll = _props11.menuShouldBlockScroll,\n menuShouldScrollIntoView = _props11.menuShouldScrollIntoView,\n noOptionsMessage = _props11.noOptionsMessage,\n onMenuScrollToTop = _props11.onMenuScrollToTop,\n onMenuScrollToBottom = _props11.onMenuScrollToBottom;\n\n\n if (!menuIsOpen) return null;\n\n // TODO: Internal Option Type here\n var render = function render(props) {\n // for performance, the menu options in state aren't changed when the\n // focused option changes so we calculate additional props based on that\n var isFocused = focusedOption === props.data;\n props.innerRef = isFocused ? _this5.getFocusedOptionRef : undefined;\n\n return React.createElement(\n Option,\n _extends({}, commonProps, props, { isFocused: isFocused }),\n _this5.formatOptionLabel(props.data, 'menu')\n );\n };\n\n var menuUI = void 0;\n\n if (this.hasOptions()) {\n menuUI = menuOptions.render.map(function (item) {\n if (item.type === 'group') {\n var type = item.type,\n group = objectWithoutProperties(item, ['type']);\n\n var headingId = item.key + '-heading';\n\n return React.createElement(\n Group,\n _extends({}, commonProps, group, {\n Heading: GroupHeading,\n headingProps: {\n id: headingId\n },\n label: _this5.formatGroupLabel(item.data)\n }),\n item.options.map(function (option) {\n return render(option);\n })\n );\n } else if (item.type === 'option') {\n return render(item);\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({ inputValue: inputValue });\n if (message === null) return null;\n menuUI = React.createElement(\n LoadingMessage$$1,\n commonProps,\n message\n );\n } else {\n var _message = noOptionsMessage({ inputValue: inputValue });\n if (_message === null) return null;\n menuUI = React.createElement(\n NoOptionsMessage$$1,\n commonProps,\n _message\n );\n }\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n\n var menuElement = React.createElement(\n MenuPlacer,\n _extends({}, commonProps, menuPlacementProps),\n function (_ref2) {\n var ref = _ref2.ref,\n _ref2$placerProps = _ref2.placerProps,\n placement = _ref2$placerProps.placement,\n maxHeight = _ref2$placerProps.maxHeight;\n return React.createElement(\n Menu$$1,\n _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this5.onMenuMouseDown,\n onMouseMove: _this5.onMenuMouseMove\n },\n isLoading: isLoading,\n placement: placement\n }),\n React.createElement(\n ScrollCaptorSwitch,\n {\n isEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom\n },\n React.createElement(\n ScrollBlock,\n { isEnabled: menuShouldBlockScroll },\n React.createElement(\n MenuList$$1,\n _extends({}, commonProps, {\n innerRef: _this5.getMenuListRef,\n isLoading: isLoading,\n maxHeight: maxHeight\n }),\n menuUI\n )\n )\n )\n );\n }\n );\n\n // positioning behaviour is almost identical for portalled and fixed,\n // so we use the same component. the actual portalling logic is forked\n // within the component based on `menuPosition`\n return menuPortalTarget || menuPosition === 'fixed' ? React.createElement(\n MenuPortal$$1,\n _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }),\n menuElement\n ) : menuElement;\n }\n }, {\n key: 'renderFormField',\n value: function renderFormField() {\n var _this6 = this;\n\n var _props12 = this.props,\n delimiter = _props12.delimiter,\n isDisabled = _props12.isDisabled,\n isMulti = _props12.isMulti,\n name = _props12.name;\n var selectValue = this.state.selectValue;\n\n\n if (!name || isDisabled) return;\n\n if (isMulti) {\n if (delimiter) {\n var _value = selectValue.map(function (opt) {\n return _this6.getOptionValue(opt);\n }).join(delimiter);\n return React.createElement('input', { name: name, type: 'hidden', value: _value });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return React.createElement('input', {\n key: 'i-' + i,\n name: name,\n type: 'hidden',\n value: _this6.getOptionValue(opt)\n });\n }) : React.createElement('input', { name: name, type: 'hidden' });\n\n return React.createElement(\n 'div',\n null,\n input\n );\n }\n } else {\n var _value2 = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n return React.createElement('input', { name: name, type: 'hidden', value: _value2 });\n }\n }\n }, {\n key: 'renderLiveRegion',\n value: function renderLiveRegion() {\n if (!this.state.isFocused) return null;\n return React.createElement(\n A11yText,\n { 'aria-live': 'assertive' },\n React.createElement(\n 'p',\n { id: 'aria-selection-event' },\n '\\xA0',\n this.state.ariaLiveSelection\n ),\n React.createElement(\n 'p',\n { id: 'aria-context' },\n '\\xA0',\n this.constructAriaLiveMessage()\n )\n );\n }\n }, {\n key: 'render',\n value: function render() {\n var _components4 = this.components,\n Control = _components4.Control,\n IndicatorsContainer = _components4.IndicatorsContainer,\n SelectContainer = _components4.SelectContainer,\n ValueContainer = _components4.ValueContainer;\n var _props13 = this.props,\n className = _props13.className,\n id = _props13.id,\n isDisabled = _props13.isDisabled;\n var isFocused = this.state.isFocused;\n\n\n var commonProps = this.commonProps = this.getCommonProps();\n\n return React.createElement(\n SelectContainer,\n _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }),\n this.renderLiveRegion(),\n React.createElement(\n Control,\n _extends({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }),\n React.createElement(\n ValueContainer,\n _extends({}, commonProps, { isDisabled: isDisabled }),\n this.renderPlaceholderOrValue(),\n this.renderInput()\n ),\n React.createElement(\n IndicatorsContainer,\n _extends({}, commonProps, { isDisabled: isDisabled }),\n this.renderClearIndicator(),\n this.renderLoadingIndicator(),\n this.renderIndicatorSeparator(),\n this.renderDropdownIndicator()\n )\n ),\n this.renderMenu(),\n this.renderFormField()\n );\n }\n }]);\n return Select;\n}(Component);\n\nSelect.defaultProps = defaultProps;\n\nvar _initialiseProps = function _initialiseProps() {\n var _this7 = this;\n\n this.state = {\n ariaLiveSelection: '',\n ariaLiveContext: '',\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n isComposing: false,\n menuOptions: { render: [], focusable: [] },\n selectValue: []\n };\n this.blockOptionHover = false;\n this.clearFocusValueOnUpdate = false;\n this.hasGroups = false;\n this.initialTouchX = 0;\n this.initialTouchY = 0;\n this.instancePrefix = '';\n this.openAfterFocus = false;\n this.scrollToFocusedOptionOnUpdate = false;\n this.controlRef = null;\n\n this.getControlRef = function (ref) {\n _this7.controlRef = ref;\n };\n\n this.focusedOptionRef = null;\n\n this.getFocusedOptionRef = function (ref) {\n _this7.focusedOptionRef = ref;\n };\n\n this.menuListRef = null;\n\n this.getMenuListRef = function (ref) {\n _this7.menuListRef = ref;\n };\n\n this.inputRef = null;\n\n this.getInputRef = function (ref) {\n _this7.inputRef = ref;\n };\n\n this.cacheComponents = function (components$$1) {\n _this7.components = defaultComponents({ components: components$$1 });\n };\n\n this.focus = this.focusInput;\n this.blur = this.blurInput;\n\n this.setValue = function (newValue) {\n var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'set-value';\n var option = arguments[2];\n var _props14 = _this7.props,\n closeMenuOnSelect = _props14.closeMenuOnSelect,\n isMulti = _props14.isMulti,\n onChange = _props14.onChange;\n\n _this7.onInputChange('', { action: 'set-value' });\n if (closeMenuOnSelect) {\n _this7.inputIsHiddenAfterUpdate = !isMulti;\n _this7.onMenuClose();\n }\n // when the select value should change, we should reset focusedValue\n _this7.clearFocusValueOnUpdate = true;\n onChange(newValue, { action: action, option: option });\n };\n\n this.selectOption = function (newValue) {\n var _props15 = _this7.props,\n blurInputOnSelect = _props15.blurInputOnSelect,\n isMulti = _props15.isMulti;\n\n\n if (isMulti) {\n var _selectValue3 = _this7.state.selectValue;\n\n if (_this7.isOptionSelected(newValue, _selectValue3)) {\n var candidate = _this7.getOptionValue(newValue);\n _this7.setValue(_selectValue3.filter(function (i) {\n return _this7.getOptionValue(i) !== candidate;\n }), 'deselect-option', newValue);\n _this7.announceAriaLiveSelection({\n event: 'deselect-option',\n context: { value: _this7.getOptionLabel(newValue) }\n });\n } else {\n _this7.setValue([].concat(toConsumableArray(_selectValue3), [newValue]), 'select-option', newValue);\n _this7.announceAriaLiveSelection({\n event: 'select-option',\n context: { value: _this7.getOptionLabel(newValue) }\n });\n }\n } else {\n _this7.setValue(newValue, 'select-option');\n _this7.announceAriaLiveSelection({\n event: 'select-option',\n context: { value: _this7.getOptionLabel(newValue) }\n });\n }\n\n if (blurInputOnSelect) {\n _this7.blurInput();\n }\n };\n\n this.removeValue = function (removedValue) {\n var onChange = _this7.props.onChange;\n var selectValue = _this7.state.selectValue;\n\n var candidate = _this7.getOptionValue(removedValue);\n onChange(selectValue.filter(function (i) {\n return _this7.getOptionValue(i) !== candidate;\n }), {\n action: 'remove-value',\n removedValue: removedValue\n });\n _this7.announceAriaLiveSelection({\n event: 'remove-value',\n context: {\n value: removedValue ? _this7.getOptionLabel(removedValue) : undefined\n }\n });\n _this7.focusInput();\n };\n\n this.clearValue = function () {\n var _props16 = _this7.props,\n isMulti = _props16.isMulti,\n onChange = _props16.onChange;\n\n onChange(isMulti ? [] : null, { action: 'clear' });\n };\n\n this.popValue = function () {\n var onChange = _this7.props.onChange;\n var selectValue = _this7.state.selectValue;\n\n var lastSelectedValue = selectValue[selectValue.length - 1];\n _this7.announceAriaLiveSelection({\n event: 'pop-value',\n context: {\n value: lastSelectedValue ? _this7.getOptionLabel(lastSelectedValue) : undefined\n }\n });\n onChange(selectValue.slice(0, selectValue.length - 1), {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n };\n\n this.getOptionLabel = function (data) {\n return _this7.props.getOptionLabel(data);\n };\n\n this.getOptionValue = function (data) {\n return _this7.props.getOptionValue(data);\n };\n\n this.getStyles = function (key, props) {\n var base = defaultStyles[key](props);\n base.boxSizing = 'border-box';\n var custom = _this7.props.styles[key];\n return custom ? custom(base, props) : base;\n };\n\n this.getElementId = function (element) {\n return _this7.instancePrefix + '-' + element;\n };\n\n this.getActiveDescendentId = function () {\n var menuIsOpen = _this7.props.menuIsOpen;\n var _state8 = _this7.state,\n menuOptions = _state8.menuOptions,\n focusedOption = _state8.focusedOption;\n\n\n if (!focusedOption || !menuIsOpen) return undefined;\n\n var index = menuOptions.focusable.indexOf(focusedOption);\n var option = menuOptions.render[index];\n\n return option && option.key;\n };\n\n this.announceAriaLiveSelection = function (_ref3) {\n var event = _ref3.event,\n context = _ref3.context;\n\n _this7.setState({\n ariaLiveSelection: valueEventAriaMessage(event, context)\n });\n };\n\n this.announceAriaLiveContext = function (_ref4) {\n var event = _ref4.event,\n context = _ref4.context;\n\n _this7.setState({\n ariaLiveContext: instructionsAriaMessage(event, _extends({}, context, {\n label: _this7.props['aria-label']\n }))\n });\n };\n\n this.onMenuMouseDown = function (event) {\n if (event.button !== 0) {\n return;\n }\n event.stopPropagation();\n event.preventDefault();\n _this7.focusInput();\n };\n\n this.onMenuMouseMove = function (event) {\n _this7.blockOptionHover = false;\n };\n\n this.onControlMouseDown = function (event) {\n var openMenuOnClick = _this7.props.openMenuOnClick;\n\n if (!_this7.state.isFocused) {\n if (openMenuOnClick) {\n _this7.openAfterFocus = true;\n }\n _this7.focusInput();\n } else if (!_this7.props.menuIsOpen) {\n _this7.openMenu('first');\n } else {\n _this7.onMenuClose();\n }\n // $FlowFixMe HTMLElement type does not have tagName property\n if (event.target.tagName !== 'INPUT') {\n event.preventDefault();\n }\n };\n\n this.onDropdownIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n if (_this7.props.isDisabled) return;\n var _props17 = _this7.props,\n isMulti = _props17.isMulti,\n menuIsOpen = _props17.menuIsOpen;\n\n _this7.focusInput();\n if (menuIsOpen) {\n _this7.inputIsHiddenAfterUpdate = !isMulti;\n _this7.onMenuClose();\n } else {\n _this7.openMenu('first');\n }\n event.preventDefault();\n event.stopPropagation();\n };\n\n this.onClearIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n _this7.clearValue();\n event.stopPropagation();\n _this7.openAfterFocus = false;\n setTimeout(function () {\n return _this7.focusInput();\n });\n };\n\n this.onScroll = function (event) {\n if (typeof _this7.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && isDocumentElement(event.target)) {\n _this7.props.onMenuClose();\n }\n } else if (typeof _this7.props.closeMenuOnScroll === 'function') {\n if (_this7.props.closeMenuOnScroll(event)) {\n _this7.props.onMenuClose();\n }\n }\n };\n\n this.onCompositionStart = function () {\n _this7.setState({\n isComposing: true\n });\n };\n\n this.onCompositionEnd = function () {\n _this7.setState({\n isComposing: false\n });\n };\n\n this.onTouchStart = function (_ref5) {\n var _ref5$touches = slicedToArray(_ref5.touches, 1),\n touch = _ref5$touches[0];\n\n _this7.initialTouchX = touch.clientX;\n _this7.initialTouchY = touch.clientY;\n _this7.userIsDragging = false;\n };\n\n this.onTouchMove = function (_ref6) {\n var _ref6$touches = slicedToArray(_ref6.touches, 1),\n touch = _ref6$touches[0];\n\n var deltaX = Math.abs(touch.clientX - _this7.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this7.initialTouchY);\n var moveThreshold = 5;\n\n _this7.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n };\n\n this.onTouchEnd = function (event) {\n if (_this7.userIsDragging) return;\n\n // type cast the EventTarget\n var target = event.target;\n\n // close the menu if the user taps outside\n if (_this7.controlRef && !_this7.controlRef.contains(target) && _this7.menuListRef && !_this7.menuListRef.contains(target)) {\n _this7.blurInput();\n }\n\n // reset move vars\n _this7.initialTouchX = 0;\n _this7.initialTouchY = 0;\n };\n\n this.onControlTouchEnd = function (event) {\n if (_this7.userIsDragging) return;\n\n _this7.onControlMouseDown(event);\n };\n\n this.onClearIndicatorTouchEnd = function (event) {\n if (_this7.userIsDragging) return;\n\n _this7.onClearIndicatorMouseDown(event);\n };\n\n this.onDropdownIndicatorTouchEnd = function (event) {\n if (_this7.userIsDragging) return;\n\n _this7.onDropdownIndicatorMouseDown(event);\n };\n\n this.handleInputChange = function (event) {\n var inputValue = event.currentTarget.value;\n _this7.inputIsHiddenAfterUpdate = false;\n _this7.onInputChange(inputValue, { action: 'input-change' });\n _this7.onMenuOpen();\n };\n\n this.onInputFocus = function (event) {\n var _props18 = _this7.props,\n isSearchable = _props18.isSearchable,\n isMulti = _props18.isMulti;\n\n if (_this7.props.onFocus) {\n _this7.props.onFocus(event);\n }\n _this7.inputIsHiddenAfterUpdate = false;\n _this7.announceAriaLiveContext({\n event: 'input',\n context: { isSearchable: isSearchable, isMulti: isMulti }\n });\n _this7.setState({\n isFocused: true\n });\n if (_this7.openAfterFocus || _this7.props.openMenuOnFocus) {\n _this7.openMenu('first');\n }\n _this7.openAfterFocus = false;\n };\n\n this.onInputBlur = function (event) {\n if (_this7.props.onBlur) {\n _this7.props.onBlur(event);\n }\n _this7.onInputChange('', { action: 'input-blur' });\n _this7.onMenuClose();\n _this7.setState({\n focusedValue: null,\n isFocused: false\n });\n };\n\n this.onOptionHover = function (focusedOption) {\n if (_this7.blockOptionHover || _this7.state.focusedOption === focusedOption) {\n return;\n }\n _this7.setState({ focusedOption: focusedOption });\n };\n\n this.shouldHideSelectedOptions = function () {\n var _props19 = _this7.props,\n hideSelectedOptions = _props19.hideSelectedOptions,\n isMulti = _props19.isMulti;\n\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n };\n\n this.onKeyDown = function (event) {\n var _props20 = _this7.props,\n isMulti = _props20.isMulti,\n backspaceRemovesValue = _props20.backspaceRemovesValue,\n escapeClearsValue = _props20.escapeClearsValue,\n inputValue = _props20.inputValue,\n isClearable = _props20.isClearable,\n isDisabled = _props20.isDisabled,\n menuIsOpen = _props20.menuIsOpen,\n onKeyDown = _props20.onKeyDown,\n tabSelectsValue = _props20.tabSelectsValue,\n openMenuOnFocus = _props20.openMenuOnFocus;\n var _state9 = _this7.state,\n isComposing = _state9.isComposing,\n focusedOption = _state9.focusedOption,\n focusedValue = _state9.focusedValue,\n selectValue = _state9.selectValue;\n\n\n if (isDisabled) return;\n\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n // Block option hover events when the user has just pressed a key\n _this7.blockOptionHover = true;\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n _this7.focusValue('previous');\n break;\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n _this7.focusValue('next');\n break;\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n if (focusedValue) {\n _this7.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n _this7.popValue();\n }\n break;\n case 'Tab':\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption ||\n // don't capture the event if the menu opens on focus and the focused\n // option is already selected; it breaks the flow of navigation\n openMenuOnFocus && _this7.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n _this7.selectOption(focusedOption);\n break;\n case 'Enter':\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (isComposing) return;\n _this7.selectOption(focusedOption);\n } else {\n _this7.focusOption('first');\n }\n break;\n case 'Escape':\n if (menuIsOpen) {\n _this7.inputIsHiddenAfterUpdate = false;\n _this7.onInputChange('', { action: 'menu-close' });\n _this7.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this7.clearValue();\n }\n break;\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n if (!menuIsOpen) {\n _this7.openMenu('first');\n break;\n }\n if (!focusedOption) return;\n _this7.selectOption(focusedOption);\n break;\n case 'ArrowUp':\n if (menuIsOpen) {\n _this7.focusOption('up');\n } else {\n _this7.openMenu('last');\n }\n break;\n case 'ArrowDown':\n if (menuIsOpen) {\n _this7.focusOption('down');\n } else {\n _this7.openMenu('first');\n }\n break;\n case 'PageUp':\n if (!menuIsOpen) return;\n _this7.focusOption('pageup');\n break;\n case 'PageDown':\n if (!menuIsOpen) return;\n _this7.focusOption('pagedown');\n break;\n case 'Home':\n if (!menuIsOpen) return;\n _this7.focusOption('first');\n break;\n case 'End':\n if (!menuIsOpen) return;\n _this7.focusOption('last');\n break;\n default:\n return;\n }\n event.preventDefault();\n };\n};\n\nvar manageState = function manageState(SelectComponent) {\n var _class, _temp2;\n\n return _temp2 = _class = function (_Component) {\n inherits(StateManager, _Component);\n\n function StateManager() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, StateManager);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = possibleConstructorReturn(this, (_ref = StateManager.__proto__ || Object.getPrototypeOf(StateManager)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n inputValue: _this.props.inputValue !== undefined ? _this.props.inputValue : _this.props.defaultInputValue,\n menuIsOpen: _this.props.menuIsOpen !== undefined ? _this.props.menuIsOpen : _this.props.defaultMenuIsOpen,\n value: _this.props.value !== undefined ? _this.props.value : _this.props.defaultValue\n }, _this.onChange = function (value, actionMeta) {\n _this.callProp('onChange', value, actionMeta);\n _this.setState({ value: value });\n }, _this.onInputChange = function (value, actionMeta) {\n // TODO: for backwards compatibility, we allow the prop to return a new\n // value, but now inputValue is a controllable prop we probably shouldn't\n var newValue = _this.callProp('onInputChange', value, actionMeta);\n _this.setState({\n inputValue: newValue !== undefined ? newValue : value\n });\n }, _this.onMenuOpen = function () {\n _this.callProp('onMenuOpen');\n _this.setState({ menuIsOpen: true });\n }, _this.onMenuClose = function () {\n _this.callProp('onMenuClose');\n _this.setState({ menuIsOpen: false });\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(StateManager, [{\n key: 'focus',\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.select.blur();\n }\n }, {\n key: 'getProp',\n value: function getProp(key) {\n return this.props[key] !== undefined ? this.props[key] : this.state[key];\n }\n }, {\n key: 'callProp',\n value: function callProp(name) {\n if (typeof this.props[name] === 'function') {\n var _props;\n\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return (_props = this.props)[name].apply(_props, toConsumableArray(args));\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return React.createElement(SelectComponent, _extends({}, this.props, {\n ref: function ref(_ref2) {\n _this2.select = _ref2;\n },\n inputValue: this.getProp('inputValue'),\n menuIsOpen: this.getProp('menuIsOpen'),\n onChange: this.onChange,\n onInputChange: this.onInputChange,\n onMenuClose: this.onMenuClose,\n onMenuOpen: this.onMenuOpen,\n value: this.getProp('value')\n }));\n }\n }]);\n return StateManager;\n }(Component), _class.defaultProps = {\n defaultInputValue: '',\n defaultMenuIsOpen: false,\n defaultValue: null\n }, _temp2;\n};\n\nvar defaultProps$1 = {\n cacheOptions: false,\n defaultOptions: false\n};\n\nvar makeAsyncSelect = function makeAsyncSelect(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class = function (_Component) {\n inherits(Async, _Component);\n\n function Async(props) {\n classCallCheck(this, Async);\n\n var _this = possibleConstructorReturn(this, (Async.__proto__ || Object.getPrototypeOf(Async)).call(this));\n\n _this.mounted = false;\n _this.optionsCache = {};\n\n _this.handleInputChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n cacheOptions = _this$props.cacheOptions,\n onInputChange = _this$props.onInputChange;\n // TODO\n\n var inputValue = handleInputChange(newValue, actionMeta, onInputChange);\n if (!inputValue) {\n delete _this.lastRequest;\n _this.setState({\n inputValue: '',\n loadedInputValue: '',\n loadedOptions: [],\n isLoading: false,\n passEmptyOptions: false\n });\n return;\n }\n if (cacheOptions && _this.optionsCache[inputValue]) {\n _this.setState({\n inputValue: inputValue,\n loadedInputValue: inputValue,\n loadedOptions: _this.optionsCache[inputValue],\n isLoading: false,\n passEmptyOptions: false\n });\n } else {\n var request = _this.lastRequest = {};\n _this.setState({\n inputValue: inputValue,\n isLoading: true,\n passEmptyOptions: !_this.state.loadedInputValue\n }, function () {\n _this.loadOptions(inputValue, function (options) {\n if (!_this.mounted) return;\n if (options) {\n _this.optionsCache[inputValue] = options;\n }\n if (request !== _this.lastRequest) return;\n delete _this.lastRequest;\n _this.setState({\n isLoading: false,\n loadedInputValue: inputValue,\n loadedOptions: options || [],\n passEmptyOptions: false\n });\n });\n });\n }\n return inputValue;\n };\n\n _this.state = {\n defaultOptions: Array.isArray(props.defaultOptions) ? props.defaultOptions : undefined,\n inputValue: '',\n isLoading: props.defaultOptions === true ? true : false,\n loadedOptions: [],\n passEmptyOptions: false\n };\n return _this;\n }\n\n createClass(Async, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n this.mounted = true;\n var defaultOptions = this.props.defaultOptions;\n\n if (defaultOptions === true) {\n this.loadOptions('', function (options) {\n if (!_this2.mounted) return;\n var isLoading = !!_this2.lastRequest;\n _this2.setState({ defaultOptions: options || [], isLoading: isLoading });\n });\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n // if the cacheOptions prop changes, clear the cache\n if (nextProps.cacheOptions !== this.props.cacheOptions) {\n this.optionsCache = {};\n }\n if (nextProps.defaultOptions !== this.props.defaultOptions) {\n this.setState({\n defaultOptions: Array.isArray(nextProps.defaultOptions) ? nextProps.defaultOptions : undefined\n });\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.mounted = false;\n }\n }, {\n key: 'focus',\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.select.blur();\n }\n }, {\n key: 'loadOptions',\n value: function loadOptions(inputValue, callback) {\n var loadOptions = this.props.loadOptions;\n\n if (!loadOptions) return callback();\n var loader = loadOptions(inputValue, callback);\n if (loader && typeof loader.then === 'function') {\n loader.then(callback, function () {\n return callback();\n });\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props = this.props,\n loadOptions = _props.loadOptions,\n props = objectWithoutProperties(_props, ['loadOptions']);\n var _state = this.state,\n defaultOptions = _state.defaultOptions,\n inputValue = _state.inputValue,\n isLoading = _state.isLoading,\n loadedInputValue = _state.loadedInputValue,\n loadedOptions = _state.loadedOptions,\n passEmptyOptions = _state.passEmptyOptions;\n\n var options = passEmptyOptions ? [] : inputValue && loadedInputValue ? loadedOptions : defaultOptions || [];\n return (\n // $FlowFixMe\n React.createElement(SelectComponent, _extends({}, props, {\n filterOption: this.props.filterOption || null,\n ref: function ref(_ref) {\n _this3.select = _ref;\n },\n options: options,\n isLoading: isLoading,\n onInputChange: this.handleInputChange\n }))\n );\n }\n }]);\n return Async;\n }(Component), _class.defaultProps = defaultProps$1, _temp;\n};\nvar Async = makeAsyncSelect(manageState(Select));\n\nvar compareOption = function compareOption(inputValue, option) {\n var candidate = inputValue.toLowerCase();\n return option.value.toLowerCase() === candidate || option.label.toLowerCase() === candidate;\n};\n\nvar builtins = {\n formatCreateLabel: function formatCreateLabel(inputValue) {\n return 'Create \"' + inputValue + '\"';\n },\n isValidNewOption: function isValidNewOption(inputValue, selectValue, selectOptions) {\n return !(!inputValue || selectValue.some(function (option) {\n return compareOption(inputValue, option);\n }) || selectOptions.some(function (option) {\n return compareOption(inputValue, option);\n }));\n },\n getNewOptionData: function getNewOptionData(inputValue, optionLabel) {\n return {\n label: optionLabel,\n value: inputValue,\n __isNew__: true\n };\n }\n};\n\nvar defaultProps$2 = _extends({\n allowCreateWhileLoading: false,\n createOptionPosition: 'last'\n}, builtins);\n\nvar makeCreatableSelect = function makeCreatableSelect(SelectComponent) {\n var _class, _temp;\n\n return _temp = _class = function (_Component) {\n inherits(Creatable, _Component);\n\n function Creatable(props) {\n classCallCheck(this, Creatable);\n\n var _this = possibleConstructorReturn(this, (Creatable.__proto__ || Object.getPrototypeOf(Creatable)).call(this, props));\n\n _this.onChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n getNewOptionData = _this$props.getNewOptionData,\n inputValue = _this$props.inputValue,\n isMulti = _this$props.isMulti,\n onChange = _this$props.onChange,\n onCreateOption = _this$props.onCreateOption,\n value = _this$props.value;\n\n if (actionMeta.action !== 'select-option') {\n return onChange(newValue, actionMeta);\n }\n var newOption = _this.state.newOption;\n\n var valueArray = Array.isArray(newValue) ? newValue : [newValue];\n\n if (valueArray[valueArray.length - 1] === newOption) {\n if (onCreateOption) onCreateOption(inputValue);else {\n var newOptionData = getNewOptionData(inputValue, inputValue);\n var newActionMeta = { action: 'create-option' };\n if (isMulti) {\n onChange([].concat(toConsumableArray(cleanValue(value)), [newOptionData]), newActionMeta);\n } else {\n onChange(newOptionData, newActionMeta);\n }\n }\n return;\n }\n onChange(newValue, actionMeta);\n };\n\n var options = props.options || [];\n _this.state = {\n newOption: undefined,\n options: options\n };\n return _this;\n }\n\n createClass(Creatable, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var allowCreateWhileLoading = nextProps.allowCreateWhileLoading,\n createOptionPosition = nextProps.createOptionPosition,\n formatCreateLabel = nextProps.formatCreateLabel,\n getNewOptionData = nextProps.getNewOptionData,\n inputValue = nextProps.inputValue,\n isLoading = nextProps.isLoading,\n isValidNewOption = nextProps.isValidNewOption,\n value = nextProps.value;\n\n var options = nextProps.options || [];\n var newOption = this.state.newOption;\n\n if (isValidNewOption(inputValue, cleanValue(value), options)) {\n newOption = getNewOptionData(inputValue, formatCreateLabel(inputValue));\n } else {\n newOption = undefined;\n }\n this.setState({\n newOption: newOption,\n options: (allowCreateWhileLoading || !isLoading) && newOption ? createOptionPosition === 'first' ? [newOption].concat(toConsumableArray(options)) : [].concat(toConsumableArray(options), [newOption]) : options\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n this.select.focus();\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.select.blur();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var props = objectWithoutProperties(this.props, []);\n var options = this.state.options;\n\n return React.createElement(SelectComponent, _extends({}, props, {\n ref: function ref(_ref) {\n _this2.select = _ref;\n },\n options: options,\n onChange: this.onChange\n }));\n }\n }]);\n return Creatable;\n }(Component), _class.defaultProps = defaultProps$2, _temp;\n};\nvar Creatable = manageState(makeCreatableSelect(Select));\n\nvar AsyncCreatable = makeAsyncSelect(manageState(makeCreatableSelect(Select)));\n\n// ==============================\n// Fade Transition\n// ==============================\n\nvar Fade = function Fade(_ref) {\n var Tag = _ref.component,\n _ref$duration = _ref.duration,\n duration = _ref$duration === undefined ? 1 : _ref$duration,\n inProp = _ref.in,\n onExited = _ref.onExited,\n props = objectWithoutProperties(_ref, ['component', 'duration', 'in', 'onExited']);\n\n var transition = {\n entering: { opacity: 0 },\n entered: { opacity: 1, transition: 'opacity ' + duration + 'ms' },\n exiting: { opacity: 0 },\n exited: { opacity: 0 }\n };\n\n return React.createElement(\n Transition,\n { mountOnEnter: true, unmountOnExit: true, 'in': inProp, timeout: duration },\n function (state) {\n var innerProps = {\n style: _extends({}, transition[state])\n };\n return React.createElement(Tag, _extends({ innerProps: innerProps }, props));\n }\n );\n};\nvar collapseDuration = 260;\n\n// wrap each MultiValue with a collapse transition; decreases width until\n// finally removing from DOM\nvar Collapse = function (_Component) {\n inherits(Collapse, _Component);\n\n function Collapse() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, Collapse);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = possibleConstructorReturn(this, (_ref2 = Collapse.__proto__ || Object.getPrototypeOf(Collapse)).call.apply(_ref2, [this].concat(args))), _this), _this.duration = collapseDuration, _this.state = { width: 'auto' }, _this.transition = {\n exiting: { width: 0, transition: 'width ' + _this.duration + 'ms ease-out' },\n exited: { width: 0 }\n }, _this.getWidth = function (ref) {\n if (ref && isNaN(_this.state.width)) {\n // cannot use `offsetWidth` because it is rounded\n var _ref$getBoundingClien = ref.getBoundingClientRect(),\n _width = _ref$getBoundingClien.width;\n\n _this.setState({ width: _width });\n }\n }, _this.getStyle = function (width) {\n return {\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n width: width\n };\n }, _this.getTransition = function (state) {\n return _this.transition[state];\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n // width must be calculated; cannot transition from `undefined` to `number`\n\n\n // get base styles\n\n\n // get transition styles\n\n\n createClass(Collapse, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n children = _props.children,\n inProp = _props.in;\n var width = this.state.width;\n\n\n return React.createElement(\n Transition,\n {\n enter: false,\n mountOnEnter: true,\n unmountOnExit: true,\n 'in': inProp,\n timeout: this.duration\n },\n function (state) {\n var style = _extends({}, _this2.getStyle(width), _this2.getTransition(state));\n return React.createElement(\n 'div',\n { ref: _this2.getWidth, style: style },\n children\n );\n }\n );\n }\n }]);\n return Collapse;\n}(Component);\n\n// strip transition props off before spreading onto select component\n// note we need to be explicit about innerRef for flow\nvar AnimatedInput = function AnimatedInput(WrappedComponent) {\n return function (_ref) {\n var inProp = _ref.in,\n onExited = _ref.onExited,\n appear = _ref.appear,\n enter = _ref.enter,\n exit = _ref.exit,\n innerRef = _ref.innerRef,\n props = objectWithoutProperties(_ref, ['in', 'onExited', 'appear', 'enter', 'exit', 'innerRef']);\n return (\n // $FlowFixMe\n React.createElement(WrappedComponent, _extends({ innerRef: innerRef }, props))\n );\n };\n};\n\n// strip transition props off before spreading onto actual component\n\n\nvar AnimatedMultiValue = function AnimatedMultiValue(WrappedComponent) {\n return function (_ref) {\n var inProp = _ref.in,\n onExited = _ref.onExited,\n props = objectWithoutProperties(_ref, ['in', 'onExited']);\n return React.createElement(\n Collapse,\n { 'in': inProp, onExited: onExited },\n React.createElement(WrappedComponent, _extends({ cropWithEllipsis: inProp }, props))\n );\n };\n};\n\n// fade in when last multi-value removed, otherwise instant\nvar AnimatedPlaceholder = function AnimatedPlaceholder(WrappedComponent) {\n return function (props) {\n return React.createElement(Fade, _extends({\n component: WrappedComponent,\n duration: props.isMulti ? collapseDuration : 1\n }, props));\n };\n};\n\n// instant fade; all transition-group children must be transitions\n\nvar AnimatedSingleValue = function AnimatedSingleValue(WrappedComponent) {\n return function (props) {\n return React.createElement(Fade, _extends({ component: WrappedComponent }, props));\n };\n};\n\n// make ValueContainer a transition group\nvar AnimatedValueContainer = function AnimatedValueContainer(WrappedComponent) {\n return function (props) {\n return React.createElement(TransitionGroup, _extends({ component: WrappedComponent }, props));\n };\n};\n\nvar makeAnimated = function makeAnimated(externalComponents) {\n var components$$1 = defaultComponents({ components: externalComponents });\n var Input = components$$1.Input,\n MultiValue = components$$1.MultiValue,\n Placeholder = components$$1.Placeholder,\n SingleValue = components$$1.SingleValue,\n ValueContainer = components$$1.ValueContainer,\n rest = objectWithoutProperties(components$$1, ['Input', 'MultiValue', 'Placeholder', 'SingleValue', 'ValueContainer']);\n\n return _extends({\n Input: AnimatedInput(Input),\n MultiValue: AnimatedMultiValue(MultiValue),\n Placeholder: AnimatedPlaceholder(Placeholder),\n SingleValue: AnimatedSingleValue(SingleValue),\n ValueContainer: AnimatedValueContainer(ValueContainer)\n }, rest);\n};\n\nvar AnimatedComponents = makeAnimated();\n\nvar Input$1 = AnimatedComponents.Input;\nvar MultiValue$1 = AnimatedComponents.MultiValue;\nvar Placeholder$1 = AnimatedComponents.Placeholder;\nvar SingleValue$1 = AnimatedComponents.SingleValue;\nvar ValueContainer$1 = AnimatedComponents.ValueContainer;\n\nvar index = memoizeOne(makeAnimated, exportedEqual);\n\nvar index$1 = manageState(Select);\n\nexport default index$1;\nexport { Select as SelectBase, Async, AsyncCreatable, Creatable, createFilter, index as makeAnimated, components, mergeStyles, defaultTheme };\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _addClass = _interopRequireDefault(require(\"dom-helpers/class/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/class/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n\nvar propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or has finished the transition.\n * A single name can be provided and it will be suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`, `fade-enter-done`,\n * `fade-exit`, `fade-exit-active`, `fade-exit-done`, `fade-appear`, and `fade-appear-active`.\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply spread\n * them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement\n */\n onExiting: PropTypes.func,\n\n /**\n * A `<Transition>` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};;\n/**\n * A `Transition` component using CSS transitions and animations.\n * It's inspired by the excellent [ng-animate](http://www.nganimate.org/) library.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` stages of the transition. The first class is applied and then a\n * second \"active\" class in order to activate the css animation. After the animation,\n * matching `done` class names are applied to persist the animation state.\n *\n * When the `in` prop is toggled to `true` the Component will get\n * the `example-enter` CSS class and the `example-enter-active` CSS class\n * added in the next tick. This is a convention based on the `classNames` prop.\n */\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var _this$getClassNames3 = _this.getClassNames('enter'),\n doneClassName = _this$getClassNames3.doneClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n className = _this$getClassNames4.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames5.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames6 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames6.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var className = typeof classNames !== 'string' ? classNames[type] : classNames + '-' + type;\n var activeClassName = typeof classNames !== 'string' ? classNames[type + 'Active'] : className + '-active';\n var doneClassName = typeof classNames !== 'string' ? classNames[type + 'Done'] : className + '-done';\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames7 = this.getClassNames(type),\n className = _this$getClassNames7.className,\n activeClassName = _this$getClassNames7.activeClassName,\n doneClassName = _this$getClassNames7.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};;\n/**\n * The `<ReplaceTransition>` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * <ReplaceTransition in>\n * <Fade><div>I appear first</div></Fade>\n * <Fade><div>I replace the above</div></Fade>\n * </ReplaceTransition>\n * ```\n */\n\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the components.\n * It's up to you to give meaning and effect to those states. For example we can\n * add styles to a component when it enters or exits:\n *\n * ```jsx\n * import Transition from 'react-transition-group/Transition';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {(state) => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * As noted the `Transition` component doesn't _do_ anything by itself to its child component.\n * What it does do is track transition states over time so you can update the\n * component (such as by adding styles or classes) when it changes states.\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component begins the\n * \"Enter\" stage. During this stage, the component will shift from its current transition state,\n * to `'entering'` for the duration of the transition and then to the `'entered'` stage once\n * it's complete. Let's take the following example:\n *\n * ```jsx\n * state = { in: false };\n *\n * toggleEnterState = () => {\n * this.setState({ in: true });\n * }\n *\n * render() {\n * return (\n * <div>\n * <Transition in={this.state.in} timeout={500} />\n * <button onClick={this.toggleEnterState}>Click to Enter</button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state and\n * stay there for 500ms (the value of `timeout`) before it finally switches to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from `'exiting'` to `'exited'`.\n *\n * ## Timing\n *\n * Timing is often the trickiest part of animation, mistakes can result in slight delays\n * that are hard to pin down. A common example is when you want to add an exit transition,\n * you should set the desired final styles when the state is `'exiting'`. That's when the\n * transition to those styles will start and, if you matched the `timeout` prop with the\n * CSS Transition duration, it will end exactly when the state changes to `'exited'`.\n *\n * > **Note**: For simpler transitions the `Transition` component might be enough, but\n * > take into account that it's platform-agnostic, while the `CSSTransition` component\n * > [forces reflows](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * > in order to make more complex transitions more predictable. For example, even though\n * > classes `example-enter` and `example-enter-active` are applied immediately one after\n * > another, you can still transition from one to the other because of the forced reflow\n * > (read [this issue](https://github.com/reactjs/react-transition-group/issues/159#issuecomment-322761171)\n * > for more info). Take this into account when choosing between `Transition` and\n * > `CSSTransition`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter;\n appear = timeout.appear;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts(); // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing); // FIXME: appear timeout?\n\n\n _this2.onTransitionEnd(node, timeouts.enter, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n\n if (node) {\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n } else {\n setTimeout(this.nextCallback, 0);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element.\n * This function is called with the current transition status\n * ('entering', 'entered', 'exiting', 'exited', 'unmounted'), which can be used\n * to apply context specific props to a component.\n *\n * ```jsx\n * <Transition timeout={150}>\n * {(status) => (\n * <MyComponent className={`fade fade-${status}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `<Transition>` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `<Transition>` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided\n *\n * You may specify a single timeout for all transitions like: `timeout={500}`,\n * or individually like:\n *\n * ```jsx\n * timeout={{\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * @type {number | { enter?: number, exit?: number }}\n */\n timeout: function timeout(props) {\n var pt = process.env.NODE_ENV !== \"production\" ? _PropTypes.timeoutsShape : {};;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `<TransitionGroup>` renders a `<div>` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `<div>` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `<Transition>` components, that are toggled `in` and out as they\n * leave. the `<TransitionGroup>` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `<Transition>` as\n * with our `<Fade>` example.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};;\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `<TransitionGroup>` component manages a set of transition components\n * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition\n * components, `<TransitionGroup>` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the `<TransitionGroup>`.\n *\n * Note that `<TransitionGroup>` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.transitionTimeout = transitionTimeout;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction transitionTimeout(transitionType) {\n var timeoutPropName = 'transition' + transitionType + 'Timeout';\n var enabledPropName = 'transition' + transitionType;\n return function (props) {\n // If the transition is enabled\n if (props[enabledPropName]) {\n // If no timeout duration is provided\n if (props[timeoutPropName] == null) {\n return new Error(timeoutPropName + ' wasn\\'t supplied to CSSTransitionGroup: ' + 'this can cause unreliable animations and won\\'t be supported in ' + 'a future version of React. See ' + 'https://fb.me/react-animation-transition-group-timeout for more ' + 'information.'); // If the duration isn't a number\n } else if (typeof props[timeoutPropName] !== 'number') {\n return new Error(timeoutPropName + ' must be a number (in milliseconds)');\n }\n }\n\n return null;\n };\n}\n\nvar timeoutsShape = _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number\n}).isRequired]);\n\nexports.timeoutsShape = timeoutsShape;\n\nvar classNamesShape = _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]);\n\nexports.classNamesShape = classNamesShape;","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array<ResizeObserverSPI>}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the <html> itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","(function (factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? (module['exports'] = factory()) :\n\t\ttypeof define === 'function' && define['amd'] ? define(factory()) :\n\t\t\t(window['stylisRuleSheet'] = factory())\n}(function () {\n\n\t'use strict'\n\n\treturn function (insertRule) {\n\t\tvar delimiter = '/*|*/'\n\t\tvar needle = delimiter+'}'\n\n\t\tfunction toSheet (block) {\n\t\t\tif (block)\n\t\t\t\ttry {\n\t\t\t\t\tinsertRule(block + '}')\n\t\t\t\t} catch (e) {}\n\t\t}\n\n\t\treturn function ruleSheet (context, content, selectors, parents, line, column, length, ns, depth, at) {\n\t\t\tswitch (context) {\n\t\t\t\t// property\n\t\t\t\tcase 1:\n\t\t\t\t\t// @import\n\t\t\t\t\tif (depth === 0 && content.charCodeAt(0) === 64)\n\t\t\t\t\t\treturn insertRule(content+';'), ''\n\t\t\t\t\tbreak\n\t\t\t\t// selector\n\t\t\t\tcase 2:\n\t\t\t\t\tif (ns === 0)\n\t\t\t\t\t\treturn content + delimiter\n\t\t\t\t\tbreak\n\t\t\t\t// at-rule\n\t\t\t\tcase 3:\n\t\t\t\t\tswitch (ns) {\n\t\t\t\t\t\t// @font-face, @page\n\t\t\t\t\t\tcase 102:\n\t\t\t\t\t\tcase 112:\n\t\t\t\t\t\t\treturn insertRule(selectors[0]+content), ''\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn content + (at === 0 ? delimiter : '')\n\t\t\t\t\t}\n\t\t\t\tcase -2:\n\t\t\t\t\tcontent.split(needle).forEach(toSheet)\n\t\t\t}\n\t\t}\n\t}\n}))\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([bth[buf[i++]], bth[buf[i++]], \n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]], '-',\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]],\n\tbth[buf[i++]], bth[buf[i++]]]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = React;","module.exports = ReactDOM;"],"sourceRoot":""}
static/ecs-block.css ADDED
@@ -0,0 +1 @@
 
1
+ .ecs-block-header{text-align:center}.ecs-block-header h3{margin:0}.ecs-block-edit{padding:10px 15px;font-family:sans-serif;font-size:18px}.ecs-block-edit h4{margin:0}.ecs-settings-row{display:flex;padding:18px 0;border-bottom:1px solid #e5e5e5}.ecs-settings-row.mobile{flex-direction:column}.ecs-settings-row.mobile>*{margin-bottom:8px}.ecs-settings-row.mobile .ecs-remove-col{align-self:center;margin-bottom:0}.ecs-settings-row>*{padding:0 10px}.ecs-settings-row .ecs-selector-col{flex:3;display:flex;align-items:center}.ecs-settings-row .ecs-setting-col{flex:4}.ecs-settings-row .ecs-remove-col{flex:1;display:flex;align-items:center;justify-content:flex-end}.ecs-setting-add{display:flex;padding:18px 0}.ecs-setting-add>.ecs-select{flex:3;padding:0 10px}.ecs-setting-add>.ecs-flex-fill{flex:5;padding:0 10px}.ecs-setting-add.mobile>.ecs-flex-fill{display:none}.ecs-setting-text-field{display:flex;flex-direction:column}.ecs-setting-text-field label{font-size:13px}.ecs-setting-help{line-height:1.1;font-size:16px;margin-top:10px}.ecs-key-value{display:flex}.ecs-key-value :first-child{margin-right:10px}.ecs-key-value>div{flex:1}.ecs-select{flex-grow:1}.ecs-select.multi .select__control{max-height:none}.ecs-select .select__control{max-height:30px;font-family:sans-serif;font-size:18px}.ecs-select .select__value-container{padding:0 8px}.ecs-select .select__menu{opacity:1;z-index:99999;margin-top:0;border-radius:0}.ecs-select .select__option{padding:1px 12px}.ecs-select .select__option--is-disabled.select__option--is-selected{display:none}.ecs-select .select__multi-value{background-color:#ebf5ff;background-color:rgba(0,126,255,.08);border-radius:2px;border:1px solid #c2e0ff;border:1px solid rgba(0,126,255,.24);color:#007eff;font-size:.9em;line-height:1.4;margin-left:5px;margin-top:5px;vertical-align:top}.ecs-settings-month{display:flex;flex-direction:column}.ecs-settings-month .ecs-setting-year-month{display:flex;align-items:center}.ecs-settings-month .ecs-setting-year-month .ecs-setting-text-field input{width:60px}.ecs-settings-month .ecs-setting-year-month .ecs-month-divider{width:10px;height:19px;margin:0 10px;border-bottom:1px solid #000}.ecs-settings-thumb{display:flex;flex-direction:column}.ecs-settings-thumb .ecs-settings-thumb-width-height{display:flex;align-items:center}.ecs-settings-thumb .ecs-settings-thumb-width-height .ecs-setting-text-field input{width:60px}.ecs-settings-thumb .ecs-settings-thumb-width-height .ecs-thumb-divider{width:10px;height:19px;margin:0 10px}.ecs-settings-thumb .ecs-settings-thumb-width-height .ecs-thumb-divider em{white-space:nowrap}.ecs-settings-thumb .ecs-setting-help,.ecs-settings-thumb .ecs-settings-thumb-size{margin-top:5px}
templates/admin-page.php CHANGED
@@ -1,7 +1,7 @@
1
  <div class="wrap">
2
- <h2><?php _e( 'The Events Calendar Shortcode' ); ?></h2>
3
 
4
- <p><?php echo sprintf( esc_html__( 'The shortcode displays lists of your events. For example the shortcode to show next 8 events in the category "%s" in ASC order with date showing:', 'the-events-calendar-shortcode' ), 'festival' ); ?></p>
5
 
6
  <p class="shortcode">[ecs-list-events cat='festival' limit='8']</p>
7
 
@@ -76,13 +76,15 @@
76
  <blockquote>[ecs-list-events orderby='title']</blockquote>
77
  <?php do_action( 'ecs_admin_page_options_after' ); ?>
78
 
79
- <div id="ecs-link-display">
80
- <?php wp_nonce_field( 'ecs-link-nonce', 'ecs-link-nonce' ) ?>
81
- <h2>We hope this plugin is helping you out!</h2>
82
- <p>Would you like to show your thanks for the plugin? Add a small link underneath your events pointing to The Events Calendar Shortcode project.</p>
83
- <p><label><input type="checkbox" value="1" id="show-ecs-link"<?php echo ( get_option( 'ecs-show-link' ) ? ' checked' : '' ) ?>> Show small link to The Events Calendar Shortcode</label></p>
84
- <p class="small toggle-message" style="display:none;">Value saved</p>
85
- </div>
 
 
86
  </div>
87
 
88
  </td>
@@ -108,7 +110,7 @@
108
  <div id="ecs-pro-description">
109
 
110
  <h3><?php echo esc_html__( 'Want a better looking design without adding any CSS?', 'the-events-calendar-shortcode' ) ?></h3>
111
- <p><?php echo sprintf( esc_html__( 'Check out %sThe Events Calendar Shortcode PRO%s. Some examples of the designs:', 'the-events-calendar-shortcode' ), '<a target="_blank" href="https://eventcalendarnewsletter.com/the-events-calendar-shortcode?utm_source=plugin&utm_medium=link&utm_campaign=tecs-help-design&utm_content=description">', '</a>' ); ?></p>
112
  <div id="ecs-pro-designs">
113
  <p><a target="_blank" href="https://eventcalendarnewsletter.com/the-events-calendar-shortcode?utm_source=plugin&utm_medium=link&utm_campaign=tecs-help-design-image-1&utm_content=description"><img alt="" style="width: 300px;" src="<?php echo plugins_url( '/static/shortcode-default-design-2.png', TECS_CORE_PLUGIN_FILE ) ?>"><br><?php echo esc_html( __( 'Pro version default design example', 'the-events-calendar-shortcode' ) ); ?></a></p>
114
  <p><a target="_blank" href="https://eventcalendarnewsletter.com/the-events-calendar-shortcode?utm_source=plugin&utm_medium=link&utm_campaign=tecs-help-design-image-2&utm_content=description"><img alt="" style="width: 300px;" src="<?php echo plugins_url( '/static/event-calendar-shortcode-compact-design.png', TECS_CORE_PLUGIN_FILE ) ?>"><br><?php echo esc_html( __( 'Pro version compact design example', 'the-events-calendar-shortcode' ) ); ?></a></p>
@@ -145,7 +147,7 @@
145
  <p><?php echo esc_html__( 'Use the new default or compact designs, or create your own using one or more templates in your theme folder', 'the-events-calendar-shortcode' ) ?></p>
146
  <h4><?php echo esc_html__( 'Filter Bar', 'the-events-calendar-shortcode' ) ?></h4>
147
  <p><?php echo esc_html__( 'Allow visitors to change what events are displayed wherever you put a calendar view on your site', 'the-events-calendar-shortcode' ) ?></p>
148
- <p><?php echo sprintf( esc_html__( '%sGet The Events Calendar Shortcode PRO%s', 'the-events-calendar-shortcode' ), '<a class="ecs-button" target="_blank" href="https://eventcalendarnewsletter.com/the-events-calendar-shortcode?utm_source=plugin&utm_medium=link&utm_campaign=tecs-help-after-options&utm_content=description">', '</a>' ); ?> or <a href="https://demo.eventcalendarnewsletter.com/the-events-calendar-shortcode/">see it in action</p>
149
  </div>
150
  <?php endif; ?>
151
  </td>
1
  <div class="wrap">
2
+ <h2><?php _e( 'The Events Calendar Shortcode & Block', 'the-events-calendar-shortcode' ); ?></h2>
3
 
4
+ <p><?php echo sprintf( esc_html__( 'The shortcode and block displays lists of your events wherever you want them to appear on your site. For example the shortcode to show next 8 events in the category "%s" in ASC order with date showing:', 'the-events-calendar-shortcode' ), 'festival' ); ?></p>
5
 
6
  <p class="shortcode">[ecs-list-events cat='festival' limit='8']</p>
7
 
76
  <blockquote>[ecs-list-events orderby='title']</blockquote>
77
  <?php do_action( 'ecs_admin_page_options_after' ); ?>
78
 
79
+ <?php if ( apply_filters( 'ecs_show_upgrades', true ) ): ?>
80
+ <div id="ecs-link-display">
81
+ <?php wp_nonce_field( 'ecs-link-nonce', 'ecs-link-nonce' ) ?>
82
+ <h2>We hope this plugin is helping you out!</h2>
83
+ <p>Would you like to show your thanks for the plugin? Add a small link underneath your events pointing to The Events Calendar Shortcode project.</p>
84
+ <p><label><input type="checkbox" value="1" id="show-ecs-link"<?php echo ( get_option( 'ecs-show-link' ) ? ' checked' : '' ) ?>> Show small link to The Events Calendar Shortcode</label></p>
85
+ <p class="small toggle-message" style="display:none;">Value saved</p>
86
+ </div>
87
+ <?php endif; ?>
88
  </div>
89
 
90
  </td>
110
  <div id="ecs-pro-description">
111
 
112
  <h3><?php echo esc_html__( 'Want a better looking design without adding any CSS?', 'the-events-calendar-shortcode' ) ?></h3>
113
+ <p><?php echo sprintf( esc_html__( 'Check out %sThe Events Calendar Shortcode & Block PRO%s. Some examples of the designs:', 'the-events-calendar-shortcode' ), '<a target="_blank" href="https://eventcalendarnewsletter.com/the-events-calendar-shortcode?utm_source=plugin&utm_medium=link&utm_campaign=tecs-help-design&utm_content=description">', '</a>' ); ?></p>
114
  <div id="ecs-pro-designs">
115
  <p><a target="_blank" href="https://eventcalendarnewsletter.com/the-events-calendar-shortcode?utm_source=plugin&utm_medium=link&utm_campaign=tecs-help-design-image-1&utm_content=description"><img alt="" style="width: 300px;" src="<?php echo plugins_url( '/static/shortcode-default-design-2.png', TECS_CORE_PLUGIN_FILE ) ?>"><br><?php echo esc_html( __( 'Pro version default design example', 'the-events-calendar-shortcode' ) ); ?></a></p>
116
  <p><a target="_blank" href="https://eventcalendarnewsletter.com/the-events-calendar-shortcode?utm_source=plugin&utm_medium=link&utm_campaign=tecs-help-design-image-2&utm_content=description"><img alt="" style="width: 300px;" src="<?php echo plugins_url( '/static/event-calendar-shortcode-compact-design.png', TECS_CORE_PLUGIN_FILE ) ?>"><br><?php echo esc_html( __( 'Pro version compact design example', 'the-events-calendar-shortcode' ) ); ?></a></p>
147
  <p><?php echo esc_html__( 'Use the new default or compact designs, or create your own using one or more templates in your theme folder', 'the-events-calendar-shortcode' ) ?></p>
148
  <h4><?php echo esc_html__( 'Filter Bar', 'the-events-calendar-shortcode' ) ?></h4>
149
  <p><?php echo esc_html__( 'Allow visitors to change what events are displayed wherever you put a calendar view on your site', 'the-events-calendar-shortcode' ) ?></p>
150
+ <p><?php echo sprintf( esc_html__( '%sGet The Events Calendar Shortcode & Block PRO%s', 'the-events-calendar-shortcode' ), '<a class="ecs-button" target="_blank" href="https://eventcalendarnewsletter.com/the-events-calendar-shortcode?utm_source=plugin&utm_medium=link&utm_campaign=tecs-help-after-options&utm_content=description">', '</a>' ); ?> or <a href="https://demo.eventcalendarnewsletter.com/the-events-calendar-shortcode/">see it in action</p>
151
  </div>
152
  <?php endif; ?>
153
  </td>
the-events-calendar-shortcode.php CHANGED
@@ -1,9 +1,9 @@
1
  <?php
2
  /***
3
- Plugin Name: The Events Calendar Shortcode
4
  Plugin URI: https://eventcalendarnewsletter.com/the-events-calendar-shortcode/
5
- Description: An addon to add shortcode functionality for <a href="http://wordpress.org/plugins/the-events-calendar/">The Events Calendar Plugin by Modern Tribe</a>.
6
- Version: 1.10.1
7
  Author: Event Calendar Newsletter
8
  Author URI: https://eventcalendarnewsletter.com/the-events-calendar-shortcode
9
  Contributors: brianhogg
@@ -22,6 +22,7 @@ if ( !defined( 'ABSPATH' ) ) {
22
  define( 'TECS_CORE_PLUGIN_FILE', __FILE__ );
23
 
24
  include_once dirname( TECS_CORE_PLUGIN_FILE ) . '/includes/wp-requirements.php';
 
25
 
26
  // Check plugin requirements before loading plugin.
27
  $this_plugin_checks = new TECS_WP_Requirements( 'The Events Calendar Shortcode', plugin_basename( TECS_CORE_PLUGIN_FILE ), array(
@@ -55,7 +56,7 @@ class Events_Calendar_Shortcode
55
  *
56
  * @since 1.0.0
57
  */
58
- const VERSION = '1.10.1';
59
 
60
  private $admin_page = null;
61
 
@@ -93,9 +94,9 @@ class Events_Calendar_Shortcode
93
 
94
  public function show_tec_not_installed_message() {
95
  if ( current_user_can( 'activate_plugins' ) ) {
96
- $url = 'plugin-install.php?tab=plugin-information&plugin=the-events-calendar&TB_iframe=true';
97
  $title = __( 'The Events Calendar', 'tribe-events-ical-importer' );
98
- echo '<div class="error"><p>' . sprintf( esc_html( __( 'To begin using %s, please install the latest version of %s%s%s and add an event.', 'the-events-calendar-shortcode' ) ), 'The Events Calendar Shortcode', '<a href="' . esc_url( $url ) . '" class="thickbox" title="' . esc_attr( $title ) . '">', 'The Events Calendar', '</a>' ) . '</p></div>';
99
  }
100
  }
101
 
@@ -104,8 +105,7 @@ class Events_Calendar_Shortcode
104
  return;
105
  }
106
 
107
- $page_title = esc_html__( 'Shortcode', 'the-events-calendar-shortcode' );
108
- $menu_title = esc_html__( 'Shortcode', 'tribe-common' );
109
  $capability = apply_filters( 'ecs_admin_page_capability', 'install_plugins' );
110
 
111
  $where = Tribe__Settings::instance()->get_parent_slug();
@@ -339,7 +339,7 @@ class Events_Calendar_Shortcode
339
 
340
  case 'excerpt':
341
  if ( self::isValid( $atts['excerpt'] ) ) {
342
- $excerptLength = is_numeric($atts['excerpt']) ? $atts['excerpt'] : 100;
343
  $event_output .= apply_filters( 'ecs_event_excerpt_tag_start', '<p class="ecs-excerpt">', $atts, $post ) .
344
  apply_filters( 'ecs_event_excerpt', self::get_excerpt( $excerptLength ), $atts, $post, $excerptLength ) .
345
  apply_filters( 'ecs_event_excerpt_tag_end', '</p>', $atts, $post );
@@ -395,6 +395,9 @@ class Events_Calendar_Shortcode
395
  }
396
 
397
  public function add_ecs_link( $output, $posts, $atts ) {
 
 
 
398
  $output .= "<!--\n Event listing powered by The Events Calendar Shortcode\n https://eventcalendarnewsletter.com/the-events-calendar-shortcode/ \n-->";
399
  if ( ! get_option( 'ecs-show-link', false ) ) {
400
  return $output;
1
  <?php
2
  /***
3
+ Plugin Name: The Events Calendar Shortcode & Block
4
  Plugin URI: https://eventcalendarnewsletter.com/the-events-calendar-shortcode/
5
+ Description: An addon to add shortcode and new editor block functionality for The Events Calendar Plugin by Modern Tribe.
6
+ Version: 2.0
7
  Author: Event Calendar Newsletter
8
  Author URI: https://eventcalendarnewsletter.com/the-events-calendar-shortcode
9
  Contributors: brianhogg
22
  define( 'TECS_CORE_PLUGIN_FILE', __FILE__ );
23
 
24
  include_once dirname( TECS_CORE_PLUGIN_FILE ) . '/includes/wp-requirements.php';
25
+ include_once dirname( TECS_CORE_PLUGIN_FILE ) . '/block/init.php';
26
 
27
  // Check plugin requirements before loading plugin.
28
  $this_plugin_checks = new TECS_WP_Requirements( 'The Events Calendar Shortcode', plugin_basename( TECS_CORE_PLUGIN_FILE ), array(
56
  *
57
  * @since 1.0.0
58
  */
59
+ const VERSION = '2.0';
60
 
61
  private $admin_page = null;
62
 
94
 
95
  public function show_tec_not_installed_message() {
96
  if ( current_user_can( 'activate_plugins' ) ) {
97
+ $url = 'plugin-install.php?s=the+events+calendar&tab=search&type=term';
98
  $title = __( 'The Events Calendar', 'tribe-events-ical-importer' );
99
+ echo '<div class="error"><p>' . sprintf( esc_html( __( 'To begin using %s, please install the latest version of %s%s%s and add an event.', 'the-events-calendar-shortcode' ) ), 'The Events Calendar Shortcode', '<a href="' . esc_url( admin_url( $url ) ) . '" title="' . esc_attr( $title ) . '">', 'The Events Calendar', '</a>' ) . '</p></div>';
100
  }
101
  }
102
 
105
  return;
106
  }
107
 
108
+ $page_title = $menu_title = esc_html__( 'Shortcode & Block', 'the-events-calendar-shortcode' );
 
109
  $capability = apply_filters( 'ecs_admin_page_capability', 'install_plugins' );
110
 
111
  $where = Tribe__Settings::instance()->get_parent_slug();
339
 
340
  case 'excerpt':
341
  if ( self::isValid( $atts['excerpt'] ) ) {
342
+ $excerptLength = is_numeric( $atts['excerpt'] ) ? intval( $atts['excerpt'] ) : 100;
343
  $event_output .= apply_filters( 'ecs_event_excerpt_tag_start', '<p class="ecs-excerpt">', $atts, $post ) .
344
  apply_filters( 'ecs_event_excerpt', self::get_excerpt( $excerptLength ), $atts, $post, $excerptLength ) .
345
  apply_filters( 'ecs_event_excerpt_tag_end', '</p>', $atts, $post );
395
  }
396
 
397
  public function add_ecs_link( $output, $posts, $atts ) {
398
+ if ( ! apply_filters( 'ecs_show_upgrades', true ) ) {
399
+ return $output;
400
+ }
401
  $output .= "<!--\n Event listing powered by The Events Calendar Shortcode\n https://eventcalendarnewsletter.com/the-events-calendar-shortcode/ \n-->";
402
  if ( ! get_option( 'ecs-show-link', false ) ) {
403
  return $output;