Instant Images – One Click Unsplash Uploads - Version 4.3.1

Version Description

  • April 13, 2020 =
  • FIX - Fixed issue with Instant Images causing Yoast SEO metabox to not show correctly in the classic WordPress editor. Not really sure why, but the Instant Images JS dependencies seemed to interfere with Yoast.
  • FIX - Added user privileges checks to the new Media Modal functionality.
Download this release

Release Info

Developer dcooney
Plugin Icon 128x128 Instant Images – One Click Unsplash Uploads
Version 4.3.1
Comparing to
See all releases

Code changes from version 4.2.0 to 4.3.1

README.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: dcooney, connekthq
3
  Donate link: https://connekthq.com/donate/
4
  Tags: stock photo, unsplash, prototyping, photos, upload, media library, image upload, free photos
5
  Requires at least: 4.0
6
- Tested up to: 5.3.1
7
- Stable tag: 4.2.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -29,6 +29,7 @@ The perfect tool for users who want to save time and frustration by uploading im
29
  * **Time Saver** - Quickly upload amazing stock photos without leaving the comfort of your WordPress admin.
30
  * **Theme/Plugin Developers** - A great tool for developers who want to prototype and develop using real world imagery.
31
  * **Gutenberg** - Instant Images directly integrates with Gutenberg as a plugin sidebar.
 
32
  * **Edit Image Metadata** - Easily edit image filename, alt text and caption prior to uploading to your media library.
33
  * **Easy to Use** - It couldn't get much more simple, just click an image and it's automatically uploaded to your media library for use on your site.
34
 
@@ -129,6 +130,20 @@ How to install Instant Images.
129
 
130
  == Changelog ==
131
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  = 4.2.0 - December 14, 2019 =
133
  * NEW - Added image orientation search filter
134
  * FIX - Fixed issue with instant images being rendered in Gutenberg editor for users without permissions.
3
  Donate link: https://connekthq.com/donate/
4
  Tags: stock photo, unsplash, prototyping, photos, upload, media library, image upload, free photos
5
  Requires at least: 4.0
6
+ Tested up to: 5.4.0
7
+ Stable tag: 4.3.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
29
  * **Time Saver** - Quickly upload amazing stock photos without leaving the comfort of your WordPress admin.
30
  * **Theme/Plugin Developers** - A great tool for developers who want to prototype and develop using real world imagery.
31
  * **Gutenberg** - Instant Images directly integrates with Gutenberg as a plugin sidebar.
32
+ * **Media Modal** - Instant Images is available as a tab in the WordPress media Modal.
33
  * **Edit Image Metadata** - Easily edit image filename, alt text and caption prior to uploading to your media library.
34
  * **Easy to Use** - It couldn't get much more simple, just click an image and it's automatically uploaded to your media library for use on your site.
35
 
130
 
131
  == Changelog ==
132
 
133
+ = 4.3.1 - April 13, 2020 =
134
+ * FIX - Fixed issue with Instant Images causing Yoast SEO metabox to not show correctly in the classic WordPress editor. Not really sure why, but the Instant Images JS dependencies seemed to interfere with Yoast.
135
+ * FIX - Added user privileges checks to the new Media Modal functionality.
136
+
137
+
138
+ = 4.3.0 - April 9, 2020 =
139
+ * NEW - Adding `Instant Images` tab to the WordPress Media Modal.
140
+ * NEW - When images are uploaded directly to a post the current Post ID is attached to the upload as the parent post.
141
+ * NEW - Adding default alt text directly from Unsplash API.
142
+ * UPDATE - Updated image uploader API to _hopefully_ improve stability of the upload and resize process. The new process uses core WordPress functions for the upload.
143
+ * UPDATE - Switching tab navigation from `<a/> to `<button/>` for better accessibility.
144
+ * FIX - Added a fix for JS error regarding `PluginSidebar` registration on non-gutenberg editor pages.
145
+
146
+
147
  = 4.2.0 - December 14, 2019 =
148
  * NEW - Added image orientation search filter
149
  * FIX - Fixed issue with instant images being rendered in Gutenberg editor for users without permissions.
admin/admin.php CHANGED
@@ -4,18 +4,18 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
4
 
5
  /**
6
  * instant_img_admin_menu
7
- * Create Admin Menu
8
  *
9
  * @since 2.0
10
  */
11
 
12
  function instant_img_admin_menu() {
13
- $usplash_settings_page = add_submenu_page(
14
- 'upload.php',
15
- INSTANT_IMG_TITLE,
16
- INSTANT_IMG_TITLE,
17
- apply_filters('instant_images_user_role', 'upload_files'),
18
- INSTANT_IMG_NAME,
19
  'instant_img_settings_page'
20
  );
21
  add_action( 'load-' . $usplash_settings_page, 'instant_img_load_scripts' ); //Add our admin scripts
@@ -24,6 +24,43 @@ add_action( 'admin_menu', 'instant_img_admin_menu' );
24
 
25
 
26
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
 
28
  /**
29
  * instant_img_load_scripts
@@ -38,7 +75,6 @@ function instant_img_load_scripts(){
38
 
39
 
40
 
41
-
42
  /**
43
  * instant_img_enqueue_scripts
44
  * Admin Enqueue Scripts
@@ -52,7 +88,6 @@ function instant_img_enqueue_scripts(){
52
 
53
 
54
 
55
-
56
  /**
57
  * instant_img_scripts
58
  * Localize vars and scripts
@@ -61,116 +96,25 @@ function instant_img_enqueue_scripts(){
61
  */
62
  function instant_img_scripts(){
63
  $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; // Use minified libraries if SCRIPT_DEBUG is turned off
64
-
65
- wp_enqueue_style('admin-instant-images', INSTANT_IMG_URL. 'dist/css/instant-images'. $suffix .'.css', '', INSTANT_IMG_VERSION);
66
  wp_enqueue_script('jquery');
67
  wp_enqueue_script('jquery-form', true);
68
- wp_enqueue_script('masonry', true);
69
-
70
- wp_enqueue_script('instant-images-react', INSTANT_IMG_URL. 'dist/js/instant-images'. $suffix .'.js', '', INSTANT_IMG_VERSION, true);
71
- wp_enqueue_script('instant-images', INSTANT_IMG_ADMIN_URL. 'assets/js/admin.js', 'jquery', INSTANT_IMG_VERSION, true);
72
-
73
- InstantImages::instant_img_localize();
74
-
75
- }
76
-
77
-
78
-
79
- /**
80
- * instant_img_show_tabs
81
- * Show tab to upload image on post edit screens
82
- *
83
- * @return $show_tab boolean
84
- * @since 3.2.1
85
- */
86
- function instant_img_show_tabs() {
87
- $options = get_option( 'instant_img_settings' );
88
- $show_tab = true;
89
- if(isset($options['instant_img_btn_display'])){
90
- if($options['instant_img_btn_display'] == 1){
91
- $show_tab = false; // Hide the tab
92
- }
93
- }
94
-
95
- return $show_tab;
96
- }
97
-
98
-
99
-
100
-
101
- /**
102
- * instant_img_media_upload_tabs_handler
103
- * Add tab to media upload window
104
- *
105
- * @since 3.2.1
106
- */
107
- function instant_img_media_upload_tabs_handler($tabs) {
108
- $options = get_option( 'instant_img_settings' );
109
- $show_tab = instant_img_show_tabs();
110
-
111
- if($show_tab){
112
- $newtab = array ( 'instant_img_tab' => __('Instant Images', 'instant-images') );
113
- $tabs = array_merge( $tabs, $newtab );
114
- return $tabs;
115
- }
116
- }
117
- add_filter('media_upload_tabs', 'instant_img_media_upload_tabs_handler');
118
-
119
-
120
-
121
- /**
122
- * instant_img_media_buttons_context_handler
123
- * Add pop up content to edit, new and post pages
124
- *
125
- * @since 3.2.1
126
- */
127
- function instant_img_media_buttons_context_handler() {
128
- $show_tab = instant_img_show_tabs();
129
- if($show_tab){
130
- return '<a href="'.add_query_arg('tab', 'instant_img_tab', esc_url(get_upload_iframe_src())).'" class="thickbox button" title="'.esc_attr__('Instant Images', 'instant-images').'">&nbsp;'. __('Instant Images', 'instant-images') .'&nbsp;</a>';
131
- }
132
- }
133
- add_filter('media_buttons_context', 'instant_img_media_buttons_context_handler');
134
-
135
-
136
-
137
- /**
138
- * media_upload_instant_images_handler
139
- * Add instant images to the iframe
140
- *
141
- * @since 3.2.1
142
- */
143
- function media_upload_instant_images_handler() {
144
- wp_iframe('media_instant_img_tab');
145
- }
146
- add_action('media_upload_instant_img_tab', 'media_upload_instant_images_handler');
147
 
 
 
148
 
 
149
 
150
- /**
151
- * media_instant_img_popup_content
152
- * Add pop up content to edit, new and post pages
153
- *
154
- * @since 2.0
155
- */
156
- function media_instant_img_tab() {
157
- //media_upload_header();
158
- instant_img_scripts();
159
- $show_settings = false;
160
- ?>
161
- <div class="instant-img-container editor" data-media-popup="true">
162
- <?php include( INSTANT_IMG_PATH . 'admin/views/unsplash.php'); ?>
163
- </div>
164
- <?php
165
  }
166
 
167
 
168
 
169
  /*
170
- * instant_img_settings_page
171
- * Settings page
172
  *
173
- * @since 2.0
174
  */
175
 
176
  function instant_img_settings_page(){
@@ -183,10 +127,10 @@ function instant_img_settings_page(){
183
 
184
 
185
  /*
186
- * instant_img_filter_admin_footer_text
187
- * Filter the WP Admin footer text
188
  *
189
- * @since 2.0
190
  */
191
 
192
  function instant_img_filter_admin_footer_text( $text ) {
@@ -198,4 +142,3 @@ function instant_img_filter_admin_footer_text( $text ) {
198
  }
199
  add_filter( 'admin_footer_text', 'instant_img_filter_admin_footer_text'); // Admin menu text
200
 
201
-
4
 
5
  /**
6
  * instant_img_admin_menu
7
+ * Create admin menu item under 'Media'
8
  *
9
  * @since 2.0
10
  */
11
 
12
  function instant_img_admin_menu() {
13
+ $usplash_settings_page = add_submenu_page(
14
+ 'upload.php',
15
+ INSTANT_IMG_TITLE,
16
+ INSTANT_IMG_TITLE,
17
+ apply_filters('instant_images_user_role', 'upload_files'),
18
+ INSTANT_IMG_NAME,
19
  'instant_img_settings_page'
20
  );
21
  add_action( 'load-' . $usplash_settings_page, 'instant_img_load_scripts' ); //Add our admin scripts
24
 
25
 
26
 
27
+ /**
28
+ * instant_img_post_enqueue_scripts
29
+ * Classic Editor Only - Add Instant Images scripts to post edit screens
30
+ *
31
+ * @since 4.3
32
+ */
33
+ function instant_img_post_enqueue_scripts($hook) {
34
+
35
+ // Confirm User Privileges
36
+ if (!current_user_can( apply_filters('instant_images_user_role', 'upload_files') )){
37
+ return false;
38
+ }
39
+
40
+ // Exit if not post or edit screen
41
+ if ( $hook !== 'post-new.php' && $hook !== 'post.php' ) {
42
+ return false;
43
+ }
44
+
45
+ $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
46
+
47
+ // CSS
48
+ wp_enqueue_style( 'admin-instant-images', INSTANT_IMG_URL. 'dist/css/instant-images'. $suffix .'.css', '', INSTANT_IMAGES_VERSION );
49
+
50
+ // JS
51
+ wp_enqueue_script(
52
+ 'instant-images-media-router',
53
+ INSTANT_IMG_URL. 'dist/js/instant-images-media'. $suffix .'.js',
54
+ array( 'jquery'),
55
+ INSTANT_IMAGES_VERSION,
56
+ true
57
+ );
58
+ InstantImages::instant_img_localize( 'instant-images-media-router' );
59
+
60
+ }
61
+ add_action( 'admin_enqueue_scripts', 'instant_img_post_enqueue_scripts' );
62
+
63
+
64
 
65
  /**
66
  * instant_img_load_scripts
75
 
76
 
77
 
 
78
  /**
79
  * instant_img_enqueue_scripts
80
  * Admin Enqueue Scripts
88
 
89
 
90
 
 
91
  /**
92
  * instant_img_scripts
93
  * Localize vars and scripts
96
  */
97
  function instant_img_scripts(){
98
  $suffix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; // Use minified libraries if SCRIPT_DEBUG is turned off
99
+
100
+ wp_enqueue_style('admin-instant-images', INSTANT_IMG_URL. 'dist/css/instant-images'. $suffix .'.css', '', INSTANT_IMAGES_VERSION);
101
  wp_enqueue_script('jquery');
102
  wp_enqueue_script('jquery-form', true);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
 
104
+ wp_enqueue_script('instant-images-react', INSTANT_IMG_URL. 'dist/js/instant-images'. $suffix .'.js', '', INSTANT_IMAGES_VERSION, true);
105
+ wp_enqueue_script('instant-images', INSTANT_IMG_ADMIN_URL. 'assets/js/admin.js', 'jquery', INSTANT_IMAGES_VERSION, true);
106
 
107
+ InstantImages::instant_img_localize();
108
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  }
110
 
111
 
112
 
113
  /*
114
+ * instant_img_settings_page
115
+ * Settings page
116
  *
117
+ * @since 2.0
118
  */
119
 
120
  function instant_img_settings_page(){
127
 
128
 
129
  /*
130
+ * instant_img_filter_admin_footer_text
131
+ * Filter the WP Admin footer text
132
  *
133
+ * @since 2.0
134
  */
135
 
136
  function instant_img_filter_admin_footer_text( $text ) {
142
  }
143
  add_filter( 'admin_footer_text', 'instant_img_filter_admin_footer_text'); // Admin menu text
144
 
 
admin/includes/settings.php CHANGED
@@ -42,13 +42,15 @@ function instant_img_admin_init(){
42
  );
43
 
44
  // Button Display
45
- add_settings_field(
46
- 'instant_img_btn_display',
47
- __('Button', 'instant-images' ),
48
- 'instant_images_button_display_callback',
49
- 'instant-images',
50
- 'unsplash_general_settings'
51
- );
 
 
52
  }
53
 
54
 
42
  );
43
 
44
  // Button Display
45
+ /*
46
+ add_settings_field(
47
+ 'instant_img_btn_display',
48
+ __('Button', 'instant-images' ),
49
+ 'instant_images_button_display_callback',
50
+ 'instant-images',
51
+ 'unsplash_general_settings'
52
+ );
53
+ */
54
  }
55
 
56
 
admin/includes/unsplash-settings.php CHANGED
@@ -23,10 +23,10 @@
23
  <h2 class="w-border"><?php _e('What\'s New', 'instant-images'); ?></h2>
24
  <p><?php _e('The latest Instant Images updates', 'instant-images'); ?>.</p>
25
  <div class="cta-wrap">
26
- <h4><span>4.0</span></h4>
27
  <ul class="whats-new">
28
- <li>Gutenberg Support - Instant Images directly integrates with Gutenberg as a plugin sidebar..</li>
29
- <li>Better image uploading and error handling.</li>
30
  <li>Added `instant_images_user_role` filter to allow for control over user capability.</li>
31
  <li>Updated to meet revised <a href="https://medium.com/unsplash/unsplash-api-guidelines-28e0216e6daa" target="_blank">Unsplash API guidelines</a>.</li>
32
  <li>Adding support for searching individual photos by Unsplash ID - searching <pre>id:{photo_id}</pre> will return a single result.<br/>e.g. <pre>id:YiUi00uqKk8</pre></li>
@@ -42,6 +42,9 @@
42
  array(
43
  'slug' => 'easy-query'
44
  ),
 
 
 
45
  array(
46
  'slug' => 'velocity',
47
  )
23
  <h2 class="w-border"><?php _e('What\'s New', 'instant-images'); ?></h2>
24
  <p><?php _e('The latest Instant Images updates', 'instant-images'); ?>.</p>
25
  <div class="cta-wrap">
26
+ <h4><span>4.3</span></h4>
27
  <ul class="whats-new">
28
+ <li>Instant Images tab added to the WordPress Media Modal.</li>
29
+ <li>Gutenberg Support - Instant Images directly integrates with Gutenberg as a plugin sidebar.</li>
30
  <li>Added `instant_images_user_role` filter to allow for control over user capability.</li>
31
  <li>Updated to meet revised <a href="https://medium.com/unsplash/unsplash-api-guidelines-28e0216e6daa" target="_blank">Unsplash API guidelines</a>.</li>
32
  <li>Adding support for searching individual photos by Unsplash ID - searching <pre>id:{photo_id}</pre> will return a single result.<br/>e.g. <pre>id:YiUi00uqKk8</pre></li>
42
  array(
43
  'slug' => 'easy-query'
44
  ),
45
+ array(
46
+ 'slug' => 'block-manager',
47
+ ),
48
  array(
49
  'slug' => 'velocity',
50
  )
admin/views/unsplash.php CHANGED
@@ -12,11 +12,6 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
12
  echo sprintf($tagline, '<a href="https://unsplash.com/" target="_blank">unsplash.com</a>');
13
  ?>
14
  </h1>
15
- <?php
16
- $url = "//{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
17
- $escaped_url = htmlspecialchars( $url, ENT_QUOTES, 'UTF-8' );
18
- ?>
19
- <!-- <a href="https://unsplash.com/oauth/authorize?client_id=<?php echo INSTANT_IMG_DEFAULT_APP_ID; ?>&redirect_uri=https://connekthq.com/?unsplash&response_type=code&scope=public">Login</a> -->
20
  <button type="button" class="button button-secondary button-large">
21
  <i class="fa fa-cog" aria-hidden="true"></i> <?php _e('Settings', 'instant-images'); ?>
22
  </button>
@@ -28,8 +23,6 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
28
  include( INSTANT_IMG_PATH . 'admin/includes/unsplash-settings.php');
29
  }
30
  ?>
31
- <section class="instant-images-wrapper">
32
- <div class="cnkt-main">
33
- <div id="app"></div>
34
- </div>
35
  </section>
12
  echo sprintf($tagline, '<a href="https://unsplash.com/" target="_blank">unsplash.com</a>');
13
  ?>
14
  </h1>
 
 
 
 
 
15
  <button type="button" class="button button-secondary button-large">
16
  <i class="fa fa-cog" aria-hidden="true"></i> <?php _e('Settings', 'instant-images'); ?>
17
  </button>
23
  include( INSTANT_IMG_PATH . 'admin/includes/unsplash-settings.php');
24
  }
25
  ?>
26
+ <section class="instant-images-wrapper">
27
+ <div id="app"></div>
 
 
28
  </section>
api/download.php ADDED
@@ -0,0 +1,183 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /*
4
+ * rest_api_init
5
+ * Custom /resize route
6
+ *
7
+ * @since 3.0
8
+ */
9
+
10
+ add_action( 'rest_api_init', function () {
11
+ $my_namespace = 'instant-images';
12
+ $my_endpoint = '/download';
13
+ register_rest_route( $my_namespace, $my_endpoint,
14
+ array(
15
+ 'methods' => 'PUT',
16
+ 'callback' => 'instant_images_download',
17
+ )
18
+ );
19
+ });
20
+
21
+
22
+
23
+ /*
24
+ * resize_image
25
+ * Resize Image and run thru media uploader
26
+ *
27
+ * @param $request $_POST
28
+ * @return $response json
29
+ * @since 3.0
30
+ */
31
+
32
+ function instant_images_download( WP_REST_Request $request ) {
33
+
34
+ if (is_user_logged_in() && current_user_can( apply_filters('instant_images_user_role', 'upload_files') )){
35
+
36
+ error_reporting(E_ALL|E_STRICT);
37
+
38
+ require_once( ABSPATH . 'wp-admin/includes/file.php' );
39
+ require_once( ABSPATH . 'wp-admin/includes/image.php' );
40
+
41
+ // Get JSON Data
42
+ $data = json_decode($request->get_body(), true); // Get contents of request body
43
+
44
+ if($data){
45
+
46
+ $id = $data['id']; // ID
47
+ $image_url = $data['image_url']; // Image URL
48
+ $filename = sanitize_text_field($data['filename']); // $filename
49
+ $title = sanitize_text_field($data['title']); // Title
50
+ $alt = sanitize_text_field($data['alt']); // Alt text
51
+ $caption = sanitize_text_field($data['caption']); // Caption text
52
+ $custom_filename = sanitize_title($data['custom_filename']); // Custom filename
53
+ $parent_id = ($data['parent_id']) ? sanitize_title($data['parent_id']) : 0; // Parent Post
54
+
55
+ // Actual filename
56
+ $name = (!empty($custom_filename)) ? $custom_filename .'.jpg' : $filename;
57
+
58
+
59
+ // Check if remote file exists
60
+ if( !instant_images_remote_file_exists( $image_url ) ){
61
+ // Error
62
+ $response = array(
63
+ 'success' => false,
64
+ 'msg' => __('Image does not exist or there was an error accessing the remote file.', 'instant-images'),
65
+ 'id' => $id,
66
+ 'attachment' => '',
67
+ 'admin_url' => admin_url(),
68
+ );
69
+ wp_send_json($response);
70
+ }
71
+
72
+
73
+ // Send request to `wp_remote_get`
74
+ $response = wp_remote_get( $image_url );
75
+ if ( is_wp_error( $response ) ) {
76
+ return new WP_Error( 100, __( 'Image download failed, please try again. Errors:', 'instant-images' ) . PHP_EOL . $response->get_error_message() );
77
+ }
78
+
79
+ // Get Headers
80
+ $type = wp_remote_retrieve_header( $response, 'content-type' );
81
+ if (!$type) {
82
+ return new WP_Error( 100, __( 'Image type could not be determined', 'instant-images' ) );
83
+ }
84
+
85
+ // Upload remote file
86
+ $mirror = wp_upload_bits( $name, '', wp_remote_retrieve_body( $response ) );
87
+
88
+
89
+ // Build Attachment Data Array
90
+ $attachment = array(
91
+ 'post_title' => $title,
92
+ 'post_excerpt' => $caption,
93
+ 'post_content' => '',
94
+ 'post_status' => 'inherit',
95
+ 'post_mime_type' => $type
96
+ );
97
+
98
+
99
+ // Insert as attachment
100
+ $image_id = wp_insert_attachment($attachment, $mirror['file'], $parent_id);
101
+
102
+
103
+ // Add Alt Text as Post Meta
104
+ update_post_meta( $image_id, '_wp_attachment_image_alt', $alt );
105
+
106
+
107
+ // Generate Metadata
108
+ $attach_data = wp_generate_attachment_metadata( $image_id, $mirror['file'] );
109
+ wp_update_attachment_metadata( $image_id, $attach_data );
110
+
111
+
112
+ // Resize original image to max size (set in Instant Images settings)
113
+ instant_images_resize_download($name);
114
+
115
+ // Success
116
+ $response = array(
117
+ 'success' => true,
118
+ 'msg' => __('Image successfully uploaded to the media library!', 'instant-images'),
119
+ 'id' => $id,
120
+ 'attachment' => array(
121
+ 'id' => $image_id,
122
+ 'url' => wp_get_attachment_url( $image_id ),
123
+ 'alt' => $alt,
124
+ 'caption' => $caption
125
+ ),
126
+ 'admin_url' => admin_url(),
127
+ );
128
+
129
+ wp_send_json($response);
130
+
131
+ } else {
132
+
133
+ $response = array(
134
+ 'success' => false,
135
+ 'msg' => __('There was an error getting image details from the request, please try again.', 'instant-images'),
136
+ 'id' => '',
137
+ 'attachment' => '',
138
+ 'url' => ''
139
+ );
140
+ wp_send_json($response);
141
+
142
+ }
143
+ }
144
+ }
145
+
146
+
147
+ /**
148
+ * Check if a remote image file exists.
149
+ *
150
+ * @param string $url The url to the remote image.
151
+ * @return bool Whether the remote image exists.
152
+ */
153
+ function instant_images_remote_file_exists( $url ) {
154
+ $response = wp_remote_head( $url );
155
+ return 200 === wp_remote_retrieve_response_code( $response );
156
+ }
157
+
158
+
159
+
160
+ /**
161
+ * instant_images_resize_download
162
+ * Resize original image to max size (set in Instant Images settings)
163
+ *
164
+ */
165
+
166
+ function instant_images_resize_download($filename){
167
+
168
+ // WP Options
169
+ $options = get_option( 'instant_img_settings' );
170
+ $download_w = isset($options['unsplash_download_w']) ? $options['unsplash_download_w'] : 1600; // width
171
+ $download_h = isset($options['unsplash_download_h']) ? $options['unsplash_download_h'] : 1200; // height
172
+
173
+ require_once( ABSPATH . 'wp-admin/includes/file.php' );
174
+ require_once( ABSPATH . 'wp-admin/includes/image.php' );
175
+
176
+ $uploads_dir = wp_upload_dir();
177
+ $original_image = wp_get_image_editor( $uploads_dir['path']. '/'. $filename );
178
+ if ( !is_wp_error( $original_image ) ) {
179
+ $original_image->resize( $download_w, $download_h, false );
180
+ $original_image->save( $uploads_dir['path']. '/'. $filename );
181
+ }
182
+
183
+ }
api/resize.php DELETED
@@ -1,149 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * rest_api_init
5
- * Custom /resize route
6
- *
7
- * @since 3.0
8
- */
9
-
10
- add_action( 'rest_api_init', function () {
11
- $my_namespace = 'instant-images';
12
- $my_endpoint = '/resize';
13
- register_rest_route( $my_namespace, $my_endpoint,
14
- array(
15
- 'methods' => 'POST',
16
- 'callback' => 'instant_images_resize_image',
17
- )
18
- );
19
- });
20
-
21
-
22
-
23
- /*
24
- * resize_image
25
- * Resize Image and run thru media uploader
26
- *
27
- * @param $request $_POST
28
- * @return $response json
29
- * @since 3.0
30
- */
31
-
32
- function instant_images_resize_image( WP_REST_Request $request ) {
33
-
34
- if (is_user_logged_in() && current_user_can( apply_filters('instant_images_user_role', 'upload_files') )){
35
-
36
- error_reporting(E_ALL|E_STRICT);
37
-
38
- require_once( ABSPATH . 'wp-admin/includes/file.php' ); // download_url()
39
- require_once( ABSPATH . 'wp-admin/includes/image.php' ); // wp_read_image_metadata()
40
-
41
- // WP Options
42
- $options = get_option( 'instant_img_settings' );
43
- $download_w = isset($options['unsplash_download_w']) ? $options['unsplash_download_w'] : 1600; // width
44
- $download_h = isset($options['unsplash_download_h']) ? $options['unsplash_download_h'] : 1200; // height
45
-
46
- // Get JSON Data
47
- $body = json_decode($request->get_body(), true); // Get contents of request body
48
- $data = json_decode($body['data']); // Get contents of data
49
-
50
- if($body && $data){
51
-
52
- $path = sanitize_text_field($data->path); // Path on server
53
- $name = sanitize_text_field($data->filename); // name
54
- $filename = $path . $name; // full filename
55
- $filetype = wp_check_filetype( basename( $filename ), null );
56
- $title = sanitize_text_field($data->title); // Title
57
- $alt = sanitize_text_field($data->alt); // Alt text
58
- $caption = sanitize_text_field($data->caption); // Caption text
59
- $custom_filename = sanitize_title($data->custom_filename); // Custom filename
60
-
61
- $name = (!empty($custom_filename)) ? $custom_filename .'.jpg' : $name;
62
-
63
- // Resize image to max size (set in Settings)
64
- $image = wp_get_image_editor( $filename );
65
- if ( ! is_wp_error( $image ) ) {
66
- $image->resize( $download_w, $download_h, false );
67
- $image->save( $filename );
68
- }
69
-
70
- // Get upload directory
71
- $wp_upload_dir = wp_upload_dir(); // ['path'] ['basedir']
72
-
73
- // Copy file from uploads/instant-images to a media library directory.
74
- $new_filename = $wp_upload_dir['path'] .'/'. $name;
75
- $copy_file = @copy($filename , $new_filename);
76
-
77
- if(!$copy_file){
78
-
79
- // Error
80
- $response = array(
81
- 'success' => false,
82
- 'msg' => __('Unable to copy image to the media library. Please check your server permissions.', 'instant-images')
83
- );
84
-
85
- } else {
86
-
87
- // Build attachment array
88
- $attachment = array(
89
- 'guid'=> $wp_upload_dir['url'] . basename( $new_filename ),
90
- 'post_mime_type' => $filetype['type'],
91
- 'post_title' => $title,
92
- 'post_excerpt' => $caption,
93
- 'post_content' => '',
94
- 'post_status' => 'inherit'
95
- );
96
-
97
- $image_id = wp_insert_attachment($attachment, $new_filename, 0); // Insert as attachment
98
-
99
- update_post_meta( $image_id, '_wp_attachment_image_alt', $alt ); // Add alt text
100
-
101
- $attach_data = wp_generate_attachment_metadata( $image_id, $new_filename ); // Generate metadata
102
- wp_update_attachment_metadata( $image_id, $attach_data ); // Add metadata
103
-
104
-
105
- // Response
106
- if(file_exists($new_filename)){ // If image was uploaded temporary image
107
-
108
- // Success
109
- $response = array(
110
- 'success' => true,
111
- 'msg' => __('Image successfully uploaded to your media library!', 'instant-images'),
112
- 'id' => $image_id,
113
- 'url' => wp_get_attachment_url( $image_id ),
114
- 'admin_url' => admin_url(),
115
- );
116
-
117
- }else{
118
-
119
- // Error
120
- $response = array(
121
- 'success' => false,
122
- 'msg' => __('There was an error sending the image to your media library. Please check your server permissions and confirm the upload_max_filesize setting (php.ini) is large enough for the downloaded image (8mb minimum is recommended).', 'instant-images'),
123
- 'id' => '',
124
- 'url' => ''
125
- );
126
- }
127
- }
128
-
129
- // Delete temporary image
130
- if(file_exists($filename)){
131
- unlink($filename);
132
- }
133
-
134
- wp_send_json($response); // Send response as JSON
135
-
136
- } else {
137
-
138
- $response = array(
139
- 'success' => false,
140
- 'msg' => __('There was an error resizing the image, please try again.', 'instant-images'),
141
- 'id' => '',
142
- 'url' => ''
143
- );
144
- wp_send_json($response); // Send response as JSON
145
-
146
- }
147
-
148
- }
149
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
api/upload.php DELETED
@@ -1,160 +0,0 @@
1
- <?php
2
-
3
- /*
4
- * rest_api_init
5
- * Custom /upload route
6
- *
7
- * @since 3.0
8
- */
9
-
10
- add_action( 'rest_api_init', function () {
11
- $my_namespace = 'instant-images';
12
- $my_endpoint = '/upload';
13
- register_rest_route( $my_namespace, $my_endpoint,
14
- array(
15
- 'methods' => 'POST',
16
- 'callback' => 'instant_images_upload_image',
17
- )
18
- );
19
- });
20
-
21
-
22
-
23
- /*
24
- * upload_image
25
- * Upload Image to /uploads directory
26
- *
27
- * @param $request $_POST
28
- * @return $response json
29
- * @since 3.0
30
- * @updated 3.3
31
- */
32
-
33
- function instant_images_upload_image( WP_REST_Request $request ) {
34
-
35
- if (is_user_logged_in() && current_user_can( apply_filters('instant_images_user_role', 'upload_files') )){
36
-
37
- error_reporting(E_ALL|E_STRICT);
38
-
39
- // Create /instant-images directory inside /uploads to temporarily store images
40
- if(!is_dir(INSTANT_IMG_UPLOAD_PATH)){
41
- wp_mkdir_p(INSTANT_IMG_UPLOAD_PATH);
42
- }
43
-
44
- // Is directory writeable, if not exit with an error
45
- if (!is_writable(INSTANT_IMG_UPLOAD_PATH.'/')) {
46
- $response = json_encode(
47
- array(
48
- 'error' => true,
49
- 'msg' => __('Unable to save image, check your server permissions of `uploads/instant-instants`', 'instant-images')
50
- )
51
- );
52
- wp_send_json($response);
53
- }
54
-
55
- $body = json_decode($request->get_body(), true); // Get contents of request
56
- $data = json_decode($body['data']); // Info about image
57
- $path = INSTANT_IMG_UPLOAD_PATH.'/'; // Temp Image Path
58
-
59
-
60
- // Get data params from the $body
61
- if($data){
62
- $id = sanitize_key($data->id); // Image ID
63
- $img = sanitize_text_field($data->image); // Image URL
64
- }
65
-
66
-
67
- // If ID and IMG not set, exit
68
- if(!isset($id) || !isset($img)){
69
- $response = array(
70
- 'error' => true,
71
- 'msg' => __('An issue occurred retrieving image info via the REST API.', 'instant-images'),
72
- 'path' => $path,
73
- 'filename' => $filename
74
- );
75
- wp_send_json($response);
76
- }
77
-
78
-
79
- // Create temp. image variables
80
- $filename = $id.'.jpg';
81
- $img_path = $path .''.$filename;
82
-
83
-
84
- // Test allow_url_fopen
85
- // Confirm the server has allow_url_fopen set to `on`
86
- /*
87
- if( !ini_get('allow_url_fopen') ) {
88
- $response = array(
89
- 'error' => true,
90
- 'msg' => __('Instant Images requires `allow_url_fopen` to be on for downloading images from the remote server to yours. Please check your server php.ini file and confirm it is set to on and not off.', 'instant-images'),
91
- 'path' => $path,
92
- 'filename' => $filename
93
- );
94
- wp_send_json($response);
95
- }
96
- */
97
-
98
-
99
- // PHP Copy()
100
- if(function_exists('copy')){
101
-
102
- // Save file to server using copy() function
103
- $saved_file = @copy($img.'jpg', $img_path);
104
-
105
- // Was the temporary image saved?
106
- if ($saved_file) {
107
-
108
- if(file_exists($path.''.$filename)){
109
-
110
- // SUCCESS - Image saved
111
- $response = array(
112
- 'error' => false,
113
- 'msg' => __('Image successfully uploaded to server.', 'instant-images'),
114
- 'path' => $path,
115
- 'filename' => $filename
116
- );
117
-
118
- }else{
119
-
120
- // ERROR - File does NOT exist
121
- $response = array(
122
- 'error' => true,
123
- 'msg' => __('Uploaded image not found, please ensure you have proper permissions set on the uploads directory.', 'instant-images'),
124
- 'path' => '',
125
- 'filename' => ''
126
- );
127
-
128
- }
129
-
130
- } else {
131
-
132
- // ERROR - Error on save
133
- $response = array(
134
- 'error' => true,
135
- 'msg' => __('Unable to download image to server, please check the server permissions of the instant-images folder in your WP uploads directory.', 'instant-images'),
136
- 'path' => '',
137
- 'filename' => ''
138
- );
139
-
140
- }
141
-
142
- }
143
-
144
- // copy() not enabled
145
- else{
146
-
147
- $response = array(
148
- 'error' => true,
149
- 'msg' => __('The core PHP copy() function is not available on your server. Please contact your server administrator to upgrade your PHP version.', 'instant-images'),
150
- 'path' => $path,
151
- 'filename' => $filename
152
- );
153
-
154
- }
155
-
156
- wp_send_json($response);
157
-
158
- }
159
-
160
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dist/css/instant-images.css CHANGED
@@ -471,31 +471,40 @@ input:-webkit-autofill {
471
  position: relative;
472
  }
473
 
474
- .instant-img-container .control-nav li a {
475
  padding: 0 24px 0 2px;
476
  height: 48px;
477
  line-height: 48px;
478
  display: block;
479
  color: #999;
480
  text-decoration: none;
 
 
 
481
  background-position: 96% center;
482
  background-repeat: no-repeat;
 
 
483
  }
484
 
485
- .instant-img-container .control-nav li a.active {
486
- color: #111;
487
- cursor: default;
488
- font-weight: 600;
489
- }
490
-
491
- .instant-img-container .control-nav li a:hover, .instant-img-container .control-nav li a:focus {
492
  color: #111;
493
  outline: none;
494
  -webkit-box-shadow: none;
495
  box-shadow: none;
496
  }
497
 
498
- .instant-img-container .control-nav li a.loading {
 
 
 
 
 
 
 
 
 
 
499
  background-image: url(../img/ajax-loader.gif);
500
  }
501
 
@@ -504,7 +513,7 @@ input:-webkit-autofill {
504
  font-size: 16px;
505
  margin: 0;
506
  }
507
- .instant-img-container .control-nav li a {
508
  padding-left: 3px;
509
  }
510
  }
@@ -543,7 +552,7 @@ input:-webkit-autofill {
543
  width: auto;
544
  height: 34px;
545
  line-height: 34px;
546
- padding: 0 27px 0 10px;
547
  background: #ffffbf;
548
  border: 1px solid #ebebae;
549
  -webkit-border-radius: 3px;
@@ -568,11 +577,13 @@ input:-webkit-autofill {
568
  line-height: 34px;
569
  }
570
 
571
- .instant-img-container .control-nav li.search-field .searchResults a {
572
  padding: 0 10px;
573
- height: 34px;
574
- line-height: 33px;
 
575
  position: absolute;
 
576
  right: 0;
577
  top: 0;
578
  }
@@ -627,8 +638,8 @@ input:-webkit-autofill {
627
  background-color: #f7f7f7 !important;
628
  height: 46px;
629
  line-height: 46px;
630
- -webkit-border-radius: 5px;
631
- border-radius: 5px;
632
  font-size: 16px;
633
  -webkit-transition: padding 0.15s ease;
634
  -o-transition: padding 0.15s ease;
@@ -637,6 +648,8 @@ input:-webkit-autofill {
637
 
638
  .instant-img-container .control-nav li.search-field input:focus {
639
  border-color: #999;
 
 
640
  }
641
 
642
  .instant-img-container .control-nav li.search-field input.searching {
@@ -664,6 +677,7 @@ input:-webkit-autofill {
664
  transition: all 0.25s ease;
665
  opacity: 0.5;
666
  margin: 0;
 
667
  }
668
 
669
  .instant-img-container .control-nav li.search-field button:hover {
@@ -822,30 +836,32 @@ input:-webkit-autofill {
822
  #photos .photo a.upload .status {
823
  visibility: hidden;
824
  opacity: 0;
825
- -webkit-transition: all 0.2575s ease-in-out;
826
- -o-transition: all 0.2575s ease-in-out;
827
- transition: all 0.2575s ease-in-out;
828
  width: 60px;
829
  height: 60px;
830
  line-height: 60px;
831
- -webkit-border-radius: 100%;
832
- border-radius: 100%;
833
  position: absolute;
834
  left: 50%;
835
  top: 50%;
836
  z-index: 5;
837
- -webkit-transform: translate(-50%, -50%) scale(1.5);
838
- -ms-transform: translate(-50%, -50%) scale(1.5);
839
- transform: translate(-50%, -50%) scale(1.5);
840
- -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.15);
841
- box-shadow: 0 0 4px rgba(0, 0, 0, 0.15);
 
 
842
  }
843
 
844
  #photos .photo a.upload .status:before {
845
  font-family: 'FontAwesome';
846
  display: block;
847
  color: #fff;
848
- font-size: 22px;
849
  opacity: 0.8;
850
  }
851
 
@@ -854,7 +870,6 @@ input:-webkit-autofill {
854
  }
855
 
856
  #photos .photo a.upload.uploading .status,
857
- #photos .photo a.upload.resizing .status,
858
  #photos .photo a.upload.success .status,
859
  #photos .photo a.upload.errors .status {
860
  text-align: center;
@@ -872,26 +887,13 @@ input:-webkit-autofill {
872
  #photos .photo a.upload.uploading .status {
873
  visibility: visible;
874
  opacity: 1;
875
- background-color: #5d72c3;
 
 
876
  }
877
 
878
  #photos .photo a.upload.uploading .status:before {
879
- content: '\F019';
880
- }
881
-
882
- #photos .photo a.upload.resizing {
883
- cursor: default !important;
884
- }
885
-
886
- #photos .photo a.upload.resizing .status {
887
- visibility: visible;
888
- opacity: 1;
889
- background-color: #e4c452;
890
- }
891
-
892
- #photos .photo a.upload.resizing .status:before {
893
- color: #fff;
894
- content: '\F065';
895
  }
896
 
897
  #photos .photo a.upload.success {
@@ -901,12 +903,7 @@ input:-webkit-autofill {
901
  #photos .photo a.upload.success .status {
902
  visibility: visible;
903
  opacity: 1;
904
- width: 70px;
905
- height: 70px;
906
- line-height: 70px;
907
  background-color: #63d875;
908
- -webkit-border-radius: 100%;
909
- border-radius: 100%;
910
  }
911
 
912
  #photos .photo a.upload.success .status:before {
@@ -927,12 +924,7 @@ input:-webkit-autofill {
927
  #photos .photo a.upload.errors .status {
928
  visibility: visible;
929
  opacity: 1;
930
- width: 60px;
931
- height: 60px;
932
- line-height: 60px;
933
  background-color: #df3333;
934
- -webkit-border-radius: 100%;
935
- border-radius: 100%;
936
  }
937
 
938
  #photos .photo a.upload.errors .status:before {
@@ -945,8 +937,12 @@ input:-webkit-autofill {
945
  opacity: 0.25 !important;
946
  }
947
 
 
 
 
 
948
  #photos .photo:hover a.upload img, #photos .photo.in-progress a.upload img {
949
- opacity: 0.6;
950
  -webkit-transform: scale(1.075);
951
  -ms-transform: scale(1.075);
952
  transform: scale(1.075);
@@ -973,7 +969,11 @@ input:-webkit-autofill {
973
  }
974
 
975
  #photos .photo.in-progress .user-controls {
976
- opacity: 0;
 
 
 
 
977
  }
978
 
979
  #photos .photo .options {
@@ -999,16 +999,14 @@ input:-webkit-autofill {
999
 
1000
  #photos .photo .options i.heart-like {
1001
  color: #d13714;
1002
- margin-right: 1px;
1003
  -webkit-transition: all 0.25s ease 0.05s;
1004
  -o-transition: all 0.25s ease 0.05s;
1005
  transition: all 0.25s ease 0.05s;
1006
  -webkit-transform: scale(0.55);
1007
  -ms-transform: scale(0.55);
1008
  transform: scale(0.55);
1009
- margin-right: 1px;
1010
  position: relative;
1011
- left: -1px;
1012
  top: 0;
1013
  font-size: 14px;
1014
  opacity: 0.9;
@@ -1019,11 +1017,12 @@ input:-webkit-autofill {
1019
  vertical-align: top;
1020
  line-height: 30px;
1021
  padding: 0 10px;
 
1022
  padding-top: 1px;
1023
  background: rgba(255, 255, 255, 0.5);
1024
  margin: 0;
1025
- -webkit-border-radius: 2px 0 0 2px;
1026
- border-radius: 2px 0 0 2px;
1027
  color: #23282d;
1028
  -webkit-transition: all 0.3s ease;
1029
  -o-transition: all 0.3s ease;
@@ -1039,9 +1038,7 @@ input:-webkit-autofill {
1039
  }
1040
 
1041
  #photos .photo .options a {
1042
- margin-left: 1px;
1043
- -webkit-border-radius: 0 2px 2px 0;
1044
- border-radius: 0 2px 2px 0;
1045
  }
1046
 
1047
  #photos .photo .options a:hover, #photos .photo .options a:focus {
@@ -1061,9 +1058,9 @@ input:-webkit-autofill {
1061
  bottom: 0;
1062
  left: 0;
1063
  width: 100%;
1064
- background: rgba(0, 0, 0, 0.45);
1065
  padding: 0;
1066
- opacity: 0.4;
1067
  -webkit-transition: all 0.3s ease;
1068
  -o-transition: all 0.3s ease;
1069
  transition: all 0.3s ease;
@@ -1082,8 +1079,8 @@ input:-webkit-autofill {
1082
  color: #fff;
1083
  background: rgba(255, 255, 255, 0.75);
1084
  background: transparent;
1085
- -webkit-border-radius: 1px;
1086
- border-radius: 1px;
1087
  height: 34px;
1088
  line-height: 34px;
1089
  font-size: 17px;
@@ -1092,20 +1089,27 @@ input:-webkit-autofill {
1092
  margin: 1px 1px 1px 0;
1093
  padding: 0;
1094
  color: rgba(255, 255, 255, 0.75);
 
 
 
1095
  }
1096
 
1097
  #photos .photo .fade.edit-photo, #photos .photo .fade.edit-photo-admin, #photos .photo .fade.set-featured, #photos .photo .fade.insert {
1098
- width: auto;
1099
  display: inline-block;
1100
  width: 34px;
1101
  text-align: center;
 
1102
  }
1103
 
1104
  #photos .photo .fade.edit-photo i, #photos .photo .fade.edit-photo-admin i, #photos .photo .fade.set-featured i, #photos .photo .fade.insert i {
1105
  line-height: 27px;
1106
- position: relative;
1107
- left: 1px;
1108
- top: 1px;
 
 
 
1109
  }
1110
 
1111
  #photos .photo .fade.edit-photo:hover, #photos .photo .fade.edit-photo:focus, #photos .photo .fade.edit-photo-admin:hover, #photos .photo .fade.edit-photo-admin:focus, #photos .photo .fade.set-featured:hover, #photos .photo .fade.set-featured:focus, #photos .photo .fade.insert:hover, #photos .photo .fade.insert:focus {
@@ -1113,20 +1117,10 @@ input:-webkit-autofill {
1113
  background: rgba(255, 255, 255, 0.95);
1114
  }
1115
 
1116
- #photos .photo .fade.set-featured i {
1117
- top: 0;
1118
- left: 0;
1119
- }
1120
-
1121
  #photos .photo .fade.edit-photo-admin {
1122
  display: none;
1123
  }
1124
 
1125
- #photos .photo .fade.edit-photo i, #photos .photo .fade.edit-photo-admin i {
1126
- left: 0;
1127
- top: 0;
1128
- }
1129
-
1130
  #photos .photo .fade.user {
1131
  background: none;
1132
  text-decoration: none;
@@ -1175,8 +1169,8 @@ input:-webkit-autofill {
1175
  width: 100%;
1176
  background: rgba(0, 0, 0, 0.6);
1177
  text-align: center;
1178
- color: #e0e4f5;
1179
- font-size: 13px;
1180
  margin: 0;
1181
  padding: 0;
1182
  -webkit-transition: all 0.25s ease-in-out;
@@ -1186,6 +1180,11 @@ input:-webkit-autofill {
1186
  z-index: 9999;
1187
  }
1188
 
 
 
 
 
 
1189
  #photos .edit-screen {
1190
  position: absolute;
1191
  left: 0;
@@ -1574,6 +1573,7 @@ input:-webkit-autofill {
1574
  top: 0;
1575
  width: 40px;
1576
  height: 36px;
 
1577
  padding: 0;
1578
  margin: 0;
1579
  }
@@ -1588,6 +1588,65 @@ input:-webkit-autofill {
1588
  display: none;
1589
  }
1590
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1591
  .no-results {
1592
  display: none;
1593
  padding: 150px 100px;
471
  position: relative;
472
  }
473
 
474
+ .instant-img-container .control-nav li button {
475
  padding: 0 24px 0 2px;
476
  height: 48px;
477
  line-height: 48px;
478
  display: block;
479
  color: #999;
480
  text-decoration: none;
481
+ -webkit-box-shadow: none;
482
+ box-shadow: none;
483
+ background-color: transparent;
484
  background-position: 96% center;
485
  background-repeat: no-repeat;
486
+ border: none;
487
+ cursor: pointer;
488
  }
489
 
490
+ .instant-img-container .control-nav li button:hover, .instant-img-container .control-nav li button:focus {
 
 
 
 
 
 
491
  color: #111;
492
  outline: none;
493
  -webkit-box-shadow: none;
494
  box-shadow: none;
495
  }
496
 
497
+ .instant-img-container .control-nav li button:focus {
498
+ text-decoration: underline;
499
+ }
500
+
501
+ .instant-img-container .control-nav li button.active {
502
+ color: #333;
503
+ cursor: default;
504
+ font-weight: 600;
505
+ }
506
+
507
+ .instant-img-container .control-nav li button.loading {
508
  background-image: url(../img/ajax-loader.gif);
509
  }
510
 
513
  font-size: 16px;
514
  margin: 0;
515
  }
516
+ .instant-img-container .control-nav li button {
517
  padding-left: 3px;
518
  }
519
  }
552
  width: auto;
553
  height: 34px;
554
  line-height: 34px;
555
+ padding: 0 30px 0 10px;
556
  background: #ffffbf;
557
  border: 1px solid #ebebae;
558
  -webkit-border-radius: 3px;
577
  line-height: 34px;
578
  }
579
 
580
+ .instant-img-container .control-nav li.search-field .searchResults button {
581
  padding: 0 10px;
582
+ height: 32px;
583
+ line-height: 32px;
584
+ width: 30px;
585
  position: absolute;
586
+ left: auto;
587
  right: 0;
588
  top: 0;
589
  }
638
  background-color: #f7f7f7 !important;
639
  height: 46px;
640
  line-height: 46px;
641
+ -webkit-border-radius: 3px;
642
+ border-radius: 3px;
643
  font-size: 16px;
644
  -webkit-transition: padding 0.15s ease;
645
  -o-transition: padding 0.15s ease;
648
 
649
  .instant-img-container .control-nav li.search-field input:focus {
650
  border-color: #999;
651
+ -webkit-box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.075);
652
+ box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.075);
653
  }
654
 
655
  .instant-img-container .control-nav li.search-field input.searching {
677
  transition: all 0.25s ease;
678
  opacity: 0.5;
679
  margin: 0;
680
+ padding: 0;
681
  }
682
 
683
  .instant-img-container .control-nav li.search-field button:hover {
836
  #photos .photo a.upload .status {
837
  visibility: hidden;
838
  opacity: 0;
839
+ -webkit-transition: all 0.25s ease-in-out;
840
+ -o-transition: all 0.25s ease-in-out;
841
+ transition: all 0.25s ease-in-out;
842
  width: 60px;
843
  height: 60px;
844
  line-height: 60px;
845
+ -webkit-border-radius: 4px;
846
+ border-radius: 4px;
847
  position: absolute;
848
  left: 50%;
849
  top: 50%;
850
  z-index: 5;
851
+ -webkit-transform: translate(-50%, -50%) scale(1.2);
852
+ -ms-transform: translate(-50%, -50%) scale(1.2);
853
+ transform: translate(-50%, -50%) scale(1.2);
854
+ -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.25);
855
+ box-shadow: 0 2px 3px rgba(0, 0, 0, 0.25);
856
+ background-position: center center;
857
+ background-repeat: no-repeat;
858
  }
859
 
860
  #photos .photo a.upload .status:before {
861
  font-family: 'FontAwesome';
862
  display: block;
863
  color: #fff;
864
+ font-size: 24px;
865
  opacity: 0.8;
866
  }
867
 
870
  }
871
 
872
  #photos .photo a.upload.uploading .status,
 
873
  #photos .photo a.upload.success .status,
874
  #photos .photo a.upload.errors .status {
875
  text-align: center;
887
  #photos .photo a.upload.uploading .status {
888
  visibility: visible;
889
  opacity: 1;
890
+ background: rgba(255, 255, 255, 0.95) url(../img/ajax-loader-lg.gif) no-repeat center center;
891
+ -webkit-background-size: 24px 24px;
892
+ background-size: 24px 24px;
893
  }
894
 
895
  #photos .photo a.upload.uploading .status:before {
896
+ display: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
897
  }
898
 
899
  #photos .photo a.upload.success {
903
  #photos .photo a.upload.success .status {
904
  visibility: visible;
905
  opacity: 1;
 
 
 
906
  background-color: #63d875;
 
 
907
  }
908
 
909
  #photos .photo a.upload.success .status:before {
924
  #photos .photo a.upload.errors .status {
925
  visibility: visible;
926
  opacity: 1;
 
 
 
927
  background-color: #df3333;
 
 
928
  }
929
 
930
  #photos .photo a.upload.errors .status:before {
937
  opacity: 0.25 !important;
938
  }
939
 
940
+ #photos .photo.uploaded .user-controls {
941
+ opacity: 0.5;
942
+ }
943
+
944
  #photos .photo:hover a.upload img, #photos .photo.in-progress a.upload img {
945
+ opacity: 0.7;
946
  -webkit-transform: scale(1.075);
947
  -ms-transform: scale(1.075);
948
  transform: scale(1.075);
969
  }
970
 
971
  #photos .photo.in-progress .user-controls {
972
+ opacity: 0 !important;
973
+ }
974
+
975
+ #photos .photo.in-progress .options {
976
+ opacity: 0 !important;
977
  }
978
 
979
  #photos .photo .options {
999
 
1000
  #photos .photo .options i.heart-like {
1001
  color: #d13714;
 
1002
  -webkit-transition: all 0.25s ease 0.05s;
1003
  -o-transition: all 0.25s ease 0.05s;
1004
  transition: all 0.25s ease 0.05s;
1005
  -webkit-transform: scale(0.55);
1006
  -ms-transform: scale(0.55);
1007
  transform: scale(0.55);
1008
+ margin-right: 2px;
1009
  position: relative;
 
1010
  top: 0;
1011
  font-size: 14px;
1012
  opacity: 0.9;
1017
  vertical-align: top;
1018
  line-height: 30px;
1019
  padding: 0 10px;
1020
+ margin: 0;
1021
  padding-top: 1px;
1022
  background: rgba(255, 255, 255, 0.5);
1023
  margin: 0;
1024
+ -webkit-border-radius: 2px;
1025
+ border-radius: 2px;
1026
  color: #23282d;
1027
  -webkit-transition: all 0.3s ease;
1028
  -o-transition: all 0.3s ease;
1038
  }
1039
 
1040
  #photos .photo .options a {
1041
+ margin-left: 2px;
 
 
1042
  }
1043
 
1044
  #photos .photo .options a:hover, #photos .photo .options a:focus {
1058
  bottom: 0;
1059
  left: 0;
1060
  width: 100%;
1061
+ background: rgba(0, 0, 0, 0.4);
1062
  padding: 0;
1063
+ opacity: 0.35;
1064
  -webkit-transition: all 0.3s ease;
1065
  -o-transition: all 0.3s ease;
1066
  transition: all 0.3s ease;
1079
  color: #fff;
1080
  background: rgba(255, 255, 255, 0.75);
1081
  background: transparent;
1082
+ -webkit-border-radius: 2px;
1083
+ border-radius: 2px;
1084
  height: 34px;
1085
  line-height: 34px;
1086
  font-size: 17px;
1089
  margin: 1px 1px 1px 0;
1090
  padding: 0;
1091
  color: rgba(255, 255, 255, 0.75);
1092
+ border: none !important;
1093
+ outline: none;
1094
+ cursor: pointer;
1095
  }
1096
 
1097
  #photos .photo .fade.edit-photo, #photos .photo .fade.edit-photo-admin, #photos .photo .fade.set-featured, #photos .photo .fade.insert {
1098
+ width: 34px;
1099
  display: inline-block;
1100
  width: 34px;
1101
  text-align: center;
1102
+ position: relative;
1103
  }
1104
 
1105
  #photos .photo .fade.edit-photo i, #photos .photo .fade.edit-photo-admin i, #photos .photo .fade.set-featured i, #photos .photo .fade.insert i {
1106
  line-height: 27px;
1107
+ position: absolute;
1108
+ left: 50%;
1109
+ top: 50%;
1110
+ -webkit-transform: translate(-50%, -50%);
1111
+ -ms-transform: translate(-50%, -50%);
1112
+ transform: translate(-50%, -50%);
1113
  }
1114
 
1115
  #photos .photo .fade.edit-photo:hover, #photos .photo .fade.edit-photo:focus, #photos .photo .fade.edit-photo-admin:hover, #photos .photo .fade.edit-photo-admin:focus, #photos .photo .fade.set-featured:hover, #photos .photo .fade.set-featured:focus, #photos .photo .fade.insert:hover, #photos .photo .fade.insert:focus {
1117
  background: rgba(255, 255, 255, 0.95);
1118
  }
1119
 
 
 
 
 
 
1120
  #photos .photo .fade.edit-photo-admin {
1121
  display: none;
1122
  }
1123
 
 
 
 
 
 
1124
  #photos .photo .fade.user {
1125
  background: none;
1126
  text-decoration: none;
1169
  width: 100%;
1170
  background: rgba(0, 0, 0, 0.6);
1171
  text-align: center;
1172
+ color: rgba(255, 255, 255, 0.9);
1173
+ font-size: 12px;
1174
  margin: 0;
1175
  padding: 0;
1176
  -webkit-transition: all 0.25s ease-in-out;
1180
  z-index: 9999;
1181
  }
1182
 
1183
+ #photos .photo .notice-msg.has-error {
1184
+ top: -40px;
1185
+ opacity: 0;
1186
+ }
1187
+
1188
  #photos .edit-screen {
1189
  position: absolute;
1190
  left: 0;
1573
  top: 0;
1574
  width: 40px;
1575
  height: 36px;
1576
+ line-height: 36px;
1577
  padding: 0;
1578
  margin: 0;
1579
  }
1588
  display: none;
1589
  }
1590
 
1591
+ .media-frame-content .instant-img-container .load-more-wrap {
1592
+ display: block;
1593
+ }
1594
+
1595
+ #tooltip {
1596
+ display: inline-block;
1597
+ padding: 8px 10px;
1598
+ background: #fff;
1599
+ position: fixed;
1600
+ left: auto;
1601
+ top: auto;
1602
+ z-index: 999;
1603
+ display: block;
1604
+ opacity: 0;
1605
+ visibility: hidden;
1606
+ margin-top: -37px;
1607
+ font-size: 12px;
1608
+ color: #999;
1609
+ text-align: center;
1610
+ line-height: 1;
1611
+ -webkit-border-radius: 2px;
1612
+ border-radius: 2px;
1613
+ -webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);
1614
+ box-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);
1615
+ -webkit-transition: all 0.15s ease;
1616
+ -o-transition: all 0.15s ease;
1617
+ transition: all 0.15s ease;
1618
+ }
1619
+
1620
+ #tooltip:after {
1621
+ top: 100%;
1622
+ right: 17px;
1623
+ border: solid transparent;
1624
+ content: " ";
1625
+ height: 0;
1626
+ width: 0;
1627
+ position: absolute;
1628
+ pointer-events: none;
1629
+ border-color: rgba(255, 255, 255, 0);
1630
+ border-top-color: #ffffff;
1631
+ border-width: 5px;
1632
+ margin-left: -5px;
1633
+ }
1634
+
1635
+ #tooltip.over {
1636
+ opacity: 0.9;
1637
+ visibility: visible;
1638
+ }
1639
+
1640
+ #tooltip.above {
1641
+ margin-top: 37px;
1642
+ }
1643
+
1644
+ #tooltip.above:after {
1645
+ top: -5px;
1646
+ border-top: none;
1647
+ border-bottom-color: #ffffff;
1648
+ }
1649
+
1650
  .no-results {
1651
  display: none;
1652
  padding: 150px 100px;
dist/css/instant-images.min.css CHANGED
@@ -1 +1 @@
1
- @import url(//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css);html{overflow-y:scroll}body.media_page_instant-images{background:#fff}body.media_page_instant-images #wpcontent{padding-left:0;padding-bottom:40px}@media screen and (max-width:800px){body.media_page_instant-images #wpcontent{padding-bottom:0}}body.media_page_instant-images #wpbody-content{padding-bottom:0}body.media_page_instant-images #wpfooter{padding-top:0;padding-bottom:0;line-height:40px;background:#f7f7f7;border-top:1px solid #efefef;position:fixed;bottom:0;z-index:1100}body.media_page_instant-images #wpfooter p{line-height:40px}@media screen and (max-width:800px){body.media_page_instant-images #wpfooter{display:none}}.instant-img-container{font-size:14px;color:#666;position:relative}.instant-img-container .offscreen{position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;border:0}.instant-img-container *{-webkit-box-sizing:border-box;box-sizing:border-box}.instant-img-container a{color:#5d72c3;-webkit-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease}.instant-img-container a:hover{color:#5568ae;text-decoration:none}.instant-img-container img{max-width:100%}.instant-img-container p{color:#666;width:100%;display:block;clear:both;text-transform:none;padding:0;margin:0 0 15px;font-size:14px}.instant-img-container.loading .loading-block{display:block}.instant-img-container .error-messaging{display:none}.instant-img-container .error-messaging.active{padding:17px 17px 17px 57px;-webkit-border-radius:3px;border-radius:3px;background:#df3333;color:#fff;font-size:13px;margin-bottom:25px;display:block;position:relative}.instant-img-container .error-messaging.active:before{font-family:FontAwesome;content:"\F06A";display:block;left:17px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);position:absolute;font-size:30px;opacity:.75}.instant-img-container .header-wrap{background:#f7f7f7 url(../img/logo-48x48.png) no-repeat 25px 20px;padding:20px 25px 20px 83px;min-height:88px;overflow:hidden;border-bottom:1px solid #efefef;position:relative}@media screen and (max-width:800px){.instant-img-container .header-wrap{background-position:center 20px;padding:80px 25px 20px;text-align:center}}.instant-img-container .header-wrap h1{padding:0;margin:4px 0 0;font-weight:700;font-size:26px;max-width:70%}@media screen and (max-width:800px){.instant-img-container .header-wrap h1{max-width:100%;width:100%;text-align:center}}.instant-img-container .header-wrap h1 span{display:block;padding:8px 0 0;color:#888;font-size:15px;font-weight:400}.instant-img-container .header-wrap button{position:absolute;right:25px;bottom:26px}@media screen and (max-width:800px){.instant-img-container .header-wrap button{position:static;margin-top:20px;display:inline-block}}.instant-img-container .header-wrap button i{margin-right:2px}.instant-img-container .instant-images-wrapper{padding:0 25px;display:block;overflow:hidden;min-height:400px;background:url(../img/ajax-loader-lg.gif) no-repeat 50%}.instant-img-container .instant-images-wrapper.loaded{background:none}.instant-img-container .permissions-warning{padding:0 25px}.instant-img-container .permissions-warning .inner{border-bottom:1px solid #efefef;padding:32px 0}.instant-img-container .permissions-warning input{max-width:500px}.instant-img-container .permissions-warning h3{font-size:22px;margin:0 0 15px}.instant-img-container .permissions-warning h3 i{margin:0 2px 0 0;position:relative}.instant-img-container .permissions-warning p:first-of-type{font-size:18px;margin:0 0 2px}.instant-img-container .loading-block{display:none;padding:50px;background:url(../img/ajax-loader-lg.gif) no-repeat 50%}.instant-img-container .load-more-wrap{margin:1% 0 0;padding:25px 0;text-align:center;display:none;border-top:1px solid #efefef}.instant-img-container .load-more-wrap button{display:inline-block;margin:0;padding:12px 15px;font-size:15px;font-weight:600;-webkit-transition:all .1s ease;-o-transition:all .1s ease;transition:all .1s ease;height:auto;line-height:1;cursor:pointer;background-image:none;background-repeat:no-repeat!important;background-position:15px!important}.instant-img-container .load-more-wrap button.disabled{opacity:.3;cursor:default}.instant-img-container .cnkt-main{width:100%;float:none;background:none!important;position:relative}.instant-img-container h2,.instant-img-container h3,.instant-img-container h4{margin-top:0}.instant-img-container .save-settings p.submit{float:left;margin:0 2px 0 0;width:auto}.instant-img-container .save-settings .loading{width:46px;height:28px;display:none;float:left;background:#fff url(../img/ajax-loader.gif) no-repeat 50%}#TB_ajaxContent{clear:both;line-height:1.4em;overflow:auto;text-align:left;width:100%!important;-webkit-box-sizing:border-box;box-sizing:border-box;padding:15px!important}.cnkt-sidebar .form-table{margin:0;border:none}.cnkt-sidebar .form-table label,.cnkt-sidebar .form-table p,.cnkt-sidebar .form-table td{font-size:13px}.cnkt-sidebar .form-table label{display:block;clear:both;float:none}.cnkt-sidebar .form-table label span{opacity:.8;font-size:13px;font-style:italic}.cnkt-sidebar .form-table th{display:none}.instant-img-container .form-table td{border-top:0;padding:5px 0 20px;float:left;width:100%;margin:0}.instant-img-container .form-table tr:first-of-type td{padding:10px 0}.cnkt-main .form-msg,.cnkt-sidebar .form-table .form-msg{display:block;line-height:18px;padding:12px 12px 12px 15px;margin:15px 0 0;color:#666;background-color:#fff9ea;border-left:5px solid #dfd8c2;-webkit-border-radius:2px;border-radius:2px}.cnkt-main .form-msg span,.cnkt-sidebar .form-table .form-msg span{display:block;padding:6px 0 3px}.instant-img-container h1,.instant-img-container h3,.instant-img-container h4{color:#222;margin-top:0}.instant-img-container h4+p{margin-top:-6px}.instant-img-container p.small{font-size:12px;margin-top:-10px;opacity:.7}.instant-img-container ul{padding:0;margin:0;list-style:none}.instant-img-container input,.instant-img-container label,.instant-img-container select,.instant-img-container textarea{-webkit-box-shadow:none;box-shadow:none}.instant-img-container label{padding:5px 0}#unsplash-form-options h2,#unsplash-form-options p.desc{display:none}.instant-img-container input[type=number],.instant-img-container input[type=text],.instant-img-container textarea{padding:10px;line-height:1;border:1px solid #ccc;background:#f7f7f7;width:100%;-webkit-border-radius:2px;border-radius:2px;height:auto}.instant-img-container input[type=text]:focus,.instant-img-container textarea:focus{border-color:#999;-webkit-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;background:#efefef}.spacer{display:block;height:40px;overflow:hidden;clear:both;width:100%}.spacer.sm{height:20px}input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #fff inset}.instant-img-container .control-nav{display:block;margin:0;padding:25px 0;list-style:none}.instant-img-container .control-nav:after{content:"";display:table;clear:both}.instant-img-container .control-nav li{padding:0;margin:0 3px 0 0;float:left;background:none;font-size:18px;position:relative}.instant-img-container .control-nav li a{padding:0 24px 0 2px;height:48px;line-height:48px;display:block;color:#999;text-decoration:none;background-position:96%;background-repeat:no-repeat}.instant-img-container .control-nav li a.active{color:#111;cursor:default;font-weight:600}.instant-img-container .control-nav li a:focus,.instant-img-container .control-nav li a:hover{color:#111;outline:none;-webkit-box-shadow:none;box-shadow:none}.instant-img-container .control-nav li a.loading{background-image:url(../img/ajax-loader.gif)}@media screen and (max-width:800px){.instant-img-container .control-nav li{font-size:16px;margin:0}.instant-img-container .control-nav li a{padding-left:3px}}@media screen and (max-width:600px){.instant-img-container .control-nav li{width:33.333%;text-align:center;margin:0;padding-bottom:15px}}.instant-img-container .control-nav li.search-field{float:right;width:49%;margin:0;max-width:500px}@media screen and (max-width:600px){.instant-img-container .control-nav li.search-field{width:100%;display:block;position:static;padding-bottom:15px;text-align:left;max-width:100%}}.instant-img-container .control-nav li.search-field .searchResults{position:absolute;right:100.5%;top:7px;width:auto;height:34px;line-height:34px;padding:0 27px 0 10px;background:#ffffbf;border:1px solid #ebebae;-webkit-border-radius:3px;border-radius:3px;z-index:99;font-size:13px;font-weight:600;-webkit-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease;color:#444;text-shadow:0 1px 1px hsla(0,0%,100%,.3);-webkit-box-shadow:0 2px 3px rgba(0,0,0,.05);box-shadow:0 2px 3px rgba(0,0,0,.05)}.instant-img-container .control-nav li.search-field .searchResults span{cursor:help}.instant-img-container .control-nav li.search-field .searchResults a,.instant-img-container .control-nav li.search-field .searchResults span{line-height:34px}.instant-img-container .control-nav li.search-field .searchResults a{padding:0 10px;height:34px;line-height:33px;position:absolute;right:0;top:0}.instant-img-container .control-nav li.search-field .searchResults:after,.instant-img-container .control-nav li.search-field .searchResults:before{left:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;z-index:100}.instant-img-container .control-nav li.search-field .searchResults:after{border-color:hsla(62,46%,78%,0);border-left-color:#ffffbf;border-width:6px;margin-top:-6px}.instant-img-container .control-nav li.search-field .searchResults:before{border-color:transparent;border-left-color:#ebebae;border-width:7px;margin-top:-7px}.instant-img-container .control-nav li.search-field .searchResults.hide{opacity:0;visibility:hidden}.instant-img-container .control-nav li.search-field form{padding:0 1px 0 0;margin:0;position:relative;height:48px;display:block}.instant-img-container .control-nav li.search-field form:hover button{opacity:1}.instant-img-container .control-nav li.search-field input{width:100%;padding:0 10px 0 42px;border:1px solid #e1e1e1;background-color:#f7f7f7!important;height:46px;line-height:46px;-webkit-border-radius:5px;border-radius:5px;font-size:16px;-webkit-transition:padding .15s ease;-o-transition:padding .15s ease;transition:padding .15s ease}.instant-img-container .control-nav li.search-field input:focus{border-color:#999}.instant-img-container .control-nav li.search-field input.searching{padding-left:62px;background-image:url(../img/ajax-loader.gif);background-position:37px;background-repeat:no-repeat}.instant-img-container .control-nav li.search-field button{position:absolute;left:-2px;top:-1px;width:48px;height:48px;z-index:1;border:none!important;background:transparent!important;cursor:pointer;color:#666;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease;opacity:.5;margin:0}.instant-img-container .control-nav li.search-field button:focus,.instant-img-container .control-nav li.search-field button:hover{outline:none;color:#5d72c3}.instant-img-container .control-nav li.search-field input[type=search]::-webkit-input-placeholder{color:#ccc;font-weight:300;font-style:normal;font-size:14px}.instant-img-container .control-nav li.search-field input[type=search]:-moz-placeholder,.instant-img-container .control-nav li.search-field input[type=search]::-moz-placeholder{color:#ccc;font-weight:300;font-style:normal;font-size:14px}.instant-img-container .control-nav li.search-field input[type=search]:-ms-input-placeholder{color:#ccc;font-weight:300;font-style:normal;font-size:14px}#photos{width:100%;width:-webkit-calc(100% + 10px);width:calc(100% + 10px);margin:0 0 0 -5px;padding:0;position:relative}#photos .photo{width:20%;margin:0;padding:0 5px 10px;opacity:0;-webkit-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}#photos .photo--wrap{position:relative}#photos .photo.in-view{opacity:1}#photos .photo.in-progress .fade{opacity:0!important;visibility:hidden!important}#photos .photo .img-wrap{display:block;overflow:hidden;position:relative}@media screen and (min-width:2000px){#photos .photo{width:20%}}@media screen and (max-width:1570px){#photos .photo{width:25%}}@media screen and (max-width:1270px){#photos .photo{width:33.333333%}}@media screen and (max-width:800px){#photos .photo{width:50%}}@media screen and (max-width:600px){#photos .photo{width:100%;margin:0 0 2%}}#photos .photo:focus a.upload img{opacity:.6}#photos .photo:focus .fade{opacity:1;visibility:visible}#photos .photo:focus .fade.user{opacity:.7}#photos .photo:focus-within .user-controls{opacity:1}#photos .photo a.upload{display:block;position:relative;background-color:#222;background-position:50%;background-repeat:no-repeat;background-image:url(../img/ajax-loader.gif);overflow:hidden}#photos .photo a.upload.loaded{background-image:none}#photos .photo a.upload:active,#photos .photo a.upload:focus{outline:none;border:none}#photos .photo a.upload img{-webkit-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease;width:100%;height:auto!important;padding:0;vertical-align:top}#photos .photo a.upload .status{visibility:hidden;opacity:0;-webkit-transition:all .2575s ease-in-out;-o-transition:all .2575s ease-in-out;transition:all .2575s ease-in-out;width:60px;height:60px;line-height:60px;-webkit-border-radius:100%;border-radius:100%;position:absolute;left:50%;top:50%;z-index:5;-webkit-transform:translate(-50%,-50%) scale(1.5);-ms-transform:translate(-50%,-50%) scale(1.5);transform:translate(-50%,-50%) scale(1.5);-webkit-box-shadow:0 0 4px rgba(0,0,0,.15);box-shadow:0 0 4px rgba(0,0,0,.15)}#photos .photo a.upload .status:before{font-family:FontAwesome;display:block;color:#fff;font-size:22px;opacity:.8}#photos .photo a.upload .status a{color:#fff}#photos .photo a.upload.errors .status,#photos .photo a.upload.resizing .status,#photos .photo a.upload.success .status,#photos .photo a.upload.uploading .status{text-align:center;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(1);-ms-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}#photos .photo a.upload.uploading{cursor:default!important}#photos .photo a.upload.uploading .status{visibility:visible;opacity:1;background-color:#5d72c3}#photos .photo a.upload.uploading .status:before{content:"\F019"}#photos .photo a.upload.resizing{cursor:default!important}#photos .photo a.upload.resizing .status{visibility:visible;opacity:1;background-color:#e4c452}#photos .photo a.upload.resizing .status:before{color:#fff;content:"\F065"}#photos .photo a.upload.success{cursor:default!important}#photos .photo a.upload.success .status{visibility:visible;opacity:1;width:70px;height:70px;line-height:70px;background-color:#63d875;-webkit-border-radius:100%;border-radius:100%}#photos .photo a.upload.success .status:before{content:"\F00C";color:#fff}#photos .photo a.upload.success img{-webkit-transform:scale(1)!important;-ms-transform:scale(1)!important;transform:scale(1)!important}#photos .photo a.upload.errors{cursor:help!important}#photos .photo a.upload.errors .status{visibility:visible;opacity:1;width:60px;height:60px;line-height:60px;background-color:#df3333;-webkit-border-radius:100%;border-radius:100%}#photos .photo a.upload.errors .status:before{content:"\F12A";color:#fff;opacity:.8}#photos .photo.uploaded a.upload img{opacity:.25!important}#photos .photo.in-progress a.upload img,#photos .photo:hover a.upload img{opacity:.6;-webkit-transform:scale(1.075);-ms-transform:scale(1.075);transform:scale(1.075)}#photos .photo.in-progress .options,#photos .photo:hover .options{opacity:1;visibility:visible}#photos .photo.in-progress .options i.heart-like,#photos .photo:hover .options i.heart-like{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}#photos .photo.in-progress .user-controls,#photos .photo:hover .user-controls{opacity:1}#photos .photo.in-progress .notice-msg{top:0;opacity:1}#photos .photo.in-progress .user-controls{opacity:0}#photos .photo .options{position:absolute;top:5px;right:5px;z-index:6;display:inline-block;width:auto;cursor:default!important;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;opacity:0;visibility:hidden;font-size:13px}#photos .photo .options i{font-size:14px}#photos .photo .options i.heart-like{color:#d13714;-webkit-transition:all .25s ease .05s;-o-transition:all .25s ease .05s;transition:all .25s ease .05s;-webkit-transform:scale(.55);-ms-transform:scale(.55);transform:scale(.55);margin-right:1px;position:relative;left:-1px;top:0;font-size:14px;opacity:.9}#photos .photo .options a,#photos .photo .options span{display:inline-block;vertical-align:top;line-height:30px;padding:0 10px;padding-top:1px;background:hsla(0,0%,100%,.5);margin:0;-webkit-border-radius:2px 0 0 2px;border-radius:2px 0 0 2px;color:#23282d;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}#photos .photo .options span{cursor:default}#photos .photo .options span:focus,#photos .photo .options span:hover{background-color:#fff}#photos .photo .options a{margin-left:1px;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0}#photos .photo .options a:focus,#photos .photo .options a:hover{background-color:#fff}#photos .photo .options a i{position:relative;top:1px;left:1px}#photos .photo .user-controls{position:absolute;z-index:6;bottom:0;left:0;width:100%;background:rgba(0,0,0,.45);padding:0;opacity:.4;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}#photos .photo .photo-options{float:right;text-align:right;max-width:50%}#photos .photo .fade{-webkit-transition:all .35s ease;-o-transition:all .35s ease;transition:all .35s ease;color:#fff;background:hsla(0,0%,100%,.75);background:transparent;-webkit-border-radius:1px;border-radius:1px;height:34px;line-height:34px;font-size:17px;z-index:6;float:left;margin:1px 1px 1px 0;padding:0;color:hsla(0,0%,100%,.75)}#photos .photo .fade.edit-photo,#photos .photo .fade.edit-photo-admin,#photos .photo .fade.insert,#photos .photo .fade.set-featured{width:auto;display:inline-block;width:34px;text-align:center}#photos .photo .fade.edit-photo-admin i,#photos .photo .fade.edit-photo i,#photos .photo .fade.insert i,#photos .photo .fade.set-featured i{line-height:27px;position:relative;left:1px;top:1px}#photos .photo .fade.edit-photo-admin:focus,#photos .photo .fade.edit-photo-admin:hover,#photos .photo .fade.edit-photo:focus,#photos .photo .fade.edit-photo:hover,#photos .photo .fade.insert:focus,#photos .photo .fade.insert:hover,#photos .photo .fade.set-featured:focus,#photos .photo .fade.set-featured:hover{color:#222;background:hsla(0,0%,100%,.95)}#photos .photo .fade.set-featured i{top:0;left:0}#photos .photo .fade.edit-photo-admin{display:none}#photos .photo .fade.edit-photo-admin i,#photos .photo .fade.edit-photo i{left:0;top:0}#photos .photo .fade.user{background:none;font-size:13px;max-width:48%;cursor:pointer;text-decoration:none;border:none;line-height:35px;height:36px;margin:0}#photos .photo .fade.user:focus,#photos .photo .fade.user:hover{text-decoration:underline}#photos .photo .fade.user .user-wrap{position:relative;padding-left:35px;display:block;width:100%;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}#photos .photo .fade.user img{width:20px;max-width:20px;-webkit-border-radius:100%;border-radius:100%;position:absolute;left:8px;top:8px}#photos .photo .notice-msg{position:absolute;z-index:999;top:-40px;left:0;height:40px;line-height:40px;width:100%;background:rgba(0,0,0,.6);text-align:center;color:#e0e4f5;font-size:13px;margin:0;padding:0;-webkit-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;opacity:0;z-index:9999}#photos .edit-screen{position:absolute;left:0;top:0;width:100%;height:100%;z-index:999;background:hsla(0,0%,100%,.9);opacity:0;visibility:hidden;-webkit-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease;padding:8px;overflow-y:auto;-webkit-overflow-scrolling:touch;border:1px solid #e1e1e1;-webkit-transform:scale(1.025);-ms-transform:scale(1.025);transform:scale(1.025)}#photos .edit-screen.editing{visibility:visible;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}#photos .edit-screen--controls,#photos .edit-screen--title{display:block;background:#f7f7f7;border:1px solid #e1e1e1;padding:15px;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0}#photos .edit-screen--controls .button-primary,#photos .edit-screen--title .button-primary{float:right}#photos .edit-screen--controls{-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px}#photos .edit-screen--title{border-bottom:none}#photos .edit-screen--title p{font-size:12px;line-height:1.25;margin:0;color:#999}#photos .edit-screen--title p.heading{color:#222;margin:0 0 5px;font-weight:600;text-transform:uppercase}#photos .edit-screen label{margin:0;padding:15px;display:block;background:#fff;border:1px solid #e1e1e1;border-bottom:none;-webkit-border-radius:2px;border-radius:2px;position:relative}#photos .edit-screen span{display:block;font-size:11px;text-transform:uppercase;font-weight:600;margin:0 0 5px;color:#222;line-height:1}#photos .edit-screen textarea{resize:none}#photos .edit-screen input{font-size:12px;padding:0 5px;margin:0;height:30px;line-height:30px}#photos .edit-screen em{position:absolute;bottom:15px;right:15px;height:30px;line-height:30px;background:#777;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;color:#e1e1e1;font-style:normal;font-size:11px;padding:0 10px}.instant-images-settings{display:none;background-color:#efefef;border-top:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7}.instant-images-settings .cnkt-sidebar{padding:20px 25px;overflow:hidden}.instant-images-settings .cnkt-sidebar .cta{float:left;width:50%}@media screen and (max-width:800px){.instant-images-settings .cnkt-sidebar .cta{float:none!important;width:100%!important}}.instant-images-settings .cnkt-sidebar .cta.ii-settings{width:31.333%}.instant-images-settings .cnkt-sidebar .cta.ii-plugins{width:68.666%;width:-webkit-calc(68.666% - 25px);width:calc(68.666% - 25px);float:right}.instant-images-settings .cnkt-sidebar .cta h2{border:none;padding:17px 20px 3px;font-size:16px}.instant-images-settings .cnkt-sidebar .cta h2.w-border{border-top:1px solid #e7e7e7}.instant-images-settings .cnkt-sidebar .cta h2+p{padding:0 20px 15px;margin:0!important;border-bottom:1px solid #e7e7e7}.instant-images-settings .cnkt-sidebar .cta h2,.instant-images-settings .cnkt-sidebar .cta h2+p{background:#f7f7f7;margin:0}.instant-images-settings .cnkt-sidebar .cta ul.whats-new{list-style:disc;padding:0 0 10px 20px}.instant-images-settings .cnkt-sidebar .cta ul.whats-new li{margin:10px 0 0}.instant-images-settings .cnkt-sidebar .cta ul.whats-new li pre{display:inline-block;margin:0;padding:3px;background:#f7f7f7;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 0 1px #efefef;box-shadow:0 0 0 1px #efefef}.instant-images-settings .cnkt-sidebar .cta{background:#fff;padding:0 0 20px;margin:0 0 20px;overflow:hidden;position:relative;border:1px solid #e7e7e7}.instant-images-settings .cnkt-sidebar .cta.padding-bottom{padding-bottom:66px}.instant-images-settings .cnkt-sidebar .cnkt-sidebar h3,.instant-images-settings .cnkt-sidebar .cnkt-sidebar h4{margin-top:0}.instant-images-settings .cnkt-sidebar .cta-wrap{display:block;padding:10px 20px}.instant-images-settings .cnkt-sidebar .cta-wrap h4{padding:10px 0 7px;margin:0}.instant-images-settings .cnkt-sidebar .cta-wrap h4 span{display:inline-block;line-height:1;padding:8px 10px;-webkit-border-radius:2px;border-radius:2px;background:#ffc;color:#666}.instant-images-settings .cnkt-sidebar .cnkt-plugin-installer .plugin{width:48%;margin:2% 1% 0}@media screen and (max-width:1170px){.instant-images-settings .cnkt-sidebar .cnkt-plugin-installer .plugin{width:100%;margin:2% 0 0}}.instant-images-settings .cnkt-sidebar .cnkt-plugin-installer .plugin h2{border:none;padding:0;font-size:16px}.instant-images-settings .cnkt-sidebar .cnkt-plugin-installer .plugin h2+p{padding:0;margin:0!important;border-bottom:none}.instant-images-settings .cnkt-sidebar .cnkt-plugin-installer .plugin h2,.instant-images-settings .cnkt-sidebar .cnkt-plugin-installer .plugin h2+p{background:none;margin:0}.instant-images-settings table{margin-top:5px}.instant-img-container[data-media-popup=true]{background:#fff}.instant-img-container[data-media-popup=true] .header-wrap{display:none}.instant-img-container[data-media-popup=true] .instant-images-wrapper{padding:0 16px}.instant-images-sidebar-icon,.instant-images-sidebar-icon svg{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.instant-images-sidebar-icon svg{height:20px;width:20px}.instant-images-sidebar-icon svg,.instant-images-sidebar-icon svg *{stroke:#5d72c3!important;fill:#5d72c3!important}.components-panel .instant-img-container .load-more-wrap{display:block}.components-panel .no-results{padding:40px}.components-panel .no-results h3{font-size:18px}.components-panel .no-results p{font-size:13px}.components-panel #photos{width:100%;margin:0;padding:5px}.components-panel #photos .photo{width:100%;display:block;opacity:1!important;margin:0 0 5px;padding:0}.components-panel .control-nav{padding:0 16px 8px;border-bottom:1px solid #e2e4e7}.components-panel .control-nav li{font-size:13px}.components-panel .control-nav li a{padding:16px 24px 16px 0;height:auto;line-height:1.2}.components-panel .control-nav li.search-field{float:none;width:100%;padding:0;clear:both}.components-panel .control-nav li.search-field form{height:auto;width:-webkit-calc(100% + 16px);width:calc(100% + 16px);margin-left:-8px}.components-panel .control-nav li.search-field:before{content:"";display:table;clear:both}.components-panel .control-nav li.search-field input{line-height:36px;height:36px;padding-right:8px;padding-left:30px;-webkit-border-radius:0;border-radius:0;border-color:#e2e4e7;font-size:13px;-webkit-border-radius:3px!important;border-radius:3px!important}.components-panel .control-nav li.search-field input.searching{padding-left:30px;background-position:95%}.components-panel .control-nav li.search-field button{position:absolute;right:auto;top:0;width:40px;height:36px;padding:0;margin:0}.components-panel .control-nav li.search-field .searchResults{right:1px;left:auto;top:1px}.components-panel .control-nav li.search-field .searchResults:after,.components-panel .control-nav li.search-field .searchResults:before,.no-results{display:none}.no-results{padding:150px 100px;text-align:center}.no-results.show{display:block}.no-results h3{font-size:24px;line-height:29px;margin:0 0 10px}.no-results p{font-size:16px;margin:0}@media screen and (max-width:800px){.no-results{padding:50px}}.orientation-list{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;padding:7px 0;margin:0 0 10px;border-top:1px solid #efefef;border-bottom:1px solid #efefef;position:relative;top:-7px}.orientation-list span{opacity:.5;margin:0 10px 0 0;font-size:13px}.orientation-list ul{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.orientation-list ul li{margin:0 1px 0 0;-webkit-border-radius:3px;border-radius:3px;cursor:pointer;padding:4px 6px;-webkit-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease;border:1px solid transparent;color:#999;font-size:13px}.orientation-list ul li:hover{color:#111}.orientation-list ul li:focus{border-color:#5d72c3;color:#111;outline:none}.orientation-list ul li.active{background-color:#5d72c3;border-color:#5d72c3;color:#fff;outline:none}.components-panel .orientation-list{position:static;text-align:center;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-top:none;background:#f7f7f7;margin-bottom:10px}.components-panel .orientation-list span{display:none}.components-panel .orientation-list ul{padding:0;width:100%;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}
1
+ @import url(//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css);html{overflow-y:scroll}body.media_page_instant-images{background:#fff}body.media_page_instant-images #wpcontent{padding-left:0;padding-bottom:40px}@media screen and (max-width:800px){body.media_page_instant-images #wpcontent{padding-bottom:0}}body.media_page_instant-images #wpbody-content{padding-bottom:0}body.media_page_instant-images #wpfooter{padding-top:0;padding-bottom:0;line-height:40px;background:#f7f7f7;border-top:1px solid #efefef;position:fixed;bottom:0;z-index:1100}body.media_page_instant-images #wpfooter p{line-height:40px}@media screen and (max-width:800px){body.media_page_instant-images #wpfooter{display:none}}.instant-img-container{font-size:14px;color:#666;position:relative}.instant-img-container .offscreen{position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;border:0}.instant-img-container *{-webkit-box-sizing:border-box;box-sizing:border-box}.instant-img-container a{color:#5d72c3;-webkit-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease}.instant-img-container a:hover{color:#5568ae;text-decoration:none}.instant-img-container img{max-width:100%}.instant-img-container p{color:#666;width:100%;display:block;clear:both;text-transform:none;padding:0;margin:0 0 15px;font-size:14px}.instant-img-container.loading .loading-block{display:block}.instant-img-container .error-messaging{display:none}.instant-img-container .error-messaging.active{padding:17px 17px 17px 57px;-webkit-border-radius:3px;border-radius:3px;background:#df3333;color:#fff;font-size:13px;margin-bottom:25px;display:block;position:relative}.instant-img-container .error-messaging.active:before{font-family:FontAwesome;content:"\F06A";display:block;left:17px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);position:absolute;font-size:30px;opacity:.75}.instant-img-container .header-wrap{background:#f7f7f7 url(../img/logo-48x48.png) no-repeat 25px 20px;padding:20px 25px 20px 83px;min-height:88px;overflow:hidden;border-bottom:1px solid #efefef;position:relative}@media screen and (max-width:800px){.instant-img-container .header-wrap{background-position:center 20px;padding:80px 25px 20px;text-align:center}}.instant-img-container .header-wrap h1{padding:0;margin:4px 0 0;font-weight:700;font-size:26px;max-width:70%}@media screen and (max-width:800px){.instant-img-container .header-wrap h1{max-width:100%;width:100%;text-align:center}}.instant-img-container .header-wrap h1 span{display:block;padding:8px 0 0;color:#888;font-size:15px;font-weight:400}.instant-img-container .header-wrap button{position:absolute;right:25px;bottom:26px}@media screen and (max-width:800px){.instant-img-container .header-wrap button{position:static;margin-top:20px;display:inline-block}}.instant-img-container .header-wrap button i{margin-right:2px}.instant-img-container .instant-images-wrapper{padding:0 25px;display:block;overflow:hidden;min-height:400px;background:url(../img/ajax-loader-lg.gif) no-repeat 50%}.instant-img-container .instant-images-wrapper.loaded{background:none}.instant-img-container .permissions-warning{padding:0 25px}.instant-img-container .permissions-warning .inner{border-bottom:1px solid #efefef;padding:32px 0}.instant-img-container .permissions-warning input{max-width:500px}.instant-img-container .permissions-warning h3{font-size:22px;margin:0 0 15px}.instant-img-container .permissions-warning h3 i{margin:0 2px 0 0;position:relative}.instant-img-container .permissions-warning p:first-of-type{font-size:18px;margin:0 0 2px}.instant-img-container .loading-block{display:none;padding:50px;background:url(../img/ajax-loader-lg.gif) no-repeat 50%}.instant-img-container .load-more-wrap{margin:1% 0 0;padding:25px 0;text-align:center;display:none;border-top:1px solid #efefef}.instant-img-container .load-more-wrap button{display:inline-block;margin:0;padding:12px 15px;font-size:15px;font-weight:600;-webkit-transition:all .1s ease;-o-transition:all .1s ease;transition:all .1s ease;height:auto;line-height:1;cursor:pointer;background-image:none;background-repeat:no-repeat!important;background-position:15px!important}.instant-img-container .load-more-wrap button.disabled{opacity:.3;cursor:default}.instant-img-container .cnkt-main{width:100%;float:none;background:none!important;position:relative}.instant-img-container h2,.instant-img-container h3,.instant-img-container h4{margin-top:0}.instant-img-container .save-settings p.submit{float:left;margin:0 2px 0 0;width:auto}.instant-img-container .save-settings .loading{width:46px;height:28px;display:none;float:left;background:#fff url(../img/ajax-loader.gif) no-repeat 50%}#TB_ajaxContent{clear:both;line-height:1.4em;overflow:auto;text-align:left;width:100%!important;-webkit-box-sizing:border-box;box-sizing:border-box;padding:15px!important}.cnkt-sidebar .form-table{margin:0;border:none}.cnkt-sidebar .form-table label,.cnkt-sidebar .form-table p,.cnkt-sidebar .form-table td{font-size:13px}.cnkt-sidebar .form-table label{display:block;clear:both;float:none}.cnkt-sidebar .form-table label span{opacity:.8;font-size:13px;font-style:italic}.cnkt-sidebar .form-table th{display:none}.instant-img-container .form-table td{border-top:0;padding:5px 0 20px;float:left;width:100%;margin:0}.instant-img-container .form-table tr:first-of-type td{padding:10px 0}.cnkt-main .form-msg,.cnkt-sidebar .form-table .form-msg{display:block;line-height:18px;padding:12px 12px 12px 15px;margin:15px 0 0;color:#666;background-color:#fff9ea;border-left:5px solid #dfd8c2;-webkit-border-radius:2px;border-radius:2px}.cnkt-main .form-msg span,.cnkt-sidebar .form-table .form-msg span{display:block;padding:6px 0 3px}.instant-img-container h1,.instant-img-container h3,.instant-img-container h4{color:#222;margin-top:0}.instant-img-container h4+p{margin-top:-6px}.instant-img-container p.small{font-size:12px;margin-top:-10px;opacity:.7}.instant-img-container ul{padding:0;margin:0;list-style:none}.instant-img-container input,.instant-img-container label,.instant-img-container select,.instant-img-container textarea{-webkit-box-shadow:none;box-shadow:none}.instant-img-container label{padding:5px 0}#unsplash-form-options h2,#unsplash-form-options p.desc{display:none}.instant-img-container input[type=number],.instant-img-container input[type=text],.instant-img-container textarea{padding:10px;line-height:1;border:1px solid #ccc;background:#f7f7f7;width:100%;-webkit-border-radius:2px;border-radius:2px;height:auto}.instant-img-container input[type=text]:focus,.instant-img-container textarea:focus{border-color:#999;-webkit-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;background:#efefef}.spacer{display:block;height:40px;overflow:hidden;clear:both;width:100%}.spacer.sm{height:20px}input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #fff inset}.instant-img-container .control-nav{display:block;margin:0;padding:25px 0;list-style:none}.instant-img-container .control-nav:after{content:"";display:table;clear:both}.instant-img-container .control-nav li{padding:0;margin:0 3px 0 0;float:left;background:none;font-size:18px;position:relative}.instant-img-container .control-nav li button{padding:0 24px 0 2px;height:48px;line-height:48px;display:block;color:#999;text-decoration:none;-webkit-box-shadow:none;box-shadow:none;background-color:transparent;background-position:96%;background-repeat:no-repeat;border:none;cursor:pointer}.instant-img-container .control-nav li button:focus,.instant-img-container .control-nav li button:hover{color:#111;outline:none;-webkit-box-shadow:none;box-shadow:none}.instant-img-container .control-nav li button:focus{text-decoration:underline}.instant-img-container .control-nav li button.active{color:#333;cursor:default;font-weight:600}.instant-img-container .control-nav li button.loading{background-image:url(../img/ajax-loader.gif)}@media screen and (max-width:800px){.instant-img-container .control-nav li{font-size:16px;margin:0}.instant-img-container .control-nav li button{padding-left:3px}}@media screen and (max-width:600px){.instant-img-container .control-nav li{width:33.333%;text-align:center;margin:0;padding-bottom:15px}}.instant-img-container .control-nav li.search-field{float:right;width:49%;margin:0;max-width:500px}@media screen and (max-width:600px){.instant-img-container .control-nav li.search-field{width:100%;display:block;position:static;padding-bottom:15px;text-align:left;max-width:100%}}.instant-img-container .control-nav li.search-field .searchResults{position:absolute;right:100.5%;top:7px;width:auto;height:34px;line-height:34px;padding:0 30px 0 10px;background:#ffffbf;border:1px solid #ebebae;-webkit-border-radius:3px;border-radius:3px;z-index:99;font-size:13px;font-weight:600;-webkit-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease;color:#444;text-shadow:0 1px 1px hsla(0,0%,100%,.3);-webkit-box-shadow:0 2px 3px rgba(0,0,0,.05);box-shadow:0 2px 3px rgba(0,0,0,.05)}.instant-img-container .control-nav li.search-field .searchResults span{cursor:help}.instant-img-container .control-nav li.search-field .searchResults a,.instant-img-container .control-nav li.search-field .searchResults span{line-height:34px}.instant-img-container .control-nav li.search-field .searchResults button{padding:0 10px;height:32px;line-height:32px;width:30px;position:absolute;left:auto;right:0;top:0}.instant-img-container .control-nav li.search-field .searchResults:after,.instant-img-container .control-nav li.search-field .searchResults:before{left:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;z-index:100}.instant-img-container .control-nav li.search-field .searchResults:after{border-color:hsla(62,46%,78%,0);border-left-color:#ffffbf;border-width:6px;margin-top:-6px}.instant-img-container .control-nav li.search-field .searchResults:before{border-color:transparent;border-left-color:#ebebae;border-width:7px;margin-top:-7px}.instant-img-container .control-nav li.search-field .searchResults.hide{opacity:0;visibility:hidden}.instant-img-container .control-nav li.search-field form{padding:0 1px 0 0;margin:0;position:relative;height:48px;display:block}.instant-img-container .control-nav li.search-field form:hover button{opacity:1}.instant-img-container .control-nav li.search-field input{width:100%;padding:0 10px 0 42px;border:1px solid #e1e1e1;background-color:#f7f7f7!important;height:46px;line-height:46px;-webkit-border-radius:3px;border-radius:3px;font-size:16px;-webkit-transition:padding .15s ease;-o-transition:padding .15s ease;transition:padding .15s ease}.instant-img-container .control-nav li.search-field input:focus{border-color:#999;-webkit-box-shadow:0 0 0 4px rgba(0,0,0,.075);box-shadow:0 0 0 4px rgba(0,0,0,.075)}.instant-img-container .control-nav li.search-field input.searching{padding-left:62px;background-image:url(../img/ajax-loader.gif);background-position:37px;background-repeat:no-repeat}.instant-img-container .control-nav li.search-field button{position:absolute;left:-2px;top:-1px;width:48px;height:48px;z-index:1;border:none!important;background:transparent!important;cursor:pointer;color:#666;-webkit-box-shadow:none!important;box-shadow:none!important;-webkit-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease;opacity:.5;margin:0;padding:0}.instant-img-container .control-nav li.search-field button:focus,.instant-img-container .control-nav li.search-field button:hover{outline:none;color:#5d72c3}.instant-img-container .control-nav li.search-field input[type=search]::-webkit-input-placeholder{color:#ccc;font-weight:300;font-style:normal;font-size:14px}.instant-img-container .control-nav li.search-field input[type=search]:-moz-placeholder,.instant-img-container .control-nav li.search-field input[type=search]::-moz-placeholder{color:#ccc;font-weight:300;font-style:normal;font-size:14px}.instant-img-container .control-nav li.search-field input[type=search]:-ms-input-placeholder{color:#ccc;font-weight:300;font-style:normal;font-size:14px}#photos{width:100%;width:-webkit-calc(100% + 10px);width:calc(100% + 10px);margin:0 0 0 -5px;padding:0;position:relative}#photos .photo{width:20%;margin:0;padding:0 5px 10px;opacity:0;-webkit-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease}#photos .photo--wrap{position:relative}#photos .photo.in-view{opacity:1}#photos .photo.in-progress .fade{opacity:0!important;visibility:hidden!important}#photos .photo .img-wrap{display:block;overflow:hidden;position:relative}@media screen and (min-width:2000px){#photos .photo{width:20%}}@media screen and (max-width:1570px){#photos .photo{width:25%}}@media screen and (max-width:1270px){#photos .photo{width:33.333333%}}@media screen and (max-width:800px){#photos .photo{width:50%}}@media screen and (max-width:600px){#photos .photo{width:100%;margin:0 0 2%}}#photos .photo:focus a.upload img{opacity:.6}#photos .photo:focus .fade{opacity:1;visibility:visible}#photos .photo:focus .fade.user{opacity:.7}#photos .photo:focus-within .user-controls{opacity:1}#photos .photo a.upload{display:block;position:relative;background-color:#222;background-position:50%;background-repeat:no-repeat;background-image:url(../img/ajax-loader.gif);overflow:hidden}#photos .photo a.upload.loaded{background-image:none}#photos .photo a.upload:active,#photos .photo a.upload:focus{outline:none;border:none}#photos .photo a.upload img{-webkit-transition:all .5s ease;-o-transition:all .5s ease;transition:all .5s ease;width:100%;height:auto!important;padding:0;vertical-align:top}#photos .photo a.upload .status{visibility:hidden;opacity:0;-webkit-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;width:60px;height:60px;line-height:60px;-webkit-border-radius:4px;border-radius:4px;position:absolute;left:50%;top:50%;z-index:5;-webkit-transform:translate(-50%,-50%) scale(1.2);-ms-transform:translate(-50%,-50%) scale(1.2);transform:translate(-50%,-50%) scale(1.2);-webkit-box-shadow:0 2px 3px rgba(0,0,0,.25);box-shadow:0 2px 3px rgba(0,0,0,.25);background-position:50%;background-repeat:no-repeat}#photos .photo a.upload .status:before{font-family:FontAwesome;display:block;color:#fff;font-size:24px;opacity:.8}#photos .photo a.upload .status a{color:#fff}#photos .photo a.upload.errors .status,#photos .photo a.upload.success .status,#photos .photo a.upload.uploading .status{text-align:center;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(1);-ms-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}#photos .photo a.upload.uploading{cursor:default!important}#photos .photo a.upload.uploading .status{visibility:visible;opacity:1;background:hsla(0,0%,100%,.95) url(../img/ajax-loader-lg.gif) no-repeat 50%;-webkit-background-size:24px 24px;background-size:24px 24px}#photos .photo a.upload.uploading .status:before{display:none}#photos .photo a.upload.success{cursor:default!important}#photos .photo a.upload.success .status{visibility:visible;opacity:1;background-color:#63d875}#photos .photo a.upload.success .status:before{content:"\F00C";color:#fff}#photos .photo a.upload.success img{-webkit-transform:scale(1)!important;-ms-transform:scale(1)!important;transform:scale(1)!important}#photos .photo a.upload.errors{cursor:help!important}#photos .photo a.upload.errors .status{visibility:visible;opacity:1;background-color:#df3333}#photos .photo a.upload.errors .status:before{content:"\F12A";color:#fff;opacity:.8}#photos .photo.uploaded a.upload img{opacity:.25!important}#photos .photo.uploaded .user-controls{opacity:.5}#photos .photo.in-progress a.upload img,#photos .photo:hover a.upload img{opacity:.7;-webkit-transform:scale(1.075);-ms-transform:scale(1.075);transform:scale(1.075)}#photos .photo.in-progress .options,#photos .photo:hover .options{opacity:1;visibility:visible}#photos .photo.in-progress .options i.heart-like,#photos .photo:hover .options i.heart-like{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}#photos .photo.in-progress .user-controls,#photos .photo:hover .user-controls{opacity:1}#photos .photo.in-progress .notice-msg{top:0;opacity:1}#photos .photo.in-progress .options,#photos .photo.in-progress .user-controls{opacity:0!important}#photos .photo .options{position:absolute;top:5px;right:5px;z-index:6;display:inline-block;width:auto;cursor:default!important;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;opacity:0;visibility:hidden;font-size:13px}#photos .photo .options i{font-size:14px}#photos .photo .options i.heart-like{color:#d13714;-webkit-transition:all .25s ease .05s;-o-transition:all .25s ease .05s;transition:all .25s ease .05s;-webkit-transform:scale(.55);-ms-transform:scale(.55);transform:scale(.55);margin-right:2px;position:relative;top:0;font-size:14px;opacity:.9}#photos .photo .options a,#photos .photo .options span{display:inline-block;vertical-align:top;line-height:30px;padding:0 10px;padding-top:1px;background:hsla(0,0%,100%,.5);margin:0;-webkit-border-radius:2px;border-radius:2px;color:#23282d;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}#photos .photo .options span{cursor:default}#photos .photo .options span:focus,#photos .photo .options span:hover{background-color:#fff}#photos .photo .options a{margin-left:2px}#photos .photo .options a:focus,#photos .photo .options a:hover{background-color:#fff}#photos .photo .options a i{position:relative;top:1px;left:1px}#photos .photo .user-controls{position:absolute;z-index:6;bottom:0;left:0;width:100%;background:rgba(0,0,0,.4);padding:0;opacity:.35;-webkit-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}#photos .photo .photo-options{float:right;text-align:right;max-width:50%}#photos .photo .fade{-webkit-transition:all .35s ease;-o-transition:all .35s ease;transition:all .35s ease;color:#fff;background:hsla(0,0%,100%,.75);background:transparent;-webkit-border-radius:2px;border-radius:2px;height:34px;line-height:34px;font-size:17px;z-index:6;float:left;margin:1px 1px 1px 0;padding:0;color:hsla(0,0%,100%,.75);border:none!important;outline:none;cursor:pointer}#photos .photo .fade.edit-photo,#photos .photo .fade.edit-photo-admin,#photos .photo .fade.insert,#photos .photo .fade.set-featured{display:inline-block;width:34px;text-align:center;position:relative}#photos .photo .fade.edit-photo-admin i,#photos .photo .fade.edit-photo i,#photos .photo .fade.insert i,#photos .photo .fade.set-featured i{line-height:27px;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}#photos .photo .fade.edit-photo-admin:focus,#photos .photo .fade.edit-photo-admin:hover,#photos .photo .fade.edit-photo:focus,#photos .photo .fade.edit-photo:hover,#photos .photo .fade.insert:focus,#photos .photo .fade.insert:hover,#photos .photo .fade.set-featured:focus,#photos .photo .fade.set-featured:hover{color:#222;background:hsla(0,0%,100%,.95)}#photos .photo .fade.edit-photo-admin{display:none}#photos .photo .fade.user{background:none;font-size:13px;max-width:48%;cursor:pointer;text-decoration:none;border:none;line-height:35px;height:36px;margin:0}#photos .photo .fade.user:focus,#photos .photo .fade.user:hover{text-decoration:underline}#photos .photo .fade.user .user-wrap{position:relative;padding-left:35px;display:block;width:100%;overflow:hidden;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}#photos .photo .fade.user img{width:20px;max-width:20px;-webkit-border-radius:100%;border-radius:100%;position:absolute;left:8px;top:8px}#photos .photo .notice-msg{position:absolute;z-index:999;top:-40px;left:0;height:40px;line-height:40px;width:100%;background:rgba(0,0,0,.6);text-align:center;color:hsla(0,0%,100%,.9);font-size:12px;margin:0;padding:0;-webkit-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;opacity:0;z-index:9999}#photos .photo .notice-msg.has-error{top:-40px;opacity:0}#photos .edit-screen{position:absolute;left:0;top:0;width:100%;height:100%;z-index:999;background:hsla(0,0%,100%,.9);opacity:0;visibility:hidden;-webkit-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease;padding:8px;overflow-y:auto;-webkit-overflow-scrolling:touch;border:1px solid #e1e1e1;-webkit-transform:scale(1.025);-ms-transform:scale(1.025);transform:scale(1.025)}#photos .edit-screen.editing{visibility:visible;opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}#photos .edit-screen--controls,#photos .edit-screen--title{display:block;background:#f7f7f7;border:1px solid #e1e1e1;padding:15px;-webkit-border-radius:2px 2px 0 0;border-radius:2px 2px 0 0}#photos .edit-screen--controls .button-primary,#photos .edit-screen--title .button-primary{float:right}#photos .edit-screen--controls{-webkit-border-radius:0 0 2px 2px;border-radius:0 0 2px 2px}#photos .edit-screen--title{border-bottom:none}#photos .edit-screen--title p{font-size:12px;line-height:1.25;margin:0;color:#999}#photos .edit-screen--title p.heading{color:#222;margin:0 0 5px;font-weight:600;text-transform:uppercase}#photos .edit-screen label{margin:0;padding:15px;display:block;background:#fff;border:1px solid #e1e1e1;border-bottom:none;-webkit-border-radius:2px;border-radius:2px;position:relative}#photos .edit-screen span{display:block;font-size:11px;text-transform:uppercase;font-weight:600;margin:0 0 5px;color:#222;line-height:1}#photos .edit-screen textarea{resize:none}#photos .edit-screen input{font-size:12px;padding:0 5px;margin:0;height:30px;line-height:30px}#photos .edit-screen em{position:absolute;bottom:15px;right:15px;height:30px;line-height:30px;background:#777;-webkit-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;color:#e1e1e1;font-style:normal;font-size:11px;padding:0 10px}.instant-images-settings{display:none;background-color:#efefef;border-top:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7}.instant-images-settings .cnkt-sidebar{padding:20px 25px;overflow:hidden}.instant-images-settings .cnkt-sidebar .cta{float:left;width:50%}@media screen and (max-width:800px){.instant-images-settings .cnkt-sidebar .cta{float:none!important;width:100%!important}}.instant-images-settings .cnkt-sidebar .cta.ii-settings{width:31.333%}.instant-images-settings .cnkt-sidebar .cta.ii-plugins{width:68.666%;width:-webkit-calc(68.666% - 25px);width:calc(68.666% - 25px);float:right}.instant-images-settings .cnkt-sidebar .cta h2{border:none;padding:17px 20px 3px;font-size:16px}.instant-images-settings .cnkt-sidebar .cta h2.w-border{border-top:1px solid #e7e7e7}.instant-images-settings .cnkt-sidebar .cta h2+p{padding:0 20px 15px;margin:0!important;border-bottom:1px solid #e7e7e7}.instant-images-settings .cnkt-sidebar .cta h2,.instant-images-settings .cnkt-sidebar .cta h2+p{background:#f7f7f7;margin:0}.instant-images-settings .cnkt-sidebar .cta ul.whats-new{list-style:disc;padding:0 0 10px 20px}.instant-images-settings .cnkt-sidebar .cta ul.whats-new li{margin:10px 0 0}.instant-images-settings .cnkt-sidebar .cta ul.whats-new li pre{display:inline-block;margin:0;padding:3px;background:#f7f7f7;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 0 1px #efefef;box-shadow:0 0 0 1px #efefef}.instant-images-settings .cnkt-sidebar .cta{background:#fff;padding:0 0 20px;margin:0 0 20px;overflow:hidden;position:relative;border:1px solid #e7e7e7}.instant-images-settings .cnkt-sidebar .cta.padding-bottom{padding-bottom:66px}.instant-images-settings .cnkt-sidebar .cnkt-sidebar h3,.instant-images-settings .cnkt-sidebar .cnkt-sidebar h4{margin-top:0}.instant-images-settings .cnkt-sidebar .cta-wrap{display:block;padding:10px 20px}.instant-images-settings .cnkt-sidebar .cta-wrap h4{padding:10px 0 7px;margin:0}.instant-images-settings .cnkt-sidebar .cta-wrap h4 span{display:inline-block;line-height:1;padding:8px 10px;-webkit-border-radius:2px;border-radius:2px;background:#ffc;color:#666}.instant-images-settings .cnkt-sidebar .cnkt-plugin-installer .plugin{width:48%;margin:2% 1% 0}@media screen and (max-width:1170px){.instant-images-settings .cnkt-sidebar .cnkt-plugin-installer .plugin{width:100%;margin:2% 0 0}}.instant-images-settings .cnkt-sidebar .cnkt-plugin-installer .plugin h2{border:none;padding:0;font-size:16px}.instant-images-settings .cnkt-sidebar .cnkt-plugin-installer .plugin h2+p{padding:0;margin:0!important;border-bottom:none}.instant-images-settings .cnkt-sidebar .cnkt-plugin-installer .plugin h2,.instant-images-settings .cnkt-sidebar .cnkt-plugin-installer .plugin h2+p{background:none;margin:0}.instant-images-settings table{margin-top:5px}.instant-img-container[data-media-popup=true]{background:#fff}.instant-img-container[data-media-popup=true] .header-wrap{display:none}.instant-img-container[data-media-popup=true] .instant-images-wrapper{padding:0 16px}.instant-images-sidebar-icon,.instant-images-sidebar-icon svg{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.instant-images-sidebar-icon svg{height:20px;width:20px}.instant-images-sidebar-icon svg,.instant-images-sidebar-icon svg *{stroke:#5d72c3!important;fill:#5d72c3!important}.components-panel .instant-img-container .load-more-wrap{display:block}.components-panel .no-results{padding:40px}.components-panel .no-results h3{font-size:18px}.components-panel .no-results p{font-size:13px}.components-panel #photos{width:100%;margin:0;padding:5px}.components-panel #photos .photo{width:100%;display:block;opacity:1!important;margin:0 0 5px;padding:0}.components-panel .control-nav{padding:0 16px 8px;border-bottom:1px solid #e2e4e7}.components-panel .control-nav li{font-size:13px}.components-panel .control-nav li a{padding:16px 24px 16px 0;height:auto;line-height:1.2}.components-panel .control-nav li.search-field{float:none;width:100%;padding:0;clear:both}.components-panel .control-nav li.search-field form{height:auto;width:-webkit-calc(100% + 16px);width:calc(100% + 16px);margin-left:-8px}.components-panel .control-nav li.search-field:before{content:"";display:table;clear:both}.components-panel .control-nav li.search-field input{line-height:36px;height:36px;padding-right:8px;padding-left:30px;-webkit-border-radius:0;border-radius:0;border-color:#e2e4e7;font-size:13px;-webkit-border-radius:3px!important;border-radius:3px!important}.components-panel .control-nav li.search-field input.searching{padding-left:30px;background-position:95%}.components-panel .control-nav li.search-field button{position:absolute;right:auto;top:0;width:40px;height:36px;line-height:36px;padding:0;margin:0}.components-panel .control-nav li.search-field .searchResults{right:1px;left:auto;top:1px}.components-panel .control-nav li.search-field .searchResults:after,.components-panel .control-nav li.search-field .searchResults:before{display:none}.media-frame-content .instant-img-container .load-more-wrap{display:block}#tooltip{display:inline-block;padding:8px 10px;background:#fff;position:fixed;left:auto;top:auto;z-index:999;display:block;opacity:0;visibility:hidden;margin-top:-37px;font-size:12px;color:#999;text-align:center;line-height:1;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 2px 3px rgba(0,0,0,.1);box-shadow:0 2px 3px rgba(0,0,0,.1);-webkit-transition:all .15s ease;-o-transition:all .15s ease;transition:all .15s ease}#tooltip:after{top:100%;right:17px;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none;border-color:hsla(0,0%,100%,0);border-top-color:#fff;border-width:5px;margin-left:-5px}#tooltip.over{opacity:.9;visibility:visible}#tooltip.above{margin-top:37px}#tooltip.above:after{top:-5px;border-top:none;border-bottom-color:#fff}.no-results{display:none;padding:150px 100px;text-align:center}.no-results.show{display:block}.no-results h3{font-size:24px;line-height:29px;margin:0 0 10px}.no-results p{font-size:16px;margin:0}@media screen and (max-width:800px){.no-results{padding:50px}}.orientation-list{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;padding:7px 0;margin:0 0 10px;border-top:1px solid #efefef;border-bottom:1px solid #efefef;position:relative;top:-7px}.orientation-list span{opacity:.5;margin:0 10px 0 0;font-size:13px}.orientation-list ul{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.orientation-list ul li{margin:0 1px 0 0;-webkit-border-radius:3px;border-radius:3px;cursor:pointer;padding:4px 6px;-webkit-transition:all .25s ease;-o-transition:all .25s ease;transition:all .25s ease;border:1px solid transparent;color:#999;font-size:13px}.orientation-list ul li:hover{color:#111}.orientation-list ul li:focus{border-color:#5d72c3;color:#111;outline:none}.orientation-list ul li.active{background-color:#5d72c3;border-color:#5d72c3;color:#fff;outline:none}.components-panel .orientation-list{position:static;text-align:center;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-top:none;background:#f7f7f7;margin-bottom:10px}.components-panel .orientation-list span{display:none}.components-panel .orientation-list ul{padding:0;width:100%;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}
dist/img/ajax-loader-lg.gif CHANGED
File without changes
dist/img/ajax-loader.gif CHANGED
File without changes
dist/img/logo-48x48.png CHANGED
File without changes
dist/js/instant-images-block.js CHANGED
@@ -2694,6 +2694,68 @@ function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {
2694
  module.exports = factory;
2695
 
2696
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2697
  /***/ }),
2698
 
2699
  /***/ "./node_modules/ev-emitter/ev-emitter.js":
@@ -4092,6 +4154,463 @@ if (true) {
4092
 
4093
  module.exports = warning;
4094
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4095
  /***/ }),
4096
 
4097
  /***/ "./node_modules/imagesloaded/imagesloaded.js":
@@ -4471,129 +4990,1853 @@ return ImagesLoaded;
4471
  /*! no static exports found */
4472
  /***/ (function(module, exports) {
4473
 
4474
- /*!
4475
- * Determine if an object is a Buffer
4476
- *
4477
- * @author Feross Aboukhadijeh <https://feross.org>
4478
- * @license MIT
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4479
  */
 
 
 
 
 
4480
 
4481
- // The _isBuffer check is for Safari 5-7 support, because it's missing
4482
- // Object.prototype.constructor. Remove this eventually
4483
- module.exports = function (obj) {
4484
- return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
4485
- }
4486
 
4487
- function isBuffer (obj) {
4488
- return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
4489
- }
4490
 
4491
- // For Node v0.10 support. Remove this eventually.
4492
- function isSlowBuffer (obj) {
4493
- return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
4494
- }
 
 
 
 
 
 
 
4495
 
 
4496
 
4497
- /***/ }),
4498
 
4499
- /***/ "./node_modules/object-assign/index.js":
4500
- /*!*********************************************!*\
4501
- !*** ./node_modules/object-assign/index.js ***!
4502
- \*********************************************/
4503
- /*! no static exports found */
4504
- /***/ (function(module, exports, __webpack_require__) {
4505
 
4506
- "use strict";
4507
- /*
4508
- object-assign
4509
- (c) Sindre Sorhus
4510
- @license MIT
4511
- */
4512
 
 
4513
 
4514
- /* eslint-disable no-unused-vars */
4515
- var getOwnPropertySymbols = Object.getOwnPropertySymbols;
4516
- var hasOwnProperty = Object.prototype.hasOwnProperty;
4517
- var propIsEnumerable = Object.prototype.propertyIsEnumerable;
4518
 
4519
- function toObject(val) {
4520
- if (val === null || val === undefined) {
4521
- throw new TypeError('Object.assign cannot be called with null or undefined');
4522
- }
4523
 
4524
- return Object(val);
4525
- }
4526
 
4527
- function shouldUseNative() {
4528
- try {
4529
- if (!Object.assign) {
4530
- return false;
4531
- }
4532
 
4533
- // Detect buggy property enumeration order in older V8 versions.
 
4534
 
4535
- // https://bugs.chromium.org/p/v8/issues/detail?id=4118
4536
- var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
4537
- test1[5] = 'de';
4538
- if (Object.getOwnPropertyNames(test1)[0] === '5') {
4539
- return false;
4540
- }
4541
 
4542
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
4543
- var test2 = {};
4544
- for (var i = 0; i < 10; i++) {
4545
- test2['_' + String.fromCharCode(i)] = i;
4546
- }
4547
- var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
4548
- return test2[n];
4549
- });
4550
- if (order2.join('') !== '0123456789') {
4551
- return false;
4552
- }
4553
 
4554
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
4555
- var test3 = {};
4556
- 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
4557
- test3[letter] = letter;
4558
- });
4559
- if (Object.keys(Object.assign({}, test3)).join('') !==
4560
- 'abcdefghijklmnopqrst') {
4561
- return false;
4562
- }
4563
 
4564
- return true;
4565
- } catch (err) {
4566
- // We don't expect any of the above to throw, but better to be safe.
4567
- return false;
4568
- }
 
 
 
 
 
 
 
 
 
 
4569
  }
4570
 
4571
- module.exports = shouldUseNative() ? Object.assign : function (target, source) {
4572
- var from;
4573
- var to = toObject(target);
4574
- var symbols;
4575
-
4576
- for (var s = 1; s < arguments.length; s++) {
4577
- from = Object(arguments[s]);
4578
 
4579
- for (var key in from) {
4580
- if (hasOwnProperty.call(from, key)) {
4581
- to[key] = from[key];
4582
- }
4583
- }
4584
 
4585
- if (getOwnPropertySymbols) {
4586
- symbols = getOwnPropertySymbols(from);
4587
- for (var i = 0; i < symbols.length; i++) {
4588
- if (propIsEnumerable.call(from, symbols[i])) {
4589
- to[symbols[i]] = from[symbols[i]];
4590
- }
4591
- }
4592
- }
4593
- }
4594
 
4595
- return to;
4596
- };
4597
 
4598
 
4599
  /***/ }),
@@ -25637,35 +27880,42 @@ var Photo = function (_React$Component) {
25637
  function Photo(props) {
25638
  _classCallCheck(this, Photo);
25639
 
 
 
25640
  var _this = _possibleConstructorReturn(this, (Photo.__proto__ || Object.getPrototypeOf(Photo)).call(this, props));
25641
 
25642
  _this.id = _this.props.result.id;
25643
  _this.thumb = _this.props.result.urls.thumb;
25644
  _this.img = _this.props.result.urls.small;
25645
- _this.full_size = _this.props.result.urls.raw;
 
25646
  _this.author = _this.props.result.user.name;
25647
  _this.img_title = instant_img_localize.photo_by + ' ' + _this.author;
25648
  _this.filename = _this.props.result.id;
25649
  _this.title = _this.img_title;
25650
- _this.alt = '';
25651
  _this.caption = '';
25652
  _this.user = _this.props.result.user.username;
25653
  _this.user_photo = _this.props.result.user.profile_image.small;
25654
  _this.link = _this.props.result.links.html;
25655
  _this.likes = _this.props.result.likes;
25656
  _this.view_all = instant_img_localize.view_all;
25657
- _this.like_text = instant_img_localize.likes;
25658
  _this.inProgress = false;
25659
  _this.container = document.querySelector('.instant-img-container');
 
 
25660
 
 
25661
  _this.setAsFeaturedImage = false;
25662
  _this.insertIntoPost = false;
25663
-
25664
- // Gutenberg Editor
25665
  _this.is_block_editor = _this.props.blockEditor;
25666
  _this.SetFeaturedImage = _this.props.SetFeaturedImage;
25667
  _this.InsertImage = _this.props.InsertImage;
25668
 
 
 
 
25669
  // Photo state
25670
  _this.state = {
25671
  filename: _this.filename,
@@ -25678,20 +27928,20 @@ var Photo = function (_React$Component) {
25678
  }
25679
 
25680
  /*
25681
- * uploadPhoto
25682
- * Function to trigger image upload
25683
  *
25684
- * @param target element clicked item
25685
- * @since 3.0
25686
  */
25687
 
25688
 
25689
  _createClass(Photo, [{
25690
- key: 'uploadPhoto',
25691
- value: function uploadPhoto(e) {
25692
- e.preventDefault();
25693
 
 
25694
  var self = this;
 
25695
  var target = e.currentTarget; // get current <a/>
25696
  var photo = target.parentElement.parentElement.parentElement; // Get parent .photo el
25697
  var notice = photo.querySelector('.notice-msg'); // Locate .notice-msg div
@@ -25701,153 +27951,98 @@ var Photo = function (_React$Component) {
25701
  target = photo.querySelector('a.upload');
25702
  }
25703
 
25704
- if (target.classList.contains('success') || this.inProgress) return false; // Exit if already uploaded or in progress.
 
 
 
25705
 
25706
  target.classList.add('uploading');
25707
  photo.classList.add('in-progress');
25708
- notice.innerHTML = instant_img_localize.saving;
25709
- this.inProgress = true;
25710
 
25711
- // Create Data Array
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25712
  var data = {
25713
  id: target.getAttribute('data-id'),
25714
- image: target.getAttribute('data-url')
25715
-
25716
- // REST API URL
25717
- };var url = instant_img_localize.root + 'instant-images/upload/';
25718
-
25719
- (0, _axios2.default)({
25720
- method: 'POST',
25721
- url: url,
 
 
25722
  headers: {
25723
  'X-WP-Nonce': instant_img_localize.nonce,
25724
  'Content-Type': 'application/json'
25725
- },
25726
- data: {
25727
- 'data': JSON.stringify(data)
25728
- }
25729
- }).then(function (res) {
25730
-
25731
- var response = res.data;
25732
-
25733
- if (response && res.status == 200) {
25734
-
25735
- // Successful response from server
25736
- var hasError = response.error;
25737
- var path = response.path;
25738
- var filename = response.filename;
25739
-
25740
- if (hasError) {
25741
- // Upload Error
25742
- self.uploadError(target, photo, response.msg);
25743
- } else {
25744
- // Upload Success
25745
- self.resizeImage(path, filename, target, photo, notice);
25746
- self.triggerUnsplashDownload(data.id);
25747
- }
25748
- } else {
25749
-
25750
- // Error
25751
- self.uploadError(target, photo, instant_img_localize.error_upload);
25752
  }
25753
- }).catch(function (error) {
25754
- console.log(error);
25755
- });
25756
- }
25757
-
25758
- /*
25759
- * resizeImage
25760
- * Function to trigger image resize
25761
- *
25762
- * @param path string full server path to image
25763
- * @param filename string clicked item
25764
- * @param target element clicked item
25765
- * @param photo element Nearest parent .photo
25766
- * @param notice string Text to be display
25767
- * @since 3.0
25768
- */
25769
 
25770
- }, {
25771
- key: 'resizeImage',
25772
- value: function resizeImage(path, filename, target, photo, notice) {
25773
-
25774
- var self = this;
25775
-
25776
- target.classList.remove('uploading');
25777
- target.classList.add('resizing');
25778
- notice.innerHTML = instant_img_localize.resizing;
25779
-
25780
- // Create Data Array
25781
- var data = { // store data in JSON to pass to XMLHttpRequest
25782
- 'path': path,
25783
- 'filename': filename,
25784
- 'custom_filename': target.getAttribute('data-filename'),
25785
- 'title': target.getAttribute('data-title'),
25786
- 'alt': target.getAttribute('data-alt'),
25787
- 'caption': target.getAttribute('data-caption')
25788
-
25789
- // REST API URL
25790
- };var url = instant_img_localize.root + 'instant-images/resize/';
25791
- var msg = '';
25792
-
25793
- (0, _axios2.default)({
25794
- method: 'POST',
25795
- url: url,
25796
- headers: {
25797
- 'X-WP-Nonce': instant_img_localize.nonce,
25798
- 'Content-Type': 'application/json'
25799
- },
25800
- data: {
25801
- 'data': JSON.stringify(data)
25802
- }
25803
- }).then(function (res) {
25804
 
25805
  var response = res.data;
25806
 
25807
- if (response && res.status == 200) {
25808
 
25809
  // Successful response from server
25810
  var success = response.success;
25811
- var attachment_id = response.id;
25812
- var attachment_url = response.url;
25813
  var admin_url = response.admin_url;
25814
- msg = response.msg;
25815
 
25816
  if (success) {
25817
 
25818
  // Edit URL
25819
- var edit_url = admin_url + 'post.php?post=' + attachment_id + '&action=edit';
25820
 
25821
  // Success/Upload Complete
25822
- self.uploadComplete(target, photo, msg, edit_url);
 
 
 
25823
 
25824
- // Set as featured Image in Gutenberg
25825
- if (self.is_block_editor && self.setAsFeaturedImage) {
25826
- self.SetFeaturedImage(attachment_id);
25827
  self.setAsFeaturedImage = false;
 
25828
  }
25829
 
25830
- // Insrt Image into block editor
25831
- if (self.is_block_editor && self.insertIntoPost) {
25832
- if (attachment_url) {
25833
- self.InsertImage(attachment_url, data.caption, data.alt);
 
25834
  }
25835
  self.insertIntoPost = false;
25836
  }
25837
 
25838
  // If is media popup, redirect user to media-upload settings
25839
  if (self.container.dataset.mediaPopup === 'true' && !self.is_block_editor) {
25840
- window.location = 'media-upload.php?type=image&tab=library&attachment_id=' + attachment_id;
25841
  }
25842
  } else {
25843
-
25844
  // Error
25845
- self.uploadError(target, photo, msg);
25846
  }
25847
  } else {
25848
-
25849
  // Error
25850
- self.uploadError(target, photo, instant_img_localize.error_upload);
25851
  }
25852
  }).catch(function (error) {
25853
  console.log(error);
@@ -25893,6 +28088,7 @@ var Photo = function (_React$Component) {
25893
  return false;
25894
  }
25895
 
 
25896
  var parent = target.parentNode.parentNode.parentNode;
25897
  var photo = parent.querySelector('a.upload');
25898
  if (photo) {
@@ -25916,6 +28112,7 @@ var Photo = function (_React$Component) {
25916
  return false;
25917
  }
25918
 
 
25919
  var parent = target.parentNode.parentNode.parentNode;
25920
  var photo = parent.querySelector('a.upload');
25921
  if (photo) {
@@ -25932,40 +28129,42 @@ var Photo = function (_React$Component) {
25932
  * @param photo element Nearest parent .photo
25933
  * @param msg string Success Msg
25934
  * @param url string The attachment edit link
 
25935
  * @since 3.0
25936
  */
25937
 
25938
  }, {
25939
  key: 'uploadComplete',
25940
- value: function uploadComplete(target, photo, msg, url) {
25941
 
25942
  this.setImageTitle(target, msg);
25943
 
25944
  photo.classList.remove('in-progress');
25945
  photo.classList.add('uploaded');
25946
 
25947
- //window.location = url;
25948
-
25949
  photo.querySelector('.edit-photo').style.display = 'none'; // Hide edit-photo button
25950
-
25951
  photo.querySelector('.edit-photo-admin').style.display = 'inline-block'; // Show edit-photo-admin button
25952
  photo.querySelector('.edit-photo-admin').href = url; // Add admin edit link
25953
  photo.querySelector('.edit-photo-admin').target = '_balnk'; // Add new window
25954
 
 
 
 
 
 
 
25955
  if (this.is_block_editor) {
25956
  photo.querySelector('.insert').style.display = 'none'; // Hide insert button
25957
  photo.querySelector('.set-featured').style.display = 'none'; // Hide set-featured button
25958
  }
25959
 
25960
- target.classList.remove('uploading');
25961
- target.classList.remove('resizing');
25962
- target.classList.add('success');
25963
-
25964
- this.inProgress = false;
25965
 
 
 
25966
  // Refresh Media Library contents on edit pages
25967
  if (this.container.classList.contains('editor')) {
25968
- //console.log(wp.media.frame.setState());
25969
  if (typeof wp.media != 'undefined') {
25970
  if (wp.media.frame.content.get() !== null) {
25971
  wp.media.frame.content.get().collection.props.set({ ignore: +new Date() });
@@ -25977,24 +28176,64 @@ var Photo = function (_React$Component) {
25977
  }
25978
  }
25979
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25980
  /*
25981
  * uploadError
25982
  * Function runs when error occurs on upload or resize
25983
  *
25984
  * @param target element Current clicked item
25985
  * @param photo element Nearest parent .photo
 
25986
  * @param msg string Error Msg
25987
  * @since 3.0
25988
  */
25989
 
25990
  }, {
25991
  key: 'uploadError',
25992
- value: function uploadError(target, photo, msg) {
25993
  target.classList.remove('uploading');
25994
  target.classList.remove('resizing');
25995
  target.classList.add('errors');
25996
  this.setImageTitle(target, msg);
25997
  this.inProgress = false;
 
25998
  console.warn(msg);
25999
  }
26000
 
@@ -26025,6 +28264,7 @@ var Photo = function (_React$Component) {
26025
  value: function showEditScreen(e) {
26026
  e.preventDefault();
26027
  var el = e.currentTarget;
 
26028
  var photo = el.closest('.photo');
26029
  var filename = photo.querySelector('input[name="filename"]');
26030
  var editScreen = photo.querySelector('.edit-screen');
@@ -26153,11 +28393,33 @@ var Photo = function (_React$Component) {
26153
  target.focus();
26154
  }
26155
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26156
  }, {
26157
  key: 'render',
26158
  value: function render() {
26159
  var _this2 = this;
26160
 
 
 
26161
  return _react2.default.createElement(
26162
  'article',
26163
  { className: 'photo' },
@@ -26180,7 +28442,7 @@ var Photo = function (_React$Component) {
26180
  'data-caption': this.state.caption,
26181
  title: instant_img_localize.upload,
26182
  onClick: function onClick(e) {
26183
- return _this2.uploadPhoto(e);
26184
  } },
26185
  _react2.default.createElement('img', { src: this.img, alt: '' }),
26186
  _react2.default.createElement('div', { className: 'status' })
@@ -26202,14 +28464,19 @@ var Photo = function (_React$Component) {
26202
  _react2.default.createElement(
26203
  'div',
26204
  { className: 'photo-options' },
26205
- this.is_block_editor && _react2.default.createElement(
26206
- 'a',
26207
- { className: 'set-featured fade',
26208
- href: '#',
 
 
 
 
 
 
26209
  onClick: function onClick(e) {
26210
  return _this2.setFeaturedImageClick(e);
26211
- },
26212
- title: instant_img_localize.set_as_featured
26213
  },
26214
  _react2.default.createElement('i', { className: 'fa fa-picture-o', 'aria-hidden': 'true' }),
26215
  _react2.default.createElement(
@@ -26218,14 +28485,19 @@ var Photo = function (_React$Component) {
26218
  instant_img_localize.set_as_featured
26219
  )
26220
  ),
26221
- this.is_block_editor && _react2.default.createElement(
26222
- 'a',
26223
- { className: 'insert fade',
26224
- href: '#',
 
 
 
 
 
 
26225
  onClick: function onClick(e) {
26226
  return _this2.insertImageIntoPost(e);
26227
- },
26228
- title: instant_img_localize.insert_into_post
26229
  },
26230
  _react2.default.createElement('i', { className: 'fa fa-plus', 'aria-hidden': 'true' }),
26231
  _react2.default.createElement(
@@ -26236,10 +28508,15 @@ var Photo = function (_React$Component) {
26236
  ),
26237
  _react2.default.createElement(
26238
  'a',
26239
- {
26240
  className: 'edit-photo-admin fade',
26241
- href: '#',
26242
- title: instant_img_localize.edit_upload
 
 
 
 
 
26243
  },
26244
  _react2.default.createElement('i', { className: 'fa fa-pencil', 'aria-hidden': 'true' }),
26245
  _react2.default.createElement(
@@ -26249,11 +28526,16 @@ var Photo = function (_React$Component) {
26249
  )
26250
  ),
26251
  _react2.default.createElement(
26252
- 'a',
26253
- {
26254
  className: 'edit-photo fade',
26255
- href: '#',
26256
- title: instant_img_localize.edit_details,
 
 
 
 
 
26257
  onClick: function onClick(e) {
26258
  return _this2.showEditScreen(e);
26259
  }
@@ -26269,10 +28551,18 @@ var Photo = function (_React$Component) {
26269
  ),
26270
  _react2.default.createElement(
26271
  'div',
26272
- { className: 'options', title: this.likes + ' ' + this.like_text },
26273
  _react2.default.createElement(
26274
  'span',
26275
- { className: 'likes' },
 
 
 
 
 
 
 
 
26276
  _react2.default.createElement('i', { className: 'fa fa-heart heart-like', 'aria-hidden': 'true' }),
26277
  ' ',
26278
  this.likes
@@ -26280,8 +28570,15 @@ var Photo = function (_React$Component) {
26280
  _react2.default.createElement(
26281
  'a',
26282
  {
 
26283
  href: this.link,
26284
- title: instant_img_localize.view_on_unsplash,
 
 
 
 
 
 
26285
  target: '_blank' },
26286
  _react2.default.createElement('i', { className: 'fa fa-external-link', 'aria-hidden': 'true' }),
26287
  _react2.default.createElement(
@@ -26337,7 +28634,7 @@ var Photo = function (_React$Component) {
26337
  instant_img_localize.edit_title,
26338
  ':'
26339
  ),
26340
- _react2.default.createElement('input', { type: 'text', name: 'title', 'data-original': this.title, placeholder: this.title, value: this.state.title, onChange: function onChange(e) {
26341
  return _this2.handleEditChange(e);
26342
  } })
26343
  ),
@@ -26350,7 +28647,7 @@ var Photo = function (_React$Component) {
26350
  instant_img_localize.edit_alt,
26351
  ':'
26352
  ),
26353
- _react2.default.createElement('input', { type: 'text', name: 'alt', 'data-original': '', value: this.state.alt, onChange: function onChange(e) {
26354
  return _this2.handleEditChange(e);
26355
  } })
26356
  ),
@@ -26365,7 +28662,7 @@ var Photo = function (_React$Component) {
26365
  ),
26366
  _react2.default.createElement('textarea', { rows: '3', name: 'caption', 'data-original': '', onChange: function onChange(e) {
26367
  return _this2.handleEditChange(e);
26368
- }, value: this.state.caption })
26369
  ),
26370
  _react2.default.createElement(
26371
  'div',
@@ -26427,9 +28724,9 @@ var _server = __webpack_require__(/*! react-dom/server */ "./node_modules/react-
26427
 
26428
  var _server2 = _interopRequireDefault(_server);
26429
 
26430
- var _imagesloaded = __webpack_require__(/*! imagesloaded */ "./node_modules/imagesloaded/imagesloaded.js");
26431
 
26432
- var _imagesloaded2 = _interopRequireDefault(_imagesloaded);
26433
 
26434
  var _Photo = __webpack_require__(/*! ./Photo */ "./src/js/components/Photo.js");
26435
 
@@ -26453,6 +28750,8 @@ function _possibleConstructorReturn(self, call) { if (!self) { throw new Referen
26453
 
26454
  function _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; }
26455
 
 
 
26456
  var PhotoList = function (_React$Component) {
26457
  _inherits(PhotoList, _React$Component);
26458
 
@@ -26478,22 +28777,24 @@ var PhotoList = function (_React$Component) {
26478
 
26479
  _this.errorMsg = '';
26480
  _this.msnry = '';
 
26481
 
26482
  _this.editor = _this.props.editor ? _this.props.editor : 'classic';
26483
  _this.is_block_editor = _this.props.editor === 'gutenberg' ? true : false;
 
26484
  _this.SetFeaturedImage = _this.props.SetFeaturedImage ? _this.props.SetFeaturedImage.bind(_this) : '';
26485
  _this.InsertImage = _this.props.InsertImage ? _this.props.InsertImage.bind(_this) : '';
26486
 
26487
  if (_this.is_block_editor) {
26488
- // Gutenberg
26489
  _this.container = document.querySelector('body');
26490
  _this.container.classList.add('loading');
26491
  _this.wrapper = document.querySelector('body');
26492
  } else {
26493
- // Classic editor
26494
- _this.container = document.querySelector('.instant-img-container');
 
26495
  _this.container.classList.add('loading');
26496
- _this.wrapper = document.querySelector('.instant-images-wrapper');
26497
  }
26498
 
26499
  return _this;
@@ -26513,7 +28814,7 @@ var PhotoList = function (_React$Component) {
26513
 
26514
  var self = this;
26515
 
26516
- var target = document.querySelector('.error-messaging'); // Target element
26517
 
26518
  var testURL = instant_img_localize.root + 'instant-images/test/'; // REST Route
26519
  var restAPITest = new XMLHttpRequest();
@@ -26563,7 +28864,7 @@ var PhotoList = function (_React$Component) {
26563
  value: function search(e) {
26564
 
26565
  e.preventDefault();
26566
- var input = document.querySelector('#photo-search');
26567
  var term = input.value;
26568
 
26569
  if (term.length > 2) {
@@ -26576,6 +28877,14 @@ var PhotoList = function (_React$Component) {
26576
  input.focus();
26577
  }
26578
  }
 
 
 
 
 
 
 
 
26579
  }, {
26580
  key: 'setOrientation',
26581
  value: function setOrientation(orientation, e) {
@@ -26627,7 +28936,7 @@ var PhotoList = function (_React$Component) {
26627
  }, {
26628
  key: 'clearOrientation',
26629
  value: function clearOrientation() {
26630
- var items = document.querySelectorAll('.orientation-list li');
26631
  [].concat(_toConsumableArray(items)).forEach(function (el) {
26632
  return el.classList.remove('active');
26633
  }); // remove active classes
@@ -26668,7 +28977,7 @@ var PhotoList = function (_React$Component) {
26668
  url = _API2.default.photo_api + '/' + term + _API2.default.app_id;
26669
  }
26670
 
26671
- var input = document.querySelector('#photo-search');
26672
 
26673
  fetch(url).then(function (data) {
26674
  return data.json();
@@ -26728,7 +29037,7 @@ var PhotoList = function (_React$Component) {
26728
  }, {
26729
  key: 'clearSearch',
26730
  value: function clearSearch() {
26731
- var input = document.querySelector('#photo-search');
26732
  input.value = '';
26733
  this.total_results = 0;
26734
  this.is_search = false;
@@ -26843,12 +29152,12 @@ var PhotoList = function (_React$Component) {
26843
  return false;
26844
  }
26845
  var self = this;
26846
- var photoListWrapper = document.querySelector('#photos');
26847
  imagesLoaded(photoListWrapper, function () {
26848
- self.msnry = new Masonry(photoListWrapper, {
26849
  itemSelector: '.photo'
26850
  });
26851
- [].concat(_toConsumableArray(document.querySelectorAll('#photos .photo'))).forEach(function (el) {
26852
  return el.classList.add('in-view');
26853
  });
26854
  });
@@ -26866,7 +29175,7 @@ var PhotoList = function (_React$Component) {
26866
  value: function onScroll() {
26867
  var wHeight = window.innerHeight;
26868
  var scrollTop = window.pageYOffset;
26869
- var scrollH = document.body.scrollHeight - 200;
26870
  if (wHeight + scrollTop >= scrollH && !this.isLoading && !this.isDone) {
26871
  this.getPhotos();
26872
  }
@@ -26898,13 +29207,13 @@ var PhotoList = function (_React$Component) {
26898
  value: function setActiveState() {
26899
  var self = this;
26900
  // Remove .active class
26901
- [].concat(_toConsumableArray(document.querySelectorAll('.control-nav a'))).forEach(function (el) {
26902
  return el.classList.remove('active');
26903
  });
26904
 
26905
  // Set active item, if not search
26906
  if (!this.is_search) {
26907
- var active = document.querySelector('.control-nav li a.' + this.orderby);
26908
  active.classList.add('active');
26909
  }
26910
  setTimeout(function () {
@@ -26913,6 +29222,65 @@ var PhotoList = function (_React$Component) {
26913
  }, 1000);
26914
  }
26915
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26916
  // Component Updated
26917
 
26918
  }, {
@@ -26935,8 +29303,8 @@ var PhotoList = function (_React$Component) {
26935
  this.container.classList.remove('loading');
26936
  this.wrapper.classList.add('loaded');
26937
 
26938
- if (this.is_block_editor) {
26939
- // Gutenberg
26940
  this.page = 0;
26941
  this.getPhotos();
26942
  } else {
@@ -26964,8 +29332,8 @@ var PhotoList = function (_React$Component) {
26964
  'li',
26965
  null,
26966
  _react2.default.createElement(
26967
- 'a',
26968
- { className: 'latest', href: 'javascript:void(0);', onClick: function onClick(e) {
26969
  return _this3.togglePhotoList('latest', e);
26970
  } },
26971
  instant_img_localize.latest
@@ -26975,8 +29343,8 @@ var PhotoList = function (_React$Component) {
26975
  'li',
26976
  { id: 'nav-target' },
26977
  _react2.default.createElement(
26978
- 'a',
26979
- { className: 'popular', href: 'javascript:void(0);', onClick: function onClick(e) {
26980
  return _this3.togglePhotoList('popular', e);
26981
  } },
26982
  instant_img_localize.popular
@@ -26986,8 +29354,8 @@ var PhotoList = function (_React$Component) {
26986
  'li',
26987
  null,
26988
  _react2.default.createElement(
26989
- 'a',
26990
- { className: 'oldest', href: 'javascript:void(0);', onClick: function onClick(e) {
26991
  return _this3.togglePhotoList('oldest', e);
26992
  } },
26993
  instant_img_localize.oldest
@@ -27007,7 +29375,7 @@ var PhotoList = function (_React$Component) {
27007
  { type: 'submit', id: 'photo-search-submit' },
27008
  _react2.default.createElement('i', { className: 'fa fa-search' })
27009
  ),
27010
- _react2.default.createElement(_ResultsToolTip2.default, { isSearch: this.is_search, total: this.total_results, title: this.total_results + ' ' + instant_img_localize.search_results + ' ' + this.search_term })
27011
  )
27012
  )
27013
  ),
@@ -27057,9 +29425,9 @@ var PhotoList = function (_React$Component) {
27057
  ),
27058
  _react2.default.createElement(
27059
  'div',
27060
- { id: 'photos' },
27061
  this.state.results.map(function (result, iterator) {
27062
- return _react2.default.createElement(_Photo2.default, { result: result, key: result.id + iterator, blockEditor: _this3.is_block_editor, SetFeaturedImage: _this3.SetFeaturedImage, InsertImage: _this3.InsertImage });
27063
  })
27064
  ),
27065
  _react2.default.createElement(
@@ -27089,6 +29457,11 @@ var PhotoList = function (_React$Component) {
27089
  } },
27090
  instant_img_localize.load_more
27091
  )
 
 
 
 
 
27092
  )
27093
  );
27094
  }
@@ -27141,8 +29514,8 @@ var ResultsToolTip = function (_React$Component) {
27141
  _createClass(ResultsToolTip, [{
27142
  key: 'resetSearch',
27143
  value: function resetSearch() {
27144
- var nav = document.querySelector('.control-nav');
27145
- var navItem = nav.querySelector('li a.latest');
27146
  navItem.click();
27147
  }
27148
  }, {
@@ -27159,11 +29532,16 @@ var ResultsToolTip = function (_React$Component) {
27159
  this.props.total
27160
  ),
27161
  _react2.default.createElement(
27162
- 'a',
27163
- { href: 'javascript:void(0)', title: instant_img_localize.clear_search, onClick: function onClick(e) {
27164
  return _this2.resetSearch();
27165
  } },
27166
- 'x'
 
 
 
 
 
27167
  )
27168
  );
27169
  }
2694
  module.exports = factory;
2695
 
2696
 
2697
+ /***/ }),
2698
+
2699
+ /***/ "./node_modules/desandro-matches-selector/matches-selector.js":
2700
+ /*!********************************************************************!*\
2701
+ !*** ./node_modules/desandro-matches-selector/matches-selector.js ***!
2702
+ \********************************************************************/
2703
+ /*! no static exports found */
2704
+ /***/ (function(module, exports, __webpack_require__) {
2705
+
2706
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
2707
+ * matchesSelector v2.0.2
2708
+ * matchesSelector( element, '.selector' )
2709
+ * MIT license
2710
+ */
2711
+
2712
+ /*jshint browser: true, strict: true, undef: true, unused: true */
2713
+
2714
+ ( function( window, factory ) {
2715
+ /*global define: false, module: false */
2716
+ 'use strict';
2717
+ // universal module definition
2718
+ if ( true ) {
2719
+ // AMD
2720
+ !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
2721
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
2722
+ (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
2723
+ __WEBPACK_AMD_DEFINE_FACTORY__),
2724
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
2725
+ } else {}
2726
+
2727
+ }( window, function factory() {
2728
+ 'use strict';
2729
+
2730
+ var matchesMethod = ( function() {
2731
+ var ElemProto = window.Element.prototype;
2732
+ // check for the standard method name first
2733
+ if ( ElemProto.matches ) {
2734
+ return 'matches';
2735
+ }
2736
+ // check un-prefixed
2737
+ if ( ElemProto.matchesSelector ) {
2738
+ return 'matchesSelector';
2739
+ }
2740
+ // check vendor prefixes
2741
+ var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];
2742
+
2743
+ for ( var i=0; i < prefixes.length; i++ ) {
2744
+ var prefix = prefixes[i];
2745
+ var method = prefix + 'MatchesSelector';
2746
+ if ( ElemProto[ method ] ) {
2747
+ return method;
2748
+ }
2749
+ }
2750
+ })();
2751
+
2752
+ return function matchesSelector( elem, selector ) {
2753
+ return elem[ matchesMethod ]( selector );
2754
+ };
2755
+
2756
+ }));
2757
+
2758
+
2759
  /***/ }),
2760
 
2761
  /***/ "./node_modules/ev-emitter/ev-emitter.js":
4154
 
4155
  module.exports = warning;
4156
 
4157
+ /***/ }),
4158
+
4159
+ /***/ "./node_modules/fizzy-ui-utils/utils.js":
4160
+ /*!**********************************************!*\
4161
+ !*** ./node_modules/fizzy-ui-utils/utils.js ***!
4162
+ \**********************************************/
4163
+ /*! no static exports found */
4164
+ /***/ (function(module, exports, __webpack_require__) {
4165
+
4166
+ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
4167
+ * Fizzy UI utils v2.0.7
4168
+ * MIT license
4169
+ */
4170
+
4171
+ /*jshint browser: true, undef: true, unused: true, strict: true */
4172
+
4173
+ ( function( window, factory ) {
4174
+ // universal module definition
4175
+ /*jshint strict: false */ /*globals define, module, require */
4176
+
4177
+ if ( true ) {
4178
+ // AMD
4179
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
4180
+ __webpack_require__(/*! desandro-matches-selector/matches-selector */ "./node_modules/desandro-matches-selector/matches-selector.js")
4181
+ ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( matchesSelector ) {
4182
+ return factory( window, matchesSelector );
4183
+ }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
4184
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
4185
+ } else {}
4186
+
4187
+ }( window, function factory( window, matchesSelector ) {
4188
+
4189
+ 'use strict';
4190
+
4191
+ var utils = {};
4192
+
4193
+ // ----- extend ----- //
4194
+
4195
+ // extends objects
4196
+ utils.extend = function( a, b ) {
4197
+ for ( var prop in b ) {
4198
+ a[ prop ] = b[ prop ];
4199
+ }
4200
+ return a;
4201
+ };
4202
+
4203
+ // ----- modulo ----- //
4204
+
4205
+ utils.modulo = function( num, div ) {
4206
+ return ( ( num % div ) + div ) % div;
4207
+ };
4208
+
4209
+ // ----- makeArray ----- //
4210
+
4211
+ var arraySlice = Array.prototype.slice;
4212
+
4213
+ // turn element or nodeList into an array
4214
+ utils.makeArray = function( obj ) {
4215
+ if ( Array.isArray( obj ) ) {
4216
+ // use object if already an array
4217
+ return obj;
4218
+ }
4219
+ // return empty array if undefined or null. #6
4220
+ if ( obj === null || obj === undefined ) {
4221
+ return [];
4222
+ }
4223
+
4224
+ var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';
4225
+ if ( isArrayLike ) {
4226
+ // convert nodeList to array
4227
+ return arraySlice.call( obj );
4228
+ }
4229
+
4230
+ // array of single index
4231
+ return [ obj ];
4232
+ };
4233
+
4234
+ // ----- removeFrom ----- //
4235
+
4236
+ utils.removeFrom = function( ary, obj ) {
4237
+ var index = ary.indexOf( obj );
4238
+ if ( index != -1 ) {
4239
+ ary.splice( index, 1 );
4240
+ }
4241
+ };
4242
+
4243
+ // ----- getParent ----- //
4244
+
4245
+ utils.getParent = function( elem, selector ) {
4246
+ while ( elem.parentNode && elem != document.body ) {
4247
+ elem = elem.parentNode;
4248
+ if ( matchesSelector( elem, selector ) ) {
4249
+ return elem;
4250
+ }
4251
+ }
4252
+ };
4253
+
4254
+ // ----- getQueryElement ----- //
4255
+
4256
+ // use element as selector string
4257
+ utils.getQueryElement = function( elem ) {
4258
+ if ( typeof elem == 'string' ) {
4259
+ return document.querySelector( elem );
4260
+ }
4261
+ return elem;
4262
+ };
4263
+
4264
+ // ----- handleEvent ----- //
4265
+
4266
+ // enable .ontype to trigger from .addEventListener( elem, 'type' )
4267
+ utils.handleEvent = function( event ) {
4268
+ var method = 'on' + event.type;
4269
+ if ( this[ method ] ) {
4270
+ this[ method ]( event );
4271
+ }
4272
+ };
4273
+
4274
+ // ----- filterFindElements ----- //
4275
+
4276
+ utils.filterFindElements = function( elems, selector ) {
4277
+ // make array of elems
4278
+ elems = utils.makeArray( elems );
4279
+ var ffElems = [];
4280
+
4281
+ elems.forEach( function( elem ) {
4282
+ // check that elem is an actual element
4283
+ if ( !( elem instanceof HTMLElement ) ) {
4284
+ return;
4285
+ }
4286
+ // add elem if no selector
4287
+ if ( !selector ) {
4288
+ ffElems.push( elem );
4289
+ return;
4290
+ }
4291
+ // filter & find items if we have a selector
4292
+ // filter
4293
+ if ( matchesSelector( elem, selector ) ) {
4294
+ ffElems.push( elem );
4295
+ }
4296
+ // find children
4297
+ var childElems = elem.querySelectorAll( selector );
4298
+ // concat childElems to filterFound array
4299
+ for ( var i=0; i < childElems.length; i++ ) {
4300
+ ffElems.push( childElems[i] );
4301
+ }
4302
+ });
4303
+
4304
+ return ffElems;
4305
+ };
4306
+
4307
+ // ----- debounceMethod ----- //
4308
+
4309
+ utils.debounceMethod = function( _class, methodName, threshold ) {
4310
+ threshold = threshold || 100;
4311
+ // original method
4312
+ var method = _class.prototype[ methodName ];
4313
+ var timeoutName = methodName + 'Timeout';
4314
+
4315
+ _class.prototype[ methodName ] = function() {
4316
+ var timeout = this[ timeoutName ];
4317
+ clearTimeout( timeout );
4318
+
4319
+ var args = arguments;
4320
+ var _this = this;
4321
+ this[ timeoutName ] = setTimeout( function() {
4322
+ method.apply( _this, args );
4323
+ delete _this[ timeoutName ];
4324
+ }, threshold );
4325
+ };
4326
+ };
4327
+
4328
+ // ----- docReady ----- //
4329
+
4330
+ utils.docReady = function( callback ) {
4331
+ var readyState = document.readyState;
4332
+ if ( readyState == 'complete' || readyState == 'interactive' ) {
4333
+ // do async to allow for other scripts to run. metafizzy/flickity#441
4334
+ setTimeout( callback );
4335
+ } else {
4336
+ document.addEventListener( 'DOMContentLoaded', callback );
4337
+ }
4338
+ };
4339
+
4340
+ // ----- htmlInit ----- //
4341
+
4342
+ // http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/
4343
+ utils.toDashed = function( str ) {
4344
+ return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {
4345
+ return $1 + '-' + $2;
4346
+ }).toLowerCase();
4347
+ };
4348
+
4349
+ var console = window.console;
4350
+ /**
4351
+ * allow user to initialize classes via [data-namespace] or .js-namespace class
4352
+ * htmlInit( Widget, 'widgetName' )
4353
+ * options are parsed from data-namespace-options
4354
+ */
4355
+ utils.htmlInit = function( WidgetClass, namespace ) {
4356
+ utils.docReady( function() {
4357
+ var dashedNamespace = utils.toDashed( namespace );
4358
+ var dataAttr = 'data-' + dashedNamespace;
4359
+ var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );
4360
+ var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );
4361
+ var elems = utils.makeArray( dataAttrElems )
4362
+ .concat( utils.makeArray( jsDashElems ) );
4363
+ var dataOptionsAttr = dataAttr + '-options';
4364
+ var jQuery = window.jQuery;
4365
+
4366
+ elems.forEach( function( elem ) {
4367
+ var attr = elem.getAttribute( dataAttr ) ||
4368
+ elem.getAttribute( dataOptionsAttr );
4369
+ var options;
4370
+ try {
4371
+ options = attr && JSON.parse( attr );
4372
+ } catch ( error ) {
4373
+ // log error, do not initialize
4374
+ if ( console ) {
4375
+ console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +
4376
+ ': ' + error );
4377
+ }
4378
+ return;
4379
+ }
4380
+ // initialize
4381
+ var instance = new WidgetClass( elem, options );
4382
+ // make available via $().data('namespace')
4383
+ if ( jQuery ) {
4384
+ jQuery.data( elem, namespace, instance );
4385
+ }
4386
+ });
4387
+
4388
+ });
4389
+ };
4390
+
4391
+ // ----- ----- //
4392
+
4393
+ return utils;
4394
+
4395
+ }));
4396
+
4397
+
4398
+ /***/ }),
4399
+
4400
+ /***/ "./node_modules/get-size/get-size.js":
4401
+ /*!*******************************************!*\
4402
+ !*** ./node_modules/get-size/get-size.js ***!
4403
+ \*******************************************/
4404
+ /*! no static exports found */
4405
+ /***/ (function(module, exports, __webpack_require__) {
4406
+
4407
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
4408
+ * getSize v2.0.3
4409
+ * measure size of elements
4410
+ * MIT license
4411
+ */
4412
+
4413
+ /* jshint browser: true, strict: true, undef: true, unused: true */
4414
+ /* globals console: false */
4415
+
4416
+ ( function( window, factory ) {
4417
+ /* jshint strict: false */ /* globals define, module */
4418
+ if ( true ) {
4419
+ // AMD
4420
+ !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
4421
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
4422
+ (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
4423
+ __WEBPACK_AMD_DEFINE_FACTORY__),
4424
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
4425
+ } else {}
4426
+
4427
+ })( window, function factory() {
4428
+ 'use strict';
4429
+
4430
+ // -------------------------- helpers -------------------------- //
4431
+
4432
+ // get a number from a string, not a percentage
4433
+ function getStyleSize( value ) {
4434
+ var num = parseFloat( value );
4435
+ // not a percent like '100%', and a number
4436
+ var isValid = value.indexOf('%') == -1 && !isNaN( num );
4437
+ return isValid && num;
4438
+ }
4439
+
4440
+ function noop() {}
4441
+
4442
+ var logError = typeof console == 'undefined' ? noop :
4443
+ function( message ) {
4444
+ console.error( message );
4445
+ };
4446
+
4447
+ // -------------------------- measurements -------------------------- //
4448
+
4449
+ var measurements = [
4450
+ 'paddingLeft',
4451
+ 'paddingRight',
4452
+ 'paddingTop',
4453
+ 'paddingBottom',
4454
+ 'marginLeft',
4455
+ 'marginRight',
4456
+ 'marginTop',
4457
+ 'marginBottom',
4458
+ 'borderLeftWidth',
4459
+ 'borderRightWidth',
4460
+ 'borderTopWidth',
4461
+ 'borderBottomWidth'
4462
+ ];
4463
+
4464
+ var measurementsLength = measurements.length;
4465
+
4466
+ function getZeroSize() {
4467
+ var size = {
4468
+ width: 0,
4469
+ height: 0,
4470
+ innerWidth: 0,
4471
+ innerHeight: 0,
4472
+ outerWidth: 0,
4473
+ outerHeight: 0
4474
+ };
4475
+ for ( var i=0; i < measurementsLength; i++ ) {
4476
+ var measurement = measurements[i];
4477
+ size[ measurement ] = 0;
4478
+ }
4479
+ return size;
4480
+ }
4481
+
4482
+ // -------------------------- getStyle -------------------------- //
4483
+
4484
+ /**
4485
+ * getStyle, get style of element, check for Firefox bug
4486
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=548397
4487
+ */
4488
+ function getStyle( elem ) {
4489
+ var style = getComputedStyle( elem );
4490
+ if ( !style ) {
4491
+ logError( 'Style returned ' + style +
4492
+ '. Are you running this code in a hidden iframe on Firefox? ' +
4493
+ 'See https://bit.ly/getsizebug1' );
4494
+ }
4495
+ return style;
4496
+ }
4497
+
4498
+ // -------------------------- setup -------------------------- //
4499
+
4500
+ var isSetup = false;
4501
+
4502
+ var isBoxSizeOuter;
4503
+
4504
+ /**
4505
+ * setup
4506
+ * check isBoxSizerOuter
4507
+ * do on first getSize() rather than on page load for Firefox bug
4508
+ */
4509
+ function setup() {
4510
+ // setup once
4511
+ if ( isSetup ) {
4512
+ return;
4513
+ }
4514
+ isSetup = true;
4515
+
4516
+ // -------------------------- box sizing -------------------------- //
4517
+
4518
+ /**
4519
+ * Chrome & Safari measure the outer-width on style.width on border-box elems
4520
+ * IE11 & Firefox<29 measures the inner-width
4521
+ */
4522
+ var div = document.createElement('div');
4523
+ div.style.width = '200px';
4524
+ div.style.padding = '1px 2px 3px 4px';
4525
+ div.style.borderStyle = 'solid';
4526
+ div.style.borderWidth = '1px 2px 3px 4px';
4527
+ div.style.boxSizing = 'border-box';
4528
+
4529
+ var body = document.body || document.documentElement;
4530
+ body.appendChild( div );
4531
+ var style = getStyle( div );
4532
+ // round value for browser zoom. desandro/masonry#928
4533
+ isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;
4534
+ getSize.isBoxSizeOuter = isBoxSizeOuter;
4535
+
4536
+ body.removeChild( div );
4537
+ }
4538
+
4539
+ // -------------------------- getSize -------------------------- //
4540
+
4541
+ function getSize( elem ) {
4542
+ setup();
4543
+
4544
+ // use querySeletor if elem is string
4545
+ if ( typeof elem == 'string' ) {
4546
+ elem = document.querySelector( elem );
4547
+ }
4548
+
4549
+ // do not proceed on non-objects
4550
+ if ( !elem || typeof elem != 'object' || !elem.nodeType ) {
4551
+ return;
4552
+ }
4553
+
4554
+ var style = getStyle( elem );
4555
+
4556
+ // if hidden, everything is 0
4557
+ if ( style.display == 'none' ) {
4558
+ return getZeroSize();
4559
+ }
4560
+
4561
+ var size = {};
4562
+ size.width = elem.offsetWidth;
4563
+ size.height = elem.offsetHeight;
4564
+
4565
+ var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';
4566
+
4567
+ // get all measurements
4568
+ for ( var i=0; i < measurementsLength; i++ ) {
4569
+ var measurement = measurements[i];
4570
+ var value = style[ measurement ];
4571
+ var num = parseFloat( value );
4572
+ // any 'auto', 'medium' value will be 0
4573
+ size[ measurement ] = !isNaN( num ) ? num : 0;
4574
+ }
4575
+
4576
+ var paddingWidth = size.paddingLeft + size.paddingRight;
4577
+ var paddingHeight = size.paddingTop + size.paddingBottom;
4578
+ var marginWidth = size.marginLeft + size.marginRight;
4579
+ var marginHeight = size.marginTop + size.marginBottom;
4580
+ var borderWidth = size.borderLeftWidth + size.borderRightWidth;
4581
+ var borderHeight = size.borderTopWidth + size.borderBottomWidth;
4582
+
4583
+ var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;
4584
+
4585
+ // overwrite width and height if we can get it from style
4586
+ var styleWidth = getStyleSize( style.width );
4587
+ if ( styleWidth !== false ) {
4588
+ size.width = styleWidth +
4589
+ // add padding and border unless it's already including it
4590
+ ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );
4591
+ }
4592
+
4593
+ var styleHeight = getStyleSize( style.height );
4594
+ if ( styleHeight !== false ) {
4595
+ size.height = styleHeight +
4596
+ // add padding and border unless it's already including it
4597
+ ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );
4598
+ }
4599
+
4600
+ size.innerWidth = size.width - ( paddingWidth + borderWidth );
4601
+ size.innerHeight = size.height - ( paddingHeight + borderHeight );
4602
+
4603
+ size.outerWidth = size.width + marginWidth;
4604
+ size.outerHeight = size.height + marginHeight;
4605
+
4606
+ return size;
4607
+ }
4608
+
4609
+ return getSize;
4610
+
4611
+ });
4612
+
4613
+
4614
  /***/ }),
4615
 
4616
  /***/ "./node_modules/imagesloaded/imagesloaded.js":
4990
  /*! no static exports found */
4991
  /***/ (function(module, exports) {
4992
 
4993
+ /*!
4994
+ * Determine if an object is a Buffer
4995
+ *
4996
+ * @author Feross Aboukhadijeh <https://feross.org>
4997
+ * @license MIT
4998
+ */
4999
+
5000
+ // The _isBuffer check is for Safari 5-7 support, because it's missing
5001
+ // Object.prototype.constructor. Remove this eventually
5002
+ module.exports = function (obj) {
5003
+ return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
5004
+ }
5005
+
5006
+ function isBuffer (obj) {
5007
+ return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
5008
+ }
5009
+
5010
+ // For Node v0.10 support. Remove this eventually.
5011
+ function isSlowBuffer (obj) {
5012
+ return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
5013
+ }
5014
+
5015
+
5016
+ /***/ }),
5017
+
5018
+ /***/ "./node_modules/masonry-layout/masonry.js":
5019
+ /*!************************************************!*\
5020
+ !*** ./node_modules/masonry-layout/masonry.js ***!
5021
+ \************************************************/
5022
+ /*! no static exports found */
5023
+ /***/ (function(module, exports, __webpack_require__) {
5024
+
5025
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
5026
+ * Masonry v4.2.2
5027
+ * Cascading grid layout library
5028
+ * https://masonry.desandro.com
5029
+ * MIT License
5030
+ * by David DeSandro
5031
+ */
5032
+
5033
+ ( function( window, factory ) {
5034
+ // universal module definition
5035
+ /* jshint strict: false */ /*globals define, module, require */
5036
+ if ( true ) {
5037
+ // AMD
5038
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
5039
+ __webpack_require__(/*! outlayer/outlayer */ "./node_modules/outlayer/outlayer.js"),
5040
+ __webpack_require__(/*! get-size/get-size */ "./node_modules/get-size/get-size.js")
5041
+ ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
5042
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
5043
+ (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
5044
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
5045
+ } else {}
5046
+
5047
+ }( window, function factory( Outlayer, getSize ) {
5048
+
5049
+ 'use strict';
5050
+
5051
+ // -------------------------- masonryDefinition -------------------------- //
5052
+
5053
+ // create an Outlayer layout class
5054
+ var Masonry = Outlayer.create('masonry');
5055
+ // isFitWidth -> fitWidth
5056
+ Masonry.compatOptions.fitWidth = 'isFitWidth';
5057
+
5058
+ var proto = Masonry.prototype;
5059
+
5060
+ proto._resetLayout = function() {
5061
+ this.getSize();
5062
+ this._getMeasurement( 'columnWidth', 'outerWidth' );
5063
+ this._getMeasurement( 'gutter', 'outerWidth' );
5064
+ this.measureColumns();
5065
+
5066
+ // reset column Y
5067
+ this.colYs = [];
5068
+ for ( var i=0; i < this.cols; i++ ) {
5069
+ this.colYs.push( 0 );
5070
+ }
5071
+
5072
+ this.maxY = 0;
5073
+ this.horizontalColIndex = 0;
5074
+ };
5075
+
5076
+ proto.measureColumns = function() {
5077
+ this.getContainerWidth();
5078
+ // if columnWidth is 0, default to outerWidth of first item
5079
+ if ( !this.columnWidth ) {
5080
+ var firstItem = this.items[0];
5081
+ var firstItemElem = firstItem && firstItem.element;
5082
+ // columnWidth fall back to item of first element
5083
+ this.columnWidth = firstItemElem && getSize( firstItemElem ).outerWidth ||
5084
+ // if first elem has no width, default to size of container
5085
+ this.containerWidth;
5086
+ }
5087
+
5088
+ var columnWidth = this.columnWidth += this.gutter;
5089
+
5090
+ // calculate columns
5091
+ var containerWidth = this.containerWidth + this.gutter;
5092
+ var cols = containerWidth / columnWidth;
5093
+ // fix rounding errors, typically with gutters
5094
+ var excess = columnWidth - containerWidth % columnWidth;
5095
+ // if overshoot is less than a pixel, round up, otherwise floor it
5096
+ var mathMethod = excess && excess < 1 ? 'round' : 'floor';
5097
+ cols = Math[ mathMethod ]( cols );
5098
+ this.cols = Math.max( cols, 1 );
5099
+ };
5100
+
5101
+ proto.getContainerWidth = function() {
5102
+ // container is parent if fit width
5103
+ var isFitWidth = this._getOption('fitWidth');
5104
+ var container = isFitWidth ? this.element.parentNode : this.element;
5105
+ // check that this.size and size are there
5106
+ // IE8 triggers resize on body size change, so they might not be
5107
+ var size = getSize( container );
5108
+ this.containerWidth = size && size.innerWidth;
5109
+ };
5110
+
5111
+ proto._getItemLayoutPosition = function( item ) {
5112
+ item.getSize();
5113
+ // how many columns does this brick span
5114
+ var remainder = item.size.outerWidth % this.columnWidth;
5115
+ var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil';
5116
+ // round if off by 1 pixel, otherwise use ceil
5117
+ var colSpan = Math[ mathMethod ]( item.size.outerWidth / this.columnWidth );
5118
+ colSpan = Math.min( colSpan, this.cols );
5119
+ // use horizontal or top column position
5120
+ var colPosMethod = this.options.horizontalOrder ?
5121
+ '_getHorizontalColPosition' : '_getTopColPosition';
5122
+ var colPosition = this[ colPosMethod ]( colSpan, item );
5123
+ // position the brick
5124
+ var position = {
5125
+ x: this.columnWidth * colPosition.col,
5126
+ y: colPosition.y
5127
+ };
5128
+ // apply setHeight to necessary columns
5129
+ var setHeight = colPosition.y + item.size.outerHeight;
5130
+ var setMax = colSpan + colPosition.col;
5131
+ for ( var i = colPosition.col; i < setMax; i++ ) {
5132
+ this.colYs[i] = setHeight;
5133
+ }
5134
+
5135
+ return position;
5136
+ };
5137
+
5138
+ proto._getTopColPosition = function( colSpan ) {
5139
+ var colGroup = this._getTopColGroup( colSpan );
5140
+ // get the minimum Y value from the columns
5141
+ var minimumY = Math.min.apply( Math, colGroup );
5142
+
5143
+ return {
5144
+ col: colGroup.indexOf( minimumY ),
5145
+ y: minimumY,
5146
+ };
5147
+ };
5148
+
5149
+ /**
5150
+ * @param {Number} colSpan - number of columns the element spans
5151
+ * @returns {Array} colGroup
5152
+ */
5153
+ proto._getTopColGroup = function( colSpan ) {
5154
+ if ( colSpan < 2 ) {
5155
+ // if brick spans only one column, use all the column Ys
5156
+ return this.colYs;
5157
+ }
5158
+
5159
+ var colGroup = [];
5160
+ // how many different places could this brick fit horizontally
5161
+ var groupCount = this.cols + 1 - colSpan;
5162
+ // for each group potential horizontal position
5163
+ for ( var i = 0; i < groupCount; i++ ) {
5164
+ colGroup[i] = this._getColGroupY( i, colSpan );
5165
+ }
5166
+ return colGroup;
5167
+ };
5168
+
5169
+ proto._getColGroupY = function( col, colSpan ) {
5170
+ if ( colSpan < 2 ) {
5171
+ return this.colYs[ col ];
5172
+ }
5173
+ // make an array of colY values for that one group
5174
+ var groupColYs = this.colYs.slice( col, col + colSpan );
5175
+ // and get the max value of the array
5176
+ return Math.max.apply( Math, groupColYs );
5177
+ };
5178
+
5179
+ // get column position based on horizontal index. #873
5180
+ proto._getHorizontalColPosition = function( colSpan, item ) {
5181
+ var col = this.horizontalColIndex % this.cols;
5182
+ var isOver = colSpan > 1 && col + colSpan > this.cols;
5183
+ // shift to next row if item can't fit on current row
5184
+ col = isOver ? 0 : col;
5185
+ // don't let zero-size items take up space
5186
+ var hasSize = item.size.outerWidth && item.size.outerHeight;
5187
+ this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex;
5188
+
5189
+ return {
5190
+ col: col,
5191
+ y: this._getColGroupY( col, colSpan ),
5192
+ };
5193
+ };
5194
+
5195
+ proto._manageStamp = function( stamp ) {
5196
+ var stampSize = getSize( stamp );
5197
+ var offset = this._getElementOffset( stamp );
5198
+ // get the columns that this stamp affects
5199
+ var isOriginLeft = this._getOption('originLeft');
5200
+ var firstX = isOriginLeft ? offset.left : offset.right;
5201
+ var lastX = firstX + stampSize.outerWidth;
5202
+ var firstCol = Math.floor( firstX / this.columnWidth );
5203
+ firstCol = Math.max( 0, firstCol );
5204
+ var lastCol = Math.floor( lastX / this.columnWidth );
5205
+ // lastCol should not go over if multiple of columnWidth #425
5206
+ lastCol -= lastX % this.columnWidth ? 0 : 1;
5207
+ lastCol = Math.min( this.cols - 1, lastCol );
5208
+ // set colYs to bottom of the stamp
5209
+
5210
+ var isOriginTop = this._getOption('originTop');
5211
+ var stampMaxY = ( isOriginTop ? offset.top : offset.bottom ) +
5212
+ stampSize.outerHeight;
5213
+ for ( var i = firstCol; i <= lastCol; i++ ) {
5214
+ this.colYs[i] = Math.max( stampMaxY, this.colYs[i] );
5215
+ }
5216
+ };
5217
+
5218
+ proto._getContainerSize = function() {
5219
+ this.maxY = Math.max.apply( Math, this.colYs );
5220
+ var size = {
5221
+ height: this.maxY
5222
+ };
5223
+
5224
+ if ( this._getOption('fitWidth') ) {
5225
+ size.width = this._getContainerFitWidth();
5226
+ }
5227
+
5228
+ return size;
5229
+ };
5230
+
5231
+ proto._getContainerFitWidth = function() {
5232
+ var unusedCols = 0;
5233
+ // count unused columns
5234
+ var i = this.cols;
5235
+ while ( --i ) {
5236
+ if ( this.colYs[i] !== 0 ) {
5237
+ break;
5238
+ }
5239
+ unusedCols++;
5240
+ }
5241
+ // fit container to columns that have been used
5242
+ return ( this.cols - unusedCols ) * this.columnWidth - this.gutter;
5243
+ };
5244
+
5245
+ proto.needsResizeLayout = function() {
5246
+ var previousWidth = this.containerWidth;
5247
+ this.getContainerWidth();
5248
+ return previousWidth != this.containerWidth;
5249
+ };
5250
+
5251
+ return Masonry;
5252
+
5253
+ }));
5254
+
5255
+
5256
+ /***/ }),
5257
+
5258
+ /***/ "./node_modules/object-assign/index.js":
5259
+ /*!*********************************************!*\
5260
+ !*** ./node_modules/object-assign/index.js ***!
5261
+ \*********************************************/
5262
+ /*! no static exports found */
5263
+ /***/ (function(module, exports, __webpack_require__) {
5264
+
5265
+ "use strict";
5266
+ /*
5267
+ object-assign
5268
+ (c) Sindre Sorhus
5269
+ @license MIT
5270
+ */
5271
+
5272
+
5273
+ /* eslint-disable no-unused-vars */
5274
+ var getOwnPropertySymbols = Object.getOwnPropertySymbols;
5275
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
5276
+ var propIsEnumerable = Object.prototype.propertyIsEnumerable;
5277
+
5278
+ function toObject(val) {
5279
+ if (val === null || val === undefined) {
5280
+ throw new TypeError('Object.assign cannot be called with null or undefined');
5281
+ }
5282
+
5283
+ return Object(val);
5284
+ }
5285
+
5286
+ function shouldUseNative() {
5287
+ try {
5288
+ if (!Object.assign) {
5289
+ return false;
5290
+ }
5291
+
5292
+ // Detect buggy property enumeration order in older V8 versions.
5293
+
5294
+ // https://bugs.chromium.org/p/v8/issues/detail?id=4118
5295
+ var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
5296
+ test1[5] = 'de';
5297
+ if (Object.getOwnPropertyNames(test1)[0] === '5') {
5298
+ return false;
5299
+ }
5300
+
5301
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
5302
+ var test2 = {};
5303
+ for (var i = 0; i < 10; i++) {
5304
+ test2['_' + String.fromCharCode(i)] = i;
5305
+ }
5306
+ var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
5307
+ return test2[n];
5308
+ });
5309
+ if (order2.join('') !== '0123456789') {
5310
+ return false;
5311
+ }
5312
+
5313
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
5314
+ var test3 = {};
5315
+ 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
5316
+ test3[letter] = letter;
5317
+ });
5318
+ if (Object.keys(Object.assign({}, test3)).join('') !==
5319
+ 'abcdefghijklmnopqrst') {
5320
+ return false;
5321
+ }
5322
+
5323
+ return true;
5324
+ } catch (err) {
5325
+ // We don't expect any of the above to throw, but better to be safe.
5326
+ return false;
5327
+ }
5328
+ }
5329
+
5330
+ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
5331
+ var from;
5332
+ var to = toObject(target);
5333
+ var symbols;
5334
+
5335
+ for (var s = 1; s < arguments.length; s++) {
5336
+ from = Object(arguments[s]);
5337
+
5338
+ for (var key in from) {
5339
+ if (hasOwnProperty.call(from, key)) {
5340
+ to[key] = from[key];
5341
+ }
5342
+ }
5343
+
5344
+ if (getOwnPropertySymbols) {
5345
+ symbols = getOwnPropertySymbols(from);
5346
+ for (var i = 0; i < symbols.length; i++) {
5347
+ if (propIsEnumerable.call(from, symbols[i])) {
5348
+ to[symbols[i]] = from[symbols[i]];
5349
+ }
5350
+ }
5351
+ }
5352
+ }
5353
+
5354
+ return to;
5355
+ };
5356
+
5357
+
5358
+ /***/ }),
5359
+
5360
+ /***/ "./node_modules/outlayer/item.js":
5361
+ /*!***************************************!*\
5362
+ !*** ./node_modules/outlayer/item.js ***!
5363
+ \***************************************/
5364
+ /*! no static exports found */
5365
+ /***/ (function(module, exports, __webpack_require__) {
5366
+
5367
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
5368
+ * Outlayer Item
5369
+ */
5370
+
5371
+ ( function( window, factory ) {
5372
+ // universal module definition
5373
+ /* jshint strict: false */ /* globals define, module, require */
5374
+ if ( true ) {
5375
+ // AMD - RequireJS
5376
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
5377
+ __webpack_require__(/*! ev-emitter/ev-emitter */ "./node_modules/ev-emitter/ev-emitter.js"),
5378
+ __webpack_require__(/*! get-size/get-size */ "./node_modules/get-size/get-size.js")
5379
+ ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
5380
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
5381
+ (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
5382
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
5383
+ } else {}
5384
+
5385
+ }( window, function factory( EvEmitter, getSize ) {
5386
+ 'use strict';
5387
+
5388
+ // ----- helpers ----- //
5389
+
5390
+ function isEmptyObj( obj ) {
5391
+ for ( var prop in obj ) {
5392
+ return false;
5393
+ }
5394
+ prop = null;
5395
+ return true;
5396
+ }
5397
+
5398
+ // -------------------------- CSS3 support -------------------------- //
5399
+
5400
+
5401
+ var docElemStyle = document.documentElement.style;
5402
+
5403
+ var transitionProperty = typeof docElemStyle.transition == 'string' ?
5404
+ 'transition' : 'WebkitTransition';
5405
+ var transformProperty = typeof docElemStyle.transform == 'string' ?
5406
+ 'transform' : 'WebkitTransform';
5407
+
5408
+ var transitionEndEvent = {
5409
+ WebkitTransition: 'webkitTransitionEnd',
5410
+ transition: 'transitionend'
5411
+ }[ transitionProperty ];
5412
+
5413
+ // cache all vendor properties that could have vendor prefix
5414
+ var vendorProperties = {
5415
+ transform: transformProperty,
5416
+ transition: transitionProperty,
5417
+ transitionDuration: transitionProperty + 'Duration',
5418
+ transitionProperty: transitionProperty + 'Property',
5419
+ transitionDelay: transitionProperty + 'Delay'
5420
+ };
5421
+
5422
+ // -------------------------- Item -------------------------- //
5423
+
5424
+ function Item( element, layout ) {
5425
+ if ( !element ) {
5426
+ return;
5427
+ }
5428
+
5429
+ this.element = element;
5430
+ // parent layout class, i.e. Masonry, Isotope, or Packery
5431
+ this.layout = layout;
5432
+ this.position = {
5433
+ x: 0,
5434
+ y: 0
5435
+ };
5436
+
5437
+ this._create();
5438
+ }
5439
+
5440
+ // inherit EvEmitter
5441
+ var proto = Item.prototype = Object.create( EvEmitter.prototype );
5442
+ proto.constructor = Item;
5443
+
5444
+ proto._create = function() {
5445
+ // transition objects
5446
+ this._transn = {
5447
+ ingProperties: {},
5448
+ clean: {},
5449
+ onEnd: {}
5450
+ };
5451
+
5452
+ this.css({
5453
+ position: 'absolute'
5454
+ });
5455
+ };
5456
+
5457
+ // trigger specified handler for event type
5458
+ proto.handleEvent = function( event ) {
5459
+ var method = 'on' + event.type;
5460
+ if ( this[ method ] ) {
5461
+ this[ method ]( event );
5462
+ }
5463
+ };
5464
+
5465
+ proto.getSize = function() {
5466
+ this.size = getSize( this.element );
5467
+ };
5468
+
5469
+ /**
5470
+ * apply CSS styles to element
5471
+ * @param {Object} style
5472
+ */
5473
+ proto.css = function( style ) {
5474
+ var elemStyle = this.element.style;
5475
+
5476
+ for ( var prop in style ) {
5477
+ // use vendor property if available
5478
+ var supportedProp = vendorProperties[ prop ] || prop;
5479
+ elemStyle[ supportedProp ] = style[ prop ];
5480
+ }
5481
+ };
5482
+
5483
+ // measure position, and sets it
5484
+ proto.getPosition = function() {
5485
+ var style = getComputedStyle( this.element );
5486
+ var isOriginLeft = this.layout._getOption('originLeft');
5487
+ var isOriginTop = this.layout._getOption('originTop');
5488
+ var xValue = style[ isOriginLeft ? 'left' : 'right' ];
5489
+ var yValue = style[ isOriginTop ? 'top' : 'bottom' ];
5490
+ var x = parseFloat( xValue );
5491
+ var y = parseFloat( yValue );
5492
+ // convert percent to pixels
5493
+ var layoutSize = this.layout.size;
5494
+ if ( xValue.indexOf('%') != -1 ) {
5495
+ x = ( x / 100 ) * layoutSize.width;
5496
+ }
5497
+ if ( yValue.indexOf('%') != -1 ) {
5498
+ y = ( y / 100 ) * layoutSize.height;
5499
+ }
5500
+ // clean up 'auto' or other non-integer values
5501
+ x = isNaN( x ) ? 0 : x;
5502
+ y = isNaN( y ) ? 0 : y;
5503
+ // remove padding from measurement
5504
+ x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;
5505
+ y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;
5506
+
5507
+ this.position.x = x;
5508
+ this.position.y = y;
5509
+ };
5510
+
5511
+ // set settled position, apply padding
5512
+ proto.layoutPosition = function() {
5513
+ var layoutSize = this.layout.size;
5514
+ var style = {};
5515
+ var isOriginLeft = this.layout._getOption('originLeft');
5516
+ var isOriginTop = this.layout._getOption('originTop');
5517
+
5518
+ // x
5519
+ var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';
5520
+ var xProperty = isOriginLeft ? 'left' : 'right';
5521
+ var xResetProperty = isOriginLeft ? 'right' : 'left';
5522
+
5523
+ var x = this.position.x + layoutSize[ xPadding ];
5524
+ // set in percentage or pixels
5525
+ style[ xProperty ] = this.getXValue( x );
5526
+ // reset other property
5527
+ style[ xResetProperty ] = '';
5528
+
5529
+ // y
5530
+ var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';
5531
+ var yProperty = isOriginTop ? 'top' : 'bottom';
5532
+ var yResetProperty = isOriginTop ? 'bottom' : 'top';
5533
+
5534
+ var y = this.position.y + layoutSize[ yPadding ];
5535
+ // set in percentage or pixels
5536
+ style[ yProperty ] = this.getYValue( y );
5537
+ // reset other property
5538
+ style[ yResetProperty ] = '';
5539
+
5540
+ this.css( style );
5541
+ this.emitEvent( 'layout', [ this ] );
5542
+ };
5543
+
5544
+ proto.getXValue = function( x ) {
5545
+ var isHorizontal = this.layout._getOption('horizontal');
5546
+ return this.layout.options.percentPosition && !isHorizontal ?
5547
+ ( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px';
5548
+ };
5549
+
5550
+ proto.getYValue = function( y ) {
5551
+ var isHorizontal = this.layout._getOption('horizontal');
5552
+ return this.layout.options.percentPosition && isHorizontal ?
5553
+ ( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px';
5554
+ };
5555
+
5556
+ proto._transitionTo = function( x, y ) {
5557
+ this.getPosition();
5558
+ // get current x & y from top/left
5559
+ var curX = this.position.x;
5560
+ var curY = this.position.y;
5561
+
5562
+ var didNotMove = x == this.position.x && y == this.position.y;
5563
+
5564
+ // save end position
5565
+ this.setPosition( x, y );
5566
+
5567
+ // if did not move and not transitioning, just go to layout
5568
+ if ( didNotMove && !this.isTransitioning ) {
5569
+ this.layoutPosition();
5570
+ return;
5571
+ }
5572
+
5573
+ var transX = x - curX;
5574
+ var transY = y - curY;
5575
+ var transitionStyle = {};
5576
+ transitionStyle.transform = this.getTranslate( transX, transY );
5577
+
5578
+ this.transition({
5579
+ to: transitionStyle,
5580
+ onTransitionEnd: {
5581
+ transform: this.layoutPosition
5582
+ },
5583
+ isCleaning: true
5584
+ });
5585
+ };
5586
+
5587
+ proto.getTranslate = function( x, y ) {
5588
+ // flip cooridinates if origin on right or bottom
5589
+ var isOriginLeft = this.layout._getOption('originLeft');
5590
+ var isOriginTop = this.layout._getOption('originTop');
5591
+ x = isOriginLeft ? x : -x;
5592
+ y = isOriginTop ? y : -y;
5593
+ return 'translate3d(' + x + 'px, ' + y + 'px, 0)';
5594
+ };
5595
+
5596
+ // non transition + transform support
5597
+ proto.goTo = function( x, y ) {
5598
+ this.setPosition( x, y );
5599
+ this.layoutPosition();
5600
+ };
5601
+
5602
+ proto.moveTo = proto._transitionTo;
5603
+
5604
+ proto.setPosition = function( x, y ) {
5605
+ this.position.x = parseFloat( x );
5606
+ this.position.y = parseFloat( y );
5607
+ };
5608
+
5609
+ // ----- transition ----- //
5610
+
5611
+ /**
5612
+ * @param {Object} style - CSS
5613
+ * @param {Function} onTransitionEnd
5614
+ */
5615
+
5616
+ // non transition, just trigger callback
5617
+ proto._nonTransition = function( args ) {
5618
+ this.css( args.to );
5619
+ if ( args.isCleaning ) {
5620
+ this._removeStyles( args.to );
5621
+ }
5622
+ for ( var prop in args.onTransitionEnd ) {
5623
+ args.onTransitionEnd[ prop ].call( this );
5624
+ }
5625
+ };
5626
+
5627
+ /**
5628
+ * proper transition
5629
+ * @param {Object} args - arguments
5630
+ * @param {Object} to - style to transition to
5631
+ * @param {Object} from - style to start transition from
5632
+ * @param {Boolean} isCleaning - removes transition styles after transition
5633
+ * @param {Function} onTransitionEnd - callback
5634
+ */
5635
+ proto.transition = function( args ) {
5636
+ // redirect to nonTransition if no transition duration
5637
+ if ( !parseFloat( this.layout.options.transitionDuration ) ) {
5638
+ this._nonTransition( args );
5639
+ return;
5640
+ }
5641
+
5642
+ var _transition = this._transn;
5643
+ // keep track of onTransitionEnd callback by css property
5644
+ for ( var prop in args.onTransitionEnd ) {
5645
+ _transition.onEnd[ prop ] = args.onTransitionEnd[ prop ];
5646
+ }
5647
+ // keep track of properties that are transitioning
5648
+ for ( prop in args.to ) {
5649
+ _transition.ingProperties[ prop ] = true;
5650
+ // keep track of properties to clean up when transition is done
5651
+ if ( args.isCleaning ) {
5652
+ _transition.clean[ prop ] = true;
5653
+ }
5654
+ }
5655
+
5656
+ // set from styles
5657
+ if ( args.from ) {
5658
+ this.css( args.from );
5659
+ // force redraw. http://blog.alexmaccaw.com/css-transitions
5660
+ var h = this.element.offsetHeight;
5661
+ // hack for JSHint to hush about unused var
5662
+ h = null;
5663
+ }
5664
+ // enable transition
5665
+ this.enableTransition( args.to );
5666
+ // set styles that are transitioning
5667
+ this.css( args.to );
5668
+
5669
+ this.isTransitioning = true;
5670
+
5671
+ };
5672
+
5673
+ // dash before all cap letters, including first for
5674
+ // WebkitTransform => -webkit-transform
5675
+ function toDashedAll( str ) {
5676
+ return str.replace( /([A-Z])/g, function( $1 ) {
5677
+ return '-' + $1.toLowerCase();
5678
+ });
5679
+ }
5680
+
5681
+ var transitionProps = 'opacity,' + toDashedAll( transformProperty );
5682
+
5683
+ proto.enableTransition = function(/* style */) {
5684
+ // HACK changing transitionProperty during a transition
5685
+ // will cause transition to jump
5686
+ if ( this.isTransitioning ) {
5687
+ return;
5688
+ }
5689
+
5690
+ // make `transition: foo, bar, baz` from style object
5691
+ // HACK un-comment this when enableTransition can work
5692
+ // while a transition is happening
5693
+ // var transitionValues = [];
5694
+ // for ( var prop in style ) {
5695
+ // // dash-ify camelCased properties like WebkitTransition
5696
+ // prop = vendorProperties[ prop ] || prop;
5697
+ // transitionValues.push( toDashedAll( prop ) );
5698
+ // }
5699
+ // munge number to millisecond, to match stagger
5700
+ var duration = this.layout.options.transitionDuration;
5701
+ duration = typeof duration == 'number' ? duration + 'ms' : duration;
5702
+ // enable transition styles
5703
+ this.css({
5704
+ transitionProperty: transitionProps,
5705
+ transitionDuration: duration,
5706
+ transitionDelay: this.staggerDelay || 0
5707
+ });
5708
+ // listen for transition end event
5709
+ this.element.addEventListener( transitionEndEvent, this, false );
5710
+ };
5711
+
5712
+ // ----- events ----- //
5713
+
5714
+ proto.onwebkitTransitionEnd = function( event ) {
5715
+ this.ontransitionend( event );
5716
+ };
5717
+
5718
+ proto.onotransitionend = function( event ) {
5719
+ this.ontransitionend( event );
5720
+ };
5721
+
5722
+ // properties that I munge to make my life easier
5723
+ var dashedVendorProperties = {
5724
+ '-webkit-transform': 'transform'
5725
+ };
5726
+
5727
+ proto.ontransitionend = function( event ) {
5728
+ // disregard bubbled events from children
5729
+ if ( event.target !== this.element ) {
5730
+ return;
5731
+ }
5732
+ var _transition = this._transn;
5733
+ // get property name of transitioned property, convert to prefix-free
5734
+ var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName;
5735
+
5736
+ // remove property that has completed transitioning
5737
+ delete _transition.ingProperties[ propertyName ];
5738
+ // check if any properties are still transitioning
5739
+ if ( isEmptyObj( _transition.ingProperties ) ) {
5740
+ // all properties have completed transitioning
5741
+ this.disableTransition();
5742
+ }
5743
+ // clean style
5744
+ if ( propertyName in _transition.clean ) {
5745
+ // clean up style
5746
+ this.element.style[ event.propertyName ] = '';
5747
+ delete _transition.clean[ propertyName ];
5748
+ }
5749
+ // trigger onTransitionEnd callback
5750
+ if ( propertyName in _transition.onEnd ) {
5751
+ var onTransitionEnd = _transition.onEnd[ propertyName ];
5752
+ onTransitionEnd.call( this );
5753
+ delete _transition.onEnd[ propertyName ];
5754
+ }
5755
+
5756
+ this.emitEvent( 'transitionEnd', [ this ] );
5757
+ };
5758
+
5759
+ proto.disableTransition = function() {
5760
+ this.removeTransitionStyles();
5761
+ this.element.removeEventListener( transitionEndEvent, this, false );
5762
+ this.isTransitioning = false;
5763
+ };
5764
+
5765
+ /**
5766
+ * removes style property from element
5767
+ * @param {Object} style
5768
+ **/
5769
+ proto._removeStyles = function( style ) {
5770
+ // clean up transition styles
5771
+ var cleanStyle = {};
5772
+ for ( var prop in style ) {
5773
+ cleanStyle[ prop ] = '';
5774
+ }
5775
+ this.css( cleanStyle );
5776
+ };
5777
+
5778
+ var cleanTransitionStyle = {
5779
+ transitionProperty: '',
5780
+ transitionDuration: '',
5781
+ transitionDelay: ''
5782
+ };
5783
+
5784
+ proto.removeTransitionStyles = function() {
5785
+ // remove transition
5786
+ this.css( cleanTransitionStyle );
5787
+ };
5788
+
5789
+ // ----- stagger ----- //
5790
+
5791
+ proto.stagger = function( delay ) {
5792
+ delay = isNaN( delay ) ? 0 : delay;
5793
+ this.staggerDelay = delay + 'ms';
5794
+ };
5795
+
5796
+ // ----- show/hide/remove ----- //
5797
+
5798
+ // remove element from DOM
5799
+ proto.removeElem = function() {
5800
+ this.element.parentNode.removeChild( this.element );
5801
+ // remove display: none
5802
+ this.css({ display: '' });
5803
+ this.emitEvent( 'remove', [ this ] );
5804
+ };
5805
+
5806
+ proto.remove = function() {
5807
+ // just remove element if no transition support or no transition
5808
+ if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) {
5809
+ this.removeElem();
5810
+ return;
5811
+ }
5812
+
5813
+ // start transition
5814
+ this.once( 'transitionEnd', function() {
5815
+ this.removeElem();
5816
+ });
5817
+ this.hide();
5818
+ };
5819
+
5820
+ proto.reveal = function() {
5821
+ delete this.isHidden;
5822
+ // remove display: none
5823
+ this.css({ display: '' });
5824
+
5825
+ var options = this.layout.options;
5826
+
5827
+ var onTransitionEnd = {};
5828
+ var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');
5829
+ onTransitionEnd[ transitionEndProperty ] = this.onRevealTransitionEnd;
5830
+
5831
+ this.transition({
5832
+ from: options.hiddenStyle,
5833
+ to: options.visibleStyle,
5834
+ isCleaning: true,
5835
+ onTransitionEnd: onTransitionEnd
5836
+ });
5837
+ };
5838
+
5839
+ proto.onRevealTransitionEnd = function() {
5840
+ // check if still visible
5841
+ // during transition, item may have been hidden
5842
+ if ( !this.isHidden ) {
5843
+ this.emitEvent('reveal');
5844
+ }
5845
+ };
5846
+
5847
+ /**
5848
+ * get style property use for hide/reveal transition end
5849
+ * @param {String} styleProperty - hiddenStyle/visibleStyle
5850
+ * @returns {String}
5851
+ */
5852
+ proto.getHideRevealTransitionEndProperty = function( styleProperty ) {
5853
+ var optionStyle = this.layout.options[ styleProperty ];
5854
+ // use opacity
5855
+ if ( optionStyle.opacity ) {
5856
+ return 'opacity';
5857
+ }
5858
+ // get first property
5859
+ for ( var prop in optionStyle ) {
5860
+ return prop;
5861
+ }
5862
+ };
5863
+
5864
+ proto.hide = function() {
5865
+ // set flag
5866
+ this.isHidden = true;
5867
+ // remove display: none
5868
+ this.css({ display: '' });
5869
+
5870
+ var options = this.layout.options;
5871
+
5872
+ var onTransitionEnd = {};
5873
+ var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');
5874
+ onTransitionEnd[ transitionEndProperty ] = this.onHideTransitionEnd;
5875
+
5876
+ this.transition({
5877
+ from: options.visibleStyle,
5878
+ to: options.hiddenStyle,
5879
+ // keep hidden stuff hidden
5880
+ isCleaning: true,
5881
+ onTransitionEnd: onTransitionEnd
5882
+ });
5883
+ };
5884
+
5885
+ proto.onHideTransitionEnd = function() {
5886
+ // check if still hidden
5887
+ // during transition, item may have been un-hidden
5888
+ if ( this.isHidden ) {
5889
+ this.css({ display: 'none' });
5890
+ this.emitEvent('hide');
5891
+ }
5892
+ };
5893
+
5894
+ proto.destroy = function() {
5895
+ this.css({
5896
+ position: '',
5897
+ left: '',
5898
+ right: '',
5899
+ top: '',
5900
+ bottom: '',
5901
+ transition: '',
5902
+ transform: ''
5903
+ });
5904
+ };
5905
+
5906
+ return Item;
5907
+
5908
+ }));
5909
+
5910
+
5911
+ /***/ }),
5912
+
5913
+ /***/ "./node_modules/outlayer/outlayer.js":
5914
+ /*!*******************************************!*\
5915
+ !*** ./node_modules/outlayer/outlayer.js ***!
5916
+ \*******************************************/
5917
+ /*! no static exports found */
5918
+ /***/ (function(module, exports, __webpack_require__) {
5919
+
5920
+ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
5921
+ * Outlayer v2.1.1
5922
+ * the brains and guts of a layout library
5923
+ * MIT license
5924
+ */
5925
+
5926
+ ( function( window, factory ) {
5927
+ 'use strict';
5928
+ // universal module definition
5929
+ /* jshint strict: false */ /* globals define, module, require */
5930
+ if ( true ) {
5931
+ // AMD - RequireJS
5932
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
5933
+ __webpack_require__(/*! ev-emitter/ev-emitter */ "./node_modules/ev-emitter/ev-emitter.js"),
5934
+ __webpack_require__(/*! get-size/get-size */ "./node_modules/get-size/get-size.js"),
5935
+ __webpack_require__(/*! fizzy-ui-utils/utils */ "./node_modules/fizzy-ui-utils/utils.js"),
5936
+ __webpack_require__(/*! ./item */ "./node_modules/outlayer/item.js")
5937
+ ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( EvEmitter, getSize, utils, Item ) {
5938
+ return factory( window, EvEmitter, getSize, utils, Item);
5939
+ }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
5940
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
5941
+ } else {}
5942
+
5943
+ }( window, function factory( window, EvEmitter, getSize, utils, Item ) {
5944
+ 'use strict';
5945
+
5946
+ // ----- vars ----- //
5947
+
5948
+ var console = window.console;
5949
+ var jQuery = window.jQuery;
5950
+ var noop = function() {};
5951
+
5952
+ // -------------------------- Outlayer -------------------------- //
5953
+
5954
+ // globally unique identifiers
5955
+ var GUID = 0;
5956
+ // internal store of all Outlayer intances
5957
+ var instances = {};
5958
+
5959
+
5960
+ /**
5961
+ * @param {Element, String} element
5962
+ * @param {Object} options
5963
+ * @constructor
5964
+ */
5965
+ function Outlayer( element, options ) {
5966
+ var queryElement = utils.getQueryElement( element );
5967
+ if ( !queryElement ) {
5968
+ if ( console ) {
5969
+ console.error( 'Bad element for ' + this.constructor.namespace +
5970
+ ': ' + ( queryElement || element ) );
5971
+ }
5972
+ return;
5973
+ }
5974
+ this.element = queryElement;
5975
+ // add jQuery
5976
+ if ( jQuery ) {
5977
+ this.$element = jQuery( this.element );
5978
+ }
5979
+
5980
+ // options
5981
+ this.options = utils.extend( {}, this.constructor.defaults );
5982
+ this.option( options );
5983
+
5984
+ // add id for Outlayer.getFromElement
5985
+ var id = ++GUID;
5986
+ this.element.outlayerGUID = id; // expando
5987
+ instances[ id ] = this; // associate via id
5988
+
5989
+ // kick it off
5990
+ this._create();
5991
+
5992
+ var isInitLayout = this._getOption('initLayout');
5993
+ if ( isInitLayout ) {
5994
+ this.layout();
5995
+ }
5996
+ }
5997
+
5998
+ // settings are for internal use only
5999
+ Outlayer.namespace = 'outlayer';
6000
+ Outlayer.Item = Item;
6001
+
6002
+ // default options
6003
+ Outlayer.defaults = {
6004
+ containerStyle: {
6005
+ position: 'relative'
6006
+ },
6007
+ initLayout: true,
6008
+ originLeft: true,
6009
+ originTop: true,
6010
+ resize: true,
6011
+ resizeContainer: true,
6012
+ // item options
6013
+ transitionDuration: '0.4s',
6014
+ hiddenStyle: {
6015
+ opacity: 0,
6016
+ transform: 'scale(0.001)'
6017
+ },
6018
+ visibleStyle: {
6019
+ opacity: 1,
6020
+ transform: 'scale(1)'
6021
+ }
6022
+ };
6023
+
6024
+ var proto = Outlayer.prototype;
6025
+ // inherit EvEmitter
6026
+ utils.extend( proto, EvEmitter.prototype );
6027
+
6028
+ /**
6029
+ * set options
6030
+ * @param {Object} opts
6031
+ */
6032
+ proto.option = function( opts ) {
6033
+ utils.extend( this.options, opts );
6034
+ };
6035
+
6036
+ /**
6037
+ * get backwards compatible option value, check old name
6038
+ */
6039
+ proto._getOption = function( option ) {
6040
+ var oldOption = this.constructor.compatOptions[ option ];
6041
+ return oldOption && this.options[ oldOption ] !== undefined ?
6042
+ this.options[ oldOption ] : this.options[ option ];
6043
+ };
6044
+
6045
+ Outlayer.compatOptions = {
6046
+ // currentName: oldName
6047
+ initLayout: 'isInitLayout',
6048
+ horizontal: 'isHorizontal',
6049
+ layoutInstant: 'isLayoutInstant',
6050
+ originLeft: 'isOriginLeft',
6051
+ originTop: 'isOriginTop',
6052
+ resize: 'isResizeBound',
6053
+ resizeContainer: 'isResizingContainer'
6054
+ };
6055
+
6056
+ proto._create = function() {
6057
+ // get items from children
6058
+ this.reloadItems();
6059
+ // elements that affect layout, but are not laid out
6060
+ this.stamps = [];
6061
+ this.stamp( this.options.stamp );
6062
+ // set container style
6063
+ utils.extend( this.element.style, this.options.containerStyle );
6064
+
6065
+ // bind resize method
6066
+ var canBindResize = this._getOption('resize');
6067
+ if ( canBindResize ) {
6068
+ this.bindResize();
6069
+ }
6070
+ };
6071
+
6072
+ // goes through all children again and gets bricks in proper order
6073
+ proto.reloadItems = function() {
6074
+ // collection of item elements
6075
+ this.items = this._itemize( this.element.children );
6076
+ };
6077
+
6078
+
6079
+ /**
6080
+ * turn elements into Outlayer.Items to be used in layout
6081
+ * @param {Array or NodeList or HTMLElement} elems
6082
+ * @returns {Array} items - collection of new Outlayer Items
6083
+ */
6084
+ proto._itemize = function( elems ) {
6085
+
6086
+ var itemElems = this._filterFindItemElements( elems );
6087
+ var Item = this.constructor.Item;
6088
+
6089
+ // create new Outlayer Items for collection
6090
+ var items = [];
6091
+ for ( var i=0; i < itemElems.length; i++ ) {
6092
+ var elem = itemElems[i];
6093
+ var item = new Item( elem, this );
6094
+ items.push( item );
6095
+ }
6096
+
6097
+ return items;
6098
+ };
6099
+
6100
+ /**
6101
+ * get item elements to be used in layout
6102
+ * @param {Array or NodeList or HTMLElement} elems
6103
+ * @returns {Array} items - item elements
6104
+ */
6105
+ proto._filterFindItemElements = function( elems ) {
6106
+ return utils.filterFindElements( elems, this.options.itemSelector );
6107
+ };
6108
+
6109
+ /**
6110
+ * getter method for getting item elements
6111
+ * @returns {Array} elems - collection of item elements
6112
+ */
6113
+ proto.getItemElements = function() {
6114
+ return this.items.map( function( item ) {
6115
+ return item.element;
6116
+ });
6117
+ };
6118
+
6119
+ // ----- init & layout ----- //
6120
+
6121
+ /**
6122
+ * lays out all items
6123
+ */
6124
+ proto.layout = function() {
6125
+ this._resetLayout();
6126
+ this._manageStamps();
6127
+
6128
+ // don't animate first layout
6129
+ var layoutInstant = this._getOption('layoutInstant');
6130
+ var isInstant = layoutInstant !== undefined ?
6131
+ layoutInstant : !this._isLayoutInited;
6132
+ this.layoutItems( this.items, isInstant );
6133
+
6134
+ // flag for initalized
6135
+ this._isLayoutInited = true;
6136
+ };
6137
+
6138
+ // _init is alias for layout
6139
+ proto._init = proto.layout;
6140
+
6141
+ /**
6142
+ * logic before any new layout
6143
+ */
6144
+ proto._resetLayout = function() {
6145
+ this.getSize();
6146
+ };
6147
+
6148
+
6149
+ proto.getSize = function() {
6150
+ this.size = getSize( this.element );
6151
+ };
6152
+
6153
+ /**
6154
+ * get measurement from option, for columnWidth, rowHeight, gutter
6155
+ * if option is String -> get element from selector string, & get size of element
6156
+ * if option is Element -> get size of element
6157
+ * else use option as a number
6158
+ *
6159
+ * @param {String} measurement
6160
+ * @param {String} size - width or height
6161
+ * @private
6162
+ */
6163
+ proto._getMeasurement = function( measurement, size ) {
6164
+ var option = this.options[ measurement ];
6165
+ var elem;
6166
+ if ( !option ) {
6167
+ // default to 0
6168
+ this[ measurement ] = 0;
6169
+ } else {
6170
+ // use option as an element
6171
+ if ( typeof option == 'string' ) {
6172
+ elem = this.element.querySelector( option );
6173
+ } else if ( option instanceof HTMLElement ) {
6174
+ elem = option;
6175
+ }
6176
+ // use size of element, if element
6177
+ this[ measurement ] = elem ? getSize( elem )[ size ] : option;
6178
+ }
6179
+ };
6180
+
6181
+ /**
6182
+ * layout a collection of item elements
6183
+ * @api public
6184
+ */
6185
+ proto.layoutItems = function( items, isInstant ) {
6186
+ items = this._getItemsForLayout( items );
6187
+
6188
+ this._layoutItems( items, isInstant );
6189
+
6190
+ this._postLayout();
6191
+ };
6192
+
6193
+ /**
6194
+ * get the items to be laid out
6195
+ * you may want to skip over some items
6196
+ * @param {Array} items
6197
+ * @returns {Array} items
6198
+ */
6199
+ proto._getItemsForLayout = function( items ) {
6200
+ return items.filter( function( item ) {
6201
+ return !item.isIgnored;
6202
+ });
6203
+ };
6204
+
6205
+ /**
6206
+ * layout items
6207
+ * @param {Array} items
6208
+ * @param {Boolean} isInstant
6209
+ */
6210
+ proto._layoutItems = function( items, isInstant ) {
6211
+ this._emitCompleteOnItems( 'layout', items );
6212
+
6213
+ if ( !items || !items.length ) {
6214
+ // no items, emit event with empty array
6215
+ return;
6216
+ }
6217
+
6218
+ var queue = [];
6219
+
6220
+ items.forEach( function( item ) {
6221
+ // get x/y object from method
6222
+ var position = this._getItemLayoutPosition( item );
6223
+ // enqueue
6224
+ position.item = item;
6225
+ position.isInstant = isInstant || item.isLayoutInstant;
6226
+ queue.push( position );
6227
+ }, this );
6228
+
6229
+ this._processLayoutQueue( queue );
6230
+ };
6231
+
6232
+ /**
6233
+ * get item layout position
6234
+ * @param {Outlayer.Item} item
6235
+ * @returns {Object} x and y position
6236
+ */
6237
+ proto._getItemLayoutPosition = function( /* item */ ) {
6238
+ return {
6239
+ x: 0,
6240
+ y: 0
6241
+ };
6242
+ };
6243
+
6244
+ /**
6245
+ * iterate over array and position each item
6246
+ * Reason being - separating this logic prevents 'layout invalidation'
6247
+ * thx @paul_irish
6248
+ * @param {Array} queue
6249
+ */
6250
+ proto._processLayoutQueue = function( queue ) {
6251
+ this.updateStagger();
6252
+ queue.forEach( function( obj, i ) {
6253
+ this._positionItem( obj.item, obj.x, obj.y, obj.isInstant, i );
6254
+ }, this );
6255
+ };
6256
+
6257
+ // set stagger from option in milliseconds number
6258
+ proto.updateStagger = function() {
6259
+ var stagger = this.options.stagger;
6260
+ if ( stagger === null || stagger === undefined ) {
6261
+ this.stagger = 0;
6262
+ return;
6263
+ }
6264
+ this.stagger = getMilliseconds( stagger );
6265
+ return this.stagger;
6266
+ };
6267
+
6268
+ /**
6269
+ * Sets position of item in DOM
6270
+ * @param {Outlayer.Item} item
6271
+ * @param {Number} x - horizontal position
6272
+ * @param {Number} y - vertical position
6273
+ * @param {Boolean} isInstant - disables transitions
6274
+ */
6275
+ proto._positionItem = function( item, x, y, isInstant, i ) {
6276
+ if ( isInstant ) {
6277
+ // if not transition, just set CSS
6278
+ item.goTo( x, y );
6279
+ } else {
6280
+ item.stagger( i * this.stagger );
6281
+ item.moveTo( x, y );
6282
+ }
6283
+ };
6284
+
6285
+ /**
6286
+ * Any logic you want to do after each layout,
6287
+ * i.e. size the container
6288
+ */
6289
+ proto._postLayout = function() {
6290
+ this.resizeContainer();
6291
+ };
6292
+
6293
+ proto.resizeContainer = function() {
6294
+ var isResizingContainer = this._getOption('resizeContainer');
6295
+ if ( !isResizingContainer ) {
6296
+ return;
6297
+ }
6298
+ var size = this._getContainerSize();
6299
+ if ( size ) {
6300
+ this._setContainerMeasure( size.width, true );
6301
+ this._setContainerMeasure( size.height, false );
6302
+ }
6303
+ };
6304
+
6305
+ /**
6306
+ * Sets width or height of container if returned
6307
+ * @returns {Object} size
6308
+ * @param {Number} width
6309
+ * @param {Number} height
6310
+ */
6311
+ proto._getContainerSize = noop;
6312
+
6313
+ /**
6314
+ * @param {Number} measure - size of width or height
6315
+ * @param {Boolean} isWidth
6316
+ */
6317
+ proto._setContainerMeasure = function( measure, isWidth ) {
6318
+ if ( measure === undefined ) {
6319
+ return;
6320
+ }
6321
+
6322
+ var elemSize = this.size;
6323
+ // add padding and border width if border box
6324
+ if ( elemSize.isBorderBox ) {
6325
+ measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight +
6326
+ elemSize.borderLeftWidth + elemSize.borderRightWidth :
6327
+ elemSize.paddingBottom + elemSize.paddingTop +
6328
+ elemSize.borderTopWidth + elemSize.borderBottomWidth;
6329
+ }
6330
+
6331
+ measure = Math.max( measure, 0 );
6332
+ this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px';
6333
+ };
6334
+
6335
+ /**
6336
+ * emit eventComplete on a collection of items events
6337
+ * @param {String} eventName
6338
+ * @param {Array} items - Outlayer.Items
6339
+ */
6340
+ proto._emitCompleteOnItems = function( eventName, items ) {
6341
+ var _this = this;
6342
+ function onComplete() {
6343
+ _this.dispatchEvent( eventName + 'Complete', null, [ items ] );
6344
+ }
6345
+
6346
+ var count = items.length;
6347
+ if ( !items || !count ) {
6348
+ onComplete();
6349
+ return;
6350
+ }
6351
+
6352
+ var doneCount = 0;
6353
+ function tick() {
6354
+ doneCount++;
6355
+ if ( doneCount == count ) {
6356
+ onComplete();
6357
+ }
6358
+ }
6359
+
6360
+ // bind callback
6361
+ items.forEach( function( item ) {
6362
+ item.once( eventName, tick );
6363
+ });
6364
+ };
6365
+
6366
+ /**
6367
+ * emits events via EvEmitter and jQuery events
6368
+ * @param {String} type - name of event
6369
+ * @param {Event} event - original event
6370
+ * @param {Array} args - extra arguments
6371
+ */
6372
+ proto.dispatchEvent = function( type, event, args ) {
6373
+ // add original event to arguments
6374
+ var emitArgs = event ? [ event ].concat( args ) : args;
6375
+ this.emitEvent( type, emitArgs );
6376
+
6377
+ if ( jQuery ) {
6378
+ // set this.$element
6379
+ this.$element = this.$element || jQuery( this.element );
6380
+ if ( event ) {
6381
+ // create jQuery event
6382
+ var $event = jQuery.Event( event );
6383
+ $event.type = type;
6384
+ this.$element.trigger( $event, args );
6385
+ } else {
6386
+ // just trigger with type if no event available
6387
+ this.$element.trigger( type, args );
6388
+ }
6389
+ }
6390
+ };
6391
+
6392
+ // -------------------------- ignore & stamps -------------------------- //
6393
+
6394
+
6395
+ /**
6396
+ * keep item in collection, but do not lay it out
6397
+ * ignored items do not get skipped in layout
6398
+ * @param {Element} elem
6399
+ */
6400
+ proto.ignore = function( elem ) {
6401
+ var item = this.getItem( elem );
6402
+ if ( item ) {
6403
+ item.isIgnored = true;
6404
+ }
6405
+ };
6406
+
6407
+ /**
6408
+ * return item to layout collection
6409
+ * @param {Element} elem
6410
+ */
6411
+ proto.unignore = function( elem ) {
6412
+ var item = this.getItem( elem );
6413
+ if ( item ) {
6414
+ delete item.isIgnored;
6415
+ }
6416
+ };
6417
+
6418
+ /**
6419
+ * adds elements to stamps
6420
+ * @param {NodeList, Array, Element, or String} elems
6421
+ */
6422
+ proto.stamp = function( elems ) {
6423
+ elems = this._find( elems );
6424
+ if ( !elems ) {
6425
+ return;
6426
+ }
6427
+
6428
+ this.stamps = this.stamps.concat( elems );
6429
+ // ignore
6430
+ elems.forEach( this.ignore, this );
6431
+ };
6432
+
6433
+ /**
6434
+ * removes elements to stamps
6435
+ * @param {NodeList, Array, or Element} elems
6436
+ */
6437
+ proto.unstamp = function( elems ) {
6438
+ elems = this._find( elems );
6439
+ if ( !elems ){
6440
+ return;
6441
+ }
6442
+
6443
+ elems.forEach( function( elem ) {
6444
+ // filter out removed stamp elements
6445
+ utils.removeFrom( this.stamps, elem );
6446
+ this.unignore( elem );
6447
+ }, this );
6448
+ };
6449
+
6450
+ /**
6451
+ * finds child elements
6452
+ * @param {NodeList, Array, Element, or String} elems
6453
+ * @returns {Array} elems
6454
+ */
6455
+ proto._find = function( elems ) {
6456
+ if ( !elems ) {
6457
+ return;
6458
+ }
6459
+ // if string, use argument as selector string
6460
+ if ( typeof elems == 'string' ) {
6461
+ elems = this.element.querySelectorAll( elems );
6462
+ }
6463
+ elems = utils.makeArray( elems );
6464
+ return elems;
6465
+ };
6466
+
6467
+ proto._manageStamps = function() {
6468
+ if ( !this.stamps || !this.stamps.length ) {
6469
+ return;
6470
+ }
6471
+
6472
+ this._getBoundingRect();
6473
+
6474
+ this.stamps.forEach( this._manageStamp, this );
6475
+ };
6476
+
6477
+ // update boundingLeft / Top
6478
+ proto._getBoundingRect = function() {
6479
+ // get bounding rect for container element
6480
+ var boundingRect = this.element.getBoundingClientRect();
6481
+ var size = this.size;
6482
+ this._boundingRect = {
6483
+ left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,
6484
+ top: boundingRect.top + size.paddingTop + size.borderTopWidth,
6485
+ right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ),
6486
+ bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth )
6487
+ };
6488
+ };
6489
+
6490
+ /**
6491
+ * @param {Element} stamp
6492
+ **/
6493
+ proto._manageStamp = noop;
6494
+
6495
+ /**
6496
+ * get x/y position of element relative to container element
6497
+ * @param {Element} elem
6498
+ * @returns {Object} offset - has left, top, right, bottom
6499
+ */
6500
+ proto._getElementOffset = function( elem ) {
6501
+ var boundingRect = elem.getBoundingClientRect();
6502
+ var thisRect = this._boundingRect;
6503
+ var size = getSize( elem );
6504
+ var offset = {
6505
+ left: boundingRect.left - thisRect.left - size.marginLeft,
6506
+ top: boundingRect.top - thisRect.top - size.marginTop,
6507
+ right: thisRect.right - boundingRect.right - size.marginRight,
6508
+ bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom
6509
+ };
6510
+ return offset;
6511
+ };
6512
+
6513
+ // -------------------------- resize -------------------------- //
6514
+
6515
+ // enable event handlers for listeners
6516
+ // i.e. resize -> onresize
6517
+ proto.handleEvent = utils.handleEvent;
6518
+
6519
+ /**
6520
+ * Bind layout to window resizing
6521
+ */
6522
+ proto.bindResize = function() {
6523
+ window.addEventListener( 'resize', this );
6524
+ this.isResizeBound = true;
6525
+ };
6526
+
6527
+ /**
6528
+ * Unbind layout to window resizing
6529
+ */
6530
+ proto.unbindResize = function() {
6531
+ window.removeEventListener( 'resize', this );
6532
+ this.isResizeBound = false;
6533
+ };
6534
+
6535
+ proto.onresize = function() {
6536
+ this.resize();
6537
+ };
6538
+
6539
+ utils.debounceMethod( Outlayer, 'onresize', 100 );
6540
+
6541
+ proto.resize = function() {
6542
+ // don't trigger if size did not change
6543
+ // or if resize was unbound. See #9
6544
+ if ( !this.isResizeBound || !this.needsResizeLayout() ) {
6545
+ return;
6546
+ }
6547
+
6548
+ this.layout();
6549
+ };
6550
+
6551
+ /**
6552
+ * check if layout is needed post layout
6553
+ * @returns Boolean
6554
+ */
6555
+ proto.needsResizeLayout = function() {
6556
+ var size = getSize( this.element );
6557
+ // check that this.size and size are there
6558
+ // IE8 triggers resize on body size change, so they might not be
6559
+ var hasSizes = this.size && size;
6560
+ return hasSizes && size.innerWidth !== this.size.innerWidth;
6561
+ };
6562
+
6563
+ // -------------------------- methods -------------------------- //
6564
+
6565
+ /**
6566
+ * add items to Outlayer instance
6567
+ * @param {Array or NodeList or Element} elems
6568
+ * @returns {Array} items - Outlayer.Items
6569
+ **/
6570
+ proto.addItems = function( elems ) {
6571
+ var items = this._itemize( elems );
6572
+ // add items to collection
6573
+ if ( items.length ) {
6574
+ this.items = this.items.concat( items );
6575
+ }
6576
+ return items;
6577
+ };
6578
+
6579
+ /**
6580
+ * Layout newly-appended item elements
6581
+ * @param {Array or NodeList or Element} elems
6582
+ */
6583
+ proto.appended = function( elems ) {
6584
+ var items = this.addItems( elems );
6585
+ if ( !items.length ) {
6586
+ return;
6587
+ }
6588
+ // layout and reveal just the new items
6589
+ this.layoutItems( items, true );
6590
+ this.reveal( items );
6591
+ };
6592
+
6593
+ /**
6594
+ * Layout prepended elements
6595
+ * @param {Array or NodeList or Element} elems
6596
+ */
6597
+ proto.prepended = function( elems ) {
6598
+ var items = this._itemize( elems );
6599
+ if ( !items.length ) {
6600
+ return;
6601
+ }
6602
+ // add items to beginning of collection
6603
+ var previousItems = this.items.slice(0);
6604
+ this.items = items.concat( previousItems );
6605
+ // start new layout
6606
+ this._resetLayout();
6607
+ this._manageStamps();
6608
+ // layout new stuff without transition
6609
+ this.layoutItems( items, true );
6610
+ this.reveal( items );
6611
+ // layout previous items
6612
+ this.layoutItems( previousItems );
6613
+ };
6614
+
6615
+ /**
6616
+ * reveal a collection of items
6617
+ * @param {Array of Outlayer.Items} items
6618
+ */
6619
+ proto.reveal = function( items ) {
6620
+ this._emitCompleteOnItems( 'reveal', items );
6621
+ if ( !items || !items.length ) {
6622
+ return;
6623
+ }
6624
+ var stagger = this.updateStagger();
6625
+ items.forEach( function( item, i ) {
6626
+ item.stagger( i * stagger );
6627
+ item.reveal();
6628
+ });
6629
+ };
6630
+
6631
+ /**
6632
+ * hide a collection of items
6633
+ * @param {Array of Outlayer.Items} items
6634
+ */
6635
+ proto.hide = function( items ) {
6636
+ this._emitCompleteOnItems( 'hide', items );
6637
+ if ( !items || !items.length ) {
6638
+ return;
6639
+ }
6640
+ var stagger = this.updateStagger();
6641
+ items.forEach( function( item, i ) {
6642
+ item.stagger( i * stagger );
6643
+ item.hide();
6644
+ });
6645
+ };
6646
+
6647
+ /**
6648
+ * reveal item elements
6649
+ * @param {Array}, {Element}, {NodeList} items
6650
+ */
6651
+ proto.revealItemElements = function( elems ) {
6652
+ var items = this.getItems( elems );
6653
+ this.reveal( items );
6654
+ };
6655
+
6656
+ /**
6657
+ * hide item elements
6658
+ * @param {Array}, {Element}, {NodeList} items
6659
+ */
6660
+ proto.hideItemElements = function( elems ) {
6661
+ var items = this.getItems( elems );
6662
+ this.hide( items );
6663
+ };
6664
+
6665
+ /**
6666
+ * get Outlayer.Item, given an Element
6667
+ * @param {Element} elem
6668
+ * @param {Function} callback
6669
+ * @returns {Outlayer.Item} item
6670
+ */
6671
+ proto.getItem = function( elem ) {
6672
+ // loop through items to get the one that matches
6673
+ for ( var i=0; i < this.items.length; i++ ) {
6674
+ var item = this.items[i];
6675
+ if ( item.element == elem ) {
6676
+ // return item
6677
+ return item;
6678
+ }
6679
+ }
6680
+ };
6681
+
6682
+ /**
6683
+ * get collection of Outlayer.Items, given Elements
6684
+ * @param {Array} elems
6685
+ * @returns {Array} items - Outlayer.Items
6686
+ */
6687
+ proto.getItems = function( elems ) {
6688
+ elems = utils.makeArray( elems );
6689
+ var items = [];
6690
+ elems.forEach( function( elem ) {
6691
+ var item = this.getItem( elem );
6692
+ if ( item ) {
6693
+ items.push( item );
6694
+ }
6695
+ }, this );
6696
+
6697
+ return items;
6698
+ };
6699
+
6700
+ /**
6701
+ * remove element(s) from instance and DOM
6702
+ * @param {Array or NodeList or Element} elems
6703
+ */
6704
+ proto.remove = function( elems ) {
6705
+ var removeItems = this.getItems( elems );
6706
+
6707
+ this._emitCompleteOnItems( 'remove', removeItems );
6708
+
6709
+ // bail if no items to remove
6710
+ if ( !removeItems || !removeItems.length ) {
6711
+ return;
6712
+ }
6713
+
6714
+ removeItems.forEach( function( item ) {
6715
+ item.remove();
6716
+ // remove item from collection
6717
+ utils.removeFrom( this.items, item );
6718
+ }, this );
6719
+ };
6720
+
6721
+ // ----- destroy ----- //
6722
+
6723
+ // remove and disable Outlayer instance
6724
+ proto.destroy = function() {
6725
+ // clean up dynamic styles
6726
+ var style = this.element.style;
6727
+ style.height = '';
6728
+ style.position = '';
6729
+ style.width = '';
6730
+ // destroy items
6731
+ this.items.forEach( function( item ) {
6732
+ item.destroy();
6733
+ });
6734
+
6735
+ this.unbindResize();
6736
+
6737
+ var id = this.element.outlayerGUID;
6738
+ delete instances[ id ]; // remove reference to instance by id
6739
+ delete this.element.outlayerGUID;
6740
+ // remove data for jQuery
6741
+ if ( jQuery ) {
6742
+ jQuery.removeData( this.element, this.constructor.namespace );
6743
+ }
6744
+
6745
+ };
6746
+
6747
+ // -------------------------- data -------------------------- //
6748
+
6749
+ /**
6750
+ * get Outlayer instance from element
6751
+ * @param {Element} elem
6752
+ * @returns {Outlayer}
6753
  */
6754
+ Outlayer.data = function( elem ) {
6755
+ elem = utils.getQueryElement( elem );
6756
+ var id = elem && elem.outlayerGUID;
6757
+ return id && instances[ id ];
6758
+ };
6759
 
 
 
 
 
 
6760
 
6761
+ // -------------------------- create Outlayer class -------------------------- //
 
 
6762
 
6763
+ /**
6764
+ * create a layout class
6765
+ * @param {String} namespace
6766
+ */
6767
+ Outlayer.create = function( namespace, options ) {
6768
+ // sub-class Outlayer
6769
+ var Layout = subclass( Outlayer );
6770
+ // apply new options and compatOptions
6771
+ Layout.defaults = utils.extend( {}, Outlayer.defaults );
6772
+ utils.extend( Layout.defaults, options );
6773
+ Layout.compatOptions = utils.extend( {}, Outlayer.compatOptions );
6774
 
6775
+ Layout.namespace = namespace;
6776
 
6777
+ Layout.data = Outlayer.data;
6778
 
6779
+ // sub-class Item
6780
+ Layout.Item = subclass( Item );
 
 
 
 
6781
 
6782
+ // -------------------------- declarative -------------------------- //
 
 
 
 
 
6783
 
6784
+ utils.htmlInit( Layout, namespace );
6785
 
6786
+ // -------------------------- jQuery bridge -------------------------- //
 
 
 
6787
 
6788
+ // make into jQuery plugin
6789
+ if ( jQuery && jQuery.bridget ) {
6790
+ jQuery.bridget( namespace, Layout );
6791
+ }
6792
 
6793
+ return Layout;
6794
+ };
6795
 
6796
+ function subclass( Parent ) {
6797
+ function SubClass() {
6798
+ Parent.apply( this, arguments );
6799
+ }
 
6800
 
6801
+ SubClass.prototype = Object.create( Parent.prototype );
6802
+ SubClass.prototype.constructor = SubClass;
6803
 
6804
+ return SubClass;
6805
+ }
 
 
 
 
6806
 
6807
+ // ----- helpers ----- //
 
 
 
 
 
 
 
 
 
 
6808
 
6809
+ // how many milliseconds are in each unit
6810
+ var msUnits = {
6811
+ ms: 1,
6812
+ s: 1000
6813
+ };
 
 
 
 
6814
 
6815
+ // munge time-like parameter into millisecond number
6816
+ // '0.4s' -> 40
6817
+ function getMilliseconds( time ) {
6818
+ if ( typeof time == 'number' ) {
6819
+ return time;
6820
+ }
6821
+ var matches = time.match( /(^\d*\.?\d*)(\w*)/ );
6822
+ var num = matches && matches[1];
6823
+ var unit = matches && matches[2];
6824
+ if ( !num.length ) {
6825
+ return 0;
6826
+ }
6827
+ num = parseFloat( num );
6828
+ var mult = msUnits[ unit ] || 1;
6829
+ return num * mult;
6830
  }
6831
 
6832
+ // ----- fin ----- //
 
 
 
 
 
 
6833
 
6834
+ // back in global
6835
+ Outlayer.Item = Item;
 
 
 
6836
 
6837
+ return Outlayer;
 
 
 
 
 
 
 
 
6838
 
6839
+ }));
 
6840
 
6841
 
6842
  /***/ }),
27880
  function Photo(props) {
27881
  _classCallCheck(this, Photo);
27882
 
27883
+ //console.log(this.props.result);
27884
+
27885
  var _this = _possibleConstructorReturn(this, (Photo.__proto__ || Object.getPrototypeOf(Photo)).call(this, props));
27886
 
27887
  _this.id = _this.props.result.id;
27888
  _this.thumb = _this.props.result.urls.thumb;
27889
  _this.img = _this.props.result.urls.small;
27890
+ //this.full_size = this.props.result.urls.raw;
27891
+ _this.full_size = _this.props.result.urls.full;
27892
  _this.author = _this.props.result.user.name;
27893
  _this.img_title = instant_img_localize.photo_by + ' ' + _this.author;
27894
  _this.filename = _this.props.result.id;
27895
  _this.title = _this.img_title;
27896
+ _this.alt = _this.props.result.alt_description;
27897
  _this.caption = '';
27898
  _this.user = _this.props.result.user.username;
27899
  _this.user_photo = _this.props.result.user.profile_image.small;
27900
  _this.link = _this.props.result.links.html;
27901
  _this.likes = _this.props.result.likes;
27902
  _this.view_all = instant_img_localize.view_all;
 
27903
  _this.inProgress = false;
27904
  _this.container = document.querySelector('.instant-img-container');
27905
+ _this.showTooltip = _this.props.showTooltip;
27906
+ _this.hideTooltip = _this.props.hideTooltip;
27907
 
27908
+ // Gutenberg Sidebar
27909
  _this.setAsFeaturedImage = false;
27910
  _this.insertIntoPost = false;
27911
+ _this.is_media_router = _this.props.mediaRouter;
 
27912
  _this.is_block_editor = _this.props.blockEditor;
27913
  _this.SetFeaturedImage = _this.props.SetFeaturedImage;
27914
  _this.InsertImage = _this.props.InsertImage;
27915
 
27916
+ // Display controls in Gutenberg Sidebar Only
27917
+ _this.displayGutenbergControl = _this.is_block_editor ? true : false;
27918
+
27919
  // Photo state
27920
  _this.state = {
27921
  filename: _this.filename,
27928
  }
27929
 
27930
  /*
27931
+ * download
27932
+ * Function to trigger the image download
27933
  *
27934
+ * @since 4.3
 
27935
  */
27936
 
27937
 
27938
  _createClass(Photo, [{
27939
+ key: 'download',
27940
+ value: function download(e) {
 
27941
 
27942
+ e.preventDefault();
27943
  var self = this;
27944
+
27945
  var target = e.currentTarget; // get current <a/>
27946
  var photo = target.parentElement.parentElement.parentElement; // Get parent .photo el
27947
  var notice = photo.querySelector('.notice-msg'); // Locate .notice-msg div
27951
  target = photo.querySelector('a.upload');
27952
  }
27953
 
27954
+ if (target.classList.contains('success') || this.inProgress) {
27955
+ return false; // Exit if already uploaded or in progress.
27956
+ }
27957
+ this.inProgress = true;
27958
 
27959
  target.classList.add('uploading');
27960
  photo.classList.add('in-progress');
 
 
27961
 
27962
+ // Status messaging
27963
+ notice.innerHTML = instant_img_localize.saving;
27964
+ setTimeout(function () {
27965
+ // Change notice after 3 seconds
27966
+ notice.innerHTML = instant_img_localize.resizing;
27967
+ setTimeout(function () {
27968
+ // Change notice again after 5 seconds (Still resizing...)
27969
+ notice.innerHTML = instant_img_localize.resizing_still;
27970
+ }, 5000);
27971
+ }, 3000);
27972
+
27973
+ // API URL
27974
+ var api = instant_img_localize.root + 'instant-images/download/';
27975
+
27976
+ // Data Params
27977
  var data = {
27978
  id: target.getAttribute('data-id'),
27979
+ image_url: target.getAttribute('data-url'),
27980
+ filename: target.getAttribute('data-id') + '.jpg',
27981
+ custom_filename: target.getAttribute('data-filename'),
27982
+ title: target.getAttribute('data-title'),
27983
+ alt: target.getAttribute('data-alt'),
27984
+ caption: target.getAttribute('data-caption'),
27985
+ parent_id: instant_img_localize.parent_id
27986
+
27987
+ // Config Params
27988
+ };var config = {
27989
  headers: {
27990
  'X-WP-Nonce': instant_img_localize.nonce,
27991
  'Content-Type': 'application/json'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27992
  }
27993
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27994
 
27995
+ _axios2.default.put(api, JSON.stringify(data), config).then(function (res) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27996
 
27997
  var response = res.data;
27998
 
27999
+ if (response) {
28000
 
28001
  // Successful response from server
28002
  var success = response.success;
28003
+ var id = response.id;
28004
+ var attachment = response.attachment;
28005
  var admin_url = response.admin_url;
28006
+ var msg = response.msg;
28007
 
28008
  if (success) {
28009
 
28010
  // Edit URL
28011
+ var edit_url = admin_url + 'post.php?post=' + attachment.id + '&action=edit';
28012
 
28013
  // Success/Upload Complete
28014
+ self.uploadComplete(target, photo, msg, edit_url, attachment.id);
28015
+
28016
+ // Trigger Download Counter at Unsplash
28017
+ self.triggerUnsplashDownload(id);
28018
 
28019
+ // Set Featured Image [Gutenberg Sidebar]
28020
+ if (self.displayGutenbergControl && self.setAsFeaturedImage) {
28021
+ self.SetFeaturedImage(attachment.id);
28022
  self.setAsFeaturedImage = false;
28023
+ self.closeMediaModal();
28024
  }
28025
 
28026
+ // Insert Image [Gutenberg Sidebar]
28027
+ if (self.displayGutenbergControl && self.insertIntoPost) {
28028
+ if (attachment.url) {
28029
+ self.InsertImage(attachment.url, attachment.caption, attachment.alt);
28030
+ self.closeMediaModal();
28031
  }
28032
  self.insertIntoPost = false;
28033
  }
28034
 
28035
  // If is media popup, redirect user to media-upload settings
28036
  if (self.container.dataset.mediaPopup === 'true' && !self.is_block_editor) {
28037
+ window.location = 'media-upload.php?type=image&tab=library&attachment_id=' + attachment.id;
28038
  }
28039
  } else {
 
28040
  // Error
28041
+ self.uploadError(target, photo, notice, msg);
28042
  }
28043
  } else {
 
28044
  // Error
28045
+ self.uploadError(target, photo, notice, instant_img_localize.error_upload);
28046
  }
28047
  }).catch(function (error) {
28048
  console.log(error);
28088
  return false;
28089
  }
28090
 
28091
+ this.hideTooltip(e);
28092
  var parent = target.parentNode.parentNode.parentNode;
28093
  var photo = parent.querySelector('a.upload');
28094
  if (photo) {
28112
  return false;
28113
  }
28114
 
28115
+ this.hideTooltip(e);
28116
  var parent = target.parentNode.parentNode.parentNode;
28117
  var photo = parent.querySelector('a.upload');
28118
  if (photo) {
28129
  * @param photo element Nearest parent .photo
28130
  * @param msg string Success Msg
28131
  * @param url string The attachment edit link
28132
+ * @param id string The attachment id
28133
  * @since 3.0
28134
  */
28135
 
28136
  }, {
28137
  key: 'uploadComplete',
28138
+ value: function uploadComplete(target, photo, msg, url, id) {
28139
 
28140
  this.setImageTitle(target, msg);
28141
 
28142
  photo.classList.remove('in-progress');
28143
  photo.classList.add('uploaded');
28144
 
 
 
28145
  photo.querySelector('.edit-photo').style.display = 'none'; // Hide edit-photo button
 
28146
  photo.querySelector('.edit-photo-admin').style.display = 'inline-block'; // Show edit-photo-admin button
28147
  photo.querySelector('.edit-photo-admin').href = url; // Add admin edit link
28148
  photo.querySelector('.edit-photo-admin').target = '_balnk'; // Add new window
28149
 
28150
+ target.classList.remove('uploading');
28151
+ target.classList.remove('resizing');
28152
+ target.classList.add('success');
28153
+ this.inProgress = false;
28154
+
28155
+ // Gutenberg Sidebar
28156
  if (this.is_block_editor) {
28157
  photo.querySelector('.insert').style.display = 'none'; // Hide insert button
28158
  photo.querySelector('.set-featured').style.display = 'none'; // Hide set-featured button
28159
  }
28160
 
28161
+ // Media Router
28162
+ this.mediaRouter(id);
 
 
 
28163
 
28164
+ // Deprecated in 4.3
28165
+ // Was previously used in the Media Popup Context.
28166
  // Refresh Media Library contents on edit pages
28167
  if (this.container.classList.contains('editor')) {
 
28168
  if (typeof wp.media != 'undefined') {
28169
  if (wp.media.frame.content.get() !== null) {
28170
  wp.media.frame.content.get().collection.props.set({ ignore: +new Date() });
28176
  }
28177
  }
28178
 
28179
+ /**
28180
+ * mediaRouter
28181
+ * Refresh Media Modal and select item after it's been uploaded
28182
+ *
28183
+ * @since 4.3
28184
+ */
28185
+
28186
+ }, {
28187
+ key: 'mediaRouter',
28188
+ value: function mediaRouter(id) {
28189
+
28190
+ if (this.is_media_router && wp.media && wp.media.frame && wp.media.frame.el) {
28191
+
28192
+ var mediaModal = wp.media.frame.el;
28193
+ var mediaTab = mediaModal.querySelector('#menu-item-browse');
28194
+ if (mediaTab) {
28195
+ // Open the 'Media Library' tab
28196
+ mediaTab.click();
28197
+ }
28198
+
28199
+ // Delay to allow for tab switching
28200
+ setTimeout(function () {
28201
+ if (wp.media.frame.content.get() !== null) {
28202
+ //this forces a refresh of the content
28203
+ wp.media.frame.content.get().collection._requery(true);
28204
+
28205
+ //optional: reset selection
28206
+ //wp.media.frame.content.get().options.selection.reset();
28207
+ }
28208
+
28209
+ // Select the attached that was just uploaded.
28210
+ var selection = wp.media.frame.state().get('selection');
28211
+ var selected = parseInt(id);
28212
+ selection.reset(selected ? [wp.media.attachment(selected)] : []);
28213
+ }, 150);
28214
+ }
28215
+ }
28216
+
28217
  /*
28218
  * uploadError
28219
  * Function runs when error occurs on upload or resize
28220
  *
28221
  * @param target element Current clicked item
28222
  * @param photo element Nearest parent .photo
28223
+ * @param notice element The message area
28224
  * @param msg string Error Msg
28225
  * @since 3.0
28226
  */
28227
 
28228
  }, {
28229
  key: 'uploadError',
28230
+ value: function uploadError(target, photo, notice, msg) {
28231
  target.classList.remove('uploading');
28232
  target.classList.remove('resizing');
28233
  target.classList.add('errors');
28234
  this.setImageTitle(target, msg);
28235
  this.inProgress = false;
28236
+ notice.classList.add('has-error');
28237
  console.warn(msg);
28238
  }
28239
 
28264
  value: function showEditScreen(e) {
28265
  e.preventDefault();
28266
  var el = e.currentTarget;
28267
+ this.hideTooltip(e);
28268
  var photo = el.closest('.photo');
28269
  var filename = photo.querySelector('input[name="filename"]');
28270
  var editScreen = photo.querySelector('.edit-screen');
28393
  target.focus();
28394
  }
28395
  }
28396
+
28397
+ /*
28398
+ * closeMediaModal
28399
+ * Close the media modal after an action
28400
+ *
28401
+ * @since 4.3
28402
+ */
28403
+
28404
+ }, {
28405
+ key: 'closeMediaModal',
28406
+ value: function closeMediaModal() {
28407
+ var mediaModal = document.querySelector('.media-modal');
28408
+ if (mediaModal) {
28409
+ var closeBtn = mediaModal.querySelector('button.media-modal-close');
28410
+ if (!closeBtn) {
28411
+ return false;
28412
+ }
28413
+ closeBtn.click();
28414
+ }
28415
+ }
28416
  }, {
28417
  key: 'render',
28418
  value: function render() {
28419
  var _this2 = this;
28420
 
28421
+ var likeTxt = parseInt(this.likes) > 1 ? instant_img_localize.likes_plural : instant_img_localize.likes;
28422
+
28423
  return _react2.default.createElement(
28424
  'article',
28425
  { className: 'photo' },
28442
  'data-caption': this.state.caption,
28443
  title: instant_img_localize.upload,
28444
  onClick: function onClick(e) {
28445
+ return _this2.download(e);
28446
  } },
28447
  _react2.default.createElement('img', { src: this.img, alt: '' }),
28448
  _react2.default.createElement('div', { className: 'status' })
28464
  _react2.default.createElement(
28465
  'div',
28466
  { className: 'photo-options' },
28467
+ this.displayGutenbergControl && _react2.default.createElement(
28468
+ 'button',
28469
+ { type: 'button', className: 'set-featured fade',
28470
+ 'data-title': instant_img_localize.set_as_featured,
28471
+ onMouseEnter: function onMouseEnter(e) {
28472
+ return _this2.showTooltip(e);
28473
+ },
28474
+ onMouseLeave: function onMouseLeave(e) {
28475
+ return _this2.hideTooltip(e);
28476
+ },
28477
  onClick: function onClick(e) {
28478
  return _this2.setFeaturedImageClick(e);
28479
+ }
 
28480
  },
28481
  _react2.default.createElement('i', { className: 'fa fa-picture-o', 'aria-hidden': 'true' }),
28482
  _react2.default.createElement(
28485
  instant_img_localize.set_as_featured
28486
  )
28487
  ),
28488
+ this.displayGutenbergControl && _react2.default.createElement(
28489
+ 'button',
28490
+ { type: 'button', className: 'insert fade',
28491
+ 'data-title': instant_img_localize.insert_into_post,
28492
+ onMouseEnter: function onMouseEnter(e) {
28493
+ return _this2.showTooltip(e);
28494
+ },
28495
+ onMouseLeave: function onMouseLeave(e) {
28496
+ return _this2.hideTooltip(e);
28497
+ },
28498
  onClick: function onClick(e) {
28499
  return _this2.insertImageIntoPost(e);
28500
+ }
 
28501
  },
28502
  _react2.default.createElement('i', { className: 'fa fa-plus', 'aria-hidden': 'true' }),
28503
  _react2.default.createElement(
28508
  ),
28509
  _react2.default.createElement(
28510
  'a',
28511
+ { href: '#',
28512
  className: 'edit-photo-admin fade',
28513
+ 'data-title': instant_img_localize.edit_upload,
28514
+ onMouseEnter: function onMouseEnter(e) {
28515
+ return _this2.showTooltip(e);
28516
+ },
28517
+ onMouseLeave: function onMouseLeave(e) {
28518
+ return _this2.hideTooltip(e);
28519
+ }
28520
  },
28521
  _react2.default.createElement('i', { className: 'fa fa-pencil', 'aria-hidden': 'true' }),
28522
  _react2.default.createElement(
28526
  )
28527
  ),
28528
  _react2.default.createElement(
28529
+ 'button',
28530
+ { type: 'button',
28531
  className: 'edit-photo fade',
28532
+ 'data-title': instant_img_localize.edit_details,
28533
+ onMouseEnter: function onMouseEnter(e) {
28534
+ return _this2.showTooltip(e);
28535
+ },
28536
+ onMouseLeave: function onMouseLeave(e) {
28537
+ return _this2.hideTooltip(e);
28538
+ },
28539
  onClick: function onClick(e) {
28540
  return _this2.showEditScreen(e);
28541
  }
28551
  ),
28552
  _react2.default.createElement(
28553
  'div',
28554
+ { className: 'options' },
28555
  _react2.default.createElement(
28556
  'span',
28557
+ {
28558
+ className: 'likes tooltip--above',
28559
+ 'data-title': this.likes + ' ' + likeTxt,
28560
+ onMouseEnter: function onMouseEnter(e) {
28561
+ return _this2.showTooltip(e);
28562
+ },
28563
+ onMouseLeave: function onMouseLeave(e) {
28564
+ return _this2.hideTooltip(e);
28565
+ } },
28566
  _react2.default.createElement('i', { className: 'fa fa-heart heart-like', 'aria-hidden': 'true' }),
28567
  ' ',
28568
  this.likes
28570
  _react2.default.createElement(
28571
  'a',
28572
  {
28573
+ className: 'tooltip--above',
28574
  href: this.link,
28575
+ 'data-title': instant_img_localize.view_on_unsplash,
28576
+ onMouseEnter: function onMouseEnter(e) {
28577
+ return _this2.showTooltip(e);
28578
+ },
28579
+ onMouseLeave: function onMouseLeave(e) {
28580
+ return _this2.hideTooltip(e);
28581
+ },
28582
  target: '_blank' },
28583
  _react2.default.createElement('i', { className: 'fa fa-external-link', 'aria-hidden': 'true' }),
28584
  _react2.default.createElement(
28634
  instant_img_localize.edit_title,
28635
  ':'
28636
  ),
28637
+ _react2.default.createElement('input', { type: 'text', name: 'title', 'data-original': this.title, placeholder: this.title, value: this.state.title || '', onChange: function onChange(e) {
28638
  return _this2.handleEditChange(e);
28639
  } })
28640
  ),
28647
  instant_img_localize.edit_alt,
28648
  ':'
28649
  ),
28650
+ _react2.default.createElement('input', { type: 'text', name: 'alt', 'data-original': this.alt, value: this.state.alt || '', onChange: function onChange(e) {
28651
  return _this2.handleEditChange(e);
28652
  } })
28653
  ),
28662
  ),
28663
  _react2.default.createElement('textarea', { rows: '3', name: 'caption', 'data-original': '', onChange: function onChange(e) {
28664
  return _this2.handleEditChange(e);
28665
+ }, value: this.state.caption || '' })
28666
  ),
28667
  _react2.default.createElement(
28668
  'div',
28724
 
28725
  var _server2 = _interopRequireDefault(_server);
28726
 
28727
+ var _masonryLayout = __webpack_require__(/*! masonry-layout */ "./node_modules/masonry-layout/masonry.js");
28728
 
28729
+ var _masonryLayout2 = _interopRequireDefault(_masonryLayout);
28730
 
28731
  var _Photo = __webpack_require__(/*! ./Photo */ "./src/js/components/Photo.js");
28732
 
28750
 
28751
  function _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; }
28752
 
28753
+ var imagesLoaded = __webpack_require__(/*! imagesloaded */ "./node_modules/imagesloaded/imagesloaded.js");
28754
+
28755
  var PhotoList = function (_React$Component) {
28756
  _inherits(PhotoList, _React$Component);
28757
 
28777
 
28778
  _this.errorMsg = '';
28779
  _this.msnry = '';
28780
+ _this.tooltipInterval = '';
28781
 
28782
  _this.editor = _this.props.editor ? _this.props.editor : 'classic';
28783
  _this.is_block_editor = _this.props.editor === 'gutenberg' ? true : false;
28784
+ _this.is_media_router = _this.props.editor === 'media-router' ? true : false;
28785
  _this.SetFeaturedImage = _this.props.SetFeaturedImage ? _this.props.SetFeaturedImage.bind(_this) : '';
28786
  _this.InsertImage = _this.props.InsertImage ? _this.props.InsertImage.bind(_this) : '';
28787
 
28788
  if (_this.is_block_editor) {
28789
+ // Gutenberg Sidebar Only
28790
  _this.container = document.querySelector('body');
28791
  _this.container.classList.add('loading');
28792
  _this.wrapper = document.querySelector('body');
28793
  } else {
28794
+ // Post Edit Screens and Plugin Screen
28795
+ _this.container = _this.props.container.closest('.instant-img-container');
28796
+ _this.wrapper = _this.props.container.closest('.instant-images-wrapper');
28797
  _this.container.classList.add('loading');
 
28798
  }
28799
 
28800
  return _this;
28814
 
28815
  var self = this;
28816
 
28817
+ var target = this.container.querySelector('.error-messaging'); // Target element
28818
 
28819
  var testURL = instant_img_localize.root + 'instant-images/test/'; // REST Route
28820
  var restAPITest = new XMLHttpRequest();
28864
  value: function search(e) {
28865
 
28866
  e.preventDefault();
28867
+ var input = this.container.querySelector('#photo-search');
28868
  var term = input.value;
28869
 
28870
  if (term.length > 2) {
28877
  input.focus();
28878
  }
28879
  }
28880
+
28881
+ /**
28882
+ * setOrientation
28883
+ * Orientation filter. Availlable during a search only.
28884
+ *
28885
+ * @since 4.2
28886
+ */
28887
+
28888
  }, {
28889
  key: 'setOrientation',
28890
  value: function setOrientation(orientation, e) {
28936
  }, {
28937
  key: 'clearOrientation',
28938
  value: function clearOrientation() {
28939
+ var items = this.container.querySelectorAll('.orientation-list li');
28940
  [].concat(_toConsumableArray(items)).forEach(function (el) {
28941
  return el.classList.remove('active');
28942
  }); // remove active classes
28977
  url = _API2.default.photo_api + '/' + term + _API2.default.app_id;
28978
  }
28979
 
28980
+ var input = this.container.querySelector('#photo-search');
28981
 
28982
  fetch(url).then(function (data) {
28983
  return data.json();
29037
  }, {
29038
  key: 'clearSearch',
29039
  value: function clearSearch() {
29040
+ var input = this.container.querySelector('#photo-search');
29041
  input.value = '';
29042
  this.total_results = 0;
29043
  this.is_search = false;
29152
  return false;
29153
  }
29154
  var self = this;
29155
+ var photoListWrapper = self.container.querySelector('.photo-target');
29156
  imagesLoaded(photoListWrapper, function () {
29157
+ self.msnry = new _masonryLayout2.default(photoListWrapper, {
29158
  itemSelector: '.photo'
29159
  });
29160
+ [].concat(_toConsumableArray(self.container.querySelectorAll('.photo-target .photo'))).forEach(function (el) {
29161
  return el.classList.add('in-view');
29162
  });
29163
  });
29175
  value: function onScroll() {
29176
  var wHeight = window.innerHeight;
29177
  var scrollTop = window.pageYOffset;
29178
+ var scrollH = document.body.scrollHeight - 400;
29179
  if (wHeight + scrollTop >= scrollH && !this.isLoading && !this.isDone) {
29180
  this.getPhotos();
29181
  }
29207
  value: function setActiveState() {
29208
  var self = this;
29209
  // Remove .active class
29210
+ [].concat(_toConsumableArray(this.container.querySelectorAll('.control-nav button'))).forEach(function (el) {
29211
  return el.classList.remove('active');
29212
  });
29213
 
29214
  // Set active item, if not search
29215
  if (!this.is_search) {
29216
+ var active = this.container.querySelector('.control-nav li button.' + this.orderby);
29217
  active.classList.add('active');
29218
  }
29219
  setTimeout(function () {
29222
  }, 1000);
29223
  }
29224
 
29225
+ /**
29226
+ * showTooltip
29227
+ * Show the tooltip
29228
+ *
29229
+ * @since 4.3.0
29230
+ */
29231
+
29232
+ }, {
29233
+ key: 'showTooltip',
29234
+ value: function showTooltip(e) {
29235
+ var self = this;
29236
+ var target = e.currentTarget;
29237
+ var rect = target.getBoundingClientRect();
29238
+ var left = Math.round(rect.left);
29239
+ var top = Math.round(rect.top);
29240
+ var tooltip = this.container.querySelector('#tooltip');
29241
+ tooltip.classList.remove('over');
29242
+
29243
+ if (target.classList.contains('tooltip--above')) {
29244
+ tooltip.classList.add('above');
29245
+ } else {
29246
+ tooltip.classList.remove('above');
29247
+ }
29248
+
29249
+ // Get Content
29250
+ var title = target.dataset.title;
29251
+
29252
+ // Delay reveal
29253
+ this.tooltipInterval = setInterval(function () {
29254
+
29255
+ clearInterval(self.tooltipInterval);
29256
+ tooltip.innerHTML = title;
29257
+
29258
+ // Position Tooltip
29259
+ left = left - tooltip.offsetWidth + target.offsetWidth + 5;
29260
+ tooltip.style.left = left + 'px';
29261
+ tooltip.style.top = top + 'px';
29262
+
29263
+ setTimeout(function () {
29264
+ tooltip.classList.add('over');
29265
+ }, 150);
29266
+ }, 500);
29267
+ }
29268
+
29269
+ /**
29270
+ * hideTooltip
29271
+ * Hide the tooltip
29272
+ *
29273
+ * @since 4.3.0
29274
+ */
29275
+
29276
+ }, {
29277
+ key: 'hideTooltip',
29278
+ value: function hideTooltip(e) {
29279
+ clearInterval(this.tooltipInterval);
29280
+ var tooltip = this.container.querySelector('#tooltip');
29281
+ tooltip.classList.remove('over');
29282
+ }
29283
+
29284
  // Component Updated
29285
 
29286
  }, {
29303
  this.container.classList.remove('loading');
29304
  this.wrapper.classList.add('loaded');
29305
 
29306
+ if (this.is_block_editor || this.is_media_router) {
29307
+ // Gutenberg || Media Popup
29308
  this.page = 0;
29309
  this.getPhotos();
29310
  } else {
29332
  'li',
29333
  null,
29334
  _react2.default.createElement(
29335
+ 'button',
29336
+ { type: 'button', className: 'latest', onClick: function onClick(e) {
29337
  return _this3.togglePhotoList('latest', e);
29338
  } },
29339
  instant_img_localize.latest
29343
  'li',
29344
  { id: 'nav-target' },
29345
  _react2.default.createElement(
29346
+ 'button',
29347
+ { type: 'button', className: 'popular', onClick: function onClick(e) {
29348
  return _this3.togglePhotoList('popular', e);
29349
  } },
29350
  instant_img_localize.popular
29354
  'li',
29355
  null,
29356
  _react2.default.createElement(
29357
+ 'button',
29358
+ { type: 'button', className: 'oldest', onClick: function onClick(e) {
29359
  return _this3.togglePhotoList('oldest', e);
29360
  } },
29361
  instant_img_localize.oldest
29375
  { type: 'submit', id: 'photo-search-submit' },
29376
  _react2.default.createElement('i', { className: 'fa fa-search' })
29377
  ),
29378
+ _react2.default.createElement(_ResultsToolTip2.default, { container: this.container, isSearch: this.is_search, total: this.total_results, title: this.total_results + ' ' + instant_img_localize.search_results + ' ' + this.search_term })
29379
  )
29380
  )
29381
  ),
29425
  ),
29426
  _react2.default.createElement(
29427
  'div',
29428
+ { id: 'photos', className: 'photo-target' },
29429
  this.state.results.map(function (result, iterator) {
29430
+ return _react2.default.createElement(_Photo2.default, { result: result, key: result.id + iterator, editor: _this3.editor, mediaRouter: _this3.is_media_router, blockEditor: _this3.is_block_editor, SetFeaturedImage: _this3.SetFeaturedImage, InsertImage: _this3.InsertImage, showTooltip: _this3.showTooltip, hideTooltip: _this3.hideTooltip });
29431
  })
29432
  ),
29433
  _react2.default.createElement(
29457
  } },
29458
  instant_img_localize.load_more
29459
  )
29460
+ ),
29461
+ _react2.default.createElement(
29462
+ 'div',
29463
+ { id: 'tooltip' },
29464
+ 'Meow'
29465
  )
29466
  );
29467
  }
29514
  _createClass(ResultsToolTip, [{
29515
  key: 'resetSearch',
29516
  value: function resetSearch() {
29517
+ var nav = this.props.container.querySelector('.control-nav');
29518
+ var navItem = nav.querySelector('li button.latest');
29519
  navItem.click();
29520
  }
29521
  }, {
29532
  this.props.total
29533
  ),
29534
  _react2.default.createElement(
29535
+ 'button',
29536
+ { type: 'button', title: instant_img_localize.clear_search, onClick: function onClick(e) {
29537
  return _this2.resetSearch();
29538
  } },
29539
+ 'x',
29540
+ _react2.default.createElement(
29541
+ 'span',
29542
+ { className: 'offscreen' },
29543
+ instant_img_localize.clear_search
29544
+ )
29545
  )
29546
  );
29547
  }
dist/js/instant-images-block.min.js CHANGED
@@ -1,9 +1,9 @@
1
- !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=214)}([function(e,t,n){"use strict";var r=function(e){};e.exports=function(e,t,n,o,i,a,s,u){if(r(t),!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,o,i,a,s,u],p=0;(l=new Error(t.replace(/%s/g,function(){return c[p++]}))).name="Invariant Violation"}throw l.framesToPop=1,l}}},function(e,t,n){"use strict";e.exports=function(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);n+=" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";var o=new Error(n);throw o.name="Invariant Violation",o.framesToPop=1,o}},function(e,t,n){"use strict";var r=n(8);e.exports=r},function(e,t,n){"use strict";
2
  /*
3
  object-assign
4
  (c) Sindre Sorhus
5
  @license MIT
6
- */var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,a,s=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),u=1;u<arguments.length;u++){for(var l in n=Object(arguments[u]))o.call(n,l)&&(s[l]=n[l]);if(r){a=r(n);for(var c=0;c<a.length;c++)i.call(n,a[c])&&(s[a[c]]=n[a[c]])}}return s}},function(e,t,n){"use strict";var r=n(1),o=n(16),i=n(56),a=(n(0),o.ID_ATTRIBUTE_NAME),s=i,u="__reactInternalInstance$"+Math.random().toString(36).slice(2);function l(e,t){return 1===e.nodeType&&e.getAttribute(a)===String(t)||8===e.nodeType&&e.nodeValue===" react-text: "+t+" "||8===e.nodeType&&e.nodeValue===" react-empty: "+t+" "}function c(e){for(var t;t=e._renderedComponent;)e=t;return e}function p(e,t){var n=c(e);n._hostNode=t,t[u]=n}function d(e,t){if(!(e._flags&s.hasCachedChildNodes)){var n=e._renderedChildren,o=t.firstChild;e:for(var i in n)if(n.hasOwnProperty(i)){var a=n[i],u=c(a)._domID;if(0!==u){for(;null!==o;o=o.nextSibling)if(l(o,u)){p(a,o);continue e}r("32",u)}}e._flags|=s.hasCachedChildNodes}}function f(e){if(e[u])return e[u];for(var t,n,r=[];!e[u];){if(r.push(e),!e.parentNode)return null;e=e.parentNode}for(;e&&(n=e[u]);e=r.pop())t=n,r.length&&d(n,e);return t}var h={getClosestInstanceFromNode:f,getInstanceFromNode:function(e){var t=f(e);return null!=t&&t._hostNode===e?t:null},getNodeFromInstance:function(e){if(void 0===e._hostNode&&r("33"),e._hostNode)return e._hostNode;for(var t=[];!e._hostNode;)t.push(e),e._hostParent||r("34"),e=e._hostParent;for(;t.length;e=t.pop())d(e,e._hostNode);return e._hostNode},precacheChildNodes:d,precacheNode:p,uncacheNode:function(e){var t=e._hostNode;t&&(delete t[u],e._hostNode=null)}};e.exports=h},function(e,t,n){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};e.exports=o},function(e,t,n){"use strict";e.exports={debugTool:null}},function(e,t,n){"use strict";var r=n(86),o=n(187),i=Object.prototype.toString;function a(e){return"[object Array]"===i.call(e)}function s(e){return null!==e&&"object"==typeof e}function u(e){return"[object Function]"===i.call(e)}function l(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),a(e))for(var n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.call(null,e[o],o,e)}e.exports={isArray:a,isArrayBuffer:function(e){return"[object ArrayBuffer]"===i.call(e)},isBuffer:o,isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:s,isUndefined:function(e){return void 0===e},isDate:function(e){return"[object Date]"===i.call(e)},isFile:function(e){return"[object File]"===i.call(e)},isBlob:function(e){return"[object Blob]"===i.call(e)},isFunction:u,isStream:function(e){return s(e)&&u(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product)&&"undefined"!=typeof window&&"undefined"!=typeof document},forEach:l,merge:function e(){var t={};function n(n,r){"object"==typeof t[r]&&"object"==typeof n?t[r]=e(t[r],n):t[r]=n}for(var r=0,o=arguments.length;r<o;r++)l(arguments[r],n);return t},extend:function(e,t,n){return l(t,function(t,o){e[o]=n&&"function"==typeof t?r(t,n):t}),e},trim:function(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}}},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";var r=n(1),o=n(3),i=n(61),a=n(13),s=n(62),u=n(14),l=n(24),c=n(0),p=[],d=0,f=i.getPooled(),h=!1,m=null;function v(){E.ReactReconcileTransaction&&m||r("123")}var g=[{initialize:function(){this.dirtyComponentsLength=p.length},close:function(){this.dirtyComponentsLength!==p.length?(p.splice(0,this.dirtyComponentsLength),C()):p.length=0}},{initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}}];function y(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=i.getPooled(),this.reconcileTransaction=E.ReactReconcileTransaction.getPooled(!0)}function _(e,t){return e._mountOrder-t._mountOrder}function b(e){var t=e.dirtyComponentsLength;t!==p.length&&r("124",t,p.length),p.sort(_),d++;for(var n=0;n<t;n++){var o,i=p[n],a=i._pendingCallbacks;if(i._pendingCallbacks=null,s.logTopLevelRenders){var l=i;i._currentElement.type.isReactTopLevelWrapper&&(l=i._renderedComponent),o="React update: "+l.getName(),console.time(o)}if(u.performUpdateIfNecessary(i,e.reconcileTransaction,d),o&&console.timeEnd(o),a)for(var c=0;c<a.length;c++)e.callbackQueue.enqueue(a[c],i.getPublicInstance())}}o(y.prototype,l,{getTransactionWrappers:function(){return g},destructor:function(){this.dirtyComponentsLength=null,i.release(this.callbackQueue),this.callbackQueue=null,E.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return l.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),a.addPoolingTo(y);var C=function(){for(;p.length||h;){if(p.length){var e=y.getPooled();e.perform(b,null,e),y.release(e)}if(h){h=!1;var t=f;f=i.getPooled(),t.notifyAll(),i.release(t)}}};var E={ReactReconcileTransaction:null,batchedUpdates:function(e,t,n,r,o,i){return v(),m.batchedUpdates(e,t,n,r,o,i)},enqueueUpdate:function e(t){v(),m.isBatchingUpdates?(p.push(t),null==t._updateBatchNumber&&(t._updateBatchNumber=d+1)):m.batchedUpdates(e,t)},flushBatchedUpdates:C,injection:{injectReconcileTransaction:function(e){e||r("126"),E.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){e||r("127"),"function"!=typeof e.batchedUpdates&&r("128"),"boolean"!=typeof e.isBatchingUpdates&&r("129"),m=e}},asap:function(e,t){c(m.isBatchingUpdates,"ReactUpdates.asap: Can't enqueue an asap callback in a context whereupdates are not being batched."),f.enqueue(e,t),h=!0}};e.exports=E},function(e,t,n){"use strict";e.exports={current:null}},function(e,t,n){"use strict";var r=n(3),o=n(13),i=n(8),a=(n(2),["dispatchConfig","_targetInst","nativeEvent","isDefaultPrevented","isPropagationStopped","_dispatchListeners","_dispatchInstances"]),s={type:null,target:null,currentTarget:i.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};function u(e,t,n,r){this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n;var o=this.constructor.Interface;for(var a in o)if(o.hasOwnProperty(a)){0;var s=o[a];s?this[a]=s(n):"target"===a?this.target=r:this[a]=n[a]}var u=null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue;return this.isDefaultPrevented=u?i.thatReturnsTrue:i.thatReturnsFalse,this.isPropagationStopped=i.thatReturnsFalse,this}r(u.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=i.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=i.thatReturnsTrue)},persist:function(){this.isPersistent=i.thatReturnsTrue},isPersistent:i.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;for(var n=0;n<a.length;n++)this[a[n]]=null}}),u.Interface=s,u.augmentClass=function(e,t){var n=function(){};n.prototype=this.prototype;var i=new n;r(i,e.prototype),e.prototype=i,e.prototype.constructor=e,e.Interface=r({},this.Interface,t),e.augmentClass=this.augmentClass,o.addPoolingTo(e,o.fourArgumentPooler)},o.addPoolingTo(u,o.fourArgumentPooler),e.exports=u},function(e,t,n){"use strict";var r=n(3),o=n(51),i=n(93),a=n(98),s=n(15),u=n(99),l=n(103),c=n(104),p=n(106),d=s.createElement,f=s.createFactory,h=s.cloneElement,m=r,v={Children:{map:i.map,forEach:i.forEach,count:i.count,toArray:i.toArray,only:p},Component:o.Component,PureComponent:o.PureComponent,createElement:d,cloneElement:h,isValidElement:s.isValidElement,PropTypes:u,createClass:c,createFactory:f,createMixin:function(e){return e},DOM:a,version:l,__spread:m};e.exports=v},function(e,t,n){"use strict";var r=n(1),o=(n(0),function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)}),i=function(e){e instanceof this||r("25"),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)},a=o,s={addPoolingTo:function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||a,n.poolSize||(n.poolSize=10),n.release=i,n},oneArgumentPooler:o,twoArgumentPooler:function(e,t){if(this.instancePool.length){var n=this.instancePool.pop();return this.call(n,e,t),n}return new this(e,t)},threeArgumentPooler:function(e,t,n){if(this.instancePool.length){var r=this.instancePool.pop();return this.call(r,e,t,n),r}return new this(e,t,n)},fourArgumentPooler:function(e,t,n,r){if(this.instancePool.length){var o=this.instancePool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)}};e.exports=s},function(e,t,n){"use strict";var r=n(114);n(6),n(2);function o(){r.attachRefs(this,this._currentElement)}var i={mountComponent:function(e,t,n,r,i,a){var s=e.mountComponent(t,n,r,i,a);return e._currentElement&&null!=e._currentElement.ref&&t.getReactMountReady().enqueue(o,e),s},getHostNode:function(e){return e.getHostNode()},unmountComponent:function(e,t){r.detachRefs(e,e._currentElement),e.unmountComponent(t)},receiveComponent:function(e,t,n,i){var a=e._currentElement;if(t!==a||i!==e._context){0;var s=r.shouldUpdateRefs(a,t);s&&r.detachRefs(e,a),e.receiveComponent(t,n,i),s&&e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(o,e)}},performUpdateIfNecessary:function(e,t,n){e._updateBatchNumber===n&&e.performUpdateIfNecessary(t)}};e.exports=i},function(e,t,n){"use strict";var r=n(3),o=n(10),i=(n(2),n(53),Object.prototype.hasOwnProperty),a=n(54),s={key:!0,ref:!0,__self:!0,__source:!0};function u(e){return void 0!==e.ref}function l(e){return void 0!==e.key}var c=function(e,t,n,r,o,i,s){return{$$typeof:a,type:e,key:t,ref:n,props:s,_owner:i}};c.createElement=function(e,t,n){var r,a={},p=null,d=null;if(null!=t)for(r in u(t)&&(d=t.ref),l(t)&&(p=""+t.key),void 0===t.__self?null:t.__self,void 0===t.__source?null:t.__source,t)i.call(t,r)&&!s.hasOwnProperty(r)&&(a[r]=t[r]);var f=arguments.length-2;if(1===f)a.children=n;else if(f>1){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];0,a.children=h}if(e&&e.defaultProps){var v=e.defaultProps;for(r in v)void 0===a[r]&&(a[r]=v[r])}return c(e,p,d,0,0,o.current,a)},c.createFactory=function(e){var t=c.createElement.bind(null,e);return t.type=e,t},c.cloneAndReplaceKey=function(e,t){return c(e.type,t,e.ref,e._self,e._source,e._owner,e.props)},c.cloneElement=function(e,t,n){var a,p,d=r({},e.props),f=e.key,h=e.ref,m=(e._self,e._source,e._owner);if(null!=t)for(a in u(t)&&(h=t.ref,m=o.current),l(t)&&(f=""+t.key),e.type&&e.type.defaultProps&&(p=e.type.defaultProps),t)i.call(t,a)&&!s.hasOwnProperty(a)&&(void 0===t[a]&&void 0!==p?d[a]=p[a]:d[a]=t[a]);var v=arguments.length-2;if(1===v)d.children=n;else if(v>1){for(var g=Array(v),y=0;y<v;y++)g[y]=arguments[y+2];d.children=g}return c(e.type,f,h,0,0,m,d)},c.isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},e.exports=c},function(e,t,n){"use strict";var r=n(1);n(0);function o(e,t){return(e&t)===t}var i={MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,injectDOMPropertyConfig:function(e){var t=i,n=e.Properties||{},a=e.DOMAttributeNamespaces||{},u=e.DOMAttributeNames||{},l=e.DOMPropertyNames||{},c=e.DOMMutationMethods||{};for(var p in e.isCustomAttribute&&s._isCustomAttributeFunctions.push(e.isCustomAttribute),n){s.properties.hasOwnProperty(p)&&r("48",p);var d=p.toLowerCase(),f=n[p],h={attributeName:d,attributeNamespace:null,propertyName:p,mutationMethod:null,mustUseProperty:o(f,t.MUST_USE_PROPERTY),hasBooleanValue:o(f,t.HAS_BOOLEAN_VALUE),hasNumericValue:o(f,t.HAS_NUMERIC_VALUE),hasPositiveNumericValue:o(f,t.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:o(f,t.HAS_OVERLOADED_BOOLEAN_VALUE)};if(h.hasBooleanValue+h.hasNumericValue+h.hasOverloadedBooleanValue<=1||r("50",p),u.hasOwnProperty(p)){var m=u[p];h.attributeName=m}a.hasOwnProperty(p)&&(h.attributeNamespace=a[p]),l.hasOwnProperty(p)&&(h.propertyName=l[p]),c.hasOwnProperty(p)&&(h.mutationMethod=c[p]),s.properties[p]=h}}},a=":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",s={ID_ATTRIBUTE_NAME:"data-reactid",ROOT_ATTRIBUTE_NAME:"data-reactroot",ATTRIBUTE_NAME_START_CHAR:a,ATTRIBUTE_NAME_CHAR:a+"\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",properties:{},getPossibleStandardName:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<s._isCustomAttributeFunctions.length;t++){if((0,s._isCustomAttributeFunctions[t])(e))return!0}return!1},injection:i};e.exports=s},function(e,t,n){"use strict";var r=n(38),o=n(26),i=n(39),a=n(66),s="undefined"!=typeof document&&"number"==typeof document.documentMode||"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent&&/\bEdge\/\d/.test(navigator.userAgent);function u(e){if(s){var t=e.node,n=e.children;if(n.length)for(var r=0;r<n.length;r++)l(t,n[r],null);else null!=e.html?o(t,e.html):null!=e.text&&a(t,e.text)}}var l=i(function(e,t,n){11===t.node.nodeType||1===t.node.nodeType&&"object"===t.node.nodeName.toLowerCase()&&(null==t.node.namespaceURI||t.node.namespaceURI===r.html)?(u(t),e.insertBefore(t.node,n)):(e.insertBefore(t.node,n),u(t))});function c(){return this.node.nodeName}function p(e){return{node:e,children:[],html:null,text:null,toString:c}}p.insertTreeBefore=l,p.replaceChildWithTree=function(e,t){e.parentNode.replaceChild(t.node,e),u(t)},p.queueChild=function(e,t){s?e.children.push(t):e.node.appendChild(t.node)},p.queueHTML=function(e,t){s?e.html=t:o(e.node,t)},p.queueText=function(e,t){s?e.text=t:a(e.node,t)},e.exports=p},function(e,t,n){"use strict";e.exports=function(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);n+=" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";var o=new Error(n);throw o.name="Invariant Violation",o.framesToPop=1,o}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var r=n(21),o=n(32),i=n(58),a=n(59),s=(n(2),r.getListener);function u(e,t,n){var r=function(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return s(e,r)}(e,n,t);r&&(n._dispatchListeners=i(n._dispatchListeners,r),n._dispatchInstances=i(n._dispatchInstances,e))}function l(e){e&&e.dispatchConfig.phasedRegistrationNames&&o.traverseTwoPhase(e._targetInst,u,e)}function c(e){if(e&&e.dispatchConfig.phasedRegistrationNames){var t=e._targetInst,n=t?o.getParentInstance(t):null;o.traverseTwoPhase(n,u,e)}}function p(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,o=s(e,r);o&&(n._dispatchListeners=i(n._dispatchListeners,o),n._dispatchInstances=i(n._dispatchInstances,e))}}function d(e){e&&e.dispatchConfig.registrationName&&p(e._targetInst,0,e)}var f={accumulateTwoPhaseDispatches:function(e){a(e,l)},accumulateTwoPhaseDispatchesSkipTarget:function(e){a(e,c)},accumulateDirectDispatches:function(e){a(e,d)},accumulateEnterLeaveDispatches:function(e,t,n,r){o.traverseEnterLeave(n,r,p,e,t)}};e.exports=f},function(e,t,n){"use strict";var r=n(1),o=n(31),i=n(32),a=n(33),s=n(58),u=n(59),l=(n(0),{}),c=null,p=function(e,t){e&&(i.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e))},d=function(e){return p(e,!0)},f=function(e){return p(e,!1)},h=function(e){return"."+e._rootNodeID};var m={injection:{injectEventPluginOrder:o.injectEventPluginOrder,injectEventPluginsByName:o.injectEventPluginsByName},putListener:function(e,t,n){"function"!=typeof n&&r("94",t,typeof n);var i=h(e);(l[t]||(l[t]={}))[i]=n;var a=o.registrationNameModules[t];a&&a.didPutListener&&a.didPutListener(e,t,n)},getListener:function(e,t){var n=l[t];if(function(e,t,n){switch(e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":return!(!n.disabled||(r=t,"button"!==r&&"input"!==r&&"select"!==r&&"textarea"!==r));default:return!1}var r}(t,e._currentElement.type,e._currentElement.props))return null;var r=h(e);return n&&n[r]},deleteListener:function(e,t){var n=o.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t);var r=l[t];r&&delete r[h(e)]},deleteAllListeners:function(e){var t=h(e);for(var n in l)if(l.hasOwnProperty(n)&&l[n][t]){var r=o.registrationNameModules[n];r&&r.willDeleteListener&&r.willDeleteListener(e,n),delete l[n][t]}},extractEvents:function(e,t,n,r){for(var i,a=o.plugins,u=0;u<a.length;u++){var l=a[u];if(l){var c=l.extractEvents(e,t,n,r);c&&(i=s(i,c))}}return i},enqueueEvents:function(e){e&&(c=s(c,e))},processEventQueue:function(e){var t=c;c=null,u(t,e?d:f),c&&r("95"),a.rethrowCaughtError()},__purge:function(){l={}},__getListenerBank:function(){return l}};e.exports=m},function(e,t,n){"use strict";var r=n(11),o=n(34),i={view:function(e){if(e.view)return e.view;var t=o(e);if(t.window===t)return t;var n=t.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(e){return e.detail||0}};function a(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(a,i),e.exports=a},function(e,t,n){"use strict";var r={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}};e.exports=r},function(e,t,n){"use strict";var r=n(1),o=(n(0),{}),i={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(e,t,n,o,i,a,s,u){var l,c;this.isInTransaction()&&r("27");try{this._isInTransaction=!0,l=!0,this.initializeAll(0),c=e.call(t,n,o,i,a,s,u),l=!1}finally{try{if(l)try{this.closeAll(0)}catch(e){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return c},initializeAll:function(e){for(var t=this.transactionWrappers,n=e;n<t.length;n++){var r=t[n];try{this.wrapperInitData[n]=o,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===o)try{this.initializeAll(n+1)}catch(e){}}}},closeAll:function(e){this.isInTransaction()||r("28");for(var t=this.transactionWrappers,n=e;n<t.length;n++){var i,a=t[n],s=this.wrapperInitData[n];try{i=!0,s!==o&&a.close&&a.close.call(this,s),i=!1}finally{if(i)try{this.closeAll(n+1)}catch(e){}}}this.wrapperInitData.length=0}};e.exports=i},function(e,t,n){"use strict";var r=n(22),o=n(65),i={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:n(36),button:function(e){var t=e.button;return"which"in e?t:2===t?2:4===t?1:0},buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},pageX:function(e){return"pageX"in e?e.pageX:e.clientX+o.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+o.currentScrollTop}};function a(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(a,i),e.exports=a},function(e,t,n){"use strict";var r,o=n(5),i=n(38),a=/^[ \r\n\t\f]/,s=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,u=n(39)(function(e,t){if(e.namespaceURI!==i.svg||"innerHTML"in e)e.innerHTML=t;else{(r=r||document.createElement("div")).innerHTML="<svg>"+t+"</svg>";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(o.canUseDOM){var l=document.createElement("div");l.innerHTML=" ",""===l.innerHTML&&(u=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&s.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),l=null}e.exports=u},function(e,t,n){"use strict";var r=/["'&<>]/;e.exports=function(e){return"boolean"==typeof e||"number"==typeof e?""+e:function(e){var t,n=""+e,o=r.exec(n);if(!o)return n;var i="",a=0,s=0;for(a=o.index;a<n.length;a++){switch(n.charCodeAt(a)){case 34:t="&quot;";break;case 38:t="&amp;";break;case 39:t="&#x27;";break;case 60:t="&lt;";break;case 62:t="&gt;";break;default:continue}s!==a&&(i+=n.substring(s,a)),s=a+1,i+=t}return s!==a?i+n.substring(s,a):i}(e)}},function(e,t,n){"use strict";var r,o=n(3),i=n(31),a=n(135),s=n(65),u=n(136),l=n(35),c={},p=!1,d=0,f={topAbort:"abort",topAnimationEnd:u("animationend")||"animationend",topAnimationIteration:u("animationiteration")||"animationiteration",topAnimationStart:u("animationstart")||"animationstart",topBlur:"blur",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topScroll:"scroll",topSeeked:"seeked",topSeeking:"seeking",topSelectionChange:"selectionchange",topStalled:"stalled",topSuspend:"suspend",topTextInput:"textInput",topTimeUpdate:"timeupdate",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topTransitionEnd:u("transitionend")||"transitionend",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},h="_reactListenersID"+String(Math.random()).slice(2);var m=o({},a,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(m.handleTopLevel),m.ReactEventListener=e}},setEnabled:function(e){m.ReactEventListener&&m.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!m.ReactEventListener||!m.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,r=function(e){return Object.prototype.hasOwnProperty.call(e,h)||(e[h]=d++,c[e[h]]={}),c[e[h]]}(n),o=i.registrationNameDependencies[e],a=0;a<o.length;a++){var s=o[a];r.hasOwnProperty(s)&&r[s]||("topWheel"===s?l("wheel")?m.ReactEventListener.trapBubbledEvent("topWheel","wheel",n):l("mousewheel")?m.ReactEventListener.trapBubbledEvent("topWheel","mousewheel",n):m.ReactEventListener.trapBubbledEvent("topWheel","DOMMouseScroll",n):"topScroll"===s?l("scroll",!0)?m.ReactEventListener.trapCapturedEvent("topScroll","scroll",n):m.ReactEventListener.trapBubbledEvent("topScroll","scroll",m.ReactEventListener.WINDOW_HANDLE):"topFocus"===s||"topBlur"===s?(l("focus",!0)?(m.ReactEventListener.trapCapturedEvent("topFocus","focus",n),m.ReactEventListener.trapCapturedEvent("topBlur","blur",n)):l("focusin")&&(m.ReactEventListener.trapBubbledEvent("topFocus","focusin",n),m.ReactEventListener.trapBubbledEvent("topBlur","focusout",n)),r.topBlur=!0,r.topFocus=!0):f.hasOwnProperty(s)&&m.ReactEventListener.trapBubbledEvent(s,f[s],n),r[s]=!0)}},trapBubbledEvent:function(e,t,n){return m.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return m.ReactEventListener.trapCapturedEvent(e,t,n)},supportsEventPageXY:function(){if(!document.createEvent)return!1;var e=document.createEvent("MouseEvent");return null!=e&&"pageX"in e},ensureScrollValueMonitoring:function(){if(void 0===r&&(r=m.supportsEventPageXY()),!r&&!p){var e=s.refreshScrollValues;m.ReactEventListener.monitorScrollValue(e),p=!0}}});e.exports=m},function(e,t,n){"use strict";e.exports=n(12)},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 s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,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 u,l=[],c=!1,p=-1;function d(){c&&u&&(c=!1,u.length?l=u.concat(l):p=-1,l.length&&f())}function f(){if(!c){var e=s(d);c=!0;for(var t=l.length;t;){for(u=l,l=[];++p<t;)u&&u[p].run();p=-1,t=l.length}u=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(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(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new h(e,t)),1!==l.length||c||s(f)},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 r=n(1),o=(n(0),null),i={};function a(){if(o)for(var e in i){var t=i[e],n=o.indexOf(e);if(n>-1||r("96",e),!l.plugins[n]){t.extractEvents||r("97",e),l.plugins[n]=t;var a=t.eventTypes;for(var u in a)s(a[u],t,u)||r("98",u,e)}}}function s(e,t,n){l.eventNameDispatchConfigs.hasOwnProperty(n)&&r("99",n),l.eventNameDispatchConfigs[n]=e;var o=e.phasedRegistrationNames;if(o){for(var i in o){if(o.hasOwnProperty(i))u(o[i],t,n)}return!0}return!!e.registrationName&&(u(e.registrationName,t,n),!0)}function u(e,t,n){l.registrationNameModules[e]&&r("100",e),l.registrationNameModules[e]=t,l.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var l={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){o&&r("101"),o=Array.prototype.slice.call(e),a()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];i.hasOwnProperty(n)&&i[n]===o||(i[n]&&r("102",n),i[n]=o,t=!0)}t&&a()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return l.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var o=l.registrationNameModules[n[r]];if(o)return o}}return null},_resetEventPlugins:function(){for(var e in o=null,i)i.hasOwnProperty(e)&&delete i[e];l.plugins.length=0;var t=l.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=l.registrationNameModules;for(var a in r)r.hasOwnProperty(a)&&delete r[a]}};e.exports=l},function(e,t,n){"use strict";var r,o,i=n(1),a=n(33);n(0),n(2);function s(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=u.getNodeFromInstance(r),t?a.invokeGuardedCallbackWithCatch(o,n,e):a.invokeGuardedCallback(o,n,e),e.currentTarget=null}var u={isEndish:function(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e},isMoveish:function(e){return"topMouseMove"===e||"topTouchMove"===e},isStartish:function(e){return"topMouseDown"===e||"topTouchStart"===e},executeDirectDispatch:function(e){var t=e._dispatchListeners,n=e._dispatchInstances;Array.isArray(t)&&i("103"),e.currentTarget=t?u.getNodeFromInstance(n):null;var r=t?t(e):null;return e.currentTarget=null,e._dispatchListeners=null,e._dispatchInstances=null,r},executeDispatchesInOrder:function(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o<n.length&&!e.isPropagationStopped();o++)s(e,t,n[o],r[o]);else n&&s(e,t,n,r);e._dispatchListeners=null,e._dispatchInstances=null},executeDispatchesInOrderStopAtTrue:function(e){var t=function(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t)){for(var r=0;r<t.length&&!e.isPropagationStopped();r++)if(t[r](e,n[r]))return n[r]}else if(t&&t(e,n))return n;return null}(e);return e._dispatchInstances=null,e._dispatchListeners=null,t},hasDispatches:function(e){return!!e._dispatchListeners},getInstanceFromNode:function(e){return r.getInstanceFromNode(e)},getNodeFromInstance:function(e){return r.getNodeFromInstance(e)},isAncestor:function(e,t){return o.isAncestor(e,t)},getLowestCommonAncestor:function(e,t){return o.getLowestCommonAncestor(e,t)},getParentInstance:function(e){return o.getParentInstance(e)},traverseTwoPhase:function(e,t,n){return o.traverseTwoPhase(e,t,n)},traverseEnterLeave:function(e,t,n,r,i){return o.traverseEnterLeave(e,t,n,r,i)},injection:{injectComponentTree:function(e){r=e},injectTreeTraversal:function(e){o=e}}};e.exports=u},function(e,t,n){"use strict";var r=null;function o(e,t,n){try{t(n)}catch(e){null===r&&(r=e)}}var i={invokeGuardedCallback:o,invokeGuardedCallbackWithCatch:o,rethrowCaughtError:function(){if(r){var e=r;throw r=null,e}}};e.exports=i},function(e,t,n){"use strict";e.exports=function(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}},function(e,t,n){"use strict";var r,o=n(5);o.canUseDOM&&(r=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""))
7
  /**
8
  * Checks if an event is supported in the current execution environment.
9
  *
@@ -17,25 +17,48 @@ object-assign
17
  * @return {boolean} True if the event is supported.
18
  * @internal
19
  * @license Modernizr 3.0.0pre (Custom Build) | MIT
20
- */,e.exports=function(e,t){if(!o.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,i=n in document;if(!i){var a=document.createElement("div");a.setAttribute(n,"return;"),i="function"==typeof a[n]}return!i&&r&&"wheel"===e&&(i=document.implementation.hasFeature("Events.wheel","3.0")),i}},function(e,t,n){"use strict";var r={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function o(e){var t=this.nativeEvent;if(t.getModifierState)return t.getModifierState(e);var n=r[e];return!!n&&!!t[n]}e.exports=function(e){return o}},function(e,t,n){"use strict";var r=n(17),o=n(120),i=(n(4),n(6),n(39)),a=n(26),s=n(66);function u(e,t){return Array.isArray(t)&&(t=t[1]),t?t.nextSibling:e.firstChild}var l=i(function(e,t,n){e.insertBefore(t,n)});function c(e,t,n){r.insertTreeBefore(e,t,n)}function p(e,t,n){Array.isArray(t)?function(e,t,n,r){var o=t;for(;;){var i=o.nextSibling;if(l(e,o,r),o===n)break;o=i}}(e,t[0],t[1],n):l(e,t,n)}function d(e,t){if(Array.isArray(t)){var n=t[1];f(e,t=t[0],n),e.removeChild(n)}e.removeChild(t)}function f(e,t,n){for(;;){var r=t.nextSibling;if(r===n)break;e.removeChild(r)}}var h={dangerouslyReplaceNodeWithMarkup:o.dangerouslyReplaceNodeWithMarkup,replaceDelimitedText:function(e,t,n){var r=e.parentNode,o=e.nextSibling;o===t?n&&l(r,document.createTextNode(n),o):n?(s(o,n),f(r,o,t)):f(r,e,t)},processUpdates:function(e,t){for(var n=0;n<t.length;n++){var r=t[n];switch(r.type){case"INSERT_MARKUP":c(e,r.content,u(e,r.afterNode));break;case"MOVE_EXISTING":p(e,r.fromNode,u(e,r.afterNode));break;case"SET_MARKUP":a(e,r.content);break;case"TEXT_CONTENT":s(e,r.content);break;case"REMOVE_NODE":d(e,r.fromNode)}}}};e.exports=h},function(e,t,n){"use strict";e.exports={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"}},function(e,t,n){"use strict";e.exports=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e}},function(e,t,n){"use strict";var r=n(1),o=n(138),i=n(55)(n(12).isValidElement),a=(n(0),n(2),{button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0});function s(e){null!=e.checkedLink&&null!=e.valueLink&&r("87")}function u(e){s(e),(null!=e.value||null!=e.onChange)&&r("88")}function l(e){s(e),(null!=e.checked||null!=e.onChange)&&r("89")}var c={value:function(e,t,n){return!e[t]||a[e.type]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t,n){return!e[t]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:i.func},p={};function d(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}var f={checkPropTypes:function(e,t,n){for(var r in c){if(c.hasOwnProperty(r))var i=c[r](t,r,e,"prop",null,o);if(i instanceof Error&&!(i.message in p)){p[i.message]=!0;d(n)}}},getValue:function(e){return e.valueLink?(u(e),e.valueLink.value):e.value},getChecked:function(e){return e.checkedLink?(l(e),e.checkedLink.value):e.checked},executeOnChange:function(e,t){return e.valueLink?(u(e),e.valueLink.requestChange(t.target.value)):e.checkedLink?(l(e),e.checkedLink.requestChange(t.target.checked)):e.onChange?e.onChange.call(void 0,t):void 0}};e.exports=f},function(e,t,n){"use strict";var r=n(1),o=(n(0),!1),i={replaceNodeWithMarkup:null,processChildrenUpdates:null,injection:{injectEnvironment:function(e){o&&r("104"),i.replaceNodeWithMarkup=e.replaceNodeWithMarkup,i.processChildrenUpdates=e.processChildrenUpdates,o=!0}}};e.exports=i},function(e,t,n){"use strict";var r=n(1),o=n(3),i=n(143),a=n(72),s=n(73),u=(n(144),n(0),n(2),function(e){this.construct(e)});function l(e,t){var n;if(null===e||!1===e)n=a.create(l);else if("object"==typeof e){var o=e,i=o.type;if("function"!=typeof i&&"string"!=typeof i){var c="";0,c+=function(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}(o._owner),r("130",null==i?i:typeof i,c)}"string"==typeof o.type?n=s.createInternalComponent(o):!function(e){return"function"==typeof e&&void 0!==e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}(o.type)?n=new u(o):(n=new o.type(o)).getHostNode||(n.getHostNode=n.getNativeNode)}else"string"==typeof e||"number"==typeof e?n=s.createInstanceForText(e):r("131",typeof e);return n._mountIndex=0,n._mountImage=null,n}o(u.prototype,i,{_instantiateReactComponent:l}),e.exports=l},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function o(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}e.exports=function(e,t){if(o(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(var a=0;a<n.length;a++)if(!r.call(t,n[a])||!o(e[n[a]],t[n[a]]))return!1;return!0}},function(e,t,n){"use strict";e.exports=function(e,t){var n=null===e||!1===e,r=null===t||!1===t;if(n||r)return n===r;var o=typeof e,i=typeof t;return"string"===o||"number"===o?"string"===i||"number"===i:"object"===i&&e.type===t.type&&e.key===t.key}},function(e,t,n){"use strict";var r={escape:function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})},unescape:function(e){var t={"=0":"=","=2":":"};return(""+("."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1))).replace(/(=0|=2)/g,function(e){return t[e]})}};e.exports=r},function(e,t,n){"use strict";var r=n(1),o=(n(10),n(23)),i=(n(6),n(9));n(0),n(2);function a(e){i.enqueueUpdate(e)}function s(e,t){var n=o.get(e);return n||null}var u={isMounted:function(e){var t=o.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){u.validateCallback(t,n);var r=s(e);if(!r)return null;r._pendingCallbacks?r._pendingCallbacks.push(t):r._pendingCallbacks=[t],a(r)},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],a(e)},enqueueForceUpdate:function(e){var t=s(e);t&&(t._pendingForceUpdate=!0,a(t))},enqueueReplaceState:function(e,t,n){var r=s(e);r&&(r._pendingStateQueue=[t],r._pendingReplaceState=!0,null!=n&&(u.validateCallback(n,"replaceState"),r._pendingCallbacks?r._pendingCallbacks.push(n):r._pendingCallbacks=[n]),a(r))},enqueueSetState:function(e,t){var n=s(e);n&&((n._pendingStateQueue||(n._pendingStateQueue=[])).push(t),a(n))},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,a(e)},validateCallback:function(e,t){e&&"function"!=typeof e&&r("122",t,function(e){var t=typeof e;if("object"!==t)return t;var n=e.constructor&&e.constructor.name||t,r=Object.keys(e);return r.length>0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}(e))}};e.exports=u},function(e,t,n){"use strict";n(3);var r=n(8),o=(n(2),r);e.exports=o},function(e,t,n){"use strict";e.exports=function(e){var t,n=e.keyCode;return"charCode"in e?0===(t=e.charCode)&&13===n&&(t=13):t=n,t>=32||13===t?t:0}},function(e,t,n){"use strict";(function(t){var r=n(7),o=n(189),i={"Content-Type":"application/x-www-form-urlencoded"};function a(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var s,u={adapter:("undefined"!=typeof XMLHttpRequest?s=n(87):void 0!==t&&(s=n(87)),s),transformRequest:[function(e,t){return o(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(a(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)?(a(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],function(e){u.headers[e]={}}),r.forEach(["post","put","patch"],function(e){u.headers[e]=r.merge(i)}),e.exports=u}).call(this,n(30))},function(e,t,n){"use strict";e.exports={photo_api:"https://api.unsplash.com/photos",search_api:"https://api.unsplash.com/search/photos",app_id:"/?client_id="+instant_img_localize.unsplash_app_id,posts_per_page:"&per_page=20"}},function(e,t,n){"use strict";var r=n(18),o=n(3),i=n(52),a=(n(53),n(19));n(0),n(92);function s(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||i}function u(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||i}function l(){}s.prototype.isReactComponent={},s.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e&&r("85"),this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},s.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")},l.prototype=s.prototype,u.prototype=new l,u.prototype.constructor=u,o(u.prototype,s.prototype),u.prototype.isPureReactComponent=!0,e.exports={Component:s,PureComponent:u}},function(e,t,n){"use strict";n(2);var r={isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){},enqueueReplaceState:function(e,t){},enqueueSetState:function(e,t){}};e.exports=r},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=r},function(e,t,n){"use strict";var r=n(100);e.exports=function(e){return r(e,!1)}},function(e,t,n){"use strict";e.exports={hasCachedChildNodes:1}},function(e,t,n){"use strict";var r=n(108),o=n(109),i=n(113),a=n(116),s=n(117),u=n(118),l=n(119),c=n(125),p=n(4),d=n(149),f=n(150),h=n(151),m=n(77),v=n(152),g=n(154),y=n(155),_=n(161),b=n(162),C=n(163),E=!1;e.exports={inject:function(){E||(E=!0,g.EventEmitter.injectReactEventListener(v),g.EventPluginHub.injectEventPluginOrder(a),g.EventPluginUtils.injectComponentTree(p),g.EventPluginUtils.injectTreeTraversal(f),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:C,EnterLeaveEventPlugin:s,ChangeEventPlugin:i,SelectEventPlugin:b,BeforeInputEventPlugin:o}),g.HostComponent.injectGenericComponentClass(c),g.HostComponent.injectTextComponentClass(h),g.DOMProperty.injectDOMPropertyConfig(r),g.DOMProperty.injectDOMPropertyConfig(u),g.DOMProperty.injectDOMPropertyConfig(_),g.EmptyComponent.injectEmptyComponentFactory(function(e){return new d(e)}),g.Updates.injectReconcileTransaction(y),g.Updates.injectBatchingStrategy(m),g.Component.injectEnvironment(l))}}},function(e,t,n){"use strict";var r=n(1);n(0);e.exports=function(e,t){return null==t&&r("30"),null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}},function(e,t,n){"use strict";e.exports=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}},function(e,t,n){"use strict";var r=n(5),o=null;e.exports=function(){return!o&&r.canUseDOM&&(o="textContent"in document.documentElement?"textContent":"innerText"),o}},function(e,t,n){"use strict";var r=n(1);var o=n(13),i=(n(0),function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._callbacks=null,this._contexts=null,this._arg=t}return e.prototype.enqueue=function(e,t){this._callbacks=this._callbacks||[],this._callbacks.push(e),this._contexts=this._contexts||[],this._contexts.push(t)},e.prototype.notifyAll=function(){var e=this._callbacks,t=this._contexts,n=this._arg;if(e&&t){e.length!==t.length&&r("24"),this._callbacks=null,this._contexts=null;for(var o=0;o<e.length;o++)e[o].call(t[o],n);e.length=0,t.length=0}},e.prototype.checkpoint=function(){return this._callbacks?this._callbacks.length:0},e.prototype.rollback=function(e){this._callbacks&&this._contexts&&(this._callbacks.length=e,this._contexts.length=e)},e.prototype.reset=function(){this._callbacks=null,this._contexts=null},e.prototype.destructor=function(){this.reset()},e}());e.exports=o.addPoolingTo(i)},function(e,t,n){"use strict";e.exports={logTopLevelRenders:!1}},function(e,t,n){"use strict";var r=n(4);function o(e){var t=e.type,n=e.nodeName;return n&&"input"===n.toLowerCase()&&("checkbox"===t||"radio"===t)}function i(e){return e._wrapperState.valueTracker}var a={_getTrackerFromNode:function(e){return i(r.getInstanceFromNode(e))},track:function(e){if(!i(e)){var t=r.getNodeFromInstance(e),n=o(t)?"checked":"value",a=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),s=""+t[n];t.hasOwnProperty(n)||"function"!=typeof a.get||"function"!=typeof a.set||(Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:!0,get:function(){return a.get.call(this)},set:function(e){s=""+e,a.set.call(this,e)}}),function(e,t){e._wrapperState.valueTracker=t}(e,{getValue:function(){return s},setValue:function(e){s=""+e},stopTracking:function(){!function(e){e._wrapperState.valueTracker=null}(e),delete t[n]}}))}},updateValueIfChanged:function(e){if(!e)return!1;var t=i(e);if(!t)return a.track(e),!0;var n,s,u=t.getValue(),l=((n=r.getNodeFromInstance(e))&&(s=o(n)?""+n.checked:n.value),s);return l!==u&&(t.setValue(l),!0)},stopTracking:function(e){var t=i(e);t&&t.stopTracking()}};e.exports=a},function(e,t,n){"use strict";var r={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=function(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!r[e.type]:"textarea"===t}},function(e,t,n){"use strict";var r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};e.exports=r},function(e,t,n){"use strict";var r=n(5),o=n(27),i=n(26),a=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){3!==e.nodeType?i(e,o(t)):e.nodeValue=t})),e.exports=a},function(e,t,n){"use strict";e.exports=function(e){try{e.focus()}catch(e){}}},function(e,t,n){"use strict";var r={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0};var o=["Webkit","ms","Moz","O"];Object.keys(r).forEach(function(e){o.forEach(function(t){r[function(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}(t,e)]=r[e]})});var i={isUnitlessNumber:r,shorthandPropertyExpansions:{background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}}};e.exports=i},function(e,t,n){"use strict";var r=n(16),o=(n(4),n(6),n(134)),i=(n(2),new RegExp("^["+r.ATTRIBUTE_NAME_START_CHAR+"]["+r.ATTRIBUTE_NAME_CHAR+"]*$")),a={},s={};function u(e){return!!s.hasOwnProperty(e)||!a.hasOwnProperty(e)&&(i.test(e)?(s[e]=!0,!0):(a[e]=!0,!1))}function l(e,t){return null==t||e.hasBooleanValue&&!t||e.hasNumericValue&&isNaN(t)||e.hasPositiveNumericValue&&t<1||e.hasOverloadedBooleanValue&&!1===t}var c={createMarkupForID:function(e){return r.ID_ATTRIBUTE_NAME+"="+o(e)},setAttributeForID:function(e,t){e.setAttribute(r.ID_ATTRIBUTE_NAME,t)},createMarkupForRoot:function(){return r.ROOT_ATTRIBUTE_NAME+'=""'},setAttributeForRoot:function(e){e.setAttribute(r.ROOT_ATTRIBUTE_NAME,"")},createMarkupForProperty:function(e,t){var n=r.properties.hasOwnProperty(e)?r.properties[e]:null;if(n){if(l(n,t))return"";var i=n.attributeName;return n.hasBooleanValue||n.hasOverloadedBooleanValue&&!0===t?i+'=""':i+"="+o(t)}return r.isCustomAttribute(e)?null==t?"":e+"="+o(t):null},createMarkupForCustomAttribute:function(e,t){return u(e)&&null!=t?e+"="+o(t):""},setValueForProperty:function(e,t,n){var o=r.properties.hasOwnProperty(t)?r.properties[t]:null;if(o){var i=o.mutationMethod;if(i)i(e,n);else{if(l(o,n))return void this.deleteValueForProperty(e,t);if(o.mustUseProperty)e[o.propertyName]=n;else{var a=o.attributeName,s=o.attributeNamespace;s?e.setAttributeNS(s,a,""+n):o.hasBooleanValue||o.hasOverloadedBooleanValue&&!0===n?e.setAttribute(a,""):e.setAttribute(a,""+n)}}}else if(r.isCustomAttribute(t))return void c.setValueForAttribute(e,t,n)},setValueForAttribute:function(e,t,n){u(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))},deleteValueForAttribute:function(e,t){e.removeAttribute(t)},deleteValueForProperty:function(e,t){var n=r.properties.hasOwnProperty(t)?r.properties[t]:null;if(n){var o=n.mutationMethod;if(o)o(e,void 0);else if(n.mustUseProperty){var i=n.propertyName;n.hasBooleanValue?e[i]=!1:e[i]=""}else e.removeAttribute(n.attributeName)}else r.isCustomAttribute(t)&&e.removeAttribute(t)}};e.exports=c},function(e,t,n){"use strict";var r=n(3),o=n(40),i=n(4),a=n(9),s=(n(2),!1);function u(){if(this._rootNodeID&&this._wrapperState.pendingUpdate){this._wrapperState.pendingUpdate=!1;var e=this._currentElement.props,t=o.getValue(e);null!=t&&l(this,Boolean(e.multiple),t)}}function l(e,t,n){var r,o,a=i.getNodeFromInstance(e).options;if(t){for(r={},o=0;o<n.length;o++)r[""+n[o]]=!0;for(o=0;o<a.length;o++){var s=r.hasOwnProperty(a[o].value);a[o].selected!==s&&(a[o].selected=s)}}else{for(r=""+n,o=0;o<a.length;o++)if(a[o].value===r)return void(a[o].selected=!0);a.length&&(a[0].selected=!0)}}var c={getHostProps:function(e,t){return r({},t,{onChange:e._wrapperState.onChange,value:void 0})},mountWrapper:function(e,t){var n=o.getValue(t);e._wrapperState={pendingUpdate:!1,initialValue:null!=n?n:t.defaultValue,listeners:null,onChange:p.bind(e),wasMultiple:Boolean(t.multiple)},void 0===t.value||void 0===t.defaultValue||s||(s=!0)},getSelectValueContext:function(e){return e._wrapperState.initialValue},postUpdateWrapper:function(e){var t=e._currentElement.props;e._wrapperState.initialValue=void 0;var n=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=Boolean(t.multiple);var r=o.getValue(t);null!=r?(e._wrapperState.pendingUpdate=!1,l(e,Boolean(t.multiple),r)):n!==Boolean(t.multiple)&&(null!=t.defaultValue?l(e,Boolean(t.multiple),t.defaultValue):l(e,Boolean(t.multiple),t.multiple?[]:""))}};function p(e){var t=this._currentElement.props,n=o.executeOnChange(t,e);return this._rootNodeID&&(this._wrapperState.pendingUpdate=!0),a.asap(u,this),n}e.exports=c},function(e,t,n){"use strict";var r=n(1),o=n(12),i=(n(0),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(e){return null===e||!1===e?i.EMPTY:o.isValidElement(e)?"function"==typeof e.type?i.COMPOSITE:i.HOST:void r("26",e)}});e.exports=i},function(e,t,n){"use strict";var r,o={injectEmptyComponentFactory:function(e){r=e}},i={create:function(e){return r(e)}};i.injection=o,e.exports=i},function(e,t,n){"use strict";var r=n(1),o=(n(0),null),i=null;var a={createInternalComponent:function(e){return o||r("111",e.type),new o(e)},createInstanceForText:function(e){return new i(e)},isTextComponent:function(e){return e instanceof i},injection:{injectGenericComponentClass:function(e){o=e},injectTextComponentClass:function(e){i=e}}};e.exports=a},function(e,t,n){"use strict";var r=n(1),o=(n(10),n(145)),i=n(146),a=(n(0),n(45)),s=(n(2),"."),u=":";function l(e,t){return e&&"object"==typeof e&&null!=e.key?a.escape(e.key):t.toString(36)}e.exports=function(e,t,n){return null==e?0:function e(t,n,c,p){var d,f=typeof t;if("undefined"!==f&&"boolean"!==f||(t=null),null===t||"string"===f||"number"===f||"object"===f&&t.$$typeof===o)return c(p,t,""===n?s+l(t,0):n),1;var h=0,m=""===n?s:n+u;if(Array.isArray(t))for(var v=0;v<t.length;v++)h+=e(d=t[v],m+l(d,v),c,p);else{var g=i(t);if(g){var y,_=g.call(t);if(g!==t.entries)for(var b=0;!(y=_.next()).done;)h+=e(d=y.value,m+l(d,b++),c,p);else for(;!(y=_.next()).done;){var C=y.value;C&&(h+=e(d=C[1],m+a.escape(C[0])+u+l(d,0),c,p))}}else if("object"===f){var E=String(t);r("31","[object Object]"===E?"object with keys {"+Object.keys(t).join(", ")+"}":E,"")}}return h}(e,"",t,n)}},function(e,t,n){"use strict";var r,o,i,a,s,u,l,c=n(18),p=n(10);n(0),n(2);function d(e){var t=Function.prototype.toString,n=Object.prototype.hasOwnProperty,r=RegExp("^"+t.call(n).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");try{var o=t.call(e);return r.test(o)}catch(e){return!1}}if("function"==typeof Array.from&&"function"==typeof Map&&d(Map)&&null!=Map.prototype&&"function"==typeof Map.prototype.keys&&d(Map.prototype.keys)&&"function"==typeof Set&&d(Set)&&null!=Set.prototype&&"function"==typeof Set.prototype.keys&&d(Set.prototype.keys)){var f=new Map,h=new Set;r=function(e,t){f.set(e,t)},o=function(e){return f.get(e)},i=function(e){f.delete(e)},a=function(){return Array.from(f.keys())},s=function(e){h.add(e)},u=function(e){h.delete(e)},l=function(){return Array.from(h.keys())}}else{var m={},v={},g=function(e){return"."+e},y=function(e){return parseInt(e.substr(1),10)};r=function(e,t){var n=g(e);m[n]=t},o=function(e){var t=g(e);return m[t]},i=function(e){var t=g(e);delete m[t]},a=function(){return Object.keys(m).map(y)},s=function(e){var t=g(e);v[t]=!0},u=function(e){var t=g(e);delete v[t]},l=function(){return Object.keys(v).map(y)}}var _=[];function b(e){var t=o(e);if(t){var n=t.childIDs;i(e),n.forEach(b)}}function C(e,t,n){return"\n in "+(e||"Unknown")+(t?" (at "+t.fileName.replace(/^.*[\\\/]/,"")+":"+t.lineNumber+")":n?" (created by "+n+")":"")}function E(e){return null==e?"#empty":"string"==typeof e||"number"==typeof e?"#text":"string"==typeof e.type?e.type:e.type.displayName||e.type.name||"Unknown"}function w(e){var t,n=x.getDisplayName(e),r=x.getElement(e),o=x.getOwnerID(e);return o&&(t=x.getDisplayName(o)),C(n,r&&r._source,t)}var x={onSetChildren:function(e,t){var n=o(e);n||c("144"),n.childIDs=t;for(var r=0;r<t.length;r++){var i=t[r],a=o(i);a||c("140"),null==a.childIDs&&"object"==typeof a.element&&null!=a.element&&c("141"),a.isMounted||c("71"),null==a.parentID&&(a.parentID=e),a.parentID!==e&&c("142",i,a.parentID,e)}},onBeforeMountComponent:function(e,t,n){r(e,{element:t,parentID:n,text:null,childIDs:[],isMounted:!1,updateCount:0})},onBeforeUpdateComponent:function(e,t){var n=o(e);n&&n.isMounted&&(n.element=t)},onMountComponent:function(e){var t=o(e);t||c("144"),t.isMounted=!0,0===t.parentID&&s(e)},onUpdateComponent:function(e){var t=o(e);t&&t.isMounted&&t.updateCount++},onUnmountComponent:function(e){var t=o(e);t&&(t.isMounted=!1,0===t.parentID&&u(e));_.push(e)},purgeUnmountedComponents:function(){if(!x._preventPurging){for(var e=0;e<_.length;e++){b(_[e])}_.length=0}},isMounted:function(e){var t=o(e);return!!t&&t.isMounted},getCurrentStackAddendum:function(e){var t="";if(e){var n=E(e),r=e._owner;t+=C(n,e._source,r&&r.getName())}var o=p.current,i=o&&o._debugID;return t+=x.getStackAddendumByID(i)},getStackAddendumByID:function(e){for(var t="";e;)t+=w(e),e=x.getParentID(e);return t},getChildIDs:function(e){var t=o(e);return t?t.childIDs:[]},getDisplayName:function(e){var t=x.getElement(e);return t?E(t):null},getElement:function(e){var t=o(e);return t?t.element:null},getOwnerID:function(e){var t=x.getElement(e);return t&&t._owner?t._owner._debugID:null},getParentID:function(e){var t=o(e);return t?t.parentID:null},getSource:function(e){var t=o(e),n=t?t.element:null;return null!=n?n._source:null},getText:function(e){var t=x.getElement(e);return"string"==typeof t?t:"number"==typeof t?""+t:null},getUpdateCount:function(e){var t=o(e);return t?t.updateCount:0},getRootIDs:l,getRegisteredIDs:a,pushNonStandardWarningStack:function(e,t){if("function"==typeof console.reactStack){var n=[],r=p.current,o=r&&r._debugID;try{for(e&&n.push({name:o?x.getDisplayName(o):null,fileName:t?t.fileName:null,lineNumber:t?t.lineNumber:null});o;){var i=x.getElement(o),a=x.getParentID(o),s=x.getOwnerID(o),u=s?x.getDisplayName(s):null,l=i&&i._source;n.push({name:u,fileName:l?l.fileName:null,lineNumber:l?l.lineNumber:null}),o=a}}catch(e){}console.reactStack(n)}},popNonStandardWarningStack:function(){"function"==typeof console.reactStackEnd&&console.reactStackEnd()}};e.exports=x},function(e,t,n){"use strict";var r=n(3),o=n(13),i=n(24),a=(n(6),n(148)),s=[];var u={enqueue:function(){}};function l(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.useCreateElement=!1,this.updateQueue=new a(this)}var c={getTransactionWrappers:function(){return s},getReactMountReady:function(){return u},getUpdateQueue:function(){return this.updateQueue},destructor:function(){},checkpoint:function(){},rollback:function(){}};r(l.prototype,i,c),o.addPoolingTo(l),e.exports=l},function(e,t,n){"use strict";var r=n(3),o=n(9),i=n(24),a=n(8),s={initialize:a,close:function(){p.isBatchingUpdates=!1}},u=[{initialize:a,close:o.flushBatchedUpdates.bind(o)},s];function l(){this.reinitializeTransaction()}r(l.prototype,i,{getTransactionWrappers:function(){return u}});var c=new l,p={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=p.isBatchingUpdates;return p.isBatchingUpdates=!0,a?e(t,n,r,o,i):c.perform(e,null,t,n,r,o,i)}};e.exports=p},function(e,t,n){"use strict";var r=n(8),o={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!0),{remove:function(){e.removeEventListener(t,n,!0)}}):{remove:r}},registerDefault:function(){}};e.exports=o},function(e,t,n){"use strict";var r=n(156),o=n(158),i=n(67),a=n(80);var s={hasSelectionCapabilities:function(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&"text"===e.type||"textarea"===t||"true"===e.contentEditable)},getSelectionInformation:function(){var e=a();return{focusedElem:e,selectionRange:s.hasSelectionCapabilities(e)?s.getSelection(e):null}},restoreSelection:function(e){var t,n=a(),r=e.focusedElem,u=e.selectionRange;n!==r&&(t=r,o(document.documentElement,t))&&(s.hasSelectionCapabilities(r)&&s.setSelection(r,u),i(r))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=r.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,o=t.end;if(void 0===o&&(o=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(o,e.value.length);else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var i=e.createTextRange();i.collapse(!0),i.moveStart("character",n),i.moveEnd("character",o-n),i.select()}else r.setOffsets(e,t)}};e.exports=s},function(e,t,n){"use strict";e.exports=function(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}},function(e,t,n){"use strict";var r=n(1),o=n(17),i=n(16),a=n(12),s=n(28),u=(n(10),n(4)),l=n(82),c=n(173),p=n(62),d=n(23),f=(n(6),n(83)),h=n(14),m=n(46),v=n(9),g=n(19),y=n(42),_=(n(0),n(26)),b=n(44),C=(n(2),i.ID_ATTRIBUTE_NAME),E=i.ROOT_ATTRIBUTE_NAME,w=1,x=9,k=11,S={};function T(e){return e?e.nodeType===x?e.documentElement:e.firstChild:null}function P(e,t,n,r,o){var i;if(p.logTopLevelRenders){var a=e._currentElement.props.child.type;i="React mount: "+("string"==typeof a?a:a.displayName||a.name),console.time(i)}var s=h.mountComponent(e,n,null,l(e,t),o,0);i&&console.timeEnd(i),e._renderedComponent._topLevelWrapper=e,L._mountImageIntoNode(s,t,e,r,n)}function N(e,t,n,r){var o=v.ReactReconcileTransaction.getPooled(!n&&c.useCreateElement);o.perform(P,null,e,t,o,n,r),v.ReactReconcileTransaction.release(o)}function I(e,t,n){for(0,h.unmountComponent(e,n),t.nodeType===x&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}function M(e){var t=T(e);if(t){var n=u.getInstanceFromNode(t);return!(!n||!n._hostParent)}}function O(e){return!(!e||e.nodeType!==w&&e.nodeType!==x&&e.nodeType!==k)}function A(e){var t=function(e){var t=T(e),n=t&&u.getInstanceFromNode(t);return n&&!n._hostParent?n:null}(e);return t?t._hostContainerInfo._topLevelWrapper:null}var R=1,D=function(){this.rootID=R++};D.prototype.isReactComponent={},D.prototype.render=function(){return this.props.child},D.isReactTopLevelWrapper=!0;var L={TopLevelWrapper:D,_instancesByReactRootID:S,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r,o){return L.scrollMonitor(r,function(){m.enqueueElementInternal(e,t,n),o&&m.enqueueCallbackInternal(e,o)}),e},_renderNewRootComponent:function(e,t,n,o){O(t)||r("37"),s.ensureScrollValueMonitoring();var i=y(e,!1);v.batchedUpdates(N,i,t,n,o);var a=i._instance.rootID;return S[a]=i,i},renderSubtreeIntoContainer:function(e,t,n,o){return null!=e&&d.has(e)||r("38"),L._renderSubtreeIntoContainer(e,t,n,o)},_renderSubtreeIntoContainer:function(e,t,n,o){m.validateCallback(o,"ReactDOM.render"),a.isValidElement(t)||r("39","string"==typeof t?" Instead of passing a string like 'div', pass React.createElement('div') or <div />.":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or <Foo />.":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var i,s=a.createElement(D,{child:t});if(e){var u=d.get(e);i=u._processChildContext(u._context)}else i=g;var l=A(n);if(l){var c=l._currentElement.props.child;if(b(c,t)){var p=l._renderedComponent.getPublicInstance(),f=o&&function(){o.call(p)};return L._updateRootComponent(l,s,i,n,f),p}L.unmountComponentAtNode(n)}var h,v=T(n),y=v&&!(!(h=v).getAttribute||!h.getAttribute(C)),_=M(n),E=y&&!l&&!_,w=L._renderNewRootComponent(s,n,E,i)._renderedComponent.getPublicInstance();return o&&o.call(w),w},render:function(e,t,n){return L._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){O(e)||r("40");var t=A(e);if(!t){M(e),1===e.nodeType&&e.hasAttribute(E);return!1}return delete S[t._instance.rootID],v.batchedUpdates(I,t,e,!1),!0},_mountImageIntoNode:function(e,t,n,i,a){if(O(t)||r("41"),i){var s=T(t);if(f.canReuseMarkup(e,s))return void u.precacheNode(n,s);var l=s.getAttribute(f.CHECKSUM_ATTR_NAME);s.removeAttribute(f.CHECKSUM_ATTR_NAME);var c=s.outerHTML;s.setAttribute(f.CHECKSUM_ATTR_NAME,l);var p=e,d=function(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}(p,c),h=" (client) "+p.substring(d-20,d+20)+"\n (server) "+c.substring(d-20,d+20);t.nodeType===x&&r("42",h)}if(t.nodeType===x&&r("43"),a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);o.insertTreeBefore(t,e,null)}else _(t,e),u.precacheNode(n,t.firstChild)}};e.exports=L},function(e,t,n){"use strict";n(47);var r=9;e.exports=function(e,t){return{_topLevelWrapper:e,_idCounter:1,_ownerDocument:t?t.nodeType===r?t:t.ownerDocument:null,_node:t,_tag:t?t.nodeName.toLowerCase():null,_namespaceURI:t?t.namespaceURI:null}}},function(e,t,n){"use strict";var r=n(174),o=/\/?>/,i=/^<\!\-\-/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return i.test(e)?e:e.replace(o," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);return n=n&&parseInt(n,10),r(e)===n}};e.exports=a},function(e,t,n){"use strict";e.exports="15.6.2"},function(e,t,n){"use strict";var r=n(71);e.exports=function(e){for(var t;(t=e._renderedNodeType)===r.COMPOSITE;)e=e._renderedComponent;return t===r.HOST?e._renderedComponent:t===r.EMPTY?null:void 0}},function(e,t,n){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return e.apply(t,n)}}},function(e,t,n){"use strict";var r=n(7),o=n(190),i=n(192),a=n(193),s=n(194),u=n(88),l="undefined"!=typeof window&&window.btoa&&window.btoa.bind(window)||n(195);e.exports=function(e){return new Promise(function(t,c){var p=e.data,d=e.headers;r.isFormData(p)&&delete d["Content-Type"];var f=new XMLHttpRequest,h="onreadystatechange",m=!1;if("undefined"==typeof window||!window.XDomainRequest||"withCredentials"in f||s(e.url)||(f=new window.XDomainRequest,h="onload",m=!0,f.onprogress=function(){},f.ontimeout=function(){}),e.auth){var v=e.auth.username||"",g=e.auth.password||"";d.Authorization="Basic "+l(v+":"+g)}if(f.open(e.method.toUpperCase(),i(e.url,e.params,e.paramsSerializer),!0),f.timeout=e.timeout,f[h]=function(){if(f&&(4===f.readyState||m)&&(0!==f.status||f.responseURL&&0===f.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in f?a(f.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?f.response:f.responseText,status:1223===f.status?204:f.status,statusText:1223===f.status?"No Content":f.statusText,headers:n,config:e,request:f};o(t,c,r),f=null}},f.onerror=function(){c(u("Network Error",e,null,f)),f=null},f.ontimeout=function(){c(u("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",f)),f=null},r.isStandardBrowserEnv()){var y=n(196),_=(e.withCredentials||s(e.url))&&e.xsrfCookieName?y.read(e.xsrfCookieName):void 0;_&&(d[e.xsrfHeaderName]=_)}if("setRequestHeader"in f&&r.forEach(d,function(e,t){void 0===p&&"content-type"===t.toLowerCase()?delete d[t]:f.setRequestHeader(t,e)}),e.withCredentials&&(f.withCredentials=!0),e.responseType)try{f.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&f.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&f.upload&&f.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){f&&(f.abort(),c(e),f=null)}),void 0===p&&(p=null),f.send(p)})}},function(e,t,n){"use strict";var r=n(191);e.exports=function(e,t,n,o,i){var a=new Error(e);return r(a,t,n,o,i)}},function(e,t,n){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,t,n){"use strict";e.exports=n(107)},function(e,t,n){"use strict";e.exports=function(){}},function(e,t,n){"use strict";var r=n(94),o=n(15),i=n(8),a=n(95),s=r.twoArgumentPooler,u=r.fourArgumentPooler,l=/\/+/g;function c(e){return(""+e).replace(l,"$&/")}function p(e,t){this.func=e,this.context=t,this.count=0}function d(e,t,n){var r=e.func,o=e.context;r.call(o,t,e.count++)}function f(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function h(e,t,n){var r=e.result,a=e.keyPrefix,s=e.func,u=e.context,l=s.call(u,t,e.count++);Array.isArray(l)?m(l,r,n,i.thatReturnsArgument):null!=l&&(o.isValidElement(l)&&(l=o.cloneAndReplaceKey(l,a+(!l.key||t&&t.key===l.key?"":c(l.key)+"/")+n)),r.push(l))}function m(e,t,n,r,o){var i="";null!=n&&(i=c(n)+"/");var s=f.getPooled(t,i,r,o);a(e,h,s),f.release(s)}function v(e,t,n){return null}p.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},r.addPoolingTo(p,s),f.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},r.addPoolingTo(f,u);var g={forEach:function(e,t,n){if(null==e)return e;var r=p.getPooled(t,n);a(e,d,r),p.release(r)},map:function(e,t,n){if(null==e)return e;var r=[];return m(e,r,null,t,n),r},mapIntoWithKeyPrefixInternal:m,count:function(e,t){return a(e,v,null)},toArray:function(e){var t=[];return m(e,t,null,i.thatReturnsArgument),t}};e.exports=g},function(e,t,n){"use strict";var r=n(18),o=(n(0),function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)}),i=function(e){e instanceof this||r("25"),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)},a=o,s={addPoolingTo:function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||a,n.poolSize||(n.poolSize=10),n.release=i,n},oneArgumentPooler:o,twoArgumentPooler:function(e,t){if(this.instancePool.length){var n=this.instancePool.pop();return this.call(n,e,t),n}return new this(e,t)},threeArgumentPooler:function(e,t,n){if(this.instancePool.length){var r=this.instancePool.pop();return this.call(r,e,t,n),r}return new this(e,t,n)},fourArgumentPooler:function(e,t,n,r){if(this.instancePool.length){var o=this.instancePool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)}};e.exports=s},function(e,t,n){"use strict";var r=n(18),o=(n(10),n(54)),i=n(96),a=(n(0),n(97)),s=(n(2),"."),u=":";function l(e,t){return e&&"object"==typeof e&&null!=e.key?a.escape(e.key):t.toString(36)}e.exports=function(e,t,n){return null==e?0:function e(t,n,c,p){var d,f=typeof t;if("undefined"!==f&&"boolean"!==f||(t=null),null===t||"string"===f||"number"===f||"object"===f&&t.$$typeof===o)return c(p,t,""===n?s+l(t,0):n),1;var h=0,m=""===n?s:n+u;if(Array.isArray(t))for(var v=0;v<t.length;v++)h+=e(d=t[v],m+l(d,v),c,p);else{var g=i(t);if(g){var y,_=g.call(t);if(g!==t.entries)for(var b=0;!(y=_.next()).done;)h+=e(d=y.value,m+l(d,b++),c,p);else for(;!(y=_.next()).done;){var C=y.value;C&&(h+=e(d=C[1],m+a.escape(C[0])+u+l(d,0),c,p))}}else if("object"===f){var E=String(t);r("31","[object Object]"===E?"object with keys {"+Object.keys(t).join(", ")+"}":E,"")}}return h}(e,"",t,n)}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.iterator,o="@@iterator";e.exports=function(e){var t=e&&(r&&e[r]||e[o]);if("function"==typeof t)return t}},function(e,t,n){"use strict";var r={escape:function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})},unescape:function(e){var t={"=0":"=","=2":":"};return(""+("."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1))).replace(/(=0|=2)/g,function(e){return t[e]})}};e.exports=r},function(e,t,n){"use strict";var r=n(15).createFactory,o={a:r("a"),abbr:r("abbr"),address:r("address"),area:r("area"),article:r("article"),aside:r("aside"),audio:r("audio"),b:r("b"),base:r("base"),bdi:r("bdi"),bdo:r("bdo"),big:r("big"),blockquote:r("blockquote"),body:r("body"),br:r("br"),button:r("button"),canvas:r("canvas"),caption:r("caption"),cite:r("cite"),code:r("code"),col:r("col"),colgroup:r("colgroup"),data:r("data"),datalist:r("datalist"),dd:r("dd"),del:r("del"),details:r("details"),dfn:r("dfn"),dialog:r("dialog"),div:r("div"),dl:r("dl"),dt:r("dt"),em:r("em"),embed:r("embed"),fieldset:r("fieldset"),figcaption:r("figcaption"),figure:r("figure"),footer:r("footer"),form:r("form"),h1:r("h1"),h2:r("h2"),h3:r("h3"),h4:r("h4"),h5:r("h5"),h6:r("h6"),head:r("head"),header:r("header"),hgroup:r("hgroup"),hr:r("hr"),html:r("html"),i:r("i"),iframe:r("iframe"),img:r("img"),input:r("input"),ins:r("ins"),kbd:r("kbd"),keygen:r("keygen"),label:r("label"),legend:r("legend"),li:r("li"),link:r("link"),main:r("main"),map:r("map"),mark:r("mark"),menu:r("menu"),menuitem:r("menuitem"),meta:r("meta"),meter:r("meter"),nav:r("nav"),noscript:r("noscript"),object:r("object"),ol:r("ol"),optgroup:r("optgroup"),option:r("option"),output:r("output"),p:r("p"),param:r("param"),picture:r("picture"),pre:r("pre"),progress:r("progress"),q:r("q"),rp:r("rp"),rt:r("rt"),ruby:r("ruby"),s:r("s"),samp:r("samp"),script:r("script"),section:r("section"),select:r("select"),small:r("small"),source:r("source"),span:r("span"),strong:r("strong"),style:r("style"),sub:r("sub"),summary:r("summary"),sup:r("sup"),table:r("table"),tbody:r("tbody"),td:r("td"),textarea:r("textarea"),tfoot:r("tfoot"),th:r("th"),thead:r("thead"),time:r("time"),title:r("title"),tr:r("tr"),track:r("track"),u:r("u"),ul:r("ul"),var:r("var"),video:r("video"),wbr:r("wbr"),circle:r("circle"),clipPath:r("clipPath"),defs:r("defs"),ellipse:r("ellipse"),g:r("g"),image:r("image"),line:r("line"),linearGradient:r("linearGradient"),mask:r("mask"),path:r("path"),pattern:r("pattern"),polygon:r("polygon"),polyline:r("polyline"),radialGradient:r("radialGradient"),rect:r("rect"),stop:r("stop"),svg:r("svg"),text:r("text"),tspan:r("tspan")};e.exports=o},function(e,t,n){"use strict";var r=n(15).isValidElement,o=n(55);e.exports=o(r)},function(e,t,n){"use strict";var r=n(8),o=n(0),i=n(2),a=n(3),s=n(101),u=n(102);e.exports=function(e,t){var n="function"==typeof Symbol&&Symbol.iterator,l="@@iterator";var c="<<anonymous>>",p={array:m("array"),bool:m("boolean"),func:m("function"),number:m("number"),object:m("object"),string:m("string"),symbol:m("symbol"),any:h(r.thatReturnsNull),arrayOf:function(e){return h(function(t,n,r,o,i){if("function"!=typeof e)return new f("Property `"+i+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var a=t[n];if(!Array.isArray(a)){var u=g(a);return new f("Invalid "+o+" `"+i+"` of type `"+u+"` supplied to `"+r+"`, expected an array.")}for(var l=0;l<a.length;l++){var c=e(a,l,r,o,i+"["+l+"]",s);if(c instanceof Error)return c}return null})},element:function(){return h(function(t,n,r,o,i){var a=t[n];if(!e(a)){var s=g(a);return new f("Invalid "+o+" `"+i+"` of type `"+s+"` supplied to `"+r+"`, expected a single ReactElement.")}return null})}(),instanceOf:function(e){return h(function(t,n,r,o,i){if(!(t[n]instanceof e)){var a=e.name||c,s=function(e){if(!e.constructor||!e.constructor.name)return c;return e.constructor.name}(t[n]);return new f("Invalid "+o+" `"+i+"` of type `"+s+"` supplied to `"+r+"`, expected instance of `"+a+"`.")}return null})},node:function(){return h(function(e,t,n,r,o){if(!v(e[t]))return new f("Invalid "+r+" `"+o+"` supplied to `"+n+"`, expected a ReactNode.");return null})}(),objectOf:function(e){return h(function(t,n,r,o,i){if("function"!=typeof e)return new f("Property `"+i+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var a=t[n],u=g(a);if("object"!==u)return new f("Invalid "+o+" `"+i+"` of type `"+u+"` supplied to `"+r+"`, expected an object.");for(var l in a)if(a.hasOwnProperty(l)){var c=e(a,l,r,o,i+"."+l,s);if(c instanceof Error)return c}return null})},oneOf:function(e){if(!Array.isArray(e))return r.thatReturnsNull;return h(function(t,n,r,o,i){for(var a=t[n],s=0;s<e.length;s++)if(d(a,e[s]))return null;var u=JSON.stringify(e);return new f("Invalid "+o+" `"+i+"` of value `"+a+"` supplied to `"+r+"`, expected one of "+u+".")})},oneOfType:function(e){if(!Array.isArray(e))return r.thatReturnsNull;for(var t=0;t<e.length;t++){var n=e[t];if("function"!=typeof n)return i(!1,"Invalid argument supplied to oneOfType. Expected an array of check functions, but received %s at index %s.",_(n),t),r.thatReturnsNull}return h(function(t,n,r,o,i){for(var a=0;a<e.length;a++){var u=e[a];if(null==u(t,n,r,o,i,s))return null}return new f("Invalid "+o+" `"+i+"` supplied to `"+r+"`.")})},shape:function(e){return h(function(t,n,r,o,i){var a=t[n],u=g(a);if("object"!==u)return new f("Invalid "+o+" `"+i+"` of type `"+u+"` supplied to `"+r+"`, expected `object`.");for(var l in e){var c=e[l];if(c){var p=c(a,l,r,o,i+"."+l,s);if(p)return p}}return null})},exact:function(e){return h(function(t,n,r,o,i){var u=t[n],l=g(u);if("object"!==l)return new f("Invalid "+o+" `"+i+"` of type `"+l+"` supplied to `"+r+"`, expected `object`.");var c=a({},t[n],e);for(var p in c){var d=e[p];if(!d)return new f("Invalid "+o+" `"+i+"` key `"+p+"` supplied to `"+r+"`.\nBad object: "+JSON.stringify(t[n],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null," "));var h=d(u,p,r,o,i+"."+p,s);if(h)return h}return null})}};function d(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function f(e){this.message=e,this.stack=""}function h(e){function n(n,r,i,a,u,l,p){(a=a||c,l=l||i,p!==s)&&(t&&o(!1,"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"));return null==r[i]?n?null===r[i]?new f("The "+u+" `"+l+"` is marked as required in `"+a+"`, but its value is `null`."):new f("The "+u+" `"+l+"` is marked as required in `"+a+"`, but its value is `undefined`."):null:e(r,i,a,u,l)}var r=n.bind(null,!1);return r.isRequired=n.bind(null,!0),r}function m(e){return h(function(t,n,r,o,i,a){var s=t[n];return g(s)!==e?new f("Invalid "+o+" `"+i+"` of type `"+y(s)+"` supplied to `"+r+"`, expected `"+e+"`."):null})}function v(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(v);if(null===t||e(t))return!0;var r=function(e){var t=e&&(n&&e[n]||e[l]);if("function"==typeof t)return t}(t);if(!r)return!1;var o,i=r.call(t);if(r!==t.entries){for(;!(o=i.next()).done;)if(!v(o.value))return!1}else for(;!(o=i.next()).done;){var a=o.value;if(a&&!v(a[1]))return!1}return!0;default:return!1}}function g(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,t){return"symbol"===e||"Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol}(t,e)?"symbol":t}function y(e){if(null==e)return""+e;var t=g(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function _(e){var t=y(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}return f.prototype=Error.prototype,p.checkPropTypes=u,p.PropTypes=p,p}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";e.exports=function(e,t,n,r,o){}},function(e,t,n){"use strict";e.exports="15.6.2"},function(e,t,n){"use strict";var r=n(51).Component,o=n(15).isValidElement,i=n(52),a=n(105);e.exports=a(r,o,i)},function(e,t,n){"use strict";var r=n(3),o=n(19),i=n(0),a="mixins";e.exports=function(e,t,n){var s=[],u={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},l={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)p(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=r({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=r({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=f(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=r({},e.propTypes,t)},statics:function(e,t){!function(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in l;i(!o,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n);var a=n in e;i(!a,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),e[n]=r}}}(e,t)},autobind:function(){}};function c(e,t){var n=u.hasOwnProperty(t)?u[t]:null;y.hasOwnProperty(t)&&i("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&i("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function p(e,n){if(n){i("function"!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),i(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=e.prototype,o=r.__reactAutoBindPairs;for(var s in n.hasOwnProperty(a)&&l.mixins(e,n.mixins),n)if(n.hasOwnProperty(s)&&s!==a){var p=n[s],d=r.hasOwnProperty(s);if(c(d,s),l.hasOwnProperty(s))l[s](e,p);else{var m=u.hasOwnProperty(s);if("function"!=typeof p||m||d||!1===n.autobind)if(d){var v=u[s];i(m&&("DEFINE_MANY_MERGED"===v||"DEFINE_MANY"===v),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",v,s),"DEFINE_MANY_MERGED"===v?r[s]=f(r[s],p):"DEFINE_MANY"===v&&(r[s]=h(r[s],p))}else r[s]=p;else o.push(s,p),r[s]=p}}}}function d(e,t){for(var n in i(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects."),t)t.hasOwnProperty(n)&&(i(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function f(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return d(o,n),d(o,r),o}}function h(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function m(e,t){return t.bind(e)}var v={componentDidMount:function(){this.__isMounted=!0}},g={componentWillUnmount:function(){this.__isMounted=!1}},y={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},_=function(){};return r(_.prototype,e.prototype,y),function(e){var t=function(e,r,a){this.__reactAutoBindPairs.length&&function(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],o=t[n+1];e[r]=m(e,o)}}(this),this.props=e,this.context=r,this.refs=o,this.updater=a||n,this.state=null;var s=this.getInitialState?this.getInitialState():null;i("object"==typeof s&&!Array.isArray(s),"%s.getInitialState(): must return an object or null",t.displayName||"ReactCompositeComponent"),this.state=s};for(var r in t.prototype=new _,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],s.forEach(p.bind(null,t)),p(t,v),p(t,e),p(t,g),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),i(t.prototype.render,"createClass(...): Class specification must implement a `render` method."),u)t.prototype[r]||(t.prototype[r]=null);return t}}},function(e,t,n){"use strict";var r=n(18),o=n(15);n(0);e.exports=function(e){return o.isValidElement(e)||r("143"),e}},function(e,t,n){"use strict";var r=n(4),o=n(57),i=n(81),a=n(14),s=n(9),u=n(84),l=n(175),c=n(85),p=n(176);n(2);o.inject();var d={findDOMNode:l,render:i.render,unmountComponentAtNode:i.unmountComponentAtNode,version:u,unstable_batchedUpdates:s.batchedUpdates,unstable_renderSubtreeIntoContainer:p};"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ComponentTree:{getClosestInstanceFromNode:r.getClosestInstanceFromNode,getNodeFromInstance:function(e){return e._renderedComponent&&(e=c(e)),e?r.getNodeFromInstance(e):null}},Mount:i,Reconciler:a}),e.exports=d},function(e,t,n){"use strict";e.exports={Properties:{"aria-current":0,"aria-details":0,"aria-disabled":0,"aria-hidden":0,"aria-invalid":0,"aria-keyshortcuts":0,"aria-label":0,"aria-roledescription":0,"aria-autocomplete":0,"aria-checked":0,"aria-expanded":0,"aria-haspopup":0,"aria-level":0,"aria-modal":0,"aria-multiline":0,"aria-multiselectable":0,"aria-orientation":0,"aria-placeholder":0,"aria-pressed":0,"aria-readonly":0,"aria-required":0,"aria-selected":0,"aria-sort":0,"aria-valuemax":0,"aria-valuemin":0,"aria-valuenow":0,"aria-valuetext":0,"aria-atomic":0,"aria-busy":0,"aria-live":0,"aria-relevant":0,"aria-dropeffect":0,"aria-grabbed":0,"aria-activedescendant":0,"aria-colcount":0,"aria-colindex":0,"aria-colspan":0,"aria-controls":0,"aria-describedby":0,"aria-errormessage":0,"aria-flowto":0,"aria-labelledby":0,"aria-owns":0,"aria-posinset":0,"aria-rowcount":0,"aria-rowindex":0,"aria-rowspan":0,"aria-setsize":0},DOMAttributeNames:{},DOMPropertyNames:{}}},function(e,t,n){"use strict";var r=n(20),o=n(5),i=n(110),a=n(111),s=n(112),u=[9,13,27,32],l=229,c=o.canUseDOM&&"CompositionEvent"in window,p=null;o.canUseDOM&&"documentMode"in document&&(p=document.documentMode);var d,f=o.canUseDOM&&"TextEvent"in window&&!p&&!("object"==typeof(d=window.opera)&&"function"==typeof d.version&&parseInt(d.version(),10)<=12),h=o.canUseDOM&&(!c||p&&p>8&&p<=11);var m=32,v=String.fromCharCode(m),g={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},y=!1;function _(e,t){switch(e){case"topKeyUp":return-1!==u.indexOf(t.keyCode);case"topKeyDown":return t.keyCode!==l;case"topKeyPress":case"topMouseDown":case"topBlur":return!0;default:return!1}}function b(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}var C=null;function E(e,t,n,o){var s,u;if(c?s=function(e){switch(e){case"topCompositionStart":return g.compositionStart;case"topCompositionEnd":return g.compositionEnd;case"topCompositionUpdate":return g.compositionUpdate}}(e):C?_(e,n)&&(s=g.compositionEnd):function(e,t){return"topKeyDown"===e&&t.keyCode===l}(e,n)&&(s=g.compositionStart),!s)return null;h&&(C||s!==g.compositionStart?s===g.compositionEnd&&C&&(u=C.getData()):C=i.getPooled(o));var p=a.getPooled(s,t,n,o);if(u)p.data=u;else{var d=b(n);null!==d&&(p.data=d)}return r.accumulateTwoPhaseDispatches(p),p}function w(e,t,n,o){var a;if(!(a=f?function(e,t){switch(e){case"topCompositionEnd":return b(t);case"topKeyPress":return t.which!==m?null:(y=!0,v);case"topTextInput":var n=t.data;return n===v&&y?null:n;default:return null}}(e,n):function(e,t){if(C){if("topCompositionEnd"===e||!c&&_(e,t)){var n=C.getData();return i.release(C),C=null,n}return null}switch(e){case"topPaste":return null;case"topKeyPress":return t.which&&!function(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}(t)?String.fromCharCode(t.which):null;case"topCompositionEnd":return h?null:t.data;default:return null}}(e,n)))return null;var u=s.getPooled(g.beforeInput,t,n,o);return u.data=a,r.accumulateTwoPhaseDispatches(u),u}var x={eventTypes:g,extractEvents:function(e,t,n,r){return[E(e,t,n,r),w(e,t,n,r)]}};e.exports=x},function(e,t,n){"use strict";var r=n(3),o=n(13),i=n(60);function a(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}r(a.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[i()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,o=this.getText(),i=o.length;for(e=0;e<r&&n[e]===o[e];e++);var a=r-e;for(t=1;t<=a&&n[r-t]===o[i-t];t++);var s=t>1?1-t:void 0;return this._fallbackText=o.slice(e,s),this._fallbackText}}),o.addPoolingTo(a),e.exports=a},function(e,t,n){"use strict";var r=n(11);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{data:null}),e.exports=o},function(e,t,n){"use strict";var r=n(11);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{data:null}),e.exports=o},function(e,t,n){"use strict";var r=n(21),o=n(20),i=n(5),a=n(4),s=n(9),u=n(11),l=n(63),c=n(34),p=n(35),d=n(64),f={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}};function h(e,t,n){var r=u.getPooled(f.change,e,t,n);return r.type="change",o.accumulateTwoPhaseDispatches(r),r}var m=null,v=null;var g=!1;function y(e){var t=h(v,e,c(e));s.batchedUpdates(_,t)}function _(e){r.enqueueEvents(e),r.processEventQueue(!1)}function b(){m&&(m.detachEvent("onchange",y),m=null,v=null)}function C(e,t){var n=l.updateValueIfChanged(e),r=!0===t.simulated&&M._allowSimulatedPassThrough;if(n||r)return e}function E(e,t){if("topChange"===e)return t}function w(e,t,n){"topFocus"===e?(b(),function(e,t){v=t,(m=e).attachEvent("onchange",y)}(t,n)):"topBlur"===e&&b()}i.canUseDOM&&(g=p("change")&&(!document.documentMode||document.documentMode>8));var x=!1;function k(){m&&(m.detachEvent("onpropertychange",S),m=null,v=null)}function S(e){"value"===e.propertyName&&C(v,e)&&y(e)}function T(e,t,n){"topFocus"===e?(k(),function(e,t){v=t,(m=e).attachEvent("onpropertychange",S)}(t,n)):"topBlur"===e&&k()}function P(e,t,n){if("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)return C(v,n)}function N(e,t,n){if("topClick"===e)return C(t,n)}function I(e,t,n){if("topInput"===e||"topChange"===e)return C(t,n)}i.canUseDOM&&(x=p("input")&&(!document.documentMode||document.documentMode>9));var M={eventTypes:f,_allowSimulatedPassThrough:!0,_isInputEventSupported:x,extractEvents:function(e,t,n,r){var o,i,s,u,l=t?a.getNodeFromInstance(t):window;if("select"===(u=(s=l).nodeName&&s.nodeName.toLowerCase())||"input"===u&&"file"===s.type?g?o=E:i=w:d(l)?x?o=I:(o=P,i=T):function(e){var t=e.nodeName;return t&&"input"===t.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}(l)&&(o=N),o){var c=o(e,t,n);if(c)return h(c,n,r)}i&&i(e,l,t),"topBlur"===e&&function(e,t){if(null!=e){var n=e._wrapperState||t._wrapperState;if(n&&n.controlled&&"number"===t.type){var r=""+t.value;t.getAttribute("value")!==r&&t.setAttribute("value",r)}}}(t,l)}};e.exports=M},function(e,t,n){"use strict";var r=n(115),o={};o.attachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&function(e,t,n){"function"==typeof e?e(t.getPublicInstance()):r.addComponentAsRefTo(t,e,n)}(n,e,t._owner)}},o.shouldUpdateRefs=function(e,t){var n=null,r=null;null!==e&&"object"==typeof e&&(n=e.ref,r=e._owner);var o=null,i=null;return null!==t&&"object"==typeof t&&(o=t.ref,i=t._owner),n!==o||"string"==typeof o&&i!==r},o.detachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&function(e,t,n){"function"==typeof e?e(null):r.removeComponentAsRefFrom(t,e,n)}(n,e,t._owner)}},e.exports=o},function(e,t,n){"use strict";var r=n(1);n(0);function o(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)}var i={addComponentAsRefTo:function(e,t,n){o(n)||r("119"),n.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,n){o(n)||r("120");var i=n.getPublicInstance();i&&i.refs[t]===e.getPublicInstance()&&n.detachRef(t)}};e.exports=i},function(e,t,n){"use strict";e.exports=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"]},function(e,t,n){"use strict";var r=n(20),o=n(4),i=n(25),a={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},s={eventTypes:a,extractEvents:function(e,t,n,s){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var u,l,c;if(s.window===s)u=s;else{var p=s.ownerDocument;u=p?p.defaultView||p.parentWindow:window}if("topMouseOut"===e){l=t;var d=n.relatedTarget||n.toElement;c=d?o.getClosestInstanceFromNode(d):null}else l=null,c=t;if(l===c)return null;var f=null==l?u:o.getNodeFromInstance(l),h=null==c?u:o.getNodeFromInstance(c),m=i.getPooled(a.mouseLeave,l,n,s);m.type="mouseleave",m.target=f,m.relatedTarget=h;var v=i.getPooled(a.mouseEnter,c,n,s);return v.type="mouseenter",v.target=h,v.relatedTarget=f,r.accumulateEnterLeaveDispatches(m,v,l,c),[m,v]}};e.exports=s},function(e,t,n){"use strict";var r=n(16),o=r.injection.MUST_USE_PROPERTY,i=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,s=r.injection.HAS_POSITIVE_NUMERIC_VALUE,u=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,l={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:i,allowTransparency:0,alt:0,as:0,async:i,autoComplete:0,autoPlay:i,capture:i,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|i,cite:0,classID:0,className:0,cols:s,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:i,controlsList:0,coords:0,crossOrigin:0,data:0,dateTime:0,default:i,defer:i,dir:0,disabled:i,download:u,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:i,formTarget:0,frameBorder:0,headers:0,height:0,hidden:i,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:i,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|i,muted:o|i,name:0,nonce:0,noValidate:i,open:i,optimum:0,pattern:0,placeholder:0,playsInline:i,poster:0,preload:0,profile:0,radioGroup:0,readOnly:i,referrerPolicy:0,rel:0,required:i,reversed:i,role:0,rows:s,rowSpan:a,sandbox:0,scope:0,scoped:i,scrolling:0,seamless:i,selected:o|i,shape:0,size:s,sizes:0,span:s,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:i,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{},DOMMutationMethods:{value:function(e,t){if(null==t)return e.removeAttribute("value");"number"!==e.type||!1===e.hasAttribute("value")?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t)}}};e.exports=l},function(e,t,n){"use strict";var r=n(37),o={processChildrenUpdates:n(124).dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};e.exports=o},function(e,t,n){"use strict";var r=n(1),o=n(17),i=n(5),a=n(121),s=n(8),u=(n(0),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(i.canUseDOM||r("56"),t||r("57"),"HTML"===e.nodeName&&r("58"),"string"==typeof t){var n=a(t,s)[0];e.parentNode.replaceChild(n,e)}else o.replaceChildWithTree(e,t)}});e.exports=u},function(e,t,n){"use strict";var r=n(5),o=n(122),i=n(123),a=n(0),s=r.canUseDOM?document.createElement("div"):null,u=/^\s*<(\w+)/;e.exports=function(e,t){var n=s;s||a(!1);var r=function(e){var t=e.match(u);return t&&t[1].toLowerCase()}(e),l=r&&i(r);if(l){n.innerHTML=l[1]+e+l[2];for(var c=l[0];c--;)n=n.lastChild}else n.innerHTML=e;var p=n.getElementsByTagName("script");p.length&&(t||a(!1),o(p).forEach(t));for(var d=Array.from(n.childNodes);n.lastChild;)n.removeChild(n.lastChild);return d}},function(e,t,n){"use strict";var r=n(0);e.exports=function(e){return function(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"length"in e&&!("setInterval"in e)&&"number"!=typeof e.nodeType&&(Array.isArray(e)||"callee"in e||"item"in e)}(e)?Array.isArray(e)?e.slice():function(e){var t=e.length;if((Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e)&&r(!1),"number"!=typeof t&&r(!1),0===t||t-1 in e||r(!1),"function"==typeof e.callee&&r(!1),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(e){}for(var n=Array(t),o=0;o<t;o++)n[o]=e[o];return n}(e):[e]}},function(e,t,n){"use strict";var r=n(5),o=n(0),i=r.canUseDOM?document.createElement("div"):null,a={},s=[1,'<select multiple="true">',"</select>"],u=[1,"<table>","</table>"],l=[3,"<table><tbody><tr>","</tr></tbody></table>"],c=[1,'<svg xmlns="http://www.w3.org/2000/svg">',"</svg>"],p={"*":[1,"?<div>","</div>"],area:[1,"<map>","</map>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],param:[1,"<object>","</object>"],tr:[2,"<table><tbody>","</tbody></table>"],optgroup:s,option:s,caption:u,colgroup:u,tbody:u,tfoot:u,thead:u,td:l,th:l};["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"].forEach(function(e){p[e]=c,a[e]=!0}),e.exports=function(e){return i||o(!1),p.hasOwnProperty(e)||(e="*"),a.hasOwnProperty(e)||(i.innerHTML="*"===e?"<link />":"<"+e+"></"+e+">",a[e]=!i.firstChild),a[e]?p[e]:null}},function(e,t,n){"use strict";var r=n(37),o=n(4),i={dangerouslyProcessChildrenUpdates:function(e,t){var n=o.getNodeFromInstance(e);r.processUpdates(n,t)}};e.exports=i},function(e,t,n){"use strict";var r=n(1),o=n(3),i=n(126),a=n(127),s=n(17),u=n(38),l=n(16),c=n(69),p=n(21),d=n(31),f=n(28),h=n(56),m=n(4),v=n(137),g=n(139),y=n(70),_=n(140),b=(n(6),n(141)),C=n(76),E=(n(8),n(27)),w=(n(0),n(35),n(43),n(63)),x=(n(47),n(2),h),k=p.deleteListener,S=m.getNodeFromInstance,T=f.listenTo,P=d.registrationNameModules,N={string:!0,number:!0},I="__html",M={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},O=11;function A(e,t){t&&(z[e._tag]&&(null!=t.children||null!=t.dangerouslySetInnerHTML)&&r("137",e._tag,e._currentElement._owner?" Check the render method of "+e._currentElement._owner.getName()+".":""),null!=t.dangerouslySetInnerHTML&&(null!=t.children&&r("60"),"object"==typeof t.dangerouslySetInnerHTML&&I in t.dangerouslySetInnerHTML||r("61")),null!=t.style&&"object"!=typeof t.style&&r("62",function(e){if(e){var t=e._currentElement._owner||null;if(t){var n=t.getName();if(n)return" This DOM node was rendered by `"+n+"`."}}return""}(e)))}function R(e,t,n,r){if(!(r instanceof C)){0;var o=e._hostContainerInfo,i=o._node&&o._node.nodeType===O?o._node:o._ownerDocument;T(t,i),r.getReactMountReady().enqueue(D,{inst:e,registrationName:t,listener:n})}}function D(){p.putListener(this.inst,this.registrationName,this.listener)}function L(){v.postMountWrapper(this)}function U(){_.postMountWrapper(this)}function j(){g.postMountWrapper(this)}var F={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"};function B(){w.track(this)}function q(){this._rootNodeID||r("63");var e=S(this);switch(e||r("64"),this._tag){case"iframe":case"object":this._wrapperState.listeners=[f.trapBubbledEvent("topLoad","load",e)];break;case"video":case"audio":for(var t in this._wrapperState.listeners=[],F)F.hasOwnProperty(t)&&this._wrapperState.listeners.push(f.trapBubbledEvent(t,F[t],e));break;case"source":this._wrapperState.listeners=[f.trapBubbledEvent("topError","error",e)];break;case"img":this._wrapperState.listeners=[f.trapBubbledEvent("topError","error",e),f.trapBubbledEvent("topLoad","load",e)];break;case"form":this._wrapperState.listeners=[f.trapBubbledEvent("topReset","reset",e),f.trapBubbledEvent("topSubmit","submit",e)];break;case"input":case"select":case"textarea":this._wrapperState.listeners=[f.trapBubbledEvent("topInvalid","invalid",e)]}}function V(){y.postUpdateWrapper(this)}var W={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},H={listing:!0,pre:!0,textarea:!0},z=o({menuitem:!0},W),K=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,Y={},X={}.hasOwnProperty;function G(e,t){return e.indexOf("-")>=0||null!=t.is}var Q=1;function $(e){var t=e.type;!function(e){X.call(Y,e)||(K.test(e)||r("65",e),Y[e]=!0)}(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}$.displayName="ReactDOMComponent",$.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=Q++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var o,a,l,p=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(q,this);break;case"input":v.mountWrapper(this,p,t),p=v.getHostProps(this,p),e.getReactMountReady().enqueue(B,this),e.getReactMountReady().enqueue(q,this);break;case"option":g.mountWrapper(this,p,t),p=g.getHostProps(this,p);break;case"select":y.mountWrapper(this,p,t),p=y.getHostProps(this,p),e.getReactMountReady().enqueue(q,this);break;case"textarea":_.mountWrapper(this,p,t),p=_.getHostProps(this,p),e.getReactMountReady().enqueue(B,this),e.getReactMountReady().enqueue(q,this)}if(A(this,p),null!=t?(o=t._namespaceURI,a=t._tag):n._tag&&(o=n._namespaceURI,a=n._tag),(null==o||o===u.svg&&"foreignobject"===a)&&(o=u.html),o===u.html&&("svg"===this._tag?o=u.svg:"math"===this._tag&&(o=u.mathml)),this._namespaceURI=o,e.useCreateElement){var d,f=n._ownerDocument;if(o===u.html)if("script"===this._tag){var h=f.createElement("div"),b=this._currentElement.type;h.innerHTML="<"+b+"></"+b+">",d=h.removeChild(h.firstChild)}else d=p.is?f.createElement(this._currentElement.type,p.is):f.createElement(this._currentElement.type);else d=f.createElementNS(o,this._currentElement.type);m.precacheNode(this,d),this._flags|=x.hasCachedChildNodes,this._hostParent||c.setAttributeForRoot(d),this._updateDOMProperties(null,p,e);var C=s(d);this._createInitialChildren(e,p,r,C),l=C}else{var E=this._createOpenTagMarkupAndPutListeners(e,p),w=this._createContentMarkup(e,p,r);l=!w&&W[this._tag]?E+"/>":E+">"+w+"</"+this._currentElement.type+">"}switch(this._tag){case"input":e.getReactMountReady().enqueue(L,this),p.autoFocus&&e.getReactMountReady().enqueue(i.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(U,this),p.autoFocus&&e.getReactMountReady().enqueue(i.focusDOMComponent,this);break;case"select":case"button":p.autoFocus&&e.getReactMountReady().enqueue(i.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(j,this)}return l},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var i=t[r];if(null!=i)if(P.hasOwnProperty(r))i&&R(this,r,i,e);else{"style"===r&&(i&&(i=this._previousStyleCopy=o({},t.style)),i=a.createMarkupForStyles(i,this));var s=null;null!=this._tag&&G(this._tag,t)?M.hasOwnProperty(r)||(s=c.createMarkupForCustomAttribute(r,i)):s=c.createMarkupForProperty(r,i),s&&(n+=" "+s)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+c.createMarkupForRoot()),n+=" "+c.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var i=N[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)r=E(i);else if(null!=a){r=this.mountChildren(a,e,n).join("")}}return H[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&s.queueHTML(r,o.__html);else{var i=N[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)""!==i&&s.queueText(r,i);else if(null!=a)for(var u=this.mountChildren(a,e,n),l=0;l<u.length;l++)s.queueChild(r,u[l])}},receiveComponent:function(e,t,n){var r=this._currentElement;this._currentElement=e,this.updateComponent(t,r,e,n)},updateComponent:function(e,t,n,r){var o=t.props,i=this._currentElement.props;switch(this._tag){case"input":o=v.getHostProps(this,o),i=v.getHostProps(this,i);break;case"option":o=g.getHostProps(this,o),i=g.getHostProps(this,i);break;case"select":o=y.getHostProps(this,o),i=y.getHostProps(this,i);break;case"textarea":o=_.getHostProps(this,o),i=_.getHostProps(this,i)}switch(A(this,i),this._updateDOMProperties(o,i,e),this._updateDOMChildren(o,i,e,r),this._tag){case"input":v.updateWrapper(this),w.updateValueIfChanged(this);break;case"textarea":_.updateWrapper(this);break;case"select":e.getReactMountReady().enqueue(V,this)}},_updateDOMProperties:function(e,t,n){var r,i,s;for(r in e)if(!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&null!=e[r])if("style"===r){var u=this._previousStyleCopy;for(i in u)u.hasOwnProperty(i)&&((s=s||{})[i]="");this._previousStyleCopy=null}else P.hasOwnProperty(r)?e[r]&&k(this,r):G(this._tag,e)?M.hasOwnProperty(r)||c.deleteValueForAttribute(S(this),r):(l.properties[r]||l.isCustomAttribute(r))&&c.deleteValueForProperty(S(this),r);for(r in t){var p=t[r],d="style"===r?this._previousStyleCopy:null!=e?e[r]:void 0;if(t.hasOwnProperty(r)&&p!==d&&(null!=p||null!=d))if("style"===r)if(p?p=this._previousStyleCopy=o({},p):this._previousStyleCopy=null,d){for(i in d)!d.hasOwnProperty(i)||p&&p.hasOwnProperty(i)||((s=s||{})[i]="");for(i in p)p.hasOwnProperty(i)&&d[i]!==p[i]&&((s=s||{})[i]=p[i])}else s=p;else if(P.hasOwnProperty(r))p?R(this,r,p,n):d&&k(this,r);else if(G(this._tag,t))M.hasOwnProperty(r)||c.setValueForAttribute(S(this),r,p);else if(l.properties[r]||l.isCustomAttribute(r)){var f=S(this);null!=p?c.setValueForProperty(f,r,p):c.deleteValueForProperty(f,r)}}s&&a.setValueForStyles(S(this),s,this)},_updateDOMChildren:function(e,t,n,r){var o=N[typeof e.children]?e.children:null,i=N[typeof t.children]?t.children:null,a=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,s=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,u=null!=o?null:e.children,l=null!=i?null:t.children,c=null!=o||null!=a,p=null!=i||null!=s;null!=u&&null==l?this.updateChildren(null,n,r):c&&!p&&this.updateTextContent(""),null!=i?o!==i&&this.updateTextContent(""+i):null!=s?a!==s&&this.updateMarkup(""+s):null!=l&&this.updateChildren(l,n,r)},getHostNode:function(){return S(this)},unmountComponent:function(e){switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":var t=this._wrapperState.listeners;if(t)for(var n=0;n<t.length;n++)t[n].remove();break;case"input":case"textarea":w.stopTracking(this);break;case"html":case"head":case"body":r("66",this._tag)}this.unmountChildren(e),m.uncacheNode(this),p.deleteAllListeners(this),this._rootNodeID=0,this._domID=0,this._wrapperState=null},getPublicInstance:function(){return S(this)}},o($.prototype,$.Mixin,b.Mixin),e.exports=$},function(e,t,n){"use strict";var r=n(4),o=n(67),i={focusDOMComponent:function(){o(r.getNodeFromInstance(this))}};e.exports=i},function(e,t,n){"use strict";var r=n(68),o=n(5),i=(n(6),n(128),n(130)),a=n(131),s=n(133),u=(n(2),s(function(e){return a(e)})),l=!1,c="cssFloat";if(o.canUseDOM){var p=document.createElement("div").style;try{p.font=""}catch(e){l=!0}void 0===document.documentElement.style.cssFloat&&(c="styleFloat")}var d={createMarkupForStyles:function(e,t){var n="";for(var r in e)if(e.hasOwnProperty(r)){var o=0===r.indexOf("--"),a=e[r];0,null!=a&&(n+=u(r)+":",n+=i(r,a,t,o)+";")}return n||null},setValueForStyles:function(e,t,n){var o=e.style;for(var a in t)if(t.hasOwnProperty(a)){var s=0===a.indexOf("--");0;var u=i(a,t[a],n,s);if("float"!==a&&"cssFloat"!==a||(a=c),s)o.setProperty(a,u);else if(u)o[a]=u;else{var p=l&&r.shorthandPropertyExpansions[a];if(p)for(var d in p)o[d]="";else o[a]=""}}}};e.exports=d},function(e,t,n){"use strict";var r=n(129),o=/^-ms-/;e.exports=function(e){return r(e.replace(o,"ms-"))}},function(e,t,n){"use strict";var r=/-(.)/g;e.exports=function(e){return e.replace(r,function(e,t){return t.toUpperCase()})}},function(e,t,n){"use strict";var r=n(68),o=(n(2),r.isUnitlessNumber);e.exports=function(e,t,n,r){if(null==t||"boolean"==typeof t||""===t)return"";var i=isNaN(t);return r||i||0===t||o.hasOwnProperty(e)&&o[e]?""+t:("string"==typeof t&&(t=t.trim()),t+"px")}},function(e,t,n){"use strict";var r=n(132),o=/^ms-/;e.exports=function(e){return r(e).replace(o,"-ms-")}},function(e,t,n){"use strict";var r=/([A-Z])/g;e.exports=function(e){return e.replace(r,"-$1").toLowerCase()}},function(e,t,n){"use strict";e.exports=function(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}},function(e,t,n){"use strict";var r=n(27);e.exports=function(e){return'"'+r(e)+'"'}},function(e,t,n){"use strict";var r=n(21);var o={handleTopLevel:function(e,t,n,o){!function(e){r.enqueueEvents(e),r.processEventQueue(!1)}(r.extractEvents(e,t,n,o))}};e.exports=o},function(e,t,n){"use strict";var r=n(5);function o(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}var i={animationend:o("Animation","AnimationEnd"),animationiteration:o("Animation","AnimationIteration"),animationstart:o("Animation","AnimationStart"),transitionend:o("Transition","TransitionEnd")},a={},s={};r.canUseDOM&&(s=document.createElement("div").style,"AnimationEvent"in window||(delete i.animationend.animation,delete i.animationiteration.animation,delete i.animationstart.animation),"TransitionEvent"in window||delete i.transitionend.transition),e.exports=function(e){if(a[e])return a[e];if(!i[e])return e;var t=i[e];for(var n in t)if(t.hasOwnProperty(n)&&n in s)return a[e]=t[n];return""}},function(e,t,n){"use strict";var r=n(1),o=n(3),i=n(69),a=n(40),s=n(4),u=n(9);n(0),n(2);function l(){this._rootNodeID&&p.updateWrapper(this)}function c(e){return"checkbox"===e.type||"radio"===e.type?null!=e.checked:null!=e.value}var p={getHostProps:function(e,t){var n=a.getValue(t),r=a.getChecked(t);return o({type:void 0,step:void 0,min:void 0,max:void 0},t,{defaultChecked:void 0,defaultValue:void 0,value:null!=n?n:e._wrapperState.initialValue,checked:null!=r?r:e._wrapperState.initialChecked,onChange:e._wrapperState.onChange})},mountWrapper:function(e,t){var n=t.defaultValue;e._wrapperState={initialChecked:null!=t.checked?t.checked:t.defaultChecked,initialValue:null!=t.value?t.value:n,listeners:null,onChange:d.bind(e),controlled:c(t)}},updateWrapper:function(e){var t=e._currentElement.props,n=t.checked;null!=n&&i.setValueForProperty(s.getNodeFromInstance(e),"checked",n||!1);var r=s.getNodeFromInstance(e),o=a.getValue(t);if(null!=o)if(0===o&&""===r.value)r.value="0";else if("number"===t.type){var u=parseFloat(r.value,10)||0;(o!=u||o==u&&r.value!=o)&&(r.value=""+o)}else r.value!==""+o&&(r.value=""+o);else null==t.value&&null!=t.defaultValue&&r.defaultValue!==""+t.defaultValue&&(r.defaultValue=""+t.defaultValue),null==t.checked&&null!=t.defaultChecked&&(r.defaultChecked=!!t.defaultChecked)},postMountWrapper:function(e){var t=e._currentElement.props,n=s.getNodeFromInstance(e);switch(t.type){case"submit":case"reset":break;case"color":case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":n.value="",n.value=n.defaultValue;break;default:n.value=n.value}var r=n.name;""!==r&&(n.name=""),n.defaultChecked=!n.defaultChecked,n.defaultChecked=!n.defaultChecked,""!==r&&(n.name=r)}};function d(e){var t=this._currentElement.props,n=a.executeOnChange(t,e);u.asap(l,this);var o=t.name;if("radio"===t.type&&null!=o){for(var i=s.getNodeFromInstance(this),c=i;c.parentNode;)c=c.parentNode;for(var p=c.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),d=0;d<p.length;d++){var f=p[d];if(f!==i&&f.form===i.form){var h=s.getInstanceFromNode(f);h||r("90"),u.asap(l,h)}}}return n}e.exports=p},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";var r=n(3),o=n(12),i=n(4),a=n(70),s=(n(2),!1);function u(e){var t="";return o.Children.forEach(e,function(e){null!=e&&("string"==typeof e||"number"==typeof e?t+=e:s||(s=!0))}),t}var l={mountWrapper:function(e,t,n){var r=null;if(null!=n){var o=n;"optgroup"===o._tag&&(o=o._hostParent),null!=o&&"select"===o._tag&&(r=a.getSelectValueContext(o))}var i,s=null;if(null!=r)if(i=null!=t.value?t.value+"":u(t.children),s=!1,Array.isArray(r)){for(var l=0;l<r.length;l++)if(""+r[l]===i){s=!0;break}}else s=""+r===i;e._wrapperState={selected:s}},postMountWrapper:function(e){var t=e._currentElement.props;null!=t.value&&i.getNodeFromInstance(e).setAttribute("value",t.value)},getHostProps:function(e,t){var n=r({selected:void 0,children:void 0},t);null!=e._wrapperState.selected&&(n.selected=e._wrapperState.selected);var o=u(t.children);return o&&(n.children=o),n}};e.exports=l},function(e,t,n){"use strict";var r=n(1),o=n(3),i=n(40),a=n(4),s=n(9);n(0),n(2);function u(){this._rootNodeID&&l.updateWrapper(this)}var l={getHostProps:function(e,t){return null!=t.dangerouslySetInnerHTML&&r("91"),o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange})},mountWrapper:function(e,t){var n=i.getValue(t),o=n;if(null==n){var a=t.defaultValue,s=t.children;null!=s&&(null!=a&&r("92"),Array.isArray(s)&&(s.length<=1||r("93"),s=s[0]),a=""+s),null==a&&(a=""),o=a}e._wrapperState={initialValue:""+o,listeners:null,onChange:c.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=a.getNodeFromInstance(e),r=i.getValue(t);if(null!=r){var o=""+r;o!==n.value&&(n.value=o),null==t.defaultValue&&(n.defaultValue=o)}null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=a.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)}};function c(e){var t=this._currentElement.props,n=i.executeOnChange(t,e);return s.asap(u,this),n}e.exports=l},function(e,t,n){"use strict";var r=n(1),o=n(41),i=(n(23),n(6),n(10),n(14)),a=n(142),s=(n(8),n(147));n(0);function u(e,t){return t&&(e=e||[]).push(t),e}function l(e,t){o.processChildrenUpdates(e,t)}var c={Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return a.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,o,i){var u;return u=s(t,0),a.updateChildren(e,u,n,r,o,this,this._hostContainerInfo,i,0),u},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],a=0;for(var s in r)if(r.hasOwnProperty(s)){var u=r[s];0;var l=i.mountComponent(u,t,this,this._hostContainerInfo,n,0);u._mountIndex=a++,o.push(l)}return o},updateTextContent:function(e){var t,n=this._renderedChildren;for(var o in a.unmountChildren(n,!1),n)n.hasOwnProperty(o)&&r("118");l(this,[(t=e,{type:"TEXT_CONTENT",content:t,fromIndex:null,fromNode:null,toIndex:null,afterNode:null})])},updateMarkup:function(e){var t,n=this._renderedChildren;for(var o in a.unmountChildren(n,!1),n)n.hasOwnProperty(o)&&r("118");l(this,[(t=e,{type:"SET_MARKUP",content:t,fromIndex:null,fromNode:null,toIndex:null,afterNode:null})])},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,o={},a=[],s=this._reconcilerUpdateChildren(r,e,a,o,t,n);if(s||r){var c,p=null,d=0,f=0,h=0,m=null;for(c in s)if(s.hasOwnProperty(c)){var v=r&&r[c],g=s[c];v===g?(p=u(p,this.moveChild(v,m,d,f)),f=Math.max(v._mountIndex,f),v._mountIndex=d):(v&&(f=Math.max(v._mountIndex,f)),p=u(p,this._mountChildAtIndex(g,a[h],m,d,t,n)),h++),d++,m=i.getHostNode(g)}for(c in o)o.hasOwnProperty(c)&&(p=u(p,this._unmountChild(r[c],o[c])));p&&l(this,p),this._renderedChildren=s}},unmountChildren:function(e){var t=this._renderedChildren;a.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex<r)return function(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:i.getHostNode(e),toIndex:n,afterNode:t}}(e,t,n)},createChild:function(e,t,n){return function(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}(n,t,e._mountIndex)},removeChild:function(e,t){return function(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}(e,t)},_mountChildAtIndex:function(e,t,n,r,o,i){return e._mountIndex=r,this.createChild(e,n,t)},_unmountChild:function(e,t){var n=this.removeChild(e,t);return e._mountIndex=null,n}}};e.exports=c},function(e,t,n){"use strict";(function(t){var r=n(14),o=n(42),i=(n(45),n(44)),a=n(74);n(2);function s(e,t,n,r){var i=void 0===e[n];null!=t&&i&&(e[n]=o(t,!0))}void 0!==t&&Object({NODE_ENV:"production"});var u={instantiateChildren:function(e,t,n,r){if(null==e)return null;var o={};return a(e,s,o),o},updateChildren:function(e,t,n,a,s,u,l,c,p){if(t||e){var d,f;for(d in t)if(t.hasOwnProperty(d)){var h=(f=e&&e[d])&&f._currentElement,m=t[d];if(null!=f&&i(h,m))r.receiveComponent(f,m,s,c),t[d]=f;else{f&&(a[d]=r.getHostNode(f),r.unmountComponent(f,!1));var v=o(m,!0);t[d]=v;var g=r.mountComponent(v,s,u,l,c,p);n.push(g)}}for(d in e)!e.hasOwnProperty(d)||t&&t.hasOwnProperty(d)||(f=e[d],a[d]=r.getHostNode(f),r.unmountComponent(f,!1))}},unmountChildren:function(e,t){for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];r.unmountComponent(o,t)}}};e.exports=u}).call(this,n(30))},function(e,t,n){"use strict";var r=n(1),o=n(3),i=n(12),a=n(41),s=n(10),u=n(33),l=n(23),c=(n(6),n(71)),p=n(14),d=n(19),f=(n(0),n(43)),h=n(44),m=(n(2),0),v=1,g=2;function y(e){}function _(e,t){0}y.prototype.render=function(){var e=l.get(this)._currentElement.type,t=e(this.props,this.context,this.updater);return _(e,t),t};var b=1,C={construct:function(e){this._currentElement=e,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(e,t,n,o){this._context=o,this._mountOrder=b++,this._hostParent=t,this._hostContainerInfo=n;var a,s=this._currentElement.props,u=this._processContext(o),c=this._currentElement.type,p=e.getUpdateQueue(),f=function(e){return!(!e.prototype||!e.prototype.isReactComponent)}(c),h=this._constructComponent(f,s,u,p);f||null!=h&&null!=h.render?!function(e){return!(!e.prototype||!e.prototype.isPureReactComponent)}(c)?this._compositeType=m:this._compositeType=v:(a=h,_(),null===h||!1===h||i.isValidElement(h)||r("105",c.displayName||c.name||"Component"),h=new y(c),this._compositeType=g),h.props=s,h.context=u,h.refs=d,h.updater=p,this._instance=h,l.set(h,this);var C,E=h.state;return void 0===E&&(h.state=E=null),("object"!=typeof E||Array.isArray(E))&&r("106",this.getName()||"ReactCompositeComponent"),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,C=h.unstable_handleError?this.performInitialMountWithErrorHandling(a,t,n,e,o):this.performInitialMount(a,t,n,e,o),h.componentDidMount&&e.getReactMountReady().enqueue(h.componentDidMount,h),C},_constructComponent:function(e,t,n,r){return this._constructComponentWithoutOwner(e,t,n,r)},_constructComponentWithoutOwner:function(e,t,n,r){var o=this._currentElement.type;return e?new o(t,n,r):o(t,n,r)},performInitialMountWithErrorHandling:function(e,t,n,r,o){var i,a=r.checkpoint();try{i=this.performInitialMount(e,t,n,r,o)}catch(s){r.rollback(a),this._instance.unstable_handleError(s),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(a),i=this.performInitialMount(e,t,n,r,o)}return i},performInitialMount:function(e,t,n,r,o){var i=this._instance;i.componentWillMount&&(i.componentWillMount(),this._pendingStateQueue&&(i.state=this._processPendingState(i.props,i.context))),void 0===e&&(e=this._renderValidatedComponent());var a=c.getType(e);this._renderedNodeType=a;var s=this._instantiateReactComponent(e,a!==c.EMPTY);return this._renderedComponent=s,p.mountComponent(s,r,t,n,this._processChildContext(o),0)},getHostNode:function(){return p.getHostNode(this._renderedComponent)},unmountComponent:function(e){if(this._renderedComponent){var t=this._instance;if(t.componentWillUnmount&&!t._calledComponentWillUnmount)if(t._calledComponentWillUnmount=!0,e){var n=this.getName()+".componentWillUnmount()";u.invokeGuardedCallback(n,t.componentWillUnmount.bind(t))}else t.componentWillUnmount();this._renderedComponent&&(p.unmountComponent(this._renderedComponent,e),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,l.remove(t)}},_maskContext:function(e){var t=this._currentElement.type.contextTypes;if(!t)return d;var n={};for(var r in t)n[r]=e[r];return n},_processContext:function(e){return this._maskContext(e)},_processChildContext:function(e){var t,n=this._currentElement.type,i=this._instance;if(i.getChildContext&&(t=i.getChildContext()),t){for(var a in"object"!=typeof n.childContextTypes&&r("107",this.getName()||"ReactCompositeComponent"),t)a in n.childContextTypes||r("108",this.getName()||"ReactCompositeComponent",a);return o({},e,t)}return e},_checkContextTypes:function(e,t,n){0},receiveComponent:function(e,t,n){var r=this._currentElement,o=this._context;this._pendingElement=null,this.updateComponent(t,r,e,o,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement?p.receiveComponent(this,this._pendingElement,e,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(e,t,n,o,i){var a=this._instance;null==a&&r("136",this.getName()||"ReactCompositeComponent");var s,u=!1;this._context===i?s=a.context:(s=this._processContext(i),u=!0);var l=t.props,c=n.props;t!==n&&(u=!0),u&&a.componentWillReceiveProps&&a.componentWillReceiveProps(c,s);var p=this._processPendingState(c,s),d=!0;this._pendingForceUpdate||(a.shouldComponentUpdate?d=a.shouldComponentUpdate(c,p,s):this._compositeType===v&&(d=!f(l,c)||!f(a.state,p))),this._updateBatchNumber=null,d?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,c,p,s,e,i)):(this._currentElement=n,this._context=i,a.props=c,a.state=p,a.context=s)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,i=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(i&&1===r.length)return r[0];for(var a=o({},i?r[0]:n.state),s=i?1:0;s<r.length;s++){var u=r[s];o(a,"function"==typeof u?u.call(n,a,e,t):u)}return a},_performComponentUpdate:function(e,t,n,r,o,i){var a,s,u,l=this._instance,c=Boolean(l.componentDidUpdate);c&&(a=l.props,s=l.state,u=l.context),l.componentWillUpdate&&l.componentWillUpdate(t,n,r),this._currentElement=e,this._context=i,l.props=t,l.state=n,l.context=r,this._updateRenderedComponent(o,i),c&&o.getReactMountReady().enqueue(l.componentDidUpdate.bind(l,a,s,u),l)},_updateRenderedComponent:function(e,t){var n=this._renderedComponent,r=n._currentElement,o=this._renderValidatedComponent();if(h(r,o))p.receiveComponent(n,o,e,this._processChildContext(t));else{var i=p.getHostNode(n);p.unmountComponent(n,!1);var a=c.getType(o);this._renderedNodeType=a;var s=this._instantiateReactComponent(o,a!==c.EMPTY);this._renderedComponent=s;var u=p.mountComponent(s,e,this._hostParent,this._hostContainerInfo,this._processChildContext(t),0);this._replaceNodeWithMarkup(i,u,n)}},_replaceNodeWithMarkup:function(e,t,n){a.replaceNodeWithMarkup(e,t,n)},_renderValidatedComponentWithoutOwnerOrContext:function(){return this._instance.render()},_renderValidatedComponent:function(){var e;if(this._compositeType!==g){s.current=this;try{e=this._renderValidatedComponentWithoutOwnerOrContext()}finally{s.current=null}}else e=this._renderValidatedComponentWithoutOwnerOrContext();return null===e||!1===e||i.isValidElement(e)||r("109",this.getName()||"ReactCompositeComponent"),e},attachRef:function(e,t){var n=this.getPublicInstance();null==n&&r("110");var o=t.getPublicInstance();(n.refs===d?n.refs={}:n.refs)[e]=o},detachRef:function(e){delete this.getPublicInstance().refs[e]},getName:function(){var e=this._currentElement.type,t=this._instance&&this._instance.constructor;return e.displayName||t&&t.displayName||e.name||t&&t.name||null},getPublicInstance:function(){var e=this._instance;return this._compositeType===g?null:e},_instantiateReactComponent:null};e.exports=C},function(e,t,n){"use strict";var r=1;e.exports=function(){return r++}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=r},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.iterator,o="@@iterator";e.exports=function(e){var t=e&&(r&&e[r]||e[o]);if("function"==typeof t)return t}},function(e,t,n){"use strict";(function(t){n(45);var r=n(74);n(2);function o(e,t,n,r){if(e&&"object"==typeof e){var o=e;0,void 0===o[n]&&null!=t&&(o[n]=t)}}void 0!==t&&Object({NODE_ENV:"production"}),e.exports=function(e,t){if(null==e)return e;var n={};return r(e,o,n),n}}).call(this,n(30))},function(e,t,n){"use strict";var r=n(46);n(2);var o=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.transaction=t}return e.prototype.isMounted=function(e){return!1},e.prototype.enqueueCallback=function(e,t,n){this.transaction.isInTransaction()&&r.enqueueCallback(e,t,n)},e.prototype.enqueueForceUpdate=function(e){this.transaction.isInTransaction()&&r.enqueueForceUpdate(e)},e.prototype.enqueueReplaceState=function(e,t){this.transaction.isInTransaction()&&r.enqueueReplaceState(e,t)},e.prototype.enqueueSetState=function(e,t){this.transaction.isInTransaction()&&r.enqueueSetState(e,t)},e}();e.exports=o},function(e,t,n){"use strict";var r=n(3),o=n(17),i=n(4),a=function(e){this._currentElement=null,this._hostNode=null,this._hostParent=null,this._hostContainerInfo=null,this._domID=0};r(a.prototype,{mountComponent:function(e,t,n,r){var a=n._idCounter++;this._domID=a,this._hostParent=t,this._hostContainerInfo=n;var s=" react-empty: "+this._domID+" ";if(e.useCreateElement){var u=n._ownerDocument.createComment(s);return i.precacheNode(this,u),o(u)}return e.renderToStaticMarkup?"":"\x3c!--"+s+"--\x3e"},receiveComponent:function(){},getHostNode:function(){return i.getNodeFromInstance(this)},unmountComponent:function(){i.uncacheNode(this)}}),e.exports=a},function(e,t,n){"use strict";var r=n(1);n(0);function o(e,t){"_hostNode"in e||r("33"),"_hostNode"in t||r("33");for(var n=0,o=e;o;o=o._hostParent)n++;for(var i=0,a=t;a;a=a._hostParent)i++;for(;n-i>0;)e=e._hostParent,n--;for(;i-n>0;)t=t._hostParent,i--;for(var s=n;s--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}e.exports={isAncestor:function(e,t){"_hostNode"in e||r("35"),"_hostNode"in t||r("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1},getLowestCommonAncestor:o,getParentInstance:function(e){return"_hostNode"in e||r("36"),e._hostParent},traverseTwoPhase:function(e,t,n){for(var r,o=[];e;)o.push(e),e=e._hostParent;for(r=o.length;r-- >0;)t(o[r],"captured",n);for(r=0;r<o.length;r++)t(o[r],"bubbled",n)},traverseEnterLeave:function(e,t,n,r,i){for(var a=e&&t?o(e,t):null,s=[];e&&e!==a;)s.push(e),e=e._hostParent;for(var u,l=[];t&&t!==a;)l.push(t),t=t._hostParent;for(u=0;u<s.length;u++)n(s[u],"bubbled",r);for(u=l.length;u-- >0;)n(l[u],"captured",i)}}},function(e,t,n){"use strict";var r=n(1),o=n(3),i=n(37),a=n(17),s=n(4),u=n(27),l=(n(0),n(47),function(e){this._currentElement=e,this._stringText=""+e,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});o(l.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,i=" react-text: "+o+" ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var l=n._ownerDocument,c=l.createComment(i),p=l.createComment(" /react-text "),d=a(l.createDocumentFragment());return a.queueChild(d,a(c)),this._stringText&&a.queueChild(d,a(l.createTextNode(this._stringText))),a.queueChild(d,a(p)),s.precacheNode(this,c),this._closingComment=p,d}var f=u(this._stringText);return e.renderToStaticMarkup?f:"\x3c!--"+i+"--\x3e"+f+"\x3c!-- /react-text --\x3e"},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();i.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=s.getNodeFromInstance(this).nextSibling;;){if(null==t&&r("67",this._domID),8===t.nodeType&&" /react-text "===t.nodeValue){this._closingComment=t;break}t=t.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,s.uncacheNode(this)}}),e.exports=l},function(e,t,n){"use strict";var r=n(3),o=n(78),i=n(5),a=n(13),s=n(4),u=n(9),l=n(34),c=n(153);function p(e){for(;e._hostParent;)e=e._hostParent;var t=s.getNodeFromInstance(e).parentNode;return s.getClosestInstanceFromNode(t)}function d(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function f(e){var t=l(e.nativeEvent),n=s.getClosestInstanceFromNode(t),r=n;do{e.ancestors.push(r),r=r&&p(r)}while(r);for(var o=0;o<e.ancestors.length;o++)n=e.ancestors[o],h._handleTopLevel(e.topLevelType,n,e.nativeEvent,l(e.nativeEvent))}r(d.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),a.addPoolingTo(d,a.twoArgumentPooler);var h={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:i.canUseDOM?window:null,setHandleTopLevel:function(e){h._handleTopLevel=e},setEnabled:function(e){h._enabled=!!e},isEnabled:function(){return h._enabled},trapBubbledEvent:function(e,t,n){return n?o.listen(n,t,h.dispatchEvent.bind(null,e)):null},trapCapturedEvent:function(e,t,n){return n?o.capture(n,t,h.dispatchEvent.bind(null,e)):null},monitorScrollValue:function(e){var t=function(e){e(c(window))}.bind(null,e);o.listen(window,"scroll",t)},dispatchEvent:function(e,t){if(h._enabled){var n=d.getPooled(e,t);try{u.batchedUpdates(f,n)}finally{d.release(n)}}}};e.exports=h},function(e,t,n){"use strict";e.exports=function(e){return e.Window&&e instanceof e.Window?{x:e.pageXOffset||e.document.documentElement.scrollLeft,y:e.pageYOffset||e.document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}},function(e,t,n){"use strict";var r=n(16),o=n(21),i=n(32),a=n(41),s=n(72),u=n(28),l=n(73),c=n(9),p={Component:a.injection,DOMProperty:r.injection,EmptyComponent:s.injection,EventPluginHub:o.injection,EventPluginUtils:i.injection,EventEmitter:u.injection,HostComponent:l.injection,Updates:c.injection};e.exports=p},function(e,t,n){"use strict";var r=n(3),o=n(61),i=n(13),a=n(28),s=n(79),u=(n(6),n(24)),l=n(46),c=[{initialize:s.getSelectionInformation,close:s.restoreSelection},{initialize:function(){var e=a.isEnabled();return a.setEnabled(!1),e},close:function(e){a.setEnabled(e)}},{initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}}];function p(e){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=o.getPooled(null),this.useCreateElement=e}var d={getTransactionWrappers:function(){return c},getReactMountReady:function(){return this.reactMountReady},getUpdateQueue:function(){return l},checkpoint:function(){return this.reactMountReady.checkpoint()},rollback:function(e){this.reactMountReady.rollback(e)},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null}};r(p.prototype,u,d),i.addPoolingTo(p),e.exports=p},function(e,t,n){"use strict";var r=n(5),o=n(157),i=n(60);function a(e,t,n,r){return e===n&&t===r}var s=r.canUseDOM&&"selection"in document&&!("getSelection"in window),u={getOffsets:s?function(e){var t=document.selection.createRange(),n=t.text.length,r=t.duplicate();r.moveToElementText(e),r.setEndPoint("EndToStart",t);var o=r.text.length;return{start:o,end:o+n}}:function(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var n=t.anchorNode,r=t.anchorOffset,o=t.focusNode,i=t.focusOffset,s=t.getRangeAt(0);try{s.startContainer.nodeType,s.endContainer.nodeType}catch(e){return null}var u=a(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset)?0:s.toString().length,l=s.cloneRange();l.selectNodeContents(e),l.setEnd(s.startContainer,s.startOffset);var c=a(l.startContainer,l.startOffset,l.endContainer,l.endOffset)?0:l.toString().length,p=c+u,d=document.createRange();d.setStart(n,r),d.setEnd(o,i);var f=d.collapsed;return{start:f?p:c,end:f?c:p}},setOffsets:s?function(e,t){var n,r,o=document.selection.createRange().duplicate();void 0===t.end?r=n=t.start:t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}:function(e,t){if(window.getSelection){var n=window.getSelection(),r=e[i()].length,a=Math.min(t.start,r),s=void 0===t.end?a:Math.min(t.end,r);if(!n.extend&&a>s){var u=s;s=a,a=u}var l=o(e,a),c=o(e,s);if(l&&c){var p=document.createRange();p.setStart(l.node,l.offset),n.removeAllRanges(),a>s?(n.addRange(p),n.extend(c.node,c.offset)):(p.setEnd(c.node,c.offset),n.addRange(p))}}}};e.exports=u},function(e,t,n){"use strict";function r(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function o(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}e.exports=function(e,t){for(var n=r(e),i=0,a=0;n;){if(3===n.nodeType){if(a=i+n.textContent.length,i<=t&&a>=t)return{node:n,offset:t-i};i=a}n=r(o(n))}}},function(e,t,n){"use strict";var r=n(159);e.exports=function e(t,n){return!(!t||!n)&&(t===n||!r(t)&&(r(n)?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}},function(e,t,n){"use strict";var r=n(160);e.exports=function(e){return r(e)&&3==e.nodeType}},function(e,t,n){"use strict";e.exports=function(e){var t=(e?e.ownerDocument||e:document).defaultView||window;return!(!e||!("function"==typeof t.Node?e instanceof t.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}},function(e,t,n){"use strict";var r="http://www.w3.org/1999/xlink",o="http://www.w3.org/XML/1998/namespace",i={accentHeight:"accent-height",accumulate:0,additive:0,alignmentBaseline:"alignment-baseline",allowReorder:"allowReorder",alphabetic:0,amplitude:0,arabicForm:"arabic-form",ascent:0,attributeName:"attributeName",attributeType:"attributeType",autoReverse:"autoReverse",azimuth:0,baseFrequency:"baseFrequency",baseProfile:"baseProfile",baselineShift:"baseline-shift",bbox:0,begin:0,bias:0,by:0,calcMode:"calcMode",capHeight:"cap-height",clip:0,clipPath:"clip-path",clipRule:"clip-rule",clipPathUnits:"clipPathUnits",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",contentScriptType:"contentScriptType",contentStyleType:"contentStyleType",cursor:0,cx:0,cy:0,d:0,decelerate:0,descent:0,diffuseConstant:"diffuseConstant",direction:0,display:0,divisor:0,dominantBaseline:"dominant-baseline",dur:0,dx:0,dy:0,edgeMode:"edgeMode",elevation:0,enableBackground:"enable-background",end:0,exponent:0,externalResourcesRequired:"externalResourcesRequired",fill:0,fillOpacity:"fill-opacity",fillRule:"fill-rule",filter:0,filterRes:"filterRes",filterUnits:"filterUnits",floodColor:"flood-color",floodOpacity:"flood-opacity",focusable:0,fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",glyphRef:"glyphRef",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",hanging:0,horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",ideographic:0,imageRendering:"image-rendering",in:0,in2:0,intercept:0,k:0,k1:0,k2:0,k3:0,k4:0,kernelMatrix:"kernelMatrix",kernelUnitLength:"kernelUnitLength",kerning:0,keyPoints:"keyPoints",keySplines:"keySplines",keyTimes:"keyTimes",lengthAdjust:"lengthAdjust",letterSpacing:"letter-spacing",lightingColor:"lighting-color",limitingConeAngle:"limitingConeAngle",local:0,markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",markerHeight:"markerHeight",markerUnits:"markerUnits",markerWidth:"markerWidth",mask:0,maskContentUnits:"maskContentUnits",maskUnits:"maskUnits",mathematical:0,mode:0,numOctaves:"numOctaves",offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pathLength:"pathLength",patternContentUnits:"patternContentUnits",patternTransform:"patternTransform",patternUnits:"patternUnits",pointerEvents:"pointer-events",points:0,pointsAtX:"pointsAtX",pointsAtY:"pointsAtY",pointsAtZ:"pointsAtZ",preserveAlpha:"preserveAlpha",preserveAspectRatio:"preserveAspectRatio",primitiveUnits:"primitiveUnits",r:0,radius:0,refX:"refX",refY:"refY",renderingIntent:"rendering-intent",repeatCount:"repeatCount",repeatDur:"repeatDur",requiredExtensions:"requiredExtensions",requiredFeatures:"requiredFeatures",restart:0,result:0,rotate:0,rx:0,ry:0,scale:0,seed:0,shapeRendering:"shape-rendering",slope:0,spacing:0,specularConstant:"specularConstant",specularExponent:"specularExponent",speed:0,spreadMethod:"spreadMethod",startOffset:"startOffset",stdDeviation:"stdDeviation",stemh:0,stemv:0,stitchTiles:"stitchTiles",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",string:0,stroke:0,strokeDasharray:"stroke-dasharray",strokeDashoffset:"stroke-dashoffset",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin",strokeMiterlimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",surfaceScale:"surfaceScale",systemLanguage:"systemLanguage",tableValues:"tableValues",targetX:"targetX",targetY:"targetY",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",textLength:"textLength",to:0,transform:0,u1:0,u2:0,underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicode:0,unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",values:0,vectorEffect:"vector-effect",version:0,vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",viewBox:"viewBox",viewTarget:"viewTarget",visibility:0,widths:0,wordSpacing:"word-spacing",writingMode:"writing-mode",x:0,xHeight:"x-height",x1:0,x2:0,xChannelSelector:"xChannelSelector",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlns:0,xmlnsXlink:"xmlns:xlink",xmlLang:"xml:lang",xmlSpace:"xml:space",y:0,y1:0,y2:0,yChannelSelector:"yChannelSelector",z:0,zoomAndPan:"zoomAndPan"},a={Properties:{},DOMAttributeNamespaces:{xlinkActuate:r,xlinkArcrole:r,xlinkHref:r,xlinkRole:r,xlinkShow:r,xlinkTitle:r,xlinkType:r,xmlBase:o,xmlLang:o,xmlSpace:o},DOMAttributeNames:{}};Object.keys(i).forEach(function(e){a.Properties[e]=0,i[e]&&(a.DOMAttributeNames[e]=i[e])}),e.exports=a},function(e,t,n){"use strict";var r=n(20),o=n(5),i=n(4),a=n(79),s=n(11),u=n(80),l=n(64),c=n(43),p=o.canUseDOM&&"documentMode"in document&&document.documentMode<=11,d={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:["topBlur","topContextMenu","topFocus","topKeyDown","topKeyUp","topMouseDown","topMouseUp","topSelectionChange"]}},f=null,h=null,m=null,v=!1,g=!1;function y(e,t){if(v||null==f||f!==u())return null;var n=function(e){if("selectionStart"in e&&a.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(window.getSelection){var t=window.getSelection();return{anchorNode:t.anchorNode,anchorOffset:t.anchorOffset,focusNode:t.focusNode,focusOffset:t.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}(f);if(!m||!c(m,n)){m=n;var o=s.getPooled(d.select,h,e,t);return o.type="select",o.target=f,r.accumulateTwoPhaseDispatches(o),o}return null}var _={eventTypes:d,extractEvents:function(e,t,n,r){if(!g)return null;var o=t?i.getNodeFromInstance(t):window;switch(e){case"topFocus":(l(o)||"true"===o.contentEditable)&&(f=o,h=t,m=null);break;case"topBlur":f=null,h=null,m=null;break;case"topMouseDown":v=!0;break;case"topContextMenu":case"topMouseUp":return v=!1,y(n,r);case"topSelectionChange":if(p)break;case"topKeyDown":case"topKeyUp":return y(n,r)}return null},didPutListener:function(e,t,n){"onSelect"===t&&(g=!0)}};e.exports=_},function(e,t,n){"use strict";var r=n(1),o=n(78),i=n(20),a=n(4),s=n(164),u=n(165),l=n(11),c=n(166),p=n(167),d=n(25),f=n(169),h=n(170),m=n(171),v=n(22),g=n(172),y=n(8),_=n(48),b=(n(0),{}),C={};["abort","animationEnd","animationIteration","animationStart","blur","canPlay","canPlayThrough","click","contextMenu","copy","cut","doubleClick","drag","dragEnd","dragEnter","dragExit","dragLeave","dragOver","dragStart","drop","durationChange","emptied","encrypted","ended","error","focus","input","invalid","keyDown","keyPress","keyUp","load","loadedData","loadedMetadata","loadStart","mouseDown","mouseMove","mouseOut","mouseOver","mouseUp","paste","pause","play","playing","progress","rateChange","reset","scroll","seeked","seeking","stalled","submit","suspend","timeUpdate","touchCancel","touchEnd","touchMove","touchStart","transitionEnd","volumeChange","waiting","wheel"].forEach(function(e){var t=e[0].toUpperCase()+e.slice(1),n="on"+t,r="top"+t,o={phasedRegistrationNames:{bubbled:n,captured:n+"Capture"},dependencies:[r]};b[e]=o,C[r]=o});var E={};function w(e){return"."+e._rootNodeID}function x(e){return"button"===e||"input"===e||"select"===e||"textarea"===e}var k={eventTypes:b,extractEvents:function(e,t,n,o){var a,y=C[e];if(!y)return null;switch(e){case"topAbort":case"topCanPlay":case"topCanPlayThrough":case"topDurationChange":case"topEmptied":case"topEncrypted":case"topEnded":case"topError":case"topInput":case"topInvalid":case"topLoad":case"topLoadedData":case"topLoadedMetadata":case"topLoadStart":case"topPause":case"topPlay":case"topPlaying":case"topProgress":case"topRateChange":case"topReset":case"topSeeked":case"topSeeking":case"topStalled":case"topSubmit":case"topSuspend":case"topTimeUpdate":case"topVolumeChange":case"topWaiting":a=l;break;case"topKeyPress":if(0===_(n))return null;case"topKeyDown":case"topKeyUp":a=p;break;case"topBlur":case"topFocus":a=c;break;case"topClick":if(2===n.button)return null;case"topDoubleClick":case"topMouseDown":case"topMouseMove":case"topMouseUp":case"topMouseOut":case"topMouseOver":case"topContextMenu":a=d;break;case"topDrag":case"topDragEnd":case"topDragEnter":case"topDragExit":case"topDragLeave":case"topDragOver":case"topDragStart":case"topDrop":a=f;break;case"topTouchCancel":case"topTouchEnd":case"topTouchMove":case"topTouchStart":a=h;break;case"topAnimationEnd":case"topAnimationIteration":case"topAnimationStart":a=s;break;case"topTransitionEnd":a=m;break;case"topScroll":a=v;break;case"topWheel":a=g;break;case"topCopy":case"topCut":case"topPaste":a=u}a||r("86",e);var b=a.getPooled(y,t,n,o);return i.accumulateTwoPhaseDispatches(b),b},didPutListener:function(e,t,n){if("onClick"===t&&!x(e._tag)){var r=w(e),i=a.getNodeFromInstance(e);E[r]||(E[r]=o.listen(i,"click",y))}},willDeleteListener:function(e,t){if("onClick"===t&&!x(e._tag)){var n=w(e);E[n].remove(),delete E[n]}}};e.exports=k},function(e,t,n){"use strict";var r=n(11);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{animationName:null,elapsedTime:null,pseudoElement:null}),e.exports=o},function(e,t,n){"use strict";var r=n(11),o={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};function i(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(i,o),e.exports=i},function(e,t,n){"use strict";var r=n(22);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{relatedTarget:null}),e.exports=o},function(e,t,n){"use strict";var r=n(22),o=n(48),i={key:n(168),location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:n(36),charCode:function(e){return"keypress"===e.type?o(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?o(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};function a(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(a,i),e.exports=a},function(e,t,n){"use strict";var r=n(48),o={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},i={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};e.exports=function(e){if(e.key){var t=o[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=r(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?i[e.keyCode]||"Unidentified":""}},function(e,t,n){"use strict";var r=n(25);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{dataTransfer:null}),e.exports=o},function(e,t,n){"use strict";var r=n(22),o={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:n(36)};function i(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(i,o),e.exports=i},function(e,t,n){"use strict";var r=n(11);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{propertyName:null,elapsedTime:null,pseudoElement:null}),e.exports=o},function(e,t,n){"use strict";var r=n(25);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),e.exports=o},function(e,t,n){"use strict";e.exports={useCreateElement:!0,useFiber:!1}},function(e,t,n){"use strict";var r=65521;e.exports=function(e){for(var t=1,n=0,o=0,i=e.length,a=-4&i;o<a;){for(var s=Math.min(o+4096,a);o<s;o+=4)n+=(t+=e.charCodeAt(o))+(t+=e.charCodeAt(o+1))+(t+=e.charCodeAt(o+2))+(t+=e.charCodeAt(o+3));t%=r,n%=r}for(;o<i;o++)n+=t+=e.charCodeAt(o);return(t%=r)|(n%=r)<<16}},function(e,t,n){"use strict";var r=n(1),o=(n(10),n(4)),i=n(23),a=n(85);n(0),n(2);e.exports=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=i.get(e);if(t)return(t=a(t))?o.getNodeFromInstance(t):null;"function"==typeof e.render?r("44"):r("45",Object.keys(e))}},function(e,t,n){"use strict";var r=n(81);e.exports=r.renderSubtreeIntoContainer},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(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(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=u(n(29)),i=(u(n(91)),u(n(178)),u(n(182)),u(n(184))),a=u(n(204)),s=u(n(50));function u(e){return e&&e.__esModule?e:{default:e}}function l(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)}var c=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=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,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.results=n.props.results?n.props.results:[],n.state={results:n.results},n.service=n.props.service,n.orderby=n.props.orderby,n.page=n.props.page,n.is_search=!1,n.search_term="",n.total_results=0,n.orientation="",n.isLoading=!1,n.isDone=!1,n.errorMsg="",n.msnry="",n.editor=n.props.editor?n.props.editor:"classic",n.is_block_editor="gutenberg"===n.props.editor,n.SetFeaturedImage=n.props.SetFeaturedImage?n.props.SetFeaturedImage.bind(n):"",n.InsertImage=n.props.InsertImage?n.props.InsertImage.bind(n):"",n.is_block_editor?(n.container=document.querySelector("body"),n.container.classList.add("loading"),n.wrapper=document.querySelector("body")):(n.container=document.querySelector(".instant-img-container"),n.container.classList.add("loading"),n.wrapper=document.querySelector(".instant-images-wrapper")),n}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)}(t,o.default.Component),r(t,[{key:"test",value:function(){var e=this,t=document.querySelector(".error-messaging"),n=instant_img_localize.root+"instant-images/test/",r=new XMLHttpRequest;r.open("GET",n,!0),r.setRequestHeader("X-WP-Nonce",instant_img_localize.nonce),r.setRequestHeader("Content-Type","application/json"),r.send(),r.onload=function(){r.status>=200&&r.status<400?JSON.parse(r.response).success||e.renderTestError(t):e.renderTestError(t)},r.onerror=function(t){console.log(t),e.renderTestError(errorTarget)}}},{key:"renderTestError",value:function(e){e.classList.add("active"),e.innerHTML=instant_img_localize.error_restapi}},{key:"search",value:function(e){e.preventDefault();var t=document.querySelector("#photo-search"),n=t.value;n.length>2?(t.classList.add("searching"),this.container.classList.add("loading"),this.search_term=n,this.is_search=!0,this.doSearch(this.search_term)):t.focus()}},{key:"setOrientation",value:function(e,t){if(t&&t.target){var n=t.target;if(n.classList.contains("active"))n.classList.remove("active"),this.orientation="";else{var r=n.parentNode.querySelectorAll("li");[].concat(l(r)).forEach(function(e){return e.classList.remove("active")}),n.classList.add("active"),this.orientation=e}""!==this.search_term&&this.doSearch(this.search_term)}}},{key:"hasOrientation",value:function(){return""!==this.orientation}},{key:"clearOrientation",value:function(){var e=document.querySelectorAll(".orientation-list li");[].concat(l(e)).forEach(function(e){return e.classList.remove("active")}),this.orientation=""}},{key:"doSearch",value:function(e){var t=this,n="term";this.page=1;var r=""+s.default.search_api+s.default.app_id+s.default.posts_per_page+"&page="+this.page+"&query="+this.search_term;this.hasOrientation()&&(r=r+"&orientation="+this.orientation),"id:"===e.substring(0,3)&&(n="id",e=e.replace("id:",""),r=s.default.photo_api+"/"+e+s.default.app_id);var o=document.querySelector("#photo-search");fetch(r).then(function(e){return e.json()}).then(function(e){if("term"===n&&(t.total_results=e.total,t.checkTotalResults(e.results.length),t.results=e.results,t.setState({results:t.results})),"id"===n&&e){var r=[];e.errors?(t.total_results=0,t.checkTotalResults("0")):(r.push(e),t.total_results=1,t.checkTotalResults("1")),t.results=r,t.setState({results:t.results})}o.classList.remove("searching")}).catch(function(e){console.log(e),t.isLoading=!1})}},{key:"clearSearch",value:function(){document.querySelector("#photo-search").value="",this.total_results=0,this.is_search=!1,this.search_term="",this.clearOrientation()}},{key:"getPhotos",value:function(){var e=this;this.page=parseInt(this.page)+1,this.container.classList.add("loading"),this.isLoading=!0;var t=""+s.default.photo_api+s.default.app_id+s.default.posts_per_page+"&page="+this.page+"&order_by="+this.orderby;this.is_search&&(t=""+s.default.search_api+s.default.app_id+s.default.posts_per_page+"&page="+this.page+"&query="+this.search_term,this.hasOrientation()&&(t=t+"&orientation="+this.orientation)),fetch(t).then(function(e){return e.json()}).then(function(t){e.is_search&&(t=t.results),t.map(function(t){e.results.push(t)}),e.checkTotalResults(t.length),e.setState({results:e.results})}).catch(function(t){console.log(t),e.isLoading=!1})}},{key:"togglePhotoList",value:function(e,t){var n=t.target;if(n.classList.contains("active"))return!1;n.classList.add("loading"),this.isLoading=!0;var r=this;this.page=1,this.orderby=e,this.results=[],this.clearSearch();var o=""+s.default.photo_api+s.default.app_id+s.default.posts_per_page+"&page="+this.page+"&order_by="+this.orderby;fetch(o).then(function(e){return e.json()}).then(function(e){r.checkTotalResults(e.length),r.results=e,r.setState({results:e}),n.classList.remove("loading")}).catch(function(e){console.log(e),r.isLoading=!1})}},{key:"renderLayout",value:function(){if(this.is_block_editor)return!1;var e=this,t=document.querySelector("#photos");imagesLoaded(t,function(){e.msnry=new Masonry(t,{itemSelector:".photo"}),[].concat(l(document.querySelectorAll("#photos .photo"))).forEach(function(e){return e.classList.add("in-view")})})}},{key:"onScroll",value:function(){window.innerHeight+window.pageYOffset>=document.body.scrollHeight-200&&!this.isLoading&&!this.isDone&&this.getPhotos()}},{key:"checkTotalResults",value:function(e){this.isDone=0==e}},{key:"setActiveState",value:function(){var e=this;([].concat(l(document.querySelectorAll(".control-nav a"))).forEach(function(e){return e.classList.remove("active")}),this.is_search)||document.querySelector(".control-nav li a."+this.orderby).classList.add("active");setTimeout(function(){e.isLoading=!1,e.container.classList.remove("loading")},1e3)}},{key:"componentDidUpdate",value:function(){this.renderLayout(),this.setActiveState()}},{key:"componentDidMount",value:function(){var e=this;this.renderLayout(),this.setActiveState(),this.test(),this.container.classList.remove("loading"),this.wrapper.classList.add("loaded"),this.is_block_editor?(this.page=0,this.getPhotos()):window.addEventListener("scroll",function(){return e.onScroll()})}},{key:"render",value:function(){var e=this,t=this.is_search?{display:"flex"}:{display:"none"};return o.default.createElement("div",{id:"photo-listing",className:this.service},o.default.createElement("ul",{className:"control-nav"},o.default.createElement("li",null,o.default.createElement("a",{className:"latest",href:"javascript:void(0);",onClick:function(t){return e.togglePhotoList("latest",t)}},instant_img_localize.latest)),o.default.createElement("li",{id:"nav-target"},o.default.createElement("a",{className:"popular",href:"javascript:void(0);",onClick:function(t){return e.togglePhotoList("popular",t)}},instant_img_localize.popular)),o.default.createElement("li",null,o.default.createElement("a",{className:"oldest",href:"javascript:void(0);",onClick:function(t){return e.togglePhotoList("oldest",t)}},instant_img_localize.oldest)),o.default.createElement("li",{className:"search-field",id:"search-bar"},o.default.createElement("form",{onSubmit:function(t){return e.search(t)},autoComplete:"off"},o.default.createElement("input",{type:"search",id:"photo-search",placeholder:instant_img_localize.search}),o.default.createElement("button",{type:"submit",id:"photo-search-submit"},o.default.createElement("i",{className:"fa fa-search"})),o.default.createElement(a.default,{isSearch:this.is_search,total:this.total_results,title:this.total_results+" "+instant_img_localize.search_results+" "+this.search_term})))),o.default.createElement("div",{className:"error-messaging"}),o.default.createElement("div",{className:"orientation-list",style:t},o.default.createElement("span",null,o.default.createElement("i",{className:"fa fa-filter","aria-hidden":"true"})," ",instant_img_localize.orientation,":"),o.default.createElement("ul",null,o.default.createElement("li",{tabIndex:"0",onClick:function(t){return e.setOrientation("landscape",t)},onKeyPress:function(t){return e.setOrientation("landscape",t)}},instant_img_localize.landscape),o.default.createElement("li",{tabIndex:"0",onClick:function(t){return e.setOrientation("portrait",t)},onKeyPress:function(t){return e.setOrientation("portrait",t)}},instant_img_localize.portrait),o.default.createElement("li",{tabIndex:"0",onClick:function(t){return e.setOrientation("squarish",t)},onKeyPress:function(t){return e.setOrientation("squarish",t)}},instant_img_localize.squarish))),o.default.createElement("div",{id:"photos"},this.state.results.map(function(t,n){return o.default.createElement(i.default,{result:t,key:t.id+n,blockEditor:e.is_block_editor,SetFeaturedImage:e.SetFeaturedImage,InsertImage:e.InsertImage})})),o.default.createElement("div",{className:0==this.total_results&&!0===this.is_search?"no-results show":"no-results",title:this.props.title},o.default.createElement("h3",null,instant_img_localize.no_results," "),o.default.createElement("p",null,instant_img_localize.no_results_desc," ")),o.default.createElement("div",{className:"loading-block"}),o.default.createElement("div",{className:"load-more-wrap"},o.default.createElement("button",{type:"button",className:"button",onClick:function(){return e.getPhotos()}},instant_img_localize.load_more)))}}]),t}();t.default=c},function(e,t,n){"use strict";e.exports=n(179)},function(e,t,n){"use strict";var r=n(57),o=n(180),i=n(84);r.inject();var a={renderToString:o.renderToString,renderToStaticMarkup:o.renderToStaticMarkup,version:i};e.exports=a},function(e,t,n){"use strict";var r=n(1),o=n(12),i=n(82),a=n(77),s=(n(6),n(83)),u=n(14),l=n(181),c=n(76),p=n(9),d=n(19),f=n(42),h=(n(0),0);function m(e,t){var n;try{return p.injection.injectBatchingStrategy(l),n=c.getPooled(t),h++,n.perform(function(){var r=f(e,!0),o=u.mountComponent(r,n,null,i(),d,0);return t||(o=s.addChecksumToMarkup(o)),o},null)}finally{h--,c.release(n),h||p.injection.injectBatchingStrategy(a)}}e.exports={renderToString:function(e){return o.isValidElement(e)||r("46"),m(e,!1)},renderToStaticMarkup:function(e){return o.isValidElement(e)||r("47"),m(e,!0)}}},function(e,t,n){"use strict";e.exports={isBatchingUpdates:!1,batchedUpdates:function(e){}}},function(e,t,n){var r,o;
21
  /*!
22
- * imagesLoaded v4.1.3
23
- * JavaScript is all like "You images are done yet or what?"
 
 
 
 
 
 
24
  * MIT License
 
 
 
 
 
 
25
  */
26
  /*!
27
- * imagesLoaded v4.1.3
28
- * JavaScript is all like "You images are done yet or what?"
29
- * MIT License
30
  */
31
- !function(i,a){"use strict";r=[n(183)],void 0===(o=function(e){return function(e,t){var n=e.jQuery,r=e.console;function o(e,t){for(var n in t)e[n]=t[n];return e}function i(e,t,r){if(!(this instanceof i))return new i(e,t,r);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=function(e){var t=[];if(Array.isArray(e))t=e;else if("number"==typeof e.length)for(var n=0;n<e.length;n++)t.push(e[n]);else t.push(e);return t}(e),this.options=o({},this.options),"function"==typeof t?r=t:o(this.options,t),r&&this.on("always",r),this.getImages(),n&&(this.jqDeferred=new n.Deferred),setTimeout(function(){this.check()}.bind(this))}i.prototype=Object.create(t.prototype),i.prototype.options={},i.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},i.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),!0===this.options.background&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&a[t]){for(var n=e.querySelectorAll("img"),r=0;r<n.length;r++){var o=n[r];this.addImage(o)}if("string"==typeof this.options.background){var i=e.querySelectorAll(this.options.background);for(r=0;r<i.length;r++){var s=i[r];this.addElementBackgroundImages(s)}}}};var a={1:!0,9:!0,11:!0};function s(e){this.img=e}function u(e,t){this.url=e,this.element=t,this.img=new Image}return i.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var n=/url\((['"])?(.*?)\1\)/gi,r=n.exec(t.backgroundImage);null!==r;){var o=r&&r[2];o&&this.addBackground(o,e),r=n.exec(t.backgroundImage)}},i.prototype.addImage=function(e){var t=new s(e);this.images.push(t)},i.prototype.addBackground=function(e,t){var n=new u(e,t);this.images.push(n)},i.prototype.check=function(){var e=this;function t(t,n,r){setTimeout(function(){e.progress(t,n,r)})}this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?this.images.forEach(function(e){e.once("progress",t),e.check()}):this.complete()},i.prototype.progress=function(e,t,n){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&r&&r.log("progress: "+n,e,t)},i.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},s.prototype=Object.create(t.prototype),s.prototype.check=function(){this.getIsImageComplete()?this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.proxyImage.src=this.img.src)},s.prototype.getIsImageComplete=function(){return this.img.complete&&void 0!==this.img.naturalWidth},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},s.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},s.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},s.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},s.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},u.prototype=Object.create(s.prototype),u.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url,this.getIsImageComplete()&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},u.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},u.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},i.makeJQueryPlugin=function(t){(t=t||e.jQuery)&&((n=t).fn.imagesLoaded=function(e,t){return new i(this,e,t).jqDeferred.promise(n(this))})},i.makeJQueryPlugin(),i}(i,e)}.apply(t,r))||(e.exports=o)}("undefined"!=typeof window?window:this)},function(e,t,n){var r,o;"undefined"!=typeof window&&window,void 0===(o="function"==typeof(r=function(){"use strict";function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var n=this._events=this._events||{},r=n[e]=n[e]||[];return-1==r.indexOf(t)&&r.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var n=this._onceEvents=this._onceEvents||{};return(n[e]=n[e]||{})[t]=!0,this}},t.off=function(e,t){var n=this._events&&this._events[e];if(n&&n.length){var r=n.indexOf(t);return-1!=r&&n.splice(r,1),this}},t.emitEvent=function(e,t){var n=this._events&&this._events[e];if(n&&n.length){n=n.slice(0),t=t||[];for(var r=this._onceEvents&&this._onceEvents[e],o=0;o<n.length;o++){var i=n[o];r&&r[i]&&(this.off(e,i),delete r[i]),i.apply(this,t)}return this}},t.allOff=function(){delete this._events,delete this._onceEvents},e})?r.call(t,n,t,e):r)||(e.exports=o)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(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(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=s(n(29)),i=s(n(50)),a=s(n(185));function s(e){return e&&e.__esModule?e:{default:e}}var u=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=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,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.id=n.props.result.id,n.thumb=n.props.result.urls.thumb,n.img=n.props.result.urls.small,n.full_size=n.props.result.urls.raw,n.author=n.props.result.user.name,n.img_title=instant_img_localize.photo_by+" "+n.author,n.filename=n.props.result.id,n.title=n.img_title,n.alt="",n.caption="",n.user=n.props.result.user.username,n.user_photo=n.props.result.user.profile_image.small,n.link=n.props.result.links.html,n.likes=n.props.result.likes,n.view_all=instant_img_localize.view_all,n.like_text=instant_img_localize.likes,n.inProgress=!1,n.container=document.querySelector(".instant-img-container"),n.setAsFeaturedImage=!1,n.insertIntoPost=!1,n.is_block_editor=n.props.blockEditor,n.SetFeaturedImage=n.props.SetFeaturedImage,n.InsertImage=n.props.InsertImage,n.state={filename:n.filename,title:n.title,alt:n.alt,caption:n.caption},n}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)}(t,o.default.Component),r(t,[{key:"uploadPhoto",value:function(e){e.preventDefault();var t=this,n=e.currentTarget,r=n.parentElement.parentElement.parentElement,o=r.querySelector(".notice-msg");if(n.classList.contains("upload")||(n=r.querySelector("a.upload")),n.classList.contains("success")||this.inProgress)return!1;n.classList.add("uploading"),r.classList.add("in-progress"),o.innerHTML=instant_img_localize.saving,this.inProgress=!0;var i={id:n.getAttribute("data-id"),image:n.getAttribute("data-url")},s=instant_img_localize.root+"instant-images/upload/";(0,a.default)({method:"POST",url:s,headers:{"X-WP-Nonce":instant_img_localize.nonce,"Content-Type":"application/json"},data:{data:JSON.stringify(i)}}).then(function(e){var a=e.data;if(a&&200==e.status){var s=a.error,u=a.path,l=a.filename;s?t.uploadError(n,r,a.msg):(t.resizeImage(u,l,n,r,o),t.triggerUnsplashDownload(i.id))}else t.uploadError(n,r,instant_img_localize.error_upload)}).catch(function(e){console.log(e)})}},{key:"resizeImage",value:function(e,t,n,r,o){var i=this;n.classList.remove("uploading"),n.classList.add("resizing"),o.innerHTML=instant_img_localize.resizing;var s={path:e,filename:t,custom_filename:n.getAttribute("data-filename"),title:n.getAttribute("data-title"),alt:n.getAttribute("data-alt"),caption:n.getAttribute("data-caption")},u=instant_img_localize.root+"instant-images/resize/",l="";(0,a.default)({method:"POST",url:u,headers:{"X-WP-Nonce":instant_img_localize.nonce,"Content-Type":"application/json"},data:{data:JSON.stringify(s)}}).then(function(e){var t=e.data;if(t&&200==e.status){var o=t.success,a=t.id,u=t.url,c=t.admin_url;if(l=t.msg,o){var p=c+"post.php?post="+a+"&action=edit";i.uploadComplete(n,r,l,p),i.is_block_editor&&i.setAsFeaturedImage&&(i.SetFeaturedImage(a),i.setAsFeaturedImage=!1),i.is_block_editor&&i.insertIntoPost&&(u&&i.InsertImage(u,s.caption,s.alt),i.insertIntoPost=!1),"true"!==i.container.dataset.mediaPopup||i.is_block_editor||(window.location="media-upload.php?type=image&tab=library&attachment_id="+a)}else i.uploadError(n,r,l)}else i.uploadError(n,r,instant_img_localize.error_upload)}).catch(function(e){console.log(e)})}},{key:"triggerUnsplashDownload",value:function(e){var t=i.default.photo_api+"/"+e+"/download/"+i.default.app_id;fetch(t).then(function(e){return e.json()}).then(function(e){}).catch(function(e){console.log(e)})}},{key:"setFeaturedImageClick",value:function(e){var t=e.currentTarget;if(!t)return!1;var n=t.parentNode.parentNode.parentNode.querySelector("a.upload");n&&(this.setAsFeaturedImage=!0,n.click())}},{key:"insertImageIntoPost",value:function(e){var t=e.currentTarget;if(!t)return!1;var n=t.parentNode.parentNode.parentNode.querySelector("a.upload");n&&(this.insertIntoPost=!0,n.click())}},{key:"uploadComplete",value:function(e,t,n,r){this.setImageTitle(e,n),t.classList.remove("in-progress"),t.classList.add("uploaded"),t.querySelector(".edit-photo").style.display="none",t.querySelector(".edit-photo-admin").style.display="inline-block",t.querySelector(".edit-photo-admin").href=r,t.querySelector(".edit-photo-admin").target="_balnk",this.is_block_editor&&(t.querySelector(".insert").style.display="none",t.querySelector(".set-featured").style.display="none"),e.classList.remove("uploading"),e.classList.remove("resizing"),e.classList.add("success"),this.inProgress=!1,this.container.classList.contains("editor")&&void 0!==wp.media&&(null!==wp.media.frame.content.get()?(wp.media.frame.content.get().collection.props.set({ignore:+new Date}),wp.media.frame.content.get().options.selection.reset()):wp.media.frame.library.props.set({ignore:+new Date}))}},{key:"uploadError",value:function(e,t,n){e.classList.remove("uploading"),e.classList.remove("resizing"),e.classList.add("errors"),this.setImageTitle(e,n),this.inProgress=!1,console.warn(n)}},{key:"setImageTitle",value:function(e,t){e.setAttribute("title",t)}},{key:"showEditScreen",value:function(e){e.preventDefault();var t=e.currentTarget.closest(".photo"),n=(t.querySelector('input[name="filename"]'),t.querySelector(".edit-screen"));n.classList.add("editing"),setTimeout(function(){n.focus()},150)}},{key:"handleEditChange",value:function(e){var t=e.target.name;"filename"===t&&this.setState({filename:e.target.value}),"title"===t&&this.setState({title:e.target.value}),"alt"===t&&this.setState({alt:e.target.value}),"caption"===t&&this.setState({caption:e.target.value})}},{key:"saveEditChange",value:function(e){var t=e.currentTarget.closest(".photo"),n=t.querySelector('input[name="filename"]');this.filename=n.value;var r=t.querySelector('input[name="title"]');this.title=r.value;var o=t.querySelector('input[name="alt"]');this.alt=o.value;var i=t.querySelector('textarea[name="caption"]');this.caption=i.value,t.querySelector(".edit-screen").classList.remove("editing"),t.querySelector("a.upload").click()}},{key:"cancelEditChange",value:function(e){var t=e.currentTarget.closest(".photo");if(t){var n=t.querySelector("a.upload"),r=t.querySelector('input[name="filename"]');r.value=r.dataset.original,this.setState({filename:r.value});var o=t.querySelector('input[name="title"]');o.value=o.dataset.original,this.setState({title:o.value});var i=t.querySelector('input[name="alt"]');i.value=i.dataset.original,this.setState({alt:i.value});var a=t.querySelector('textarea[name="caption"]');a.value=a.dataset.original,this.setState({caption:a.value}),t.querySelector(".edit-screen").classList.remove("editing"),n.focus()}}},{key:"render",value:function(){var e=this;return o.default.createElement("article",{className:"photo"},o.default.createElement("div",{className:"photo--wrap"},o.default.createElement("div",{className:"img-wrap"},o.default.createElement("a",{className:"upload loaded",href:this.full_size,"data-id":this.id,"data-url":this.full_size,"data-filename":this.state.filename,"data-title":this.state.title,"data-alt":this.state.alt,"data-caption":this.state.caption,title:instant_img_localize.upload,onClick:function(t){return e.uploadPhoto(t)}},o.default.createElement("img",{src:this.img,alt:""}),o.default.createElement("div",{className:"status"})),o.default.createElement("div",{className:"notice-msg"}),o.default.createElement("div",{className:"user-controls"},o.default.createElement("a",{className:"user fade",href:"https://unsplash.com/@"+this.user+"?utm_source=wordpress-instant-images&utm_medium=referral",target:"_blank",title:this.view_all+" @"+this.user},o.default.createElement("div",{className:"user-wrap"},this.user_photo.length>0&&o.default.createElement("img",{src:this.user_photo}),this.user)),o.default.createElement("div",{className:"photo-options"},this.is_block_editor&&o.default.createElement("a",{className:"set-featured fade",href:"#",onClick:function(t){return e.setFeaturedImageClick(t)},title:instant_img_localize.set_as_featured},o.default.createElement("i",{className:"fa fa-picture-o","aria-hidden":"true"}),o.default.createElement("span",{className:"offscreen"},instant_img_localize.set_as_featured)),this.is_block_editor&&o.default.createElement("a",{className:"insert fade",href:"#",onClick:function(t){return e.insertImageIntoPost(t)},title:instant_img_localize.insert_into_post},o.default.createElement("i",{className:"fa fa-plus","aria-hidden":"true"}),o.default.createElement("span",{className:"offscreen"},instant_img_localize.insert_into_post)),o.default.createElement("a",{className:"edit-photo-admin fade",href:"#",title:instant_img_localize.edit_upload},o.default.createElement("i",{className:"fa fa-pencil","aria-hidden":"true"}),o.default.createElement("span",{className:"offscreen"},instant_img_localize.edit_upload)),o.default.createElement("a",{className:"edit-photo fade",href:"#",title:instant_img_localize.edit_details,onClick:function(t){return e.showEditScreen(t)}},o.default.createElement("i",{className:"fa fa-cog","aria-hidden":"true"}),o.default.createElement("span",{className:"offscreen"},instant_img_localize.edit_details)))),o.default.createElement("div",{className:"options",title:this.likes+" "+this.like_text},o.default.createElement("span",{className:"likes"},o.default.createElement("i",{className:"fa fa-heart heart-like","aria-hidden":"true"})," ",this.likes),o.default.createElement("a",{href:this.link,title:instant_img_localize.view_on_unsplash,target:"_blank"},o.default.createElement("i",{className:"fa fa-external-link","aria-hidden":"true"}),o.default.createElement("span",{className:"offscreen"},instant_img_localize.view_on_unsplash)))),o.default.createElement("div",{className:"edit-screen",tabIndex:"0"},o.default.createElement("div",{className:"edit-screen--title"},o.default.createElement("p",{className:"heading"},instant_img_localize.edit_details),o.default.createElement("p",null,instant_img_localize.edit_details_intro,".")),o.default.createElement("label",null,o.default.createElement("span",null,instant_img_localize.edit_filename,":"),o.default.createElement("input",{type:"text",name:"filename","data-original":this.filename,placeholder:this.filename,value:this.state.filename,onChange:function(t){return e.handleEditChange(t)}}),o.default.createElement("em",null,".jpg")),o.default.createElement("label",null,o.default.createElement("span",null,instant_img_localize.edit_title,":"),o.default.createElement("input",{type:"text",name:"title","data-original":this.title,placeholder:this.title,value:this.state.title,onChange:function(t){return e.handleEditChange(t)}})),o.default.createElement("label",null,o.default.createElement("span",null,instant_img_localize.edit_alt,":"),o.default.createElement("input",{type:"text",name:"alt","data-original":"",value:this.state.alt,onChange:function(t){return e.handleEditChange(t)}})),o.default.createElement("label",null,o.default.createElement("span",null,instant_img_localize.edit_caption,":"),o.default.createElement("textarea",{rows:"3",name:"caption","data-original":"",onChange:function(t){return e.handleEditChange(t)},value:this.state.caption})),o.default.createElement("div",{className:"edit-screen--controls"},o.default.createElement("button",{type:"button",className:"button",onClick:function(t){return e.cancelEditChange(t)}},instant_img_localize.cancel),"  ",o.default.createElement("button",{type:"button",className:"button button-primary",onClick:function(t){return e.saveEditChange(t)}},instant_img_localize.upload_now)))))}}]),t}();t.default=u},function(e,t,n){e.exports=n(186)},function(e,t,n){"use strict";var r=n(7),o=n(86),i=n(188),a=n(49);function s(e){var t=new i(e),n=o(i.prototype.request,t);return r.extend(n,i.prototype,t),r.extend(n,t),n}var u=s(a);u.Axios=i,u.create=function(e){return s(r.merge(a,e))},u.Cancel=n(90),u.CancelToken=n(202),u.isCancel=n(89),u.all=function(e){return Promise.all(e)},u.spread=n(203),e.exports=u,e.exports.default=u},function(e,t){function n(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}
32
  /*!
33
  * Determine if an object is a Buffer
34
  *
35
  * @author Feross Aboukhadijeh <https://feross.org>
36
  * @license MIT
37
  */
38
- e.exports=function(e){return null!=e&&(n(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&n(e.slice(0,0))}(e)||!!e._isBuffer)}},function(e,t,n){"use strict";var r=n(49),o=n(7),i=n(197),a=n(198);function s(e){this.defaults=e,this.interceptors={request:new i,response:new i}}s.prototype.request=function(e){"string"==typeof e&&(e=o.merge({url:arguments[0]},arguments[1])),(e=o.merge(r,{method:"get"},this.defaults,e)).method=e.method.toLowerCase();var t=[a,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n},o.forEach(["delete","get","head","options"],function(e){s.prototype[e]=function(t,n){return this.request(o.merge(n||{},{method:e,url:t}))}}),o.forEach(["post","put","patch"],function(e){s.prototype[e]=function(t,n,r){return this.request(o.merge(r||{},{method:e,url:t,data:n}))}}),e.exports=s},function(e,t,n){"use strict";var r=n(7);e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},function(e,t,n){"use strict";var r=n(88);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e}},function(e,t,n){"use strict";var r=n(7);function o(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else if(r.isURLSearchParams(t))i=t.toString();else{var a=[];r.forEach(t,function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),a.push(o(t)+"="+o(e))}))}),i=a.join("&")}return i&&(e+=(-1===e.indexOf("?")?"?":"&")+i),e}},function(e,t,n){"use strict";var r=n(7),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,a={};return e?(r.forEach(e.split("\n"),function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(a[t]&&o.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}}),a):a}},function(e,t,n){"use strict";var r=n(7);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=o(window.location.href),function(t){var n=r.isString(t)?o(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},function(e,t,n){"use strict";var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function o(){this.message="String contains an invalid character"}o.prototype=new Error,o.prototype.code=5,o.prototype.name="InvalidCharacterError",e.exports=function(e){for(var t,n,i=String(e),a="",s=0,u=r;i.charAt(0|s)||(u="=",s%1);a+=u.charAt(63&t>>8-s%1*8)){if((n=i.charCodeAt(s+=.75))>255)throw new o;t=t<<8|n}return a}},function(e,t,n){"use strict";var r=n(7);e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,o,i,a){var s=[];s.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),r.isString(o)&&s.push("path="+o),r.isString(i)&&s.push("domain="+i),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(e,t,n){"use strict";var r=n(7);function o(){this.handlers=[]}o.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){r.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=o},function(e,t,n){"use strict";var r=n(7),o=n(199),i=n(89),a=n(49),s=n(200),u=n(201);function l(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return l(e),e.baseURL&&!s(e.url)&&(e.url=u(e.baseURL,e.url)),e.headers=e.headers||{},e.data=o(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]}),(e.adapter||a.adapter)(e).then(function(t){return l(e),t.data=o(t.data,t.headers,e.transformResponse),t},function(t){return i(t)||(l(e),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}},function(e,t,n){"use strict";var r=n(7);e.exports=function(e,t,n){return r.forEach(n,function(n){e=n(e,t)}),e}},function(e,t,n){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t,n){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,n){"use strict";var r=n(90);function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new r(e),t(n.reason))})}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var e;return{token:new o(function(t){e=t}),cancel:e}},e.exports=o},function(e,t,n){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=function(){function e(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(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(29),a=(r=i)&&r.__esModule?r:{default:r};var s=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,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,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}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)}(t,a.default.Component),o(t,[{key:"resetSearch",value:function(){document.querySelector(".control-nav").querySelector("li a.latest").click()}},{key:"render",value:function(){var e=this;return a.default.createElement("div",{className:this.props.isSearch?"searchResults":"searchResults hide"},a.default.createElement("span",{title:this.props.title},this.props.total),a.default.createElement("a",{href:"javascript:void(0)",title:instant_img_localize.clear_search,onClick:function(t){return e.resetSearch()}},"x"))}}]),t}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(206),i=(r=o)&&r.__esModule?r:{default:r};t.default=function(e){var t=e.color,n=void 0===t?"unsplash":t;return React.createElement("span",{className:(0,i.default)("instant-images-sidebar-icon","color-"+n)},React.createElement("svg",{viewBox:"0 0 31 58",width:"13px",height:"24px"},React.createElement("title",null,"Instant Images Logo"),React.createElement("polygon",{points:"20 0 20 23 31 23 11 58 11 34 0 34 20 0",fill:"#4a7bc5"})))}},function(e,t,n){var r;
 
 
 
 
 
 
 
 
 
 
 
39
  /*!
40
  Copyright (c) 2017 Jed Watson.
41
  Licensed under the MIT License (MIT), see
@@ -46,4 +69,4 @@ e.exports=function(e){return null!=e&&(n(e)||function(e){return"function"==typeo
46
  Licensed under the MIT License (MIT), see
47
  http://jedwatson.github.io/classnames
48
  */
49
- !function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var i=typeof r;if("string"===i||"number"===i)e.push(r);else if(Array.isArray(r)&&r.length){var a=o.apply(null,r);a&&e.push(a)}else if("object"===i)for(var s in r)n.call(r,s)&&r[s]&&e.push(s)}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},,,,,,,,function(e,t,n){"use strict";i(n(205));var r=i(n(215)),o=i(n(218));function i(e){return e&&e.__esModule?e:{default:e}}var a=wp.element.Fragment,s=wp.editPost;s.PluginSidebar,s.PluginSidebarMoreMenuItem;(0,wp.plugins.registerPlugin)("instant-images",{render:function(){return React.createElement(a,null,React.createElement(o.default,null),React.createElement(r.default,null))}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});s(n(206));var r=s(n(205)),o=s(n(216)),i=s(n(217)),a=s(n(177));function s(e){return e&&e.__esModule?e:{default:e}}wp.element.Component;var u=wp.editPost,l=u.PluginSidebar;u.PluginSidebarMoreMenuItem;t.default=function(){return React.createElement(l,{icon:React.createElement(r.default,{borderless:!0,color:"unsplash"}),name:"instant-images-sidebar",title:"Instant Images"},React.createElement("div",{className:"instant-img-container"},React.createElement(a.default,{editor:"gutenberg",page:"1",orderby:"latest",service:"unsplash",SetFeaturedImage:o.default,InsertImage:i.default})))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=wp.data.dispatch;t.default=function(e){if(null===e)return!1;r("core/editor").editPost({featured_media:e})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=wp.blocks.createBlock;t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(""===e)return!1;var o=r("core/image",{url:e,caption:t,alt:n});wp.data.dispatch("core/editor").insertBlocks(o)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});o(n(206));var r=o(n(205));function o(e){return e&&e.__esModule?e:{default:e}}wp.element.Component;var i=wp.editPost,a=(i.PluginSidebar,i.PluginSidebarMoreMenuItem);t.default=function(){return React.createElement(a,{icon:React.createElement(r.default,{color:"unsplash"}),target:"instant-images-sidebar"},"Instant Images")}}]);
1
+ !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=221)}([function(e,t,n){"use strict";var r=function(e){};e.exports=function(e,t,n,o,i,a,s,u){if(r(t),!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,o,i,a,s,u],p=0;(l=new Error(t.replace(/%s/g,function(){return c[p++]}))).name="Invariant Violation"}throw l.framesToPop=1,l}}},function(e,t,n){"use strict";e.exports=function(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);n+=" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";var o=new Error(n);throw o.name="Invariant Violation",o.framesToPop=1,o}},function(e,t,n){"use strict";var r=n(8);e.exports=r},function(e,t,n){"use strict";
2
  /*
3
  object-assign
4
  (c) Sindre Sorhus
5
  @license MIT
6
+ */var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,a,s=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),u=1;u<arguments.length;u++){for(var l in n=Object(arguments[u]))o.call(n,l)&&(s[l]=n[l]);if(r){a=r(n);for(var c=0;c<a.length;c++)i.call(n,a[c])&&(s[a[c]]=n[a[c]])}}return s}},function(e,t,n){"use strict";var r=n(1),o=n(16),i=n(58),a=(n(0),o.ID_ATTRIBUTE_NAME),s=i,u="__reactInternalInstance$"+Math.random().toString(36).slice(2);function l(e,t){return 1===e.nodeType&&e.getAttribute(a)===String(t)||8===e.nodeType&&e.nodeValue===" react-text: "+t+" "||8===e.nodeType&&e.nodeValue===" react-empty: "+t+" "}function c(e){for(var t;t=e._renderedComponent;)e=t;return e}function p(e,t){var n=c(e);n._hostNode=t,t[u]=n}function d(e,t){if(!(e._flags&s.hasCachedChildNodes)){var n=e._renderedChildren,o=t.firstChild;e:for(var i in n)if(n.hasOwnProperty(i)){var a=n[i],u=c(a)._domID;if(0!==u){for(;null!==o;o=o.nextSibling)if(l(o,u)){p(a,o);continue e}r("32",u)}}e._flags|=s.hasCachedChildNodes}}function f(e){if(e[u])return e[u];for(var t,n,r=[];!e[u];){if(r.push(e),!e.parentNode)return null;e=e.parentNode}for(;e&&(n=e[u]);e=r.pop())t=n,r.length&&d(n,e);return t}var h={getClosestInstanceFromNode:f,getInstanceFromNode:function(e){var t=f(e);return null!=t&&t._hostNode===e?t:null},getNodeFromInstance:function(e){if(void 0===e._hostNode&&r("33"),e._hostNode)return e._hostNode;for(var t=[];!e._hostNode;)t.push(e),e._hostParent||r("34"),e=e._hostParent;for(;t.length;e=t.pop())d(e,e._hostNode);return e._hostNode},precacheChildNodes:d,precacheNode:p,uncacheNode:function(e){var t=e._hostNode;t&&(delete t[u],e._hostNode=null)}};e.exports=h},function(e,t,n){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};e.exports=o},function(e,t,n){"use strict";e.exports={debugTool:null}},function(e,t,n){"use strict";var r=n(88),o=n(192),i=Object.prototype.toString;function a(e){return"[object Array]"===i.call(e)}function s(e){return null!==e&&"object"==typeof e}function u(e){return"[object Function]"===i.call(e)}function l(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),a(e))for(var n=0,r=e.length;n<r;n++)t.call(null,e[n],n,e);else for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.call(null,e[o],o,e)}e.exports={isArray:a,isArrayBuffer:function(e){return"[object ArrayBuffer]"===i.call(e)},isBuffer:o,isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:s,isUndefined:function(e){return void 0===e},isDate:function(e){return"[object Date]"===i.call(e)},isFile:function(e){return"[object File]"===i.call(e)},isBlob:function(e){return"[object Blob]"===i.call(e)},isFunction:u,isStream:function(e){return s(e)&&u(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product)&&"undefined"!=typeof window&&"undefined"!=typeof document},forEach:l,merge:function e(){var t={};function n(n,r){"object"==typeof t[r]&&"object"==typeof n?t[r]=e(t[r],n):t[r]=n}for(var r=0,o=arguments.length;r<o;r++)l(arguments[r],n);return t},extend:function(e,t,n){return l(t,function(t,o){e[o]=n&&"function"==typeof t?r(t,n):t}),e},trim:function(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}}},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";var r=n(1),o=n(3),i=n(63),a=n(13),s=n(64),u=n(14),l=n(24),c=n(0),p=[],d=0,f=i.getPooled(),h=!1,m=null;function v(){C.ReactReconcileTransaction&&m||r("123")}var g=[{initialize:function(){this.dirtyComponentsLength=p.length},close:function(){this.dirtyComponentsLength!==p.length?(p.splice(0,this.dirtyComponentsLength),E()):p.length=0}},{initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}}];function y(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=i.getPooled(),this.reconcileTransaction=C.ReactReconcileTransaction.getPooled(!0)}function _(e,t){return e._mountOrder-t._mountOrder}function b(e){var t=e.dirtyComponentsLength;t!==p.length&&r("124",t,p.length),p.sort(_),d++;for(var n=0;n<t;n++){var o,i=p[n],a=i._pendingCallbacks;if(i._pendingCallbacks=null,s.logTopLevelRenders){var l=i;i._currentElement.type.isReactTopLevelWrapper&&(l=i._renderedComponent),o="React update: "+l.getName(),console.time(o)}if(u.performUpdateIfNecessary(i,e.reconcileTransaction,d),o&&console.timeEnd(o),a)for(var c=0;c<a.length;c++)e.callbackQueue.enqueue(a[c],i.getPublicInstance())}}o(y.prototype,l,{getTransactionWrappers:function(){return g},destructor:function(){this.dirtyComponentsLength=null,i.release(this.callbackQueue),this.callbackQueue=null,C.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return l.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),a.addPoolingTo(y);var E=function(){for(;p.length||h;){if(p.length){var e=y.getPooled();e.perform(b,null,e),y.release(e)}if(h){h=!1;var t=f;f=i.getPooled(),t.notifyAll(),i.release(t)}}};var C={ReactReconcileTransaction:null,batchedUpdates:function(e,t,n,r,o,i){return v(),m.batchedUpdates(e,t,n,r,o,i)},enqueueUpdate:function e(t){v(),m.isBatchingUpdates?(p.push(t),null==t._updateBatchNumber&&(t._updateBatchNumber=d+1)):m.batchedUpdates(e,t)},flushBatchedUpdates:E,injection:{injectReconcileTransaction:function(e){e||r("126"),C.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){e||r("127"),"function"!=typeof e.batchedUpdates&&r("128"),"boolean"!=typeof e.isBatchingUpdates&&r("129"),m=e}},asap:function(e,t){c(m.isBatchingUpdates,"ReactUpdates.asap: Can't enqueue an asap callback in a context whereupdates are not being batched."),f.enqueue(e,t),h=!0}};e.exports=C},function(e,t,n){"use strict";e.exports={current:null}},function(e,t,n){"use strict";var r=n(3),o=n(13),i=n(8),a=(n(2),["dispatchConfig","_targetInst","nativeEvent","isDefaultPrevented","isPropagationStopped","_dispatchListeners","_dispatchInstances"]),s={type:null,target:null,currentTarget:i.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};function u(e,t,n,r){this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n;var o=this.constructor.Interface;for(var a in o)if(o.hasOwnProperty(a)){0;var s=o[a];s?this[a]=s(n):"target"===a?this.target=r:this[a]=n[a]}var u=null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue;return this.isDefaultPrevented=u?i.thatReturnsTrue:i.thatReturnsFalse,this.isPropagationStopped=i.thatReturnsFalse,this}r(u.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=i.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=i.thatReturnsTrue)},persist:function(){this.isPersistent=i.thatReturnsTrue},isPersistent:i.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;for(var n=0;n<a.length;n++)this[a[n]]=null}}),u.Interface=s,u.augmentClass=function(e,t){var n=function(){};n.prototype=this.prototype;var i=new n;r(i,e.prototype),e.prototype=i,e.prototype.constructor=e,e.Interface=r({},this.Interface,t),e.augmentClass=this.augmentClass,o.addPoolingTo(e,o.fourArgumentPooler)},o.addPoolingTo(u,o.fourArgumentPooler),e.exports=u},function(e,t,n){"use strict";var r=n(3),o=n(53),i=n(95),a=n(100),s=n(15),u=n(101),l=n(105),c=n(106),p=n(108),d=s.createElement,f=s.createFactory,h=s.cloneElement,m=r,v={Children:{map:i.map,forEach:i.forEach,count:i.count,toArray:i.toArray,only:p},Component:o.Component,PureComponent:o.PureComponent,createElement:d,cloneElement:h,isValidElement:s.isValidElement,PropTypes:u,createClass:c,createFactory:f,createMixin:function(e){return e},DOM:a,version:l,__spread:m};e.exports=v},function(e,t,n){"use strict";var r=n(1),o=(n(0),function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)}),i=function(e){e instanceof this||r("25"),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)},a=o,s={addPoolingTo:function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||a,n.poolSize||(n.poolSize=10),n.release=i,n},oneArgumentPooler:o,twoArgumentPooler:function(e,t){if(this.instancePool.length){var n=this.instancePool.pop();return this.call(n,e,t),n}return new this(e,t)},threeArgumentPooler:function(e,t,n){if(this.instancePool.length){var r=this.instancePool.pop();return this.call(r,e,t,n),r}return new this(e,t,n)},fourArgumentPooler:function(e,t,n,r){if(this.instancePool.length){var o=this.instancePool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)}};e.exports=s},function(e,t,n){"use strict";var r=n(116);n(6),n(2);function o(){r.attachRefs(this,this._currentElement)}var i={mountComponent:function(e,t,n,r,i,a){var s=e.mountComponent(t,n,r,i,a);return e._currentElement&&null!=e._currentElement.ref&&t.getReactMountReady().enqueue(o,e),s},getHostNode:function(e){return e.getHostNode()},unmountComponent:function(e,t){r.detachRefs(e,e._currentElement),e.unmountComponent(t)},receiveComponent:function(e,t,n,i){var a=e._currentElement;if(t!==a||i!==e._context){0;var s=r.shouldUpdateRefs(a,t);s&&r.detachRefs(e,a),e.receiveComponent(t,n,i),s&&e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(o,e)}},performUpdateIfNecessary:function(e,t,n){e._updateBatchNumber===n&&e.performUpdateIfNecessary(t)}};e.exports=i},function(e,t,n){"use strict";var r=n(3),o=n(10),i=(n(2),n(55),Object.prototype.hasOwnProperty),a=n(56),s={key:!0,ref:!0,__self:!0,__source:!0};function u(e){return void 0!==e.ref}function l(e){return void 0!==e.key}var c=function(e,t,n,r,o,i,s){return{$$typeof:a,type:e,key:t,ref:n,props:s,_owner:i}};c.createElement=function(e,t,n){var r,a={},p=null,d=null;if(null!=t)for(r in u(t)&&(d=t.ref),l(t)&&(p=""+t.key),void 0===t.__self?null:t.__self,void 0===t.__source?null:t.__source,t)i.call(t,r)&&!s.hasOwnProperty(r)&&(a[r]=t[r]);var f=arguments.length-2;if(1===f)a.children=n;else if(f>1){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];0,a.children=h}if(e&&e.defaultProps){var v=e.defaultProps;for(r in v)void 0===a[r]&&(a[r]=v[r])}return c(e,p,d,0,0,o.current,a)},c.createFactory=function(e){var t=c.createElement.bind(null,e);return t.type=e,t},c.cloneAndReplaceKey=function(e,t){return c(e.type,t,e.ref,e._self,e._source,e._owner,e.props)},c.cloneElement=function(e,t,n){var a,p,d=r({},e.props),f=e.key,h=e.ref,m=(e._self,e._source,e._owner);if(null!=t)for(a in u(t)&&(h=t.ref,m=o.current),l(t)&&(f=""+t.key),e.type&&e.type.defaultProps&&(p=e.type.defaultProps),t)i.call(t,a)&&!s.hasOwnProperty(a)&&(void 0===t[a]&&void 0!==p?d[a]=p[a]:d[a]=t[a]);var v=arguments.length-2;if(1===v)d.children=n;else if(v>1){for(var g=Array(v),y=0;y<v;y++)g[y]=arguments[y+2];d.children=g}return c(e.type,f,h,0,0,m,d)},c.isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},e.exports=c},function(e,t,n){"use strict";var r=n(1);n(0);function o(e,t){return(e&t)===t}var i={MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,injectDOMPropertyConfig:function(e){var t=i,n=e.Properties||{},a=e.DOMAttributeNamespaces||{},u=e.DOMAttributeNames||{},l=e.DOMPropertyNames||{},c=e.DOMMutationMethods||{};for(var p in e.isCustomAttribute&&s._isCustomAttributeFunctions.push(e.isCustomAttribute),n){s.properties.hasOwnProperty(p)&&r("48",p);var d=p.toLowerCase(),f=n[p],h={attributeName:d,attributeNamespace:null,propertyName:p,mutationMethod:null,mustUseProperty:o(f,t.MUST_USE_PROPERTY),hasBooleanValue:o(f,t.HAS_BOOLEAN_VALUE),hasNumericValue:o(f,t.HAS_NUMERIC_VALUE),hasPositiveNumericValue:o(f,t.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:o(f,t.HAS_OVERLOADED_BOOLEAN_VALUE)};if(h.hasBooleanValue+h.hasNumericValue+h.hasOverloadedBooleanValue<=1||r("50",p),u.hasOwnProperty(p)){var m=u[p];h.attributeName=m}a.hasOwnProperty(p)&&(h.attributeNamespace=a[p]),l.hasOwnProperty(p)&&(h.propertyName=l[p]),c.hasOwnProperty(p)&&(h.mutationMethod=c[p]),s.properties[p]=h}}},a=":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",s={ID_ATTRIBUTE_NAME:"data-reactid",ROOT_ATTRIBUTE_NAME:"data-reactroot",ATTRIBUTE_NAME_START_CHAR:a,ATTRIBUTE_NAME_CHAR:a+"\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",properties:{},getPossibleStandardName:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<s._isCustomAttributeFunctions.length;t++){if((0,s._isCustomAttributeFunctions[t])(e))return!0}return!1},injection:i};e.exports=s},function(e,t,n){"use strict";var r=n(38),o=n(26),i=n(39),a=n(68),s="undefined"!=typeof document&&"number"==typeof document.documentMode||"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent&&/\bEdge\/\d/.test(navigator.userAgent);function u(e){if(s){var t=e.node,n=e.children;if(n.length)for(var r=0;r<n.length;r++)l(t,n[r],null);else null!=e.html?o(t,e.html):null!=e.text&&a(t,e.text)}}var l=i(function(e,t,n){11===t.node.nodeType||1===t.node.nodeType&&"object"===t.node.nodeName.toLowerCase()&&(null==t.node.namespaceURI||t.node.namespaceURI===r.html)?(u(t),e.insertBefore(t.node,n)):(e.insertBefore(t.node,n),u(t))});function c(){return this.node.nodeName}function p(e){return{node:e,children:[],html:null,text:null,toString:c}}p.insertTreeBefore=l,p.replaceChildWithTree=function(e,t){e.parentNode.replaceChild(t.node,e),u(t)},p.queueChild=function(e,t){s?e.children.push(t):e.node.appendChild(t.node)},p.queueHTML=function(e,t){s?e.html=t:o(e.node,t)},p.queueText=function(e,t){s?e.text=t:a(e.node,t)},e.exports=p},function(e,t,n){"use strict";e.exports=function(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);n+=" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";var o=new Error(n);throw o.name="Invariant Violation",o.framesToPop=1,o}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var r=n(21),o=n(32),i=n(60),a=n(61),s=(n(2),r.getListener);function u(e,t,n){var r=function(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return s(e,r)}(e,n,t);r&&(n._dispatchListeners=i(n._dispatchListeners,r),n._dispatchInstances=i(n._dispatchInstances,e))}function l(e){e&&e.dispatchConfig.phasedRegistrationNames&&o.traverseTwoPhase(e._targetInst,u,e)}function c(e){if(e&&e.dispatchConfig.phasedRegistrationNames){var t=e._targetInst,n=t?o.getParentInstance(t):null;o.traverseTwoPhase(n,u,e)}}function p(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,o=s(e,r);o&&(n._dispatchListeners=i(n._dispatchListeners,o),n._dispatchInstances=i(n._dispatchInstances,e))}}function d(e){e&&e.dispatchConfig.registrationName&&p(e._targetInst,0,e)}var f={accumulateTwoPhaseDispatches:function(e){a(e,l)},accumulateTwoPhaseDispatchesSkipTarget:function(e){a(e,c)},accumulateDirectDispatches:function(e){a(e,d)},accumulateEnterLeaveDispatches:function(e,t,n,r){o.traverseEnterLeave(n,r,p,e,t)}};e.exports=f},function(e,t,n){"use strict";var r=n(1),o=n(31),i=n(32),a=n(33),s=n(60),u=n(61),l=(n(0),{}),c=null,p=function(e,t){e&&(i.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e))},d=function(e){return p(e,!0)},f=function(e){return p(e,!1)},h=function(e){return"."+e._rootNodeID};var m={injection:{injectEventPluginOrder:o.injectEventPluginOrder,injectEventPluginsByName:o.injectEventPluginsByName},putListener:function(e,t,n){"function"!=typeof n&&r("94",t,typeof n);var i=h(e);(l[t]||(l[t]={}))[i]=n;var a=o.registrationNameModules[t];a&&a.didPutListener&&a.didPutListener(e,t,n)},getListener:function(e,t){var n=l[t];if(function(e,t,n){switch(e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":return!(!n.disabled||(r=t,"button"!==r&&"input"!==r&&"select"!==r&&"textarea"!==r));default:return!1}var r}(t,e._currentElement.type,e._currentElement.props))return null;var r=h(e);return n&&n[r]},deleteListener:function(e,t){var n=o.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t);var r=l[t];r&&delete r[h(e)]},deleteAllListeners:function(e){var t=h(e);for(var n in l)if(l.hasOwnProperty(n)&&l[n][t]){var r=o.registrationNameModules[n];r&&r.willDeleteListener&&r.willDeleteListener(e,n),delete l[n][t]}},extractEvents:function(e,t,n,r){for(var i,a=o.plugins,u=0;u<a.length;u++){var l=a[u];if(l){var c=l.extractEvents(e,t,n,r);c&&(i=s(i,c))}}return i},enqueueEvents:function(e){e&&(c=s(c,e))},processEventQueue:function(e){var t=c;c=null,u(t,e?d:f),c&&r("95"),a.rethrowCaughtError()},__purge:function(){l={}},__getListenerBank:function(){return l}};e.exports=m},function(e,t,n){"use strict";var r=n(11),o=n(34),i={view:function(e){if(e.view)return e.view;var t=o(e);if(t.window===t)return t;var n=t.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(e){return e.detail||0}};function a(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(a,i),e.exports=a},function(e,t,n){"use strict";var r={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}};e.exports=r},function(e,t,n){"use strict";var r=n(1),o=(n(0),{}),i={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(e,t,n,o,i,a,s,u){var l,c;this.isInTransaction()&&r("27");try{this._isInTransaction=!0,l=!0,this.initializeAll(0),c=e.call(t,n,o,i,a,s,u),l=!1}finally{try{if(l)try{this.closeAll(0)}catch(e){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return c},initializeAll:function(e){for(var t=this.transactionWrappers,n=e;n<t.length;n++){var r=t[n];try{this.wrapperInitData[n]=o,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===o)try{this.initializeAll(n+1)}catch(e){}}}},closeAll:function(e){this.isInTransaction()||r("28");for(var t=this.transactionWrappers,n=e;n<t.length;n++){var i,a=t[n],s=this.wrapperInitData[n];try{i=!0,s!==o&&a.close&&a.close.call(this,s),i=!1}finally{if(i)try{this.closeAll(n+1)}catch(e){}}}this.wrapperInitData.length=0}};e.exports=i},function(e,t,n){"use strict";var r=n(22),o=n(67),i={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:n(36),button:function(e){var t=e.button;return"which"in e?t:2===t?2:4===t?1:0},buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},pageX:function(e){return"pageX"in e?e.pageX:e.clientX+o.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+o.currentScrollTop}};function a(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(a,i),e.exports=a},function(e,t,n){"use strict";var r,o=n(5),i=n(38),a=/^[ \r\n\t\f]/,s=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,u=n(39)(function(e,t){if(e.namespaceURI!==i.svg||"innerHTML"in e)e.innerHTML=t;else{(r=r||document.createElement("div")).innerHTML="<svg>"+t+"</svg>";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(o.canUseDOM){var l=document.createElement("div");l.innerHTML=" ",""===l.innerHTML&&(u=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&s.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),l=null}e.exports=u},function(e,t,n){"use strict";var r=/["'&<>]/;e.exports=function(e){return"boolean"==typeof e||"number"==typeof e?""+e:function(e){var t,n=""+e,o=r.exec(n);if(!o)return n;var i="",a=0,s=0;for(a=o.index;a<n.length;a++){switch(n.charCodeAt(a)){case 34:t="&quot;";break;case 38:t="&amp;";break;case 39:t="&#x27;";break;case 60:t="&lt;";break;case 62:t="&gt;";break;default:continue}s!==a&&(i+=n.substring(s,a)),s=a+1,i+=t}return s!==a?i+n.substring(s,a):i}(e)}},function(e,t,n){"use strict";var r,o=n(3),i=n(31),a=n(137),s=n(67),u=n(138),l=n(35),c={},p=!1,d=0,f={topAbort:"abort",topAnimationEnd:u("animationend")||"animationend",topAnimationIteration:u("animationiteration")||"animationiteration",topAnimationStart:u("animationstart")||"animationstart",topBlur:"blur",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topScroll:"scroll",topSeeked:"seeked",topSeeking:"seeking",topSelectionChange:"selectionchange",topStalled:"stalled",topSuspend:"suspend",topTextInput:"textInput",topTimeUpdate:"timeupdate",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topTransitionEnd:u("transitionend")||"transitionend",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},h="_reactListenersID"+String(Math.random()).slice(2);var m=o({},a,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(m.handleTopLevel),m.ReactEventListener=e}},setEnabled:function(e){m.ReactEventListener&&m.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!m.ReactEventListener||!m.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,r=function(e){return Object.prototype.hasOwnProperty.call(e,h)||(e[h]=d++,c[e[h]]={}),c[e[h]]}(n),o=i.registrationNameDependencies[e],a=0;a<o.length;a++){var s=o[a];r.hasOwnProperty(s)&&r[s]||("topWheel"===s?l("wheel")?m.ReactEventListener.trapBubbledEvent("topWheel","wheel",n):l("mousewheel")?m.ReactEventListener.trapBubbledEvent("topWheel","mousewheel",n):m.ReactEventListener.trapBubbledEvent("topWheel","DOMMouseScroll",n):"topScroll"===s?l("scroll",!0)?m.ReactEventListener.trapCapturedEvent("topScroll","scroll",n):m.ReactEventListener.trapBubbledEvent("topScroll","scroll",m.ReactEventListener.WINDOW_HANDLE):"topFocus"===s||"topBlur"===s?(l("focus",!0)?(m.ReactEventListener.trapCapturedEvent("topFocus","focus",n),m.ReactEventListener.trapCapturedEvent("topBlur","blur",n)):l("focusin")&&(m.ReactEventListener.trapBubbledEvent("topFocus","focusin",n),m.ReactEventListener.trapBubbledEvent("topBlur","focusout",n)),r.topBlur=!0,r.topFocus=!0):f.hasOwnProperty(s)&&m.ReactEventListener.trapBubbledEvent(s,f[s],n),r[s]=!0)}},trapBubbledEvent:function(e,t,n){return m.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return m.ReactEventListener.trapCapturedEvent(e,t,n)},supportsEventPageXY:function(){if(!document.createEvent)return!1;var e=document.createEvent("MouseEvent");return null!=e&&"pageX"in e},ensureScrollValueMonitoring:function(){if(void 0===r&&(r=m.supportsEventPageXY()),!r&&!p){var e=s.refreshScrollValues;m.ReactEventListener.monitorScrollValue(e),p=!0}}});e.exports=m},function(e,t,n){"use strict";e.exports=n(12)},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 s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,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 u,l=[],c=!1,p=-1;function d(){c&&u&&(c=!1,u.length?l=u.concat(l):p=-1,l.length&&f())}function f(){if(!c){var e=s(d);c=!0;for(var t=l.length;t;){for(u=l,l=[];++p<t;)u&&u[p].run();p=-1,t=l.length}u=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(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(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new h(e,t)),1!==l.length||c||s(f)},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 r=n(1),o=(n(0),null),i={};function a(){if(o)for(var e in i){var t=i[e],n=o.indexOf(e);if(n>-1||r("96",e),!l.plugins[n]){t.extractEvents||r("97",e),l.plugins[n]=t;var a=t.eventTypes;for(var u in a)s(a[u],t,u)||r("98",u,e)}}}function s(e,t,n){l.eventNameDispatchConfigs.hasOwnProperty(n)&&r("99",n),l.eventNameDispatchConfigs[n]=e;var o=e.phasedRegistrationNames;if(o){for(var i in o){if(o.hasOwnProperty(i))u(o[i],t,n)}return!0}return!!e.registrationName&&(u(e.registrationName,t,n),!0)}function u(e,t,n){l.registrationNameModules[e]&&r("100",e),l.registrationNameModules[e]=t,l.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var l={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){o&&r("101"),o=Array.prototype.slice.call(e),a()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];i.hasOwnProperty(n)&&i[n]===o||(i[n]&&r("102",n),i[n]=o,t=!0)}t&&a()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return l.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var o=l.registrationNameModules[n[r]];if(o)return o}}return null},_resetEventPlugins:function(){for(var e in o=null,i)i.hasOwnProperty(e)&&delete i[e];l.plugins.length=0;var t=l.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=l.registrationNameModules;for(var a in r)r.hasOwnProperty(a)&&delete r[a]}};e.exports=l},function(e,t,n){"use strict";var r,o,i=n(1),a=n(33);n(0),n(2);function s(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=u.getNodeFromInstance(r),t?a.invokeGuardedCallbackWithCatch(o,n,e):a.invokeGuardedCallback(o,n,e),e.currentTarget=null}var u={isEndish:function(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e},isMoveish:function(e){return"topMouseMove"===e||"topTouchMove"===e},isStartish:function(e){return"topMouseDown"===e||"topTouchStart"===e},executeDirectDispatch:function(e){var t=e._dispatchListeners,n=e._dispatchInstances;Array.isArray(t)&&i("103"),e.currentTarget=t?u.getNodeFromInstance(n):null;var r=t?t(e):null;return e.currentTarget=null,e._dispatchListeners=null,e._dispatchInstances=null,r},executeDispatchesInOrder:function(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o<n.length&&!e.isPropagationStopped();o++)s(e,t,n[o],r[o]);else n&&s(e,t,n,r);e._dispatchListeners=null,e._dispatchInstances=null},executeDispatchesInOrderStopAtTrue:function(e){var t=function(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t)){for(var r=0;r<t.length&&!e.isPropagationStopped();r++)if(t[r](e,n[r]))return n[r]}else if(t&&t(e,n))return n;return null}(e);return e._dispatchInstances=null,e._dispatchListeners=null,t},hasDispatches:function(e){return!!e._dispatchListeners},getInstanceFromNode:function(e){return r.getInstanceFromNode(e)},getNodeFromInstance:function(e){return r.getNodeFromInstance(e)},isAncestor:function(e,t){return o.isAncestor(e,t)},getLowestCommonAncestor:function(e,t){return o.getLowestCommonAncestor(e,t)},getParentInstance:function(e){return o.getParentInstance(e)},traverseTwoPhase:function(e,t,n){return o.traverseTwoPhase(e,t,n)},traverseEnterLeave:function(e,t,n,r,i){return o.traverseEnterLeave(e,t,n,r,i)},injection:{injectComponentTree:function(e){r=e},injectTreeTraversal:function(e){o=e}}};e.exports=u},function(e,t,n){"use strict";var r=null;function o(e,t,n){try{t(n)}catch(e){null===r&&(r=e)}}var i={invokeGuardedCallback:o,invokeGuardedCallbackWithCatch:o,rethrowCaughtError:function(){if(r){var e=r;throw r=null,e}}};e.exports=i},function(e,t,n){"use strict";e.exports=function(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}},function(e,t,n){"use strict";var r,o=n(5);o.canUseDOM&&(r=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""))
7
  /**
8
  * Checks if an event is supported in the current execution environment.
9
  *
17
  * @return {boolean} True if the event is supported.
18
  * @internal
19
  * @license Modernizr 3.0.0pre (Custom Build) | MIT
20
+ */,e.exports=function(e,t){if(!o.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,i=n in document;if(!i){var a=document.createElement("div");a.setAttribute(n,"return;"),i="function"==typeof a[n]}return!i&&r&&"wheel"===e&&(i=document.implementation.hasFeature("Events.wheel","3.0")),i}},function(e,t,n){"use strict";var r={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function o(e){var t=this.nativeEvent;if(t.getModifierState)return t.getModifierState(e);var n=r[e];return!!n&&!!t[n]}e.exports=function(e){return o}},function(e,t,n){"use strict";var r=n(17),o=n(122),i=(n(4),n(6),n(39)),a=n(26),s=n(68);function u(e,t){return Array.isArray(t)&&(t=t[1]),t?t.nextSibling:e.firstChild}var l=i(function(e,t,n){e.insertBefore(t,n)});function c(e,t,n){r.insertTreeBefore(e,t,n)}function p(e,t,n){Array.isArray(t)?function(e,t,n,r){var o=t;for(;;){var i=o.nextSibling;if(l(e,o,r),o===n)break;o=i}}(e,t[0],t[1],n):l(e,t,n)}function d(e,t){if(Array.isArray(t)){var n=t[1];f(e,t=t[0],n),e.removeChild(n)}e.removeChild(t)}function f(e,t,n){for(;;){var r=t.nextSibling;if(r===n)break;e.removeChild(r)}}var h={dangerouslyReplaceNodeWithMarkup:o.dangerouslyReplaceNodeWithMarkup,replaceDelimitedText:function(e,t,n){var r=e.parentNode,o=e.nextSibling;o===t?n&&l(r,document.createTextNode(n),o):n?(s(o,n),f(r,o,t)):f(r,e,t)},processUpdates:function(e,t){for(var n=0;n<t.length;n++){var r=t[n];switch(r.type){case"INSERT_MARKUP":c(e,r.content,u(e,r.afterNode));break;case"MOVE_EXISTING":p(e,r.fromNode,u(e,r.afterNode));break;case"SET_MARKUP":a(e,r.content);break;case"TEXT_CONTENT":s(e,r.content);break;case"REMOVE_NODE":d(e,r.fromNode)}}}};e.exports=h},function(e,t,n){"use strict";e.exports={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"}},function(e,t,n){"use strict";e.exports=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e}},function(e,t,n){"use strict";var r=n(1),o=n(140),i=n(57)(n(12).isValidElement),a=(n(0),n(2),{button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0});function s(e){null!=e.checkedLink&&null!=e.valueLink&&r("87")}function u(e){s(e),(null!=e.value||null!=e.onChange)&&r("88")}function l(e){s(e),(null!=e.checked||null!=e.onChange)&&r("89")}var c={value:function(e,t,n){return!e[t]||a[e.type]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t,n){return!e[t]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:i.func},p={};function d(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}var f={checkPropTypes:function(e,t,n){for(var r in c){if(c.hasOwnProperty(r))var i=c[r](t,r,e,"prop",null,o);if(i instanceof Error&&!(i.message in p)){p[i.message]=!0;d(n)}}},getValue:function(e){return e.valueLink?(u(e),e.valueLink.value):e.value},getChecked:function(e){return e.checkedLink?(l(e),e.checkedLink.value):e.checked},executeOnChange:function(e,t){return e.valueLink?(u(e),e.valueLink.requestChange(t.target.value)):e.checkedLink?(l(e),e.checkedLink.requestChange(t.target.checked)):e.onChange?e.onChange.call(void 0,t):void 0}};e.exports=f},function(e,t,n){"use strict";var r=n(1),o=(n(0),!1),i={replaceNodeWithMarkup:null,processChildrenUpdates:null,injection:{injectEnvironment:function(e){o&&r("104"),i.replaceNodeWithMarkup=e.replaceNodeWithMarkup,i.processChildrenUpdates=e.processChildrenUpdates,o=!0}}};e.exports=i},function(e,t,n){"use strict";var r=n(1),o=n(3),i=n(145),a=n(74),s=n(75),u=(n(146),n(0),n(2),function(e){this.construct(e)});function l(e,t){var n;if(null===e||!1===e)n=a.create(l);else if("object"==typeof e){var o=e,i=o.type;if("function"!=typeof i&&"string"!=typeof i){var c="";0,c+=function(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}(o._owner),r("130",null==i?i:typeof i,c)}"string"==typeof o.type?n=s.createInternalComponent(o):!function(e){return"function"==typeof e&&void 0!==e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}(o.type)?n=new u(o):(n=new o.type(o)).getHostNode||(n.getHostNode=n.getNativeNode)}else"string"==typeof e||"number"==typeof e?n=s.createInstanceForText(e):r("131",typeof e);return n._mountIndex=0,n._mountImage=null,n}o(u.prototype,i,{_instantiateReactComponent:l}),e.exports=l},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function o(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}e.exports=function(e,t){if(o(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(var a=0;a<n.length;a++)if(!r.call(t,n[a])||!o(e[n[a]],t[n[a]]))return!1;return!0}},function(e,t,n){"use strict";e.exports=function(e,t){var n=null===e||!1===e,r=null===t||!1===t;if(n||r)return n===r;var o=typeof e,i=typeof t;return"string"===o||"number"===o?"string"===i||"number"===i:"object"===i&&e.type===t.type&&e.key===t.key}},function(e,t,n){"use strict";var r={escape:function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})},unescape:function(e){var t={"=0":"=","=2":":"};return(""+("."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1))).replace(/(=0|=2)/g,function(e){return t[e]})}};e.exports=r},function(e,t,n){"use strict";var r=n(1),o=(n(10),n(23)),i=(n(6),n(9));n(0),n(2);function a(e){i.enqueueUpdate(e)}function s(e,t){var n=o.get(e);return n||null}var u={isMounted:function(e){var t=o.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){u.validateCallback(t,n);var r=s(e);if(!r)return null;r._pendingCallbacks?r._pendingCallbacks.push(t):r._pendingCallbacks=[t],a(r)},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],a(e)},enqueueForceUpdate:function(e){var t=s(e);t&&(t._pendingForceUpdate=!0,a(t))},enqueueReplaceState:function(e,t,n){var r=s(e);r&&(r._pendingStateQueue=[t],r._pendingReplaceState=!0,null!=n&&(u.validateCallback(n,"replaceState"),r._pendingCallbacks?r._pendingCallbacks.push(n):r._pendingCallbacks=[n]),a(r))},enqueueSetState:function(e,t){var n=s(e);n&&((n._pendingStateQueue||(n._pendingStateQueue=[])).push(t),a(n))},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,a(e)},validateCallback:function(e,t){e&&"function"!=typeof e&&r("122",t,function(e){var t=typeof e;if("object"!==t)return t;var n=e.constructor&&e.constructor.name||t,r=Object.keys(e);return r.length>0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}(e))}};e.exports=u},function(e,t,n){"use strict";n(3);var r=n(8),o=(n(2),r);e.exports=o},function(e,t,n){"use strict";e.exports=function(e){var t,n=e.keyCode;return"charCode"in e?0===(t=e.charCode)&&13===n&&(t=13):t=n,t>=32||13===t?t:0}},function(e,t,n){var r,o;"undefined"!=typeof window&&window,void 0===(o="function"==typeof(r=function(){"use strict";function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var n=this._events=this._events||{},r=n[e]=n[e]||[];return-1==r.indexOf(t)&&r.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var n=this._onceEvents=this._onceEvents||{};return(n[e]=n[e]||{})[t]=!0,this}},t.off=function(e,t){var n=this._events&&this._events[e];if(n&&n.length){var r=n.indexOf(t);return-1!=r&&n.splice(r,1),this}},t.emitEvent=function(e,t){var n=this._events&&this._events[e];if(n&&n.length){n=n.slice(0),t=t||[];for(var r=this._onceEvents&&this._onceEvents[e],o=0;o<n.length;o++){var i=n[o];r&&r[i]&&(this.off(e,i),delete r[i]),i.apply(this,t)}return this}},t.allOff=function(){delete this._events,delete this._onceEvents},e})?r.call(t,n,t,e):r)||(e.exports=o)},function(e,t,n){var r,o;
21
  /*!
22
+ * getSize v2.0.3
23
+ * measure size of elements
24
+ * MIT license
25
+ */window,void 0===(o="function"==typeof(r=function(){"use strict";function e(e){var t=parseFloat(e),n=-1==e.indexOf("%")&&!isNaN(t);return n&&t}var t="undefined"==typeof console?function(){}:function(e){console.error(e)},n=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],r=n.length;function o(e){var n=getComputedStyle(e);return n||t("Style returned "+n+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),n}var i,a=!1;function s(t){if(function(){if(!a){a=!0;var t=document.createElement("div");t.style.width="200px",t.style.padding="1px 2px 3px 4px",t.style.borderStyle="solid",t.style.borderWidth="1px 2px 3px 4px",t.style.boxSizing="border-box";var n=document.body||document.documentElement;n.appendChild(t);var r=o(t);i=200==Math.round(e(r.width)),s.isBoxSizeOuter=i,n.removeChild(t)}}(),"string"==typeof t&&(t=document.querySelector(t)),t&&"object"==typeof t&&t.nodeType){var u=o(t);if("none"==u.display)return function(){for(var e={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},t=0;t<r;t++){var o=n[t];e[o]=0}return e}();var l={};l.width=t.offsetWidth,l.height=t.offsetHeight;for(var c=l.isBorderBox="border-box"==u.boxSizing,p=0;p<r;p++){var d=n[p],f=u[d],h=parseFloat(f);l[d]=isNaN(h)?0:h}var m=l.paddingLeft+l.paddingRight,v=l.paddingTop+l.paddingBottom,g=l.marginLeft+l.marginRight,y=l.marginTop+l.marginBottom,_=l.borderLeftWidth+l.borderRightWidth,b=l.borderTopWidth+l.borderBottomWidth,E=c&&i,C=e(u.width);!1!==C&&(l.width=C+(E?0:m+_));var w=e(u.height);return!1!==w&&(l.height=w+(E?0:v+b)),l.innerWidth=l.width-(m+_),l.innerHeight=l.height-(v+b),l.outerWidth=l.width+g,l.outerHeight=l.height+y,l}}return s})?r.call(t,n,t,e):r)||(e.exports=o)},function(e,t,n){"use strict";(function(t){var r=n(7),o=n(194),i={"Content-Type":"application/x-www-form-urlencoded"};function a(e,t){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var s,u={adapter:("undefined"!=typeof XMLHttpRequest?s=n(89):void 0!==t&&(s=n(89)),s),transformRequest:[function(e,t){return o(t,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(a(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)?(a(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};u.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],function(e){u.headers[e]={}}),r.forEach(["post","put","patch"],function(e){u.headers[e]=r.merge(i)}),e.exports=u}).call(this,n(30))},function(e,t,n){"use strict";e.exports={photo_api:"https://api.unsplash.com/photos",search_api:"https://api.unsplash.com/search/photos",app_id:"/?client_id="+instant_img_localize.unsplash_app_id,posts_per_page:"&per_page=20"}},function(e,t,n){"use strict";var r=n(18),o=n(3),i=n(54),a=(n(55),n(19));n(0),n(94);function s(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||i}function u(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||i}function l(){}s.prototype.isReactComponent={},s.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e&&r("85"),this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},s.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")},l.prototype=s.prototype,u.prototype=new l,u.prototype.constructor=u,o(u.prototype,s.prototype),u.prototype.isPureReactComponent=!0,e.exports={Component:s,PureComponent:u}},function(e,t,n){"use strict";n(2);var r={isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){},enqueueReplaceState:function(e,t){},enqueueSetState:function(e,t){}};e.exports=r},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=r},function(e,t,n){"use strict";var r=n(102);e.exports=function(e){return r(e,!1)}},function(e,t,n){"use strict";e.exports={hasCachedChildNodes:1}},function(e,t,n){"use strict";var r=n(110),o=n(111),i=n(115),a=n(118),s=n(119),u=n(120),l=n(121),c=n(127),p=n(4),d=n(151),f=n(152),h=n(153),m=n(79),v=n(154),g=n(156),y=n(157),_=n(163),b=n(164),E=n(165),C=!1;e.exports={inject:function(){C||(C=!0,g.EventEmitter.injectReactEventListener(v),g.EventPluginHub.injectEventPluginOrder(a),g.EventPluginUtils.injectComponentTree(p),g.EventPluginUtils.injectTreeTraversal(f),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:E,EnterLeaveEventPlugin:s,ChangeEventPlugin:i,SelectEventPlugin:b,BeforeInputEventPlugin:o}),g.HostComponent.injectGenericComponentClass(c),g.HostComponent.injectTextComponentClass(h),g.DOMProperty.injectDOMPropertyConfig(r),g.DOMProperty.injectDOMPropertyConfig(u),g.DOMProperty.injectDOMPropertyConfig(_),g.EmptyComponent.injectEmptyComponentFactory(function(e){return new d(e)}),g.Updates.injectReconcileTransaction(y),g.Updates.injectBatchingStrategy(m),g.Component.injectEnvironment(l))}}},function(e,t,n){"use strict";var r=n(1);n(0);e.exports=function(e,t){return null==t&&r("30"),null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}},function(e,t,n){"use strict";e.exports=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}},function(e,t,n){"use strict";var r=n(5),o=null;e.exports=function(){return!o&&r.canUseDOM&&(o="textContent"in document.documentElement?"textContent":"innerText"),o}},function(e,t,n){"use strict";var r=n(1);var o=n(13),i=(n(0),function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._callbacks=null,this._contexts=null,this._arg=t}return e.prototype.enqueue=function(e,t){this._callbacks=this._callbacks||[],this._callbacks.push(e),this._contexts=this._contexts||[],this._contexts.push(t)},e.prototype.notifyAll=function(){var e=this._callbacks,t=this._contexts,n=this._arg;if(e&&t){e.length!==t.length&&r("24"),this._callbacks=null,this._contexts=null;for(var o=0;o<e.length;o++)e[o].call(t[o],n);e.length=0,t.length=0}},e.prototype.checkpoint=function(){return this._callbacks?this._callbacks.length:0},e.prototype.rollback=function(e){this._callbacks&&this._contexts&&(this._callbacks.length=e,this._contexts.length=e)},e.prototype.reset=function(){this._callbacks=null,this._contexts=null},e.prototype.destructor=function(){this.reset()},e}());e.exports=o.addPoolingTo(i)},function(e,t,n){"use strict";e.exports={logTopLevelRenders:!1}},function(e,t,n){"use strict";var r=n(4);function o(e){var t=e.type,n=e.nodeName;return n&&"input"===n.toLowerCase()&&("checkbox"===t||"radio"===t)}function i(e){return e._wrapperState.valueTracker}var a={_getTrackerFromNode:function(e){return i(r.getInstanceFromNode(e))},track:function(e){if(!i(e)){var t=r.getNodeFromInstance(e),n=o(t)?"checked":"value",a=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),s=""+t[n];t.hasOwnProperty(n)||"function"!=typeof a.get||"function"!=typeof a.set||(Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:!0,get:function(){return a.get.call(this)},set:function(e){s=""+e,a.set.call(this,e)}}),function(e,t){e._wrapperState.valueTracker=t}(e,{getValue:function(){return s},setValue:function(e){s=""+e},stopTracking:function(){!function(e){e._wrapperState.valueTracker=null}(e),delete t[n]}}))}},updateValueIfChanged:function(e){if(!e)return!1;var t=i(e);if(!t)return a.track(e),!0;var n,s,u=t.getValue(),l=((n=r.getNodeFromInstance(e))&&(s=o(n)?""+n.checked:n.value),s);return l!==u&&(t.setValue(l),!0)},stopTracking:function(e){var t=i(e);t&&t.stopTracking()}};e.exports=a},function(e,t,n){"use strict";var r={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=function(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!r[e.type]:"textarea"===t}},function(e,t,n){"use strict";var r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};e.exports=r},function(e,t,n){"use strict";var r=n(5),o=n(27),i=n(26),a=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){3!==e.nodeType?i(e,o(t)):e.nodeValue=t})),e.exports=a},function(e,t,n){"use strict";e.exports=function(e){try{e.focus()}catch(e){}}},function(e,t,n){"use strict";var r={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0};var o=["Webkit","ms","Moz","O"];Object.keys(r).forEach(function(e){o.forEach(function(t){r[function(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}(t,e)]=r[e]})});var i={isUnitlessNumber:r,shorthandPropertyExpansions:{background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}}};e.exports=i},function(e,t,n){"use strict";var r=n(16),o=(n(4),n(6),n(136)),i=(n(2),new RegExp("^["+r.ATTRIBUTE_NAME_START_CHAR+"]["+r.ATTRIBUTE_NAME_CHAR+"]*$")),a={},s={};function u(e){return!!s.hasOwnProperty(e)||!a.hasOwnProperty(e)&&(i.test(e)?(s[e]=!0,!0):(a[e]=!0,!1))}function l(e,t){return null==t||e.hasBooleanValue&&!t||e.hasNumericValue&&isNaN(t)||e.hasPositiveNumericValue&&t<1||e.hasOverloadedBooleanValue&&!1===t}var c={createMarkupForID:function(e){return r.ID_ATTRIBUTE_NAME+"="+o(e)},setAttributeForID:function(e,t){e.setAttribute(r.ID_ATTRIBUTE_NAME,t)},createMarkupForRoot:function(){return r.ROOT_ATTRIBUTE_NAME+'=""'},setAttributeForRoot:function(e){e.setAttribute(r.ROOT_ATTRIBUTE_NAME,"")},createMarkupForProperty:function(e,t){var n=r.properties.hasOwnProperty(e)?r.properties[e]:null;if(n){if(l(n,t))return"";var i=n.attributeName;return n.hasBooleanValue||n.hasOverloadedBooleanValue&&!0===t?i+'=""':i+"="+o(t)}return r.isCustomAttribute(e)?null==t?"":e+"="+o(t):null},createMarkupForCustomAttribute:function(e,t){return u(e)&&null!=t?e+"="+o(t):""},setValueForProperty:function(e,t,n){var o=r.properties.hasOwnProperty(t)?r.properties[t]:null;if(o){var i=o.mutationMethod;if(i)i(e,n);else{if(l(o,n))return void this.deleteValueForProperty(e,t);if(o.mustUseProperty)e[o.propertyName]=n;else{var a=o.attributeName,s=o.attributeNamespace;s?e.setAttributeNS(s,a,""+n):o.hasBooleanValue||o.hasOverloadedBooleanValue&&!0===n?e.setAttribute(a,""):e.setAttribute(a,""+n)}}}else if(r.isCustomAttribute(t))return void c.setValueForAttribute(e,t,n)},setValueForAttribute:function(e,t,n){u(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))},deleteValueForAttribute:function(e,t){e.removeAttribute(t)},deleteValueForProperty:function(e,t){var n=r.properties.hasOwnProperty(t)?r.properties[t]:null;if(n){var o=n.mutationMethod;if(o)o(e,void 0);else if(n.mustUseProperty){var i=n.propertyName;n.hasBooleanValue?e[i]=!1:e[i]=""}else e.removeAttribute(n.attributeName)}else r.isCustomAttribute(t)&&e.removeAttribute(t)}};e.exports=c},function(e,t,n){"use strict";var r=n(3),o=n(40),i=n(4),a=n(9),s=(n(2),!1);function u(){if(this._rootNodeID&&this._wrapperState.pendingUpdate){this._wrapperState.pendingUpdate=!1;var e=this._currentElement.props,t=o.getValue(e);null!=t&&l(this,Boolean(e.multiple),t)}}function l(e,t,n){var r,o,a=i.getNodeFromInstance(e).options;if(t){for(r={},o=0;o<n.length;o++)r[""+n[o]]=!0;for(o=0;o<a.length;o++){var s=r.hasOwnProperty(a[o].value);a[o].selected!==s&&(a[o].selected=s)}}else{for(r=""+n,o=0;o<a.length;o++)if(a[o].value===r)return void(a[o].selected=!0);a.length&&(a[0].selected=!0)}}var c={getHostProps:function(e,t){return r({},t,{onChange:e._wrapperState.onChange,value:void 0})},mountWrapper:function(e,t){var n=o.getValue(t);e._wrapperState={pendingUpdate:!1,initialValue:null!=n?n:t.defaultValue,listeners:null,onChange:p.bind(e),wasMultiple:Boolean(t.multiple)},void 0===t.value||void 0===t.defaultValue||s||(s=!0)},getSelectValueContext:function(e){return e._wrapperState.initialValue},postUpdateWrapper:function(e){var t=e._currentElement.props;e._wrapperState.initialValue=void 0;var n=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=Boolean(t.multiple);var r=o.getValue(t);null!=r?(e._wrapperState.pendingUpdate=!1,l(e,Boolean(t.multiple),r)):n!==Boolean(t.multiple)&&(null!=t.defaultValue?l(e,Boolean(t.multiple),t.defaultValue):l(e,Boolean(t.multiple),t.multiple?[]:""))}};function p(e){var t=this._currentElement.props,n=o.executeOnChange(t,e);return this._rootNodeID&&(this._wrapperState.pendingUpdate=!0),a.asap(u,this),n}e.exports=c},function(e,t,n){"use strict";var r=n(1),o=n(12),i=(n(0),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(e){return null===e||!1===e?i.EMPTY:o.isValidElement(e)?"function"==typeof e.type?i.COMPOSITE:i.HOST:void r("26",e)}});e.exports=i},function(e,t,n){"use strict";var r,o={injectEmptyComponentFactory:function(e){r=e}},i={create:function(e){return r(e)}};i.injection=o,e.exports=i},function(e,t,n){"use strict";var r=n(1),o=(n(0),null),i=null;var a={createInternalComponent:function(e){return o||r("111",e.type),new o(e)},createInstanceForText:function(e){return new i(e)},isTextComponent:function(e){return e instanceof i},injection:{injectGenericComponentClass:function(e){o=e},injectTextComponentClass:function(e){i=e}}};e.exports=a},function(e,t,n){"use strict";var r=n(1),o=(n(10),n(147)),i=n(148),a=(n(0),n(45)),s=(n(2),"."),u=":";function l(e,t){return e&&"object"==typeof e&&null!=e.key?a.escape(e.key):t.toString(36)}e.exports=function(e,t,n){return null==e?0:function e(t,n,c,p){var d,f=typeof t;if("undefined"!==f&&"boolean"!==f||(t=null),null===t||"string"===f||"number"===f||"object"===f&&t.$$typeof===o)return c(p,t,""===n?s+l(t,0):n),1;var h=0,m=""===n?s:n+u;if(Array.isArray(t))for(var v=0;v<t.length;v++)h+=e(d=t[v],m+l(d,v),c,p);else{var g=i(t);if(g){var y,_=g.call(t);if(g!==t.entries)for(var b=0;!(y=_.next()).done;)h+=e(d=y.value,m+l(d,b++),c,p);else for(;!(y=_.next()).done;){var E=y.value;E&&(h+=e(d=E[1],m+a.escape(E[0])+u+l(d,0),c,p))}}else if("object"===f){var C=String(t);r("31","[object Object]"===C?"object with keys {"+Object.keys(t).join(", ")+"}":C,"")}}return h}(e,"",t,n)}},function(e,t,n){"use strict";var r,o,i,a,s,u,l,c=n(18),p=n(10);n(0),n(2);function d(e){var t=Function.prototype.toString,n=Object.prototype.hasOwnProperty,r=RegExp("^"+t.call(n).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");try{var o=t.call(e);return r.test(o)}catch(e){return!1}}if("function"==typeof Array.from&&"function"==typeof Map&&d(Map)&&null!=Map.prototype&&"function"==typeof Map.prototype.keys&&d(Map.prototype.keys)&&"function"==typeof Set&&d(Set)&&null!=Set.prototype&&"function"==typeof Set.prototype.keys&&d(Set.prototype.keys)){var f=new Map,h=new Set;r=function(e,t){f.set(e,t)},o=function(e){return f.get(e)},i=function(e){f.delete(e)},a=function(){return Array.from(f.keys())},s=function(e){h.add(e)},u=function(e){h.delete(e)},l=function(){return Array.from(h.keys())}}else{var m={},v={},g=function(e){return"."+e},y=function(e){return parseInt(e.substr(1),10)};r=function(e,t){var n=g(e);m[n]=t},o=function(e){var t=g(e);return m[t]},i=function(e){var t=g(e);delete m[t]},a=function(){return Object.keys(m).map(y)},s=function(e){var t=g(e);v[t]=!0},u=function(e){var t=g(e);delete v[t]},l=function(){return Object.keys(v).map(y)}}var _=[];function b(e){var t=o(e);if(t){var n=t.childIDs;i(e),n.forEach(b)}}function E(e,t,n){return"\n in "+(e||"Unknown")+(t?" (at "+t.fileName.replace(/^.*[\\\/]/,"")+":"+t.lineNumber+")":n?" (created by "+n+")":"")}function C(e){return null==e?"#empty":"string"==typeof e||"number"==typeof e?"#text":"string"==typeof e.type?e.type:e.type.displayName||e.type.name||"Unknown"}function w(e){var t,n=x.getDisplayName(e),r=x.getElement(e),o=x.getOwnerID(e);return o&&(t=x.getDisplayName(o)),E(n,r&&r._source,t)}var x={onSetChildren:function(e,t){var n=o(e);n||c("144"),n.childIDs=t;for(var r=0;r<t.length;r++){var i=t[r],a=o(i);a||c("140"),null==a.childIDs&&"object"==typeof a.element&&null!=a.element&&c("141"),a.isMounted||c("71"),null==a.parentID&&(a.parentID=e),a.parentID!==e&&c("142",i,a.parentID,e)}},onBeforeMountComponent:function(e,t,n){r(e,{element:t,parentID:n,text:null,childIDs:[],isMounted:!1,updateCount:0})},onBeforeUpdateComponent:function(e,t){var n=o(e);n&&n.isMounted&&(n.element=t)},onMountComponent:function(e){var t=o(e);t||c("144"),t.isMounted=!0,0===t.parentID&&s(e)},onUpdateComponent:function(e){var t=o(e);t&&t.isMounted&&t.updateCount++},onUnmountComponent:function(e){var t=o(e);t&&(t.isMounted=!1,0===t.parentID&&u(e));_.push(e)},purgeUnmountedComponents:function(){if(!x._preventPurging){for(var e=0;e<_.length;e++){b(_[e])}_.length=0}},isMounted:function(e){var t=o(e);return!!t&&t.isMounted},getCurrentStackAddendum:function(e){var t="";if(e){var n=C(e),r=e._owner;t+=E(n,e._source,r&&r.getName())}var o=p.current,i=o&&o._debugID;return t+=x.getStackAddendumByID(i)},getStackAddendumByID:function(e){for(var t="";e;)t+=w(e),e=x.getParentID(e);return t},getChildIDs:function(e){var t=o(e);return t?t.childIDs:[]},getDisplayName:function(e){var t=x.getElement(e);return t?C(t):null},getElement:function(e){var t=o(e);return t?t.element:null},getOwnerID:function(e){var t=x.getElement(e);return t&&t._owner?t._owner._debugID:null},getParentID:function(e){var t=o(e);return t?t.parentID:null},getSource:function(e){var t=o(e),n=t?t.element:null;return null!=n?n._source:null},getText:function(e){var t=x.getElement(e);return"string"==typeof t?t:"number"==typeof t?""+t:null},getUpdateCount:function(e){var t=o(e);return t?t.updateCount:0},getRootIDs:l,getRegisteredIDs:a,pushNonStandardWarningStack:function(e,t){if("function"==typeof console.reactStack){var n=[],r=p.current,o=r&&r._debugID;try{for(e&&n.push({name:o?x.getDisplayName(o):null,fileName:t?t.fileName:null,lineNumber:t?t.lineNumber:null});o;){var i=x.getElement(o),a=x.getParentID(o),s=x.getOwnerID(o),u=s?x.getDisplayName(s):null,l=i&&i._source;n.push({name:u,fileName:l?l.fileName:null,lineNumber:l?l.lineNumber:null}),o=a}}catch(e){}console.reactStack(n)}},popNonStandardWarningStack:function(){"function"==typeof console.reactStackEnd&&console.reactStackEnd()}};e.exports=x},function(e,t,n){"use strict";var r=n(3),o=n(13),i=n(24),a=(n(6),n(150)),s=[];var u={enqueue:function(){}};function l(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.useCreateElement=!1,this.updateQueue=new a(this)}var c={getTransactionWrappers:function(){return s},getReactMountReady:function(){return u},getUpdateQueue:function(){return this.updateQueue},destructor:function(){},checkpoint:function(){},rollback:function(){}};r(l.prototype,i,c),o.addPoolingTo(l),e.exports=l},function(e,t,n){"use strict";var r=n(3),o=n(9),i=n(24),a=n(8),s={initialize:a,close:function(){p.isBatchingUpdates=!1}},u=[{initialize:a,close:o.flushBatchedUpdates.bind(o)},s];function l(){this.reinitializeTransaction()}r(l.prototype,i,{getTransactionWrappers:function(){return u}});var c=new l,p={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=p.isBatchingUpdates;return p.isBatchingUpdates=!0,a?e(t,n,r,o,i):c.perform(e,null,t,n,r,o,i)}};e.exports=p},function(e,t,n){"use strict";var r=n(8),o={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!0),{remove:function(){e.removeEventListener(t,n,!0)}}):{remove:r}},registerDefault:function(){}};e.exports=o},function(e,t,n){"use strict";var r=n(158),o=n(160),i=n(69),a=n(82);var s={hasSelectionCapabilities:function(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&"text"===e.type||"textarea"===t||"true"===e.contentEditable)},getSelectionInformation:function(){var e=a();return{focusedElem:e,selectionRange:s.hasSelectionCapabilities(e)?s.getSelection(e):null}},restoreSelection:function(e){var t,n=a(),r=e.focusedElem,u=e.selectionRange;n!==r&&(t=r,o(document.documentElement,t))&&(s.hasSelectionCapabilities(r)&&s.setSelection(r,u),i(r))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=r.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,o=t.end;if(void 0===o&&(o=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(o,e.value.length);else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var i=e.createTextRange();i.collapse(!0),i.moveStart("character",n),i.moveEnd("character",o-n),i.select()}else r.setOffsets(e,t)}};e.exports=s},function(e,t,n){"use strict";e.exports=function(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}},function(e,t,n){"use strict";var r=n(1),o=n(17),i=n(16),a=n(12),s=n(28),u=(n(10),n(4)),l=n(84),c=n(175),p=n(64),d=n(23),f=(n(6),n(85)),h=n(14),m=n(46),v=n(9),g=n(19),y=n(42),_=(n(0),n(26)),b=n(44),E=(n(2),i.ID_ATTRIBUTE_NAME),C=i.ROOT_ATTRIBUTE_NAME,w=1,x=9,T=11,k={};function S(e){return e?e.nodeType===x?e.documentElement:e.firstChild:null}function I(e,t,n,r,o){var i;if(p.logTopLevelRenders){var a=e._currentElement.props.child.type;i="React mount: "+("string"==typeof a?a:a.displayName||a.name),console.time(i)}var s=h.mountComponent(e,n,null,l(e,t),o,0);i&&console.timeEnd(i),e._renderedComponent._topLevelWrapper=e,D._mountImageIntoNode(s,t,e,r,n)}function P(e,t,n,r){var o=v.ReactReconcileTransaction.getPooled(!n&&c.useCreateElement);o.perform(I,null,e,t,o,n,r),v.ReactReconcileTransaction.release(o)}function N(e,t,n){for(0,h.unmountComponent(e,n),t.nodeType===x&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}function M(e){var t=S(e);if(t){var n=u.getInstanceFromNode(t);return!(!n||!n._hostParent)}}function O(e){return!(!e||e.nodeType!==w&&e.nodeType!==x&&e.nodeType!==T)}function R(e){var t=function(e){var t=S(e),n=t&&u.getInstanceFromNode(t);return n&&!n._hostParent?n:null}(e);return t?t._hostContainerInfo._topLevelWrapper:null}var A=1,L=function(){this.rootID=A++};L.prototype.isReactComponent={},L.prototype.render=function(){return this.props.child},L.isReactTopLevelWrapper=!0;var D={TopLevelWrapper:L,_instancesByReactRootID:k,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r,o){return D.scrollMonitor(r,function(){m.enqueueElementInternal(e,t,n),o&&m.enqueueCallbackInternal(e,o)}),e},_renderNewRootComponent:function(e,t,n,o){O(t)||r("37"),s.ensureScrollValueMonitoring();var i=y(e,!1);v.batchedUpdates(P,i,t,n,o);var a=i._instance.rootID;return k[a]=i,i},renderSubtreeIntoContainer:function(e,t,n,o){return null!=e&&d.has(e)||r("38"),D._renderSubtreeIntoContainer(e,t,n,o)},_renderSubtreeIntoContainer:function(e,t,n,o){m.validateCallback(o,"ReactDOM.render"),a.isValidElement(t)||r("39","string"==typeof t?" Instead of passing a string like 'div', pass React.createElement('div') or <div />.":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or <Foo />.":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var i,s=a.createElement(L,{child:t});if(e){var u=d.get(e);i=u._processChildContext(u._context)}else i=g;var l=R(n);if(l){var c=l._currentElement.props.child;if(b(c,t)){var p=l._renderedComponent.getPublicInstance(),f=o&&function(){o.call(p)};return D._updateRootComponent(l,s,i,n,f),p}D.unmountComponentAtNode(n)}var h,v=S(n),y=v&&!(!(h=v).getAttribute||!h.getAttribute(E)),_=M(n),C=y&&!l&&!_,w=D._renderNewRootComponent(s,n,C,i)._renderedComponent.getPublicInstance();return o&&o.call(w),w},render:function(e,t,n){return D._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){O(e)||r("40");var t=R(e);if(!t){M(e),1===e.nodeType&&e.hasAttribute(C);return!1}return delete k[t._instance.rootID],v.batchedUpdates(N,t,e,!1),!0},_mountImageIntoNode:function(e,t,n,i,a){if(O(t)||r("41"),i){var s=S(t);if(f.canReuseMarkup(e,s))return void u.precacheNode(n,s);var l=s.getAttribute(f.CHECKSUM_ATTR_NAME);s.removeAttribute(f.CHECKSUM_ATTR_NAME);var c=s.outerHTML;s.setAttribute(f.CHECKSUM_ATTR_NAME,l);var p=e,d=function(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}(p,c),h=" (client) "+p.substring(d-20,d+20)+"\n (server) "+c.substring(d-20,d+20);t.nodeType===x&&r("42",h)}if(t.nodeType===x&&r("43"),a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);o.insertTreeBefore(t,e,null)}else _(t,e),u.precacheNode(n,t.firstChild)}};e.exports=D},function(e,t,n){"use strict";n(47);var r=9;e.exports=function(e,t){return{_topLevelWrapper:e,_idCounter:1,_ownerDocument:t?t.nodeType===r?t:t.ownerDocument:null,_node:t,_tag:t?t.nodeName.toLowerCase():null,_namespaceURI:t?t.namespaceURI:null}}},function(e,t,n){"use strict";var r=n(176),o=/\/?>/,i=/^<\!\-\-/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return i.test(e)?e:e.replace(o," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);return n=n&&parseInt(n,10),r(e)===n}};e.exports=a},function(e,t,n){"use strict";e.exports="15.6.2"},function(e,t,n){"use strict";var r=n(73);e.exports=function(e){for(var t;(t=e._renderedNodeType)===r.COMPOSITE;)e=e._renderedComponent;return t===r.HOST?e._renderedComponent:t===r.EMPTY?null:void 0}},function(e,t,n){"use strict";e.exports=function(e,t){return function(){for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];return e.apply(t,n)}}},function(e,t,n){"use strict";var r=n(7),o=n(195),i=n(197),a=n(198),s=n(199),u=n(90),l="undefined"!=typeof window&&window.btoa&&window.btoa.bind(window)||n(200);e.exports=function(e){return new Promise(function(t,c){var p=e.data,d=e.headers;r.isFormData(p)&&delete d["Content-Type"];var f=new XMLHttpRequest,h="onreadystatechange",m=!1;if("undefined"==typeof window||!window.XDomainRequest||"withCredentials"in f||s(e.url)||(f=new window.XDomainRequest,h="onload",m=!0,f.onprogress=function(){},f.ontimeout=function(){}),e.auth){var v=e.auth.username||"",g=e.auth.password||"";d.Authorization="Basic "+l(v+":"+g)}if(f.open(e.method.toUpperCase(),i(e.url,e.params,e.paramsSerializer),!0),f.timeout=e.timeout,f[h]=function(){if(f&&(4===f.readyState||m)&&(0!==f.status||f.responseURL&&0===f.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in f?a(f.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?f.response:f.responseText,status:1223===f.status?204:f.status,statusText:1223===f.status?"No Content":f.statusText,headers:n,config:e,request:f};o(t,c,r),f=null}},f.onerror=function(){c(u("Network Error",e,null,f)),f=null},f.ontimeout=function(){c(u("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",f)),f=null},r.isStandardBrowserEnv()){var y=n(201),_=(e.withCredentials||s(e.url))&&e.xsrfCookieName?y.read(e.xsrfCookieName):void 0;_&&(d[e.xsrfHeaderName]=_)}if("setRequestHeader"in f&&r.forEach(d,function(e,t){void 0===p&&"content-type"===t.toLowerCase()?delete d[t]:f.setRequestHeader(t,e)}),e.withCredentials&&(f.withCredentials=!0),e.responseType)try{f.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&f.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&f.upload&&f.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){f&&(f.abort(),c(e),f=null)}),void 0===p&&(p=null),f.send(p)})}},function(e,t,n){"use strict";var r=n(196);e.exports=function(e,t,n,o,i){var a=new Error(e);return r(a,t,n,o,i)}},function(e,t,n){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},function(e,t,n){"use strict";e.exports=n(109)},function(e,t,n){"use strict";e.exports=function(){}},function(e,t,n){"use strict";var r=n(96),o=n(15),i=n(8),a=n(97),s=r.twoArgumentPooler,u=r.fourArgumentPooler,l=/\/+/g;function c(e){return(""+e).replace(l,"$&/")}function p(e,t){this.func=e,this.context=t,this.count=0}function d(e,t,n){var r=e.func,o=e.context;r.call(o,t,e.count++)}function f(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function h(e,t,n){var r=e.result,a=e.keyPrefix,s=e.func,u=e.context,l=s.call(u,t,e.count++);Array.isArray(l)?m(l,r,n,i.thatReturnsArgument):null!=l&&(o.isValidElement(l)&&(l=o.cloneAndReplaceKey(l,a+(!l.key||t&&t.key===l.key?"":c(l.key)+"/")+n)),r.push(l))}function m(e,t,n,r,o){var i="";null!=n&&(i=c(n)+"/");var s=f.getPooled(t,i,r,o);a(e,h,s),f.release(s)}function v(e,t,n){return null}p.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},r.addPoolingTo(p,s),f.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},r.addPoolingTo(f,u);var g={forEach:function(e,t,n){if(null==e)return e;var r=p.getPooled(t,n);a(e,d,r),p.release(r)},map:function(e,t,n){if(null==e)return e;var r=[];return m(e,r,null,t,n),r},mapIntoWithKeyPrefixInternal:m,count:function(e,t){return a(e,v,null)},toArray:function(e){var t=[];return m(e,t,null,i.thatReturnsArgument),t}};e.exports=g},function(e,t,n){"use strict";var r=n(18),o=(n(0),function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)}),i=function(e){e instanceof this||r("25"),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)},a=o,s={addPoolingTo:function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||a,n.poolSize||(n.poolSize=10),n.release=i,n},oneArgumentPooler:o,twoArgumentPooler:function(e,t){if(this.instancePool.length){var n=this.instancePool.pop();return this.call(n,e,t),n}return new this(e,t)},threeArgumentPooler:function(e,t,n){if(this.instancePool.length){var r=this.instancePool.pop();return this.call(r,e,t,n),r}return new this(e,t,n)},fourArgumentPooler:function(e,t,n,r){if(this.instancePool.length){var o=this.instancePool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)}};e.exports=s},function(e,t,n){"use strict";var r=n(18),o=(n(10),n(56)),i=n(98),a=(n(0),n(99)),s=(n(2),"."),u=":";function l(e,t){return e&&"object"==typeof e&&null!=e.key?a.escape(e.key):t.toString(36)}e.exports=function(e,t,n){return null==e?0:function e(t,n,c,p){var d,f=typeof t;if("undefined"!==f&&"boolean"!==f||(t=null),null===t||"string"===f||"number"===f||"object"===f&&t.$$typeof===o)return c(p,t,""===n?s+l(t,0):n),1;var h=0,m=""===n?s:n+u;if(Array.isArray(t))for(var v=0;v<t.length;v++)h+=e(d=t[v],m+l(d,v),c,p);else{var g=i(t);if(g){var y,_=g.call(t);if(g!==t.entries)for(var b=0;!(y=_.next()).done;)h+=e(d=y.value,m+l(d,b++),c,p);else for(;!(y=_.next()).done;){var E=y.value;E&&(h+=e(d=E[1],m+a.escape(E[0])+u+l(d,0),c,p))}}else if("object"===f){var C=String(t);r("31","[object Object]"===C?"object with keys {"+Object.keys(t).join(", ")+"}":C,"")}}return h}(e,"",t,n)}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.iterator,o="@@iterator";e.exports=function(e){var t=e&&(r&&e[r]||e[o]);if("function"==typeof t)return t}},function(e,t,n){"use strict";var r={escape:function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})},unescape:function(e){var t={"=0":"=","=2":":"};return(""+("."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1))).replace(/(=0|=2)/g,function(e){return t[e]})}};e.exports=r},function(e,t,n){"use strict";var r=n(15).createFactory,o={a:r("a"),abbr:r("abbr"),address:r("address"),area:r("area"),article:r("article"),aside:r("aside"),audio:r("audio"),b:r("b"),base:r("base"),bdi:r("bdi"),bdo:r("bdo"),big:r("big"),blockquote:r("blockquote"),body:r("body"),br:r("br"),button:r("button"),canvas:r("canvas"),caption:r("caption"),cite:r("cite"),code:r("code"),col:r("col"),colgroup:r("colgroup"),data:r("data"),datalist:r("datalist"),dd:r("dd"),del:r("del"),details:r("details"),dfn:r("dfn"),dialog:r("dialog"),div:r("div"),dl:r("dl"),dt:r("dt"),em:r("em"),embed:r("embed"),fieldset:r("fieldset"),figcaption:r("figcaption"),figure:r("figure"),footer:r("footer"),form:r("form"),h1:r("h1"),h2:r("h2"),h3:r("h3"),h4:r("h4"),h5:r("h5"),h6:r("h6"),head:r("head"),header:r("header"),hgroup:r("hgroup"),hr:r("hr"),html:r("html"),i:r("i"),iframe:r("iframe"),img:r("img"),input:r("input"),ins:r("ins"),kbd:r("kbd"),keygen:r("keygen"),label:r("label"),legend:r("legend"),li:r("li"),link:r("link"),main:r("main"),map:r("map"),mark:r("mark"),menu:r("menu"),menuitem:r("menuitem"),meta:r("meta"),meter:r("meter"),nav:r("nav"),noscript:r("noscript"),object:r("object"),ol:r("ol"),optgroup:r("optgroup"),option:r("option"),output:r("output"),p:r("p"),param:r("param"),picture:r("picture"),pre:r("pre"),progress:r("progress"),q:r("q"),rp:r("rp"),rt:r("rt"),ruby:r("ruby"),s:r("s"),samp:r("samp"),script:r("script"),section:r("section"),select:r("select"),small:r("small"),source:r("source"),span:r("span"),strong:r("strong"),style:r("style"),sub:r("sub"),summary:r("summary"),sup:r("sup"),table:r("table"),tbody:r("tbody"),td:r("td"),textarea:r("textarea"),tfoot:r("tfoot"),th:r("th"),thead:r("thead"),time:r("time"),title:r("title"),tr:r("tr"),track:r("track"),u:r("u"),ul:r("ul"),var:r("var"),video:r("video"),wbr:r("wbr"),circle:r("circle"),clipPath:r("clipPath"),defs:r("defs"),ellipse:r("ellipse"),g:r("g"),image:r("image"),line:r("line"),linearGradient:r("linearGradient"),mask:r("mask"),path:r("path"),pattern:r("pattern"),polygon:r("polygon"),polyline:r("polyline"),radialGradient:r("radialGradient"),rect:r("rect"),stop:r("stop"),svg:r("svg"),text:r("text"),tspan:r("tspan")};e.exports=o},function(e,t,n){"use strict";var r=n(15).isValidElement,o=n(57);e.exports=o(r)},function(e,t,n){"use strict";var r=n(8),o=n(0),i=n(2),a=n(3),s=n(103),u=n(104);e.exports=function(e,t){var n="function"==typeof Symbol&&Symbol.iterator,l="@@iterator";var c="<<anonymous>>",p={array:m("array"),bool:m("boolean"),func:m("function"),number:m("number"),object:m("object"),string:m("string"),symbol:m("symbol"),any:h(r.thatReturnsNull),arrayOf:function(e){return h(function(t,n,r,o,i){if("function"!=typeof e)return new f("Property `"+i+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var a=t[n];if(!Array.isArray(a)){var u=g(a);return new f("Invalid "+o+" `"+i+"` of type `"+u+"` supplied to `"+r+"`, expected an array.")}for(var l=0;l<a.length;l++){var c=e(a,l,r,o,i+"["+l+"]",s);if(c instanceof Error)return c}return null})},element:function(){return h(function(t,n,r,o,i){var a=t[n];if(!e(a)){var s=g(a);return new f("Invalid "+o+" `"+i+"` of type `"+s+"` supplied to `"+r+"`, expected a single ReactElement.")}return null})}(),instanceOf:function(e){return h(function(t,n,r,o,i){if(!(t[n]instanceof e)){var a=e.name||c,s=function(e){if(!e.constructor||!e.constructor.name)return c;return e.constructor.name}(t[n]);return new f("Invalid "+o+" `"+i+"` of type `"+s+"` supplied to `"+r+"`, expected instance of `"+a+"`.")}return null})},node:function(){return h(function(e,t,n,r,o){if(!v(e[t]))return new f("Invalid "+r+" `"+o+"` supplied to `"+n+"`, expected a ReactNode.");return null})}(),objectOf:function(e){return h(function(t,n,r,o,i){if("function"!=typeof e)return new f("Property `"+i+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var a=t[n],u=g(a);if("object"!==u)return new f("Invalid "+o+" `"+i+"` of type `"+u+"` supplied to `"+r+"`, expected an object.");for(var l in a)if(a.hasOwnProperty(l)){var c=e(a,l,r,o,i+"."+l,s);if(c instanceof Error)return c}return null})},oneOf:function(e){if(!Array.isArray(e))return r.thatReturnsNull;return h(function(t,n,r,o,i){for(var a=t[n],s=0;s<e.length;s++)if(d(a,e[s]))return null;var u=JSON.stringify(e);return new f("Invalid "+o+" `"+i+"` of value `"+a+"` supplied to `"+r+"`, expected one of "+u+".")})},oneOfType:function(e){if(!Array.isArray(e))return r.thatReturnsNull;for(var t=0;t<e.length;t++){var n=e[t];if("function"!=typeof n)return i(!1,"Invalid argument supplied to oneOfType. Expected an array of check functions, but received %s at index %s.",_(n),t),r.thatReturnsNull}return h(function(t,n,r,o,i){for(var a=0;a<e.length;a++){var u=e[a];if(null==u(t,n,r,o,i,s))return null}return new f("Invalid "+o+" `"+i+"` supplied to `"+r+"`.")})},shape:function(e){return h(function(t,n,r,o,i){var a=t[n],u=g(a);if("object"!==u)return new f("Invalid "+o+" `"+i+"` of type `"+u+"` supplied to `"+r+"`, expected `object`.");for(var l in e){var c=e[l];if(c){var p=c(a,l,r,o,i+"."+l,s);if(p)return p}}return null})},exact:function(e){return h(function(t,n,r,o,i){var u=t[n],l=g(u);if("object"!==l)return new f("Invalid "+o+" `"+i+"` of type `"+l+"` supplied to `"+r+"`, expected `object`.");var c=a({},t[n],e);for(var p in c){var d=e[p];if(!d)return new f("Invalid "+o+" `"+i+"` key `"+p+"` supplied to `"+r+"`.\nBad object: "+JSON.stringify(t[n],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null," "));var h=d(u,p,r,o,i+"."+p,s);if(h)return h}return null})}};function d(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function f(e){this.message=e,this.stack=""}function h(e){function n(n,r,i,a,u,l,p){(a=a||c,l=l||i,p!==s)&&(t&&o(!1,"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"));return null==r[i]?n?null===r[i]?new f("The "+u+" `"+l+"` is marked as required in `"+a+"`, but its value is `null`."):new f("The "+u+" `"+l+"` is marked as required in `"+a+"`, but its value is `undefined`."):null:e(r,i,a,u,l)}var r=n.bind(null,!1);return r.isRequired=n.bind(null,!0),r}function m(e){return h(function(t,n,r,o,i,a){var s=t[n];return g(s)!==e?new f("Invalid "+o+" `"+i+"` of type `"+y(s)+"` supplied to `"+r+"`, expected `"+e+"`."):null})}function v(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(v);if(null===t||e(t))return!0;var r=function(e){var t=e&&(n&&e[n]||e[l]);if("function"==typeof t)return t}(t);if(!r)return!1;var o,i=r.call(t);if(r!==t.entries){for(;!(o=i.next()).done;)if(!v(o.value))return!1}else for(;!(o=i.next()).done;){var a=o.value;if(a&&!v(a[1]))return!1}return!0;default:return!1}}function g(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,t){return"symbol"===e||"Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol}(t,e)?"symbol":t}function y(e){if(null==e)return""+e;var t=g(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function _(e){var t=y(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}return f.prototype=Error.prototype,p.checkPropTypes=u,p.PropTypes=p,p}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";e.exports=function(e,t,n,r,o){}},function(e,t,n){"use strict";e.exports="15.6.2"},function(e,t,n){"use strict";var r=n(53).Component,o=n(15).isValidElement,i=n(54),a=n(107);e.exports=a(r,o,i)},function(e,t,n){"use strict";var r=n(3),o=n(19),i=n(0),a="mixins";e.exports=function(e,t,n){var s=[],u={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},l={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)p(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=r({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=r({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=f(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=r({},e.propTypes,t)},statics:function(e,t){!function(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in l;i(!o,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n);var a=n in e;i(!a,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),e[n]=r}}}(e,t)},autobind:function(){}};function c(e,t){var n=u.hasOwnProperty(t)?u[t]:null;y.hasOwnProperty(t)&&i("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&i("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function p(e,n){if(n){i("function"!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),i(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=e.prototype,o=r.__reactAutoBindPairs;for(var s in n.hasOwnProperty(a)&&l.mixins(e,n.mixins),n)if(n.hasOwnProperty(s)&&s!==a){var p=n[s],d=r.hasOwnProperty(s);if(c(d,s),l.hasOwnProperty(s))l[s](e,p);else{var m=u.hasOwnProperty(s);if("function"!=typeof p||m||d||!1===n.autobind)if(d){var v=u[s];i(m&&("DEFINE_MANY_MERGED"===v||"DEFINE_MANY"===v),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",v,s),"DEFINE_MANY_MERGED"===v?r[s]=f(r[s],p):"DEFINE_MANY"===v&&(r[s]=h(r[s],p))}else r[s]=p;else o.push(s,p),r[s]=p}}}}function d(e,t){for(var n in i(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects."),t)t.hasOwnProperty(n)&&(i(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function f(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return d(o,n),d(o,r),o}}function h(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function m(e,t){return t.bind(e)}var v={componentDidMount:function(){this.__isMounted=!0}},g={componentWillUnmount:function(){this.__isMounted=!1}},y={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},_=function(){};return r(_.prototype,e.prototype,y),function(e){var t=function(e,r,a){this.__reactAutoBindPairs.length&&function(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],o=t[n+1];e[r]=m(e,o)}}(this),this.props=e,this.context=r,this.refs=o,this.updater=a||n,this.state=null;var s=this.getInitialState?this.getInitialState():null;i("object"==typeof s&&!Array.isArray(s),"%s.getInitialState(): must return an object or null",t.displayName||"ReactCompositeComponent"),this.state=s};for(var r in t.prototype=new _,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],s.forEach(p.bind(null,t)),p(t,v),p(t,e),p(t,g),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),i(t.prototype.render,"createClass(...): Class specification must implement a `render` method."),u)t.prototype[r]||(t.prototype[r]=null);return t}}},function(e,t,n){"use strict";var r=n(18),o=n(15);n(0);e.exports=function(e){return o.isValidElement(e)||r("143"),e}},function(e,t,n){"use strict";var r=n(4),o=n(59),i=n(83),a=n(14),s=n(9),u=n(86),l=n(177),c=n(87),p=n(178);n(2);o.inject();var d={findDOMNode:l,render:i.render,unmountComponentAtNode:i.unmountComponentAtNode,version:u,unstable_batchedUpdates:s.batchedUpdates,unstable_renderSubtreeIntoContainer:p};"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ComponentTree:{getClosestInstanceFromNode:r.getClosestInstanceFromNode,getNodeFromInstance:function(e){return e._renderedComponent&&(e=c(e)),e?r.getNodeFromInstance(e):null}},Mount:i,Reconciler:a}),e.exports=d},function(e,t,n){"use strict";e.exports={Properties:{"aria-current":0,"aria-details":0,"aria-disabled":0,"aria-hidden":0,"aria-invalid":0,"aria-keyshortcuts":0,"aria-label":0,"aria-roledescription":0,"aria-autocomplete":0,"aria-checked":0,"aria-expanded":0,"aria-haspopup":0,"aria-level":0,"aria-modal":0,"aria-multiline":0,"aria-multiselectable":0,"aria-orientation":0,"aria-placeholder":0,"aria-pressed":0,"aria-readonly":0,"aria-required":0,"aria-selected":0,"aria-sort":0,"aria-valuemax":0,"aria-valuemin":0,"aria-valuenow":0,"aria-valuetext":0,"aria-atomic":0,"aria-busy":0,"aria-live":0,"aria-relevant":0,"aria-dropeffect":0,"aria-grabbed":0,"aria-activedescendant":0,"aria-colcount":0,"aria-colindex":0,"aria-colspan":0,"aria-controls":0,"aria-describedby":0,"aria-errormessage":0,"aria-flowto":0,"aria-labelledby":0,"aria-owns":0,"aria-posinset":0,"aria-rowcount":0,"aria-rowindex":0,"aria-rowspan":0,"aria-setsize":0},DOMAttributeNames:{},DOMPropertyNames:{}}},function(e,t,n){"use strict";var r=n(20),o=n(5),i=n(112),a=n(113),s=n(114),u=[9,13,27,32],l=229,c=o.canUseDOM&&"CompositionEvent"in window,p=null;o.canUseDOM&&"documentMode"in document&&(p=document.documentMode);var d,f=o.canUseDOM&&"TextEvent"in window&&!p&&!("object"==typeof(d=window.opera)&&"function"==typeof d.version&&parseInt(d.version(),10)<=12),h=o.canUseDOM&&(!c||p&&p>8&&p<=11);var m=32,v=String.fromCharCode(m),g={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},y=!1;function _(e,t){switch(e){case"topKeyUp":return-1!==u.indexOf(t.keyCode);case"topKeyDown":return t.keyCode!==l;case"topKeyPress":case"topMouseDown":case"topBlur":return!0;default:return!1}}function b(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}var E=null;function C(e,t,n,o){var s,u;if(c?s=function(e){switch(e){case"topCompositionStart":return g.compositionStart;case"topCompositionEnd":return g.compositionEnd;case"topCompositionUpdate":return g.compositionUpdate}}(e):E?_(e,n)&&(s=g.compositionEnd):function(e,t){return"topKeyDown"===e&&t.keyCode===l}(e,n)&&(s=g.compositionStart),!s)return null;h&&(E||s!==g.compositionStart?s===g.compositionEnd&&E&&(u=E.getData()):E=i.getPooled(o));var p=a.getPooled(s,t,n,o);if(u)p.data=u;else{var d=b(n);null!==d&&(p.data=d)}return r.accumulateTwoPhaseDispatches(p),p}function w(e,t,n,o){var a;if(!(a=f?function(e,t){switch(e){case"topCompositionEnd":return b(t);case"topKeyPress":return t.which!==m?null:(y=!0,v);case"topTextInput":var n=t.data;return n===v&&y?null:n;default:return null}}(e,n):function(e,t){if(E){if("topCompositionEnd"===e||!c&&_(e,t)){var n=E.getData();return i.release(E),E=null,n}return null}switch(e){case"topPaste":return null;case"topKeyPress":return t.which&&!function(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}(t)?String.fromCharCode(t.which):null;case"topCompositionEnd":return h?null:t.data;default:return null}}(e,n)))return null;var u=s.getPooled(g.beforeInput,t,n,o);return u.data=a,r.accumulateTwoPhaseDispatches(u),u}var x={eventTypes:g,extractEvents:function(e,t,n,r){return[C(e,t,n,r),w(e,t,n,r)]}};e.exports=x},function(e,t,n){"use strict";var r=n(3),o=n(13),i=n(62);function a(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}r(a.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[i()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,o=this.getText(),i=o.length;for(e=0;e<r&&n[e]===o[e];e++);var a=r-e;for(t=1;t<=a&&n[r-t]===o[i-t];t++);var s=t>1?1-t:void 0;return this._fallbackText=o.slice(e,s),this._fallbackText}}),o.addPoolingTo(a),e.exports=a},function(e,t,n){"use strict";var r=n(11);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{data:null}),e.exports=o},function(e,t,n){"use strict";var r=n(11);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{data:null}),e.exports=o},function(e,t,n){"use strict";var r=n(21),o=n(20),i=n(5),a=n(4),s=n(9),u=n(11),l=n(65),c=n(34),p=n(35),d=n(66),f={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}};function h(e,t,n){var r=u.getPooled(f.change,e,t,n);return r.type="change",o.accumulateTwoPhaseDispatches(r),r}var m=null,v=null;var g=!1;function y(e){var t=h(v,e,c(e));s.batchedUpdates(_,t)}function _(e){r.enqueueEvents(e),r.processEventQueue(!1)}function b(){m&&(m.detachEvent("onchange",y),m=null,v=null)}function E(e,t){var n=l.updateValueIfChanged(e),r=!0===t.simulated&&M._allowSimulatedPassThrough;if(n||r)return e}function C(e,t){if("topChange"===e)return t}function w(e,t,n){"topFocus"===e?(b(),function(e,t){v=t,(m=e).attachEvent("onchange",y)}(t,n)):"topBlur"===e&&b()}i.canUseDOM&&(g=p("change")&&(!document.documentMode||document.documentMode>8));var x=!1;function T(){m&&(m.detachEvent("onpropertychange",k),m=null,v=null)}function k(e){"value"===e.propertyName&&E(v,e)&&y(e)}function S(e,t,n){"topFocus"===e?(T(),function(e,t){v=t,(m=e).attachEvent("onpropertychange",k)}(t,n)):"topBlur"===e&&T()}function I(e,t,n){if("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)return E(v,n)}function P(e,t,n){if("topClick"===e)return E(t,n)}function N(e,t,n){if("topInput"===e||"topChange"===e)return E(t,n)}i.canUseDOM&&(x=p("input")&&(!document.documentMode||document.documentMode>9));var M={eventTypes:f,_allowSimulatedPassThrough:!0,_isInputEventSupported:x,extractEvents:function(e,t,n,r){var o,i,s,u,l=t?a.getNodeFromInstance(t):window;if("select"===(u=(s=l).nodeName&&s.nodeName.toLowerCase())||"input"===u&&"file"===s.type?g?o=C:i=w:d(l)?x?o=N:(o=I,i=S):function(e){var t=e.nodeName;return t&&"input"===t.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}(l)&&(o=P),o){var c=o(e,t,n);if(c)return h(c,n,r)}i&&i(e,l,t),"topBlur"===e&&function(e,t){if(null!=e){var n=e._wrapperState||t._wrapperState;if(n&&n.controlled&&"number"===t.type){var r=""+t.value;t.getAttribute("value")!==r&&t.setAttribute("value",r)}}}(t,l)}};e.exports=M},function(e,t,n){"use strict";var r=n(117),o={};o.attachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&function(e,t,n){"function"==typeof e?e(t.getPublicInstance()):r.addComponentAsRefTo(t,e,n)}(n,e,t._owner)}},o.shouldUpdateRefs=function(e,t){var n=null,r=null;null!==e&&"object"==typeof e&&(n=e.ref,r=e._owner);var o=null,i=null;return null!==t&&"object"==typeof t&&(o=t.ref,i=t._owner),n!==o||"string"==typeof o&&i!==r},o.detachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&function(e,t,n){"function"==typeof e?e(null):r.removeComponentAsRefFrom(t,e,n)}(n,e,t._owner)}},e.exports=o},function(e,t,n){"use strict";var r=n(1);n(0);function o(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)}var i={addComponentAsRefTo:function(e,t,n){o(n)||r("119"),n.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,n){o(n)||r("120");var i=n.getPublicInstance();i&&i.refs[t]===e.getPublicInstance()&&n.detachRef(t)}};e.exports=i},function(e,t,n){"use strict";e.exports=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"]},function(e,t,n){"use strict";var r=n(20),o=n(4),i=n(25),a={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},s={eventTypes:a,extractEvents:function(e,t,n,s){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var u,l,c;if(s.window===s)u=s;else{var p=s.ownerDocument;u=p?p.defaultView||p.parentWindow:window}if("topMouseOut"===e){l=t;var d=n.relatedTarget||n.toElement;c=d?o.getClosestInstanceFromNode(d):null}else l=null,c=t;if(l===c)return null;var f=null==l?u:o.getNodeFromInstance(l),h=null==c?u:o.getNodeFromInstance(c),m=i.getPooled(a.mouseLeave,l,n,s);m.type="mouseleave",m.target=f,m.relatedTarget=h;var v=i.getPooled(a.mouseEnter,c,n,s);return v.type="mouseenter",v.target=h,v.relatedTarget=f,r.accumulateEnterLeaveDispatches(m,v,l,c),[m,v]}};e.exports=s},function(e,t,n){"use strict";var r=n(16),o=r.injection.MUST_USE_PROPERTY,i=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,s=r.injection.HAS_POSITIVE_NUMERIC_VALUE,u=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,l={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:i,allowTransparency:0,alt:0,as:0,async:i,autoComplete:0,autoPlay:i,capture:i,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|i,cite:0,classID:0,className:0,cols:s,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:i,controlsList:0,coords:0,crossOrigin:0,data:0,dateTime:0,default:i,defer:i,dir:0,disabled:i,download:u,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:i,formTarget:0,frameBorder:0,headers:0,height:0,hidden:i,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:i,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|i,muted:o|i,name:0,nonce:0,noValidate:i,open:i,optimum:0,pattern:0,placeholder:0,playsInline:i,poster:0,preload:0,profile:0,radioGroup:0,readOnly:i,referrerPolicy:0,rel:0,required:i,reversed:i,role:0,rows:s,rowSpan:a,sandbox:0,scope:0,scoped:i,scrolling:0,seamless:i,selected:o|i,shape:0,size:s,sizes:0,span:s,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:i,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{},DOMMutationMethods:{value:function(e,t){if(null==t)return e.removeAttribute("value");"number"!==e.type||!1===e.hasAttribute("value")?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t)}}};e.exports=l},function(e,t,n){"use strict";var r=n(37),o={processChildrenUpdates:n(126).dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};e.exports=o},function(e,t,n){"use strict";var r=n(1),o=n(17),i=n(5),a=n(123),s=n(8),u=(n(0),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(i.canUseDOM||r("56"),t||r("57"),"HTML"===e.nodeName&&r("58"),"string"==typeof t){var n=a(t,s)[0];e.parentNode.replaceChild(n,e)}else o.replaceChildWithTree(e,t)}});e.exports=u},function(e,t,n){"use strict";var r=n(5),o=n(124),i=n(125),a=n(0),s=r.canUseDOM?document.createElement("div"):null,u=/^\s*<(\w+)/;e.exports=function(e,t){var n=s;s||a(!1);var r=function(e){var t=e.match(u);return t&&t[1].toLowerCase()}(e),l=r&&i(r);if(l){n.innerHTML=l[1]+e+l[2];for(var c=l[0];c--;)n=n.lastChild}else n.innerHTML=e;var p=n.getElementsByTagName("script");p.length&&(t||a(!1),o(p).forEach(t));for(var d=Array.from(n.childNodes);n.lastChild;)n.removeChild(n.lastChild);return d}},function(e,t,n){"use strict";var r=n(0);e.exports=function(e){return function(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"length"in e&&!("setInterval"in e)&&"number"!=typeof e.nodeType&&(Array.isArray(e)||"callee"in e||"item"in e)}(e)?Array.isArray(e)?e.slice():function(e){var t=e.length;if((Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e)&&r(!1),"number"!=typeof t&&r(!1),0===t||t-1 in e||r(!1),"function"==typeof e.callee&&r(!1),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(e){}for(var n=Array(t),o=0;o<t;o++)n[o]=e[o];return n}(e):[e]}},function(e,t,n){"use strict";var r=n(5),o=n(0),i=r.canUseDOM?document.createElement("div"):null,a={},s=[1,'<select multiple="true">',"</select>"],u=[1,"<table>","</table>"],l=[3,"<table><tbody><tr>","</tr></tbody></table>"],c=[1,'<svg xmlns="http://www.w3.org/2000/svg">',"</svg>"],p={"*":[1,"?<div>","</div>"],area:[1,"<map>","</map>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],param:[1,"<object>","</object>"],tr:[2,"<table><tbody>","</tbody></table>"],optgroup:s,option:s,caption:u,colgroup:u,tbody:u,tfoot:u,thead:u,td:l,th:l};["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"].forEach(function(e){p[e]=c,a[e]=!0}),e.exports=function(e){return i||o(!1),p.hasOwnProperty(e)||(e="*"),a.hasOwnProperty(e)||(i.innerHTML="*"===e?"<link />":"<"+e+"></"+e+">",a[e]=!i.firstChild),a[e]?p[e]:null}},function(e,t,n){"use strict";var r=n(37),o=n(4),i={dangerouslyProcessChildrenUpdates:function(e,t){var n=o.getNodeFromInstance(e);r.processUpdates(n,t)}};e.exports=i},function(e,t,n){"use strict";var r=n(1),o=n(3),i=n(128),a=n(129),s=n(17),u=n(38),l=n(16),c=n(71),p=n(21),d=n(31),f=n(28),h=n(58),m=n(4),v=n(139),g=n(141),y=n(72),_=n(142),b=(n(6),n(143)),E=n(78),C=(n(8),n(27)),w=(n(0),n(35),n(43),n(65)),x=(n(47),n(2),h),T=p.deleteListener,k=m.getNodeFromInstance,S=f.listenTo,I=d.registrationNameModules,P={string:!0,number:!0},N="__html",M={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},O=11;function R(e,t){t&&(H[e._tag]&&(null!=t.children||null!=t.dangerouslySetInnerHTML)&&r("137",e._tag,e._currentElement._owner?" Check the render method of "+e._currentElement._owner.getName()+".":""),null!=t.dangerouslySetInnerHTML&&(null!=t.children&&r("60"),"object"==typeof t.dangerouslySetInnerHTML&&N in t.dangerouslySetInnerHTML||r("61")),null!=t.style&&"object"!=typeof t.style&&r("62",function(e){if(e){var t=e._currentElement._owner||null;if(t){var n=t.getName();if(n)return" This DOM node was rendered by `"+n+"`."}}return""}(e)))}function A(e,t,n,r){if(!(r instanceof E)){0;var o=e._hostContainerInfo,i=o._node&&o._node.nodeType===O?o._node:o._ownerDocument;S(t,i),r.getReactMountReady().enqueue(L,{inst:e,registrationName:t,listener:n})}}function L(){p.putListener(this.inst,this.registrationName,this.listener)}function D(){v.postMountWrapper(this)}function U(){_.postMountWrapper(this)}function j(){g.postMountWrapper(this)}var F={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"};function B(){w.track(this)}function W(){this._rootNodeID||r("63");var e=k(this);switch(e||r("64"),this._tag){case"iframe":case"object":this._wrapperState.listeners=[f.trapBubbledEvent("topLoad","load",e)];break;case"video":case"audio":for(var t in this._wrapperState.listeners=[],F)F.hasOwnProperty(t)&&this._wrapperState.listeners.push(f.trapBubbledEvent(t,F[t],e));break;case"source":this._wrapperState.listeners=[f.trapBubbledEvent("topError","error",e)];break;case"img":this._wrapperState.listeners=[f.trapBubbledEvent("topError","error",e),f.trapBubbledEvent("topLoad","load",e)];break;case"form":this._wrapperState.listeners=[f.trapBubbledEvent("topReset","reset",e),f.trapBubbledEvent("topSubmit","submit",e)];break;case"input":case"select":case"textarea":this._wrapperState.listeners=[f.trapBubbledEvent("topInvalid","invalid",e)]}}function z(){y.postUpdateWrapper(this)}var q={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},V={listing:!0,pre:!0,textarea:!0},H=o({menuitem:!0},q),Y=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,K={},G={}.hasOwnProperty;function X(e,t){return e.indexOf("-")>=0||null!=t.is}var Q=1;function $(e){var t=e.type;!function(e){G.call(K,e)||(Y.test(e)||r("65",e),K[e]=!0)}(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}$.displayName="ReactDOMComponent",$.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=Q++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var o,a,l,p=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(W,this);break;case"input":v.mountWrapper(this,p,t),p=v.getHostProps(this,p),e.getReactMountReady().enqueue(B,this),e.getReactMountReady().enqueue(W,this);break;case"option":g.mountWrapper(this,p,t),p=g.getHostProps(this,p);break;case"select":y.mountWrapper(this,p,t),p=y.getHostProps(this,p),e.getReactMountReady().enqueue(W,this);break;case"textarea":_.mountWrapper(this,p,t),p=_.getHostProps(this,p),e.getReactMountReady().enqueue(B,this),e.getReactMountReady().enqueue(W,this)}if(R(this,p),null!=t?(o=t._namespaceURI,a=t._tag):n._tag&&(o=n._namespaceURI,a=n._tag),(null==o||o===u.svg&&"foreignobject"===a)&&(o=u.html),o===u.html&&("svg"===this._tag?o=u.svg:"math"===this._tag&&(o=u.mathml)),this._namespaceURI=o,e.useCreateElement){var d,f=n._ownerDocument;if(o===u.html)if("script"===this._tag){var h=f.createElement("div"),b=this._currentElement.type;h.innerHTML="<"+b+"></"+b+">",d=h.removeChild(h.firstChild)}else d=p.is?f.createElement(this._currentElement.type,p.is):f.createElement(this._currentElement.type);else d=f.createElementNS(o,this._currentElement.type);m.precacheNode(this,d),this._flags|=x.hasCachedChildNodes,this._hostParent||c.setAttributeForRoot(d),this._updateDOMProperties(null,p,e);var E=s(d);this._createInitialChildren(e,p,r,E),l=E}else{var C=this._createOpenTagMarkupAndPutListeners(e,p),w=this._createContentMarkup(e,p,r);l=!w&&q[this._tag]?C+"/>":C+">"+w+"</"+this._currentElement.type+">"}switch(this._tag){case"input":e.getReactMountReady().enqueue(D,this),p.autoFocus&&e.getReactMountReady().enqueue(i.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(U,this),p.autoFocus&&e.getReactMountReady().enqueue(i.focusDOMComponent,this);break;case"select":case"button":p.autoFocus&&e.getReactMountReady().enqueue(i.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(j,this)}return l},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var i=t[r];if(null!=i)if(I.hasOwnProperty(r))i&&A(this,r,i,e);else{"style"===r&&(i&&(i=this._previousStyleCopy=o({},t.style)),i=a.createMarkupForStyles(i,this));var s=null;null!=this._tag&&X(this._tag,t)?M.hasOwnProperty(r)||(s=c.createMarkupForCustomAttribute(r,i)):s=c.createMarkupForProperty(r,i),s&&(n+=" "+s)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+c.createMarkupForRoot()),n+=" "+c.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var i=P[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)r=C(i);else if(null!=a){r=this.mountChildren(a,e,n).join("")}}return V[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&s.queueHTML(r,o.__html);else{var i=P[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)""!==i&&s.queueText(r,i);else if(null!=a)for(var u=this.mountChildren(a,e,n),l=0;l<u.length;l++)s.queueChild(r,u[l])}},receiveComponent:function(e,t,n){var r=this._currentElement;this._currentElement=e,this.updateComponent(t,r,e,n)},updateComponent:function(e,t,n,r){var o=t.props,i=this._currentElement.props;switch(this._tag){case"input":o=v.getHostProps(this,o),i=v.getHostProps(this,i);break;case"option":o=g.getHostProps(this,o),i=g.getHostProps(this,i);break;case"select":o=y.getHostProps(this,o),i=y.getHostProps(this,i);break;case"textarea":o=_.getHostProps(this,o),i=_.getHostProps(this,i)}switch(R(this,i),this._updateDOMProperties(o,i,e),this._updateDOMChildren(o,i,e,r),this._tag){case"input":v.updateWrapper(this),w.updateValueIfChanged(this);break;case"textarea":_.updateWrapper(this);break;case"select":e.getReactMountReady().enqueue(z,this)}},_updateDOMProperties:function(e,t,n){var r,i,s;for(r in e)if(!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&null!=e[r])if("style"===r){var u=this._previousStyleCopy;for(i in u)u.hasOwnProperty(i)&&((s=s||{})[i]="");this._previousStyleCopy=null}else I.hasOwnProperty(r)?e[r]&&T(this,r):X(this._tag,e)?M.hasOwnProperty(r)||c.deleteValueForAttribute(k(this),r):(l.properties[r]||l.isCustomAttribute(r))&&c.deleteValueForProperty(k(this),r);for(r in t){var p=t[r],d="style"===r?this._previousStyleCopy:null!=e?e[r]:void 0;if(t.hasOwnProperty(r)&&p!==d&&(null!=p||null!=d))if("style"===r)if(p?p=this._previousStyleCopy=o({},p):this._previousStyleCopy=null,d){for(i in d)!d.hasOwnProperty(i)||p&&p.hasOwnProperty(i)||((s=s||{})[i]="");for(i in p)p.hasOwnProperty(i)&&d[i]!==p[i]&&((s=s||{})[i]=p[i])}else s=p;else if(I.hasOwnProperty(r))p?A(this,r,p,n):d&&T(this,r);else if(X(this._tag,t))M.hasOwnProperty(r)||c.setValueForAttribute(k(this),r,p);else if(l.properties[r]||l.isCustomAttribute(r)){var f=k(this);null!=p?c.setValueForProperty(f,r,p):c.deleteValueForProperty(f,r)}}s&&a.setValueForStyles(k(this),s,this)},_updateDOMChildren:function(e,t,n,r){var o=P[typeof e.children]?e.children:null,i=P[typeof t.children]?t.children:null,a=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,s=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,u=null!=o?null:e.children,l=null!=i?null:t.children,c=null!=o||null!=a,p=null!=i||null!=s;null!=u&&null==l?this.updateChildren(null,n,r):c&&!p&&this.updateTextContent(""),null!=i?o!==i&&this.updateTextContent(""+i):null!=s?a!==s&&this.updateMarkup(""+s):null!=l&&this.updateChildren(l,n,r)},getHostNode:function(){return k(this)},unmountComponent:function(e){switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":var t=this._wrapperState.listeners;if(t)for(var n=0;n<t.length;n++)t[n].remove();break;case"input":case"textarea":w.stopTracking(this);break;case"html":case"head":case"body":r("66",this._tag)}this.unmountChildren(e),m.uncacheNode(this),p.deleteAllListeners(this),this._rootNodeID=0,this._domID=0,this._wrapperState=null},getPublicInstance:function(){return k(this)}},o($.prototype,$.Mixin,b.Mixin),e.exports=$},function(e,t,n){"use strict";var r=n(4),o=n(69),i={focusDOMComponent:function(){o(r.getNodeFromInstance(this))}};e.exports=i},function(e,t,n){"use strict";var r=n(70),o=n(5),i=(n(6),n(130),n(132)),a=n(133),s=n(135),u=(n(2),s(function(e){return a(e)})),l=!1,c="cssFloat";if(o.canUseDOM){var p=document.createElement("div").style;try{p.font=""}catch(e){l=!0}void 0===document.documentElement.style.cssFloat&&(c="styleFloat")}var d={createMarkupForStyles:function(e,t){var n="";for(var r in e)if(e.hasOwnProperty(r)){var o=0===r.indexOf("--"),a=e[r];0,null!=a&&(n+=u(r)+":",n+=i(r,a,t,o)+";")}return n||null},setValueForStyles:function(e,t,n){var o=e.style;for(var a in t)if(t.hasOwnProperty(a)){var s=0===a.indexOf("--");0;var u=i(a,t[a],n,s);if("float"!==a&&"cssFloat"!==a||(a=c),s)o.setProperty(a,u);else if(u)o[a]=u;else{var p=l&&r.shorthandPropertyExpansions[a];if(p)for(var d in p)o[d]="";else o[a]=""}}}};e.exports=d},function(e,t,n){"use strict";var r=n(131),o=/^-ms-/;e.exports=function(e){return r(e.replace(o,"ms-"))}},function(e,t,n){"use strict";var r=/-(.)/g;e.exports=function(e){return e.replace(r,function(e,t){return t.toUpperCase()})}},function(e,t,n){"use strict";var r=n(70),o=(n(2),r.isUnitlessNumber);e.exports=function(e,t,n,r){if(null==t||"boolean"==typeof t||""===t)return"";var i=isNaN(t);return r||i||0===t||o.hasOwnProperty(e)&&o[e]?""+t:("string"==typeof t&&(t=t.trim()),t+"px")}},function(e,t,n){"use strict";var r=n(134),o=/^ms-/;e.exports=function(e){return r(e).replace(o,"-ms-")}},function(e,t,n){"use strict";var r=/([A-Z])/g;e.exports=function(e){return e.replace(r,"-$1").toLowerCase()}},function(e,t,n){"use strict";e.exports=function(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}},function(e,t,n){"use strict";var r=n(27);e.exports=function(e){return'"'+r(e)+'"'}},function(e,t,n){"use strict";var r=n(21);var o={handleTopLevel:function(e,t,n,o){!function(e){r.enqueueEvents(e),r.processEventQueue(!1)}(r.extractEvents(e,t,n,o))}};e.exports=o},function(e,t,n){"use strict";var r=n(5);function o(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}var i={animationend:o("Animation","AnimationEnd"),animationiteration:o("Animation","AnimationIteration"),animationstart:o("Animation","AnimationStart"),transitionend:o("Transition","TransitionEnd")},a={},s={};r.canUseDOM&&(s=document.createElement("div").style,"AnimationEvent"in window||(delete i.animationend.animation,delete i.animationiteration.animation,delete i.animationstart.animation),"TransitionEvent"in window||delete i.transitionend.transition),e.exports=function(e){if(a[e])return a[e];if(!i[e])return e;var t=i[e];for(var n in t)if(t.hasOwnProperty(n)&&n in s)return a[e]=t[n];return""}},function(e,t,n){"use strict";var r=n(1),o=n(3),i=n(71),a=n(40),s=n(4),u=n(9);n(0),n(2);function l(){this._rootNodeID&&p.updateWrapper(this)}function c(e){return"checkbox"===e.type||"radio"===e.type?null!=e.checked:null!=e.value}var p={getHostProps:function(e,t){var n=a.getValue(t),r=a.getChecked(t);return o({type:void 0,step:void 0,min:void 0,max:void 0},t,{defaultChecked:void 0,defaultValue:void 0,value:null!=n?n:e._wrapperState.initialValue,checked:null!=r?r:e._wrapperState.initialChecked,onChange:e._wrapperState.onChange})},mountWrapper:function(e,t){var n=t.defaultValue;e._wrapperState={initialChecked:null!=t.checked?t.checked:t.defaultChecked,initialValue:null!=t.value?t.value:n,listeners:null,onChange:d.bind(e),controlled:c(t)}},updateWrapper:function(e){var t=e._currentElement.props,n=t.checked;null!=n&&i.setValueForProperty(s.getNodeFromInstance(e),"checked",n||!1);var r=s.getNodeFromInstance(e),o=a.getValue(t);if(null!=o)if(0===o&&""===r.value)r.value="0";else if("number"===t.type){var u=parseFloat(r.value,10)||0;(o!=u||o==u&&r.value!=o)&&(r.value=""+o)}else r.value!==""+o&&(r.value=""+o);else null==t.value&&null!=t.defaultValue&&r.defaultValue!==""+t.defaultValue&&(r.defaultValue=""+t.defaultValue),null==t.checked&&null!=t.defaultChecked&&(r.defaultChecked=!!t.defaultChecked)},postMountWrapper:function(e){var t=e._currentElement.props,n=s.getNodeFromInstance(e);switch(t.type){case"submit":case"reset":break;case"color":case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":n.value="",n.value=n.defaultValue;break;default:n.value=n.value}var r=n.name;""!==r&&(n.name=""),n.defaultChecked=!n.defaultChecked,n.defaultChecked=!n.defaultChecked,""!==r&&(n.name=r)}};function d(e){var t=this._currentElement.props,n=a.executeOnChange(t,e);u.asap(l,this);var o=t.name;if("radio"===t.type&&null!=o){for(var i=s.getNodeFromInstance(this),c=i;c.parentNode;)c=c.parentNode;for(var p=c.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),d=0;d<p.length;d++){var f=p[d];if(f!==i&&f.form===i.form){var h=s.getInstanceFromNode(f);h||r("90"),u.asap(l,h)}}}return n}e.exports=p},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";var r=n(3),o=n(12),i=n(4),a=n(72),s=(n(2),!1);function u(e){var t="";return o.Children.forEach(e,function(e){null!=e&&("string"==typeof e||"number"==typeof e?t+=e:s||(s=!0))}),t}var l={mountWrapper:function(e,t,n){var r=null;if(null!=n){var o=n;"optgroup"===o._tag&&(o=o._hostParent),null!=o&&"select"===o._tag&&(r=a.getSelectValueContext(o))}var i,s=null;if(null!=r)if(i=null!=t.value?t.value+"":u(t.children),s=!1,Array.isArray(r)){for(var l=0;l<r.length;l++)if(""+r[l]===i){s=!0;break}}else s=""+r===i;e._wrapperState={selected:s}},postMountWrapper:function(e){var t=e._currentElement.props;null!=t.value&&i.getNodeFromInstance(e).setAttribute("value",t.value)},getHostProps:function(e,t){var n=r({selected:void 0,children:void 0},t);null!=e._wrapperState.selected&&(n.selected=e._wrapperState.selected);var o=u(t.children);return o&&(n.children=o),n}};e.exports=l},function(e,t,n){"use strict";var r=n(1),o=n(3),i=n(40),a=n(4),s=n(9);n(0),n(2);function u(){this._rootNodeID&&l.updateWrapper(this)}var l={getHostProps:function(e,t){return null!=t.dangerouslySetInnerHTML&&r("91"),o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange})},mountWrapper:function(e,t){var n=i.getValue(t),o=n;if(null==n){var a=t.defaultValue,s=t.children;null!=s&&(null!=a&&r("92"),Array.isArray(s)&&(s.length<=1||r("93"),s=s[0]),a=""+s),null==a&&(a=""),o=a}e._wrapperState={initialValue:""+o,listeners:null,onChange:c.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=a.getNodeFromInstance(e),r=i.getValue(t);if(null!=r){var o=""+r;o!==n.value&&(n.value=o),null==t.defaultValue&&(n.defaultValue=o)}null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=a.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)}};function c(e){var t=this._currentElement.props,n=i.executeOnChange(t,e);return s.asap(u,this),n}e.exports=l},function(e,t,n){"use strict";var r=n(1),o=n(41),i=(n(23),n(6),n(10),n(14)),a=n(144),s=(n(8),n(149));n(0);function u(e,t){return t&&(e=e||[]).push(t),e}function l(e,t){o.processChildrenUpdates(e,t)}var c={Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return a.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,o,i){var u;return u=s(t,0),a.updateChildren(e,u,n,r,o,this,this._hostContainerInfo,i,0),u},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],a=0;for(var s in r)if(r.hasOwnProperty(s)){var u=r[s];0;var l=i.mountComponent(u,t,this,this._hostContainerInfo,n,0);u._mountIndex=a++,o.push(l)}return o},updateTextContent:function(e){var t,n=this._renderedChildren;for(var o in a.unmountChildren(n,!1),n)n.hasOwnProperty(o)&&r("118");l(this,[(t=e,{type:"TEXT_CONTENT",content:t,fromIndex:null,fromNode:null,toIndex:null,afterNode:null})])},updateMarkup:function(e){var t,n=this._renderedChildren;for(var o in a.unmountChildren(n,!1),n)n.hasOwnProperty(o)&&r("118");l(this,[(t=e,{type:"SET_MARKUP",content:t,fromIndex:null,fromNode:null,toIndex:null,afterNode:null})])},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,o={},a=[],s=this._reconcilerUpdateChildren(r,e,a,o,t,n);if(s||r){var c,p=null,d=0,f=0,h=0,m=null;for(c in s)if(s.hasOwnProperty(c)){var v=r&&r[c],g=s[c];v===g?(p=u(p,this.moveChild(v,m,d,f)),f=Math.max(v._mountIndex,f),v._mountIndex=d):(v&&(f=Math.max(v._mountIndex,f)),p=u(p,this._mountChildAtIndex(g,a[h],m,d,t,n)),h++),d++,m=i.getHostNode(g)}for(c in o)o.hasOwnProperty(c)&&(p=u(p,this._unmountChild(r[c],o[c])));p&&l(this,p),this._renderedChildren=s}},unmountChildren:function(e){var t=this._renderedChildren;a.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex<r)return function(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:i.getHostNode(e),toIndex:n,afterNode:t}}(e,t,n)},createChild:function(e,t,n){return function(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}(n,t,e._mountIndex)},removeChild:function(e,t){return function(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}(e,t)},_mountChildAtIndex:function(e,t,n,r,o,i){return e._mountIndex=r,this.createChild(e,n,t)},_unmountChild:function(e,t){var n=this.removeChild(e,t);return e._mountIndex=null,n}}};e.exports=c},function(e,t,n){"use strict";(function(t){var r=n(14),o=n(42),i=(n(45),n(44)),a=n(76);n(2);function s(e,t,n,r){var i=void 0===e[n];null!=t&&i&&(e[n]=o(t,!0))}void 0!==t&&Object({NODE_ENV:"production"});var u={instantiateChildren:function(e,t,n,r){if(null==e)return null;var o={};return a(e,s,o),o},updateChildren:function(e,t,n,a,s,u,l,c,p){if(t||e){var d,f;for(d in t)if(t.hasOwnProperty(d)){var h=(f=e&&e[d])&&f._currentElement,m=t[d];if(null!=f&&i(h,m))r.receiveComponent(f,m,s,c),t[d]=f;else{f&&(a[d]=r.getHostNode(f),r.unmountComponent(f,!1));var v=o(m,!0);t[d]=v;var g=r.mountComponent(v,s,u,l,c,p);n.push(g)}}for(d in e)!e.hasOwnProperty(d)||t&&t.hasOwnProperty(d)||(f=e[d],a[d]=r.getHostNode(f),r.unmountComponent(f,!1))}},unmountChildren:function(e,t){for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];r.unmountComponent(o,t)}}};e.exports=u}).call(this,n(30))},function(e,t,n){"use strict";var r=n(1),o=n(3),i=n(12),a=n(41),s=n(10),u=n(33),l=n(23),c=(n(6),n(73)),p=n(14),d=n(19),f=(n(0),n(43)),h=n(44),m=(n(2),0),v=1,g=2;function y(e){}function _(e,t){0}y.prototype.render=function(){var e=l.get(this)._currentElement.type,t=e(this.props,this.context,this.updater);return _(e,t),t};var b=1,E={construct:function(e){this._currentElement=e,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(e,t,n,o){this._context=o,this._mountOrder=b++,this._hostParent=t,this._hostContainerInfo=n;var a,s=this._currentElement.props,u=this._processContext(o),c=this._currentElement.type,p=e.getUpdateQueue(),f=function(e){return!(!e.prototype||!e.prototype.isReactComponent)}(c),h=this._constructComponent(f,s,u,p);f||null!=h&&null!=h.render?!function(e){return!(!e.prototype||!e.prototype.isPureReactComponent)}(c)?this._compositeType=m:this._compositeType=v:(a=h,_(),null===h||!1===h||i.isValidElement(h)||r("105",c.displayName||c.name||"Component"),h=new y(c),this._compositeType=g),h.props=s,h.context=u,h.refs=d,h.updater=p,this._instance=h,l.set(h,this);var E,C=h.state;return void 0===C&&(h.state=C=null),("object"!=typeof C||Array.isArray(C))&&r("106",this.getName()||"ReactCompositeComponent"),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,E=h.unstable_handleError?this.performInitialMountWithErrorHandling(a,t,n,e,o):this.performInitialMount(a,t,n,e,o),h.componentDidMount&&e.getReactMountReady().enqueue(h.componentDidMount,h),E},_constructComponent:function(e,t,n,r){return this._constructComponentWithoutOwner(e,t,n,r)},_constructComponentWithoutOwner:function(e,t,n,r){var o=this._currentElement.type;return e?new o(t,n,r):o(t,n,r)},performInitialMountWithErrorHandling:function(e,t,n,r,o){var i,a=r.checkpoint();try{i=this.performInitialMount(e,t,n,r,o)}catch(s){r.rollback(a),this._instance.unstable_handleError(s),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(a),i=this.performInitialMount(e,t,n,r,o)}return i},performInitialMount:function(e,t,n,r,o){var i=this._instance;i.componentWillMount&&(i.componentWillMount(),this._pendingStateQueue&&(i.state=this._processPendingState(i.props,i.context))),void 0===e&&(e=this._renderValidatedComponent());var a=c.getType(e);this._renderedNodeType=a;var s=this._instantiateReactComponent(e,a!==c.EMPTY);return this._renderedComponent=s,p.mountComponent(s,r,t,n,this._processChildContext(o),0)},getHostNode:function(){return p.getHostNode(this._renderedComponent)},unmountComponent:function(e){if(this._renderedComponent){var t=this._instance;if(t.componentWillUnmount&&!t._calledComponentWillUnmount)if(t._calledComponentWillUnmount=!0,e){var n=this.getName()+".componentWillUnmount()";u.invokeGuardedCallback(n,t.componentWillUnmount.bind(t))}else t.componentWillUnmount();this._renderedComponent&&(p.unmountComponent(this._renderedComponent,e),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,l.remove(t)}},_maskContext:function(e){var t=this._currentElement.type.contextTypes;if(!t)return d;var n={};for(var r in t)n[r]=e[r];return n},_processContext:function(e){return this._maskContext(e)},_processChildContext:function(e){var t,n=this._currentElement.type,i=this._instance;if(i.getChildContext&&(t=i.getChildContext()),t){for(var a in"object"!=typeof n.childContextTypes&&r("107",this.getName()||"ReactCompositeComponent"),t)a in n.childContextTypes||r("108",this.getName()||"ReactCompositeComponent",a);return o({},e,t)}return e},_checkContextTypes:function(e,t,n){0},receiveComponent:function(e,t,n){var r=this._currentElement,o=this._context;this._pendingElement=null,this.updateComponent(t,r,e,o,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement?p.receiveComponent(this,this._pendingElement,e,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(e,t,n,o,i){var a=this._instance;null==a&&r("136",this.getName()||"ReactCompositeComponent");var s,u=!1;this._context===i?s=a.context:(s=this._processContext(i),u=!0);var l=t.props,c=n.props;t!==n&&(u=!0),u&&a.componentWillReceiveProps&&a.componentWillReceiveProps(c,s);var p=this._processPendingState(c,s),d=!0;this._pendingForceUpdate||(a.shouldComponentUpdate?d=a.shouldComponentUpdate(c,p,s):this._compositeType===v&&(d=!f(l,c)||!f(a.state,p))),this._updateBatchNumber=null,d?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,c,p,s,e,i)):(this._currentElement=n,this._context=i,a.props=c,a.state=p,a.context=s)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,i=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(i&&1===r.length)return r[0];for(var a=o({},i?r[0]:n.state),s=i?1:0;s<r.length;s++){var u=r[s];o(a,"function"==typeof u?u.call(n,a,e,t):u)}return a},_performComponentUpdate:function(e,t,n,r,o,i){var a,s,u,l=this._instance,c=Boolean(l.componentDidUpdate);c&&(a=l.props,s=l.state,u=l.context),l.componentWillUpdate&&l.componentWillUpdate(t,n,r),this._currentElement=e,this._context=i,l.props=t,l.state=n,l.context=r,this._updateRenderedComponent(o,i),c&&o.getReactMountReady().enqueue(l.componentDidUpdate.bind(l,a,s,u),l)},_updateRenderedComponent:function(e,t){var n=this._renderedComponent,r=n._currentElement,o=this._renderValidatedComponent();if(h(r,o))p.receiveComponent(n,o,e,this._processChildContext(t));else{var i=p.getHostNode(n);p.unmountComponent(n,!1);var a=c.getType(o);this._renderedNodeType=a;var s=this._instantiateReactComponent(o,a!==c.EMPTY);this._renderedComponent=s;var u=p.mountComponent(s,e,this._hostParent,this._hostContainerInfo,this._processChildContext(t),0);this._replaceNodeWithMarkup(i,u,n)}},_replaceNodeWithMarkup:function(e,t,n){a.replaceNodeWithMarkup(e,t,n)},_renderValidatedComponentWithoutOwnerOrContext:function(){return this._instance.render()},_renderValidatedComponent:function(){var e;if(this._compositeType!==g){s.current=this;try{e=this._renderValidatedComponentWithoutOwnerOrContext()}finally{s.current=null}}else e=this._renderValidatedComponentWithoutOwnerOrContext();return null===e||!1===e||i.isValidElement(e)||r("109",this.getName()||"ReactCompositeComponent"),e},attachRef:function(e,t){var n=this.getPublicInstance();null==n&&r("110");var o=t.getPublicInstance();(n.refs===d?n.refs={}:n.refs)[e]=o},detachRef:function(e){delete this.getPublicInstance().refs[e]},getName:function(){var e=this._currentElement.type,t=this._instance&&this._instance.constructor;return e.displayName||t&&t.displayName||e.name||t&&t.name||null},getPublicInstance:function(){var e=this._instance;return this._compositeType===g?null:e},_instantiateReactComponent:null};e.exports=E},function(e,t,n){"use strict";var r=1;e.exports=function(){return r++}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=r},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.iterator,o="@@iterator";e.exports=function(e){var t=e&&(r&&e[r]||e[o]);if("function"==typeof t)return t}},function(e,t,n){"use strict";(function(t){n(45);var r=n(76);n(2);function o(e,t,n,r){if(e&&"object"==typeof e){var o=e;0,void 0===o[n]&&null!=t&&(o[n]=t)}}void 0!==t&&Object({NODE_ENV:"production"}),e.exports=function(e,t){if(null==e)return e;var n={};return r(e,o,n),n}}).call(this,n(30))},function(e,t,n){"use strict";var r=n(46);n(2);var o=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.transaction=t}return e.prototype.isMounted=function(e){return!1},e.prototype.enqueueCallback=function(e,t,n){this.transaction.isInTransaction()&&r.enqueueCallback(e,t,n)},e.prototype.enqueueForceUpdate=function(e){this.transaction.isInTransaction()&&r.enqueueForceUpdate(e)},e.prototype.enqueueReplaceState=function(e,t){this.transaction.isInTransaction()&&r.enqueueReplaceState(e,t)},e.prototype.enqueueSetState=function(e,t){this.transaction.isInTransaction()&&r.enqueueSetState(e,t)},e}();e.exports=o},function(e,t,n){"use strict";var r=n(3),o=n(17),i=n(4),a=function(e){this._currentElement=null,this._hostNode=null,this._hostParent=null,this._hostContainerInfo=null,this._domID=0};r(a.prototype,{mountComponent:function(e,t,n,r){var a=n._idCounter++;this._domID=a,this._hostParent=t,this._hostContainerInfo=n;var s=" react-empty: "+this._domID+" ";if(e.useCreateElement){var u=n._ownerDocument.createComment(s);return i.precacheNode(this,u),o(u)}return e.renderToStaticMarkup?"":"\x3c!--"+s+"--\x3e"},receiveComponent:function(){},getHostNode:function(){return i.getNodeFromInstance(this)},unmountComponent:function(){i.uncacheNode(this)}}),e.exports=a},function(e,t,n){"use strict";var r=n(1);n(0);function o(e,t){"_hostNode"in e||r("33"),"_hostNode"in t||r("33");for(var n=0,o=e;o;o=o._hostParent)n++;for(var i=0,a=t;a;a=a._hostParent)i++;for(;n-i>0;)e=e._hostParent,n--;for(;i-n>0;)t=t._hostParent,i--;for(var s=n;s--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}e.exports={isAncestor:function(e,t){"_hostNode"in e||r("35"),"_hostNode"in t||r("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1},getLowestCommonAncestor:o,getParentInstance:function(e){return"_hostNode"in e||r("36"),e._hostParent},traverseTwoPhase:function(e,t,n){for(var r,o=[];e;)o.push(e),e=e._hostParent;for(r=o.length;r-- >0;)t(o[r],"captured",n);for(r=0;r<o.length;r++)t(o[r],"bubbled",n)},traverseEnterLeave:function(e,t,n,r,i){for(var a=e&&t?o(e,t):null,s=[];e&&e!==a;)s.push(e),e=e._hostParent;for(var u,l=[];t&&t!==a;)l.push(t),t=t._hostParent;for(u=0;u<s.length;u++)n(s[u],"bubbled",r);for(u=l.length;u-- >0;)n(l[u],"captured",i)}}},function(e,t,n){"use strict";var r=n(1),o=n(3),i=n(37),a=n(17),s=n(4),u=n(27),l=(n(0),n(47),function(e){this._currentElement=e,this._stringText=""+e,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});o(l.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,i=" react-text: "+o+" ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var l=n._ownerDocument,c=l.createComment(i),p=l.createComment(" /react-text "),d=a(l.createDocumentFragment());return a.queueChild(d,a(c)),this._stringText&&a.queueChild(d,a(l.createTextNode(this._stringText))),a.queueChild(d,a(p)),s.precacheNode(this,c),this._closingComment=p,d}var f=u(this._stringText);return e.renderToStaticMarkup?f:"\x3c!--"+i+"--\x3e"+f+"\x3c!-- /react-text --\x3e"},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();i.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=s.getNodeFromInstance(this).nextSibling;;){if(null==t&&r("67",this._domID),8===t.nodeType&&" /react-text "===t.nodeValue){this._closingComment=t;break}t=t.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,s.uncacheNode(this)}}),e.exports=l},function(e,t,n){"use strict";var r=n(3),o=n(80),i=n(5),a=n(13),s=n(4),u=n(9),l=n(34),c=n(155);function p(e){for(;e._hostParent;)e=e._hostParent;var t=s.getNodeFromInstance(e).parentNode;return s.getClosestInstanceFromNode(t)}function d(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function f(e){var t=l(e.nativeEvent),n=s.getClosestInstanceFromNode(t),r=n;do{e.ancestors.push(r),r=r&&p(r)}while(r);for(var o=0;o<e.ancestors.length;o++)n=e.ancestors[o],h._handleTopLevel(e.topLevelType,n,e.nativeEvent,l(e.nativeEvent))}r(d.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),a.addPoolingTo(d,a.twoArgumentPooler);var h={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:i.canUseDOM?window:null,setHandleTopLevel:function(e){h._handleTopLevel=e},setEnabled:function(e){h._enabled=!!e},isEnabled:function(){return h._enabled},trapBubbledEvent:function(e,t,n){return n?o.listen(n,t,h.dispatchEvent.bind(null,e)):null},trapCapturedEvent:function(e,t,n){return n?o.capture(n,t,h.dispatchEvent.bind(null,e)):null},monitorScrollValue:function(e){var t=function(e){e(c(window))}.bind(null,e);o.listen(window,"scroll",t)},dispatchEvent:function(e,t){if(h._enabled){var n=d.getPooled(e,t);try{u.batchedUpdates(f,n)}finally{d.release(n)}}}};e.exports=h},function(e,t,n){"use strict";e.exports=function(e){return e.Window&&e instanceof e.Window?{x:e.pageXOffset||e.document.documentElement.scrollLeft,y:e.pageYOffset||e.document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}},function(e,t,n){"use strict";var r=n(16),o=n(21),i=n(32),a=n(41),s=n(74),u=n(28),l=n(75),c=n(9),p={Component:a.injection,DOMProperty:r.injection,EmptyComponent:s.injection,EventPluginHub:o.injection,EventPluginUtils:i.injection,EventEmitter:u.injection,HostComponent:l.injection,Updates:c.injection};e.exports=p},function(e,t,n){"use strict";var r=n(3),o=n(63),i=n(13),a=n(28),s=n(81),u=(n(6),n(24)),l=n(46),c=[{initialize:s.getSelectionInformation,close:s.restoreSelection},{initialize:function(){var e=a.isEnabled();return a.setEnabled(!1),e},close:function(e){a.setEnabled(e)}},{initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}}];function p(e){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=o.getPooled(null),this.useCreateElement=e}var d={getTransactionWrappers:function(){return c},getReactMountReady:function(){return this.reactMountReady},getUpdateQueue:function(){return l},checkpoint:function(){return this.reactMountReady.checkpoint()},rollback:function(e){this.reactMountReady.rollback(e)},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null}};r(p.prototype,u,d),i.addPoolingTo(p),e.exports=p},function(e,t,n){"use strict";var r=n(5),o=n(159),i=n(62);function a(e,t,n,r){return e===n&&t===r}var s=r.canUseDOM&&"selection"in document&&!("getSelection"in window),u={getOffsets:s?function(e){var t=document.selection.createRange(),n=t.text.length,r=t.duplicate();r.moveToElementText(e),r.setEndPoint("EndToStart",t);var o=r.text.length;return{start:o,end:o+n}}:function(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var n=t.anchorNode,r=t.anchorOffset,o=t.focusNode,i=t.focusOffset,s=t.getRangeAt(0);try{s.startContainer.nodeType,s.endContainer.nodeType}catch(e){return null}var u=a(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset)?0:s.toString().length,l=s.cloneRange();l.selectNodeContents(e),l.setEnd(s.startContainer,s.startOffset);var c=a(l.startContainer,l.startOffset,l.endContainer,l.endOffset)?0:l.toString().length,p=c+u,d=document.createRange();d.setStart(n,r),d.setEnd(o,i);var f=d.collapsed;return{start:f?p:c,end:f?c:p}},setOffsets:s?function(e,t){var n,r,o=document.selection.createRange().duplicate();void 0===t.end?r=n=t.start:t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}:function(e,t){if(window.getSelection){var n=window.getSelection(),r=e[i()].length,a=Math.min(t.start,r),s=void 0===t.end?a:Math.min(t.end,r);if(!n.extend&&a>s){var u=s;s=a,a=u}var l=o(e,a),c=o(e,s);if(l&&c){var p=document.createRange();p.setStart(l.node,l.offset),n.removeAllRanges(),a>s?(n.addRange(p),n.extend(c.node,c.offset)):(p.setEnd(c.node,c.offset),n.addRange(p))}}}};e.exports=u},function(e,t,n){"use strict";function r(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function o(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}e.exports=function(e,t){for(var n=r(e),i=0,a=0;n;){if(3===n.nodeType){if(a=i+n.textContent.length,i<=t&&a>=t)return{node:n,offset:t-i};i=a}n=r(o(n))}}},function(e,t,n){"use strict";var r=n(161);e.exports=function e(t,n){return!(!t||!n)&&(t===n||!r(t)&&(r(n)?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}},function(e,t,n){"use strict";var r=n(162);e.exports=function(e){return r(e)&&3==e.nodeType}},function(e,t,n){"use strict";e.exports=function(e){var t=(e?e.ownerDocument||e:document).defaultView||window;return!(!e||!("function"==typeof t.Node?e instanceof t.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}},function(e,t,n){"use strict";var r="http://www.w3.org/1999/xlink",o="http://www.w3.org/XML/1998/namespace",i={accentHeight:"accent-height",accumulate:0,additive:0,alignmentBaseline:"alignment-baseline",allowReorder:"allowReorder",alphabetic:0,amplitude:0,arabicForm:"arabic-form",ascent:0,attributeName:"attributeName",attributeType:"attributeType",autoReverse:"autoReverse",azimuth:0,baseFrequency:"baseFrequency",baseProfile:"baseProfile",baselineShift:"baseline-shift",bbox:0,begin:0,bias:0,by:0,calcMode:"calcMode",capHeight:"cap-height",clip:0,clipPath:"clip-path",clipRule:"clip-rule",clipPathUnits:"clipPathUnits",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",contentScriptType:"contentScriptType",contentStyleType:"contentStyleType",cursor:0,cx:0,cy:0,d:0,decelerate:0,descent:0,diffuseConstant:"diffuseConstant",direction:0,display:0,divisor:0,dominantBaseline:"dominant-baseline",dur:0,dx:0,dy:0,edgeMode:"edgeMode",elevation:0,enableBackground:"enable-background",end:0,exponent:0,externalResourcesRequired:"externalResourcesRequired",fill:0,fillOpacity:"fill-opacity",fillRule:"fill-rule",filter:0,filterRes:"filterRes",filterUnits:"filterUnits",floodColor:"flood-color",floodOpacity:"flood-opacity",focusable:0,fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",glyphRef:"glyphRef",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",hanging:0,horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",ideographic:0,imageRendering:"image-rendering",in:0,in2:0,intercept:0,k:0,k1:0,k2:0,k3:0,k4:0,kernelMatrix:"kernelMatrix",kernelUnitLength:"kernelUnitLength",kerning:0,keyPoints:"keyPoints",keySplines:"keySplines",keyTimes:"keyTimes",lengthAdjust:"lengthAdjust",letterSpacing:"letter-spacing",lightingColor:"lighting-color",limitingConeAngle:"limitingConeAngle",local:0,markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",markerHeight:"markerHeight",markerUnits:"markerUnits",markerWidth:"markerWidth",mask:0,maskContentUnits:"maskContentUnits",maskUnits:"maskUnits",mathematical:0,mode:0,numOctaves:"numOctaves",offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pathLength:"pathLength",patternContentUnits:"patternContentUnits",patternTransform:"patternTransform",patternUnits:"patternUnits",pointerEvents:"pointer-events",points:0,pointsAtX:"pointsAtX",pointsAtY:"pointsAtY",pointsAtZ:"pointsAtZ",preserveAlpha:"preserveAlpha",preserveAspectRatio:"preserveAspectRatio",primitiveUnits:"primitiveUnits",r:0,radius:0,refX:"refX",refY:"refY",renderingIntent:"rendering-intent",repeatCount:"repeatCount",repeatDur:"repeatDur",requiredExtensions:"requiredExtensions",requiredFeatures:"requiredFeatures",restart:0,result:0,rotate:0,rx:0,ry:0,scale:0,seed:0,shapeRendering:"shape-rendering",slope:0,spacing:0,specularConstant:"specularConstant",specularExponent:"specularExponent",speed:0,spreadMethod:"spreadMethod",startOffset:"startOffset",stdDeviation:"stdDeviation",stemh:0,stemv:0,stitchTiles:"stitchTiles",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",string:0,stroke:0,strokeDasharray:"stroke-dasharray",strokeDashoffset:"stroke-dashoffset",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin",strokeMiterlimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",surfaceScale:"surfaceScale",systemLanguage:"systemLanguage",tableValues:"tableValues",targetX:"targetX",targetY:"targetY",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",textLength:"textLength",to:0,transform:0,u1:0,u2:0,underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicode:0,unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",values:0,vectorEffect:"vector-effect",version:0,vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",viewBox:"viewBox",viewTarget:"viewTarget",visibility:0,widths:0,wordSpacing:"word-spacing",writingMode:"writing-mode",x:0,xHeight:"x-height",x1:0,x2:0,xChannelSelector:"xChannelSelector",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlns:0,xmlnsXlink:"xmlns:xlink",xmlLang:"xml:lang",xmlSpace:"xml:space",y:0,y1:0,y2:0,yChannelSelector:"yChannelSelector",z:0,zoomAndPan:"zoomAndPan"},a={Properties:{},DOMAttributeNamespaces:{xlinkActuate:r,xlinkArcrole:r,xlinkHref:r,xlinkRole:r,xlinkShow:r,xlinkTitle:r,xlinkType:r,xmlBase:o,xmlLang:o,xmlSpace:o},DOMAttributeNames:{}};Object.keys(i).forEach(function(e){a.Properties[e]=0,i[e]&&(a.DOMAttributeNames[e]=i[e])}),e.exports=a},function(e,t,n){"use strict";var r=n(20),o=n(5),i=n(4),a=n(81),s=n(11),u=n(82),l=n(66),c=n(43),p=o.canUseDOM&&"documentMode"in document&&document.documentMode<=11,d={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:["topBlur","topContextMenu","topFocus","topKeyDown","topKeyUp","topMouseDown","topMouseUp","topSelectionChange"]}},f=null,h=null,m=null,v=!1,g=!1;function y(e,t){if(v||null==f||f!==u())return null;var n=function(e){if("selectionStart"in e&&a.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(window.getSelection){var t=window.getSelection();return{anchorNode:t.anchorNode,anchorOffset:t.anchorOffset,focusNode:t.focusNode,focusOffset:t.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}(f);if(!m||!c(m,n)){m=n;var o=s.getPooled(d.select,h,e,t);return o.type="select",o.target=f,r.accumulateTwoPhaseDispatches(o),o}return null}var _={eventTypes:d,extractEvents:function(e,t,n,r){if(!g)return null;var o=t?i.getNodeFromInstance(t):window;switch(e){case"topFocus":(l(o)||"true"===o.contentEditable)&&(f=o,h=t,m=null);break;case"topBlur":f=null,h=null,m=null;break;case"topMouseDown":v=!0;break;case"topContextMenu":case"topMouseUp":return v=!1,y(n,r);case"topSelectionChange":if(p)break;case"topKeyDown":case"topKeyUp":return y(n,r)}return null},didPutListener:function(e,t,n){"onSelect"===t&&(g=!0)}};e.exports=_},function(e,t,n){"use strict";var r=n(1),o=n(80),i=n(20),a=n(4),s=n(166),u=n(167),l=n(11),c=n(168),p=n(169),d=n(25),f=n(171),h=n(172),m=n(173),v=n(22),g=n(174),y=n(8),_=n(48),b=(n(0),{}),E={};["abort","animationEnd","animationIteration","animationStart","blur","canPlay","canPlayThrough","click","contextMenu","copy","cut","doubleClick","drag","dragEnd","dragEnter","dragExit","dragLeave","dragOver","dragStart","drop","durationChange","emptied","encrypted","ended","error","focus","input","invalid","keyDown","keyPress","keyUp","load","loadedData","loadedMetadata","loadStart","mouseDown","mouseMove","mouseOut","mouseOver","mouseUp","paste","pause","play","playing","progress","rateChange","reset","scroll","seeked","seeking","stalled","submit","suspend","timeUpdate","touchCancel","touchEnd","touchMove","touchStart","transitionEnd","volumeChange","waiting","wheel"].forEach(function(e){var t=e[0].toUpperCase()+e.slice(1),n="on"+t,r="top"+t,o={phasedRegistrationNames:{bubbled:n,captured:n+"Capture"},dependencies:[r]};b[e]=o,E[r]=o});var C={};function w(e){return"."+e._rootNodeID}function x(e){return"button"===e||"input"===e||"select"===e||"textarea"===e}var T={eventTypes:b,extractEvents:function(e,t,n,o){var a,y=E[e];if(!y)return null;switch(e){case"topAbort":case"topCanPlay":case"topCanPlayThrough":case"topDurationChange":case"topEmptied":case"topEncrypted":case"topEnded":case"topError":case"topInput":case"topInvalid":case"topLoad":case"topLoadedData":case"topLoadedMetadata":case"topLoadStart":case"topPause":case"topPlay":case"topPlaying":case"topProgress":case"topRateChange":case"topReset":case"topSeeked":case"topSeeking":case"topStalled":case"topSubmit":case"topSuspend":case"topTimeUpdate":case"topVolumeChange":case"topWaiting":a=l;break;case"topKeyPress":if(0===_(n))return null;case"topKeyDown":case"topKeyUp":a=p;break;case"topBlur":case"topFocus":a=c;break;case"topClick":if(2===n.button)return null;case"topDoubleClick":case"topMouseDown":case"topMouseMove":case"topMouseUp":case"topMouseOut":case"topMouseOver":case"topContextMenu":a=d;break;case"topDrag":case"topDragEnd":case"topDragEnter":case"topDragExit":case"topDragLeave":case"topDragOver":case"topDragStart":case"topDrop":a=f;break;case"topTouchCancel":case"topTouchEnd":case"topTouchMove":case"topTouchStart":a=h;break;case"topAnimationEnd":case"topAnimationIteration":case"topAnimationStart":a=s;break;case"topTransitionEnd":a=m;break;case"topScroll":a=v;break;case"topWheel":a=g;break;case"topCopy":case"topCut":case"topPaste":a=u}a||r("86",e);var b=a.getPooled(y,t,n,o);return i.accumulateTwoPhaseDispatches(b),b},didPutListener:function(e,t,n){if("onClick"===t&&!x(e._tag)){var r=w(e),i=a.getNodeFromInstance(e);C[r]||(C[r]=o.listen(i,"click",y))}},willDeleteListener:function(e,t){if("onClick"===t&&!x(e._tag)){var n=w(e);C[n].remove(),delete C[n]}}};e.exports=T},function(e,t,n){"use strict";var r=n(11);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{animationName:null,elapsedTime:null,pseudoElement:null}),e.exports=o},function(e,t,n){"use strict";var r=n(11),o={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};function i(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(i,o),e.exports=i},function(e,t,n){"use strict";var r=n(22);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{relatedTarget:null}),e.exports=o},function(e,t,n){"use strict";var r=n(22),o=n(48),i={key:n(170),location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:n(36),charCode:function(e){return"keypress"===e.type?o(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?o(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};function a(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(a,i),e.exports=a},function(e,t,n){"use strict";var r=n(48),o={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},i={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};e.exports=function(e){if(e.key){var t=o[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=r(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?i[e.keyCode]||"Unidentified":""}},function(e,t,n){"use strict";var r=n(25);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{dataTransfer:null}),e.exports=o},function(e,t,n){"use strict";var r=n(22),o={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:n(36)};function i(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(i,o),e.exports=i},function(e,t,n){"use strict";var r=n(11);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{propertyName:null,elapsedTime:null,pseudoElement:null}),e.exports=o},function(e,t,n){"use strict";var r=n(25);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),e.exports=o},function(e,t,n){"use strict";e.exports={useCreateElement:!0,useFiber:!1}},function(e,t,n){"use strict";var r=65521;e.exports=function(e){for(var t=1,n=0,o=0,i=e.length,a=-4&i;o<a;){for(var s=Math.min(o+4096,a);o<s;o+=4)n+=(t+=e.charCodeAt(o))+(t+=e.charCodeAt(o+1))+(t+=e.charCodeAt(o+2))+(t+=e.charCodeAt(o+3));t%=r,n%=r}for(;o<i;o++)n+=t+=e.charCodeAt(o);return(t%=r)|(n%=r)<<16}},function(e,t,n){"use strict";var r=n(1),o=(n(10),n(4)),i=n(23),a=n(87);n(0),n(2);e.exports=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=i.get(e);if(t)return(t=a(t))?o.getNodeFromInstance(t):null;"function"==typeof e.render?r("44"):r("45",Object.keys(e))}},function(e,t,n){"use strict";var r=n(83);e.exports=r.renderSubtreeIntoContainer},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(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(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=l(n(29)),i=(l(n(93)),l(n(180)),l(n(184))),a=l(n(189)),s=l(n(209)),u=l(n(52));function l(e){return e&&e.__esModule?e:{default:e}}function c(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)}var p=n(210),d=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=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,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.results=n.props.results?n.props.results:[],n.state={results:n.results},n.service=n.props.service,n.orderby=n.props.orderby,n.page=n.props.page,n.is_search=!1,n.search_term="",n.total_results=0,n.orientation="",n.isLoading=!1,n.isDone=!1,n.errorMsg="",n.msnry="",n.tooltipInterval="",n.editor=n.props.editor?n.props.editor:"classic",n.is_block_editor="gutenberg"===n.props.editor,n.is_media_router="media-router"===n.props.editor,n.SetFeaturedImage=n.props.SetFeaturedImage?n.props.SetFeaturedImage.bind(n):"",n.InsertImage=n.props.InsertImage?n.props.InsertImage.bind(n):"",n.is_block_editor?(n.container=document.querySelector("body"),n.container.classList.add("loading"),n.wrapper=document.querySelector("body")):(n.container=n.props.container.closest(".instant-img-container"),n.wrapper=n.props.container.closest(".instant-images-wrapper"),n.container.classList.add("loading")),n}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)}(t,o.default.Component),r(t,[{key:"test",value:function(){var e=this,t=this.container.querySelector(".error-messaging"),n=instant_img_localize.root+"instant-images/test/",r=new XMLHttpRequest;r.open("GET",n,!0),r.setRequestHeader("X-WP-Nonce",instant_img_localize.nonce),r.setRequestHeader("Content-Type","application/json"),r.send(),r.onload=function(){r.status>=200&&r.status<400?JSON.parse(r.response).success||e.renderTestError(t):e.renderTestError(t)},r.onerror=function(t){console.log(t),e.renderTestError(errorTarget)}}},{key:"renderTestError",value:function(e){e.classList.add("active"),e.innerHTML=instant_img_localize.error_restapi}},{key:"search",value:function(e){e.preventDefault();var t=this.container.querySelector("#photo-search"),n=t.value;n.length>2?(t.classList.add("searching"),this.container.classList.add("loading"),this.search_term=n,this.is_search=!0,this.doSearch(this.search_term)):t.focus()}},{key:"setOrientation",value:function(e,t){if(t&&t.target){var n=t.target;if(n.classList.contains("active"))n.classList.remove("active"),this.orientation="";else{var r=n.parentNode.querySelectorAll("li");[].concat(c(r)).forEach(function(e){return e.classList.remove("active")}),n.classList.add("active"),this.orientation=e}""!==this.search_term&&this.doSearch(this.search_term)}}},{key:"hasOrientation",value:function(){return""!==this.orientation}},{key:"clearOrientation",value:function(){var e=this.container.querySelectorAll(".orientation-list li");[].concat(c(e)).forEach(function(e){return e.classList.remove("active")}),this.orientation=""}},{key:"doSearch",value:function(e){var t=this,n="term";this.page=1;var r=""+u.default.search_api+u.default.app_id+u.default.posts_per_page+"&page="+this.page+"&query="+this.search_term;this.hasOrientation()&&(r=r+"&orientation="+this.orientation),"id:"===e.substring(0,3)&&(n="id",e=e.replace("id:",""),r=u.default.photo_api+"/"+e+u.default.app_id);var o=this.container.querySelector("#photo-search");fetch(r).then(function(e){return e.json()}).then(function(e){if("term"===n&&(t.total_results=e.total,t.checkTotalResults(e.results.length),t.results=e.results,t.setState({results:t.results})),"id"===n&&e){var r=[];e.errors?(t.total_results=0,t.checkTotalResults("0")):(r.push(e),t.total_results=1,t.checkTotalResults("1")),t.results=r,t.setState({results:t.results})}o.classList.remove("searching")}).catch(function(e){console.log(e),t.isLoading=!1})}},{key:"clearSearch",value:function(){this.container.querySelector("#photo-search").value="",this.total_results=0,this.is_search=!1,this.search_term="",this.clearOrientation()}},{key:"getPhotos",value:function(){var e=this;this.page=parseInt(this.page)+1,this.container.classList.add("loading"),this.isLoading=!0;var t=""+u.default.photo_api+u.default.app_id+u.default.posts_per_page+"&page="+this.page+"&order_by="+this.orderby;this.is_search&&(t=""+u.default.search_api+u.default.app_id+u.default.posts_per_page+"&page="+this.page+"&query="+this.search_term,this.hasOrientation()&&(t=t+"&orientation="+this.orientation)),fetch(t).then(function(e){return e.json()}).then(function(t){e.is_search&&(t=t.results),t.map(function(t){e.results.push(t)}),e.checkTotalResults(t.length),e.setState({results:e.results})}).catch(function(t){console.log(t),e.isLoading=!1})}},{key:"togglePhotoList",value:function(e,t){var n=t.target;if(n.classList.contains("active"))return!1;n.classList.add("loading"),this.isLoading=!0;var r=this;this.page=1,this.orderby=e,this.results=[],this.clearSearch();var o=""+u.default.photo_api+u.default.app_id+u.default.posts_per_page+"&page="+this.page+"&order_by="+this.orderby;fetch(o).then(function(e){return e.json()}).then(function(e){r.checkTotalResults(e.length),r.results=e,r.setState({results:e}),n.classList.remove("loading")}).catch(function(e){console.log(e),r.isLoading=!1})}},{key:"renderLayout",value:function(){if(this.is_block_editor)return!1;var e=this,t=e.container.querySelector(".photo-target");p(t,function(){e.msnry=new i.default(t,{itemSelector:".photo"}),[].concat(c(e.container.querySelectorAll(".photo-target .photo"))).forEach(function(e){return e.classList.add("in-view")})})}},{key:"onScroll",value:function(){window.innerHeight+window.pageYOffset>=document.body.scrollHeight-400&&!this.isLoading&&!this.isDone&&this.getPhotos()}},{key:"checkTotalResults",value:function(e){this.isDone=0==e}},{key:"setActiveState",value:function(){var e=this;([].concat(c(this.container.querySelectorAll(".control-nav button"))).forEach(function(e){return e.classList.remove("active")}),this.is_search)||this.container.querySelector(".control-nav li button."+this.orderby).classList.add("active");setTimeout(function(){e.isLoading=!1,e.container.classList.remove("loading")},1e3)}},{key:"showTooltip",value:function(e){var t=this,n=e.currentTarget,r=n.getBoundingClientRect(),o=Math.round(r.left),i=Math.round(r.top),a=this.container.querySelector("#tooltip");a.classList.remove("over"),n.classList.contains("tooltip--above")?a.classList.add("above"):a.classList.remove("above");var s=n.dataset.title;this.tooltipInterval=setInterval(function(){clearInterval(t.tooltipInterval),a.innerHTML=s,o=o-a.offsetWidth+n.offsetWidth+5,a.style.left=o+"px",a.style.top=i+"px",setTimeout(function(){a.classList.add("over")},150)},500)}},{key:"hideTooltip",value:function(e){clearInterval(this.tooltipInterval),this.container.querySelector("#tooltip").classList.remove("over")}},{key:"componentDidUpdate",value:function(){this.renderLayout(),this.setActiveState()}},{key:"componentDidMount",value:function(){var e=this;this.renderLayout(),this.setActiveState(),this.test(),this.container.classList.remove("loading"),this.wrapper.classList.add("loaded"),this.is_block_editor||this.is_media_router?(this.page=0,this.getPhotos()):window.addEventListener("scroll",function(){return e.onScroll()})}},{key:"render",value:function(){var e=this,t=this.is_search?{display:"flex"}:{display:"none"};return o.default.createElement("div",{id:"photo-listing",className:this.service},o.default.createElement("ul",{className:"control-nav"},o.default.createElement("li",null,o.default.createElement("button",{type:"button",className:"latest",onClick:function(t){return e.togglePhotoList("latest",t)}},instant_img_localize.latest)),o.default.createElement("li",{id:"nav-target"},o.default.createElement("button",{type:"button",className:"popular",onClick:function(t){return e.togglePhotoList("popular",t)}},instant_img_localize.popular)),o.default.createElement("li",null,o.default.createElement("button",{type:"button",className:"oldest",onClick:function(t){return e.togglePhotoList("oldest",t)}},instant_img_localize.oldest)),o.default.createElement("li",{className:"search-field",id:"search-bar"},o.default.createElement("form",{onSubmit:function(t){return e.search(t)},autoComplete:"off"},o.default.createElement("input",{type:"search",id:"photo-search",placeholder:instant_img_localize.search}),o.default.createElement("button",{type:"submit",id:"photo-search-submit"},o.default.createElement("i",{className:"fa fa-search"})),o.default.createElement(s.default,{container:this.container,isSearch:this.is_search,total:this.total_results,title:this.total_results+" "+instant_img_localize.search_results+" "+this.search_term})))),o.default.createElement("div",{className:"error-messaging"}),o.default.createElement("div",{className:"orientation-list",style:t},o.default.createElement("span",null,o.default.createElement("i",{className:"fa fa-filter","aria-hidden":"true"})," ",instant_img_localize.orientation,":"),o.default.createElement("ul",null,o.default.createElement("li",{tabIndex:"0",onClick:function(t){return e.setOrientation("landscape",t)},onKeyPress:function(t){return e.setOrientation("landscape",t)}},instant_img_localize.landscape),o.default.createElement("li",{tabIndex:"0",onClick:function(t){return e.setOrientation("portrait",t)},onKeyPress:function(t){return e.setOrientation("portrait",t)}},instant_img_localize.portrait),o.default.createElement("li",{tabIndex:"0",onClick:function(t){return e.setOrientation("squarish",t)},onKeyPress:function(t){return e.setOrientation("squarish",t)}},instant_img_localize.squarish))),o.default.createElement("div",{id:"photos",className:"photo-target"},this.state.results.map(function(t,n){return o.default.createElement(a.default,{result:t,key:t.id+n,editor:e.editor,mediaRouter:e.is_media_router,blockEditor:e.is_block_editor,SetFeaturedImage:e.SetFeaturedImage,InsertImage:e.InsertImage,showTooltip:e.showTooltip,hideTooltip:e.hideTooltip})})),o.default.createElement("div",{className:0==this.total_results&&!0===this.is_search?"no-results show":"no-results",title:this.props.title},o.default.createElement("h3",null,instant_img_localize.no_results," "),o.default.createElement("p",null,instant_img_localize.no_results_desc," ")),o.default.createElement("div",{className:"loading-block"}),o.default.createElement("div",{className:"load-more-wrap"},o.default.createElement("button",{type:"button",className:"button",onClick:function(){return e.getPhotos()}},instant_img_localize.load_more)),o.default.createElement("div",{id:"tooltip"},"Meow"))}}]),t}();t.default=d},function(e,t,n){"use strict";e.exports=n(181)},function(e,t,n){"use strict";var r=n(59),o=n(182),i=n(86);r.inject();var a={renderToString:o.renderToString,renderToStaticMarkup:o.renderToStaticMarkup,version:i};e.exports=a},function(e,t,n){"use strict";var r=n(1),o=n(12),i=n(84),a=n(79),s=(n(6),n(85)),u=n(14),l=n(183),c=n(78),p=n(9),d=n(19),f=n(42),h=(n(0),0);function m(e,t){var n;try{return p.injection.injectBatchingStrategy(l),n=c.getPooled(t),h++,n.perform(function(){var r=f(e,!0),o=u.mountComponent(r,n,null,i(),d,0);return t||(o=s.addChecksumToMarkup(o)),o},null)}finally{h--,c.release(n),h||p.injection.injectBatchingStrategy(a)}}e.exports={renderToString:function(e){return o.isValidElement(e)||r("46"),m(e,!1)},renderToStaticMarkup:function(e){return o.isValidElement(e)||r("47"),m(e,!0)}}},function(e,t,n){"use strict";e.exports={isBatchingUpdates:!1,batchedUpdates:function(e){}}},function(e,t,n){var r,o,i;
26
+ /*!
27
+ * Masonry v4.2.2
28
+ * Cascading grid layout library
29
+ * https://masonry.desandro.com
30
  * MIT License
31
+ * by David DeSandro
32
+ */window,o=[n(185),n(50)],void 0===(i="function"==typeof(r=function(e,t){"use strict";var n=e.create("masonry");n.compatOptions.fitWidth="isFitWidth";var r=n.prototype;return r._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var e=0;e<this.cols;e++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},r.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var e=this.items[0],n=e&&e.element;this.columnWidth=n&&t(n).outerWidth||this.containerWidth}var r=this.columnWidth+=this.gutter,o=this.containerWidth+this.gutter,i=o/r,a=r-o%r;i=Math[a&&a<1?"round":"floor"](i),this.cols=Math.max(i,1)},r.getContainerWidth=function(){var e=this._getOption("fitWidth")?this.element.parentNode:this.element,n=t(e);this.containerWidth=n&&n.innerWidth},r._getItemLayoutPosition=function(e){e.getSize();var t=e.size.outerWidth%this.columnWidth,n=Math[t&&t<1?"round":"ceil"](e.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var r=this[this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition"](n,e),o={x:this.columnWidth*r.col,y:r.y},i=r.y+e.size.outerHeight,a=n+r.col,s=r.col;s<a;s++)this.colYs[s]=i;return o},r._getTopColPosition=function(e){var t=this._getTopColGroup(e),n=Math.min.apply(Math,t);return{col:t.indexOf(n),y:n}},r._getTopColGroup=function(e){if(e<2)return this.colYs;for(var t=[],n=this.cols+1-e,r=0;r<n;r++)t[r]=this._getColGroupY(r,e);return t},r._getColGroupY=function(e,t){if(t<2)return this.colYs[e];var n=this.colYs.slice(e,e+t);return Math.max.apply(Math,n)},r._getHorizontalColPosition=function(e,t){var n=this.horizontalColIndex%this.cols;n=e>1&&n+e>this.cols?0:n;var r=t.size.outerWidth&&t.size.outerHeight;return this.horizontalColIndex=r?n+e:this.horizontalColIndex,{col:n,y:this._getColGroupY(n,e)}},r._manageStamp=function(e){var n=t(e),r=this._getElementOffset(e),o=this._getOption("originLeft")?r.left:r.right,i=o+n.outerWidth,a=Math.floor(o/this.columnWidth);a=Math.max(0,a);var s=Math.floor(i/this.columnWidth);s-=i%this.columnWidth?0:1,s=Math.min(this.cols-1,s);for(var u=(this._getOption("originTop")?r.top:r.bottom)+n.outerHeight,l=a;l<=s;l++)this.colYs[l]=Math.max(u,this.colYs[l])},r._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var e={height:this.maxY};return this._getOption("fitWidth")&&(e.width=this._getContainerFitWidth()),e},r._getContainerFitWidth=function(){for(var e=0,t=this.cols;--t&&0===this.colYs[t];)e++;return(this.cols-e)*this.columnWidth-this.gutter},r.needsResizeLayout=function(){var e=this.containerWidth;return this.getContainerWidth(),e!=this.containerWidth},n})?r.apply(t,o):r)||(e.exports=i)},function(e,t,n){var r,o;
33
+ /*!
34
+ * Outlayer v2.1.1
35
+ * the brains and guts of a layout library
36
+ * MIT license
37
  */
38
  /*!
39
+ * Outlayer v2.1.1
40
+ * the brains and guts of a layout library
41
+ * MIT license
42
  */
43
+ !function(i,a){"use strict";r=[n(49),n(50),n(186),n(188)],void 0===(o=function(e,t,n,r){return function(e,t,n,r,o){var i=e.console,a=e.jQuery,s=function(){},u=0,l={};function c(e,t){var n=r.getQueryElement(e);if(n){this.element=n,a&&(this.$element=a(this.element)),this.options=r.extend({},this.constructor.defaults),this.option(t);var o=++u;this.element.outlayerGUID=o,l[o]=this,this._create();var s=this._getOption("initLayout");s&&this.layout()}else i&&i.error("Bad element for "+this.constructor.namespace+": "+(n||e))}c.namespace="outlayer",c.Item=o,c.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var p=c.prototype;function d(e){function t(){e.apply(this,arguments)}return t.prototype=Object.create(e.prototype),t.prototype.constructor=t,t}r.extend(p,t.prototype),p.option=function(e){r.extend(this.options,e)},p._getOption=function(e){var t=this.constructor.compatOptions[e];return t&&void 0!==this.options[t]?this.options[t]:this.options[e]},c.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},p._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),r.extend(this.element.style,this.options.containerStyle);var e=this._getOption("resize");e&&this.bindResize()},p.reloadItems=function(){this.items=this._itemize(this.element.children)},p._itemize=function(e){for(var t=this._filterFindItemElements(e),n=this.constructor.Item,r=[],o=0;o<t.length;o++){var i=t[o],a=new n(i,this);r.push(a)}return r},p._filterFindItemElements=function(e){return r.filterFindElements(e,this.options.itemSelector)},p.getItemElements=function(){return this.items.map(function(e){return e.element})},p.layout=function(){this._resetLayout(),this._manageStamps();var e=this._getOption("layoutInstant"),t=void 0!==e?e:!this._isLayoutInited;this.layoutItems(this.items,t),this._isLayoutInited=!0},p._init=p.layout,p._resetLayout=function(){this.getSize()},p.getSize=function(){this.size=n(this.element)},p._getMeasurement=function(e,t){var r,o=this.options[e];o?("string"==typeof o?r=this.element.querySelector(o):o instanceof HTMLElement&&(r=o),this[e]=r?n(r)[t]:o):this[e]=0},p.layoutItems=function(e,t){e=this._getItemsForLayout(e),this._layoutItems(e,t),this._postLayout()},p._getItemsForLayout=function(e){return e.filter(function(e){return!e.isIgnored})},p._layoutItems=function(e,t){if(this._emitCompleteOnItems("layout",e),e&&e.length){var n=[];e.forEach(function(e){var r=this._getItemLayoutPosition(e);r.item=e,r.isInstant=t||e.isLayoutInstant,n.push(r)},this),this._processLayoutQueue(n)}},p._getItemLayoutPosition=function(){return{x:0,y:0}},p._processLayoutQueue=function(e){this.updateStagger(),e.forEach(function(e,t){this._positionItem(e.item,e.x,e.y,e.isInstant,t)},this)},p.updateStagger=function(){var e=this.options.stagger;if(null!=e)return this.stagger=function(e){if("number"==typeof e)return e;var t=e.match(/(^\d*\.?\d*)(\w*)/),n=t&&t[1],r=t&&t[2];if(!n.length)return 0;n=parseFloat(n);var o=f[r]||1;return n*o}(e),this.stagger;this.stagger=0},p._positionItem=function(e,t,n,r,o){r?e.goTo(t,n):(e.stagger(o*this.stagger),e.moveTo(t,n))},p._postLayout=function(){this.resizeContainer()},p.resizeContainer=function(){var e=this._getOption("resizeContainer");if(e){var t=this._getContainerSize();t&&(this._setContainerMeasure(t.width,!0),this._setContainerMeasure(t.height,!1))}},p._getContainerSize=s,p._setContainerMeasure=function(e,t){if(void 0!==e){var n=this.size;n.isBorderBox&&(e+=t?n.paddingLeft+n.paddingRight+n.borderLeftWidth+n.borderRightWidth:n.paddingBottom+n.paddingTop+n.borderTopWidth+n.borderBottomWidth),e=Math.max(e,0),this.element.style[t?"width":"height"]=e+"px"}},p._emitCompleteOnItems=function(e,t){var n=this;function r(){n.dispatchEvent(e+"Complete",null,[t])}var o=t.length;if(t&&o){var i=0;t.forEach(function(t){t.once(e,a)})}else r();function a(){++i==o&&r()}},p.dispatchEvent=function(e,t,n){var r=t?[t].concat(n):n;if(this.emitEvent(e,r),a)if(this.$element=this.$element||a(this.element),t){var o=a.Event(t);o.type=e,this.$element.trigger(o,n)}else this.$element.trigger(e,n)},p.ignore=function(e){var t=this.getItem(e);t&&(t.isIgnored=!0)},p.unignore=function(e){var t=this.getItem(e);t&&delete t.isIgnored},p.stamp=function(e){(e=this._find(e))&&(this.stamps=this.stamps.concat(e),e.forEach(this.ignore,this))},p.unstamp=function(e){(e=this._find(e))&&e.forEach(function(e){r.removeFrom(this.stamps,e),this.unignore(e)},this)},p._find=function(e){if(e)return"string"==typeof e&&(e=this.element.querySelectorAll(e)),e=r.makeArray(e)},p._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},p._getBoundingRect=function(){var e=this.element.getBoundingClientRect(),t=this.size;this._boundingRect={left:e.left+t.paddingLeft+t.borderLeftWidth,top:e.top+t.paddingTop+t.borderTopWidth,right:e.right-(t.paddingRight+t.borderRightWidth),bottom:e.bottom-(t.paddingBottom+t.borderBottomWidth)}},p._manageStamp=s,p._getElementOffset=function(e){var t=e.getBoundingClientRect(),r=this._boundingRect,o=n(e),i={left:t.left-r.left-o.marginLeft,top:t.top-r.top-o.marginTop,right:r.right-t.right-o.marginRight,bottom:r.bottom-t.bottom-o.marginBottom};return i},p.handleEvent=r.handleEvent,p.bindResize=function(){e.addEventListener("resize",this),this.isResizeBound=!0},p.unbindResize=function(){e.removeEventListener("resize",this),this.isResizeBound=!1},p.onresize=function(){this.resize()},r.debounceMethod(c,"onresize",100),p.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},p.needsResizeLayout=function(){var e=n(this.element),t=this.size&&e;return t&&e.innerWidth!==this.size.innerWidth},p.addItems=function(e){var t=this._itemize(e);return t.length&&(this.items=this.items.concat(t)),t},p.appended=function(e){var t=this.addItems(e);t.length&&(this.layoutItems(t,!0),this.reveal(t))},p.prepended=function(e){var t=this._itemize(e);if(t.length){var n=this.items.slice(0);this.items=t.concat(n),this._resetLayout(),this._manageStamps(),this.layoutItems(t,!0),this.reveal(t),this.layoutItems(n)}},p.reveal=function(e){if(this._emitCompleteOnItems("reveal",e),e&&e.length){var t=this.updateStagger();e.forEach(function(e,n){e.stagger(n*t),e.reveal()})}},p.hide=function(e){if(this._emitCompleteOnItems("hide",e),e&&e.length){var t=this.updateStagger();e.forEach(function(e,n){e.stagger(n*t),e.hide()})}},p.revealItemElements=function(e){var t=this.getItems(e);this.reveal(t)},p.hideItemElements=function(e){var t=this.getItems(e);this.hide(t)},p.getItem=function(e){for(var t=0;t<this.items.length;t++){var n=this.items[t];if(n.element==e)return n}},p.getItems=function(e){e=r.makeArray(e);var t=[];return e.forEach(function(e){var n=this.getItem(e);n&&t.push(n)},this),t},p.remove=function(e){var t=this.getItems(e);this._emitCompleteOnItems("remove",t),t&&t.length&&t.forEach(function(e){e.remove(),r.removeFrom(this.items,e)},this)},p.destroy=function(){var e=this.element.style;e.height="",e.position="",e.width="",this.items.forEach(function(e){e.destroy()}),this.unbindResize();var t=this.element.outlayerGUID;delete l[t],delete this.element.outlayerGUID,a&&a.removeData(this.element,this.constructor.namespace)},c.data=function(e){var t=(e=r.getQueryElement(e))&&e.outlayerGUID;return t&&l[t]},c.create=function(e,t){var n=d(c);return n.defaults=r.extend({},c.defaults),r.extend(n.defaults,t),n.compatOptions=r.extend({},c.compatOptions),n.namespace=e,n.data=c.data,n.Item=d(o),r.htmlInit(n,e),a&&a.bridget&&a.bridget(e,n),n};var f={ms:1,s:1e3};return c.Item=o,c}(i,e,t,n,r)}.apply(t,r))||(e.exports=o)}(window)},function(e,t,n){var r,o;!function(i,a){r=[n(187)],void 0===(o=function(e){return function(e,t){"use strict";var n={extend:function(e,t){for(var n in t)e[n]=t[n];return e},modulo:function(e,t){return(e%t+t)%t}},r=Array.prototype.slice;n.makeArray=function(e){if(Array.isArray(e))return e;if(null==e)return[];var t="object"==typeof e&&"number"==typeof e.length;return t?r.call(e):[e]},n.removeFrom=function(e,t){var n=e.indexOf(t);-1!=n&&e.splice(n,1)},n.getParent=function(e,n){for(;e.parentNode&&e!=document.body;)if(e=e.parentNode,t(e,n))return e},n.getQueryElement=function(e){return"string"==typeof e?document.querySelector(e):e},n.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},n.filterFindElements=function(e,r){e=n.makeArray(e);var o=[];return e.forEach(function(e){if(e instanceof HTMLElement)if(r){t(e,r)&&o.push(e);for(var n=e.querySelectorAll(r),i=0;i<n.length;i++)o.push(n[i])}else o.push(e)}),o},n.debounceMethod=function(e,t,n){n=n||100;var r=e.prototype[t],o=t+"Timeout";e.prototype[t]=function(){var e=this[o];clearTimeout(e);var t=arguments,i=this;this[o]=setTimeout(function(){r.apply(i,t),delete i[o]},n)}},n.docReady=function(e){var t=document.readyState;"complete"==t||"interactive"==t?setTimeout(e):document.addEventListener("DOMContentLoaded",e)},n.toDashed=function(e){return e.replace(/(.)([A-Z])/g,function(e,t,n){return t+"-"+n}).toLowerCase()};var o=e.console;return n.htmlInit=function(t,r){n.docReady(function(){var i=n.toDashed(r),a="data-"+i,s=document.querySelectorAll("["+a+"]"),u=document.querySelectorAll(".js-"+i),l=n.makeArray(s).concat(n.makeArray(u)),c=a+"-options",p=e.jQuery;l.forEach(function(e){var n,i=e.getAttribute(a)||e.getAttribute(c);try{n=i&&JSON.parse(i)}catch(t){return void(o&&o.error("Error parsing "+a+" on "+e.className+": "+t))}var s=new t(e,n);p&&p.data(e,r,s)})})},n}(i,e)}.apply(t,r))||(e.exports=o)}(window)},function(e,t,n){var r,o;!function(i,a){"use strict";void 0===(o="function"==typeof(r=a)?r.call(t,n,t,e):r)||(e.exports=o)}(window,function(){"use strict";var e=function(){var e=window.Element.prototype;if(e.matches)return"matches";if(e.matchesSelector)return"matchesSelector";for(var t=["webkit","moz","ms","o"],n=0;n<t.length;n++){var r=t[n]+"MatchesSelector";if(e[r])return r}}();return function(t,n){return t[e](n)}})},function(e,t,n){var r,o,i;window,o=[n(49),n(50)],void 0===(i="function"==typeof(r=function(e,t){"use strict";var n=document.documentElement.style,r="string"==typeof n.transition?"transition":"WebkitTransition",o="string"==typeof n.transform?"transform":"WebkitTransform",i={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[r],a={transform:o,transition:r,transitionDuration:r+"Duration",transitionProperty:r+"Property",transitionDelay:r+"Delay"};function s(e,t){e&&(this.element=e,this.layout=t,this.position={x:0,y:0},this._create())}var u=s.prototype=Object.create(e.prototype);u.constructor=s,u._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},u.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},u.getSize=function(){this.size=t(this.element)},u.css=function(e){var t=this.element.style;for(var n in e){var r=a[n]||n;t[r]=e[n]}},u.getPosition=function(){var e=getComputedStyle(this.element),t=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop"),r=e[t?"left":"right"],o=e[n?"top":"bottom"],i=parseFloat(r),a=parseFloat(o),s=this.layout.size;-1!=r.indexOf("%")&&(i=i/100*s.width),-1!=o.indexOf("%")&&(a=a/100*s.height),i=isNaN(i)?0:i,a=isNaN(a)?0:a,i-=t?s.paddingLeft:s.paddingRight,a-=n?s.paddingTop:s.paddingBottom,this.position.x=i,this.position.y=a},u.layoutPosition=function(){var e=this.layout.size,t={},n=this.layout._getOption("originLeft"),r=this.layout._getOption("originTop"),o=n?"paddingLeft":"paddingRight",i=n?"left":"right",a=n?"right":"left",s=this.position.x+e[o];t[i]=this.getXValue(s),t[a]="";var u=r?"paddingTop":"paddingBottom",l=r?"top":"bottom",c=r?"bottom":"top",p=this.position.y+e[u];t[l]=this.getYValue(p),t[c]="",this.css(t),this.emitEvent("layout",[this])},u.getXValue=function(e){var t=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!t?e/this.layout.size.width*100+"%":e+"px"},u.getYValue=function(e){var t=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&t?e/this.layout.size.height*100+"%":e+"px"},u._transitionTo=function(e,t){this.getPosition();var n=this.position.x,r=this.position.y,o=e==this.position.x&&t==this.position.y;if(this.setPosition(e,t),!o||this.isTransitioning){var i=e-n,a=t-r,s={};s.transform=this.getTranslate(i,a),this.transition({to:s,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})}else this.layoutPosition()},u.getTranslate=function(e,t){var n=this.layout._getOption("originLeft"),r=this.layout._getOption("originTop");return"translate3d("+(e=n?e:-e)+"px, "+(t=r?t:-t)+"px, 0)"},u.goTo=function(e,t){this.setPosition(e,t),this.layoutPosition()},u.moveTo=u._transitionTo,u.setPosition=function(e,t){this.position.x=parseFloat(e),this.position.y=parseFloat(t)},u._nonTransition=function(e){for(var t in this.css(e.to),e.isCleaning&&this._removeStyles(e.to),e.onTransitionEnd)e.onTransitionEnd[t].call(this)},u.transition=function(e){if(parseFloat(this.layout.options.transitionDuration)){var t=this._transn;for(var n in e.onTransitionEnd)t.onEnd[n]=e.onTransitionEnd[n];for(n in e.to)t.ingProperties[n]=!0,e.isCleaning&&(t.clean[n]=!0);e.from&&(this.css(e.from),this.element.offsetHeight),this.enableTransition(e.to),this.css(e.to),this.isTransitioning=!0}else this._nonTransition(e)};var l="opacity,"+o.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()});u.enableTransition=function(){if(!this.isTransitioning){var e=this.layout.options.transitionDuration;e="number"==typeof e?e+"ms":e,this.css({transitionProperty:l,transitionDuration:e,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(i,this,!1)}},u.onwebkitTransitionEnd=function(e){this.ontransitionend(e)},u.onotransitionend=function(e){this.ontransitionend(e)};var c={"-webkit-transform":"transform"};u.ontransitionend=function(e){if(e.target===this.element){var t=this._transn,n=c[e.propertyName]||e.propertyName;if(delete t.ingProperties[n],function(e){for(var t in e)return!1;return!0}(t.ingProperties)&&this.disableTransition(),n in t.clean&&(this.element.style[e.propertyName]="",delete t.clean[n]),n in t.onEnd){var r=t.onEnd[n];r.call(this),delete t.onEnd[n]}this.emitEvent("transitionEnd",[this])}},u.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(i,this,!1),this.isTransitioning=!1},u._removeStyles=function(e){var t={};for(var n in e)t[n]="";this.css(t)};var p={transitionProperty:"",transitionDuration:"",transitionDelay:""};return u.removeTransitionStyles=function(){this.css(p)},u.stagger=function(e){e=isNaN(e)?0:e,this.staggerDelay=e+"ms"},u.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},u.remove=function(){r&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),this.hide()):this.removeElem()},u.reveal=function(){delete this.isHidden,this.css({display:""});var e=this.layout.options,t={};t[this.getHideRevealTransitionEndProperty("visibleStyle")]=this.onRevealTransitionEnd,this.transition({from:e.hiddenStyle,to:e.visibleStyle,isCleaning:!0,onTransitionEnd:t})},u.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},u.getHideRevealTransitionEndProperty=function(e){var t=this.layout.options[e];if(t.opacity)return"opacity";for(var n in t)return n},u.hide=function(){this.isHidden=!0,this.css({display:""});var e=this.layout.options,t={};t[this.getHideRevealTransitionEndProperty("hiddenStyle")]=this.onHideTransitionEnd,this.transition({from:e.visibleStyle,to:e.hiddenStyle,isCleaning:!0,onTransitionEnd:t})},u.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},u.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},s})?r.apply(t,o):r)||(e.exports=i)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(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(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=s(n(29)),i=s(n(52)),a=s(n(190));function s(e){return e&&e.__esModule?e:{default:e}}var u=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=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,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.id=n.props.result.id,n.thumb=n.props.result.urls.thumb,n.img=n.props.result.urls.small,n.full_size=n.props.result.urls.full,n.author=n.props.result.user.name,n.img_title=instant_img_localize.photo_by+" "+n.author,n.filename=n.props.result.id,n.title=n.img_title,n.alt=n.props.result.alt_description,n.caption="",n.user=n.props.result.user.username,n.user_photo=n.props.result.user.profile_image.small,n.link=n.props.result.links.html,n.likes=n.props.result.likes,n.view_all=instant_img_localize.view_all,n.inProgress=!1,n.container=document.querySelector(".instant-img-container"),n.showTooltip=n.props.showTooltip,n.hideTooltip=n.props.hideTooltip,n.setAsFeaturedImage=!1,n.insertIntoPost=!1,n.is_media_router=n.props.mediaRouter,n.is_block_editor=n.props.blockEditor,n.SetFeaturedImage=n.props.SetFeaturedImage,n.InsertImage=n.props.InsertImage,n.displayGutenbergControl=!!n.is_block_editor,n.state={filename:n.filename,title:n.title,alt:n.alt,caption:n.caption},n}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)}(t,o.default.Component),r(t,[{key:"download",value:function(e){e.preventDefault();var t=this,n=e.currentTarget,r=n.parentElement.parentElement.parentElement,o=r.querySelector(".notice-msg");if(n.classList.contains("upload")||(n=r.querySelector("a.upload")),n.classList.contains("success")||this.inProgress)return!1;this.inProgress=!0,n.classList.add("uploading"),r.classList.add("in-progress"),o.innerHTML=instant_img_localize.saving,setTimeout(function(){o.innerHTML=instant_img_localize.resizing,setTimeout(function(){o.innerHTML=instant_img_localize.resizing_still},5e3)},3e3);var i=instant_img_localize.root+"instant-images/download/",s={id:n.getAttribute("data-id"),image_url:n.getAttribute("data-url"),filename:n.getAttribute("data-id")+".jpg",custom_filename:n.getAttribute("data-filename"),title:n.getAttribute("data-title"),alt:n.getAttribute("data-alt"),caption:n.getAttribute("data-caption"),parent_id:instant_img_localize.parent_id},u={headers:{"X-WP-Nonce":instant_img_localize.nonce,"Content-Type":"application/json"}};a.default.put(i,JSON.stringify(s),u).then(function(e){var i=e.data;if(i){var a=i.success,s=i.id,u=i.attachment,l=i.admin_url,c=i.msg;if(a){var p=l+"post.php?post="+u.id+"&action=edit";t.uploadComplete(n,r,c,p,u.id),t.triggerUnsplashDownload(s),t.displayGutenbergControl&&t.setAsFeaturedImage&&(t.SetFeaturedImage(u.id),t.setAsFeaturedImage=!1,t.closeMediaModal()),t.displayGutenbergControl&&t.insertIntoPost&&(u.url&&(t.InsertImage(u.url,u.caption,u.alt),t.closeMediaModal()),t.insertIntoPost=!1),"true"!==t.container.dataset.mediaPopup||t.is_block_editor||(window.location="media-upload.php?type=image&tab=library&attachment_id="+u.id)}else t.uploadError(n,r,o,c)}else t.uploadError(n,r,o,instant_img_localize.error_upload)}).catch(function(e){console.log(e)})}},{key:"triggerUnsplashDownload",value:function(e){var t=i.default.photo_api+"/"+e+"/download/"+i.default.app_id;fetch(t).then(function(e){return e.json()}).then(function(e){}).catch(function(e){console.log(e)})}},{key:"setFeaturedImageClick",value:function(e){var t=e.currentTarget;if(!t)return!1;this.hideTooltip(e);var n=t.parentNode.parentNode.parentNode.querySelector("a.upload");n&&(this.setAsFeaturedImage=!0,n.click())}},{key:"insertImageIntoPost",value:function(e){var t=e.currentTarget;if(!t)return!1;this.hideTooltip(e);var n=t.parentNode.parentNode.parentNode.querySelector("a.upload");n&&(this.insertIntoPost=!0,n.click())}},{key:"uploadComplete",value:function(e,t,n,r,o){this.setImageTitle(e,n),t.classList.remove("in-progress"),t.classList.add("uploaded"),t.querySelector(".edit-photo").style.display="none",t.querySelector(".edit-photo-admin").style.display="inline-block",t.querySelector(".edit-photo-admin").href=r,t.querySelector(".edit-photo-admin").target="_balnk",e.classList.remove("uploading"),e.classList.remove("resizing"),e.classList.add("success"),this.inProgress=!1,this.is_block_editor&&(t.querySelector(".insert").style.display="none",t.querySelector(".set-featured").style.display="none"),this.mediaRouter(o),this.container.classList.contains("editor")&&void 0!==wp.media&&(null!==wp.media.frame.content.get()?(wp.media.frame.content.get().collection.props.set({ignore:+new Date}),wp.media.frame.content.get().options.selection.reset()):wp.media.frame.library.props.set({ignore:+new Date}))}},{key:"mediaRouter",value:function(e){if(this.is_media_router&&wp.media&&wp.media.frame&&wp.media.frame.el){var t=wp.media.frame.el.querySelector("#menu-item-browse");t&&t.click(),setTimeout(function(){null!==wp.media.frame.content.get()&&wp.media.frame.content.get().collection._requery(!0);var t=wp.media.frame.state().get("selection"),n=parseInt(e);t.reset(n?[wp.media.attachment(n)]:[])},150)}}},{key:"uploadError",value:function(e,t,n,r){e.classList.remove("uploading"),e.classList.remove("resizing"),e.classList.add("errors"),this.setImageTitle(e,r),this.inProgress=!1,n.classList.add("has-error"),console.warn(r)}},{key:"setImageTitle",value:function(e,t){e.setAttribute("title",t)}},{key:"showEditScreen",value:function(e){e.preventDefault();var t=e.currentTarget;this.hideTooltip(e);var n=t.closest(".photo"),r=(n.querySelector('input[name="filename"]'),n.querySelector(".edit-screen"));r.classList.add("editing"),setTimeout(function(){r.focus()},150)}},{key:"handleEditChange",value:function(e){var t=e.target.name;"filename"===t&&this.setState({filename:e.target.value}),"title"===t&&this.setState({title:e.target.value}),"alt"===t&&this.setState({alt:e.target.value}),"caption"===t&&this.setState({caption:e.target.value})}},{key:"saveEditChange",value:function(e){var t=e.currentTarget.closest(".photo"),n=t.querySelector('input[name="filename"]');this.filename=n.value;var r=t.querySelector('input[name="title"]');this.title=r.value;var o=t.querySelector('input[name="alt"]');this.alt=o.value;var i=t.querySelector('textarea[name="caption"]');this.caption=i.value,t.querySelector(".edit-screen").classList.remove("editing"),t.querySelector("a.upload").click()}},{key:"cancelEditChange",value:function(e){var t=e.currentTarget.closest(".photo");if(t){var n=t.querySelector("a.upload"),r=t.querySelector('input[name="filename"]');r.value=r.dataset.original,this.setState({filename:r.value});var o=t.querySelector('input[name="title"]');o.value=o.dataset.original,this.setState({title:o.value});var i=t.querySelector('input[name="alt"]');i.value=i.dataset.original,this.setState({alt:i.value});var a=t.querySelector('textarea[name="caption"]');a.value=a.dataset.original,this.setState({caption:a.value}),t.querySelector(".edit-screen").classList.remove("editing"),n.focus()}}},{key:"closeMediaModal",value:function(){var e=document.querySelector(".media-modal");if(e){var t=e.querySelector("button.media-modal-close");if(!t)return!1;t.click()}}},{key:"render",value:function(){var e=this,t=parseInt(this.likes)>1?instant_img_localize.likes_plural:instant_img_localize.likes;return o.default.createElement("article",{className:"photo"},o.default.createElement("div",{className:"photo--wrap"},o.default.createElement("div",{className:"img-wrap"},o.default.createElement("a",{className:"upload loaded",href:this.full_size,"data-id":this.id,"data-url":this.full_size,"data-filename":this.state.filename,"data-title":this.state.title,"data-alt":this.state.alt,"data-caption":this.state.caption,title:instant_img_localize.upload,onClick:function(t){return e.download(t)}},o.default.createElement("img",{src:this.img,alt:""}),o.default.createElement("div",{className:"status"})),o.default.createElement("div",{className:"notice-msg"}),o.default.createElement("div",{className:"user-controls"},o.default.createElement("a",{className:"user fade",href:"https://unsplash.com/@"+this.user+"?utm_source=wordpress-instant-images&utm_medium=referral",target:"_blank",title:this.view_all+" @"+this.user},o.default.createElement("div",{className:"user-wrap"},this.user_photo.length>0&&o.default.createElement("img",{src:this.user_photo}),this.user)),o.default.createElement("div",{className:"photo-options"},this.displayGutenbergControl&&o.default.createElement("button",{type:"button",className:"set-featured fade","data-title":instant_img_localize.set_as_featured,onMouseEnter:function(t){return e.showTooltip(t)},onMouseLeave:function(t){return e.hideTooltip(t)},onClick:function(t){return e.setFeaturedImageClick(t)}},o.default.createElement("i",{className:"fa fa-picture-o","aria-hidden":"true"}),o.default.createElement("span",{className:"offscreen"},instant_img_localize.set_as_featured)),this.displayGutenbergControl&&o.default.createElement("button",{type:"button",className:"insert fade","data-title":instant_img_localize.insert_into_post,onMouseEnter:function(t){return e.showTooltip(t)},onMouseLeave:function(t){return e.hideTooltip(t)},onClick:function(t){return e.insertImageIntoPost(t)}},o.default.createElement("i",{className:"fa fa-plus","aria-hidden":"true"}),o.default.createElement("span",{className:"offscreen"},instant_img_localize.insert_into_post)),o.default.createElement("a",{href:"#",className:"edit-photo-admin fade","data-title":instant_img_localize.edit_upload,onMouseEnter:function(t){return e.showTooltip(t)},onMouseLeave:function(t){return e.hideTooltip(t)}},o.default.createElement("i",{className:"fa fa-pencil","aria-hidden":"true"}),o.default.createElement("span",{className:"offscreen"},instant_img_localize.edit_upload)),o.default.createElement("button",{type:"button",className:"edit-photo fade","data-title":instant_img_localize.edit_details,onMouseEnter:function(t){return e.showTooltip(t)},onMouseLeave:function(t){return e.hideTooltip(t)},onClick:function(t){return e.showEditScreen(t)}},o.default.createElement("i",{className:"fa fa-cog","aria-hidden":"true"}),o.default.createElement("span",{className:"offscreen"},instant_img_localize.edit_details)))),o.default.createElement("div",{className:"options"},o.default.createElement("span",{className:"likes tooltip--above","data-title":this.likes+" "+t,onMouseEnter:function(t){return e.showTooltip(t)},onMouseLeave:function(t){return e.hideTooltip(t)}},o.default.createElement("i",{className:"fa fa-heart heart-like","aria-hidden":"true"})," ",this.likes),o.default.createElement("a",{className:"tooltip--above",href:this.link,"data-title":instant_img_localize.view_on_unsplash,onMouseEnter:function(t){return e.showTooltip(t)},onMouseLeave:function(t){return e.hideTooltip(t)},target:"_blank"},o.default.createElement("i",{className:"fa fa-external-link","aria-hidden":"true"}),o.default.createElement("span",{className:"offscreen"},instant_img_localize.view_on_unsplash)))),o.default.createElement("div",{className:"edit-screen",tabIndex:"0"},o.default.createElement("div",{className:"edit-screen--title"},o.default.createElement("p",{className:"heading"},instant_img_localize.edit_details),o.default.createElement("p",null,instant_img_localize.edit_details_intro,".")),o.default.createElement("label",null,o.default.createElement("span",null,instant_img_localize.edit_filename,":"),o.default.createElement("input",{type:"text",name:"filename","data-original":this.filename,placeholder:this.filename,value:this.state.filename,onChange:function(t){return e.handleEditChange(t)}}),o.default.createElement("em",null,".jpg")),o.default.createElement("label",null,o.default.createElement("span",null,instant_img_localize.edit_title,":"),o.default.createElement("input",{type:"text",name:"title","data-original":this.title,placeholder:this.title,value:this.state.title||"",onChange:function(t){return e.handleEditChange(t)}})),o.default.createElement("label",null,o.default.createElement("span",null,instant_img_localize.edit_alt,":"),o.default.createElement("input",{type:"text",name:"alt","data-original":this.alt,value:this.state.alt||"",onChange:function(t){return e.handleEditChange(t)}})),o.default.createElement("label",null,o.default.createElement("span",null,instant_img_localize.edit_caption,":"),o.default.createElement("textarea",{rows:"3",name:"caption","data-original":"",onChange:function(t){return e.handleEditChange(t)},value:this.state.caption||""})),o.default.createElement("div",{className:"edit-screen--controls"},o.default.createElement("button",{type:"button",className:"button",onClick:function(t){return e.cancelEditChange(t)}},instant_img_localize.cancel),"  ",o.default.createElement("button",{type:"button",className:"button button-primary",onClick:function(t){return e.saveEditChange(t)}},instant_img_localize.upload_now)))))}}]),t}();t.default=u},function(e,t,n){e.exports=n(191)},function(e,t,n){"use strict";var r=n(7),o=n(88),i=n(193),a=n(51);function s(e){var t=new i(e),n=o(i.prototype.request,t);return r.extend(n,i.prototype,t),r.extend(n,t),n}var u=s(a);u.Axios=i,u.create=function(e){return s(r.merge(a,e))},u.Cancel=n(92),u.CancelToken=n(207),u.isCancel=n(91),u.all=function(e){return Promise.all(e)},u.spread=n(208),e.exports=u,e.exports.default=u},function(e,t){function n(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}
44
  /*!
45
  * Determine if an object is a Buffer
46
  *
47
  * @author Feross Aboukhadijeh <https://feross.org>
48
  * @license MIT
49
  */
50
+ e.exports=function(e){return null!=e&&(n(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&n(e.slice(0,0))}(e)||!!e._isBuffer)}},function(e,t,n){"use strict";var r=n(51),o=n(7),i=n(202),a=n(203);function s(e){this.defaults=e,this.interceptors={request:new i,response:new i}}s.prototype.request=function(e){"string"==typeof e&&(e=o.merge({url:arguments[0]},arguments[1])),(e=o.merge(r,{method:"get"},this.defaults,e)).method=e.method.toLowerCase();var t=[a,void 0],n=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)n=n.then(t.shift(),t.shift());return n},o.forEach(["delete","get","head","options"],function(e){s.prototype[e]=function(t,n){return this.request(o.merge(n||{},{method:e,url:t}))}}),o.forEach(["post","put","patch"],function(e){s.prototype[e]=function(t,n,r){return this.request(o.merge(r||{},{method:e,url:t,data:n}))}}),e.exports=s},function(e,t,n){"use strict";var r=n(7);e.exports=function(e,t){r.forEach(e,function(n,r){r!==t&&r.toUpperCase()===t.toUpperCase()&&(e[t]=n,delete e[r])})}},function(e,t,n){"use strict";var r=n(90);e.exports=function(e,t,n){var o=n.config.validateStatus;n.status&&o&&!o(n.status)?t(r("Request failed with status code "+n.status,n.config,null,n.request,n)):e(n)}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,o){return e.config=t,n&&(e.code=n),e.request=r,e.response=o,e}},function(e,t,n){"use strict";var r=n(7);function o(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,n){if(!t)return e;var i;if(n)i=n(t);else if(r.isURLSearchParams(t))i=t.toString();else{var a=[];r.forEach(t,function(e,t){null!=e&&(r.isArray(e)?t+="[]":e=[e],r.forEach(e,function(e){r.isDate(e)?e=e.toISOString():r.isObject(e)&&(e=JSON.stringify(e)),a.push(o(t)+"="+o(e))}))}),i=a.join("&")}return i&&(e+=(-1===e.indexOf("?")?"?":"&")+i),e}},function(e,t,n){"use strict";var r=n(7),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,n,i,a={};return e?(r.forEach(e.split("\n"),function(e){if(i=e.indexOf(":"),t=r.trim(e.substr(0,i)).toLowerCase(),n=r.trim(e.substr(i+1)),t){if(a[t]&&o.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([n]):a[t]?a[t]+", "+n:n}}),a):a}},function(e,t,n){"use strict";var r=n(7);e.exports=r.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(e){var r=e;return t&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return e=o(window.location.href),function(t){var n=r.isString(t)?o(t):t;return n.protocol===e.protocol&&n.host===e.host}}():function(){return!0}},function(e,t,n){"use strict";var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function o(){this.message="String contains an invalid character"}o.prototype=new Error,o.prototype.code=5,o.prototype.name="InvalidCharacterError",e.exports=function(e){for(var t,n,i=String(e),a="",s=0,u=r;i.charAt(0|s)||(u="=",s%1);a+=u.charAt(63&t>>8-s%1*8)){if((n=i.charCodeAt(s+=.75))>255)throw new o;t=t<<8|n}return a}},function(e,t,n){"use strict";var r=n(7);e.exports=r.isStandardBrowserEnv()?{write:function(e,t,n,o,i,a){var s=[];s.push(e+"="+encodeURIComponent(t)),r.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),r.isString(o)&&s.push("path="+o),r.isString(i)&&s.push("domain="+i),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(e,t,n){"use strict";var r=n(7);function o(){this.handlers=[]}o.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){r.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=o},function(e,t,n){"use strict";var r=n(7),o=n(204),i=n(91),a=n(51),s=n(205),u=n(206);function l(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return l(e),e.baseURL&&!s(e.url)&&(e.url=u(e.baseURL,e.url)),e.headers=e.headers||{},e.data=o(e.data,e.headers,e.transformRequest),e.headers=r.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),r.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]}),(e.adapter||a.adapter)(e).then(function(t){return l(e),t.data=o(t.data,t.headers,e.transformResponse),t},function(t){return i(t)||(l(e),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}},function(e,t,n){"use strict";var r=n(7);e.exports=function(e,t,n){return r.forEach(n,function(n){e=n(e,t)}),e}},function(e,t,n){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t,n){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,n){"use strict";var r=n(92);function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var n=this;e(function(e){n.reason||(n.reason=new r(e),t(n.reason))})}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var e;return{token:new o(function(t){e=t}),cancel:e}},e.exports=o},function(e,t,n){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=function(){function e(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(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(29),a=(r=i)&&r.__esModule?r:{default:r};var s=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,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,(t.__proto__||Object.getPrototypeOf(t)).call(this,e))}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)}(t,a.default.Component),o(t,[{key:"resetSearch",value:function(){this.props.container.querySelector(".control-nav").querySelector("li button.latest").click()}},{key:"render",value:function(){var e=this;return a.default.createElement("div",{className:this.props.isSearch?"searchResults":"searchResults hide"},a.default.createElement("span",{title:this.props.title},this.props.total),a.default.createElement("button",{type:"button",title:instant_img_localize.clear_search,onClick:function(t){return e.resetSearch()}},"x",a.default.createElement("span",{className:"offscreen"},instant_img_localize.clear_search)))}}]),t}();t.default=s},function(e,t,n){var r,o;
51
+ /*!
52
+ * imagesLoaded v4.1.3
53
+ * JavaScript is all like "You images are done yet or what?"
54
+ * MIT License
55
+ */
56
+ /*!
57
+ * imagesLoaded v4.1.3
58
+ * JavaScript is all like "You images are done yet or what?"
59
+ * MIT License
60
+ */
61
+ !function(i,a){"use strict";r=[n(49)],void 0===(o=function(e){return function(e,t){var n=e.jQuery,r=e.console;function o(e,t){for(var n in t)e[n]=t[n];return e}function i(e,t,r){if(!(this instanceof i))return new i(e,t,r);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=function(e){var t=[];if(Array.isArray(e))t=e;else if("number"==typeof e.length)for(var n=0;n<e.length;n++)t.push(e[n]);else t.push(e);return t}(e),this.options=o({},this.options),"function"==typeof t?r=t:o(this.options,t),r&&this.on("always",r),this.getImages(),n&&(this.jqDeferred=new n.Deferred),setTimeout(function(){this.check()}.bind(this))}i.prototype=Object.create(t.prototype),i.prototype.options={},i.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},i.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),!0===this.options.background&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&a[t]){for(var n=e.querySelectorAll("img"),r=0;r<n.length;r++){var o=n[r];this.addImage(o)}if("string"==typeof this.options.background){var i=e.querySelectorAll(this.options.background);for(r=0;r<i.length;r++){var s=i[r];this.addElementBackgroundImages(s)}}}};var a={1:!0,9:!0,11:!0};function s(e){this.img=e}function u(e,t){this.url=e,this.element=t,this.img=new Image}return i.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var n=/url\((['"])?(.*?)\1\)/gi,r=n.exec(t.backgroundImage);null!==r;){var o=r&&r[2];o&&this.addBackground(o,e),r=n.exec(t.backgroundImage)}},i.prototype.addImage=function(e){var t=new s(e);this.images.push(t)},i.prototype.addBackground=function(e,t){var n=new u(e,t);this.images.push(n)},i.prototype.check=function(){var e=this;function t(t,n,r){setTimeout(function(){e.progress(t,n,r)})}this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?this.images.forEach(function(e){e.once("progress",t),e.check()}):this.complete()},i.prototype.progress=function(e,t,n){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&r&&r.log("progress: "+n,e,t)},i.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},s.prototype=Object.create(t.prototype),s.prototype.check=function(){this.getIsImageComplete()?this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.proxyImage.src=this.img.src)},s.prototype.getIsImageComplete=function(){return this.img.complete&&void 0!==this.img.naturalWidth},s.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},s.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},s.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},s.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},s.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},u.prototype=Object.create(s.prototype),u.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url,this.getIsImageComplete()&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},u.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},u.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},i.makeJQueryPlugin=function(t){(t=t||e.jQuery)&&((n=t).fn.imagesLoaded=function(e,t){return new i(this,e,t).jqDeferred.promise(n(this))})},i.makeJQueryPlugin(),i}(i,e)}.apply(t,r))||(e.exports=o)}("undefined"!=typeof window?window:this)},,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(218),i=(r=o)&&r.__esModule?r:{default:r};t.default=function(e){var t=e.color,n=void 0===t?"unsplash":t;return React.createElement("span",{className:(0,i.default)("instant-images-sidebar-icon","color-"+n)},React.createElement("svg",{viewBox:"0 0 31 58",width:"13px",height:"24px"},React.createElement("title",null,"Instant Images Logo"),React.createElement("polygon",{points:"20 0 20 23 31 23 11 58 11 34 0 34 20 0",fill:"#4a7bc5"})))}},function(e,t,n){var r;
62
  /*!
63
  Copyright (c) 2017 Jed Watson.
64
  Licensed under the MIT License (MIT), see
69
  Licensed under the MIT License (MIT), see
70
  http://jedwatson.github.io/classnames
71
  */
72
+ !function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var i=typeof r;if("string"===i||"number"===i)e.push(r);else if(Array.isArray(r)&&r.length){var a=o.apply(null,r);a&&e.push(a)}else if("object"===i)for(var s in r)n.call(r,s)&&r[s]&&e.push(s)}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},,,function(e,t,n){"use strict";i(n(217));var r=i(n(222)),o=i(n(225));function i(e){return e&&e.__esModule?e:{default:e}}var a=wp.element.Fragment,s=wp.editPost;s.PluginSidebar,s.PluginSidebarMoreMenuItem;(0,wp.plugins.registerPlugin)("instant-images",{render:function(){return React.createElement(a,null,React.createElement(o.default,null),React.createElement(r.default,null))}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});s(n(218));var r=s(n(217)),o=s(n(223)),i=s(n(224)),a=s(n(179));function s(e){return e&&e.__esModule?e:{default:e}}wp.element.Component;var u=wp.editPost,l=u.PluginSidebar;u.PluginSidebarMoreMenuItem;t.default=function(){return React.createElement(l,{icon:React.createElement(r.default,{borderless:!0,color:"unsplash"}),name:"instant-images-sidebar",title:"Instant Images"},React.createElement("div",{className:"instant-img-container"},React.createElement(a.default,{editor:"gutenberg",page:"1",orderby:"latest",service:"unsplash",SetFeaturedImage:o.default,InsertImage:i.default})))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=wp.data.dispatch;t.default=function(e){if(null===e)return!1;r("core/editor").editPost({featured_media:e})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=wp.blocks.createBlock;t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(""===e)return!1;var o=r("core/image",{url:e,caption:t,alt:n});wp.data.dispatch("core/editor").insertBlocks(o)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});o(n(218));var r=o(n(217));function o(e){return e&&e.__esModule?e:{default:e}}wp.element.Component;var i=wp.editPost,a=(i.PluginSidebar,i.PluginSidebarMoreMenuItem);t.default=function(){return React.createElement(a,{icon:React.createElement(r.default,{color:"unsplash"}),target:"instant-images-sidebar"},"Instant Images")}}]);
dist/js/instant-images-media.js ADDED
@@ -0,0 +1,31222 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
+ /******/ }
41
+ /******/ };
42
+ /******/
43
+ /******/ // define __esModule on exports
44
+ /******/ __webpack_require__.r = function(exports) {
45
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
+ /******/ }
48
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
+ /******/ };
50
+ /******/
51
+ /******/ // create a fake namespace object
52
+ /******/ // mode & 1: value is a module id, require it
53
+ /******/ // mode & 2: merge all properties of value into the ns
54
+ /******/ // mode & 4: return value when already ns object
55
+ /******/ // mode & 8|1: behave like require
56
+ /******/ __webpack_require__.t = function(value, mode) {
57
+ /******/ if(mode & 1) value = __webpack_require__(value);
58
+ /******/ if(mode & 8) return value;
59
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
+ /******/ var ns = Object.create(null);
61
+ /******/ __webpack_require__.r(ns);
62
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
+ /******/ return ns;
65
+ /******/ };
66
+ /******/
67
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
68
+ /******/ __webpack_require__.n = function(module) {
69
+ /******/ var getter = module && module.__esModule ?
70
+ /******/ function getDefault() { return module['default']; } :
71
+ /******/ function getModuleExports() { return module; };
72
+ /******/ __webpack_require__.d(getter, 'a', getter);
73
+ /******/ return getter;
74
+ /******/ };
75
+ /******/
76
+ /******/ // Object.prototype.hasOwnProperty.call
77
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
+ /******/
79
+ /******/ // __webpack_public_path__
80
+ /******/ __webpack_require__.p = "";
81
+ /******/
82
+ /******/
83
+ /******/ // Load entry module and return exports
84
+ /******/ return __webpack_require__(__webpack_require__.s = "./src/js/media-router.js");
85
+ /******/ })
86
+ /************************************************************************/
87
+ /******/ ({
88
+
89
+ /***/ "./node_modules/axios/index.js":
90
+ /*!*************************************!*\
91
+ !*** ./node_modules/axios/index.js ***!
92
+ \*************************************/
93
+ /*! no static exports found */
94
+ /***/ (function(module, exports, __webpack_require__) {
95
+
96
+ module.exports = __webpack_require__(/*! ./lib/axios */ "./node_modules/axios/lib/axios.js");
97
+
98
+ /***/ }),
99
+
100
+ /***/ "./node_modules/axios/lib/adapters/xhr.js":
101
+ /*!************************************************!*\
102
+ !*** ./node_modules/axios/lib/adapters/xhr.js ***!
103
+ \************************************************/
104
+ /*! no static exports found */
105
+ /***/ (function(module, exports, __webpack_require__) {
106
+
107
+ "use strict";
108
+
109
+
110
+ var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
111
+ var settle = __webpack_require__(/*! ./../core/settle */ "./node_modules/axios/lib/core/settle.js");
112
+ var buildURL = __webpack_require__(/*! ./../helpers/buildURL */ "./node_modules/axios/lib/helpers/buildURL.js");
113
+ var parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ "./node_modules/axios/lib/helpers/parseHeaders.js");
114
+ var isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ "./node_modules/axios/lib/helpers/isURLSameOrigin.js");
115
+ var createError = __webpack_require__(/*! ../core/createError */ "./node_modules/axios/lib/core/createError.js");
116
+ var btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || __webpack_require__(/*! ./../helpers/btoa */ "./node_modules/axios/lib/helpers/btoa.js");
117
+
118
+ module.exports = function xhrAdapter(config) {
119
+ return new Promise(function dispatchXhrRequest(resolve, reject) {
120
+ var requestData = config.data;
121
+ var requestHeaders = config.headers;
122
+
123
+ if (utils.isFormData(requestData)) {
124
+ delete requestHeaders['Content-Type']; // Let the browser set it
125
+ }
126
+
127
+ var request = new XMLHttpRequest();
128
+ var loadEvent = 'onreadystatechange';
129
+ var xDomain = false;
130
+
131
+ // For IE 8/9 CORS support
132
+ // Only supports POST and GET calls and doesn't returns the response headers.
133
+ // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.
134
+ if ( true &&
135
+ typeof window !== 'undefined' &&
136
+ window.XDomainRequest && !('withCredentials' in request) &&
137
+ !isURLSameOrigin(config.url)) {
138
+ request = new window.XDomainRequest();
139
+ loadEvent = 'onload';
140
+ xDomain = true;
141
+ request.onprogress = function handleProgress() {};
142
+ request.ontimeout = function handleTimeout() {};
143
+ }
144
+
145
+ // HTTP basic authentication
146
+ if (config.auth) {
147
+ var username = config.auth.username || '';
148
+ var password = config.auth.password || '';
149
+ requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);
150
+ }
151
+
152
+ request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);
153
+
154
+ // Set the request timeout in MS
155
+ request.timeout = config.timeout;
156
+
157
+ // Listen for ready state
158
+ request[loadEvent] = function handleLoad() {
159
+ if (!request || (request.readyState !== 4 && !xDomain)) {
160
+ return;
161
+ }
162
+
163
+ // The request errored out and we didn't get a response, this will be
164
+ // handled by onerror instead
165
+ // With one exception: request that using file: protocol, most browsers
166
+ // will return status as 0 even though it's a successful request
167
+ if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {
168
+ return;
169
+ }
170
+
171
+ // Prepare the response
172
+ var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;
173
+ var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;
174
+ var response = {
175
+ data: responseData,
176
+ // IE sends 1223 instead of 204 (https://github.com/axios/axios/issues/201)
177
+ status: request.status === 1223 ? 204 : request.status,
178
+ statusText: request.status === 1223 ? 'No Content' : request.statusText,
179
+ headers: responseHeaders,
180
+ config: config,
181
+ request: request
182
+ };
183
+
184
+ settle(resolve, reject, response);
185
+
186
+ // Clean up request
187
+ request = null;
188
+ };
189
+
190
+ // Handle low level network errors
191
+ request.onerror = function handleError() {
192
+ // Real errors are hidden from us by the browser
193
+ // onerror should only fire if it's a network error
194
+ reject(createError('Network Error', config, null, request));
195
+
196
+ // Clean up request
197
+ request = null;
198
+ };
199
+
200
+ // Handle timeout
201
+ request.ontimeout = function handleTimeout() {
202
+ reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',
203
+ request));
204
+
205
+ // Clean up request
206
+ request = null;
207
+ };
208
+
209
+ // Add xsrf header
210
+ // This is only done if running in a standard browser environment.
211
+ // Specifically not if we're in a web worker, or react-native.
212
+ if (utils.isStandardBrowserEnv()) {
213
+ var cookies = __webpack_require__(/*! ./../helpers/cookies */ "./node_modules/axios/lib/helpers/cookies.js");
214
+
215
+ // Add xsrf header
216
+ var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?
217
+ cookies.read(config.xsrfCookieName) :
218
+ undefined;
219
+
220
+ if (xsrfValue) {
221
+ requestHeaders[config.xsrfHeaderName] = xsrfValue;
222
+ }
223
+ }
224
+
225
+ // Add headers to the request
226
+ if ('setRequestHeader' in request) {
227
+ utils.forEach(requestHeaders, function setRequestHeader(val, key) {
228
+ if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {
229
+ // Remove Content-Type if data is undefined
230
+ delete requestHeaders[key];
231
+ } else {
232
+ // Otherwise add header to the request
233
+ request.setRequestHeader(key, val);
234
+ }
235
+ });
236
+ }
237
+
238
+ // Add withCredentials to request if needed
239
+ if (config.withCredentials) {
240
+ request.withCredentials = true;
241
+ }
242
+
243
+ // Add responseType to request if needed
244
+ if (config.responseType) {
245
+ try {
246
+ request.responseType = config.responseType;
247
+ } catch (e) {
248
+ // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.
249
+ // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.
250
+ if (config.responseType !== 'json') {
251
+ throw e;
252
+ }
253
+ }
254
+ }
255
+
256
+ // Handle progress if needed
257
+ if (typeof config.onDownloadProgress === 'function') {
258
+ request.addEventListener('progress', config.onDownloadProgress);
259
+ }
260
+
261
+ // Not all browsers support upload events
262
+ if (typeof config.onUploadProgress === 'function' && request.upload) {
263
+ request.upload.addEventListener('progress', config.onUploadProgress);
264
+ }
265
+
266
+ if (config.cancelToken) {
267
+ // Handle cancellation
268
+ config.cancelToken.promise.then(function onCanceled(cancel) {
269
+ if (!request) {
270
+ return;
271
+ }
272
+
273
+ request.abort();
274
+ reject(cancel);
275
+ // Clean up request
276
+ request = null;
277
+ });
278
+ }
279
+
280
+ if (requestData === undefined) {
281
+ requestData = null;
282
+ }
283
+
284
+ // Send the request
285
+ request.send(requestData);
286
+ });
287
+ };
288
+
289
+
290
+ /***/ }),
291
+
292
+ /***/ "./node_modules/axios/lib/axios.js":
293
+ /*!*****************************************!*\
294
+ !*** ./node_modules/axios/lib/axios.js ***!
295
+ \*****************************************/
296
+ /*! no static exports found */
297
+ /***/ (function(module, exports, __webpack_require__) {
298
+
299
+ "use strict";
300
+
301
+
302
+ var utils = __webpack_require__(/*! ./utils */ "./node_modules/axios/lib/utils.js");
303
+ var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/axios/lib/helpers/bind.js");
304
+ var Axios = __webpack_require__(/*! ./core/Axios */ "./node_modules/axios/lib/core/Axios.js");
305
+ var defaults = __webpack_require__(/*! ./defaults */ "./node_modules/axios/lib/defaults.js");
306
+
307
+ /**
308
+ * Create an instance of Axios
309
+ *
310
+ * @param {Object} defaultConfig The default config for the instance
311
+ * @return {Axios} A new instance of Axios
312
+ */
313
+ function createInstance(defaultConfig) {
314
+ var context = new Axios(defaultConfig);
315
+ var instance = bind(Axios.prototype.request, context);
316
+
317
+ // Copy axios.prototype to instance
318
+ utils.extend(instance, Axios.prototype, context);
319
+
320
+ // Copy context to instance
321
+ utils.extend(instance, context);
322
+
323
+ return instance;
324
+ }
325
+
326
+ // Create the default instance to be exported
327
+ var axios = createInstance(defaults);
328
+
329
+ // Expose Axios class to allow class inheritance
330
+ axios.Axios = Axios;
331
+
332
+ // Factory for creating new instances
333
+ axios.create = function create(instanceConfig) {
334
+ return createInstance(utils.merge(defaults, instanceConfig));
335
+ };
336
+
337
+ // Expose Cancel & CancelToken
338
+ axios.Cancel = __webpack_require__(/*! ./cancel/Cancel */ "./node_modules/axios/lib/cancel/Cancel.js");
339
+ axios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ "./node_modules/axios/lib/cancel/CancelToken.js");
340
+ axios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ "./node_modules/axios/lib/cancel/isCancel.js");
341
+
342
+ // Expose all/spread
343
+ axios.all = function all(promises) {
344
+ return Promise.all(promises);
345
+ };
346
+ axios.spread = __webpack_require__(/*! ./helpers/spread */ "./node_modules/axios/lib/helpers/spread.js");
347
+
348
+ module.exports = axios;
349
+
350
+ // Allow use of default import syntax in TypeScript
351
+ module.exports.default = axios;
352
+
353
+
354
+ /***/ }),
355
+
356
+ /***/ "./node_modules/axios/lib/cancel/Cancel.js":
357
+ /*!*************************************************!*\
358
+ !*** ./node_modules/axios/lib/cancel/Cancel.js ***!
359
+ \*************************************************/
360
+ /*! no static exports found */
361
+ /***/ (function(module, exports, __webpack_require__) {
362
+
363
+ "use strict";
364
+
365
+
366
+ /**
367
+ * A `Cancel` is an object that is thrown when an operation is canceled.
368
+ *
369
+ * @class
370
+ * @param {string=} message The message.
371
+ */
372
+ function Cancel(message) {
373
+ this.message = message;
374
+ }
375
+
376
+ Cancel.prototype.toString = function toString() {
377
+ return 'Cancel' + (this.message ? ': ' + this.message : '');
378
+ };
379
+
380
+ Cancel.prototype.__CANCEL__ = true;
381
+
382
+ module.exports = Cancel;
383
+
384
+
385
+ /***/ }),
386
+
387
+ /***/ "./node_modules/axios/lib/cancel/CancelToken.js":
388
+ /*!******************************************************!*\
389
+ !*** ./node_modules/axios/lib/cancel/CancelToken.js ***!
390
+ \******************************************************/
391
+ /*! no static exports found */
392
+ /***/ (function(module, exports, __webpack_require__) {
393
+
394
+ "use strict";
395
+
396
+
397
+ var Cancel = __webpack_require__(/*! ./Cancel */ "./node_modules/axios/lib/cancel/Cancel.js");
398
+
399
+ /**
400
+ * A `CancelToken` is an object that can be used to request cancellation of an operation.
401
+ *
402
+ * @class
403
+ * @param {Function} executor The executor function.
404
+ */
405
+ function CancelToken(executor) {
406
+ if (typeof executor !== 'function') {
407
+ throw new TypeError('executor must be a function.');
408
+ }
409
+
410
+ var resolvePromise;
411
+ this.promise = new Promise(function promiseExecutor(resolve) {
412
+ resolvePromise = resolve;
413
+ });
414
+
415
+ var token = this;
416
+ executor(function cancel(message) {
417
+ if (token.reason) {
418
+ // Cancellation has already been requested
419
+ return;
420
+ }
421
+
422
+ token.reason = new Cancel(message);
423
+ resolvePromise(token.reason);
424
+ });
425
+ }
426
+
427
+ /**
428
+ * Throws a `Cancel` if cancellation has been requested.
429
+ */
430
+ CancelToken.prototype.throwIfRequested = function throwIfRequested() {
431
+ if (this.reason) {
432
+ throw this.reason;
433
+ }
434
+ };
435
+
436
+ /**
437
+ * Returns an object that contains a new `CancelToken` and a function that, when called,
438
+ * cancels the `CancelToken`.
439
+ */
440
+ CancelToken.source = function source() {
441
+ var cancel;
442
+ var token = new CancelToken(function executor(c) {
443
+ cancel = c;
444
+ });
445
+ return {
446
+ token: token,
447
+ cancel: cancel
448
+ };
449
+ };
450
+
451
+ module.exports = CancelToken;
452
+
453
+
454
+ /***/ }),
455
+
456
+ /***/ "./node_modules/axios/lib/cancel/isCancel.js":
457
+ /*!***************************************************!*\
458
+ !*** ./node_modules/axios/lib/cancel/isCancel.js ***!
459
+ \***************************************************/
460
+ /*! no static exports found */
461
+ /***/ (function(module, exports, __webpack_require__) {
462
+
463
+ "use strict";
464
+
465
+
466
+ module.exports = function isCancel(value) {
467
+ return !!(value && value.__CANCEL__);
468
+ };
469
+
470
+
471
+ /***/ }),
472
+
473
+ /***/ "./node_modules/axios/lib/core/Axios.js":
474
+ /*!**********************************************!*\
475
+ !*** ./node_modules/axios/lib/core/Axios.js ***!
476
+ \**********************************************/
477
+ /*! no static exports found */
478
+ /***/ (function(module, exports, __webpack_require__) {
479
+
480
+ "use strict";
481
+
482
+
483
+ var defaults = __webpack_require__(/*! ./../defaults */ "./node_modules/axios/lib/defaults.js");
484
+ var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
485
+ var InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ "./node_modules/axios/lib/core/InterceptorManager.js");
486
+ var dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ "./node_modules/axios/lib/core/dispatchRequest.js");
487
+
488
+ /**
489
+ * Create a new instance of Axios
490
+ *
491
+ * @param {Object} instanceConfig The default config for the instance
492
+ */
493
+ function Axios(instanceConfig) {
494
+ this.defaults = instanceConfig;
495
+ this.interceptors = {
496
+ request: new InterceptorManager(),
497
+ response: new InterceptorManager()
498
+ };
499
+ }
500
+
501
+ /**
502
+ * Dispatch a request
503
+ *
504
+ * @param {Object} config The config specific for this request (merged with this.defaults)
505
+ */
506
+ Axios.prototype.request = function request(config) {
507
+ /*eslint no-param-reassign:0*/
508
+ // Allow for axios('example/url'[, config]) a la fetch API
509
+ if (typeof config === 'string') {
510
+ config = utils.merge({
511
+ url: arguments[0]
512
+ }, arguments[1]);
513
+ }
514
+
515
+ config = utils.merge(defaults, {method: 'get'}, this.defaults, config);
516
+ config.method = config.method.toLowerCase();
517
+
518
+ // Hook up interceptors middleware
519
+ var chain = [dispatchRequest, undefined];
520
+ var promise = Promise.resolve(config);
521
+
522
+ this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
523
+ chain.unshift(interceptor.fulfilled, interceptor.rejected);
524
+ });
525
+
526
+ this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
527
+ chain.push(interceptor.fulfilled, interceptor.rejected);
528
+ });
529
+
530
+ while (chain.length) {
531
+ promise = promise.then(chain.shift(), chain.shift());
532
+ }
533
+
534
+ return promise;
535
+ };
536
+
537
+ // Provide aliases for supported request methods
538
+ utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
539
+ /*eslint func-names:0*/
540
+ Axios.prototype[method] = function(url, config) {
541
+ return this.request(utils.merge(config || {}, {
542
+ method: method,
543
+ url: url
544
+ }));
545
+ };
546
+ });
547
+
548
+ utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
549
+ /*eslint func-names:0*/
550
+ Axios.prototype[method] = function(url, data, config) {
551
+ return this.request(utils.merge(config || {}, {
552
+ method: method,
553
+ url: url,
554
+ data: data
555
+ }));
556
+ };
557
+ });
558
+
559
+ module.exports = Axios;
560
+
561
+
562
+ /***/ }),
563
+
564
+ /***/ "./node_modules/axios/lib/core/InterceptorManager.js":
565
+ /*!***********************************************************!*\
566
+ !*** ./node_modules/axios/lib/core/InterceptorManager.js ***!
567
+ \***********************************************************/
568
+ /*! no static exports found */
569
+ /***/ (function(module, exports, __webpack_require__) {
570
+
571
+ "use strict";
572
+
573
+
574
+ var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
575
+
576
+ function InterceptorManager() {
577
+ this.handlers = [];
578
+ }
579
+
580
+ /**
581
+ * Add a new interceptor to the stack
582
+ *
583
+ * @param {Function} fulfilled The function to handle `then` for a `Promise`
584
+ * @param {Function} rejected The function to handle `reject` for a `Promise`
585
+ *
586
+ * @return {Number} An ID used to remove interceptor later
587
+ */
588
+ InterceptorManager.prototype.use = function use(fulfilled, rejected) {
589
+ this.handlers.push({
590
+ fulfilled: fulfilled,
591
+ rejected: rejected
592
+ });
593
+ return this.handlers.length - 1;
594
+ };
595
+
596
+ /**
597
+ * Remove an interceptor from the stack
598
+ *
599
+ * @param {Number} id The ID that was returned by `use`
600
+ */
601
+ InterceptorManager.prototype.eject = function eject(id) {
602
+ if (this.handlers[id]) {
603
+ this.handlers[id] = null;
604
+ }
605
+ };
606
+
607
+ /**
608
+ * Iterate over all the registered interceptors
609
+ *
610
+ * This method is particularly useful for skipping over any
611
+ * interceptors that may have become `null` calling `eject`.
612
+ *
613
+ * @param {Function} fn The function to call for each interceptor
614
+ */
615
+ InterceptorManager.prototype.forEach = function forEach(fn) {
616
+ utils.forEach(this.handlers, function forEachHandler(h) {
617
+ if (h !== null) {
618
+ fn(h);
619
+ }
620
+ });
621
+ };
622
+
623
+ module.exports = InterceptorManager;
624
+
625
+
626
+ /***/ }),
627
+
628
+ /***/ "./node_modules/axios/lib/core/createError.js":
629
+ /*!****************************************************!*\
630
+ !*** ./node_modules/axios/lib/core/createError.js ***!
631
+ \****************************************************/
632
+ /*! no static exports found */
633
+ /***/ (function(module, exports, __webpack_require__) {
634
+
635
+ "use strict";
636
+
637
+
638
+ var enhanceError = __webpack_require__(/*! ./enhanceError */ "./node_modules/axios/lib/core/enhanceError.js");
639
+
640
+ /**
641
+ * Create an Error with the specified message, config, error code, request and response.
642
+ *
643
+ * @param {string} message The error message.
644
+ * @param {Object} config The config.
645
+ * @param {string} [code] The error code (for example, 'ECONNABORTED').
646
+ * @param {Object} [request] The request.
647
+ * @param {Object} [response] The response.
648
+ * @returns {Error} The created error.
649
+ */
650
+ module.exports = function createError(message, config, code, request, response) {
651
+ var error = new Error(message);
652
+ return enhanceError(error, config, code, request, response);
653
+ };
654
+
655
+
656
+ /***/ }),
657
+
658
+ /***/ "./node_modules/axios/lib/core/dispatchRequest.js":
659
+ /*!********************************************************!*\
660
+ !*** ./node_modules/axios/lib/core/dispatchRequest.js ***!
661
+ \********************************************************/
662
+ /*! no static exports found */
663
+ /***/ (function(module, exports, __webpack_require__) {
664
+
665
+ "use strict";
666
+
667
+
668
+ var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
669
+ var transformData = __webpack_require__(/*! ./transformData */ "./node_modules/axios/lib/core/transformData.js");
670
+ var isCancel = __webpack_require__(/*! ../cancel/isCancel */ "./node_modules/axios/lib/cancel/isCancel.js");
671
+ var defaults = __webpack_require__(/*! ../defaults */ "./node_modules/axios/lib/defaults.js");
672
+ var isAbsoluteURL = __webpack_require__(/*! ./../helpers/isAbsoluteURL */ "./node_modules/axios/lib/helpers/isAbsoluteURL.js");
673
+ var combineURLs = __webpack_require__(/*! ./../helpers/combineURLs */ "./node_modules/axios/lib/helpers/combineURLs.js");
674
+
675
+ /**
676
+ * Throws a `Cancel` if cancellation has been requested.
677
+ */
678
+ function throwIfCancellationRequested(config) {
679
+ if (config.cancelToken) {
680
+ config.cancelToken.throwIfRequested();
681
+ }
682
+ }
683
+
684
+ /**
685
+ * Dispatch a request to the server using the configured adapter.
686
+ *
687
+ * @param {object} config The config that is to be used for the request
688
+ * @returns {Promise} The Promise to be fulfilled
689
+ */
690
+ module.exports = function dispatchRequest(config) {
691
+ throwIfCancellationRequested(config);
692
+
693
+ // Support baseURL config
694
+ if (config.baseURL && !isAbsoluteURL(config.url)) {
695
+ config.url = combineURLs(config.baseURL, config.url);
696
+ }
697
+
698
+ // Ensure headers exist
699
+ config.headers = config.headers || {};
700
+
701
+ // Transform request data
702
+ config.data = transformData(
703
+ config.data,
704
+ config.headers,
705
+ config.transformRequest
706
+ );
707
+
708
+ // Flatten headers
709
+ config.headers = utils.merge(
710
+ config.headers.common || {},
711
+ config.headers[config.method] || {},
712
+ config.headers || {}
713
+ );
714
+
715
+ utils.forEach(
716
+ ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
717
+ function cleanHeaderConfig(method) {
718
+ delete config.headers[method];
719
+ }
720
+ );
721
+
722
+ var adapter = config.adapter || defaults.adapter;
723
+
724
+ return adapter(config).then(function onAdapterResolution(response) {
725
+ throwIfCancellationRequested(config);
726
+
727
+ // Transform response data
728
+ response.data = transformData(
729
+ response.data,
730
+ response.headers,
731
+ config.transformResponse
732
+ );
733
+
734
+ return response;
735
+ }, function onAdapterRejection(reason) {
736
+ if (!isCancel(reason)) {
737
+ throwIfCancellationRequested(config);
738
+
739
+ // Transform response data
740
+ if (reason && reason.response) {
741
+ reason.response.data = transformData(
742
+ reason.response.data,
743
+ reason.response.headers,
744
+ config.transformResponse
745
+ );
746
+ }
747
+ }
748
+
749
+ return Promise.reject(reason);
750
+ });
751
+ };
752
+
753
+
754
+ /***/ }),
755
+
756
+ /***/ "./node_modules/axios/lib/core/enhanceError.js":
757
+ /*!*****************************************************!*\
758
+ !*** ./node_modules/axios/lib/core/enhanceError.js ***!
759
+ \*****************************************************/
760
+ /*! no static exports found */
761
+ /***/ (function(module, exports, __webpack_require__) {
762
+
763
+ "use strict";
764
+
765
+
766
+ /**
767
+ * Update an Error with the specified config, error code, and response.
768
+ *
769
+ * @param {Error} error The error to update.
770
+ * @param {Object} config The config.
771
+ * @param {string} [code] The error code (for example, 'ECONNABORTED').
772
+ * @param {Object} [request] The request.
773
+ * @param {Object} [response] The response.
774
+ * @returns {Error} The error.
775
+ */
776
+ module.exports = function enhanceError(error, config, code, request, response) {
777
+ error.config = config;
778
+ if (code) {
779
+ error.code = code;
780
+ }
781
+ error.request = request;
782
+ error.response = response;
783
+ return error;
784
+ };
785
+
786
+
787
+ /***/ }),
788
+
789
+ /***/ "./node_modules/axios/lib/core/settle.js":
790
+ /*!***********************************************!*\
791
+ !*** ./node_modules/axios/lib/core/settle.js ***!
792
+ \***********************************************/
793
+ /*! no static exports found */
794
+ /***/ (function(module, exports, __webpack_require__) {
795
+
796
+ "use strict";
797
+
798
+
799
+ var createError = __webpack_require__(/*! ./createError */ "./node_modules/axios/lib/core/createError.js");
800
+
801
+ /**
802
+ * Resolve or reject a Promise based on response status.
803
+ *
804
+ * @param {Function} resolve A function that resolves the promise.
805
+ * @param {Function} reject A function that rejects the promise.
806
+ * @param {object} response The response.
807
+ */
808
+ module.exports = function settle(resolve, reject, response) {
809
+ var validateStatus = response.config.validateStatus;
810
+ // Note: status is not exposed by XDomainRequest
811
+ if (!response.status || !validateStatus || validateStatus(response.status)) {
812
+ resolve(response);
813
+ } else {
814
+ reject(createError(
815
+ 'Request failed with status code ' + response.status,
816
+ response.config,
817
+ null,
818
+ response.request,
819
+ response
820
+ ));
821
+ }
822
+ };
823
+
824
+
825
+ /***/ }),
826
+
827
+ /***/ "./node_modules/axios/lib/core/transformData.js":
828
+ /*!******************************************************!*\
829
+ !*** ./node_modules/axios/lib/core/transformData.js ***!
830
+ \******************************************************/
831
+ /*! no static exports found */
832
+ /***/ (function(module, exports, __webpack_require__) {
833
+
834
+ "use strict";
835
+
836
+
837
+ var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
838
+
839
+ /**
840
+ * Transform the data for a request or a response
841
+ *
842
+ * @param {Object|String} data The data to be transformed
843
+ * @param {Array} headers The headers for the request or response
844
+ * @param {Array|Function} fns A single function or Array of functions
845
+ * @returns {*} The resulting transformed data
846
+ */
847
+ module.exports = function transformData(data, headers, fns) {
848
+ /*eslint no-param-reassign:0*/
849
+ utils.forEach(fns, function transform(fn) {
850
+ data = fn(data, headers);
851
+ });
852
+
853
+ return data;
854
+ };
855
+
856
+
857
+ /***/ }),
858
+
859
+ /***/ "./node_modules/axios/lib/defaults.js":
860
+ /*!********************************************!*\
861
+ !*** ./node_modules/axios/lib/defaults.js ***!
862
+ \********************************************/
863
+ /*! no static exports found */
864
+ /***/ (function(module, exports, __webpack_require__) {
865
+
866
+ "use strict";
867
+ /* WEBPACK VAR INJECTION */(function(process) {
868
+
869
+ var utils = __webpack_require__(/*! ./utils */ "./node_modules/axios/lib/utils.js");
870
+ var normalizeHeaderName = __webpack_require__(/*! ./helpers/normalizeHeaderName */ "./node_modules/axios/lib/helpers/normalizeHeaderName.js");
871
+
872
+ var DEFAULT_CONTENT_TYPE = {
873
+ 'Content-Type': 'application/x-www-form-urlencoded'
874
+ };
875
+
876
+ function setContentTypeIfUnset(headers, value) {
877
+ if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {
878
+ headers['Content-Type'] = value;
879
+ }
880
+ }
881
+
882
+ function getDefaultAdapter() {
883
+ var adapter;
884
+ if (typeof XMLHttpRequest !== 'undefined') {
885
+ // For browsers use XHR adapter
886
+ adapter = __webpack_require__(/*! ./adapters/xhr */ "./node_modules/axios/lib/adapters/xhr.js");
887
+ } else if (typeof process !== 'undefined') {
888
+ // For node use HTTP adapter
889
+ adapter = __webpack_require__(/*! ./adapters/http */ "./node_modules/axios/lib/adapters/xhr.js");
890
+ }
891
+ return adapter;
892
+ }
893
+
894
+ var defaults = {
895
+ adapter: getDefaultAdapter(),
896
+
897
+ transformRequest: [function transformRequest(data, headers) {
898
+ normalizeHeaderName(headers, 'Content-Type');
899
+ if (utils.isFormData(data) ||
900
+ utils.isArrayBuffer(data) ||
901
+ utils.isBuffer(data) ||
902
+ utils.isStream(data) ||
903
+ utils.isFile(data) ||
904
+ utils.isBlob(data)
905
+ ) {
906
+ return data;
907
+ }
908
+ if (utils.isArrayBufferView(data)) {
909
+ return data.buffer;
910
+ }
911
+ if (utils.isURLSearchParams(data)) {
912
+ setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');
913
+ return data.toString();
914
+ }
915
+ if (utils.isObject(data)) {
916
+ setContentTypeIfUnset(headers, 'application/json;charset=utf-8');
917
+ return JSON.stringify(data);
918
+ }
919
+ return data;
920
+ }],
921
+
922
+ transformResponse: [function transformResponse(data) {
923
+ /*eslint no-param-reassign:0*/
924
+ if (typeof data === 'string') {
925
+ try {
926
+ data = JSON.parse(data);
927
+ } catch (e) { /* Ignore */ }
928
+ }
929
+ return data;
930
+ }],
931
+
932
+ /**
933
+ * A timeout in milliseconds to abort a request. If set to 0 (default) a
934
+ * timeout is not created.
935
+ */
936
+ timeout: 0,
937
+
938
+ xsrfCookieName: 'XSRF-TOKEN',
939
+ xsrfHeaderName: 'X-XSRF-TOKEN',
940
+
941
+ maxContentLength: -1,
942
+
943
+ validateStatus: function validateStatus(status) {
944
+ return status >= 200 && status < 300;
945
+ }
946
+ };
947
+
948
+ defaults.headers = {
949
+ common: {
950
+ 'Accept': 'application/json, text/plain, */*'
951
+ }
952
+ };
953
+
954
+ utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {
955
+ defaults.headers[method] = {};
956
+ });
957
+
958
+ utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
959
+ defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);
960
+ });
961
+
962
+ module.exports = defaults;
963
+
964
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js")))
965
+
966
+ /***/ }),
967
+
968
+ /***/ "./node_modules/axios/lib/helpers/bind.js":
969
+ /*!************************************************!*\
970
+ !*** ./node_modules/axios/lib/helpers/bind.js ***!
971
+ \************************************************/
972
+ /*! no static exports found */
973
+ /***/ (function(module, exports, __webpack_require__) {
974
+
975
+ "use strict";
976
+
977
+
978
+ module.exports = function bind(fn, thisArg) {
979
+ return function wrap() {
980
+ var args = new Array(arguments.length);
981
+ for (var i = 0; i < args.length; i++) {
982
+ args[i] = arguments[i];
983
+ }
984
+ return fn.apply(thisArg, args);
985
+ };
986
+ };
987
+
988
+
989
+ /***/ }),
990
+
991
+ /***/ "./node_modules/axios/lib/helpers/btoa.js":
992
+ /*!************************************************!*\
993
+ !*** ./node_modules/axios/lib/helpers/btoa.js ***!
994
+ \************************************************/
995
+ /*! no static exports found */
996
+ /***/ (function(module, exports, __webpack_require__) {
997
+
998
+ "use strict";
999
+
1000
+
1001
+ // btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js
1002
+
1003
+ var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
1004
+
1005
+ function E() {
1006
+ this.message = 'String contains an invalid character';
1007
+ }
1008
+ E.prototype = new Error;
1009
+ E.prototype.code = 5;
1010
+ E.prototype.name = 'InvalidCharacterError';
1011
+
1012
+ function btoa(input) {
1013
+ var str = String(input);
1014
+ var output = '';
1015
+ for (
1016
+ // initialize result and counter
1017
+ var block, charCode, idx = 0, map = chars;
1018
+ // if the next str index does not exist:
1019
+ // change the mapping table to "="
1020
+ // check if d has no fractional digits
1021
+ str.charAt(idx | 0) || (map = '=', idx % 1);
1022
+ // "8 - idx % 1 * 8" generates the sequence 2, 4, 6, 8
1023
+ output += map.charAt(63 & block >> 8 - idx % 1 * 8)
1024
+ ) {
1025
+ charCode = str.charCodeAt(idx += 3 / 4);
1026
+ if (charCode > 0xFF) {
1027
+ throw new E();
1028
+ }
1029
+ block = block << 8 | charCode;
1030
+ }
1031
+ return output;
1032
+ }
1033
+
1034
+ module.exports = btoa;
1035
+
1036
+
1037
+ /***/ }),
1038
+
1039
+ /***/ "./node_modules/axios/lib/helpers/buildURL.js":
1040
+ /*!****************************************************!*\
1041
+ !*** ./node_modules/axios/lib/helpers/buildURL.js ***!
1042
+ \****************************************************/
1043
+ /*! no static exports found */
1044
+ /***/ (function(module, exports, __webpack_require__) {
1045
+
1046
+ "use strict";
1047
+
1048
+
1049
+ var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
1050
+
1051
+ function encode(val) {
1052
+ return encodeURIComponent(val).
1053
+ replace(/%40/gi, '@').
1054
+ replace(/%3A/gi, ':').
1055
+ replace(/%24/g, '$').
1056
+ replace(/%2C/gi, ',').
1057
+ replace(/%20/g, '+').
1058
+ replace(/%5B/gi, '[').
1059
+ replace(/%5D/gi, ']');
1060
+ }
1061
+
1062
+ /**
1063
+ * Build a URL by appending params to the end
1064
+ *
1065
+ * @param {string} url The base of the url (e.g., http://www.google.com)
1066
+ * @param {object} [params] The params to be appended
1067
+ * @returns {string} The formatted url
1068
+ */
1069
+ module.exports = function buildURL(url, params, paramsSerializer) {
1070
+ /*eslint no-param-reassign:0*/
1071
+ if (!params) {
1072
+ return url;
1073
+ }
1074
+
1075
+ var serializedParams;
1076
+ if (paramsSerializer) {
1077
+ serializedParams = paramsSerializer(params);
1078
+ } else if (utils.isURLSearchParams(params)) {
1079
+ serializedParams = params.toString();
1080
+ } else {
1081
+ var parts = [];
1082
+
1083
+ utils.forEach(params, function serialize(val, key) {
1084
+ if (val === null || typeof val === 'undefined') {
1085
+ return;
1086
+ }
1087
+
1088
+ if (utils.isArray(val)) {
1089
+ key = key + '[]';
1090
+ } else {
1091
+ val = [val];
1092
+ }
1093
+
1094
+ utils.forEach(val, function parseValue(v) {
1095
+ if (utils.isDate(v)) {
1096
+ v = v.toISOString();
1097
+ } else if (utils.isObject(v)) {
1098
+ v = JSON.stringify(v);
1099
+ }
1100
+ parts.push(encode(key) + '=' + encode(v));
1101
+ });
1102
+ });
1103
+
1104
+ serializedParams = parts.join('&');
1105
+ }
1106
+
1107
+ if (serializedParams) {
1108
+ url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;
1109
+ }
1110
+
1111
+ return url;
1112
+ };
1113
+
1114
+
1115
+ /***/ }),
1116
+
1117
+ /***/ "./node_modules/axios/lib/helpers/combineURLs.js":
1118
+ /*!*******************************************************!*\
1119
+ !*** ./node_modules/axios/lib/helpers/combineURLs.js ***!
1120
+ \*******************************************************/
1121
+ /*! no static exports found */
1122
+ /***/ (function(module, exports, __webpack_require__) {
1123
+
1124
+ "use strict";
1125
+
1126
+
1127
+ /**
1128
+ * Creates a new URL by combining the specified URLs
1129
+ *
1130
+ * @param {string} baseURL The base URL
1131
+ * @param {string} relativeURL The relative URL
1132
+ * @returns {string} The combined URL
1133
+ */
1134
+ module.exports = function combineURLs(baseURL, relativeURL) {
1135
+ return relativeURL
1136
+ ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '')
1137
+ : baseURL;
1138
+ };
1139
+
1140
+
1141
+ /***/ }),
1142
+
1143
+ /***/ "./node_modules/axios/lib/helpers/cookies.js":
1144
+ /*!***************************************************!*\
1145
+ !*** ./node_modules/axios/lib/helpers/cookies.js ***!
1146
+ \***************************************************/
1147
+ /*! no static exports found */
1148
+ /***/ (function(module, exports, __webpack_require__) {
1149
+
1150
+ "use strict";
1151
+
1152
+
1153
+ var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
1154
+
1155
+ module.exports = (
1156
+ utils.isStandardBrowserEnv() ?
1157
+
1158
+ // Standard browser envs support document.cookie
1159
+ (function standardBrowserEnv() {
1160
+ return {
1161
+ write: function write(name, value, expires, path, domain, secure) {
1162
+ var cookie = [];
1163
+ cookie.push(name + '=' + encodeURIComponent(value));
1164
+
1165
+ if (utils.isNumber(expires)) {
1166
+ cookie.push('expires=' + new Date(expires).toGMTString());
1167
+ }
1168
+
1169
+ if (utils.isString(path)) {
1170
+ cookie.push('path=' + path);
1171
+ }
1172
+
1173
+ if (utils.isString(domain)) {
1174
+ cookie.push('domain=' + domain);
1175
+ }
1176
+
1177
+ if (secure === true) {
1178
+ cookie.push('secure');
1179
+ }
1180
+
1181
+ document.cookie = cookie.join('; ');
1182
+ },
1183
+
1184
+ read: function read(name) {
1185
+ var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
1186
+ return (match ? decodeURIComponent(match[3]) : null);
1187
+ },
1188
+
1189
+ remove: function remove(name) {
1190
+ this.write(name, '', Date.now() - 86400000);
1191
+ }
1192
+ };
1193
+ })() :
1194
+
1195
+ // Non standard browser env (web workers, react-native) lack needed support.
1196
+ (function nonStandardBrowserEnv() {
1197
+ return {
1198
+ write: function write() {},
1199
+ read: function read() { return null; },
1200
+ remove: function remove() {}
1201
+ };
1202
+ })()
1203
+ );
1204
+
1205
+
1206
+ /***/ }),
1207
+
1208
+ /***/ "./node_modules/axios/lib/helpers/isAbsoluteURL.js":
1209
+ /*!*********************************************************!*\
1210
+ !*** ./node_modules/axios/lib/helpers/isAbsoluteURL.js ***!
1211
+ \*********************************************************/
1212
+ /*! no static exports found */
1213
+ /***/ (function(module, exports, __webpack_require__) {
1214
+
1215
+ "use strict";
1216
+
1217
+
1218
+ /**
1219
+ * Determines whether the specified URL is absolute
1220
+ *
1221
+ * @param {string} url The URL to test
1222
+ * @returns {boolean} True if the specified URL is absolute, otherwise false
1223
+ */
1224
+ module.exports = function isAbsoluteURL(url) {
1225
+ // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
1226
+ // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
1227
+ // by any combination of letters, digits, plus, period, or hyphen.
1228
+ return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url);
1229
+ };
1230
+
1231
+
1232
+ /***/ }),
1233
+
1234
+ /***/ "./node_modules/axios/lib/helpers/isURLSameOrigin.js":
1235
+ /*!***********************************************************!*\
1236
+ !*** ./node_modules/axios/lib/helpers/isURLSameOrigin.js ***!
1237
+ \***********************************************************/
1238
+ /*! no static exports found */
1239
+ /***/ (function(module, exports, __webpack_require__) {
1240
+
1241
+ "use strict";
1242
+
1243
+
1244
+ var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
1245
+
1246
+ module.exports = (
1247
+ utils.isStandardBrowserEnv() ?
1248
+
1249
+ // Standard browser envs have full support of the APIs needed to test
1250
+ // whether the request URL is of the same origin as current location.
1251
+ (function standardBrowserEnv() {
1252
+ var msie = /(msie|trident)/i.test(navigator.userAgent);
1253
+ var urlParsingNode = document.createElement('a');
1254
+ var originURL;
1255
+
1256
+ /**
1257
+ * Parse a URL to discover it's components
1258
+ *
1259
+ * @param {String} url The URL to be parsed
1260
+ * @returns {Object}
1261
+ */
1262
+ function resolveURL(url) {
1263
+ var href = url;
1264
+
1265
+ if (msie) {
1266
+ // IE needs attribute set twice to normalize properties
1267
+ urlParsingNode.setAttribute('href', href);
1268
+ href = urlParsingNode.href;
1269
+ }
1270
+
1271
+ urlParsingNode.setAttribute('href', href);
1272
+
1273
+ // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
1274
+ return {
1275
+ href: urlParsingNode.href,
1276
+ protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
1277
+ host: urlParsingNode.host,
1278
+ search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
1279
+ hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
1280
+ hostname: urlParsingNode.hostname,
1281
+ port: urlParsingNode.port,
1282
+ pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
1283
+ urlParsingNode.pathname :
1284
+ '/' + urlParsingNode.pathname
1285
+ };
1286
+ }
1287
+
1288
+ originURL = resolveURL(window.location.href);
1289
+
1290
+ /**
1291
+ * Determine if a URL shares the same origin as the current location
1292
+ *
1293
+ * @param {String} requestURL The URL to test
1294
+ * @returns {boolean} True if URL shares the same origin, otherwise false
1295
+ */
1296
+ return function isURLSameOrigin(requestURL) {
1297
+ var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;
1298
+ return (parsed.protocol === originURL.protocol &&
1299
+ parsed.host === originURL.host);
1300
+ };
1301
+ })() :
1302
+
1303
+ // Non standard browser envs (web workers, react-native) lack needed support.
1304
+ (function nonStandardBrowserEnv() {
1305
+ return function isURLSameOrigin() {
1306
+ return true;
1307
+ };
1308
+ })()
1309
+ );
1310
+
1311
+
1312
+ /***/ }),
1313
+
1314
+ /***/ "./node_modules/axios/lib/helpers/normalizeHeaderName.js":
1315
+ /*!***************************************************************!*\
1316
+ !*** ./node_modules/axios/lib/helpers/normalizeHeaderName.js ***!
1317
+ \***************************************************************/
1318
+ /*! no static exports found */
1319
+ /***/ (function(module, exports, __webpack_require__) {
1320
+
1321
+ "use strict";
1322
+
1323
+
1324
+ var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js");
1325
+
1326
+ module.exports = function normalizeHeaderName(headers, normalizedName) {
1327
+ utils.forEach(headers, function processHeader(value, name) {
1328
+ if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {
1329
+ headers[normalizedName] = value;
1330
+ delete headers[name];
1331
+ }
1332
+ });
1333
+ };
1334
+
1335
+
1336
+ /***/ }),
1337
+
1338
+ /***/ "./node_modules/axios/lib/helpers/parseHeaders.js":
1339
+ /*!********************************************************!*\
1340
+ !*** ./node_modules/axios/lib/helpers/parseHeaders.js ***!
1341
+ \********************************************************/
1342
+ /*! no static exports found */
1343
+ /***/ (function(module, exports, __webpack_require__) {
1344
+
1345
+ "use strict";
1346
+
1347
+
1348
+ var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js");
1349
+
1350
+ // Headers whose duplicates are ignored by node
1351
+ // c.f. https://nodejs.org/api/http.html#http_message_headers
1352
+ var ignoreDuplicateOf = [
1353
+ 'age', 'authorization', 'content-length', 'content-type', 'etag',
1354
+ 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',
1355
+ 'last-modified', 'location', 'max-forwards', 'proxy-authorization',
1356
+ 'referer', 'retry-after', 'user-agent'
1357
+ ];
1358
+
1359
+ /**
1360
+ * Parse headers into an object
1361
+ *
1362
+ * ```
1363
+ * Date: Wed, 27 Aug 2014 08:58:49 GMT
1364
+ * Content-Type: application/json
1365
+ * Connection: keep-alive
1366
+ * Transfer-Encoding: chunked
1367
+ * ```
1368
+ *
1369
+ * @param {String} headers Headers needing to be parsed
1370
+ * @returns {Object} Headers parsed into an object
1371
+ */
1372
+ module.exports = function parseHeaders(headers) {
1373
+ var parsed = {};
1374
+ var key;
1375
+ var val;
1376
+ var i;
1377
+
1378
+ if (!headers) { return parsed; }
1379
+
1380
+ utils.forEach(headers.split('\n'), function parser(line) {
1381
+ i = line.indexOf(':');
1382
+ key = utils.trim(line.substr(0, i)).toLowerCase();
1383
+ val = utils.trim(line.substr(i + 1));
1384
+
1385
+ if (key) {
1386
+ if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {
1387
+ return;
1388
+ }
1389
+ if (key === 'set-cookie') {
1390
+ parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);
1391
+ } else {
1392
+ parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
1393
+ }
1394
+ }
1395
+ });
1396
+
1397
+ return parsed;
1398
+ };
1399
+
1400
+
1401
+ /***/ }),
1402
+
1403
+ /***/ "./node_modules/axios/lib/helpers/spread.js":
1404
+ /*!**************************************************!*\
1405
+ !*** ./node_modules/axios/lib/helpers/spread.js ***!
1406
+ \**************************************************/
1407
+ /*! no static exports found */
1408
+ /***/ (function(module, exports, __webpack_require__) {
1409
+
1410
+ "use strict";
1411
+
1412
+
1413
+ /**
1414
+ * Syntactic sugar for invoking a function and expanding an array for arguments.
1415
+ *
1416
+ * Common use case would be to use `Function.prototype.apply`.
1417
+ *
1418
+ * ```js
1419
+ * function f(x, y, z) {}
1420
+ * var args = [1, 2, 3];
1421
+ * f.apply(null, args);
1422
+ * ```
1423
+ *
1424
+ * With `spread` this example can be re-written.
1425
+ *
1426
+ * ```js
1427
+ * spread(function(x, y, z) {})([1, 2, 3]);
1428
+ * ```
1429
+ *
1430
+ * @param {Function} callback
1431
+ * @returns {Function}
1432
+ */
1433
+ module.exports = function spread(callback) {
1434
+ return function wrap(arr) {
1435
+ return callback.apply(null, arr);
1436
+ };
1437
+ };
1438
+
1439
+
1440
+ /***/ }),
1441
+
1442
+ /***/ "./node_modules/axios/lib/utils.js":
1443
+ /*!*****************************************!*\
1444
+ !*** ./node_modules/axios/lib/utils.js ***!
1445
+ \*****************************************/
1446
+ /*! no static exports found */
1447
+ /***/ (function(module, exports, __webpack_require__) {
1448
+
1449
+ "use strict";
1450
+
1451
+
1452
+ var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/axios/lib/helpers/bind.js");
1453
+ var isBuffer = __webpack_require__(/*! is-buffer */ "./node_modules/is-buffer/index.js");
1454
+
1455
+ /*global toString:true*/
1456
+
1457
+ // utils is a library of generic helper functions non-specific to axios
1458
+
1459
+ var toString = Object.prototype.toString;
1460
+
1461
+ /**
1462
+ * Determine if a value is an Array
1463
+ *
1464
+ * @param {Object} val The value to test
1465
+ * @returns {boolean} True if value is an Array, otherwise false
1466
+ */
1467
+ function isArray(val) {
1468
+ return toString.call(val) === '[object Array]';
1469
+ }
1470
+
1471
+ /**
1472
+ * Determine if a value is an ArrayBuffer
1473
+ *
1474
+ * @param {Object} val The value to test
1475
+ * @returns {boolean} True if value is an ArrayBuffer, otherwise false
1476
+ */
1477
+ function isArrayBuffer(val) {
1478
+ return toString.call(val) === '[object ArrayBuffer]';
1479
+ }
1480
+
1481
+ /**
1482
+ * Determine if a value is a FormData
1483
+ *
1484
+ * @param {Object} val The value to test
1485
+ * @returns {boolean} True if value is an FormData, otherwise false
1486
+ */
1487
+ function isFormData(val) {
1488
+ return (typeof FormData !== 'undefined') && (val instanceof FormData);
1489
+ }
1490
+
1491
+ /**
1492
+ * Determine if a value is a view on an ArrayBuffer
1493
+ *
1494
+ * @param {Object} val The value to test
1495
+ * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
1496
+ */
1497
+ function isArrayBufferView(val) {
1498
+ var result;
1499
+ if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
1500
+ result = ArrayBuffer.isView(val);
1501
+ } else {
1502
+ result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);
1503
+ }
1504
+ return result;
1505
+ }
1506
+
1507
+ /**
1508
+ * Determine if a value is a String
1509
+ *
1510
+ * @param {Object} val The value to test
1511
+ * @returns {boolean} True if value is a String, otherwise false
1512
+ */
1513
+ function isString(val) {
1514
+ return typeof val === 'string';
1515
+ }
1516
+
1517
+ /**
1518
+ * Determine if a value is a Number
1519
+ *
1520
+ * @param {Object} val The value to test
1521
+ * @returns {boolean} True if value is a Number, otherwise false
1522
+ */
1523
+ function isNumber(val) {
1524
+ return typeof val === 'number';
1525
+ }
1526
+
1527
+ /**
1528
+ * Determine if a value is undefined
1529
+ *
1530
+ * @param {Object} val The value to test
1531
+ * @returns {boolean} True if the value is undefined, otherwise false
1532
+ */
1533
+ function isUndefined(val) {
1534
+ return typeof val === 'undefined';
1535
+ }
1536
+
1537
+ /**
1538
+ * Determine if a value is an Object
1539
+ *
1540
+ * @param {Object} val The value to test
1541
+ * @returns {boolean} True if value is an Object, otherwise false
1542
+ */
1543
+ function isObject(val) {
1544
+ return val !== null && typeof val === 'object';
1545
+ }
1546
+
1547
+ /**
1548
+ * Determine if a value is a Date
1549
+ *
1550
+ * @param {Object} val The value to test
1551
+ * @returns {boolean} True if value is a Date, otherwise false
1552
+ */
1553
+ function isDate(val) {
1554
+ return toString.call(val) === '[object Date]';
1555
+ }
1556
+
1557
+ /**
1558
+ * Determine if a value is a File
1559
+ *
1560
+ * @param {Object} val The value to test
1561
+ * @returns {boolean} True if value is a File, otherwise false
1562
+ */
1563
+ function isFile(val) {
1564
+ return toString.call(val) === '[object File]';
1565
+ }
1566
+
1567
+ /**
1568
+ * Determine if a value is a Blob
1569
+ *
1570
+ * @param {Object} val The value to test
1571
+ * @returns {boolean} True if value is a Blob, otherwise false
1572
+ */
1573
+ function isBlob(val) {
1574
+ return toString.call(val) === '[object Blob]';
1575
+ }
1576
+
1577
+ /**
1578
+ * Determine if a value is a Function
1579
+ *
1580
+ * @param {Object} val The value to test
1581
+ * @returns {boolean} True if value is a Function, otherwise false
1582
+ */
1583
+ function isFunction(val) {
1584
+ return toString.call(val) === '[object Function]';
1585
+ }
1586
+
1587
+ /**
1588
+ * Determine if a value is a Stream
1589
+ *
1590
+ * @param {Object} val The value to test
1591
+ * @returns {boolean} True if value is a Stream, otherwise false
1592
+ */
1593
+ function isStream(val) {
1594
+ return isObject(val) && isFunction(val.pipe);
1595
+ }
1596
+
1597
+ /**
1598
+ * Determine if a value is a URLSearchParams object
1599
+ *
1600
+ * @param {Object} val The value to test
1601
+ * @returns {boolean} True if value is a URLSearchParams object, otherwise false
1602
+ */
1603
+ function isURLSearchParams(val) {
1604
+ return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;
1605
+ }
1606
+
1607
+ /**
1608
+ * Trim excess whitespace off the beginning and end of a string
1609
+ *
1610
+ * @param {String} str The String to trim
1611
+ * @returns {String} The String freed of excess whitespace
1612
+ */
1613
+ function trim(str) {
1614
+ return str.replace(/^\s*/, '').replace(/\s*$/, '');
1615
+ }
1616
+
1617
+ /**
1618
+ * Determine if we're running in a standard browser environment
1619
+ *
1620
+ * This allows axios to run in a web worker, and react-native.
1621
+ * Both environments support XMLHttpRequest, but not fully standard globals.
1622
+ *
1623
+ * web workers:
1624
+ * typeof window -> undefined
1625
+ * typeof document -> undefined
1626
+ *
1627
+ * react-native:
1628
+ * navigator.product -> 'ReactNative'
1629
+ */
1630
+ function isStandardBrowserEnv() {
1631
+ if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {
1632
+ return false;
1633
+ }
1634
+ return (
1635
+ typeof window !== 'undefined' &&
1636
+ typeof document !== 'undefined'
1637
+ );
1638
+ }
1639
+
1640
+ /**
1641
+ * Iterate over an Array or an Object invoking a function for each item.
1642
+ *
1643
+ * If `obj` is an Array callback will be called passing
1644
+ * the value, index, and complete array for each item.
1645
+ *
1646
+ * If 'obj' is an Object callback will be called passing
1647
+ * the value, key, and complete object for each property.
1648
+ *
1649
+ * @param {Object|Array} obj The object to iterate
1650
+ * @param {Function} fn The callback to invoke for each item
1651
+ */
1652
+ function forEach(obj, fn) {
1653
+ // Don't bother if no value provided
1654
+ if (obj === null || typeof obj === 'undefined') {
1655
+ return;
1656
+ }
1657
+
1658
+ // Force an array if not already something iterable
1659
+ if (typeof obj !== 'object') {
1660
+ /*eslint no-param-reassign:0*/
1661
+ obj = [obj];
1662
+ }
1663
+
1664
+ if (isArray(obj)) {
1665
+ // Iterate over array values
1666
+ for (var i = 0, l = obj.length; i < l; i++) {
1667
+ fn.call(null, obj[i], i, obj);
1668
+ }
1669
+ } else {
1670
+ // Iterate over object keys
1671
+ for (var key in obj) {
1672
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
1673
+ fn.call(null, obj[key], key, obj);
1674
+ }
1675
+ }
1676
+ }
1677
+ }
1678
+
1679
+ /**
1680
+ * Accepts varargs expecting each argument to be an object, then
1681
+ * immutably merges the properties of each object and returns result.
1682
+ *
1683
+ * When multiple objects contain the same key the later object in
1684
+ * the arguments list will take precedence.
1685
+ *
1686
+ * Example:
1687
+ *
1688
+ * ```js
1689
+ * var result = merge({foo: 123}, {foo: 456});
1690
+ * console.log(result.foo); // outputs 456
1691
+ * ```
1692
+ *
1693
+ * @param {Object} obj1 Object to merge
1694
+ * @returns {Object} Result of all merge properties
1695
+ */
1696
+ function merge(/* obj1, obj2, obj3, ... */) {
1697
+ var result = {};
1698
+ function assignValue(val, key) {
1699
+ if (typeof result[key] === 'object' && typeof val === 'object') {
1700
+ result[key] = merge(result[key], val);
1701
+ } else {
1702
+ result[key] = val;
1703
+ }
1704
+ }
1705
+
1706
+ for (var i = 0, l = arguments.length; i < l; i++) {
1707
+ forEach(arguments[i], assignValue);
1708
+ }
1709
+ return result;
1710
+ }
1711
+
1712
+ /**
1713
+ * Extends object a by mutably adding to it the properties of object b.
1714
+ *
1715
+ * @param {Object} a The object to be extended
1716
+ * @param {Object} b The object to copy properties from
1717
+ * @param {Object} thisArg The object to bind function to
1718
+ * @return {Object} The resulting value of object a
1719
+ */
1720
+ function extend(a, b, thisArg) {
1721
+ forEach(b, function assignValue(val, key) {
1722
+ if (thisArg && typeof val === 'function') {
1723
+ a[key] = bind(val, thisArg);
1724
+ } else {
1725
+ a[key] = val;
1726
+ }
1727
+ });
1728
+ return a;
1729
+ }
1730
+
1731
+ module.exports = {
1732
+ isArray: isArray,
1733
+ isArrayBuffer: isArrayBuffer,
1734
+ isBuffer: isBuffer,
1735
+ isFormData: isFormData,
1736
+ isArrayBufferView: isArrayBufferView,
1737
+ isString: isString,
1738
+ isNumber: isNumber,
1739
+ isObject: isObject,
1740
+ isUndefined: isUndefined,
1741
+ isDate: isDate,
1742
+ isFile: isFile,
1743
+ isBlob: isBlob,
1744
+ isFunction: isFunction,
1745
+ isStream: isStream,
1746
+ isURLSearchParams: isURLSearchParams,
1747
+ isStandardBrowserEnv: isStandardBrowserEnv,
1748
+ forEach: forEach,
1749
+ merge: merge,
1750
+ extend: extend,
1751
+ trim: trim
1752
+ };
1753
+
1754
+
1755
+ /***/ }),
1756
+
1757
+ /***/ "./node_modules/create-react-class/factory.js":
1758
+ /*!****************************************************!*\
1759
+ !*** ./node_modules/create-react-class/factory.js ***!
1760
+ \****************************************************/
1761
+ /*! no static exports found */
1762
+ /***/ (function(module, exports, __webpack_require__) {
1763
+
1764
+ "use strict";
1765
+ /**
1766
+ * Copyright (c) 2013-present, Facebook, Inc.
1767
+ *
1768
+ * This source code is licensed under the MIT license found in the
1769
+ * LICENSE file in the root directory of this source tree.
1770
+ *
1771
+ */
1772
+
1773
+
1774
+
1775
+ var _assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
1776
+
1777
+ var emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ "./node_modules/fbjs/lib/emptyObject.js");
1778
+ var _invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js");
1779
+
1780
+ if (true) {
1781
+ var warning = __webpack_require__(/*! fbjs/lib/warning */ "./node_modules/fbjs/lib/warning.js");
1782
+ }
1783
+
1784
+ var MIXINS_KEY = 'mixins';
1785
+
1786
+ // Helper function to allow the creation of anonymous functions which do not
1787
+ // have .name set to the name of the variable being assigned to.
1788
+ function identity(fn) {
1789
+ return fn;
1790
+ }
1791
+
1792
+ var ReactPropTypeLocationNames;
1793
+ if (true) {
1794
+ ReactPropTypeLocationNames = {
1795
+ prop: 'prop',
1796
+ context: 'context',
1797
+ childContext: 'child context'
1798
+ };
1799
+ } else {}
1800
+
1801
+ function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {
1802
+ /**
1803
+ * Policies that describe methods in `ReactClassInterface`.
1804
+ */
1805
+
1806
+ var injectedMixins = [];
1807
+
1808
+ /**
1809
+ * Composite components are higher-level components that compose other composite
1810
+ * or host components.
1811
+ *
1812
+ * To create a new type of `ReactClass`, pass a specification of
1813
+ * your new class to `React.createClass`. The only requirement of your class
1814
+ * specification is that you implement a `render` method.
1815
+ *
1816
+ * var MyComponent = React.createClass({
1817
+ * render: function() {
1818
+ * return <div>Hello World</div>;
1819
+ * }
1820
+ * });
1821
+ *
1822
+ * The class specification supports a specific protocol of methods that have
1823
+ * special meaning (e.g. `render`). See `ReactClassInterface` for
1824
+ * more the comprehensive protocol. Any other properties and methods in the
1825
+ * class specification will be available on the prototype.
1826
+ *
1827
+ * @interface ReactClassInterface
1828
+ * @internal
1829
+ */
1830
+ var ReactClassInterface = {
1831
+ /**
1832
+ * An array of Mixin objects to include when defining your component.
1833
+ *
1834
+ * @type {array}
1835
+ * @optional
1836
+ */
1837
+ mixins: 'DEFINE_MANY',
1838
+
1839
+ /**
1840
+ * An object containing properties and methods that should be defined on
1841
+ * the component's constructor instead of its prototype (static methods).
1842
+ *
1843
+ * @type {object}
1844
+ * @optional
1845
+ */
1846
+ statics: 'DEFINE_MANY',
1847
+
1848
+ /**
1849
+ * Definition of prop types for this component.
1850
+ *
1851
+ * @type {object}
1852
+ * @optional
1853
+ */
1854
+ propTypes: 'DEFINE_MANY',
1855
+
1856
+ /**
1857
+ * Definition of context types for this component.
1858
+ *
1859
+ * @type {object}
1860
+ * @optional
1861
+ */
1862
+ contextTypes: 'DEFINE_MANY',
1863
+
1864
+ /**
1865
+ * Definition of context types this component sets for its children.
1866
+ *
1867
+ * @type {object}
1868
+ * @optional
1869
+ */
1870
+ childContextTypes: 'DEFINE_MANY',
1871
+
1872
+ // ==== Definition methods ====
1873
+
1874
+ /**
1875
+ * Invoked when the component is mounted. Values in the mapping will be set on
1876
+ * `this.props` if that prop is not specified (i.e. using an `in` check).
1877
+ *
1878
+ * This method is invoked before `getInitialState` and therefore cannot rely
1879
+ * on `this.state` or use `this.setState`.
1880
+ *
1881
+ * @return {object}
1882
+ * @optional
1883
+ */
1884
+ getDefaultProps: 'DEFINE_MANY_MERGED',
1885
+
1886
+ /**
1887
+ * Invoked once before the component is mounted. The return value will be used
1888
+ * as the initial value of `this.state`.
1889
+ *
1890
+ * getInitialState: function() {
1891
+ * return {
1892
+ * isOn: false,
1893
+ * fooBaz: new BazFoo()
1894
+ * }
1895
+ * }
1896
+ *
1897
+ * @return {object}
1898
+ * @optional
1899
+ */
1900
+ getInitialState: 'DEFINE_MANY_MERGED',
1901
+
1902
+ /**
1903
+ * @return {object}
1904
+ * @optional
1905
+ */
1906
+ getChildContext: 'DEFINE_MANY_MERGED',
1907
+
1908
+ /**
1909
+ * Uses props from `this.props` and state from `this.state` to render the
1910
+ * structure of the component.
1911
+ *
1912
+ * No guarantees are made about when or how often this method is invoked, so
1913
+ * it must not have side effects.
1914
+ *
1915
+ * render: function() {
1916
+ * var name = this.props.name;
1917
+ * return <div>Hello, {name}!</div>;
1918
+ * }
1919
+ *
1920
+ * @return {ReactComponent}
1921
+ * @required
1922
+ */
1923
+ render: 'DEFINE_ONCE',
1924
+
1925
+ // ==== Delegate methods ====
1926
+
1927
+ /**
1928
+ * Invoked when the component is initially created and about to be mounted.
1929
+ * This may have side effects, but any external subscriptions or data created
1930
+ * by this method must be cleaned up in `componentWillUnmount`.
1931
+ *
1932
+ * @optional
1933
+ */
1934
+ componentWillMount: 'DEFINE_MANY',
1935
+
1936
+ /**
1937
+ * Invoked when the component has been mounted and has a DOM representation.
1938
+ * However, there is no guarantee that the DOM node is in the document.
1939
+ *
1940
+ * Use this as an opportunity to operate on the DOM when the component has
1941
+ * been mounted (initialized and rendered) for the first time.
1942
+ *
1943
+ * @param {DOMElement} rootNode DOM element representing the component.
1944
+ * @optional
1945
+ */
1946
+ componentDidMount: 'DEFINE_MANY',
1947
+
1948
+ /**
1949
+ * Invoked before the component receives new props.
1950
+ *
1951
+ * Use this as an opportunity to react to a prop transition by updating the
1952
+ * state using `this.setState`. Current props are accessed via `this.props`.
1953
+ *
1954
+ * componentWillReceiveProps: function(nextProps, nextContext) {
1955
+ * this.setState({
1956
+ * likesIncreasing: nextProps.likeCount > this.props.likeCount
1957
+ * });
1958
+ * }
1959
+ *
1960
+ * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop
1961
+ * transition may cause a state change, but the opposite is not true. If you
1962
+ * need it, you are probably looking for `componentWillUpdate`.
1963
+ *
1964
+ * @param {object} nextProps
1965
+ * @optional
1966
+ */
1967
+ componentWillReceiveProps: 'DEFINE_MANY',
1968
+
1969
+ /**
1970
+ * Invoked while deciding if the component should be updated as a result of
1971
+ * receiving new props, state and/or context.
1972
+ *
1973
+ * Use this as an opportunity to `return false` when you're certain that the
1974
+ * transition to the new props/state/context will not require a component
1975
+ * update.
1976
+ *
1977
+ * shouldComponentUpdate: function(nextProps, nextState, nextContext) {
1978
+ * return !equal(nextProps, this.props) ||
1979
+ * !equal(nextState, this.state) ||
1980
+ * !equal(nextContext, this.context);
1981
+ * }
1982
+ *
1983
+ * @param {object} nextProps
1984
+ * @param {?object} nextState
1985
+ * @param {?object} nextContext
1986
+ * @return {boolean} True if the component should update.
1987
+ * @optional
1988
+ */
1989
+ shouldComponentUpdate: 'DEFINE_ONCE',
1990
+
1991
+ /**
1992
+ * Invoked when the component is about to update due to a transition from
1993
+ * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`
1994
+ * and `nextContext`.
1995
+ *
1996
+ * Use this as an opportunity to perform preparation before an update occurs.
1997
+ *
1998
+ * NOTE: You **cannot** use `this.setState()` in this method.
1999
+ *
2000
+ * @param {object} nextProps
2001
+ * @param {?object} nextState
2002
+ * @param {?object} nextContext
2003
+ * @param {ReactReconcileTransaction} transaction
2004
+ * @optional
2005
+ */
2006
+ componentWillUpdate: 'DEFINE_MANY',
2007
+
2008
+ /**
2009
+ * Invoked when the component's DOM representation has been updated.
2010
+ *
2011
+ * Use this as an opportunity to operate on the DOM when the component has
2012
+ * been updated.
2013
+ *
2014
+ * @param {object} prevProps
2015
+ * @param {?object} prevState
2016
+ * @param {?object} prevContext
2017
+ * @param {DOMElement} rootNode DOM element representing the component.
2018
+ * @optional
2019
+ */
2020
+ componentDidUpdate: 'DEFINE_MANY',
2021
+
2022
+ /**
2023
+ * Invoked when the component is about to be removed from its parent and have
2024
+ * its DOM representation destroyed.
2025
+ *
2026
+ * Use this as an opportunity to deallocate any external resources.
2027
+ *
2028
+ * NOTE: There is no `componentDidUnmount` since your component will have been
2029
+ * destroyed by that point.
2030
+ *
2031
+ * @optional
2032
+ */
2033
+ componentWillUnmount: 'DEFINE_MANY',
2034
+
2035
+ // ==== Advanced methods ====
2036
+
2037
+ /**
2038
+ * Updates the component's currently mounted DOM representation.
2039
+ *
2040
+ * By default, this implements React's rendering and reconciliation algorithm.
2041
+ * Sophisticated clients may wish to override this.
2042
+ *
2043
+ * @param {ReactReconcileTransaction} transaction
2044
+ * @internal
2045
+ * @overridable
2046
+ */
2047
+ updateComponent: 'OVERRIDE_BASE'
2048
+ };
2049
+
2050
+ /**
2051
+ * Mapping from class specification keys to special processing functions.
2052
+ *
2053
+ * Although these are declared like instance properties in the specification
2054
+ * when defining classes using `React.createClass`, they are actually static
2055
+ * and are accessible on the constructor instead of the prototype. Despite
2056
+ * being static, they must be defined outside of the "statics" key under
2057
+ * which all other static methods are defined.
2058
+ */
2059
+ var RESERVED_SPEC_KEYS = {
2060
+ displayName: function(Constructor, displayName) {
2061
+ Constructor.displayName = displayName;
2062
+ },
2063
+ mixins: function(Constructor, mixins) {
2064
+ if (mixins) {
2065
+ for (var i = 0; i < mixins.length; i++) {
2066
+ mixSpecIntoComponent(Constructor, mixins[i]);
2067
+ }
2068
+ }
2069
+ },
2070
+ childContextTypes: function(Constructor, childContextTypes) {
2071
+ if (true) {
2072
+ validateTypeDef(Constructor, childContextTypes, 'childContext');
2073
+ }
2074
+ Constructor.childContextTypes = _assign(
2075
+ {},
2076
+ Constructor.childContextTypes,
2077
+ childContextTypes
2078
+ );
2079
+ },
2080
+ contextTypes: function(Constructor, contextTypes) {
2081
+ if (true) {
2082
+ validateTypeDef(Constructor, contextTypes, 'context');
2083
+ }
2084
+ Constructor.contextTypes = _assign(
2085
+ {},
2086
+ Constructor.contextTypes,
2087
+ contextTypes
2088
+ );
2089
+ },
2090
+ /**
2091
+ * Special case getDefaultProps which should move into statics but requires
2092
+ * automatic merging.
2093
+ */
2094
+ getDefaultProps: function(Constructor, getDefaultProps) {
2095
+ if (Constructor.getDefaultProps) {
2096
+ Constructor.getDefaultProps = createMergedResultFunction(
2097
+ Constructor.getDefaultProps,
2098
+ getDefaultProps
2099
+ );
2100
+ } else {
2101
+ Constructor.getDefaultProps = getDefaultProps;
2102
+ }
2103
+ },
2104
+ propTypes: function(Constructor, propTypes) {
2105
+ if (true) {
2106
+ validateTypeDef(Constructor, propTypes, 'prop');
2107
+ }
2108
+ Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);
2109
+ },
2110
+ statics: function(Constructor, statics) {
2111
+ mixStaticSpecIntoComponent(Constructor, statics);
2112
+ },
2113
+ autobind: function() {}
2114
+ };
2115
+
2116
+ function validateTypeDef(Constructor, typeDef, location) {
2117
+ for (var propName in typeDef) {
2118
+ if (typeDef.hasOwnProperty(propName)) {
2119
+ // use a warning instead of an _invariant so components
2120
+ // don't show up in prod but only in __DEV__
2121
+ if (true) {
2122
+ warning(
2123
+ typeof typeDef[propName] === 'function',
2124
+ '%s: %s type `%s` is invalid; it must be a function, usually from ' +
2125
+ 'React.PropTypes.',
2126
+ Constructor.displayName || 'ReactClass',
2127
+ ReactPropTypeLocationNames[location],
2128
+ propName
2129
+ );
2130
+ }
2131
+ }
2132
+ }
2133
+ }
2134
+
2135
+ function validateMethodOverride(isAlreadyDefined, name) {
2136
+ var specPolicy = ReactClassInterface.hasOwnProperty(name)
2137
+ ? ReactClassInterface[name]
2138
+ : null;
2139
+
2140
+ // Disallow overriding of base class methods unless explicitly allowed.
2141
+ if (ReactClassMixin.hasOwnProperty(name)) {
2142
+ _invariant(
2143
+ specPolicy === 'OVERRIDE_BASE',
2144
+ 'ReactClassInterface: You are attempting to override ' +
2145
+ '`%s` from your class specification. Ensure that your method names ' +
2146
+ 'do not overlap with React methods.',
2147
+ name
2148
+ );
2149
+ }
2150
+
2151
+ // Disallow defining methods more than once unless explicitly allowed.
2152
+ if (isAlreadyDefined) {
2153
+ _invariant(
2154
+ specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',
2155
+ 'ReactClassInterface: You are attempting to define ' +
2156
+ '`%s` on your component more than once. This conflict may be due ' +
2157
+ 'to a mixin.',
2158
+ name
2159
+ );
2160
+ }
2161
+ }
2162
+
2163
+ /**
2164
+ * Mixin helper which handles policy validation and reserved
2165
+ * specification keys when building React classes.
2166
+ */
2167
+ function mixSpecIntoComponent(Constructor, spec) {
2168
+ if (!spec) {
2169
+ if (true) {
2170
+ var typeofSpec = typeof spec;
2171
+ var isMixinValid = typeofSpec === 'object' && spec !== null;
2172
+
2173
+ if (true) {
2174
+ warning(
2175
+ isMixinValid,
2176
+ "%s: You're attempting to include a mixin that is either null " +
2177
+ 'or not an object. Check the mixins included by the component, ' +
2178
+ 'as well as any mixins they include themselves. ' +
2179
+ 'Expected object but got %s.',
2180
+ Constructor.displayName || 'ReactClass',
2181
+ spec === null ? null : typeofSpec
2182
+ );
2183
+ }
2184
+ }
2185
+
2186
+ return;
2187
+ }
2188
+
2189
+ _invariant(
2190
+ typeof spec !== 'function',
2191
+ "ReactClass: You're attempting to " +
2192
+ 'use a component class or function as a mixin. Instead, just use a ' +
2193
+ 'regular object.'
2194
+ );
2195
+ _invariant(
2196
+ !isValidElement(spec),
2197
+ "ReactClass: You're attempting to " +
2198
+ 'use a component as a mixin. Instead, just use a regular object.'
2199
+ );
2200
+
2201
+ var proto = Constructor.prototype;
2202
+ var autoBindPairs = proto.__reactAutoBindPairs;
2203
+
2204
+ // By handling mixins before any other properties, we ensure the same
2205
+ // chaining order is applied to methods with DEFINE_MANY policy, whether
2206
+ // mixins are listed before or after these methods in the spec.
2207
+ if (spec.hasOwnProperty(MIXINS_KEY)) {
2208
+ RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);
2209
+ }
2210
+
2211
+ for (var name in spec) {
2212
+ if (!spec.hasOwnProperty(name)) {
2213
+ continue;
2214
+ }
2215
+
2216
+ if (name === MIXINS_KEY) {
2217
+ // We have already handled mixins in a special case above.
2218
+ continue;
2219
+ }
2220
+
2221
+ var property = spec[name];
2222
+ var isAlreadyDefined = proto.hasOwnProperty(name);
2223
+ validateMethodOverride(isAlreadyDefined, name);
2224
+
2225
+ if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {
2226
+ RESERVED_SPEC_KEYS[name](Constructor, property);
2227
+ } else {
2228
+ // Setup methods on prototype:
2229
+ // The following member methods should not be automatically bound:
2230
+ // 1. Expected ReactClass methods (in the "interface").
2231
+ // 2. Overridden methods (that were mixed in).
2232
+ var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);
2233
+ var isFunction = typeof property === 'function';
2234
+ var shouldAutoBind =
2235
+ isFunction &&
2236
+ !isReactClassMethod &&
2237
+ !isAlreadyDefined &&
2238
+ spec.autobind !== false;
2239
+
2240
+ if (shouldAutoBind) {
2241
+ autoBindPairs.push(name, property);
2242
+ proto[name] = property;
2243
+ } else {
2244
+ if (isAlreadyDefined) {
2245
+ var specPolicy = ReactClassInterface[name];
2246
+
2247
+ // These cases should already be caught by validateMethodOverride.
2248
+ _invariant(
2249
+ isReactClassMethod &&
2250
+ (specPolicy === 'DEFINE_MANY_MERGED' ||
2251
+ specPolicy === 'DEFINE_MANY'),
2252
+ 'ReactClass: Unexpected spec policy %s for key %s ' +
2253
+ 'when mixing in component specs.',
2254
+ specPolicy,
2255
+ name
2256
+ );
2257
+
2258
+ // For methods which are defined more than once, call the existing
2259
+ // methods before calling the new property, merging if appropriate.
2260
+ if (specPolicy === 'DEFINE_MANY_MERGED') {
2261
+ proto[name] = createMergedResultFunction(proto[name], property);
2262
+ } else if (specPolicy === 'DEFINE_MANY') {
2263
+ proto[name] = createChainedFunction(proto[name], property);
2264
+ }
2265
+ } else {
2266
+ proto[name] = property;
2267
+ if (true) {
2268
+ // Add verbose displayName to the function, which helps when looking
2269
+ // at profiling tools.
2270
+ if (typeof property === 'function' && spec.displayName) {
2271
+ proto[name].displayName = spec.displayName + '_' + name;
2272
+ }
2273
+ }
2274
+ }
2275
+ }
2276
+ }
2277
+ }
2278
+ }
2279
+
2280
+ function mixStaticSpecIntoComponent(Constructor, statics) {
2281
+ if (!statics) {
2282
+ return;
2283
+ }
2284
+ for (var name in statics) {
2285
+ var property = statics[name];
2286
+ if (!statics.hasOwnProperty(name)) {
2287
+ continue;
2288
+ }
2289
+
2290
+ var isReserved = name in RESERVED_SPEC_KEYS;
2291
+ _invariant(
2292
+ !isReserved,
2293
+ 'ReactClass: You are attempting to define a reserved ' +
2294
+ 'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' +
2295
+ 'as an instance property instead; it will still be accessible on the ' +
2296
+ 'constructor.',
2297
+ name
2298
+ );
2299
+
2300
+ var isInherited = name in Constructor;
2301
+ _invariant(
2302
+ !isInherited,
2303
+ 'ReactClass: You are attempting to define ' +
2304
+ '`%s` on your component more than once. This conflict may be ' +
2305
+ 'due to a mixin.',
2306
+ name
2307
+ );
2308
+ Constructor[name] = property;
2309
+ }
2310
+ }
2311
+
2312
+ /**
2313
+ * Merge two objects, but throw if both contain the same key.
2314
+ *
2315
+ * @param {object} one The first object, which is mutated.
2316
+ * @param {object} two The second object
2317
+ * @return {object} one after it has been mutated to contain everything in two.
2318
+ */
2319
+ function mergeIntoWithNoDuplicateKeys(one, two) {
2320
+ _invariant(
2321
+ one && two && typeof one === 'object' && typeof two === 'object',
2322
+ 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'
2323
+ );
2324
+
2325
+ for (var key in two) {
2326
+ if (two.hasOwnProperty(key)) {
2327
+ _invariant(
2328
+ one[key] === undefined,
2329
+ 'mergeIntoWithNoDuplicateKeys(): ' +
2330
+ 'Tried to merge two objects with the same key: `%s`. This conflict ' +
2331
+ 'may be due to a mixin; in particular, this may be caused by two ' +
2332
+ 'getInitialState() or getDefaultProps() methods returning objects ' +
2333
+ 'with clashing keys.',
2334
+ key
2335
+ );
2336
+ one[key] = two[key];
2337
+ }
2338
+ }
2339
+ return one;
2340
+ }
2341
+
2342
+ /**
2343
+ * Creates a function that invokes two functions and merges their return values.
2344
+ *
2345
+ * @param {function} one Function to invoke first.
2346
+ * @param {function} two Function to invoke second.
2347
+ * @return {function} Function that invokes the two argument functions.
2348
+ * @private
2349
+ */
2350
+ function createMergedResultFunction(one, two) {
2351
+ return function mergedResult() {
2352
+ var a = one.apply(this, arguments);
2353
+ var b = two.apply(this, arguments);
2354
+ if (a == null) {
2355
+ return b;
2356
+ } else if (b == null) {
2357
+ return a;
2358
+ }
2359
+ var c = {};
2360
+ mergeIntoWithNoDuplicateKeys(c, a);
2361
+ mergeIntoWithNoDuplicateKeys(c, b);
2362
+ return c;
2363
+ };
2364
+ }
2365
+
2366
+ /**
2367
+ * Creates a function that invokes two functions and ignores their return vales.
2368
+ *
2369
+ * @param {function} one Function to invoke first.
2370
+ * @param {function} two Function to invoke second.
2371
+ * @return {function} Function that invokes the two argument functions.
2372
+ * @private
2373
+ */
2374
+ function createChainedFunction(one, two) {
2375
+ return function chainedFunction() {
2376
+ one.apply(this, arguments);
2377
+ two.apply(this, arguments);
2378
+ };
2379
+ }
2380
+
2381
+ /**
2382
+ * Binds a method to the component.
2383
+ *
2384
+ * @param {object} component Component whose method is going to be bound.
2385
+ * @param {function} method Method to be bound.
2386
+ * @return {function} The bound method.
2387
+ */
2388
+ function bindAutoBindMethod(component, method) {
2389
+ var boundMethod = method.bind(component);
2390
+ if (true) {
2391
+ boundMethod.__reactBoundContext = component;
2392
+ boundMethod.__reactBoundMethod = method;
2393
+ boundMethod.__reactBoundArguments = null;
2394
+ var componentName = component.constructor.displayName;
2395
+ var _bind = boundMethod.bind;
2396
+ boundMethod.bind = function(newThis) {
2397
+ for (
2398
+ var _len = arguments.length,
2399
+ args = Array(_len > 1 ? _len - 1 : 0),
2400
+ _key = 1;
2401
+ _key < _len;
2402
+ _key++
2403
+ ) {
2404
+ args[_key - 1] = arguments[_key];
2405
+ }
2406
+
2407
+ // User is trying to bind() an autobound method; we effectively will
2408
+ // ignore the value of "this" that the user is trying to use, so
2409
+ // let's warn.
2410
+ if (newThis !== component && newThis !== null) {
2411
+ if (true) {
2412
+ warning(
2413
+ false,
2414
+ 'bind(): React component methods may only be bound to the ' +
2415
+ 'component instance. See %s',
2416
+ componentName
2417
+ );
2418
+ }
2419
+ } else if (!args.length) {
2420
+ if (true) {
2421
+ warning(
2422
+ false,
2423
+ 'bind(): You are binding a component method to the component. ' +
2424
+ 'React does this for you automatically in a high-performance ' +
2425
+ 'way, so you can safely remove this call. See %s',
2426
+ componentName
2427
+ );
2428
+ }
2429
+ return boundMethod;
2430
+ }
2431
+ var reboundMethod = _bind.apply(boundMethod, arguments);
2432
+ reboundMethod.__reactBoundContext = component;
2433
+ reboundMethod.__reactBoundMethod = method;
2434
+ reboundMethod.__reactBoundArguments = args;
2435
+ return reboundMethod;
2436
+ };
2437
+ }
2438
+ return boundMethod;
2439
+ }
2440
+
2441
+ /**
2442
+ * Binds all auto-bound methods in a component.
2443
+ *
2444
+ * @param {object} component Component whose method is going to be bound.
2445
+ */
2446
+ function bindAutoBindMethods(component) {
2447
+ var pairs = component.__reactAutoBindPairs;
2448
+ for (var i = 0; i < pairs.length; i += 2) {
2449
+ var autoBindKey = pairs[i];
2450
+ var method = pairs[i + 1];
2451
+ component[autoBindKey] = bindAutoBindMethod(component, method);
2452
+ }
2453
+ }
2454
+
2455
+ var IsMountedPreMixin = {
2456
+ componentDidMount: function() {
2457
+ this.__isMounted = true;
2458
+ }
2459
+ };
2460
+
2461
+ var IsMountedPostMixin = {
2462
+ componentWillUnmount: function() {
2463
+ this.__isMounted = false;
2464
+ }
2465
+ };
2466
+
2467
+ /**
2468
+ * Add more to the ReactClass base class. These are all legacy features and
2469
+ * therefore not already part of the modern ReactComponent.
2470
+ */
2471
+ var ReactClassMixin = {
2472
+ /**
2473
+ * TODO: This will be deprecated because state should always keep a consistent
2474
+ * type signature and the only use case for this, is to avoid that.
2475
+ */
2476
+ replaceState: function(newState, callback) {
2477
+ this.updater.enqueueReplaceState(this, newState, callback);
2478
+ },
2479
+
2480
+ /**
2481
+ * Checks whether or not this composite component is mounted.
2482
+ * @return {boolean} True if mounted, false otherwise.
2483
+ * @protected
2484
+ * @final
2485
+ */
2486
+ isMounted: function() {
2487
+ if (true) {
2488
+ warning(
2489
+ this.__didWarnIsMounted,
2490
+ '%s: isMounted is deprecated. Instead, make sure to clean up ' +
2491
+ 'subscriptions and pending requests in componentWillUnmount to ' +
2492
+ 'prevent memory leaks.',
2493
+ (this.constructor && this.constructor.displayName) ||
2494
+ this.name ||
2495
+ 'Component'
2496
+ );
2497
+ this.__didWarnIsMounted = true;
2498
+ }
2499
+ return !!this.__isMounted;
2500
+ }
2501
+ };
2502
+
2503
+ var ReactClassComponent = function() {};
2504
+ _assign(
2505
+ ReactClassComponent.prototype,
2506
+ ReactComponent.prototype,
2507
+ ReactClassMixin
2508
+ );
2509
+
2510
+ /**
2511
+ * Creates a composite component class given a class specification.
2512
+ * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass
2513
+ *
2514
+ * @param {object} spec Class specification (which must define `render`).
2515
+ * @return {function} Component constructor function.
2516
+ * @public
2517
+ */
2518
+ function createClass(spec) {
2519
+ // To keep our warnings more understandable, we'll use a little hack here to
2520
+ // ensure that Constructor.name !== 'Constructor'. This makes sure we don't
2521
+ // unnecessarily identify a class without displayName as 'Constructor'.
2522
+ var Constructor = identity(function(props, context, updater) {
2523
+ // This constructor gets overridden by mocks. The argument is used
2524
+ // by mocks to assert on what gets mounted.
2525
+
2526
+ if (true) {
2527
+ warning(
2528
+ this instanceof Constructor,
2529
+ 'Something is calling a React component directly. Use a factory or ' +
2530
+ 'JSX instead. See: https://fb.me/react-legacyfactory'
2531
+ );
2532
+ }
2533
+
2534
+ // Wire up auto-binding
2535
+ if (this.__reactAutoBindPairs.length) {
2536
+ bindAutoBindMethods(this);
2537
+ }
2538
+
2539
+ this.props = props;
2540
+ this.context = context;
2541
+ this.refs = emptyObject;
2542
+ this.updater = updater || ReactNoopUpdateQueue;
2543
+
2544
+ this.state = null;
2545
+
2546
+ // ReactClasses doesn't have constructors. Instead, they use the
2547
+ // getInitialState and componentWillMount methods for initialization.
2548
+
2549
+ var initialState = this.getInitialState ? this.getInitialState() : null;
2550
+ if (true) {
2551
+ // We allow auto-mocks to proceed as if they're returning null.
2552
+ if (
2553
+ initialState === undefined &&
2554
+ this.getInitialState._isMockFunction
2555
+ ) {
2556
+ // This is probably bad practice. Consider warning here and
2557
+ // deprecating this convenience.
2558
+ initialState = null;
2559
+ }
2560
+ }
2561
+ _invariant(
2562
+ typeof initialState === 'object' && !Array.isArray(initialState),
2563
+ '%s.getInitialState(): must return an object or null',
2564
+ Constructor.displayName || 'ReactCompositeComponent'
2565
+ );
2566
+
2567
+ this.state = initialState;
2568
+ });
2569
+ Constructor.prototype = new ReactClassComponent();
2570
+ Constructor.prototype.constructor = Constructor;
2571
+ Constructor.prototype.__reactAutoBindPairs = [];
2572
+
2573
+ injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));
2574
+
2575
+ mixSpecIntoComponent(Constructor, IsMountedPreMixin);
2576
+ mixSpecIntoComponent(Constructor, spec);
2577
+ mixSpecIntoComponent(Constructor, IsMountedPostMixin);
2578
+
2579
+ // Initialize the defaultProps property after all mixins have been merged.
2580
+ if (Constructor.getDefaultProps) {
2581
+ Constructor.defaultProps = Constructor.getDefaultProps();
2582
+ }
2583
+
2584
+ if (true) {
2585
+ // This is a tag to indicate that the use of these method names is ok,
2586
+ // since it's used with createClass. If it's not, then it's likely a
2587
+ // mistake so we'll warn you to use the static property, property
2588
+ // initializer or constructor respectively.
2589
+ if (Constructor.getDefaultProps) {
2590
+ Constructor.getDefaultProps.isReactClassApproved = {};
2591
+ }
2592
+ if (Constructor.prototype.getInitialState) {
2593
+ Constructor.prototype.getInitialState.isReactClassApproved = {};
2594
+ }
2595
+ }
2596
+
2597
+ _invariant(
2598
+ Constructor.prototype.render,
2599
+ 'createClass(...): Class specification must implement a `render` method.'
2600
+ );
2601
+
2602
+ if (true) {
2603
+ warning(
2604
+ !Constructor.prototype.componentShouldUpdate,
2605
+ '%s has a method called ' +
2606
+ 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +
2607
+ 'The name is phrased as a question because the function is ' +
2608
+ 'expected to return a value.',
2609
+ spec.displayName || 'A component'
2610
+ );
2611
+ warning(
2612
+ !Constructor.prototype.componentWillRecieveProps,
2613
+ '%s has a method called ' +
2614
+ 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',
2615
+ spec.displayName || 'A component'
2616
+ );
2617
+ }
2618
+
2619
+ // Reduce time spent doing lookups by setting these on the prototype.
2620
+ for (var methodName in ReactClassInterface) {
2621
+ if (!Constructor.prototype[methodName]) {
2622
+ Constructor.prototype[methodName] = null;
2623
+ }
2624
+ }
2625
+
2626
+ return Constructor;
2627
+ }
2628
+
2629
+ return createClass;
2630
+ }
2631
+
2632
+ module.exports = factory;
2633
+
2634
+
2635
+ /***/ }),
2636
+
2637
+ /***/ "./node_modules/desandro-matches-selector/matches-selector.js":
2638
+ /*!********************************************************************!*\
2639
+ !*** ./node_modules/desandro-matches-selector/matches-selector.js ***!
2640
+ \********************************************************************/
2641
+ /*! no static exports found */
2642
+ /***/ (function(module, exports, __webpack_require__) {
2643
+
2644
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
2645
+ * matchesSelector v2.0.2
2646
+ * matchesSelector( element, '.selector' )
2647
+ * MIT license
2648
+ */
2649
+
2650
+ /*jshint browser: true, strict: true, undef: true, unused: true */
2651
+
2652
+ ( function( window, factory ) {
2653
+ /*global define: false, module: false */
2654
+ 'use strict';
2655
+ // universal module definition
2656
+ if ( true ) {
2657
+ // AMD
2658
+ !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
2659
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
2660
+ (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
2661
+ __WEBPACK_AMD_DEFINE_FACTORY__),
2662
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
2663
+ } else {}
2664
+
2665
+ }( window, function factory() {
2666
+ 'use strict';
2667
+
2668
+ var matchesMethod = ( function() {
2669
+ var ElemProto = window.Element.prototype;
2670
+ // check for the standard method name first
2671
+ if ( ElemProto.matches ) {
2672
+ return 'matches';
2673
+ }
2674
+ // check un-prefixed
2675
+ if ( ElemProto.matchesSelector ) {
2676
+ return 'matchesSelector';
2677
+ }
2678
+ // check vendor prefixes
2679
+ var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];
2680
+
2681
+ for ( var i=0; i < prefixes.length; i++ ) {
2682
+ var prefix = prefixes[i];
2683
+ var method = prefix + 'MatchesSelector';
2684
+ if ( ElemProto[ method ] ) {
2685
+ return method;
2686
+ }
2687
+ }
2688
+ })();
2689
+
2690
+ return function matchesSelector( elem, selector ) {
2691
+ return elem[ matchesMethod ]( selector );
2692
+ };
2693
+
2694
+ }));
2695
+
2696
+
2697
+ /***/ }),
2698
+
2699
+ /***/ "./node_modules/es6-promise/dist/es6-promise.js":
2700
+ /*!******************************************************!*\
2701
+ !*** ./node_modules/es6-promise/dist/es6-promise.js ***!
2702
+ \******************************************************/
2703
+ /*! no static exports found */
2704
+ /***/ (function(module, exports, __webpack_require__) {
2705
+
2706
+ /* WEBPACK VAR INJECTION */(function(process, global) {var require;/*!
2707
+ * @overview es6-promise - a tiny implementation of Promises/A+.
2708
+ * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
2709
+ * @license Licensed under MIT license
2710
+ * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
2711
+ * @version 4.1.1
2712
+ */
2713
+
2714
+ (function (global, factory) {
2715
+ true ? module.exports = factory() :
2716
+ undefined;
2717
+ }(this, (function () { 'use strict';
2718
+
2719
+ function objectOrFunction(x) {
2720
+ var type = typeof x;
2721
+ return x !== null && (type === 'object' || type === 'function');
2722
+ }
2723
+
2724
+ function isFunction(x) {
2725
+ return typeof x === 'function';
2726
+ }
2727
+
2728
+ var _isArray = undefined;
2729
+ if (Array.isArray) {
2730
+ _isArray = Array.isArray;
2731
+ } else {
2732
+ _isArray = function (x) {
2733
+ return Object.prototype.toString.call(x) === '[object Array]';
2734
+ };
2735
+ }
2736
+
2737
+ var isArray = _isArray;
2738
+
2739
+ var len = 0;
2740
+ var vertxNext = undefined;
2741
+ var customSchedulerFn = undefined;
2742
+
2743
+ var asap = function asap(callback, arg) {
2744
+ queue[len] = callback;
2745
+ queue[len + 1] = arg;
2746
+ len += 2;
2747
+ if (len === 2) {
2748
+ // If len is 2, that means that we need to schedule an async flush.
2749
+ // If additional callbacks are queued before the queue is flushed, they
2750
+ // will be processed by this flush that we are scheduling.
2751
+ if (customSchedulerFn) {
2752
+ customSchedulerFn(flush);
2753
+ } else {
2754
+ scheduleFlush();
2755
+ }
2756
+ }
2757
+ };
2758
+
2759
+ function setScheduler(scheduleFn) {
2760
+ customSchedulerFn = scheduleFn;
2761
+ }
2762
+
2763
+ function setAsap(asapFn) {
2764
+ asap = asapFn;
2765
+ }
2766
+
2767
+ var browserWindow = typeof window !== 'undefined' ? window : undefined;
2768
+ var browserGlobal = browserWindow || {};
2769
+ var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
2770
+ var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';
2771
+
2772
+ // test for web worker but not in IE10
2773
+ var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
2774
+
2775
+ // node
2776
+ function useNextTick() {
2777
+ // node version 0.10.x displays a deprecation warning when nextTick is used recursively
2778
+ // see https://github.com/cujojs/when/issues/410 for details
2779
+ return function () {
2780
+ return process.nextTick(flush);
2781
+ };
2782
+ }
2783
+
2784
+ // vertx
2785
+ function useVertxTimer() {
2786
+ if (typeof vertxNext !== 'undefined') {
2787
+ return function () {
2788
+ vertxNext(flush);
2789
+ };
2790
+ }
2791
+
2792
+ return useSetTimeout();
2793
+ }
2794
+
2795
+ function useMutationObserver() {
2796
+ var iterations = 0;
2797
+ var observer = new BrowserMutationObserver(flush);
2798
+ var node = document.createTextNode('');
2799
+ observer.observe(node, { characterData: true });
2800
+
2801
+ return function () {
2802
+ node.data = iterations = ++iterations % 2;
2803
+ };
2804
+ }
2805
+
2806
+ // web worker
2807
+ function useMessageChannel() {
2808
+ var channel = new MessageChannel();
2809
+ channel.port1.onmessage = flush;
2810
+ return function () {
2811
+ return channel.port2.postMessage(0);
2812
+ };
2813
+ }
2814
+
2815
+ function useSetTimeout() {
2816
+ // Store setTimeout reference so es6-promise will be unaffected by
2817
+ // other code modifying setTimeout (like sinon.useFakeTimers())
2818
+ var globalSetTimeout = setTimeout;
2819
+ return function () {
2820
+ return globalSetTimeout(flush, 1);
2821
+ };
2822
+ }
2823
+
2824
+ var queue = new Array(1000);
2825
+ function flush() {
2826
+ for (var i = 0; i < len; i += 2) {
2827
+ var callback = queue[i];
2828
+ var arg = queue[i + 1];
2829
+
2830
+ callback(arg);
2831
+
2832
+ queue[i] = undefined;
2833
+ queue[i + 1] = undefined;
2834
+ }
2835
+
2836
+ len = 0;
2837
+ }
2838
+
2839
+ function attemptVertx() {
2840
+ try {
2841
+ var r = require;
2842
+ var vertx = __webpack_require__(/*! vertx */ 0);
2843
+ vertxNext = vertx.runOnLoop || vertx.runOnContext;
2844
+ return useVertxTimer();
2845
+ } catch (e) {
2846
+ return useSetTimeout();
2847
+ }
2848
+ }
2849
+
2850
+ var scheduleFlush = undefined;
2851
+ // Decide what async method to use to triggering processing of queued callbacks:
2852
+ if (isNode) {
2853
+ scheduleFlush = useNextTick();
2854
+ } else if (BrowserMutationObserver) {
2855
+ scheduleFlush = useMutationObserver();
2856
+ } else if (isWorker) {
2857
+ scheduleFlush = useMessageChannel();
2858
+ } else if (browserWindow === undefined && "function" === 'function') {
2859
+ scheduleFlush = attemptVertx();
2860
+ } else {
2861
+ scheduleFlush = useSetTimeout();
2862
+ }
2863
+
2864
+ function then(onFulfillment, onRejection) {
2865
+ var _arguments = arguments;
2866
+
2867
+ var parent = this;
2868
+
2869
+ var child = new this.constructor(noop);
2870
+
2871
+ if (child[PROMISE_ID] === undefined) {
2872
+ makePromise(child);
2873
+ }
2874
+
2875
+ var _state = parent._state;
2876
+
2877
+ if (_state) {
2878
+ (function () {
2879
+ var callback = _arguments[_state - 1];
2880
+ asap(function () {
2881
+ return invokeCallback(_state, child, callback, parent._result);
2882
+ });
2883
+ })();
2884
+ } else {
2885
+ subscribe(parent, child, onFulfillment, onRejection);
2886
+ }
2887
+
2888
+ return child;
2889
+ }
2890
+
2891
+ /**
2892
+ `Promise.resolve` returns a promise that will become resolved with the
2893
+ passed `value`. It is shorthand for the following:
2894
+
2895
+ ```javascript
2896
+ let promise = new Promise(function(resolve, reject){
2897
+ resolve(1);
2898
+ });
2899
+
2900
+ promise.then(function(value){
2901
+ // value === 1
2902
+ });
2903
+ ```
2904
+
2905
+ Instead of writing the above, your code now simply becomes the following:
2906
+
2907
+ ```javascript
2908
+ let promise = Promise.resolve(1);
2909
+
2910
+ promise.then(function(value){
2911
+ // value === 1
2912
+ });
2913
+ ```
2914
+
2915
+ @method resolve
2916
+ @static
2917
+ @param {Any} value value that the returned promise will be resolved with
2918
+ Useful for tooling.
2919
+ @return {Promise} a promise that will become fulfilled with the given
2920
+ `value`
2921
+ */
2922
+ function resolve$1(object) {
2923
+ /*jshint validthis:true */
2924
+ var Constructor = this;
2925
+
2926
+ if (object && typeof object === 'object' && object.constructor === Constructor) {
2927
+ return object;
2928
+ }
2929
+
2930
+ var promise = new Constructor(noop);
2931
+ resolve(promise, object);
2932
+ return promise;
2933
+ }
2934
+
2935
+ var PROMISE_ID = Math.random().toString(36).substring(16);
2936
+
2937
+ function noop() {}
2938
+
2939
+ var PENDING = void 0;
2940
+ var FULFILLED = 1;
2941
+ var REJECTED = 2;
2942
+
2943
+ var GET_THEN_ERROR = new ErrorObject();
2944
+
2945
+ function selfFulfillment() {
2946
+ return new TypeError("You cannot resolve a promise with itself");
2947
+ }
2948
+
2949
+ function cannotReturnOwn() {
2950
+ return new TypeError('A promises callback cannot return that same promise.');
2951
+ }
2952
+
2953
+ function getThen(promise) {
2954
+ try {
2955
+ return promise.then;
2956
+ } catch (error) {
2957
+ GET_THEN_ERROR.error = error;
2958
+ return GET_THEN_ERROR;
2959
+ }
2960
+ }
2961
+
2962
+ function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
2963
+ try {
2964
+ then$$1.call(value, fulfillmentHandler, rejectionHandler);
2965
+ } catch (e) {
2966
+ return e;
2967
+ }
2968
+ }
2969
+
2970
+ function handleForeignThenable(promise, thenable, then$$1) {
2971
+ asap(function (promise) {
2972
+ var sealed = false;
2973
+ var error = tryThen(then$$1, thenable, function (value) {
2974
+ if (sealed) {
2975
+ return;
2976
+ }
2977
+ sealed = true;
2978
+ if (thenable !== value) {
2979
+ resolve(promise, value);
2980
+ } else {
2981
+ fulfill(promise, value);
2982
+ }
2983
+ }, function (reason) {
2984
+ if (sealed) {
2985
+ return;
2986
+ }
2987
+ sealed = true;
2988
+
2989
+ reject(promise, reason);
2990
+ }, 'Settle: ' + (promise._label || ' unknown promise'));
2991
+
2992
+ if (!sealed && error) {
2993
+ sealed = true;
2994
+ reject(promise, error);
2995
+ }
2996
+ }, promise);
2997
+ }
2998
+
2999
+ function handleOwnThenable(promise, thenable) {
3000
+ if (thenable._state === FULFILLED) {
3001
+ fulfill(promise, thenable._result);
3002
+ } else if (thenable._state === REJECTED) {
3003
+ reject(promise, thenable._result);
3004
+ } else {
3005
+ subscribe(thenable, undefined, function (value) {
3006
+ return resolve(promise, value);
3007
+ }, function (reason) {
3008
+ return reject(promise, reason);
3009
+ });
3010
+ }
3011
+ }
3012
+
3013
+ function handleMaybeThenable(promise, maybeThenable, then$$1) {
3014
+ if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
3015
+ handleOwnThenable(promise, maybeThenable);
3016
+ } else {
3017
+ if (then$$1 === GET_THEN_ERROR) {
3018
+ reject(promise, GET_THEN_ERROR.error);
3019
+ GET_THEN_ERROR.error = null;
3020
+ } else if (then$$1 === undefined) {
3021
+ fulfill(promise, maybeThenable);
3022
+ } else if (isFunction(then$$1)) {
3023
+ handleForeignThenable(promise, maybeThenable, then$$1);
3024
+ } else {
3025
+ fulfill(promise, maybeThenable);
3026
+ }
3027
+ }
3028
+ }
3029
+
3030
+ function resolve(promise, value) {
3031
+ if (promise === value) {
3032
+ reject(promise, selfFulfillment());
3033
+ } else if (objectOrFunction(value)) {
3034
+ handleMaybeThenable(promise, value, getThen(value));
3035
+ } else {
3036
+ fulfill(promise, value);
3037
+ }
3038
+ }
3039
+
3040
+ function publishRejection(promise) {
3041
+ if (promise._onerror) {
3042
+ promise._onerror(promise._result);
3043
+ }
3044
+
3045
+ publish(promise);
3046
+ }
3047
+
3048
+ function fulfill(promise, value) {
3049
+ if (promise._state !== PENDING) {
3050
+ return;
3051
+ }
3052
+
3053
+ promise._result = value;
3054
+ promise._state = FULFILLED;
3055
+
3056
+ if (promise._subscribers.length !== 0) {
3057
+ asap(publish, promise);
3058
+ }
3059
+ }
3060
+
3061
+ function reject(promise, reason) {
3062
+ if (promise._state !== PENDING) {
3063
+ return;
3064
+ }
3065
+ promise._state = REJECTED;
3066
+ promise._result = reason;
3067
+
3068
+ asap(publishRejection, promise);
3069
+ }
3070
+
3071
+ function subscribe(parent, child, onFulfillment, onRejection) {
3072
+ var _subscribers = parent._subscribers;
3073
+ var length = _subscribers.length;
3074
+
3075
+ parent._onerror = null;
3076
+
3077
+ _subscribers[length] = child;
3078
+ _subscribers[length + FULFILLED] = onFulfillment;
3079
+ _subscribers[length + REJECTED] = onRejection;
3080
+
3081
+ if (length === 0 && parent._state) {
3082
+ asap(publish, parent);
3083
+ }
3084
+ }
3085
+
3086
+ function publish(promise) {
3087
+ var subscribers = promise._subscribers;
3088
+ var settled = promise._state;
3089
+
3090
+ if (subscribers.length === 0) {
3091
+ return;
3092
+ }
3093
+
3094
+ var child = undefined,
3095
+ callback = undefined,
3096
+ detail = promise._result;
3097
+
3098
+ for (var i = 0; i < subscribers.length; i += 3) {
3099
+ child = subscribers[i];
3100
+ callback = subscribers[i + settled];
3101
+
3102
+ if (child) {
3103
+ invokeCallback(settled, child, callback, detail);
3104
+ } else {
3105
+ callback(detail);
3106
+ }
3107
+ }
3108
+
3109
+ promise._subscribers.length = 0;
3110
+ }
3111
+
3112
+ function ErrorObject() {
3113
+ this.error = null;
3114
+ }
3115
+
3116
+ var TRY_CATCH_ERROR = new ErrorObject();
3117
+
3118
+ function tryCatch(callback, detail) {
3119
+ try {
3120
+ return callback(detail);
3121
+ } catch (e) {
3122
+ TRY_CATCH_ERROR.error = e;
3123
+ return TRY_CATCH_ERROR;
3124
+ }
3125
+ }
3126
+
3127
+ function invokeCallback(settled, promise, callback, detail) {
3128
+ var hasCallback = isFunction(callback),
3129
+ value = undefined,
3130
+ error = undefined,
3131
+ succeeded = undefined,
3132
+ failed = undefined;
3133
+
3134
+ if (hasCallback) {
3135
+ value = tryCatch(callback, detail);
3136
+
3137
+ if (value === TRY_CATCH_ERROR) {
3138
+ failed = true;
3139
+ error = value.error;
3140
+ value.error = null;
3141
+ } else {
3142
+ succeeded = true;
3143
+ }
3144
+
3145
+ if (promise === value) {
3146
+ reject(promise, cannotReturnOwn());
3147
+ return;
3148
+ }
3149
+ } else {
3150
+ value = detail;
3151
+ succeeded = true;
3152
+ }
3153
+
3154
+ if (promise._state !== PENDING) {
3155
+ // noop
3156
+ } else if (hasCallback && succeeded) {
3157
+ resolve(promise, value);
3158
+ } else if (failed) {
3159
+ reject(promise, error);
3160
+ } else if (settled === FULFILLED) {
3161
+ fulfill(promise, value);
3162
+ } else if (settled === REJECTED) {
3163
+ reject(promise, value);
3164
+ }
3165
+ }
3166
+
3167
+ function initializePromise(promise, resolver) {
3168
+ try {
3169
+ resolver(function resolvePromise(value) {
3170
+ resolve(promise, value);
3171
+ }, function rejectPromise(reason) {
3172
+ reject(promise, reason);
3173
+ });
3174
+ } catch (e) {
3175
+ reject(promise, e);
3176
+ }
3177
+ }
3178
+
3179
+ var id = 0;
3180
+ function nextId() {
3181
+ return id++;
3182
+ }
3183
+
3184
+ function makePromise(promise) {
3185
+ promise[PROMISE_ID] = id++;
3186
+ promise._state = undefined;
3187
+ promise._result = undefined;
3188
+ promise._subscribers = [];
3189
+ }
3190
+
3191
+ function Enumerator$1(Constructor, input) {
3192
+ this._instanceConstructor = Constructor;
3193
+ this.promise = new Constructor(noop);
3194
+
3195
+ if (!this.promise[PROMISE_ID]) {
3196
+ makePromise(this.promise);
3197
+ }
3198
+
3199
+ if (isArray(input)) {
3200
+ this.length = input.length;
3201
+ this._remaining = input.length;
3202
+
3203
+ this._result = new Array(this.length);
3204
+
3205
+ if (this.length === 0) {
3206
+ fulfill(this.promise, this._result);
3207
+ } else {
3208
+ this.length = this.length || 0;
3209
+ this._enumerate(input);
3210
+ if (this._remaining === 0) {
3211
+ fulfill(this.promise, this._result);
3212
+ }
3213
+ }
3214
+ } else {
3215
+ reject(this.promise, validationError());
3216
+ }
3217
+ }
3218
+
3219
+ function validationError() {
3220
+ return new Error('Array Methods must be provided an Array');
3221
+ }
3222
+
3223
+ Enumerator$1.prototype._enumerate = function (input) {
3224
+ for (var i = 0; this._state === PENDING && i < input.length; i++) {
3225
+ this._eachEntry(input[i], i);
3226
+ }
3227
+ };
3228
+
3229
+ Enumerator$1.prototype._eachEntry = function (entry, i) {
3230
+ var c = this._instanceConstructor;
3231
+ var resolve$$1 = c.resolve;
3232
+
3233
+ if (resolve$$1 === resolve$1) {
3234
+ var _then = getThen(entry);
3235
+
3236
+ if (_then === then && entry._state !== PENDING) {
3237
+ this._settledAt(entry._state, i, entry._result);
3238
+ } else if (typeof _then !== 'function') {
3239
+ this._remaining--;
3240
+ this._result[i] = entry;
3241
+ } else if (c === Promise$2) {
3242
+ var promise = new c(noop);
3243
+ handleMaybeThenable(promise, entry, _then);
3244
+ this._willSettleAt(promise, i);
3245
+ } else {
3246
+ this._willSettleAt(new c(function (resolve$$1) {
3247
+ return resolve$$1(entry);
3248
+ }), i);
3249
+ }
3250
+ } else {
3251
+ this._willSettleAt(resolve$$1(entry), i);
3252
+ }
3253
+ };
3254
+
3255
+ Enumerator$1.prototype._settledAt = function (state, i, value) {
3256
+ var promise = this.promise;
3257
+
3258
+ if (promise._state === PENDING) {
3259
+ this._remaining--;
3260
+
3261
+ if (state === REJECTED) {
3262
+ reject(promise, value);
3263
+ } else {
3264
+ this._result[i] = value;
3265
+ }
3266
+ }
3267
+
3268
+ if (this._remaining === 0) {
3269
+ fulfill(promise, this._result);
3270
+ }
3271
+ };
3272
+
3273
+ Enumerator$1.prototype._willSettleAt = function (promise, i) {
3274
+ var enumerator = this;
3275
+
3276
+ subscribe(promise, undefined, function (value) {
3277
+ return enumerator._settledAt(FULFILLED, i, value);
3278
+ }, function (reason) {
3279
+ return enumerator._settledAt(REJECTED, i, reason);
3280
+ });
3281
+ };
3282
+
3283
+ /**
3284
+ `Promise.all` accepts an array of promises, and returns a new promise which
3285
+ is fulfilled with an array of fulfillment values for the passed promises, or
3286
+ rejected with the reason of the first passed promise to be rejected. It casts all
3287
+ elements of the passed iterable to promises as it runs this algorithm.
3288
+
3289
+ Example:
3290
+
3291
+ ```javascript
3292
+ let promise1 = resolve(1);
3293
+ let promise2 = resolve(2);
3294
+ let promise3 = resolve(3);
3295
+ let promises = [ promise1, promise2, promise3 ];
3296
+
3297
+ Promise.all(promises).then(function(array){
3298
+ // The array here would be [ 1, 2, 3 ];
3299
+ });
3300
+ ```
3301
+
3302
+ If any of the `promises` given to `all` are rejected, the first promise
3303
+ that is rejected will be given as an argument to the returned promises's
3304
+ rejection handler. For example:
3305
+
3306
+ Example:
3307
+
3308
+ ```javascript
3309
+ let promise1 = resolve(1);
3310
+ let promise2 = reject(new Error("2"));
3311
+ let promise3 = reject(new Error("3"));
3312
+ let promises = [ promise1, promise2, promise3 ];
3313
+
3314
+ Promise.all(promises).then(function(array){
3315
+ // Code here never runs because there are rejected promises!
3316
+ }, function(error) {
3317
+ // error.message === "2"
3318
+ });
3319
+ ```
3320
+
3321
+ @method all
3322
+ @static
3323
+ @param {Array} entries array of promises
3324
+ @param {String} label optional string for labeling the promise.
3325
+ Useful for tooling.
3326
+ @return {Promise} promise that is fulfilled when all `promises` have been
3327
+ fulfilled, or rejected if any of them become rejected.
3328
+ @static
3329
+ */
3330
+ function all$1(entries) {
3331
+ return new Enumerator$1(this, entries).promise;
3332
+ }
3333
+
3334
+ /**
3335
+ `Promise.race` returns a new promise which is settled in the same way as the
3336
+ first passed promise to settle.
3337
+
3338
+ Example:
3339
+
3340
+ ```javascript
3341
+ let promise1 = new Promise(function(resolve, reject){
3342
+ setTimeout(function(){
3343
+ resolve('promise 1');
3344
+ }, 200);
3345
+ });
3346
+
3347
+ let promise2 = new Promise(function(resolve, reject){
3348
+ setTimeout(function(){
3349
+ resolve('promise 2');
3350
+ }, 100);
3351
+ });
3352
+
3353
+ Promise.race([promise1, promise2]).then(function(result){
3354
+ // result === 'promise 2' because it was resolved before promise1
3355
+ // was resolved.
3356
+ });
3357
+ ```
3358
+
3359
+ `Promise.race` is deterministic in that only the state of the first
3360
+ settled promise matters. For example, even if other promises given to the
3361
+ `promises` array argument are resolved, but the first settled promise has
3362
+ become rejected before the other promises became fulfilled, the returned
3363
+ promise will become rejected:
3364
+
3365
+ ```javascript
3366
+ let promise1 = new Promise(function(resolve, reject){
3367
+ setTimeout(function(){
3368
+ resolve('promise 1');
3369
+ }, 200);
3370
+ });
3371
+
3372
+ let promise2 = new Promise(function(resolve, reject){
3373
+ setTimeout(function(){
3374
+ reject(new Error('promise 2'));
3375
+ }, 100);
3376
+ });
3377
+
3378
+ Promise.race([promise1, promise2]).then(function(result){
3379
+ // Code here never runs
3380
+ }, function(reason){
3381
+ // reason.message === 'promise 2' because promise 2 became rejected before
3382
+ // promise 1 became fulfilled
3383
+ });
3384
+ ```
3385
+
3386
+ An example real-world use case is implementing timeouts:
3387
+
3388
+ ```javascript
3389
+ Promise.race([ajax('foo.json'), timeout(5000)])
3390
+ ```
3391
+
3392
+ @method race
3393
+ @static
3394
+ @param {Array} promises array of promises to observe
3395
+ Useful for tooling.
3396
+ @return {Promise} a promise which settles in the same way as the first passed
3397
+ promise to settle.
3398
+ */
3399
+ function race$1(entries) {
3400
+ /*jshint validthis:true */
3401
+ var Constructor = this;
3402
+
3403
+ if (!isArray(entries)) {
3404
+ return new Constructor(function (_, reject) {
3405
+ return reject(new TypeError('You must pass an array to race.'));
3406
+ });
3407
+ } else {
3408
+ return new Constructor(function (resolve, reject) {
3409
+ var length = entries.length;
3410
+ for (var i = 0; i < length; i++) {
3411
+ Constructor.resolve(entries[i]).then(resolve, reject);
3412
+ }
3413
+ });
3414
+ }
3415
+ }
3416
+
3417
+ /**
3418
+ `Promise.reject` returns a promise rejected with the passed `reason`.
3419
+ It is shorthand for the following:
3420
+
3421
+ ```javascript
3422
+ let promise = new Promise(function(resolve, reject){
3423
+ reject(new Error('WHOOPS'));
3424
+ });
3425
+
3426
+ promise.then(function(value){
3427
+ // Code here doesn't run because the promise is rejected!
3428
+ }, function(reason){
3429
+ // reason.message === 'WHOOPS'
3430
+ });
3431
+ ```
3432
+
3433
+ Instead of writing the above, your code now simply becomes the following:
3434
+
3435
+ ```javascript
3436
+ let promise = Promise.reject(new Error('WHOOPS'));
3437
+
3438
+ promise.then(function(value){
3439
+ // Code here doesn't run because the promise is rejected!
3440
+ }, function(reason){
3441
+ // reason.message === 'WHOOPS'
3442
+ });
3443
+ ```
3444
+
3445
+ @method reject
3446
+ @static
3447
+ @param {Any} reason value that the returned promise will be rejected with.
3448
+ Useful for tooling.
3449
+ @return {Promise} a promise rejected with the given `reason`.
3450
+ */
3451
+ function reject$1(reason) {
3452
+ /*jshint validthis:true */
3453
+ var Constructor = this;
3454
+ var promise = new Constructor(noop);
3455
+ reject(promise, reason);
3456
+ return promise;
3457
+ }
3458
+
3459
+ function needsResolver() {
3460
+ throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
3461
+ }
3462
+
3463
+ function needsNew() {
3464
+ throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
3465
+ }
3466
+
3467
+ /**
3468
+ Promise objects represent the eventual result of an asynchronous operation. The
3469
+ primary way of interacting with a promise is through its `then` method, which
3470
+ registers callbacks to receive either a promise's eventual value or the reason
3471
+ why the promise cannot be fulfilled.
3472
+
3473
+ Terminology
3474
+ -----------
3475
+
3476
+ - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
3477
+ - `thenable` is an object or function that defines a `then` method.
3478
+ - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
3479
+ - `exception` is a value that is thrown using the throw statement.
3480
+ - `reason` is a value that indicates why a promise was rejected.
3481
+ - `settled` the final resting state of a promise, fulfilled or rejected.
3482
+
3483
+ A promise can be in one of three states: pending, fulfilled, or rejected.
3484
+
3485
+ Promises that are fulfilled have a fulfillment value and are in the fulfilled
3486
+ state. Promises that are rejected have a rejection reason and are in the
3487
+ rejected state. A fulfillment value is never a thenable.
3488
+
3489
+ Promises can also be said to *resolve* a value. If this value is also a
3490
+ promise, then the original promise's settled state will match the value's
3491
+ settled state. So a promise that *resolves* a promise that rejects will
3492
+ itself reject, and a promise that *resolves* a promise that fulfills will
3493
+ itself fulfill.
3494
+
3495
+
3496
+ Basic Usage:
3497
+ ------------
3498
+
3499
+ ```js
3500
+ let promise = new Promise(function(resolve, reject) {
3501
+ // on success
3502
+ resolve(value);
3503
+
3504
+ // on failure
3505
+ reject(reason);
3506
+ });
3507
+
3508
+ promise.then(function(value) {
3509
+ // on fulfillment
3510
+ }, function(reason) {
3511
+ // on rejection
3512
+ });
3513
+ ```
3514
+
3515
+ Advanced Usage:
3516
+ ---------------
3517
+
3518
+ Promises shine when abstracting away asynchronous interactions such as
3519
+ `XMLHttpRequest`s.
3520
+
3521
+ ```js
3522
+ function getJSON(url) {
3523
+ return new Promise(function(resolve, reject){
3524
+ let xhr = new XMLHttpRequest();
3525
+
3526
+ xhr.open('GET', url);
3527
+ xhr.onreadystatechange = handler;
3528
+ xhr.responseType = 'json';
3529
+ xhr.setRequestHeader('Accept', 'application/json');
3530
+ xhr.send();
3531
+
3532
+ function handler() {
3533
+ if (this.readyState === this.DONE) {
3534
+ if (this.status === 200) {
3535
+ resolve(this.response);
3536
+ } else {
3537
+ reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
3538
+ }
3539
+ }
3540
+ };
3541
+ });
3542
+ }
3543
+
3544
+ getJSON('/posts.json').then(function(json) {
3545
+ // on fulfillment
3546
+ }, function(reason) {
3547
+ // on rejection
3548
+ });
3549
+ ```
3550
+
3551
+ Unlike callbacks, promises are great composable primitives.
3552
+
3553
+ ```js
3554
+ Promise.all([
3555
+ getJSON('/posts'),
3556
+ getJSON('/comments')
3557
+ ]).then(function(values){
3558
+ values[0] // => postsJSON
3559
+ values[1] // => commentsJSON
3560
+
3561
+ return values;
3562
+ });
3563
+ ```
3564
+
3565
+ @class Promise
3566
+ @param {function} resolver
3567
+ Useful for tooling.
3568
+ @constructor
3569
+ */
3570
+ function Promise$2(resolver) {
3571
+ this[PROMISE_ID] = nextId();
3572
+ this._result = this._state = undefined;
3573
+ this._subscribers = [];
3574
+
3575
+ if (noop !== resolver) {
3576
+ typeof resolver !== 'function' && needsResolver();
3577
+ this instanceof Promise$2 ? initializePromise(this, resolver) : needsNew();
3578
+ }
3579
+ }
3580
+
3581
+ Promise$2.all = all$1;
3582
+ Promise$2.race = race$1;
3583
+ Promise$2.resolve = resolve$1;
3584
+ Promise$2.reject = reject$1;
3585
+ Promise$2._setScheduler = setScheduler;
3586
+ Promise$2._setAsap = setAsap;
3587
+ Promise$2._asap = asap;
3588
+
3589
+ Promise$2.prototype = {
3590
+ constructor: Promise$2,
3591
+
3592
+ /**
3593
+ The primary way of interacting with a promise is through its `then` method,
3594
+ which registers callbacks to receive either a promise's eventual value or the
3595
+ reason why the promise cannot be fulfilled.
3596
+
3597
+ ```js
3598
+ findUser().then(function(user){
3599
+ // user is available
3600
+ }, function(reason){
3601
+ // user is unavailable, and you are given the reason why
3602
+ });
3603
+ ```
3604
+
3605
+ Chaining
3606
+ --------
3607
+
3608
+ The return value of `then` is itself a promise. This second, 'downstream'
3609
+ promise is resolved with the return value of the first promise's fulfillment
3610
+ or rejection handler, or rejected if the handler throws an exception.
3611
+
3612
+ ```js
3613
+ findUser().then(function (user) {
3614
+ return user.name;
3615
+ }, function (reason) {
3616
+ return 'default name';
3617
+ }).then(function (userName) {
3618
+ // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
3619
+ // will be `'default name'`
3620
+ });
3621
+
3622
+ findUser().then(function (user) {
3623
+ throw new Error('Found user, but still unhappy');
3624
+ }, function (reason) {
3625
+ throw new Error('`findUser` rejected and we're unhappy');
3626
+ }).then(function (value) {
3627
+ // never reached
3628
+ }, function (reason) {
3629
+ // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
3630
+ // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
3631
+ });
3632
+ ```
3633
+ If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
3634
+
3635
+ ```js
3636
+ findUser().then(function (user) {
3637
+ throw new PedagogicalException('Upstream error');
3638
+ }).then(function (value) {
3639
+ // never reached
3640
+ }).then(function (value) {
3641
+ // never reached
3642
+ }, function (reason) {
3643
+ // The `PedgagocialException` is propagated all the way down to here
3644
+ });
3645
+ ```
3646
+
3647
+ Assimilation
3648
+ ------------
3649
+
3650
+ Sometimes the value you want to propagate to a downstream promise can only be
3651
+ retrieved asynchronously. This can be achieved by returning a promise in the
3652
+ fulfillment or rejection handler. The downstream promise will then be pending
3653
+ until the returned promise is settled. This is called *assimilation*.
3654
+
3655
+ ```js
3656
+ findUser().then(function (user) {
3657
+ return findCommentsByAuthor(user);
3658
+ }).then(function (comments) {
3659
+ // The user's comments are now available
3660
+ });
3661
+ ```
3662
+
3663
+ If the assimliated promise rejects, then the downstream promise will also reject.
3664
+
3665
+ ```js
3666
+ findUser().then(function (user) {
3667
+ return findCommentsByAuthor(user);
3668
+ }).then(function (comments) {
3669
+ // If `findCommentsByAuthor` fulfills, we'll have the value here
3670
+ }, function (reason) {
3671
+ // If `findCommentsByAuthor` rejects, we'll have the reason here
3672
+ });
3673
+ ```
3674
+
3675
+ Simple Example
3676
+ --------------
3677
+
3678
+ Synchronous Example
3679
+
3680
+ ```javascript
3681
+ let result;
3682
+
3683
+ try {
3684
+ result = findResult();
3685
+ // success
3686
+ } catch(reason) {
3687
+ // failure
3688
+ }
3689
+ ```
3690
+
3691
+ Errback Example
3692
+
3693
+ ```js
3694
+ findResult(function(result, err){
3695
+ if (err) {
3696
+ // failure
3697
+ } else {
3698
+ // success
3699
+ }
3700
+ });
3701
+ ```
3702
+
3703
+ Promise Example;
3704
+
3705
+ ```javascript
3706
+ findResult().then(function(result){
3707
+ // success
3708
+ }, function(reason){
3709
+ // failure
3710
+ });
3711
+ ```
3712
+
3713
+ Advanced Example
3714
+ --------------
3715
+
3716
+ Synchronous Example
3717
+
3718
+ ```javascript
3719
+ let author, books;
3720
+
3721
+ try {
3722
+ author = findAuthor();
3723
+ books = findBooksByAuthor(author);
3724
+ // success
3725
+ } catch(reason) {
3726
+ // failure
3727
+ }
3728
+ ```
3729
+
3730
+ Errback Example
3731
+
3732
+ ```js
3733
+
3734
+ function foundBooks(books) {
3735
+
3736
+ }
3737
+
3738
+ function failure(reason) {
3739
+
3740
+ }
3741
+
3742
+ findAuthor(function(author, err){
3743
+ if (err) {
3744
+ failure(err);
3745
+ // failure
3746
+ } else {
3747
+ try {
3748
+ findBoooksByAuthor(author, function(books, err) {
3749
+ if (err) {
3750
+ failure(err);
3751
+ } else {
3752
+ try {
3753
+ foundBooks(books);
3754
+ } catch(reason) {
3755
+ failure(reason);
3756
+ }
3757
+ }
3758
+ });
3759
+ } catch(error) {
3760
+ failure(err);
3761
+ }
3762
+ // success
3763
+ }
3764
+ });
3765
+ ```
3766
+
3767
+ Promise Example;
3768
+
3769
+ ```javascript
3770
+ findAuthor().
3771
+ then(findBooksByAuthor).
3772
+ then(function(books){
3773
+ // found books
3774
+ }).catch(function(reason){
3775
+ // something went wrong
3776
+ });
3777
+ ```
3778
+
3779
+ @method then
3780
+ @param {Function} onFulfilled
3781
+ @param {Function} onRejected
3782
+ Useful for tooling.
3783
+ @return {Promise}
3784
+ */
3785
+ then: then,
3786
+
3787
+ /**
3788
+ `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
3789
+ as the catch block of a try/catch statement.
3790
+
3791
+ ```js
3792
+ function findAuthor(){
3793
+ throw new Error('couldn't find that author');
3794
+ }
3795
+
3796
+ // synchronous
3797
+ try {
3798
+ findAuthor();
3799
+ } catch(reason) {
3800
+ // something went wrong
3801
+ }
3802
+
3803
+ // async with promises
3804
+ findAuthor().catch(function(reason){
3805
+ // something went wrong
3806
+ });
3807
+ ```
3808
+
3809
+ @method catch
3810
+ @param {Function} onRejection
3811
+ Useful for tooling.
3812
+ @return {Promise}
3813
+ */
3814
+ 'catch': function _catch(onRejection) {
3815
+ return this.then(null, onRejection);
3816
+ }
3817
+ };
3818
+
3819
+ /*global self*/
3820
+ function polyfill$1() {
3821
+ var local = undefined;
3822
+
3823
+ if (typeof global !== 'undefined') {
3824
+ local = global;
3825
+ } else if (typeof self !== 'undefined') {
3826
+ local = self;
3827
+ } else {
3828
+ try {
3829
+ local = Function('return this')();
3830
+ } catch (e) {
3831
+ throw new Error('polyfill failed because global object is unavailable in this environment');
3832
+ }
3833
+ }
3834
+
3835
+ var P = local.Promise;
3836
+
3837
+ if (P) {
3838
+ var promiseToString = null;
3839
+ try {
3840
+ promiseToString = Object.prototype.toString.call(P.resolve());
3841
+ } catch (e) {
3842
+ // silently ignored
3843
+ }
3844
+
3845
+ if (promiseToString === '[object Promise]' && !P.cast) {
3846
+ return;
3847
+ }
3848
+ }
3849
+
3850
+ local.Promise = Promise$2;
3851
+ }
3852
+
3853
+ // Strange compat..
3854
+ Promise$2.polyfill = polyfill$1;
3855
+ Promise$2.Promise = Promise$2;
3856
+
3857
+ return Promise$2;
3858
+
3859
+ })));
3860
+
3861
+ //# sourceMappingURL=es6-promise.map
3862
+
3863
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js"), __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js")))
3864
+
3865
+ /***/ }),
3866
+
3867
+ /***/ "./node_modules/ev-emitter/ev-emitter.js":
3868
+ /*!***********************************************!*\
3869
+ !*** ./node_modules/ev-emitter/ev-emitter.js ***!
3870
+ \***********************************************/
3871
+ /*! no static exports found */
3872
+ /***/ (function(module, exports, __webpack_require__) {
3873
+
3874
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
3875
+ * EvEmitter v1.1.0
3876
+ * Lil' event emitter
3877
+ * MIT License
3878
+ */
3879
+
3880
+ /* jshint unused: true, undef: true, strict: true */
3881
+
3882
+ ( function( global, factory ) {
3883
+ // universal module definition
3884
+ /* jshint strict: false */ /* globals define, module, window */
3885
+ if ( true ) {
3886
+ // AMD - RequireJS
3887
+ !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
3888
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
3889
+ (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
3890
+ __WEBPACK_AMD_DEFINE_FACTORY__),
3891
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
3892
+ } else {}
3893
+
3894
+ }( typeof window != 'undefined' ? window : this, function() {
3895
+
3896
+ "use strict";
3897
+
3898
+ function EvEmitter() {}
3899
+
3900
+ var proto = EvEmitter.prototype;
3901
+
3902
+ proto.on = function( eventName, listener ) {
3903
+ if ( !eventName || !listener ) {
3904
+ return;
3905
+ }
3906
+ // set events hash
3907
+ var events = this._events = this._events || {};
3908
+ // set listeners array
3909
+ var listeners = events[ eventName ] = events[ eventName ] || [];
3910
+ // only add once
3911
+ if ( listeners.indexOf( listener ) == -1 ) {
3912
+ listeners.push( listener );
3913
+ }
3914
+
3915
+ return this;
3916
+ };
3917
+
3918
+ proto.once = function( eventName, listener ) {
3919
+ if ( !eventName || !listener ) {
3920
+ return;
3921
+ }
3922
+ // add event
3923
+ this.on( eventName, listener );
3924
+ // set once flag
3925
+ // set onceEvents hash
3926
+ var onceEvents = this._onceEvents = this._onceEvents || {};
3927
+ // set onceListeners object
3928
+ var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};
3929
+ // set flag
3930
+ onceListeners[ listener ] = true;
3931
+
3932
+ return this;
3933
+ };
3934
+
3935
+ proto.off = function( eventName, listener ) {
3936
+ var listeners = this._events && this._events[ eventName ];
3937
+ if ( !listeners || !listeners.length ) {
3938
+ return;
3939
+ }
3940
+ var index = listeners.indexOf( listener );
3941
+ if ( index != -1 ) {
3942
+ listeners.splice( index, 1 );
3943
+ }
3944
+
3945
+ return this;
3946
+ };
3947
+
3948
+ proto.emitEvent = function( eventName, args ) {
3949
+ var listeners = this._events && this._events[ eventName ];
3950
+ if ( !listeners || !listeners.length ) {
3951
+ return;
3952
+ }
3953
+ // copy over to avoid interference if .off() in listener
3954
+ listeners = listeners.slice(0);
3955
+ args = args || [];
3956
+ // once stuff
3957
+ var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
3958
+
3959
+ for ( var i=0; i < listeners.length; i++ ) {
3960
+ var listener = listeners[i]
3961
+ var isOnce = onceListeners && onceListeners[ listener ];
3962
+ if ( isOnce ) {
3963
+ // remove listener
3964
+ // remove before trigger to prevent recursion
3965
+ this.off( eventName, listener );
3966
+ // unset once flag
3967
+ delete onceListeners[ listener ];
3968
+ }
3969
+ // trigger listener
3970
+ listener.apply( this, args );
3971
+ }
3972
+
3973
+ return this;
3974
+ };
3975
+
3976
+ proto.allOff = function() {
3977
+ delete this._events;
3978
+ delete this._onceEvents;
3979
+ };
3980
+
3981
+ return EvEmitter;
3982
+
3983
+ }));
3984
+
3985
+
3986
+ /***/ }),
3987
+
3988
+ /***/ "./node_modules/fbjs/lib/EventListener.js":
3989
+ /*!************************************************!*\
3990
+ !*** ./node_modules/fbjs/lib/EventListener.js ***!
3991
+ \************************************************/
3992
+ /*! no static exports found */
3993
+ /***/ (function(module, exports, __webpack_require__) {
3994
+
3995
+ "use strict";
3996
+
3997
+
3998
+ /**
3999
+ * Copyright (c) 2013-present, Facebook, Inc.
4000
+ *
4001
+ * This source code is licensed under the MIT license found in the
4002
+ * LICENSE file in the root directory of this source tree.
4003
+ *
4004
+ * @typechecks
4005
+ */
4006
+
4007
+ var emptyFunction = __webpack_require__(/*! ./emptyFunction */ "./node_modules/fbjs/lib/emptyFunction.js");
4008
+
4009
+ /**
4010
+ * Upstream version of event listener. Does not take into account specific
4011
+ * nature of platform.
4012
+ */
4013
+ var EventListener = {
4014
+ /**
4015
+ * Listen to DOM events during the bubble phase.
4016
+ *
4017
+ * @param {DOMEventTarget} target DOM element to register listener on.
4018
+ * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.
4019
+ * @param {function} callback Callback function.
4020
+ * @return {object} Object with a `remove` method.
4021
+ */
4022
+ listen: function listen(target, eventType, callback) {
4023
+ if (target.addEventListener) {
4024
+ target.addEventListener(eventType, callback, false);
4025
+ return {
4026
+ remove: function remove() {
4027
+ target.removeEventListener(eventType, callback, false);
4028
+ }
4029
+ };
4030
+ } else if (target.attachEvent) {
4031
+ target.attachEvent('on' + eventType, callback);
4032
+ return {
4033
+ remove: function remove() {
4034
+ target.detachEvent('on' + eventType, callback);
4035
+ }
4036
+ };
4037
+ }
4038
+ },
4039
+
4040
+ /**
4041
+ * Listen to DOM events during the capture phase.
4042
+ *
4043
+ * @param {DOMEventTarget} target DOM element to register listener on.
4044
+ * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.
4045
+ * @param {function} callback Callback function.
4046
+ * @return {object} Object with a `remove` method.
4047
+ */
4048
+ capture: function capture(target, eventType, callback) {
4049
+ if (target.addEventListener) {
4050
+ target.addEventListener(eventType, callback, true);
4051
+ return {
4052
+ remove: function remove() {
4053
+ target.removeEventListener(eventType, callback, true);
4054
+ }
4055
+ };
4056
+ } else {
4057
+ if (true) {
4058
+ console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');
4059
+ }
4060
+ return {
4061
+ remove: emptyFunction
4062
+ };
4063
+ }
4064
+ },
4065
+
4066
+ registerDefault: function registerDefault() {}
4067
+ };
4068
+
4069
+ module.exports = EventListener;
4070
+
4071
+ /***/ }),
4072
+
4073
+ /***/ "./node_modules/fbjs/lib/ExecutionEnvironment.js":
4074
+ /*!*******************************************************!*\
4075
+ !*** ./node_modules/fbjs/lib/ExecutionEnvironment.js ***!
4076
+ \*******************************************************/
4077
+ /*! no static exports found */
4078
+ /***/ (function(module, exports, __webpack_require__) {
4079
+
4080
+ "use strict";
4081
+ /**
4082
+ * Copyright (c) 2013-present, Facebook, Inc.
4083
+ *
4084
+ * This source code is licensed under the MIT license found in the
4085
+ * LICENSE file in the root directory of this source tree.
4086
+ *
4087
+ */
4088
+
4089
+
4090
+
4091
+ var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
4092
+
4093
+ /**
4094
+ * Simple, lightweight module assisting with the detection and context of
4095
+ * Worker. Helps avoid circular dependencies and allows code to reason about
4096
+ * whether or not they are in a Worker, even if they never include the main
4097
+ * `ReactWorker` dependency.
4098
+ */
4099
+ var ExecutionEnvironment = {
4100
+
4101
+ canUseDOM: canUseDOM,
4102
+
4103
+ canUseWorkers: typeof Worker !== 'undefined',
4104
+
4105
+ canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),
4106
+
4107
+ canUseViewport: canUseDOM && !!window.screen,
4108
+
4109
+ isInWorker: !canUseDOM // For now, this is true - might change in the future.
4110
+
4111
+ };
4112
+
4113
+ module.exports = ExecutionEnvironment;
4114
+
4115
+ /***/ }),
4116
+
4117
+ /***/ "./node_modules/fbjs/lib/camelize.js":
4118
+ /*!*******************************************!*\
4119
+ !*** ./node_modules/fbjs/lib/camelize.js ***!
4120
+ \*******************************************/
4121
+ /*! no static exports found */
4122
+ /***/ (function(module, exports, __webpack_require__) {
4123
+
4124
+ "use strict";
4125
+
4126
+
4127
+ /**
4128
+ * Copyright (c) 2013-present, Facebook, Inc.
4129
+ *
4130
+ * This source code is licensed under the MIT license found in the
4131
+ * LICENSE file in the root directory of this source tree.
4132
+ *
4133
+ * @typechecks
4134
+ */
4135
+
4136
+ var _hyphenPattern = /-(.)/g;
4137
+
4138
+ /**
4139
+ * Camelcases a hyphenated string, for example:
4140
+ *
4141
+ * > camelize('background-color')
4142
+ * < "backgroundColor"
4143
+ *
4144
+ * @param {string} string
4145
+ * @return {string}
4146
+ */
4147
+ function camelize(string) {
4148
+ return string.replace(_hyphenPattern, function (_, character) {
4149
+ return character.toUpperCase();
4150
+ });
4151
+ }
4152
+
4153
+ module.exports = camelize;
4154
+
4155
+ /***/ }),
4156
+
4157
+ /***/ "./node_modules/fbjs/lib/camelizeStyleName.js":
4158
+ /*!****************************************************!*\
4159
+ !*** ./node_modules/fbjs/lib/camelizeStyleName.js ***!
4160
+ \****************************************************/
4161
+ /*! no static exports found */
4162
+ /***/ (function(module, exports, __webpack_require__) {
4163
+
4164
+ "use strict";
4165
+ /**
4166
+ * Copyright (c) 2013-present, Facebook, Inc.
4167
+ *
4168
+ * This source code is licensed under the MIT license found in the
4169
+ * LICENSE file in the root directory of this source tree.
4170
+ *
4171
+ * @typechecks
4172
+ */
4173
+
4174
+
4175
+
4176
+ var camelize = __webpack_require__(/*! ./camelize */ "./node_modules/fbjs/lib/camelize.js");
4177
+
4178
+ var msPattern = /^-ms-/;
4179
+
4180
+ /**
4181
+ * Camelcases a hyphenated CSS property name, for example:
4182
+ *
4183
+ * > camelizeStyleName('background-color')
4184
+ * < "backgroundColor"
4185
+ * > camelizeStyleName('-moz-transition')
4186
+ * < "MozTransition"
4187
+ * > camelizeStyleName('-ms-transition')
4188
+ * < "msTransition"
4189
+ *
4190
+ * As Andi Smith suggests
4191
+ * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix
4192
+ * is converted to lowercase `ms`.
4193
+ *
4194
+ * @param {string} string
4195
+ * @return {string}
4196
+ */
4197
+ function camelizeStyleName(string) {
4198
+ return camelize(string.replace(msPattern, 'ms-'));
4199
+ }
4200
+
4201
+ module.exports = camelizeStyleName;
4202
+
4203
+ /***/ }),
4204
+
4205
+ /***/ "./node_modules/fbjs/lib/containsNode.js":
4206
+ /*!***********************************************!*\
4207
+ !*** ./node_modules/fbjs/lib/containsNode.js ***!
4208
+ \***********************************************/
4209
+ /*! no static exports found */
4210
+ /***/ (function(module, exports, __webpack_require__) {
4211
+
4212
+ "use strict";
4213
+
4214
+
4215
+ /**
4216
+ * Copyright (c) 2013-present, Facebook, Inc.
4217
+ *
4218
+ * This source code is licensed under the MIT license found in the
4219
+ * LICENSE file in the root directory of this source tree.
4220
+ *
4221
+ *
4222
+ */
4223
+
4224
+ var isTextNode = __webpack_require__(/*! ./isTextNode */ "./node_modules/fbjs/lib/isTextNode.js");
4225
+
4226
+ /*eslint-disable no-bitwise */
4227
+
4228
+ /**
4229
+ * Checks if a given DOM node contains or is another DOM node.
4230
+ */
4231
+ function containsNode(outerNode, innerNode) {
4232
+ if (!outerNode || !innerNode) {
4233
+ return false;
4234
+ } else if (outerNode === innerNode) {
4235
+ return true;
4236
+ } else if (isTextNode(outerNode)) {
4237
+ return false;
4238
+ } else if (isTextNode(innerNode)) {
4239
+ return containsNode(outerNode, innerNode.parentNode);
4240
+ } else if ('contains' in outerNode) {
4241
+ return outerNode.contains(innerNode);
4242
+ } else if (outerNode.compareDocumentPosition) {
4243
+ return !!(outerNode.compareDocumentPosition(innerNode) & 16);
4244
+ } else {
4245
+ return false;
4246
+ }
4247
+ }
4248
+
4249
+ module.exports = containsNode;
4250
+
4251
+ /***/ }),
4252
+
4253
+ /***/ "./node_modules/fbjs/lib/createArrayFromMixed.js":
4254
+ /*!*******************************************************!*\
4255
+ !*** ./node_modules/fbjs/lib/createArrayFromMixed.js ***!
4256
+ \*******************************************************/
4257
+ /*! no static exports found */
4258
+ /***/ (function(module, exports, __webpack_require__) {
4259
+
4260
+ "use strict";
4261
+
4262
+
4263
+ /**
4264
+ * Copyright (c) 2013-present, Facebook, Inc.
4265
+ *
4266
+ * This source code is licensed under the MIT license found in the
4267
+ * LICENSE file in the root directory of this source tree.
4268
+ *
4269
+ * @typechecks
4270
+ */
4271
+
4272
+ var invariant = __webpack_require__(/*! ./invariant */ "./node_modules/fbjs/lib/invariant.js");
4273
+
4274
+ /**
4275
+ * Convert array-like objects to arrays.
4276
+ *
4277
+ * This API assumes the caller knows the contents of the data type. For less
4278
+ * well defined inputs use createArrayFromMixed.
4279
+ *
4280
+ * @param {object|function|filelist} obj
4281
+ * @return {array}
4282
+ */
4283
+ function toArray(obj) {
4284
+ var length = obj.length;
4285
+
4286
+ // Some browsers builtin objects can report typeof 'function' (e.g. NodeList
4287
+ // in old versions of Safari).
4288
+ !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? true ? invariant(false, 'toArray: Array-like object expected') : undefined : void 0;
4289
+
4290
+ !(typeof length === 'number') ? true ? invariant(false, 'toArray: Object needs a length property') : undefined : void 0;
4291
+
4292
+ !(length === 0 || length - 1 in obj) ? true ? invariant(false, 'toArray: Object should have keys for indices') : undefined : void 0;
4293
+
4294
+ !(typeof obj.callee !== 'function') ? true ? invariant(false, 'toArray: Object can\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : undefined : void 0;
4295
+
4296
+ // Old IE doesn't give collections access to hasOwnProperty. Assume inputs
4297
+ // without method will throw during the slice call and skip straight to the
4298
+ // fallback.
4299
+ if (obj.hasOwnProperty) {
4300
+ try {
4301
+ return Array.prototype.slice.call(obj);
4302
+ } catch (e) {
4303
+ // IE < 9 does not support Array#slice on collections objects
4304
+ }
4305
+ }
4306
+
4307
+ // Fall back to copying key by key. This assumes all keys have a value,
4308
+ // so will not preserve sparsely populated inputs.
4309
+ var ret = Array(length);
4310
+ for (var ii = 0; ii < length; ii++) {
4311
+ ret[ii] = obj[ii];
4312
+ }
4313
+ return ret;
4314
+ }
4315
+
4316
+ /**
4317
+ * Perform a heuristic test to determine if an object is "array-like".
4318
+ *
4319
+ * A monk asked Joshu, a Zen master, "Has a dog Buddha nature?"
4320
+ * Joshu replied: "Mu."
4321
+ *
4322
+ * This function determines if its argument has "array nature": it returns
4323
+ * true if the argument is an actual array, an `arguments' object, or an
4324
+ * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).
4325
+ *
4326
+ * It will return false for other array-like objects like Filelist.
4327
+ *
4328
+ * @param {*} obj
4329
+ * @return {boolean}
4330
+ */
4331
+ function hasArrayNature(obj) {
4332
+ return (
4333
+ // not null/false
4334
+ !!obj && (
4335
+ // arrays are objects, NodeLists are functions in Safari
4336
+ typeof obj == 'object' || typeof obj == 'function') &&
4337
+ // quacks like an array
4338
+ 'length' in obj &&
4339
+ // not window
4340
+ !('setInterval' in obj) &&
4341
+ // no DOM node should be considered an array-like
4342
+ // a 'select' element has 'length' and 'item' properties on IE8
4343
+ typeof obj.nodeType != 'number' && (
4344
+ // a real array
4345
+ Array.isArray(obj) ||
4346
+ // arguments
4347
+ 'callee' in obj ||
4348
+ // HTMLCollection/NodeList
4349
+ 'item' in obj)
4350
+ );
4351
+ }
4352
+
4353
+ /**
4354
+ * Ensure that the argument is an array by wrapping it in an array if it is not.
4355
+ * Creates a copy of the argument if it is already an array.
4356
+ *
4357
+ * This is mostly useful idiomatically:
4358
+ *
4359
+ * var createArrayFromMixed = require('createArrayFromMixed');
4360
+ *
4361
+ * function takesOneOrMoreThings(things) {
4362
+ * things = createArrayFromMixed(things);
4363
+ * ...
4364
+ * }
4365
+ *
4366
+ * This allows you to treat `things' as an array, but accept scalars in the API.
4367
+ *
4368
+ * If you need to convert an array-like object, like `arguments`, into an array
4369
+ * use toArray instead.
4370
+ *
4371
+ * @param {*} obj
4372
+ * @return {array}
4373
+ */
4374
+ function createArrayFromMixed(obj) {
4375
+ if (!hasArrayNature(obj)) {
4376
+ return [obj];
4377
+ } else if (Array.isArray(obj)) {
4378
+ return obj.slice();
4379
+ } else {
4380
+ return toArray(obj);
4381
+ }
4382
+ }
4383
+
4384
+ module.exports = createArrayFromMixed;
4385
+
4386
+ /***/ }),
4387
+
4388
+ /***/ "./node_modules/fbjs/lib/createNodesFromMarkup.js":
4389
+ /*!********************************************************!*\
4390
+ !*** ./node_modules/fbjs/lib/createNodesFromMarkup.js ***!
4391
+ \********************************************************/
4392
+ /*! no static exports found */
4393
+ /***/ (function(module, exports, __webpack_require__) {
4394
+
4395
+ "use strict";
4396
+
4397
+
4398
+ /**
4399
+ * Copyright (c) 2013-present, Facebook, Inc.
4400
+ *
4401
+ * This source code is licensed under the MIT license found in the
4402
+ * LICENSE file in the root directory of this source tree.
4403
+ *
4404
+ * @typechecks
4405
+ */
4406
+
4407
+ /*eslint-disable fb-www/unsafe-html*/
4408
+
4409
+ var ExecutionEnvironment = __webpack_require__(/*! ./ExecutionEnvironment */ "./node_modules/fbjs/lib/ExecutionEnvironment.js");
4410
+
4411
+ var createArrayFromMixed = __webpack_require__(/*! ./createArrayFromMixed */ "./node_modules/fbjs/lib/createArrayFromMixed.js");
4412
+ var getMarkupWrap = __webpack_require__(/*! ./getMarkupWrap */ "./node_modules/fbjs/lib/getMarkupWrap.js");
4413
+ var invariant = __webpack_require__(/*! ./invariant */ "./node_modules/fbjs/lib/invariant.js");
4414
+
4415
+ /**
4416
+ * Dummy container used to render all markup.
4417
+ */
4418
+ var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;
4419
+
4420
+ /**
4421
+ * Pattern used by `getNodeName`.
4422
+ */
4423
+ var nodeNamePattern = /^\s*<(\w+)/;
4424
+
4425
+ /**
4426
+ * Extracts the `nodeName` of the first element in a string of markup.
4427
+ *
4428
+ * @param {string} markup String of markup.
4429
+ * @return {?string} Node name of the supplied markup.
4430
+ */
4431
+ function getNodeName(markup) {
4432
+ var nodeNameMatch = markup.match(nodeNamePattern);
4433
+ return nodeNameMatch && nodeNameMatch[1].toLowerCase();
4434
+ }
4435
+
4436
+ /**
4437
+ * Creates an array containing the nodes rendered from the supplied markup. The
4438
+ * optionally supplied `handleScript` function will be invoked once for each
4439
+ * <script> element that is rendered. If no `handleScript` function is supplied,
4440
+ * an exception is thrown if any <script> elements are rendered.
4441
+ *
4442
+ * @param {string} markup A string of valid HTML markup.
4443
+ * @param {?function} handleScript Invoked once for each rendered <script>.
4444
+ * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes.
4445
+ */
4446
+ function createNodesFromMarkup(markup, handleScript) {
4447
+ var node = dummyNode;
4448
+ !!!dummyNode ? true ? invariant(false, 'createNodesFromMarkup dummy not initialized') : undefined : void 0;
4449
+ var nodeName = getNodeName(markup);
4450
+
4451
+ var wrap = nodeName && getMarkupWrap(nodeName);
4452
+ if (wrap) {
4453
+ node.innerHTML = wrap[1] + markup + wrap[2];
4454
+
4455
+ var wrapDepth = wrap[0];
4456
+ while (wrapDepth--) {
4457
+ node = node.lastChild;
4458
+ }
4459
+ } else {
4460
+ node.innerHTML = markup;
4461
+ }
4462
+
4463
+ var scripts = node.getElementsByTagName('script');
4464
+ if (scripts.length) {
4465
+ !handleScript ? true ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : undefined : void 0;
4466
+ createArrayFromMixed(scripts).forEach(handleScript);
4467
+ }
4468
+
4469
+ var nodes = Array.from(node.childNodes);
4470
+ while (node.lastChild) {
4471
+ node.removeChild(node.lastChild);
4472
+ }
4473
+ return nodes;
4474
+ }
4475
+
4476
+ module.exports = createNodesFromMarkup;
4477
+
4478
+ /***/ }),
4479
+
4480
+ /***/ "./node_modules/fbjs/lib/emptyFunction.js":
4481
+ /*!************************************************!*\
4482
+ !*** ./node_modules/fbjs/lib/emptyFunction.js ***!
4483
+ \************************************************/
4484
+ /*! no static exports found */
4485
+ /***/ (function(module, exports, __webpack_require__) {
4486
+
4487
+ "use strict";
4488
+
4489
+
4490
+ /**
4491
+ * Copyright (c) 2013-present, Facebook, Inc.
4492
+ *
4493
+ * This source code is licensed under the MIT license found in the
4494
+ * LICENSE file in the root directory of this source tree.
4495
+ *
4496
+ *
4497
+ */
4498
+
4499
+ function makeEmptyFunction(arg) {
4500
+ return function () {
4501
+ return arg;
4502
+ };
4503
+ }
4504
+
4505
+ /**
4506
+ * This function accepts and discards inputs; it has no side effects. This is
4507
+ * primarily useful idiomatically for overridable function endpoints which
4508
+ * always need to be callable, since JS lacks a null-call idiom ala Cocoa.
4509
+ */
4510
+ var emptyFunction = function emptyFunction() {};
4511
+
4512
+ emptyFunction.thatReturns = makeEmptyFunction;
4513
+ emptyFunction.thatReturnsFalse = makeEmptyFunction(false);
4514
+ emptyFunction.thatReturnsTrue = makeEmptyFunction(true);
4515
+ emptyFunction.thatReturnsNull = makeEmptyFunction(null);
4516
+ emptyFunction.thatReturnsThis = function () {
4517
+ return this;
4518
+ };
4519
+ emptyFunction.thatReturnsArgument = function (arg) {
4520
+ return arg;
4521
+ };
4522
+
4523
+ module.exports = emptyFunction;
4524
+
4525
+ /***/ }),
4526
+
4527
+ /***/ "./node_modules/fbjs/lib/emptyObject.js":
4528
+ /*!**********************************************!*\
4529
+ !*** ./node_modules/fbjs/lib/emptyObject.js ***!
4530
+ \**********************************************/
4531
+ /*! no static exports found */
4532
+ /***/ (function(module, exports, __webpack_require__) {
4533
+
4534
+ "use strict";
4535
+ /**
4536
+ * Copyright (c) 2013-present, Facebook, Inc.
4537
+ *
4538
+ * This source code is licensed under the MIT license found in the
4539
+ * LICENSE file in the root directory of this source tree.
4540
+ *
4541
+ */
4542
+
4543
+
4544
+
4545
+ var emptyObject = {};
4546
+
4547
+ if (true) {
4548
+ Object.freeze(emptyObject);
4549
+ }
4550
+
4551
+ module.exports = emptyObject;
4552
+
4553
+ /***/ }),
4554
+
4555
+ /***/ "./node_modules/fbjs/lib/focusNode.js":
4556
+ /*!********************************************!*\
4557
+ !*** ./node_modules/fbjs/lib/focusNode.js ***!
4558
+ \********************************************/
4559
+ /*! no static exports found */
4560
+ /***/ (function(module, exports, __webpack_require__) {
4561
+
4562
+ "use strict";
4563
+ /**
4564
+ * Copyright (c) 2013-present, Facebook, Inc.
4565
+ *
4566
+ * This source code is licensed under the MIT license found in the
4567
+ * LICENSE file in the root directory of this source tree.
4568
+ *
4569
+ */
4570
+
4571
+
4572
+
4573
+ /**
4574
+ * @param {DOMElement} node input/textarea to focus
4575
+ */
4576
+
4577
+ function focusNode(node) {
4578
+ // IE8 can throw "Can't move focus to the control because it is invisible,
4579
+ // not enabled, or of a type that does not accept the focus." for all kinds of
4580
+ // reasons that are too expensive and fragile to test.
4581
+ try {
4582
+ node.focus();
4583
+ } catch (e) {}
4584
+ }
4585
+
4586
+ module.exports = focusNode;
4587
+
4588
+ /***/ }),
4589
+
4590
+ /***/ "./node_modules/fbjs/lib/getActiveElement.js":
4591
+ /*!***************************************************!*\
4592
+ !*** ./node_modules/fbjs/lib/getActiveElement.js ***!
4593
+ \***************************************************/
4594
+ /*! no static exports found */
4595
+ /***/ (function(module, exports, __webpack_require__) {
4596
+
4597
+ "use strict";
4598
+
4599
+
4600
+ /**
4601
+ * Copyright (c) 2013-present, Facebook, Inc.
4602
+ *
4603
+ * This source code is licensed under the MIT license found in the
4604
+ * LICENSE file in the root directory of this source tree.
4605
+ *
4606
+ * @typechecks
4607
+ */
4608
+
4609
+ /* eslint-disable fb-www/typeof-undefined */
4610
+
4611
+ /**
4612
+ * Same as document.activeElement but wraps in a try-catch block. In IE it is
4613
+ * not safe to call document.activeElement if there is nothing focused.
4614
+ *
4615
+ * The activeElement will be null only if the document or document body is not
4616
+ * yet defined.
4617
+ *
4618
+ * @param {?DOMDocument} doc Defaults to current document.
4619
+ * @return {?DOMElement}
4620
+ */
4621
+ function getActiveElement(doc) /*?DOMElement*/{
4622
+ doc = doc || (typeof document !== 'undefined' ? document : undefined);
4623
+ if (typeof doc === 'undefined') {
4624
+ return null;
4625
+ }
4626
+ try {
4627
+ return doc.activeElement || doc.body;
4628
+ } catch (e) {
4629
+ return doc.body;
4630
+ }
4631
+ }
4632
+
4633
+ module.exports = getActiveElement;
4634
+
4635
+ /***/ }),
4636
+
4637
+ /***/ "./node_modules/fbjs/lib/getMarkupWrap.js":
4638
+ /*!************************************************!*\
4639
+ !*** ./node_modules/fbjs/lib/getMarkupWrap.js ***!
4640
+ \************************************************/
4641
+ /*! no static exports found */
4642
+ /***/ (function(module, exports, __webpack_require__) {
4643
+
4644
+ "use strict";
4645
+
4646
+
4647
+ /**
4648
+ * Copyright (c) 2013-present, Facebook, Inc.
4649
+ *
4650
+ * This source code is licensed under the MIT license found in the
4651
+ * LICENSE file in the root directory of this source tree.
4652
+ *
4653
+ */
4654
+
4655
+ /*eslint-disable fb-www/unsafe-html */
4656
+
4657
+ var ExecutionEnvironment = __webpack_require__(/*! ./ExecutionEnvironment */ "./node_modules/fbjs/lib/ExecutionEnvironment.js");
4658
+
4659
+ var invariant = __webpack_require__(/*! ./invariant */ "./node_modules/fbjs/lib/invariant.js");
4660
+
4661
+ /**
4662
+ * Dummy container used to detect which wraps are necessary.
4663
+ */
4664
+ var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;
4665
+
4666
+ /**
4667
+ * Some browsers cannot use `innerHTML` to render certain elements standalone,
4668
+ * so we wrap them, render the wrapped nodes, then extract the desired node.
4669
+ *
4670
+ * In IE8, certain elements cannot render alone, so wrap all elements ('*').
4671
+ */
4672
+
4673
+ var shouldWrap = {};
4674
+
4675
+ var selectWrap = [1, '<select multiple="true">', '</select>'];
4676
+ var tableWrap = [1, '<table>', '</table>'];
4677
+ var trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>'];
4678
+
4679
+ var svgWrap = [1, '<svg xmlns="http://www.w3.org/2000/svg">', '</svg>'];
4680
+
4681
+ var markupWrap = {
4682
+ '*': [1, '?<div>', '</div>'],
4683
+
4684
+ 'area': [1, '<map>', '</map>'],
4685
+ 'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],
4686
+ 'legend': [1, '<fieldset>', '</fieldset>'],
4687
+ 'param': [1, '<object>', '</object>'],
4688
+ 'tr': [2, '<table><tbody>', '</tbody></table>'],
4689
+
4690
+ 'optgroup': selectWrap,
4691
+ 'option': selectWrap,
4692
+
4693
+ 'caption': tableWrap,
4694
+ 'colgroup': tableWrap,
4695
+ 'tbody': tableWrap,
4696
+ 'tfoot': tableWrap,
4697
+ 'thead': tableWrap,
4698
+
4699
+ 'td': trWrap,
4700
+ 'th': trWrap
4701
+ };
4702
+
4703
+ // Initialize the SVG elements since we know they'll always need to be wrapped
4704
+ // consistently. If they are created inside a <div> they will be initialized in
4705
+ // the wrong namespace (and will not display).
4706
+ var svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan'];
4707
+ svgElements.forEach(function (nodeName) {
4708
+ markupWrap[nodeName] = svgWrap;
4709
+ shouldWrap[nodeName] = true;
4710
+ });
4711
+
4712
+ /**
4713
+ * Gets the markup wrap configuration for the supplied `nodeName`.
4714
+ *
4715
+ * NOTE: This lazily detects which wraps are necessary for the current browser.
4716
+ *
4717
+ * @param {string} nodeName Lowercase `nodeName`.
4718
+ * @return {?array} Markup wrap configuration, if applicable.
4719
+ */
4720
+ function getMarkupWrap(nodeName) {
4721
+ !!!dummyNode ? true ? invariant(false, 'Markup wrapping node not initialized') : undefined : void 0;
4722
+ if (!markupWrap.hasOwnProperty(nodeName)) {
4723
+ nodeName = '*';
4724
+ }
4725
+ if (!shouldWrap.hasOwnProperty(nodeName)) {
4726
+ if (nodeName === '*') {
4727
+ dummyNode.innerHTML = '<link />';
4728
+ } else {
4729
+ dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>';
4730
+ }
4731
+ shouldWrap[nodeName] = !dummyNode.firstChild;
4732
+ }
4733
+ return shouldWrap[nodeName] ? markupWrap[nodeName] : null;
4734
+ }
4735
+
4736
+ module.exports = getMarkupWrap;
4737
+
4738
+ /***/ }),
4739
+
4740
+ /***/ "./node_modules/fbjs/lib/getUnboundedScrollPosition.js":
4741
+ /*!*************************************************************!*\
4742
+ !*** ./node_modules/fbjs/lib/getUnboundedScrollPosition.js ***!
4743
+ \*************************************************************/
4744
+ /*! no static exports found */
4745
+ /***/ (function(module, exports, __webpack_require__) {
4746
+
4747
+ "use strict";
4748
+ /**
4749
+ * Copyright (c) 2013-present, Facebook, Inc.
4750
+ *
4751
+ * This source code is licensed under the MIT license found in the
4752
+ * LICENSE file in the root directory of this source tree.
4753
+ *
4754
+ * @typechecks
4755
+ */
4756
+
4757
+
4758
+
4759
+ /**
4760
+ * Gets the scroll position of the supplied element or window.
4761
+ *
4762
+ * The return values are unbounded, unlike `getScrollPosition`. This means they
4763
+ * may be negative or exceed the element boundaries (which is possible using
4764
+ * inertial scrolling).
4765
+ *
4766
+ * @param {DOMWindow|DOMElement} scrollable
4767
+ * @return {object} Map with `x` and `y` keys.
4768
+ */
4769
+
4770
+ function getUnboundedScrollPosition(scrollable) {
4771
+ if (scrollable.Window && scrollable instanceof scrollable.Window) {
4772
+ return {
4773
+ x: scrollable.pageXOffset || scrollable.document.documentElement.scrollLeft,
4774
+ y: scrollable.pageYOffset || scrollable.document.documentElement.scrollTop
4775
+ };
4776
+ }
4777
+ return {
4778
+ x: scrollable.scrollLeft,
4779
+ y: scrollable.scrollTop
4780
+ };
4781
+ }
4782
+
4783
+ module.exports = getUnboundedScrollPosition;
4784
+
4785
+ /***/ }),
4786
+
4787
+ /***/ "./node_modules/fbjs/lib/hyphenate.js":
4788
+ /*!********************************************!*\
4789
+ !*** ./node_modules/fbjs/lib/hyphenate.js ***!
4790
+ \********************************************/
4791
+ /*! no static exports found */
4792
+ /***/ (function(module, exports, __webpack_require__) {
4793
+
4794
+ "use strict";
4795
+
4796
+
4797
+ /**
4798
+ * Copyright (c) 2013-present, Facebook, Inc.
4799
+ *
4800
+ * This source code is licensed under the MIT license found in the
4801
+ * LICENSE file in the root directory of this source tree.
4802
+ *
4803
+ * @typechecks
4804
+ */
4805
+
4806
+ var _uppercasePattern = /([A-Z])/g;
4807
+
4808
+ /**
4809
+ * Hyphenates a camelcased string, for example:
4810
+ *
4811
+ * > hyphenate('backgroundColor')
4812
+ * < "background-color"
4813
+ *
4814
+ * For CSS style names, use `hyphenateStyleName` instead which works properly
4815
+ * with all vendor prefixes, including `ms`.
4816
+ *
4817
+ * @param {string} string
4818
+ * @return {string}
4819
+ */
4820
+ function hyphenate(string) {
4821
+ return string.replace(_uppercasePattern, '-$1').toLowerCase();
4822
+ }
4823
+
4824
+ module.exports = hyphenate;
4825
+
4826
+ /***/ }),
4827
+
4828
+ /***/ "./node_modules/fbjs/lib/hyphenateStyleName.js":
4829
+ /*!*****************************************************!*\
4830
+ !*** ./node_modules/fbjs/lib/hyphenateStyleName.js ***!
4831
+ \*****************************************************/
4832
+ /*! no static exports found */
4833
+ /***/ (function(module, exports, __webpack_require__) {
4834
+
4835
+ "use strict";
4836
+ /**
4837
+ * Copyright (c) 2013-present, Facebook, Inc.
4838
+ *
4839
+ * This source code is licensed under the MIT license found in the
4840
+ * LICENSE file in the root directory of this source tree.
4841
+ *
4842
+ * @typechecks
4843
+ */
4844
+
4845
+
4846
+
4847
+ var hyphenate = __webpack_require__(/*! ./hyphenate */ "./node_modules/fbjs/lib/hyphenate.js");
4848
+
4849
+ var msPattern = /^ms-/;
4850
+
4851
+ /**
4852
+ * Hyphenates a camelcased CSS property name, for example:
4853
+ *
4854
+ * > hyphenateStyleName('backgroundColor')
4855
+ * < "background-color"
4856
+ * > hyphenateStyleName('MozTransition')
4857
+ * < "-moz-transition"
4858
+ * > hyphenateStyleName('msTransition')
4859
+ * < "-ms-transition"
4860
+ *
4861
+ * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix
4862
+ * is converted to `-ms-`.
4863
+ *
4864
+ * @param {string} string
4865
+ * @return {string}
4866
+ */
4867
+ function hyphenateStyleName(string) {
4868
+ return hyphenate(string).replace(msPattern, '-ms-');
4869
+ }
4870
+
4871
+ module.exports = hyphenateStyleName;
4872
+
4873
+ /***/ }),
4874
+
4875
+ /***/ "./node_modules/fbjs/lib/invariant.js":
4876
+ /*!********************************************!*\
4877
+ !*** ./node_modules/fbjs/lib/invariant.js ***!
4878
+ \********************************************/
4879
+ /*! no static exports found */
4880
+ /***/ (function(module, exports, __webpack_require__) {
4881
+
4882
+ "use strict";
4883
+ /**
4884
+ * Copyright (c) 2013-present, Facebook, Inc.
4885
+ *
4886
+ * This source code is licensed under the MIT license found in the
4887
+ * LICENSE file in the root directory of this source tree.
4888
+ *
4889
+ */
4890
+
4891
+
4892
+
4893
+ /**
4894
+ * Use invariant() to assert state which your program assumes to be true.
4895
+ *
4896
+ * Provide sprintf-style format (only %s is supported) and arguments
4897
+ * to provide information about what broke and what you were
4898
+ * expecting.
4899
+ *
4900
+ * The invariant message will be stripped in production, but the invariant
4901
+ * will remain to ensure logic does not differ in production.
4902
+ */
4903
+
4904
+ var validateFormat = function validateFormat(format) {};
4905
+
4906
+ if (true) {
4907
+ validateFormat = function validateFormat(format) {
4908
+ if (format === undefined) {
4909
+ throw new Error('invariant requires an error message argument');
4910
+ }
4911
+ };
4912
+ }
4913
+
4914
+ function invariant(condition, format, a, b, c, d, e, f) {
4915
+ validateFormat(format);
4916
+
4917
+ if (!condition) {
4918
+ var error;
4919
+ if (format === undefined) {
4920
+ error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
4921
+ } else {
4922
+ var args = [a, b, c, d, e, f];
4923
+ var argIndex = 0;
4924
+ error = new Error(format.replace(/%s/g, function () {
4925
+ return args[argIndex++];
4926
+ }));
4927
+ error.name = 'Invariant Violation';
4928
+ }
4929
+
4930
+ error.framesToPop = 1; // we don't care about invariant's own frame
4931
+ throw error;
4932
+ }
4933
+ }
4934
+
4935
+ module.exports = invariant;
4936
+
4937
+ /***/ }),
4938
+
4939
+ /***/ "./node_modules/fbjs/lib/isNode.js":
4940
+ /*!*****************************************!*\
4941
+ !*** ./node_modules/fbjs/lib/isNode.js ***!
4942
+ \*****************************************/
4943
+ /*! no static exports found */
4944
+ /***/ (function(module, exports, __webpack_require__) {
4945
+
4946
+ "use strict";
4947
+
4948
+
4949
+ /**
4950
+ * Copyright (c) 2013-present, Facebook, Inc.
4951
+ *
4952
+ * This source code is licensed under the MIT license found in the
4953
+ * LICENSE file in the root directory of this source tree.
4954
+ *
4955
+ * @typechecks
4956
+ */
4957
+
4958
+ /**
4959
+ * @param {*} object The object to check.
4960
+ * @return {boolean} Whether or not the object is a DOM node.
4961
+ */
4962
+ function isNode(object) {
4963
+ var doc = object ? object.ownerDocument || object : document;
4964
+ var defaultView = doc.defaultView || window;
4965
+ return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));
4966
+ }
4967
+
4968
+ module.exports = isNode;
4969
+
4970
+ /***/ }),
4971
+
4972
+ /***/ "./node_modules/fbjs/lib/isTextNode.js":
4973
+ /*!*********************************************!*\
4974
+ !*** ./node_modules/fbjs/lib/isTextNode.js ***!
4975
+ \*********************************************/
4976
+ /*! no static exports found */
4977
+ /***/ (function(module, exports, __webpack_require__) {
4978
+
4979
+ "use strict";
4980
+
4981
+
4982
+ /**
4983
+ * Copyright (c) 2013-present, Facebook, Inc.
4984
+ *
4985
+ * This source code is licensed under the MIT license found in the
4986
+ * LICENSE file in the root directory of this source tree.
4987
+ *
4988
+ * @typechecks
4989
+ */
4990
+
4991
+ var isNode = __webpack_require__(/*! ./isNode */ "./node_modules/fbjs/lib/isNode.js");
4992
+
4993
+ /**
4994
+ * @param {*} object The object to check.
4995
+ * @return {boolean} Whether or not the object is a DOM text node.
4996
+ */
4997
+ function isTextNode(object) {
4998
+ return isNode(object) && object.nodeType == 3;
4999
+ }
5000
+
5001
+ module.exports = isTextNode;
5002
+
5003
+ /***/ }),
5004
+
5005
+ /***/ "./node_modules/fbjs/lib/memoizeStringOnly.js":
5006
+ /*!****************************************************!*\
5007
+ !*** ./node_modules/fbjs/lib/memoizeStringOnly.js ***!
5008
+ \****************************************************/
5009
+ /*! no static exports found */
5010
+ /***/ (function(module, exports, __webpack_require__) {
5011
+
5012
+ "use strict";
5013
+ /**
5014
+ * Copyright (c) 2013-present, Facebook, Inc.
5015
+ *
5016
+ * This source code is licensed under the MIT license found in the
5017
+ * LICENSE file in the root directory of this source tree.
5018
+ *
5019
+ *
5020
+ * @typechecks static-only
5021
+ */
5022
+
5023
+
5024
+
5025
+ /**
5026
+ * Memoizes the return value of a function that accepts one string argument.
5027
+ */
5028
+
5029
+ function memoizeStringOnly(callback) {
5030
+ var cache = {};
5031
+ return function (string) {
5032
+ if (!cache.hasOwnProperty(string)) {
5033
+ cache[string] = callback.call(this, string);
5034
+ }
5035
+ return cache[string];
5036
+ };
5037
+ }
5038
+
5039
+ module.exports = memoizeStringOnly;
5040
+
5041
+ /***/ }),
5042
+
5043
+ /***/ "./node_modules/fbjs/lib/performance.js":
5044
+ /*!**********************************************!*\
5045
+ !*** ./node_modules/fbjs/lib/performance.js ***!
5046
+ \**********************************************/
5047
+ /*! no static exports found */
5048
+ /***/ (function(module, exports, __webpack_require__) {
5049
+
5050
+ "use strict";
5051
+ /**
5052
+ * Copyright (c) 2013-present, Facebook, Inc.
5053
+ *
5054
+ * This source code is licensed under the MIT license found in the
5055
+ * LICENSE file in the root directory of this source tree.
5056
+ *
5057
+ * @typechecks
5058
+ */
5059
+
5060
+
5061
+
5062
+ var ExecutionEnvironment = __webpack_require__(/*! ./ExecutionEnvironment */ "./node_modules/fbjs/lib/ExecutionEnvironment.js");
5063
+
5064
+ var performance;
5065
+
5066
+ if (ExecutionEnvironment.canUseDOM) {
5067
+ performance = window.performance || window.msPerformance || window.webkitPerformance;
5068
+ }
5069
+
5070
+ module.exports = performance || {};
5071
+
5072
+ /***/ }),
5073
+
5074
+ /***/ "./node_modules/fbjs/lib/performanceNow.js":
5075
+ /*!*************************************************!*\
5076
+ !*** ./node_modules/fbjs/lib/performanceNow.js ***!
5077
+ \*************************************************/
5078
+ /*! no static exports found */
5079
+ /***/ (function(module, exports, __webpack_require__) {
5080
+
5081
+ "use strict";
5082
+
5083
+
5084
+ /**
5085
+ * Copyright (c) 2013-present, Facebook, Inc.
5086
+ *
5087
+ * This source code is licensed under the MIT license found in the
5088
+ * LICENSE file in the root directory of this source tree.
5089
+ *
5090
+ * @typechecks
5091
+ */
5092
+
5093
+ var performance = __webpack_require__(/*! ./performance */ "./node_modules/fbjs/lib/performance.js");
5094
+
5095
+ var performanceNow;
5096
+
5097
+ /**
5098
+ * Detect if we can use `window.performance.now()` and gracefully fallback to
5099
+ * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now
5100
+ * because of Facebook's testing infrastructure.
5101
+ */
5102
+ if (performance.now) {
5103
+ performanceNow = function performanceNow() {
5104
+ return performance.now();
5105
+ };
5106
+ } else {
5107
+ performanceNow = function performanceNow() {
5108
+ return Date.now();
5109
+ };
5110
+ }
5111
+
5112
+ module.exports = performanceNow;
5113
+
5114
+ /***/ }),
5115
+
5116
+ /***/ "./node_modules/fbjs/lib/shallowEqual.js":
5117
+ /*!***********************************************!*\
5118
+ !*** ./node_modules/fbjs/lib/shallowEqual.js ***!
5119
+ \***********************************************/
5120
+ /*! no static exports found */
5121
+ /***/ (function(module, exports, __webpack_require__) {
5122
+
5123
+ "use strict";
5124
+ /**
5125
+ * Copyright (c) 2013-present, Facebook, Inc.
5126
+ *
5127
+ * This source code is licensed under the MIT license found in the
5128
+ * LICENSE file in the root directory of this source tree.
5129
+ *
5130
+ * @typechecks
5131
+ *
5132
+ */
5133
+
5134
+ /*eslint-disable no-self-compare */
5135
+
5136
+
5137
+
5138
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
5139
+
5140
+ /**
5141
+ * inlined Object.is polyfill to avoid requiring consumers ship their own
5142
+ * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
5143
+ */
5144
+ function is(x, y) {
5145
+ // SameValue algorithm
5146
+ if (x === y) {
5147
+ // Steps 1-5, 7-10
5148
+ // Steps 6.b-6.e: +0 != -0
5149
+ // Added the nonzero y check to make Flow happy, but it is redundant
5150
+ return x !== 0 || y !== 0 || 1 / x === 1 / y;
5151
+ } else {
5152
+ // Step 6.a: NaN == NaN
5153
+ return x !== x && y !== y;
5154
+ }
5155
+ }
5156
+
5157
+ /**
5158
+ * Performs equality by iterating through keys on an object and returning false
5159
+ * when any key has values which are not strictly equal between the arguments.
5160
+ * Returns true when the values of all keys are strictly equal.
5161
+ */
5162
+ function shallowEqual(objA, objB) {
5163
+ if (is(objA, objB)) {
5164
+ return true;
5165
+ }
5166
+
5167
+ if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
5168
+ return false;
5169
+ }
5170
+
5171
+ var keysA = Object.keys(objA);
5172
+ var keysB = Object.keys(objB);
5173
+
5174
+ if (keysA.length !== keysB.length) {
5175
+ return false;
5176
+ }
5177
+
5178
+ // Test for A's keys different from B.
5179
+ for (var i = 0; i < keysA.length; i++) {
5180
+ if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
5181
+ return false;
5182
+ }
5183
+ }
5184
+
5185
+ return true;
5186
+ }
5187
+
5188
+ module.exports = shallowEqual;
5189
+
5190
+ /***/ }),
5191
+
5192
+ /***/ "./node_modules/fbjs/lib/warning.js":
5193
+ /*!******************************************!*\
5194
+ !*** ./node_modules/fbjs/lib/warning.js ***!
5195
+ \******************************************/
5196
+ /*! no static exports found */
5197
+ /***/ (function(module, exports, __webpack_require__) {
5198
+
5199
+ "use strict";
5200
+ /**
5201
+ * Copyright (c) 2014-present, Facebook, Inc.
5202
+ *
5203
+ * This source code is licensed under the MIT license found in the
5204
+ * LICENSE file in the root directory of this source tree.
5205
+ *
5206
+ */
5207
+
5208
+
5209
+
5210
+ var emptyFunction = __webpack_require__(/*! ./emptyFunction */ "./node_modules/fbjs/lib/emptyFunction.js");
5211
+
5212
+ /**
5213
+ * Similar to invariant but only logs a warning if the condition is not met.
5214
+ * This can be used to log issues in development environments in critical
5215
+ * paths. Removing the logging code for production environments will keep the
5216
+ * same logic and follow the same code paths.
5217
+ */
5218
+
5219
+ var warning = emptyFunction;
5220
+
5221
+ if (true) {
5222
+ var printWarning = function printWarning(format) {
5223
+ for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
5224
+ args[_key - 1] = arguments[_key];
5225
+ }
5226
+
5227
+ var argIndex = 0;
5228
+ var message = 'Warning: ' + format.replace(/%s/g, function () {
5229
+ return args[argIndex++];
5230
+ });
5231
+ if (typeof console !== 'undefined') {
5232
+ console.error(message);
5233
+ }
5234
+ try {
5235
+ // --- Welcome to debugging React ---
5236
+ // This error was thrown as a convenience so that you can use this stack
5237
+ // to find the callsite that caused this warning to fire.
5238
+ throw new Error(message);
5239
+ } catch (x) {}
5240
+ };
5241
+
5242
+ warning = function warning(condition, format) {
5243
+ if (format === undefined) {
5244
+ throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
5245
+ }
5246
+
5247
+ if (format.indexOf('Failed Composite propType: ') === 0) {
5248
+ return; // Ignore CompositeComponent proptype check.
5249
+ }
5250
+
5251
+ if (!condition) {
5252
+ for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
5253
+ args[_key2 - 2] = arguments[_key2];
5254
+ }
5255
+
5256
+ printWarning.apply(undefined, [format].concat(args));
5257
+ }
5258
+ };
5259
+ }
5260
+
5261
+ module.exports = warning;
5262
+
5263
+ /***/ }),
5264
+
5265
+ /***/ "./node_modules/fizzy-ui-utils/utils.js":
5266
+ /*!**********************************************!*\
5267
+ !*** ./node_modules/fizzy-ui-utils/utils.js ***!
5268
+ \**********************************************/
5269
+ /*! no static exports found */
5270
+ /***/ (function(module, exports, __webpack_require__) {
5271
+
5272
+ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
5273
+ * Fizzy UI utils v2.0.7
5274
+ * MIT license
5275
+ */
5276
+
5277
+ /*jshint browser: true, undef: true, unused: true, strict: true */
5278
+
5279
+ ( function( window, factory ) {
5280
+ // universal module definition
5281
+ /*jshint strict: false */ /*globals define, module, require */
5282
+
5283
+ if ( true ) {
5284
+ // AMD
5285
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
5286
+ __webpack_require__(/*! desandro-matches-selector/matches-selector */ "./node_modules/desandro-matches-selector/matches-selector.js")
5287
+ ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( matchesSelector ) {
5288
+ return factory( window, matchesSelector );
5289
+ }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
5290
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
5291
+ } else {}
5292
+
5293
+ }( window, function factory( window, matchesSelector ) {
5294
+
5295
+ 'use strict';
5296
+
5297
+ var utils = {};
5298
+
5299
+ // ----- extend ----- //
5300
+
5301
+ // extends objects
5302
+ utils.extend = function( a, b ) {
5303
+ for ( var prop in b ) {
5304
+ a[ prop ] = b[ prop ];
5305
+ }
5306
+ return a;
5307
+ };
5308
+
5309
+ // ----- modulo ----- //
5310
+
5311
+ utils.modulo = function( num, div ) {
5312
+ return ( ( num % div ) + div ) % div;
5313
+ };
5314
+
5315
+ // ----- makeArray ----- //
5316
+
5317
+ var arraySlice = Array.prototype.slice;
5318
+
5319
+ // turn element or nodeList into an array
5320
+ utils.makeArray = function( obj ) {
5321
+ if ( Array.isArray( obj ) ) {
5322
+ // use object if already an array
5323
+ return obj;
5324
+ }
5325
+ // return empty array if undefined or null. #6
5326
+ if ( obj === null || obj === undefined ) {
5327
+ return [];
5328
+ }
5329
+
5330
+ var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';
5331
+ if ( isArrayLike ) {
5332
+ // convert nodeList to array
5333
+ return arraySlice.call( obj );
5334
+ }
5335
+
5336
+ // array of single index
5337
+ return [ obj ];
5338
+ };
5339
+
5340
+ // ----- removeFrom ----- //
5341
+
5342
+ utils.removeFrom = function( ary, obj ) {
5343
+ var index = ary.indexOf( obj );
5344
+ if ( index != -1 ) {
5345
+ ary.splice( index, 1 );
5346
+ }
5347
+ };
5348
+
5349
+ // ----- getParent ----- //
5350
+
5351
+ utils.getParent = function( elem, selector ) {
5352
+ while ( elem.parentNode && elem != document.body ) {
5353
+ elem = elem.parentNode;
5354
+ if ( matchesSelector( elem, selector ) ) {
5355
+ return elem;
5356
+ }
5357
+ }
5358
+ };
5359
+
5360
+ // ----- getQueryElement ----- //
5361
+
5362
+ // use element as selector string
5363
+ utils.getQueryElement = function( elem ) {
5364
+ if ( typeof elem == 'string' ) {
5365
+ return document.querySelector( elem );
5366
+ }
5367
+ return elem;
5368
+ };
5369
+
5370
+ // ----- handleEvent ----- //
5371
+
5372
+ // enable .ontype to trigger from .addEventListener( elem, 'type' )
5373
+ utils.handleEvent = function( event ) {
5374
+ var method = 'on' + event.type;
5375
+ if ( this[ method ] ) {
5376
+ this[ method ]( event );
5377
+ }
5378
+ };
5379
+
5380
+ // ----- filterFindElements ----- //
5381
+
5382
+ utils.filterFindElements = function( elems, selector ) {
5383
+ // make array of elems
5384
+ elems = utils.makeArray( elems );
5385
+ var ffElems = [];
5386
+
5387
+ elems.forEach( function( elem ) {
5388
+ // check that elem is an actual element
5389
+ if ( !( elem instanceof HTMLElement ) ) {
5390
+ return;
5391
+ }
5392
+ // add elem if no selector
5393
+ if ( !selector ) {
5394
+ ffElems.push( elem );
5395
+ return;
5396
+ }
5397
+ // filter & find items if we have a selector
5398
+ // filter
5399
+ if ( matchesSelector( elem, selector ) ) {
5400
+ ffElems.push( elem );
5401
+ }
5402
+ // find children
5403
+ var childElems = elem.querySelectorAll( selector );
5404
+ // concat childElems to filterFound array
5405
+ for ( var i=0; i < childElems.length; i++ ) {
5406
+ ffElems.push( childElems[i] );
5407
+ }
5408
+ });
5409
+
5410
+ return ffElems;
5411
+ };
5412
+
5413
+ // ----- debounceMethod ----- //
5414
+
5415
+ utils.debounceMethod = function( _class, methodName, threshold ) {
5416
+ threshold = threshold || 100;
5417
+ // original method
5418
+ var method = _class.prototype[ methodName ];
5419
+ var timeoutName = methodName + 'Timeout';
5420
+
5421
+ _class.prototype[ methodName ] = function() {
5422
+ var timeout = this[ timeoutName ];
5423
+ clearTimeout( timeout );
5424
+
5425
+ var args = arguments;
5426
+ var _this = this;
5427
+ this[ timeoutName ] = setTimeout( function() {
5428
+ method.apply( _this, args );
5429
+ delete _this[ timeoutName ];
5430
+ }, threshold );
5431
+ };
5432
+ };
5433
+
5434
+ // ----- docReady ----- //
5435
+
5436
+ utils.docReady = function( callback ) {
5437
+ var readyState = document.readyState;
5438
+ if ( readyState == 'complete' || readyState == 'interactive' ) {
5439
+ // do async to allow for other scripts to run. metafizzy/flickity#441
5440
+ setTimeout( callback );
5441
+ } else {
5442
+ document.addEventListener( 'DOMContentLoaded', callback );
5443
+ }
5444
+ };
5445
+
5446
+ // ----- htmlInit ----- //
5447
+
5448
+ // http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/
5449
+ utils.toDashed = function( str ) {
5450
+ return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {
5451
+ return $1 + '-' + $2;
5452
+ }).toLowerCase();
5453
+ };
5454
+
5455
+ var console = window.console;
5456
+ /**
5457
+ * allow user to initialize classes via [data-namespace] or .js-namespace class
5458
+ * htmlInit( Widget, 'widgetName' )
5459
+ * options are parsed from data-namespace-options
5460
+ */
5461
+ utils.htmlInit = function( WidgetClass, namespace ) {
5462
+ utils.docReady( function() {
5463
+ var dashedNamespace = utils.toDashed( namespace );
5464
+ var dataAttr = 'data-' + dashedNamespace;
5465
+ var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );
5466
+ var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );
5467
+ var elems = utils.makeArray( dataAttrElems )
5468
+ .concat( utils.makeArray( jsDashElems ) );
5469
+ var dataOptionsAttr = dataAttr + '-options';
5470
+ var jQuery = window.jQuery;
5471
+
5472
+ elems.forEach( function( elem ) {
5473
+ var attr = elem.getAttribute( dataAttr ) ||
5474
+ elem.getAttribute( dataOptionsAttr );
5475
+ var options;
5476
+ try {
5477
+ options = attr && JSON.parse( attr );
5478
+ } catch ( error ) {
5479
+ // log error, do not initialize
5480
+ if ( console ) {
5481
+ console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +
5482
+ ': ' + error );
5483
+ }
5484
+ return;
5485
+ }
5486
+ // initialize
5487
+ var instance = new WidgetClass( elem, options );
5488
+ // make available via $().data('namespace')
5489
+ if ( jQuery ) {
5490
+ jQuery.data( elem, namespace, instance );
5491
+ }
5492
+ });
5493
+
5494
+ });
5495
+ };
5496
+
5497
+ // ----- ----- //
5498
+
5499
+ return utils;
5500
+
5501
+ }));
5502
+
5503
+
5504
+ /***/ }),
5505
+
5506
+ /***/ "./node_modules/get-size/get-size.js":
5507
+ /*!*******************************************!*\
5508
+ !*** ./node_modules/get-size/get-size.js ***!
5509
+ \*******************************************/
5510
+ /*! no static exports found */
5511
+ /***/ (function(module, exports, __webpack_require__) {
5512
+
5513
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
5514
+ * getSize v2.0.3
5515
+ * measure size of elements
5516
+ * MIT license
5517
+ */
5518
+
5519
+ /* jshint browser: true, strict: true, undef: true, unused: true */
5520
+ /* globals console: false */
5521
+
5522
+ ( function( window, factory ) {
5523
+ /* jshint strict: false */ /* globals define, module */
5524
+ if ( true ) {
5525
+ // AMD
5526
+ !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
5527
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
5528
+ (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
5529
+ __WEBPACK_AMD_DEFINE_FACTORY__),
5530
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
5531
+ } else {}
5532
+
5533
+ })( window, function factory() {
5534
+ 'use strict';
5535
+
5536
+ // -------------------------- helpers -------------------------- //
5537
+
5538
+ // get a number from a string, not a percentage
5539
+ function getStyleSize( value ) {
5540
+ var num = parseFloat( value );
5541
+ // not a percent like '100%', and a number
5542
+ var isValid = value.indexOf('%') == -1 && !isNaN( num );
5543
+ return isValid && num;
5544
+ }
5545
+
5546
+ function noop() {}
5547
+
5548
+ var logError = typeof console == 'undefined' ? noop :
5549
+ function( message ) {
5550
+ console.error( message );
5551
+ };
5552
+
5553
+ // -------------------------- measurements -------------------------- //
5554
+
5555
+ var measurements = [
5556
+ 'paddingLeft',
5557
+ 'paddingRight',
5558
+ 'paddingTop',
5559
+ 'paddingBottom',
5560
+ 'marginLeft',
5561
+ 'marginRight',
5562
+ 'marginTop',
5563
+ 'marginBottom',
5564
+ 'borderLeftWidth',
5565
+ 'borderRightWidth',
5566
+ 'borderTopWidth',
5567
+ 'borderBottomWidth'
5568
+ ];
5569
+
5570
+ var measurementsLength = measurements.length;
5571
+
5572
+ function getZeroSize() {
5573
+ var size = {
5574
+ width: 0,
5575
+ height: 0,
5576
+ innerWidth: 0,
5577
+ innerHeight: 0,
5578
+ outerWidth: 0,
5579
+ outerHeight: 0
5580
+ };
5581
+ for ( var i=0; i < measurementsLength; i++ ) {
5582
+ var measurement = measurements[i];
5583
+ size[ measurement ] = 0;
5584
+ }
5585
+ return size;
5586
+ }
5587
+
5588
+ // -------------------------- getStyle -------------------------- //
5589
+
5590
+ /**
5591
+ * getStyle, get style of element, check for Firefox bug
5592
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=548397
5593
+ */
5594
+ function getStyle( elem ) {
5595
+ var style = getComputedStyle( elem );
5596
+ if ( !style ) {
5597
+ logError( 'Style returned ' + style +
5598
+ '. Are you running this code in a hidden iframe on Firefox? ' +
5599
+ 'See https://bit.ly/getsizebug1' );
5600
+ }
5601
+ return style;
5602
+ }
5603
+
5604
+ // -------------------------- setup -------------------------- //
5605
+
5606
+ var isSetup = false;
5607
+
5608
+ var isBoxSizeOuter;
5609
+
5610
+ /**
5611
+ * setup
5612
+ * check isBoxSizerOuter
5613
+ * do on first getSize() rather than on page load for Firefox bug
5614
+ */
5615
+ function setup() {
5616
+ // setup once
5617
+ if ( isSetup ) {
5618
+ return;
5619
+ }
5620
+ isSetup = true;
5621
+
5622
+ // -------------------------- box sizing -------------------------- //
5623
+
5624
+ /**
5625
+ * Chrome & Safari measure the outer-width on style.width on border-box elems
5626
+ * IE11 & Firefox<29 measures the inner-width
5627
+ */
5628
+ var div = document.createElement('div');
5629
+ div.style.width = '200px';
5630
+ div.style.padding = '1px 2px 3px 4px';
5631
+ div.style.borderStyle = 'solid';
5632
+ div.style.borderWidth = '1px 2px 3px 4px';
5633
+ div.style.boxSizing = 'border-box';
5634
+
5635
+ var body = document.body || document.documentElement;
5636
+ body.appendChild( div );
5637
+ var style = getStyle( div );
5638
+ // round value for browser zoom. desandro/masonry#928
5639
+ isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;
5640
+ getSize.isBoxSizeOuter = isBoxSizeOuter;
5641
+
5642
+ body.removeChild( div );
5643
+ }
5644
+
5645
+ // -------------------------- getSize -------------------------- //
5646
+
5647
+ function getSize( elem ) {
5648
+ setup();
5649
+
5650
+ // use querySeletor if elem is string
5651
+ if ( typeof elem == 'string' ) {
5652
+ elem = document.querySelector( elem );
5653
+ }
5654
+
5655
+ // do not proceed on non-objects
5656
+ if ( !elem || typeof elem != 'object' || !elem.nodeType ) {
5657
+ return;
5658
+ }
5659
+
5660
+ var style = getStyle( elem );
5661
+
5662
+ // if hidden, everything is 0
5663
+ if ( style.display == 'none' ) {
5664
+ return getZeroSize();
5665
+ }
5666
+
5667
+ var size = {};
5668
+ size.width = elem.offsetWidth;
5669
+ size.height = elem.offsetHeight;
5670
+
5671
+ var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';
5672
+
5673
+ // get all measurements
5674
+ for ( var i=0; i < measurementsLength; i++ ) {
5675
+ var measurement = measurements[i];
5676
+ var value = style[ measurement ];
5677
+ var num = parseFloat( value );
5678
+ // any 'auto', 'medium' value will be 0
5679
+ size[ measurement ] = !isNaN( num ) ? num : 0;
5680
+ }
5681
+
5682
+ var paddingWidth = size.paddingLeft + size.paddingRight;
5683
+ var paddingHeight = size.paddingTop + size.paddingBottom;
5684
+ var marginWidth = size.marginLeft + size.marginRight;
5685
+ var marginHeight = size.marginTop + size.marginBottom;
5686
+ var borderWidth = size.borderLeftWidth + size.borderRightWidth;
5687
+ var borderHeight = size.borderTopWidth + size.borderBottomWidth;
5688
+
5689
+ var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;
5690
+
5691
+ // overwrite width and height if we can get it from style
5692
+ var styleWidth = getStyleSize( style.width );
5693
+ if ( styleWidth !== false ) {
5694
+ size.width = styleWidth +
5695
+ // add padding and border unless it's already including it
5696
+ ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );
5697
+ }
5698
+
5699
+ var styleHeight = getStyleSize( style.height );
5700
+ if ( styleHeight !== false ) {
5701
+ size.height = styleHeight +
5702
+ // add padding and border unless it's already including it
5703
+ ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );
5704
+ }
5705
+
5706
+ size.innerWidth = size.width - ( paddingWidth + borderWidth );
5707
+ size.innerHeight = size.height - ( paddingHeight + borderHeight );
5708
+
5709
+ size.outerWidth = size.width + marginWidth;
5710
+ size.outerHeight = size.height + marginHeight;
5711
+
5712
+ return size;
5713
+ }
5714
+
5715
+ return getSize;
5716
+
5717
+ });
5718
+
5719
+
5720
+ /***/ }),
5721
+
5722
+ /***/ "./node_modules/imagesloaded/imagesloaded.js":
5723
+ /*!***************************************************!*\
5724
+ !*** ./node_modules/imagesloaded/imagesloaded.js ***!
5725
+ \***************************************************/
5726
+ /*! no static exports found */
5727
+ /***/ (function(module, exports, __webpack_require__) {
5728
+
5729
+ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
5730
+ * imagesLoaded v4.1.3
5731
+ * JavaScript is all like "You images are done yet or what?"
5732
+ * MIT License
5733
+ */
5734
+
5735
+ ( function( window, factory ) { 'use strict';
5736
+ // universal module definition
5737
+
5738
+ /*global define: false, module: false, require: false */
5739
+
5740
+ if ( true ) {
5741
+ // AMD
5742
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
5743
+ __webpack_require__(/*! ev-emitter/ev-emitter */ "./node_modules/ev-emitter/ev-emitter.js")
5744
+ ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( EvEmitter ) {
5745
+ return factory( window, EvEmitter );
5746
+ }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
5747
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
5748
+ } else {}
5749
+
5750
+ })( typeof window !== 'undefined' ? window : this,
5751
+
5752
+ // -------------------------- factory -------------------------- //
5753
+
5754
+ function factory( window, EvEmitter ) {
5755
+
5756
+ 'use strict';
5757
+
5758
+ var $ = window.jQuery;
5759
+ var console = window.console;
5760
+
5761
+ // -------------------------- helpers -------------------------- //
5762
+
5763
+ // extend objects
5764
+ function extend( a, b ) {
5765
+ for ( var prop in b ) {
5766
+ a[ prop ] = b[ prop ];
5767
+ }
5768
+ return a;
5769
+ }
5770
+
5771
+ // turn element or nodeList into an array
5772
+ function makeArray( obj ) {
5773
+ var ary = [];
5774
+ if ( Array.isArray( obj ) ) {
5775
+ // use object if already an array
5776
+ ary = obj;
5777
+ } else if ( typeof obj.length == 'number' ) {
5778
+ // convert nodeList to array
5779
+ for ( var i=0; i < obj.length; i++ ) {
5780
+ ary.push( obj[i] );
5781
+ }
5782
+ } else {
5783
+ // array of single index
5784
+ ary.push( obj );
5785
+ }
5786
+ return ary;
5787
+ }
5788
+
5789
+ // -------------------------- imagesLoaded -------------------------- //
5790
+
5791
+ /**
5792
+ * @param {Array, Element, NodeList, String} elem
5793
+ * @param {Object or Function} options - if function, use as callback
5794
+ * @param {Function} onAlways - callback function
5795
+ */
5796
+ function ImagesLoaded( elem, options, onAlways ) {
5797
+ // coerce ImagesLoaded() without new, to be new ImagesLoaded()
5798
+ if ( !( this instanceof ImagesLoaded ) ) {
5799
+ return new ImagesLoaded( elem, options, onAlways );
5800
+ }
5801
+ // use elem as selector string
5802
+ if ( typeof elem == 'string' ) {
5803
+ elem = document.querySelectorAll( elem );
5804
+ }
5805
+
5806
+ this.elements = makeArray( elem );
5807
+ this.options = extend( {}, this.options );
5808
+
5809
+ if ( typeof options == 'function' ) {
5810
+ onAlways = options;
5811
+ } else {
5812
+ extend( this.options, options );
5813
+ }
5814
+
5815
+ if ( onAlways ) {
5816
+ this.on( 'always', onAlways );
5817
+ }
5818
+
5819
+ this.getImages();
5820
+
5821
+ if ( $ ) {
5822
+ // add jQuery Deferred object
5823
+ this.jqDeferred = new $.Deferred();
5824
+ }
5825
+
5826
+ // HACK check async to allow time to bind listeners
5827
+ setTimeout( function() {
5828
+ this.check();
5829
+ }.bind( this ));
5830
+ }
5831
+
5832
+ ImagesLoaded.prototype = Object.create( EvEmitter.prototype );
5833
+
5834
+ ImagesLoaded.prototype.options = {};
5835
+
5836
+ ImagesLoaded.prototype.getImages = function() {
5837
+ this.images = [];
5838
+
5839
+ // filter & find items if we have an item selector
5840
+ this.elements.forEach( this.addElementImages, this );
5841
+ };
5842
+
5843
+ /**
5844
+ * @param {Node} element
5845
+ */
5846
+ ImagesLoaded.prototype.addElementImages = function( elem ) {
5847
+ // filter siblings
5848
+ if ( elem.nodeName == 'IMG' ) {
5849
+ this.addImage( elem );
5850
+ }
5851
+ // get background image on element
5852
+ if ( this.options.background === true ) {
5853
+ this.addElementBackgroundImages( elem );
5854
+ }
5855
+
5856
+ // find children
5857
+ // no non-element nodes, #143
5858
+ var nodeType = elem.nodeType;
5859
+ if ( !nodeType || !elementNodeTypes[ nodeType ] ) {
5860
+ return;
5861
+ }
5862
+ var childImgs = elem.querySelectorAll('img');
5863
+ // concat childElems to filterFound array
5864
+ for ( var i=0; i < childImgs.length; i++ ) {
5865
+ var img = childImgs[i];
5866
+ this.addImage( img );
5867
+ }
5868
+
5869
+ // get child background images
5870
+ if ( typeof this.options.background == 'string' ) {
5871
+ var children = elem.querySelectorAll( this.options.background );
5872
+ for ( i=0; i < children.length; i++ ) {
5873
+ var child = children[i];
5874
+ this.addElementBackgroundImages( child );
5875
+ }
5876
+ }
5877
+ };
5878
+
5879
+ var elementNodeTypes = {
5880
+ 1: true,
5881
+ 9: true,
5882
+ 11: true
5883
+ };
5884
+
5885
+ ImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {
5886
+ var style = getComputedStyle( elem );
5887
+ if ( !style ) {
5888
+ // Firefox returns null if in a hidden iframe https://bugzil.la/548397
5889
+ return;
5890
+ }
5891
+ // get url inside url("...")
5892
+ var reURL = /url\((['"])?(.*?)\1\)/gi;
5893
+ var matches = reURL.exec( style.backgroundImage );
5894
+ while ( matches !== null ) {
5895
+ var url = matches && matches[2];
5896
+ if ( url ) {
5897
+ this.addBackground( url, elem );
5898
+ }
5899
+ matches = reURL.exec( style.backgroundImage );
5900
+ }
5901
+ };
5902
+
5903
+ /**
5904
+ * @param {Image} img
5905
+ */
5906
+ ImagesLoaded.prototype.addImage = function( img ) {
5907
+ var loadingImage = new LoadingImage( img );
5908
+ this.images.push( loadingImage );
5909
+ };
5910
+
5911
+ ImagesLoaded.prototype.addBackground = function( url, elem ) {
5912
+ var background = new Background( url, elem );
5913
+ this.images.push( background );
5914
+ };
5915
+
5916
+ ImagesLoaded.prototype.check = function() {
5917
+ var _this = this;
5918
+ this.progressedCount = 0;
5919
+ this.hasAnyBroken = false;
5920
+ // complete if no images
5921
+ if ( !this.images.length ) {
5922
+ this.complete();
5923
+ return;
5924
+ }
5925
+
5926
+ function onProgress( image, elem, message ) {
5927
+ // HACK - Chrome triggers event before object properties have changed. #83
5928
+ setTimeout( function() {
5929
+ _this.progress( image, elem, message );
5930
+ });
5931
+ }
5932
+
5933
+ this.images.forEach( function( loadingImage ) {
5934
+ loadingImage.once( 'progress', onProgress );
5935
+ loadingImage.check();
5936
+ });
5937
+ };
5938
+
5939
+ ImagesLoaded.prototype.progress = function( image, elem, message ) {
5940
+ this.progressedCount++;
5941
+ this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;
5942
+ // progress event
5943
+ this.emitEvent( 'progress', [ this, image, elem ] );
5944
+ if ( this.jqDeferred && this.jqDeferred.notify ) {
5945
+ this.jqDeferred.notify( this, image );
5946
+ }
5947
+ // check if completed
5948
+ if ( this.progressedCount == this.images.length ) {
5949
+ this.complete();
5950
+ }
5951
+
5952
+ if ( this.options.debug && console ) {
5953
+ console.log( 'progress: ' + message, image, elem );
5954
+ }
5955
+ };
5956
+
5957
+ ImagesLoaded.prototype.complete = function() {
5958
+ var eventName = this.hasAnyBroken ? 'fail' : 'done';
5959
+ this.isComplete = true;
5960
+ this.emitEvent( eventName, [ this ] );
5961
+ this.emitEvent( 'always', [ this ] );
5962
+ if ( this.jqDeferred ) {
5963
+ var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';
5964
+ this.jqDeferred[ jqMethod ]( this );
5965
+ }
5966
+ };
5967
+
5968
+ // -------------------------- -------------------------- //
5969
+
5970
+ function LoadingImage( img ) {
5971
+ this.img = img;
5972
+ }
5973
+
5974
+ LoadingImage.prototype = Object.create( EvEmitter.prototype );
5975
+
5976
+ LoadingImage.prototype.check = function() {
5977
+ // If complete is true and browser supports natural sizes,
5978
+ // try to check for image status manually.
5979
+ var isComplete = this.getIsImageComplete();
5980
+ if ( isComplete ) {
5981
+ // report based on naturalWidth
5982
+ this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
5983
+ return;
5984
+ }
5985
+
5986
+ // If none of the checks above matched, simulate loading on detached element.
5987
+ this.proxyImage = new Image();
5988
+ this.proxyImage.addEventListener( 'load', this );
5989
+ this.proxyImage.addEventListener( 'error', this );
5990
+ // bind to image as well for Firefox. #191
5991
+ this.img.addEventListener( 'load', this );
5992
+ this.img.addEventListener( 'error', this );
5993
+ this.proxyImage.src = this.img.src;
5994
+ };
5995
+
5996
+ LoadingImage.prototype.getIsImageComplete = function() {
5997
+ return this.img.complete && this.img.naturalWidth !== undefined;
5998
+ };
5999
+
6000
+ LoadingImage.prototype.confirm = function( isLoaded, message ) {
6001
+ this.isLoaded = isLoaded;
6002
+ this.emitEvent( 'progress', [ this, this.img, message ] );
6003
+ };
6004
+
6005
+ // ----- events ----- //
6006
+
6007
+ // trigger specified handler for event type
6008
+ LoadingImage.prototype.handleEvent = function( event ) {
6009
+ var method = 'on' + event.type;
6010
+ if ( this[ method ] ) {
6011
+ this[ method ]( event );
6012
+ }
6013
+ };
6014
+
6015
+ LoadingImage.prototype.onload = function() {
6016
+ this.confirm( true, 'onload' );
6017
+ this.unbindEvents();
6018
+ };
6019
+
6020
+ LoadingImage.prototype.onerror = function() {
6021
+ this.confirm( false, 'onerror' );
6022
+ this.unbindEvents();
6023
+ };
6024
+
6025
+ LoadingImage.prototype.unbindEvents = function() {
6026
+ this.proxyImage.removeEventListener( 'load', this );
6027
+ this.proxyImage.removeEventListener( 'error', this );
6028
+ this.img.removeEventListener( 'load', this );
6029
+ this.img.removeEventListener( 'error', this );
6030
+ };
6031
+
6032
+ // -------------------------- Background -------------------------- //
6033
+
6034
+ function Background( url, element ) {
6035
+ this.url = url;
6036
+ this.element = element;
6037
+ this.img = new Image();
6038
+ }
6039
+
6040
+ // inherit LoadingImage prototype
6041
+ Background.prototype = Object.create( LoadingImage.prototype );
6042
+
6043
+ Background.prototype.check = function() {
6044
+ this.img.addEventListener( 'load', this );
6045
+ this.img.addEventListener( 'error', this );
6046
+ this.img.src = this.url;
6047
+ // check if image is already complete
6048
+ var isComplete = this.getIsImageComplete();
6049
+ if ( isComplete ) {
6050
+ this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );
6051
+ this.unbindEvents();
6052
+ }
6053
+ };
6054
+
6055
+ Background.prototype.unbindEvents = function() {
6056
+ this.img.removeEventListener( 'load', this );
6057
+ this.img.removeEventListener( 'error', this );
6058
+ };
6059
+
6060
+ Background.prototype.confirm = function( isLoaded, message ) {
6061
+ this.isLoaded = isLoaded;
6062
+ this.emitEvent( 'progress', [ this, this.element, message ] );
6063
+ };
6064
+
6065
+ // -------------------------- jQuery -------------------------- //
6066
+
6067
+ ImagesLoaded.makeJQueryPlugin = function( jQuery ) {
6068
+ jQuery = jQuery || window.jQuery;
6069
+ if ( !jQuery ) {
6070
+ return;
6071
+ }
6072
+ // set local variable
6073
+ $ = jQuery;
6074
+ // $().imagesLoaded()
6075
+ $.fn.imagesLoaded = function( options, callback ) {
6076
+ var instance = new ImagesLoaded( this, options, callback );
6077
+ return instance.jqDeferred.promise( $(this) );
6078
+ };
6079
+ };
6080
+ // try making plugin
6081
+ ImagesLoaded.makeJQueryPlugin();
6082
+
6083
+ // -------------------------- -------------------------- //
6084
+
6085
+ return ImagesLoaded;
6086
+
6087
+ });
6088
+
6089
+
6090
+ /***/ }),
6091
+
6092
+ /***/ "./node_modules/is-buffer/index.js":
6093
+ /*!*****************************************!*\
6094
+ !*** ./node_modules/is-buffer/index.js ***!
6095
+ \*****************************************/
6096
+ /*! no static exports found */
6097
+ /***/ (function(module, exports) {
6098
+
6099
+ /*!
6100
+ * Determine if an object is a Buffer
6101
+ *
6102
+ * @author Feross Aboukhadijeh <https://feross.org>
6103
+ * @license MIT
6104
+ */
6105
+
6106
+ // The _isBuffer check is for Safari 5-7 support, because it's missing
6107
+ // Object.prototype.constructor. Remove this eventually
6108
+ module.exports = function (obj) {
6109
+ return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)
6110
+ }
6111
+
6112
+ function isBuffer (obj) {
6113
+ return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
6114
+ }
6115
+
6116
+ // For Node v0.10 support. Remove this eventually.
6117
+ function isSlowBuffer (obj) {
6118
+ return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))
6119
+ }
6120
+
6121
+
6122
+ /***/ }),
6123
+
6124
+ /***/ "./node_modules/isomorphic-fetch/fetch-npm-browserify.js":
6125
+ /*!***************************************************************!*\
6126
+ !*** ./node_modules/isomorphic-fetch/fetch-npm-browserify.js ***!
6127
+ \***************************************************************/
6128
+ /*! no static exports found */
6129
+ /***/ (function(module, exports, __webpack_require__) {
6130
+
6131
+ // the whatwg-fetch polyfill installs the fetch() function
6132
+ // on the global object (window or self)
6133
+ //
6134
+ // Return that as the export for use in Webpack, Browserify etc.
6135
+ __webpack_require__(/*! whatwg-fetch */ "./node_modules/whatwg-fetch/fetch.js");
6136
+ module.exports = self.fetch.bind(self);
6137
+
6138
+
6139
+ /***/ }),
6140
+
6141
+ /***/ "./node_modules/masonry-layout/masonry.js":
6142
+ /*!************************************************!*\
6143
+ !*** ./node_modules/masonry-layout/masonry.js ***!
6144
+ \************************************************/
6145
+ /*! no static exports found */
6146
+ /***/ (function(module, exports, __webpack_require__) {
6147
+
6148
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
6149
+ * Masonry v4.2.2
6150
+ * Cascading grid layout library
6151
+ * https://masonry.desandro.com
6152
+ * MIT License
6153
+ * by David DeSandro
6154
+ */
6155
+
6156
+ ( function( window, factory ) {
6157
+ // universal module definition
6158
+ /* jshint strict: false */ /*globals define, module, require */
6159
+ if ( true ) {
6160
+ // AMD
6161
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
6162
+ __webpack_require__(/*! outlayer/outlayer */ "./node_modules/outlayer/outlayer.js"),
6163
+ __webpack_require__(/*! get-size/get-size */ "./node_modules/get-size/get-size.js")
6164
+ ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
6165
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
6166
+ (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
6167
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
6168
+ } else {}
6169
+
6170
+ }( window, function factory( Outlayer, getSize ) {
6171
+
6172
+ 'use strict';
6173
+
6174
+ // -------------------------- masonryDefinition -------------------------- //
6175
+
6176
+ // create an Outlayer layout class
6177
+ var Masonry = Outlayer.create('masonry');
6178
+ // isFitWidth -> fitWidth
6179
+ Masonry.compatOptions.fitWidth = 'isFitWidth';
6180
+
6181
+ var proto = Masonry.prototype;
6182
+
6183
+ proto._resetLayout = function() {
6184
+ this.getSize();
6185
+ this._getMeasurement( 'columnWidth', 'outerWidth' );
6186
+ this._getMeasurement( 'gutter', 'outerWidth' );
6187
+ this.measureColumns();
6188
+
6189
+ // reset column Y
6190
+ this.colYs = [];
6191
+ for ( var i=0; i < this.cols; i++ ) {
6192
+ this.colYs.push( 0 );
6193
+ }
6194
+
6195
+ this.maxY = 0;
6196
+ this.horizontalColIndex = 0;
6197
+ };
6198
+
6199
+ proto.measureColumns = function() {
6200
+ this.getContainerWidth();
6201
+ // if columnWidth is 0, default to outerWidth of first item
6202
+ if ( !this.columnWidth ) {
6203
+ var firstItem = this.items[0];
6204
+ var firstItemElem = firstItem && firstItem.element;
6205
+ // columnWidth fall back to item of first element
6206
+ this.columnWidth = firstItemElem && getSize( firstItemElem ).outerWidth ||
6207
+ // if first elem has no width, default to size of container
6208
+ this.containerWidth;
6209
+ }
6210
+
6211
+ var columnWidth = this.columnWidth += this.gutter;
6212
+
6213
+ // calculate columns
6214
+ var containerWidth = this.containerWidth + this.gutter;
6215
+ var cols = containerWidth / columnWidth;
6216
+ // fix rounding errors, typically with gutters
6217
+ var excess = columnWidth - containerWidth % columnWidth;
6218
+ // if overshoot is less than a pixel, round up, otherwise floor it
6219
+ var mathMethod = excess && excess < 1 ? 'round' : 'floor';
6220
+ cols = Math[ mathMethod ]( cols );
6221
+ this.cols = Math.max( cols, 1 );
6222
+ };
6223
+
6224
+ proto.getContainerWidth = function() {
6225
+ // container is parent if fit width
6226
+ var isFitWidth = this._getOption('fitWidth');
6227
+ var container = isFitWidth ? this.element.parentNode : this.element;
6228
+ // check that this.size and size are there
6229
+ // IE8 triggers resize on body size change, so they might not be
6230
+ var size = getSize( container );
6231
+ this.containerWidth = size && size.innerWidth;
6232
+ };
6233
+
6234
+ proto._getItemLayoutPosition = function( item ) {
6235
+ item.getSize();
6236
+ // how many columns does this brick span
6237
+ var remainder = item.size.outerWidth % this.columnWidth;
6238
+ var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil';
6239
+ // round if off by 1 pixel, otherwise use ceil
6240
+ var colSpan = Math[ mathMethod ]( item.size.outerWidth / this.columnWidth );
6241
+ colSpan = Math.min( colSpan, this.cols );
6242
+ // use horizontal or top column position
6243
+ var colPosMethod = this.options.horizontalOrder ?
6244
+ '_getHorizontalColPosition' : '_getTopColPosition';
6245
+ var colPosition = this[ colPosMethod ]( colSpan, item );
6246
+ // position the brick
6247
+ var position = {
6248
+ x: this.columnWidth * colPosition.col,
6249
+ y: colPosition.y
6250
+ };
6251
+ // apply setHeight to necessary columns
6252
+ var setHeight = colPosition.y + item.size.outerHeight;
6253
+ var setMax = colSpan + colPosition.col;
6254
+ for ( var i = colPosition.col; i < setMax; i++ ) {
6255
+ this.colYs[i] = setHeight;
6256
+ }
6257
+
6258
+ return position;
6259
+ };
6260
+
6261
+ proto._getTopColPosition = function( colSpan ) {
6262
+ var colGroup = this._getTopColGroup( colSpan );
6263
+ // get the minimum Y value from the columns
6264
+ var minimumY = Math.min.apply( Math, colGroup );
6265
+
6266
+ return {
6267
+ col: colGroup.indexOf( minimumY ),
6268
+ y: minimumY,
6269
+ };
6270
+ };
6271
+
6272
+ /**
6273
+ * @param {Number} colSpan - number of columns the element spans
6274
+ * @returns {Array} colGroup
6275
+ */
6276
+ proto._getTopColGroup = function( colSpan ) {
6277
+ if ( colSpan < 2 ) {
6278
+ // if brick spans only one column, use all the column Ys
6279
+ return this.colYs;
6280
+ }
6281
+
6282
+ var colGroup = [];
6283
+ // how many different places could this brick fit horizontally
6284
+ var groupCount = this.cols + 1 - colSpan;
6285
+ // for each group potential horizontal position
6286
+ for ( var i = 0; i < groupCount; i++ ) {
6287
+ colGroup[i] = this._getColGroupY( i, colSpan );
6288
+ }
6289
+ return colGroup;
6290
+ };
6291
+
6292
+ proto._getColGroupY = function( col, colSpan ) {
6293
+ if ( colSpan < 2 ) {
6294
+ return this.colYs[ col ];
6295
+ }
6296
+ // make an array of colY values for that one group
6297
+ var groupColYs = this.colYs.slice( col, col + colSpan );
6298
+ // and get the max value of the array
6299
+ return Math.max.apply( Math, groupColYs );
6300
+ };
6301
+
6302
+ // get column position based on horizontal index. #873
6303
+ proto._getHorizontalColPosition = function( colSpan, item ) {
6304
+ var col = this.horizontalColIndex % this.cols;
6305
+ var isOver = colSpan > 1 && col + colSpan > this.cols;
6306
+ // shift to next row if item can't fit on current row
6307
+ col = isOver ? 0 : col;
6308
+ // don't let zero-size items take up space
6309
+ var hasSize = item.size.outerWidth && item.size.outerHeight;
6310
+ this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex;
6311
+
6312
+ return {
6313
+ col: col,
6314
+ y: this._getColGroupY( col, colSpan ),
6315
+ };
6316
+ };
6317
+
6318
+ proto._manageStamp = function( stamp ) {
6319
+ var stampSize = getSize( stamp );
6320
+ var offset = this._getElementOffset( stamp );
6321
+ // get the columns that this stamp affects
6322
+ var isOriginLeft = this._getOption('originLeft');
6323
+ var firstX = isOriginLeft ? offset.left : offset.right;
6324
+ var lastX = firstX + stampSize.outerWidth;
6325
+ var firstCol = Math.floor( firstX / this.columnWidth );
6326
+ firstCol = Math.max( 0, firstCol );
6327
+ var lastCol = Math.floor( lastX / this.columnWidth );
6328
+ // lastCol should not go over if multiple of columnWidth #425
6329
+ lastCol -= lastX % this.columnWidth ? 0 : 1;
6330
+ lastCol = Math.min( this.cols - 1, lastCol );
6331
+ // set colYs to bottom of the stamp
6332
+
6333
+ var isOriginTop = this._getOption('originTop');
6334
+ var stampMaxY = ( isOriginTop ? offset.top : offset.bottom ) +
6335
+ stampSize.outerHeight;
6336
+ for ( var i = firstCol; i <= lastCol; i++ ) {
6337
+ this.colYs[i] = Math.max( stampMaxY, this.colYs[i] );
6338
+ }
6339
+ };
6340
+
6341
+ proto._getContainerSize = function() {
6342
+ this.maxY = Math.max.apply( Math, this.colYs );
6343
+ var size = {
6344
+ height: this.maxY
6345
+ };
6346
+
6347
+ if ( this._getOption('fitWidth') ) {
6348
+ size.width = this._getContainerFitWidth();
6349
+ }
6350
+
6351
+ return size;
6352
+ };
6353
+
6354
+ proto._getContainerFitWidth = function() {
6355
+ var unusedCols = 0;
6356
+ // count unused columns
6357
+ var i = this.cols;
6358
+ while ( --i ) {
6359
+ if ( this.colYs[i] !== 0 ) {
6360
+ break;
6361
+ }
6362
+ unusedCols++;
6363
+ }
6364
+ // fit container to columns that have been used
6365
+ return ( this.cols - unusedCols ) * this.columnWidth - this.gutter;
6366
+ };
6367
+
6368
+ proto.needsResizeLayout = function() {
6369
+ var previousWidth = this.containerWidth;
6370
+ this.getContainerWidth();
6371
+ return previousWidth != this.containerWidth;
6372
+ };
6373
+
6374
+ return Masonry;
6375
+
6376
+ }));
6377
+
6378
+
6379
+ /***/ }),
6380
+
6381
+ /***/ "./node_modules/object-assign/index.js":
6382
+ /*!*********************************************!*\
6383
+ !*** ./node_modules/object-assign/index.js ***!
6384
+ \*********************************************/
6385
+ /*! no static exports found */
6386
+ /***/ (function(module, exports, __webpack_require__) {
6387
+
6388
+ "use strict";
6389
+ /*
6390
+ object-assign
6391
+ (c) Sindre Sorhus
6392
+ @license MIT
6393
+ */
6394
+
6395
+
6396
+ /* eslint-disable no-unused-vars */
6397
+ var getOwnPropertySymbols = Object.getOwnPropertySymbols;
6398
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
6399
+ var propIsEnumerable = Object.prototype.propertyIsEnumerable;
6400
+
6401
+ function toObject(val) {
6402
+ if (val === null || val === undefined) {
6403
+ throw new TypeError('Object.assign cannot be called with null or undefined');
6404
+ }
6405
+
6406
+ return Object(val);
6407
+ }
6408
+
6409
+ function shouldUseNative() {
6410
+ try {
6411
+ if (!Object.assign) {
6412
+ return false;
6413
+ }
6414
+
6415
+ // Detect buggy property enumeration order in older V8 versions.
6416
+
6417
+ // https://bugs.chromium.org/p/v8/issues/detail?id=4118
6418
+ var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
6419
+ test1[5] = 'de';
6420
+ if (Object.getOwnPropertyNames(test1)[0] === '5') {
6421
+ return false;
6422
+ }
6423
+
6424
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
6425
+ var test2 = {};
6426
+ for (var i = 0; i < 10; i++) {
6427
+ test2['_' + String.fromCharCode(i)] = i;
6428
+ }
6429
+ var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
6430
+ return test2[n];
6431
+ });
6432
+ if (order2.join('') !== '0123456789') {
6433
+ return false;
6434
+ }
6435
+
6436
+ // https://bugs.chromium.org/p/v8/issues/detail?id=3056
6437
+ var test3 = {};
6438
+ 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
6439
+ test3[letter] = letter;
6440
+ });
6441
+ if (Object.keys(Object.assign({}, test3)).join('') !==
6442
+ 'abcdefghijklmnopqrst') {
6443
+ return false;
6444
+ }
6445
+
6446
+ return true;
6447
+ } catch (err) {
6448
+ // We don't expect any of the above to throw, but better to be safe.
6449
+ return false;
6450
+ }
6451
+ }
6452
+
6453
+ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
6454
+ var from;
6455
+ var to = toObject(target);
6456
+ var symbols;
6457
+
6458
+ for (var s = 1; s < arguments.length; s++) {
6459
+ from = Object(arguments[s]);
6460
+
6461
+ for (var key in from) {
6462
+ if (hasOwnProperty.call(from, key)) {
6463
+ to[key] = from[key];
6464
+ }
6465
+ }
6466
+
6467
+ if (getOwnPropertySymbols) {
6468
+ symbols = getOwnPropertySymbols(from);
6469
+ for (var i = 0; i < symbols.length; i++) {
6470
+ if (propIsEnumerable.call(from, symbols[i])) {
6471
+ to[symbols[i]] = from[symbols[i]];
6472
+ }
6473
+ }
6474
+ }
6475
+ }
6476
+
6477
+ return to;
6478
+ };
6479
+
6480
+
6481
+ /***/ }),
6482
+
6483
+ /***/ "./node_modules/outlayer/item.js":
6484
+ /*!***************************************!*\
6485
+ !*** ./node_modules/outlayer/item.js ***!
6486
+ \***************************************/
6487
+ /*! no static exports found */
6488
+ /***/ (function(module, exports, __webpack_require__) {
6489
+
6490
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**
6491
+ * Outlayer Item
6492
+ */
6493
+
6494
+ ( function( window, factory ) {
6495
+ // universal module definition
6496
+ /* jshint strict: false */ /* globals define, module, require */
6497
+ if ( true ) {
6498
+ // AMD - RequireJS
6499
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
6500
+ __webpack_require__(/*! ev-emitter/ev-emitter */ "./node_modules/ev-emitter/ev-emitter.js"),
6501
+ __webpack_require__(/*! get-size/get-size */ "./node_modules/get-size/get-size.js")
6502
+ ], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
6503
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
6504
+ (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
6505
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
6506
+ } else {}
6507
+
6508
+ }( window, function factory( EvEmitter, getSize ) {
6509
+ 'use strict';
6510
+
6511
+ // ----- helpers ----- //
6512
+
6513
+ function isEmptyObj( obj ) {
6514
+ for ( var prop in obj ) {
6515
+ return false;
6516
+ }
6517
+ prop = null;
6518
+ return true;
6519
+ }
6520
+
6521
+ // -------------------------- CSS3 support -------------------------- //
6522
+
6523
+
6524
+ var docElemStyle = document.documentElement.style;
6525
+
6526
+ var transitionProperty = typeof docElemStyle.transition == 'string' ?
6527
+ 'transition' : 'WebkitTransition';
6528
+ var transformProperty = typeof docElemStyle.transform == 'string' ?
6529
+ 'transform' : 'WebkitTransform';
6530
+
6531
+ var transitionEndEvent = {
6532
+ WebkitTransition: 'webkitTransitionEnd',
6533
+ transition: 'transitionend'
6534
+ }[ transitionProperty ];
6535
+
6536
+ // cache all vendor properties that could have vendor prefix
6537
+ var vendorProperties = {
6538
+ transform: transformProperty,
6539
+ transition: transitionProperty,
6540
+ transitionDuration: transitionProperty + 'Duration',
6541
+ transitionProperty: transitionProperty + 'Property',
6542
+ transitionDelay: transitionProperty + 'Delay'
6543
+ };
6544
+
6545
+ // -------------------------- Item -------------------------- //
6546
+
6547
+ function Item( element, layout ) {
6548
+ if ( !element ) {
6549
+ return;
6550
+ }
6551
+
6552
+ this.element = element;
6553
+ // parent layout class, i.e. Masonry, Isotope, or Packery
6554
+ this.layout = layout;
6555
+ this.position = {
6556
+ x: 0,
6557
+ y: 0
6558
+ };
6559
+
6560
+ this._create();
6561
+ }
6562
+
6563
+ // inherit EvEmitter
6564
+ var proto = Item.prototype = Object.create( EvEmitter.prototype );
6565
+ proto.constructor = Item;
6566
+
6567
+ proto._create = function() {
6568
+ // transition objects
6569
+ this._transn = {
6570
+ ingProperties: {},
6571
+ clean: {},
6572
+ onEnd: {}
6573
+ };
6574
+
6575
+ this.css({
6576
+ position: 'absolute'
6577
+ });
6578
+ };
6579
+
6580
+ // trigger specified handler for event type
6581
+ proto.handleEvent = function( event ) {
6582
+ var method = 'on' + event.type;
6583
+ if ( this[ method ] ) {
6584
+ this[ method ]( event );
6585
+ }
6586
+ };
6587
+
6588
+ proto.getSize = function() {
6589
+ this.size = getSize( this.element );
6590
+ };
6591
+
6592
+ /**
6593
+ * apply CSS styles to element
6594
+ * @param {Object} style
6595
+ */
6596
+ proto.css = function( style ) {
6597
+ var elemStyle = this.element.style;
6598
+
6599
+ for ( var prop in style ) {
6600
+ // use vendor property if available
6601
+ var supportedProp = vendorProperties[ prop ] || prop;
6602
+ elemStyle[ supportedProp ] = style[ prop ];
6603
+ }
6604
+ };
6605
+
6606
+ // measure position, and sets it
6607
+ proto.getPosition = function() {
6608
+ var style = getComputedStyle( this.element );
6609
+ var isOriginLeft = this.layout._getOption('originLeft');
6610
+ var isOriginTop = this.layout._getOption('originTop');
6611
+ var xValue = style[ isOriginLeft ? 'left' : 'right' ];
6612
+ var yValue = style[ isOriginTop ? 'top' : 'bottom' ];
6613
+ var x = parseFloat( xValue );
6614
+ var y = parseFloat( yValue );
6615
+ // convert percent to pixels
6616
+ var layoutSize = this.layout.size;
6617
+ if ( xValue.indexOf('%') != -1 ) {
6618
+ x = ( x / 100 ) * layoutSize.width;
6619
+ }
6620
+ if ( yValue.indexOf('%') != -1 ) {
6621
+ y = ( y / 100 ) * layoutSize.height;
6622
+ }
6623
+ // clean up 'auto' or other non-integer values
6624
+ x = isNaN( x ) ? 0 : x;
6625
+ y = isNaN( y ) ? 0 : y;
6626
+ // remove padding from measurement
6627
+ x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;
6628
+ y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;
6629
+
6630
+ this.position.x = x;
6631
+ this.position.y = y;
6632
+ };
6633
+
6634
+ // set settled position, apply padding
6635
+ proto.layoutPosition = function() {
6636
+ var layoutSize = this.layout.size;
6637
+ var style = {};
6638
+ var isOriginLeft = this.layout._getOption('originLeft');
6639
+ var isOriginTop = this.layout._getOption('originTop');
6640
+
6641
+ // x
6642
+ var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';
6643
+ var xProperty = isOriginLeft ? 'left' : 'right';
6644
+ var xResetProperty = isOriginLeft ? 'right' : 'left';
6645
+
6646
+ var x = this.position.x + layoutSize[ xPadding ];
6647
+ // set in percentage or pixels
6648
+ style[ xProperty ] = this.getXValue( x );
6649
+ // reset other property
6650
+ style[ xResetProperty ] = '';
6651
+
6652
+ // y
6653
+ var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';
6654
+ var yProperty = isOriginTop ? 'top' : 'bottom';
6655
+ var yResetProperty = isOriginTop ? 'bottom' : 'top';
6656
+
6657
+ var y = this.position.y + layoutSize[ yPadding ];
6658
+ // set in percentage or pixels
6659
+ style[ yProperty ] = this.getYValue( y );
6660
+ // reset other property
6661
+ style[ yResetProperty ] = '';
6662
+
6663
+ this.css( style );
6664
+ this.emitEvent( 'layout', [ this ] );
6665
+ };
6666
+
6667
+ proto.getXValue = function( x ) {
6668
+ var isHorizontal = this.layout._getOption('horizontal');
6669
+ return this.layout.options.percentPosition && !isHorizontal ?
6670
+ ( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px';
6671
+ };
6672
+
6673
+ proto.getYValue = function( y ) {
6674
+ var isHorizontal = this.layout._getOption('horizontal');
6675
+ return this.layout.options.percentPosition && isHorizontal ?
6676
+ ( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px';
6677
+ };
6678
+
6679
+ proto._transitionTo = function( x, y ) {
6680
+ this.getPosition();
6681
+ // get current x & y from top/left
6682
+ var curX = this.position.x;
6683
+ var curY = this.position.y;
6684
+
6685
+ var didNotMove = x == this.position.x && y == this.position.y;
6686
+
6687
+ // save end position
6688
+ this.setPosition( x, y );
6689
+
6690
+ // if did not move and not transitioning, just go to layout
6691
+ if ( didNotMove && !this.isTransitioning ) {
6692
+ this.layoutPosition();
6693
+ return;
6694
+ }
6695
+
6696
+ var transX = x - curX;
6697
+ var transY = y - curY;
6698
+ var transitionStyle = {};
6699
+ transitionStyle.transform = this.getTranslate( transX, transY );
6700
+
6701
+ this.transition({
6702
+ to: transitionStyle,
6703
+ onTransitionEnd: {
6704
+ transform: this.layoutPosition
6705
+ },
6706
+ isCleaning: true
6707
+ });
6708
+ };
6709
+
6710
+ proto.getTranslate = function( x, y ) {
6711
+ // flip cooridinates if origin on right or bottom
6712
+ var isOriginLeft = this.layout._getOption('originLeft');
6713
+ var isOriginTop = this.layout._getOption('originTop');
6714
+ x = isOriginLeft ? x : -x;
6715
+ y = isOriginTop ? y : -y;
6716
+ return 'translate3d(' + x + 'px, ' + y + 'px, 0)';
6717
+ };
6718
+
6719
+ // non transition + transform support
6720
+ proto.goTo = function( x, y ) {
6721
+ this.setPosition( x, y );
6722
+ this.layoutPosition();
6723
+ };
6724
+
6725
+ proto.moveTo = proto._transitionTo;
6726
+
6727
+ proto.setPosition = function( x, y ) {
6728
+ this.position.x = parseFloat( x );
6729
+ this.position.y = parseFloat( y );
6730
+ };
6731
+
6732
+ // ----- transition ----- //
6733
+
6734
+ /**
6735
+ * @param {Object} style - CSS
6736
+ * @param {Function} onTransitionEnd
6737
+ */
6738
+
6739
+ // non transition, just trigger callback
6740
+ proto._nonTransition = function( args ) {
6741
+ this.css( args.to );
6742
+ if ( args.isCleaning ) {
6743
+ this._removeStyles( args.to );
6744
+ }
6745
+ for ( var prop in args.onTransitionEnd ) {
6746
+ args.onTransitionEnd[ prop ].call( this );
6747
+ }
6748
+ };
6749
+
6750
+ /**
6751
+ * proper transition
6752
+ * @param {Object} args - arguments
6753
+ * @param {Object} to - style to transition to
6754
+ * @param {Object} from - style to start transition from
6755
+ * @param {Boolean} isCleaning - removes transition styles after transition
6756
+ * @param {Function} onTransitionEnd - callback
6757
+ */
6758
+ proto.transition = function( args ) {
6759
+ // redirect to nonTransition if no transition duration
6760
+ if ( !parseFloat( this.layout.options.transitionDuration ) ) {
6761
+ this._nonTransition( args );
6762
+ return;
6763
+ }
6764
+
6765
+ var _transition = this._transn;
6766
+ // keep track of onTransitionEnd callback by css property
6767
+ for ( var prop in args.onTransitionEnd ) {
6768
+ _transition.onEnd[ prop ] = args.onTransitionEnd[ prop ];
6769
+ }
6770
+ // keep track of properties that are transitioning
6771
+ for ( prop in args.to ) {
6772
+ _transition.ingProperties[ prop ] = true;
6773
+ // keep track of properties to clean up when transition is done
6774
+ if ( args.isCleaning ) {
6775
+ _transition.clean[ prop ] = true;
6776
+ }
6777
+ }
6778
+
6779
+ // set from styles
6780
+ if ( args.from ) {
6781
+ this.css( args.from );
6782
+ // force redraw. http://blog.alexmaccaw.com/css-transitions
6783
+ var h = this.element.offsetHeight;
6784
+ // hack for JSHint to hush about unused var
6785
+ h = null;
6786
+ }
6787
+ // enable transition
6788
+ this.enableTransition( args.to );
6789
+ // set styles that are transitioning
6790
+ this.css( args.to );
6791
+
6792
+ this.isTransitioning = true;
6793
+
6794
+ };
6795
+
6796
+ // dash before all cap letters, including first for
6797
+ // WebkitTransform => -webkit-transform
6798
+ function toDashedAll( str ) {
6799
+ return str.replace( /([A-Z])/g, function( $1 ) {
6800
+ return '-' + $1.toLowerCase();
6801
+ });
6802
+ }
6803
+
6804
+ var transitionProps = 'opacity,' + toDashedAll( transformProperty );
6805
+
6806
+ proto.enableTransition = function(/* style */) {
6807
+ // HACK changing transitionProperty during a transition
6808
+ // will cause transition to jump
6809
+ if ( this.isTransitioning ) {
6810
+ return;
6811
+ }
6812
+
6813
+ // make `transition: foo, bar, baz` from style object
6814
+ // HACK un-comment this when enableTransition can work
6815
+ // while a transition is happening
6816
+ // var transitionValues = [];
6817
+ // for ( var prop in style ) {
6818
+ // // dash-ify camelCased properties like WebkitTransition
6819
+ // prop = vendorProperties[ prop ] || prop;
6820
+ // transitionValues.push( toDashedAll( prop ) );
6821
+ // }
6822
+ // munge number to millisecond, to match stagger
6823
+ var duration = this.layout.options.transitionDuration;
6824
+ duration = typeof duration == 'number' ? duration + 'ms' : duration;
6825
+ // enable transition styles
6826
+ this.css({
6827
+ transitionProperty: transitionProps,
6828
+ transitionDuration: duration,
6829
+ transitionDelay: this.staggerDelay || 0
6830
+ });
6831
+ // listen for transition end event
6832
+ this.element.addEventListener( transitionEndEvent, this, false );
6833
+ };
6834
+
6835
+ // ----- events ----- //
6836
+
6837
+ proto.onwebkitTransitionEnd = function( event ) {
6838
+ this.ontransitionend( event );
6839
+ };
6840
+
6841
+ proto.onotransitionend = function( event ) {
6842
+ this.ontransitionend( event );
6843
+ };
6844
+
6845
+ // properties that I munge to make my life easier
6846
+ var dashedVendorProperties = {
6847
+ '-webkit-transform': 'transform'
6848
+ };
6849
+
6850
+ proto.ontransitionend = function( event ) {
6851
+ // disregard bubbled events from children
6852
+ if ( event.target !== this.element ) {
6853
+ return;
6854
+ }
6855
+ var _transition = this._transn;
6856
+ // get property name of transitioned property, convert to prefix-free
6857
+ var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName;
6858
+
6859
+ // remove property that has completed transitioning
6860
+ delete _transition.ingProperties[ propertyName ];
6861
+ // check if any properties are still transitioning
6862
+ if ( isEmptyObj( _transition.ingProperties ) ) {
6863
+ // all properties have completed transitioning
6864
+ this.disableTransition();
6865
+ }
6866
+ // clean style
6867
+ if ( propertyName in _transition.clean ) {
6868
+ // clean up style
6869
+ this.element.style[ event.propertyName ] = '';
6870
+ delete _transition.clean[ propertyName ];
6871
+ }
6872
+ // trigger onTransitionEnd callback
6873
+ if ( propertyName in _transition.onEnd ) {
6874
+ var onTransitionEnd = _transition.onEnd[ propertyName ];
6875
+ onTransitionEnd.call( this );
6876
+ delete _transition.onEnd[ propertyName ];
6877
+ }
6878
+
6879
+ this.emitEvent( 'transitionEnd', [ this ] );
6880
+ };
6881
+
6882
+ proto.disableTransition = function() {
6883
+ this.removeTransitionStyles();
6884
+ this.element.removeEventListener( transitionEndEvent, this, false );
6885
+ this.isTransitioning = false;
6886
+ };
6887
+
6888
+ /**
6889
+ * removes style property from element
6890
+ * @param {Object} style
6891
+ **/
6892
+ proto._removeStyles = function( style ) {
6893
+ // clean up transition styles
6894
+ var cleanStyle = {};
6895
+ for ( var prop in style ) {
6896
+ cleanStyle[ prop ] = '';
6897
+ }
6898
+ this.css( cleanStyle );
6899
+ };
6900
+
6901
+ var cleanTransitionStyle = {
6902
+ transitionProperty: '',
6903
+ transitionDuration: '',
6904
+ transitionDelay: ''
6905
+ };
6906
+
6907
+ proto.removeTransitionStyles = function() {
6908
+ // remove transition
6909
+ this.css( cleanTransitionStyle );
6910
+ };
6911
+
6912
+ // ----- stagger ----- //
6913
+
6914
+ proto.stagger = function( delay ) {
6915
+ delay = isNaN( delay ) ? 0 : delay;
6916
+ this.staggerDelay = delay + 'ms';
6917
+ };
6918
+
6919
+ // ----- show/hide/remove ----- //
6920
+
6921
+ // remove element from DOM
6922
+ proto.removeElem = function() {
6923
+ this.element.parentNode.removeChild( this.element );
6924
+ // remove display: none
6925
+ this.css({ display: '' });
6926
+ this.emitEvent( 'remove', [ this ] );
6927
+ };
6928
+
6929
+ proto.remove = function() {
6930
+ // just remove element if no transition support or no transition
6931
+ if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) {
6932
+ this.removeElem();
6933
+ return;
6934
+ }
6935
+
6936
+ // start transition
6937
+ this.once( 'transitionEnd', function() {
6938
+ this.removeElem();
6939
+ });
6940
+ this.hide();
6941
+ };
6942
+
6943
+ proto.reveal = function() {
6944
+ delete this.isHidden;
6945
+ // remove display: none
6946
+ this.css({ display: '' });
6947
+
6948
+ var options = this.layout.options;
6949
+
6950
+ var onTransitionEnd = {};
6951
+ var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');
6952
+ onTransitionEnd[ transitionEndProperty ] = this.onRevealTransitionEnd;
6953
+
6954
+ this.transition({
6955
+ from: options.hiddenStyle,
6956
+ to: options.visibleStyle,
6957
+ isCleaning: true,
6958
+ onTransitionEnd: onTransitionEnd
6959
+ });
6960
+ };
6961
+
6962
+ proto.onRevealTransitionEnd = function() {
6963
+ // check if still visible
6964
+ // during transition, item may have been hidden
6965
+ if ( !this.isHidden ) {
6966
+ this.emitEvent('reveal');
6967
+ }
6968
+ };
6969
+
6970
+ /**
6971
+ * get style property use for hide/reveal transition end
6972
+ * @param {String} styleProperty - hiddenStyle/visibleStyle
6973
+ * @returns {String}
6974
+ */
6975
+ proto.getHideRevealTransitionEndProperty = function( styleProperty ) {
6976
+ var optionStyle = this.layout.options[ styleProperty ];
6977
+ // use opacity
6978
+ if ( optionStyle.opacity ) {
6979
+ return 'opacity';
6980
+ }
6981
+ // get first property
6982
+ for ( var prop in optionStyle ) {
6983
+ return prop;
6984
+ }
6985
+ };
6986
+
6987
+ proto.hide = function() {
6988
+ // set flag
6989
+ this.isHidden = true;
6990
+ // remove display: none
6991
+ this.css({ display: '' });
6992
+
6993
+ var options = this.layout.options;
6994
+
6995
+ var onTransitionEnd = {};
6996
+ var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');
6997
+ onTransitionEnd[ transitionEndProperty ] = this.onHideTransitionEnd;
6998
+
6999
+ this.transition({
7000
+ from: options.visibleStyle,
7001
+ to: options.hiddenStyle,
7002
+ // keep hidden stuff hidden
7003
+ isCleaning: true,
7004
+ onTransitionEnd: onTransitionEnd
7005
+ });
7006
+ };
7007
+
7008
+ proto.onHideTransitionEnd = function() {
7009
+ // check if still hidden
7010
+ // during transition, item may have been un-hidden
7011
+ if ( this.isHidden ) {
7012
+ this.css({ display: 'none' });
7013
+ this.emitEvent('hide');
7014
+ }
7015
+ };
7016
+
7017
+ proto.destroy = function() {
7018
+ this.css({
7019
+ position: '',
7020
+ left: '',
7021
+ right: '',
7022
+ top: '',
7023
+ bottom: '',
7024
+ transition: '',
7025
+ transform: ''
7026
+ });
7027
+ };
7028
+
7029
+ return Item;
7030
+
7031
+ }));
7032
+
7033
+
7034
+ /***/ }),
7035
+
7036
+ /***/ "./node_modules/outlayer/outlayer.js":
7037
+ /*!*******************************************!*\
7038
+ !*** ./node_modules/outlayer/outlayer.js ***!
7039
+ \*******************************************/
7040
+ /*! no static exports found */
7041
+ /***/ (function(module, exports, __webpack_require__) {
7042
+
7043
+ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
7044
+ * Outlayer v2.1.1
7045
+ * the brains and guts of a layout library
7046
+ * MIT license
7047
+ */
7048
+
7049
+ ( function( window, factory ) {
7050
+ 'use strict';
7051
+ // universal module definition
7052
+ /* jshint strict: false */ /* globals define, module, require */
7053
+ if ( true ) {
7054
+ // AMD - RequireJS
7055
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [
7056
+ __webpack_require__(/*! ev-emitter/ev-emitter */ "./node_modules/ev-emitter/ev-emitter.js"),
7057
+ __webpack_require__(/*! get-size/get-size */ "./node_modules/get-size/get-size.js"),
7058
+ __webpack_require__(/*! fizzy-ui-utils/utils */ "./node_modules/fizzy-ui-utils/utils.js"),
7059
+ __webpack_require__(/*! ./item */ "./node_modules/outlayer/item.js")
7060
+ ], __WEBPACK_AMD_DEFINE_RESULT__ = (function( EvEmitter, getSize, utils, Item ) {
7061
+ return factory( window, EvEmitter, getSize, utils, Item);
7062
+ }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
7063
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
7064
+ } else {}
7065
+
7066
+ }( window, function factory( window, EvEmitter, getSize, utils, Item ) {
7067
+ 'use strict';
7068
+
7069
+ // ----- vars ----- //
7070
+
7071
+ var console = window.console;
7072
+ var jQuery = window.jQuery;
7073
+ var noop = function() {};
7074
+
7075
+ // -------------------------- Outlayer -------------------------- //
7076
+
7077
+ // globally unique identifiers
7078
+ var GUID = 0;
7079
+ // internal store of all Outlayer intances
7080
+ var instances = {};
7081
+
7082
+
7083
+ /**
7084
+ * @param {Element, String} element
7085
+ * @param {Object} options
7086
+ * @constructor
7087
+ */
7088
+ function Outlayer( element, options ) {
7089
+ var queryElement = utils.getQueryElement( element );
7090
+ if ( !queryElement ) {
7091
+ if ( console ) {
7092
+ console.error( 'Bad element for ' + this.constructor.namespace +
7093
+ ': ' + ( queryElement || element ) );
7094
+ }
7095
+ return;
7096
+ }
7097
+ this.element = queryElement;
7098
+ // add jQuery
7099
+ if ( jQuery ) {
7100
+ this.$element = jQuery( this.element );
7101
+ }
7102
+
7103
+ // options
7104
+ this.options = utils.extend( {}, this.constructor.defaults );
7105
+ this.option( options );
7106
+
7107
+ // add id for Outlayer.getFromElement
7108
+ var id = ++GUID;
7109
+ this.element.outlayerGUID = id; // expando
7110
+ instances[ id ] = this; // associate via id
7111
+
7112
+ // kick it off
7113
+ this._create();
7114
+
7115
+ var isInitLayout = this._getOption('initLayout');
7116
+ if ( isInitLayout ) {
7117
+ this.layout();
7118
+ }
7119
+ }
7120
+
7121
+ // settings are for internal use only
7122
+ Outlayer.namespace = 'outlayer';
7123
+ Outlayer.Item = Item;
7124
+
7125
+ // default options
7126
+ Outlayer.defaults = {
7127
+ containerStyle: {
7128
+ position: 'relative'
7129
+ },
7130
+ initLayout: true,
7131
+ originLeft: true,
7132
+ originTop: true,
7133
+ resize: true,
7134
+ resizeContainer: true,
7135
+ // item options
7136
+ transitionDuration: '0.4s',
7137
+ hiddenStyle: {
7138
+ opacity: 0,
7139
+ transform: 'scale(0.001)'
7140
+ },
7141
+ visibleStyle: {
7142
+ opacity: 1,
7143
+ transform: 'scale(1)'
7144
+ }
7145
+ };
7146
+
7147
+ var proto = Outlayer.prototype;
7148
+ // inherit EvEmitter
7149
+ utils.extend( proto, EvEmitter.prototype );
7150
+
7151
+ /**
7152
+ * set options
7153
+ * @param {Object} opts
7154
+ */
7155
+ proto.option = function( opts ) {
7156
+ utils.extend( this.options, opts );
7157
+ };
7158
+
7159
+ /**
7160
+ * get backwards compatible option value, check old name
7161
+ */
7162
+ proto._getOption = function( option ) {
7163
+ var oldOption = this.constructor.compatOptions[ option ];
7164
+ return oldOption && this.options[ oldOption ] !== undefined ?
7165
+ this.options[ oldOption ] : this.options[ option ];
7166
+ };
7167
+
7168
+ Outlayer.compatOptions = {
7169
+ // currentName: oldName
7170
+ initLayout: 'isInitLayout',
7171
+ horizontal: 'isHorizontal',
7172
+ layoutInstant: 'isLayoutInstant',
7173
+ originLeft: 'isOriginLeft',
7174
+ originTop: 'isOriginTop',
7175
+ resize: 'isResizeBound',
7176
+ resizeContainer: 'isResizingContainer'
7177
+ };
7178
+
7179
+ proto._create = function() {
7180
+ // get items from children
7181
+ this.reloadItems();
7182
+ // elements that affect layout, but are not laid out
7183
+ this.stamps = [];
7184
+ this.stamp( this.options.stamp );
7185
+ // set container style
7186
+ utils.extend( this.element.style, this.options.containerStyle );
7187
+
7188
+ // bind resize method
7189
+ var canBindResize = this._getOption('resize');
7190
+ if ( canBindResize ) {
7191
+ this.bindResize();
7192
+ }
7193
+ };
7194
+
7195
+ // goes through all children again and gets bricks in proper order
7196
+ proto.reloadItems = function() {
7197
+ // collection of item elements
7198
+ this.items = this._itemize( this.element.children );
7199
+ };
7200
+
7201
+
7202
+ /**
7203
+ * turn elements into Outlayer.Items to be used in layout
7204
+ * @param {Array or NodeList or HTMLElement} elems
7205
+ * @returns {Array} items - collection of new Outlayer Items
7206
+ */
7207
+ proto._itemize = function( elems ) {
7208
+
7209
+ var itemElems = this._filterFindItemElements( elems );
7210
+ var Item = this.constructor.Item;
7211
+
7212
+ // create new Outlayer Items for collection
7213
+ var items = [];
7214
+ for ( var i=0; i < itemElems.length; i++ ) {
7215
+ var elem = itemElems[i];
7216
+ var item = new Item( elem, this );
7217
+ items.push( item );
7218
+ }
7219
+
7220
+ return items;
7221
+ };
7222
+
7223
+ /**
7224
+ * get item elements to be used in layout
7225
+ * @param {Array or NodeList or HTMLElement} elems
7226
+ * @returns {Array} items - item elements
7227
+ */
7228
+ proto._filterFindItemElements = function( elems ) {
7229
+ return utils.filterFindElements( elems, this.options.itemSelector );
7230
+ };
7231
+
7232
+ /**
7233
+ * getter method for getting item elements
7234
+ * @returns {Array} elems - collection of item elements
7235
+ */
7236
+ proto.getItemElements = function() {
7237
+ return this.items.map( function( item ) {
7238
+ return item.element;
7239
+ });
7240
+ };
7241
+
7242
+ // ----- init & layout ----- //
7243
+
7244
+ /**
7245
+ * lays out all items
7246
+ */
7247
+ proto.layout = function() {
7248
+ this._resetLayout();
7249
+ this._manageStamps();
7250
+
7251
+ // don't animate first layout
7252
+ var layoutInstant = this._getOption('layoutInstant');
7253
+ var isInstant = layoutInstant !== undefined ?
7254
+ layoutInstant : !this._isLayoutInited;
7255
+ this.layoutItems( this.items, isInstant );
7256
+
7257
+ // flag for initalized
7258
+ this._isLayoutInited = true;
7259
+ };
7260
+
7261
+ // _init is alias for layout
7262
+ proto._init = proto.layout;
7263
+
7264
+ /**
7265
+ * logic before any new layout
7266
+ */
7267
+ proto._resetLayout = function() {
7268
+ this.getSize();
7269
+ };
7270
+
7271
+
7272
+ proto.getSize = function() {
7273
+ this.size = getSize( this.element );
7274
+ };
7275
+
7276
+ /**
7277
+ * get measurement from option, for columnWidth, rowHeight, gutter
7278
+ * if option is String -> get element from selector string, & get size of element
7279
+ * if option is Element -> get size of element
7280
+ * else use option as a number
7281
+ *
7282
+ * @param {String} measurement
7283
+ * @param {String} size - width or height
7284
+ * @private
7285
+ */
7286
+ proto._getMeasurement = function( measurement, size ) {
7287
+ var option = this.options[ measurement ];
7288
+ var elem;
7289
+ if ( !option ) {
7290
+ // default to 0
7291
+ this[ measurement ] = 0;
7292
+ } else {
7293
+ // use option as an element
7294
+ if ( typeof option == 'string' ) {
7295
+ elem = this.element.querySelector( option );
7296
+ } else if ( option instanceof HTMLElement ) {
7297
+ elem = option;
7298
+ }
7299
+ // use size of element, if element
7300
+ this[ measurement ] = elem ? getSize( elem )[ size ] : option;
7301
+ }
7302
+ };
7303
+
7304
+ /**
7305
+ * layout a collection of item elements
7306
+ * @api public
7307
+ */
7308
+ proto.layoutItems = function( items, isInstant ) {
7309
+ items = this._getItemsForLayout( items );
7310
+
7311
+ this._layoutItems( items, isInstant );
7312
+
7313
+ this._postLayout();
7314
+ };
7315
+
7316
+ /**
7317
+ * get the items to be laid out
7318
+ * you may want to skip over some items
7319
+ * @param {Array} items
7320
+ * @returns {Array} items
7321
+ */
7322
+ proto._getItemsForLayout = function( items ) {
7323
+ return items.filter( function( item ) {
7324
+ return !item.isIgnored;
7325
+ });
7326
+ };
7327
+
7328
+ /**
7329
+ * layout items
7330
+ * @param {Array} items
7331
+ * @param {Boolean} isInstant
7332
+ */
7333
+ proto._layoutItems = function( items, isInstant ) {
7334
+ this._emitCompleteOnItems( 'layout', items );
7335
+
7336
+ if ( !items || !items.length ) {
7337
+ // no items, emit event with empty array
7338
+ return;
7339
+ }
7340
+
7341
+ var queue = [];
7342
+
7343
+ items.forEach( function( item ) {
7344
+ // get x/y object from method
7345
+ var position = this._getItemLayoutPosition( item );
7346
+ // enqueue
7347
+ position.item = item;
7348
+ position.isInstant = isInstant || item.isLayoutInstant;
7349
+ queue.push( position );
7350
+ }, this );
7351
+
7352
+ this._processLayoutQueue( queue );
7353
+ };
7354
+
7355
+ /**
7356
+ * get item layout position
7357
+ * @param {Outlayer.Item} item
7358
+ * @returns {Object} x and y position
7359
+ */
7360
+ proto._getItemLayoutPosition = function( /* item */ ) {
7361
+ return {
7362
+ x: 0,
7363
+ y: 0
7364
+ };
7365
+ };
7366
+
7367
+ /**
7368
+ * iterate over array and position each item
7369
+ * Reason being - separating this logic prevents 'layout invalidation'
7370
+ * thx @paul_irish
7371
+ * @param {Array} queue
7372
+ */
7373
+ proto._processLayoutQueue = function( queue ) {
7374
+ this.updateStagger();
7375
+ queue.forEach( function( obj, i ) {
7376
+ this._positionItem( obj.item, obj.x, obj.y, obj.isInstant, i );
7377
+ }, this );
7378
+ };
7379
+
7380
+ // set stagger from option in milliseconds number
7381
+ proto.updateStagger = function() {
7382
+ var stagger = this.options.stagger;
7383
+ if ( stagger === null || stagger === undefined ) {
7384
+ this.stagger = 0;
7385
+ return;
7386
+ }
7387
+ this.stagger = getMilliseconds( stagger );
7388
+ return this.stagger;
7389
+ };
7390
+
7391
+ /**
7392
+ * Sets position of item in DOM
7393
+ * @param {Outlayer.Item} item
7394
+ * @param {Number} x - horizontal position
7395
+ * @param {Number} y - vertical position
7396
+ * @param {Boolean} isInstant - disables transitions
7397
+ */
7398
+ proto._positionItem = function( item, x, y, isInstant, i ) {
7399
+ if ( isInstant ) {
7400
+ // if not transition, just set CSS
7401
+ item.goTo( x, y );
7402
+ } else {
7403
+ item.stagger( i * this.stagger );
7404
+ item.moveTo( x, y );
7405
+ }
7406
+ };
7407
+
7408
+ /**
7409
+ * Any logic you want to do after each layout,
7410
+ * i.e. size the container
7411
+ */
7412
+ proto._postLayout = function() {
7413
+ this.resizeContainer();
7414
+ };
7415
+
7416
+ proto.resizeContainer = function() {
7417
+ var isResizingContainer = this._getOption('resizeContainer');
7418
+ if ( !isResizingContainer ) {
7419
+ return;
7420
+ }
7421
+ var size = this._getContainerSize();
7422
+ if ( size ) {
7423
+ this._setContainerMeasure( size.width, true );
7424
+ this._setContainerMeasure( size.height, false );
7425
+ }
7426
+ };
7427
+
7428
+ /**
7429
+ * Sets width or height of container if returned
7430
+ * @returns {Object} size
7431
+ * @param {Number} width
7432
+ * @param {Number} height
7433
+ */
7434
+ proto._getContainerSize = noop;
7435
+
7436
+ /**
7437
+ * @param {Number} measure - size of width or height
7438
+ * @param {Boolean} isWidth
7439
+ */
7440
+ proto._setContainerMeasure = function( measure, isWidth ) {
7441
+ if ( measure === undefined ) {
7442
+ return;
7443
+ }
7444
+
7445
+ var elemSize = this.size;
7446
+ // add padding and border width if border box
7447
+ if ( elemSize.isBorderBox ) {
7448
+ measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight +
7449
+ elemSize.borderLeftWidth + elemSize.borderRightWidth :
7450
+ elemSize.paddingBottom + elemSize.paddingTop +
7451
+ elemSize.borderTopWidth + elemSize.borderBottomWidth;
7452
+ }
7453
+
7454
+ measure = Math.max( measure, 0 );
7455
+ this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px';
7456
+ };
7457
+
7458
+ /**
7459
+ * emit eventComplete on a collection of items events
7460
+ * @param {String} eventName
7461
+ * @param {Array} items - Outlayer.Items
7462
+ */
7463
+ proto._emitCompleteOnItems = function( eventName, items ) {
7464
+ var _this = this;
7465
+ function onComplete() {
7466
+ _this.dispatchEvent( eventName + 'Complete', null, [ items ] );
7467
+ }
7468
+
7469
+ var count = items.length;
7470
+ if ( !items || !count ) {
7471
+ onComplete();
7472
+ return;
7473
+ }
7474
+
7475
+ var doneCount = 0;
7476
+ function tick() {
7477
+ doneCount++;
7478
+ if ( doneCount == count ) {
7479
+ onComplete();
7480
+ }
7481
+ }
7482
+
7483
+ // bind callback
7484
+ items.forEach( function( item ) {
7485
+ item.once( eventName, tick );
7486
+ });
7487
+ };
7488
+
7489
+ /**
7490
+ * emits events via EvEmitter and jQuery events
7491
+ * @param {String} type - name of event
7492
+ * @param {Event} event - original event
7493
+ * @param {Array} args - extra arguments
7494
+ */
7495
+ proto.dispatchEvent = function( type, event, args ) {
7496
+ // add original event to arguments
7497
+ var emitArgs = event ? [ event ].concat( args ) : args;
7498
+ this.emitEvent( type, emitArgs );
7499
+
7500
+ if ( jQuery ) {
7501
+ // set this.$element
7502
+ this.$element = this.$element || jQuery( this.element );
7503
+ if ( event ) {
7504
+ // create jQuery event
7505
+ var $event = jQuery.Event( event );
7506
+ $event.type = type;
7507
+ this.$element.trigger( $event, args );
7508
+ } else {
7509
+ // just trigger with type if no event available
7510
+ this.$element.trigger( type, args );
7511
+ }
7512
+ }
7513
+ };
7514
+
7515
+ // -------------------------- ignore & stamps -------------------------- //
7516
+
7517
+
7518
+ /**
7519
+ * keep item in collection, but do not lay it out
7520
+ * ignored items do not get skipped in layout
7521
+ * @param {Element} elem
7522
+ */
7523
+ proto.ignore = function( elem ) {
7524
+ var item = this.getItem( elem );
7525
+ if ( item ) {
7526
+ item.isIgnored = true;
7527
+ }
7528
+ };
7529
+
7530
+ /**
7531
+ * return item to layout collection
7532
+ * @param {Element} elem
7533
+ */
7534
+ proto.unignore = function( elem ) {
7535
+ var item = this.getItem( elem );
7536
+ if ( item ) {
7537
+ delete item.isIgnored;
7538
+ }
7539
+ };
7540
+
7541
+ /**
7542
+ * adds elements to stamps
7543
+ * @param {NodeList, Array, Element, or String} elems
7544
+ */
7545
+ proto.stamp = function( elems ) {
7546
+ elems = this._find( elems );
7547
+ if ( !elems ) {
7548
+ return;
7549
+ }
7550
+
7551
+ this.stamps = this.stamps.concat( elems );
7552
+ // ignore
7553
+ elems.forEach( this.ignore, this );
7554
+ };
7555
+
7556
+ /**
7557
+ * removes elements to stamps
7558
+ * @param {NodeList, Array, or Element} elems
7559
+ */
7560
+ proto.unstamp = function( elems ) {
7561
+ elems = this._find( elems );
7562
+ if ( !elems ){
7563
+ return;
7564
+ }
7565
+
7566
+ elems.forEach( function( elem ) {
7567
+ // filter out removed stamp elements
7568
+ utils.removeFrom( this.stamps, elem );
7569
+ this.unignore( elem );
7570
+ }, this );
7571
+ };
7572
+
7573
+ /**
7574
+ * finds child elements
7575
+ * @param {NodeList, Array, Element, or String} elems
7576
+ * @returns {Array} elems
7577
+ */
7578
+ proto._find = function( elems ) {
7579
+ if ( !elems ) {
7580
+ return;
7581
+ }
7582
+ // if string, use argument as selector string
7583
+ if ( typeof elems == 'string' ) {
7584
+ elems = this.element.querySelectorAll( elems );
7585
+ }
7586
+ elems = utils.makeArray( elems );
7587
+ return elems;
7588
+ };
7589
+
7590
+ proto._manageStamps = function() {
7591
+ if ( !this.stamps || !this.stamps.length ) {
7592
+ return;
7593
+ }
7594
+
7595
+ this._getBoundingRect();
7596
+
7597
+ this.stamps.forEach( this._manageStamp, this );
7598
+ };
7599
+
7600
+ // update boundingLeft / Top
7601
+ proto._getBoundingRect = function() {
7602
+ // get bounding rect for container element
7603
+ var boundingRect = this.element.getBoundingClientRect();
7604
+ var size = this.size;
7605
+ this._boundingRect = {
7606
+ left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,
7607
+ top: boundingRect.top + size.paddingTop + size.borderTopWidth,
7608
+ right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ),
7609
+ bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth )
7610
+ };
7611
+ };
7612
+
7613
+ /**
7614
+ * @param {Element} stamp
7615
+ **/
7616
+ proto._manageStamp = noop;
7617
+
7618
+ /**
7619
+ * get x/y position of element relative to container element
7620
+ * @param {Element} elem
7621
+ * @returns {Object} offset - has left, top, right, bottom
7622
+ */
7623
+ proto._getElementOffset = function( elem ) {
7624
+ var boundingRect = elem.getBoundingClientRect();
7625
+ var thisRect = this._boundingRect;
7626
+ var size = getSize( elem );
7627
+ var offset = {
7628
+ left: boundingRect.left - thisRect.left - size.marginLeft,
7629
+ top: boundingRect.top - thisRect.top - size.marginTop,
7630
+ right: thisRect.right - boundingRect.right - size.marginRight,
7631
+ bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom
7632
+ };
7633
+ return offset;
7634
+ };
7635
+
7636
+ // -------------------------- resize -------------------------- //
7637
+
7638
+ // enable event handlers for listeners
7639
+ // i.e. resize -> onresize
7640
+ proto.handleEvent = utils.handleEvent;
7641
+
7642
+ /**
7643
+ * Bind layout to window resizing
7644
+ */
7645
+ proto.bindResize = function() {
7646
+ window.addEventListener( 'resize', this );
7647
+ this.isResizeBound = true;
7648
+ };
7649
+
7650
+ /**
7651
+ * Unbind layout to window resizing
7652
+ */
7653
+ proto.unbindResize = function() {
7654
+ window.removeEventListener( 'resize', this );
7655
+ this.isResizeBound = false;
7656
+ };
7657
+
7658
+ proto.onresize = function() {
7659
+ this.resize();
7660
+ };
7661
+
7662
+ utils.debounceMethod( Outlayer, 'onresize', 100 );
7663
+
7664
+ proto.resize = function() {
7665
+ // don't trigger if size did not change
7666
+ // or if resize was unbound. See #9
7667
+ if ( !this.isResizeBound || !this.needsResizeLayout() ) {
7668
+ return;
7669
+ }
7670
+
7671
+ this.layout();
7672
+ };
7673
+
7674
+ /**
7675
+ * check if layout is needed post layout
7676
+ * @returns Boolean
7677
+ */
7678
+ proto.needsResizeLayout = function() {
7679
+ var size = getSize( this.element );
7680
+ // check that this.size and size are there
7681
+ // IE8 triggers resize on body size change, so they might not be
7682
+ var hasSizes = this.size && size;
7683
+ return hasSizes && size.innerWidth !== this.size.innerWidth;
7684
+ };
7685
+
7686
+ // -------------------------- methods -------------------------- //
7687
+
7688
+ /**
7689
+ * add items to Outlayer instance
7690
+ * @param {Array or NodeList or Element} elems
7691
+ * @returns {Array} items - Outlayer.Items
7692
+ **/
7693
+ proto.addItems = function( elems ) {
7694
+ var items = this._itemize( elems );
7695
+ // add items to collection
7696
+ if ( items.length ) {
7697
+ this.items = this.items.concat( items );
7698
+ }
7699
+ return items;
7700
+ };
7701
+
7702
+ /**
7703
+ * Layout newly-appended item elements
7704
+ * @param {Array or NodeList or Element} elems
7705
+ */
7706
+ proto.appended = function( elems ) {
7707
+ var items = this.addItems( elems );
7708
+ if ( !items.length ) {
7709
+ return;
7710
+ }
7711
+ // layout and reveal just the new items
7712
+ this.layoutItems( items, true );
7713
+ this.reveal( items );
7714
+ };
7715
+
7716
+ /**
7717
+ * Layout prepended elements
7718
+ * @param {Array or NodeList or Element} elems
7719
+ */
7720
+ proto.prepended = function( elems ) {
7721
+ var items = this._itemize( elems );
7722
+ if ( !items.length ) {
7723
+ return;
7724
+ }
7725
+ // add items to beginning of collection
7726
+ var previousItems = this.items.slice(0);
7727
+ this.items = items.concat( previousItems );
7728
+ // start new layout
7729
+ this._resetLayout();
7730
+ this._manageStamps();
7731
+ // layout new stuff without transition
7732
+ this.layoutItems( items, true );
7733
+ this.reveal( items );
7734
+ // layout previous items
7735
+ this.layoutItems( previousItems );
7736
+ };
7737
+
7738
+ /**
7739
+ * reveal a collection of items
7740
+ * @param {Array of Outlayer.Items} items
7741
+ */
7742
+ proto.reveal = function( items ) {
7743
+ this._emitCompleteOnItems( 'reveal', items );
7744
+ if ( !items || !items.length ) {
7745
+ return;
7746
+ }
7747
+ var stagger = this.updateStagger();
7748
+ items.forEach( function( item, i ) {
7749
+ item.stagger( i * stagger );
7750
+ item.reveal();
7751
+ });
7752
+ };
7753
+
7754
+ /**
7755
+ * hide a collection of items
7756
+ * @param {Array of Outlayer.Items} items
7757
+ */
7758
+ proto.hide = function( items ) {
7759
+ this._emitCompleteOnItems( 'hide', items );
7760
+ if ( !items || !items.length ) {
7761
+ return;
7762
+ }
7763
+ var stagger = this.updateStagger();
7764
+ items.forEach( function( item, i ) {
7765
+ item.stagger( i * stagger );
7766
+ item.hide();
7767
+ });
7768
+ };
7769
+
7770
+ /**
7771
+ * reveal item elements
7772
+ * @param {Array}, {Element}, {NodeList} items
7773
+ */
7774
+ proto.revealItemElements = function( elems ) {
7775
+ var items = this.getItems( elems );
7776
+ this.reveal( items );
7777
+ };
7778
+
7779
+ /**
7780
+ * hide item elements
7781
+ * @param {Array}, {Element}, {NodeList} items
7782
+ */
7783
+ proto.hideItemElements = function( elems ) {
7784
+ var items = this.getItems( elems );
7785
+ this.hide( items );
7786
+ };
7787
+
7788
+ /**
7789
+ * get Outlayer.Item, given an Element
7790
+ * @param {Element} elem
7791
+ * @param {Function} callback
7792
+ * @returns {Outlayer.Item} item
7793
+ */
7794
+ proto.getItem = function( elem ) {
7795
+ // loop through items to get the one that matches
7796
+ for ( var i=0; i < this.items.length; i++ ) {
7797
+ var item = this.items[i];
7798
+ if ( item.element == elem ) {
7799
+ // return item
7800
+ return item;
7801
+ }
7802
+ }
7803
+ };
7804
+
7805
+ /**
7806
+ * get collection of Outlayer.Items, given Elements
7807
+ * @param {Array} elems
7808
+ * @returns {Array} items - Outlayer.Items
7809
+ */
7810
+ proto.getItems = function( elems ) {
7811
+ elems = utils.makeArray( elems );
7812
+ var items = [];
7813
+ elems.forEach( function( elem ) {
7814
+ var item = this.getItem( elem );
7815
+ if ( item ) {
7816
+ items.push( item );
7817
+ }
7818
+ }, this );
7819
+
7820
+ return items;
7821
+ };
7822
+
7823
+ /**
7824
+ * remove element(s) from instance and DOM
7825
+ * @param {Array or NodeList or Element} elems
7826
+ */
7827
+ proto.remove = function( elems ) {
7828
+ var removeItems = this.getItems( elems );
7829
+
7830
+ this._emitCompleteOnItems( 'remove', removeItems );
7831
+
7832
+ // bail if no items to remove
7833
+ if ( !removeItems || !removeItems.length ) {
7834
+ return;
7835
+ }
7836
+
7837
+ removeItems.forEach( function( item ) {
7838
+ item.remove();
7839
+ // remove item from collection
7840
+ utils.removeFrom( this.items, item );
7841
+ }, this );
7842
+ };
7843
+
7844
+ // ----- destroy ----- //
7845
+
7846
+ // remove and disable Outlayer instance
7847
+ proto.destroy = function() {
7848
+ // clean up dynamic styles
7849
+ var style = this.element.style;
7850
+ style.height = '';
7851
+ style.position = '';
7852
+ style.width = '';
7853
+ // destroy items
7854
+ this.items.forEach( function( item ) {
7855
+ item.destroy();
7856
+ });
7857
+
7858
+ this.unbindResize();
7859
+
7860
+ var id = this.element.outlayerGUID;
7861
+ delete instances[ id ]; // remove reference to instance by id
7862
+ delete this.element.outlayerGUID;
7863
+ // remove data for jQuery
7864
+ if ( jQuery ) {
7865
+ jQuery.removeData( this.element, this.constructor.namespace );
7866
+ }
7867
+
7868
+ };
7869
+
7870
+ // -------------------------- data -------------------------- //
7871
+
7872
+ /**
7873
+ * get Outlayer instance from element
7874
+ * @param {Element} elem
7875
+ * @returns {Outlayer}
7876
+ */
7877
+ Outlayer.data = function( elem ) {
7878
+ elem = utils.getQueryElement( elem );
7879
+ var id = elem && elem.outlayerGUID;
7880
+ return id && instances[ id ];
7881
+ };
7882
+
7883
+
7884
+ // -------------------------- create Outlayer class -------------------------- //
7885
+
7886
+ /**
7887
+ * create a layout class
7888
+ * @param {String} namespace
7889
+ */
7890
+ Outlayer.create = function( namespace, options ) {
7891
+ // sub-class Outlayer
7892
+ var Layout = subclass( Outlayer );
7893
+ // apply new options and compatOptions
7894
+ Layout.defaults = utils.extend( {}, Outlayer.defaults );
7895
+ utils.extend( Layout.defaults, options );
7896
+ Layout.compatOptions = utils.extend( {}, Outlayer.compatOptions );
7897
+
7898
+ Layout.namespace = namespace;
7899
+
7900
+ Layout.data = Outlayer.data;
7901
+
7902
+ // sub-class Item
7903
+ Layout.Item = subclass( Item );
7904
+
7905
+ // -------------------------- declarative -------------------------- //
7906
+
7907
+ utils.htmlInit( Layout, namespace );
7908
+
7909
+ // -------------------------- jQuery bridge -------------------------- //
7910
+
7911
+ // make into jQuery plugin
7912
+ if ( jQuery && jQuery.bridget ) {
7913
+ jQuery.bridget( namespace, Layout );
7914
+ }
7915
+
7916
+ return Layout;
7917
+ };
7918
+
7919
+ function subclass( Parent ) {
7920
+ function SubClass() {
7921
+ Parent.apply( this, arguments );
7922
+ }
7923
+
7924
+ SubClass.prototype = Object.create( Parent.prototype );
7925
+ SubClass.prototype.constructor = SubClass;
7926
+
7927
+ return SubClass;
7928
+ }
7929
+
7930
+ // ----- helpers ----- //
7931
+
7932
+ // how many milliseconds are in each unit
7933
+ var msUnits = {
7934
+ ms: 1,
7935
+ s: 1000
7936
+ };
7937
+
7938
+ // munge time-like parameter into millisecond number
7939
+ // '0.4s' -> 40
7940
+ function getMilliseconds( time ) {
7941
+ if ( typeof time == 'number' ) {
7942
+ return time;
7943
+ }
7944
+ var matches = time.match( /(^\d*\.?\d*)(\w*)/ );
7945
+ var num = matches && matches[1];
7946
+ var unit = matches && matches[2];
7947
+ if ( !num.length ) {
7948
+ return 0;
7949
+ }
7950
+ num = parseFloat( num );
7951
+ var mult = msUnits[ unit ] || 1;
7952
+ return num * mult;
7953
+ }
7954
+
7955
+ // ----- fin ----- //
7956
+
7957
+ // back in global
7958
+ Outlayer.Item = Item;
7959
+
7960
+ return Outlayer;
7961
+
7962
+ }));
7963
+
7964
+
7965
+ /***/ }),
7966
+
7967
+ /***/ "./node_modules/process/browser.js":
7968
+ /*!*****************************************!*\
7969
+ !*** ./node_modules/process/browser.js ***!
7970
+ \*****************************************/
7971
+ /*! no static exports found */
7972
+ /***/ (function(module, exports) {
7973
+
7974
+ // shim for using process in browser
7975
+ var process = module.exports = {};
7976
+
7977
+ // cached from whatever global is present so that test runners that stub it
7978
+ // don't break things. But we need to wrap it in a try catch in case it is
7979
+ // wrapped in strict mode code which doesn't define any globals. It's inside a
7980
+ // function because try/catches deoptimize in certain engines.
7981
+
7982
+ var cachedSetTimeout;
7983
+ var cachedClearTimeout;
7984
+
7985
+ function defaultSetTimout() {
7986
+ throw new Error('setTimeout has not been defined');
7987
+ }
7988
+ function defaultClearTimeout () {
7989
+ throw new Error('clearTimeout has not been defined');
7990
+ }
7991
+ (function () {
7992
+ try {
7993
+ if (typeof setTimeout === 'function') {
7994
+ cachedSetTimeout = setTimeout;
7995
+ } else {
7996
+ cachedSetTimeout = defaultSetTimout;
7997
+ }
7998
+ } catch (e) {
7999
+ cachedSetTimeout = defaultSetTimout;
8000
+ }
8001
+ try {
8002
+ if (typeof clearTimeout === 'function') {
8003
+ cachedClearTimeout = clearTimeout;
8004
+ } else {
8005
+ cachedClearTimeout = defaultClearTimeout;
8006
+ }
8007
+ } catch (e) {
8008
+ cachedClearTimeout = defaultClearTimeout;
8009
+ }
8010
+ } ())
8011
+ function runTimeout(fun) {
8012
+ if (cachedSetTimeout === setTimeout) {
8013
+ //normal enviroments in sane situations
8014
+ return setTimeout(fun, 0);
8015
+ }
8016
+ // if setTimeout wasn't available but was latter defined
8017
+ if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
8018
+ cachedSetTimeout = setTimeout;
8019
+ return setTimeout(fun, 0);
8020
+ }
8021
+ try {
8022
+ // when when somebody has screwed with setTimeout but no I.E. maddness
8023
+ return cachedSetTimeout(fun, 0);
8024
+ } catch(e){
8025
+ try {
8026
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
8027
+ return cachedSetTimeout.call(null, fun, 0);
8028
+ } catch(e){
8029
+ // 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
8030
+ return cachedSetTimeout.call(this, fun, 0);
8031
+ }
8032
+ }
8033
+
8034
+
8035
+ }
8036
+ function runClearTimeout(marker) {
8037
+ if (cachedClearTimeout === clearTimeout) {
8038
+ //normal enviroments in sane situations
8039
+ return clearTimeout(marker);
8040
+ }
8041
+ // if clearTimeout wasn't available but was latter defined
8042
+ if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
8043
+ cachedClearTimeout = clearTimeout;
8044
+ return clearTimeout(marker);
8045
+ }
8046
+ try {
8047
+ // when when somebody has screwed with setTimeout but no I.E. maddness
8048
+ return cachedClearTimeout(marker);
8049
+ } catch (e){
8050
+ try {
8051
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
8052
+ return cachedClearTimeout.call(null, marker);
8053
+ } catch (e){
8054
+ // 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.
8055
+ // Some versions of I.E. have different rules for clearTimeout vs setTimeout
8056
+ return cachedClearTimeout.call(this, marker);
8057
+ }
8058
+ }
8059
+
8060
+
8061
+
8062
+ }
8063
+ var queue = [];
8064
+ var draining = false;
8065
+ var currentQueue;
8066
+ var queueIndex = -1;
8067
+
8068
+ function cleanUpNextTick() {
8069
+ if (!draining || !currentQueue) {
8070
+ return;
8071
+ }
8072
+ draining = false;
8073
+ if (currentQueue.length) {
8074
+ queue = currentQueue.concat(queue);
8075
+ } else {
8076
+ queueIndex = -1;
8077
+ }
8078
+ if (queue.length) {
8079
+ drainQueue();
8080
+ }
8081
+ }
8082
+
8083
+ function drainQueue() {
8084
+ if (draining) {
8085
+ return;
8086
+ }
8087
+ var timeout = runTimeout(cleanUpNextTick);
8088
+ draining = true;
8089
+
8090
+ var len = queue.length;
8091
+ while(len) {
8092
+ currentQueue = queue;
8093
+ queue = [];
8094
+ while (++queueIndex < len) {
8095
+ if (currentQueue) {
8096
+ currentQueue[queueIndex].run();
8097
+ }
8098
+ }
8099
+ queueIndex = -1;
8100
+ len = queue.length;
8101
+ }
8102
+ currentQueue = null;
8103
+ draining = false;
8104
+ runClearTimeout(timeout);
8105
+ }
8106
+
8107
+ process.nextTick = function (fun) {
8108
+ var args = new Array(arguments.length - 1);
8109
+ if (arguments.length > 1) {
8110
+ for (var i = 1; i < arguments.length; i++) {
8111
+ args[i - 1] = arguments[i];
8112
+ }
8113
+ }
8114
+ queue.push(new Item(fun, args));
8115
+ if (queue.length === 1 && !draining) {
8116
+ runTimeout(drainQueue);
8117
+ }
8118
+ };
8119
+
8120
+ // v8 likes predictible objects
8121
+ function Item(fun, array) {
8122
+ this.fun = fun;
8123
+ this.array = array;
8124
+ }
8125
+ Item.prototype.run = function () {
8126
+ this.fun.apply(null, this.array);
8127
+ };
8128
+ process.title = 'browser';
8129
+ process.browser = true;
8130
+ process.env = {};
8131
+ process.argv = [];
8132
+ process.version = ''; // empty string to avoid regexp issues
8133
+ process.versions = {};
8134
+
8135
+ function noop() {}
8136
+
8137
+ process.on = noop;
8138
+ process.addListener = noop;
8139
+ process.once = noop;
8140
+ process.off = noop;
8141
+ process.removeListener = noop;
8142
+ process.removeAllListeners = noop;
8143
+ process.emit = noop;
8144
+ process.prependListener = noop;
8145
+ process.prependOnceListener = noop;
8146
+
8147
+ process.listeners = function (name) { return [] }
8148
+
8149
+ process.binding = function (name) {
8150
+ throw new Error('process.binding is not supported');
8151
+ };
8152
+
8153
+ process.cwd = function () { return '/' };
8154
+ process.chdir = function (dir) {
8155
+ throw new Error('process.chdir is not supported');
8156
+ };
8157
+ process.umask = function() { return 0; };
8158
+
8159
+
8160
+ /***/ }),
8161
+
8162
+ /***/ "./node_modules/prop-types/checkPropTypes.js":
8163
+ /*!***************************************************!*\
8164
+ !*** ./node_modules/prop-types/checkPropTypes.js ***!
8165
+ \***************************************************/
8166
+ /*! no static exports found */
8167
+ /***/ (function(module, exports, __webpack_require__) {
8168
+
8169
+ "use strict";
8170
+ /**
8171
+ * Copyright (c) 2013-present, Facebook, Inc.
8172
+ *
8173
+ * This source code is licensed under the MIT license found in the
8174
+ * LICENSE file in the root directory of this source tree.
8175
+ */
8176
+
8177
+
8178
+
8179
+ if (true) {
8180
+ var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js");
8181
+ var warning = __webpack_require__(/*! fbjs/lib/warning */ "./node_modules/fbjs/lib/warning.js");
8182
+ var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js");
8183
+ var loggedTypeFailures = {};
8184
+ }
8185
+
8186
+ /**
8187
+ * Assert that the values match with the type specs.
8188
+ * Error messages are memorized and will only be shown once.
8189
+ *
8190
+ * @param {object} typeSpecs Map of name to a ReactPropType
8191
+ * @param {object} values Runtime values that need to be type-checked
8192
+ * @param {string} location e.g. "prop", "context", "child context"
8193
+ * @param {string} componentName Name of the component for error messages.
8194
+ * @param {?Function} getStack Returns the component stack.
8195
+ * @private
8196
+ */
8197
+ function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
8198
+ if (true) {
8199
+ for (var typeSpecName in typeSpecs) {
8200
+ if (typeSpecs.hasOwnProperty(typeSpecName)) {
8201
+ var error;
8202
+ // Prop type validation may throw. In case they do, we don't want to
8203
+ // fail the render phase where it didn't fail before. So we log it.
8204
+ // After these have been cleaned up, we'll let them throw.
8205
+ try {
8206
+ // This is intentionally an invariant that gets caught. It's the same
8207
+ // behavior as without this statement except with a better message.
8208
+ invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);
8209
+ error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
8210
+ } catch (ex) {
8211
+ error = ex;
8212
+ }
8213
+ warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);
8214
+ if (error instanceof Error && !(error.message in loggedTypeFailures)) {
8215
+ // Only monitor this failure once because there tends to be a lot of the
8216
+ // same error.
8217
+ loggedTypeFailures[error.message] = true;
8218
+
8219
+ var stack = getStack ? getStack() : '';
8220
+
8221
+ warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');
8222
+ }
8223
+ }
8224
+ }
8225
+ }
8226
+ }
8227
+
8228
+ module.exports = checkPropTypes;
8229
+
8230
+
8231
+ /***/ }),
8232
+
8233
+ /***/ "./node_modules/prop-types/factory.js":
8234
+ /*!********************************************!*\
8235
+ !*** ./node_modules/prop-types/factory.js ***!
8236
+ \********************************************/
8237
+ /*! no static exports found */
8238
+ /***/ (function(module, exports, __webpack_require__) {
8239
+
8240
+ "use strict";
8241
+ /**
8242
+ * Copyright (c) 2013-present, Facebook, Inc.
8243
+ *
8244
+ * This source code is licensed under the MIT license found in the
8245
+ * LICENSE file in the root directory of this source tree.
8246
+ */
8247
+
8248
+
8249
+
8250
+ // React 15.5 references this module, and assumes PropTypes are still callable in production.
8251
+ // Therefore we re-export development-only version with all the PropTypes checks here.
8252
+ // However if one is migrating to the `prop-types` npm library, they will go through the
8253
+ // `index.js` entry point, and it will branch depending on the environment.
8254
+ var factory = __webpack_require__(/*! ./factoryWithTypeCheckers */ "./node_modules/prop-types/factoryWithTypeCheckers.js");
8255
+ module.exports = function(isValidElement) {
8256
+ // It is still allowed in 15.5.
8257
+ var throwOnDirectAccess = false;
8258
+ return factory(isValidElement, throwOnDirectAccess);
8259
+ };
8260
+
8261
+
8262
+ /***/ }),
8263
+
8264
+ /***/ "./node_modules/prop-types/factoryWithTypeCheckers.js":
8265
+ /*!************************************************************!*\
8266
+ !*** ./node_modules/prop-types/factoryWithTypeCheckers.js ***!
8267
+ \************************************************************/
8268
+ /*! no static exports found */
8269
+ /***/ (function(module, exports, __webpack_require__) {
8270
+
8271
+ "use strict";
8272
+ /**
8273
+ * Copyright (c) 2013-present, Facebook, Inc.
8274
+ *
8275
+ * This source code is licensed under the MIT license found in the
8276
+ * LICENSE file in the root directory of this source tree.
8277
+ */
8278
+
8279
+
8280
+
8281
+ var emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ "./node_modules/fbjs/lib/emptyFunction.js");
8282
+ var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js");
8283
+ var warning = __webpack_require__(/*! fbjs/lib/warning */ "./node_modules/fbjs/lib/warning.js");
8284
+ var assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
8285
+
8286
+ var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js");
8287
+ var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "./node_modules/prop-types/checkPropTypes.js");
8288
+
8289
+ module.exports = function(isValidElement, throwOnDirectAccess) {
8290
+ /* global Symbol */
8291
+ var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
8292
+ var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
8293
+
8294
+ /**
8295
+ * Returns the iterator method function contained on the iterable object.
8296
+ *
8297
+ * Be sure to invoke the function with the iterable as context:
8298
+ *
8299
+ * var iteratorFn = getIteratorFn(myIterable);
8300
+ * if (iteratorFn) {
8301
+ * var iterator = iteratorFn.call(myIterable);
8302
+ * ...
8303
+ * }
8304
+ *
8305
+ * @param {?object} maybeIterable
8306
+ * @return {?function}
8307
+ */
8308
+ function getIteratorFn(maybeIterable) {
8309
+ var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
8310
+ if (typeof iteratorFn === 'function') {
8311
+ return iteratorFn;
8312
+ }
8313
+ }
8314
+
8315
+ /**
8316
+ * Collection of methods that allow declaration and validation of props that are
8317
+ * supplied to React components. Example usage:
8318
+ *
8319
+ * var Props = require('ReactPropTypes');
8320
+ * var MyArticle = React.createClass({
8321
+ * propTypes: {
8322
+ * // An optional string prop named "description".
8323
+ * description: Props.string,
8324
+ *
8325
+ * // A required enum prop named "category".
8326
+ * category: Props.oneOf(['News','Photos']).isRequired,
8327
+ *
8328
+ * // A prop named "dialog" that requires an instance of Dialog.
8329
+ * dialog: Props.instanceOf(Dialog).isRequired
8330
+ * },
8331
+ * render: function() { ... }
8332
+ * });
8333
+ *
8334
+ * A more formal specification of how these methods are used:
8335
+ *
8336
+ * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
8337
+ * decl := ReactPropTypes.{type}(.isRequired)?
8338
+ *
8339
+ * Each and every declaration produces a function with the same signature. This
8340
+ * allows the creation of custom validation functions. For example:
8341
+ *
8342
+ * var MyLink = React.createClass({
8343
+ * propTypes: {
8344
+ * // An optional string or URI prop named "href".
8345
+ * href: function(props, propName, componentName) {
8346
+ * var propValue = props[propName];
8347
+ * if (propValue != null && typeof propValue !== 'string' &&
8348
+ * !(propValue instanceof URI)) {
8349
+ * return new Error(
8350
+ * 'Expected a string or an URI for ' + propName + ' in ' +
8351
+ * componentName
8352
+ * );
8353
+ * }
8354
+ * }
8355
+ * },
8356
+ * render: function() {...}
8357
+ * });
8358
+ *
8359
+ * @internal
8360
+ */
8361
+
8362
+ var ANONYMOUS = '<<anonymous>>';
8363
+
8364
+ // Important!
8365
+ // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
8366
+ var ReactPropTypes = {
8367
+ array: createPrimitiveTypeChecker('array'),
8368
+ bool: createPrimitiveTypeChecker('boolean'),
8369
+ func: createPrimitiveTypeChecker('function'),
8370
+ number: createPrimitiveTypeChecker('number'),
8371
+ object: createPrimitiveTypeChecker('object'),
8372
+ string: createPrimitiveTypeChecker('string'),
8373
+ symbol: createPrimitiveTypeChecker('symbol'),
8374
+
8375
+ any: createAnyTypeChecker(),
8376
+ arrayOf: createArrayOfTypeChecker,
8377
+ element: createElementTypeChecker(),
8378
+ instanceOf: createInstanceTypeChecker,
8379
+ node: createNodeChecker(),
8380
+ objectOf: createObjectOfTypeChecker,
8381
+ oneOf: createEnumTypeChecker,
8382
+ oneOfType: createUnionTypeChecker,
8383
+ shape: createShapeTypeChecker,
8384
+ exact: createStrictShapeTypeChecker,
8385
+ };
8386
+
8387
+ /**
8388
+ * inlined Object.is polyfill to avoid requiring consumers ship their own
8389
+ * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
8390
+ */
8391
+ /*eslint-disable no-self-compare*/
8392
+ function is(x, y) {
8393
+ // SameValue algorithm
8394
+ if (x === y) {
8395
+ // Steps 1-5, 7-10
8396
+ // Steps 6.b-6.e: +0 != -0
8397
+ return x !== 0 || 1 / x === 1 / y;
8398
+ } else {
8399
+ // Step 6.a: NaN == NaN
8400
+ return x !== x && y !== y;
8401
+ }
8402
+ }
8403
+ /*eslint-enable no-self-compare*/
8404
+
8405
+ /**
8406
+ * We use an Error-like object for backward compatibility as people may call
8407
+ * PropTypes directly and inspect their output. However, we don't use real
8408
+ * Errors anymore. We don't inspect their stack anyway, and creating them
8409
+ * is prohibitively expensive if they are created too often, such as what
8410
+ * happens in oneOfType() for any type before the one that matched.
8411
+ */
8412
+ function PropTypeError(message) {
8413
+ this.message = message;
8414
+ this.stack = '';
8415
+ }
8416
+ // Make `instanceof Error` still work for returned errors.
8417
+ PropTypeError.prototype = Error.prototype;
8418
+
8419
+ function createChainableTypeChecker(validate) {
8420
+ if (true) {
8421
+ var manualPropTypeCallCache = {};
8422
+ var manualPropTypeWarningCount = 0;
8423
+ }
8424
+ function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
8425
+ componentName = componentName || ANONYMOUS;
8426
+ propFullName = propFullName || propName;
8427
+
8428
+ if (secret !== ReactPropTypesSecret) {
8429
+ if (throwOnDirectAccess) {
8430
+ // New behavior only for users of `prop-types` package
8431
+ invariant(
8432
+ false,
8433
+ 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
8434
+ 'Use `PropTypes.checkPropTypes()` to call them. ' +
8435
+ 'Read more at http://fb.me/use-check-prop-types'
8436
+ );
8437
+ } else if ( true && typeof console !== 'undefined') {
8438
+ // Old behavior for people using React.PropTypes
8439
+ var cacheKey = componentName + ':' + propName;
8440
+ if (
8441
+ !manualPropTypeCallCache[cacheKey] &&
8442
+ // Avoid spamming the console because they are often not actionable except for lib authors
8443
+ manualPropTypeWarningCount < 3
8444
+ ) {
8445
+ warning(
8446
+ false,
8447
+ 'You are manually calling a React.PropTypes validation ' +
8448
+ 'function for the `%s` prop on `%s`. This is deprecated ' +
8449
+ 'and will throw in the standalone `prop-types` package. ' +
8450
+ 'You may be seeing this warning due to a third-party PropTypes ' +
8451
+ 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',
8452
+ propFullName,
8453
+ componentName
8454
+ );
8455
+ manualPropTypeCallCache[cacheKey] = true;
8456
+ manualPropTypeWarningCount++;
8457
+ }
8458
+ }
8459
+ }
8460
+ if (props[propName] == null) {
8461
+ if (isRequired) {
8462
+ if (props[propName] === null) {
8463
+ return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
8464
+ }
8465
+ return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
8466
+ }
8467
+ return null;
8468
+ } else {
8469
+ return validate(props, propName, componentName, location, propFullName);
8470
+ }
8471
+ }
8472
+
8473
+ var chainedCheckType = checkType.bind(null, false);
8474
+ chainedCheckType.isRequired = checkType.bind(null, true);
8475
+
8476
+ return chainedCheckType;
8477
+ }
8478
+
8479
+ function createPrimitiveTypeChecker(expectedType) {
8480
+ function validate(props, propName, componentName, location, propFullName, secret) {
8481
+ var propValue = props[propName];
8482
+ var propType = getPropType(propValue);
8483
+ if (propType !== expectedType) {
8484
+ // `propValue` being instance of, say, date/regexp, pass the 'object'
8485
+ // check, but we can offer a more precise error message here rather than
8486
+ // 'of type `object`'.
8487
+ var preciseType = getPreciseType(propValue);
8488
+
8489
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
8490
+ }
8491
+ return null;
8492
+ }
8493
+ return createChainableTypeChecker(validate);
8494
+ }
8495
+
8496
+ function createAnyTypeChecker() {
8497
+ return createChainableTypeChecker(emptyFunction.thatReturnsNull);
8498
+ }
8499
+
8500
+ function createArrayOfTypeChecker(typeChecker) {
8501
+ function validate(props, propName, componentName, location, propFullName) {
8502
+ if (typeof typeChecker !== 'function') {
8503
+ return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
8504
+ }
8505
+ var propValue = props[propName];
8506
+ if (!Array.isArray(propValue)) {
8507
+ var propType = getPropType(propValue);
8508
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
8509
+ }
8510
+ for (var i = 0; i < propValue.length; i++) {
8511
+ var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
8512
+ if (error instanceof Error) {
8513
+ return error;
8514
+ }
8515
+ }
8516
+ return null;
8517
+ }
8518
+ return createChainableTypeChecker(validate);
8519
+ }
8520
+
8521
+ function createElementTypeChecker() {
8522
+ function validate(props, propName, componentName, location, propFullName) {
8523
+ var propValue = props[propName];
8524
+ if (!isValidElement(propValue)) {
8525
+ var propType = getPropType(propValue);
8526
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
8527
+ }
8528
+ return null;
8529
+ }
8530
+ return createChainableTypeChecker(validate);
8531
+ }
8532
+
8533
+ function createInstanceTypeChecker(expectedClass) {
8534
+ function validate(props, propName, componentName, location, propFullName) {
8535
+ if (!(props[propName] instanceof expectedClass)) {
8536
+ var expectedClassName = expectedClass.name || ANONYMOUS;
8537
+ var actualClassName = getClassName(props[propName]);
8538
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
8539
+ }
8540
+ return null;
8541
+ }
8542
+ return createChainableTypeChecker(validate);
8543
+ }
8544
+
8545
+ function createEnumTypeChecker(expectedValues) {
8546
+ if (!Array.isArray(expectedValues)) {
8547
+ true ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : undefined;
8548
+ return emptyFunction.thatReturnsNull;
8549
+ }
8550
+
8551
+ function validate(props, propName, componentName, location, propFullName) {
8552
+ var propValue = props[propName];
8553
+ for (var i = 0; i < expectedValues.length; i++) {
8554
+ if (is(propValue, expectedValues[i])) {
8555
+ return null;
8556
+ }
8557
+ }
8558
+
8559
+ var valuesString = JSON.stringify(expectedValues);
8560
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
8561
+ }
8562
+ return createChainableTypeChecker(validate);
8563
+ }
8564
+
8565
+ function createObjectOfTypeChecker(typeChecker) {
8566
+ function validate(props, propName, componentName, location, propFullName) {
8567
+ if (typeof typeChecker !== 'function') {
8568
+ return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
8569
+ }
8570
+ var propValue = props[propName];
8571
+ var propType = getPropType(propValue);
8572
+ if (propType !== 'object') {
8573
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
8574
+ }
8575
+ for (var key in propValue) {
8576
+ if (propValue.hasOwnProperty(key)) {
8577
+ var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8578
+ if (error instanceof Error) {
8579
+ return error;
8580
+ }
8581
+ }
8582
+ }
8583
+ return null;
8584
+ }
8585
+ return createChainableTypeChecker(validate);
8586
+ }
8587
+
8588
+ function createUnionTypeChecker(arrayOfTypeCheckers) {
8589
+ if (!Array.isArray(arrayOfTypeCheckers)) {
8590
+ true ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : undefined;
8591
+ return emptyFunction.thatReturnsNull;
8592
+ }
8593
+
8594
+ for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
8595
+ var checker = arrayOfTypeCheckers[i];
8596
+ if (typeof checker !== 'function') {
8597
+ warning(
8598
+ false,
8599
+ 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
8600
+ 'received %s at index %s.',
8601
+ getPostfixForTypeWarning(checker),
8602
+ i
8603
+ );
8604
+ return emptyFunction.thatReturnsNull;
8605
+ }
8606
+ }
8607
+
8608
+ function validate(props, propName, componentName, location, propFullName) {
8609
+ for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
8610
+ var checker = arrayOfTypeCheckers[i];
8611
+ if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
8612
+ return null;
8613
+ }
8614
+ }
8615
+
8616
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
8617
+ }
8618
+ return createChainableTypeChecker(validate);
8619
+ }
8620
+
8621
+ function createNodeChecker() {
8622
+ function validate(props, propName, componentName, location, propFullName) {
8623
+ if (!isNode(props[propName])) {
8624
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
8625
+ }
8626
+ return null;
8627
+ }
8628
+ return createChainableTypeChecker(validate);
8629
+ }
8630
+
8631
+ function createShapeTypeChecker(shapeTypes) {
8632
+ function validate(props, propName, componentName, location, propFullName) {
8633
+ var propValue = props[propName];
8634
+ var propType = getPropType(propValue);
8635
+ if (propType !== 'object') {
8636
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
8637
+ }
8638
+ for (var key in shapeTypes) {
8639
+ var checker = shapeTypes[key];
8640
+ if (!checker) {
8641
+ continue;
8642
+ }
8643
+ var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8644
+ if (error) {
8645
+ return error;
8646
+ }
8647
+ }
8648
+ return null;
8649
+ }
8650
+ return createChainableTypeChecker(validate);
8651
+ }
8652
+
8653
+ function createStrictShapeTypeChecker(shapeTypes) {
8654
+ function validate(props, propName, componentName, location, propFullName) {
8655
+ var propValue = props[propName];
8656
+ var propType = getPropType(propValue);
8657
+ if (propType !== 'object') {
8658
+ return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
8659
+ }
8660
+ // We need to check all keys in case some are required but missing from
8661
+ // props.
8662
+ var allKeys = assign({}, props[propName], shapeTypes);
8663
+ for (var key in allKeys) {
8664
+ var checker = shapeTypes[key];
8665
+ if (!checker) {
8666
+ return new PropTypeError(
8667
+ 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
8668
+ '\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
8669
+ '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
8670
+ );
8671
+ }
8672
+ var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
8673
+ if (error) {
8674
+ return error;
8675
+ }
8676
+ }
8677
+ return null;
8678
+ }
8679
+
8680
+ return createChainableTypeChecker(validate);
8681
+ }
8682
+
8683
+ function isNode(propValue) {
8684
+ switch (typeof propValue) {
8685
+ case 'number':
8686
+ case 'string':
8687
+ case 'undefined':
8688
+ return true;
8689
+ case 'boolean':
8690
+ return !propValue;
8691
+ case 'object':
8692
+ if (Array.isArray(propValue)) {
8693
+ return propValue.every(isNode);
8694
+ }
8695
+ if (propValue === null || isValidElement(propValue)) {
8696
+ return true;
8697
+ }
8698
+
8699
+ var iteratorFn = getIteratorFn(propValue);
8700
+ if (iteratorFn) {
8701
+ var iterator = iteratorFn.call(propValue);
8702
+ var step;
8703
+ if (iteratorFn !== propValue.entries) {
8704
+ while (!(step = iterator.next()).done) {
8705
+ if (!isNode(step.value)) {
8706
+ return false;
8707
+ }
8708
+ }
8709
+ } else {
8710
+ // Iterator will provide entry [k,v] tuples rather than values.
8711
+ while (!(step = iterator.next()).done) {
8712
+ var entry = step.value;
8713
+ if (entry) {
8714
+ if (!isNode(entry[1])) {
8715
+ return false;
8716
+ }
8717
+ }
8718
+ }
8719
+ }
8720
+ } else {
8721
+ return false;
8722
+ }
8723
+
8724
+ return true;
8725
+ default:
8726
+ return false;
8727
+ }
8728
+ }
8729
+
8730
+ function isSymbol(propType, propValue) {
8731
+ // Native Symbol.
8732
+ if (propType === 'symbol') {
8733
+ return true;
8734
+ }
8735
+
8736
+ // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
8737
+ if (propValue['@@toStringTag'] === 'Symbol') {
8738
+ return true;
8739
+ }
8740
+
8741
+ // Fallback for non-spec compliant Symbols which are polyfilled.
8742
+ if (typeof Symbol === 'function' && propValue instanceof Symbol) {
8743
+ return true;
8744
+ }
8745
+
8746
+ return false;
8747
+ }
8748
+
8749
+ // Equivalent of `typeof` but with special handling for array and regexp.
8750
+ function getPropType(propValue) {
8751
+ var propType = typeof propValue;
8752
+ if (Array.isArray(propValue)) {
8753
+ return 'array';
8754
+ }
8755
+ if (propValue instanceof RegExp) {
8756
+ // Old webkits (at least until Android 4.0) return 'function' rather than
8757
+ // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
8758
+ // passes PropTypes.object.
8759
+ return 'object';
8760
+ }
8761
+ if (isSymbol(propType, propValue)) {
8762
+ return 'symbol';
8763
+ }
8764
+ return propType;
8765
+ }
8766
+
8767
+ // This handles more types than `getPropType`. Only used for error messages.
8768
+ // See `createPrimitiveTypeChecker`.
8769
+ function getPreciseType(propValue) {
8770
+ if (typeof propValue === 'undefined' || propValue === null) {
8771
+ return '' + propValue;
8772
+ }
8773
+ var propType = getPropType(propValue);
8774
+ if (propType === 'object') {
8775
+ if (propValue instanceof Date) {
8776
+ return 'date';
8777
+ } else if (propValue instanceof RegExp) {
8778
+ return 'regexp';
8779
+ }
8780
+ }
8781
+ return propType;
8782
+ }
8783
+
8784
+ // Returns a string that is postfixed to a warning about an invalid type.
8785
+ // For example, "undefined" or "of type array"
8786
+ function getPostfixForTypeWarning(value) {
8787
+ var type = getPreciseType(value);
8788
+ switch (type) {
8789
+ case 'array':
8790
+ case 'object':
8791
+ return 'an ' + type;
8792
+ case 'boolean':
8793
+ case 'date':
8794
+ case 'regexp':
8795
+ return 'a ' + type;
8796
+ default:
8797
+ return type;
8798
+ }
8799
+ }
8800
+
8801
+ // Returns class name of the object, if any.
8802
+ function getClassName(propValue) {
8803
+ if (!propValue.constructor || !propValue.constructor.name) {
8804
+ return ANONYMOUS;
8805
+ }
8806
+ return propValue.constructor.name;
8807
+ }
8808
+
8809
+ ReactPropTypes.checkPropTypes = checkPropTypes;
8810
+ ReactPropTypes.PropTypes = ReactPropTypes;
8811
+
8812
+ return ReactPropTypes;
8813
+ };
8814
+
8815
+
8816
+ /***/ }),
8817
+
8818
+ /***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js":
8819
+ /*!*************************************************************!*\
8820
+ !*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
8821
+ \*************************************************************/
8822
+ /*! no static exports found */
8823
+ /***/ (function(module, exports, __webpack_require__) {
8824
+
8825
+ "use strict";
8826
+ /**
8827
+ * Copyright (c) 2013-present, Facebook, Inc.
8828
+ *
8829
+ * This source code is licensed under the MIT license found in the
8830
+ * LICENSE file in the root directory of this source tree.
8831
+ */
8832
+
8833
+
8834
+
8835
+ var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
8836
+
8837
+ module.exports = ReactPropTypesSecret;
8838
+
8839
+
8840
+ /***/ }),
8841
+
8842
+ /***/ "./node_modules/react-dom/index.js":
8843
+ /*!*****************************************!*\
8844
+ !*** ./node_modules/react-dom/index.js ***!
8845
+ \*****************************************/
8846
+ /*! no static exports found */
8847
+ /***/ (function(module, exports, __webpack_require__) {
8848
+
8849
+ "use strict";
8850
+
8851
+
8852
+ module.exports = __webpack_require__(/*! ./lib/ReactDOM */ "./node_modules/react-dom/lib/ReactDOM.js");
8853
+
8854
+
8855
+ /***/ }),
8856
+
8857
+ /***/ "./node_modules/react-dom/lib/ARIADOMPropertyConfig.js":
8858
+ /*!*************************************************************!*\
8859
+ !*** ./node_modules/react-dom/lib/ARIADOMPropertyConfig.js ***!
8860
+ \*************************************************************/
8861
+ /*! no static exports found */
8862
+ /***/ (function(module, exports, __webpack_require__) {
8863
+
8864
+ "use strict";
8865
+ /**
8866
+ * Copyright (c) 2013-present, Facebook, Inc.
8867
+ *
8868
+ * This source code is licensed under the MIT license found in the
8869
+ * LICENSE file in the root directory of this source tree.
8870
+ *
8871
+ */
8872
+
8873
+
8874
+
8875
+ var ARIADOMPropertyConfig = {
8876
+ Properties: {
8877
+ // Global States and Properties
8878
+ 'aria-current': 0, // state
8879
+ 'aria-details': 0,
8880
+ 'aria-disabled': 0, // state
8881
+ 'aria-hidden': 0, // state
8882
+ 'aria-invalid': 0, // state
8883
+ 'aria-keyshortcuts': 0,
8884
+ 'aria-label': 0,
8885
+ 'aria-roledescription': 0,
8886
+ // Widget Attributes
8887
+ 'aria-autocomplete': 0,
8888
+ 'aria-checked': 0,
8889
+ 'aria-expanded': 0,
8890
+ 'aria-haspopup': 0,
8891
+ 'aria-level': 0,
8892
+ 'aria-modal': 0,
8893
+ 'aria-multiline': 0,
8894
+ 'aria-multiselectable': 0,
8895
+ 'aria-orientation': 0,
8896
+ 'aria-placeholder': 0,
8897
+ 'aria-pressed': 0,
8898
+ 'aria-readonly': 0,
8899
+ 'aria-required': 0,
8900
+ 'aria-selected': 0,
8901
+ 'aria-sort': 0,
8902
+ 'aria-valuemax': 0,
8903
+ 'aria-valuemin': 0,
8904
+ 'aria-valuenow': 0,
8905
+ 'aria-valuetext': 0,
8906
+ // Live Region Attributes
8907
+ 'aria-atomic': 0,
8908
+ 'aria-busy': 0,
8909
+ 'aria-live': 0,
8910
+ 'aria-relevant': 0,
8911
+ // Drag-and-Drop Attributes
8912
+ 'aria-dropeffect': 0,
8913
+ 'aria-grabbed': 0,
8914
+ // Relationship Attributes
8915
+ 'aria-activedescendant': 0,
8916
+ 'aria-colcount': 0,
8917
+ 'aria-colindex': 0,
8918
+ 'aria-colspan': 0,
8919
+ 'aria-controls': 0,
8920
+ 'aria-describedby': 0,
8921
+ 'aria-errormessage': 0,
8922
+ 'aria-flowto': 0,
8923
+ 'aria-labelledby': 0,
8924
+ 'aria-owns': 0,
8925
+ 'aria-posinset': 0,
8926
+ 'aria-rowcount': 0,
8927
+ 'aria-rowindex': 0,
8928
+ 'aria-rowspan': 0,
8929
+ 'aria-setsize': 0
8930
+ },
8931
+ DOMAttributeNames: {},
8932
+ DOMPropertyNames: {}
8933
+ };
8934
+
8935
+ module.exports = ARIADOMPropertyConfig;
8936
+
8937
+ /***/ }),
8938
+
8939
+ /***/ "./node_modules/react-dom/lib/AutoFocusUtils.js":
8940
+ /*!******************************************************!*\
8941
+ !*** ./node_modules/react-dom/lib/AutoFocusUtils.js ***!
8942
+ \******************************************************/
8943
+ /*! no static exports found */
8944
+ /***/ (function(module, exports, __webpack_require__) {
8945
+
8946
+ "use strict";
8947
+ /**
8948
+ * Copyright (c) 2013-present, Facebook, Inc.
8949
+ *
8950
+ * This source code is licensed under the MIT license found in the
8951
+ * LICENSE file in the root directory of this source tree.
8952
+ *
8953
+ */
8954
+
8955
+
8956
+
8957
+ var ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ "./node_modules/react-dom/lib/ReactDOMComponentTree.js");
8958
+
8959
+ var focusNode = __webpack_require__(/*! fbjs/lib/focusNode */ "./node_modules/fbjs/lib/focusNode.js");
8960
+
8961
+ var AutoFocusUtils = {
8962
+ focusDOMComponent: function () {
8963
+ focusNode(ReactDOMComponentTree.getNodeFromInstance(this));
8964
+ }
8965
+ };
8966
+
8967
+ module.exports = AutoFocusUtils;
8968
+
8969
+ /***/ }),
8970
+
8971
+ /***/ "./node_modules/react-dom/lib/BeforeInputEventPlugin.js":
8972
+ /*!**************************************************************!*\
8973
+ !*** ./node_modules/react-dom/lib/BeforeInputEventPlugin.js ***!
8974
+ \**************************************************************/
8975
+ /*! no static exports found */
8976
+ /***/ (function(module, exports, __webpack_require__) {
8977
+
8978
+ "use strict";
8979
+ /**
8980
+ * Copyright (c) 2013-present, Facebook, Inc.
8981
+ *
8982
+ * This source code is licensed under the MIT license found in the
8983
+ * LICENSE file in the root directory of this source tree.
8984
+ *
8985
+ */
8986
+
8987
+
8988
+
8989
+ var EventPropagators = __webpack_require__(/*! ./EventPropagators */ "./node_modules/react-dom/lib/EventPropagators.js");
8990
+ var ExecutionEnvironment = __webpack_require__(/*! fbjs/lib/ExecutionEnvironment */ "./node_modules/fbjs/lib/ExecutionEnvironment.js");
8991
+ var FallbackCompositionState = __webpack_require__(/*! ./FallbackCompositionState */ "./node_modules/react-dom/lib/FallbackCompositionState.js");
8992
+ var SyntheticCompositionEvent = __webpack_require__(/*! ./SyntheticCompositionEvent */ "./node_modules/react-dom/lib/SyntheticCompositionEvent.js");
8993
+ var SyntheticInputEvent = __webpack_require__(/*! ./SyntheticInputEvent */ "./node_modules/react-dom/lib/SyntheticInputEvent.js");
8994
+
8995
+ var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space
8996
+ var START_KEYCODE = 229;
8997
+
8998
+ var canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window;
8999
+
9000
+ var documentMode = null;
9001
+ if (ExecutionEnvironment.canUseDOM && 'documentMode' in document) {
9002
+ documentMode = document.documentMode;
9003
+ }
9004
+
9005
+ // Webkit offers a very useful `textInput` event that can be used to
9006
+ // directly represent `beforeInput`. The IE `textinput` event is not as
9007
+ // useful, so we don't use it.
9008
+ var canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto();
9009
+
9010
+ // In IE9+, we have access to composition events, but the data supplied
9011
+ // by the native compositionend event may be incorrect. Japanese ideographic
9012
+ // spaces, for instance (\u3000) are not recorded correctly.
9013
+ var useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);
9014
+
9015
+ /**
9016
+ * Opera <= 12 includes TextEvent in window, but does not fire
9017
+ * text input events. Rely on keypress instead.
9018
+ */
9019
+ function isPresto() {
9020
+ var opera = window.opera;
9021
+ return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12;
9022
+ }
9023
+
9024
+ var SPACEBAR_CODE = 32;
9025
+ var SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);
9026
+
9027
+ // Events and their corresponding property names.
9028
+ var eventTypes = {
9029
+ beforeInput: {
9030
+ phasedRegistrationNames: {
9031
+ bubbled: 'onBeforeInput',
9032
+ captured: 'onBeforeInputCapture'
9033
+ },
9034
+ dependencies: ['topCompositionEnd', 'topKeyPress', 'topTextInput', 'topPaste']
9035
+ },
9036
+ compositionEnd: {
9037
+ phasedRegistrationNames: {
9038
+ bubbled: 'onCompositionEnd',
9039
+ captured: 'onCompositionEndCapture'
9040
+ },
9041
+ dependencies: ['topBlur', 'topCompositionEnd', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']
9042
+ },
9043
+ compositionStart: {
9044
+ phasedRegistrationNames: {
9045
+ bubbled: 'onCompositionStart',
9046
+ captured: 'onCompositionStartCapture'
9047
+ },
9048
+ dependencies: ['topBlur', 'topCompositionStart', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']
9049
+ },
9050
+ compositionUpdate: {
9051
+ phasedRegistrationNames: {
9052
+ bubbled: 'onCompositionUpdate',
9053
+ captured: 'onCompositionUpdateCapture'
9054
+ },
9055
+ dependencies: ['topBlur', 'topCompositionUpdate', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']
9056
+ }
9057
+ };
9058
+
9059
+ // Track whether we've ever handled a keypress on the space key.
9060
+ var hasSpaceKeypress = false;
9061
+
9062
+ /**
9063
+ * Return whether a native keypress event is assumed to be a command.
9064
+ * This is required because Firefox fires `keypress` events for key commands
9065
+ * (cut, copy, select-all, etc.) even though no character is inserted.
9066
+ */
9067
+ function isKeypressCommand(nativeEvent) {
9068
+ return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&
9069
+ // ctrlKey && altKey is equivalent to AltGr, and is not a command.
9070
+ !(nativeEvent.ctrlKey && nativeEvent.altKey);
9071
+ }
9072
+
9073
+ /**
9074
+ * Translate native top level events into event types.
9075
+ *
9076
+ * @param {string} topLevelType
9077
+ * @return {object}
9078
+ */
9079
+ function getCompositionEventType(topLevelType) {
9080
+ switch (topLevelType) {
9081
+ case 'topCompositionStart':
9082
+ return eventTypes.compositionStart;
9083
+ case 'topCompositionEnd':
9084
+ return eventTypes.compositionEnd;
9085
+ case 'topCompositionUpdate':
9086
+ return eventTypes.compositionUpdate;
9087
+ }
9088
+ }
9089
+
9090
+ /**
9091
+ * Does our fallback best-guess model think this event signifies that
9092
+ * composition has begun?
9093
+ *
9094
+ * @param {string} topLevelType
9095
+ * @param {object} nativeEvent
9096
+ * @return {boolean}
9097
+ */
9098
+ function isFallbackCompositionStart(topLevelType, nativeEvent) {
9099
+ return topLevelType === 'topKeyDown' && nativeEvent.keyCode === START_KEYCODE;
9100
+ }
9101
+
9102
+ /**
9103
+ * Does our fallback mode think that this event is the end of composition?
9104
+ *
9105
+ * @param {string} topLevelType
9106
+ * @param {object} nativeEvent
9107
+ * @return {boolean}
9108
+ */
9109
+ function isFallbackCompositionEnd(topLevelType, nativeEvent) {
9110
+ switch (topLevelType) {
9111
+ case 'topKeyUp':
9112
+ // Command keys insert or clear IME input.
9113
+ return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;
9114
+ case 'topKeyDown':
9115
+ // Expect IME keyCode on each keydown. If we get any other
9116
+ // code we must have exited earlier.
9117
+ return nativeEvent.keyCode !== START_KEYCODE;
9118
+ case 'topKeyPress':
9119
+ case 'topMouseDown':
9120
+ case 'topBlur':
9121
+ // Events are not possible without cancelling IME.
9122
+ return true;
9123
+ default:
9124
+ return false;
9125
+ }
9126
+ }
9127
+
9128
+ /**
9129
+ * Google Input Tools provides composition data via a CustomEvent,
9130
+ * with the `data` property populated in the `detail` object. If this
9131
+ * is available on the event object, use it. If not, this is a plain
9132
+ * composition event and we have nothing special to extract.
9133
+ *
9134
+ * @param {object} nativeEvent
9135
+ * @return {?string}
9136
+ */
9137
+ function getDataFromCustomEvent(nativeEvent) {
9138
+ var detail = nativeEvent.detail;
9139
+ if (typeof detail === 'object' && 'data' in detail) {
9140
+ return detail.data;
9141
+ }
9142
+ return null;
9143
+ }
9144
+
9145
+ // Track the current IME composition fallback object, if any.
9146
+ var currentComposition = null;
9147
+
9148
+ /**
9149
+ * @return {?object} A SyntheticCompositionEvent.
9150
+ */
9151
+ function extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {
9152
+ var eventType;
9153
+ var fallbackData;
9154
+
9155
+ if (canUseCompositionEvent) {
9156
+ eventType = getCompositionEventType(topLevelType);
9157
+ } else if (!currentComposition) {
9158
+ if (isFallbackCompositionStart(topLevelType, nativeEvent)) {
9159
+ eventType = eventTypes.compositionStart;
9160
+ }
9161
+ } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {
9162
+ eventType = eventTypes.compositionEnd;
9163
+ }
9164
+
9165
+ if (!eventType) {
9166
+ return null;
9167
+ }
9168
+
9169
+ if (useFallbackCompositionData) {
9170
+ // The current composition is stored statically and must not be
9171
+ // overwritten while composition continues.
9172
+ if (!currentComposition && eventType === eventTypes.compositionStart) {
9173
+ currentComposition = FallbackCompositionState.getPooled(nativeEventTarget);
9174
+ } else if (eventType === eventTypes.compositionEnd) {
9175
+ if (currentComposition) {
9176
+ fallbackData = currentComposition.getData();
9177
+ }
9178
+ }
9179
+ }
9180
+
9181
+ var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget);
9182
+
9183
+ if (fallbackData) {
9184
+ // Inject data generated from fallback path into the synthetic event.
9185
+ // This matches the property of native CompositionEventInterface.
9186
+ event.data = fallbackData;
9187
+ } else {
9188
+ var customData = getDataFromCustomEvent(nativeEvent);
9189
+ if (customData !== null) {
9190
+ event.data = customData;
9191
+ }
9192
+ }
9193
+
9194
+ EventPropagators.accumulateTwoPhaseDispatches(event);
9195
+ return event;
9196
+ }
9197
+
9198
+ /**
9199
+ * @param {string} topLevelType Record from `EventConstants`.
9200
+ * @param {object} nativeEvent Native browser event.
9201
+ * @return {?string} The string corresponding to this `beforeInput` event.
9202
+ */
9203
+ function getNativeBeforeInputChars(topLevelType, nativeEvent) {
9204
+ switch (topLevelType) {
9205
+ case 'topCompositionEnd':
9206
+ return getDataFromCustomEvent(nativeEvent);
9207
+ case 'topKeyPress':
9208
+ /**
9209
+ * If native `textInput` events are available, our goal is to make
9210
+ * use of them. However, there is a special case: the spacebar key.
9211
+ * In Webkit, preventing default on a spacebar `textInput` event
9212
+ * cancels character insertion, but it *also* causes the browser
9213
+ * to fall back to its default spacebar behavior of scrolling the
9214
+ * page.
9215
+ *
9216
+ * Tracking at:
9217
+ * https://code.google.com/p/chromium/issues/detail?id=355103
9218
+ *
9219
+ * To avoid this issue, use the keypress event as if no `textInput`
9220
+ * event is available.
9221
+ */
9222
+ var which = nativeEvent.which;
9223
+ if (which !== SPACEBAR_CODE) {
9224
+ return null;
9225
+ }
9226
+
9227
+ hasSpaceKeypress = true;
9228
+ return SPACEBAR_CHAR;
9229
+
9230
+ case 'topTextInput':
9231
+ // Record the characters to be added to the DOM.
9232
+ var chars = nativeEvent.data;
9233
+
9234
+ // If it's a spacebar character, assume that we have already handled
9235
+ // it at the keypress level and bail immediately. Android Chrome
9236
+ // doesn't give us keycodes, so we need to blacklist it.
9237
+ if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {
9238
+ return null;
9239
+ }
9240
+
9241
+ return chars;
9242
+
9243
+ default:
9244
+ // For other native event types, do nothing.
9245
+ return null;
9246
+ }
9247
+ }
9248
+
9249
+ /**
9250
+ * For browsers that do not provide the `textInput` event, extract the
9251
+ * appropriate string to use for SyntheticInputEvent.
9252
+ *
9253
+ * @param {string} topLevelType Record from `EventConstants`.
9254
+ * @param {object} nativeEvent Native browser event.
9255
+ * @return {?string} The fallback string for this `beforeInput` event.
9256
+ */
9257
+ function getFallbackBeforeInputChars(topLevelType, nativeEvent) {
9258
+ // If we are currently composing (IME) and using a fallback to do so,
9259
+ // try to extract the composed characters from the fallback object.
9260
+ // If composition event is available, we extract a string only at
9261
+ // compositionevent, otherwise extract it at fallback events.
9262
+ if (currentComposition) {
9263
+ if (topLevelType === 'topCompositionEnd' || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) {
9264
+ var chars = currentComposition.getData();
9265
+ FallbackCompositionState.release(currentComposition);
9266
+ currentComposition = null;
9267
+ return chars;
9268
+ }
9269
+ return null;
9270
+ }
9271
+
9272
+ switch (topLevelType) {
9273
+ case 'topPaste':
9274
+ // If a paste event occurs after a keypress, throw out the input
9275
+ // chars. Paste events should not lead to BeforeInput events.
9276
+ return null;
9277
+ case 'topKeyPress':
9278
+ /**
9279
+ * As of v27, Firefox may fire keypress events even when no character
9280
+ * will be inserted. A few possibilities:
9281
+ *
9282
+ * - `which` is `0`. Arrow keys, Esc key, etc.
9283
+ *
9284
+ * - `which` is the pressed key code, but no char is available.
9285
+ * Ex: 'AltGr + d` in Polish. There is no modified character for
9286
+ * this key combination and no character is inserted into the
9287
+ * document, but FF fires the keypress for char code `100` anyway.
9288
+ * No `input` event will occur.
9289
+ *
9290
+ * - `which` is the pressed key code, but a command combination is
9291
+ * being used. Ex: `Cmd+C`. No character is inserted, and no
9292
+ * `input` event will occur.
9293
+ */
9294
+ if (nativeEvent.which && !isKeypressCommand(nativeEvent)) {
9295
+ return String.fromCharCode(nativeEvent.which);
9296
+ }
9297
+ return null;
9298
+ case 'topCompositionEnd':
9299
+ return useFallbackCompositionData ? null : nativeEvent.data;
9300
+ default:
9301
+ return null;
9302
+ }
9303
+ }
9304
+
9305
+ /**
9306
+ * Extract a SyntheticInputEvent for `beforeInput`, based on either native
9307
+ * `textInput` or fallback behavior.
9308
+ *
9309
+ * @return {?object} A SyntheticInputEvent.
9310
+ */
9311
+ function extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {
9312
+ var chars;
9313
+
9314
+ if (canUseTextInputEvent) {
9315
+ chars = getNativeBeforeInputChars(topLevelType, nativeEvent);
9316
+ } else {
9317
+ chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);
9318
+ }
9319
+
9320
+ // If no characters are being inserted, no BeforeInput event should
9321
+ // be fired.
9322
+ if (!chars) {
9323
+ return null;
9324
+ }
9325
+
9326
+ var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget);
9327
+
9328
+ event.data = chars;
9329
+ EventPropagators.accumulateTwoPhaseDispatches(event);
9330
+ return event;
9331
+ }
9332
+
9333
+ /**
9334
+ * Create an `onBeforeInput` event to match
9335
+ * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.
9336
+ *
9337
+ * This event plugin is based on the native `textInput` event
9338
+ * available in Chrome, Safari, Opera, and IE. This event fires after
9339
+ * `onKeyPress` and `onCompositionEnd`, but before `onInput`.
9340
+ *
9341
+ * `beforeInput` is spec'd but not implemented in any browsers, and
9342
+ * the `input` event does not provide any useful information about what has
9343
+ * actually been added, contrary to the spec. Thus, `textInput` is the best
9344
+ * available event to identify the characters that have actually been inserted
9345
+ * into the target node.
9346
+ *
9347
+ * This plugin is also responsible for emitting `composition` events, thus
9348
+ * allowing us to share composition fallback code for both `beforeInput` and
9349
+ * `composition` event types.
9350
+ */
9351
+ var BeforeInputEventPlugin = {
9352
+ eventTypes: eventTypes,
9353
+
9354
+ extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
9355
+ return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)];
9356
+ }
9357
+ };
9358
+
9359
+ module.exports = BeforeInputEventPlugin;
9360
+
9361
+ /***/ }),
9362
+
9363
+ /***/ "./node_modules/react-dom/lib/CSSProperty.js":
9364
+ /*!***************************************************!*\
9365
+ !*** ./node_modules/react-dom/lib/CSSProperty.js ***!
9366
+ \***************************************************/
9367
+ /*! no static exports found */
9368
+ /***/ (function(module, exports, __webpack_require__) {
9369
+
9370
+ "use strict";
9371
+ /**
9372
+ * Copyright (c) 2013-present, Facebook, Inc.
9373
+ *
9374
+ * This source code is licensed under the MIT license found in the
9375
+ * LICENSE file in the root directory of this source tree.
9376
+ *
9377
+ */
9378
+
9379
+
9380
+
9381
+ /**
9382
+ * CSS properties which accept numbers but are not in units of "px".
9383
+ */
9384
+
9385
+ var isUnitlessNumber = {
9386
+ animationIterationCount: true,
9387
+ borderImageOutset: true,
9388
+ borderImageSlice: true,
9389
+ borderImageWidth: true,
9390
+ boxFlex: true,
9391
+ boxFlexGroup: true,
9392
+ boxOrdinalGroup: true,
9393
+ columnCount: true,
9394
+ columns: true,
9395
+ flex: true,
9396
+ flexGrow: true,
9397
+ flexPositive: true,
9398
+ flexShrink: true,
9399
+ flexNegative: true,
9400
+ flexOrder: true,
9401
+ gridRow: true,
9402
+ gridRowEnd: true,
9403
+ gridRowSpan: true,
9404
+ gridRowStart: true,
9405
+ gridColumn: true,
9406
+ gridColumnEnd: true,
9407
+ gridColumnSpan: true,
9408
+ gridColumnStart: true,
9409
+ fontWeight: true,
9410
+ lineClamp: true,
9411
+ lineHeight: true,
9412
+ opacity: true,
9413
+ order: true,
9414
+ orphans: true,
9415
+ tabSize: true,
9416
+ widows: true,
9417
+ zIndex: true,
9418
+ zoom: true,
9419
+
9420
+ // SVG-related properties
9421
+ fillOpacity: true,
9422
+ floodOpacity: true,
9423
+ stopOpacity: true,
9424
+ strokeDasharray: true,
9425
+ strokeDashoffset: true,
9426
+ strokeMiterlimit: true,
9427
+ strokeOpacity: true,
9428
+ strokeWidth: true
9429
+ };
9430
+
9431
+ /**
9432
+ * @param {string} prefix vendor-specific prefix, eg: Webkit
9433
+ * @param {string} key style name, eg: transitionDuration
9434
+ * @return {string} style name prefixed with `prefix`, properly camelCased, eg:
9435
+ * WebkitTransitionDuration
9436
+ */
9437
+ function prefixKey(prefix, key) {
9438
+ return prefix + key.charAt(0).toUpperCase() + key.substring(1);
9439
+ }
9440
+
9441
+ /**
9442
+ * Support style names that may come passed in prefixed by adding permutations
9443
+ * of vendor prefixes.
9444
+ */
9445
+ var prefixes = ['Webkit', 'ms', 'Moz', 'O'];
9446
+
9447
+ // Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an
9448
+ // infinite loop, because it iterates over the newly added props too.
9449
+ Object.keys(isUnitlessNumber).forEach(function (prop) {
9450
+ prefixes.forEach(function (prefix) {
9451
+ isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];
9452
+ });
9453
+ });
9454
+
9455
+ /**
9456
+ * Most style properties can be unset by doing .style[prop] = '' but IE8
9457
+ * doesn't like doing that with shorthand properties so for the properties that
9458
+ * IE8 breaks on, which are listed here, we instead unset each of the
9459
+ * individual properties. See http://bugs.jquery.com/ticket/12385.
9460
+ * The 4-value 'clock' properties like margin, padding, border-width seem to
9461
+ * behave without any problems. Curiously, list-style works too without any
9462
+ * special prodding.
9463
+ */
9464
+ var shorthandPropertyExpansions = {
9465
+ background: {
9466
+ backgroundAttachment: true,
9467
+ backgroundColor: true,
9468
+ backgroundImage: true,
9469
+ backgroundPositionX: true,
9470
+ backgroundPositionY: true,
9471
+ backgroundRepeat: true
9472
+ },
9473
+ backgroundPosition: {
9474
+ backgroundPositionX: true,
9475
+ backgroundPositionY: true
9476
+ },
9477
+ border: {
9478
+ borderWidth: true,
9479
+ borderStyle: true,
9480
+ borderColor: true
9481
+ },
9482
+ borderBottom: {
9483
+ borderBottomWidth: true,
9484
+ borderBottomStyle: true,
9485
+ borderBottomColor: true
9486
+ },
9487
+ borderLeft: {
9488
+ borderLeftWidth: true,
9489
+ borderLeftStyle: true,
9490
+ borderLeftColor: true
9491
+ },
9492
+ borderRight: {
9493
+ borderRightWidth: true,
9494
+ borderRightStyle: true,
9495
+ borderRightColor: true
9496
+ },
9497
+ borderTop: {
9498
+ borderTopWidth: true,
9499
+ borderTopStyle: true,
9500
+ borderTopColor: true
9501
+ },
9502
+ font: {
9503
+ fontStyle: true,
9504
+ fontVariant: true,
9505
+ fontWeight: true,
9506
+ fontSize: true,
9507
+ lineHeight: true,
9508
+ fontFamily: true
9509
+ },
9510
+ outline: {
9511
+ outlineWidth: true,
9512
+ outlineStyle: true,
9513
+ outlineColor: true
9514
+ }
9515
+ };
9516
+
9517
+ var CSSProperty = {
9518
+ isUnitlessNumber: isUnitlessNumber,
9519
+ shorthandPropertyExpansions: shorthandPropertyExpansions
9520
+ };
9521
+
9522
+ module.exports = CSSProperty;
9523
+
9524
+ /***/ }),
9525
+
9526
+ /***/ "./node_modules/react-dom/lib/CSSPropertyOperations.js":
9527
+ /*!*************************************************************!*\
9528
+ !*** ./node_modules/react-dom/lib/CSSPropertyOperations.js ***!
9529
+ \*************************************************************/
9530
+ /*! no static exports found */
9531
+ /***/ (function(module, exports, __webpack_require__) {
9532
+
9533
+ "use strict";
9534
+ /**
9535
+ * Copyright (c) 2013-present, Facebook, Inc.
9536
+ *
9537
+ * This source code is licensed under the MIT license found in the
9538
+ * LICENSE file in the root directory of this source tree.
9539
+ *
9540
+ */
9541
+
9542
+
9543
+
9544
+ var CSSProperty = __webpack_require__(/*! ./CSSProperty */ "./node_modules/react-dom/lib/CSSProperty.js");
9545
+ var ExecutionEnvironment = __webpack_require__(/*! fbjs/lib/ExecutionEnvironment */ "./node_modules/fbjs/lib/ExecutionEnvironment.js");
9546
+ var ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ "./node_modules/react-dom/lib/ReactInstrumentation.js");
9547
+
9548
+ var camelizeStyleName = __webpack_require__(/*! fbjs/lib/camelizeStyleName */ "./node_modules/fbjs/lib/camelizeStyleName.js");
9549
+ var dangerousStyleValue = __webpack_require__(/*! ./dangerousStyleValue */ "./node_modules/react-dom/lib/dangerousStyleValue.js");
9550
+ var hyphenateStyleName = __webpack_require__(/*! fbjs/lib/hyphenateStyleName */ "./node_modules/fbjs/lib/hyphenateStyleName.js");
9551
+ var memoizeStringOnly = __webpack_require__(/*! fbjs/lib/memoizeStringOnly */ "./node_modules/fbjs/lib/memoizeStringOnly.js");
9552
+ var warning = __webpack_require__(/*! fbjs/lib/warning */ "./node_modules/fbjs/lib/warning.js");
9553
+
9554
+ var processStyleName = memoizeStringOnly(function (styleName) {
9555
+ return hyphenateStyleName(styleName);
9556
+ });
9557
+
9558
+ var hasShorthandPropertyBug = false;
9559
+ var styleFloatAccessor = 'cssFloat';
9560
+ if (ExecutionEnvironment.canUseDOM) {
9561
+ var tempStyle = document.createElement('div').style;
9562
+ try {
9563
+ // IE8 throws "Invalid argument." if resetting shorthand style properties.
9564
+ tempStyle.font = '';
9565
+ } catch (e) {
9566
+ hasShorthandPropertyBug = true;
9567
+ }
9568
+ // IE8 only supports accessing cssFloat (standard) as styleFloat
9569
+ if (document.documentElement.style.cssFloat === undefined) {
9570
+ styleFloatAccessor = 'styleFloat';
9571
+ }
9572
+ }
9573
+
9574
+ if (true) {
9575
+ // 'msTransform' is correct, but the other prefixes should be capitalized
9576
+ var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;
9577
+
9578
+ // style values shouldn't contain a semicolon
9579
+ var badStyleValueWithSemicolonPattern = /;\s*$/;
9580
+
9581
+ var warnedStyleNames = {};
9582
+ var warnedStyleValues = {};
9583
+ var warnedForNaNValue = false;
9584
+
9585
+ var warnHyphenatedStyleName = function (name, owner) {
9586
+ if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {
9587
+ return;
9588
+ }
9589
+
9590
+ warnedStyleNames[name] = true;
9591
+ true ? warning(false, 'Unsupported style property %s. Did you mean %s?%s', name, camelizeStyleName(name), checkRenderMessage(owner)) : undefined;
9592
+ };
9593
+
9594
+ var warnBadVendoredStyleName = function (name, owner) {
9595
+ if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {
9596
+ return;
9597
+ }
9598
+
9599
+ warnedStyleNames[name] = true;
9600
+ true ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner)) : undefined;
9601
+ };
9602
+
9603
+ var warnStyleValueWithSemicolon = function (name, value, owner) {
9604
+ if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {
9605
+ return;
9606
+ }
9607
+
9608
+ warnedStyleValues[value] = true;
9609
+ true ? warning(false, "Style property values shouldn't contain a semicolon.%s " + 'Try "%s: %s" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : undefined;
9610
+ };
9611
+
9612
+ var warnStyleValueIsNaN = function (name, value, owner) {
9613
+ if (warnedForNaNValue) {
9614
+ return;
9615
+ }
9616
+
9617
+ warnedForNaNValue = true;
9618
+ true ? warning(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)) : undefined;
9619
+ };
9620
+
9621
+ var checkRenderMessage = function (owner) {
9622
+ if (owner) {
9623
+ var name = owner.getName();
9624
+ if (name) {
9625
+ return ' Check the render method of `' + name + '`.';
9626
+ }
9627
+ }
9628
+ return '';
9629
+ };
9630
+
9631
+ /**
9632
+ * @param {string} name
9633
+ * @param {*} value
9634
+ * @param {ReactDOMComponent} component
9635
+ */
9636
+ var warnValidStyle = function (name, value, component) {
9637
+ var owner;
9638
+ if (component) {
9639
+ owner = component._currentElement._owner;
9640
+ }
9641
+ if (name.indexOf('-') > -1) {
9642
+ warnHyphenatedStyleName(name, owner);
9643
+ } else if (badVendoredStyleNamePattern.test(name)) {
9644
+ warnBadVendoredStyleName(name, owner);
9645
+ } else if (badStyleValueWithSemicolonPattern.test(value)) {
9646
+ warnStyleValueWithSemicolon(name, value, owner);
9647
+ }
9648
+
9649
+ if (typeof value === 'number' && isNaN(value)) {
9650
+ warnStyleValueIsNaN(name, value, owner);
9651
+ }
9652
+ };
9653
+ }
9654
+
9655
+ /**
9656
+ * Operations for dealing with CSS properties.
9657
+ */
9658
+ var CSSPropertyOperations = {
9659
+ /**
9660
+ * Serializes a mapping of style properties for use as inline styles:
9661
+ *
9662
+ * > createMarkupForStyles({width: '200px', height: 0})
9663
+ * "width:200px;height:0;"
9664
+ *
9665
+ * Undefined values are ignored so that declarative programming is easier.
9666
+ * The result should be HTML-escaped before insertion into the DOM.
9667
+ *
9668
+ * @param {object} styles
9669
+ * @param {ReactDOMComponent} component
9670
+ * @return {?string}
9671
+ */
9672
+ createMarkupForStyles: function (styles, component) {
9673
+ var serialized = '';
9674
+ for (var styleName in styles) {
9675
+ if (!styles.hasOwnProperty(styleName)) {
9676
+ continue;
9677
+ }
9678
+ var isCustomProperty = styleName.indexOf('--') === 0;
9679
+ var styleValue = styles[styleName];
9680
+ if (true) {
9681
+ if (!isCustomProperty) {
9682
+ warnValidStyle(styleName, styleValue, component);
9683
+ }
9684
+ }
9685
+ if (styleValue != null) {
9686
+ serialized += processStyleName(styleName) + ':';
9687
+ serialized += dangerousStyleValue(styleName, styleValue, component, isCustomProperty) + ';';
9688
+ }
9689
+ }
9690
+ return serialized || null;
9691
+ },
9692
+
9693
+ /**
9694
+ * Sets the value for multiple styles on a node. If a value is specified as
9695
+ * '' (empty string), the corresponding style property will be unset.
9696
+ *
9697
+ * @param {DOMElement} node
9698
+ * @param {object} styles
9699
+ * @param {ReactDOMComponent} component
9700
+ */
9701
+ setValueForStyles: function (node, styles, component) {
9702
+ if (true) {
9703
+ ReactInstrumentation.debugTool.onHostOperation({
9704
+ instanceID: component._debugID,
9705
+ type: 'update styles',
9706
+ payload: styles
9707
+ });
9708
+ }
9709
+
9710
+ var style = node.style;
9711
+ for (var styleName in styles) {
9712
+ if (!styles.hasOwnProperty(styleName)) {
9713
+ continue;
9714
+ }
9715
+ var isCustomProperty = styleName.indexOf('--') === 0;
9716
+ if (true) {
9717
+ if (!isCustomProperty) {
9718
+ warnValidStyle(styleName, styles[styleName], component);
9719
+ }
9720
+ }
9721
+ var styleValue = dangerousStyleValue(styleName, styles[styleName], component, isCustomProperty);
9722
+ if (styleName === 'float' || styleName === 'cssFloat') {
9723
+ styleName = styleFloatAccessor;
9724
+ }
9725
+ if (isCustomProperty) {
9726
+ style.setProperty(styleName, styleValue);
9727
+ } else if (styleValue) {
9728
+ style[styleName] = styleValue;
9729
+ } else {
9730
+ var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName];
9731
+ if (expansion) {
9732
+ // Shorthand property that IE8 won't like unsetting, so unset each
9733
+ // component to placate it
9734
+ for (var individualStyleName in expansion) {
9735
+ style[individualStyleName] = '';
9736
+ }
9737
+ } else {
9738
+ style[styleName] = '';
9739
+ }
9740
+ }
9741
+ }
9742
+ }
9743
+ };
9744
+
9745
+ module.exports = CSSPropertyOperations;
9746
+
9747
+ /***/ }),
9748
+
9749
+ /***/ "./node_modules/react-dom/lib/CallbackQueue.js":
9750
+ /*!*****************************************************!*\
9751
+ !*** ./node_modules/react-dom/lib/CallbackQueue.js ***!
9752
+ \*****************************************************/
9753
+ /*! no static exports found */
9754
+ /***/ (function(module, exports, __webpack_require__) {
9755
+
9756
+ "use strict";
9757
+ /**
9758
+ * Copyright (c) 2013-present, Facebook, Inc.
9759
+ *
9760
+ * This source code is licensed under the MIT license found in the
9761
+ * LICENSE file in the root directory of this source tree.
9762
+ *
9763
+ *
9764
+ */
9765
+
9766
+
9767
+
9768
+ var _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ "./node_modules/react-dom/lib/reactProdInvariant.js");
9769
+
9770
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9771
+
9772
+ var PooledClass = __webpack_require__(/*! ./PooledClass */ "./node_modules/react-dom/lib/PooledClass.js");
9773
+
9774
+ var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js");
9775
+
9776
+ /**
9777
+ * A specialized pseudo-event module to help keep track of components waiting to
9778
+ * be notified when their DOM representations are available for use.
9779
+ *
9780
+ * This implements `PooledClass`, so you should never need to instantiate this.
9781
+ * Instead, use `CallbackQueue.getPooled()`.
9782
+ *
9783
+ * @class ReactMountReady
9784
+ * @implements PooledClass
9785
+ * @internal
9786
+ */
9787
+
9788
+ var CallbackQueue = function () {
9789
+ function CallbackQueue(arg) {
9790
+ _classCallCheck(this, CallbackQueue);
9791
+
9792
+ this._callbacks = null;
9793
+ this._contexts = null;
9794
+ this._arg = arg;
9795
+ }
9796
+
9797
+ /**
9798
+ * Enqueues a callback to be invoked when `notifyAll` is invoked.
9799
+ *
9800
+ * @param {function} callback Invoked when `notifyAll` is invoked.
9801
+ * @param {?object} context Context to call `callback` with.
9802
+ * @internal
9803
+ */
9804
+
9805
+
9806
+ CallbackQueue.prototype.enqueue = function enqueue(callback, context) {
9807
+ this._callbacks = this._callbacks || [];
9808
+ this._callbacks.push(callback);
9809
+ this._contexts = this._contexts || [];
9810
+ this._contexts.push(context);
9811
+ };
9812
+
9813
+ /**
9814
+ * Invokes all enqueued callbacks and clears the queue. This is invoked after
9815
+ * the DOM representation of a component has been created or updated.
9816
+ *
9817
+ * @internal
9818
+ */
9819
+
9820
+
9821
+ CallbackQueue.prototype.notifyAll = function notifyAll() {
9822
+ var callbacks = this._callbacks;
9823
+ var contexts = this._contexts;
9824
+ var arg = this._arg;
9825
+ if (callbacks && contexts) {
9826
+ !(callbacks.length === contexts.length) ? true ? invariant(false, 'Mismatched list of contexts in callback queue') : undefined : void 0;
9827
+ this._callbacks = null;
9828
+ this._contexts = null;
9829
+ for (var i = 0; i < callbacks.length; i++) {
9830
+ callbacks[i].call(contexts[i], arg);
9831
+ }
9832
+ callbacks.length = 0;
9833
+ contexts.length = 0;
9834
+ }
9835
+ };
9836
+
9837
+ CallbackQueue.prototype.checkpoint = function checkpoint() {
9838
+ return this._callbacks ? this._callbacks.length : 0;
9839
+ };
9840
+
9841
+ CallbackQueue.prototype.rollback = function rollback(len) {
9842
+ if (this._callbacks && this._contexts) {
9843
+ this._callbacks.length = len;
9844
+ this._contexts.length = len;
9845
+ }
9846
+ };
9847
+
9848
+ /**
9849
+ * Resets the internal queue.
9850
+ *
9851
+ * @internal
9852
+ */
9853
+
9854
+
9855
+ CallbackQueue.prototype.reset = function reset() {
9856
+ this._callbacks = null;
9857
+ this._contexts = null;
9858
+ };
9859
+
9860
+ /**
9861
+ * `PooledClass` looks for this.
9862
+ */
9863
+
9864
+
9865
+ CallbackQueue.prototype.destructor = function destructor() {
9866
+ this.reset();
9867
+ };
9868
+
9869
+ return CallbackQueue;
9870
+ }();
9871
+
9872
+ module.exports = PooledClass.addPoolingTo(CallbackQueue);
9873
+
9874
+ /***/ }),
9875
+
9876
+ /***/ "./node_modules/react-dom/lib/ChangeEventPlugin.js":
9877
+ /*!*********************************************************!*\
9878
+ !*** ./node_modules/react-dom/lib/ChangeEventPlugin.js ***!
9879
+ \*********************************************************/
9880
+ /*! no static exports found */
9881
+ /***/ (function(module, exports, __webpack_require__) {
9882
+
9883
+ "use strict";
9884
+ /**
9885
+ * Copyright (c) 2013-present, Facebook, Inc.
9886
+ *
9887
+ * This source code is licensed under the MIT license found in the
9888
+ * LICENSE file in the root directory of this source tree.
9889
+ *
9890
+ */
9891
+
9892
+
9893
+
9894
+ var EventPluginHub = __webpack_require__(/*! ./EventPluginHub */ "./node_modules/react-dom/lib/EventPluginHub.js");
9895
+ var EventPropagators = __webpack_require__(/*! ./EventPropagators */ "./node_modules/react-dom/lib/EventPropagators.js");
9896
+ var ExecutionEnvironment = __webpack_require__(/*! fbjs/lib/ExecutionEnvironment */ "./node_modules/fbjs/lib/ExecutionEnvironment.js");
9897
+ var ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ "./node_modules/react-dom/lib/ReactDOMComponentTree.js");
9898
+ var ReactUpdates = __webpack_require__(/*! ./ReactUpdates */ "./node_modules/react-dom/lib/ReactUpdates.js");
9899
+ var SyntheticEvent = __webpack_require__(/*! ./SyntheticEvent */ "./node_modules/react-dom/lib/SyntheticEvent.js");
9900
+
9901
+ var inputValueTracking = __webpack_require__(/*! ./inputValueTracking */ "./node_modules/react-dom/lib/inputValueTracking.js");
9902
+ var getEventTarget = __webpack_require__(/*! ./getEventTarget */ "./node_modules/react-dom/lib/getEventTarget.js");
9903
+ var isEventSupported = __webpack_require__(/*! ./isEventSupported */ "./node_modules/react-dom/lib/isEventSupported.js");
9904
+ var isTextInputElement = __webpack_require__(/*! ./isTextInputElement */ "./node_modules/react-dom/lib/isTextInputElement.js");
9905
+
9906
+ var eventTypes = {
9907
+ change: {
9908
+ phasedRegistrationNames: {
9909
+ bubbled: 'onChange',
9910
+ captured: 'onChangeCapture'
9911
+ },
9912
+ dependencies: ['topBlur', 'topChange', 'topClick', 'topFocus', 'topInput', 'topKeyDown', 'topKeyUp', 'topSelectionChange']
9913
+ }
9914
+ };
9915
+
9916
+ function createAndAccumulateChangeEvent(inst, nativeEvent, target) {
9917
+ var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, target);
9918
+ event.type = 'change';
9919
+ EventPropagators.accumulateTwoPhaseDispatches(event);
9920
+ return event;
9921
+ }
9922
+ /**
9923
+ * For IE shims
9924
+ */
9925
+ var activeElement = null;
9926
+ var activeElementInst = null;
9927
+
9928
+ /**
9929
+ * SECTION: handle `change` event
9930
+ */
9931
+ function shouldUseChangeEvent(elem) {
9932
+ var nodeName = elem.nodeName && elem.nodeName.toLowerCase();
9933
+ return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';
9934
+ }
9935
+
9936
+ var doesChangeEventBubble = false;
9937
+ if (ExecutionEnvironment.canUseDOM) {
9938
+ // See `handleChange` comment below
9939
+ doesChangeEventBubble = isEventSupported('change') && (!document.documentMode || document.documentMode > 8);
9940
+ }
9941
+
9942
+ function manualDispatchChangeEvent(nativeEvent) {
9943
+ var event = createAndAccumulateChangeEvent(activeElementInst, nativeEvent, getEventTarget(nativeEvent));
9944
+
9945
+ // If change and propertychange bubbled, we'd just bind to it like all the
9946
+ // other events and have it go through ReactBrowserEventEmitter. Since it
9947
+ // doesn't, we manually listen for the events and so we have to enqueue and
9948
+ // process the abstract event manually.
9949
+ //
9950
+ // Batching is necessary here in order to ensure that all event handlers run
9951
+ // before the next rerender (including event handlers attached to ancestor
9952
+ // elements instead of directly on the input). Without this, controlled
9953
+ // components don't work properly in conjunction with event bubbling because
9954
+ // the component is rerendered and the value reverted before all the event
9955
+ // handlers can run. See https://github.com/facebook/react/issues/708.
9956
+ ReactUpdates.batchedUpdates(runEventInBatch, event);
9957
+ }
9958
+
9959
+ function runEventInBatch(event) {
9960
+ EventPluginHub.enqueueEvents(event);
9961
+ EventPluginHub.processEventQueue(false);
9962
+ }
9963
+
9964
+ function startWatchingForChangeEventIE8(target, targetInst) {
9965
+ activeElement = target;
9966
+ activeElementInst = targetInst;
9967
+ activeElement.attachEvent('onchange', manualDispatchChangeEvent);
9968
+ }
9969
+
9970
+ function stopWatchingForChangeEventIE8() {
9971
+ if (!activeElement) {
9972
+ return;
9973
+ }
9974
+ activeElement.detachEvent('onchange', manualDispatchChangeEvent);
9975
+ activeElement = null;
9976
+ activeElementInst = null;
9977
+ }
9978
+
9979
+ function getInstIfValueChanged(targetInst, nativeEvent) {
9980
+ var updated = inputValueTracking.updateValueIfChanged(targetInst);
9981
+ var simulated = nativeEvent.simulated === true && ChangeEventPlugin._allowSimulatedPassThrough;
9982
+
9983
+ if (updated || simulated) {
9984
+ return targetInst;
9985
+ }
9986
+ }
9987
+
9988
+ function getTargetInstForChangeEvent(topLevelType, targetInst) {
9989
+ if (topLevelType === 'topChange') {
9990
+ return targetInst;
9991
+ }
9992
+ }
9993
+
9994
+ function handleEventsForChangeEventIE8(topLevelType, target, targetInst) {
9995
+ if (topLevelType === 'topFocus') {
9996
+ // stopWatching() should be a noop here but we call it just in case we
9997
+ // missed a blur event somehow.
9998
+ stopWatchingForChangeEventIE8();
9999
+ startWatchingForChangeEventIE8(target, targetInst);
10000
+ } else if (topLevelType === 'topBlur') {
10001
+ stopWatchingForChangeEventIE8();
10002
+ }
10003
+ }
10004
+
10005
+ /**
10006
+ * SECTION: handle `input` event
10007
+ */
10008
+ var isInputEventSupported = false;
10009
+ if (ExecutionEnvironment.canUseDOM) {
10010
+ // IE9 claims to support the input event but fails to trigger it when
10011
+ // deleting text, so we ignore its input events.
10012
+
10013
+ isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9);
10014
+ }
10015
+
10016
+ /**
10017
+ * (For IE <=9) Starts tracking propertychange events on the passed-in element
10018
+ * and override the value property so that we can distinguish user events from
10019
+ * value changes in JS.
10020
+ */
10021
+ function startWatchingForValueChange(target, targetInst) {
10022
+ activeElement = target;
10023
+ activeElementInst = targetInst;
10024
+ activeElement.attachEvent('onpropertychange', handlePropertyChange);
10025
+ }
10026
+
10027
+ /**
10028
+ * (For IE <=9) Removes the event listeners from the currently-tracked element,
10029
+ * if any exists.
10030
+ */
10031
+ function stopWatchingForValueChange() {
10032
+ if (!activeElement) {
10033
+ return;
10034
+ }
10035
+ activeElement.detachEvent('onpropertychange', handlePropertyChange);
10036
+
10037
+ activeElement = null;
10038
+ activeElementInst = null;
10039
+ }
10040
+
10041
+ /**
10042
+ * (For IE <=9) Handles a propertychange event, sending a `change` event if
10043
+ * the value of the active element has changed.
10044
+ */
10045
+ function handlePropertyChange(nativeEvent) {
10046
+ if (nativeEvent.propertyName !== 'value') {
10047
+ return;
10048
+ }
10049
+ if (getInstIfValueChanged(activeElementInst, nativeEvent)) {
10050
+ manualDispatchChangeEvent(nativeEvent);
10051
+ }
10052
+ }
10053
+
10054
+ function handleEventsForInputEventPolyfill(topLevelType, target, targetInst) {
10055
+ if (topLevelType === 'topFocus') {
10056
+ // In IE8, we can capture almost all .value changes by adding a
10057
+ // propertychange handler and looking for events with propertyName
10058
+ // equal to 'value'
10059
+ // In IE9, propertychange fires for most input events but is buggy and
10060
+ // doesn't fire when text is deleted, but conveniently, selectionchange
10061
+ // appears to fire in all of the remaining cases so we catch those and
10062
+ // forward the event if the value has changed
10063
+ // In either case, we don't want to call the event handler if the value
10064
+ // is changed from JS so we redefine a setter for `.value` that updates
10065
+ // our activeElementValue variable, allowing us to ignore those changes
10066
+ //
10067
+ // stopWatching() should be a noop here but we call it just in case we
10068
+ // missed a blur event somehow.
10069
+ stopWatchingForValueChange();
10070
+ startWatchingForValueChange(target, targetInst);
10071
+ } else if (topLevelType === 'topBlur') {
10072
+ stopWatchingForValueChange();
10073
+ }
10074
+ }
10075
+
10076
+ // For IE8 and IE9.
10077
+ function getTargetInstForInputEventPolyfill(topLevelType, targetInst, nativeEvent) {
10078
+ if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === 'topKeyDown') {
10079
+ // On the selectionchange event, the target is just document which isn't
10080
+ // helpful for us so just check activeElement instead.
10081
+ //
10082
+ // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire
10083
+ // propertychange on the first input event after setting `value` from a
10084
+ // script and fires only keydown, keypress, keyup. Catching keyup usually
10085
+ // gets it and catching keydown lets us fire an event for the first
10086
+ // keystroke if user does a key repeat (it'll be a little delayed: right
10087
+ // before the second keystroke). Other input methods (e.g., paste) seem to
10088
+ // fire selectionchange normally.
10089
+ return getInstIfValueChanged(activeElementInst, nativeEvent);
10090
+ }
10091
+ }
10092
+
10093
+ /**
10094
+ * SECTION: handle `click` event
10095
+ */
10096
+ function shouldUseClickEvent(elem) {
10097
+ // Use the `click` event to detect changes to checkbox and radio inputs.
10098
+ // This approach works across all browsers, whereas `change` does not fire
10099
+ // until `blur` in IE8.
10100
+ var nodeName = elem.nodeName;
10101
+ return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');
10102
+ }
10103
+
10104
+ function getTargetInstForClickEvent(topLevelType, targetInst, nativeEvent) {
10105
+ if (topLevelType === 'topClick') {
10106
+ return getInstIfValueChanged(targetInst, nativeEvent);
10107
+ }
10108
+ }
10109
+
10110
+ function getTargetInstForInputOrChangeEvent(topLevelType, targetInst, nativeEvent) {
10111
+ if (topLevelType === 'topInput' || topLevelType === 'topChange') {
10112
+ return getInstIfValueChanged(targetInst, nativeEvent);
10113
+ }
10114
+ }
10115
+
10116
+ function handleControlledInputBlur(inst, node) {
10117
+ // TODO: In IE, inst is occasionally null. Why?
10118
+ if (inst == null) {
10119
+ return;
10120
+ }
10121
+
10122
+ // Fiber and ReactDOM keep wrapper state in separate places
10123
+ var state = inst._wrapperState || node._wrapperState;
10124
+
10125
+ if (!state || !state.controlled || node.type !== 'number') {
10126
+ return;
10127
+ }
10128
+
10129
+ // If controlled, assign the value attribute to the current value on blur
10130
+ var value = '' + node.value;
10131
+ if (node.getAttribute('value') !== value) {
10132
+ node.setAttribute('value', value);
10133
+ }
10134
+ }
10135
+
10136
+ /**
10137
+ * This plugin creates an `onChange` event that normalizes change events
10138
+ * across form elements. This event fires at a time when it's possible to
10139
+ * change the element's value without seeing a flicker.
10140
+ *
10141
+ * Supported elements are:
10142
+ * - input (see `isTextInputElement`)
10143
+ * - textarea
10144
+ * - select
10145
+ */
10146
+ var ChangeEventPlugin = {
10147
+ eventTypes: eventTypes,
10148
+
10149
+ _allowSimulatedPassThrough: true,
10150
+ _isInputEventSupported: isInputEventSupported,
10151
+
10152
+ extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
10153
+ var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;
10154
+
10155
+ var getTargetInstFunc, handleEventFunc;
10156
+ if (shouldUseChangeEvent(targetNode)) {
10157
+ if (doesChangeEventBubble) {
10158
+ getTargetInstFunc = getTargetInstForChangeEvent;
10159
+ } else {
10160
+ handleEventFunc = handleEventsForChangeEventIE8;
10161
+ }
10162
+ } else if (isTextInputElement(targetNode)) {
10163
+ if (isInputEventSupported) {
10164
+ getTargetInstFunc = getTargetInstForInputOrChangeEvent;
10165
+ } else {
10166
+ getTargetInstFunc = getTargetInstForInputEventPolyfill;
10167
+ handleEventFunc = handleEventsForInputEventPolyfill;
10168
+ }
10169
+ } else if (shouldUseClickEvent(targetNode)) {
10170
+ getTargetInstFunc = getTargetInstForClickEvent;
10171
+ }
10172
+
10173
+ if (getTargetInstFunc) {
10174
+ var inst = getTargetInstFunc(topLevelType, targetInst, nativeEvent);
10175
+ if (inst) {
10176
+ var event = createAndAccumulateChangeEvent(inst, nativeEvent, nativeEventTarget);
10177
+ return event;
10178
+ }
10179
+ }
10180
+
10181
+ if (handleEventFunc) {
10182
+ handleEventFunc(topLevelType, targetNode, targetInst);
10183
+ }
10184
+
10185
+ // When blurring, set the value attribute for number inputs
10186
+ if (topLevelType === 'topBlur') {
10187
+ handleControlledInputBlur(targetInst, targetNode);
10188
+ }
10189
+ }
10190
+ };
10191
+
10192
+ module.exports = ChangeEventPlugin;
10193
+
10194
+ /***/ }),
10195
+
10196
+ /***/ "./node_modules/react-dom/lib/DOMChildrenOperations.js":
10197
+ /*!*************************************************************!*\
10198
+ !*** ./node_modules/react-dom/lib/DOMChildrenOperations.js ***!
10199
+ \*************************************************************/
10200
+ /*! no static exports found */
10201
+ /***/ (function(module, exports, __webpack_require__) {
10202
+
10203
+ "use strict";
10204
+ /**
10205
+ * Copyright (c) 2013-present, Facebook, Inc.
10206
+ *
10207
+ * This source code is licensed under the MIT license found in the
10208
+ * LICENSE file in the root directory of this source tree.
10209
+ *
10210
+ */
10211
+
10212
+
10213
+
10214
+ var DOMLazyTree = __webpack_require__(/*! ./DOMLazyTree */ "./node_modules/react-dom/lib/DOMLazyTree.js");
10215
+ var Danger = __webpack_require__(/*! ./Danger */ "./node_modules/react-dom/lib/Danger.js");
10216
+ var ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ "./node_modules/react-dom/lib/ReactDOMComponentTree.js");
10217
+ var ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ "./node_modules/react-dom/lib/ReactInstrumentation.js");
10218
+
10219
+ var createMicrosoftUnsafeLocalFunction = __webpack_require__(/*! ./createMicrosoftUnsafeLocalFunction */ "./node_modules/react-dom/lib/createMicrosoftUnsafeLocalFunction.js");
10220
+ var setInnerHTML = __webpack_require__(/*! ./setInnerHTML */ "./node_modules/react-dom/lib/setInnerHTML.js");
10221
+ var setTextContent = __webpack_require__(/*! ./setTextContent */ "./node_modules/react-dom/lib/setTextContent.js");
10222
+
10223
+ function getNodeAfter(parentNode, node) {
10224
+ // Special case for text components, which return [open, close] comments
10225
+ // from getHostNode.
10226
+ if (Array.isArray(node)) {
10227
+ node = node[1];
10228
+ }
10229
+ return node ? node.nextSibling : parentNode.firstChild;
10230
+ }
10231
+
10232
+ /**
10233
+ * Inserts `childNode` as a child of `parentNode` at the `index`.
10234
+ *
10235
+ * @param {DOMElement} parentNode Parent node in which to insert.
10236
+ * @param {DOMElement} childNode Child node to insert.
10237
+ * @param {number} index Index at which to insert the child.
10238
+ * @internal
10239
+ */
10240
+ var insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) {
10241
+ // We rely exclusively on `insertBefore(node, null)` instead of also using
10242
+ // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so
10243
+ // we are careful to use `null`.)
10244
+ parentNode.insertBefore(childNode, referenceNode);
10245
+ });
10246
+
10247
+ function insertLazyTreeChildAt(parentNode, childTree, referenceNode) {
10248
+ DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode);
10249
+ }
10250
+
10251
+ function moveChild(parentNode, childNode, referenceNode) {
10252
+ if (Array.isArray(childNode)) {
10253
+ moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode);
10254
+ } else {
10255
+ insertChildAt(parentNode, childNode, referenceNode);
10256
+ }
10257
+ }
10258
+
10259
+ function removeChild(parentNode, childNode) {
10260
+ if (Array.isArray(childNode)) {
10261
+ var closingComment = childNode[1];
10262
+ childNode = childNode[0];
10263
+ removeDelimitedText(parentNode, childNode, closingComment);
10264
+ parentNode.removeChild(closingComment);
10265
+ }
10266
+ parentNode.removeChild(childNode);
10267
+ }
10268
+
10269
+ function moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) {
10270
+ var node = openingComment;
10271
+ while (true) {
10272
+ var nextNode = node.nextSibling;
10273
+ insertChildAt(parentNode, node, referenceNode);
10274
+ if (node === closingComment) {
10275
+ break;
10276
+ }
10277
+ node = nextNode;
10278
+ }
10279
+ }
10280
+
10281
+ function removeDelimitedText(parentNode, startNode, closingComment) {
10282
+ while (true) {
10283
+ var node = startNode.nextSibling;
10284
+ if (node === closingComment) {
10285
+ // The closing comment is removed by ReactMultiChild.
10286
+ break;
10287
+ } else {
10288
+ parentNode.removeChild(node);
10289
+ }
10290
+ }
10291
+ }
10292
+
10293
+ function replaceDelimitedText(openingComment, closingComment, stringText) {
10294
+ var parentNode = openingComment.parentNode;
10295
+ var nodeAfterComment = openingComment.nextSibling;
10296
+ if (nodeAfterComment === closingComment) {
10297
+ // There are no text nodes between the opening and closing comments; insert
10298
+ // a new one if stringText isn't empty.
10299
+ if (stringText) {
10300
+ insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment);
10301
+ }
10302
+ } else {
10303
+ if (stringText) {
10304
+ // Set the text content of the first node after the opening comment, and
10305
+ // remove all following nodes up until the closing comment.
10306
+ setTextContent(nodeAfterComment, stringText);
10307
+ removeDelimitedText(parentNode, nodeAfterComment, closingComment);
10308
+ } else {
10309
+ removeDelimitedText(parentNode, openingComment, closingComment);
10310
+ }
10311
+ }
10312
+
10313
+ if (true) {
10314
+ ReactInstrumentation.debugTool.onHostOperation({
10315
+ instanceID: ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID,
10316
+ type: 'replace text',
10317
+ payload: stringText
10318
+ });
10319
+ }
10320
+ }
10321
+
10322
+ var dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup;
10323
+ if (true) {
10324
+ dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) {
10325
+ Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup);
10326
+ if (prevInstance._debugID !== 0) {
10327
+ ReactInstrumentation.debugTool.onHostOperation({
10328
+ instanceID: prevInstance._debugID,
10329
+ type: 'replace with',
10330
+ payload: markup.toString()
10331
+ });
10332
+ } else {
10333
+ var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node);
10334
+ if (nextInstance._debugID !== 0) {
10335
+ ReactInstrumentation.debugTool.onHostOperation({
10336
+ instanceID: nextInstance._debugID,
10337
+ type: 'mount',
10338
+ payload: markup.toString()
10339
+ });
10340
+ }
10341
+ }
10342
+ };
10343
+ }
10344
+
10345
+ /**
10346
+ * Operations for updating with DOM children.
10347
+ */
10348
+ var DOMChildrenOperations = {
10349
+ dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,
10350
+
10351
+ replaceDelimitedText: replaceDelimitedText,
10352
+
10353
+ /**
10354
+ * Updates a component's children by processing a series of updates. The
10355
+ * update configurations are each expected to have a `parentNode` property.
10356
+ *
10357
+ * @param {array<object>} updates List of update configurations.
10358
+ * @internal
10359
+ */
10360
+ processUpdates: function (parentNode, updates) {
10361
+ if (true) {
10362
+ var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID;
10363
+ }
10364
+
10365
+ for (var k = 0; k < updates.length; k++) {
10366
+ var update = updates[k];
10367
+ switch (update.type) {
10368
+ case 'INSERT_MARKUP':
10369
+ insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode));
10370
+ if (true) {
10371
+ ReactInstrumentation.debugTool.onHostOperation({
10372
+ instanceID: parentNodeDebugID,
10373
+ type: 'insert child',
10374
+ payload: {
10375
+ toIndex: update.toIndex,
10376
+ content: update.content.toString()
10377
+ }
10378
+ });
10379
+ }
10380
+ break;
10381
+ case 'MOVE_EXISTING':
10382
+ moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode));
10383
+ if (true) {
10384
+ ReactInstrumentation.debugTool.onHostOperation({
10385
+ instanceID: parentNodeDebugID,
10386
+ type: 'move child',
10387
+ payload: { fromIndex: update.fromIndex, toIndex: update.toIndex }
10388
+ });
10389
+ }
10390
+ break;
10391
+ case 'SET_MARKUP':
10392
+ setInnerHTML(parentNode, update.content);
10393
+ if (true) {
10394
+ ReactInstrumentation.debugTool.onHostOperation({
10395
+ instanceID: parentNodeDebugID,
10396
+ type: 'replace children',
10397
+ payload: update.content.toString()
10398
+ });
10399
+ }
10400
+ break;
10401
+ case 'TEXT_CONTENT':
10402
+ setTextContent(parentNode, update.content);
10403
+ if (true) {
10404
+ ReactInstrumentation.debugTool.onHostOperation({
10405
+ instanceID: parentNodeDebugID,
10406
+ type: 'replace text',
10407
+ payload: update.content.toString()
10408
+ });
10409
+ }
10410
+ break;
10411
+ case 'REMOVE_NODE':
10412
+ removeChild(parentNode, update.fromNode);
10413
+ if (true) {
10414
+ ReactInstrumentation.debugTool.onHostOperation({
10415
+ instanceID: parentNodeDebugID,
10416
+ type: 'remove child',
10417
+ payload: { fromIndex: update.fromIndex }
10418
+ });
10419
+ }
10420
+ break;
10421
+ }
10422
+ }
10423
+ }
10424
+ };
10425
+
10426
+ module.exports = DOMChildrenOperations;
10427
+
10428
+ /***/ }),
10429
+
10430
+ /***/ "./node_modules/react-dom/lib/DOMLazyTree.js":
10431
+ /*!***************************************************!*\
10432
+ !*** ./node_modules/react-dom/lib/DOMLazyTree.js ***!
10433
+ \***************************************************/
10434
+ /*! no static exports found */
10435
+ /***/ (function(module, exports, __webpack_require__) {
10436
+
10437
+ "use strict";
10438
+ /**
10439
+ * Copyright (c) 2015-present, Facebook, Inc.
10440
+ *
10441
+ * This source code is licensed under the MIT license found in the
10442
+ * LICENSE file in the root directory of this source tree.
10443
+ *
10444
+ */
10445
+
10446
+
10447
+
10448
+ var DOMNamespaces = __webpack_require__(/*! ./DOMNamespaces */ "./node_modules/react-dom/lib/DOMNamespaces.js");
10449
+ var setInnerHTML = __webpack_require__(/*! ./setInnerHTML */ "./node_modules/react-dom/lib/setInnerHTML.js");
10450
+
10451
+ var createMicrosoftUnsafeLocalFunction = __webpack_require__(/*! ./createMicrosoftUnsafeLocalFunction */ "./node_modules/react-dom/lib/createMicrosoftUnsafeLocalFunction.js");
10452
+ var setTextContent = __webpack_require__(/*! ./setTextContent */ "./node_modules/react-dom/lib/setTextContent.js");
10453
+
10454
+ var ELEMENT_NODE_TYPE = 1;
10455
+ var DOCUMENT_FRAGMENT_NODE_TYPE = 11;
10456
+
10457
+ /**
10458
+ * In IE (8-11) and Edge, appending nodes with no children is dramatically
10459
+ * faster than appending a full subtree, so we essentially queue up the
10460
+ * .appendChild calls here and apply them so each node is added to its parent
10461
+ * before any children are added.
10462
+ *
10463
+ * In other browsers, doing so is slower or neutral compared to the other order
10464
+ * (in Firefox, twice as slow) so we only do this inversion in IE.
10465
+ *
10466
+ * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode.
10467
+ */
10468
+ var enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\bEdge\/\d/.test(navigator.userAgent);
10469
+
10470
+ function insertTreeChildren(tree) {
10471
+ if (!enableLazy) {
10472
+ return;
10473
+ }
10474
+ var node = tree.node;
10475
+ var children = tree.children;
10476
+ if (children.length) {
10477
+ for (var i = 0; i < children.length; i++) {
10478
+ insertTreeBefore(node, children[i], null);
10479
+ }
10480
+ } else if (tree.html != null) {
10481
+ setInnerHTML(node, tree.html);
10482
+ } else if (tree.text != null) {
10483
+ setTextContent(node, tree.text);
10484
+ }
10485
+ }
10486
+
10487
+ var insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) {
10488
+ // DocumentFragments aren't actually part of the DOM after insertion so
10489
+ // appending children won't update the DOM. We need to ensure the fragment
10490
+ // is properly populated first, breaking out of our lazy approach for just
10491
+ // this level. Also, some <object> plugins (like Flash Player) will read
10492
+ // <param> nodes immediately upon insertion into the DOM, so <object>
10493
+ // must also be populated prior to insertion into the DOM.
10494
+ if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) {
10495
+ insertTreeChildren(tree);
10496
+ parentNode.insertBefore(tree.node, referenceNode);
10497
+ } else {
10498
+ parentNode.insertBefore(tree.node, referenceNode);
10499
+ insertTreeChildren(tree);
10500
+ }
10501
+ });
10502
+
10503
+ function replaceChildWithTree(oldNode, newTree) {
10504
+ oldNode.parentNode.replaceChild(newTree.node, oldNode);
10505
+ insertTreeChildren(newTree);
10506
+ }
10507
+
10508
+ function queueChild(parentTree, childTree) {
10509
+ if (enableLazy) {
10510
+ parentTree.children.push(childTree);
10511
+ } else {
10512
+ parentTree.node.appendChild(childTree.node);
10513
+ }
10514
+ }
10515
+
10516
+ function queueHTML(tree, html) {
10517
+ if (enableLazy) {
10518
+ tree.html = html;
10519
+ } else {
10520
+ setInnerHTML(tree.node, html);
10521
+ }
10522
+ }
10523
+
10524
+ function queueText(tree, text) {
10525
+ if (enableLazy) {
10526
+ tree.text = text;
10527
+ } else {
10528
+ setTextContent(tree.node, text);
10529
+ }
10530
+ }
10531
+
10532
+ function toString() {
10533
+ return this.node.nodeName;
10534
+ }
10535
+
10536
+ function DOMLazyTree(node) {
10537
+ return {
10538
+ node: node,
10539
+ children: [],
10540
+ html: null,
10541
+ text: null,
10542
+ toString: toString
10543
+ };
10544
+ }
10545
+
10546
+ DOMLazyTree.insertTreeBefore = insertTreeBefore;
10547
+ DOMLazyTree.replaceChildWithTree = replaceChildWithTree;
10548
+ DOMLazyTree.queueChild = queueChild;
10549
+ DOMLazyTree.queueHTML = queueHTML;
10550
+ DOMLazyTree.queueText = queueText;
10551
+
10552
+ module.exports = DOMLazyTree;
10553
+
10554
+ /***/ }),
10555
+
10556
+ /***/ "./node_modules/react-dom/lib/DOMNamespaces.js":
10557
+ /*!*****************************************************!*\
10558
+ !*** ./node_modules/react-dom/lib/DOMNamespaces.js ***!
10559
+ \*****************************************************/
10560
+ /*! no static exports found */
10561
+ /***/ (function(module, exports, __webpack_require__) {
10562
+
10563
+ "use strict";
10564
+ /**
10565
+ * Copyright (c) 2013-present, Facebook, Inc.
10566
+ *
10567
+ * This source code is licensed under the MIT license found in the
10568
+ * LICENSE file in the root directory of this source tree.
10569
+ *
10570
+ */
10571
+
10572
+
10573
+
10574
+ var DOMNamespaces = {
10575
+ html: 'http://www.w3.org/1999/xhtml',
10576
+ mathml: 'http://www.w3.org/1998/Math/MathML',
10577
+ svg: 'http://www.w3.org/2000/svg'
10578
+ };
10579
+
10580
+ module.exports = DOMNamespaces;
10581
+
10582
+ /***/ }),
10583
+
10584
+ /***/ "./node_modules/react-dom/lib/DOMProperty.js":
10585
+ /*!***************************************************!*\
10586
+ !*** ./node_modules/react-dom/lib/DOMProperty.js ***!
10587
+ \***************************************************/
10588
+ /*! no static exports found */
10589
+ /***/ (function(module, exports, __webpack_require__) {
10590
+
10591
+ "use strict";
10592
+ /**
10593
+ * Copyright (c) 2013-present, Facebook, Inc.
10594
+ *
10595
+ * This source code is licensed under the MIT license found in the
10596
+ * LICENSE file in the root directory of this source tree.
10597
+ *
10598
+ */
10599
+
10600
+
10601
+
10602
+ var _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ "./node_modules/react-dom/lib/reactProdInvariant.js");
10603
+
10604
+ var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js");
10605
+
10606
+ function checkMask(value, bitmask) {
10607
+ return (value & bitmask) === bitmask;
10608
+ }
10609
+
10610
+ var DOMPropertyInjection = {
10611
+ /**
10612
+ * Mapping from normalized, camelcased property names to a configuration that
10613
+ * specifies how the associated DOM property should be accessed or rendered.
10614
+ */
10615
+ MUST_USE_PROPERTY: 0x1,
10616
+ HAS_BOOLEAN_VALUE: 0x4,
10617
+ HAS_NUMERIC_VALUE: 0x8,
10618
+ HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8,
10619
+ HAS_OVERLOADED_BOOLEAN_VALUE: 0x20,
10620
+
10621
+ /**
10622
+ * Inject some specialized knowledge about the DOM. This takes a config object
10623
+ * with the following properties:
10624
+ *
10625
+ * isCustomAttribute: function that given an attribute name will return true
10626
+ * if it can be inserted into the DOM verbatim. Useful for data-* or aria-*
10627
+ * attributes where it's impossible to enumerate all of the possible
10628
+ * attribute names,
10629
+ *
10630
+ * Properties: object mapping DOM property name to one of the
10631
+ * DOMPropertyInjection constants or null. If your attribute isn't in here,
10632
+ * it won't get written to the DOM.
10633
+ *
10634
+ * DOMAttributeNames: object mapping React attribute name to the DOM
10635
+ * attribute name. Attribute names not specified use the **lowercase**
10636
+ * normalized name.
10637
+ *
10638
+ * DOMAttributeNamespaces: object mapping React attribute name to the DOM
10639
+ * attribute namespace URL. (Attribute names not specified use no namespace.)
10640
+ *
10641
+ * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties.
10642
+ * Property names not specified use the normalized name.
10643
+ *
10644
+ * DOMMutationMethods: Properties that require special mutation methods. If
10645
+ * `value` is undefined, the mutation method should unset the property.
10646
+ *
10647
+ * @param {object} domPropertyConfig the config as described above.
10648
+ */
10649
+ injectDOMPropertyConfig: function (domPropertyConfig) {
10650
+ var Injection = DOMPropertyInjection;
10651
+ var Properties = domPropertyConfig.Properties || {};
10652
+ var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {};
10653
+ var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {};
10654
+ var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {};
10655
+ var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {};
10656
+
10657
+ if (domPropertyConfig.isCustomAttribute) {
10658
+ DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute);
10659
+ }
10660
+
10661
+ for (var propName in Properties) {
10662
+ !!DOMProperty.properties.hasOwnProperty(propName) ? true ? invariant(false, 'injectDOMPropertyConfig(...): You\'re trying to inject DOM property \'%s\' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.', propName) : undefined : void 0;
10663
+
10664
+ var lowerCased = propName.toLowerCase();
10665
+ var propConfig = Properties[propName];
10666
+
10667
+ var propertyInfo = {
10668
+ attributeName: lowerCased,
10669
+ attributeNamespace: null,
10670
+ propertyName: propName,
10671
+ mutationMethod: null,
10672
+
10673
+ mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),
10674
+ hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE),
10675
+ hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE),
10676
+ hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE),
10677
+ hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE)
10678
+ };
10679
+ !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? true ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s', propName) : undefined : void 0;
10680
+
10681
+ if (true) {
10682
+ DOMProperty.getPossibleStandardName[lowerCased] = propName;
10683
+ }
10684
+
10685
+ if (DOMAttributeNames.hasOwnProperty(propName)) {
10686
+ var attributeName = DOMAttributeNames[propName];
10687
+ propertyInfo.attributeName = attributeName;
10688
+ if (true) {
10689
+ DOMProperty.getPossibleStandardName[attributeName] = propName;
10690
+ }
10691
+ }
10692
+
10693
+ if (DOMAttributeNamespaces.hasOwnProperty(propName)) {
10694
+ propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName];
10695
+ }
10696
+
10697
+ if (DOMPropertyNames.hasOwnProperty(propName)) {
10698
+ propertyInfo.propertyName = DOMPropertyNames[propName];
10699
+ }
10700
+
10701
+ if (DOMMutationMethods.hasOwnProperty(propName)) {
10702
+ propertyInfo.mutationMethod = DOMMutationMethods[propName];
10703
+ }
10704
+
10705
+ DOMProperty.properties[propName] = propertyInfo;
10706
+ }
10707
+ }
10708
+ };
10709
+
10710
+ /* eslint-disable max-len */
10711
+ var ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD';
10712
+ /* eslint-enable max-len */
10713
+
10714
+ /**
10715
+ * DOMProperty exports lookup objects that can be used like functions:
10716
+ *
10717
+ * > DOMProperty.isValid['id']
10718
+ * true
10719
+ * > DOMProperty.isValid['foobar']
10720
+ * undefined
10721
+ *
10722
+ * Although this may be confusing, it performs better in general.
10723
+ *
10724
+ * @see http://jsperf.com/key-exists
10725
+ * @see http://jsperf.com/key-missing
10726
+ */
10727
+ var DOMProperty = {
10728
+ ID_ATTRIBUTE_NAME: 'data-reactid',
10729
+ ROOT_ATTRIBUTE_NAME: 'data-reactroot',
10730
+
10731
+ ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR,
10732
+ ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040',
10733
+
10734
+ /**
10735
+ * Map from property "standard name" to an object with info about how to set
10736
+ * the property in the DOM. Each object contains:
10737
+ *
10738
+ * attributeName:
10739
+ * Used when rendering markup or with `*Attribute()`.
10740
+ * attributeNamespace
10741
+ * propertyName:
10742
+ * Used on DOM node instances. (This includes properties that mutate due to
10743
+ * external factors.)
10744
+ * mutationMethod:
10745
+ * If non-null, used instead of the property or `setAttribute()` after
10746
+ * initial render.
10747
+ * mustUseProperty:
10748
+ * Whether the property must be accessed and mutated as an object property.
10749
+ * hasBooleanValue:
10750
+ * Whether the property should be removed when set to a falsey value.
10751
+ * hasNumericValue:
10752
+ * Whether the property must be numeric or parse as a numeric and should be
10753
+ * removed when set to a falsey value.
10754
+ * hasPositiveNumericValue:
10755
+ * Whether the property must be positive numeric or parse as a positive
10756
+ * numeric and should be removed when set to a falsey value.
10757
+ * hasOverloadedBooleanValue:
10758
+ * Whether the property can be used as a flag as well as with a value.
10759
+ * Removed when strictly equal to false; present without a value when
10760
+ * strictly equal to true; present with a value otherwise.
10761
+ */
10762
+ properties: {},
10763
+
10764
+ /**
10765
+ * Mapping from lowercase property names to the properly cased version, used
10766
+ * to warn in the case of missing properties. Available only in __DEV__.
10767
+ *
10768
+ * autofocus is predefined, because adding it to the property whitelist
10769
+ * causes unintended side effects.
10770
+ *
10771
+ * @type {Object}
10772
+ */
10773
+ getPossibleStandardName: true ? { autofocus: 'autoFocus' } : undefined,
10774
+
10775
+ /**
10776
+ * All of the isCustomAttribute() functions that have been injected.
10777
+ */
10778
+ _isCustomAttributeFunctions: [],
10779
+
10780
+ /**
10781
+ * Checks whether a property name is a custom attribute.
10782
+ * @method
10783
+ */
10784
+ isCustomAttribute: function (attributeName) {
10785
+ for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) {
10786
+ var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i];
10787
+ if (isCustomAttributeFn(attributeName)) {
10788
+ return true;
10789
+ }
10790
+ }
10791
+ return false;
10792
+ },
10793
+
10794
+ injection: DOMPropertyInjection
10795
+ };
10796
+
10797
+ module.exports = DOMProperty;
10798
+
10799
+ /***/ }),
10800
+
10801
+ /***/ "./node_modules/react-dom/lib/DOMPropertyOperations.js":
10802
+ /*!*************************************************************!*\
10803
+ !*** ./node_modules/react-dom/lib/DOMPropertyOperations.js ***!
10804
+ \*************************************************************/
10805
+ /*! no static exports found */
10806
+ /***/ (function(module, exports, __webpack_require__) {
10807
+
10808
+ "use strict";
10809
+ /**
10810
+ * Copyright (c) 2013-present, Facebook, Inc.
10811
+ *
10812
+ * This source code is licensed under the MIT license found in the
10813
+ * LICENSE file in the root directory of this source tree.
10814
+ *
10815
+ */
10816
+
10817
+
10818
+
10819
+ var DOMProperty = __webpack_require__(/*! ./DOMProperty */ "./node_modules/react-dom/lib/DOMProperty.js");
10820
+ var ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ "./node_modules/react-dom/lib/ReactDOMComponentTree.js");
10821
+ var ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ "./node_modules/react-dom/lib/ReactInstrumentation.js");
10822
+
10823
+ var quoteAttributeValueForBrowser = __webpack_require__(/*! ./quoteAttributeValueForBrowser */ "./node_modules/react-dom/lib/quoteAttributeValueForBrowser.js");
10824
+ var warning = __webpack_require__(/*! fbjs/lib/warning */ "./node_modules/fbjs/lib/warning.js");
10825
+
10826
+ var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');
10827
+ var illegalAttributeNameCache = {};
10828
+ var validatedAttributeNameCache = {};
10829
+
10830
+ function isAttributeNameSafe(attributeName) {
10831
+ if (validatedAttributeNameCache.hasOwnProperty(attributeName)) {
10832
+ return true;
10833
+ }
10834
+ if (illegalAttributeNameCache.hasOwnProperty(attributeName)) {
10835
+ return false;
10836
+ }
10837
+ if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {
10838
+ validatedAttributeNameCache[attributeName] = true;
10839
+ return true;
10840
+ }
10841
+ illegalAttributeNameCache[attributeName] = true;
10842
+ true ? warning(false, 'Invalid attribute name: `%s`', attributeName) : undefined;
10843
+ return false;
10844
+ }
10845
+
10846
+ function shouldIgnoreValue(propertyInfo, value) {
10847
+ return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false;
10848
+ }
10849
+
10850
+ /**
10851
+ * Operations for dealing with DOM properties.
10852
+ */
10853
+ var DOMPropertyOperations = {
10854
+ /**
10855
+ * Creates markup for the ID property.
10856
+ *
10857
+ * @param {string} id Unescaped ID.
10858
+ * @return {string} Markup string.
10859
+ */
10860
+ createMarkupForID: function (id) {
10861
+ return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id);
10862
+ },
10863
+
10864
+ setAttributeForID: function (node, id) {
10865
+ node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id);
10866
+ },
10867
+
10868
+ createMarkupForRoot: function () {
10869
+ return DOMProperty.ROOT_ATTRIBUTE_NAME + '=""';
10870
+ },
10871
+
10872
+ setAttributeForRoot: function (node) {
10873
+ node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, '');
10874
+ },
10875
+
10876
+ /**
10877
+ * Creates markup for a property.
10878
+ *
10879
+ * @param {string} name
10880
+ * @param {*} value
10881
+ * @return {?string} Markup string, or null if the property was invalid.
10882
+ */
10883
+ createMarkupForProperty: function (name, value) {
10884
+ var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;
10885
+ if (propertyInfo) {
10886
+ if (shouldIgnoreValue(propertyInfo, value)) {
10887
+ return '';
10888
+ }
10889
+ var attributeName = propertyInfo.attributeName;
10890
+ if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {
10891
+ return attributeName + '=""';
10892
+ }
10893
+ return attributeName + '=' + quoteAttributeValueForBrowser(value);
10894
+ } else if (DOMProperty.isCustomAttribute(name)) {
10895
+ if (value == null) {
10896
+ return '';
10897
+ }
10898
+ return name + '=' + quoteAttributeValueForBrowser(value);
10899
+ }
10900
+ return null;
10901
+ },
10902
+
10903
+ /**
10904
+ * Creates markup for a custom property.
10905
+ *
10906
+ * @param {string} name
10907
+ * @param {*} value
10908
+ * @return {string} Markup string, or empty string if the property was invalid.
10909
+ */
10910
+ createMarkupForCustomAttribute: function (name, value) {
10911
+ if (!isAttributeNameSafe(name) || value == null) {
10912
+ return '';
10913
+ }
10914
+ return name + '=' + quoteAttributeValueForBrowser(value);
10915
+ },
10916
+
10917
+ /**
10918
+ * Sets the value for a property on a node.
10919
+ *
10920
+ * @param {DOMElement} node
10921
+ * @param {string} name
10922
+ * @param {*} value
10923
+ */
10924
+ setValueForProperty: function (node, name, value) {
10925
+ var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;
10926
+ if (propertyInfo) {
10927
+ var mutationMethod = propertyInfo.mutationMethod;
10928
+ if (mutationMethod) {
10929
+ mutationMethod(node, value);
10930
+ } else if (shouldIgnoreValue(propertyInfo, value)) {
10931
+ this.deleteValueForProperty(node, name);
10932
+ return;
10933
+ } else if (propertyInfo.mustUseProperty) {
10934
+ // Contrary to `setAttribute`, object properties are properly
10935
+ // `toString`ed by IE8/9.
10936
+ node[propertyInfo.propertyName] = value;
10937
+ } else {
10938
+ var attributeName = propertyInfo.attributeName;
10939
+ var namespace = propertyInfo.attributeNamespace;
10940
+ // `setAttribute` with objects becomes only `[object]` in IE8/9,
10941
+ // ('' + value) makes it output the correct toString()-value.
10942
+ if (namespace) {
10943
+ node.setAttributeNS(namespace, attributeName, '' + value);
10944
+ } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {
10945
+ node.setAttribute(attributeName, '');
10946
+ } else {
10947
+ node.setAttribute(attributeName, '' + value);
10948
+ }
10949
+ }
10950
+ } else if (DOMProperty.isCustomAttribute(name)) {
10951
+ DOMPropertyOperations.setValueForAttribute(node, name, value);
10952
+ return;
10953
+ }
10954
+
10955
+ if (true) {
10956
+ var payload = {};
10957
+ payload[name] = value;
10958
+ ReactInstrumentation.debugTool.onHostOperation({
10959
+ instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,
10960
+ type: 'update attribute',
10961
+ payload: payload
10962
+ });
10963
+ }
10964
+ },
10965
+
10966
+ setValueForAttribute: function (node, name, value) {
10967
+ if (!isAttributeNameSafe(name)) {
10968
+ return;
10969
+ }
10970
+ if (value == null) {
10971
+ node.removeAttribute(name);
10972
+ } else {
10973
+ node.setAttribute(name, '' + value);
10974
+ }
10975
+
10976
+ if (true) {
10977
+ var payload = {};
10978
+ payload[name] = value;
10979
+ ReactInstrumentation.debugTool.onHostOperation({
10980
+ instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,
10981
+ type: 'update attribute',
10982
+ payload: payload
10983
+ });
10984
+ }
10985
+ },
10986
+
10987
+ /**
10988
+ * Deletes an attributes from a node.
10989
+ *
10990
+ * @param {DOMElement} node
10991
+ * @param {string} name
10992
+ */
10993
+ deleteValueForAttribute: function (node, name) {
10994
+ node.removeAttribute(name);
10995
+ if (true) {
10996
+ ReactInstrumentation.debugTool.onHostOperation({
10997
+ instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,
10998
+ type: 'remove attribute',
10999
+ payload: name
11000
+ });
11001
+ }
11002
+ },
11003
+
11004
+ /**
11005
+ * Deletes the value for a property on a node.
11006
+ *
11007
+ * @param {DOMElement} node
11008
+ * @param {string} name
11009
+ */
11010
+ deleteValueForProperty: function (node, name) {
11011
+ var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;
11012
+ if (propertyInfo) {
11013
+ var mutationMethod = propertyInfo.mutationMethod;
11014
+ if (mutationMethod) {
11015
+ mutationMethod(node, undefined);
11016
+ } else if (propertyInfo.mustUseProperty) {
11017
+ var propName = propertyInfo.propertyName;
11018
+ if (propertyInfo.hasBooleanValue) {
11019
+ node[propName] = false;
11020
+ } else {
11021
+ node[propName] = '';
11022
+ }
11023
+ } else {
11024
+ node.removeAttribute(propertyInfo.attributeName);
11025
+ }
11026
+ } else if (DOMProperty.isCustomAttribute(name)) {
11027
+ node.removeAttribute(name);
11028
+ }
11029
+
11030
+ if (true) {
11031
+ ReactInstrumentation.debugTool.onHostOperation({
11032
+ instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,
11033
+ type: 'remove attribute',
11034
+ payload: name
11035
+ });
11036
+ }
11037
+ }
11038
+ };
11039
+
11040
+ module.exports = DOMPropertyOperations;
11041
+
11042
+ /***/ }),
11043
+
11044
+ /***/ "./node_modules/react-dom/lib/Danger.js":
11045
+ /*!**********************************************!*\
11046
+ !*** ./node_modules/react-dom/lib/Danger.js ***!
11047
+ \**********************************************/
11048
+ /*! no static exports found */
11049
+ /***/ (function(module, exports, __webpack_require__) {
11050
+
11051
+ "use strict";
11052
+ /**
11053
+ * Copyright (c) 2013-present, Facebook, Inc.
11054
+ *
11055
+ * This source code is licensed under the MIT license found in the
11056
+ * LICENSE file in the root directory of this source tree.
11057
+ *
11058
+ */
11059
+
11060
+
11061
+
11062
+ var _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ "./node_modules/react-dom/lib/reactProdInvariant.js");
11063
+
11064
+ var DOMLazyTree = __webpack_require__(/*! ./DOMLazyTree */ "./node_modules/react-dom/lib/DOMLazyTree.js");
11065
+ var ExecutionEnvironment = __webpack_require__(/*! fbjs/lib/ExecutionEnvironment */ "./node_modules/fbjs/lib/ExecutionEnvironment.js");
11066
+
11067
+ var createNodesFromMarkup = __webpack_require__(/*! fbjs/lib/createNodesFromMarkup */ "./node_modules/fbjs/lib/createNodesFromMarkup.js");
11068
+ var emptyFunction = __webpack_require__(/*! fbjs/lib/emptyFunction */ "./node_modules/fbjs/lib/emptyFunction.js");
11069
+ var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js");
11070
+
11071
+ var Danger = {
11072
+ /**
11073
+ * Replaces a node with a string of markup at its current position within its
11074
+ * parent. The markup must render into a single root node.
11075
+ *
11076
+ * @param {DOMElement} oldChild Child node to replace.
11077
+ * @param {string} markup Markup to render in place of the child node.
11078
+ * @internal
11079
+ */
11080
+ dangerouslyReplaceNodeWithMarkup: function (oldChild, markup) {
11081
+ !ExecutionEnvironment.canUseDOM ? true ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use ReactDOMServer.renderToString() for server rendering.') : undefined : void 0;
11082
+ !markup ? true ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : undefined : void 0;
11083
+ !(oldChild.nodeName !== 'HTML') ? true ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the <html> node. This is because browser quirks make this unreliable and/or slow. If you want to render to the root you must use server rendering. See ReactDOMServer.renderToString().') : undefined : void 0;
11084
+
11085
+ if (typeof markup === 'string') {
11086
+ var newChild = createNodesFromMarkup(markup, emptyFunction)[0];
11087
+ oldChild.parentNode.replaceChild(newChild, oldChild);
11088
+ } else {
11089
+ DOMLazyTree.replaceChildWithTree(oldChild, markup);
11090
+ }
11091
+ }
11092
+ };
11093
+
11094
+ module.exports = Danger;
11095
+
11096
+ /***/ }),
11097
+
11098
+ /***/ "./node_modules/react-dom/lib/DefaultEventPluginOrder.js":
11099
+ /*!***************************************************************!*\
11100
+ !*** ./node_modules/react-dom/lib/DefaultEventPluginOrder.js ***!
11101
+ \***************************************************************/
11102
+ /*! no static exports found */
11103
+ /***/ (function(module, exports, __webpack_require__) {
11104
+
11105
+ "use strict";
11106
+ /**
11107
+ * Copyright (c) 2013-present, Facebook, Inc.
11108
+ *
11109
+ * This source code is licensed under the MIT license found in the
11110
+ * LICENSE file in the root directory of this source tree.
11111
+ *
11112
+ */
11113
+
11114
+
11115
+
11116
+ /**
11117
+ * Module that is injectable into `EventPluginHub`, that specifies a
11118
+ * deterministic ordering of `EventPlugin`s. A convenient way to reason about
11119
+ * plugins, without having to package every one of them. This is better than
11120
+ * having plugins be ordered in the same order that they are injected because
11121
+ * that ordering would be influenced by the packaging order.
11122
+ * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that
11123
+ * preventing default on events is convenient in `SimpleEventPlugin` handlers.
11124
+ */
11125
+
11126
+ var DefaultEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'TapEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin'];
11127
+
11128
+ module.exports = DefaultEventPluginOrder;
11129
+
11130
+ /***/ }),
11131
+
11132
+ /***/ "./node_modules/react-dom/lib/EnterLeaveEventPlugin.js":
11133
+ /*!*************************************************************!*\
11134
+ !*** ./node_modules/react-dom/lib/EnterLeaveEventPlugin.js ***!
11135
+ \*************************************************************/
11136
+ /*! no static exports found */
11137
+ /***/ (function(module, exports, __webpack_require__) {
11138
+
11139
+ "use strict";
11140
+ /**
11141
+ * Copyright (c) 2013-present, Facebook, Inc.
11142
+ *
11143
+ * This source code is licensed under the MIT license found in the
11144
+ * LICENSE file in the root directory of this source tree.
11145
+ *
11146
+ */
11147
+
11148
+
11149
+
11150
+ var EventPropagators = __webpack_require__(/*! ./EventPropagators */ "./node_modules/react-dom/lib/EventPropagators.js");
11151
+ var ReactDOMComponentTree = __webpack_require__(/*! ./ReactDOMComponentTree */ "./node_modules/react-dom/lib/ReactDOMComponentTree.js");
11152
+ var SyntheticMouseEvent = __webpack_require__(/*! ./SyntheticMouseEvent */ "./node_modules/react-dom/lib/SyntheticMouseEvent.js");
11153
+
11154
+ var eventTypes = {
11155
+ mouseEnter: {
11156
+ registrationName: 'onMouseEnter',
11157
+ dependencies: ['topMouseOut', 'topMouseOver']
11158
+ },
11159
+ mouseLeave: {
11160
+ registrationName: 'onMouseLeave',
11161
+ dependencies: ['topMouseOut', 'topMouseOver']
11162
+ }
11163
+ };
11164
+
11165
+ var EnterLeaveEventPlugin = {
11166
+ eventTypes: eventTypes,
11167
+
11168
+ /**
11169
+ * For almost every interaction we care about, there will be both a top-level
11170
+ * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that
11171
+ * we do not extract duplicate events. However, moving the mouse into the
11172
+ * browser from outside will not fire a `mouseout` event. In this case, we use
11173
+ * the `mouseover` top-level event.
11174
+ */
11175
+ extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
11176
+ if (topLevelType === 'topMouseOver' && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {
11177
+ return null;
11178
+ }
11179
+ if (topLevelType !== 'topMouseOut' && topLevelType !== 'topMouseOver') {
11180
+ // Must not be a mouse in or mouse out - ignoring.
11181
+ return null;
11182
+ }
11183
+
11184
+ var win;
11185
+ if (nativeEventTarget.window === nativeEventTarget) {
11186
+ // `nativeEventTarget` is probably a window object.
11187
+ win = nativeEventTarget;
11188
+ } else {
11189
+ // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.
11190
+ var doc = nativeEventTarget.ownerDocument;
11191
+ if (doc) {
11192
+ win = doc.defaultView || doc.parentWindow;
11193
+ } else {
11194
+ win = window;
11195
+ }
11196
+ }
11197
+
11198
+ var from;
11199
+ var to;
11200
+ if (topLevelType === 'topMouseOut') {
11201
+ from = targetInst;
11202
+ var related = nativeEvent.relatedTarget || nativeEvent.toElement;
11203
+ to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null;
11204
+ } else {
11205
+ // Moving to a node from outside the window.
11206
+ from = null;
11207
+ to = targetInst;
11208
+ }
11209
+
11210
+ if (from === to) {
11211
+ // Nothing pertains to our managed components.
11212
+ return null;
11213
+ }
11214
+
11215
+ var fromNode = from == null ? win : ReactDOMComponentTree.getNodeFromInstance(from);
11216
+ var toNode = to == null ? win : ReactDOMComponentTree.getNodeFromInstance(to);
11217
+
11218
+ var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, from, nativeEvent, nativeEventTarget);
11219
+ leave.type = 'mouseleave';
11220
+ leave.target = fromNode;
11221
+ leave.relatedTarget = toNode;
11222
+
11223
+ var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, to, nativeEvent, nativeEventTarget);
11224
+ enter.type = 'mouseenter';
11225
+ enter.target = toNode;
11226
+ enter.relatedTarget = fromNode;
11227
+
11228
+ EventPropagators.accumulateEnterLeaveDispatches(leave, enter, from, to);
11229
+
11230
+ return [leave, enter];
11231
+ }
11232
+ };
11233
+
11234
+ module.exports = EnterLeaveEventPlugin;
11235
+
11236
+ /***/ }),
11237
+
11238
+ /***/ "./node_modules/react-dom/lib/EventPluginHub.js":
11239
+ /*!******************************************************!*\
11240
+ !*** ./node_modules/react-dom/lib/EventPluginHub.js ***!
11241
+ \******************************************************/
11242
+ /*! no static exports found */
11243
+ /***/ (function(module, exports, __webpack_require__) {
11244
+
11245
+ "use strict";
11246
+ /**
11247
+ * Copyright (c) 2013-present, Facebook, Inc.
11248
+ *
11249
+ * This source code is licensed under the MIT license found in the
11250
+ * LICENSE file in the root directory of this source tree.
11251
+ *
11252
+ */
11253
+
11254
+
11255
+
11256
+ var _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ "./node_modules/react-dom/lib/reactProdInvariant.js");
11257
+
11258
+ var EventPluginRegistry = __webpack_require__(/*! ./EventPluginRegistry */ "./node_modules/react-dom/lib/EventPluginRegistry.js");
11259
+ var EventPluginUtils = __webpack_require__(/*! ./EventPluginUtils */ "./node_modules/react-dom/lib/EventPluginUtils.js");
11260
+ var ReactErrorUtils = __webpack_require__(/*! ./ReactErrorUtils */ "./node_modules/react-dom/lib/ReactErrorUtils.js");
11261
+
11262
+ var accumulateInto = __webpack_require__(/*! ./accumulateInto */ "./node_modules/react-dom/lib/accumulateInto.js");
11263
+ var forEachAccumulated = __webpack_require__(/*! ./forEachAccumulated */ "./node_modules/react-dom/lib/forEachAccumulated.js");
11264
+ var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js");
11265
+
11266
+ /**
11267
+ * Internal store for event listeners
11268
+ */
11269
+ var listenerBank = {};
11270
+
11271
+ /**
11272
+ * Internal queue of events that have accumulated their dispatches and are
11273
+ * waiting to have their dispatches executed.
11274
+ */
11275
+ var eventQueue = null;
11276
+
11277
+ /**
11278
+ * Dispatches an event and releases it back into the pool, unless persistent.
11279
+ *
11280
+ * @param {?object} event Synthetic event to be dispatched.
11281
+ * @param {boolean} simulated If the event is simulated (changes exn behavior)
11282
+ * @private
11283
+ */
11284
+ var executeDispatchesAndRelease = function (event, simulated) {
11285
+ if (event) {
11286
+ EventPluginUtils.executeDispatchesInOrder(event, simulated);
11287
+
11288
+ if (!event.isPersistent()) {
11289
+ event.constructor.release(event);
11290
+ }
11291
+ }
11292
+ };
11293
+ var executeDispatchesAndReleaseSimulated = function (e) {
11294
+ return executeDispatchesAndRelease(e, true);
11295
+ };
11296
+ var executeDispatchesAndReleaseTopLevel = function (e) {
11297
+ return executeDispatchesAndRelease(e, false);
11298
+ };
11299
+
11300
+ var getDictionaryKey = function (inst) {
11301
+ // Prevents V8 performance issue:
11302
+ // https://github.com/facebook/react/pull/7232
11303
+ return '.' + inst._rootNodeID;
11304
+ };
11305
+
11306
+ function isInteractive(tag) {
11307
+ return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';
11308
+ }
11309
+
11310
+ function shouldPreventMouseEvent(name, type, props) {
11311
+ switch (name) {
11312
+ case 'onClick':
11313
+ case 'onClickCapture':
11314
+ case 'onDoubleClick':
11315
+ case 'onDoubleClickCapture':
11316
+ case 'onMouseDown':
11317
+ case 'onMouseDownCapture':
11318
+ case 'onMouseMove':
11319
+ case 'onMouseMoveCapture':
11320
+ case 'onMouseUp':
11321
+ case 'onMouseUpCapture':
11322
+ return !!(props.disabled && isInteractive(type));
11323
+ default:
11324
+ return false;
11325
+ }
11326
+ }
11327
+
11328
+ /**
11329
+ * This is a unified interface for event plugins to be installed and configured.
11330
+ *
11331
+ * Event plugins can implement the following properties:
11332
+ *
11333
+ * `extractEvents` {function(string, DOMEventTarget, string, object): *}
11334
+ * Required. When a top-level event is fired, this method is expected to
11335
+ * extract synthetic events that will in turn be queued and dispatched.
11336
+ *
11337
+ * `eventTypes` {object}
11338
+ * Optional, plugins that fire events must publish a mapping of registration
11339
+ * names that are used to register listeners. Values of this mapping must
11340
+ * be objects that contain `registrationName` or `phasedRegistrationNames`.
11341
+ *
11342
+ * `executeDispatch` {function(object, function, string)}
11343
+ * Optional, allows plugins to override how an event gets dispatched. By
11344
+ * default, the listener is simply invoked.
11345
+ *
11346
+ * Each plugin that is injected into `EventsPluginHub` is immediately operable.
11347
+ *
11348
+ * @public
11349
+ */
11350
+ var EventPluginHub = {
11351
+ /**
11352
+ * Methods for injecting dependencies.
11353
+ */
11354
+ injection: {
11355
+ /**
11356
+ * @param {array} InjectedEventPluginOrder
11357
+ * @public
11358
+ */
11359
+ injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder,
11360
+
11361
+ /**
11362
+ * @param {object} injectedNamesToPlugins Map from names to plugin modules.
11363
+ */
11364
+ injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName
11365
+ },
11366
+
11367
+ /**
11368
+ * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent.
11369
+ *
11370
+ * @param {object} inst The instance, which is the source of events.
11371
+ * @param {string} registrationName Name of listener (e.g. `onClick`).
11372
+ * @param {function} listener The callback to store.
11373
+ */
11374
+ putListener: function (inst, registrationName, listener) {
11375
+ !(typeof listener === 'function') ? true ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : undefined : void 0;
11376
+
11377
+ var key = getDictionaryKey(inst);
11378
+ var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});
11379
+ bankForRegistrationName[key] = listener;
11380
+
11381
+ var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];
11382
+ if (PluginModule && PluginModule.didPutListener) {
11383
+ PluginModule.didPutListener(inst, registrationName, listener);
11384
+ }
11385
+ },
11386
+
11387
+ /**
11388
+ * @param {object} inst The instance, which is the source of events.
11389
+ * @param {string} registrationName Name of listener (e.g. `onClick`).
11390
+ * @return {?function} The stored callback.
11391
+ */
11392
+ getListener: function (inst, registrationName) {
11393
+ // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not
11394
+ // live here; needs to be moved to a better place soon
11395
+ var bankForRegistrationName = listenerBank[registrationName];
11396
+ if (shouldPreventMouseEvent(registrationName, inst._currentElement.type, inst._currentElement.props)) {
11397
+ return null;
11398
+ }
11399
+ var key = getDictionaryKey(inst);
11400
+ return bankForRegistrationName && bankForRegistrationName[key];
11401
+ },
11402
+
11403
+ /**
11404
+ * Deletes a listener from the registration bank.
11405
+ *
11406
+ * @param {object} inst The instance, which is the source of events.
11407
+ * @param {string} registrationName Name of listener (e.g. `onClick`).
11408
+ */
11409
+ deleteListener: function (inst, registrationName) {
11410
+ var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];
11411
+ if (PluginModule && PluginModule.willDeleteListener) {
11412
+ PluginModule.willDeleteListener(inst, registrationName);
11413
+ }
11414
+
11415
+ var bankForRegistrationName = listenerBank[registrationName];
11416
+ // TODO: This should never be null -- when is it?
11417
+ if (bankForRegistrationName) {
11418
+ var key = getDictionaryKey(inst);
11419
+ delete bankForRegistrationName[key];
11420
+ }
11421
+ },
11422
+
11423
+ /**
11424
+ * Deletes all listeners for the DOM element with the supplied ID.
11425
+ *
11426
+ * @param {object} inst The instance, which is the source of events.
11427
+ */
11428
+ deleteAllListeners: function (inst) {
11429
+ var key = getDictionaryKey(inst);
11430
+ for (var registrationName in listenerBank) {
11431
+ if (!listenerBank.hasOwnProperty(registrationName)) {
11432
+ continue;
11433
+ }
11434
+
11435
+ if (!listenerBank[registrationName][key]) {
11436
+ continue;
11437
+ }
11438
+
11439
+ var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];
11440
+ if (PluginModule && PluginModule.willDeleteListener) {
11441
+ PluginModule.willDeleteListener(inst, registrationName);
11442
+ }
11443
+
11444
+ delete listenerBank[registrationName][key];
11445
+ }
11446
+ },
11447
+
11448
+ /**
11449
+ * Allows registered plugins an opportunity to extract events from top-level
11450
+ * native browser events.
11451
+ *
11452
+ * @return {*} An accumulation of synthetic events.
11453
+ * @internal
11454
+ */
11455
+ extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
11456
+ var events;
11457
+ var plugins = EventPluginRegistry.plugins;
11458
+ for (var i = 0; i < plugins.length; i++) {
11459
+ // Not every plugin in the ordering may be loaded at runtime.
11460
+ var possiblePlugin = plugins[i];
11461
+ if (possiblePlugin) {
11462
+ var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);
11463
+ if (extractedEvents) {
11464
+ events = accumulateInto(events, extractedEvents);
11465
+ }
11466
+ }
11467
+ }
11468
+ return events;
11469
+ },
11470
+
11471
+ /**
11472
+ * Enqueues a synthetic event that should be dispatched when
11473
+ * `processEventQueue` is invoked.
11474
+ *
11475
+ * @param {*} events An accumulation of synthetic events.
11476
+ * @internal
11477
+ */
11478
+ enqueueEvents: function (events) {
11479
+ if (events) {
11480
+ eventQueue = accumulateInto(eventQueue, events);
11481
+ }
11482
+ },
11483
+
11484
+ /**
11485
+ * Dispatches all synthetic events on the event queue.
11486
+ *
11487
+ * @internal
11488
+ */
11489
+ processEventQueue: function (simulated) {
11490
+ // Set `eventQueue` to null before processing it so that we can tell if more
11491
+ // events get enqueued while processing.
11492
+ var processingEventQueue = eventQueue;
11493
+ eventQueue = null;
11494
+ if (simulated) {
11495
+ forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);
11496
+ } else {
11497
+ forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);
11498
+ }
11499
+ !!eventQueue ? true ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : undefined : void 0;
11500
+ // This would be a good time to rethrow if any of the event handlers threw.
11501
+ ReactErrorUtils.rethrowCaughtError();
11502
+ },
11503
+
11504
+ /**
11505
+ * These are needed for tests only. Do not use!
11506
+ */
11507
+ __purge: function () {
11508
+ listenerBank = {};
11509
+ },
11510
+
11511
+ __getListenerBank: function () {
11512
+ return listenerBank;
11513
+ }
11514
+ };
11515
+
11516
+ module.exports = EventPluginHub;
11517
+
11518
+ /***/ }),
11519
+
11520
+ /***/ "./node_modules/react-dom/lib/EventPluginRegistry.js":
11521
+ /*!***********************************************************!*\
11522
+ !*** ./node_modules/react-dom/lib/EventPluginRegistry.js ***!
11523
+ \***********************************************************/
11524
+ /*! no static exports found */
11525
+ /***/ (function(module, exports, __webpack_require__) {
11526
+
11527
+ "use strict";
11528
+ /**
11529
+ * Copyright (c) 2013-present, Facebook, Inc.
11530
+ *
11531
+ * This source code is licensed under the MIT license found in the
11532
+ * LICENSE file in the root directory of this source tree.
11533
+ *
11534
+ *
11535
+ */
11536
+
11537
+
11538
+
11539
+ var _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ "./node_modules/react-dom/lib/reactProdInvariant.js");
11540
+
11541
+ var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js");
11542
+
11543
+ /**
11544
+ * Injectable ordering of event plugins.
11545
+ */
11546
+ var eventPluginOrder = null;
11547
+
11548
+ /**
11549
+ * Injectable mapping from names to event plugin modules.
11550
+ */
11551
+ var namesToPlugins = {};
11552
+
11553
+ /**
11554
+ * Recomputes the plugin list using the injected plugins and plugin ordering.
11555
+ *
11556
+ * @private
11557
+ */
11558
+ function recomputePluginOrdering() {
11559
+ if (!eventPluginOrder) {
11560
+ // Wait until an `eventPluginOrder` is injected.
11561
+ return;
11562
+ }
11563
+ for (var pluginName in namesToPlugins) {
11564
+ var pluginModule = namesToPlugins[pluginName];
11565
+ var pluginIndex = eventPluginOrder.indexOf(pluginName);
11566
+ !(pluginIndex > -1) ? true ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : undefined : void 0;
11567
+ if (EventPluginRegistry.plugins[pluginIndex]) {
11568
+ continue;
11569
+ }
11570
+ !pluginModule.extractEvents ? true ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : undefined : void 0;
11571
+ EventPluginRegistry.plugins[pluginIndex] = pluginModule;
11572
+ var publishedEvents = pluginModule.eventTypes;
11573
+ for (var eventName in publishedEvents) {
11574
+ !publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? true ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : undefined : void 0;
11575
+ }
11576
+ }
11577
+ }
11578
+
11579
+ /**
11580
+ * Publishes an event so that it can be dispatched by the supplied plugin.
11581
+ *
11582
+ * @param {object} dispatchConfig Dispatch configuration for the event.
11583
+ * @param {object} PluginModule Plugin publishing the event.
11584
+ * @return {boolean} True if the event was successfully published.
11585
+ * @private
11586
+ */
11587
+ function publishEventForPlugin(dispatchConfig, pluginModule, eventName) {
11588
+ !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? true ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : undefined : void 0;
11589
+ EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig;
11590
+
11591
+ var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;
11592
+ if (phasedRegistrationNames) {
11593
+ for (var phaseName in phasedRegistrationNames) {
11594
+ if (phasedRegistrationNames.hasOwnProperty(phaseName)) {
11595
+ var phasedRegistrationName = phasedRegistrationNames[phaseName];
11596
+ publishRegistrationName(phasedRegistrationName, pluginModule, eventName);
11597
+ }
11598
+ }
11599
+ return true;
11600
+ } else if (dispatchConfig.registrationName) {
11601
+ publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName);
11602
+ return true;
11603
+ }
11604
+ return false;
11605
+ }
11606
+
11607
+ /**
11608
+ * Publishes a registration name that is used to identify dispatched events and
11609
+ * can be used with `EventPluginHub.putListener` to register listeners.
11610
+ *
11611
+ * @param {string} registrationName Registration name to add.
11612
+ * @param {object} PluginModule Plugin publishing the event.
11613
+ * @private
11614
+ */
11615
+ function publishRegistrationName(registrationName, pluginModule, eventName) {
11616
+ !!EventPluginRegistry.registrationNameModules[registrationName] ? true ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : undefined : void 0;
11617
+ EventPluginRegistry.registrationNameModules[registrationName] = pluginModule;
11618
+ EventPluginRegistry.registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;
11619
+
11620
+ if (true) {
11621
+ var lowerCasedName = registrationName.toLowerCase();
11622
+ EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName;
11623
+
11624
+ if (registrationName === 'onDoubleClick') {
11625
+ EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName;
11626
+ }
11627
+ }
11628
+ }
11629
+
11630
+ /**
11631
+ * Registers plugins so that they can extract and dispatch events.
11632
+ *
11633
+ * @see {EventPluginHub}
11634
+ */
11635
+ var EventPluginRegistry = {
11636
+ /**
11637
+ * Ordered list of injected plugins.
11638
+ */
11639
+ plugins: [],
11640
+
11641
+ /**
11642
+ * Mapping from event name to dispatch config
11643
+ */
11644
+ eventNameDispatchConfigs: {},
11645
+
11646
+ /**
11647
+ * Mapping from registration name to plugin module
11648
+ */
11649
+ registrationNameModules: {},
11650
+
11651
+ /**
11652
+ * Mapping from registration name to event name
11653
+ */
11654
+ registrationNameDependencies: {},
11655
+
11656
+ /**
11657
+ * Mapping from lowercase registration names to the properly cased version,
11658
+ * used to warn in the case of missing event handlers. Available
11659
+ * only in __DEV__.
11660
+ * @type {Object}
11661
+ */
11662
+ possibleRegistrationNames: true ? {} : undefined,
11663
+ // Trust the developer to only use possibleRegistrationNames in __DEV__
11664
+
11665
+ /**
11666
+ * Injects an ordering of plugins (by plugin name). This allows the ordering
11667
+ * to be decoupled from injection of the actual plugins so that ordering is
11668
+ * always deterministic regardless of packaging, on-the-fly injection, etc.
11669
+ *
11670
+ * @param {array} InjectedEventPluginOrder
11671
+ * @internal
11672
+ * @see {EventPluginHub.injection.injectEventPluginOrder}
11673
+ */
11674
+ injectEventPluginOrder: function (injectedEventPluginOrder) {
11675
+ !!eventPluginOrder ? true ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : undefined : void 0;
11676
+ // Clone the ordering so it cannot be dynamically mutated.
11677
+ eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder);
11678
+ recomputePluginOrdering();
11679
+ },
11680
+
11681
+ /**
11682
+ * Injects plugins to be used by `EventPluginHub`. The plugin names must be
11683
+ * in the ordering injected by `injectEventPluginOrder`.
11684
+ *
11685
+ * Plugins can be injected as part of page initialization or on-the-fly.
11686
+ *
11687
+ * @param {object} injectedNamesToPlugins Map from names to plugin modules.
11688
+ * @internal
11689
+ * @see {EventPluginHub.injection.injectEventPluginsByName}
11690
+ */
11691
+ injectEventPluginsByName: function (injectedNamesToPlugins) {
11692
+ var isOrderingDirty = false;
11693
+ for (var pluginName in injectedNamesToPlugins) {
11694
+ if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {
11695
+ continue;
11696
+ }
11697
+ var pluginModule = injectedNamesToPlugins[pluginName];
11698
+ if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) {
11699
+ !!namesToPlugins[pluginName] ? true ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : undefined : void 0;
11700
+ namesToPlugins[pluginName] = pluginModule;
11701
+ isOrderingDirty = true;
11702
+ }
11703
+ }
11704
+ if (isOrderingDirty) {
11705
+ recomputePluginOrdering();
11706
+ }
11707
+ },
11708
+
11709
+ /**
11710
+ * Looks up the plugin for the supplied event.
11711
+ *
11712
+ * @param {object} event A synthetic event.
11713
+ * @return {?object} The plugin that created the supplied event.
11714
+ * @internal
11715
+ */
11716
+ getPluginModuleForEvent: function (event) {
11717
+ var dispatchConfig = event.dispatchConfig;
11718
+ if (dispatchConfig.registrationName) {
11719
+ return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null;
11720
+ }
11721
+ if (dispatchConfig.phasedRegistrationNames !== undefined) {
11722
+ // pulling phasedRegistrationNames out of dispatchConfig helps Flow see
11723
+ // that it is not undefined.
11724
+ var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;
11725
+
11726
+ for (var phase in phasedRegistrationNames) {
11727
+ if (!phasedRegistrationNames.hasOwnProperty(phase)) {
11728
+ continue;
11729
+ }
11730
+ var pluginModule = EventPluginRegistry.registrationNameModules[phasedRegistrationNames[phase]];
11731
+ if (pluginModule) {
11732
+ return pluginModule;
11733
+ }
11734
+ }
11735
+ }
11736
+ return null;
11737
+ },
11738
+
11739
+ /**
11740
+ * Exposed for unit testing.
11741
+ * @private
11742
+ */
11743
+ _resetEventPlugins: function () {
11744
+ eventPluginOrder = null;
11745
+ for (var pluginName in namesToPlugins) {
11746
+ if (namesToPlugins.hasOwnProperty(pluginName)) {
11747
+ delete namesToPlugins[pluginName];
11748
+ }
11749
+ }
11750
+ EventPluginRegistry.plugins.length = 0;
11751
+
11752
+ var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs;
11753
+ for (var eventName in eventNameDispatchConfigs) {
11754
+ if (eventNameDispatchConfigs.hasOwnProperty(eventName)) {
11755
+ delete eventNameDispatchConfigs[eventName];
11756
+ }
11757
+ }
11758
+
11759
+ var registrationNameModules = EventPluginRegistry.registrationNameModules;
11760
+ for (var registrationName in registrationNameModules) {
11761
+ if (registrationNameModules.hasOwnProperty(registrationName)) {
11762
+ delete registrationNameModules[registrationName];
11763
+ }
11764
+ }
11765
+
11766
+ if (true) {
11767
+ var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames;
11768
+ for (var lowerCasedName in possibleRegistrationNames) {
11769
+ if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) {
11770
+ delete possibleRegistrationNames[lowerCasedName];
11771
+ }
11772
+ }
11773
+ }
11774
+ }
11775
+ };
11776
+
11777
+ module.exports = EventPluginRegistry;
11778
+
11779
+ /***/ }),
11780
+
11781
+ /***/ "./node_modules/react-dom/lib/EventPluginUtils.js":
11782
+ /*!********************************************************!*\
11783
+ !*** ./node_modules/react-dom/lib/EventPluginUtils.js ***!
11784
+ \********************************************************/
11785
+ /*! no static exports found */
11786
+ /***/ (function(module, exports, __webpack_require__) {
11787
+
11788
+ "use strict";
11789
+ /**
11790
+ * Copyright (c) 2013-present, Facebook, Inc.
11791
+ *
11792
+ * This source code is licensed under the MIT license found in the
11793
+ * LICENSE file in the root directory of this source tree.
11794
+ *
11795
+ */
11796
+
11797
+
11798
+
11799
+ var _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ "./node_modules/react-dom/lib/reactProdInvariant.js");
11800
+
11801
+ var ReactErrorUtils = __webpack_require__(/*! ./ReactErrorUtils */ "./node_modules/react-dom/lib/ReactErrorUtils.js");
11802
+
11803
+ var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js");
11804
+ var warning = __webpack_require__(/*! fbjs/lib/warning */ "./node_modules/fbjs/lib/warning.js");
11805
+
11806
+ /**
11807
+ * Injected dependencies:
11808
+ */
11809
+
11810
+ /**
11811
+ * - `ComponentTree`: [required] Module that can convert between React instances
11812
+ * and actual node references.
11813
+ */
11814
+ var ComponentTree;
11815
+ var TreeTraversal;
11816
+ var injection = {
11817
+ injectComponentTree: function (Injected) {
11818
+ ComponentTree = Injected;
11819
+ if (true) {
11820
+ true ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : undefined;
11821
+ }
11822
+ },
11823
+ injectTreeTraversal: function (Injected) {
11824
+ TreeTraversal = Injected;
11825
+ if (true) {
11826
+ true ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : undefined;
11827
+ }
11828
+ }
11829
+ };
11830
+
11831
+ function isEndish(topLevelType) {
11832
+ return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel';
11833
+ }
11834
+
11835
+ function isMoveish(topLevelType) {
11836
+ return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove';
11837
+ }
11838
+ function isStartish(topLevelType) {
11839
+ return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart';
11840
+ }
11841
+
11842
+ var validateEventDispatches;
11843
+ if (true) {
11844
+ validateEventDispatches = function (event) {
11845
+ var dispatchListeners = event._dispatchListeners;
11846
+ var dispatchInstances = event._dispatchInstances;
11847
+
11848
+ var listenersIsArr = Array.isArray(dispatchListeners);
11849
+ var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;
11850
+
11851
+ var instancesIsArr = Array.isArray(dispatchInstances);
11852
+ var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;
11853
+
11854
+ true ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : undefined;
11855
+ };
11856
+ }
11857
+
11858
+ /**
11859
+ * Dispatch the event to the listener.
11860
+ * @param {SyntheticEvent} event SyntheticEvent to handle
11861
+ * @param {boolean} simulated If the event is simulated (changes exn behavior)
11862
+ * @param {function} listener Application-level callback
11863
+ * @param {*} inst Internal component instance
11864
+ */
11865
+ function executeDispatch(event, simulated, listener, inst) {
11866
+ var type = event.type || 'unknown-event';
11867
+ event.currentTarget = EventPluginUtils.getNodeFromInstance(inst);
11868
+ if (simulated) {
11869
+ ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event);
11870
+ } else {
11871
+ ReactErrorUtils.invokeGuardedCallback(type, listener, event);
11872
+ }
11873
+ event.currentTarget = null;
11874
+ }
11875
+
11876
+ /**
11877
+ * Standard/simple iteration through an event's collected dispatches.
11878
+ */
11879
+ function executeDispatchesInOrder(event, simulated) {
11880
+ var dispatchListeners = event._dispatchListeners;
11881
+ var dispatchInstances = event._dispatchInstances;
11882
+ if (true) {
11883
+ validateEventDispatches(event);
11884
+ }
11885
+ if (Array.isArray(dispatchListeners)) {
11886
+ for (var i = 0; i < dispatchListeners.length; i++) {
11887
+ if (event.isPropagationStopped()) {
11888
+ break;
11889
+ }
11890
+ // Listeners and Instances are two parallel arrays that are always in sync.
11891
+ executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);
11892
+ }
11893
+ } else if (dispatchListeners) {
11894
+ executeDispatch(event, simulated, dispatchListeners, dispatchInstances);
11895
+ }
11896
+ event._dispatchListeners = null;
11897
+ event._dispatchInstances = null;
11898
+ }
11899
+
11900
+ /**
11901
+ * Standard/simple iteration through an event's collected dispatches, but stops
11902
+ * at the first dispatch execution returning true, and returns that id.
11903
+ *
11904
+ * @return {?string} id of the first dispatch execution who's listener returns
11905
+ * true, or null if no listener returned true.
11906
+ */
11907
+ function executeDispatchesInOrderStopAtTrueImpl(event) {
11908
+ var dispatchListeners = event._dispatchListeners;
11909
+ var dispatchInstances = event._dispatchInstances;
11910
+ if (true) {
11911
+ validateEventDispatches(event);
11912
+ }
11913
+ if (Array.isArray(dispatchListeners)) {
11914
+ for (var i = 0; i < dispatchListeners.length; i++) {
11915
+ if (event.isPropagationStopped()) {
11916
+ break;
11917
+ }
11918
+ // Listeners and Instances are two parallel arrays that are always in sync.
11919
+ if (dispatchListeners[i](event, dispatchInstances[i])) {
11920
+ return dispatchInstances[i];
11921
+ }
11922
+ }
11923
+ } else if (dispatchListeners) {
11924
+ if (dispatchListeners(event, dispatchInstances)) {
11925
+ return dispatchInstances;
11926
+ }
11927
+ }
11928
+ return null;
11929
+ }
11930
+
11931
+ /**
11932
+ * @see executeDispatchesInOrderStopAtTrueImpl
11933
+ */
11934
+ function executeDispatchesInOrderStopAtTrue(event) {
11935
+ var ret = executeDispatchesInOrderStopAtTrueImpl(event);
11936
+ event._dispatchInstances = null;
11937
+ event._dispatchListeners = null;
11938
+ return ret;
11939
+ }
11940
+
11941
+ /**
11942
+ * Execution of a "direct" dispatch - there must be at most one dispatch
11943
+ * accumulated on the event or it is considered an error. It doesn't really make
11944
+ * sense for an event with multiple dispatches (bubbled) to keep track of the
11945
+ * return values at each dispatch execution, but it does tend to make sense when
11946
+ * dealing with "direct" dispatches.
11947
+ *
11948
+ * @return {*} The return value of executing the single dispatch.
11949
+ */
11950
+ function executeDirectDispatch(event) {
11951
+ if (true) {
11952
+ validateEventDispatches(event);
11953
+ }
11954
+ var dispatchListener = event._dispatchListeners;
11955
+ var dispatchInstance = event._dispatchInstances;
11956
+ !!Array.isArray(dispatchListener) ? true ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : undefined : void 0;
11957
+ event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null;
11958
+ var res = dispatchListener ? dispatchListener(event) : null;
11959
+ event.currentTarget = null;
11960
+ event._dispatchListeners = null;
11961
+ event._dispatchInstances = null;
11962
+ return res;
11963
+ }
11964
+
11965
+ /**
11966
+ * @param {SyntheticEvent} event
11967
+ * @return {boolean} True iff number of dispatches accumulated is greater than 0.
11968
+ */
11969
+ function hasDispatches(event) {
11970
+ return !!event._dispatchListeners;
11971
+ }
11972
+
11973
+ /**
11974
+ * General utilities that are useful in creating custom Event Plugins.
11975
+ */
11976
+ var EventPluginUtils = {
11977
+ isEndish: isEndish,
11978
+ isMoveish: isMoveish,
11979
+ isStartish: isStartish,
11980
+
11981
+ executeDirectDispatch: executeDirectDispatch,
11982
+ executeDispatchesInOrder: executeDispatchesInOrder,
11983
+ executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,
11984
+ hasDispatches: hasDispatches,
11985
+
11986
+ getInstanceFromNode: function (node) {
11987
+ return ComponentTree.getInstanceFromNode(node);
11988
+ },
11989
+ getNodeFromInstance: function (node) {
11990
+ return ComponentTree.getNodeFromInstance(node);
11991
+ },
11992
+ isAncestor: function (a, b) {
11993
+ return TreeTraversal.isAncestor(a, b);
11994
+ },
11995
+ getLowestCommonAncestor: function (a, b) {
11996
+ return TreeTraversal.getLowestCommonAncestor(a, b);
11997
+ },
11998
+ getParentInstance: function (inst) {
11999
+ return TreeTraversal.getParentInstance(inst);
12000
+ },
12001
+ traverseTwoPhase: function (target, fn, arg) {
12002
+ return TreeTraversal.traverseTwoPhase(target, fn, arg);
12003
+ },
12004
+ traverseEnterLeave: function (from, to, fn, argFrom, argTo) {
12005
+ return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo);
12006
+ },
12007
+
12008
+ injection: injection
12009
+ };
12010
+
12011
+ module.exports = EventPluginUtils;
12012
+
12013
+ /***/ }),
12014
+
12015
+ /***/ "./node_modules/react-dom/lib/EventPropagators.js":
12016
+ /*!********************************************************!*\
12017
+ !*** ./node_modules/react-dom/lib/EventPropagators.js ***!
12018
+ \********************************************************/
12019
+ /*! no static exports found */
12020
+ /***/ (function(module, exports, __webpack_require__) {
12021
+
12022
+ "use strict";
12023
+ /**
12024
+ * Copyright (c) 2013-present, Facebook, Inc.
12025
+ *
12026
+ * This source code is licensed under the MIT license found in the
12027
+ * LICENSE file in the root directory of this source tree.
12028
+ *
12029
+ */
12030
+
12031
+
12032
+
12033
+ var EventPluginHub = __webpack_require__(/*! ./EventPluginHub */ "./node_modules/react-dom/lib/EventPluginHub.js");
12034
+ var EventPluginUtils = __webpack_require__(/*! ./EventPluginUtils */ "./node_modules/react-dom/lib/EventPluginUtils.js");
12035
+
12036
+ var accumulateInto = __webpack_require__(/*! ./accumulateInto */ "./node_modules/react-dom/lib/accumulateInto.js");
12037
+ var forEachAccumulated = __webpack_require__(/*! ./forEachAccumulated */ "./node_modules/react-dom/lib/forEachAccumulated.js");
12038
+ var warning = __webpack_require__(/*! fbjs/lib/warning */ "./node_modules/fbjs/lib/warning.js");
12039
+
12040
+ var getListener = EventPluginHub.getListener;
12041
+
12042
+ /**
12043
+ * Some event types have a notion of different registration names for different
12044
+ * "phases" of propagation. This finds listeners by a given phase.
12045
+ */
12046
+ function listenerAtPhase(inst, event, propagationPhase) {
12047
+ var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];
12048
+ return getListener(inst, registrationName);
12049
+ }
12050
+
12051
+ /**
12052
+ * Tags a `SyntheticEvent` with dispatched listeners. Creating this function
12053
+ * here, allows us to not have to bind or create functions for each event.
12054
+ * Mutating the event's members allows us to not have to create a wrapping
12055
+ * "dispatch" object that pairs the event with the listener.
12056
+ */
12057
+ function accumulateDirectionalDispatches(inst, phase, event) {
12058
+ if (true) {
12059
+ true ? warning(inst, 'Dispatching inst must not be null') : undefined;
12060
+ }
12061
+ var listener = listenerAtPhase(inst, event, phase);
12062
+ if (listener) {
12063
+ event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);
12064
+ event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);
12065
+ }
12066
+ }
12067
+
12068
+ /**
12069
+ * Collect dispatches (must be entirely collected before dispatching - see unit
12070
+ * tests). Lazily allocate the array to conserve memory. We must loop through
12071
+ * each event and perform the traversal for each one. We cannot perform a
12072
+ * single traversal for the entire collection of events because each event may
12073
+ * have a different target.
12074
+ */
12075
+ function accumulateTwoPhaseDispatchesSingle(event) {
12076
+ if (event && event.dispatchConfig.phasedRegistrationNames) {
12077
+ EventPluginUtils.traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);
12078
+ }
12079
+ }
12080
+
12081
+ /**
12082
+ * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID.
12083
+ */
12084
+ function accumulateTwoPhaseDispatchesSingleSkipTarget(event) {
12085
+ if (event && event.dispatchConfig.phasedRegistrationNames) {
12086
+ var targetInst = event._targetInst;
12087
+ var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null;
12088
+ EventPluginUtils.traverseTwoPhase(parentInst, accumulateDirectionalDispatches, event);
12089
+ }
12090
+ }
12091
+
12092
+ /**
12093
+ * Accumulates without regard to direction, does not look for phased
12094
+ * registration names. Same as `accumulateDirectDispatchesSingle` but without
12095
+ * requiring that the `dispatchMarker` be the same as the dispatched ID.
12096
+ */
12097
+ function accumulateDispatches(inst, ignoredDirection, event) {
12098
+ if (event && event.dispatchConfig.registrationName) {
12099
+ var registrationName = event.dispatchConfig.registrationName;
12100
+ var listener = getListener(inst, registrationName);
12101
+ if (listener) {
12102
+ event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);
12103
+ event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);
12104
+ }
12105
+ }
12106
+ }
12107
+
12108
+ /**
12109
+ * Accumulates dispatches on an `SyntheticEvent`, but only for the
12110
+ * `dispatchMarker`.
12111
+ * @param {SyntheticEvent} event
12112
+ */
12113
+ function accumulateDirectDispatchesSingle(event) {
12114
+ if (event && event.dispatchConfig.registrationName) {
12115
+ accumulateDispatches(event._targetInst, null, event);
12116
+ }
12117
+ }
12118
+
12119
+ function accumulateTwoPhaseDispatches(events) {
12120
+ forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);
12121
+ }
12122
+
12123
+ function accumulateTwoPhaseDispatchesSkipTarget(events) {
12124
+ forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget);
12125
+ }
12126
+
12127
+ function accumulateEnterLeaveDispatches(leave, enter, from, to) {
12128
+ EventPluginUtils.traverseEnterLeave(from, to, accumulateDispatches, leave, enter);
12129
+ }
12130
+
12131
+ function accumulateDirectDispatches(events) {
12132
+ forEachAccumulated(events, accumulateDirectDispatchesSingle);
12133
+ }
12134
+
12135
+ /**
12136
+ * A small set of propagation patterns, each of which will accept a small amount
12137
+ * of information, and generate a set of "dispatch ready event objects" - which
12138
+ * are sets of events that have already been annotated with a set of dispatched
12139
+ * listener functions/ids. The API is designed this way to discourage these
12140
+ * propagation strategies from actually executing the dispatches, since we
12141
+ * always want to collect the entire set of dispatches before executing event a
12142
+ * single one.
12143
+ *
12144
+ * @constructor EventPropagators
12145
+ */
12146
+ var EventPropagators = {
12147
+ accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,
12148
+ accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget,
12149
+ accumulateDirectDispatches: accumulateDirectDispatches,
12150
+ accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches
12151
+ };
12152
+
12153
+ module.exports = EventPropagators;
12154
+
12155
+ /***/ }),
12156
+
12157
+ /***/ "./node_modules/react-dom/lib/FallbackCompositionState.js":
12158
+ /*!****************************************************************!*\
12159
+ !*** ./node_modules/react-dom/lib/FallbackCompositionState.js ***!
12160
+ \****************************************************************/
12161
+ /*! no static exports found */
12162
+ /***/ (function(module, exports, __webpack_require__) {
12163
+
12164
+ "use strict";
12165
+ /**
12166
+ * Copyright (c) 2013-present, Facebook, Inc.
12167
+ *
12168
+ * This source code is licensed under the MIT license found in the
12169
+ * LICENSE file in the root directory of this source tree.
12170
+ *
12171
+ */
12172
+
12173
+
12174
+
12175
+ var _assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
12176
+
12177
+ var PooledClass = __webpack_require__(/*! ./PooledClass */ "./node_modules/react-dom/lib/PooledClass.js");
12178
+
12179
+ var getTextContentAccessor = __webpack_require__(/*! ./getTextContentAccessor */ "./node_modules/react-dom/lib/getTextContentAccessor.js");
12180
+
12181
+ /**
12182
+ * This helper class stores information about text content of a target node,
12183
+ * allowing comparison of content before and after a given event.
12184
+ *
12185
+ * Identify the node where selection currently begins, then observe
12186
+ * both its text content and its current position in the DOM. Since the
12187
+ * browser may natively replace the target node during composition, we can
12188
+ * use its position to find its replacement.
12189
+ *
12190
+ * @param {DOMEventTarget} root
12191
+ */
12192
+ function FallbackCompositionState(root) {
12193
+ this._root = root;
12194
+ this._startText = this.getText();
12195
+ this._fallbackText = null;
12196
+ }
12197
+
12198
+ _assign(FallbackCompositionState.prototype, {
12199
+ destructor: function () {
12200
+ this._root = null;
12201
+ this._startText = null;
12202
+ this._fallbackText = null;
12203
+ },
12204
+
12205
+ /**
12206
+ * Get current text of input.
12207
+ *
12208
+ * @return {string}
12209
+ */
12210
+ getText: function () {
12211
+ if ('value' in this._root) {
12212
+ return this._root.value;
12213
+ }
12214
+ return this._root[getTextContentAccessor()];
12215
+ },
12216
+
12217
+ /**
12218
+ * Determine the differing substring between the initially stored
12219
+ * text content and the current content.
12220
+ *
12221
+ * @return {string}
12222
+ */
12223
+ getData: function () {
12224
+ if (this._fallbackText) {
12225
+ return this._fallbackText;
12226
+ }
12227
+
12228
+ var start;
12229
+ var startValue = this._startText;
12230
+ var startLength = startValue.length;
12231
+ var end;
12232
+ var endValue = this.getText();
12233
+ var endLength = endValue.length;
12234
+
12235
+ for (start = 0; start < startLength; start++) {
12236
+ if (startValue[start] !== endValue[start]) {
12237
+ break;
12238
+ }
12239
+ }
12240
+
12241
+ var minEnd = startLength - start;
12242
+ for (end = 1; end <= minEnd; end++) {
12243
+ if (startValue[startLength - end] !== endValue[endLength - end]) {
12244
+ break;
12245
+ }
12246
+ }
12247
+
12248
+ var sliceTail = end > 1 ? 1 - end : undefined;
12249
+ this._fallbackText = endValue.slice(start, sliceTail);
12250
+ return this._fallbackText;
12251
+ }
12252
+ });
12253
+
12254
+ PooledClass.addPoolingTo(FallbackCompositionState);
12255
+
12256
+ module.exports = FallbackCompositionState;
12257
+
12258
+ /***/ }),
12259
+
12260
+ /***/ "./node_modules/react-dom/lib/HTMLDOMPropertyConfig.js":
12261
+ /*!*************************************************************!*\
12262
+ !*** ./node_modules/react-dom/lib/HTMLDOMPropertyConfig.js ***!
12263
+ \*************************************************************/
12264
+ /*! no static exports found */
12265
+ /***/ (function(module, exports, __webpack_require__) {
12266
+
12267
+ "use strict";
12268
+ /**
12269
+ * Copyright (c) 2013-present, Facebook, Inc.
12270
+ *
12271
+ * This source code is licensed under the MIT license found in the
12272
+ * LICENSE file in the root directory of this source tree.
12273
+ *
12274
+ */
12275
+
12276
+
12277
+
12278
+ var DOMProperty = __webpack_require__(/*! ./DOMProperty */ "./node_modules/react-dom/lib/DOMProperty.js");
12279
+
12280
+ var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;
12281
+ var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;
12282
+ var HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE;
12283
+ var HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE;
12284
+ var HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE;
12285
+
12286
+ var HTMLDOMPropertyConfig = {
12287
+ isCustomAttribute: RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$')),
12288
+ Properties: {
12289
+ /**
12290
+ * Standard Properties
12291
+ */
12292
+ accept: 0,
12293
+ acceptCharset: 0,
12294
+ accessKey: 0,
12295
+ action: 0,
12296
+ allowFullScreen: HAS_BOOLEAN_VALUE,
12297
+ allowTransparency: 0,
12298
+ alt: 0,
12299
+ // specifies target context for links with `preload` type
12300
+ as: 0,
12301
+ async: HAS_BOOLEAN_VALUE,
12302
+ autoComplete: 0,
12303
+ // autoFocus is polyfilled/normalized by AutoFocusUtils
12304
+ // autoFocus: HAS_BOOLEAN_VALUE,
12305
+ autoPlay: HAS_BOOLEAN_VALUE,
12306
+ capture: HAS_BOOLEAN_VALUE,
12307
+ cellPadding: 0,
12308
+ cellSpacing: 0,
12309
+ charSet: 0,
12310
+ challenge: 0,
12311
+ checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
12312
+ cite: 0,
12313
+ classID: 0,
12314
+ className: 0,
12315
+ cols: HAS_POSITIVE_NUMERIC_VALUE,
12316
+ colSpan: 0,
12317
+ content: 0,
12318
+ contentEditable: 0,
12319
+ contextMenu: 0,
12320
+ controls: HAS_BOOLEAN_VALUE,
12321
+ controlsList: 0,
12322
+ coords: 0,
12323
+ crossOrigin: 0,
12324
+ data: 0, // For `<object />` acts as `src`.
12325
+ dateTime: 0,
12326
+ 'default': HAS_BOOLEAN_VALUE,
12327
+ defer: HAS_BOOLEAN_VALUE,
12328
+ dir: 0,
12329
+ disabled: HAS_BOOLEAN_VALUE,
12330
+ download: HAS_OVERLOADED_BOOLEAN_VALUE,
12331
+ draggable: 0,
12332
+ encType: 0,
12333
+ form: 0,
12334
+ formAction: 0,
12335
+ formEncType: 0,
12336
+ formMethod: 0,
12337
+ formNoValidate: HAS_BOOLEAN_VALUE,
12338
+ formTarget: 0,
12339
+ frameBorder: 0,
12340
+ headers: 0,
12341
+ height: 0,
12342
+ hidden: HAS_BOOLEAN_VALUE,
12343
+ high: 0,
12344
+ href: 0,
12345
+ hrefLang: 0,
12346
+ htmlFor: 0,
12347
+ httpEquiv: 0,
12348
+ icon: 0,
12349
+ id: 0,
12350
+ inputMode: 0,
12351
+ integrity: 0,
12352
+ is: 0,
12353
+ keyParams: 0,
12354
+ keyType: 0,
12355
+ kind: 0,
12356
+ label: 0,
12357
+ lang: 0,
12358
+ list: 0,
12359
+ loop: HAS_BOOLEAN_VALUE,
12360
+ low: 0,
12361
+ manifest: 0,
12362
+ marginHeight: 0,
12363
+ marginWidth: 0,
12364
+ max: 0,
12365
+ maxLength: 0,
12366
+ media: 0,
12367
+ mediaGroup: 0,
12368
+ method: 0,
12369
+ min: 0,
12370
+ minLength: 0,
12371
+ // Caution; `option.selected` is not updated if `select.multiple` is
12372
+ // disabled with `removeAttribute`.
12373
+ multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
12374
+ muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
12375
+ name: 0,
12376
+ nonce: 0,
12377
+ noValidate: HAS_BOOLEAN_VALUE,
12378
+ open: HAS_BOOLEAN_VALUE,
12379
+ optimum: 0,
12380
+ pattern: 0,
12381
+ placeholder: 0,
12382
+ playsInline: HAS_BOOLEAN_VALUE,
12383
+ poster: 0,
12384
+ preload: 0,
12385
+ profile: 0,
12386
+ radioGroup: 0,
12387
+ readOnly: HAS_BOOLEAN_VALUE,
12388
+ referrerPolicy: 0,
12389
+ rel: 0,
12390
+ required: HAS_BOOLEAN_VALUE,
12391
+ reversed: HAS_BOOLEAN_VALUE,
12392
+ role: 0,
12393
+ rows: HAS_POSITIVE_NUMERIC_VALUE,
12394
+ rowSpan: HAS_NUMERIC_VALUE,
12395
+ sandbox: 0,
12396
+ scope: 0,
12397
+ scoped: HAS_BOOLEAN_VALUE,
12398
+ scrolling: 0,
12399
+ seamless: HAS_BOOLEAN_VALUE,
12400
+ selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
12401
+ shape: 0,
12402
+ size: HAS_POSITIVE_NUMERIC_VALUE,
12403
+ sizes: 0,
12404
+ span: HAS_POSITIVE_NUMERIC_VALUE,
12405
+ spellCheck: 0,
12406
+ src: 0,
12407
+ srcDoc: 0,
12408
+ srcLang: 0,
12409
+ srcSet: 0,
12410
+ start: HAS_NUMERIC_VALUE,
12411
+ step: 0,
12412
+ style: 0,
12413
+ summary: 0,
12414
+ tabIndex: 0,
12415
+ target: 0,
12416
+ title: 0,
12417
+ // Setting .type throws on non-<input> tags
12418
+ type: 0,
12419
+ useMap: 0,
12420
+ value: 0,
12421
+ width: 0,
12422
+ wmode: 0,
12423
+ wrap: 0,
12424
+
12425
+ /**
12426
+ * RDFa Properties
12427
+ */
12428
+ about: 0,
12429
+ datatype: 0,
12430
+ inlist: 0,
12431
+ prefix: 0,
12432
+ // property is also supported for OpenGraph in meta tags.
12433
+ property: 0,
12434
+ resource: 0,
12435
+ 'typeof': 0,
12436
+ vocab: 0,
12437
+
12438
+ /**
12439
+ * Non-standard Properties
12440
+ */
12441
+ // autoCapitalize and autoCorrect are supported in Mobile Safari for
12442
+ // keyboard hints.
12443
+ autoCapitalize: 0,
12444
+ autoCorrect: 0,
12445
+ // autoSave allows WebKit/Blink to persist values of input fields on page reloads
12446
+ autoSave: 0,
12447
+ // color is for Safari mask-icon link
12448
+ color: 0,
12449
+ // itemProp, itemScope, itemType are for
12450
+ // Microdata support. See http://schema.org/docs/gs.html
12451
+ itemProp: 0,
12452
+ itemScope: HAS_BOOLEAN_VALUE,
12453
+ itemType: 0,
12454
+ // itemID and itemRef are for Microdata support as well but
12455
+ // only specified in the WHATWG spec document. See
12456
+ // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api
12457
+ itemID: 0,
12458
+ itemRef: 0,
12459
+ // results show looking glass icon and recent searches on input
12460
+ // search fields in WebKit/Blink
12461
+ results: 0,
12462
+ // IE-only attribute that specifies security restrictions on an iframe
12463
+ // as an alternative to the sandbox attribute on IE<10
12464
+ security: 0,
12465
+ // IE-only attribute that controls focus behavior
12466
+ unselectable: 0
12467
+ },
12468
+ DOMAttributeNames: {
12469
+ acceptCharset: 'accept-charset',
12470
+ className: 'class',
12471
+ htmlFor: 'for',
12472
+ httpEquiv: 'http-equiv'
12473
+ },
12474
+ DOMPropertyNames: {},
12475
+ DOMMutationMethods: {
12476
+ value: function (node, value) {
12477
+ if (value == null) {
12478
+ return node.removeAttribute('value');
12479
+ }
12480
+
12481
+ // Number inputs get special treatment due to some edge cases in
12482
+ // Chrome. Let everything else assign the value attribute as normal.
12483
+ // https://github.com/facebook/react/issues/7253#issuecomment-236074326
12484
+ if (node.type !== 'number' || node.hasAttribute('value') === false) {
12485
+ node.setAttribute('value', '' + value);
12486
+ } else if (node.validity && !node.validity.badInput && node.ownerDocument.activeElement !== node) {
12487
+ // Don't assign an attribute if validation reports bad
12488
+ // input. Chrome will clear the value. Additionally, don't
12489
+ // operate on inputs that have focus, otherwise Chrome might
12490
+ // strip off trailing decimal places and cause the user's
12491
+ // cursor position to jump to the beginning of the input.
12492
+ //
12493
+ // In ReactDOMInput, we have an onBlur event that will trigger
12494
+ // this function again when focus is lost.
12495
+ node.setAttribute('value', '' + value);
12496
+ }
12497
+ }
12498
+ }
12499
+ };
12500
+
12501
+ module.exports = HTMLDOMPropertyConfig;
12502
+
12503
+ /***/ }),
12504
+
12505
+ /***/ "./node_modules/react-dom/lib/KeyEscapeUtils.js":
12506
+ /*!******************************************************!*\
12507
+ !*** ./node_modules/react-dom/lib/KeyEscapeUtils.js ***!
12508
+ \******************************************************/
12509
+ /*! no static exports found */
12510
+ /***/ (function(module, exports, __webpack_require__) {
12511
+
12512
+ "use strict";
12513
+ /**
12514
+ * Copyright (c) 2013-present, Facebook, Inc.
12515
+ *
12516
+ * This source code is licensed under the MIT license found in the
12517
+ * LICENSE file in the root directory of this source tree.
12518
+ *
12519
+ *
12520
+ */
12521
+
12522
+
12523
+
12524
+ /**
12525
+ * Escape and wrap key so it is safe to use as a reactid
12526
+ *
12527
+ * @param {string} key to be escaped.
12528
+ * @return {string} the escaped key.
12529
+ */
12530
+
12531
+ function escape(key) {
12532
+ var escapeRegex = /[=:]/g;
12533
+ var escaperLookup = {
12534
+ '=': '=0',
12535
+ ':': '=2'
12536
+ };
12537
+ var escapedString = ('' + key).replace(escapeRegex, function (match) {
12538
+ return escaperLookup[match];
12539
+ });
12540
+
12541
+ return '$' + escapedString;
12542
+ }
12543
+
12544
+ /**
12545
+ * Unescape and unwrap key for human-readable display
12546
+ *
12547
+ * @param {string} key to unescape.
12548
+ * @return {string} the unescaped key.
12549
+ */
12550
+ function unescape(key) {
12551
+ var unescapeRegex = /(=0|=2)/g;
12552
+ var unescaperLookup = {
12553
+ '=0': '=',
12554
+ '=2': ':'
12555
+ };
12556
+ var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);
12557
+
12558
+ return ('' + keySubstring).replace(unescapeRegex, function (match) {
12559
+ return unescaperLookup[match];
12560
+ });
12561
+ }
12562
+
12563
+ var KeyEscapeUtils = {
12564
+ escape: escape,
12565
+ unescape: unescape
12566
+ };
12567
+
12568
+ module.exports = KeyEscapeUtils;
12569
+
12570
+ /***/ }),
12571
+
12572
+ /***/ "./node_modules/react-dom/lib/LinkedValueUtils.js":
12573
+ /*!********************************************************!*\
12574
+ !*** ./node_modules/react-dom/lib/LinkedValueUtils.js ***!
12575
+ \********************************************************/
12576
+ /*! no static exports found */
12577
+ /***/ (function(module, exports, __webpack_require__) {
12578
+
12579
+ "use strict";
12580
+ /**
12581
+ * Copyright (c) 2013-present, Facebook, Inc.
12582
+ *
12583
+ * This source code is licensed under the MIT license found in the
12584
+ * LICENSE file in the root directory of this source tree.
12585
+ *
12586
+ */
12587
+
12588
+
12589
+
12590
+ var _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ "./node_modules/react-dom/lib/reactProdInvariant.js");
12591
+
12592
+ var ReactPropTypesSecret = __webpack_require__(/*! ./ReactPropTypesSecret */ "./node_modules/react-dom/lib/ReactPropTypesSecret.js");
12593
+ var propTypesFactory = __webpack_require__(/*! prop-types/factory */ "./node_modules/prop-types/factory.js");
12594
+
12595
+ var React = __webpack_require__(/*! react/lib/React */ "./node_modules/react/lib/React.js");
12596
+ var PropTypes = propTypesFactory(React.isValidElement);
12597
+
12598
+ var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js");
12599
+ var warning = __webpack_require__(/*! fbjs/lib/warning */ "./node_modules/fbjs/lib/warning.js");
12600
+
12601
+ var hasReadOnlyValue = {
12602
+ button: true,
12603
+ checkbox: true,
12604
+ image: true,
12605
+ hidden: true,
12606
+ radio: true,
12607
+ reset: true,
12608
+ submit: true
12609
+ };
12610
+
12611
+ function _assertSingleLink(inputProps) {
12612
+ !(inputProps.checkedLink == null || inputProps.valueLink == null) ? true ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use checkedLink, you probably don\'t want to use valueLink and vice versa.') : undefined : void 0;
12613
+ }
12614
+ function _assertValueLink(inputProps) {
12615
+ _assertSingleLink(inputProps);
12616
+ !(inputProps.value == null && inputProps.onChange == null) ? true ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want to use value or onChange, you probably don\'t want to use valueLink.') : undefined : void 0;
12617
+ }
12618
+
12619
+ function _assertCheckedLink(inputProps) {
12620
+ _assertSingleLink(inputProps);
12621
+ !(inputProps.checked == null && inputProps.onChange == null) ? true ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. If you want to use checked or onChange, you probably don\'t want to use checkedLink') : undefined : void 0;
12622
+ }
12623
+
12624
+ var propTypes = {
12625
+ value: function (props, propName, componentName) {
12626
+ if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) {
12627
+ return null;
12628
+ }
12629
+ return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');
12630
+ },
12631
+ checked: function (props, propName, componentName) {
12632
+ if (!props[propName] || props.onChange || props.readOnly || props.disabled) {
12633
+ return null;
12634
+ }
12635
+ return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');
12636
+ },
12637
+ onChange: PropTypes.func
12638
+ };
12639
+
12640
+ var loggedTypeFailures = {};
12641
+ function getDeclarationErrorAddendum(owner) {
12642
+ if (owner) {
12643
+ var name = owner.getName();
12644
+ if (name) {
12645
+ return ' Check the render method of `' + name + '`.';
12646
+ }
12647
+ }
12648
+ return '';
12649
+ }
12650
+
12651
+ /**
12652
+ * Provide a linked `value` attribute for controlled forms. You should not use
12653
+ * this outside of the ReactDOM controlled form components.
12654
+ */
12655
+ var LinkedValueUtils = {
12656
+ checkPropTypes: function (tagName, props, owner) {
12657
+ for (var propName in propTypes) {
12658
+ if (propTypes.hasOwnProperty(propName)) {
12659
+ var error = propTypes[propName](props, propName, tagName, 'prop', null, ReactPropTypesSecret);
12660
+ }
12661
+ if (error instanceof Error && !(error.message in loggedTypeFailures)) {
12662
+ // Only monitor this failure once because there tends to be a lot of the
12663
+ // same error.
12664
+ loggedTypeFailures[error.message] = true;
12665
+
12666
+ var addendum = getDeclarationErrorAddendum(owner);
12667
+ true ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : undefined;
12668
+ }
12669
+ }
12670
+ },
12671
+
12672
+ /**
12673
+ * @param {object} inputProps Props for form component
12674
+ * @return {*} current value of the input either from value prop or link.
12675
+ */
12676
+ getValue: function (inputProps) {
12677
+ if (inputProps.valueLink) {
12678
+ _assertValueLink(inputProps);
12679
+ return inputProps.valueLink.value;
12680
+ }
12681
+ return inputProps.value;
12682
+ },
12683
+
12684
+ /**
12685
+ * @param {object} inputProps Props for form component
12686
+ * @return {*} current checked status of the input either from checked prop
12687
+ * or link.
12688
+ */
12689
+ getChecked: function (inputProps) {
12690
+ if (inputProps.checkedLink) {
12691
+ _assertCheckedLink(inputProps);
12692
+ return inputProps.checkedLink.value;
12693
+ }
12694
+ return inputProps.checked;
12695
+ },
12696
+
12697
+ /**
12698
+ * @param {object} inputProps Props for form component
12699
+ * @param {SyntheticEvent} event change event to handle
12700
+ */
12701
+ executeOnChange: function (inputProps, event) {
12702
+ if (inputProps.valueLink) {
12703
+ _assertValueLink(inputProps);
12704
+ return inputProps.valueLink.requestChange(event.target.value);
12705
+ } else if (inputProps.checkedLink) {
12706
+ _assertCheckedLink(inputProps);
12707
+ return inputProps.checkedLink.requestChange(event.target.checked);
12708
+ } else if (inputProps.onChange) {
12709
+ return inputProps.onChange.call(undefined, event);
12710
+ }
12711
+ }
12712
+ };
12713
+
12714
+ module.exports = LinkedValueUtils;
12715
+
12716
+ /***/ }),
12717
+
12718
+ /***/ "./node_modules/react-dom/lib/PooledClass.js":
12719
+ /*!***************************************************!*\
12720
+ !*** ./node_modules/react-dom/lib/PooledClass.js ***!
12721
+ \***************************************************/
12722
+ /*! no static exports found */
12723
+ /***/ (function(module, exports, __webpack_require__) {
12724
+
12725
+ "use strict";
12726
+ /**
12727
+ * Copyright (c) 2013-present, Facebook, Inc.
12728
+ *
12729
+ * This source code is licensed under the MIT license found in the
12730
+ * LICENSE file in the root directory of this source tree.
12731
+ *
12732
+ *
12733
+ */
12734
+
12735
+
12736
+
12737
+ var _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ "./node_modules/react-dom/lib/reactProdInvariant.js");
12738
+
12739
+ var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js");
12740
+
12741
+ /**
12742
+ * Static poolers. Several custom versions for each potential number of
12743
+ * arguments. A completely generic pooler is easy to implement, but would
12744
+ * require accessing the `arguments` object. In each of these, `this` refers to
12745
+ * the Class itself, not an instance. If any others are needed, simply add them
12746
+ * here, or in their own files.
12747
+ */
12748
+ var oneArgumentPooler = function (copyFieldsFrom) {
12749
+ var Klass = this;
12750
+ if (Klass.instancePool.length) {
12751
+ var instance = Klass.instancePool.pop();
12752
+ Klass.call(instance, copyFieldsFrom);
12753
+ return instance;
12754
+ } else {
12755
+ return new Klass(copyFieldsFrom);
12756
+ }
12757
+ };
12758
+
12759
+ var twoArgumentPooler = function (a1, a2) {
12760
+ var Klass = this;
12761
+ if (Klass.instancePool.length) {
12762
+ var instance = Klass.instancePool.pop();
12763
+ Klass.call(instance, a1, a2);
12764
+ return instance;
12765
+ } else {
12766
+ return new Klass(a1, a2);
12767
+ }
12768
+ };
12769
+
12770
+ var threeArgumentPooler = function (a1, a2, a3) {
12771
+ var Klass = this;
12772
+ if (Klass.instancePool.length) {
12773
+ var instance = Klass.instancePool.pop();
12774
+ Klass.call(instance, a1, a2, a3);
12775
+ return instance;
12776
+ } else {
12777
+ return new Klass(a1, a2, a3);
12778
+ }
12779
+ };
12780
+
12781
+ var fourArgumentPooler = function (a1, a2, a3, a4) {
12782
+ var Klass = this;
12783
+ if (Klass.instancePool.length) {
12784
+ var instance = Klass.instancePool.pop();
12785
+ Klass.call(instance, a1, a2, a3, a4);
12786
+ return instance;
12787
+ } else {
12788
+ return new Klass(a1, a2, a3, a4);
12789
+ }
12790
+ };
12791
+
12792
+ var standardReleaser = function (instance) {
12793
+ var Klass = this;
12794
+ !(instance instanceof Klass) ? true ? invariant(false, 'Trying to release an instance into a pool of a different type.') : undefined : void 0;
12795
+ instance.destructor();
12796
+ if (Klass.instancePool.length < Klass.poolSize) {
12797
+ Klass.instancePool.push(instance);
12798
+ }
12799
+ };
12800
+
12801
+ var DEFAULT_POOL_SIZE = 10;
12802
+ var DEFAULT_POOLER = oneArgumentPooler;
12803
+
12804
+ /**
12805
+ * Augments `CopyConstructor` to be a poolable class, augmenting only the class
12806
+ * itself (statically) not adding any prototypical fields. Any CopyConstructor
12807
+ * you give this may have a `poolSize` property, and will look for a
12808
+ * prototypical `destructor` on instances.
12809
+ *
12810
+ * @param {Function} CopyConstructor Constructor that can be used to reset.
12811
+ * @param {Function} pooler Customizable pooler.
12812
+ */
12813
+ var addPoolingTo = function (CopyConstructor, pooler) {
12814
+ // Casting as any so that flow ignores the actual implementation and trusts
12815
+ // it to match the type we declared
12816
+ var NewKlass = CopyConstructor;
12817
+ NewKlass.instancePool = [];
12818
+ NewKlass.getPooled = pooler || DEFAULT_POOLER;
12819
+ if (!NewKlass.poolSize) {
12820
+ NewKlass.poolSize = DEFAULT_POOL_SIZE;
12821
+ }
12822
+ NewKlass.release = standardReleaser;
12823
+ return NewKlass;
12824
+ };
12825
+
12826
+ var PooledClass = {
12827
+ addPoolingTo: addPoolingTo,
12828
+ oneArgumentPooler: oneArgumentPooler,
12829
+ twoArgumentPooler: twoArgumentPooler,
12830
+ threeArgumentPooler: threeArgumentPooler,
12831
+ fourArgumentPooler: fourArgumentPooler
12832
+ };
12833
+
12834
+ module.exports = PooledClass;
12835
+
12836
+ /***/ }),
12837
+
12838
+ /***/ "./node_modules/react-dom/lib/ReactBrowserEventEmitter.js":
12839
+ /*!****************************************************************!*\
12840
+ !*** ./node_modules/react-dom/lib/ReactBrowserEventEmitter.js ***!
12841
+ \****************************************************************/
12842
+ /*! no static exports found */
12843
+ /***/ (function(module, exports, __webpack_require__) {
12844
+
12845
+ "use strict";
12846
+ /**
12847
+ * Copyright (c) 2013-present, Facebook, Inc.
12848
+ *
12849
+ * This source code is licensed under the MIT license found in the
12850
+ * LICENSE file in the root directory of this source tree.
12851
+ *
12852
+ */
12853
+
12854
+
12855
+
12856
+ var _assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
12857
+
12858
+ var EventPluginRegistry = __webpack_require__(/*! ./EventPluginRegistry */ "./node_modules/react-dom/lib/EventPluginRegistry.js");
12859
+ var ReactEventEmitterMixin = __webpack_require__(/*! ./ReactEventEmitterMixin */ "./node_modules/react-dom/lib/ReactEventEmitterMixin.js");
12860
+ var ViewportMetrics = __webpack_require__(/*! ./ViewportMetrics */ "./node_modules/react-dom/lib/ViewportMetrics.js");
12861
+
12862
+ var getVendorPrefixedEventName = __webpack_require__(/*! ./getVendorPrefixedEventName */ "./node_modules/react-dom/lib/getVendorPrefixedEventName.js");
12863
+ var isEventSupported = __webpack_require__(/*! ./isEventSupported */ "./node_modules/react-dom/lib/isEventSupported.js");
12864
+
12865
+ /**
12866
+ * Summary of `ReactBrowserEventEmitter` event handling:
12867
+ *
12868
+ * - Top-level delegation is used to trap most native browser events. This
12869
+ * may only occur in the main thread and is the responsibility of
12870
+ * ReactEventListener, which is injected and can therefore support pluggable
12871
+ * event sources. This is the only work that occurs in the main thread.
12872
+ *
12873
+ * - We normalize and de-duplicate events to account for browser quirks. This
12874
+ * may be done in the worker thread.
12875
+ *
12876
+ * - Forward these native events (with the associated top-level type used to
12877
+ * trap it) to `EventPluginHub`, which in turn will ask plugins if they want
12878
+ * to extract any synthetic events.
12879
+ *
12880
+ * - The `EventPluginHub` will then process each event by annotating them with
12881
+ * "dispatches", a sequence of listeners and IDs that care about that event.
12882
+ *
12883
+ * - The `EventPluginHub` then dispatches the events.
12884
+ *
12885
+ * Overview of React and the event system:
12886
+ *
12887
+ * +------------+ .
12888
+ * | DOM | .
12889
+ * +------------+ .
12890
+ * | .
12891
+ * v .
12892
+ * +------------+ .
12893
+ * | ReactEvent | .
12894
+ * | Listener | .
12895
+ * +------------+ . +-----------+
12896
+ * | . +--------+|SimpleEvent|
12897
+ * | . | |Plugin |
12898
+ * +-----|------+ . v +-----------+
12899
+ * | | | . +--------------+ +------------+
12900
+ * | +-----------.--->|EventPluginHub| | Event |
12901
+ * | | . | | +-----------+ | Propagators|
12902
+ * | ReactEvent | . | | |TapEvent | |------------|
12903
+ * | Emitter | . | |<---+|Plugin | |other plugin|
12904
+ * | | . | | +-----------+ | utilities |
12905
+ * | +-----------.--->| | +------------+
12906
+ * | | | . +--------------+
12907
+ * +-----|------+ . ^ +-----------+
12908
+ * | . | |Enter/Leave|
12909
+ * + . +-------+|Plugin |
12910
+ * +-------------+ . +-----------+
12911
+ * | application | .
12912
+ * |-------------| .
12913
+ * | | .
12914
+ * | | .
12915
+ * +-------------+ .
12916
+ * .
12917
+ * React Core . General Purpose Event Plugin System
12918
+ */
12919
+
12920
+ var hasEventPageXY;
12921
+ var alreadyListeningTo = {};
12922
+ var isMonitoringScrollValue = false;
12923
+ var reactTopListenersCounter = 0;
12924
+
12925
+ // For events like 'submit' which don't consistently bubble (which we trap at a
12926
+ // lower node than `document`), binding at `document` would cause duplicate
12927
+ // events so we don't include them here
12928
+ var topEventMapping = {
12929
+ topAbort: 'abort',
12930
+ topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend',
12931
+ topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration',
12932
+ topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart',
12933
+ topBlur: 'blur',
12934
+ topCanPlay: 'canplay',
12935
+ topCanPlayThrough: 'canplaythrough',
12936
+ topChange: 'change',
12937
+ topClick: 'click',
12938
+ topCompositionEnd: 'compositionend',
12939
+ topCompositionStart: 'compositionstart',
12940
+ topCompositionUpdate: 'compositionupdate',
12941
+ topContextMenu: 'contextmenu',
12942
+ topCopy: 'copy',
12943
+ topCut: 'cut',
12944
+ topDoubleClick: 'dblclick',
12945
+ topDrag: 'drag',
12946
+ topDragEnd: 'dragend',
12947
+ topDragEnter: 'dragenter',
12948
+ topDragExit: 'dragexit',
12949
+ topDragLeave: 'dragleave',
12950
+ topDragOver: 'dragover',
12951
+ topDragStart: 'dragstart',
12952
+ topDrop: 'drop',
12953
+ topDurationChange: 'durationchange',
12954
+ topEmptied: 'emptied',
12955
+ topEncrypted: 'encrypted',
12956
+ topEnded: 'ended',
12957
+ topError: 'error',
12958
+ topFocus: 'focus',
12959
+ topInput: 'input',
12960
+ topKeyDown: 'keydown',
12961
+ topKeyPress: 'keypress',
12962
+ topKeyUp: 'keyup',
12963
+ topLoadedData: 'loadeddata',
12964
+ topLoadedMetadata: 'loadedmetadata',
12965
+ topLoadStart: 'loadstart',
12966
+ topMouseDown: 'mousedown',
12967
+ topMouseMove: 'mousemove',
12968
+ topMouseOut: 'mouseout',
12969
+ topMouseOver: 'mouseover',
12970
+ topMouseUp: 'mouseup',
12971
+ topPaste: 'paste',
12972
+ topPause: 'pause',
12973
+ topPlay: 'play',
12974
+ topPlaying: 'playing',
12975
+ topProgress: 'progress',
12976
+ topRateChange: 'ratechange',
12977
+ topScroll: 'scroll',
12978
+ topSeeked: 'seeked',
12979
+ topSeeking: 'seeking',
12980
+ topSelectionChange: 'selectionchange',
12981
+ topStalled: 'stalled',
12982
+ topSuspend: 'suspend',
12983
+ topTextInput: 'textInput',
12984
+ topTimeUpdate: 'timeupdate',
12985
+ topTouchCancel: 'touchcancel',
12986
+ topTouchEnd: 'touchend',
12987
+ topTouchMove: 'touchmove',
12988
+ topTouchStart: 'touchstart',
12989
+ topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend',
12990
+ topVolumeChange: 'volumechange',
12991
+ topWaiting: 'waiting',
12992
+ topWheel: 'wheel'
12993
+ };
12994
+
12995
+ /**
12996
+ * To ensure no conflicts with other potential React instances on the page
12997
+ */
12998
+ var topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2);
12999
+
13000
+ function getListeningForDocument(mountAt) {
13001
+ // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`
13002
+ // directly.
13003
+ if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {
13004
+ mountAt[topListenersIDKey] = reactTopListenersCounter++;
13005
+ alreadyListeningTo[mountAt[topListenersIDKey]] = {};
13006
+ }
13007
+ return alreadyListeningTo[mountAt[topListenersIDKey]];
13008
+ }
13009
+
13010
+ /**
13011
+ * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For
13012
+ * example:
13013
+ *
13014
+ * EventPluginHub.putListener('myID', 'onClick', myFunction);
13015
+ *
13016
+ * This would allocate a "registration" of `('onClick', myFunction)` on 'myID'.
13017
+ *
13018
+ * @internal
13019
+ */
13020
+ var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {
13021
+ /**
13022
+ * Injectable event backend
13023
+ */
13024
+ ReactEventListener: null,
13025
+
13026
+ injection: {
13027
+ /**
13028
+ * @param {object} ReactEventListener
13029
+ */
13030
+ injectReactEventListener: function (ReactEventListener) {
13031
+ ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel);
13032
+ ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;
13033
+ }
13034
+ },
13035
+
13036
+ /**
13037
+ * Sets whether or not any created callbacks should be enabled.
13038
+ *
13039
+ * @param {boolean} enabled True if callbacks should be enabled.
13040
+ */
13041
+ setEnabled: function (enabled) {
13042
+ if (ReactBrowserEventEmitter.ReactEventListener) {
13043
+ ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);
13044
+ }
13045
+ },
13046
+
13047
+ /**
13048
+ * @return {boolean} True if callbacks are enabled.
13049
+ */
13050
+ isEnabled: function () {
13051
+ return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled());
13052
+ },
13053
+
13054
+ /**
13055
+ * We listen for bubbled touch events on the document object.
13056
+ *
13057
+ * Firefox v8.01 (and possibly others) exhibited strange behavior when
13058
+ * mounting `onmousemove` events at some node that was not the document
13059
+ * element. The symptoms were that if your mouse is not moving over something
13060
+ * contained within that mount point (for example on the background) the
13061
+ * top-level listeners for `onmousemove` won't be called. However, if you
13062
+ * register the `mousemove` on the document object, then it will of course
13063
+ * catch all `mousemove`s. This along with iOS quirks, justifies restricting
13064
+ * top-level listeners to the document object only, at least for these
13065
+ * movement types of events and possibly all events.
13066
+ *
13067
+ * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html
13068
+ *
13069
+ * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but
13070
+ * they bubble to document.
13071
+ *
13072
+ * @param {string} registrationName Name of listener (e.g. `onClick`).
13073
+ * @param {object} contentDocumentHandle Document which owns the container
13074
+ */
13075
+ listenTo: function (registrationName, contentDocumentHandle) {
13076
+ var mountAt = contentDocumentHandle;
13077
+ var isListening = getListeningForDocument(mountAt);
13078
+ var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];
13079
+
13080
+ for (var i = 0; i < dependencies.length; i++) {
13081
+ var dependency = dependencies[i];
13082
+ if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {
13083
+ if (dependency === 'topWheel') {
13084
+ if (isEventSupported('wheel')) {
13085
+ ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'wheel', mountAt);
13086
+ } else if (isEventSupported('mousewheel')) {
13087
+ ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'mousewheel', mountAt);
13088
+ } else {
13089
+ // Firefox needs to capture a different mouse scroll event.
13090
+ // @see http://www.quirksmode.org/dom/events/tests/scroll.html
13091
+ ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'DOMMouseScroll', mountAt);
13092
+ }
13093
+ } else if (dependency === 'topScroll') {
13094
+ if (isEventSupported('scroll', true)) {
13095
+ ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt);
13096
+ } else {
13097
+ ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);
13098
+ }
13099
+ } else if (dependency === 'topFocus' || dependency === 'topBlur') {
13100
+ if (isEventSupported('focus', true)) {
13101
+ ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt);
13102
+ ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topBlur', 'blur', mountAt);
13103
+ } else if (isEventSupported('focusin')) {
13104
+ // IE has `focusin` and `focusout` events which bubble.
13105
+ // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html
13106
+ ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topFocus', 'focusin', mountAt);
13107
+ ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topBlur', 'focusout', mountAt);
13108
+ }
13109
+
13110
+ // to make sure blur and focus event listeners are only attached once
13111
+ isListening.topBlur = true;
13112
+ isListening.topFocus = true;
13113
+ } else if (topEventMapping.hasOwnProperty(dependency)) {
13114
+ ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt);
13115
+ }
13116
+
13117
+ isListening[dependency] = true;
13118
+ }
13119
+ }
13120
+ },
13121
+
13122
+ trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {
13123
+ return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);
13124
+ },
13125
+
13126
+ trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {
13127
+ return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);
13128
+ },
13129
+
13130
+ /**
13131
+ * Protect against document.createEvent() returning null
13132
+ * Some popup blocker extensions appear to do this:
13133
+ * https://github.com/facebook/react/issues/6887
13134
+ */
13135
+ supportsEventPageXY: function () {
13136
+ if (!document.createEvent) {
13137
+ return false;
13138
+ }
13139
+ var ev = document.createEvent('MouseEvent');
13140
+ return ev != null && 'pageX' in ev;
13141
+ },
13142
+
13143
+ /**
13144
+ * Listens to window scroll and resize events. We cache scroll values so that
13145
+ * application code can access them without triggering reflows.
13146
+ *
13147
+ * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when
13148
+ * pageX/pageY isn't supported (legacy browsers).
13149
+ *
13150
+ * NOTE: Scroll events do not bubble.
13151
+ *
13152
+ * @see http://www.quirksmode.org/dom/events/scroll.html
13153
+ */
13154
+ ensureScrollValueMonitoring: function () {
13155
+ if (hasEventPageXY === undefined) {
13156
+ hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY();
13157
+ }
13158
+ if (!hasEventPageXY && !isMonitoringScrollValue) {
13159
+ var refresh = ViewportMetrics.refreshScrollValues;
13160
+ ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);
13161
+ isMonitoringScrollValue = true;
13162
+ }
13163
+ }
13164
+ });
13165
+
13166
+ module.exports = ReactBrowserEventEmitter;
13167
+
13168
+ /***/ }),
13169
+
13170
+ /***/ "./node_modules/react-dom/lib/ReactChildReconciler.js":
13171
+ /*!************************************************************!*\
13172
+ !*** ./node_modules/react-dom/lib/ReactChildReconciler.js ***!
13173
+ \************************************************************/
13174
+ /*! no static exports found */
13175
+ /***/ (function(module, exports, __webpack_require__) {
13176
+
13177
+ "use strict";
13178
+ /* WEBPACK VAR INJECTION */(function(process) {/**
13179
+ * Copyright (c) 2014-present, Facebook, Inc.
13180
+ *
13181
+ * This source code is licensed under the MIT license found in the
13182
+ * LICENSE file in the root directory of this source tree.
13183
+ *
13184
+ */
13185
+
13186
+
13187
+
13188
+ var ReactReconciler = __webpack_require__(/*! ./ReactReconciler */ "./node_modules/react-dom/lib/ReactReconciler.js");
13189
+
13190
+ var instantiateReactComponent = __webpack_require__(/*! ./instantiateReactComponent */ "./node_modules/react-dom/lib/instantiateReactComponent.js");
13191
+ var KeyEscapeUtils = __webpack_require__(/*! ./KeyEscapeUtils */ "./node_modules/react-dom/lib/KeyEscapeUtils.js");
13192
+ var shouldUpdateReactComponent = __webpack_require__(/*! ./shouldUpdateReactComponent */ "./node_modules/react-dom/lib/shouldUpdateReactComponent.js");
13193
+ var traverseAllChildren = __webpack_require__(/*! ./traverseAllChildren */ "./node_modules/react-dom/lib/traverseAllChildren.js");
13194
+ var warning = __webpack_require__(/*! fbjs/lib/warning */ "./node_modules/fbjs/lib/warning.js");
13195
+
13196
+ var ReactComponentTreeHook;
13197
+
13198
+ if (typeof process !== 'undefined' && Object({"NODE_ENV":"development"}) && "development" === 'test') {
13199
+ // Temporary hack.
13200
+ // Inline requires don't work well with Jest:
13201
+ // https://github.com/facebook/react/issues/7240
13202
+ // Remove the inline requires when we don't need them anymore:
13203
+ // https://github.com/facebook/react/pull/7178
13204
+ ReactComponentTreeHook = __webpack_require__(/*! react/lib/ReactComponentTreeHook */ "./node_modules/react/lib/ReactComponentTreeHook.js");
13205
+ }
13206
+
13207
+ function instantiateChild(childInstances, child, name, selfDebugID) {
13208
+ // We found a component instance.
13209
+ var keyUnique = childInstances[name] === undefined;
13210
+ if (true) {
13211
+ if (!ReactComponentTreeHook) {
13212
+ ReactComponentTreeHook = __webpack_require__(/*! react/lib/ReactComponentTreeHook */ "./node_modules/react/lib/ReactComponentTreeHook.js");
13213
+ }
13214
+ if (!keyUnique) {
13215
+ true ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : undefined;
13216
+ }
13217
+ }
13218
+ if (child != null && keyUnique) {
13219
+ childInstances[name] = instantiateReactComponent(child, true);
13220
+ }
13221
+ }
13222
+
13223
+ /**
13224
+ * ReactChildReconciler provides helpers for initializing or updating a set of
13225
+ * children. Its output is suitable for passing it onto ReactMultiChild which
13226
+ * does diffed reordering and insertion.
13227
+ */
13228
+ var ReactChildReconciler = {
13229
+ /**
13230
+ * Generates a "mount image" for each of the supplied children. In the case
13231
+ * of `ReactDOMComponent`, a mount image is a string of markup.
13232
+ *
13233
+ * @param {?object} nestedChildNodes Nested child maps.
13234
+ * @return {?object} A set of child instances.
13235
+ * @internal
13236
+ */
13237
+ instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID) // 0 in production and for roots
13238
+ {
13239
+ if (nestedChildNodes == null) {
13240
+ return null;
13241
+ }
13242
+ var childInstances = {};
13243
+
13244
+ if (true) {
13245
+ traverseAllChildren(nestedChildNodes, function (childInsts, child, name) {
13246
+ return instantiateChild(childInsts, child, name, selfDebugID);
13247
+ }, childInstances);
13248
+ } else {}
13249
+ return childInstances;
13250
+ },
13251
+
13252
+ /**
13253
+ * Updates the rendered children and returns a new set of children.
13254
+ *
13255
+ * @param {?object} prevChildren Previously initialized set of children.
13256
+ * @param {?object} nextChildren Flat child element maps.
13257
+ * @param {ReactReconcileTransaction} transaction
13258
+ * @param {object} context
13259
+ * @return {?object} A new set of child instances.
13260
+ * @internal
13261
+ */
13262
+ updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID) // 0 in production and for roots
13263
+ {
13264
+ // We currently don't have a way to track moves here but if we use iterators
13265
+ // instead of for..in we can zip the iterators and check if an item has
13266
+ // moved.
13267
+ // TODO: If nothing has changed, return the prevChildren object so that we
13268
+ // can quickly bailout if nothing has changed.
13269
+ if (!nextChildren && !prevChildren) {
13270
+ return;
13271
+ }
13272
+ var name;
13273
+ var prevChild;
13274
+ for (name in nextChildren) {
13275
+ if (!nextChildren.hasOwnProperty(name)) {
13276
+ continue;
13277
+ }
13278
+ prevChild = prevChildren && prevChildren[name];
13279
+ var prevElement = prevChild && prevChild._currentElement;
13280
+ var nextElement = nextChildren[name];
13281
+ if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) {
13282
+ ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context);
13283
+ nextChildren[name] = prevChild;
13284
+ } else {
13285
+ if (prevChild) {
13286
+ removedNodes[name] = ReactReconciler.getHostNode(prevChild);
13287
+ ReactReconciler.unmountComponent(prevChild, false);
13288
+ }
13289
+ // The child must be instantiated before it's mounted.
13290
+ var nextChildInstance = instantiateReactComponent(nextElement, true);
13291
+ nextChildren[name] = nextChildInstance;
13292
+ // Creating mount image now ensures refs are resolved in right order
13293
+ // (see https://github.com/facebook/react/pull/7101 for explanation).
13294
+ var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID);
13295
+ mountImages.push(nextChildMountImage);
13296
+ }
13297
+ }
13298
+ // Unmount children that are no longer present.
13299
+ for (name in prevChildren) {
13300
+ if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {
13301
+ prevChild = prevChildren[name];
13302
+ removedNodes[name] = ReactReconciler.getHostNode(prevChild);
13303
+ ReactReconciler.unmountComponent(prevChild, false);
13304
+ }
13305
+ }
13306
+ },
13307
+
13308
+ /**
13309
+ * Unmounts all rendered children. This should be used to clean up children
13310
+ * when this component is unmounted.
13311
+ *
13312
+ * @param {?object} renderedChildren Previously initialized set of children.
13313
+ * @internal
13314
+ */
13315
+ unmountChildren: function (renderedChildren, safely) {
13316
+ for (var name in renderedChildren) {
13317
+ if (renderedChildren.hasOwnProperty(name)) {
13318
+ var renderedChild = renderedChildren[name];
13319
+ ReactReconciler.unmountComponent(renderedChild, safely);
13320
+ }
13321
+ }
13322
+ }
13323
+ };
13324
+
13325
+ module.exports = ReactChildReconciler;
13326
+ /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ "./node_modules/process/browser.js")))
13327
+
13328
+ /***/ }),
13329
+
13330
+ /***/ "./node_modules/react-dom/lib/ReactComponentBrowserEnvironment.js":
13331
+ /*!************************************************************************!*\
13332
+ !*** ./node_modules/react-dom/lib/ReactComponentBrowserEnvironment.js ***!
13333
+ \************************************************************************/
13334
+ /*! no static exports found */
13335
+ /***/ (function(module, exports, __webpack_require__) {
13336
+
13337
+ "use strict";
13338
+ /**
13339
+ * Copyright (c) 2013-present, Facebook, Inc.
13340
+ *
13341
+ * This source code is licensed under the MIT license found in the
13342
+ * LICENSE file in the root directory of this source tree.
13343
+ *
13344
+ */
13345
+
13346
+
13347
+
13348
+ var DOMChildrenOperations = __webpack_require__(/*! ./DOMChildrenOperations */ "./node_modules/react-dom/lib/DOMChildrenOperations.js");
13349
+ var ReactDOMIDOperations = __webpack_require__(/*! ./ReactDOMIDOperations */ "./node_modules/react-dom/lib/ReactDOMIDOperations.js");
13350
+
13351
+ /**
13352
+ * Abstracts away all functionality of the reconciler that requires knowledge of
13353
+ * the browser context. TODO: These callers should be refactored to avoid the
13354
+ * need for this injection.
13355
+ */
13356
+ var ReactComponentBrowserEnvironment = {
13357
+ processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,
13358
+
13359
+ replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup
13360
+ };
13361
+
13362
+ module.exports = ReactComponentBrowserEnvironment;
13363
+
13364
+ /***/ }),
13365
+
13366
+ /***/ "./node_modules/react-dom/lib/ReactComponentEnvironment.js":
13367
+ /*!*****************************************************************!*\
13368
+ !*** ./node_modules/react-dom/lib/ReactComponentEnvironment.js ***!
13369
+ \*****************************************************************/
13370
+ /*! no static exports found */
13371
+ /***/ (function(module, exports, __webpack_require__) {
13372
+
13373
+ "use strict";
13374
+ /**
13375
+ * Copyright (c) 2014-present, Facebook, Inc.
13376
+ *
13377
+ * This source code is licensed under the MIT license found in the
13378
+ * LICENSE file in the root directory of this source tree.
13379
+ *
13380
+ *
13381
+ */
13382
+
13383
+
13384
+
13385
+ var _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ "./node_modules/react-dom/lib/reactProdInvariant.js");
13386
+
13387
+ var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js");
13388
+
13389
+ var injected = false;
13390
+
13391
+ var ReactComponentEnvironment = {
13392
+ /**
13393
+ * Optionally injectable hook for swapping out mount images in the middle of
13394
+ * the tree.
13395
+ */
13396
+ replaceNodeWithMarkup: null,
13397
+
13398
+ /**
13399
+ * Optionally injectable hook for processing a queue of child updates. Will
13400
+ * later move into MultiChildComponents.
13401
+ */
13402
+ processChildrenUpdates: null,
13403
+
13404
+ injection: {
13405
+ injectEnvironment: function (environment) {
13406
+ !!injected ? true ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : undefined : void 0;
13407
+ ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup;
13408
+ ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;
13409
+ injected = true;
13410
+ }
13411
+ }
13412
+ };
13413
+
13414
+ module.exports = ReactComponentEnvironment;
13415
+
13416
+ /***/ }),
13417
+
13418
+ /***/ "./node_modules/react-dom/lib/ReactCompositeComponent.js":
13419
+ /*!***************************************************************!*\
13420
+ !*** ./node_modules/react-dom/lib/ReactCompositeComponent.js ***!
13421
+ \***************************************************************/
13422
+ /*! no static exports found */
13423
+ /***/ (function(module, exports, __webpack_require__) {
13424
+
13425
+ "use strict";
13426
+ /**
13427
+ * Copyright (c) 2013-present, Facebook, Inc.
13428
+ *
13429
+ * This source code is licensed under the MIT license found in the
13430
+ * LICENSE file in the root directory of this source tree.
13431
+ *
13432
+ */
13433
+
13434
+
13435
+
13436
+ var _prodInvariant = __webpack_require__(/*! ./reactProdInvariant */ "./node_modules/react-dom/lib/reactProdInvariant.js"),
13437
+ _assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
13438
+
13439
+ var React = __webpack_require__(/*! react/lib/React */ "./node_modules/react/lib/React.js");
13440
+ var ReactComponentEnvironment = __webpack_require__(/*! ./ReactComponentEnvironment */ "./node_modules/react-dom/lib/ReactComponentEnvironment.js");
13441
+ var ReactCurrentOwner = __webpack_require__(/*! react/lib/ReactCurrentOwner */ "./node_modules/react/lib/ReactCurrentOwner.js");
13442
+ var ReactErrorUtils = __webpack_require__(/*! ./ReactErrorUtils */ "./node_modules/react-dom/lib/ReactErrorUtils.js");
13443
+ var ReactInstanceMap = __webpack_require__(/*! ./ReactInstanceMap */ "./node_modules/react-dom/lib/ReactInstanceMap.js");
13444
+ var ReactInstrumentation = __webpack_require__(/*! ./ReactInstrumentation */ "./node_modules/react-dom/lib/ReactInstrumentation.js");
13445
+ var ReactNodeTypes = __webpack_require__(/*! ./ReactNodeTypes */ "./node_modules/react-dom/lib/ReactNodeTypes.js");
13446
+ var ReactReconciler = __webpack_require__(/*! ./ReactReconciler */ "./node_modules/react-dom/lib/ReactReconciler.js");
13447
+
13448
+ if (true) {
13449
+ var checkReactTypeSpec = __webpack_require__(/*! ./checkReactTypeSpec */ "./node_modules/react-dom/lib/checkReactTypeSpec.js");
13450
+ }
13451
+
13452
+ var emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ "./node_modules/fbjs/lib/emptyObject.js");
13453
+ var invariant = __webpack_require__(/*! fbjs/lib/invariant */ "./node_modules/fbjs/lib/invariant.js");
13454
+ var shallowEqual = __webpack_require__(/*! fbjs/lib/shallowEqual */ "./node_modules/fbjs/lib/shallowEqual.js");
13455
+ var shouldUpdateReactComponent = __webpack_require__(/*! ./shouldUpdateReactComponent */ "./node_modules/react-dom/lib/shouldUpdateReactComponent.js");
13456
+ var warning = __webpack_require__(/*! fbjs/lib/warning */ "./node_modules/fbjs/lib/warning.js");
13457
+
13458
+ var CompositeTypes = {
13459
+ ImpureClass: 0,
13460
+ PureClass: 1,
13461
+ StatelessFunctional: 2
13462
+ };
13463
+
13464
+ function StatelessComponent(Component) {}
13465
+ StatelessComponent.prototype.render = function () {
13466
+ var Component = ReactInstanceMap.get(this)._currentElement.type;
13467
+ var element = Component(this.props, this.context, this.updater);
13468
+ warnIfInvalidElement(Component, element);
13469
+ return element;
13470
+ };
13471
+
13472
+ function warnIfInvalidElement(Component, element) {
13473
+ if (true) {
13474
+ true ? warning(element === null || element === false || React.isValidElement(element), '%s(...): A valid React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : undefined;
13475
+ true ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : undefined;
13476
+ }
13477
+ }
13478
+
13479
+ function shouldConstruct(Component) {
13480
+ return !!(Component.prototype && Component.prototype.isReactComponent);
13481
+ }
13482
+
13483
+ function isPureComponent(Component) {
13484
+ return !!(Component.prototype && Component.prototype.isPureReactComponent);
13485
+ }
13486
+
13487
+ // Separated into a function to contain deoptimizations caused by try/finally.
13488
+ function measureLifeCyclePerf(fn, debugID, timerType) {
13489
+ if (debugID === 0) {
13490
+ // Top-level wrappers (see ReactMount) and empty components (see
13491
+ // ReactDOMEmptyComponent) are invisible to hooks and devtools.
13492
+ // Both are implementation details that should go away in the future.
13493
+ return fn();
13494
+ }
13495
+
13496
+ ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType);
13497
+ try {
13498
+ return fn();
13499
+ } finally {
13500
+ ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType);
13501
+ }
13502
+ }
13503
+
13504
+ /**
13505
+ * ------------------ The Life-Cycle of a Composite Component ------------------
13506
+ *
13507
+ * - constructor: Initialization of state. The instance is now retained.
13508
+ * - componentWillMount
13509
+ * - render
13510
+ * - [children's constructors]
13511
+ * - [children's componentWillMount and render]
13512
+ * - [children's componentDidMount]
13513
+ * - componentDidMount
13514
+ *
13515
+ * Update Phases:
13516
+ * - componentWillReceiveProps (only called if parent updated)
13517
+ * - shouldComponentUpdate
13518
+ * - componentWillUpdate
13519
+ * - render
13520
+ * - [children's constructors or receive props phases]
13521
+ * - componentDidUpdate
13522
+ *
13523
+ * - componentWillUnmount
13524
+ * - [children's componentWillUnmount]
13525
+ * - [children destroyed]
13526
+ * - (destroyed): The instance is now blank, released by React and ready for GC.
13527
+ *
13528
+ * -----------------------------------------------------------------------------
13529
+ */
13530
+
13531
+ /**
13532
+ * An incrementing ID assigned to each component when it is mounted. This is
13533
+ * used to enforce the order in which `ReactUpdates` updates dirty components.
13534
+ *
13535
+ * @private
13536
+ */
13537
+ var nextMountID = 1;
13538
+
13539
+ /**
13540
+ * @lends {ReactCompositeComponent.prototype}
13541
+ */
13542
+ var ReactCompositeComponent = {
13543
+ /**
13544
+ * Base constructor for all composite component.
13545
+ *
13546
+ * @param {ReactElement} element
13547
+ * @final
13548
+ * @internal
13549
+ */
13550
+ construct: function (element) {
13551
+ this._currentElement = element;
13552
+ this._rootNodeID = 0;
13553
+ this._compositeType = null;
13554
+ this._instance = null;
13555
+ this._hostParent = null;
13556
+ this._hostContainerInfo = null;
13557
+
13558
+ // See ReactUpdateQueue
13559
+ this._updateBatchNumber = null;
13560
+ this._pendingElement = null;
13561
+ this._pendingStateQueue = null;
13562
+ this._pendingReplaceState = false;
13563
+ this._pendingForceUpdate = false;
13564
+
13565
+ this._renderedNodeType = null;
13566
+ this._renderedComponent = null;
13567
+ this._context = null;
13568
+ this._mountOrder = 0;
13569
+ this._topLevelWrapper = null;
13570
+
13571
+ // See ReactUpdates and ReactUpdateQueue.
13572
+ this._pendingCallbacks = null;
13573
+
13574
+ // ComponentWillUnmount shall only be called once
13575
+ this._calledComponentWillUnmount = false;
13576
+
13577
+ if (true) {
13578
+ this._warnedAboutRefsInRender = false;
13579
+ }
13580
+ },
13581
+
13582
+ /**
13583
+ * Initializes the component, renders markup, and registers event listeners.
13584
+ *
13585
+ * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
13586
+ * @param {?object} hostParent
13587
+ * @param {?object} hostContainerInfo
13588
+ * @param {?object} context
13589
+ * @return {?string} Rendered markup to be inserted into the DOM.
13590
+ * @final
13591
+ * @internal
13592
+ */
13593
+ mountComponent: function (transaction, hostParent, hostContainerInfo, context) {
13594
+ var _this = this;
13595
+
13596
+ this._context = context;
13597
+ this._mountOrder = nextMountID++;
13598
+ this._hostParent = hostParent;
13599
+ this._hostContainerInfo = hostContainerInfo;
13600
+
13601
+ var publicProps = this._currentElement.props;
13602
+ var publicContext = this._processContext(context);
13603
+
13604
+ var Component = this._currentElement.type;
13605
+
13606
+ var updateQueue = transaction.getUpdateQueue();
13607
+
13608
+ // Initialize the public class
13609
+ var doConstruct = shouldConstruct(Component);
13610
+ var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue);
13611
+ var renderedElement;
13612
+
13613
+ // Support functional components
13614
+ if (!doConstruct && (inst == null || inst.render == null)) {
13615
+ renderedElement = inst;
13616
+ warnIfInvalidElement(Component, renderedElement);
13617
+ !(inst === null || inst === false || React.isValidElement(inst)) ? true ? invariant(false, '%s(...): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : undefined : void 0;
13618
+ inst = new StatelessComponent(Component);
13619
+ this._compositeType = CompositeTypes.StatelessFunctional;
13620
+ } else {
13621
+ if (isPureComponent(Component)) {
13622
+ this._compositeType = CompositeTypes.PureClass;
13623
+ } else {
13624
+ this._compositeType = CompositeTypes.ImpureClass;
13625
+ }
13626
+ }
13627
+
13628
+ if (true) {
13629
+ // This will throw later in _renderValidatedComponent, but add an early
13630
+ // warning now to help debugging
13631
+ if (inst.render == null) {
13632
+ true ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', Component.displayName || Component.name || 'Component') : undefined;
13633
+ }
13634
+
13635
+ var propsMutated = inst.props !== publicProps;
13636
+ var componentName = Component.displayName || Component.name || 'Component';
13637
+
13638
+ true ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + "up the same props that your component's constructor was passed.", componentName, componentName) : undefined;
13639
+ }
13640
+
13641
+ // These should be set up in the constructor, but as a convenience for
13642
+ // simpler class abstractions, we set them up after the fact.
13643
+ inst.props = publicProps;
13644
+ inst.context = publicContext;
13645
+ inst.refs = emptyObject;
13646
+ inst.updater = updateQueue;
13647
+
13648
+ this._instance = inst;
13649
+
13650
+ // Store a reference from the instance back to the internal representation
13651
+ ReactInstanceMap.set(inst, this);
13652
+
13653
+ if (true) {
13654
+ // Since plain JS classes are defined without any special initialization
13655
+ // logic, we can not catch common errors early. Therefore, we have to
13656
+ // catch them here, at initialization time, instead.
13657
+ true ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved || inst.state, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : undefined;
13658
+ true ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : undefined;
13659
+ true ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : undefined;
13660
+ true ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : undefined;
13661
+ true ? warning(typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', this.getName() || 'A component') : undefined;
13662
+ true ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : undefined;
13663
+ true ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : undefined;
13664
+ }
13665
+
13666
+ var initialState = inst.state;
13667
+ if (initialState === undefined) {
13668
+ inst.state = initialState = null;
13669
+ }
13670
+ !(typeof initialState === 'object' && !Array.isArray(initialState)) ? true ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : undefined : void 0;
13671
+
13672
+ this._pendingStateQueue = null;
13673
+ this._pendingReplaceState = false;
13674
+ this._pendingForceUpdate = false;
13675
+
13676
+ var markup;
13677
+ if (inst.unstable_handleError) {
13678
+ markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context);
13679
+ } else {
13680
+ markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction,