jQuery Pin It Button for Images - Version 3.0.6

Version Description

  • Released 2020-09-30
  • Removed nags for review and pro version
Download this release

Release Info

Developer mrsztuczkens
Plugin Icon wp plugin jQuery Pin It Button for Images
Version 3.0.6
Comparing to
See all releases

Code changes from version 3.0.5 to 3.0.6

Files changed (37) hide show
  1. css/fonts/jpibfi-font.svg +14 -14
  2. includes/admin/JPIBFI_Welcome_Screen.php +139 -139
  3. includes/admin/includes/JPIBFI_Pro_Nag.php +0 -88
  4. includes/admin/includes/jpibfi_admin_notice.php +28 -28
  5. includes/admin/includes/jpibfi_ajax_result_builder.php +49 -49
  6. includes/admin/includes/jpibfi_nag.php +29 -29
  7. includes/admin/includes/jpibfi_review_nag.php +0 -71
  8. includes/admin/jpibfi-admin.php +178 -218
  9. includes/admin/settings/jpibfi-advanced-settings.php +100 -100
  10. includes/admin/settings/jpibfi-import-export-settings.php +139 -139
  11. includes/admin/settings/jpibfi-license-settings.php +0 -5
  12. includes/admin/settings/jpibfi-selection-settings.php +186 -186
  13. includes/admin/settings/jpibfi-settings-base.php +78 -81
  14. includes/admin/settings/jpibfi-visual-settings.php +218 -218
  15. includes/admin/settings/jpibfi_validator.php +162 -162
  16. includes/includes/JPIBFI_Version_Updater.php +27 -27
  17. includes/includes/jpibfi-edd-sl-plugin-updater.php +475 -475
  18. includes/includes/jpibfi-includes.php +20 -22
  19. includes/includes/jpibfi-updater.php +4 -5
  20. includes/includes/options/jpibfi-advanced-options.php +69 -69
  21. includes/includes/options/jpibfi-license-options.php +0 -3
  22. includes/includes/options/jpibfi-options.php +52 -52
  23. includes/includes/options/jpibfi-selection-options.php +37 -37
  24. includes/includes/options/jpibfi-visual-options.php +121 -121
  25. includes/includes/versions/JPIBFI_Version_Update_2_2_3.php +185 -186
  26. includes/jpibfi.php +41 -41
  27. includes/public/JPIBFI_Client_Helper.php +32 -32
  28. includes/public/class-jpibfi-client.php +308 -308
  29. index.php +1 -1
  30. jquery-pin-it-button-for-images.php +2 -2
  31. js/jpibfi.admin.js +1 -11
  32. js/jpibfi.client.js +1 -1
  33. languages/index.php +1 -1
  34. languages/jquery-pin-it-button-for-images-es_ES.pot +499 -499
  35. languages/jquery-pin-it-button-for-images.pot +153 -161
  36. readme.txt +606 -602
  37. uninstall.php +13 -13
css/fonts/jpibfi-font.svg CHANGED
@@ -1,15 +1,15 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
- <svg xmlns="http://www.w3.org/2000/svg">
4
- <metadata>Generated by IcoMoon</metadata>
5
- <defs>
6
- <font id="jpibfi-font" horiz-adv-x="1024">
7
- <font-face units-per-em="1024" ascent="960" descent="-64" />
8
- <missing-glyph horiz-adv-x="1024" />
9
- <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
- <glyph unicode="&#xe946;" glyph-name="pushpin" d="M544 960l-96-96 96-96-224-256h-224l176-176-272-360.616v-39.384h39.384l360.616 272 176-176v224l256 224 96-96 96 96-480 480zM448 416l-64 64 224 224 64-64-224-224z" />
11
- <glyph unicode="&#xead2;" glyph-name="pinterest2" d="M512 960c-282.4 0-512-229.6-512-512s229.6-512 512-512 512 229.6 512 512-229.6 512-512 512zM512 4.4c-45.8 0-89.8 7-131.4 19.8 18 29.4 45.2 77.8 55.2 116.2 5.4 20.8 27.6 105.4 27.6 105.4 14.4-27.6 56.8-51 101.6-51 133.8 0 230.2 123 230.2 276 0 146.6-119.6 256.2-273.4 256.2-191.4 0-293-128.6-293-268.4 0-65 34.6-146 90-171.8 8.4-4 12.8-2.2 14.8 6 1.4 6.2 9 36.2 12.4 50.4 1 4.4 0.6 8.4-3 12.8-18.4 22.2-33 63.2-33 101.2 0 97.8 74 192.6 200.2 192.6 109 0 185.2-74.2 185.2-180.4 0-120-60.6-203.2-139.4-203.2-43.6 0-76.2 36-65.6 80.2 12.6 52.8 36.8 109.6 36.8 147.6 0 34-18.2 62.4-56.2 62.4-44.6 0-80.2-46-80.2-107.8 0-39.2 13.2-65.8 13.2-65.8s-44-185.8-52-220.4c-9-38.4-5.4-92.2-1.6-127.2-165 64.4-282 224.8-282 412.8 0 245 198.6 443.6 443.6 443.6s443.6-198.6 443.6-443.6c0-245-198.6-443.6-443.6-443.6z" />
12
- <glyph unicode="&#xf08d;" glyph-name="thumb-tack" horiz-adv-x="658" d="M274.286 457.143v256q0 8-5.143 13.143t-13.143 5.143-13.143-5.143-5.143-13.143v-256q0-8 5.143-13.143t13.143-5.143 13.143 5.143 5.143 13.143zM658.286 256q0-14.857-10.857-25.714t-25.714-10.857h-245.143l-29.143-276q-1.143-6.857-6-11.714t-11.714-4.857h-0.571q-15.429 0-18.286 15.429l-43.429 277.143h-230.857q-14.857 0-25.714 10.857t-10.857 25.714q0 70.286 44.857 126.571t101.429 56.286v292.571q-29.714 0-51.429 21.714t-21.714 51.429 21.714 51.429 51.429 21.714h365.714q29.714 0 51.429-21.714t21.714-51.429-21.714-51.429-51.429-21.714v-292.571q56.571 0 101.429-56.286t44.857-126.571z" />
13
- <glyph unicode="&#xf0d2;" glyph-name="pinterest3" horiz-adv-x="878" d="M877.714 438.857q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857q-63.429 0-124.571 18.286 33.714 53.143 44.571 93.714 5.143 19.429 30.857 120.571 11.429-22.286 41.714-38.571t65.143-16.286q69.143 0 123.429 39.143t84 107.714 29.714 154.286q0 65.143-34 122.286t-98.571 93.143-145.714 36q-60 0-112-16.571t-88.286-44-62.286-63.143-38.286-74-12.286-76.571q0-59.429 22.857-104.571t66.857-63.429q17.143-6.857 21.714 11.429 1.143 4 4.571 17.714t4.571 17.143q3.429 13.143-6.286 24.571-29.143 34.857-29.143 86.286 0 86.286 59.714 148.286t156.286 62q86.286 0 134.571-46.857t48.286-121.714q0-97.143-39.143-165.143t-100.286-68q-34.857 0-56 24.857t-13.143 59.714q4.571 20 15.143 53.429t17.143 58.857 6.571 43.143q0 28.571-15.429 47.429t-44 18.857q-35.429 0-60-32.571t-24.571-81.143q0-41.714 14.286-69.714l-56.571-238.857q-9.714-40-7.429-101.143-117.714 52-190.286 160.571t-72.571 241.714q0 119.429 58.857 220.286t159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" />
14
- <glyph unicode="&#xf231;" glyph-name="pinterest-p" horiz-adv-x="731" d="M0 609.714q0 61.714 21.429 116.286t59.143 95.143 86.857 70.286 105.714 44.571 115.429 14.857q90.286 0 168-38t126.286-110.571 48.571-164q0-54.857-10.857-107.429t-34.286-101.143-57.143-85.429-82.857-58.857-108-22q-38.857 0-77.143 18.286t-54.857 50.286q-5.714-22.286-16-64.286t-13.429-54.286-11.714-40.571-14.857-40.571-18.286-35.714-26.286-44.286-35.429-49.429l-8-2.857-5.143 5.714q-8.571 89.714-8.571 107.429 0 52.571 12.286 118t38 164.286 29.714 116q-18.286 37.143-18.286 96.571 0 47.429 29.714 89.143t75.429 41.714q34.857 0 54.286-23.143t19.429-58.571q0-37.714-25.143-109.143t-25.143-106.857q0-36 25.714-59.714t62.286-23.714q31.429 0 58.286 14.286t44.857 38.857 32 54.286 21.714 63.143 11.429 63.429 3.714 56.857q0 98.857-62.571 154t-163.143 55.143q-114.286 0-190.857-74t-76.571-187.714q0-25.143 7.143-48.571t15.429-37.143 15.429-26 7.143-17.429q0-16-8.571-41.714t-21.143-25.714q-1.143 0-9.714 1.714-29.143 8.571-51.714 32t-34.857 54-18.571 61.714-6.286 60.857z" />
15
  </font></defs></svg>
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by IcoMoon</metadata>
5
+ <defs>
6
+ <font id="jpibfi-font" horiz-adv-x="1024">
7
+ <font-face units-per-em="1024" ascent="960" descent="-64" />
8
+ <missing-glyph horiz-adv-x="1024" />
9
+ <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
+ <glyph unicode="&#xe946;" glyph-name="pushpin" d="M544 960l-96-96 96-96-224-256h-224l176-176-272-360.616v-39.384h39.384l360.616 272 176-176v224l256 224 96-96 96 96-480 480zM448 416l-64 64 224 224 64-64-224-224z" />
11
+ <glyph unicode="&#xead2;" glyph-name="pinterest2" d="M512 960c-282.4 0-512-229.6-512-512s229.6-512 512-512 512 229.6 512 512-229.6 512-512 512zM512 4.4c-45.8 0-89.8 7-131.4 19.8 18 29.4 45.2 77.8 55.2 116.2 5.4 20.8 27.6 105.4 27.6 105.4 14.4-27.6 56.8-51 101.6-51 133.8 0 230.2 123 230.2 276 0 146.6-119.6 256.2-273.4 256.2-191.4 0-293-128.6-293-268.4 0-65 34.6-146 90-171.8 8.4-4 12.8-2.2 14.8 6 1.4 6.2 9 36.2 12.4 50.4 1 4.4 0.6 8.4-3 12.8-18.4 22.2-33 63.2-33 101.2 0 97.8 74 192.6 200.2 192.6 109 0 185.2-74.2 185.2-180.4 0-120-60.6-203.2-139.4-203.2-43.6 0-76.2 36-65.6 80.2 12.6 52.8 36.8 109.6 36.8 147.6 0 34-18.2 62.4-56.2 62.4-44.6 0-80.2-46-80.2-107.8 0-39.2 13.2-65.8 13.2-65.8s-44-185.8-52-220.4c-9-38.4-5.4-92.2-1.6-127.2-165 64.4-282 224.8-282 412.8 0 245 198.6 443.6 443.6 443.6s443.6-198.6 443.6-443.6c0-245-198.6-443.6-443.6-443.6z" />
12
+ <glyph unicode="&#xf08d;" glyph-name="thumb-tack" horiz-adv-x="658" d="M274.286 457.143v256q0 8-5.143 13.143t-13.143 5.143-13.143-5.143-5.143-13.143v-256q0-8 5.143-13.143t13.143-5.143 13.143 5.143 5.143 13.143zM658.286 256q0-14.857-10.857-25.714t-25.714-10.857h-245.143l-29.143-276q-1.143-6.857-6-11.714t-11.714-4.857h-0.571q-15.429 0-18.286 15.429l-43.429 277.143h-230.857q-14.857 0-25.714 10.857t-10.857 25.714q0 70.286 44.857 126.571t101.429 56.286v292.571q-29.714 0-51.429 21.714t-21.714 51.429 21.714 51.429 51.429 21.714h365.714q29.714 0 51.429-21.714t21.714-51.429-21.714-51.429-51.429-21.714v-292.571q56.571 0 101.429-56.286t44.857-126.571z" />
13
+ <glyph unicode="&#xf0d2;" glyph-name="pinterest3" horiz-adv-x="878" d="M877.714 438.857q0-119.429-58.857-220.286t-159.714-159.714-220.286-58.857q-63.429 0-124.571 18.286 33.714 53.143 44.571 93.714 5.143 19.429 30.857 120.571 11.429-22.286 41.714-38.571t65.143-16.286q69.143 0 123.429 39.143t84 107.714 29.714 154.286q0 65.143-34 122.286t-98.571 93.143-145.714 36q-60 0-112-16.571t-88.286-44-62.286-63.143-38.286-74-12.286-76.571q0-59.429 22.857-104.571t66.857-63.429q17.143-6.857 21.714 11.429 1.143 4 4.571 17.714t4.571 17.143q3.429 13.143-6.286 24.571-29.143 34.857-29.143 86.286 0 86.286 59.714 148.286t156.286 62q86.286 0 134.571-46.857t48.286-121.714q0-97.143-39.143-165.143t-100.286-68q-34.857 0-56 24.857t-13.143 59.714q4.571 20 15.143 53.429t17.143 58.857 6.571 43.143q0 28.571-15.429 47.429t-44 18.857q-35.429 0-60-32.571t-24.571-81.143q0-41.714 14.286-69.714l-56.571-238.857q-9.714-40-7.429-101.143-117.714 52-190.286 160.571t-72.571 241.714q0 119.429 58.857 220.286t159.714 159.714 220.286 58.857 220.286-58.857 159.714-159.714 58.857-220.286z" />
14
+ <glyph unicode="&#xf231;" glyph-name="pinterest-p" horiz-adv-x="731" d="M0 609.714q0 61.714 21.429 116.286t59.143 95.143 86.857 70.286 105.714 44.571 115.429 14.857q90.286 0 168-38t126.286-110.571 48.571-164q0-54.857-10.857-107.429t-34.286-101.143-57.143-85.429-82.857-58.857-108-22q-38.857 0-77.143 18.286t-54.857 50.286q-5.714-22.286-16-64.286t-13.429-54.286-11.714-40.571-14.857-40.571-18.286-35.714-26.286-44.286-35.429-49.429l-8-2.857-5.143 5.714q-8.571 89.714-8.571 107.429 0 52.571 12.286 118t38 164.286 29.714 116q-18.286 37.143-18.286 96.571 0 47.429 29.714 89.143t75.429 41.714q34.857 0 54.286-23.143t19.429-58.571q0-37.714-25.143-109.143t-25.143-106.857q0-36 25.714-59.714t62.286-23.714q31.429 0 58.286 14.286t44.857 38.857 32 54.286 21.714 63.143 11.429 63.429 3.714 56.857q0 98.857-62.571 154t-163.143 55.143q-114.286 0-190.857-74t-76.571-187.714q0-25.143 7.143-48.571t15.429-37.143 15.429-26 7.143-17.429q0-16-8.571-41.714t-21.143-25.714q-1.143 0-9.714 1.714-29.143 8.571-51.714 32t-34.857 54-18.571 61.714-6.286 60.857z" />
15
  </font></defs></svg>
includes/admin/JPIBFI_Welcome_Screen.php CHANGED
@@ -1,140 +1,140 @@
1
- <?php
2
- if ( ! defined( 'ABSPATH' ) ) {
3
- exit;
4
- }
5
-
6
- class JPIBFI_Welcome_Screen {
7
- private $minimum_capability = 'manage_options';
8
- private $transient_name = '_jpibfi_activation_redirect';
9
- private $plugin_name;
10
- private $file;
11
- private $version;
12
-
13
- function __construct( $file, $version ) {
14
- $this->file = $file;
15
- $this->version = $version;
16
-
17
- $this->plugin_name = 'jQuery Pin It Button for Images Lite';
18
- add_action( 'admin_menu', array( $this, 'admin_menus' ) );
19
- add_action( 'admin_init', array( $this, 'redirect' ), 11 );
20
- }
21
-
22
- public function admin_menus() {
23
- // About Page
24
- add_dashboard_page(
25
- __( 'Welcome to jQuery Pin It Button for Images', 'jquery-pin-it-button-for-images' ),
26
- __( 'Welcome to jQuery Pin It Button for Images', 'jquery-pin-it-button-for-images' ),
27
- $this->minimum_capability,
28
- 'jpibfi-welcome',
29
- array( $this, 'welcome_message' )
30
- );
31
-
32
- // Now remove them from the menus so plugins that allow customizing the admin menu don't show them
33
- remove_submenu_page( 'index.php', 'jpibfi-welcome' );
34
- }
35
-
36
- public function welcome_message() {
37
- ?>
38
- <div class="wrap about-wrap">
39
- <h1><?php printf( __( 'Welcome to %s&nbsp;%s', 'jquery-pin-it-button-for-images' ), $this->plugin_name, $this->version ); ?></h1>
40
-
41
- <p class="about-text"><?php printf( __( 'Thank you for updating to the latest version! %s helps your readers share your images using Pinterest.', 'jquery-pin-it-button-for-images' ), $this->plugin_name, $this->version ); ?></p>
42
-
43
- <hr/>
44
-
45
- <div class="feature-section one-col">
46
- <h2><?php _e( 'Settings', 'jquery-pin-it-button-for-images' ); ?></h2>
47
- <p class="lead-description"><?php _e( 'The most important part of the plugin is the settings panel.', 'jquery-pin-it-button-for-images' ); ?></p>
48
- </div>
49
-
50
- <div class="feature-section two-col">
51
- <div class="col">
52
- <h3><?php _e( 'Finding the settings panel', 'jquery-pin-it-button-for-images' ); ?></h3>
53
- <p><?php printf( __( 'You can find the plugin\'s settings panel in the <b>Settings</b> submenu under the name <b>%s</b>. There you can find all the settings the plugin allows you to adjust. All settings are divided into several tabs so you can find what you\'re looking for easily.', 'jquery-pin-it-button-for-images' ), $this->plugin_name ); ?></p>
54
- </div>
55
- <div class="col">
56
- <?php
57
- $file_name = 'settings_link.png';
58
- ?>
59
- <img src="<?php echo plugin_dir_url( $this->file ) . '/images/' . $file_name ?>"
60
- title="<?php _e( 'Settings link', 'jquery-pin-it-button-for-images' ); ?>"/>
61
- </div>
62
- </div>
63
- <div class="feature-section one-col">
64
- <h3><?php _e( 'Everything at hand', 'jquery-pin-it-button-for-images' ); ?></h3>
65
- <p style="margin-left: 0; margin-right: 0;"><?php _e( 'You can find all the links mentioned below in the settings panel.', 'jquery-pin-it-button-for-images' ); ?></p>
66
- <p style="text-align: center;"><img
67
- src="<?php echo plugin_dir_url( $this->file ) . '/images/settings_tabs.png' ?>"
68
- title="<?php _e( 'Settings tabs', 'jquery-pin-it-button-for-images' ); ?>"/>
69
- </p>
70
- </div>
71
- <div class="feature-section two-col">
72
- <div class="col">
73
- <h3><?php _e( 'Selection settings', 'jquery-pin-it-button-for-images' ); ?></h3>
74
- <p><?php _e( 'In this tab you choose which images should feature the "Pin it" button. You can choose images with specific classes or set up a minimum image resolution to prevent the button from showing up on small images. You can also choose on which pages the "Pin it" button should show up.', 'jquery-pin-it-button-for-images' ); ?></p>
75
- <?php printf( __( '<a href="%s" class="button button-primary">Go to Selection settings</a>', 'jquery-pin-it-button-for-images' ), admin_url( 'options-general.php?page=jpibfi_settings&tab=select' ) ); ?>
76
- </div>
77
- <div class="col">
78
- <h3><?php _e( 'Visual settings', 'jquery-pin-it-button-for-images' ); ?></h3>
79
- <p><?php _e( 'This tab helps you configure how the "Pin it" button looks like and where it appears. If you want to use your own "Pin it" icon or make the button show up in the upper right corner of the image, this is the tab you are looking for.', 'jquery-pin-it-button-for-images' ); ?></p>
80
- <?php printf( __( '<a href="%s" class="button button-primary">Go to Visual settings</a>', 'jquery-pin-it-button-for-images' ), admin_url( 'options-general.php?page=jpibfi_settings&tab=visual' ) ); ?>
81
- </div>
82
- </div>
83
- <div class="feature-section two-col">
84
- <div class="col">
85
- <h3><?php _e( 'Advanced settings', 'jquery-pin-it-button-for-images' ); ?></h3>
86
- <p><?php _e( 'In most cases you won\'t have to visit this tab ever. It features a few advanced settings used in most cases to resolve conflicts with other plugins.', 'jquery-pin-it-button-for-images' ); ?></p>
87
- <?php printf( __( '<a href="%s" class="button button-primary">Go to Advanced settings</a>', 'jquery-pin-it-button-for-images' ), admin_url( 'options-general.php?page=jpibfi_settings&tab=advanced' ) ); ?>
88
- </div>
89
- <div class="col">
90
- <h3><?php _e( 'Import/Export', 'jquery-pin-it-button-for-images' ); ?></h3>
91
- <p><?php _e( 'If you would like to quickly copy the plugin\'s settings to another instance of WordPress, that\'s the place for you. You can download a file with your current settings and import it to another instance easily.', 'jquery-pin-it-button-for-images' ); ?></p>
92
- <?php printf( __( '<a href="%s" class="button button-primary">Go to Import/Export</a>', 'jquery-pin-it-button-for-images' ), admin_url( 'options-general.php?page=jpibfi_settings&tab=import' ) ); ?>
93
- </div>
94
- </div>
95
-
96
- <hr/>
97
-
98
- <div class="feature-section one-col">
99
- <h2><?php _e( 'Finding help', 'jquery-pin-it-button-for-images' ); ?></h2>
100
- <p class="lead-description"><?php _e( 'If you\'re stuck and can\'t get the plugin to work the way you want it to, get help!', 'jquery-pin-it-button-for-images' ); ?></p>
101
- </div>
102
-
103
- <div class="feature-section two-col">
104
- <div class="col">
105
- <h3><?php _e( 'Documentation', 'jquery-pin-it-button-for-images' ); ?></h3>
106
- <p><?php printf( __( 'If you are having difficulties with some aspects of the plugin, the first place to look for help is <a href="%s" target="_blank">the documentation</a> of the plugin. Chances are you will find what you are looking for there.', 'jquery-pin-it-button-for-images' ), 'https://highfiveplugins.com/jpibfi/jquery-pin-it-button-for-images-documentation/' ); ?></p>
107
- </div>
108
- <div class="col">
109
- <h3><?php _e( 'Support', 'jquery-pin-it-button-for-images' ); ?></h3>
110
- <p><?php
111
- printf( __( 'Users of the free version of the plugin can find support <a href="%s" target="_blank">in the support forum</a>. When posting to the support forum, make sure you include the URL of your website.', 'jquery-pin-it-button-for-images' ), 'https://wordpress.org/support/plugin/jquery-pin-it-button-for-images' );
112
- ?></p>
113
- </div>
114
- </div>
115
- <hr />
116
- <div class="feature-section one-col">
117
- <h2><?php _e( 'Next steps', 'jquery-pin-it-button-for-images' ); ?></h2>
118
- <?php
119
- $next_steps_text = sprintf( __( 'In most cases, the plugin is ready to go without any configuration. If there is anything you would like to change, go to the <a href="%s">Settings panel</a>.', 'jquery-pin-it-button-for-images' ), admin_url( 'options-general.php?page=jpibfi_settings' ) );
120
- ?>
121
- <p class="lead-description"><?php echo $next_steps_text; ?></p>
122
- </div>
123
- </div>
124
- <?php
125
- }
126
-
127
- public function redirect() {
128
- if ( ! get_transient( $this->transient_name ) ) {
129
- return;
130
- }
131
- delete_transient( $this->transient_name );
132
-
133
- // Bail if activating from network, or bulk
134
- if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
135
- return;
136
- }
137
- wp_safe_redirect( admin_url( 'index.php?page=jpibfi-welcome' ) );
138
- exit;
139
- }
140
  }
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ class JPIBFI_Welcome_Screen {
7
+ private $minimum_capability = 'manage_options';
8
+ private $transient_name = '_jpibfi_activation_redirect';
9
+ private $plugin_name;
10
+ private $file;
11
+ private $version;
12
+
13
+ function __construct( $file, $version ) {
14
+ $this->file = $file;
15
+ $this->version = $version;
16
+
17
+ $this->plugin_name = 'jQuery Pin It Button for Images Lite';
18
+ add_action( 'admin_menu', array( $this, 'admin_menus' ) );
19
+ add_action( 'admin_init', array( $this, 'redirect' ), 11 );
20
+ }
21
+
22
+ public function admin_menus() {
23
+ // About Page
24
+ add_dashboard_page(
25
+ __( 'Welcome to jQuery Pin It Button for Images', 'jquery-pin-it-button-for-images' ),
26
+ __( 'Welcome to jQuery Pin It Button for Images', 'jquery-pin-it-button-for-images' ),
27
+ $this->minimum_capability,
28
+ 'jpibfi-welcome',
29
+ array( $this, 'welcome_message' )
30
+ );
31
+
32
+ // Now remove them from the menus so plugins that allow customizing the admin menu don't show them
33
+ remove_submenu_page( 'index.php', 'jpibfi-welcome' );
34
+ }
35
+
36
+ public function welcome_message() {
37
+ ?>
38
+ <div class="wrap about-wrap">
39
+ <h1><?php printf( __( 'Welcome to %s&nbsp;%s', 'jquery-pin-it-button-for-images' ), $this->plugin_name, $this->version ); ?></h1>
40
+
41
+ <p class="about-text"><?php printf( __( 'Thank you for updating to the latest version! %s helps your readers share your images using Pinterest.', 'jquery-pin-it-button-for-images' ), $this->plugin_name, $this->version ); ?></p>
42
+
43
+ <hr/>
44
+
45
+ <div class="feature-section one-col">
46
+ <h2><?php _e( 'Settings', 'jquery-pin-it-button-for-images' ); ?></h2>
47
+ <p class="lead-description"><?php _e( 'The most important part of the plugin is the settings panel.', 'jquery-pin-it-button-for-images' ); ?></p>
48
+ </div>
49
+
50
+ <div class="feature-section two-col">
51
+ <div class="col">
52
+ <h3><?php _e( 'Finding the settings panel', 'jquery-pin-it-button-for-images' ); ?></h3>
53
+ <p><?php printf( __( 'You can find the plugin\'s settings panel in the <b>Settings</b> submenu under the name <b>%s</b>. There you can find all the settings the plugin allows you to adjust. All settings are divided into several tabs so you can find what you\'re looking for easily.', 'jquery-pin-it-button-for-images' ), $this->plugin_name ); ?></p>
54
+ </div>
55
+ <div class="col">
56
+ <?php
57
+ $file_name = 'settings_link.png';
58
+ ?>
59
+ <img src="<?php echo plugin_dir_url( $this->file ) . '/images/' . $file_name ?>"
60
+ title="<?php _e( 'Settings link', 'jquery-pin-it-button-for-images' ); ?>"/>
61
+ </div>
62
+ </div>
63
+ <div class="feature-section one-col">
64
+ <h3><?php _e( 'Everything at hand', 'jquery-pin-it-button-for-images' ); ?></h3>
65
+ <p style="margin-left: 0; margin-right: 0;"><?php _e( 'You can find all the links mentioned below in the settings panel.', 'jquery-pin-it-button-for-images' ); ?></p>
66
+ <p style="text-align: center;"><img
67
+ src="<?php echo plugin_dir_url( $this->file ) . '/images/settings_tabs.png' ?>"
68
+ title="<?php _e( 'Settings tabs', 'jquery-pin-it-button-for-images' ); ?>"/>
69
+ </p>
70
+ </div>
71
+ <div class="feature-section two-col">
72
+ <div class="col">
73
+ <h3><?php _e( 'Selection settings', 'jquery-pin-it-button-for-images' ); ?></h3>
74
+ <p><?php _e( 'In this tab you choose which images should feature the "Pin it" button. You can choose images with specific classes or set up a minimum image resolution to prevent the button from showing up on small images. You can also choose on which pages the "Pin it" button should show up.', 'jquery-pin-it-button-for-images' ); ?></p>
75
+ <?php printf( __( '<a href="%s" class="button button-primary">Go to Selection settings</a>', 'jquery-pin-it-button-for-images' ), admin_url( 'options-general.php?page=jpibfi_settings&tab=select' ) ); ?>
76
+ </div>
77
+ <div class="col">
78
+ <h3><?php _e( 'Visual settings', 'jquery-pin-it-button-for-images' ); ?></h3>
79
+ <p><?php _e( 'This tab helps you configure how the "Pin it" button looks like and where it appears. If you want to use your own "Pin it" icon or make the button show up in the upper right corner of the image, this is the tab you are looking for.', 'jquery-pin-it-button-for-images' ); ?></p>
80
+ <?php printf( __( '<a href="%s" class="button button-primary">Go to Visual settings</a>', 'jquery-pin-it-button-for-images' ), admin_url( 'options-general.php?page=jpibfi_settings&tab=visual' ) ); ?>
81
+ </div>
82
+ </div>
83
+ <div class="feature-section two-col">
84
+ <div class="col">
85
+ <h3><?php _e( 'Advanced settings', 'jquery-pin-it-button-for-images' ); ?></h3>
86
+ <p><?php _e( 'In most cases you won\'t have to visit this tab ever. It features a few advanced settings used in most cases to resolve conflicts with other plugins.', 'jquery-pin-it-button-for-images' ); ?></p>
87
+ <?php printf( __( '<a href="%s" class="button button-primary">Go to Advanced settings</a>', 'jquery-pin-it-button-for-images' ), admin_url( 'options-general.php?page=jpibfi_settings&tab=advanced' ) ); ?>
88
+ </div>
89
+ <div class="col">
90
+ <h3><?php _e( 'Import/Export', 'jquery-pin-it-button-for-images' ); ?></h3>
91
+ <p><?php _e( 'If you would like to quickly copy the plugin\'s settings to another instance of WordPress, that\'s the place for you. You can download a file with your current settings and import it to another instance easily.', 'jquery-pin-it-button-for-images' ); ?></p>
92
+ <?php printf( __( '<a href="%s" class="button button-primary">Go to Import/Export</a>', 'jquery-pin-it-button-for-images' ), admin_url( 'options-general.php?page=jpibfi_settings&tab=import' ) ); ?>
93
+ </div>
94
+ </div>
95
+
96
+ <hr/>
97
+
98
+ <div class="feature-section one-col">
99
+ <h2><?php _e( 'Finding help', 'jquery-pin-it-button-for-images' ); ?></h2>
100
+ <p class="lead-description"><?php _e( 'If you\'re stuck and can\'t get the plugin to work the way you want it to, get help!', 'jquery-pin-it-button-for-images' ); ?></p>
101
+ </div>
102
+
103
+ <div class="feature-section two-col">
104
+ <div class="col">
105
+ <h3><?php _e( 'Documentation', 'jquery-pin-it-button-for-images' ); ?></h3>
106
+ <p><?php printf( __( 'If you are having difficulties with some aspects of the plugin, the first place to look for help is <a href="%s" target="_blank">the documentation</a> of the plugin. Chances are you will find what you are looking for there.', 'jquery-pin-it-button-for-images' ), 'https://highfiveplugins.com/jpibfi/jquery-pin-it-button-for-images-documentation/' ); ?></p>
107
+ </div>
108
+ <div class="col">
109
+ <h3><?php _e( 'Support', 'jquery-pin-it-button-for-images' ); ?></h3>
110
+ <p><?php
111
+ printf( __( 'Users of the free version of the plugin can find support <a href="%s" target="_blank">in the support forum</a>. When posting to the support forum, make sure you include the URL of your website.', 'jquery-pin-it-button-for-images' ), 'https://wordpress.org/support/plugin/jquery-pin-it-button-for-images' );
112
+ ?></p>
113
+ </div>
114
+ </div>
115
+ <hr />
116
+ <div class="feature-section one-col">
117
+ <h2><?php _e( 'Next steps', 'jquery-pin-it-button-for-images' ); ?></h2>
118
+ <?php
119
+ $next_steps_text = sprintf( __( 'In most cases, the plugin is ready to go without any configuration. If there is anything you would like to change, go to the <a href="%s">Settings panel</a>.', 'jquery-pin-it-button-for-images' ), admin_url( 'options-general.php?page=jpibfi_settings' ) );
120
+ ?>
121
+ <p class="lead-description"><?php echo $next_steps_text; ?></p>
122
+ </div>
123
+ </div>
124
+ <?php
125
+ }
126
+
127
+ public function redirect() {
128
+ if ( ! get_transient( $this->transient_name ) ) {
129
+ return;
130
+ }
131
+ delete_transient( $this->transient_name );
132
+
133
+ // Bail if activating from network, or bulk
134
+ if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
135
+ return;
136
+ }
137
+ wp_safe_redirect( admin_url( 'index.php?page=jpibfi-welcome' ) );
138
+ exit;
139
+ }
140
  }
includes/admin/includes/JPIBFI_Pro_Nag.php DELETED
@@ -1,88 +0,0 @@
1
- <?php
2
-
3
- require_once 'jpibfi_nag.php';
4
- class JPIBFI_Pro_Nag extends JPIBFI_Nag {
5
-
6
- private $plugin_name;
7
- private $pro_link;
8
- private $notice_key;
9
- private $notice_text;
10
-
11
- function __construct( $plugin_prefix, $plugin_name, $pro_link ) {
12
- parent::__construct( $plugin_prefix );
13
- $this->pro_link = $pro_link;
14
- $this->plugin_name = $plugin_name;
15
- $this->notice_key = $plugin_prefix . '_pro_notice_date';
16
-
17
- $this->notice_text = sprintf(
18
- __( "You've been using <b>%s</b> for quite some time now. How about checking out the Pro version? <a class='button button-primary' href='%s' target='_blank'>Yes, take me there &rarr;</a> <a class='button button-secondary' href='%s'>Thanks, but no thanks.</a>", 'jquery-pin-in-button-for-images' ),
19
- $plugin_name,
20
- $pro_link,
21
- '%s'
22
- );
23
-
24
- $this->setup();
25
- }
26
-
27
- public function setup() {
28
- if ( current_user_can( 'install_plugins' ) ) {
29
- $this->catch_hide_notice();
30
- add_action( 'admin_notices', array( $this, 'display_admin_notice' ) );
31
- }
32
- }
33
-
34
- private function catch_hide_notice() {
35
- if ( ! isset( $_GET[ $this->notice_key ] ) ) {
36
- return;
37
- }
38
- global $current_user;
39
-
40
- /* remove old user meta if it still exists */
41
- delete_user_meta($current_user->ID, $this->plugin_prefix . '_pro_notice');
42
-
43
- $datetime_install = $this->get_install_date();
44
- $next_date = $this->getNextNagDate( $datetime_install );
45
- update_user_meta( $current_user->ID, $this->notice_key, $next_date->format( 'Y-m-d' ) );
46
- wp_redirect( remove_query_arg( $this->notice_key ) );
47
- exit;
48
- }
49
-
50
- private function getNextNagDate($install_date) {
51
- $base_period = 45;
52
- $stages = array(
53
- new DateTime( '-180 days' ),
54
- new DateTime( '-365 days' ),
55
- new DateTime( '-730 days' ),
56
- new DateTime( '-1100 days' )
57
- );
58
-
59
- for( $i = count( $stages) - 1; $i >= 0; $i--) {
60
- if ( $install_date < $stages[ $i ] ) {
61
- return new DateTime( sprintf( '+%s days', ($i + 1) * $base_period ) );
62
- }
63
- }
64
- return new DateTime( '+30 days' );
65
- }
66
-
67
- /**
68
- * Display the admin notice
69
- */
70
- public function display_admin_notice() {
71
- $now = new DateTime();
72
- $current_user = wp_get_current_user();
73
- $notice_date_string = get_user_meta( $current_user->ID, $this->notice_key, true );
74
- $notice_date = '' == $notice_date_string
75
- ? $now
76
- : new DateTime( $notice_date_string );
77
-
78
- if ( $notice_date > $now ) {
79
- return;
80
- }
81
- ?>
82
- <div class="notice notice-info is-dismissible">
83
- <p><?php printf( $this->notice_text, add_query_arg( $this->notice_key, '1' ) ); ?></p>
84
- </div>
85
- <?php
86
- }
87
-
88
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/admin/includes/jpibfi_admin_notice.php CHANGED
@@ -1,29 +1,29 @@
1
- <?php
2
-
3
- class JPIBFI_Admin_Notice {
4
- private $type;
5
- private $is_dismissible;
6
- private $message;
7
-
8
-
9
- /**
10
- * JPIBFI_Admin_Notice constructor.
11
- *
12
- * @param $type string
13
- * @param $is_dismissible boolean
14
- * @param $message string
15
- */
16
- public function __construct($type, $is_dismissible, $message) {
17
- $this->type = $type;
18
- $this->is_dismissible = $is_dismissible;
19
- $this->message = $message;
20
- }
21
-
22
- function get_html() {
23
- $class = sprintf( 'notice%1$s%2$s',
24
- $this->is_dismissible ? ' is-dismissible' : '',
25
- ' notice-' . $this->type
26
- );
27
- return sprintf('<div class="%s"><p>%s</p></div>', $class, $this->message);
28
- }
29
  }
1
+ <?php
2
+
3
+ class JPIBFI_Admin_Notice {
4
+ private $type;
5
+ private $is_dismissible;
6
+ private $message;
7
+
8
+
9
+ /**
10
+ * JPIBFI_Admin_Notice constructor.
11
+ *
12
+ * @param $type string
13
+ * @param $is_dismissible boolean
14
+ * @param $message string
15
+ */
16
+ public function __construct($type, $is_dismissible, $message) {
17
+ $this->type = $type;
18
+ $this->is_dismissible = $is_dismissible;
19
+ $this->message = $message;
20
+ }
21
+
22
+ function get_html() {
23
+ $class = sprintf( 'notice%1$s%2$s',
24
+ $this->is_dismissible ? ' is-dismissible' : '',
25
+ ' notice-' . $this->type
26
+ );
27
+ return sprintf('<div class="%s"><p>%s</p></div>', $class, $this->message);
28
+ }
29
  }
includes/admin/includes/jpibfi_ajax_result_builder.php CHANGED
@@ -1,50 +1,50 @@
1
- <?php
2
-
3
- class JPIBFI_Ajax_Result_Builder {
4
-
5
- private $model;
6
- private $status;
7
- private $messages;
8
-
9
- function __construct() {
10
- $this->model = null;
11
- $this->messages = array();
12
- $this->status = 'OK';
13
- }
14
-
15
- function set_model($model) {
16
- $this->model = $model;
17
- return $this;
18
- }
19
-
20
- function set_error($error_msg, $error_msg_id = 'error') {
21
- $arr = array();
22
- $arr[$error_msg_id] = $error_msg;
23
- return $this->set_errors($arr);
24
- }
25
-
26
- function set_errors($errors) {
27
- $this->status = 'ERROR';
28
- $this->messages = $errors;
29
- return $this;
30
- }
31
-
32
- function set_message($msg, $msg_id = 'ok'){
33
- $this->messages = array($msg_id => $msg);
34
- return $this;
35
- }
36
-
37
- function build() {
38
- $res = array(
39
- 'status' => array(
40
- 'status' => $this->status,
41
- 'messages' => $this->messages
42
- )
43
- );
44
-
45
- if ($this->model != null)
46
- $res['model'] = $this->model;
47
-
48
- return $res;
49
- }
50
  }
1
+ <?php
2
+
3
+ class JPIBFI_Ajax_Result_Builder {
4
+
5
+ private $model;
6
+ private $status;
7
+ private $messages;
8
+
9
+ function __construct() {
10
+ $this->model = null;
11
+ $this->messages = array();
12
+ $this->status = 'OK';
13
+ }
14
+
15
+ function set_model($model) {
16
+ $this->model = $model;
17
+ return $this;
18
+ }
19
+
20
+ function set_error($error_msg, $error_msg_id = 'error') {
21
+ $arr = array();
22
+ $arr[$error_msg_id] = $error_msg;
23
+ return $this->set_errors($arr);
24
+ }
25
+
26
+ function set_errors($errors) {
27
+ $this->status = 'ERROR';
28
+ $this->messages = $errors;
29
+ return $this;
30
+ }
31
+
32
+ function set_message($msg, $msg_id = 'ok'){
33
+ $this->messages = array($msg_id => $msg);
34
+ return $this;
35
+ }
36
+
37
+ function build() {
38
+ $res = array(
39
+ 'status' => array(
40
+ 'status' => $this->status,
41
+ 'messages' => $this->messages
42
+ )
43
+ );
44
+
45
+ if ($this->model != null)
46
+ $res['model'] = $this->model;
47
+
48
+ return $res;
49
+ }
50
  }
includes/admin/includes/jpibfi_nag.php CHANGED
@@ -1,30 +1,30 @@
1
- <?php
2
-
3
- abstract class JPIBFI_Nag {
4
-
5
- protected $plugin_prefix;
6
- private $install_date_key;
7
-
8
- function __construct( $plugin_prefix ) {
9
- $this->plugin_prefix = $plugin_prefix;
10
- $this->install_date_key = $plugin_prefix . '_install_date';
11
- }
12
-
13
- protected function get_install_date() {
14
- $date_string = get_site_option( $this->install_date_key, '' );
15
- if ( $date_string == '' ) {
16
- $date_string = $this->insert_install_date();
17
- }
18
-
19
- return new DateTime( $date_string );
20
- }
21
-
22
- protected function insert_install_date() {
23
- $datetime_now = new DateTime();
24
- $date_string = $datetime_now->format( 'Y-m-d' );
25
- add_site_option( $this->install_date_key, $date_string );
26
-
27
- return $date_string;
28
- }
29
-
30
  }
1
+ <?php
2
+
3
+ abstract class JPIBFI_Nag {
4
+
5
+ protected $plugin_prefix;
6
+ private $install_date_key;
7
+
8
+ function __construct( $plugin_prefix ) {
9
+ $this->plugin_prefix = $plugin_prefix;
10
+ $this->install_date_key = $plugin_prefix . '_install_date';
11
+ }
12
+
13
+ protected function get_install_date() {
14
+ $date_string = get_site_option( $this->install_date_key, '' );
15
+ if ( $date_string == '' ) {
16
+ $date_string = $this->insert_install_date();
17
+ }
18
+
19
+ return new DateTime( $date_string );
20
+ }
21
+
22
+ protected function insert_install_date() {
23
+ $datetime_now = new DateTime();
24
+ $date_string = $datetime_now->format( 'Y-m-d' );
25
+ add_site_option( $this->install_date_key, $date_string );
26
+
27
+ return $date_string;
28
+ }
29
+
30
  }
includes/admin/includes/jpibfi_review_nag.php DELETED
@@ -1,71 +0,0 @@
1
- <?php
2
-
3
- require_once 'jpibfi_nag.php';
4
- /**
5
- * Class JPIBFI_Nag
6
- *
7
- * Heavily influenced by What The File Plugin
8
- * https://wordpress.org/plugins/what-the-file/
9
- */
10
- class JPIBFI_Review_Nag extends JPIBFI_Nag {
11
-
12
- private $notice_key;
13
- private $notice_text;
14
- private $notice_period;
15
-
16
- function __construct($plugin_prefix, $plugin_name, $review_link, $period = '-10 days') {
17
- parent::__construct( $plugin_prefix );
18
- $this->notice_key = $plugin_prefix . '_review_notice';
19
-
20
- $this->notice_text = sprintf(
21
- __( "You've been using <b>%s</b> for some time now, could you please give it a review at wordpress.org? <a class='button button-primary' href='%s' target='_blank'>Yes, take me there &rarr;</a> <a class='button button-secondary' href='%s'>I've already done this!</a>" ),
22
- $plugin_name,
23
- $review_link,
24
- '%s'
25
- );
26
- $this->notice_period = $period;
27
-
28
- $this->setup();
29
- }
30
-
31
- public function setup() {
32
- if ( current_user_can( 'install_plugins' ) ) {
33
- $this->catch_hide_notice();
34
- add_action( 'admin_notices', array( $this, 'display_admin_notice' ) );
35
- }
36
- }
37
-
38
- private function catch_hide_notice() {
39
- if ( ! isset( $_GET[ $this->notice_key ] ) ) {
40
- return;
41
- }
42
- global $current_user;
43
- add_user_meta( $current_user->ID, $this->notice_key, '1', true );
44
- wp_redirect( remove_query_arg( $this->notice_key ) );
45
- exit;
46
- }
47
-
48
- /**
49
- * Display the admin notice
50
- */
51
- public function display_admin_notice() {
52
- $current_user = wp_get_current_user();
53
- $hide_notice = get_user_meta( $current_user->ID, $this->notice_key, true );
54
-
55
- if ( '' != $hide_notice ) {
56
- return;
57
- }
58
-
59
- $datetime_install = $this->get_install_date();
60
- $datetime_past = new DateTime( $this->notice_period );
61
-
62
- if ( $datetime_past < $datetime_install ) {
63
- return;
64
- }
65
- ?>
66
- <div class="notice notice-info is-dismissible">
67
- <p><?php printf( $this->notice_text, add_query_arg( $this->notice_key, '1' ) ); ?></p>
68
- </div>
69
- <?php
70
- }
71
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/admin/jpibfi-admin.php CHANGED
@@ -1,219 +1,179 @@
1
- <?php
2
-
3
- class JPIBFI_Admin {
4
-
5
- private $file;
6
- private $version;
7
- private $save_settings_action;
8
- private $save_settings_tab;
9
-
10
- private $admin_screen_hook = '';
11
-
12
- /**
13
- * @var JPIBFI_Settings_Tab[]
14
- */
15
- private $tab_modules;
16
-
17
- function __construct( $file, $version ) {
18
- $this->file = $file;
19
- $this->version = $version;
20
-
21
- $this->tab_modules = array();
22
- $this->save_settings_action = 'jpibfi_save_settings';
23
- $this->save_settings_tab = 'jpibfi_save_settings_tab';
24
-
25
- $this->load_dependencies();
26
- $this->setup();
27
-
28
- add_action( 'admin_init', array( $this, 'save_settings' ) );
29
- add_action( 'admin_menu', array( $this, 'print_admin_page_action' ) );
30
- add_action( 'admin_enqueue_scripts', array( $this, 'add_admin_scripts' ) );
31
-
32
- $jpibfi_plugin = plugin_basename( $this->file );
33
- add_filter( "plugin_action_links_$jpibfi_plugin", array( $this, 'add_settings_link' ) );
34
- add_action( 'admin_init', array( $this, 'show_nags' ) );
35
- add_action( 'admin_notices', array( $this, 'show_ad' ), 11 );
36
- add_filter( 'plugin_row_meta', array( $this, 'plugin_meta_links' ), 10, 2 );
37
- }
38
-
39
- function add_settings_link( $links ) {
40
- $settings_link = '<a href="options-general.php?page=jpibfi_settings">' . __( 'Settings', 'jquery-pin-it-button-for-images' ) . '</a>';
41
- array_unshift( $links, $settings_link );
42
-
43
- return $links;
44
- }
45
-
46
- /**
47
- * @param $tab_module JPIBFI_Settings_Tab
48
- */
49
- private function add_tab_module( $tab_module ) {
50
- $this->tab_modules[ $tab_module->get_slug() ] = $tab_module;
51
- }
52
-
53
- private function load_dependencies() {
54
- $deps = array(
55
- 'JPIBFI_Welcome_Screen.php',
56
- 'includes/jpibfi_ajax_result_builder.php',
57
- 'includes/jpibfi_admin_notice.php',
58
- 'settings/jpibfi-settings-base.php',
59
- 'settings/jpibfi_validator.php',
60
- 'settings/jpibfi-import-export-settings.php',
61
- 'settings/jpibfi-selection-settings.php',
62
- 'settings/jpibfi-visual-settings.php',
63
- 'settings/jpibfi-advanced-settings.php',
64
- );
65
- foreach ( $deps as $dep ) {
66
- require_once $dep;
67
- }
68
- }
69
-
70
- private function setup() {
71
- $this->add_tab_module( new JPIBFI_Selection_Settings() );
72
- $this->add_tab_module( new JPIBFI_Visual_Settings() );
73
- $this->add_tab_module( new JPIBFI_Advanced_Settings() );
74
- $this->add_tab_module( new JPIBFI_Import_Export_Settings() );
75
-
76
- new JPIBFI_Welcome_Screen( $this->file, $this->version );
77
- }
78
-
79
- public function print_admin_page_action() {
80
-
81
- $name = 'jQuery Pin It Button For Images Lite';
82
-
83
- $this->admin_screen_hook = add_options_page(
84
- $name,
85
- $name,
86
- 'manage_options',
87
- 'jpibfi_settings',
88
- array( $this, 'print_admin_page' )
89
- );
90
- }
91
-
92
- public function add_admin_scripts( $hook ) {
93
- if ( $this->admin_screen_hook === $hook ) {
94
- $this->add_settings_scripts();
95
- }
96
- }
97
-
98
- private function add_settings_scripts() {
99
- $plugin_dir_url = plugin_dir_url( $this->file );
100
-
101
- wp_enqueue_style( 'jquery-pin-it-button-admin-style', $plugin_dir_url . 'css/admin.css', array(), $this->version, 'all' );
102
-
103
- $links = array(
104
- array(
105
- 'url' => 'https://highfiveplugins.com/jpibfi/jquery-pin-it-button-for-images-documentation/',
106
- 'label' => __( 'Documentation', 'jquery-pin-it-button-for-images' )
107
- ),
108
- array(
109
- 'url' => 'https://wordpress.org/support/plugin/jquery-pin-it-button-for-images',
110
- 'label' => __( 'Support', 'jquery-pin-it-button-for-images' )
111
- )
112
- );
113
-
114
-
115
- $slug = isset( $_GET['tab'] ) ? $_GET['tab'] : 'select';
116
- $tab_mod = $this->get_tab( $slug );
117
- $slug = $tab_mod->get_slug();
118
-
119
- $settings = array(
120
- 'tabs' => $this->get_tabs(),
121
- 'currentTab' => $slug,
122
- 'page' => 'jpibfi_settings',
123
- 'save' => array(
124
- 'post_url' => add_query_arg( array( 'tab' => $slug ) ),
125
- 'action' => $this->save_settings_action,
126
- 'nonce' => wp_create_nonce( $this->save_settings_action ),
127
- 'tab' => $this->save_settings_tab,
128
- 'submit' => __( 'Save Changes', 'jquery-pin-it-button-for-images' )
129
- ),
130
- 'links' => $links,
131
- 'settings' => $tab_mod->get_settings_configuration(),
132
- 'i18n' => array(
133
- 'editor' => $tab_mod->get_settings_i18n(),
134
- 'status' => array( 'pending' => __( 'Saving changes ...', 'jquery-pin-it-button-for-images' ) ),
135
- ),
136
- );
137
- $settings['version'] = 'lite';
138
- wp_enqueue_script( 'jpibfi', $plugin_dir_url . 'js/jpibfi.admin.js', array( 'jquery' ), $this->version, false );
139
- wp_localize_script( 'jpibfi', 'jpibfi_settings', $settings );
140
-
141
- if ( function_exists( "wp_enqueue_media" ) ) {
142
- wp_enqueue_media();
143
- }
144
- }
145
-
146
- private function get_tab( $tab_slug ) {
147
- return array_key_exists( $tab_slug, $this->tab_modules )
148
- ? $this->tab_modules[ $tab_slug ]
149
- : $this->tab_modules[ 'select' ];
150
- }
151
-
152
- private function get_tabs() {
153
- $res = array();
154
- foreach ( $this->tab_modules as $slug => $tab_module ) {
155
- $res[] = $tab_module->get_module_settings();
156
- }
157
-
158
- return $res;
159
- }
160
-
161
- public function print_admin_page() {
162
- ?>
163
- <div id="jpibfi-container" class="wrap">
164
- <h2><?php _e( 'jQuery Pin It Button For Images Options', 'jquery-pin-it-button-for-images' ); ?></h2>
165
- <div id="icon-plugins" class="icon32"></div>
166
- <jpibfi settings-name="jpibfi_settings"></jpibfi>
167
- <h3 id="jpibfi-error"><?php printf(__('If you cannot see the settings page, <a href="%s" target="_blank">click here</a>', 'jquery-pin-it-button-for-images'), 'https://highfiveplugins.com/jpibfi/jquery-pin-it-button-for-images-documentation/#Empty_settings_page'); ?></h3>
168
- </div>
169
- <?php
170
- }
171
-
172
-
173
- function save_settings() {
174
- $return_condition = ! isset( $_POST[ $this->save_settings_action ] ) ||
175
- ! wp_verify_nonce( $_POST[ $this->save_settings_action ], $this->save_settings_action );
176
- if ( $return_condition ) {
177
- return;
178
- }
179
- $tab = $_POST[ $this->save_settings_tab ];
180
- $module = $this->get_tab( $tab );
181
- $module->save_settings( $_POST );
182
- }
183
-
184
- function show_nags() {
185
- require_once 'includes/jpibfi_review_nag.php';
186
- new JPIBFI_Review_Nag( 'jpibfi', 'jQuery Pin It Button For Images', 'http://wordpress.org/support/view/plugin-reviews/jquery-pin-it-button-for-images', '-10 days' );
187
-
188
- require_once 'includes/JPIBFI_Pro_Nag.php';
189
- new JPIBFI_Pro_Nag( 'jpibfi', 'jQuery Pin It Button For Images', 'https://highfiveplugins.com/downloads/jquery-pin-it-button-for-images-pro/' );
190
-
191
- }
192
-
193
- public function show_ad() {
194
- global $hook_suffix;
195
- if ( $hook_suffix !== $this->admin_screen_hook ) {
196
- return;
197
- }
198
- ?>
199
- <div class="notice notice-success">
200
- <p>
201
- <?php printf(
202
- __( '<strong>jQuery Pin It Button for Images Pro</strong> is available. <a class="button button-primary" href="%1$s" target="_blank">Check it out &rarr;</a>', 'jquery-pin-it-button-for-images' ),
203
- 'https://highfiveplugins.com/downloads/jquery-pin-it-button-for-images-pro/'
204
- );
205
- ?>
206
- </p>
207
- </div>
208
- <?php
209
- }
210
-
211
- function plugin_meta_links( $links, $file ) {
212
- $plugin = plugin_basename( $this->file );
213
- if ( $file == $plugin ) {
214
- return array_merge( $links, array( '<a href="https://highfiveplugins.com/downloads/jquery-pin-it-button-for-images-pro/">jQuery Pin It Button for Images Pro</a>' ) );
215
- }
216
-
217
- return $links;
218
- }
219
  }
1
+ <?php
2
+
3
+ class JPIBFI_Admin {
4
+
5
+ private $file;
6
+ private $version;
7
+ private $save_settings_action;
8
+ private $save_settings_tab;
9
+
10
+ private $admin_screen_hook = '';
11
+
12
+ /**
13
+ * @var JPIBFI_Settings_Tab[]
14
+ */
15
+ private $tab_modules;
16
+
17
+ function __construct( $file, $version ) {
18
+ $this->file = $file;
19
+ $this->version = $version;
20
+
21
+ $this->tab_modules = array();
22
+ $this->save_settings_action = 'jpibfi_save_settings';
23
+ $this->save_settings_tab = 'jpibfi_save_settings_tab';
24
+
25
+ $this->load_dependencies();
26
+ $this->setup();
27
+
28
+ add_action( 'admin_init', array( $this, 'save_settings' ) );
29
+ add_action( 'admin_menu', array( $this, 'print_admin_page_action' ) );
30
+ add_action( 'admin_enqueue_scripts', array( $this, 'add_admin_scripts' ) );
31
+
32
+ $jpibfi_plugin = plugin_basename( $this->file );
33
+ add_filter( "plugin_action_links_$jpibfi_plugin", array( $this, 'add_settings_link' ) );
34
+ }
35
+
36
+ function add_settings_link( $links ) {
37
+ $settings_link = '<a href="options-general.php?page=jpibfi_settings">' . __( 'Settings', 'jquery-pin-it-button-for-images' ) . '</a>';
38
+ array_unshift( $links, $settings_link );
39
+
40
+ return $links;
41
+ }
42
+
43
+ /**
44
+ * @param $tab_module JPIBFI_Settings_Tab
45
+ */
46
+ private function add_tab_module( $tab_module ) {
47
+ $this->tab_modules[ $tab_module->get_slug() ] = $tab_module;
48
+ }
49
+
50
+ private function load_dependencies() {
51
+ $deps = array(
52
+ 'JPIBFI_Welcome_Screen.php',
53
+ 'includes/jpibfi_ajax_result_builder.php',
54
+ 'includes/jpibfi_admin_notice.php',
55
+ 'settings/jpibfi-settings-base.php',
56
+ 'settings/jpibfi_validator.php',
57
+ 'settings/jpibfi-import-export-settings.php',
58
+ 'settings/jpibfi-selection-settings.php',
59
+ 'settings/jpibfi-visual-settings.php',
60
+ 'settings/jpibfi-advanced-settings.php',
61
+ );
62
+ foreach ( $deps as $dep ) {
63
+ require_once $dep;
64
+ }
65
+ }
66
+
67
+ private function setup() {
68
+ $this->add_tab_module( new JPIBFI_Selection_Settings() );
69
+ $this->add_tab_module( new JPIBFI_Visual_Settings() );
70
+ $this->add_tab_module( new JPIBFI_Advanced_Settings() );
71
+ $this->add_tab_module( new JPIBFI_Import_Export_Settings() );
72
+
73
+ new JPIBFI_Welcome_Screen( $this->file, $this->version );
74
+ }
75
+
76
+ public function print_admin_page_action() {
77
+
78
+ $name = 'jQuery Pin It Button For Images Lite';
79
+
80
+ $this->admin_screen_hook = add_options_page(
81
+ $name,
82
+ $name,
83
+ 'manage_options',
84
+ 'jpibfi_settings',
85
+ array( $this, 'print_admin_page' )
86
+ );
87
+ }
88
+
89
+ public function add_admin_scripts( $hook ) {
90
+ if ( $this->admin_screen_hook === $hook ) {
91
+ $this->add_settings_scripts();
92
+ }
93
+ }
94
+
95
+ private function add_settings_scripts() {
96
+ $plugin_dir_url = plugin_dir_url( $this->file );
97
+
98
+ wp_enqueue_style( 'jquery-pin-it-button-admin-style', $plugin_dir_url . 'css/admin.css', array(), $this->version, 'all' );
99
+
100
+ $links = array(
101
+ array(
102
+ 'url' => 'https://highfiveplugins.com/jpibfi/jquery-pin-it-button-for-images-documentation/',
103
+ 'label' => __( 'Documentation', 'jquery-pin-it-button-for-images' )
104
+ ),
105
+ array(
106
+ 'url' => 'https://wordpress.org/support/plugin/jquery-pin-it-button-for-images',
107
+ 'label' => __( 'Support', 'jquery-pin-it-button-for-images' )
108
+ )
109
+ );
110
+
111
+ $slug = isset( $_GET['tab'] ) ? $_GET['tab'] : 'select';
112
+ $tab_mod = $this->get_tab( $slug );
113
+ $slug = $tab_mod->get_slug();
114
+
115
+ $settings = array(
116
+ 'tabs' => $this->get_tabs(),
117
+ 'currentTab' => $slug,
118
+ 'page' => 'jpibfi_settings',
119
+ 'save' => array(
120
+ 'post_url' => add_query_arg( array( 'tab' => $slug ) ),
121
+ 'action' => $this->save_settings_action,
122
+ 'nonce' => wp_create_nonce( $this->save_settings_action ),
123
+ 'tab' => $this->save_settings_tab,
124
+ 'submit' => __( 'Save Changes', 'jquery-pin-it-button-for-images' )
125
+ ),
126
+ 'links' => $links,
127
+ 'settings' => $tab_mod->get_settings_configuration(),
128
+ 'i18n' => array(
129
+ 'editor' => $tab_mod->get_settings_i18n(),
130
+ 'status' => array( 'pending' => __( 'Saving changes ...', 'jquery-pin-it-button-for-images' ) ),
131
+ ),
132
+ );
133
+ $settings['version'] = 'lite';
134
+ wp_enqueue_script( 'jpibfi', $plugin_dir_url . 'js/jpibfi.admin.js', array( 'jquery' ), $this->version, false );
135
+ wp_localize_script( 'jpibfi', 'jpibfi_settings', $settings );
136
+
137
+ if ( function_exists( "wp_enqueue_media" ) ) {
138
+ wp_enqueue_media();
139
+ }
140
+ }
141
+
142
+ private function get_tab( $tab_slug ) {
143
+ return array_key_exists( $tab_slug, $this->tab_modules )
144
+ ? $this->tab_modules[ $tab_slug ]
145
+ : $this->tab_modules[ 'select' ];
146
+ }
147
+
148
+ private function get_tabs() {
149
+ $res = array();
150
+ foreach ( $this->tab_modules as $slug => $tab_module ) {
151
+ $res[] = $tab_module->get_module_settings();
152
+ }
153
+
154
+ return $res;
155
+ }
156
+
157
+ public function print_admin_page() {
158
+ ?>
159
+ <div id="jpibfi-container" class="wrap">
160
+ <h2><?php _e( 'jQuery Pin It Button For Images Options', 'jquery-pin-it-button-for-images' ); ?></h2>
161
+ <div id="icon-plugins" class="icon32"></div>
162
+ <jpibfi settings-name="jpibfi_settings"></jpibfi>
163
+ <h3 id="jpibfi-error"><?php printf(__('If you cannot see the settings page, <a href="%s" target="_blank">click here</a>', 'jquery-pin-it-button-for-images'), 'https://highfiveplugins.com/jpibfi/jquery-pin-it-button-for-images-documentation/#Empty_settings_page'); ?></h3>
164
+ </div>
165
+ <?php
166
+ }
167
+
168
+
169
+ function save_settings() {
170
+ $return_condition = ! isset( $_POST[ $this->save_settings_action ] ) ||
171
+ ! wp_verify_nonce( $_POST[ $this->save_settings_action ], $this->save_settings_action );
172
+ if ( $return_condition ) {
173
+ return;
174
+ }
175
+ $tab = $_POST[ $this->save_settings_tab ];
176
+ $module = $this->get_tab( $tab );
177
+ $module->save_settings( $_POST );
178
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
179
  }
includes/admin/settings/jpibfi-advanced-settings.php CHANGED
@@ -1,101 +1,101 @@
1
- <?php
2
-
3
- class JPIBFI_Advanced_Settings extends JPIBFI_Settings_Base {
4
-
5
- function __construct() {
6
- parent::__construct( 'advanced', new JPIBFI_Advanced_Options() );
7
- }
8
-
9
- function get_settings_i18n() {
10
- $parent = parent::get_settings_i18n();
11
- $i18n = array();
12
- $i18n['title'] = __( 'Advanced settings', 'jquery-pin-it-button-for-images' );
13
- $i18n['filters_label'] = __( 'Filters', 'jquery-pin-it-button-for-images' );
14
- $i18n['filters_description'] =
15
- sprintf(
16
- __( 'You can enabled or disable if the plugin should use a certain filter and change the priority setting. Read more about filters <a href="%s" target="_blank">here</a>. By default all 3 filters are active with the priority of 10.', 'jquery-pin-it-button-for-images' ),
17
- 'https://codex.wordpress.org/Plugin_API'
18
- );
19
- $i18n['filter_template'] = __( '%name% with priority of %priority%', 'jquery-pin-it-button-for-images' );
20
-
21
- return array_merge( $parent, $i18n );
22
- }
23
-
24
- function get_module_settings() {
25
- return array(
26
- 'slug' => 'advanced',
27
- 'name' => __( 'Advanced', 'jquery-pin-it-button-for-images' ),
28
- );
29
- }
30
-
31
- function get_settings_configuration() {
32
-
33
- $option_value = $this->options->get();
34
- $res = array();
35
-
36
- $res['filter_the_content_on'] = array(
37
- 'key' => 'filter_the_content_on',
38
- 'text' => 'the_content',
39
- 'type' => 'boolean'
40
- );
41
-
42
- $res['filter_the_content_priority'] = array(
43
- 'key' => 'filter_the_content_priority',
44
- 'type' => 'int',
45
- 'error_label' => __( 'the_content priority', 'jquery-pin-it-button-for-images' )
46
- );
47
-
48
- $res['filter_the_excerpt_on'] = array(
49
- 'key' => 'filter_the_excerpt_on',
50
- 'text' => 'the_excerpt',
51
- 'type' => 'boolean'
52
- );
53
-
54
- $res['filter_the_excerpt_priority'] = array(
55
- 'key' => 'filter_the_excerpt_priority',
56
- 'type' => 'int',
57
- 'error_label' => __( 'the_excerpt priority', 'jquery-pin-it-button-for-images' )
58
- );
59
-
60
- $res['filter_post_thumbnail_html_on'] = array(
61
- 'key' => 'filter_post_thumbnail_html_on',
62
- 'text' => 'post_thumbnail_html',
63
- 'type' => 'boolean'
64
- );
65
-
66
- $res['filter_post_thumbnail_html_priority'] = array(
67
- 'key' => 'filter_post_thumbnail_html_priority',
68
- 'type' => 'int',
69
- 'error_label' => __( 'post_thumbnail_html priority', 'jquery-pin-it-button-for-images' )
70
- );
71
-
72
- $res['scroll_selector'] = array(
73
- 'key' => 'scroll_selector',
74
- 'type' => 'string',
75
- 'label' => __( 'Scroll selector', 'jquery-pin-it-button-for-images' ),
76
- 'desc' => __( 'Additional scroll selector for "Always" and "Always on touch devices" Show Button settings.', 'jquery-pin-it-button-for-images' )
77
- );
78
-
79
- $res['custom_css'] = array(
80
- 'key' => 'custom_css',
81
- 'type' => 'string',
82
- 'label' => __( 'Custom CSS', 'jquery-pin-it-button-for-images' ),
83
- 'desc' => __( 'Additional CSS that prevents the "Pin it" button from rendering incorrectly on some themes.', 'jquery-pin-it-button-for-images' )
84
- );
85
-
86
- $res['support_srcset'] = array(
87
- 'key' => 'support_srcset',
88
- 'label' => __( 'Support Srcset Attribute', 'jquery-pin-it-button-for-images' ),
89
- 'text' => __( 'Active', 'jquery-pin-it-button-for-images' ),
90
- 'desc' => __( 'When checked, the plugin will try to find the best quality image to pin using the srcset attribute generated by WordPress. Useful when you want people to pin bigger version of the image than you embed on the page.', 'jquery-pin-it-button-for-images' ),
91
- 'type' => 'boolean',
92
- );
93
-
94
-
95
- foreach ( $res as $key => $setting ) {
96
- $res[ $key ]['value'] = $option_value[ $key ];
97
- }
98
-
99
- return $res;
100
- }
101
  }
1
+ <?php
2
+
3
+ class JPIBFI_Advanced_Settings extends JPIBFI_Settings_Base {
4
+
5
+ function __construct() {
6
+ parent::__construct( 'advanced', new JPIBFI_Advanced_Options() );
7
+ }
8
+
9
+ function get_settings_i18n() {
10
+ $parent = parent::get_settings_i18n();
11
+ $i18n = array();
12
+ $i18n['title'] = __( 'Advanced settings', 'jquery-pin-it-button-for-images' );
13
+ $i18n['filters_label'] = __( 'Filters', 'jquery-pin-it-button-for-images' );
14
+ $i18n['filters_description'] =
15
+ sprintf(
16
+ __( 'You can enabled or disable if the plugin should use a certain filter and change the priority setting. Read more about filters <a href="%s" target="_blank">here</a>. By default all 3 filters are active with the priority of 10.', 'jquery-pin-it-button-for-images' ),
17
+ 'https://codex.wordpress.org/Plugin_API'
18
+ );
19
+ $i18n['filter_template'] = __( '%name% with priority of %priority%', 'jquery-pin-it-button-for-images' );
20
+
21
+ return array_merge( $parent, $i18n );
22
+ }
23
+
24
+ function get_module_settings() {
25
+ return array(
26
+ 'slug' => 'advanced',
27
+ 'name' => __( 'Advanced', 'jquery-pin-it-button-for-images' ),
28
+ );
29
+ }
30
+
31
+ function get_settings_configuration() {
32
+
33
+ $option_value = $this->options->get();
34
+ $res = array();
35
+
36
+ $res['filter_the_content_on'] = array(
37
+ 'key' => 'filter_the_content_on',
38
+ 'text' => 'the_content',
39
+ 'type' => 'boolean'
40
+ );
41
+
42
+ $res['filter_the_content_priority'] = array(
43
+ 'key' => 'filter_the_content_priority',
44
+ 'type' => 'int',
45
+ 'error_label' => __( 'the_content priority', 'jquery-pin-it-button-for-images' )
46
+ );
47
+
48
+ $res['filter_the_excerpt_on'] = array(
49
+ 'key' => 'filter_the_excerpt_on',
50
+ 'text' => 'the_excerpt',
51
+ 'type' => 'boolean'
52
+ );
53
+
54
+ $res['filter_the_excerpt_priority'] = array(
55
+ 'key' => 'filter_the_excerpt_priority',
56
+ 'type' => 'int',
57
+ 'error_label' => __( 'the_excerpt priority', 'jquery-pin-it-button-for-images' )
58
+ );
59
+
60
+ $res['filter_post_thumbnail_html_on'] = array(
61
+ 'key' => 'filter_post_thumbnail_html_on',
62
+ 'text' => 'post_thumbnail_html',
63
+ 'type' => 'boolean'
64
+ );
65
+
66
+ $res['filter_post_thumbnail_html_priority'] = array(
67
+ 'key' => 'filter_post_thumbnail_html_priority',
68
+ 'type' => 'int',
69
+ 'error_label' => __( 'post_thumbnail_html priority', 'jquery-pin-it-button-for-images' )
70
+ );
71
+
72
+ $res['scroll_selector'] = array(
73
+ 'key' => 'scroll_selector',
74
+ 'type' => 'string',
75
+ 'label' => __( 'Scroll selector', 'jquery-pin-it-button-for-images' ),
76
+ 'desc' => __( 'Additional scroll selector for "Always" and "Always on touch devices" Show Button settings.', 'jquery-pin-it-button-for-images' )
77
+ );
78
+
79
+ $res['custom_css'] = array(
80
+ 'key' => 'custom_css',
81
+ 'type' => 'string',
82
+ 'label' => __( 'Custom CSS', 'jquery-pin-it-button-for-images' ),
83
+ 'desc' => __( 'Additional CSS that prevents the "Pin it" button from rendering incorrectly on some themes.', 'jquery-pin-it-button-for-images' )
84
+ );
85
+
86
+ $res['support_srcset'] = array(
87
+ 'key' => 'support_srcset',
88
+ 'label' => __( 'Support Srcset Attribute', 'jquery-pin-it-button-for-images' ),
89
+ 'text' => __( 'Active', 'jquery-pin-it-button-for-images' ),
90
+ 'desc' => __( 'When checked, the plugin will try to find the best quality image to pin using the srcset attribute generated by WordPress. Useful when you want people to pin bigger version of the image than you embed on the page.', 'jquery-pin-it-button-for-images' ),
91
+ 'type' => 'boolean',
92
+ );
93
+
94
+
95
+ foreach ( $res as $key => $setting ) {
96
+ $res[ $key ]['value'] = $option_value[ $key ];
97
+ }
98
+
99
+ return $res;
100
+ }
101
  }
includes/admin/settings/jpibfi-import-export-settings.php CHANGED
@@ -1,140 +1,140 @@
1
- <?php
2
-
3
- class JPIBFI_Import_Export_Settings extends JPIBFI_Settings_Tab {
4
-
5
- private $ajax_import_action;
6
-
7
- private $options_to_import_export;
8
-
9
- function __construct() {
10
- parent::__construct( 'import' );
11
- $this->ajax_import_action = 'import';
12
- $this->options_to_import_export = array(
13
- 'jpibfi_selection_options',
14
- 'jpibfi_visual_options',
15
- 'jpibfi_advanced_options',
16
- 'jpibfi_version',
17
- );
18
- add_filter( 'export_args', array( $this, 'export_args' ) );
19
- add_action( 'export_wp', array( $this, 'export_wp' ) );
20
- }
21
-
22
- function import() {
23
- $file = wp_import_handle_upload();
24
-
25
- if ( isset( $file['error'] ) ) {
26
- $this->notices[] = new JPIBFI_Admin_Notice( 'error', true, esc_html( $file['error'] ) );
27
-
28
- return;
29
- }
30
-
31
- if ( ! isset( $file['file'], $file['id'] ) ) {
32
- $this->notices[] = new JPIBFI_Admin_Notice( 'error', true, __( 'The file did not upload properly. Please try again.', 'jquery-pin-it-button-for-images' ) );
33
-
34
- return;
35
- }
36
-
37
- if ( ! file_exists( $file['file'] ) ) {
38
- wp_import_cleanup( $file['id'] );
39
-
40
- $this->notices[] = new JPIBFI_Admin_Notice( 'error', true, sprintf( __( 'The export file could not be found at <code>%s</code>. It is likely that this was caused by a permissions problem.', 'jquery-pin-it-button-for-images' ), esc_html( $file['file'] ) ) );
41
-
42
- return;
43
- }
44
-
45
- if ( ! is_file( $file['file'] ) ) {
46
- wp_import_cleanup( $file['id'] );
47
- $this->notices[] = new JPIBFI_Admin_Notice( 'error', true, __( 'The path is not a file, please try again.', 'jquery-pin-it-button-for-images' ) );
48
-
49
- return;
50
- }
51
-
52
- $file_contents = file_get_contents( $file['file'] );
53
- $data = json_decode( $file_contents, true );
54
- wp_import_cleanup( $file['id'] );
55
-
56
- $options_to_import = $data['options'];
57
- foreach ( (array) $options_to_import as $option_name => $option_value ) {
58
- $options_to_import[ $option_name ] = maybe_unserialize( $option_value );
59
- }
60
- $options_to_import[ 'jpibfi_version' ] = ! isset( $options_to_import[ 'jpibfi_version' ] ) ? '2.2.2' : $options_to_import[ 'jpibfi_version' ];
61
-
62
- foreach ( $this->options_to_import_export as $option_name ) {
63
- if ( isset( $options_to_import[ $option_name ] ) ) {
64
- update_option( $option_name, $options_to_import[ $option_name] );
65
- }
66
- }
67
-
68
- $this->notices[] = new JPIBFI_Admin_Notice( 'success', true, __( 'Import Successful', 'jquery_pin_it_button_for_images' ) );
69
- }
70
-
71
- function get_settings_i18n() {
72
- $parent = parent::get_settings_i18n();
73
- $i18n = array();
74
- $i18n['export_title'] = __( 'Export', 'jquery-pin-it-button-for-images' );
75
- $i18n['export_url'] = admin_url( 'export.php?download=true&content=jpibfi' );
76
- $i18n['export_button_text'] = __( 'Download Export File', 'jquery-pin-it-button-for-images' );
77
-
78
- $i18n['import_title'] = __( 'Import', 'jquery-pin-it-button-for-images' );
79
- $i18n['import_button_text'] = __( 'Import Settings', 'jquery-pin-it-button-for-images' );
80
- $i18n['import_action_name'] = $this->ajax_import_action;
81
-
82
- return array_merge( $parent, $i18n );
83
- }
84
-
85
- function get_module_settings() {
86
- return array(
87
- 'slug' => 'import',
88
- 'name' => __( 'Import/Export', 'jquery-pin-it-button-for-images' ),
89
- );
90
- }
91
-
92
- /**
93
- * @param array $args The export args being filtered.
94
- *
95
- * @return array The (possibly modified) export args.
96
- */
97
- public function export_args( $args ) {
98
- if ( ! empty( $_GET['content'] ) && 'jpibfi' == $_GET['content'] ) {
99
- return array( 'jpibfi' => true );
100
- }
101
-
102
- return $args;
103
- }
104
-
105
-
106
- /**
107
- * Export options as a JSON file if that's what the user wants to do.
108
- *
109
- * @param array $args The export arguments.
110
- *
111
- * @return void
112
- */
113
- public function export_wp( $args ) {
114
- if ( empty( $args['jpibfi'] ) ) {
115
- return;
116
- }
117
-
118
- $filename = 'jpibfi_settings_' . date( 'Y-m-d' ) . '.json';
119
-
120
- header( 'Content-Description: File Transfer' );
121
- header( 'Content-Disposition: attachment; filename=' . $filename );
122
- header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ), true );
123
-
124
- $export_options = array();
125
- foreach ( $this->options_to_import_export as $option_name ) {
126
- $option_value = get_option( $option_name );
127
- if (false !== $option_value ) {
128
- $export_options[ $option_name ] = maybe_serialize( $option_value );
129
- }
130
- }
131
-
132
- $JSON_PRETTY_PRINT = defined( 'JSON_PRETTY_PRINT' ) ? JSON_PRETTY_PRINT : null;
133
- echo json_encode( array( 'options' => $export_options ), $JSON_PRETTY_PRINT );
134
- exit;
135
- }
136
-
137
- public function save_settings( $settings ) {
138
- $this->import();
139
- }
140
  }
1
+ <?php
2
+
3
+ class JPIBFI_Import_Export_Settings extends JPIBFI_Settings_Tab {
4
+
5
+ private $ajax_import_action;
6
+
7
+ private $options_to_import_export;
8
+
9
+ function __construct() {
10
+ parent::__construct( 'import' );
11
+ $this->ajax_import_action = 'import';
12
+ $this->options_to_import_export = array(
13
+ 'jpibfi_selection_options',
14
+ 'jpibfi_visual_options',
15
+ 'jpibfi_advanced_options',
16
+ 'jpibfi_version',
17
+ );
18
+ add_filter( 'export_args', array( $this, 'export_args' ) );
19
+ add_action( 'export_wp', array( $this, 'export_wp' ) );
20
+ }
21
+
22
+ function import() {
23
+ $file = wp_import_handle_upload();
24
+
25
+ if ( isset( $file['error'] ) ) {
26
+ $this->notices[] = new JPIBFI_Admin_Notice( 'error', true, esc_html( $file['error'] ) );
27
+
28
+ return;
29
+ }
30
+
31
+ if ( ! isset( $file['file'], $file['id'] ) ) {
32
+ $this->notices[] = new JPIBFI_Admin_Notice( 'error', true, __( 'The file did not upload properly. Please try again.', 'jquery-pin-it-button-for-images' ) );
33
+
34
+ return;
35
+ }
36
+
37
+ if ( ! file_exists( $file['file'] ) ) {
38
+ wp_import_cleanup( $file['id'] );
39
+
40
+ $this->notices[] = new JPIBFI_Admin_Notice( 'error', true, sprintf( __( 'The export file could not be found at <code>%s</code>. It is likely that this was caused by a permissions problem.', 'jquery-pin-it-button-for-images' ), esc_html( $file['file'] ) ) );
41
+
42
+ return;
43
+ }
44
+
45
+ if ( ! is_file( $file['file'] ) ) {
46
+ wp_import_cleanup( $file['id'] );
47
+ $this->notices[] = new JPIBFI_Admin_Notice( 'error', true, __( 'The path is not a file, please try again.', 'jquery-pin-it-button-for-images' ) );
48
+
49
+ return;
50
+ }
51
+
52
+ $file_contents = file_get_contents( $file['file'] );
53
+ $data = json_decode( $file_contents, true );
54
+ wp_import_cleanup( $file['id'] );
55
+
56
+ $options_to_import = $data['options'];
57
+ foreach ( (array) $options_to_import as $option_name => $option_value ) {
58
+ $options_to_import[ $option_name ] = maybe_unserialize( $option_value );
59
+ }
60
+ $options_to_import[ 'jpibfi_version' ] = ! isset( $options_to_import[ 'jpibfi_version' ] ) ? '2.2.2' : $options_to_import[ 'jpibfi_version' ];
61
+
62
+ foreach ( $this->options_to_import_export as $option_name ) {
63
+ if ( isset( $options_to_import[ $option_name ] ) ) {
64
+ update_option( $option_name, $options_to_import[ $option_name] );
65
+ }
66
+ }
67
+
68
+ $this->notices[] = new JPIBFI_Admin_Notice( 'success', true, __( 'Import Successful', 'jquery_pin_it_button_for_images' ) );
69
+ }
70
+
71
+ function get_settings_i18n() {
72
+ $parent = parent::get_settings_i18n();
73
+ $i18n = array();
74
+ $i18n['export_title'] = __( 'Export', 'jquery-pin-it-button-for-images' );
75
+ $i18n['export_url'] = admin_url( 'export.php?download=true&content=jpibfi' );
76
+ $i18n['export_button_text'] = __( 'Download Export File', 'jquery-pin-it-button-for-images' );
77
+
78
+ $i18n['import_title'] = __( 'Import', 'jquery-pin-it-button-for-images' );
79
+ $i18n['import_button_text'] = __( 'Import Settings', 'jquery-pin-it-button-for-images' );
80
+ $i18n['import_action_name'] = $this->ajax_import_action;
81
+
82
+ return array_merge( $parent, $i18n );
83
+ }
84
+
85
+ function get_module_settings() {
86
+ return array(
87
+ 'slug' => 'import',
88
+ 'name' => __( 'Import/Export', 'jquery-pin-it-button-for-images' ),
89
+ );
90
+ }
91
+
92
+ /**
93
+ * @param array $args The export args being filtered.
94
+ *
95
+ * @return array The (possibly modified) export args.
96
+ */
97
+ public function export_args( $args ) {
98
+ if ( ! empty( $_GET['content'] ) && 'jpibfi' == $_GET['content'] ) {
99
+ return array( 'jpibfi' => true );
100
+ }
101
+
102
+ return $args;
103
+ }
104
+
105
+
106
+ /**
107
+ * Export options as a JSON file if that's what the user wants to do.
108
+ *
109
+ * @param array $args The export arguments.
110
+ *
111
+ * @return void
112
+ */
113
+ public function export_wp( $args ) {
114
+ if ( empty( $args['jpibfi'] ) ) {
115
+ return;
116
+ }
117
+
118
+ $filename = 'jpibfi_settings_' . date( 'Y-m-d' ) . '.json';
119
+
120
+ header( 'Content-Description: File Transfer' );
121
+ header( 'Content-Disposition: attachment; filename=' . $filename );
122
+ header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ), true );
123
+
124
+ $export_options = array();
125
+ foreach ( $this->options_to_import_export as $option_name ) {
126
+ $option_value = get_option( $option_name );
127
+ if (false !== $option_value ) {
128
+ $export_options[ $option_name ] = maybe_serialize( $option_value );
129
+ }
130
+ }
131
+
132
+ $JSON_PRETTY_PRINT = defined( 'JSON_PRETTY_PRINT' ) ? JSON_PRETTY_PRINT : null;
133
+ echo json_encode( array( 'options' => $export_options ), $JSON_PRETTY_PRINT );
134
+ exit;
135
+ }
136
+
137
+ public function save_settings( $settings ) {
138
+ $this->import();
139
+ }
140
  }
includes/admin/settings/jpibfi-license-settings.php DELETED
@@ -1,5 +0,0 @@
1
- <?php
2
- if ( ! defined( 'ABSPATH' ) ) {
3
- exit;
4
- }
5
-
 
 
 
 
 
includes/admin/settings/jpibfi-selection-settings.php CHANGED
@@ -1,187 +1,187 @@
1
- <?php
2
-
3
- class JPIBFI_Selection_Settings extends JPIBFI_Settings_Base {
4
-
5
- function __construct() {
6
- parent::__construct( 'select', new JPIBFI_Selection_Options() );
7
- add_action( 'add_meta_boxes', array( $this, 'add_post_selection_meta_box' ), 10, 2 );
8
- add_action( 'save_post', array( $this, 'save_post_selection_meta' ), 10, 3 );
9
- }
10
-
11
- function add_post_selection_meta_box( $post_type, $post ) {
12
- add_meta_box(
13
- 'jpibfi-disable-plugin_meta',
14
- __( 'jQuery Pin It Button for Images Settings', 'jquery-pin-it-button-for-images' ),
15
- array( $this, 'render_post_selection_meta_box' ),
16
- array( 'post', 'page' ),
17
- 'side'
18
- );
19
- }
20
-
21
- function get_settings_i18n() {
22
- $existing_post_types = get_post_types( array( 'public' => true ) );
23
-
24
- $parent = parent::get_settings_i18n();
25
- $i18n = array();
26
- $i18n['title'] = __( 'Selection settings', 'jquery-pin-it-button-for-images' );
27
- $i18n['image_resolution_label'] = __( 'Minimum image resolution', 'jquery-pin-it-button-for-images' );
28
- $i18n['image_resolution_desc'] = __( 'Use this settings to hide the "Pin it" button on small images (e.g. social media icons).', 'jquery-pin-it-button-for-images' );
29
- $i18n['image_resolution_desc_2'] = __( '* - screen that is less than 768 pixels wide', 'jquery-pin-it-button-for-images' );
30
- $i18n['min_resolution_template_small'] = __( 'For small screens* the "Pin it" button will show up if the image is at least %height% pixels high and %width% pixels wide.', 'jquery-pin-it-button-for-images' );
31
- $i18n['min_resolution_template'] = __( 'Otherwise, the "Pin it" button will show up if the image is at least %height% pixels high and %width% pixels wide.', 'jquery-pin-it-button-for-images' );
32
-
33
- $i18n['show_on_field_label'] = __( 'On which pages the "Pin it" button should be shown', 'jquery-pin-it-button-for-images' );
34
- $i18n['show_on_field_desc'] = __( 'Separate settings using commas. For the button to show up on a certain page, the page must be included in the "Show on" section and not included in the "Disable on" section. You can use the following settings:' )
35
- . '<p>'
36
- . __( 'number (e.g. 588) - the ID of a certain page or post' ) . '<br/>'
37
- . __( '[front] - front page' ) . '<br/>'
38
- . __( '[single] - single posts' ) . '<br/>'
39
- . __( '[page] - single pages' ) . '<br/>'
40
- . sprintf( __( '[archive] - <a href="%s" target="_blank">archive pages</a>' ) . '<br/>', 'https://codex.wordpress.org/Function_Reference/is_archive' )
41
- . __( '[search] - search pages' ) . '<br/>'
42
- . __( '[category] - category pages' ) . '<br/>'
43
- . __( '[tag] - tag pages' ) . '<br/>'
44
- . __( '[home] - blog page' ) . '<br/>'
45
- . __( '[post_type] where post_type is one of the following: ') . join(', ', $existing_post_types) . '.</p>';
46
-
47
- return array_merge( $parent, $i18n );
48
- }
49
-
50
- function get_module_settings() {
51
- return array(
52
- 'slug' => 'select',
53
- 'name' => __( 'Selection', 'jquery-pin-it-button-for-images' ),
54
- );
55
- }
56
-
57
- function get_settings_configuration() {
58
-
59
- $option_value = $this->options->get();
60
- $res = array();
61
-
62
- $res['image_selector'] = array(
63
- 'key' => 'image_selector',
64
- 'label' => __( 'Image selector', 'jquery-pin-it-button-for-images' ),
65
- 'desc' => sprintf( __( 'jQuery selector for all the images that should have the "Pin it" button. Set the value to %s if you want the "Pin it" button to appear only on images in content or %s to appear on all images on site (including sidebar, header and footer). If you know a thing or two about jQuery, you might use your own selector. %sClick here%s to read about jQuery selectors.', 'jquery-pin-it-button-for-images' ),
66
- '<strong>.jpibfi_container img</strong>',
67
- '<strong>img</strong>',
68
- '<a href="http://api.jquery.com/category/selectors/" target="_blank">',
69
- '</a>'
70
- ),
71
- 'type' => 'string',
72
- 'required' => true
73
- );
74
-
75
- $res['disabled_classes'] = array(
76
- 'key' => 'disabled_classes',
77
- 'label' => __( 'Disabled classes', 'jquery-pin-it-button-for-images' ),
78
- 'desc' => __( 'Images with these CSS classes won\'t show the "Pin it" button. Please separate multiple classes with semicolons. Spaces are not accepted.', 'jquery-pin-it-button-for-images' ),
79
- 'type' => 'string'
80
- );
81
-
82
- $res['enabled_classes'] = array(
83
- 'key' => 'enabled_classes',
84
- 'label' => __( 'Enabled classes', 'jquery-pin-it-button-for-images' ),
85
- 'desc' => __( 'Only images with these CSS classes will show the "Pin it" button. Please separate multiple classes with semicolons. If this field is empty, images with any (besides disabled ones) classes will show the Pin It button.', 'jquery-pin-it-button-for-images' ),
86
- 'type' => 'string'
87
- );
88
-
89
- $local_args = array(
90
- 'min' => '0',
91
- 'step' => '1',
92
- 'type' => 'int'
93
- );
94
- $res['min_image_height'] = array_merge( $local_args, array(
95
- 'key' => 'min_image_height',
96
- 'label' => __( 'Height', 'jquery-pin-it-button-for-images' ),
97
- 'error_label' => __( 'Minimum image height', 'jquery-pin-it-button-for-images' )
98
- ) );
99
- $res['min_image_width'] = array_merge( $local_args, array(
100
- 'key' => 'min_image_width',
101
- 'label' => __( 'Width', 'jquery-pin-it-button-for-images' ),
102
- 'error_label' => __( 'Minimum image width', 'jquery-pin-it-button-for-images' )
103
- ) );
104
-
105
- $res['min_image_height_small'] = array_merge( $local_args, array(
106
- 'key' => 'min_image_height_small',
107
- 'label' => __( 'Height', 'jquery-pin-it-button-for-images' ),
108
- 'error_label' => __( 'Minimum image height for mobile', 'jquery-pin-it-button-for-images' )
109
- ) );
110
- $res['min_image_width_small'] = array_merge( $local_args, array(
111
- 'key' => 'min_image_width_small',
112
- 'label' => __( 'Width', 'jquery-pin-it-button-for-images' ),
113
- 'error_label' => __( 'Minimum image width for mobile', 'jquery-pin-it-button-for-images' )
114
- ) );
115
-
116
- $res['show_on'] = array(
117
- 'key' => 'show_on',
118
- 'label' => __( 'Show on', 'jquery-pin-it-button-for-images' ),
119
- 'type' => 'string'
120
- );
121
-
122
- $res['disable_on'] = array(
123
- 'key' => 'disable_on',
124
- 'label' => __( 'Disable on', 'jquery-pin-it-button-for-images' ),
125
- 'type' => 'string'
126
- );
127
-
128
- foreach ( $res as $key => $setting ) {
129
- $res[ $key ]['value'] = $option_value[ $key ];
130
- }
131
-
132
- return $res;
133
- }
134
-
135
- function render_post_selection_meta_box() {
136
- global $post;
137
- $id = $post->ID;
138
- $options = $this->options->get();
139
- $disabled_list = $options['disable_on'];
140
- $disabled_array = explode( ',', $disabled_list );
141
- $result = in_array( (string) $id, $disabled_array );
142
- wp_nonce_field( 'jpibfi-post-selection', "jpibfi-post-selection" );
143
- ?>
144
- <div>
145
- <label>
146
- <input name="jpibfi-disable-post" type="checkbox" <?php checked( true, $result, true ); ?> value="1"/>
147
- <?php _e( 'Disable plugin on this post', 'jquery-pin-it-button-for-images' ); ?>
148
- </label>
149
- </div>
150
- <?php
151
- }
152
-
153
- function save_post_selection_meta( $post_id, $post, $update ) {
154
- if ( ! isset( $_POST["jpibfi-post-selection"] ) || ! wp_verify_nonce( $_POST["jpibfi-post-selection"], 'jpibfi-post-selection' ) ) {
155
- return $post_id;
156
- }
157
-
158
- if ( ! current_user_can( "edit_post", $post_id ) ) {
159
- return $post_id;
160
- }
161
-
162
- if ( defined( "DOING_AUTOSAVE" ) && DOING_AUTOSAVE ) {
163
- return $post_id;
164
- }
165
-
166
- $should_be_in_array = isset( $_POST["jpibfi-disable-post"] );
167
-
168
- $options = $this->options->get();
169
- $disabled_str = $options['disable_on'];
170
- $disabled_array = explode( ',', $disabled_str );
171
- $is_in_array = in_array( (string) $post_id, $disabled_array );
172
-
173
- if ( $should_be_in_array === $is_in_array ) {
174
- return $post_id;
175
- }
176
-
177
- if ( $should_be_in_array ) {
178
- $disabled_array[] = (string) $post_id;
179
- } else {
180
- $disabled_array = array_diff( $disabled_array, array( (string) $post_id ) );
181
- }
182
-
183
- $disabled_str = implode( ',', $disabled_array );
184
- $options['disable_on'] = $disabled_str;
185
- $this->options->update( $options );
186
- }
187
  }
1
+ <?php
2
+
3
+ class JPIBFI_Selection_Settings extends JPIBFI_Settings_Base {
4
+
5
+ function __construct() {
6
+ parent::__construct( 'select', new JPIBFI_Selection_Options() );
7
+ add_action( 'add_meta_boxes', array( $this, 'add_post_selection_meta_box' ), 10, 2 );
8
+ add_action( 'save_post', array( $this, 'save_post_selection_meta' ), 10, 3 );
9
+ }
10
+
11
+ function add_post_selection_meta_box( $post_type, $post ) {
12
+ add_meta_box(
13
+ 'jpibfi-disable-plugin_meta',
14
+ __( 'jQuery Pin It Button for Images Settings', 'jquery-pin-it-button-for-images' ),
15
+ array( $this, 'render_post_selection_meta_box' ),
16
+ array( 'post', 'page' ),
17
+ 'side'
18
+ );
19
+ }
20
+
21
+ function get_settings_i18n() {
22
+ $existing_post_types = get_post_types( array( 'public' => true ) );
23
+
24
+ $parent = parent::get_settings_i18n();
25
+ $i18n = array();
26
+ $i18n['title'] = __( 'Selection settings', 'jquery-pin-it-button-for-images' );
27
+ $i18n['image_resolution_label'] = __( 'Minimum image resolution', 'jquery-pin-it-button-for-images' );
28
+ $i18n['image_resolution_desc'] = __( 'Use this settings to hide the "Pin it" button on small images (e.g. social media icons).', 'jquery-pin-it-button-for-images' );
29
+ $i18n['image_resolution_desc_2'] = __( '* - screen that is less than 768 pixels wide', 'jquery-pin-it-button-for-images' );
30
+ $i18n['min_resolution_template_small'] = __( 'For small screens* the "Pin it" button will show up if the image is at least %height% pixels high and %width% pixels wide.', 'jquery-pin-it-button-for-images' );
31
+ $i18n['min_resolution_template'] = __( 'Otherwise, the "Pin it" button will show up if the image is at least %height% pixels high and %width% pixels wide.', 'jquery-pin-it-button-for-images' );
32
+
33
+ $i18n['show_on_field_label'] = __( 'On which pages the "Pin it" button should be shown', 'jquery-pin-it-button-for-images' );
34
+ $i18n['show_on_field_desc'] = __( 'Separate settings using commas. For the button to show up on a certain page, the page must be included in the "Show on" section and not included in the "Disable on" section. You can use the following settings:' )
35
+ . '<p>'
36
+ . __( 'number (e.g. 588) - the ID of a certain page or post' ) . '<br/>'
37
+ . __( '[front] - front page' ) . '<br/>'
38
+ . __( '[single] - single posts' ) . '<br/>'
39
+ . __( '[page] - single pages' ) . '<br/>'
40
+ . sprintf( __( '[archive] - <a href="%s" target="_blank">archive pages</a>' ) . '<br/>', 'https://codex.wordpress.org/Function_Reference/is_archive' )
41
+ . __( '[search] - search pages' ) . '<br/>'
42
+ . __( '[category] - category pages' ) . '<br/>'
43
+ . __( '[tag] - tag pages' ) . '<br/>'
44
+ . __( '[home] - blog page' ) . '<br/>'
45
+ . __( '[post_type] where post_type is one of the following: ') . join(', ', $existing_post_types) . '.</p>';
46
+
47
+ return array_merge( $parent, $i18n );
48
+ }
49
+
50
+ function get_module_settings() {
51
+ return array(
52
+ 'slug' => 'select',
53
+ 'name' => __( 'Selection', 'jquery-pin-it-button-for-images' ),
54
+ );
55
+ }
56
+
57
+ function get_settings_configuration() {
58
+
59
+ $option_value = $this->options->get();
60
+ $res = array();
61
+
62
+ $res['image_selector'] = array(
63
+ 'key' => 'image_selector',
64
+ 'label' => __( 'Image selector', 'jquery-pin-it-button-for-images' ),
65
+ 'desc' => sprintf( __( 'jQuery selector for all the images that should have the "Pin it" button. Set the value to %s if you want the "Pin it" button to appear only on images in content or %s to appear on all images on site (including sidebar, header and footer). If you know a thing or two about jQuery, you might use your own selector. %sClick here%s to read about jQuery selectors.', 'jquery-pin-it-button-for-images' ),
66
+ '<strong>.jpibfi_container img</strong>',
67
+ '<strong>img</strong>',
68
+ '<a href="http://api.jquery.com/category/selectors/" target="_blank">',
69
+ '</a>'
70
+ ),
71
+ 'type' => 'string',
72
+ 'required' => true
73
+ );
74
+
75
+ $res['disabled_classes'] = array(
76
+ 'key' => 'disabled_classes',
77
+ 'label' => __( 'Disabled classes', 'jquery-pin-it-button-for-images' ),
78
+ 'desc' => __( 'Images with these CSS classes won\'t show the "Pin it" button. Please separate multiple classes with semicolons. Spaces are not accepted.', 'jquery-pin-it-button-for-images' ),
79
+ 'type' => 'string'
80
+ );
81
+
82
+ $res['enabled_classes'] = array(
83
+ 'key' => 'enabled_classes',
84
+ 'label' => __( 'Enabled classes', 'jquery-pin-it-button-for-images' ),
85
+ 'desc' => __( 'Only images with these CSS classes will show the "Pin it" button. Please separate multiple classes with semicolons. If this field is empty, images with any (besides disabled ones) classes will show the Pin It button.', 'jquery-pin-it-button-for-images' ),
86
+ 'type' => 'string'
87
+ );
88
+
89
+ $local_args = array(
90
+ 'min' => '0',
91
+ 'step' => '1',
92
+ 'type' => 'int'
93
+ );
94
+ $res['min_image_height'] = array_merge( $local_args, array(
95
+ 'key' => 'min_image_height',
96
+ 'label' => __( 'Height', 'jquery-pin-it-button-for-images' ),
97
+ 'error_label' => __( 'Minimum image height', 'jquery-pin-it-button-for-images' )
98
+ ) );
99
+ $res['min_image_width'] = array_merge( $local_args, array(
100
+ 'key' => 'min_image_width',
101
+ 'label' => __( 'Width', 'jquery-pin-it-button-for-images' ),
102
+ 'error_label' => __( 'Minimum image width', 'jquery-pin-it-button-for-images' )
103
+ ) );
104
+
105
+ $res['min_image_height_small'] = array_merge( $local_args, array(
106
+ 'key' => 'min_image_height_small',
107
+ 'label' => __( 'Height', 'jquery-pin-it-button-for-images' ),
108
+ 'error_label' => __( 'Minimum image height for mobile', 'jquery-pin-it-button-for-images' )
109
+ ) );
110
+ $res['min_image_width_small'] = array_merge( $local_args, array(
111
+ 'key' => 'min_image_width_small',
112
+ 'label' => __( 'Width', 'jquery-pin-it-button-for-images' ),
113
+ 'error_label' => __( 'Minimum image width for mobile', 'jquery-pin-it-button-for-images' )
114
+ ) );
115
+
116
+ $res['show_on'] = array(
117
+ 'key' => 'show_on',
118
+ 'label' => __( 'Show on', 'jquery-pin-it-button-for-images' ),
119
+ 'type' => 'string'
120
+ );
121
+
122
+ $res['disable_on'] = array(
123
+ 'key' => 'disable_on',
124
+ 'label' => __( 'Disable on', 'jquery-pin-it-button-for-images' ),
125
+ 'type' => 'string'
126
+ );
127
+
128
+ foreach ( $res as $key => $setting ) {
129
+ $res[ $key ]['value'] = $option_value[ $key ];
130
+ }
131
+
132
+ return $res;
133
+ }
134
+
135
+ function render_post_selection_meta_box() {
136
+ global $post;
137
+ $id = $post->ID;
138
+ $options = $this->options->get();
139
+ $disabled_list = $options['disable_on'];
140
+ $disabled_array = explode( ',', $disabled_list );
141
+ $result = in_array( (string) $id, $disabled_array );
142
+ wp_nonce_field( 'jpibfi-post-selection', "jpibfi-post-selection" );
143
+ ?>
144
+ <div>
145
+ <label>
146
+ <input name="jpibfi-disable-post" type="checkbox" <?php checked( true, $result, true ); ?> value="1"/>
147
+ <?php _e( 'Disable plugin on this post', 'jquery-pin-it-button-for-images' ); ?>
148
+ </label>
149
+ </div>
150
+ <?php
151
+ }
152
+
153
+ function save_post_selection_meta( $post_id, $post, $update ) {
154
+ if ( ! isset( $_POST["jpibfi-post-selection"] ) || ! wp_verify_nonce( $_POST["jpibfi-post-selection"], 'jpibfi-post-selection' ) ) {
155
+ return $post_id;
156
+ }
157
+
158
+ if ( ! current_user_can( "edit_post", $post_id ) ) {
159
+ return $post_id;
160
+ }
161
+
162
+ if ( defined( "DOING_AUTOSAVE" ) && DOING_AUTOSAVE ) {
163
+ return $post_id;
164
+ }
165
+
166
+ $should_be_in_array = isset( $_POST["jpibfi-disable-post"] );
167
+
168
+ $options = $this->options->get();
169
+ $disabled_str = $options['disable_on'];
170
+ $disabled_array = explode( ',', $disabled_str );
171
+ $is_in_array = in_array( (string) $post_id, $disabled_array );
172
+
173
+ if ( $should_be_in_array === $is_in_array ) {
174
+ return $post_id;
175
+ }
176
+
177
+ if ( $should_be_in_array ) {
178
+ $disabled_array[] = (string) $post_id;
179
+ } else {
180
+ $disabled_array = array_diff( $disabled_array, array( (string) $post_id ) );
181
+ }
182
+
183
+ $disabled_str = implode( ',', $disabled_array );
184
+ $options['disable_on'] = $disabled_str;
185
+ $this->options->update( $options );
186
+ }
187
  }
includes/admin/settings/jpibfi-settings-base.php CHANGED
@@ -1,82 +1,79 @@
1
- <?php
2
-
3
- abstract class JPIBFI_Settings_Tab {
4
-
5
- abstract function get_module_settings();
6
-
7
- /**
8
- * @var string
9
- */
10
- private $slug;
11
-
12
- /**
13
- * @var JPIBFI_Admin_Notice[]
14
- */
15
- protected $notices;
16
-
17
- function __construct( $slug ) {
18
- $this->slug = $slug;
19
- $this->notices = array();
20
-
21
- add_action( 'admin_notices', array( $this, 'show_notices' ) );
22
- }
23
-
24
- function get_settings_configuration() {
25
- return array();
26
- }
27
-
28
- function get_settings_i18n() {
29
- return array(
30
- 'submit' => __( 'Save Changes', 'jquery-pin-it-button-for-images' ),
31
- 'pro_feature_error' => sprintf(
32
- __( 'This feature is available in <a target="_blank" href="%s">the PRO version</a>.', 'jquery-pin-it-button-for-images' ),
33
- 'https://highfiveplugins.com/downloads/jquery-pin-it-button-for-images-pro/'
34
- )
35
- );
36
- }
37
-
38
- function get_slug() {
39
- return $this->slug;
40
- }
41
-
42
- function save_settings( $settings ) {
43
-
44
- }
45
-
46
- function show_notices( ) {
47
- foreach ( $this->notices as $notice ) {
48
- echo $notice->get_html();
49
- }
50
- }
51
-
52
- }
53
-
54
- abstract class JPIBFI_Settings_Base extends JPIBFI_Settings_Tab {
55
-
56
- /**
57
- * @var JPIBFI_Options
58
- */
59
- protected $options;
60
-
61
- function __construct( $slug, $options ) {
62
- parent::__construct( $slug );
63
- $this->options = $options;
64
- }
65
-
66
- function save_settings( $settings ) {
67
- $validator = new JPIBFI_Validator( $settings, $this->options->get_default_options(), $this->get_settings_configuration() );
68
- $errors = $validator->get_errors();
69
- if ( count( $errors ) > 0 ) {
70
- $error_messages = array_merge(
71
- array( '<strong>' .__( 'Settings not saved.', 'jquery-pin-in-button-for-images' ) . '</strong>' ),
72
- $errors
73
- );
74
- $this->notices[] = new JPIBFI_Admin_Notice( 'error', true, join( '<br/>', $error_messages ) );
75
- } else {
76
- $sanitized = $validator->get_result();
77
- $sanitized = $this->options->sanitize( $sanitized );
78
- $this->options->update( $sanitized );
79
- $this->notices[] = new JPIBFI_Admin_Notice( 'success', true, '<strong>' . __( 'Settings saved.', 'jquery-pin-in-button-for-images' ) . '</strong>' );
80
- }
81
- }
82
  }
1
+ <?php
2
+
3
+ abstract class JPIBFI_Settings_Tab {
4
+
5
+ abstract function get_module_settings();
6
+
7
+ /**
8
+ * @var string
9
+ */
10
+ private $slug;
11
+
12
+ /**
13
+ * @var JPIBFI_Admin_Notice[]
14
+ */
15
+ protected $notices;
16
+
17
+ function __construct( $slug ) {
18
+ $this->slug = $slug;
19
+ $this->notices = array();
20
+
21
+ add_action( 'admin_notices', array( $this, 'show_notices' ) );
22
+ }
23
+
24
+ function get_settings_configuration() {
25
+ return array();
26
+ }
27
+
28
+ function get_settings_i18n() {
29
+ return array(
30
+ 'submit' => __( 'Save Changes', 'jquery-pin-it-button-for-images' ),
31
+ 'pro_feature_error' => __( 'This feature is not available in the free version.', 'jquery-pin-it-button-for-images' )
32
+ );
33
+ }
34
+
35
+ function get_slug() {
36
+ return $this->slug;
37
+ }
38
+
39
+ function save_settings( $settings ) {
40
+
41
+ }
42
+
43
+ function show_notices( ) {
44
+ foreach ( $this->notices as $notice ) {
45
+ echo $notice->get_html();
46
+ }
47
+ }
48
+
49
+ }
50
+
51
+ abstract class JPIBFI_Settings_Base extends JPIBFI_Settings_Tab {
52
+
53
+ /**
54
+ * @var JPIBFI_Options
55
+ */
56
+ protected $options;
57
+
58
+ function __construct( $slug, $options ) {
59
+ parent::__construct( $slug );
60
+ $this->options = $options;
61
+ }
62
+
63
+ function save_settings( $settings ) {
64
+ $validator = new JPIBFI_Validator( $settings, $this->options->get_default_options(), $this->get_settings_configuration() );
65
+ $errors = $validator->get_errors();
66
+ if ( count( $errors ) > 0 ) {
67
+ $error_messages = array_merge(
68
+ array( '<strong>' .__( 'Settings not saved.', 'jquery-pin-in-button-for-images' ) . '</strong>' ),
69
+ $errors
70
+ );
71
+ $this->notices[] = new JPIBFI_Admin_Notice( 'error', true, join( '<br/>', $error_messages ) );
72
+ } else {
73
+ $sanitized = $validator->get_result();
74
+ $sanitized = $this->options->sanitize( $sanitized );
75
+ $this->options->update( $sanitized );
76
+ $this->notices[] = new JPIBFI_Admin_Notice( 'success', true, '<strong>' . __( 'Settings saved.', 'jquery-pin-in-button-for-images' ) . '</strong>' );
77
+ }
78
+ }
 
 
 
79
  }
includes/admin/settings/jpibfi-visual-settings.php CHANGED
@@ -1,219 +1,219 @@
1
- <?php
2
-
3
- class JPIBFI_Visual_Settings extends JPIBFI_Settings_Base {
4
-
5
- function __construct() {
6
- parent::__construct( 'visual', new JPIBFI_Visual_Options() );
7
- }
8
-
9
- function get_settings_i18n() {
10
- $parent = parent::get_settings_i18n();
11
- $i18n = array();
12
- $i18n['margins_label'] = __( '"Pin it" button margins', 'jquery-pin-it-button-for-images' );
13
- $i18n['margins_desc'] = sprintf( __( 'Margins are used to adjust the position of the "Pin it" button, but not all margins are used on all button positions. Here is an example. If you\'re using the "%s" position, the button\'s position will be affected only by top and left margins. Bottom and right margins affect "%s" position, etc. The "%s" position does not use any margins at all.', 'jquery-pin-it-button-for-images' ),
14
- __( 'Top left', 'jquery-pin-it-button-for-images' ),
15
- __( 'Bottom right', 'jquery-pin-it-button-for-images' ),
16
- __( 'Middle', 'jquery-pin-it-button-for-images' )
17
- );
18
- $i18n['preview'] = __( 'Preview', 'jquery-pin-it-button-for-images' );
19
- $i18n['mode'] = __( 'Mode', 'jquery-pin-it-button-for-images' );
20
- $i18n['settings'] = __( 'Settings', 'jquery-pin-it-button-for-images' );
21
- $i18n['custom_button_desc'] = __( 'Click the button to choose an image from your WordPress media library. Height and width should fill automatically.', 'jquery-pin-it-button-for-images' );
22
- $i18n['custom_button_no_image_to_preview'] = __( 'No image to preview', 'jquery-pin-it-button-for-images' );
23
- $i18n['custom_button_upload'] = __( 'Upload an image using media library', 'jquery-pin-it-button-for-images' );
24
- $i18n['custom_button_frame_title'] = __( 'Select your custom "Pin It" button', 'jquery-pin-it-button-for-images' );
25
- $i18n['custom_button_frame_button_text'] = __( 'Use as "Pin It" button', 'jquery-pin-it-button-for-images' );
26
-
27
- $i18n['attribution'] = sprintf( __( 'Available icons come from the following icon packs: %s and %s.', 'jquery-pin-it-button-for-images' ),
28
- '<a href="http://fontawesome.io/" target="_blank">Font Awesome</a>',
29
- '<a href="https://icomoon.io/icons-icomoon.html" target="_blank">Icomoon</a>'
30
- );
31
-
32
- return array_merge( $parent, $i18n );
33
- }
34
-
35
- function get_module_settings() {
36
- return array(
37
- 'slug' => 'visual',
38
- 'name' => __( 'Visual', 'jquery-pin-it-button-for-images' ),
39
- );
40
- }
41
-
42
- function get_settings_configuration() {
43
-
44
- $option_value = $this->options->get();
45
- $res = array();
46
-
47
- $res['show_button'] = array(
48
- 'key' => 'show_button',
49
- 'label' => __( 'Show button', 'jquery-pin-it-button-for-images' ),
50
- 'options' => array(
51
- 'hover' => __( 'On hover', 'jquery-pin-it-button-for-images' ),
52
- 'always_touch' => __( 'Always on touch devices', 'jquery-pin-it-button-for-images' ),
53
- 'always' => __( 'Always', 'jquery-pin-it-button-for-images' )
54
- ),
55
- 'desc' => __( 'When the "Pin it" button should be visible.', 'jquery-pin-it-button-for-images' ),
56
- 'type' => 'select'
57
- );
58
-
59
- $margin_args = array(
60
- 'min' => '0',
61
- 'step' => '1',
62
- 'unit' => 'px',
63
- 'type' => 'int'
64
- );
65
- $res['button_margin_bottom'] = array_merge( $margin_args,
66
- array(
67
- 'key' => 'button_margin_bottom',
68
- 'label' => __( 'Bottom', 'jquery-pin-it-button-for-images' ),
69
- 'error_label' => __( 'Button bottom margin', 'jquery-pin-it-button-for-images' )
70
- ) );
71
- $res['button_margin_top'] = array_merge( $margin_args,
72
- array(
73
- 'key' => 'button_margin_top',
74
- 'label' => __( 'Top', 'jquery-pin-it-button-for-images' ),
75
- 'error_label' => __( 'Button top margin', 'jquery-pin-it-button-for-images' )
76
- ) );
77
- $res['button_margin_left'] = array_merge( $margin_args,
78
- array(
79
- 'key' => 'button_margin_left',
80
- 'label' => __( 'Left', 'jquery-pin-it-button-for-images' ),
81
- 'error_label' => __( 'Button left margin', 'jquery-pin-it-button-for-images' )
82
- ) );
83
- $res['button_margin_right'] = array_merge( $margin_args,
84
- array(
85
- 'key' => 'button_margin_right',
86
- 'label' => __( 'Right', 'jquery-pin-it-button-for-images' ),
87
- 'error_label' => __( 'Button right margin', 'jquery-pin-it-button-for-images' )
88
- ) );
89
-
90
- $res['button_position'] = array(
91
- 'key' => 'button_position',
92
- 'label' => __( '"Pin it" button position', 'jquery-pin-it-button-for-images' ),
93
- 'options' => array(
94
- 'top-left' => __( 'Top left', 'jquery-pin-it-button-for-images' ),
95
- 'top-right' => __( 'Top right', 'jquery-pin-it-button-for-images' ),
96
- 'bottom-left' => __( 'Bottom left', 'jquery-pin-it-button-for-images' ),
97
- 'bottom-right' => __( 'Bottom right', 'jquery-pin-it-button-for-images' ),
98
- 'middle' => __( 'Middle', 'jquery-pin-it-button-for-images' )
99
- ),
100
- 'desc' => __( 'Where the "Pin it" button should appear on the image.', 'jquery-pin-it-button-for-images' ),
101
- 'type' => 'select'
102
- );
103
-
104
- $res['description_option'] = array(
105
- 'key' => 'description_option',
106
- 'label' => __( 'Description source', 'jquery-pin-it-button-for-images' ),
107
- 'options' => array(
108
- "post_title" => __( 'Post title', 'jquery-pin-it-button-for-images' ),
109
- "post_excerpt" => __( 'Post description (excerpt)', 'jquery-pin-it-button-for-images' ),
110
- "img_title" => __( 'Image title attribute', 'jquery-pin-it-button-for-images' ),
111
- "site_title" => __( 'Site title (Settings->General)', 'jquery-pin-it-button-for-images' ),
112
- "img_description" => __( 'Image description', 'jquery-pin-it-button-for-images' ),
113
- "img_caption" => __( 'Image caption', 'jquery-pin-it-button-for-images' ),
114
- "img_alt" => __( 'Image alt attribute', 'jquery-pin-it-button-for-images' ),
115
- "data_pin_description" => __( 'data-pin-description (Pinterest\'s custom attribute)', 'jquery-pin-it-button-for-images' )
116
- ),
117
- 'desc' => __( 'From where the Pinterest message should be taken. Check which sources should be considered and prioritize them by dragging and dropping. The description will come from the top source that has data. Please note that "Image description" and "Image caption" work properly only for images that were added to your Media Library.', 'jquery-pin-it-button-for-images' ),
118
- 'type' => 'multiselect'
119
- );
120
-
121
- $res['transparency_value'] = array(
122
- 'key' => 'transparency_value',
123
- 'label' => __( 'Transparency', 'jquery-pin-it-button-for-images' ),
124
- 'desc' => sprintf( __( 'Choose transparency (between %.02f and %.02f)', 'jquery-pin-it-button-for-images' ), '0.00', '1.00' ),
125
- 'min' => '0',
126
- 'max' => '1',
127
- 'step' => '0.01',
128
- 'type' => 'float'
129
- );
130
-
131
- $res['pin_image'] = array(
132
- 'key' => 'pin_image',
133
- 'label' => __( 'Pin image', 'jquery-pin-it-button-for-images' ),
134
- 'options' => array(
135
- 'old_default' => __( 'Old default', 'jquery-pin-it-button-for-images' ),
136
- 'default' => __( 'Default', 'jquery-pin-it-button-for-images' ),
137
- 'custom' => __( 'Custom', 'jquery-pin-it-button-for-images' )
138
- ),
139
- 'type' => 'select'
140
- );
141
-
142
- $res['pin_image_button'] = array(
143
- 'key' => 'pin_image_button',
144
- 'label' => __( 'Button', 'jquery-pin-it-button-for-images' ),
145
- 'options' => array(
146
- 'square' => __( 'Square', 'jquery-pin-it-button-for-images' ),
147
- 'rounded-square' => __( 'Rounded square', 'jquery-pin-it-button-for-images' ),
148
- 'round' => __( 'Round', 'jquery-pin-it-button-for-images' ),
149
- 'rectangle' => __( 'Rectangle', 'jquery-pin-it-button-for-images' ),
150
- 'rounded-rectangle' => __( 'Rounded rectangle', 'jquery-pin-it-button-for-images' )
151
- ),
152
- 'type' => 'select'
153
- );
154
-
155
- $res['pin_image_icon'] = array(
156
- 'key' => 'pin_image_icon',
157
- 'label' => __( 'Icon', 'jquery-pin-it-button-for-images' ),
158
- 'options' => array(
159
- 'circle' => __( 'Circle', 'jquery-pin-it-button-for-images' ),
160
- 'plain' => __( 'Plain', 'jquery-pin-it-button-for-images' ),
161
- 'thumb-tack' => __( 'Thumbtack', 'jquery-pin-it-button-for-images' ),
162
- 'pushpin' => __( 'Thumbtack #2', 'jquery-pin-it-button-for-images' ),
163
- 'pinterest2' => __( 'Classic', 'jquery-pin-it-button-for-images' ),
164
- ),
165
- 'type' => 'select'
166
- );
167
-
168
- $res['pin_image_size'] = array(
169
- 'key' => 'pin_image_size',
170
- 'label' => __( 'Size', 'jquery-pin-it-button-for-images' ),
171
- 'options' => array(
172
- 'small' => __( 'Small', 'jquery-pin-it-button-for-images' ),
173
- 'normal' => __( 'Normal', 'jquery-pin-it-button-for-images' ),
174
- 'large' => __( 'Large', 'jquery-pin-it-button-for-images' ),
175
- ),
176
- 'type' => 'select'
177
- );
178
-
179
- $res['custom_image_url'] = array(
180
- 'key' => 'custom_image_url',
181
- 'label' => __( 'URL address of the image', 'jquery-pin-it-button-for-images' ),
182
- 'type' => 'string'
183
- );
184
-
185
- $image_size = array( 'min' => '0', 'step' => '1', 'unit' => 'px', 'type' => 'int' );
186
- $res['custom_image_height'] = array_merge( $image_size, array(
187
- 'key' => 'custom_image_height',
188
- 'label' => __( 'Height', 'jquery-pin-it-button-for-images' ),
189
- 'error_label' => __( 'Custom image height', 'jquery-pin-it-button-for-images' )
190
- ) );
191
- $res['custom_image_width'] = array_merge( $image_size, array(
192
- 'key' => 'custom_image_width',
193
- 'label' => __( 'Width', 'jquery-pin-it-button-for-images' ),
194
- 'error_label' => __( 'Custom image width', 'jquery-pin-it-button-for-images' )
195
- ) );
196
-
197
- $res['scale_pin_image'] = array(
198
- 'key' => 'scale_pin_image',
199
- 'label' => __( 'Scale Pin Image', 'jquery-pin-it-button-for-images' ),
200
- 'text' => __( 'Active', 'jquery-pin-it-button-for-images' ),
201
- 'desc' => __( 'When checked, the "Pin it" button will scale down in size for smaller screens, ensuring best user experience. Left unchecked, the "Pin it" button will show up in full size no matter the screen size.', 'jquery-pin-it-button-for-images' ),
202
- 'type' => 'boolean',
203
- );
204
-
205
- $res['pin_linked_url'] = array(
206
- 'key' => 'pin_linked_url',
207
- 'label' => __( 'Pin linked URL', 'jquery-pin-it-button-for-images' ),
208
- 'text' => __( 'Active', 'jquery-pin-it-button-for-images' ),
209
- 'desc' => __( 'When checked, if the image links to another URL in your domain, that URL goes to Pinterest instead of the current one.', 'jquery-pin-it-button-for-images' ),
210
- 'type' => 'boolean',
211
- );
212
-
213
- foreach ( $res as $key => $setting ) {
214
- $res[ $key ]['value'] = $option_value[ $key ];
215
- }
216
-
217
- return $res;
218
- }
219
  }
1
+ <?php
2
+
3
+ class JPIBFI_Visual_Settings extends JPIBFI_Settings_Base {
4
+
5
+ function __construct() {
6
+ parent::__construct( 'visual', new JPIBFI_Visual_Options() );
7
+ }
8
+
9
+ function get_settings_i18n() {
10
+ $parent = parent::get_settings_i18n();
11
+ $i18n = array();
12
+ $i18n['margins_label'] = __( '"Pin it" button margins', 'jquery-pin-it-button-for-images' );
13
+ $i18n['margins_desc'] = sprintf( __( 'Margins are used to adjust the position of the "Pin it" button, but not all margins are used on all button positions. Here is an example. If you\'re using the "%s" position, the button\'s position will be affected only by top and left margins. Bottom and right margins affect "%s" position, etc. The "%s" position does not use any margins at all.', 'jquery-pin-it-button-for-images' ),
14
+ __( 'Top left', 'jquery-pin-it-button-for-images' ),
15
+ __( 'Bottom right', 'jquery-pin-it-button-for-images' ),
16
+ __( 'Middle', 'jquery-pin-it-button-for-images' )
17
+ );
18
+ $i18n['preview'] = __( 'Preview', 'jquery-pin-it-button-for-images' );
19
+ $i18n['mode'] = __( 'Mode', 'jquery-pin-it-button-for-images' );
20
+ $i18n['settings'] = __( 'Settings', 'jquery-pin-it-button-for-images' );
21
+ $i18n['custom_button_desc'] = __( 'Click the button to choose an image from your WordPress media library. Height and width should fill automatically.', 'jquery-pin-it-button-for-images' );
22
+ $i18n['custom_button_no_image_to_preview'] = __( 'No image to preview', 'jquery-pin-it-button-for-images' );
23
+ $i18n['custom_button_upload'] = __( 'Upload an image using media library', 'jquery-pin-it-button-for-images' );
24
+ $i18n['custom_button_frame_title'] = __( 'Select your custom "Pin It" button', 'jquery-pin-it-button-for-images' );
25
+ $i18n['custom_button_frame_button_text'] = __( 'Use as "Pin It" button', 'jquery-pin-it-button-for-images' );
26
+
27
+ $i18n['attribution'] = sprintf( __( 'Available icons come from the following icon packs: %s and %s.', 'jquery-pin-it-button-for-images' ),
28
+ '<a href="http://fontawesome.io/" target="_blank">Font Awesome</a>',
29
+ '<a href="https://icomoon.io/icons-icomoon.html" target="_blank">Icomoon</a>'
30
+ );
31
+
32
+ return array_merge( $parent, $i18n );
33
+ }
34
+
35
+ function get_module_settings() {
36
+ return array(
37
+ 'slug' => 'visual',
38
+ 'name' => __( 'Visual', 'jquery-pin-it-button-for-images' ),
39
+ );
40
+ }
41
+
42
+ function get_settings_configuration() {
43
+
44
+ $option_value = $this->options->get();
45
+ $res = array();
46
+
47
+ $res['show_button'] = array(
48
+ 'key' => 'show_button',
49
+ 'label' => __( 'Show button', 'jquery-pin-it-button-for-images' ),
50
+ 'options' => array(
51
+ 'hover' => __( 'On hover', 'jquery-pin-it-button-for-images' ),
52
+ 'always_touch' => __( 'Always on touch devices', 'jquery-pin-it-button-for-images' ),
53
+ 'always' => __( 'Always', 'jquery-pin-it-button-for-images' )
54
+ ),
55
+ 'desc' => __( 'When the "Pin it" button should be visible.', 'jquery-pin-it-button-for-images' ),
56
+ 'type' => 'select'
57
+ );
58
+
59
+ $margin_args = array(
60
+ 'min' => '0',
61
+ 'step' => '1',
62
+ 'unit' => 'px',
63
+ 'type' => 'int'
64
+ );
65
+ $res['button_margin_bottom'] = array_merge( $margin_args,
66
+ array(
67
+ 'key' => 'button_margin_bottom',
68
+ 'label' => __( 'Bottom', 'jquery-pin-it-button-for-images' ),
69
+ 'error_label' => __( 'Button bottom margin', 'jquery-pin-it-button-for-images' )
70
+ ) );
71
+ $res['button_margin_top'] = array_merge( $margin_args,
72
+ array(
73
+ 'key' => 'button_margin_top',
74
+ 'label' => __( 'Top', 'jquery-pin-it-button-for-images' ),
75
+ 'error_label' => __( 'Button top margin', 'jquery-pin-it-button-for-images' )
76
+ ) );
77
+ $res['button_margin_left'] = array_merge( $margin_args,
78
+ array(
79
+ 'key' => 'button_margin_left',
80
+ 'label' => __( 'Left', 'jquery-pin-it-button-for-images' ),
81
+ 'error_label' => __( 'Button left margin', 'jquery-pin-it-button-for-images' )
82
+ ) );
83
+ $res['button_margin_right'] = array_merge( $margin_args,
84
+ array(
85
+ 'key' => 'button_margin_right',
86
+ 'label' => __( 'Right', 'jquery-pin-it-button-for-images' ),
87
+ 'error_label' => __( 'Button right margin', 'jquery-pin-it-button-for-images' )
88
+ ) );
89
+
90
+ $res['button_position'] = array(
91
+ 'key' => 'button_position',
92
+ 'label' => __( '"Pin it" button position', 'jquery-pin-it-button-for-images' ),
93
+ 'options' => array(
94
+ 'top-left' => __( 'Top left', 'jquery-pin-it-button-for-images' ),
95
+ 'top-right' => __( 'Top right', 'jquery-pin-it-button-for-images' ),
96
+ 'bottom-left' => __( 'Bottom left', 'jquery-pin-it-button-for-images' ),
97
+ 'bottom-right' => __( 'Bottom right', 'jquery-pin-it-button-for-images' ),
98
+ 'middle' => __( 'Middle', 'jquery-pin-it-button-for-images' )
99
+ ),
100
+ 'desc' => __( 'Where the "Pin it" button should appear on the image.', 'jquery-pin-it-button-for-images' ),
101
+ 'type' => 'select'
102
+ );
103
+
104
+ $res['description_option'] = array(
105
+ 'key' => 'description_option',
106
+ 'label' => __( 'Description source', 'jquery-pin-it-button-for-images' ),
107
+ 'options' => array(
108
+ "post_title" => __( 'Post title', 'jquery-pin-it-button-for-images' ),
109
+ "post_excerpt" => __( 'Post description (excerpt)', 'jquery-pin-it-button-for-images' ),
110
+ "img_title" => __( 'Image title attribute', 'jquery-pin-it-button-for-images' ),
111
+ "site_title" => __( 'Site title (Settings->General)', 'jquery-pin-it-button-for-images' ),
112
+ "img_description" => __( 'Image description', 'jquery-pin-it-button-for-images' ),
113
+ "img_caption" => __( 'Image caption', 'jquery-pin-it-button-for-images' ),
114
+ "img_alt" => __( 'Image alt attribute', 'jquery-pin-it-button-for-images' ),
115
+ "data_pin_description" => __( 'data-pin-description (Pinterest\'s custom attribute)', 'jquery-pin-it-button-for-images' )
116
+ ),
117
+ 'desc' => __( 'From where the Pinterest message should be taken. Check which sources should be considered and prioritize them by dragging and dropping. The description will come from the top source that has data. Please note that "Image description" and "Image caption" work properly only for images that were added to your Media Library.', 'jquery-pin-it-button-for-images' ),
118
+ 'type' => 'multiselect'
119
+ );
120
+
121
+ $res['transparency_value'] = array(
122
+ 'key' => 'transparency_value',
123
+ 'label' => __( 'Transparency', 'jquery-pin-it-button-for-images' ),
124
+ 'desc' => sprintf( __( 'Choose transparency (between %.02f and %.02f)', 'jquery-pin-it-button-for-images' ), '0.00', '1.00' ),
125
+ 'min' => '0',
126
+ 'max' => '1',
127
+ 'step' => '0.01',
128
+ 'type' => 'float'
129
+ );
130
+
131
+ $res['pin_image'] = array(
132
+ 'key' => 'pin_image',
133
+ 'label' => __( 'Pin image', 'jquery-pin-it-button-for-images' ),
134
+ 'options' => array(
135
+ 'old_default' => __( 'Old default', 'jquery-pin-it-button-for-images' ),
136
+ 'default' => __( 'Default', 'jquery-pin-it-button-for-images' ),
137
+ 'custom' => __( 'Custom', 'jquery-pin-it-button-for-images' )
138
+ ),
139
+ 'type' => 'select'
140
+ );
141
+
142
+ $res['pin_image_button'] = array(
143
+ 'key' => 'pin_image_button',
144
+ 'label' => __( 'Button', 'jquery-pin-it-button-for-images' ),
145
+ 'options' => array(
146
+ 'square' => __( 'Square', 'jquery-pin-it-button-for-images' ),
147
+ 'rounded-square' => __( 'Rounded square', 'jquery-pin-it-button-for-images' ),
148
+ 'round' => __( 'Round', 'jquery-pin-it-button-for-images' ),
149
+ 'rectangle' => __( 'Rectangle', 'jquery-pin-it-button-for-images' ),
150
+ 'rounded-rectangle' => __( 'Rounded rectangle', 'jquery-pin-it-button-for-images' )
151
+ ),
152
+ 'type' => 'select'
153
+ );
154
+
155
+ $res['pin_image_icon'] = array(
156
+ 'key' => 'pin_image_icon',
157
+ 'label' => __( 'Icon', 'jquery-pin-it-button-for-images' ),
158
+ 'options' => array(
159
+ 'circle' => __( 'Circle', 'jquery-pin-it-button-for-images' ),
160
+ 'plain' => __( 'Plain', 'jquery-pin-it-button-for-images' ),
161
+ 'thumb-tack' => __( 'Thumbtack', 'jquery-pin-it-button-for-images' ),
162
+ 'pushpin' => __( 'Thumbtack #2', 'jquery-pin-it-button-for-images' ),
163
+ 'pinterest2' => __( 'Classic', 'jquery-pin-it-button-for-images' ),
164
+ ),
165
+ 'type' => 'select'
166
+ );
167
+
168
+ $res['pin_image_size'] = array(
169
+ 'key' => 'pin_image_size',
170
+ 'label' => __( 'Size', 'jquery-pin-it-button-for-images' ),
171
+ 'options' => array(
172
+ 'small' => __( 'Small', 'jquery-pin-it-button-for-images' ),
173
+ 'normal' => __( 'Normal', 'jquery-pin-it-button-for-images' ),
174
+ 'large' => __( 'Large', 'jquery-pin-it-button-for-images' ),
175
+ ),
176
+ 'type' => 'select'
177
+ );
178
+
179
+ $res['custom_image_url'] = array(
180
+ 'key' => 'custom_image_url',
181
+ 'label' => __( 'URL address of the image', 'jquery-pin-it-button-for-images' ),
182
+ 'type' => 'string'
183
+ );
184
+
185
+ $image_size = array( 'min' => '0', 'step' => '1', 'unit' => 'px', 'type' => 'int' );
186
+ $res['custom_image_height'] = array_merge( $image_size, array(
187
+ 'key' => 'custom_image_height',
188
+ 'label' => __( 'Height', 'jquery-pin-it-button-for-images' ),
189
+ 'error_label' => __( 'Custom image height', 'jquery-pin-it-button-for-images' )
190
+ ) );
191
+ $res['custom_image_width'] = array_merge( $image_size, array(
192
+ 'key' => 'custom_image_width',
193
+ 'label' => __( 'Width', 'jquery-pin-it-button-for-images' ),
194
+ 'error_label' => __( 'Custom image width', 'jquery-pin-it-button-for-images' )
195
+ ) );
196
+
197
+ $res['scale_pin_image'] = array(
198
+ 'key' => 'scale_pin_image',
199
+ 'label' => __( 'Scale Pin Image', 'jquery-pin-it-button-for-images' ),
200
+ 'text' => __( 'Active', 'jquery-pin-it-button-for-images' ),
201
+ 'desc' => __( 'When checked, the "Pin it" button will scale down in size for smaller screens, ensuring best user experience. Left unchecked, the "Pin it" button will show up in full size no matter the screen size.', 'jquery-pin-it-button-for-images' ),
202
+ 'type' => 'boolean',
203
+ );
204
+
205
+ $res['pin_linked_url'] = array(
206
+ 'key' => 'pin_linked_url',
207
+ 'label' => __( 'Pin linked URL', 'jquery-pin-it-button-for-images' ),
208
+ 'text' => __( 'Active', 'jquery-pin-it-button-for-images' ),
209
+ 'desc' => __( 'When checked, if the image links to another URL in your domain, that URL goes to Pinterest instead of the current one.', 'jquery-pin-it-button-for-images' ),
210
+ 'type' => 'boolean',
211
+ );
212
+
213
+ foreach ( $res as $key => $setting ) {
214
+ $res[ $key ]['value'] = $option_value[ $key ];
215
+ }
216
+
217
+ return $res;
218
+ }
219
  }
includes/admin/settings/jpibfi_validator.php CHANGED
@@ -1,163 +1,163 @@
1
- <?php
2
-
3
- class JPIBFI_Validator {
4
-
5
- private $current;
6
- private $default;
7
- private $settings;
8
-
9
- private $result;
10
- /**
11
- * @var string[]
12
- */
13
- private $errors;
14
-
15
- function __construct( $current, $default, $settings ) {
16
- $this->current = $current;
17
- $this->default = $default;
18
- $this->settings = $settings;
19
-
20
- $this->process();
21
- }
22
-
23
- private function process() {
24
- $this->errors = array();
25
- $this->result = array();
26
-
27
- foreach ( $this->default as $key => $def_value ) {
28
- if ( ! isset( $this->settings[ $key ] ) ) {
29
- continue;
30
- }
31
- $setting = $this->settings[ $key ];
32
-
33
- $value = ! isset( $this->current[ $key ] )
34
- ? ( 'boolean' === $setting['type'] ? '' : $def_value )
35
- : $this->current[ $key ];
36
- $value = $this->try_sanitize_field( $value, $setting );
37
- $validation_result = $this->validate_field( $value, $this->settings[ $key ] );
38
- if ( true !== $validation_result ) {
39
- $this->errors[ $key ] = $validation_result;
40
- }
41
- $this->result[ $key ] = $value;
42
- }
43
- }
44
-
45
- function get_errors() {
46
- return $this->errors;
47
- }
48
-
49
- function get_result() {
50
- return $this->result;
51
- }
52
-
53
- /**
54
- * @param $error_type string
55
- * @param $error_default_format string
56
- * @param $setting array
57
- *
58
- * @return string
59
- */
60
- private function get_error_text( $error_type, $error_default_format, $setting ) {
61
- if ( isset( $setting['error_messages'] ) && isset( $setting['error_messages'][ $error_type ] ) ) {
62
- return $setting['error_messages'][ $error_type ];
63
- }
64
- $error_label = isset( $setting['error_label'] )
65
- ? $setting['error_label']
66
- : ( isset( $setting['label'] ) ? $setting['label'] : '' );
67
-
68
- return sprintf( $error_default_format, $error_label );
69
- }
70
-
71
- private function validate_field( $value, $setting ) {
72
- if ( ! isset( $setting['type'] ) ) {
73
- return true;
74
- }
75
- $func_name = 'validate_' . $setting['type'];
76
-
77
- if ( is_callable( array( $this, $func_name ) ) ) {
78
- return call_user_func( array( $this, $func_name ), $value, $setting );
79
- }
80
-
81
- return true;
82
- }
83
-
84
- private function validate_float( $value, $setting ) {
85
- if ( ! is_float( $value ) ) {
86
- return $this->get_error_text( 'type', __( '%1$s value is not a number.', 'jquery-pin-in-button-for-images' ), $setting );
87
- }
88
-
89
- return $this->validate_mix_max( $value, $setting );
90
- }
91
-
92
- private function validate_int( $value, $setting ) {
93
- if ( ! is_int( $value ) ) {
94
- return $this->get_error_text( 'type', __( '%1$s value is not a number.', 'jquery-pin-in-button-for-images' ), $setting );
95
- }
96
-
97
- return $this->validate_mix_max( $value, $setting );
98
- }
99
-
100
- private function validate_mix_max( $value, $setting ) {
101
- if ( isset( $setting['min'] ) && $value < $setting['min'] ) {
102
- return $this->get_error_text( 'min', __( '%1$s value is less than the minimum value of %2$s.', 'jquery-pin-in-button-for-images' ), $setting );
103
- }
104
- if ( isset( $setting['max'] ) && $value > $setting['max'] ) {
105
- return $this->get_error_text( 'max', __( '%1$s value is greater than the minimum value of %2$s.', 'jquery-pin-in-button-for-images' ), $setting );
106
- }
107
-
108
- return true;
109
- }
110
-
111
- private function validate_multiselect( $value, $setting ) {
112
- $err = __( '%1$s value is invalid.', 'jquery-pin-in-button-for-images' );
113
- if ( ! is_array( $value ) ) {
114
- return $this->get_error_text( 'type', $err, $setting );
115
- }
116
- if ( isset( $setting['min'] ) && count( $value ) < $setting['min'] ) {
117
- return $this->get_error_text( 'min', __('%1$s does not have enough selected records.', 'jquery-pin-in-button-for-images'), $setting);
118
- }
119
- $options_keys = array_keys( $setting['options'] );
120
- foreach ( $value as $name ) {
121
- if ( ! in_array( $name, $options_keys ) ) {
122
- return $this->get_error_text( 'type', $err, $setting );
123
- }
124
- }
125
-
126
- return true;
127
- }
128
-
129
- private function validate_select( $value, $setting ) {
130
- $options_keys = array_keys( $setting['options'] );
131
- if ( ! in_array( $value, $options_keys ) ) {
132
- $this->get_error_text( 'type', __( '%1$s value is invalid.', 'jquery-pin-in-button-for-images' ), $setting );
133
- }
134
-
135
- return true;
136
- }
137
-
138
- private function validate_string( $value, $setting ) {
139
- if ( isset( $setting['required' ] ) && '' == $value ) {
140
- return $this->get_error_text( 'required', __( '%1$s cannot be empty.', 'jquery-pin-in-button-for-images' ) , $setting );
141
- }
142
- return true;
143
- }
144
-
145
- private function try_sanitize_field( $value, $setting ) {
146
- if ( ! isset( $setting['type'] ) ) {
147
- return $value;
148
- }
149
- switch ( $setting['type'] ) {
150
- case 'int':
151
- return is_numeric( $value ) ? intval( $value ) : $value;
152
- case 'float':
153
- return is_numeric( $value ) ? floatval( $value ) : $value;
154
- case 'boolean':
155
- return 'on' === $value;
156
- case 'multiselect':
157
- return '' === $value ? array() : explode( ',', $value );
158
- default:
159
- return $value;
160
- }
161
- }
162
-
163
  }
1
+ <?php
2
+
3
+ class JPIBFI_Validator {
4
+
5
+ private $current;
6
+ private $default;
7
+ private $settings;
8
+
9
+ private $result;
10
+ /**
11
+ * @var string[]
12
+ */
13
+ private $errors;
14
+
15
+ function __construct( $current, $default, $settings ) {
16
+ $this->current = $current;
17
+ $this->default = $default;
18
+ $this->settings = $settings;
19
+
20
+ $this->process();
21
+ }
22
+
23
+ private function process() {
24
+ $this->errors = array();
25
+ $this->result = array();
26
+
27
+ foreach ( $this->default as $key => $def_value ) {
28
+ if ( ! isset( $this->settings[ $key ] ) ) {
29
+ continue;
30
+ }
31
+ $setting = $this->settings[ $key ];
32
+
33
+ $value = ! isset( $this->current[ $key ] )
34
+ ? ( 'boolean' === $setting['type'] ? '' : $def_value )
35
+ : $this->current[ $key ];
36
+ $value = $this->try_sanitize_field( $value, $setting );
37
+ $validation_result = $this->validate_field( $value, $this->settings[ $key ] );
38
+ if ( true !== $validation_result ) {
39
+ $this->errors[ $key ] = $validation_result;
40
+ }
41
+ $this->result[ $key ] = $value;
42
+ }
43
+ }
44
+
45
+ function get_errors() {
46
+ return $this->errors;
47
+ }
48
+
49
+ function get_result() {
50
+ return $this->result;
51
+ }
52
+
53
+ /**
54
+ * @param $error_type string
55
+ * @param $error_default_format string
56
+ * @param $setting array
57
+ *
58
+ * @return string
59
+ */
60
+ private function get_error_text( $error_type, $error_default_format, $setting ) {
61
+ if ( isset( $setting['error_messages'] ) && isset( $setting['error_messages'][ $error_type ] ) ) {
62
+ return $setting['error_messages'][ $error_type ];
63
+ }
64
+ $error_label = isset( $setting['error_label'] )
65
+ ? $setting['error_label']
66
+ : ( isset( $setting['label'] ) ? $setting['label'] : '' );
67
+
68
+ return sprintf( $error_default_format, $error_label );
69
+ }
70
+
71
+ private function validate_field( $value, $setting ) {
72
+ if ( ! isset( $setting['type'] ) ) {
73
+ return true;
74
+ }
75
+ $func_name = 'validate_' . $setting['type'];
76
+
77
+ if ( is_callable( array( $this, $func_name ) ) ) {
78
+ return call_user_func( array( $this, $func_name ), $value, $setting );
79
+ }
80
+
81
+ return true;
82
+ }
83
+
84
+ private function validate_float( $value, $setting ) {
85
+ if ( ! is_float( $value ) ) {
86
+ return $this->get_error_text( 'type', __( '%1$s value is not a number.', 'jquery-pin-in-button-for-images' ), $setting );
87
+ }
88
+
89
+ return $this->validate_mix_max( $value, $setting );
90
+ }
91
+
92
+ private function validate_int( $value, $setting ) {
93
+ if ( ! is_int( $value ) ) {
94
+ return $this->get_error_text( 'type', __( '%1$s value is not a number.', 'jquery-pin-in-button-for-images' ), $setting );
95
+ }
96
+
97
+ return $this->validate_mix_max( $value, $setting );
98
+ }
99
+
100
+ private function validate_mix_max( $value, $setting ) {
101
+ if ( isset( $setting['min'] ) && $value < $setting['min'] ) {
102
+ return $this->get_error_text( 'min', __( '%1$s value is less than the minimum value of %2$s.', 'jquery-pin-in-button-for-images' ), $setting );
103
+ }
104
+ if ( isset( $setting['max'] ) && $value > $setting['max'] ) {
105
+ return $this->get_error_text( 'max', __( '%1$s value is greater than the minimum value of %2$s.', 'jquery-pin-in-button-for-images' ), $setting );
106
+ }
107
+
108
+ return true;
109
+ }
110
+
111
+ private function validate_multiselect( $value, $setting ) {
112
+ $err = __( '%1$s value is invalid.', 'jquery-pin-in-button-for-images' );
113
+ if ( ! is_array( $value ) ) {
114
+ return $this->get_error_text( 'type', $err, $setting );
115
+ }
116
+ if ( isset( $setting['min'] ) && count( $value ) < $setting['min'] ) {
117
+ return $this->get_error_text( 'min', __('%1$s does not have enough selected records.', 'jquery-pin-in-button-for-images'), $setting);
118
+ }
119
+ $options_keys = array_keys( $setting['options'] );
120
+ foreach ( $value as $name ) {
121
+ if ( ! in_array( $name, $options_keys ) ) {
122
+ return $this->get_error_text( 'type', $err, $setting );
123
+ }
124
+ }
125
+
126
+ return true;
127
+ }
128
+
129
+ private function validate_select( $value, $setting ) {
130
+ $options_keys = array_keys( $setting['options'] );
131
+ if ( ! in_array( $value, $options_keys ) ) {
132
+ $this->get_error_text( 'type', __( '%1$s value is invalid.', 'jquery-pin-in-button-for-images' ), $setting );
133
+ }
134
+
135
+ return true;
136
+ }
137
+
138
+ private function validate_string( $value, $setting ) {
139
+ if ( isset( $setting['required' ] ) && '' == $value ) {
140
+ return $this->get_error_text( 'required', __( '%1$s cannot be empty.', 'jquery-pin-in-button-for-images' ) , $setting );
141
+ }
142
+ return true;
143
+ }
144
+
145
+ private function try_sanitize_field( $value, $setting ) {
146
+ if ( ! isset( $setting['type'] ) ) {
147
+ return $value;
148
+ }
149
+ switch ( $setting['type'] ) {
150
+ case 'int':
151
+ return is_numeric( $value ) ? intval( $value ) : $value;
152
+ case 'float':
153
+ return is_numeric( $value ) ? floatval( $value ) : $value;
154
+ case 'boolean':
155
+ return 'on' === $value;
156
+ case 'multiselect':
157
+ return '' === $value ? array() : explode( ',', $value );
158
+ default:
159
+ return $value;
160
+ }
161
+ }
162
+
163
  }
includes/includes/JPIBFI_Version_Updater.php CHANGED
@@ -1,28 +1,28 @@
1
- <?php
2
-
3
- class JPIBFI_Version_Updater {
4
-
5
- private $version;
6
- private $option_name = 'jpibfi_version';
7
-
8
- function __construct( $version ) {
9
- $this->version = $version;
10
- }
11
-
12
- function update() {
13
- $version = get_option( $this->option_name );
14
- if ( $this->version == $version ) {
15
- return;
16
- }
17
-
18
- if ( version_compare( $version, '2.2.3', 'lt' ) ) {
19
- $this->update_2_2_3();
20
- }
21
- update_option( $this->option_name, $this->version );
22
- }
23
-
24
- private function update_2_2_3() {
25
- require_once 'versions/JPIBFI_Version_Update_2_2_3.php';
26
- new JPIBFI_Version_Update_2_2_3();
27
- }
28
  }
1
+ <?php
2
+
3
+ class JPIBFI_Version_Updater {
4
+
5
+ private $version;
6
+ private $option_name = 'jpibfi_version';
7
+
8
+ function __construct( $version ) {
9
+ $this->version = $version;
10
+ }
11
+
12
+ function update() {
13
+ $version = get_option( $this->option_name );
14
+ if ( $this->version == $version ) {
15
+ return;
16
+ }
17
+
18
+ if ( version_compare( $version, '2.2.3', 'lt' ) ) {
19
+ $this->update_2_2_3();
20
+ }
21
+ update_option( $this->option_name, $this->version );
22
+ }
23
+
24
+ private function update_2_2_3() {
25
+ require_once 'versions/JPIBFI_Version_Update_2_2_3.php';
26
+ new JPIBFI_Version_Update_2_2_3();
27
+ }
28
  }
includes/includes/jpibfi-edd-sl-plugin-updater.php CHANGED
@@ -1,476 +1,476 @@
1
- <?php
2
-
3
- // Exit if accessed directly
4
- if ( ! defined( 'ABSPATH' ) ) exit;
5
-
6
- /**
7
- * Allows plugins to use their own update API.
8
- *
9
- * @author Easy Digital Downloads
10
- * @version 1.6.12
11
- */
12
- class JPIBFI_EDD_SL_Plugin_Updater {
13
-
14
- private $api_url = '';
15
- private $api_data = array();
16
- private $name = '';
17
- private $slug = '';
18
- private $version = '';
19
- private $wp_override = false;
20
- private $cache_key = '';
21
-
22
- /**
23
- * Class constructor.
24
- *
25
- * @uses plugin_basename()
26
- * @uses hook()
27
- *
28
- * @param string $_api_url The URL pointing to the custom API endpoint.
29
- * @param string $_plugin_file Path to the plugin file.
30
- * @param array $_api_data Optional data to send with API calls.
31
- */
32
- public function __construct( $_api_url, $_plugin_file, $_api_data = null ) {
33
-
34
- global $edd_plugin_data;
35
-
36
- $this->api_url = trailingslashit( $_api_url );
37
- $this->api_data = $_api_data;
38
- $this->name = plugin_basename( $_plugin_file );
39
- $this->slug = basename( $_plugin_file, '.php' );
40
- $this->version = $_api_data['version'];
41
- $this->wp_override = isset( $_api_data['wp_override'] ) ? (bool) $_api_data['wp_override'] : false;
42
- $this->beta = ! empty( $this->api_data['beta'] ) ? true : false;
43
- $this->cache_key = md5( serialize( $this->slug . $this->api_data['license'] . $this->beta ) );
44
-
45
- $edd_plugin_data[ $this->slug ] = $this->api_data;
46
-
47
- // Set up hooks.
48
- $this->init();
49
-
50
- }
51
-
52
- /**
53
- * Set up WordPress filters to hook into WP's update process.
54
- *
55
- * @uses add_filter()
56
- *
57
- * @return void
58
- */
59
- public function init() {
60
-
61
- add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
62
- add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 );
63
- remove_action( 'after_plugin_row_' . $this->name, 'wp_plugin_update_row', 10 );
64
- add_action( 'after_plugin_row_' . $this->name, array( $this, 'show_update_notification' ), 10, 2 );
65
- add_action( 'admin_init', array( $this, 'show_changelog' ) );
66
-
67
- }
68
-
69
- /**
70
- * Check for Updates at the defined API endpoint and modify the update array.
71
- *
72
- * This function dives into the update API just when WordPress creates its update array,
73
- * then adds a custom API call and injects the custom plugin data retrieved from the API.
74
- * It is reassembled from parts of the native WordPress plugin update code.
75
- * See wp-includes/update.php line 121 for the original wp_update_plugins() function.
76
- *
77
- * @uses api_request()
78
- *
79
- * @param array $_transient_data Update array build by WordPress.
80
- * @return array Modified update array with custom plugin data.
81
- */
82
- public function check_update( $_transient_data ) {
83
-
84
- global $pagenow;
85
-
86
- if ( ! is_object( $_transient_data ) ) {
87
- $_transient_data = new stdClass;
88
- }
89
-
90
- if ( 'plugins.php' == $pagenow && is_multisite() ) {
91
- return $_transient_data;
92
- }
93
-
94
- if ( ! empty( $_transient_data->response ) && ! empty( $_transient_data->response[ $this->name ] ) && false === $this->wp_override ) {
95
- return $_transient_data;
96
- }
97
-
98
- $version_info = $this->get_cached_version_info();
99
-
100
- if ( false === $version_info ) {
101
- $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug, 'beta' => $this->beta ) );
102
-
103
- $this->set_version_info_cache( $version_info );
104
-
105
- }
106
-
107
- if ( false !== $version_info && is_object( $version_info ) && isset( $version_info->new_version ) ) {
108
-
109
- if ( version_compare( $this->version, $version_info->new_version, '<' ) ) {
110
-
111
- $_transient_data->response[ $this->name ] = $version_info;
112
-
113
- }
114
-
115
- $_transient_data->last_checked = current_time( 'timestamp' );
116
- $_transient_data->checked[ $this->name ] = $this->version;
117
-
118
- }
119
-
120
- return $_transient_data;
121
- }
122
-
123
- /**
124
- * show update nofication row -- needed for multisite subsites, because WP won't tell you otherwise!
125
- *
126
- * @param string $file
127
- * @param array $plugin
128
- */
129
- public function show_update_notification( $file, $plugin ) {
130
-
131
- if ( is_network_admin() ) {
132
- return;
133
- }
134
-
135
- if( ! current_user_can( 'update_plugins' ) ) {
136
- return;
137
- }
138
-
139
- if( ! is_multisite() ) {
140
- return;
141
- }
142
-
143
- if ( $this->name != $file ) {
144
- return;
145
- }
146
-
147
- // Remove our filter on the site transient
148
- remove_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ), 10 );
149
-
150
- $update_cache = get_site_transient( 'update_plugins' );
151
-
152
- $update_cache = is_object( $update_cache ) ? $update_cache : new stdClass();
153
-
154
- if ( empty( $update_cache->response ) || empty( $update_cache->response[ $this->name ] ) ) {
155
-
156
- $version_info = $this->get_cached_version_info();
157
-
158
- if ( false === $version_info ) {
159
- $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug, 'beta' => $this->beta ) );
160
-
161
- $this->set_version_info_cache( $version_info );
162
- }
163
-
164
- if ( ! is_object( $version_info ) ) {
165
- return;
166
- }
167
-
168
- if ( version_compare( $this->version, $version_info->new_version, '<' ) ) {
169
-
170
- $update_cache->response[ $this->name ] = $version_info;
171
-
172
- }
173
-
174
- $update_cache->last_checked = current_time( 'timestamp' );
175
- $update_cache->checked[ $this->name ] = $this->version;
176
-
177
- set_site_transient( 'update_plugins', $update_cache );
178
-
179
- } else {
180
-
181
- $version_info = $update_cache->response[ $this->name ];
182
-
183
- }
184
-
185
- // Restore our filter
186
- add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
187
-
188
- if ( ! empty( $update_cache->response[ $this->name ] ) && version_compare( $this->version, $version_info->new_version, '<' ) ) {
189
-
190
- // build a plugin list row, with update notification
191
- $wp_list_table = _get_list_table( 'WP_Plugins_List_Table' );
192
- # <tr class="plugin-update-tr"><td colspan="' . $wp_list_table->get_column_count() . '" class="plugin-update colspanchange">
193
- echo '<tr class="plugin-update-tr" id="' . $this->slug . '-update" data-slug="' . $this->slug . '" data-plugin="' . $this->slug . '/' . $file . '">';
194
- echo '<td colspan="3" class="plugin-update colspanchange">';
195
- echo '<div class="update-message notice inline notice-warning notice-alt">';
196
-
197
- $changelog_link = self_admin_url( 'index.php?edd_sl_action=view_plugin_changelog&plugin=' . $this->name . '&slug=' . $this->slug . '&TB_iframe=true&width=772&height=911' );
198
-
199
- if ( empty( $version_info->download_link ) ) {
200
- printf(
201
- __( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s.', 'easy-digital-downloads' ),
202
- esc_html( $version_info->name ),
203
- '<a target="_blank" class="thickbox" href="' . esc_url( $changelog_link ) . '">',
204
- esc_html( $version_info->new_version ),
205
- '</a>'
206
- );
207
- } else {
208
- printf(
209
- __( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s or %5$supdate now%6$s.', 'easy-digital-downloads' ),
210
- esc_html( $version_info->name ),
211
- '<a target="_blank" class="thickbox" href="' . esc_url( $changelog_link ) . '">',
212
- esc_html( $version_info->new_version ),
213
- '</a>',
214
- '<a href="' . esc_url( wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' ) . $this->name, 'upgrade-plugin_' . $this->name ) ) .'">',
215
- '</a>'
216
- );
217
- }
218
-
219
- do_action( "in_plugin_update_message-{$file}", $plugin, $version_info );
220
-
221
- echo '</div></td></tr>';
222
- }
223
- }
224
-
225
- /**
226
- * Updates information on the "View version x.x details" page with custom data.
227
- *
228
- * @uses api_request()
229
- *
230
- * @param mixed $_data
231
- * @param string $_action
232
- * @param object $_args
233
- * @return object $_data
234
- */
235
- public function plugins_api_filter( $_data, $_action = '', $_args = null ) {
236
-
237
- if ( $_action != 'plugin_information' ) {
238
-
239
- return $_data;
240
-
241
- }
242
-
243
- if ( ! isset( $_args->slug ) || ( $_args->slug != $this->slug ) ) {
244
-
245
- return $_data;
246
-
247
- }
248
-
249
- $to_send = array(
250
- 'slug' => $this->slug,
251
- 'is_ssl' => is_ssl(),
252
- 'fields' => array(
253
- 'banners' => array(),
254
- 'reviews' => false
255
- )
256
- );
257
-
258
- $cache_key = 'edd_api_request_' . md5( serialize( $this->slug . $this->api_data['license'] . $this->beta ) );
259
-
260
- // Get the transient where we store the api request for this plugin for 24 hours
261
- $edd_api_request_transient = $this->get_cached_version_info( $cache_key );
262
-
263
- //If we have no transient-saved value, run the API, set a fresh transient with the API value, and return that value too right now.
264
- if ( empty( $edd_api_request_transient ) ) {
265
-
266
- $api_response = $this->api_request( 'plugin_information', $to_send );
267
-
268
- // Expires in 3 hours
269
- $this->set_version_info_cache( $api_response, $cache_key );
270
-
271
- if ( false !== $api_response ) {
272
- $_data = $api_response;
273
- }
274
-
275
- } else {
276
- $_data = $edd_api_request_transient;
277
- }
278
-
279
- // Convert sections into an associative array, since we're getting an object, but Core expects an array.
280
- if ( isset( $_data->sections ) && ! is_array( $_data->sections ) ) {
281
- $new_sections = array();
282
- foreach ( $_data->sections as $key => $value ) {
283
- $new_sections[ $key ] = $value;
284
- }
285
-
286
- $_data->sections = $new_sections;
287
- }
288
-
289
- // Convert banners into an associative array, since we're getting an object, but Core expects an array.
290
- if ( isset( $_data->banners ) && ! is_array( $_data->banners ) ) {
291
- $new_banners = array();
292
- foreach ( $_data->banners as $key => $value ) {
293
- $new_banners[ $key ] = $value;
294
- }
295
-
296
- $_data->banners = $new_banners;
297
- }
298
-
299
- return $_data;
300
- }
301
-
302
- /**
303
- * Disable SSL verification in order to prevent download update failures
304
- *
305
- * @param array $args
306
- * @param string $url
307
- * @return object $array
308
- */
309
- public function http_request_args( $args, $url ) {
310
- // If it is an https request and we are performing a package download, disable ssl verification
311
- if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) {
312
- $args['sslverify'] = false;
313
- }
314
- return $args;
315
- }
316
-
317
- /**
318
- * Calls the API and, if successfull, returns the object delivered by the API.
319
- *
320
- * @uses get_bloginfo()
321
- * @uses wp_remote_post()
322
- * @uses is_wp_error()
323
- *
324
- * @param string $_action The requested action.
325
- * @param array $_data Parameters for the API action.
326
- * @return false|object
327
- */
328
- private function api_request( $_action, $_data ) {
329
-
330
- global $wp_version;
331
-
332
- $data = array_merge( $this->api_data, $_data );
333
-
334
- if ( $data['slug'] != $this->slug ) {
335
- return;
336
- }
337
-
338
- if( $this->api_url == trailingslashit (home_url() ) ) {
339
- return false; // Don't allow a plugin to ping itself
340
- }
341
-
342
- $api_params = array(
343
- 'edd_action' => 'get_version',
344
- 'license' => ! empty( $data['license'] ) ? $data['license'] : '',
345
- 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false,
346
- 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false,
347
- 'version' => isset( $data['version'] ) ? $data['version'] : false,
348
- 'slug' => $data['slug'],
349
- 'author' => $data['author'],
350
- 'url' => home_url(),
351
- 'beta' => ! empty( $data['beta'] ),
352
- );
353
-
354
- $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
355
-
356
- if ( ! is_wp_error( $request ) ) {
357
- $request = json_decode( wp_remote_retrieve_body( $request ) );
358
- }
359
-
360
- if ( $request && isset( $request->sections ) ) {
361
- $request->sections = maybe_unserialize( $request->sections );
362
- } else {
363
- $request = false;
364
- }
365
-
366
- if ( $request && isset( $request->banners ) ) {
367
- $request->banners = maybe_unserialize( $request->banners );
368
- }
369
-
370
- if( ! empty( $request->sections ) ) {
371
- foreach( $request->sections as $key => $section ) {
372
- $request->$key = (array) $section;
373
- }
374
- }
375
-
376
- return $request;
377
- }
378
-
379
- public function show_changelog() {
380
-
381
- global $edd_plugin_data;
382
-
383
- if( empty( $_REQUEST['edd_sl_action'] ) || 'view_plugin_changelog' != $_REQUEST['edd_sl_action'] ) {
384
- return;
385
- }
386
-
387
- if( empty( $_REQUEST['plugin'] ) ) {
388
- return;
389
- }
390
-
391
- if( empty( $_REQUEST['slug'] ) ) {
392
- return;
393
- }
394
-
395
- if( ! current_user_can( 'update_plugins' ) ) {
396
- wp_die( __( 'You do not have permission to install plugin updates', 'easy-digital-downloads' ), __( 'Error', 'easy-digital-downloads' ), array( 'response' => 403 ) );
397
- }
398
-
399
- $data = $edd_plugin_data[ $_REQUEST['slug'] ];
400
- $beta = ! empty( $data['beta'] ) ? true : false;
401
- $cache_key = md5( 'edd_plugin_' . sanitize_key( $_REQUEST['plugin'] ) . '_' . $beta . '_version_info' );
402
- $version_info = $this->get_cached_version_info( $cache_key );
403
-
404
- if( false === $version_info ) {
405
-
406
- $api_params = array(
407
- 'edd_action' => 'get_version',
408
- 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false,
409
- 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false,
410
- 'slug' => $_REQUEST['slug'],
411
- 'author' => $data['author'],
412
- 'url' => home_url(),
413
- 'beta' => ! empty( $data['beta'] )
414
- );
415
-
416
- $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
417
-
418
- if ( ! is_wp_error( $request ) ) {
419
- $version_info = json_decode( wp_remote_retrieve_body( $request ) );
420
- }
421
-
422
-
423
- if ( ! empty( $version_info ) && isset( $version_info->sections ) ) {
424
- $version_info->sections = maybe_unserialize( $version_info->sections );
425
- } else {
426
- $version_info = false;
427
- }
428
-
429
- if( ! empty( $version_info ) ) {
430
- foreach( $version_info->sections as $key => $section ) {
431
- $version_info->$key = (array) $section;
432
- }
433
- }
434
-
435
- $this->set_version_info_cache( $version_info, $cache_key );
436
-
437
- }
438
-
439
- if( ! empty( $version_info ) && isset( $version_info->sections['changelog'] ) ) {
440
- echo '<div style="background:#fff;padding:10px;">' . $version_info->sections['changelog'] . '</div>';
441
- }
442
-
443
- exit;
444
- }
445
-
446
- public function get_cached_version_info( $cache_key = '' ) {
447
-
448
- if( empty( $cache_key ) ) {
449
- $cache_key = $this->cache_key;
450
- }
451
-
452
- $cache = get_option( $cache_key );
453
-
454
- if( empty( $cache['timeout'] ) || current_time( 'timestamp' ) > $cache['timeout'] ) {
455
- return false; // Cache is expired
456
- }
457
-
458
- return json_decode( $cache['value'] );
459
-
460
- }
461
-
462
- public function set_version_info_cache( $value = '', $cache_key = '' ) {
463
-
464
- if( empty( $cache_key ) ) {
465
- $cache_key = $this->cache_key;
466
- }
467
-
468
- $data = array(
469
- 'timeout' => strtotime( '+3 hours', current_time( 'timestamp' ) ),
470
- 'value' => json_encode( $value )
471
- );
472
-
473
- update_option( $cache_key, $data );
474
-
475
- }
476
  }
1
+ <?php
2
+
3
+ // Exit if accessed directly
4
+ if ( ! defined( 'ABSPATH' ) ) exit;
5
+
6
+ /**
7
+ * Allows plugins to use their own update API.
8
+ *
9
+ * @author Easy Digital Downloads
10
+ * @version 1.6.12
11
+ */
12
+ class JPIBFI_EDD_SL_Plugin_Updater {
13
+
14
+ private $api_url = '';
15
+ private $api_data = array();
16
+ private $name = '';
17
+ private $slug = '';
18
+ private $version = '';
19
+ private $wp_override = false;
20
+ private $cache_key = '';
21
+
22
+ /**
23
+ * Class constructor.
24
+ *
25
+ * @uses plugin_basename()
26
+ * @uses hook()
27
+ *
28
+ * @param string $_api_url The URL pointing to the custom API endpoint.
29
+ * @param string $_plugin_file Path to the plugin file.
30
+ * @param array $_api_data Optional data to send with API calls.
31
+ */
32
+ public function __construct( $_api_url, $_plugin_file, $_api_data = null ) {
33
+
34
+ global $edd_plugin_data;
35
+
36
+ $this->api_url = trailingslashit( $_api_url );
37
+ $this->api_data = $_api_data;
38
+ $this->name = plugin_basename( $_plugin_file );
39
+ $this->slug = basename( $_plugin_file, '.php' );
40
+ $this->version = $_api_data['version'];
41
+ $this->wp_override = isset( $_api_data['wp_override'] ) ? (bool) $_api_data['wp_override'] : false;
42
+ $this->beta = ! empty( $this->api_data['beta'] ) ? true : false;
43
+ $this->cache_key = md5( serialize( $this->slug . $this->api_data['license'] . $this->beta ) );
44
+
45
+ $edd_plugin_data[ $this->slug ] = $this->api_data;
46
+
47
+ // Set up hooks.
48
+ $this->init();
49
+
50
+ }
51
+
52
+ /**
53
+ * Set up WordPress filters to hook into WP's update process.
54
+ *
55
+ * @uses add_filter()
56
+ *
57
+ * @return void
58
+ */
59
+ public function init() {
60
+
61
+ add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
62
+ add_filter( 'plugins_api', array( $this, 'plugins_api_filter' ), 10, 3 );
63
+ remove_action( 'after_plugin_row_' . $this->name, 'wp_plugin_update_row', 10 );
64
+ add_action( 'after_plugin_row_' . $this->name, array( $this, 'show_update_notification' ), 10, 2 );
65
+ add_action( 'admin_init', array( $this, 'show_changelog' ) );
66
+
67
+ }
68
+
69
+ /**
70
+ * Check for Updates at the defined API endpoint and modify the update array.
71
+ *
72
+ * This function dives into the update API just when WordPress creates its update array,
73
+ * then adds a custom API call and injects the custom plugin data retrieved from the API.
74
+ * It is reassembled from parts of the native WordPress plugin update code.
75
+ * See wp-includes/update.php line 121 for the original wp_update_plugins() function.
76
+ *
77
+ * @uses api_request()
78
+ *
79
+ * @param array $_transient_data Update array build by WordPress.
80
+ * @return array Modified update array with custom plugin data.
81
+ */
82
+ public function check_update( $_transient_data ) {
83
+
84
+ global $pagenow;
85
+
86
+ if ( ! is_object( $_transient_data ) ) {
87
+ $_transient_data = new stdClass;
88
+ }
89
+
90
+ if ( 'plugins.php' == $pagenow && is_multisite() ) {
91
+ return $_transient_data;
92
+ }
93
+
94
+ if ( ! empty( $_transient_data->response ) && ! empty( $_transient_data->response[ $this->name ] ) && false === $this->wp_override ) {
95
+ return $_transient_data;
96
+ }
97
+
98
+ $version_info = $this->get_cached_version_info();
99
+
100
+ if ( false === $version_info ) {
101
+ $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug, 'beta' => $this->beta ) );
102
+
103
+ $this->set_version_info_cache( $version_info );
104
+
105
+ }
106
+
107
+ if ( false !== $version_info && is_object( $version_info ) && isset( $version_info->new_version ) ) {
108
+
109
+ if ( version_compare( $this->version, $version_info->new_version, '<' ) ) {
110
+
111
+ $_transient_data->response[ $this->name ] = $version_info;
112
+
113
+ }
114
+
115
+ $_transient_data->last_checked = current_time( 'timestamp' );
116
+ $_transient_data->checked[ $this->name ] = $this->version;
117
+
118
+ }
119
+
120
+ return $_transient_data;
121
+ }
122
+
123
+ /**
124
+ * show update nofication row -- needed for multisite subsites, because WP won't tell you otherwise!
125
+ *
126
+ * @param string $file
127
+ * @param array $plugin
128
+ */
129
+ public function show_update_notification( $file, $plugin ) {
130
+
131
+ if ( is_network_admin() ) {
132
+ return;
133
+ }
134
+
135
+ if( ! current_user_can( 'update_plugins' ) ) {
136
+ return;
137
+ }
138
+
139
+ if( ! is_multisite() ) {
140
+ return;
141
+ }
142
+
143
+ if ( $this->name != $file ) {
144
+ return;
145
+ }
146
+
147
+ // Remove our filter on the site transient
148
+ remove_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ), 10 );
149
+
150
+ $update_cache = get_site_transient( 'update_plugins' );
151
+
152
+ $update_cache = is_object( $update_cache ) ? $update_cache : new stdClass();
153
+
154
+ if ( empty( $update_cache->response ) || empty( $update_cache->response[ $this->name ] ) ) {
155
+
156
+ $version_info = $this->get_cached_version_info();
157
+
158
+ if ( false === $version_info ) {
159
+ $version_info = $this->api_request( 'plugin_latest_version', array( 'slug' => $this->slug, 'beta' => $this->beta ) );
160
+
161
+ $this->set_version_info_cache( $version_info );
162
+ }
163
+
164
+ if ( ! is_object( $version_info ) ) {
165
+ return;
166
+ }
167
+
168
+ if ( version_compare( $this->version, $version_info->new_version, '<' ) ) {
169
+
170
+ $update_cache->response[ $this->name ] = $version_info;
171
+
172
+ }
173
+
174
+ $update_cache->last_checked = current_time( 'timestamp' );
175
+ $update_cache->checked[ $this->name ] = $this->version;
176
+
177
+ set_site_transient( 'update_plugins', $update_cache );
178
+
179
+ } else {
180
+
181
+ $version_info = $update_cache->response[ $this->name ];
182
+
183
+ }
184
+
185
+ // Restore our filter
186
+ add_filter( 'pre_set_site_transient_update_plugins', array( $this, 'check_update' ) );
187
+
188
+ if ( ! empty( $update_cache->response[ $this->name ] ) && version_compare( $this->version, $version_info->new_version, '<' ) ) {
189
+
190
+ // build a plugin list row, with update notification
191
+ $wp_list_table = _get_list_table( 'WP_Plugins_List_Table' );
192
+ # <tr class="plugin-update-tr"><td colspan="' . $wp_list_table->get_column_count() . '" class="plugin-update colspanchange">
193
+ echo '<tr class="plugin-update-tr" id="' . $this->slug . '-update" data-slug="' . $this->slug . '" data-plugin="' . $this->slug . '/' . $file . '">';
194
+ echo '<td colspan="3" class="plugin-update colspanchange">';
195
+ echo '<div class="update-message notice inline notice-warning notice-alt">';
196
+
197
+ $changelog_link = self_admin_url( 'index.php?edd_sl_action=view_plugin_changelog&plugin=' . $this->name . '&slug=' . $this->slug . '&TB_iframe=true&width=772&height=911' );
198
+
199
+ if ( empty( $version_info->download_link ) ) {
200
+ printf(
201
+ __( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s.', 'easy-digital-downloads' ),
202
+ esc_html( $version_info->name ),
203
+ '<a target="_blank" class="thickbox" href="' . esc_url( $changelog_link ) . '">',
204
+ esc_html( $version_info->new_version ),
205
+ '</a>'
206
+ );
207
+ } else {
208
+ printf(
209
+ __( 'There is a new version of %1$s available. %2$sView version %3$s details%4$s or %5$supdate now%6$s.', 'easy-digital-downloads' ),
210
+ esc_html( $version_info->name ),
211
+ '<a target="_blank" class="thickbox" href="' . esc_url( $changelog_link ) . '">',
212
+ esc_html( $version_info->new_version ),
213
+ '</a>',
214
+ '<a href="' . esc_url( wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' ) . $this->name, 'upgrade-plugin_' . $this->name ) ) .'">',
215
+ '</a>'
216
+ );
217
+ }
218
+
219
+ do_action( "in_plugin_update_message-{$file}", $plugin, $version_info );
220
+
221
+ echo '</div></td></tr>';
222
+ }
223
+ }
224
+
225
+ /**
226
+ * Updates information on the "View version x.x details" page with custom data.
227
+ *
228
+ * @uses api_request()
229
+ *
230
+ * @param mixed $_data
231
+ * @param string $_action
232
+ * @param object $_args
233
+ * @return object $_data
234
+ */
235
+ public function plugins_api_filter( $_data, $_action = '', $_args = null ) {
236
+
237
+ if ( $_action != 'plugin_information' ) {
238
+
239
+ return $_data;
240
+
241
+ }
242
+
243
+ if ( ! isset( $_args->slug ) || ( $_args->slug != $this->slug ) ) {
244
+
245
+ return $_data;
246
+
247
+ }
248
+
249
+ $to_send = array(
250
+ 'slug' => $this->slug,
251
+ 'is_ssl' => is_ssl(),
252
+ 'fields' => array(
253
+ 'banners' => array(),
254
+ 'reviews' => false
255
+ )
256
+ );
257
+
258
+ $cache_key = 'edd_api_request_' . md5( serialize( $this->slug . $this->api_data['license'] . $this->beta ) );
259
+
260
+ // Get the transient where we store the api request for this plugin for 24 hours
261
+ $edd_api_request_transient = $this->get_cached_version_info( $cache_key );
262
+
263
+ //If we have no transient-saved value, run the API, set a fresh transient with the API value, and return that value too right now.
264
+ if ( empty( $edd_api_request_transient ) ) {
265
+
266
+ $api_response = $this->api_request( 'plugin_information', $to_send );
267
+
268
+ // Expires in 3 hours
269
+ $this->set_version_info_cache( $api_response, $cache_key );
270
+
271
+ if ( false !== $api_response ) {
272
+ $_data = $api_response;
273
+ }
274
+
275
+ } else {
276
+ $_data = $edd_api_request_transient;
277
+ }
278
+
279
+ // Convert sections into an associative array, since we're getting an object, but Core expects an array.
280
+ if ( isset( $_data->sections ) && ! is_array( $_data->sections ) ) {
281
+ $new_sections = array();
282
+ foreach ( $_data->sections as $key => $value ) {
283
+ $new_sections[ $key ] = $value;
284
+ }
285
+
286
+ $_data->sections = $new_sections;
287
+ }
288
+
289
+ // Convert banners into an associative array, since we're getting an object, but Core expects an array.
290
+ if ( isset( $_data->banners ) && ! is_array( $_data->banners ) ) {
291
+ $new_banners = array();
292
+ foreach ( $_data->banners as $key => $value ) {
293
+ $new_banners[ $key ] = $value;
294
+ }
295
+
296
+ $_data->banners = $new_banners;
297
+ }
298
+
299
+ return $_data;
300
+ }
301
+
302
+ /**
303
+ * Disable SSL verification in order to prevent download update failures
304
+ *
305
+ * @param array $args
306
+ * @param string $url
307
+ * @return object $array
308
+ */
309
+ public function http_request_args( $args, $url ) {
310
+ // If it is an https request and we are performing a package download, disable ssl verification
311
+ if ( strpos( $url, 'https://' ) !== false && strpos( $url, 'edd_action=package_download' ) ) {
312
+ $args['sslverify'] = false;
313
+ }
314
+ return $args;
315
+ }
316
+
317
+ /**
318
+ * Calls the API and, if successfull, returns the object delivered by the API.
319
+ *
320
+ * @uses get_bloginfo()
321
+ * @uses wp_remote_post()
322
+ * @uses is_wp_error()
323
+ *
324
+ * @param string $_action The requested action.
325
+ * @param array $_data Parameters for the API action.
326
+ * @return false|object
327
+ */
328
+ private function api_request( $_action, $_data ) {
329
+
330
+ global $wp_version;
331
+
332
+ $data = array_merge( $this->api_data, $_data );
333
+
334
+ if ( $data['slug'] != $this->slug ) {
335
+ return;
336
+ }
337
+
338
+ if( $this->api_url == trailingslashit (home_url() ) ) {
339
+ return false; // Don't allow a plugin to ping itself
340
+ }
341
+
342
+ $api_params = array(
343
+ 'edd_action' => 'get_version',
344
+ 'license' => ! empty( $data['license'] ) ? $data['license'] : '',
345
+ 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false,
346
+ 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false,
347
+ 'version' => isset( $data['version'] ) ? $data['version'] : false,
348
+ 'slug' => $data['slug'],
349
+ 'author' => $data['author'],
350
+ 'url' => home_url(),
351
+ 'beta' => ! empty( $data['beta'] ),
352
+ );
353
+
354
+ $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
355
+
356
+ if ( ! is_wp_error( $request ) ) {
357
+ $request = json_decode( wp_remote_retrieve_body( $request ) );
358
+ }
359
+
360
+ if ( $request && isset( $request->sections ) ) {
361
+ $request->sections = maybe_unserialize( $request->sections );
362
+ } else {
363
+ $request = false;
364
+ }
365
+
366
+ if ( $request && isset( $request->banners ) ) {
367
+ $request->banners = maybe_unserialize( $request->banners );
368
+ }
369
+
370
+ if( ! empty( $request->sections ) ) {
371
+ foreach( $request->sections as $key => $section ) {
372
+ $request->$key = (array) $section;
373
+ }
374
+ }
375
+
376
+ return $request;
377
+ }
378
+
379
+ public function show_changelog() {
380
+
381
+ global $edd_plugin_data;
382
+
383
+ if( empty( $_REQUEST['edd_sl_action'] ) || 'view_plugin_changelog' != $_REQUEST['edd_sl_action'] ) {
384
+ return;
385
+ }
386
+
387
+ if( empty( $_REQUEST['plugin'] ) ) {
388
+ return;
389
+ }
390
+
391
+ if( empty( $_REQUEST['slug'] ) ) {
392
+ return;
393
+ }
394
+
395
+ if( ! current_user_can( 'update_plugins' ) ) {
396
+ wp_die( __( 'You do not have permission to install plugin updates', 'easy-digital-downloads' ), __( 'Error', 'easy-digital-downloads' ), array( 'response' => 403 ) );
397
+ }
398
+
399
+ $data = $edd_plugin_data[ $_REQUEST['slug'] ];
400
+ $beta = ! empty( $data['beta'] ) ? true : false;
401
+ $cache_key = md5( 'edd_plugin_' . sanitize_key( $_REQUEST['plugin'] ) . '_' . $beta . '_version_info' );
402
+ $version_info = $this->get_cached_version_info( $cache_key );
403
+
404
+ if( false === $version_info ) {
405
+
406
+ $api_params = array(
407
+ 'edd_action' => 'get_version',
408
+ 'item_name' => isset( $data['item_name'] ) ? $data['item_name'] : false,
409
+ 'item_id' => isset( $data['item_id'] ) ? $data['item_id'] : false,
410
+ 'slug' => $_REQUEST['slug'],
411
+ 'author' => $data['author'],
412
+ 'url' => home_url(),
413
+ 'beta' => ! empty( $data['beta'] )
414
+ );
415
+
416
+ $request = wp_remote_post( $this->api_url, array( 'timeout' => 15, 'sslverify' => false, 'body' => $api_params ) );
417
+
418
+ if ( ! is_wp_error( $request ) ) {
419
+ $version_info = json_decode( wp_remote_retrieve_body( $request ) );
420
+ }
421
+
422
+
423
+ if ( ! empty( $version_info ) && isset( $version_info->sections ) ) {
424
+ $version_info->sections = maybe_unserialize( $version_info->sections );
425
+ } else {
426
+ $version_info = false;
427
+ }
428
+
429
+ if( ! empty( $version_info ) ) {
430
+ foreach( $version_info->sections as $key => $section ) {
431
+ $version_info->$key = (array) $section;
432
+ }
433
+ }
434
+
435
+ $this->set_version_info_cache( $version_info, $cache_key );
436
+
437
+ }
438
+
439
+ if( ! empty( $version_info ) && isset( $version_info->sections['changelog'] ) ) {
440
+ echo '<div style="background:#fff;padding:10px;">' . $version_info->sections['changelog'] . '</div>';
441
+ }
442
+
443
+ exit;
444
+ }
445
+
446
+ public function get_cached_version_info( $cache_key = '' ) {
447
+
448
+ if( empty( $cache_key ) ) {
449
+ $cache_key = $this->cache_key;
450
+ }
451
+
452
+ $cache = get_option( $cache_key );
453
+
454
+ if( empty( $cache['timeout'] ) || current_time( 'timestamp' ) > $cache['timeout'] ) {
455
+ return false; // Cache is expired
456
+ }
457
+
458
+ return json_decode( $cache['value'] );
459
+
460
+ }
461
+
462
+ public function set_version_info_cache( $value = '', $cache_key = '' ) {
463
+
464
+ if( empty( $cache_key ) ) {
465
+ $cache_key = $this->cache_key;
466
+ }
467
+
468
+ $data = array(
469
+ 'timeout' => strtotime( '+3 hours', current_time( 'timestamp' ) ),
470
+ 'value' => json_encode( $value )
471
+ );
472
+
473
+ update_option( $cache_key, $data );
474
+
475
+ }
476
  }
includes/includes/jpibfi-includes.php CHANGED
@@ -1,23 +1,21 @@
1
- <?php
2
-
3
- class JPIBFI_Includes {
4
-
5
- private $file;
6
- private $version;
7
-
8
- function __construct( $file, $version ){
9
- $this->version = $version;
10
- $this->file = $file;
11
- $this->load_dependencies();
12
- }
13
-
14
- function load_dependencies(){
15
- require_once 'options/jpibfi-options.php';
16
- require_once 'options/jpibfi-selection-options.php';
17
- require_once 'options/jpibfi-visual-options.php';
18
- require_once 'options/jpibfi-advanced-options.php';
19
-
20
-
21
- require_once 'JPIBFI_Version_Updater.php';
22
- }
23
  }
1
+ <?php
2
+
3
+ class JPIBFI_Includes {
4
+
5
+ private $file;
6
+ private $version;
7
+
8
+ function __construct( $file, $version ){
9
+ $this->version = $version;
10
+ $this->file = $file;
11
+ $this->load_dependencies();
12
+ }
13
+
14
+ function load_dependencies(){
15
+ require_once 'options/jpibfi-options.php';
16
+ require_once 'options/jpibfi-selection-options.php';
17
+ require_once 'options/jpibfi-visual-options.php';
18
+ require_once 'options/jpibfi-advanced-options.php';
19
+ require_once 'JPIBFI_Version_Updater.php';
20
+ }
 
 
21
  }
includes/includes/jpibfi-updater.php CHANGED
@@ -1,5 +1,4 @@
1
- <?php
2
-
3
- // Exit if accessed directly
4
- if ( ! defined( 'ABSPATH' ) ) exit;
5
-
1
+ <?php
2
+
3
+ // Exit if accessed directly
4
+ if ( ! defined( 'ABSPATH' ) ) exit;
 
includes/includes/options/jpibfi-advanced-options.php CHANGED
@@ -1,70 +1,70 @@
1
- <?php
2
-
3
- class JPIBFI_Advanced_Options extends JPIBFI_Options {
4
-
5
- function get_default_options() {
6
- $defaults = array(
7
- 'custom_css' =>
8
- 'a.pinit-button {
9
- border-bottom: 0 !important;
10
- box-shadow: none !important;
11
- margin-bottom: 0 !important;
12
- }
13
- a.pinit-button::after {
14
- display: none;
15
- }',
16
- 'filter_the_content_on' => true,
17
- 'filter_the_content_priority' => 10,
18
- 'filter_the_excerpt_on' => true,
19
- 'filter_the_excerpt_priority' => 10,
20
- 'filter_post_thumbnail_html_on' => true,
21
- 'filter_post_thumbnail_html_priority' => 10,
22
- 'scroll_selector' => '',
23
- 'support_srcset' => false,
24
- );
25
-
26
- return $defaults;
27
- }
28
-
29
- function get_option_name() {
30
- return 'jpibfi_advanced_options';
31
- }
32
-
33
- function get_types() {
34
- return array(
35
- 'custom_css' => 'string',
36
- 'filter_the_content_on' => 'boolean',
37
- 'filter_the_content_priority' => 'int',
38
- 'filter_the_excerpt_on' => 'boolean',
39
- 'filter_the_excerpt_priority' => 'int',
40
- 'filter_post_thumbnail_html_on' => 'boolean',
41
- 'filter_post_thumbnail_html_priority' => 'int',
42
- 'scroll_selector' => 'string',
43
- 'support_srcset' => 'boolean',
44
- );
45
- }
46
-
47
- function get_options_for_view() {
48
- $options = $this->get();
49
-
50
- return array(
51
- 'scroll_selector' => $options['scroll_selector'],
52
- 'support_srcset' => $options['support_srcset'],
53
- );
54
- }
55
-
56
- function sanitize( $input ) {
57
- $input = parent::sanitize( $input );
58
- $save = false;
59
- if ( $input['support_srcset'] != false ) {
60
- $input['support_srcset'] = false;
61
- $save = true;
62
- }
63
-
64
- if ( $save ) {
65
- $this->update( $input );
66
- }
67
-
68
- return $input;
69
- }
70
  }
1
+ <?php
2
+
3
+ class JPIBFI_Advanced_Options extends JPIBFI_Options {
4
+
5
+ function get_default_options() {
6
+ $defaults = array(
7
+ 'custom_css' =>
8
+ 'a.pinit-button {
9
+ border-bottom: 0 !important;
10
+ box-shadow: none !important;
11
+ margin-bottom: 0 !important;
12
+ }
13
+ a.pinit-button::after {
14
+ display: none;
15
+ }',
16
+ 'filter_the_content_on' => true,
17
+ 'filter_the_content_priority' => 10,
18
+ 'filter_the_excerpt_on' => true,
19
+ 'filter_the_excerpt_priority' => 10,
20
+ 'filter_post_thumbnail_html_on' => true,
21
+ 'filter_post_thumbnail_html_priority' => 10,
22
+ 'scroll_selector' => '',
23
+ 'support_srcset' => false,
24
+ );
25
+
26
+ return $defaults;
27
+ }
28
+
29
+ function get_option_name() {
30
+ return 'jpibfi_advanced_options';
31
+ }
32
+
33
+ function get_types() {
34
+ return array(
35
+ 'custom_css' => 'string',
36
+ 'filter_the_content_on' => 'boolean',
37
+ 'filter_the_content_priority' => 'int',
38
+ 'filter_the_excerpt_on' => 'boolean',
39
+ 'filter_the_excerpt_priority' => 'int',
40
+ 'filter_post_thumbnail_html_on' => 'boolean',
41
+ 'filter_post_thumbnail_html_priority' => 'int',
42
+ 'scroll_selector' => 'string',
43
+ 'support_srcset' => 'boolean',
44
+ );
45
+ }
46
+
47
+ function get_options_for_view() {
48
+ $options = $this->get();
49
+
50
+ return array(
51
+ 'scroll_selector' => $options['scroll_selector'],
52
+ 'support_srcset' => $options['support_srcset'],
53
+ );
54
+ }
55
+
56
+ function sanitize( $input ) {
57
+ $input = parent::sanitize( $input );
58
+ $save = false;
59
+ if ( $input['support_srcset'] != false ) {
60
+ $input['support_srcset'] = false;
61
+ $save = true;
62
+ }
63
+
64
+ if ( $save ) {
65
+ $this->update( $input );
66
+ }
67
+
68
+ return $input;
69
+ }
70
  }
includes/includes/options/jpibfi-license-options.php DELETED
@@ -1,3 +0,0 @@
1
- <?php
2
- if ( ! defined( 'ABSPATH' ) ) exit;
3
-
 
 
 
includes/includes/options/jpibfi-options.php CHANGED
@@ -1,53 +1,53 @@
1
- <?php
2
-
3
- abstract class JPIBFI_Options {
4
-
5
- abstract function get_option_name();
6
-
7
- abstract function get_default_options();
8
-
9
- /**
10
- * @return array
11
- */
12
- protected abstract function get_types();
13
-
14
- function sanitize($input) {
15
- $types = $this->get_types();
16
- $defaults = $this->get_default_options();
17
- foreach ( $types as $key => $type ) {
18
- $input[ $key ] = $this->sanitize_field( $input[ $key ], $type, $defaults[ $key ] );
19
- }
20
- return $input;
21
- }
22
-
23
- public function get() {
24
- $db_options = get_option( $this->get_option_name() );
25
- $db_options = $db_options != false ? $db_options : array();
26
- $defaults = $this->get_default_options();
27
- $merged = array_merge($defaults, $db_options);
28
- return $this->sanitize($merged);
29
- }
30
-
31
- public function update( $val ) {
32
- update_option( $this->get_option_name(), $val );
33
- }
34
-
35
- private function sanitize_field( $value, $type, $default ) {
36
- if ( ! isset($value ) )
37
- return $default;
38
- switch ( $type ) {
39
- case 'int':
40
- return is_numeric( $value ) ? intval( $value ) : $default;
41
- case 'float':
42
- return is_numeric( $value ) ? floatval( $value ) : $default;
43
- case 'boolean':
44
- return is_bool( $value ) ? $value : $default;
45
- case 'array':
46
- return is_array( $value ) ? $value : $default;
47
- case 'string':
48
- return is_string( $value ) ? $value : $default;
49
- default:
50
- return $value;
51
- }
52
- }
53
  }
1
+ <?php
2
+
3
+ abstract class JPIBFI_Options {
4
+
5
+ abstract function get_option_name();
6
+
7
+ abstract function get_default_options();
8
+
9
+ /**
10
+ * @return array
11
+ */
12
+ protected abstract function get_types();
13
+
14
+ function sanitize($input) {
15
+ $types = $this->get_types();
16
+ $defaults = $this->get_default_options();
17
+ foreach ( $types as $key => $type ) {
18
+ $input[ $key ] = $this->sanitize_field( $input[ $key ], $type, $defaults[ $key ] );
19
+ }
20
+ return $input;
21
+ }
22
+
23
+ public function get() {
24
+ $db_options = get_option( $this->get_option_name() );
25
+ $db_options = $db_options != false ? $db_options : array();
26
+ $defaults = $this->get_default_options();
27
+ $merged = array_merge($defaults, $db_options);
28
+ return $this->sanitize($merged);
29
+ }
30
+
31
+ public function update( $val ) {
32
+ update_option( $this->get_option_name(), $val );
33
+ }
34
+
35
+ private function sanitize_field( $value, $type, $default ) {
36
+ if ( ! isset($value ) )
37
+ return $default;
38
+ switch ( $type ) {
39
+ case 'int':
40
+ return is_numeric( $value ) ? intval( $value ) : $default;
41
+ case 'float':
42
+ return is_numeric( $value ) ? floatval( $value ) : $default;
43
+ case 'boolean':
44
+ return is_bool( $value ) ? $value : $default;
45
+ case 'array':
46
+ return is_array( $value ) ? $value : $default;
47
+ case 'string':
48
+ return is_string( $value ) ? $value : $default;
49
+ default:
50
+ return $value;
51
+ }
52
+ }
53
  }
includes/includes/options/jpibfi-selection-options.php CHANGED
@@ -1,38 +1,38 @@
1
- <?php
2
-
3
- class JPIBFI_Selection_Options extends JPIBFI_Options {
4
-
5
- function get_default_options() {
6
- $defaults = array(
7
- 'image_selector' => '.jpibfi_container img',
8
- 'disabled_classes' => 'wp-smiley;nopin',
9
- 'enabled_classes' => '',
10
- 'min_image_height' => 0,
11
- 'min_image_height_small' => 0,
12
- 'min_image_width' => 0,
13
- 'min_image_width_small' => 0,
14
- 'show_on' => '[front],[home],[single],[page],[archive],[search],[category]',
15
- 'disable_on' => ''
16
- );
17
-
18
- return $defaults;
19
- }
20
-
21
- function get_option_name() {
22
- return 'jpibfi_selection_options';
23
- }
24
-
25
- function get_types() {
26
- return array(
27
- 'image_selector' => 'string',
28
- 'disabled_classes' => 'string',
29
- 'enabled_classes' => 'string',
30
- 'min_image_height' => 'int',
31
- 'min_image_height_small' => 'int',
32
- 'min_image_width' => 'int',
33
- 'min_image_width_small' => 'int',
34
- 'show_on' => 'string',
35
- 'disable_on' => 'string'
36
- );
37
- }
38
  }
1
+ <?php
2
+
3
+ class JPIBFI_Selection_Options extends JPIBFI_Options {
4
+
5
+ function get_default_options() {
6
+ $defaults = array(
7
+ 'image_selector' => '.jpibfi_container img',
8
+ 'disabled_classes' => 'wp-smiley;nopin',
9
+ 'enabled_classes' => '',
10
+ 'min_image_height' => 0,
11
+ 'min_image_height_small' => 0,
12
+ 'min_image_width' => 0,
13
+ 'min_image_width_small' => 0,
14
+ 'show_on' => '[front],[home],[single],[page],[archive],[search],[category]',
15
+ 'disable_on' => ''
16
+ );
17
+
18
+ return $defaults;
19
+ }
20
+
21
+ function get_option_name() {
22
+ return 'jpibfi_selection_options';
23
+ }
24
+
25
+ function get_types() {
26
+ return array(
27
+ 'image_selector' => 'string',
28
+ 'disabled_classes' => 'string',
29
+ 'enabled_classes' => 'string',
30
+ 'min_image_height' => 'int',
31
+ 'min_image_height_small' => 'int',
32
+ 'min_image_width' => 'int',
33
+ 'min_image_width_small' => 'int',
34
+ 'show_on' => 'string',
35
+ 'disable_on' => 'string'
36
+ );
37
+ }
38
  }
includes/includes/options/jpibfi-visual-options.php CHANGED
@@ -1,122 +1,122 @@
1
- <?php
2
-
3
- class JPIBFI_Visual_Options extends JPIBFI_Options {
4
-
5
- function get_default_options() {
6
- $defaults = array(
7
- 'show_button' => 'hover',
8
- 'button_margin_bottom' => 20,
9
- 'button_margin_top' => 20,
10
- 'button_margin_left' => 20,
11
- 'button_margin_right' => 20,
12
- 'button_position' => 'top-left',
13
- 'description_option' => array( 'img_title', 'img_alt', 'post_title' ),
14
- 'transparency_value' => 0.2,
15
- 'pin_image' => 'default',
16
- 'pin_image_button' => 'square',
17
- 'pin_image_icon' => 'circle',
18
- 'pin_image_size' => 'normal',
19
- 'custom_image_url' => '',
20
- 'custom_image_height' => 0,
21
- 'custom_image_width' => 0,
22
- 'scale_pin_image' => false,
23
- 'pin_linked_url' => true,
24
- );
25
- return $defaults;
26
- }
27
-
28
- function sanitize( $input ) {
29
- $input = parent::sanitize( $input );
30
- $save = false;
31
- if ( $input['show_button'] != 'hover' ) {
32
- $input['show_button'] = 'hover';
33
- $save = true;
34
- }
35
- if ( $input['pin_image_icon'] != 'circle' ) {
36
- $input['pin_image_icon'] = 'circle';
37
- $save = true;
38
- }
39
- if ( array_key_exists( 'scale_pin_image', $input ) && $input['scale_pin_image'] != false ) {
40
- $input['scale_pin_image'] = false;
41
- $save = true;
42
- }
43
-
44
- if ( ! is_array( $input['description_option'] ) ) {
45
- $input['description_option'] = array( 'img_title', 'img_alt', 'post_title' );
46
- $save = true;
47
- }
48
-
49
- if ( array_key_exists( 'use_custom_image', $input ) ) {
50
- $use_custom = $input['use_custom_image'] == true;
51
- $input['pin_image'] = $use_custom ? 'custom' : 'old_default';
52
- unset( $input['use_custom_image'] );
53
- $save = true;
54
- }
55
-
56
- if ( $save ) {
57
- $this->update( $input );
58
- }
59
-
60
- return $input;
61
- }
62
-
63
- public function get_options_for_view() {
64
- $options = $this->get();
65
- if ( $options['pin_image'] == 'custom' ) {
66
- $options['pinImageWidth'] = $options['custom_image_width'];
67
- $options['pinImageHeight'] = $options['custom_image_height'];
68
- } else if ( $options['pin_image'] == 'old_default' ) {
69
- $options['pinImageWidth'] = 65; // size of the default image
70
- $options['pinImageHeight'] = 41;
71
- } else {
72
- $options['pinImageHeight'] = 54 * $this->get_pin_image_height_ratio( $options['pin_image_size'] ); // baseHeight * ratio
73
- $options['pinImageWidth'] = $options['pinImageHeight'] * $this->get_pin_image_width_ratio( $options['pin_image_button'] );
74
- }
75
- unset( $options['custom_image_width'], $options['custom_image_height'] );
76
-
77
- return $options;
78
- }
79
-
80
- private function get_pin_image_height_ratio( $pin_image_size ) {
81
- switch ( $pin_image_size ) {
82
- case 'small': return 0.8;
83
- case 'large': return 1.5;
84
- default: return 1;
85
- }
86
- }
87
-
88
- private function get_pin_image_width_ratio( $pin_image_shape ) {
89
- switch ( $pin_image_shape ) {
90
- case 'rectangle':
91
- case 'rounded-rectangle':
92
- return 1.5;
93
- default: return 1;
94
- }
95
- }
96
-
97
- public function get_option_name() {
98
- return 'jpibfi_visual_options';
99
- }
100
-
101
- function get_types() {
102
- return array(
103
- 'show_button' => 'string',
104
- 'button_margin_bottom' => 'int',
105
- 'button_margin_top' => 'int',
106
- 'button_margin_left' => 'int',
107
- 'button_margin_right' => 'int',
108
- 'button_position' => 'string',
109
- 'description_option' => 'array',
110
- 'transparency_value' => 'float',
111
- 'pin_image' => 'string',
112
- 'pin_image_button' => 'string',
113
- 'pin_image_icon' => 'string',
114
- 'pin_image_size' => 'string',
115
- 'custom_image_url' => 'string',
116
- 'custom_image_height' => 'int',
117
- 'custom_image_width' => 'int',
118
- 'scale_pin_image' => 'boolean',
119
- 'pin_linked_url' => 'boolean',
120
- );
121
- }
122
  }
1
+ <?php
2
+
3
+ class JPIBFI_Visual_Options extends JPIBFI_Options {
4
+
5
+ function get_default_options() {
6
+ $defaults = array(
7
+ 'show_button' => 'hover',
8
+ 'button_margin_bottom' => 20,
9
+ 'button_margin_top' => 20,
10
+ 'button_margin_left' => 20,
11
+ 'button_margin_right' => 20,
12
+ 'button_position' => 'top-left',
13
+ 'description_option' => array( 'img_title', 'img_alt', 'post_title' ),
14
+ 'transparency_value' => 0.2,
15
+ 'pin_image' => 'default',
16
+ 'pin_image_button' => 'square',
17
+ 'pin_image_icon' => 'circle',
18
+ 'pin_image_size' => 'normal',
19
+ 'custom_image_url' => '',
20
+ 'custom_image_height' => 0,
21
+ 'custom_image_width' => 0,
22
+ 'scale_pin_image' => false,
23
+ 'pin_linked_url' => true,
24
+ );
25
+ return $defaults;
26
+ }
27
+
28
+ function sanitize( $input ) {
29
+ $input = parent::sanitize( $input );
30
+ $save = false;
31
+ if ( $input['show_button'] != 'hover' ) {
32
+ $input['show_button'] = 'hover';
33
+ $save = true;
34
+ }
35
+ if ( $input['pin_image_icon'] != 'circle' ) {
36
+ $input['pin_image_icon'] = 'circle';
37
+ $save = true;
38
+ }
39
+ if ( array_key_exists( 'scale_pin_image', $input ) && $input['scale_pin_image'] != false ) {
40
+ $input['scale_pin_image'] = false;
41
+ $save = true;
42
+ }
43
+
44
+ if ( ! is_array( $input['description_option'] ) ) {
45
+ $input['description_option'] = array( 'img_title', 'img_alt', 'post_title' );
46
+ $save = true;
47
+ }
48
+
49
+ if ( array_key_exists( 'use_custom_image', $input ) ) {
50
+ $use_custom = $input['use_custom_image'] == true;
51
+ $input['pin_image'] = $use_custom ? 'custom' : 'old_default';
52
+ unset( $input['use_custom_image'] );
53
+ $save = true;
54
+ }
55
+
56
+ if ( $save ) {
57
+ $this->update( $input );
58
+ }
59
+
60
+ return $input;
61
+ }
62
+
63
+ public function get_options_for_view() {
64
+ $options = $this->get();
65
+ if ( $options['pin_image'] == 'custom' ) {
66
+ $options['pinImageWidth'] = $options['custom_image_width'];
67
+ $options['pinImageHeight'] = $options['custom_image_height'];
68
+ } else if ( $options['pin_image'] == 'old_default' ) {
69
+ $options['pinImageWidth'] = 65; // size of the default image
70
+ $options['pinImageHeight'] = 41;
71
+ } else {
72
+ $options['pinImageHeight'] = 54 * $this->get_pin_image_height_ratio( $options['pin_image_size'] ); // baseHeight * ratio
73
+ $options['pinImageWidth'] = $options['pinImageHeight'] * $this->get_pin_image_width_ratio( $options['pin_image_button'] );
74
+ }
75
+ unset( $options['custom_image_width'], $options['custom_image_height'] );
76
+
77
+ return $options;
78
+ }
79
+
80
+ private function get_pin_image_height_ratio( $pin_image_size ) {
81
+ switch ( $pin_image_size ) {
82
+ case 'small': return 0.8;
83
+ case 'large': return 1.5;
84
+ default: return 1;
85
+ }
86
+ }
87
+
88
+ private function get_pin_image_width_ratio( $pin_image_shape ) {
89
+ switch ( $pin_image_shape ) {
90
+ case 'rectangle':
91
+ case 'rounded-rectangle':
92
+ return 1.5;
93
+ default: return 1;
94
+ }
95
+ }
96
+
97
+ public function get_option_name() {
98
+ return 'jpibfi_visual_options';
99
+ }
100
+
101
+ function get_types() {
102
+ return array(
103
+ 'show_button' => 'string',
104
+ 'button_margin_bottom' => 'int',
105
+ 'button_margin_top' => 'int',
106
+ 'button_margin_left' => 'int',
107
+ 'button_margin_right' => 'int',
108
+ 'button_position' => 'string',
109
+ 'description_option' => 'array',
110
+ 'transparency_value' => 'float',
111
+ 'pin_image' => 'string',
112
+ 'pin_image_button' => 'string',
113
+ 'pin_image_icon' => 'string',
114
+ 'pin_image_size' => 'string',
115
+ 'custom_image_url' => 'string',
116
+ 'custom_image_height' => 'int',
117
+ 'custom_image_width' => 'int',
118
+ 'scale_pin_image' => 'boolean',
119
+ 'pin_linked_url' => 'boolean',
120
+ );
121
+ }
122
  }
includes/includes/versions/JPIBFI_Version_Update_2_2_3.php CHANGED
@@ -1,187 +1,186 @@
1
- <?php
2
-
3
- class JPIBFI_Version_Update_2_2_3 {
4
-
5
- function __construct() {
6
- $this->update_options_if_needed();
7
- $this->cleanup();
8
- }
9
-
10
- public function update_options_if_needed() {
11
-
12
- $options_val = get_option( 'jpibfi_selection_options' );
13
- if ( $options_val ) {
14
- $options_val = $this->fix_selection_options( $options_val );
15
- $options = new JPIBFI_Selection_Options();
16
- $defaults = $options->get_default_options();
17
- $with_defaults = array_merge( $defaults, $options_val );
18
- $result = array();
19
- foreach($defaults as $key => $val) {
20
- $result[ $key ] = $with_defaults[ $key ];
21
- }
22
- $options->update( $result );
23
- }
24
-
25
- $options_val = get_option( 'jpibfi_visual_options' );
26
- if ( $options_val ) {
27
- $options_val = $this->fix_visual_options( $options_val );
28
- $options = new JPIBFI_Visual_Options();
29
- $defaults = $options->get_default_options();
30
- $with_defaults = array_merge( $defaults, $options_val );
31
- $result = array();
32
- foreach($defaults as $key => $val) {
33
- $result[ $key ] = $with_defaults[ $key ];
34
- }
35
- $options->update( $result );
36
- }
37
- }
38
-
39
- private function fix_selection_options( $options ) {
40
- $resolution_options = array(
41
- 'min_image_height',
42
- 'min_image_height_small',
43
- 'min_image_width',
44
- 'min_image_width_small'
45
- );
46
- foreach ( $resolution_options as $resolution_option ) {
47
- $options[ $resolution_option ] = isset( $options[ $resolution_option ] ) && is_numeric( $options[ $resolution_option ] )
48
- ? intval( $options[ $resolution_option ] )
49
- : 0;
50
- }
51
- if ( ! isset( $options['show_on'] ) ) {
52
- $options['show_on'] = $this->create_show_on( $options );
53
- }
54
- if ( ! isset( $options['disable_on'] ) ) {
55
- $options['disable_on'] = $this->create_disable_on();
56
- }
57
-
58
- return $options;
59
- }
60
-
61
- private function create_show_on( $selection_settings ) {
62
- $show_on = array();
63
- if ( isset( $selection_settings['show_on_home'] ) && $selection_settings['show_on_home'] == "1" ) {
64
- $show_on[] = '[front]';
65
- }
66
-
67
- if ( isset( $selection_settings['show_on_single'] ) && $selection_settings['show_on_single'] == "1" ) {
68
- $show_on[] = '[single]';
69
- }
70
-
71
- if ( isset( $selection_settings['show_on_page'] ) && $selection_settings['show_on_page'] == "1" ) {
72
- $show_on[] = '[page]';
73
- }
74
-
75
- if ( isset( $selection_settings['show_on_category'] ) && $selection_settings['show_on_category'] == "1" ) {
76
- $show_on[] = '[category]';
77
- $show_on[] = '[archive]';
78
- $show_on[] = '[search]';
79
- }
80
-
81
- if ( isset( $selection_settings['show_on_blog'] ) && $selection_settings['show_on_blog'] == "1" ) {
82
- $show_on[] = '[home]';
83
- }
84
-
85
- return implode( ',', $show_on );
86
- }
87
-
88
- private function create_disable_on() {
89
- global $wpdb;
90
- $result = array();
91
-
92
- $entries = $wpdb->get_results( "SELECT post_id, meta_value FROM $wpdb->postmeta WHERE meta_key = 'jpibfi_meta'", ARRAY_A );
93
- for($i = 0; $i < count( $entries ); $i++ ){
94
- $meta_val = maybe_unserialize( $entries[ $i ][ 'meta_value'] );
95
- $post_id = $entries[ $i ][ 'post_id' ];
96
- if ( array_key_exists( 'jpibfi_disable_for_post', $meta_val ) && '1' == $meta_val['jpibfi_disable_for_post'] ) {
97
- $result[] = $post_id;
98
- }
99
- }
100
-
101
- return implode( ',', $result );
102
- }
103
-
104
- private function fix_visual_options( $options ) {
105
- $int_options = array(
106
- 'button_margin_bottom',
107
- 'button_margin_top',
108
- 'button_margin_left',
109
- 'button_margin_right',
110
- 'custom_image_height',
111
- 'custom_image_width'
112
- );
113
- foreach ( $int_options as $int_option ) {
114
- $options[ $int_option ] = isset( $options[ $int_option ] ) && is_numeric( $options[ $int_option ] )
115
- ? intval( $options[ $int_option ] )
116
- : 0;
117
- }
118
- if ( isset( $options['pinLinkedImages'] ) && is_string( $options['pinLinkedImages'] ) ) {
119
- $options['pinLinkedImages'] = '1' == $options['pinLinkedImages'];
120
- }
121
- if ( isset( $options['use_custom_image'] ) && is_string( $options['use_custom_image'] ) ) {
122
- $options['use_custom_image'] = '1' == $options['use_custom_image'];
123
- }
124
-
125
- $options['transparency_value'] = isset( $options['transparency_value'] ) && is_numeric( $options['transparency_value'] )
126
- ? floatval( $options['transparency_value'] )
127
- : 0.5;
128
-
129
- if ( isset( $options['button_position'] ) ) {
130
- $options['button_position'] = $this->convert_button_position( $options['button_position'] );
131
- }
132
- if ( isset( $options['description_option'] ) && ! is_array( $options['description_option'] ) ) {
133
- $options['description_option'] = $this->convert_description_option( $options['description_option'] );
134
- }
135
-
136
- return $options;
137
- }
138
-
139
- private function convert_button_position( $button_position ) {
140
- switch ( $button_position ) {
141
- case 'top-left':
142
- case 'top-right':
143
- case 'bottom-left':
144
- case 'bottom-right':
145
- case 'middle':
146
- return $button_position;
147
- case '0':
148
- return 'top-left';
149
- case '1':
150
- return 'top-right';
151
- case '2':
152
- return 'bottom-left';
153
- case '3':
154
- return 'bottom-right';
155
- case '4':
156
- return 'middle';
157
- default:
158
- return 'top-left';
159
- }
160
- }
161
-
162
- private function convert_description_option( $description_option ) {
163
- switch ( $description_option ) {
164
- case '1':
165
- return array( 'post_title' );
166
- case '2':
167
- return array( 'post_excerpt' );
168
- case '3':
169
- return array( 'img_title' );
170
- case '4':
171
- return array( 'site_title' );
172
- case '5':
173
- return array( 'img_description' );
174
- case '6':
175
- return array( 'img_alt' );
176
- default:
177
- return array( 'img_title', 'img_alt', 'post_title' );
178
- }
179
- }
180
-
181
- private function cleanup() {
182
- delete_option( 'jpibfi_lightbox_options' );
183
- delete_option( 'jpibfi_options_version' );
184
- delete_post_meta_by_key( 'jpibfi_meta' );
185
- }
186
-
187
  }
1
+ <?php
2
+
3
+ class JPIBFI_Version_Update_2_2_3 {
4
+
5
+ function __construct() {
6
+ $this->update_options_if_needed();
7
+ $this->cleanup();
8
+ }
9
+
10
+ public function update_options_if_needed() {
11
+
12
+ $options_val = get_option( 'jpibfi_selection_options' );
13
+ if ( $options_val ) {
14
+ $options_val = $this->fix_selection_options( $options_val );
15
+ $options = new JPIBFI_Selection_Options();
16
+ $defaults = $options->get_default_options();
17
+ $with_defaults = array_merge( $defaults, $options_val );
18
+ $result = array();
19
+ foreach($defaults as $key => $val) {
20
+ $result[ $key ] = $with_defaults[ $key ];
21
+ }
22
+ $options->update( $result );
23
+ }
24
+
25
+ $options_val = get_option( 'jpibfi_visual_options' );
26
+ if ( $options_val ) {
27
+ $options_val = $this->fix_visual_options( $options_val );
28
+ $options = new JPIBFI_Visual_Options();
29
+ $defaults = $options->get_default_options();
30
+ $with_defaults = array_merge( $defaults, $options_val );
31
+ $result = array();
32
+ foreach($defaults as $key => $val) {
33
+ $result[ $key ] = $with_defaults[ $key ];
34
+ }
35
+ $options->update( $result );
36
+ }
37
+ }
38
+
39
+ private function fix_selection_options( $options ) {
40
+ $resolution_options = array(
41
+ 'min_image_height',
42
+ 'min_image_height_small',
43
+ 'min_image_width',
44
+ 'min_image_width_small'
45
+ );
46
+ foreach ( $resolution_options as $resolution_option ) {
47
+ $options[ $resolution_option ] = isset( $options[ $resolution_option ] ) && is_numeric( $options[ $resolution_option ] )
48
+ ? intval( $options[ $resolution_option ] )
49
+ : 0;
50
+ }
51
+ if ( ! isset( $options['show_on'] ) ) {
52
+ $options['show_on'] = $this->create_show_on( $options );
53
+ }
54
+ if ( ! isset( $options['disable_on'] ) ) {
55
+ $options['disable_on'] = $this->create_disable_on();
56
+ }
57
+
58
+ return $options;
59
+ }
60
+
61
+ private function create_show_on( $selection_settings ) {
62
+ $show_on = array();
63
+ if ( isset( $selection_settings['show_on_home'] ) && $selection_settings['show_on_home'] == "1" ) {
64
+ $show_on[] = '[front]';
65
+ }
66
+
67
+ if ( isset( $selection_settings['show_on_single'] ) && $selection_settings['show_on_single'] == "1" ) {
68
+ $show_on[] = '[single]';
69
+ }
70
+
71
+ if ( isset( $selection_settings['show_on_page'] ) && $selection_settings['show_on_page'] == "1" ) {
72
+ $show_on[] = '[page]';
73
+ }
74
+
75
+ if ( isset( $selection_settings['show_on_category'] ) && $selection_settings['show_on_category'] == "1" ) {
76
+ $show_on[] = '[category]';
77
+ $show_on[] = '[archive]';
78
+ $show_on[] = '[search]';
79
+ }
80
+
81
+ if ( isset( $selection_settings['show_on_blog'] ) && $selection_settings['show_on_blog'] == "1" ) {
82
+ $show_on[] = '[home]';
83
+ }
84
+
85
+ return implode( ',', $show_on );
86
+ }
87
+
88
+ private function create_disable_on() {
89
+ global $wpdb;
90
+ $result = array();
91
+
92
+ $entries = $wpdb->get_results( "SELECT post_id, meta_value FROM $wpdb->postmeta WHERE meta_key = 'jpibfi_meta'", ARRAY_A );
93
+ for($i = 0; $i < count( $entries ); $i++ ){
94
+ $meta_val = maybe_unserialize( $entries[ $i ][ 'meta_value'] );
95
+ $post_id = $entries[ $i ][ 'post_id' ];
96
+ if ( array_key_exists( 'jpibfi_disable_for_post', $meta_val ) && '1' == $meta_val['jpibfi_disable_for_post'] ) {
97
+ $result[] = $post_id;
98
+ }
99
+ }
100
+
101
+ return implode( ',', $result );
102
+ }
103
+
104
+ private function fix_visual_options( $options ) {
105
+ $int_options = array(
106
+ 'button_margin_bottom',
107
+ 'button_margin_top',
108
+ 'button_margin_left',
109
+ 'button_margin_right',
110
+ 'custom_image_height',
111
+ 'custom_image_width'
112
+ );
113
+ foreach ( $int_options as $int_option ) {
114
+ $options[ $int_option ] = isset( $options[ $int_option ] ) && is_numeric( $options[ $int_option ] )
115
+ ? intval( $options[ $int_option ] )
116
+ : 0;
117
+ }
118
+ if ( isset( $options['pinLinkedImages'] ) && is_string( $options['pinLinkedImages'] ) ) {
119
+ $options['pinLinkedImages'] = '1' == $options['pinLinkedImages'];
120
+ }
121
+ if ( isset( $options['use_custom_image'] ) && is_string( $options['use_custom_image'] ) ) {
122
+ $options['use_custom_image'] = '1' == $options['use_custom_image'];
123
+ }
124
+
125
+ $options['transparency_value'] = isset( $options['transparency_value'] ) && is_numeric( $options['transparency_value'] )
126
+ ? floatval( $options['transparency_value'] )
127
+ : 0.5;
128
+
129
+ if ( isset( $options['button_position'] ) ) {
130
+ $options['button_position'] = $this->convert_button_position( $options['button_position'] );
131
+ }
132
+ if ( isset( $options['description_option'] ) && ! is_array( $options['description_option'] ) ) {
133
+ $options['description_option'] = $this->convert_description_option( $options['description_option'] );
134
+ }
135
+
136
+ return $options;
137
+ }
138
+
139
+ private function convert_button_position( $button_position ) {
140
+ switch ( $button_position ) {
141
+ case 'top-left':
142
+ case 'top-right':
143
+ case 'bottom-left':
144
+ case 'bottom-right':
145
+ case 'middle':
146
+ return $button_position;
147
+ case '0':
148
+ return 'top-left';
149
+ case '1':
150
+ return 'top-right';
151
+ case '2':
152
+ return 'bottom-left';
153
+ case '3':
154
+ return 'bottom-right';
155
+ case '4':
156
+ return 'middle';
157
+ default:
158
+ return 'top-left';
159
+ }
160
+ }
161
+
162
+ private function convert_description_option( $description_option ) {
163
+ switch ( $description_option ) {
164
+ case '1':
165
+ return array( 'post_title' );
166
+ case '2':
167
+ return array( 'post_excerpt' );
168
+ case '3':
169
+ return array( 'img_title' );
170
+ case '4':
171
+ return array( 'site_title' );
172
+ case '5':
173
+ return array( 'img_description' );
174
+ case '6':
175
+ return array( 'img_alt' );
176
+ default:
177
+ return array( 'img_title', 'img_alt', 'post_title' );
178
+ }
179
+ }
180
+
181
+ private function cleanup() {
182
+ delete_option( 'jpibfi_lightbox_options' );
183
+ delete_option( 'jpibfi_options_version' );
184
+ delete_post_meta_by_key( 'jpibfi_meta' );
185
+ }
 
186
  }
includes/jpibfi.php CHANGED
@@ -1,42 +1,42 @@
1
- <?php
2
-
3
- class JPIBFI {
4
-
5
- private $version;
6
- private $file;
7
-
8
- function __construct($file, $version){
9
-
10
- $this->file = $file;
11
- $this->version = $version;
12
-
13
- $this->load_dependencies();
14
- $this->load_textdomain();
15
-
16
- register_activation_hook( $file, array( $this, 'update_plugin' ) );
17
- add_action( 'plugins_loaded', array( $this, 'update_plugin' ) );
18
- }
19
-
20
- function load_dependencies(){
21
-
22
- require_once 'includes/jpibfi-includes.php';
23
- new JPIBFI_Includes($this->file, $this->version);
24
-
25
- if (is_admin()){
26
- require_once 'admin/jpibfi-admin.php';
27
- new JPIBFI_Admin($this->file, $this->version);
28
- } else {
29
- require_once 'public/class-jpibfi-client.php';
30
- new JPIBFI_Client($this->file, $this->version);
31
- }
32
- }
33
-
34
- function load_textdomain() {
35
- load_plugin_textdomain( 'jquery-pin-it-button-for-images', FALSE, dirname( plugin_basename( $this->file ) ) . '/languages/' );
36
- }
37
-
38
- public function update_plugin() {
39
- $version_updater = new JPIBFI_Version_Updater( $this->version );
40
- $version_updater->update();
41
- }
42
  }
1
+ <?php
2
+
3
+ class JPIBFI {
4
+
5
+ private $version;
6
+ private $file;
7
+
8
+ function __construct($file, $version){
9
+
10
+ $this->file = $file;
11
+ $this->version = $version;
12
+
13
+ $this->load_dependencies();
14
+ $this->load_textdomain();
15
+
16
+ register_activation_hook( $file, array( $this, 'update_plugin' ) );
17
+ add_action( 'plugins_loaded', array( $this, 'update_plugin' ) );
18
+ }
19
+
20
+ function load_dependencies(){
21
+
22
+ require_once 'includes/jpibfi-includes.php';
23
+ new JPIBFI_Includes($this->file, $this->version);
24
+
25
+ if (is_admin()){
26
+ require_once 'admin/jpibfi-admin.php';
27
+ new JPIBFI_Admin($this->file, $this->version);
28
+ } else {
29
+ require_once 'public/class-jpibfi-client.php';
30
+ new JPIBFI_Client($this->file, $this->version);
31
+ }
32
+ }
33
+
34
+ function load_textdomain() {
35
+ load_plugin_textdomain( 'jquery-pin-it-button-for-images', FALSE, dirname( plugin_basename( $this->file ) ) . '/languages/' );
36
+ }
37
+
38
+ public function update_plugin() {
39
+ $version_updater = new JPIBFI_Version_Updater( $this->version );
40
+ $version_updater->update();
41
+ }
42
  }
includes/public/JPIBFI_Client_Helper.php CHANGED
@@ -1,33 +1,33 @@
1
- <?php
2
-
3
- class JPIBFI_Client_Helper {
4
-
5
- /**
6
- * Returns URL address if available in the $css_property_value arg
7
- *
8
- * @param $css_property_value
9
- *
10
- * @return string|bool
11
- */
12
- static function get_url_from_css_property( $css_property_value ) {
13
- $url_pattern = '/(?i)\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'\".,<>?«»“”‘’]))/i';
14
- preg_match( $url_pattern, $css_property_value, $url);
15
- return count($url) > 0 ? $url[0] : false;
16
- }
17
-
18
- /**
19
- * Returns background url if available
20
- *
21
- * @param $style_attr_value
22
- *
23
- * @return bool|string
24
- */
25
- static public function get_background_image_url( $style_attr_value ) {
26
- $background_attr_pattern = '/(background|background-image)\s*:\s*([^;]+)\s*;?/i';
27
- preg_match( $background_attr_pattern, $style_attr_value, $background_attr );
28
- if ( count( $background_attr ) == 0 )
29
- return false;
30
- $property_value = $background_attr[2];
31
- return self::get_url_from_css_property( $property_value );
32
- }
33
  }
1
+ <?php
2
+
3
+ class JPIBFI_Client_Helper {
4
+
5
+ /**
6
+ * Returns URL address if available in the $css_property_value arg
7
+ *
8
+ * @param $css_property_value
9
+ *
10
+ * @return string|bool
11
+ */
12
+ static function get_url_from_css_property( $css_property_value ) {
13
+ $url_pattern = '/(?i)\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'\".,<>?«»“”‘’]))/i';
14
+ preg_match( $url_pattern, $css_property_value, $url);
15
+ return count($url) > 0 ? $url[0] : false;
16
+ }
17
+
18
+ /**
19
+ * Returns background url if available
20
+ *
21
+ * @param $style_attr_value
22
+ *
23
+ * @return bool|string
24
+ */
25
+ static public function get_background_image_url( $style_attr_value ) {
26
+ $background_attr_pattern = '/(background|background-image)\s*:\s*([^;]+)\s*;?/i';
27
+ preg_match( $background_attr_pattern, $style_attr_value, $background_attr );
28
+ if ( count( $background_attr ) == 0 )
29
+ return false;
30
+ $property_value = $background_attr[2];
31
+ return self::get_url_from_css_property( $property_value );
32
+ }
33
  }
includes/public/class-jpibfi-client.php CHANGED
@@ -1,309 +1,309 @@
1
- <?php
2
-
3
- class JPIBFI_Client {
4
-
5
- private $selection_options;
6
- private $visual_options;
7
- /**
8
- * @var JPIBFI_Advanced_Options
9
- */
10
- private $advanced_options;
11
- private $version;
12
- private $plugin_dir_url;
13
-
14
- public function __construct( $file, $version ) {
15
- $this->version = $version;
16
- $this->plugin_dir_url = plugin_dir_url( $file );
17
- $this->selection_options = new JPIBFI_Selection_Options();
18
- $this->visual_options = new JPIBFI_Visual_Options();
19
- $this->advanced_options = new JPIBFI_Advanced_Options();
20
-
21
- add_action( 'wp_enqueue_scripts', array( $this, 'add_plugin_scripts' ) );
22
- add_action( 'wp_head', array( $this, 'print_header_style' ) );
23
- $this->add_conditional_filters();
24
-
25
- //load dependency
26
- require_once 'JPIBFI_Client_Helper.php';
27
- }
28
-
29
- private function add_conditional_filters() {
30
- $advanced_value = $this->advanced_options->get();
31
-
32
- $filters = array(
33
- 'post_thumbnail_html',
34
- 'the_excerpt',
35
- 'the_content'
36
- );
37
-
38
- foreach ( $filters as $filter ) {
39
- if ( $advanced_value[ 'filter_' . $filter . '_on' ] ) {
40
- add_filter( $filter, array(
41
- $this,
42
- 'the_content'
43
- ), $advanced_value[ 'filter_' . $filter . '_priority' ] );
44
- }
45
- }
46
- }
47
-
48
- public function add_plugin_scripts() {
49
- if ( ! $this->add_jpibfi() ) {
50
- return;
51
- }
52
-
53
- wp_enqueue_script( 'jpibfi-script', $this->plugin_dir_url . 'js/jpibfi.client.js', array( 'jquery' ), $this->version, true );
54
-
55
- $parameters_array = array(
56
- 'hover' => array_merge(
57
- array( 'siteTitle' => esc_attr( get_bloginfo( 'name', 'display' ) ) ),
58
- $this->selection_options->get(),
59
- $this->visual_options->get_options_for_view(),
60
- $this->advanced_options->get_options_for_view()
61
- ),
62
- );
63
- wp_localize_script( 'jpibfi-script', 'jpibfi_options', $parameters_array );
64
- wp_enqueue_style( 'jpibfi-style', $this->plugin_dir_url . 'css/client.css', array(), $this->version );
65
- }
66
-
67
- public function print_header_style() {
68
- if ( ! $this->add_jpibfi() ) {
69
- return;
70
- }
71
-
72
- $visual_options_js = $this->visual_options->get_options_for_view();
73
- $advanced_options = $this->advanced_options->get();
74
-
75
- $custom_button_span_css = '';
76
- if ( $visual_options_js['pin_image'] === 'custom' ) {
77
- $custom_button_span_css .= sprintf( 'background-image: url("%s");', $visual_options_js['custom_image_url'] );
78
- }
79
- ob_start();
80
- ?>
81
- <style type="text/css">
82
- a.pinit-button.custom span {
83
- <?php echo $custom_button_span_css; ?>
84
- }
85
-
86
- .pinit-hover {
87
- opacity: <?php echo (1 - $visual_options_js['transparency_value']); ?> !important;
88
- filter: alpha(opacity=<?php echo (1 - $visual_options_js['transparency_value']) * 100; ?>) !important;
89
- }
90
- <?php echo $advanced_options['custom_css']; ?>
91
- </style>
92
- <?php
93
- echo ob_get_clean();
94
- }
95
-
96
- /*
97
- * Adds data-jpibfi-description attribute to each image that is added through media library. The value is the "Description" of the image from media library.
98
- * This piece of code uses a lot of code from the Photo Protect http://wordpress.org/plugins/photo-protect/ plugin
99
- */
100
- function the_content( $content ) {
101
- if ( ! $this->add_jpibfi() ) {
102
- return $content;
103
- }
104
- global $post;
105
-
106
- $visual_options = $this->visual_options->get();
107
-
108
- $get_description = in_array( 'img_description', $visual_options['description_option'] );
109
- $get_caption = in_array( 'img_caption', $visual_options['description_option'] );
110
-
111
- $imgPattern = '/<img[^>]*>/i';
112
- $attrPattern = '/ ([-\w]+)[ ]*=[ ]*([\"\'])(.*?)\2/i';
113
-
114
- preg_match_all( $imgPattern, $content, $images, PREG_SET_ORDER );
115
-
116
- foreach ( $images as $img ) {
117
-
118
- preg_match_all( $attrPattern, $img[0], $attributes, PREG_SET_ORDER );
119
-
120
- $new_img = '<img';
121
- $src = '';
122
- $id = '';
123
-
124
- foreach ( $attributes as $att ) {
125
- $full = $att[0];
126
- $name = $att[1];
127
- $value = $att[3];
128
-
129
- $new_img .= $full;
130
-
131
- if ( 'class' == $name ) {
132
- $id = $this->get_post_id_from_image_classes( $value );
133
- }
134
-
135
- if ( 'src' == $name ) {
136
- $src = $value;
137
- }
138
- }
139
-
140
- $att = $get_description || $get_caption ? $this->get_attachment( $id, $src ): null;
141
- if ( $att != null ) {
142
- $new_img .= $get_description ? sprintf( ' data-jpibfi-description="%s"', esc_attr( $att->post_content ) ): '';
143
- $new_img .= $get_caption ? sprintf( ' data-jpibfi-caption="%s"', esc_attr( $att->post_excerpt ) ): '';
144
- }
145
-
146
- $new_img .= sprintf( ' data-jpibfi-post-excerpt="%s"', esc_attr( wp_kses( $post->post_excerpt, array() ) ) );
147
- $new_img .= sprintf( ' data-jpibfi-post-url="%s"', esc_attr( get_permalink() ) );
148
- $new_img .= sprintf( ' data-jpibfi-post-title="%s"', esc_attr( get_the_title() ) );
149
- $new_img .= sprintf( ' data-jpibfi-src="%s"', esc_attr( $src ) );
150
- $new_img .= ' >';
151
- $content = str_replace( $img[0], $new_img, $content );
152
- }
153
- $jscript = '';
154
- if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
155
- ob_start();
156
- ?>
157
- <script type="text/javascript">
158
- (function () {
159
- if (!jQuery) return;
160
- jQuery(document).ready(function () {
161
- var $inputs = jQuery('.jpibfi');
162
- var $closest = $inputs.closest('div, article');
163
- $closest = $closest.length ? $closest : $inputs.parent();
164
- $closest.addClass('jpibfi_container');
165
- });
166
- })();
167
- </script>
168
- <?php
169
- $jscript = ob_get_clean();
170
- }
171
-
172
- return '<input class="jpibfi" type="hidden">' . $content . $jscript;
173
- }
174
-
175
-
176
- //function gets the id of the image by searching for class with wp-image- prefix, otherwise returns empty string
177
- function get_post_id_from_image_classes( $class_attribute ) {
178
- $classes = preg_split( '/\s+/', $class_attribute, - 1, PREG_SPLIT_NO_EMPTY );
179
- $prefix = 'wp-image-';
180
-
181
- foreach ( $classes as $class ) {
182
- if ( $prefix === substr( $class, 0, strlen( $prefix ) ) ) {
183
- return str_replace( $prefix, '', $class );
184
- }
185
- }
186
-
187
- return '';
188
- }
189
-
190
- /**
191
- * @param $id
192
- * @param $src
193
- *
194
- * @return array|null|WP_Post
195
- */
196
- function get_attachment( $id, $src ) {
197
- $result = is_numeric( $id ) ? get_post( $id ) : null;
198
- if ( $result )
199
- return $result;
200
-
201
- $id = $this->get_attachment_id_by_url( $src );
202
- return $id !== 0 ? get_post( $id ) : null;
203
- }
204
-
205
- /**
206
- * Function copied from https://wpscholar.com/blog/get-attachment-id-from-wp-image-url/
207
- * Return an ID of an attachment by searching the database with the file URL.
208
- *
209
- * @return {int} $attachment
210
- */
211
- function get_attachment_id_by_url( $url ) {
212
- $attachment_id = 0;
213
- $dir = wp_upload_dir();
214
- if ( false !== strpos( $url, $dir['baseurl'] . '/' ) ) {
215
- $file = basename( $url );
216
- $query_args = array(
217
- 'post_type' => 'attachment',
218
- 'post_status' => 'inherit',
219
- 'fields' => 'ids',
220
- 'meta_query' => array(
221
- array(
222
- 'value' => $file,
223
- 'compare' => 'LIKE',
224
- 'key' => '_wp_attachment_metadata',
225
- ),
226
- )
227
- );
228
- $query = new WP_Query( $query_args );
229
- if ( $query->have_posts() ) {
230
- foreach ( $query->posts as $post_id ) {
231
- $meta = wp_get_attachment_metadata( $post_id );
232
- $original_file = basename( $meta['file'] );
233
- $cropped_image_files = wp_list_pluck( $meta['sizes'], 'file' );
234
- if ( $original_file === $file || in_array( $file, $cropped_image_files ) ) {
235
- $attachment_id = $post_id;
236
- break;
237
- }
238
- }
239
- }
240
- }
241
-
242
- return $attachment_id;
243
- }
244
-
245
- function add_jpibfi() {
246
- if ( is_feed() ) {
247
- return false;
248
- }
249
- $existing_post_types = get_post_types();
250
- $add_jpibfi = false;
251
- $jpibfi_selection_options = $this->selection_options->get();
252
- $show_on = $jpibfi_selection_options['show_on'];
253
- $show_array = explode( ',', $show_on );
254
-
255
- foreach ( $show_array as $show_tag ) {
256
- if ( $this->is_tag( $show_tag, $existing_post_types ) ) {
257
- $add_jpibfi = true;
258
- break;
259
- }
260
- }
261
- if ( ! $add_jpibfi ) {
262
- return false;
263
- }
264
-
265
- $disable_on = $jpibfi_selection_options['disable_on'];
266
- $disable_array = explode( ',', $disable_on );
267
-
268
- foreach ( $disable_array as $disable_tag ) {
269
- if ( $this->is_tag( $disable_tag, $existing_post_types ) ) {
270
- return false;
271
- }
272
- }
273
-
274
- return true;
275
- }
276
-
277
- function is_tag( $tag, $existing_post_types ) {
278
- $tag = trim( $tag );
279
- if ( is_numeric( $tag ) ) {
280
- $int = intval( $tag );
281
-
282
- return get_the_ID() === $int;
283
- }
284
- $tag_without = str_replace(']', '', str_replace('[', '', $tag));
285
-
286
- if ( in_array( $tag_without, $existing_post_types ) ) {
287
- return is_singular( $tag_without ) || is_post_type_archive( $tag_without );
288
- }
289
-
290
- switch ( strtolower( $tag ) ) {
291
- case '[front]':
292
- return is_front_page();
293
- case '[single]':
294
- return is_single();
295
- case '[archive]':
296
- return is_archive();
297
- case '[search]':
298
- return is_search();
299
- case '[category]':
300
- return is_category();
301
- case '[tag]':
302
- return is_tag();
303
- case '[home]':
304
- return is_home();
305
- default:
306
- return false;
307
- }
308
- }
309
  }
1
+ <?php
2
+
3
+ class JPIBFI_Client {
4
+
5
+ private $selection_options;
6
+ private $visual_options;
7
+ /**
8
+ * @var JPIBFI_Advanced_Options
9
+ */
10
+ private $advanced_options;
11
+ private $version;
12
+ private $plugin_dir_url;
13
+
14
+ public function __construct( $file, $version ) {
15
+ $this->version = $version;
16
+ $this->plugin_dir_url = plugin_dir_url( $file );
17
+ $this->selection_options = new JPIBFI_Selection_Options();
18
+ $this->visual_options = new JPIBFI_Visual_Options();
19
+ $this->advanced_options = new JPIBFI_Advanced_Options();
20
+
21
+ add_action( 'wp_enqueue_scripts', array( $this, 'add_plugin_scripts' ) );
22
+ add_action( 'wp_head', array( $this, 'print_header_style' ) );
23
+ $this->add_conditional_filters();
24
+
25
+ //load dependency
26
+ require_once 'JPIBFI_Client_Helper.php';
27
+ }
28
+
29
+ private function add_conditional_filters() {
30
+ $advanced_value = $this->advanced_options->get();
31
+
32
+ $filters = array(
33
+ 'post_thumbnail_html',
34
+ 'the_excerpt',
35
+ 'the_content'
36
+ );
37
+
38
+ foreach ( $filters as $filter ) {
39
+ if ( $advanced_value[ 'filter_' . $filter . '_on' ] ) {
40
+ add_filter( $filter, array(
41
+ $this,
42
+ 'the_content'
43
+ ), $advanced_value[ 'filter_' . $filter . '_priority' ] );
44
+ }
45
+ }
46
+ }
47
+
48
+ public function add_plugin_scripts() {
49
+ if ( ! $this->add_jpibfi() ) {
50
+ return;
51
+ }
52
+
53
+ wp_enqueue_script( 'jpibfi-script', $this->plugin_dir_url . 'js/jpibfi.client.js', array( 'jquery' ), $this->version, true );
54
+
55
+ $parameters_array = array(
56
+ 'hover' => array_merge(
57
+ array( 'siteTitle' => esc_attr( get_bloginfo( 'name', 'display' ) ) ),
58
+ $this->selection_options->get(),
59
+ $this->visual_options->get_options_for_view(),
60
+ $this->advanced_options->get_options_for_view()
61
+ ),
62
+ );
63
+ wp_localize_script( 'jpibfi-script', 'jpibfi_options', $parameters_array );
64
+ wp_enqueue_style( 'jpibfi-style', $this->plugin_dir_url . 'css/client.css', array(), $this->version );
65
+ }
66
+
67
+ public function print_header_style() {
68
+ if ( ! $this->add_jpibfi() ) {
69
+ return;
70
+ }
71
+
72
+ $visual_options_js = $this->visual_options->get_options_for_view();
73
+ $advanced_options = $this->advanced_options->get();
74
+
75
+ $custom_button_span_css = '';
76
+ if ( $visual_options_js['pin_image'] === 'custom' ) {
77
+ $custom_button_span_css .= sprintf( 'background-image: url("%s");', $visual_options_js['custom_image_url'] );
78
+ }
79
+ ob_start();
80
+ ?>
81
+ <style type="text/css">
82
+ a.pinit-button.custom span {
83
+ <?php echo $custom_button_span_css; ?>
84
+ }
85
+
86
+ .pinit-hover {
87
+ opacity: <?php echo (1 - $visual_options_js['transparency_value']); ?> !important;
88
+ filter: alpha(opacity=<?php echo (1 - $visual_options_js['transparency_value']) * 100; ?>) !important;
89
+ }
90
+ <?php echo $advanced_options['custom_css']; ?>
91
+ </style>
92
+ <?php
93
+ echo ob_get_clean();
94
+ }
95
+
96
+ /*
97
+ * Adds data-jpibfi-description attribute to each image that is added through media library. The value is the "Description" of the image from media library.
98
+ * This piece of code uses a lot of code from the Photo Protect http://wordpress.org/plugins/photo-protect/ plugin
99
+ */
100
+ function the_content( $content ) {
101
+ if ( ! $this->add_jpibfi() ) {
102
+ return $content;
103
+ }
104
+ global $post;
105
+
106
+ $visual_options = $this->visual_options->get();
107
+
108
+ $get_description = in_array( 'img_description', $visual_options['description_option'] );
109
+ $get_caption = in_array( 'img_caption', $visual_options['description_option'] );
110
+
111
+ $imgPattern = '/<img[^>]*>/i';
112
+ $attrPattern = '/ ([-\w]+)[ ]*=[ ]*([\"\'])(.*?)\2/i';
113
+
114
+ preg_match_all( $imgPattern, $content, $images, PREG_SET_ORDER );
115
+
116
+ foreach ( $images as $img ) {
117
+
118
+ preg_match_all( $attrPattern, $img[0], $attributes, PREG_SET_ORDER );
119
+
120
+ $new_img = '<img';
121
+ $src = '';
122
+ $id = '';
123
+
124
+ foreach ( $attributes as $att ) {
125
+ $full = $att[0];
126
+ $name = $att[1];
127
+ $value = $att[3];
128
+
129
+ $new_img .= $full;
130
+
131
+ if ( 'class' == $name ) {
132
+ $id = $this->get_post_id_from_image_classes( $value );
133
+ }
134
+
135
+ if ( 'src' == $name ) {
136
+ $src = $value;
137
+ }
138
+ }
139
+
140
+ $att = $get_description || $get_caption ? $this->get_attachment( $id, $src ): null;
141
+ if ( $att != null ) {
142
+ $new_img .= $get_description ? sprintf( ' data-jpibfi-description="%s"', esc_attr( $att->post_content ) ): '';
143
+ $new_img .= $get_caption ? sprintf( ' data-jpibfi-caption="%s"', esc_attr( $att->post_excerpt ) ): '';
144
+ }
145
+
146
+ $new_img .= sprintf( ' data-jpibfi-post-excerpt="%s"', esc_attr( wp_kses( $post->post_excerpt, array() ) ) );
147
+ $new_img .= sprintf( ' data-jpibfi-post-url="%s"', esc_attr( get_permalink() ) );
148
+ $new_img .= sprintf( ' data-jpibfi-post-title="%s"', esc_attr( get_the_title() ) );
149
+ $new_img .= sprintf( ' data-jpibfi-src="%s"', esc_attr( $src ) );
150
+ $new_img .= ' >';
151
+ $content = str_replace( $img[0], $new_img, $content );
152
+ }
153
+ $jscript = '';
154
+ if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
155
+ ob_start();
156
+ ?>
157
+ <script type="text/javascript">
158
+ (function () {
159
+ if (!jQuery) return;
160
+ jQuery(document).ready(function () {
161
+ var $inputs = jQuery('.jpibfi');
162
+ var $closest = $inputs.closest('div, article');
163
+ $closest = $closest.length ? $closest : $inputs.parent();
164
+ $closest.addClass('jpibfi_container');
165
+ });
166
+ })();
167
+ </script>
168
+ <?php
169
+ $jscript = ob_get_clean();
170
+ }
171
+
172
+ return '<input class="jpibfi" type="hidden">' . $content . $jscript;
173
+ }
174
+
175
+
176
+ //function gets the id of the image by searching for class with wp-image- prefix, otherwise returns empty string
177
+ function get_post_id_from_image_classes( $class_attribute ) {
178
+ $classes = preg_split( '/\s+/', $class_attribute, - 1, PREG_SPLIT_NO_EMPTY );
179
+ $prefix = 'wp-image-';
180
+
181
+ foreach ( $classes as $class ) {
182
+ if ( $prefix === substr( $class, 0, strlen( $prefix ) ) ) {
183
+ return str_replace( $prefix, '', $class );
184
+ }
185
+ }
186
+
187
+ return '';
188
+ }
189
+
190
+ /**
191
+ * @param $id
192
+ * @param $src
193
+ *
194
+ * @return array|null|WP_Post
195
+ */
196
+ function get_attachment( $id, $src ) {
197
+ $result = is_numeric( $id ) ? get_post( $id ) : null;
198
+ if ( $result )
199
+ return $result;
200
+
201
+ $id = $this->get_attachment_id_by_url( $src );
202
+ return $id !== 0 ? get_post( $id ) : null;
203
+ }
204
+
205
+ /**
206
+ * Function copied from https://wpscholar.com/blog/get-attachment-id-from-wp-image-url/
207
+ * Return an ID of an attachment by searching the database with the file URL.
208
+ *
209
+ * @return {int} $attachment
210
+ */
211
+ function get_attachment_id_by_url( $url ) {
212
+ $attachment_id = 0;
213
+ $dir = wp_upload_dir();
214
+ if ( false !== strpos( $url, $dir['baseurl'] . '/' ) ) {
215
+ $file = basename( $url );
216
+ $query_args = array(
217
+ 'post_type' => 'attachment',
218
+ 'post_status' => 'inherit',
219
+ 'fields' => 'ids',
220
+ 'meta_query' => array(
221
+ array(
222
+ 'value' => $file,
223
+ 'compare' => 'LIKE',
224
+ 'key' => '_wp_attachment_metadata',
225
+ ),
226
+ )
227
+ );
228
+ $query = new WP_Query( $query_args );
229
+ if ( $query->have_posts() ) {
230
+ foreach ( $query->posts as $post_id ) {
231
+ $meta = wp_get_attachment_metadata( $post_id );
232
+ $original_file = basename( $meta['file'] );
233
+ $cropped_image_files = wp_list_pluck( $meta['sizes'], 'file' );
234
+ if ( $original_file === $file || in_array( $file, $cropped_image_files ) ) {
235
+ $attachment_id = $post_id;
236
+ break;
237
+ }
238
+ }
239
+ }
240
+ }
241
+
242
+ return $attachment_id;
243
+ }
244
+
245
+ function add_jpibfi() {
246
+ if ( is_feed() ) {
247
+ return false;
248
+ }
249
+ $existing_post_types = get_post_types();
250
+ $add_jpibfi = false;
251
+ $jpibfi_selection_options = $this->selection_options->get();
252
+ $show_on = $jpibfi_selection_options['show_on'];
253
+ $show_array = explode( ',', $show_on );
254
+
255
+ foreach ( $show_array as $show_tag ) {
256
+ if ( $this->is_tag( $show_tag, $existing_post_types ) ) {
257
+ $add_jpibfi = true;
258
+ break;
259
+ }
260
+ }
261
+ if ( ! $add_jpibfi ) {
262
+ return false;
263
+ }
264
+
265
+ $disable_on = $jpibfi_selection_options['disable_on'];
266
+ $disable_array = explode( ',', $disable_on );
267
+
268
+ foreach ( $disable_array as $disable_tag ) {
269
+ if ( $this->is_tag( $disable_tag, $existing_post_types ) ) {
270
+ return false;
271
+ }
272
+ }
273
+
274
+ return true;
275
+ }
276
+
277
+ function is_tag( $tag, $existing_post_types ) {
278
+ $tag = trim( $tag );
279
+ if ( is_numeric( $tag ) ) {
280
+ $int = intval( $tag );
281
+
282
+ return get_the_ID() === $int;
283
+ }
284
+ $tag_without = str_replace(']', '', str_replace('[', '', $tag));
285
+
286
+ if ( in_array( $tag_without, $existing_post_types ) ) {
287
+ return is_singular( $tag_without ) || is_post_type_archive( $tag_without );
288
+ }
289
+
290
+ switch ( strtolower( $tag ) ) {
291
+ case '[front]':
292
+ return is_front_page();
293
+ case '[single]':
294
+ return is_single();
295
+ case '[archive]':
296
+ return is_archive();
297
+ case '[search]':
298
+ return is_search();
299
+ case '[category]':
300
+ return is_category();
301
+ case '[tag]':
302
+ return is_tag();
303
+ case '[home]':
304
+ return is_home();
305
+ default:
306
+ return false;
307
+ }
308
+ }
309
  }
index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
  /* Let The Force Be With You */
1
+ <?php
2
  /* Let The Force Be With You */
jquery-pin-it-button-for-images.php CHANGED
@@ -6,7 +6,7 @@ Description: Highlights images on hover and adds a "Pin It" button over them for
6
  Text Domain: jquery-pin-it-button-for-images
7
  Domain Path: /languages
8
  Author: Marcin Skrzypiec
9
- Version:3.0.5
10
  Author URI: https://highfiveplugins.com/
11
  */
12
 
@@ -18,7 +18,7 @@ if ( !class_exists( 'jQuery_Pin_It_Button_For_Images' ) ) {
18
  final class jQuery_Pin_It_Button_For_Images {
19
 
20
  function __construct() {
21
- $version = '3.0.5';
22
  require_once plugin_dir_path(__FILE__) . 'includes/jpibfi.php';
23
  new JPIBFI(__FILE__, $version);
24
  }
6
  Text Domain: jquery-pin-it-button-for-images
7
  Domain Path: /languages
8
  Author: Marcin Skrzypiec
9
+ Version:3.0.6
10
  Author URI: https://highfiveplugins.com/
11
  */
12
 
18
  final class jQuery_Pin_It_Button_For_Images {
19
 
20
  function __construct() {
21
+ $version = '3.0.6';
22
  require_once plugin_dir_path(__FILE__) . 'includes/jpibfi.php';
23
  new JPIBFI(__FILE__, $version);
24
  }
js/jpibfi.admin.js CHANGED
@@ -1,11 +1 @@
1
- !function(){function e(t,n,r){function o(i,s){if(!n[i]){if(!t[i]){var u="function"==typeof require&&require;if(!s&&u)return u(i,!0);if(a)return a(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[i]={exports:{}};t[i][0].call(l.exports,function(e){var n=t[i][1][e];return o(n||e)},l,l.exports,e,t,n,r)}return n[i].exports}for(var a="function"==typeof require&&require,i=0;i<r.length;i++)o(r[i]);return o}return e}()({1:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(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}function i(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)}Object.defineProperty(n,"__esModule",{value:!0});var s=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}}(),u=e("react"),c=r(u),l=e("./Components/Navbar"),p=r(l),f=e("./Components/SelectEditor"),d=r(f),h=e("./Components/VisualEditor"),v=r(h),g=e("./Components/AdvancedEditor"),m=r(g),y=e("./Components/ImportExportEditor"),b=r(y),_=function(e){function t(){o(this,t);var e=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.state={config:null},e.renderLicenseTab=e.renderLicenseTab.bind(e),e.renderTab=e.renderTab.bind(e),e.renderSubmitButton=e.renderSubmitButton.bind(e),e}return i(t,e),s(t,[{key:"componentDidMount",value:function(){this.setState({config:window.jpibfi_settings})}},{key:"isCurrentTabIn",value:function(e){var t=this;return e.some(function(e){return t.state.config.currentTab===e})}},{key:"isCurrentTabEqualTo",value:function(e){return this.isCurrentTabIn([e])}},{key:"render",value:function(){if(!this.state.config)return null;var e=this.state.config,t={tabs:e.tabs,page:e.page,currentTab:e.currentTab,links:e.links};return c["default"].createElement("div",{id:"foo"},c["default"].createElement(p["default"],t),c["default"].createElement("form",{method:"POST",encType:"multipart/form-data",id:"jpibfi-form",action:e.save.post_url},c["default"].createElement("input",{name:e.save.action,value:e.save.nonce,type:"hidden"}),c["default"].createElement("input",{name:e.save.tab,value:e.currentTab,type:"hidden"}),this.renderTab(d["default"],"select"),this.renderTab(v["default"],"visual"),this.renderTab(m["default"],"advanced"),this.renderTab(b["default"],"import"),this.renderLicenseTab(),this.renderSubmitButton()))}},{key:"renderTab",value:function(e,t){if(!this.isCurrentTabEqualTo(t))return null;var n=this.state.config,r=n.settings,o=n.i18n;return c["default"].createElement(e,{settings:r,i18n:o.editor})}},{key:"renderSubmitButton",value:function(){return this.isCurrentTabIn(["select","visual","advanced"])?c["default"].createElement("input",{type:"submit",className:"button button-primary",value:this.state.config.save.submit}):null}},{key:"renderLicenseTab",value:function(){return null}}]),t}(u.Component);n["default"]=_},{"./Components/AdvancedEditor":2,"./Components/ImportExportEditor":3,"./Components/Navbar":4,"./Components/SelectEditor":5,"./Components/VisualEditor":7,react:353}],2:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(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}function s(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)}function u(e){var t=e.name,n=e.priority,r=e.template,o=[{tag:"%name%",editor:f["default"].createElement(d.CheckboxEditor,{key:"name",args:t})},{tag:"%priority%",editor:f["default"].createElement(d.LabeledNumberEditor,{key:"priority",args:n,step:"1"})}];return f["default"].createElement(d.Templated,{items:o,template:r})}Object.defineProperty(n,"__esModule",{value:!0});var c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l=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}}(),p=e("react"),f=r(p),d=e("./helpers"),h=function(e){function t(e){a(this,t);var n=i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.changeValue=function(e,t){var r=n.props.settings[e],a=c({},n.state.settings,o({},e,c({},r,{value:t})));n.setState({settings:a})},n.renderProFeatureError=function(){return f["default"].createElement("p",null,f["default"].createElement("b",{dangerouslySetInnerHTML:{__html:n.props.i18n.pro_feature_error}}))},n.state={settings:c({},e.settings)},n}return s(t,e),l(t,[{key:"render",value:function(){var e=this.props,t=e.settings,n=e.i18n;return f["default"].createElement("div",null,f["default"].createElement("h2",null,e.i18n.title),f["default"].createElement("table",{className:"form-table"},f["default"].createElement("tbody",null,this.renderSupportSrcsetSetting(),f["default"].createElement("tr",null,f["default"].createElement("th",null,n.filters_label),f["default"].createElement("td",null,f["default"].createElement(u,{name:t.filter_the_content_on,priority:t.filter_the_content_priority,template:n.filter_template}),f["default"].createElement(u,{name:t.filter_the_excerpt_on,priority:t.filter_the_excerpt_priority,template:n.filter_template}),f["default"].createElement(u,{name:t.filter_post_thumbnail_html_on,priority:t.filter_post_thumbnail_html_priority,template:n.filter_template}),f["default"].createElement(d.Description,{text:n.filters_description}))),this.renderScrollSelectionSetting(),f["default"].createElement(d.TableRow,{Editor:d.TextareaEditor,rows:5,setting:t.custom_css}))))}},{key:"renderSupportSrcsetSetting",value:function(){var e=this,t=this.state.settings.support_srcset,n=null;return t.value===!0&&(n=this.renderProFeatureError()),f["default"].createElement("tr",null,f["default"].createElement("th",null,f["default"].createElement("label",{htmlFor:t.key},t.label)),f["default"].createElement("td",null,f["default"].createElement(d.CheckboxEditor,{args:t,onChange:function(t){return e.changeValue("support_srcset",t.target.checked)}}),f["default"].createElement(d.Description,{text:t.desc}),n))}},{key:"renderScrollSelectionSetting",value:function(){this.props.settings;return null}}]),t}(p.Component);n["default"]=h},{"./helpers":8,react:353}],3:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(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}function i(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)}Object.defineProperty(n,"__esModule",{value:!0});var s=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}}(),u=e("react"),c=r(u),l=(e("./helpers"),function(e){function t(){return o(this,t),a(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return i(t,e),s(t,[{key:"onUpload",value:function(){document.getElementById("jpibfi-form").submit()}},{key:"render",value:function(){var e=this.props,t=(e.settings,e.i18n);return c["default"].createElement("div",null,c["default"].createElement("h2",null,t.title),c["default"].createElement("table",{className:"form-table"},c["default"].createElement("tbody",null,c["default"].createElement("tr",null,c["default"].createElement("th",null,c["default"].createElement("label",null,t.export_title)),c["default"].createElement("td",null,c["default"].createElement("a",{href:t.export_url,className:"button button-default"},t.export_button_text))),c["default"].createElement("tr",null,c["default"].createElement("th",null,c["default"].createElement("label",null,t.import_title)),c["default"].createElement("td",null,c["default"].createElement("input",{type:"file",name:"import",onChange:this.onUpload,accept:".json"}))))))}}]),t}(u.Component));n["default"]=l},{"./helpers":8,react:353}],4:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return i["default"].createElement("h2",{className:"nav-tab-wrapper"},e.tabs.map(function(t){return i["default"].createElement("a",{key:t.slug,href:"?page="+e.page+"&tab="+t.slug,className:"nav-tab "+(e.currentTab===t.slug&&"nav-tab-active")},t.name)}),e.links.map(function(e){return i["default"].createElement("a",{key:e.url,target:"_blank",className:"nav-tab",href:e.url},e.label)}))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=o;var a=e("react"),i=r(a)},{react:353}],5:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(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}function i(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)}function s(e){var t=e.height,n=e.width,r=e.template,o=[{tag:"%height%",editor:l["default"].createElement(p.NumberEditor,{key:"height",args:t,step:"1",min:"0"})},{tag:"%width%",editor:l["default"].createElement(p.NumberEditor,{key:"width",args:n,step:"1",min:"0"})}];return l["default"].createElement(p.Templated,{items:o,template:r})}Object.defineProperty(n,"__esModule",{value:!0});var u=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}}(),c=e("react"),l=r(c),p=e("./helpers"),f=function(e){function t(){return o(this,t),a(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return i(t,e),u(t,[{key:"render",value:function(){var e=this.props,t=e.settings,n=e.i18n;return l["default"].createElement("div",null,l["default"].createElement("h2",null,n.title),l["default"].createElement("table",{className:"form-table"},l["default"].createElement("tbody",null,l["default"].createElement(p.TableRow,{Editor:p.TextareaEditor,setting:t.image_selector}),l["default"].createElement(p.TableRow,{Editor:p.TextEditor,setting:t.disabled_classes}),l["default"].createElement(p.TableRow,{Editor:p.TextEditor,setting:t.enabled_classes}),l["default"].createElement("tr",null,l["default"].createElement("th",null,n.image_resolution_label),l["default"].createElement("td",null,l["default"].createElement(s,{height:t.min_image_height_small,width:t.min_image_width_small,template:n.min_resolution_template_small}),l["default"].createElement(s,{height:t.min_image_height,width:t.min_image_width,template:n.min_resolution_template}),l["default"].createElement(p.Description,{text:n.image_resolution_desc}),l["default"].createElement(p.Description,{text:n.image_resolution_desc_2}))),l["default"].createElement("tr",null,l["default"].createElement("th",null,n.show_on_field_label),l["default"].createElement("td",null,l["default"].createElement("p",null,l["default"].createElement("label",{htmlFor:"show_on"},t.show_on.label,":"),l["default"].createElement("br",null),l["default"].createElement(p.TextareaEditor,{args:t.show_on})),l["default"].createElement("p",null,l["default"].createElement("label",{htmlFor:"disable_on"},t.disable_on.label,":"),l["default"].createElement("br",null),l["default"].createElement(p.TextareaEditor,{args:t.disable_on})),l["default"].createElement(p.Description,{text:n.show_on_field_desc}))))))}}]),t}(c.Component);n["default"]=f},{"./helpers":8,react:353}],6:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(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)}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(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}function s(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)}Object.defineProperty(n,"__esModule",{value:!0}),n.SortableItem=void 0;var u,c,l,p,f,d,h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},v=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}}(),g=e("react"),m=r(g),y=e("react-dnd"),b=e("react-dnd-html5-backend"),_=r(b),E="ListItem",C={beginDrag:function(e){var t=e.item.key,n=e.findItem;return{key:t,originalIndex:n(t).index}},endDrag:function(e,t){var n=t.getItem(),r=n.key,o=n.originalIndex;t.didDrop()||e.moveCard(r,o)}},w={canDrop:function(){return!1},hover:function(e,t){var n=e.item,r=e.findItem,o=e.moveItem,a=t.getItem(),i=a.key,s=n.key;if(i!==s){var u=r(s),c=u.index;o(i,c)}}},O=n.SortableItem=(u=(0,y.DropTarget)(E,w,function(e){return{connectDropTarget:e.dropTarget()}}),c=(0,y.DragSource)(E,C,function(e,t){return{connectDragSource:e.dragSource(),isDragging:t.isDragging()}}),u(l=c(l=function(e){function t(){return a(this,t),i(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return s(t,e),v(t,[{key:"render",value:function(){var e=this.props,t=e.item,n=e.isDragging,r=e.connectDragSource,o=e.connectDropTarget,a=e.changeSelected,i=n?0:1;return r(o(m["default"].createElement("li",{style:{opacity:i}},m["default"].createElement("input",{type:"checkbox",id:t.key,defaultChecked:t.selected,onChange:function(){return a(t.key)}}),m["default"].createElement("label",{htmlFor:t.key},t.label))))}}]),t}(g.Component))||l)||l),T={drop:function(){}},D=(p=(0,y.DragDropContext)(_["default"]),f=(0,y.DropTarget)(E,T,function(e){return{connectDropTarget:e.dropTarget()}}),p(d=f(d=function(e){function t(e){a(this,t);var n=i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));n.changeSelected=n.changeSelected.bind(n),n.moveItem=n.moveItem.bind(n),n.findItem=n.findItem.bind(n);var r=e.args,o=r.value.slice().concat(Object.keys(r.options).filter(function(e){return r.value.indexOf(e)===-1}));return n.state={items:o.map(function(e){return{key:e,label:r.options[e],selected:r.value.indexOf(e)!==-1}})},n}return s(t,e),v(t,[{key:"changeSelected",value:function(e){this.setState({items:this.state.items.map(function(t){return t.key==e?h({},t,{selected:!t.selected}):t})})}},{key:"moveItem",value:function(e,t){var n=this.findItem(e),r=n.item,a=(n.index,this.state.items.filter(function(e){return e.key!=r.key}));a=[].concat(o(a.slice(0,t)),[r],o(a.slice(t))),this.setState({items:a})}},{key:"findItem",value:function(e){var t=this.state.items,n=t.filter(function(t){return t.key===e})[0];return{item:n,index:t.indexOf(n)}}},{key:"render",value:function(){var e=this,t=this.props,n=t.connectDropTarget,r=t.args,o=this.state.items,a=o.reduce(function(e,t){return t.selected?e.concat([t.key]):e},[]);return n(m["default"].createElement("div",null,m["default"].createElement("input",{type:"hidden",name:r.key,value:a}),m["default"].createElement("ul",{className:"frizzly-sortable"},o.map(function(t,n){return m["default"].createElement(O,{key:t.key,item:t,moveItem:e.moveItem,findItem:e.findItem,changeSelected:e.changeSelected})}))))}}]),t}(g.Component))||d)||d);n["default"]=D},{react:353,"react-dnd":192,"react-dnd-html5-backend":177}],7:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(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}function s(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)}Object.defineProperty(n,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c=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}}(),l=e("react"),p=r(l),f=e("./helpers"),d=e("./SortableEditor"),h=r(d),v=function(e){function t(e){a(this,t);var n=i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.buttonPositionChanged=function(e){n.setState({ui:{marginAvailability:{top:"top-left"===e||"top-right"===e,bottom:"bottom-left"===e||"bottom-right"===e,left:"top-left"===e||"bottom-left"===e,right:"top-right"===e||"bottom-right"===e}}}),n.changeValue("buttonPosition",e)},n.changeValue=function(e,t){var r=n.props.settings[e],a=u({},n.state.settings,o({},e,u({},r,{value:t})));n.setState({settings:a})},n.upload=function(){return n.fileFrame?void n.fileFrame.open():(n.fileFrame=wp.media.frames.file_frame=wp.media({title:n.props.i18n.custom_button_frame_title,button:{text:n.props.i18n.custom_button_frame_button_text},multiple:!1}).on("select",function(){var e=n.fileFrame.state().get("selection").first().toJSON();n.changeValue("custom_image_url",e.url),n.changeValue("custom_image_width",e.width),n.changeValue("custom_image_height",e.height)}),void n.fileFrame.open())},n.renderCustomIconSettings=function(){var e=n.state.settings,t=n.props.i18n;return p["default"].createElement("div",null,p["default"].createElement("p",null,p["default"].createElement("button",{type:"button",className:"button button-default",onClick:n.upload},t.custom_button_upload)),p["default"].createElement("p",null,p["default"].createElement("label",{htmlFor:"custom_image_url"},e.custom_image_url.label),p["default"].createElement(f.TextEditor,{value:e.custom_image_url.value,args:e.custom_image_url,onChange:function(e){return n.changeValue("custom_image_url",e.target.value)}})),p["default"].createElement("div",{style:{display:"inline-block",width:"49%"}},p["default"].createElement("label",{htmlFor:"custom_image_height"},e.custom_image_height.label),p["default"].createElement(f.NumberEditor,{args:e.custom_image_height,value:e.custom_image_height.value,onChange:function(e){return n.changeValue("custom_image_height",e.target.value)}})),p["default"].createElement("div",{style:{display:"inline-block",width:"49%"}},p["default"].createElement("label",{htmlFor:"custom_image_width"},e.custom_image_width.label),p["default"].createElement(f.NumberEditor,{value:e.custom_image_width.value,args:e.custom_image_width,onChange:function(e){return n.changeValue("custom_image_width",e.target.value)}})),p["default"].createElement("br",null),p["default"].createElement(f.Description,{dangerouslySetInnerHTML:{__html:t.custom_button_desc}}))},n.state={settings:u({},e.settings),ui:{marginAvailability:{top:!0,bottom:!0,left:!0,right:!0}}},n.fileFrame=null,n}return s(t,e),c(t,[{key:"componentDidMount",value:function(){this.buttonPositionChanged(this.props.settings.button_position.value)}},{key:"render",value:function(){var e=this,t=this.props.i18n,n=this.state,r=n.ui.marginAvailability,o=n.settings;return p["default"].createElement("div",null,p["default"].createElement("h2",null,t.title),p["default"].createElement("table",{className:"form-table"},p["default"].createElement("tbody",null,p["default"].createElement("tr",null,p["default"].createElement("th",null,p["default"].createElement("label",{htmlFor:"show_button"},o.show_button.label)),p["default"].createElement("td",null,p["default"].createElement(f.SelectEditor,{args:o.show_button,onChange:function(t){return e.changeValue("show_button",t.target.value)}}),p["default"].createElement(f.Description,{text:o.show_button.desc}),this.renderShowButtonError())),p["default"].createElement("tr",null,p["default"].createElement("th",null,p["default"].createElement("label",null,o.description_option.label)),p["default"].createElement("td",null,p["default"].createElement(h["default"],{args:o.description_option}),p["default"].createElement(f.Description,{text:o.description_option.desc}))),p["default"].createElement(f.TableRow,{Editor:f.NumberEditor,setting:o.transparency_value,min:"0",max:"1",step:"0.01"}),p["default"].createElement("tr",null,p["default"].createElement("th",null,p["default"].createElement("label",null,o.pin_image.label)),p["default"].createElement("td",null,p["default"].createElement("table",{className:"jpibfi-inner-table"},p["default"].createElement("tbody",null,p["default"].createElement("tr",null,p["default"].createElement("th",null,t.mode),"old_default"!==o.pin_image.value&&p["default"].createElement("th",null,t.settings),p["default"].createElement("th",null,t.preview)),p["default"].createElement("tr",null,p["default"].createElement("td",null,Object.keys(o.pin_image.options).map(function(t){return p["default"].createElement("p",{key:t},p["default"].createElement("label",null,p["default"].createElement("input",{type:"radio",name:o.pin_image.key,value:t,checked:t===o.pin_image.value,onChange:function(t){return e.changeValue("pin_image",t.target.value)}}),o.pin_image.options[t]))})),p["default"].createElement("td",null,"default"===o.pin_image.value&&this.renderDefaultIconSettings(),"custom"===o.pin_image.value&&this.renderCustomIconSettings()),this.renderIconPreview()))))),p["default"].createElement(f.TableRow,{Editor:f.CheckboxEditor,setting:o.pin_linked_url}),this.renderScalePinImageSetting(),p["default"].createElement(f.TableRow,{Editor:f.SelectEditor,setting:o.button_position,onChange:function(t){return e.buttonPositionChanged(t.target.value)}}),p["default"].createElement("tr",null,p["default"].createElement("th",null,p["default"].createElement("label",null,t.margins_label)),p["default"].createElement("td",null,p["default"].createElement("p",null,p["default"].createElement("label",{htmlFor:"button_margin_top"},o.button_margin_top.label),p["default"].createElement(f.LabeledNumberEditor,{disabled:!r.top,args:o.button_margin_top})),p["default"].createElement("p",null,p["default"].createElement("label",{htmlFor:"button_margin_bottom"},o.button_margin_bottom.label),p["default"].createElement(f.LabeledNumberEditor,{disabled:!r.bottom,args:o.button_margin_bottom})),p["default"].createElement("p",null,p["default"].createElement("label",{htmlFor:"button_margin_left"},o.button_margin_left.label),p["default"].createElement(f.LabeledNumberEditor,{disabled:!r.left,args:o.button_margin_left})),p["default"].createElement("p",null,p["default"].createElement("label",{htmlFor:"button_margin_right"},o.button_margin_right.label),p["default"].createElement(f.LabeledNumberEditor,{disabled:!r.right,args:o.button_margin_right})),p["default"].createElement(f.Description,{text:t.margins_desc}))))),p["default"].createElement("p",{dangerouslySetInnerHTML:{__html:t.attribution}}))}},{key:"renderDefaultIconSettings",value:function(){var e=this,t=this.state.settings,n=null;return"circle"!==t.pin_image_icon.value&&(n=this.renderProFeatureError()),p["default"].createElement("div",null,p["default"].createElement("p",null,p["default"].createElement("label",{htmlFor:"pin_image_icon"},t.pin_image_icon.label),p["default"].createElement(f.SelectEditor,{args:t.pin_image_icon,onChange:function(t){return e.changeValue("pin_image_icon",t.target.value)}}),n),p["default"].createElement("p",null,p["default"].createElement("label",{htmlFor:"pin_image_size"},t.pin_image_size.label),p["default"].createElement(f.SelectEditor,{args:t.pin_image_size,onChange:function(t){return e.changeValue("pin_image_size",t.target.value)}})),p["default"].createElement("p",null,p["default"].createElement("label",{htmlFor:"pin_image_button"},t.pin_image_button.label),p["default"].createElement(f.SelectEditor,{args:t.pin_image_button,onChange:function(t){return e.changeValue("pin_image_button",t.target.value)}})))}},{key:"renderIconPreview",value:function(){var e=this.props.i18n,t=this.state.settings,n=t.pin_image.value,r=t.pin_image_size.value,o=this.state.settings.custom_image_url.value;return p["default"].createElement("td",null,"old_default"===n&&p["default"].createElement("div",null,p["default"].createElement("a",{className:"pinit-button old_default"},p["default"].createElement("span",null))),"default"===n&&p["default"].createElement("div",null,p["default"].createElement("a",{className:"pinit-button default jpibfi-size-"+r+" jpibfi-button-"+t.pin_image_button.value},p["default"].createElement("span",{className:"jpibfi-icon-"+t.pin_image_icon.value}))),"custom"===n&&o&&p["default"].createElement("div",null,p["default"].createElement("div",{style:{width:t.custom_image_width.value+"px",height:t.custom_image_height.value+"px",backgroundImage:"url('"+o+"')"}})),"custom"===n&&!o&&p["default"].createElement("div",{dangerouslySetInnerHTML:{__html:e.custom_button_no_image_to_preview}}))}},{key:"renderProFeatureError",value:function(){return p["default"].createElement("p",null,p["default"].createElement("b",{dangerouslySetInnerHTML:{__html:this.props.i18n.pro_feature_error}}))}},{key:"renderShowButtonError",value:function(){return"hover"!==this.state.settings.show_button.value?this.renderProFeatureError():null}},{key:"renderScalePinImageSetting",value:function(){var e=this,t=this.state.settings.scale_pin_image,n=null;return t.value===!0&&(n=this.renderProFeatureError()),p["default"].createElement("tr",null,p["default"].createElement("th",null,p["default"].createElement("label",{htmlFor:t.key},t.label)),p["default"].createElement("td",null,p["default"].createElement(f.CheckboxEditor,{args:t,onChange:function(t){return e.changeValue("scale_pin_image",t.target.checked)}}),p["default"].createElement(f.Description,{text:t.desc}),n))}}]),t}(l.Component);n["default"]=v},{"./SortableEditor":6,"./helpers":8,react:353}],8:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e){var t=e.text;return g["default"].createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:t}})}function i(e){var t=e.Editor,n=e.setting,r=o(e,["Editor","setting"]);return g["default"].createElement("tr",null,g["default"].createElement("th",null,g["default"].createElement("label",{htmlFor:n.key},n.label)),g["default"].createElement("td",null,g["default"].createElement(t,h({args:n},r)),g["default"].createElement(a,{text:n.desc})))}function s(e){var t=e.template,n=e.items,r=t.split(" ").reduce(function(e,t){if(n.every(function(e){return e.tag!==t}))return e.concat([t+" "]);var r=n.filter(function(e){return e.tag===t})[0];return e.concat([r.editor," "])},[]).reduce(function(e,t){return 0===e.length?[t]:"string"==typeof t&&"string"==typeof e[e.length-1]?e.slice(0,e.length-1).concat([e[e.length-1]+t]):e.concat(t)},[]);return g["default"].createElement("p",[],r)}function u(e){var t=e.args,n=e.className,r=void 0===n?"regular-text":n,a=o(e,["args","className"]);return a.hasOwnProperty("value")||(a.defaultValue=t.value),g["default"].createElement("input",h({type:"text",className:r},a,{placeholder:t.placeholder||"",name:t.key,id:t.key}))}function c(e){var t=e.args,n=o(e,["args"]);return g["default"].createElement("textarea",h({rows:"3",cols:"50",className:"large-text code",defaultValue:t.value},n,{id:t.key,name:t.key}))}function l(e){var t=e.args,n=o(e,["args"]);return n.hasOwnProperty("value")||(n.defaultValue=t.value),g["default"].createElement("input",h({type:"number",className:"small-text"},n,{id:t.key,name:t.key}))}function p(e){var t=e.args,n=o(e,["args"]);return g["default"].createElement("label",{htmlFor:t.key},t.text,g["default"].createElement(l,h({args:t},n)),t.unit)}function f(e){var t=e.args,n=o(e,["args"]);return g["default"].createElement("select",h({name:t.key,id:t.key},n,{defaultValue:t.value}),Object.keys(t.options).map(function(e){return g["default"].createElement("option",{key:e,value:e},t.options[e])}))}function d(e){var t=e.args,n=o(e,["args"]);return g["default"].createElement("span",null,g["default"].createElement("input",h({type:"checkbox",name:t.key,id:t.key,defaultChecked:t.value},n)),g["default"].createElement("label",{htmlFor:t.key},t.text),t.tooltip&&g["default"].createElement("span",{tooltips:!0,"tooltip-template":t.tooltip,className:"dashicons dashicons-editor-help"}),t.addBr&&g["default"].createElement("br",null))}Object.defineProperty(n,"__esModule",{value:!0});var h=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};n.Description=a,n.TableRow=i,n.Templated=s,n.TextEditor=u,n.TextareaEditor=c,n.NumberEditor=l,n.LabeledNumberEditor=p,n.SelectEditor=f,n.CheckboxEditor=d;var v=e("react"),g=r(v)},{react:353}],9:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}var o=e("react"),a=r(o),i=e("react-dom"),s=e("./app/App"),u=r(s);jQuery(document).ready(function(){(0,i.render)(a["default"].createElement(u["default"],null),document.getElementById("jpibfi-container"))})},{"./app/App":1,react:353,"react-dom":201}],10:[function(e,t,n){"use strict";function r(){if(u.length)throw u.shift()}function o(e){var t;t=s.length?s.pop():new a,t.task=e,i(t)}function a(){this.task=null}var i=e("./raw"),s=[],u=[],c=i.makeRequestCallFromTimer(r);t.exports=o,a.prototype.call=function(){try{this.task.call()}catch(e){o.onerror?o.onerror(e):(u.push(e),c())}finally{this.task=null,s[s.length]=this}}},{"./raw":11}],11:[function(e,t,n){(function(e){
2
- "use strict";function n(e){s.length||(i(),u=!0),s[s.length]=e}function r(){for(;c<s.length;){var e=c;if(c+=1,s[e].call(),c>l){for(var t=0,n=s.length-c;t<n;t++)s[t]=s[t+c];s.length-=c,c=0}}s.length=0,c=0,u=!1}function o(e){var t=1,n=new f(e),r=document.createTextNode("");return n.observe(r,{characterData:!0}),function(){t=-t,r.data=t}}function a(e){return function(){function t(){clearTimeout(n),clearInterval(r),e()}var n=setTimeout(t,0),r=setInterval(t,50)}}t.exports=n;var i,s=[],u=!1,c=0,l=1024,p="undefined"!=typeof e?e:self,f=p.MutationObserver||p.WebKitMutationObserver;i="function"==typeof f?o(r):a(r),n.requestFlush=i,n.makeRequestCallFromTimer=a}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],12:[function(e,t,n){(function(n){"use strict";function r(e){return e}function o(e,t,n){function o(e,t){var n=y.hasOwnProperty(t)?y[t]:null;w.hasOwnProperty(t)&&u("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&&u("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 a(e,n){if(n){u("function"!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),u(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=e.prototype,a=r.__reactAutoBindPairs;n.hasOwnProperty(c)&&_.mixins(e,n.mixins);for(var i in n)if(n.hasOwnProperty(i)&&i!==c){var s=n[i],l=r.hasOwnProperty(i);if(o(l,i),_.hasOwnProperty(i))_[i](e,s);else{var p=y.hasOwnProperty(i),h="function"==typeof s,v=h&&!p&&!l&&n.autobind!==!1;if(v)a.push(i,s),r[i]=s;else if(l){var g=y[i];u(p&&("DEFINE_MANY_MERGED"===g||"DEFINE_MANY"===g),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",g,i),"DEFINE_MANY_MERGED"===g?r[i]=f(r[i],s):"DEFINE_MANY"===g&&(r[i]=d(r[i],s))}else r[i]=s}}}else;}function l(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in _;u(!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;if(a){var i=b.hasOwnProperty(n)?b[n]:null;return u("DEFINE_MANY_MERGED"===i,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),void(e[n]=f(e[n],r))}e[n]=r}}}function p(e,t){u(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.");for(var n in t)t.hasOwnProperty(n)&&(u(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 p(o,n),p(o,r),o}}function d(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function h(e,t){var n=t.bind(e);return n}function v(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],o=t[n+1];e[r]=h(e,o)}}function g(e){var t=r(function(e,r,o){this.__reactAutoBindPairs.length&&v(this),this.props=e,this.context=r,this.refs=s,this.updater=o||n,this.state=null;var a=this.getInitialState?this.getInitialState():null;u("object"==typeof a&&!Array.isArray(a),"%s.getInitialState(): must return an object or null",t.displayName||"ReactCompositeComponent"),this.state=a});t.prototype=new O,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],m.forEach(a.bind(null,t)),a(t,E),a(t,e),a(t,C),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),u(t.prototype.render,"createClass(...): Class specification must implement a `render` method.");for(var o in y)t.prototype[o]||(t.prototype[o]=null);return t}var m=[],y={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",UNSAFE_componentWillMount:"DEFINE_MANY",UNSAFE_componentWillReceiveProps:"DEFINE_MANY",UNSAFE_componentWillUpdate:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},b={getDerivedStateFromProps:"DEFINE_MANY_MERGED"},_={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)a(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=i({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=i({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=f(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=i({},e.propTypes,t)},statics:function(e,t){l(e,t)},autobind:function(){}},E={componentDidMount:function(){this.__isMounted=!0}},C={componentWillUnmount:function(){this.__isMounted=!1}},w={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},O=function(){};return i(O.prototype,e.prototype,w),g}var a,i=e("object-assign"),s=e("fbjs/lib/emptyObject"),u=e("fbjs/lib/invariant"),c="mixins";a={},t.exports=o}).call(this,e("_process"))},{_process:162,"fbjs/lib/emptyObject":43,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"object-assign":161}],13:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.__esModule=!0;var a=e("./isDisposable"),i=r(a),s=function(){function e(){for(var t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];o(this,e),Array.isArray(n[0])&&1===n.length&&(n=n[0]);for(var a=0;a<n.length;a++)if(!i["default"](n[a]))throw new Error("Expected a disposable");this.disposables=n,this.isDisposed=!1}return e.prototype.add=function(e){this.isDisposed?e.dispose():this.disposables.push(e)},e.prototype.remove=function(e){if(this.isDisposed)return!1;var t=this.disposables.indexOf(e);return t!==-1&&(this.disposables.splice(t,1),e.dispose(),!0)},e.prototype.dispose=function(){if(!this.isDisposed){for(var e=this.disposables.length,t=new Array(e),n=0;n<e;n++)t[n]=this.disposables[n];this.isDisposed=!0,this.disposables=[],this.length=0;for(var n=0;n<e;n++)t[n].dispose()}},e}();n["default"]=s,t.exports=n["default"]},{"./isDisposable":17}],14:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.__esModule=!0;var 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}}(),a=function(){},i=function(){function e(t){r(this,e),this.isDisposed=!1,this.action=t||a}return o(e,null,[{key:"empty",value:{dispose:a},enumerable:!0}]),e.prototype.dispose=function(){this.isDisposed||(this.action.call(null),this.isDisposed=!0)},e}();n["default"]=i,t.exports=n["default"]},{}],15:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.__esModule=!0;var a=e("./isDisposable"),i=r(a),s=function(){function e(){o(this,e),this.isDisposed=!1,this.current=null}return e.prototype.getDisposable=function(){return this.current},e.prototype.setDisposable=function(){var e=arguments.length<=0||void 0===arguments[0]?null:arguments[0];if(null!=e&&!i["default"](e))throw new Error("Expected either an empty value or a valid disposable");var t=this.isDisposed,n=void 0;t||(n=this.current,this.current=e),n&&n.dispose(),t&&e&&e.dispose()},e.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var e=this.current;this.current=null,e&&e.dispose()}},e}();n["default"]=s,t.exports=n["default"]},{"./isDisposable":17}],16:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}n.__esModule=!0;var o=e("./isDisposable"),a=r(o);n.isDisposable=a["default"];var i=e("./Disposable"),s=r(i);n.Disposable=s["default"];var u=e("./CompositeDisposable"),c=r(u);n.CompositeDisposable=c["default"];var l=e("./SerialDisposable"),p=r(l);n.SerialDisposable=p["default"]},{"./CompositeDisposable":13,"./Disposable":14,"./SerialDisposable":15,"./isDisposable":17}],17:[function(e,t,n){"use strict";function r(e){return Boolean(e&&"function"==typeof e.dispose)}n.__esModule=!0,n["default"]=r,t.exports=n["default"]},{}],18:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function o(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=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}}(),s=e("redux/lib/createStore"),u=o(s),c=e("./reducers"),l=o(c),p=e("./actions/dragDrop"),f=r(p),d=e("./DragDropMonitor"),h=o(d),v=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};a(this,e);var r=(0,u["default"])(l["default"]);this.context=n,this.store=r,this.monitor=new h["default"](r),this.registry=this.monitor.registry,this.backend=t(this),r.subscribe(this.handleRefCountChange.bind(this))}return i(e,[{key:"handleRefCountChange",value:function(){var e=this.store.getState().refCount>0;e&&!this.isSetUp?(this.backend.setup(),this.isSetUp=!0):!e&&this.isSetUp&&(this.backend.teardown(),this.isSetUp=!1)}},{key:"getContext",value:function(){return this.context}},{key:"getMonitor",value:function(){return this.monitor}},{key:"getBackend",value:function(){return this.backend}},{key:"getRegistry",value:function(){return this.registry}},{key:"getActions",value:function(){function e(e){return function(){for(var r=arguments.length,o=Array(r),a=0;a<r;a++)o[a]=arguments[a];var i=e.apply(t,o);"undefined"!=typeof i&&n(i)}}var t=this,n=this.store.dispatch;return Object.keys(f).filter(function(e){return"function"==typeof f[e]}).reduce(function(t,n){var r=f[n];return t[n]=e(r),t},{})}}]),e}();n["default"]=v},{"./DragDropMonitor":19,"./actions/dragDrop":23,"./reducers":30,"redux/lib/createStore":354}],19:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var a=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=e("invariant"),s=r(i),u=e("lodash/isArray"),c=r(u),l=e("./utils/matchesType"),p=r(l),f=e("./HandlerRegistry"),d=r(f),h=e("./reducers/dragOffset"),v=e("./reducers/dirtyHandlerIds"),g=function(){function e(t){o(this,e),this.store=t,this.registry=new d["default"](t)}return a(e,[{key:"subscribeToStateChange",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.handlerIds;(0,s["default"])("function"==typeof e,"listener must be a function."),(0,s["default"])("undefined"==typeof r||(0,c["default"])(r),"handlerIds, when specified, must be an array of strings.");var o=this.store.getState().stateId,a=function(){var n=t.store.getState(),a=n.stateId;try{var i=a===o||a===o+1&&!(0,v.areDirty)(n.dirtyHandlerIds,r);i||e()}finally{o=a}};return this.store.subscribe(a)}},{key:"subscribeToOffsetChange",value:function(e){var t=this;(0,s["default"])("function"==typeof e,"listener must be a function.");var n=this.store.getState().dragOffset,r=function(){var r=t.store.getState().dragOffset;r!==n&&(n=r,e())};return this.store.subscribe(r)}},{key:"canDragSource",value:function(e){var t=this.registry.getSource(e);return(0,s["default"])(t,"Expected to find a valid source."),!this.isDragging()&&t.canDrag(this,e)}},{key:"canDropOnTarget",value:function(e){var t=this.registry.getTarget(e);if((0,s["default"])(t,"Expected to find a valid target."),!this.isDragging()||this.didDrop())return!1;var n=this.registry.getTargetType(e),r=this.getItemType();return(0,p["default"])(n,r)&&t.canDrop(this,e)}},{key:"isDragging",value:function(){return Boolean(this.getItemType())}},{key:"isDraggingSource",value:function(e){var t=this.registry.getSource(e,!0);if((0,s["default"])(t,"Expected to find a valid source."),!this.isDragging()||!this.isSourcePublic())return!1;var n=this.registry.getSourceType(e),r=this.getItemType();return n===r&&t.isDragging(this,e)}},{key:"isOverTarget",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{shallow:!1},n=t.shallow;if(!this.isDragging())return!1;var r=this.registry.getTargetType(e),o=this.getItemType();if(!(0,p["default"])(r,o))return!1;var a=this.getTargetIds();if(!a.length)return!1;var i=a.indexOf(e);return n?i===a.length-1:i>-1}},{key:"getItemType",value:function(){return this.store.getState().dragOperation.itemType}},{key:"getItem",value:function(){return this.store.getState().dragOperation.item}},{key:"getSourceId",value:function(){return this.store.getState().dragOperation.sourceId}},{key:"getTargetIds",value:function(){return this.store.getState().dragOperation.targetIds}},{key:"getDropResult",value:function(){return this.store.getState().dragOperation.dropResult}},{key:"didDrop",value:function(){return this.store.getState().dragOperation.didDrop}},{key:"isSourcePublic",value:function(){return this.store.getState().dragOperation.isSourcePublic}},{key:"getInitialClientOffset",value:function(){return this.store.getState().dragOffset.initialClientOffset}},{key:"getInitialSourceClientOffset",value:function(){return this.store.getState().dragOffset.initialSourceClientOffset}},{key:"getClientOffset",value:function(){return this.store.getState().dragOffset.clientOffset}},{key:"getSourceClientOffset",value:function(){return(0,h.getSourceClientOffset)(this.store.getState().dragOffset)}},{key:"getDifferenceFromInitialOffset",value:function(){return(0,h.getDifferenceFromInitialOffset)(this.store.getState().dragOffset)}}]),e}();n["default"]=g},{"./HandlerRegistry":22,"./reducers/dirtyHandlerIds":27,"./reducers/dragOffset":28,"./utils/matchesType":34,invariant:59,"lodash/isArray":144}],20:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var 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}}(),a=function(){function e(){r(this,e)}return o(e,[{key:"canDrag",value:function(){return!0}},{key:"isDragging",value:function(e,t){return t===e.getSourceId()}},{key:"endDrag",value:function(){}}]),e}();n["default"]=a},{}],21:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var 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}}(),a=function(){function e(){r(this,e)}return o(e,[{key:"canDrop",value:function(){return!0}},{key:"hover",value:function(){}},{key:"drop",value:function(){}}]),e}();n["default"]=a},{}],22:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e){(0,d["default"])("function"==typeof e.canDrag,"Expected canDrag to be a function."),(0,d["default"])("function"==typeof e.beginDrag,"Expected beginDrag to be a function."),(0,d["default"])("function"==typeof e.endDrag,"Expected endDrag to be a function.")}function i(e){(0,d["default"])("function"==typeof e.canDrop,"Expected canDrop to be a function."),(0,d["default"])("function"==typeof e.hover,"Expected hover to be a function."),(0,d["default"])("function"==typeof e.drop,"Expected beginDrag to be a function.")}function s(e,t){return t&&(0,v["default"])(e)?void e.forEach(function(e){return s(e,!1)}):void(0,d["default"])("string"==typeof e||"symbol"===("undefined"==typeof e?"undefined":p(e)),t?"Type can only be a string, a symbol, or an array of either.":"Type can only be a string or a symbol.")}function u(e){var t=(0,_["default"])().toString();switch(e){case E.SOURCE:return"S"+t;case E.TARGET:return"T"+t;default:(0,d["default"])(!1,"Unknown role: "+e)}}function c(e){switch(e[0]){case"S":return E.SOURCE;case"T":return E.TARGET;default:(0,d["default"])(!1,"Cannot parse handler ID: "+e)}}Object.defineProperty(n,"__esModule",{value:!0});var l=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}}(),p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f=e("invariant"),d=r(f),h=e("lodash/isArray"),v=r(h),g=e("asap"),m=r(g),y=e("./actions/registry"),b=e("./utils/getNextUniqueId"),_=r(b),E={SOURCE:"SOURCE",TARGET:"TARGET"},C=function(){function e(t){o(this,e),this.store=t,this.types={},this.handlers={},this.pinnedSourceId=null,this.pinnedSource=null}return l(e,[{key:"addSource",value:function(e,t){s(e),a(t);var n=this.addHandler(E.SOURCE,e,t);return this.store.dispatch((0,y.addSource)(n)),n}},{key:"addTarget",value:function(e,t){s(e,!0),i(t);var n=this.addHandler(E.TARGET,e,t);return this.store.dispatch((0,y.addTarget)(n)),n}},{key:"addHandler",value:function(e,t,n){var r=u(e);return this.types[r]=t,this.handlers[r]=n,r}},{key:"containsHandler",value:function(e){var t=this;return Object.keys(this.handlers).some(function(n){return t.handlers[n]===e})}},{key:"getSource",value:function(e,t){(0,d["default"])(this.isSourceId(e),"Expected a valid source ID.");var n=t&&e===this.pinnedSourceId,r=n?this.pinnedSource:this.handlers[e];return r}},{key:"getTarget",value:function(e){return(0,d["default"])(this.isTargetId(e),"Expected a valid target ID."),this.handlers[e]}},{key:"getSourceType",value:function(e){return(0,d["default"])(this.isSourceId(e),"Expected a valid source ID."),this.types[e]}},{key:"getTargetType",value:function(e){return(0,d["default"])(this.isTargetId(e),"Expected a valid target ID."),this.types[e]}},{key:"isSourceId",value:function(e){var t=c(e);return t===E.SOURCE}},{key:"isTargetId",value:function(e){var t=c(e);return t===E.TARGET}},{key:"removeSource",value:function(e){var t=this;(0,d["default"])(this.getSource(e),"Expected an existing source."),this.store.dispatch((0,y.removeSource)(e)),(0,m["default"])(function(){delete t.handlers[e],delete t.types[e]})}},{key:"removeTarget",value:function(e){var t=this;(0,d["default"])(this.getTarget(e),"Expected an existing target."),this.store.dispatch((0,y.removeTarget)(e)),(0,m["default"])(function(){delete t.handlers[e],delete t.types[e]})}},{key:"pinSource",value:function(e){var t=this.getSource(e);(0,d["default"])(t,"Expected an existing source."),this.pinnedSourceId=e,this.pinnedSource=t}},{key:"unpinSource",value:function(){(0,d["default"])(this.pinnedSource,"No source is pinned at the time."),this.pinnedSourceId=null,this.pinnedSource=null}}]),e}();n["default"]=C},{"./actions/registry":24,"./utils/getNextUniqueId":33,asap:10,invariant:59,"lodash/isArray":144}],23:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{publishSource:!0,clientOffset:null},n=t.publishSource,r=t.clientOffset,o=t.getSourceClientOffset;(0,p["default"])((0,d["default"])(e),"Expected sourceIds to be an array.");var a=this.getMonitor(),i=this.getRegistry();(0,p["default"])(!a.isDragging(),"Cannot call beginDrag while dragging.");for(var s=0;s<e.length;s++)(0,p["default"])(i.getSource(e[s]),"Expected sourceIds to be registered.");for(var u=null,c=e.length-1;c>=0;c--)if(a.canDragSource(e[c])){u=e[c];break}if(null!==u){var l=null;r&&((0,p["default"])("function"==typeof o,"When clientOffset is provided, getSourceClientOffset must be a function."),l=o(u));var f=i.getSource(u),h=f.beginDrag(a,u);(0,p["default"])((0,v["default"])(h),"Item must be an object."),i.pinSource(u);var g=i.getSourceType(u);return{type:y,itemType:g,item:h,sourceId:u,clientOffset:r,sourceClientOffset:l,isSourcePublic:n}}}function a(){var e=this.getMonitor();if(e.isDragging())return{type:b}}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.clientOffset,r=void 0===n?null:n;(0,p["default"])((0,d["default"])(e),"Expected targetIds to be an array.");var o=e.slice(0),a=this.getMonitor(),i=this.getRegistry();(0,p["default"])(a.isDragging(),"Cannot call hover while not dragging."),(0,p["default"])(!a.didDrop(),"Cannot call hover after drop.");for(var s=0;s<o.length;s++){var u=o[s];(0,p["default"])(o.lastIndexOf(u)===s,"Expected targetIds to be unique in the passed array.");var c=i.getTarget(u);(0,p["default"])(c,"Expected targetIds to be registered.")}for(var l=a.getItemType(),f=o.length-1;f>=0;f--){var h=o[f],v=i.getTargetType(h);(0,m["default"])(v,l)||o.splice(f,1)}for(var g=0;g<o.length;g++){var y=o[g],b=i.getTarget(y);b.hover(a,y)}return{type:_,targetIds:o,clientOffset:r}}function s(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=this.getMonitor(),r=this.getRegistry();(0,p["default"])(n.isDragging(),"Cannot call drop while not dragging."),(0,p["default"])(!n.didDrop(),"Cannot call drop twice during one drag operation.");var o=n.getTargetIds().filter(n.canDropOnTarget,n);o.reverse(),o.forEach(function(o,a){var i=r.getTarget(o),s=i.drop(n,o);(0,p["default"])("undefined"==typeof s||(0,v["default"])(s),"Drop result must either be an object or undefined."),"undefined"==typeof s&&(s=0===a?{}:n.getDropResult()),e.store.dispatch({type:E,dropResult:c({},t,s)})})}function u(){var e=this.getMonitor(),t=this.getRegistry();(0,p["default"])(e.isDragging(),"Cannot call endDrag while not dragging.");var n=e.getSourceId(),r=t.getSource(n,!0);return r.endDrag(e,n),t.unpinSource(),{type:C}}Object.defineProperty(n,"__esModule",{value:!0}),n.END_DRAG=n.DROP=n.HOVER=n.PUBLISH_DRAG_SOURCE=n.BEGIN_DRAG=void 0;var c=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};n.beginDrag=o,n.publishDragSource=a,n.hover=i,n.drop=s,n.endDrag=u;var l=e("invariant"),p=r(l),f=e("lodash/isArray"),d=r(f),h=e("lodash/isObject"),v=r(h),g=e("../utils/matchesType"),m=r(g),y=n.BEGIN_DRAG="dnd-core/BEGIN_DRAG",b=n.PUBLISH_DRAG_SOURCE="dnd-core/PUBLISH_DRAG_SOURCE",_=n.HOVER="dnd-core/HOVER",E=n.DROP="dnd-core/DROP",C=n.END_DRAG="dnd-core/END_DRAG"},{"../utils/matchesType":34,invariant:59,"lodash/isArray":144,"lodash/isObject":150}],24:[function(e,t,n){"use strict";function r(e){return{type:s,sourceId:e}}function o(e){return{type:u,targetId:e}}function a(e){return{type:c,sourceId:e}}function i(e){return{type:l,targetId:e}}Object.defineProperty(n,"__esModule",{value:!0}),n.addSource=r,n.addTarget=o,n.removeSource=a,n.removeTarget=i;var s=n.ADD_SOURCE="dnd-core/ADD_SOURCE",u=n.ADD_TARGET="dnd-core/ADD_TARGET",c=n.REMOVE_SOURCE="dnd-core/REMOVE_SOURCE",l=n.REMOVE_TARGET="dnd-core/REMOVE_TARGET"},{}],25:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e){return new c(e)}Object.defineProperty(n,"__esModule",{value:!0});var i=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}}();n["default"]=a;var s=e("lodash/noop"),u=r(s),c=function(){function e(t){o(this,e),this.actions=t.getActions()}return i(e,[{key:"setup",value:function(){this.didCallSetup=!0}},{key:"teardown",value:function(){this.didCallTeardown=!0}},{key:"connectDragSource",value:function(){return u["default"]}},{key:"connectDragPreview",value:function(){return u["default"]}},{key:"connectDropTarget",value:function(){return u["default"]}},{key:"simulateBeginDrag",value:function(e,t){this.actions.beginDrag(e,t)}},{key:"simulatePublishDragSource",value:function(){this.actions.publishDragSource()}},{key:"simulateHover",value:function(e,t){this.actions.hover(e,t)}},{key:"simulateDrop",value:function(){this.actions.drop()}},{key:"simulateEndDrag",value:function(){this.actions.endDrag()}}]),e}()},{"lodash/noop":156}],26:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0});var o=e("./DragDropManager");Object.defineProperty(n,"DragDropManager",{enumerable:!0,get:function(){return r(o)["default"]}});var a=e("./DragSource");Object.defineProperty(n,"DragSource",{enumerable:!0,get:function(){return r(a)["default"]}});var i=e("./DropTarget");Object.defineProperty(n,"DropTarget",{enumerable:!0,get:function(){return r(i)["default"]}});var s=e("./backends/createTestBackend");Object.defineProperty(n,"createTestBackend",{enumerable:!0,get:function(){return r(s)["default"]}})},{"./DragDropManager":18,"./DragSource":20,"./DropTarget":21,"./backends/createTestBackend":25}],27:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:f,arguments[1]),t=arguments[2];switch(e.type){case l.HOVER:break;case p.ADD_SOURCE:case p.ADD_TARGET:case p.REMOVE_TARGET:case p.REMOVE_SOURCE:return f;case l.BEGIN_DRAG:case l.PUBLISH_DRAG_SOURCE:case l.END_DRAG:case l.DROP:default:return d}var n=e.targetIds,r=t.targetIds,o=(0,s["default"])(n,r),a=!1;if(0===o.length){for(var i=0;i<n.length;i++)if(n[i]!==r[i]){a=!0;break}}else a=!0;if(!a)return f;var u=r[r.length-1],c=n[n.length-1];return u!==c&&(u&&o.push(u),c&&o.push(c)),o}function a(e,t){return e!==f&&(e===d||"undefined"==typeof t||(0,c["default"])(t,e).length>0)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=o,n.areDirty=a;var i=e("lodash/xor"),s=r(i),u=e("lodash/intersection"),c=r(u),l=e("../actions/dragDrop"),p=e("../actions/registry"),f=[],d=[]},{"../actions/dragDrop":23,"../actions/registry":24,"lodash/intersection":142,"lodash/xor":160}],28:[function(e,t,n){"use strict";function r(e,t){return e===t||e&&t&&e.x===t.x&&e.y===t.y}function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,t=arguments[1];switch(t.type){case u.BEGIN_DRAG:return{initialSourceClientOffset:t.sourceClientOffset,initialClientOffset:t.clientOffset,clientOffset:t.clientOffset};case u.HOVER:return r(e.clientOffset,t.clientOffset)?e:s({},e,{clientOffset:t.clientOffset});case u.END_DRAG:case u.DROP:return c;default:return e}}function a(e){var t=e.clientOffset,n=e.initialClientOffset,r=e.initialSourceClientOffset;return t&&n&&r?{x:t.x+r.x-n.x,y:t.y+r.y-n.y}:null}function i(e){var t=e.clientOffset,n=e.initialClientOffset;return t&&n?{x:t.x-n.x,y:t.y-n.y}:null}Object.defineProperty(n,"__esModule",{value:!0});var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};n["default"]=o,n.getSourceClientOffset=a,n.getDifferenceFromInitialOffset=i;var u=e("../actions/dragDrop"),c={initialSourceClientOffset:null,initialClientOffset:null,clientOffset:null}},{"../actions/dragDrop":23}],29:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l,t=arguments[1];switch(t.type){case u.BEGIN_DRAG:return a({},e,{itemType:t.itemType,item:t.item,sourceId:t.sourceId,isSourcePublic:t.isSourcePublic,dropResult:null,didDrop:!1});case u.PUBLISH_DRAG_SOURCE:return a({},e,{isSourcePublic:!0});case u.HOVER:return a({},e,{targetIds:t.targetIds});case c.REMOVE_TARGET:return e.targetIds.indexOf(t.targetId)===-1?e:a({},e,{targetIds:(0,s["default"])(e.targetIds,t.targetId)});case u.DROP:return a({},e,{dropResult:t.dropResult,didDrop:!0,targetIds:[]});case u.END_DRAG:return a({},e,{itemType:null,item:null,sourceId:null,dropResult:null,didDrop:!1,isSourcePublic:null,targetIds:[]});default:return e}}Object.defineProperty(n,"__esModule",{value:!0});var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};n["default"]=o;var i=e("lodash/without"),s=r(i),u=e("../actions/dragDrop"),c=e("../actions/registry"),l={itemType:null,item:null,sourceId:null,targetIds:[],dropResult:null,didDrop:!1,isSourcePublic:null}},{"../actions/dragDrop":23,"../actions/registry":24,"lodash/without":159}],30:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];return{dirtyHandlerIds:(0,f["default"])(e.dirtyHandlerIds,t,e.dragOperation),dragOffset:(0,i["default"])(e.dragOffset,t),refCount:(0,l["default"])(e.refCount,t),dragOperation:(0,u["default"])(e.dragOperation,t),stateId:(0,h["default"])(e.stateId)}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=o;var a=e("./dragOffset"),i=r(a),s=e("./dragOperation"),u=r(s),c=e("./refCount"),l=r(c),p=e("./dirtyHandlerIds"),f=r(p),d=e("./stateId"),h=r(d)},{"./dirtyHandlerIds":27,"./dragOffset":28,"./dragOperation":29,"./refCount":31,"./stateId":32}],31:[function(e,t,n){"use strict";function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments[1];switch(t.type){case o.ADD_SOURCE:case o.ADD_TARGET:return e+1;case o.REMOVE_SOURCE:case o.REMOVE_TARGET:return e-1;default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../actions/registry")},{"../actions/registry":24}],32:[function(e,t,n){"use strict";function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return e+1}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r},{}],33:[function(e,t,n){"use strict";function r(){return o++}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=0},{}],34:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return(0,i["default"])(e)?e.some(function(e){return e===t}):e===t}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=o;var a=e("lodash/isArray"),i=r(a)},{"lodash/isArray":144}],35:[function(e,t,n){(function(n){"use strict";var r=e("./emptyFunction"),o={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),
3
- {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(){}};t.exports=o}).call(this,e("_process"))},{"./emptyFunction":42,_process:162}],36:[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};t.exports=o},{}],37:[function(e,t,n){"use strict";function r(e){return e.replace(o,function(e,t){return t.toUpperCase()})}var o=/-(.)/g;t.exports=r},{}],38:[function(e,t,n){"use strict";function r(e){return o(e.replace(a,"ms-"))}var o=e("./camelize"),a=/^-ms-/;t.exports=r},{"./camelize":37}],39:[function(e,t,n){"use strict";function r(e,t){return!(!e||!t)&&(e===t||!o(e)&&(o(t)?r(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}var o=e("./isTextNode");t.exports=r},{"./isTextNode":52}],40:[function(e,t,n){(function(n){"use strict";function r(e){var t=e.length;if(Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e?i(!1):void 0,"number"!=typeof t?i(!1):void 0,0===t||t-1 in e?void 0:i(!1),"function"==typeof e.callee?i(!1):void 0,e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(n){}for(var r=Array(t),o=0;o<t;o++)r[o]=e[o];return r}function o(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)}function a(e){return o(e)?Array.isArray(e)?e.slice():r(e):[e]}var i=e("./invariant");t.exports=a}).call(this,e("_process"))},{"./invariant":50,_process:162}],41:[function(e,t,n){(function(n){"use strict";function r(e){var t=e.match(l);return t&&t[1].toLowerCase()}function o(e,t){var n=c;c?void 0:u(!1);var o=r(e),a=o&&s(o);if(a){n.innerHTML=a[1]+e+a[2];for(var l=a[0];l--;)n=n.lastChild}else n.innerHTML=e;var p=n.getElementsByTagName("script");p.length&&(t?void 0:u(!1),i(p).forEach(t));for(var f=Array.from(n.childNodes);n.lastChild;)n.removeChild(n.lastChild);return f}var a=e("./ExecutionEnvironment"),i=e("./createArrayFromMixed"),s=e("./getMarkupWrap"),u=e("./invariant"),c=a.canUseDOM?document.createElement("div"):null,l=/^\s*<(\w+)/;t.exports=o}).call(this,e("_process"))},{"./ExecutionEnvironment":36,"./createArrayFromMixed":40,"./getMarkupWrap":46,"./invariant":50,_process:162}],42:[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},t.exports=o},{}],43:[function(e,t,n){(function(e){"use strict";var n={};t.exports=n}).call(this,e("_process"))},{_process:162}],44:[function(e,t,n){"use strict";function r(e){try{e.focus()}catch(t){}}t.exports=r},{}],45:[function(e,t,n){"use strict";function r(e){if(e=e||("undefined"!=typeof document?document:void 0),"undefined"==typeof e)return null;try{return e.activeElement||e.body}catch(t){return e.body}}t.exports=r},{}],46:[function(e,t,n){(function(n){"use strict";function r(e){return i?void 0:a(!1),f.hasOwnProperty(e)||(e="*"),s.hasOwnProperty(e)||("*"===e?i.innerHTML="<link />":i.innerHTML="<"+e+"></"+e+">",s[e]=!i.firstChild),s[e]?f[e]:null}var o=e("./ExecutionEnvironment"),a=e("./invariant"),i=o.canUseDOM?document.createElement("div"):null,s={},u=[1,'<select multiple="true">',"</select>"],c=[1,"<table>","</table>"],l=[3,"<table><tbody><tr>","</tr></tbody></table>"],p=[1,'<svg xmlns="http://www.w3.org/2000/svg">',"</svg>"],f={"*":[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:u,option:u,caption:c,colgroup:c,tbody:c,tfoot:c,thead:c,td:l,th:l},d=["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"];d.forEach(function(e){f[e]=p,s[e]=!0}),t.exports=r}).call(this,e("_process"))},{"./ExecutionEnvironment":36,"./invariant":50,_process:162}],47:[function(e,t,n){"use strict";function r(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}}t.exports=r},{}],48:[function(e,t,n){"use strict";function r(e){return e.replace(o,"-$1").toLowerCase()}var o=/([A-Z])/g;t.exports=r},{}],49:[function(e,t,n){"use strict";function r(e){return o(e).replace(a,"-ms-")}var o=e("./hyphenate"),a=/^ms-/;t.exports=r},{"./hyphenate":48}],50:[function(e,t,n){(function(e){"use strict";function n(e,t,n,o,a,i,s,u){if(r(t),!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,o,a,i,s,u],p=0;c=new Error(t.replace(/%s/g,function(){return l[p++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}}var r=function(e){};t.exports=n}).call(this,e("_process"))},{_process:162}],51:[function(e,t,n){"use strict";function r(e){var t=e?e.ownerDocument||e:document,n=t.defaultView||window;return!(!e||!("function"==typeof n.Node?e instanceof n.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}t.exports=r},{}],52:[function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=e("./isNode");t.exports=r},{"./isNode":51}],53:[function(e,t,n){"use strict";function r(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}t.exports=r},{}],54:[function(e,t,n){"use strict";var r,o=e("./ExecutionEnvironment");o.canUseDOM&&(r=window.performance||window.msPerformance||window.webkitPerformance),t.exports=r||{}},{"./ExecutionEnvironment":36}],55:[function(e,t,n){"use strict";var r,o=e("./performance");r=o.now?function(){return o.now()}:function(){return Date.now()},t.exports=r},{"./performance":54}],56:[function(e,t,n){"use strict";function r(e,t){return e===t?0!==e||0!==t||1/e===1/t:e!==e&&t!==t}function o(e,t){if(r(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var i=0;i<n.length;i++)if(!a.call(t,n[i])||!r(e[n[i]],t[n[i]]))return!1;return!0}var a=Object.prototype.hasOwnProperty;t.exports=o},{}],57:[function(e,t,n){(function(n){"use strict";var r=e("./emptyFunction"),o=r;t.exports=o}).call(this,e("_process"))},{"./emptyFunction":42,_process:162}],58:[function(e,t,n){"use strict";function r(e,t,n){if("string"!=typeof t){if(p){var f=l(t);f&&f!==p&&r(e,f,n)}var d=s(t);u&&(d=d.concat(u(t)));for(var h=0;h<d.length;++h){var v=d[h];if(!(o[v]||a[v]||n&&n[v])){var g=c(t,v);try{i(e,v,g)}catch(m){}}}return e}return e}var o={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i=Object.defineProperty,s=Object.getOwnPropertyNames,u=Object.getOwnPropertySymbols,c=Object.getOwnPropertyDescriptor,l=Object.getPrototypeOf,p=l&&l(Object);t.exports=r},{}],59:[function(e,t,n){(function(e){"use strict";var n=function(e,t,n,r,o,a,i,s){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,a,i,s],l=0;u=new Error(t.replace(/%s/g,function(){return c[l++]})),u.name="Invariant Violation"}throw u.framesToPop=1,u}};t.exports=n}).call(this,e("_process"))},{_process:162}],60:[function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var o=e("./_hashClear"),a=e("./_hashDelete"),i=e("./_hashGet"),s=e("./_hashHas"),u=e("./_hashSet");r.prototype.clear=o,r.prototype["delete"]=a,r.prototype.get=i,r.prototype.has=s,r.prototype.set=u,t.exports=r},{"./_hashClear":103,"./_hashDelete":104,"./_hashGet":105,"./_hashHas":106,"./_hashSet":107}],61:[function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var o=e("./_listCacheClear"),a=e("./_listCacheDelete"),i=e("./_listCacheGet"),s=e("./_listCacheHas"),u=e("./_listCacheSet");r.prototype.clear=o,r.prototype["delete"]=a,r.prototype.get=i,r.prototype.has=s,r.prototype.set=u,t.exports=r},{"./_listCacheClear":114,"./_listCacheDelete":115,"./_listCacheGet":116,"./_listCacheHas":117,"./_listCacheSet":118}],62:[function(e,t,n){var r=e("./_getNative"),o=e("./_root"),a=r(o,"Map");t.exports=a},{"./_getNative":99,"./_root":130}],63:[function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}var o=e("./_mapCacheClear"),a=e("./_mapCacheDelete"),i=e("./_mapCacheGet"),s=e("./_mapCacheHas"),u=e("./_mapCacheSet");r.prototype.clear=o,r.prototype["delete"]=a,r.prototype.get=i,r.prototype.has=s,r.prototype.set=u,t.exports=r},{"./_mapCacheClear":119,"./_mapCacheDelete":120,"./_mapCacheGet":121,"./_mapCacheHas":122,"./_mapCacheSet":123}],64:[function(e,t,n){var r=e("./_getNative"),o=e("./_root"),a=r(o,"Set");t.exports=a},{"./_getNative":99,"./_root":130}],65:[function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new o;++t<n;)this.add(e[t])}var o=e("./_MapCache"),a=e("./_setCacheAdd"),i=e("./_setCacheHas");r.prototype.add=r.prototype.push=a,r.prototype.has=i,t.exports=r},{"./_MapCache":63,"./_setCacheAdd":131,"./_setCacheHas":132}],66:[function(e,t,n){var r=e("./_root"),o=r.Symbol;t.exports=o},{"./_root":130}],67:[function(e,t,n){function r(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}t.exports=r},{}],68:[function(e,t,n){function r(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i,n,e)&&(a[o++]=i)}return a}t.exports=r},{}],69:[function(e,t,n){function r(e,t){var n=null==e?0:e.length;return!!n&&o(e,t,0)>-1}var o=e("./_baseIndexOf");t.exports=r},{"./_baseIndexOf":79}],70:[function(e,t,n){function r(e,t,n){for(var r=-1,o=null==e?0:e.length;++r<o;)if(n(t,e[r]))return!0;return!1}t.exports=r},{}],71:[function(e,t,n){function r(e,t){var n=i(e),r=!n&&a(e),l=!n&&!r&&s(e),f=!n&&!r&&!l&&c(e),d=n||r||l||f,h=d?o(e.length,String):[],v=h.length;for(var g in e)!t&&!p.call(e,g)||d&&("length"==g||l&&("offset"==g||"parent"==g)||f&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||u(g,v))||h.push(g);return h}var o=e("./_baseTimes"),a=e("./isArguments"),i=e("./isArray"),s=e("./isBuffer"),u=e("./_isIndex"),c=e("./isTypedArray"),l=Object.prototype,p=l.hasOwnProperty;t.exports=r},{"./_baseTimes":88,"./_isIndex":109,"./isArguments":143,"./isArray":144,"./isBuffer":147,"./isTypedArray":153}],72:[function(e,t,n){function r(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}t.exports=r},{}],73:[function(e,t,n){function r(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}t.exports=r},{}],74:[function(e,t,n){function r(e,t){for(var n=e.length;n--;)if(o(e[n][0],t))return n;return-1}var o=e("./eq");t.exports=r},{"./eq":140}],75:[function(e,t,n){function r(e,t,n,r){var p=-1,f=a,d=!0,h=e.length,v=[],g=t.length;if(!h)return v;n&&(t=s(t,u(n))),r?(f=i,d=!1):t.length>=l&&(f=c,d=!1,t=new o(t));e:for(;++p<h;){var m=e[p],y=null==n?m:n(m);if(m=r||0!==m?m:0,d&&y===y){for(var b=g;b--;)if(t[b]===y)continue e;v.push(m)}else f(t,y,r)||v.push(m)}return v}var o=e("./_SetCache"),a=e("./_arrayIncludes"),i=e("./_arrayIncludesWith"),s=e("./_arrayMap"),u=e("./_baseUnary"),c=e("./_cacheHas"),l=200;t.exports=r},{"./_SetCache":65,"./_arrayIncludes":69,"./_arrayIncludesWith":70,"./_arrayMap":72,"./_baseUnary":89,"./_cacheHas":92}],76:[function(e,t,n){function r(e,t,n,r){for(var o=e.length,a=n+(r?1:-1);r?a--:++a<o;)if(t(e[a],a,e))return a;return-1}t.exports=r},{}],77:[function(e,t,n){function r(e,t,n,i,s){var u=-1,c=e.length;for(n||(n=a),s||(s=[]);++u<c;){var l=e[u];t>0&&n(l)?t>1?r(l,t-1,n,i,s):o(s,l):i||(s[s.length]=l)}return s}var o=e("./_arrayPush"),a=e("./_isFlattenable");t.exports=r},{"./_arrayPush":73,"./_isFlattenable":108}],78:[function(e,t,n){function r(e){return null==e?void 0===e?u:s:c&&c in Object(e)?a(e):i(e)}var o=e("./_Symbol"),a=e("./_getRawTag"),i=e("./_objectToString"),s="[object Null]",u="[object Undefined]",c=o?o.toStringTag:void 0;t.exports=r},{"./_Symbol":66,"./_getRawTag":101,"./_objectToString":127}],79:[function(e,t,n){function r(e,t,n){return t===t?i(e,t,n):o(e,a,n)}var o=e("./_baseFindIndex"),a=e("./_baseIsNaN"),i=e("./_strictIndexOf");t.exports=r},{"./_baseFindIndex":76,"./_baseIsNaN":82,"./_strictIndexOf":136}],80:[function(e,t,n){function r(e,t,n){for(var r=n?i:a,p=e[0].length,f=e.length,d=f,h=Array(f),v=1/0,g=[];d--;){var m=e[d];d&&t&&(m=s(m,u(t))),v=l(m.length,v),h[d]=!n&&(t||p>=120&&m.length>=120)?new o(d&&m):void 0}m=e[0];var y=-1,b=h[0];e:for(;++y<p&&g.length<v;){var _=m[y],E=t?t(_):_;if(_=n||0!==_?_:0,!(b?c(b,E):r(g,E,n))){for(d=f;--d;){var C=h[d];if(!(C?c(C,E):r(e[d],E,n)))continue e}b&&b.push(E),g.push(_)}}return g}var o=e("./_SetCache"),a=e("./_arrayIncludes"),i=e("./_arrayIncludesWith"),s=e("./_arrayMap"),u=e("./_baseUnary"),c=e("./_cacheHas"),l=Math.min;t.exports=r},{"./_SetCache":65,"./_arrayIncludes":69,"./_arrayIncludesWith":70,"./_arrayMap":72,"./_baseUnary":89,"./_cacheHas":92}],81:[function(e,t,n){function r(e){return a(e)&&o(e)==i}var o=e("./_baseGetTag"),a=e("./isObjectLike"),i="[object Arguments]";t.exports=r},{"./_baseGetTag":78,"./isObjectLike":151}],82:[function(e,t,n){function r(e){return e!==e}t.exports=r},{}],83:[function(e,t,n){function r(e){if(!i(e)||a(e))return!1;var t=o(e)?h:c;return t.test(s(e))}var o=e("./isFunction"),a=e("./_isMasked"),i=e("./isObject"),s=e("./_toSource"),u=/[\\^$.*+?()[\]{}|]/g,c=/^\[object .+?Constructor\]$/,l=Function.prototype,p=Object.prototype,f=l.toString,d=p.hasOwnProperty,h=RegExp("^"+f.call(d).replace(u,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=r},{"./_isMasked":112,"./_toSource":137,"./isFunction":148,"./isObject":150}],84:[function(e,t,n){function r(e){return i(e)&&a(e.length)&&!!I[o(e)]}var o=e("./_baseGetTag"),a=e("./isLength"),i=e("./isObjectLike"),s="[object Arguments]",u="[object Array]",c="[object Boolean]",l="[object Date]",p="[object Error]",f="[object Function]",d="[object Map]",h="[object Number]",v="[object Object]",g="[object RegExp]",m="[object Set]",y="[object String]",b="[object WeakMap]",_="[object ArrayBuffer]",E="[object DataView]",C="[object Float32Array]",w="[object Float64Array]",O="[object Int8Array]",T="[object Int16Array]",D="[object Int32Array]",S="[object Uint8Array]",x="[object Uint8ClampedArray]",k="[object Uint16Array]",P="[object Uint32Array]",I={};I[C]=I[w]=I[O]=I[T]=I[D]=I[S]=I[x]=I[k]=I[P]=!0,I[s]=I[u]=I[_]=I[c]=I[E]=I[l]=I[p]=I[f]=I[d]=I[h]=I[v]=I[g]=I[m]=I[y]=I[b]=!1,t.exports=r},{"./_baseGetTag":78,"./isLength":149,"./isObjectLike":151}],85:[function(e,t,n){function r(e){if(!o(e))return i(e);var t=a(e),n=[];for(var r in e)("constructor"!=r||!t&&u.call(e,r))&&n.push(r);return n}var o=e("./isObject"),a=e("./_isPrototype"),i=e("./_nativeKeysIn"),s=Object.prototype,u=s.hasOwnProperty;t.exports=r},{"./_isPrototype":113,"./_nativeKeysIn":125,"./isObject":150}],86:[function(e,t,n){function r(e,t){return i(a(e,t,o),e+"")}var o=e("./identity"),a=e("./_overRest"),i=e("./_setToString");t.exports=r},{"./_overRest":129,"./_setToString":134,"./identity":141}],87:[function(e,t,n){var r=e("./constant"),o=e("./_defineProperty"),a=e("./identity"),i=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:a;t.exports=i},{"./_defineProperty":96,"./constant":138,"./identity":141}],88:[function(e,t,n){function r(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}t.exports=r},{}],89:[function(e,t,n){function r(e){return function(t){return e(t)}}t.exports=r},{}],90:[function(e,t,n){function r(e,t,n){var r=-1,p=a,f=e.length,d=!0,h=[],v=h;if(n)d=!1,p=i;else if(f>=l){var g=t?null:u(e);if(g)return c(g);d=!1,p=s,v=new o}else v=t?[]:h;e:for(;++r<f;){var m=e[r],y=t?t(m):m;if(m=n||0!==m?m:0,d&&y===y){for(var b=v.length;b--;)if(v[b]===y)continue e;t&&v.push(y),h.push(m)}else p(v,y,n)||(v!==h&&v.push(y),h.push(m))}return h}var o=e("./_SetCache"),a=e("./_arrayIncludes"),i=e("./_arrayIncludesWith"),s=e("./_cacheHas"),u=e("./_createSet"),c=e("./_setToArray"),l=200;t.exports=r},{"./_SetCache":65,"./_arrayIncludes":69,"./_arrayIncludesWith":70,"./_cacheHas":92,"./_createSet":95,"./_setToArray":133}],91:[function(e,t,n){function r(e,t,n){var r=e.length;if(r<2)return r?i(e[0]):[];for(var s=-1,u=Array(r);++s<r;)for(var c=e[s],l=-1;++l<r;)l!=s&&(u[s]=o(u[s]||c,e[l],t,n));return i(a(u,1),t,n)}var o=e("./_baseDifference"),a=e("./_baseFlatten"),i=e("./_baseUniq");t.exports=r},{"./_baseDifference":75,"./_baseFlatten":77,"./_baseUniq":90}],92:[function(e,t,n){function r(e,t){return e.has(t)}t.exports=r},{}],93:[function(e,t,n){function r(e){return o(e)?e:[]}var o=e("./isArrayLikeObject");t.exports=r},{"./isArrayLikeObject":146}],94:[function(e,t,n){var r=e("./_root"),o=r["__core-js_shared__"];t.exports=o},{"./_root":130}],95:[function(e,t,n){var r=e("./_Set"),o=e("./noop"),a=e("./_setToArray"),i=1/0,s=r&&1/a(new r([,-0]))[1]==i?function(e){return new r(e)}:o;t.exports=s},{"./_Set":64,"./_setToArray":133,"./noop":156}],96:[function(e,t,n){var r=e("./_getNative"),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();t.exports=o},{"./_getNative":99}],97:[function(e,t,n){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],98:[function(e,t,n){function r(e,t){var n=e.__data__;return o(t)?n["string"==typeof t?"string":"hash"]:n.map}var o=e("./_isKeyable");t.exports=r},{"./_isKeyable":111}],99:[function(e,t,n){function r(e,t){var n=a(e,t);return o(n)?n:void 0}var o=e("./_baseIsNative"),a=e("./_getValue");t.exports=r},{"./_baseIsNative":83,"./_getValue":102}],100:[function(e,t,n){var r=e("./_overArg"),o=r(Object.getPrototypeOf,Object);t.exports=o},{"./_overArg":128}],101:[function(e,t,n){function r(e){var t=i.call(e,u),n=e[u];try{e[u]=void 0;var r=!0}catch(o){}var a=s.call(e);return r&&(t?e[u]=n:delete e[u]),a}var o=e("./_Symbol"),a=Object.prototype,i=a.hasOwnProperty,s=a.toString,u=o?o.toStringTag:void 0;t.exports=r},{"./_Symbol":66}],102:[function(e,t,n){function r(e,t){return null==e?void 0:e[t]}t.exports=r},{}],103:[function(e,t,n){function r(){this.__data__=o?o(null):{},this.size=0}var o=e("./_nativeCreate");t.exports=r},{"./_nativeCreate":124}],104:[function(e,t,n){function r(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}t.exports=r},{}],105:[function(e,t,n){function r(e){var t=this.__data__;if(o){var n=t[e];return n===a?void 0:n}return s.call(t,e)?t[e]:void 0}var o=e("./_nativeCreate"),a="__lodash_hash_undefined__",i=Object.prototype,s=i.hasOwnProperty;t.exports=r},{"./_nativeCreate":124}],106:[function(e,t,n){function r(e){var t=this.__data__;return o?void 0!==t[e]:i.call(t,e)}var o=e("./_nativeCreate"),a=Object.prototype,i=a.hasOwnProperty;t.exports=r},{"./_nativeCreate":124}],107:[function(e,t,n){function r(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=o&&void 0===t?a:t,this}var o=e("./_nativeCreate"),a="__lodash_hash_undefined__";t.exports=r},{"./_nativeCreate":124}],108:[function(e,t,n){function r(e){return i(e)||a(e)||!!(s&&e&&e[s])}var o=e("./_Symbol"),a=e("./isArguments"),i=e("./isArray"),s=o?o.isConcatSpreadable:void 0;t.exports=r},{"./_Symbol":66,"./isArguments":143,"./isArray":144}],109:[function(e,t,n){function r(e,t){var n=typeof e;return t=null==t?o:t,!!t&&("number"==n||"symbol"!=n&&a.test(e))&&e>-1&&e%1==0&&e<t}var o=9007199254740991,a=/^(?:0|[1-9]\d*)$/;t.exports=r},{}],110:[function(e,t,n){function r(e,t,n){if(!s(n))return!1;var r=typeof t;return!!("number"==r?a(n)&&i(t,n.length):"string"==r&&t in n)&&o(n[t],e)}var o=e("./eq"),a=e("./isArrayLike"),i=e("./_isIndex"),s=e("./isObject");t.exports=r},{"./_isIndex":109,"./eq":140,"./isArrayLike":145,"./isObject":150}],111:[function(e,t,n){function r(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}t.exports=r},{}],112:[function(e,t,n){function r(e){return!!a&&a in e}var o=e("./_coreJsData"),a=function(){var e=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();t.exports=r},{"./_coreJsData":94}],113:[function(e,t,n){function r(e){var t=e&&e.constructor,n="function"==typeof t&&t.prototype||o;return e===n}var o=Object.prototype;t.exports=r},{}],114:[function(e,t,n){function r(){this.__data__=[],this.size=0}t.exports=r},{}],115:[function(e,t,n){function r(e){var t=this.__data__,n=o(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():i.call(t,n,1),--this.size,!0}var o=e("./_assocIndexOf"),a=Array.prototype,i=a.splice;t.exports=r},{"./_assocIndexOf":74}],116:[function(e,t,n){function r(e){var t=this.__data__,n=o(t,e);return n<0?void 0:t[n][1]}var o=e("./_assocIndexOf");t.exports=r},{"./_assocIndexOf":74}],117:[function(e,t,n){function r(e){return o(this.__data__,e)>-1}var o=e("./_assocIndexOf");t.exports=r},{"./_assocIndexOf":74}],118:[function(e,t,n){function r(e,t){var n=this.__data__,r=o(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var o=e("./_assocIndexOf");t.exports=r},{"./_assocIndexOf":74}],119:[function(e,t,n){function r(){this.size=0,this.__data__={hash:new o,map:new(i||a),string:new o}}var o=e("./_Hash"),a=e("./_ListCache"),i=e("./_Map");t.exports=r},{"./_Hash":60,"./_ListCache":61,"./_Map":62}],120:[function(e,t,n){function r(e){var t=o(this,e)["delete"](e);return this.size-=t?1:0,t}var o=e("./_getMapData");t.exports=r},{"./_getMapData":98}],121:[function(e,t,n){function r(e){return o(this,e).get(e)}var o=e("./_getMapData");t.exports=r},{"./_getMapData":98}],122:[function(e,t,n){function r(e){return o(this,e).has(e)}var o=e("./_getMapData");t.exports=r},{"./_getMapData":98}],123:[function(e,t,n){function r(e,t){var n=o(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var o=e("./_getMapData");t.exports=r},{"./_getMapData":98}],124:[function(e,t,n){var r=e("./_getNative"),o=r(Object,"create");t.exports=o},{"./_getNative":99}],125:[function(e,t,n){function r(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}t.exports=r},{}],126:[function(e,t,n){var r=e("./_freeGlobal"),o="object"==typeof n&&n&&!n.nodeType&&n,a=o&&"object"==typeof t&&t&&!t.nodeType&&t,i=a&&a.exports===o,s=i&&r.process,u=function(){try{var e=a&&a.require&&a.require("util").types;return e?e:s&&s.binding&&s.binding("util")}catch(t){}}();t.exports=u},{"./_freeGlobal":97}],127:[function(e,t,n){function r(e){return a.call(e)}var o=Object.prototype,a=o.toString;t.exports=r},{}],128:[function(e,t,n){function r(e,t){return function(n){return e(t(n))}}t.exports=r},{}],129:[function(e,t,n){function r(e,t,n){return t=a(void 0===t?e.length-1:t,0),function(){for(var r=arguments,i=-1,s=a(r.length-t,0),u=Array(s);++i<s;)u[i]=r[t+i];i=-1;for(var c=Array(t+1);++i<t;)c[i]=r[i];return c[t]=n(u),o(e,this,c)}}var o=e("./_apply"),a=Math.max;t.exports=r},{"./_apply":67}],130:[function(e,t,n){var r=e("./_freeGlobal"),o="object"==typeof self&&self&&self.Object===Object&&self,a=r||o||Function("return this")();t.exports=a},{"./_freeGlobal":97}],131:[function(e,t,n){function r(e){return this.__data__.set(e,o),this}var o="__lodash_hash_undefined__";t.exports=r},{}],132:[function(e,t,n){function r(e){return this.__data__.has(e)}t.exports=r},{}],133:[function(e,t,n){function r(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}t.exports=r},{}],134:[function(e,t,n){var r=e("./_baseSetToString"),o=e("./_shortOut"),a=o(r);t.exports=a},{"./_baseSetToString":87,"./_shortOut":135}],135:[function(e,t,n){function r(e){var t=0,n=0;return function(){var r=i(),s=a-(r-n);if(n=r,s>0){if(++t>=o)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var o=800,a=16,i=Date.now;t.exports=r},{}],136:[function(e,t,n){function r(e,t,n){for(var r=n-1,o=e.length;++r<o;)if(e[r]===t)return r;return-1}t.exports=r},{}],137:[function(e,t,n){function r(e){if(null!=e){try{return a.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var o=Function.prototype,a=o.toString;t.exports=r},{}],138:[function(e,t,n){function r(e){return function(){return e}}t.exports=r},{}],139:[function(e,t,n){var r=e("./_baseRest"),o=e("./eq"),a=e("./_isIterateeCall"),i=e("./keysIn"),s=Object.prototype,u=s.hasOwnProperty,c=r(function(e,t){e=Object(e);var n=-1,r=t.length,c=r>2?t[2]:void 0;for(c&&a(t[0],t[1],c)&&(r=1);++n<r;)for(var l=t[n],p=i(l),f=-1,d=p.length;++f<d;){var h=p[f],v=e[h];(void 0===v||o(v,s[h])&&!u.call(e,h))&&(e[h]=l[h])}return e});t.exports=c},{"./_baseRest":86,"./_isIterateeCall":110,"./eq":140,"./keysIn":154}],140:[function(e,t,n){function r(e,t){return e===t||e!==e&&t!==t}t.exports=r},{}],141:[function(e,t,n){function r(e){return e}t.exports=r},{}],142:[function(e,t,n){var r=e("./_arrayMap"),o=e("./_baseIntersection"),a=e("./_baseRest"),i=e("./_castArrayLikeObject"),s=a(function(e){var t=r(e,i);return t.length&&t[0]===e[0]?o(t):[]});t.exports=s},{"./_arrayMap":72,"./_baseIntersection":80,"./_baseRest":86,"./_castArrayLikeObject":93}],143:[function(e,t,n){var r=e("./_baseIsArguments"),o=e("./isObjectLike"),a=Object.prototype,i=a.hasOwnProperty,s=a.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return o(e)&&i.call(e,"callee")&&!s.call(e,"callee")};t.exports=u},{"./_baseIsArguments":81,"./isObjectLike":151}],144:[function(e,t,n){var r=Array.isArray;t.exports=r},{}],145:[function(e,t,n){function r(e){return null!=e&&a(e.length)&&!o(e)}var o=e("./isFunction"),a=e("./isLength");t.exports=r},{"./isFunction":148,"./isLength":149}],146:[function(e,t,n){function r(e){return a(e)&&o(e)}var o=e("./isArrayLike"),a=e("./isObjectLike");t.exports=r},{"./isArrayLike":145,"./isObjectLike":151}],147:[function(e,t,n){var r=e("./_root"),o=e("./stubFalse"),a="object"==typeof n&&n&&!n.nodeType&&n,i=a&&"object"==typeof t&&t&&!t.nodeType&&t,s=i&&i.exports===a,u=s?r.Buffer:void 0,c=u?u.isBuffer:void 0,l=c||o;t.exports=l},{"./_root":130,"./stubFalse":157}],148:[function(e,t,n){function r(e){if(!a(e))return!1;var t=o(e);return t==s||t==u||t==i||t==c}var o=e("./_baseGetTag"),a=e("./isObject"),i="[object AsyncFunction]",s="[object Function]",u="[object GeneratorFunction]",c="[object Proxy]";t.exports=r},{"./_baseGetTag":78,"./isObject":150}],149:[function(e,t,n){function r(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=o}var o=9007199254740991;t.exports=r},{}],150:[function(e,t,n){function r(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}t.exports=r},{}],151:[function(e,t,n){function r(e){return null!=e&&"object"==typeof e}t.exports=r},{}],152:[function(e,t,n){function r(e){if(!i(e)||o(e)!=s)return!1;var t=a(e);if(null===t)return!0;var n=p.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&l.call(n)==f}var o=e("./_baseGetTag"),a=e("./_getPrototype"),i=e("./isObjectLike"),s="[object Object]",u=Function.prototype,c=Object.prototype,l=u.toString,p=c.hasOwnProperty,f=l.call(Object);t.exports=r},{"./_baseGetTag":78,"./_getPrototype":100,"./isObjectLike":151}],153:[function(e,t,n){var r=e("./_baseIsTypedArray"),o=e("./_baseUnary"),a=e("./_nodeUtil"),i=a&&a.isTypedArray,s=i?o(i):r;t.exports=s},{"./_baseIsTypedArray":84,"./_baseUnary":89,"./_nodeUtil":126}],154:[function(e,t,n){function r(e){return i(e)?o(e,!0):a(e)}var o=e("./_arrayLikeKeys"),a=e("./_baseKeysIn"),i=e("./isArrayLike");t.exports=r},{"./_arrayLikeKeys":71,"./_baseKeysIn":85,"./isArrayLike":145}],155:[function(e,t,n){function r(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(a);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i)||a,i};return n.cache=new(r.Cache||o),n}var o=e("./_MapCache"),a="Expected a function";r.Cache=o,t.exports=r},{"./_MapCache":63}],156:[function(e,t,n){function r(){}t.exports=r},{}],157:[function(e,t,n){function r(){return!1}t.exports=r},{}],158:[function(e,t,n){var r=e("./_baseFlatten"),o=e("./_baseRest"),a=e("./_baseUniq"),i=e("./isArrayLikeObject"),s=o(function(e){return a(r(e,1,i,!0))});t.exports=s},{"./_baseFlatten":77,"./_baseRest":86,"./_baseUniq":90,"./isArrayLikeObject":146}],159:[function(e,t,n){var r=e("./_baseDifference"),o=e("./_baseRest"),a=e("./isArrayLikeObject"),i=o(function(e,t){return a(e)?r(e,t):[]});t.exports=i},{"./_baseDifference":75,"./_baseRest":86,"./isArrayLikeObject":146}],160:[function(e,t,n){var r=e("./_arrayFilter"),o=e("./_baseRest"),a=e("./_baseXor"),i=e("./isArrayLikeObject"),s=o(function(e){return a(r(e,i))});t.exports=s},{"./_arrayFilter":68,"./_baseRest":86,"./_baseXor":91,"./isArrayLikeObject":146}],161:[function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function o(){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;var r=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==r.join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(e){o[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(a){return!1}}var a=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable;t.exports=o()?Object.assign:function(e,t){for(var n,o,u=r(e),c=1;c<arguments.length;c++){n=Object(arguments[c]);for(var l in n)i.call(n,l)&&(u[l]=n[l]);if(a){o=a(n);for(var p=0;p<o.length;p++)s.call(n,o[p])&&(u[o[p]]=n[o[p]])}}return u}},{}],162:[function(e,t,n){function r(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function a(e){if(p===setTimeout)return setTimeout(e,0);if((p===r||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}function i(e){if(f===clearTimeout)return clearTimeout(e);if((f===o||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(e);try{return f(e)}catch(t){try{return f.call(null,e)}catch(t){return f.call(this,e)}}}function s(){g&&h&&(g=!1,h.length?v=h.concat(v):m=-1,v.length&&u())}function u(){if(!g){var e=a(s);g=!0;for(var t=v.length;t;){for(h=v,v=[];++m<t;)h&&h[m].run();m=-1,t=v.length}h=null,g=!1,i(e)}}function c(e,t){this.fun=e,this.array=t}function l(){}var p,f,d=t.exports={};!function(){try{p="function"==typeof setTimeout?setTimeout:r}catch(e){p=r}try{f="function"==typeof clearTimeout?clearTimeout:o}catch(e){f=o}}();var h,v=[],g=!1,m=-1;d.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];v.push(new c(e,t)),1!==v.length||g||a(u)},c.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=l,d.addListener=l,d.once=l,d.off=l,d.removeListener=l,d.removeAllListeners=l,d.emit=l,d.prependListener=l,d.prependOnceListener=l,d.listeners=function(e){return[]},d.binding=function(e){
4
- throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(e){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},{}],163:[function(e,t,n){(function(e){"use strict";function n(e,t,n,r,o){}t.exports=n}).call(this,e("_process"))},{"./lib/ReactPropTypesSecret":168,_process:162}],164:[function(e,t,n){"use strict";var r=e("./factoryWithTypeCheckers");t.exports=function(e){var t=!1;return r(e,t)}},{"./factoryWithTypeCheckers":166}],165:[function(e,t,n){"use strict";function r(){}var o=e("./lib/ReactPropTypesSecret");t.exports=function(){function e(e,t,n,r,a,i){if(i!==o){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=r,n.PropTypes=n,n}},{"./lib/ReactPropTypesSecret":168}],166:[function(e,t,n){(function(n){"use strict";function r(){return null}var o=e("object-assign"),a=e("./lib/ReactPropTypesSecret"),i=e("./checkPropTypes"),s=function(){};t.exports=function(e,t){function n(e){var t=e&&(x&&e[x]||e[k]);if("function"==typeof t)return t}function u(e,t){return e===t?0!==e||1/e===1/t:e!==e&&t!==t}function c(e){this.message=e,this.stack=""}function l(e){function n(n,r,o,i,s,u,l){if(i=i||P,u=u||o,l!==a){if(t){var p=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw p.name="Invariant Violation",p}}return null==r[o]?n?new c(null===r[o]?"The "+s+" `"+u+"` is marked as required "+("in `"+i+"`, but its value is `null`."):"The "+s+" `"+u+"` is marked as required in "+("`"+i+"`, but its value is `undefined`.")):null:e(r,o,i,s,u)}var r=n.bind(null,!1);return r.isRequired=n.bind(null,!0),r}function p(e){function t(t,n,r,o,a,i){var s=t[n],u=O(s);if(u!==e){var l=T(s);return new c("Invalid "+o+" `"+a+"` of type "+("`"+l+"` supplied to `"+r+"`, expected ")+("`"+e+"`."))}return null}return l(t)}function f(){return l(r)}function d(e){function t(t,n,r,o,i){if("function"!=typeof e)return new c("Property `"+i+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var s=t[n];if(!Array.isArray(s)){var u=O(s);return new c("Invalid "+o+" `"+i+"` of type "+("`"+u+"` supplied to `"+r+"`, expected an array."))}for(var l=0;l<s.length;l++){var p=e(s,l,r,o,i+"["+l+"]",a);if(p instanceof Error)return p}return null}return l(t)}function h(){function t(t,n,r,o,a){var i=t[n];if(!e(i)){var s=O(i);return new c("Invalid "+o+" `"+a+"` of type "+("`"+s+"` supplied to `"+r+"`, expected a single ReactElement."))}return null}return l(t)}function v(e){function t(t,n,r,o,a){if(!(t[n]instanceof e)){var i=e.name||P,s=S(t[n]);return new c("Invalid "+o+" `"+a+"` of type "+("`"+s+"` supplied to `"+r+"`, expected ")+("instance of `"+i+"`."))}return null}return l(t)}function g(e){function t(t,n,r,o,a){for(var i=t[n],s=0;s<e.length;s++)if(u(i,e[s]))return null;var l=JSON.stringify(e);return new c("Invalid "+o+" `"+a+"` of value `"+i+"` "+("supplied to `"+r+"`, expected one of "+l+"."))}return Array.isArray(e)?l(t):r}function m(e){function t(t,n,r,o,i){if("function"!=typeof e)return new c("Property `"+i+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var s=t[n],u=O(s);if("object"!==u)return new c("Invalid "+o+" `"+i+"` of type "+("`"+u+"` supplied to `"+r+"`, expected an object."));for(var l in s)if(s.hasOwnProperty(l)){var p=e(s,l,r,o,i+"."+l,a);if(p instanceof Error)return p}return null}return l(t)}function y(e){function t(t,n,r,o,i){for(var s=0;s<e.length;s++){var u=e[s];if(null==u(t,n,r,o,i,a))return null}return new c("Invalid "+o+" `"+i+"` supplied to "+("`"+r+"`."))}if(!Array.isArray(e))return r;for(var n=0;n<e.length;n++){var o=e[n];if("function"!=typeof o)return s("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+D(o)+" at index "+n+"."),r}return l(t)}function b(){function e(e,t,n,r,o){return C(e[t])?null:new c("Invalid "+r+" `"+o+"` supplied to "+("`"+n+"`, expected a ReactNode."))}return l(e)}function _(e){function t(t,n,r,o,i){var s=t[n],u=O(s);if("object"!==u)return new c("Invalid "+o+" `"+i+"` of type `"+u+"` "+("supplied to `"+r+"`, expected `object`."));for(var l in e){var p=e[l];if(p){var f=p(s,l,r,o,i+"."+l,a);if(f)return f}}return null}return l(t)}function E(e){function t(t,n,r,i,s){var u=t[n],l=O(u);if("object"!==l)return new c("Invalid "+i+" `"+s+"` of type `"+l+"` "+("supplied to `"+r+"`, expected `object`."));var p=o({},t[n],e);for(var f in p){var d=e[f];if(!d)return new c("Invalid "+i+" `"+s+"` key `"+f+"` supplied to `"+r+"`.\nBad object: "+JSON.stringify(t[n],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null," "));var h=d(u,f,r,i,s+"."+f,a);if(h)return h}return null}return l(t)}function C(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(C);if(null===t||e(t))return!0;var r=n(t);if(!r)return!1;var o,a=r.call(t);if(r!==t.entries){for(;!(o=a.next()).done;)if(!C(o.value))return!1}else for(;!(o=a.next()).done;){var i=o.value;if(i&&!C(i[1]))return!1}return!0;default:return!1}}function w(e,t){return"symbol"===e||("Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol)}function O(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":w(t,e)?"symbol":t}function T(e){if("undefined"==typeof e||null===e)return""+e;var t=O(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function D(e){var t=T(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}function S(e){return e.constructor&&e.constructor.name?e.constructor.name:P}var x="function"==typeof Symbol&&Symbol.iterator,k="@@iterator",P="<<anonymous>>",I={array:p("array"),bool:p("boolean"),func:p("function"),number:p("number"),object:p("object"),string:p("string"),symbol:p("symbol"),any:f(),arrayOf:d,element:h(),instanceOf:v,node:b(),objectOf:m,oneOf:g,oneOfType:y,shape:_,exact:E};return c.prototype=Error.prototype,I.checkPropTypes=i,I.PropTypes=I,I}}).call(this,e("_process"))},{"./checkPropTypes":163,"./lib/ReactPropTypesSecret":168,_process:162,"object-assign":161}],167:[function(e,t,n){(function(n){t.exports=e("./factoryWithThrowingShims")()}).call(this,e("_process"))},{"./factoryWithThrowingShims":165,"./factoryWithTypeCheckers":166,_process:162}],168:[function(e,t,n){"use strict";var r="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";t.exports=r},{}],169:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n.isSafari=n.isFirefox=void 0;var o=e("lodash/memoize"),a=r(o);n.isFirefox=(0,a["default"])(function(){return/firefox/i.test(navigator.userAgent)}),n.isSafari=(0,a["default"])(function(){return Boolean(window.safari)})},{"lodash/memoize":155}],170:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var a=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=e("lodash/union"),s=r(i),u=e("lodash/without"),c=r(u),l=function(){function e(){o(this,e),this.entered=[]}return a(e,[{key:"enter",value:function(e){var t=this.entered.length,n=function(t){return document.documentElement.contains(t)&&(!t.contains||t.contains(e))};return this.entered=(0,s["default"])(this.entered.filter(n),[e]),0===t&&this.entered.length>0}},{key:"leave",value:function(e){var t=this.entered.length;return this.entered=(0,c["default"])(this.entered.filter(function(e){return document.documentElement.contains(e)}),e),t>0&&0===this.entered.length}},{key:"reset",value:function(){this.entered=[]}}]),e}();n["default"]=l},{"lodash/union":158,"lodash/without":159}],171:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function o(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var i=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}}(),s=e("lodash/defaults"),u=o(s),c=e("./shallowEqual"),l=o(c),p=e("./EnterLeaveCounter"),f=o(p),d=e("./BrowserDetector"),h=e("./OffsetUtils"),v=e("./NativeDragSources"),g=e("./NativeTypes"),m=r(g),y=function(){function e(t){a(this,e),this.actions=t.getActions(),this.monitor=t.getMonitor(),this.registry=t.getRegistry(),this.context=t.getContext(),this.sourcePreviewNodes={},this.sourcePreviewNodeOptions={},this.sourceNodes={},this.sourceNodeOptions={},this.enterLeaveCounter=new f["default"],this.dragStartSourceIds=[],this.dropTargetIds=[],this.dragEnterTargetIds=[],this.currentNativeSource=null,this.currentNativeHandle=null,this.currentDragSourceNode=null,this.currentDragSourceNodeOffset=null,this.currentDragSourceNodeOffsetChanged=!1,this.altKeyPressed=!1,this.mouseMoveTimeoutTimer=null,this.getSourceClientOffset=this.getSourceClientOffset.bind(this),this.handleTopDragStart=this.handleTopDragStart.bind(this),this.handleTopDragStartCapture=this.handleTopDragStartCapture.bind(this),this.handleTopDragEndCapture=this.handleTopDragEndCapture.bind(this),this.handleTopDragEnter=this.handleTopDragEnter.bind(this),this.handleTopDragEnterCapture=this.handleTopDragEnterCapture.bind(this),this.handleTopDragLeaveCapture=this.handleTopDragLeaveCapture.bind(this),this.handleTopDragOver=this.handleTopDragOver.bind(this),this.handleTopDragOverCapture=this.handleTopDragOverCapture.bind(this),this.handleTopDrop=this.handleTopDrop.bind(this),this.handleTopDropCapture=this.handleTopDropCapture.bind(this),this.handleSelectStart=this.handleSelectStart.bind(this),this.endDragIfSourceWasRemovedFromDOM=this.endDragIfSourceWasRemovedFromDOM.bind(this),this.endDragNativeItem=this.endDragNativeItem.bind(this),this.asyncEndDragNativeItem=this.asyncEndDragNativeItem.bind(this),this.isNodeInDocument=this.isNodeInDocument.bind(this)}return i(e,[{key:"setup",value:function(){if(void 0!==this.window){if(this.window.__isReactDndBackendSetUp)throw new Error("Cannot have two HTML5 backends at the same time.");this.window.__isReactDndBackendSetUp=!0,this.addEventListeners(this.window)}}},{key:"teardown",value:function(){void 0!==this.window&&(this.window.__isReactDndBackendSetUp=!1,this.removeEventListeners(this.window),this.clearCurrentDragSourceNode(),this.asyncEndDragFrameId&&this.window.cancelAnimationFrame(this.asyncEndDragFrameId))}},{key:"addEventListeners",value:function(e){e.addEventListener&&(e.addEventListener("dragstart",this.handleTopDragStart),e.addEventListener("dragstart",this.handleTopDragStartCapture,!0),e.addEventListener("dragend",this.handleTopDragEndCapture,!0),e.addEventListener("dragenter",this.handleTopDragEnter),e.addEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.addEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.addEventListener("dragover",this.handleTopDragOver),e.addEventListener("dragover",this.handleTopDragOverCapture,!0),e.addEventListener("drop",this.handleTopDrop),e.addEventListener("drop",this.handleTopDropCapture,!0))}},{key:"removeEventListeners",value:function(e){e.removeEventListener&&(e.removeEventListener("dragstart",this.handleTopDragStart),e.removeEventListener("dragstart",this.handleTopDragStartCapture,!0),e.removeEventListener("dragend",this.handleTopDragEndCapture,!0),e.removeEventListener("dragenter",this.handleTopDragEnter),e.removeEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.removeEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.removeEventListener("dragover",this.handleTopDragOver),e.removeEventListener("dragover",this.handleTopDragOverCapture,!0),e.removeEventListener("drop",this.handleTopDrop),e.removeEventListener("drop",this.handleTopDropCapture,!0))}},{key:"connectDragPreview",value:function(e,t,n){var r=this;return this.sourcePreviewNodeOptions[e]=n,this.sourcePreviewNodes[e]=t,function(){delete r.sourcePreviewNodes[e],delete r.sourcePreviewNodeOptions[e]}}},{key:"connectDragSource",value:function(e,t,n){var r=this;this.sourceNodes[e]=t,this.sourceNodeOptions[e]=n;var o=function(t){return r.handleDragStart(t,e)},a=function(t){return r.handleSelectStart(t,e)};return t.setAttribute("draggable",!0),t.addEventListener("dragstart",o),t.addEventListener("selectstart",a),function(){delete r.sourceNodes[e],delete r.sourceNodeOptions[e],t.removeEventListener("dragstart",o),t.removeEventListener("selectstart",a),t.setAttribute("draggable",!1)}}},{key:"connectDropTarget",value:function(e,t){var n=this,r=function(t){return n.handleDragEnter(t,e)},o=function(t){return n.handleDragOver(t,e)},a=function(t){return n.handleDrop(t,e)};return t.addEventListener("dragenter",r),t.addEventListener("dragover",o),t.addEventListener("drop",a),function(){t.removeEventListener("dragenter",r),t.removeEventListener("dragover",o),t.removeEventListener("drop",a)}}},{key:"getCurrentSourceNodeOptions",value:function(){var e=this.monitor.getSourceId(),t=this.sourceNodeOptions[e];return(0,u["default"])(t||{},{dropEffect:this.altKeyPressed?"copy":"move"})}},{key:"getCurrentDropEffect",value:function(){return this.isDraggingNativeItem()?"copy":this.getCurrentSourceNodeOptions().dropEffect}},{key:"getCurrentSourcePreviewNodeOptions",value:function(){var e=this.monitor.getSourceId(),t=this.sourcePreviewNodeOptions[e];return(0,u["default"])(t||{},{anchorX:.5,anchorY:.5,captureDraggingState:!1})}},{key:"getSourceClientOffset",value:function(e){return(0,h.getNodeClientOffset)(this.sourceNodes[e])}},{key:"isDraggingNativeItem",value:function(){var e=this.monitor.getItemType();return Object.keys(m).some(function(t){return m[t]===e})}},{key:"beginDragNativeItem",value:function(e){this.clearCurrentDragSourceNode();var t=(0,v.createNativeDragSource)(e);this.currentNativeSource=new t,this.currentNativeHandle=this.registry.addSource(e,this.currentNativeSource),this.actions.beginDrag([this.currentNativeHandle])}},{key:"asyncEndDragNativeItem",value:function(){this.asyncEndDragFrameId=this.window.requestAnimationFrame(this.endDragNativeItem)}},{key:"endDragNativeItem",value:function(){this.isDraggingNativeItem()&&(this.actions.endDrag(),this.registry.removeSource(this.currentNativeHandle),this.currentNativeHandle=null,this.currentNativeSource=null)}},{key:"isNodeInDocument",value:function(e){return!(!document.body.contains(e)&&!this.window)&&this.window.document.body.contains(e)}},{key:"endDragIfSourceWasRemovedFromDOM",value:function(){var e=this.currentDragSourceNode;this.isNodeInDocument(e)||this.clearCurrentDragSourceNode()&&this.actions.endDrag()}},{key:"setCurrentDragSourceNode",value:function(e){var t=this;this.clearCurrentDragSourceNode(),this.currentDragSourceNode=e,this.currentDragSourceNodeOffset=(0,h.getNodeClientOffset)(e),this.currentDragSourceNodeOffsetChanged=!1;var n=1e3;this.mouseMoveTimeoutTimer=setTimeout(function(){return t.mouseMoveTimeoutId=null,t.window.addEventListener("mousemove",t.endDragIfSourceWasRemovedFromDOM,!0)},n)}},{key:"clearCurrentDragSourceNode",value:function(){return!!this.currentDragSourceNode&&(this.currentDragSourceNode=null,this.currentDragSourceNodeOffset=null,this.currentDragSourceNodeOffsetChanged=!1,this.window.clearTimeout(this.mouseMoveTimeoutTimer),this.window.removeEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0),this.mouseMoveTimeoutTimer=null,!0)}},{key:"checkIfCurrentDragSourceRectChanged",value:function(){var e=this.currentDragSourceNode;return!!e&&(!!this.currentDragSourceNodeOffsetChanged||(this.currentDragSourceNodeOffsetChanged=!(0,l["default"])((0,h.getNodeClientOffset)(e),this.currentDragSourceNodeOffset),this.currentDragSourceNodeOffsetChanged))}},{key:"handleTopDragStartCapture",value:function(){this.clearCurrentDragSourceNode(),this.dragStartSourceIds=[]}},{key:"handleDragStart",value:function(e,t){this.dragStartSourceIds.unshift(t)}},{key:"handleTopDragStart",value:function(e){var t=this,n=this.dragStartSourceIds;this.dragStartSourceIds=null;var r=(0,h.getEventClientOffset)(e);this.monitor.isDragging()&&this.actions.endDrag(),this.actions.beginDrag(n,{publishSource:!1,getSourceClientOffset:this.getSourceClientOffset,clientOffset:r});var o=e.dataTransfer,a=(0,v.matchNativeItemType)(o);if(this.monitor.isDragging()){if("function"==typeof o.setDragImage){var i=this.monitor.getSourceId(),s=this.sourceNodes[i],u=this.sourcePreviewNodes[i]||s,c=this.getCurrentSourcePreviewNodeOptions(),l=c.anchorX,p=c.anchorY,f=c.offsetX,d=c.offsetY,g={anchorX:l,anchorY:p},m={offsetX:f,offsetY:d},y=(0,h.getDragPreviewOffset)(s,u,r,g,m);o.setDragImage(u,y.x,y.y)}try{o.setData("application/json",{})}catch(b){}this.setCurrentDragSourceNode(e.target);var _=this.getCurrentSourcePreviewNodeOptions(),E=_.captureDraggingState;E?this.actions.publishDragSource():setTimeout(function(){return t.actions.publishDragSource()})}else if(a)this.beginDragNativeItem(a);else{if(!(o.types||e.target.hasAttribute&&e.target.hasAttribute("draggable")))return;e.preventDefault()}}},{key:"handleTopDragEndCapture",value:function(){this.clearCurrentDragSourceNode()&&this.actions.endDrag()}},{key:"handleTopDragEnterCapture",value:function(e){this.dragEnterTargetIds=[];var t=this.enterLeaveCounter.enter(e.target);if(t&&!this.monitor.isDragging()){var n=e.dataTransfer,r=(0,v.matchNativeItemType)(n);r&&this.beginDragNativeItem(r)}}},{key:"handleDragEnter",value:function(e,t){this.dragEnterTargetIds.unshift(t)}},{key:"handleTopDragEnter",value:function(e){var t=this,n=this.dragEnterTargetIds;if(this.dragEnterTargetIds=[],this.monitor.isDragging()){this.altKeyPressed=e.altKey,(0,d.isFirefox)()||this.actions.hover(n,{clientOffset:(0,h.getEventClientOffset)(e)});var r=n.some(function(e){return t.monitor.canDropOnTarget(e)});r&&(e.preventDefault(),e.dataTransfer.dropEffect=this.getCurrentDropEffect())}}},{key:"handleTopDragOverCapture",value:function(){this.dragOverTargetIds=[]}},{key:"handleDragOver",value:function(e,t){this.dragOverTargetIds.unshift(t)}},{key:"handleTopDragOver",value:function(e){var t=this,n=this.dragOverTargetIds;if(this.dragOverTargetIds=[],!this.monitor.isDragging())return e.preventDefault(),void(e.dataTransfer.dropEffect="none");this.altKeyPressed=e.altKey,this.actions.hover(n,{clientOffset:(0,h.getEventClientOffset)(e)});var r=n.some(function(e){return t.monitor.canDropOnTarget(e)});r?(e.preventDefault(),e.dataTransfer.dropEffect=this.getCurrentDropEffect()):this.isDraggingNativeItem()?(e.preventDefault(),e.dataTransfer.dropEffect="none"):this.checkIfCurrentDragSourceRectChanged()&&(e.preventDefault(),e.dataTransfer.dropEffect="move")}},{key:"handleTopDragLeaveCapture",value:function(e){this.isDraggingNativeItem()&&e.preventDefault();var t=this.enterLeaveCounter.leave(e.target);t&&this.isDraggingNativeItem()&&this.endDragNativeItem()}},{key:"handleTopDropCapture",value:function(e){this.dropTargetIds=[],e.preventDefault(),this.isDraggingNativeItem()&&this.currentNativeSource.mutateItemByReadingDataTransfer(e.dataTransfer),this.enterLeaveCounter.reset()}},{key:"handleDrop",value:function(e,t){this.dropTargetIds.unshift(t)}},{key:"handleTopDrop",value:function(e){var t=this.dropTargetIds;this.dropTargetIds=[],this.actions.hover(t,{clientOffset:(0,h.getEventClientOffset)(e)}),this.actions.drop({dropEffect:this.getCurrentDropEffect()}),this.isDraggingNativeItem()?this.endDragNativeItem():this.endDragIfSourceWasRemovedFromDOM()}},{key:"handleSelectStart",value:function(e){var t=e.target;"function"==typeof t.dragDrop&&("INPUT"===t.tagName||"SELECT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable||(e.preventDefault(),t.dragDrop()))}},{key:"window",get:function(){return this.context&&this.context.window?this.context.window:"undefined"!=typeof window?window:void 0}}]),e}();n["default"]=y},{"./BrowserDetector":169,"./EnterLeaveCounter":170,"./NativeDragSources":173,"./NativeTypes":174,"./OffsetUtils":175,"./shallowEqual":178,"lodash/defaults":139}],172:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(n,"__esModule",{value:!0});var 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}}(),a=function(){function e(t,n){r(this,e);for(var o=t.length,a=[],i=0;i<o;i++)a.push(i);a.sort(function(e,n){return t[e]<t[n]?-1:1});for(var s=[],u=[],c=[],l=void 0,p=void 0,f=0;f<o-1;f++)l=t[f+1]-t[f],p=n[f+1]-n[f],u.push(l),s.push(p),c.push(p/l);for(var d=[c[0]],h=0;h<u.length-1;h++){var v=c[h],g=c[h+1];if(v*g<=0)d.push(0);else{l=u[h];var m=u[h+1],y=l+m;d.push(3*y/((y+m)/v+(y+l)/g))}}d.push(c[c.length-1]);for(var b=[],_=[],E=void 0,C=0;C<d.length-1;C++){E=c[C];var w=d[C],O=1/u[C],T=w+d[C+1]-E-E;b.push((E-w-T)*O),_.push(T*O*O)}this.xs=t,this.ys=n,this.c1s=d,this.c2s=b,this.c3s=_}return o(e,[{key:"interpolate",value:function(e){var t=this.xs,n=this.ys,r=this.c1s,o=this.c2s,a=this.c3s,i=t.length-1;if(e===t[i])return n[i];for(var s=0,u=a.length-1,c=void 0;s<=u;){c=Math.floor(.5*(s+u));var l=t[c];if(l<e)s=c+1;else{if(!(l>e))return n[c];u=c-1}}i=Math.max(0,u);var p=e-t[i],f=p*p;return n[i]+r[i]*p+o[i]*f+a[i]*p*f}}]),e}();n["default"]=a},{}],173:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function o(e,t){for(var n in t){var r=t[n];r.configurable=r.enumerable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,n,r)}return e}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t,n){var r=t.reduce(function(t,n){return t||e.getData(n)},null);return null!=r?r:n}function u(e){var t=h[e],n=t.exposeProperty,r=t.matchesTypes,i=t.getData;return function(){function e(){var t,r;a(this,e),this.item=(t={},r={},r[n]=r[n]||{},r[n].get=function(){return console.warn("Browser doesn't allow reading \""+n+'" until the drop event.'),null},o(t,r),t)}return p(e,[{key:"mutateItemByReadingDataTransfer",value:function(e){delete this.item[n],this.item[n]=i(e,r)}},{key:"canDrag",value:function(){return!0}},{key:"beginDrag",value:function(){return this.item}},{key:"isDragging",value:function(e,t){return t===e.getSourceId()}},{key:"endDrag",value:function(){}}]),e}()}function c(e){var t=Array.prototype.slice.call(e.types||[]);return Object.keys(h).filter(function(e){var n=h[e].matchesTypes;return n.some(function(e){return t.indexOf(e)>-1})})[0]||null}Object.defineProperty(n,"__esModule",{value:!0});var l,p=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}}();n.createNativeDragSource=u,n.matchNativeItemType=c;var f=e("./NativeTypes"),d=r(f),h=(l={},i(l,d.FILE,{exposeProperty:"files",matchesTypes:["Files"],getData:function(e){return Array.prototype.slice.call(e.files)}}),i(l,d.URL,{exposeProperty:"urls",matchesTypes:["Url","text/uri-list"],getData:function(e,t){return s(e,t,"").split("\n")}}),i(l,d.TEXT,{exposeProperty:"text",matchesTypes:["Text","text/plain"],getData:function(e,t){return s(e,t,"")}}),l)},{"./NativeTypes":174}],174:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.FILE="__NATIVE_FILE__",n.URL="__NATIVE_URL__",n.TEXT="__NATIVE_TEXT__"},{}],175:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){var t=e.nodeType===f?e:e.parentElement;if(!t)return null;var n=t.getBoundingClientRect(),r=n.top,o=n.left;return{x:o,y:r}}function a(e){return{x:e.clientX,y:e.clientY}}function i(e){return"IMG"===e.nodeName&&((0,c.isFirefox)()||!document.documentElement.contains(e))}function s(e,t,n,r){var o=e?t.width:n,a=e?t.height:r;return(0,c.isSafari)()&&e&&(a/=window.devicePixelRatio,o/=window.devicePixelRatio),{dragPreviewWidth:o,dragPreviewHeight:a}}function u(e,t,n,r,a){var u=i(t),l=u?e:t,f=o(l),d={x:n.x-f.x,y:n.y-f.y},h=e.offsetWidth,v=e.offsetHeight,g=r.anchorX,m=r.anchorY,y=s(u,t,h,v),b=y.dragPreviewWidth,_=y.dragPreviewHeight,E=function(){var e=new p["default"]([0,.5,1],[d.y,d.y/v*_,d.y+_-v]),t=e.interpolate(m);return(0,c.isSafari)()&&u&&(t+=(window.devicePixelRatio-1)*_),t},C=function(){var e=new p["default"]([0,.5,1],[d.x,d.x/h*b,d.x+b-h]);return e.interpolate(g)},w=a.offsetX,O=a.offsetY,T=0===w||w,D=0===O||O;return{x:T?w:C(),y:D?O:E()}}Object.defineProperty(n,"__esModule",{value:!0}),n.getNodeClientOffset=o,n.getEventClientOffset=a,n.getDragPreviewOffset=u;var c=e("./BrowserDetector"),l=e("./MonotonicInterpolant"),p=r(l),f=1},{"./BrowserDetector":169,"./MonotonicInterpolant":172}],176:[function(e,t,n){"use strict";function r(){return o||(o=new Image,o.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),o}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=void 0},{}],177:[function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function o(e){return e&&e.__esModule?e:{"default":e}}function a(e){return new s["default"](e)}Object.defineProperty(n,"__esModule",{value:!0}),n.getEmptyImage=n.NativeTypes=void 0,n["default"]=a;var i=e("./HTML5Backend"),s=o(i),u=e("./getEmptyImage"),c=o(u),l=e("./NativeTypes"),p=r(l);n.NativeTypes=p,n.getEmptyImage=c["default"]},{"./HTML5Backend":171,"./NativeTypes":174,"./getEmptyImage":176}],178:[function(e,t,n){"use strict";function r(e,t){if(e===t)return!0;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var o=Object.prototype.hasOwnProperty,a=0;a<n.length;a+=1){if(!o.call(t,n[a])||e[n[a]]!==t[n[a]])return!1;var i=e[n[a]],s=t[n[a]];if(i!==s)return!1}return!0}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r},{}],179:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(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}function i(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)}function s(e){E["default"].apply(void 0,["DragDropContext","backend"].concat(Array.prototype.slice.call(arguments)));var t=O(e),n=w(t);return function(e){var t,r,s=e.displayName||e.name||"Component",l=(r=t=function(t){function r(){return o(this,r),a(this,(r.__proto__||Object.getPrototypeOf(r)).apply(this,arguments))}return i(r,t),c(r,[{key:"getDecoratedComponentInstance",value:function(){return(0,m["default"])(this.child,"In order to access an instance of the decorated component it can not be a stateless component."),this.child}},{key:"getManager",value:function(){return n.dragDropManager}},{key:"getChildContext",value:function(){return n}},{key:"render",value:function(){var t=this;return f["default"].createElement(e,u({},this.props,{ref:function(e){t.child=e}}))}}]),r}(p.Component),t.DecoratedComponent=e,t.displayName="DragDropContext("+s+")",t.childContextTypes=C,r);return(0,b["default"])(l,e)}}Object.defineProperty(n,"__esModule",{value:!0}),n.unpackBackendForEs5Users=n.createChildContext=n.CHILD_CONTEXT_TYPES=void 0;var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c=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}}(),l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};n["default"]=s;var p=e("react"),f=r(p),d=e("prop-types"),h=r(d),v=e("dnd-core"),g=e("invariant"),m=r(g),y=e("hoist-non-react-statics"),b=r(y),_=e("./utils/checkDecoratorArguments"),E=r(_),C=n.CHILD_CONTEXT_TYPES={dragDropManager:h["default"].object.isRequired},w=n.createChildContext=function(e,t){return{dragDropManager:new v.DragDropManager(e,t)}},O=n.unpackBackendForEs5Users=function(e){var t=e;return"object"===("undefined"==typeof t?"undefined":l(t))&&"function"==typeof t["default"]&&(t=t["default"]),(0,m["default"])("function"==typeof t,"Expected the backend to be a function or an ES6 module exporting a default function. Read more: http://react-dnd.github.io/react-dnd/docs-drag-drop-context.html"),t}},{"./utils/checkDecoratorArguments":195,"dnd-core":26,"hoist-non-react-statics":58,invariant:59,"prop-types":167,react:353}],180:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(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}function i(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)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=void 0;var s,u,c=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}}(),l=e("react"),p=e("prop-types"),f=r(p),d=e("./DragDropContext"),h=(u=s=function(e){function t(e,n){o(this,t);var r=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n)),i=function(){return e&&e.window?e.window:n&&n.window?n.window:"undefined"!=typeof window?window:void 0};return r.backend=(0,d.unpackBackendForEs5Users)(e.backend),r.childContext=(0,d.createChildContext)(r.backend,{window:i()}),r}return i(t,e),c(t,[{key:"componentWillReceiveProps",value:function(e){if(e.backend!==this.props.backend||e.window!==this.props.window)throw new Error("DragDropContextProvider backend and window props must not change.")}},{key:"getChildContext",value:function(){return this.childContext;
5
- }},{key:"render",value:function(){return l.Children.only(this.props.children)}}]),t}(l.Component),s.propTypes={backend:f["default"].oneOfType([f["default"].func,f["default"].object]).isRequired,children:f["default"].element.isRequired,window:f["default"].object},s.defaultProps={window:void 0},s.childContextTypes=d.CHILD_CONTEXT_TYPES,s.displayName="DragDropContextProvider",s.contextTypes={window:f["default"].object},u);n["default"]=h},{"./DragDropContext":179,"prop-types":167,react:353}],181:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(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}function i(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)}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return D["default"].apply(void 0,["DragLayer","collect[, options]"].concat(Array.prototype.slice.call(arguments))),(0,_["default"])("function"==typeof e,'Expected "collect" provided as the first argument to DragLayer to be a function that collects props to inject into the component. ',"Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-layer.html",e),(0,_["default"])((0,y["default"])(t),'Expected "options" provided as the second argument to DragLayer to be a plain object when specified. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-layer.html',t),function(n){var r,s,d=t.arePropsEqual,v=void 0===d?O["default"]:d,m=n.displayName||n.name||"Component",y=(s=r=function(t){function r(e,t){o(this,r);var n=a(this,(r.__proto__||Object.getPrototypeOf(r)).call(this,e));return n.handleChange=n.handleChange.bind(n),n.manager=t.dragDropManager,(0,_["default"])("object"===c(n.manager),"Could not find the drag and drop manager in the context of %s. Make sure to wrap the top-level component of your app with DragDropContext. Read more: http://react-dnd.github.io/react-dnd/docs-troubleshooting.html#could-not-find-the-drag-and-drop-manager-in-the-context",m,m),n.state=n.getCurrentState(),n}return i(r,t),l(r,[{key:"getDecoratedComponentInstance",value:function(){return(0,_["default"])(this.child,"In order to access an instance of the decorated component it can not be a stateless component."),this.child}},{key:"shouldComponentUpdate",value:function(e,t){return!v(e,this.props)||!(0,C["default"])(t,this.state)}}]),l(r,[{key:"componentDidMount",value:function(){this.isCurrentlyMounted=!0;var e=this.manager.getMonitor();this.unsubscribeFromOffsetChange=e.subscribeToOffsetChange(this.handleChange),this.unsubscribeFromStateChange=e.subscribeToStateChange(this.handleChange),this.handleChange()}},{key:"componentWillUnmount",value:function(){this.isCurrentlyMounted=!1,this.unsubscribeFromOffsetChange(),this.unsubscribeFromStateChange()}},{key:"handleChange",value:function(){if(this.isCurrentlyMounted){var e=this.getCurrentState();(0,C["default"])(e,this.state)||this.setState(e)}}},{key:"getCurrentState",value:function(){var t=this.manager.getMonitor();return e(t,this.props)}},{key:"render",value:function(){var e=this;return f["default"].createElement(n,u({},this.props,this.state,{ref:function(t){e.child=t}}))}}]),r}(p.Component),r.DecoratedComponent=n,r.displayName="DragLayer("+m+")",r.contextTypes={dragDropManager:h["default"].object.isRequired},s);return(0,g["default"])(y,n)}}Object.defineProperty(n,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l=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}}();n["default"]=s;var p=e("react"),f=r(p),d=e("prop-types"),h=r(d),v=e("hoist-non-react-statics"),g=r(v),m=e("lodash/isPlainObject"),y=r(m),b=e("invariant"),_=r(b),E=e("./utils/shallowEqual"),C=r(E),w=e("./utils/shallowEqualScalar"),O=r(w),T=e("./utils/checkDecoratorArguments"),D=r(T)},{"./utils/checkDecoratorArguments":195,"./utils/shallowEqual":198,"./utils/shallowEqualScalar":199,"hoist-non-react-statics":58,invariant:59,"lodash/isPlainObject":152,"prop-types":167,react:353}],182:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};l["default"].apply(void 0,["DragSource","type, spec, collect[, options]"].concat(Array.prototype.slice.call(arguments)));var o=e;"function"!=typeof e&&((0,i["default"])((0,C["default"])(e),'Expected "type" provided as the first argument to DragSource to be a string, or a function that returns a string given the current props. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html',e),o=function(){return e}),(0,i["default"])((0,u["default"])(t),'Expected "spec" provided as the second argument to DragSource to be a plain object. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html',t);var a=(0,g["default"])(t);return(0,i["default"])("function"==typeof n,'Expected "collect" provided as the third argument to DragSource to be a function that returns a plain object of props to inject. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html',n),(0,i["default"])((0,u["default"])(r),'Expected "options" provided as the fourth argument to DragSource to be a plain object when specified. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html',n),function(e){return(0,f["default"])({connectBackend:function(e,t){return e.connectDragSource(t)},containerDisplayName:"DragSource",createHandler:a,registerHandler:h["default"],createMonitor:y["default"],createConnector:_["default"],DecoratedComponent:e,getType:o,collect:n,options:r})}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=o;var a=e("invariant"),i=r(a),s=e("lodash/isPlainObject"),u=r(s),c=e("./utils/checkDecoratorArguments"),l=r(c),p=e("./decorateHandler"),f=r(p),d=e("./registerSource"),h=r(d),v=e("./createSourceFactory"),g=r(v),m=e("./createSourceMonitor"),y=r(m),b=e("./createSourceConnector"),_=r(b),E=e("./utils/isValidType"),C=r(E)},{"./createSourceConnector":185,"./createSourceFactory":186,"./createSourceMonitor":187,"./decorateHandler":191,"./registerSource":193,"./utils/checkDecoratorArguments":195,"./utils/isValidType":197,invariant:59,"lodash/isPlainObject":152}],183:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};l["default"].apply(void 0,["DropTarget","type, spec, collect[, options]"].concat(Array.prototype.slice.call(arguments)));var o=e;"function"!=typeof e&&((0,i["default"])((0,C["default"])(e,!0),'Expected "type" provided as the first argument to DropTarget to be a string, an array of strings, or a function that returns either given the current props. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html',e),o=function(){return e}),(0,i["default"])((0,u["default"])(t),'Expected "spec" provided as the second argument to DropTarget to be a plain object. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html',t);var a=(0,g["default"])(t);return(0,i["default"])("function"==typeof n,'Expected "collect" provided as the third argument to DropTarget to be a function that returns a plain object of props to inject. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html',n),(0,i["default"])((0,u["default"])(r),'Expected "options" provided as the fourth argument to DropTarget to be a plain object when specified. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html',n),function(e){return(0,f["default"])({connectBackend:function(e,t){return e.connectDropTarget(t)},containerDisplayName:"DropTarget",createHandler:a,registerHandler:h["default"],createMonitor:y["default"],createConnector:_["default"],DecoratedComponent:e,getType:o,collect:n,options:r})}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=o;var a=e("invariant"),i=r(a),s=e("lodash/isPlainObject"),u=r(s),c=e("./utils/checkDecoratorArguments"),l=r(c),p=e("./decorateHandler"),f=r(p),d=e("./registerTarget"),h=r(d),v=e("./createTargetFactory"),g=r(v),m=e("./createTargetMonitor"),y=r(m),b=e("./createTargetConnector"),_=r(b),E=e("./utils/isValidType"),C=r(E)},{"./createTargetConnector":188,"./createTargetFactory":189,"./createTargetMonitor":190,"./decorateHandler":191,"./registerTarget":194,"./utils/checkDecoratorArguments":195,"./utils/isValidType":197,invariant:59,"lodash/isPlainObject":152}],184:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return t===e||null!==t&&null!==e&&(0,i["default"])(t,e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=o;var a=e("./utils/shallowEqual"),i=r(a)},{"./utils/shallowEqual":198}],185:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){function t(){c&&(c(),c=null),o&&a&&(c=e.connectDragSource(o,a,s))}function n(){f&&(f(),f=null),o&&l&&(f=e.connectDragPreview(o,l,p))}function r(e){e!==o&&(o=e,t(),n())}var o=void 0,a=void 0,s=void 0,c=void 0,l=void 0,p=void 0,f=void 0,d=(0,i["default"])({dragSource:function(e,n){e===a&&(0,u["default"])(n,s)||(a=e,s=n,t())},dragPreview:function(e,t){e===l&&(0,u["default"])(t,p)||(l=e,p=t,n())}});return{receiveHandlerId:r,hooks:d}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=o;var a=e("./wrapConnectorHooks"),i=r(a),s=e("./areOptionsEqual"),u=r(s)},{"./areOptionsEqual":184,"./wrapConnectorHooks":200}],186:[function(e,t,n){(function(t){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e){Object.keys(e).forEach(function(t){(0,u["default"])(l.indexOf(t)>-1,'Expected the drag source specification to only have some of the following keys: %s. Instead received a specification with an unexpected "%s" key. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html',l.join(", "),t),(0,u["default"])("function"==typeof e[t],"Expected %s in the drag source specification to be a function. Instead received a specification with %s: %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html",t,t,e[t])}),p.forEach(function(t){(0,u["default"])("function"==typeof e[t],"Expected %s in the drag source specification to be a function. Instead received a specification with %s: %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html",t,t,e[t])});var t=function(){function t(e){o(this,t),this.monitor=e,this.props=null,this.component=null}return i(t,[{key:"receiveProps",value:function(e){this.props=e}},{key:"receiveComponent",value:function(e){this.component=e}},{key:"canDrag",value:function(){return!e.canDrag||e.canDrag(this.props,this.monitor)}},{key:"isDragging",value:function(t,n){return e.isDragging?e.isDragging(this.props,this.monitor):n===t.getSourceId()}},{key:"beginDrag",value:function(){var t=e.beginDrag(this.props,this.monitor,this.component);return t}},{key:"endDrag",value:function(){e.endDrag&&e.endDrag(this.props,this.monitor,this.component)}}]),t}();return function(e){return new t(e)}}Object.defineProperty(n,"__esModule",{value:!0});var i=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}}();n["default"]=a;var s=e("invariant"),u=r(s),c=e("lodash/isPlainObject"),l=(r(c),["canDrag","beginDrag","isDragging","endDrag"]),p=["beginDrag"]}).call(this,e("_process"))},{_process:162,invariant:59,"lodash/isPlainObject":152}],187:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e){return new p(e)}Object.defineProperty(n,"__esModule",{value:!0});var i=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}}();n["default"]=a;var s=e("invariant"),u=r(s),c=!1,l=!1,p=function(){function e(t){o(this,e),this.internalMonitor=t.getMonitor()}return i(e,[{key:"receiveHandlerId",value:function(e){this.sourceId=e}},{key:"canDrag",value:function(){(0,u["default"])(!c,"You may not call monitor.canDrag() inside your canDrag() implementation. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source-monitor.html");try{return c=!0,this.internalMonitor.canDragSource(this.sourceId)}finally{c=!1}}},{key:"isDragging",value:function(){(0,u["default"])(!l,"You may not call monitor.isDragging() inside your isDragging() implementation. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source-monitor.html");try{return l=!0,this.internalMonitor.isDraggingSource(this.sourceId)}finally{l=!1}}},{key:"getItemType",value:function(){return this.internalMonitor.getItemType()}},{key:"getItem",value:function(){return this.internalMonitor.getItem()}},{key:"getDropResult",value:function(){return this.internalMonitor.getDropResult()}},{key:"didDrop",value:function(){return this.internalMonitor.didDrop()}},{key:"getInitialClientOffset",value:function(){return this.internalMonitor.getInitialClientOffset()}},{key:"getInitialSourceClientOffset",value:function(){return this.internalMonitor.getInitialSourceClientOffset()}},{key:"getSourceClientOffset",value:function(){return this.internalMonitor.getSourceClientOffset()}},{key:"getClientOffset",value:function(){return this.internalMonitor.getClientOffset()}},{key:"getDifferenceFromInitialOffset",value:function(){return this.internalMonitor.getDifferenceFromInitialOffset()}}]),e}()},{invariant:59}],188:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){function t(){s&&(s(),s=null),r&&o&&(s=e.connectDropTarget(r,o,a))}function n(e){e!==r&&(r=e,t())}var r=void 0,o=void 0,a=void 0,s=void 0,c=(0,i["default"])({dropTarget:function(e,n){e===o&&(0,u["default"])(n,a)||(o=e,a=n,t())}});return{receiveHandlerId:n,hooks:c}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=o;var a=e("./wrapConnectorHooks"),i=r(a),s=e("./areOptionsEqual"),u=r(s)},{"./areOptionsEqual":184,"./wrapConnectorHooks":200}],189:[function(e,t,n){(function(t){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e){Object.keys(e).forEach(function(t){(0,u["default"])(l.indexOf(t)>-1,'Expected the drop target specification to only have some of the following keys: %s. Instead received a specification with an unexpected "%s" key. Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html',l.join(", "),t),(0,u["default"])("function"==typeof e[t],"Expected %s in the drop target specification to be a function. Instead received a specification with %s: %s. Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html",t,t,e[t])});var t=function(){function t(e){o(this,t),this.monitor=e,this.props=null,this.component=null}return i(t,[{key:"receiveProps",value:function(e){this.props=e}},{key:"receiveMonitor",value:function(e){this.monitor=e}},{key:"receiveComponent",value:function(e){this.component=e}},{key:"canDrop",value:function(){return!e.canDrop||e.canDrop(this.props,this.monitor)}},{key:"hover",value:function(){e.hover&&e.hover(this.props,this.monitor,this.component)}},{key:"drop",value:function(){if(e.drop){var t=e.drop(this.props,this.monitor,this.component);return t}}}]),t}();return function(e){return new t(e)}}Object.defineProperty(n,"__esModule",{value:!0});var i=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}}();n["default"]=a;var s=e("invariant"),u=r(s),c=e("lodash/isPlainObject"),l=(r(c),["canDrop","hover","drop"])}).call(this,e("_process"))},{_process:162,invariant:59,"lodash/isPlainObject":152}],190:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e){return new l(e)}Object.defineProperty(n,"__esModule",{value:!0});var i=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}}();n["default"]=a;var s=e("invariant"),u=r(s),c=!1,l=function(){function e(t){o(this,e),this.internalMonitor=t.getMonitor()}return i(e,[{key:"receiveHandlerId",value:function(e){this.targetId=e}},{key:"canDrop",value:function(){(0,u["default"])(!c,"You may not call monitor.canDrop() inside your canDrop() implementation. Read more: http://react-dnd.github.io/react-dnd/docs-drop-target-monitor.html");try{return c=!0,this.internalMonitor.canDropOnTarget(this.targetId)}finally{c=!1}}},{key:"isOver",value:function(e){return this.internalMonitor.isOverTarget(this.targetId,e)}},{key:"getItemType",value:function(){return this.internalMonitor.getItemType()}},{key:"getItem",value:function(){return this.internalMonitor.getItem()}},{key:"getDropResult",value:function(){return this.internalMonitor.getDropResult()}},{key:"didDrop",value:function(){return this.internalMonitor.didDrop()}},{key:"getInitialClientOffset",value:function(){return this.internalMonitor.getInitialClientOffset()}},{key:"getInitialSourceClientOffset",value:function(){return this.internalMonitor.getInitialSourceClientOffset()}},{key:"getSourceClientOffset",value:function(){return this.internalMonitor.getSourceClientOffset()}},{key:"getClientOffset",value:function(){return this.internalMonitor.getClientOffset()}},{key:"getDifferenceFromInitialOffset",value:function(){return this.internalMonitor.getDifferenceFromInitialOffset()}}]),e}()},{invariant:59}],191:[function(e,t,n){(function(t){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(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}function i(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)}function s(e){var t,n,r=e.DecoratedComponent,s=e.createHandler,d=e.createMonitor,g=e.createConnector,m=e.registerHandler,b=e.containerDisplayName,E=e.getType,w=e.collect,D=e.options,S=D.arePropsEqual,x=void 0===S?O["default"]:S,k=r.displayName||r.name||"Component",P=(n=t=function(e){function t(e,n){o(this,t);var r=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n));return r.handleChange=r.handleChange.bind(r),r.handleChildRef=r.handleChildRef.bind(r),(0,y["default"])("object"===c(r.context.dragDropManager),"Could not find the drag and drop manager in the context of %s. Make sure to wrap the top-level component of your app with DragDropContext. Read more: http://react-dnd.github.io/react-dnd/docs-troubleshooting.html#could-not-find-the-drag-and-drop-manager-in-the-context",k,k),r.manager=r.context.dragDropManager,r.handlerMonitor=d(r.manager),r.handlerConnector=g(r.manager.getBackend()),r.handler=s(r.handlerMonitor),r.disposable=new v.SerialDisposable,r.receiveProps(e),r.state=r.getCurrentState(),r.dispose(),r}return i(t,e),l(t,[{key:"getHandlerId",value:function(){return this.handlerId}},{key:"getDecoratedComponentInstance",value:function(){return this.decoratedComponentInstance}},{key:"shouldComponentUpdate",value:function(e,t){return!x(e,this.props)||!(0,C["default"])(t,this.state)}}]),l(t,[{key:"componentDidMount",value:function(){this.isCurrentlyMounted=!0,this.disposable=new v.SerialDisposable,this.currentType=null,this.receiveProps(this.props),this.handleChange()}},{key:"componentWillReceiveProps",value:function(e){x(e,this.props)||(this.receiveProps(e),this.handleChange())}},{key:"componentWillUnmount",value:function(){this.dispose(),this.isCurrentlyMounted=!1}},{key:"receiveProps",value:function(e){this.handler.receiveProps(e),this.receiveType(E(e))}},{key:"receiveType",value:function(e){if(e!==this.currentType){this.currentType=e;var t=m(e,this.handler,this.manager),n=t.handlerId,r=t.unregister;this.handlerId=n,this.handlerMonitor.receiveHandlerId(n),this.handlerConnector.receiveHandlerId(n);var o=this.manager.getMonitor(),a=o.subscribeToStateChange(this.handleChange,{handlerIds:[n]});this.disposable.setDisposable(new v.CompositeDisposable(new v.Disposable(a),new v.Disposable(r)))}}},{key:"handleChange",value:function(){if(this.isCurrentlyMounted){var e=this.getCurrentState();(0,C["default"])(e,this.state)||this.setState(e)}}},{key:"dispose",value:function(){this.disposable.dispose(),this.handlerConnector.receiveHandlerId(null)}},{key:"handleChildRef",value:function(e){this.decoratedComponentInstance=e,this.handler.receiveComponent(e)}},{key:"getCurrentState",value:function(){var e=w(this.handlerConnector.hooks,this.handlerMonitor);return e}},{key:"render",value:function(){return f["default"].createElement(r,u({},this.props,this.state,{ref:T(r)?this.handleChildRef:null}))}}]),t}(p.Component),t.DecoratedComponent=r,t.displayName=b+"("+k+")",t.contextTypes={dragDropManager:h["default"].object.isRequired},n);return(0,_["default"])(P,r)}Object.defineProperty(n,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l=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}}();n["default"]=s;var p=e("react"),f=r(p),d=e("prop-types"),h=r(d),v=e("disposables"),g=e("lodash/isPlainObject"),m=(r(g),e("invariant")),y=r(m),b=e("hoist-non-react-statics"),_=r(b),E=e("./utils/shallowEqual"),C=r(E),w=e("./utils/shallowEqualScalar"),O=r(w),T=function(e){return Boolean(e&&e.prototype&&"function"==typeof e.prototype.render)}}).call(this,e("_process"))},{"./utils/shallowEqual":198,"./utils/shallowEqualScalar":199,_process:162,disposables:16,"hoist-non-react-statics":58,invariant:59,"lodash/isPlainObject":152,"prop-types":167,react:353}],192:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0});var o=e("./DragDropContext");Object.defineProperty(n,"DragDropContext",{enumerable:!0,get:function(){return r(o)["default"]}});var a=e("./DragDropContextProvider");Object.defineProperty(n,"DragDropContextProvider",{enumerable:!0,get:function(){return r(a)["default"]}});var i=e("./DragLayer");Object.defineProperty(n,"DragLayer",{enumerable:!0,get:function(){return r(i)["default"]}});var s=e("./DragSource");Object.defineProperty(n,"DragSource",{enumerable:!0,get:function(){return r(s)["default"]}});var u=e("./DropTarget");Object.defineProperty(n,"DropTarget",{enumerable:!0,get:function(){return r(u)["default"]}})},{"./DragDropContext":179,"./DragDropContextProvider":180,"./DragLayer":181,"./DragSource":182,"./DropTarget":183}],193:[function(e,t,n){"use strict";function r(e,t,n){function r(){o.removeSource(a)}var o=n.getRegistry(),a=o.addSource(e,t);return{handlerId:a,unregister:r}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r},{}],194:[function(e,t,n){"use strict";function r(e,t,n){function r(){o.removeTarget(a)}var o=n.getRegistry(),a=o.addTarget(e,t);return{handlerId:a,unregister:r}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r},{}],195:[function(e,t,n){(function(e){"use strict";function t(e,t){}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=t}).call(this,e("_process"))},{_process:162}],196:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){var n=e.ref;return(0,i["default"])("string"!=typeof n,"Cannot connect React DnD to an element with an existing string ref. Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute"),n?(0,s.cloneElement)(e,{ref:function(e){t(e),n&&n(e)}}):(0,s.cloneElement)(e,{ref:t})}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=o;var a=e("invariant"),i=r(a),s=e("react")},{invariant:59,react:353}],197:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return"string"==typeof e||"symbol"===("undefined"==typeof e?"undefined":a(e))||t&&(0,s["default"])(e)&&e.every(function(e){return o(e,!1)})}Object.defineProperty(n,"__esModule",{value:!0});var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};n["default"]=o;var i=e("lodash/isArray"),s=r(i)},{"lodash/isArray":144}],198:[function(e,t,n){arguments[4][178][0].apply(n,arguments)},{dup:178}],199:[function(e,t,n){"use strict";function r(e,t){if(e===t)return!0;if("object"!==("undefined"==typeof e?"undefined":o(e))||null===e||"object"!==("undefined"==typeof t?"undefined":o(t))||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var a=Object.prototype.hasOwnProperty,i=0;i<n.length;i+=1){if(!a.call(t,n[i]))return!1;var s=e[n[i]],u=t[n[i]];if(s!==u||"object"===("undefined"==typeof s?"undefined":o(s))||"object"===("undefined"==typeof u?"undefined":o(u)))return!1}return!0}Object.defineProperty(n,"__esModule",{value:!0});var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};n["default"]=r},{}],200:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){if("string"!=typeof e.type){var t=e.type.displayName||e.type.name||"the component";throw new Error("Only native element nodes can now be passed to React DnD connectors."+("You can either wrap "+t+" into a <div>, or turn it into a ")+"drag source or a drop target itself.")}}function a(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!(0,s.isValidElement)(t)){var r=t;return void e(r,n)}var a=t;o(a);var i=n?function(t){return e(t,n)}:e;return(0,c["default"])(a,i)}}function i(e){var t={};return Object.keys(e).forEach(function(n){var r=e[n],o=a(r);t[n]=function(){return o}}),t}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=i;var s=e("react"),u=e("./utils/cloneWithRef"),c=r(u)},{"./utils/cloneWithRef":196,react:353}],201:[function(e,t,n){"use strict";t.exports=e("./lib/ReactDOM")},{"./lib/ReactDOM":231}],202:[function(e,t,n){"use strict";var r={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:{}};t.exports=r},{}],203:[function(e,t,n){"use strict";var r=e("./ReactDOMComponentTree"),o=e("fbjs/lib/focusNode"),a={focusDOMComponent:function(){o(r.getNodeFromInstance(this))}};t.exports=a},{"./ReactDOMComponentTree":234,"fbjs/lib/focusNode":44}],204:[function(e,t,n){"use strict";function r(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function o(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}function a(e){switch(e){case"topCompositionStart":return D.compositionStart;case"topCompositionEnd":return D.compositionEnd;case"topCompositionUpdate":return D.compositionUpdate}}function i(e,t){return"topKeyDown"===e&&t.keyCode===b}function s(e,t){switch(e){case"topKeyUp":return y.indexOf(t.keyCode)!==-1;case"topKeyDown":return t.keyCode!==b;case"topKeyPress":case"topMouseDown":case"topBlur":return!0;default:return!1}}function u(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}function c(e,t,n,r){var o,c;if(_?o=a(e):x?s(e,n)&&(o=D.compositionEnd):i(e,n)&&(o=D.compositionStart),!o)return null;w&&(x||o!==D.compositionStart?o===D.compositionEnd&&x&&(c=x.getData()):x=v.getPooled(r));var l=g.getPooled(o,t,n,r);if(c)l.data=c;else{var p=u(n);null!==p&&(l.data=p)}return d.accumulateTwoPhaseDispatches(l),l}function l(e,t){switch(e){case"topCompositionEnd":return u(t);case"topKeyPress":var n=t.which;return n!==O?null:(S=!0,T);case"topTextInput":var r=t.data;return r===T&&S?null:r;default:return null}}function p(e,t){if(x){if("topCompositionEnd"===e||!_&&s(e,t)){var n=x.getData();return v.release(x),x=null,n}return null}switch(e){case"topPaste":return null;case"topKeyPress":return t.which&&!o(t)?String.fromCharCode(t.which):null;case"topCompositionEnd":return w?null:t.data;default:return null}}function f(e,t,n,r){var o;if(o=C?l(e,n):p(e,n),!o)return null;var a=m.getPooled(D.beforeInput,t,n,r);return a.data=o,d.accumulateTwoPhaseDispatches(a),a}var d=e("./EventPropagators"),h=e("fbjs/lib/ExecutionEnvironment"),v=e("./FallbackCompositionState"),g=e("./SyntheticCompositionEvent"),m=e("./SyntheticInputEvent"),y=[9,13,27,32],b=229,_=h.canUseDOM&&"CompositionEvent"in window,E=null;h.canUseDOM&&"documentMode"in document&&(E=document.documentMode);var C=h.canUseDOM&&"TextEvent"in window&&!E&&!r(),w=h.canUseDOM&&(!_||E&&E>8&&E<=11),O=32,T=String.fromCharCode(O),D={
6
- 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"]}},S=!1,x=null,k={eventTypes:D,extractEvents:function(e,t,n,r){return[c(e,t,n,r),f(e,t,n,r)]}};t.exports=k},{"./EventPropagators":220,"./FallbackCompositionState":221,"./SyntheticCompositionEvent":285,"./SyntheticInputEvent":289,"fbjs/lib/ExecutionEnvironment":36}],205:[function(e,t,n){"use strict";function r(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var o={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},a=["Webkit","ms","Moz","O"];Object.keys(o).forEach(function(e){a.forEach(function(t){o[r(t,e)]=o[e]})});var i={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}},s={isUnitlessNumber:o,shorthandPropertyExpansions:i};t.exports=s},{}],206:[function(e,t,n){(function(n){"use strict";var r=e("./CSSProperty"),o=e("fbjs/lib/ExecutionEnvironment"),a=(e("./ReactInstrumentation"),e("fbjs/lib/camelizeStyleName"),e("./dangerousStyleValue")),i=e("fbjs/lib/hyphenateStyleName"),s=e("fbjs/lib/memoizeStringOnly"),u=(e("fbjs/lib/warning"),s(function(e){return i(e)})),c=!1,l="cssFloat";if(o.canUseDOM){var p=document.createElement("div").style;try{p.font=""}catch(f){c=!0}void 0===document.documentElement.style.cssFloat&&(l="styleFloat")}var d={createMarkupForStyles:function(e,t){var n="";for(var r in e)if(e.hasOwnProperty(r)){var o=0===r.indexOf("--"),i=e[r];null!=i&&(n+=u(r)+":",n+=a(r,i,t,o)+";")}return n||null},setValueForStyles:function(e,t,n){var o=e.style;for(var i in t)if(t.hasOwnProperty(i)){var s=0===i.indexOf("--"),u=a(i,t[i],n,s);if("float"!==i&&"cssFloat"!==i||(i=l),s)o.setProperty(i,u);else if(u)o[i]=u;else{var p=c&&r.shorthandPropertyExpansions[i];if(p)for(var f in p)o[f]="";else o[i]=""}}}};t.exports=d}).call(this,e("_process"))},{"./CSSProperty":205,"./ReactInstrumentation":263,"./dangerousStyleValue":302,_process:162,"fbjs/lib/ExecutionEnvironment":36,"fbjs/lib/camelizeStyleName":38,"fbjs/lib/hyphenateStyleName":49,"fbjs/lib/memoizeStringOnly":53,"fbjs/lib/warning":57}],207:[function(e,t,n){(function(n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=e("./reactProdInvariant"),a=e("./PooledClass"),i=(e("fbjs/lib/invariant"),function(){function e(t){r(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?o("24"):void 0,this._callbacks=null,this._contexts=null;for(var r=0;r<e.length;r++)e[r].call(t[r],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}());t.exports=a.addPoolingTo(i)}).call(this,e("_process"))},{"./PooledClass":225,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],208:[function(e,t,n){"use strict";function r(e,t,n){var r=D.getPooled(I.change,e,t,n);return r.type="change",C.accumulateTwoPhaseDispatches(r),r}function o(e){var t=e.nodeName&&e.nodeName.toLowerCase();return"select"===t||"input"===t&&"file"===e.type}function a(e){var t=r(M,e,x(e));T.batchedUpdates(i,t)}function i(e){E.enqueueEvents(e),E.processEventQueue(!1)}function s(e,t){R=e,M=t,R.attachEvent("onchange",a)}function u(){R&&(R.detachEvent("onchange",a),R=null,M=null)}function c(e,t){var n=S.updateValueIfChanged(e),r=t.simulated===!0&&A._allowSimulatedPassThrough;if(n||r)return e}function l(e,t){if("topChange"===e)return t}function p(e,t,n){"topFocus"===e?(u(),s(t,n)):"topBlur"===e&&u()}function f(e,t){R=e,M=t,R.attachEvent("onpropertychange",h)}function d(){R&&(R.detachEvent("onpropertychange",h),R=null,M=null)}function h(e){"value"===e.propertyName&&c(M,e)&&a(e)}function v(e,t,n){"topFocus"===e?(d(),f(t,n)):"topBlur"===e&&d()}function g(e,t,n){if("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)return c(M,n)}function m(e){var t=e.nodeName;return t&&"input"===t.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}function y(e,t,n){if("topClick"===e)return c(t,n)}function b(e,t,n){if("topInput"===e||"topChange"===e)return c(t,n)}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)}}}var E=e("./EventPluginHub"),C=e("./EventPropagators"),w=e("fbjs/lib/ExecutionEnvironment"),O=e("./ReactDOMComponentTree"),T=e("./ReactUpdates"),D=e("./SyntheticEvent"),S=e("./inputValueTracking"),x=e("./getEventTarget"),k=e("./isEventSupported"),P=e("./isTextInputElement"),I={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}},R=null,M=null,j=!1;w.canUseDOM&&(j=k("change")&&(!document.documentMode||document.documentMode>8));var N=!1;w.canUseDOM&&(N=k("input")&&(!document.documentMode||document.documentMode>9));var A={eventTypes:I,_allowSimulatedPassThrough:!0,_isInputEventSupported:N,extractEvents:function(e,t,n,a){var i,s,u=t?O.getNodeFromInstance(t):window;if(o(u)?j?i=l:s=p:P(u)?N?i=b:(i=g,s=v):m(u)&&(i=y),i){var c=i(e,t,n);if(c){var f=r(c,n,a);return f}}s&&s(e,u,t),"topBlur"===e&&_(t,u)}};t.exports=A},{"./EventPluginHub":217,"./EventPropagators":220,"./ReactDOMComponentTree":234,"./ReactUpdates":278,"./SyntheticEvent":287,"./getEventTarget":310,"./inputValueTracking":316,"./isEventSupported":318,"./isTextInputElement":319,"fbjs/lib/ExecutionEnvironment":36}],209:[function(e,t,n){(function(n){"use strict";function r(e,t){return Array.isArray(t)&&(t=t[1]),t?t.nextSibling:e.firstChild}function o(e,t,n){l.insertTreeBefore(e,t,n)}function a(e,t,n){Array.isArray(t)?s(e,t[0],t[1],n):v(e,t,n)}function i(e,t){if(Array.isArray(t)){var n=t[1];t=t[0],u(e,t,n),e.removeChild(n)}e.removeChild(t)}function s(e,t,n,r){for(var o=t;;){var a=o.nextSibling;if(v(e,o,r),o===n)break;o=a}}function u(e,t,n){for(;;){var r=t.nextSibling;if(r===n)break;e.removeChild(r)}}function c(e,t,n){var r=e.parentNode,o=e.nextSibling;o===t?n&&v(r,document.createTextNode(n),o):n?(h(o,n),u(r,o,t)):u(r,e,t)}var l=e("./DOMLazyTree"),p=e("./Danger"),f=(e("./ReactDOMComponentTree"),e("./ReactInstrumentation"),e("./createMicrosoftUnsafeLocalFunction")),d=e("./setInnerHTML"),h=e("./setTextContent"),v=f(function(e,t,n){e.insertBefore(t,n)}),g=p.dangerouslyReplaceNodeWithMarkup,m={dangerouslyReplaceNodeWithMarkup:g,replaceDelimitedText:c,processUpdates:function(e,t){for(var n=0;n<t.length;n++){var s=t[n];switch(s.type){case"INSERT_MARKUP":o(e,s.content,r(e,s.afterNode));break;case"MOVE_EXISTING":a(e,s.fromNode,r(e,s.afterNode));break;case"SET_MARKUP":d(e,s.content);break;case"TEXT_CONTENT":h(e,s.content);break;case"REMOVE_NODE":i(e,s.fromNode)}}}};t.exports=m}).call(this,e("_process"))},{"./DOMLazyTree":210,"./Danger":214,"./ReactDOMComponentTree":234,"./ReactInstrumentation":263,"./createMicrosoftUnsafeLocalFunction":301,"./setInnerHTML":323,"./setTextContent":324,_process:162}],210:[function(e,t,n){"use strict";function r(e){if(g){var t=e.node,n=e.children;if(n.length)for(var r=0;r<n.length;r++)m(t,n[r],null);else null!=e.html?p(t,e.html):null!=e.text&&d(t,e.text)}}function o(e,t){e.parentNode.replaceChild(t.node,e),r(t)}function a(e,t){g?e.children.push(t):e.node.appendChild(t.node)}function i(e,t){g?e.html=t:p(e.node,t)}function s(e,t){g?e.text=t:d(e.node,t)}function u(){return this.node.nodeName}function c(e){return{node:e,children:[],html:null,text:null,toString:u}}var l=e("./DOMNamespaces"),p=e("./setInnerHTML"),f=e("./createMicrosoftUnsafeLocalFunction"),d=e("./setTextContent"),h=1,v=11,g="undefined"!=typeof document&&"number"==typeof document.documentMode||"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent&&/\bEdge\/\d/.test(navigator.userAgent),m=f(function(e,t,n){t.node.nodeType===v||t.node.nodeType===h&&"object"===t.node.nodeName.toLowerCase()&&(null==t.node.namespaceURI||t.node.namespaceURI===l.html)?(r(t),e.insertBefore(t.node,n)):(e.insertBefore(t.node,n),r(t))});c.insertTreeBefore=m,c.replaceChildWithTree=o,c.queueChild=a,c.queueHTML=i,c.queueText=s,t.exports=c},{"./DOMNamespaces":211,"./createMicrosoftUnsafeLocalFunction":301,"./setInnerHTML":323,"./setTextContent":324}],211:[function(e,t,n){"use strict";var r={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};t.exports=r},{}],212:[function(e,t,n){(function(n){"use strict";function r(e,t){return(e&t)===t}var o=e("./reactProdInvariant"),a=(e("fbjs/lib/invariant"),{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=a,n=e.Properties||{},i=e.DOMAttributeNamespaces||{},u=e.DOMAttributeNames||{},c=e.DOMPropertyNames||{},l=e.DOMMutationMethods||{};e.isCustomAttribute&&s._isCustomAttributeFunctions.push(e.isCustomAttribute);for(var p in n){s.properties.hasOwnProperty(p)?o("48",p):void 0;var f=p.toLowerCase(),d=n[p],h={attributeName:f,attributeNamespace:null,propertyName:p,mutationMethod:null,mustUseProperty:r(d,t.MUST_USE_PROPERTY),hasBooleanValue:r(d,t.HAS_BOOLEAN_VALUE),hasNumericValue:r(d,t.HAS_NUMERIC_VALUE),hasPositiveNumericValue:r(d,t.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:r(d,t.HAS_OVERLOADED_BOOLEAN_VALUE)};if(h.hasBooleanValue+h.hasNumericValue+h.hasOverloadedBooleanValue<=1?void 0:o("50",p),u.hasOwnProperty(p)){var v=u[p];h.attributeName=v}i.hasOwnProperty(p)&&(h.attributeNamespace=i[p]),c.hasOwnProperty(p)&&(h.propertyName=c[p]),l.hasOwnProperty(p)&&(h.mutationMethod=l[p]),s.properties[p]=h}}}),i=":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:i,ATTRIBUTE_NAME_CHAR:i+"\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",properties:{},getPossibleStandardName:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<s._isCustomAttributeFunctions.length;t++){var n=s._isCustomAttributeFunctions[t];if(n(e))return!0}return!1},injection:a};t.exports=s}).call(this,e("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],213:[function(e,t,n){(function(n){"use strict";function r(e){return!!c.hasOwnProperty(e)||!u.hasOwnProperty(e)&&(s.test(e)?(c[e]=!0,!0):(u[e]=!0,!1))}function o(e,t){return null==t||e.hasBooleanValue&&!t||e.hasNumericValue&&isNaN(t)||e.hasPositiveNumericValue&&t<1||e.hasOverloadedBooleanValue&&t===!1}var a=e("./DOMProperty"),i=(e("./ReactDOMComponentTree"),e("./ReactInstrumentation"),e("./quoteAttributeValueForBrowser")),s=(e("fbjs/lib/warning"),new RegExp("^["+a.ATTRIBUTE_NAME_START_CHAR+"]["+a.ATTRIBUTE_NAME_CHAR+"]*$")),u={},c={},l={createMarkupForID:function(e){return a.ID_ATTRIBUTE_NAME+"="+i(e)},setAttributeForID:function(e,t){e.setAttribute(a.ID_ATTRIBUTE_NAME,t)},createMarkupForRoot:function(){return a.ROOT_ATTRIBUTE_NAME+'=""'},setAttributeForRoot:function(e){e.setAttribute(a.ROOT_ATTRIBUTE_NAME,"")},createMarkupForProperty:function(e,t){var n=a.properties.hasOwnProperty(e)?a.properties[e]:null;if(n){if(o(n,t))return"";var r=n.attributeName;return n.hasBooleanValue||n.hasOverloadedBooleanValue&&t===!0?r+'=""':r+"="+i(t)}return a.isCustomAttribute(e)?null==t?"":e+"="+i(t):null},createMarkupForCustomAttribute:function(e,t){return r(e)&&null!=t?e+"="+i(t):""},setValueForProperty:function(e,t,n){var r=a.properties.hasOwnProperty(t)?a.properties[t]:null;if(r){var i=r.mutationMethod;if(i)i(e,n);else{if(o(r,n))return void this.deleteValueForProperty(e,t);if(r.mustUseProperty)e[r.propertyName]=n;else{var s=r.attributeName,u=r.attributeNamespace;u?e.setAttributeNS(u,s,""+n):r.hasBooleanValue||r.hasOverloadedBooleanValue&&n===!0?e.setAttribute(s,""):e.setAttribute(s,""+n)}}}else if(a.isCustomAttribute(t))return void l.setValueForAttribute(e,t,n)},setValueForAttribute:function(e,t,n){if(r(t)){null==n?e.removeAttribute(t):e.setAttribute(t,""+n)}},deleteValueForAttribute:function(e,t){e.removeAttribute(t)},deleteValueForProperty:function(e,t){var n=a.properties.hasOwnProperty(t)?a.properties[t]:null;if(n){var r=n.mutationMethod;if(r)r(e,void 0);else if(n.mustUseProperty){var o=n.propertyName;n.hasBooleanValue?e[o]=!1:e[o]=""}else e.removeAttribute(n.attributeName)}else a.isCustomAttribute(t)&&e.removeAttribute(t)}};t.exports=l}).call(this,e("_process"))},{"./DOMProperty":212,"./ReactDOMComponentTree":234,"./ReactInstrumentation":263,"./quoteAttributeValueForBrowser":320,_process:162,"fbjs/lib/warning":57}],214:[function(e,t,n){(function(n){"use strict";var r=e("./reactProdInvariant"),o=e("./DOMLazyTree"),a=e("fbjs/lib/ExecutionEnvironment"),i=e("fbjs/lib/createNodesFromMarkup"),s=e("fbjs/lib/emptyFunction"),u=(e("fbjs/lib/invariant"),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(a.canUseDOM?void 0:r("56"),t?void 0:r("57"),"HTML"===e.nodeName?r("58"):void 0,"string"==typeof t){var n=i(t,s)[0];e.parentNode.replaceChild(n,e)}else o.replaceChildWithTree(e,t)}});t.exports=u}).call(this,e("_process"))},{"./DOMLazyTree":210,"./reactProdInvariant":321,_process:162,"fbjs/lib/ExecutionEnvironment":36,"fbjs/lib/createNodesFromMarkup":41,"fbjs/lib/emptyFunction":42,"fbjs/lib/invariant":50}],215:[function(e,t,n){"use strict";var r=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"];t.exports=r},{}],216:[function(e,t,n){"use strict";var r=e("./EventPropagators"),o=e("./ReactDOMComponentTree"),a=e("./SyntheticMouseEvent"),i={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},s={eventTypes:i,extractEvents:function(e,t,n,s){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var u;if(s.window===s)u=s;else{var c=s.ownerDocument;u=c?c.defaultView||c.parentWindow:window}var l,p;if("topMouseOut"===e){l=t;var f=n.relatedTarget||n.toElement;p=f?o.getClosestInstanceFromNode(f):null}else l=null,p=t;if(l===p)return null;var d=null==l?u:o.getNodeFromInstance(l),h=null==p?u:o.getNodeFromInstance(p),v=a.getPooled(i.mouseLeave,l,n,s);v.type="mouseleave",v.target=d,v.relatedTarget=h;var g=a.getPooled(i.mouseEnter,p,n,s);return g.type="mouseenter",g.target=h,g.relatedTarget=d,r.accumulateEnterLeaveDispatches(v,g,l,p),[v,g]}};t.exports=s},{"./EventPropagators":220,"./ReactDOMComponentTree":234,"./SyntheticMouseEvent":291}],217:[function(e,t,n){(function(n){"use strict";function r(e){return"button"===e||"input"===e||"select"===e||"textarea"===e}function o(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));default:return!1}}var a=e("./reactProdInvariant"),i=e("./EventPluginRegistry"),s=e("./EventPluginUtils"),u=e("./ReactErrorUtils"),c=e("./accumulateInto"),l=e("./forEachAccumulated"),p=(e("fbjs/lib/invariant"),{}),f=null,d=function(e,t){e&&(s.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e))},h=function(e){return d(e,!0)},v=function(e){return d(e,!1)},g=function(e){return"."+e._rootNodeID},m={injection:{injectEventPluginOrder:i.injectEventPluginOrder,injectEventPluginsByName:i.injectEventPluginsByName},putListener:function(e,t,n){"function"!=typeof n?a("94",t,typeof n):void 0;var r=g(e),o=p[t]||(p[t]={});o[r]=n;var s=i.registrationNameModules[t];s&&s.didPutListener&&s.didPutListener(e,t,n)},getListener:function(e,t){var n=p[t];if(o(t,e._currentElement.type,e._currentElement.props))return null;var r=g(e);return n&&n[r]},deleteListener:function(e,t){var n=i.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t);var r=p[t];if(r){var o=g(e);delete r[o]}},deleteAllListeners:function(e){var t=g(e);for(var n in p)if(p.hasOwnProperty(n)&&p[n][t]){var r=i.registrationNameModules[n];r&&r.willDeleteListener&&r.willDeleteListener(e,n),delete p[n][t]}},extractEvents:function(e,t,n,r){for(var o,a=i.plugins,s=0;s<a.length;s++){var u=a[s];if(u){var l=u.extractEvents(e,t,n,r);l&&(o=c(o,l))}}return o},enqueueEvents:function(e){e&&(f=c(f,e))},processEventQueue:function(e){var t=f;f=null,e?l(t,h):l(t,v),f?a("95"):void 0,u.rethrowCaughtError()},__purge:function(){p={}},__getListenerBank:function(){return p}};t.exports=m}).call(this,e("_process"))},{"./EventPluginRegistry":218,"./EventPluginUtils":219,"./ReactErrorUtils":254,"./accumulateInto":298,"./forEachAccumulated":306,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],218:[function(e,t,n){(function(n){"use strict";function r(){if(s)for(var e in u){var t=u[e],n=s.indexOf(e);if(n>-1?void 0:i("96",e),!c.plugins[n]){t.extractEvents?void 0:i("97",e),c.plugins[n]=t;var r=t.eventTypes;for(var a in r)o(r[a],t,a)?void 0:i("98",a,e)}}}function o(e,t,n){c.eventNameDispatchConfigs.hasOwnProperty(n)?i("99",n):void 0,c.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var s=r[o];a(s,t,n)}return!0}return!!e.registrationName&&(a(e.registrationName,t,n),!0)}function a(e,t,n){c.registrationNameModules[e]?i("100",e):void 0,c.registrationNameModules[e]=t,c.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var i=e("./reactProdInvariant"),s=(e("fbjs/lib/invariant"),null),u={},c={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){s?i("101"):void 0,s=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];u.hasOwnProperty(n)&&u[n]===o||(u[n]?i("102",n):void 0,u[n]=o,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return c.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var o=c.registrationNameModules[n[r]];if(o)return o}}return null},_resetEventPlugins:function(){s=null;for(var e in u)u.hasOwnProperty(e)&&delete u[e];c.plugins.length=0;var t=c.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=c.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};t.exports=c}).call(this,e("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],219:[function(e,t,n){(function(n){"use strict";function r(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e}function o(e){return"topMouseMove"===e||"topTouchMove"===e}function a(e){return"topMouseDown"===e||"topTouchStart"===e}function i(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=m.getNodeFromInstance(r),t?v.invokeGuardedCallbackWithCatch(o,n,e):v.invokeGuardedCallback(o,n,e),e.currentTarget=null}function s(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o<n.length&&!e.isPropagationStopped();o++)i(e,t,n[o],r[o]);else n&&i(e,t,n,r);e._dispatchListeners=null,e._dispatchInstances=null}function u(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}function c(e){var t=u(e);return e._dispatchInstances=null,e._dispatchListeners=null,t}function l(e){var t=e._dispatchListeners,n=e._dispatchInstances;Array.isArray(t)?h("103"):void 0,e.currentTarget=t?m.getNodeFromInstance(n):null;var r=t?t(e):null;return e.currentTarget=null,e._dispatchListeners=null,e._dispatchInstances=null,r}function p(e){return!!e._dispatchListeners}var f,d,h=e("./reactProdInvariant"),v=e("./ReactErrorUtils"),g=(e("fbjs/lib/invariant"),e("fbjs/lib/warning"),{injectComponentTree:function(e){f=e},injectTreeTraversal:function(e){d=e}}),m={isEndish:r,isMoveish:o,isStartish:a,executeDirectDispatch:l,executeDispatchesInOrder:s,executeDispatchesInOrderStopAtTrue:c,hasDispatches:p,getInstanceFromNode:function(e){return f.getInstanceFromNode(e)},getNodeFromInstance:function(e){return f.getNodeFromInstance(e)},isAncestor:function(e,t){return d.isAncestor(e,t)},getLowestCommonAncestor:function(e,t){return d.getLowestCommonAncestor(e,t)},getParentInstance:function(e){return d.getParentInstance(e)},traverseTwoPhase:function(e,t,n){return d.traverseTwoPhase(e,t,n)},traverseEnterLeave:function(e,t,n,r,o){return d.traverseEnterLeave(e,t,n,r,o)},injection:g};t.exports=m}).call(this,e("_process"))},{"./ReactErrorUtils":254,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57}],220:[function(e,t,n){(function(n){"use strict";function r(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return m(e,r)}function o(e,t,n){var o=r(e,n,t);o&&(n._dispatchListeners=v(n._dispatchListeners,o),n._dispatchInstances=v(n._dispatchInstances,e))}function a(e){e&&e.dispatchConfig.phasedRegistrationNames&&h.traverseTwoPhase(e._targetInst,o,e)}function i(e){if(e&&e.dispatchConfig.phasedRegistrationNames){var t=e._targetInst,n=t?h.getParentInstance(t):null;h.traverseTwoPhase(n,o,e)}}function s(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,o=m(e,r);o&&(n._dispatchListeners=v(n._dispatchListeners,o),n._dispatchInstances=v(n._dispatchInstances,e))}}function u(e){e&&e.dispatchConfig.registrationName&&s(e._targetInst,null,e)}function c(e){g(e,a)}function l(e){g(e,i)}function p(e,t,n,r){h.traverseEnterLeave(n,r,s,e,t)}function f(e){g(e,u)}var d=e("./EventPluginHub"),h=e("./EventPluginUtils"),v=e("./accumulateInto"),g=e("./forEachAccumulated"),m=(e("fbjs/lib/warning"),d.getListener),y={accumulateTwoPhaseDispatches:c,accumulateTwoPhaseDispatchesSkipTarget:l,accumulateDirectDispatches:f,accumulateEnterLeaveDispatches:p};t.exports=y}).call(this,e("_process"))},{"./EventPluginHub":217,"./EventPluginUtils":219,"./accumulateInto":298,"./forEachAccumulated":306,_process:162,"fbjs/lib/warning":57}],221:[function(e,t,n){"use strict";function r(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}var o=e("object-assign"),a=e("./PooledClass"),i=e("./getTextContentAccessor");o(r.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(),a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);var s=t>1?1-t:void 0;return this._fallbackText=o.slice(e,s),this._fallbackText}}),a.addPoolingTo(r),t.exports=r},{"./PooledClass":225,"./getTextContentAccessor":314,"object-assign":161}],222:[function(e,t,n){"use strict";var r=e("./DOMProperty"),o=r.injection.MUST_USE_PROPERTY,a=r.injection.HAS_BOOLEAN_VALUE,i=r.injection.HAS_NUMERIC_VALUE,s=r.injection.HAS_POSITIVE_NUMERIC_VALUE,u=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,c={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:a,allowTransparency:0,alt:0,as:0,async:a,autoComplete:0,autoPlay:a,capture:a,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|a,cite:0,classID:0,className:0,cols:s,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:a,controlsList:0,coords:0,crossOrigin:0,data:0,dateTime:0,"default":a,defer:a,dir:0,disabled:a,download:u,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:a,formTarget:0,frameBorder:0,headers:0,height:0,hidden:a,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:a,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|a,muted:o|a,name:0,nonce:0,noValidate:a,open:a,optimum:0,pattern:0,placeholder:0,playsInline:a,poster:0,preload:0,profile:0,radioGroup:0,readOnly:a,referrerPolicy:0,rel:0,required:a,reversed:a,role:0,rows:s,rowSpan:i,sandbox:0,scope:0,scoped:a,scrolling:0,seamless:a,selected:o|a,shape:0,size:s,sizes:0,span:s,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:i,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:a,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){return null==t?e.removeAttribute("value"):void("number"!==e.type||e.hasAttribute("value")===!1?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t))}}};t.exports=c},{"./DOMProperty":212}],223:[function(e,t,n){"use strict";function r(e){var t=/[=:]/g,n={"=":"=0",":":"=2"},r=(""+e).replace(t,function(e){return n[e]});return"$"+r}function o(e){var t=/(=0|=2)/g,n={"=0":"=","=2":":"},r="."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1);return(""+r).replace(t,function(e){return n[e]})}var a={escape:r,unescape:o};t.exports=a},{}],224:[function(e,t,n){(function(n){"use strict";function r(e){null!=e.checkedLink&&null!=e.valueLink?s("87"):void 0}function o(e){r(e),null!=e.value||null!=e.onChange?s("88"):void 0}function a(e){r(e),null!=e.checked||null!=e.onChange?s("89"):void 0}function i(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}var s=e("./reactProdInvariant"),u=e("./ReactPropTypesSecret"),c=e("prop-types/factory"),l=e("react/lib/React"),p=c(l.isValidElement),f=(e("fbjs/lib/invariant"),e("fbjs/lib/warning"),{button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0}),d={value:function(e,t,n){return!e[t]||f[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:p.func},h={},v={checkPropTypes:function(e,t,n){for(var r in d){if(d.hasOwnProperty(r))var o=d[r](t,r,e,"prop",null,u);if(o instanceof Error&&!(o.message in h)){h[o.message]=!0;i(n)}}},getValue:function(e){return e.valueLink?(o(e),e.valueLink.value):e.value},getChecked:function(e){return e.checkedLink?(a(e),e.checkedLink.value):e.checked},executeOnChange:function(e,t){return e.valueLink?(o(e),e.valueLink.requestChange(t.target.value)):e.checkedLink?(a(e),e.checkedLink.requestChange(t.target.checked)):e.onChange?e.onChange.call(void 0,t):void 0}};t.exports=v}).call(this,e("_process"))},{"./ReactPropTypesSecret":271,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"prop-types/factory":164,"react/lib/React":330}],225:[function(e,t,n){(function(n){"use strict";var r=e("./reactProdInvariant"),o=(e("fbjs/lib/invariant"),function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)}),a=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},i=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},s=function(e,t,n,r){var o=this;if(o.instancePool.length){var a=o.instancePool.pop();return o.call(a,e,t,n,r),a}return new o(e,t,n,r)},u=function(e){var t=this;e instanceof t?void 0:r("25"),e.destructor(),t.instancePool.length<t.poolSize&&t.instancePool.push(e)},c=10,l=o,p=function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||l,n.poolSize||(n.poolSize=c),n.release=u,n},f={addPoolingTo:p,oneArgumentPooler:o,twoArgumentPooler:a,threeArgumentPooler:i,fourArgumentPooler:s};t.exports=f}).call(this,e("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],226:[function(e,t,n){"use strict";function r(e){return Object.prototype.hasOwnProperty.call(e,v)||(e[v]=d++,p[e[v]]={}),p[e[v]]}var o,a=e("object-assign"),i=e("./EventPluginRegistry"),s=e("./ReactEventEmitterMixin"),u=e("./ViewportMetrics"),c=e("./getVendorPrefixedEventName"),l=e("./isEventSupported"),p={},f=!1,d=0,h={topAbort:"abort",topAnimationEnd:c("animationend")||"animationend",topAnimationIteration:c("animationiteration")||"animationiteration",topAnimationStart:c("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",
7
- 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:c("transitionend")||"transitionend",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},v="_reactListenersID"+String(Math.random()).slice(2),g=a({},s,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(g.handleTopLevel),g.ReactEventListener=e}},setEnabled:function(e){g.ReactEventListener&&g.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!g.ReactEventListener||!g.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,o=r(n),a=i.registrationNameDependencies[e],s=0;s<a.length;s++){var u=a[s];o.hasOwnProperty(u)&&o[u]||("topWheel"===u?l("wheel")?g.ReactEventListener.trapBubbledEvent("topWheel","wheel",n):l("mousewheel")?g.ReactEventListener.trapBubbledEvent("topWheel","mousewheel",n):g.ReactEventListener.trapBubbledEvent("topWheel","DOMMouseScroll",n):"topScroll"===u?l("scroll",!0)?g.ReactEventListener.trapCapturedEvent("topScroll","scroll",n):g.ReactEventListener.trapBubbledEvent("topScroll","scroll",g.ReactEventListener.WINDOW_HANDLE):"topFocus"===u||"topBlur"===u?(l("focus",!0)?(g.ReactEventListener.trapCapturedEvent("topFocus","focus",n),g.ReactEventListener.trapCapturedEvent("topBlur","blur",n)):l("focusin")&&(g.ReactEventListener.trapBubbledEvent("topFocus","focusin",n),g.ReactEventListener.trapBubbledEvent("topBlur","focusout",n)),o.topBlur=!0,o.topFocus=!0):h.hasOwnProperty(u)&&g.ReactEventListener.trapBubbledEvent(u,h[u],n),o[u]=!0)}},trapBubbledEvent:function(e,t,n){return g.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return g.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===o&&(o=g.supportsEventPageXY()),!o&&!f){var e=u.refreshScrollValues;g.ReactEventListener.monitorScrollValue(e),f=!0}}});t.exports=g},{"./EventPluginRegistry":218,"./ReactEventEmitterMixin":255,"./ViewportMetrics":297,"./getVendorPrefixedEventName":315,"./isEventSupported":318,"object-assign":161}],227:[function(e,t,n){(function(n){"use strict";function r(e,t,n,r){var o=void 0===e[n];null!=t&&o&&(e[n]=a(t,!0))}var o=e("./ReactReconciler"),a=e("./instantiateReactComponent"),i=(e("./KeyEscapeUtils"),e("./shouldUpdateReactComponent")),s=e("./traverseAllChildren");e("fbjs/lib/warning");"undefined"!=typeof n&&n.env,1;var u={instantiateChildren:function(e,t,n,o){if(null==e)return null;var a={};return s(e,r,a),a},updateChildren:function(e,t,n,r,s,u,c,l,p){if(t||e){var f,d;for(f in t)if(t.hasOwnProperty(f)){d=e&&e[f];var h=d&&d._currentElement,v=t[f];if(null!=d&&i(h,v))o.receiveComponent(d,v,s,l),t[f]=d;else{d&&(r[f]=o.getHostNode(d),o.unmountComponent(d,!1));var g=a(v,!0);t[f]=g;var m=o.mountComponent(g,s,u,c,l,p);n.push(m)}}for(f in e)!e.hasOwnProperty(f)||t&&t.hasOwnProperty(f)||(d=e[f],r[f]=o.getHostNode(d),o.unmountComponent(d,!1))}},unmountChildren:function(e,t){for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];o.unmountComponent(r,t)}}};t.exports=u}).call(this,e("_process"))},{"./KeyEscapeUtils":223,"./ReactReconciler":273,"./instantiateReactComponent":317,"./shouldUpdateReactComponent":325,"./traverseAllChildren":326,_process:162,"fbjs/lib/warning":57,"react/lib/ReactComponentTreeHook":333}],228:[function(e,t,n){"use strict";var r=e("./DOMChildrenOperations"),o=e("./ReactDOMIDOperations"),a={processChildrenUpdates:o.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};t.exports=a},{"./DOMChildrenOperations":209,"./ReactDOMIDOperations":238}],229:[function(e,t,n){(function(n){"use strict";var r=e("./reactProdInvariant"),o=(e("fbjs/lib/invariant"),!1),a={replaceNodeWithMarkup:null,processChildrenUpdates:null,injection:{injectEnvironment:function(e){o?r("104"):void 0,a.replaceNodeWithMarkup=e.replaceNodeWithMarkup,a.processChildrenUpdates=e.processChildrenUpdates,o=!0}}};t.exports=a}).call(this,e("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],230:[function(e,t,n){(function(n){"use strict";function r(e){}function o(e,t){}function a(e){return!(!e.prototype||!e.prototype.isReactComponent)}function i(e){return!(!e.prototype||!e.prototype.isPureReactComponent)}var s=e("./reactProdInvariant"),u=e("object-assign"),c=e("react/lib/React"),l=e("./ReactComponentEnvironment"),p=e("react/lib/ReactCurrentOwner"),f=e("./ReactErrorUtils"),d=e("./ReactInstanceMap"),h=(e("./ReactInstrumentation"),e("./ReactNodeTypes")),v=e("./ReactReconciler"),g=e("fbjs/lib/emptyObject"),m=(e("fbjs/lib/invariant"),e("fbjs/lib/shallowEqual")),y=e("./shouldUpdateReactComponent"),b=(e("fbjs/lib/warning"),{ImpureClass:0,PureClass:1,StatelessFunctional:2});r.prototype.render=function(){var e=d.get(this)._currentElement.type,t=e(this.props,this.context,this.updater);return o(e,t),t};var _=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,u){this._context=u,this._mountOrder=_++,this._hostParent=t,this._hostContainerInfo=n;var l,p=this._currentElement.props,f=this._processContext(u),h=this._currentElement.type,v=e.getUpdateQueue(),m=a(h),y=this._constructComponent(m,p,f,v);m||null!=y&&null!=y.render?i(h)?this._compositeType=b.PureClass:this._compositeType=b.ImpureClass:(l=y,o(h,l),null===y||y===!1||c.isValidElement(y)?void 0:s("105",h.displayName||h.name||"Component"),y=new r(h),this._compositeType=b.StatelessFunctional);y.props=p,y.context=f,y.refs=g,y.updater=v,this._instance=y,d.set(y,this);var E=y.state;void 0===E&&(y.state=E=null),"object"!=typeof E||Array.isArray(E)?s("106",this.getName()||"ReactCompositeComponent"):void 0,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1;var C;return C=y.unstable_handleError?this.performInitialMountWithErrorHandling(l,t,n,e,u):this.performInitialMount(l,t,n,e,u),y.componentDidMount&&e.getReactMountReady().enqueue(y.componentDidMount,y),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 a,i=r.checkpoint();try{a=this.performInitialMount(e,t,n,r,o)}catch(s){r.rollback(i),this._instance.unstable_handleError(s),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),i=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(i),a=this.performInitialMount(e,t,n,r,o)}return a},performInitialMount:function(e,t,n,r,o){var a=this._instance,i=0;a.componentWillMount&&(a.componentWillMount(),this._pendingStateQueue&&(a.state=this._processPendingState(a.props,a.context))),void 0===e&&(e=this._renderValidatedComponent());var s=h.getType(e);this._renderedNodeType=s;var u=this._instantiateReactComponent(e,s!==h.EMPTY);this._renderedComponent=u;var c=v.mountComponent(u,r,t,n,this._processChildContext(o),i);return c},getHostNode:function(){return v.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()";f.invokeGuardedCallback(n,t.componentWillUnmount.bind(t))}else t.componentWillUnmount();this._renderedComponent&&(v.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,d.remove(t)}},_maskContext:function(e){var t=this._currentElement.type,n=t.contextTypes;if(!n)return g;var r={};for(var o in n)r[o]=e[o];return r},_processContext:function(e){var t=this._maskContext(e);return t},_processChildContext:function(e){var t,n=this._currentElement.type,r=this._instance;if(r.getChildContext&&(t=r.getChildContext()),t){"object"!=typeof n.childContextTypes?s("107",this.getName()||"ReactCompositeComponent"):void 0;for(var o in t)o in n.childContextTypes?void 0:s("108",this.getName()||"ReactCompositeComponent",o);return u({},e,t)}return e},_checkContextTypes:function(e,t,n){},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?v.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,r,o){var a=this._instance;null==a?s("136",this.getName()||"ReactCompositeComponent"):void 0;var i,u=!1;this._context===o?i=a.context:(i=this._processContext(o),u=!0);var c=t.props,l=n.props;t!==n&&(u=!0),u&&a.componentWillReceiveProps&&a.componentWillReceiveProps(l,i);var p=this._processPendingState(l,i),f=!0;this._pendingForceUpdate||(a.shouldComponentUpdate?f=a.shouldComponentUpdate(l,p,i):this._compositeType===b.PureClass&&(f=!m(c,l)||!m(a.state,p))),this._updateBatchNumber=null,f?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,l,p,i,e,o)):(this._currentElement=n,this._context=o,a.props=l,a.state=p,a.context=i)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,o=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(o&&1===r.length)return r[0];for(var a=u({},o?r[0]:n.state),i=o?1:0;i<r.length;i++){var s=r[i];u(a,"function"==typeof s?s.call(n,a,e,t):s)}return a},_performComponentUpdate:function(e,t,n,r,o,a){var i,s,u,c=this._instance,l=Boolean(c.componentDidUpdate);l&&(i=c.props,s=c.state,u=c.context),c.componentWillUpdate&&c.componentWillUpdate(t,n,r),this._currentElement=e,this._context=a,c.props=t,c.state=n,c.context=r,this._updateRenderedComponent(o,a),l&&o.getReactMountReady().enqueue(c.componentDidUpdate.bind(c,i,s,u),c)},_updateRenderedComponent:function(e,t){var n=this._renderedComponent,r=n._currentElement,o=this._renderValidatedComponent(),a=0;if(y(r,o))v.receiveComponent(n,o,e,this._processChildContext(t));else{var i=v.getHostNode(n);v.unmountComponent(n,!1);var s=h.getType(o);this._renderedNodeType=s;var u=this._instantiateReactComponent(o,s!==h.EMPTY);this._renderedComponent=u;var c=v.mountComponent(u,e,this._hostParent,this._hostContainerInfo,this._processChildContext(t),a);this._replaceNodeWithMarkup(i,c,n)}},_replaceNodeWithMarkup:function(e,t,n){l.replaceNodeWithMarkup(e,t,n)},_renderValidatedComponentWithoutOwnerOrContext:function(){var e,t=this._instance;return e=t.render()},_renderValidatedComponent:function(){var e;if(this._compositeType!==b.StatelessFunctional){p.current=this;try{e=this._renderValidatedComponentWithoutOwnerOrContext()}finally{p.current=null}}else e=this._renderValidatedComponentWithoutOwnerOrContext();return null===e||e===!1||c.isValidElement(e)?void 0:s("109",this.getName()||"ReactCompositeComponent"),e},attachRef:function(e,t){var n=this.getPublicInstance();null==n?s("110"):void 0;var r=t.getPublicInstance(),o=n.refs===g?n.refs={}:n.refs;o[e]=r},detachRef:function(e){var t=this.getPublicInstance().refs;delete t[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===b.StatelessFunctional?null:e},_instantiateReactComponent:null};t.exports=E}).call(this,e("_process"))},{"./ReactComponentEnvironment":229,"./ReactErrorUtils":254,"./ReactInstanceMap":262,"./ReactInstrumentation":263,"./ReactNodeTypes":268,"./ReactReconciler":273,"./checkReactTypeSpec":300,"./reactProdInvariant":321,"./shouldUpdateReactComponent":325,_process:162,"fbjs/lib/emptyObject":43,"fbjs/lib/invariant":50,"fbjs/lib/shallowEqual":56,"fbjs/lib/warning":57,"object-assign":161,"react/lib/React":330,"react/lib/ReactCurrentOwner":334}],231:[function(e,t,n){(function(n){"use strict";var r=e("./ReactDOMComponentTree"),o=e("./ReactDefaultInjection"),a=e("./ReactMount"),i=e("./ReactReconciler"),s=e("./ReactUpdates"),u=e("./ReactVersion"),c=e("./findDOMNode"),l=e("./getHostComponentFromComposite"),p=e("./renderSubtreeIntoContainer");e("fbjs/lib/warning");o.inject();var f={findDOMNode:c,render:a.render,unmountComponentAtNode:a.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=l(e)),e?r.getNodeFromInstance(e):null}},Mount:a,Reconciler:i});t.exports=f}).call(this,e("_process"))},{"./ReactDOMComponentTree":234,"./ReactDOMInvalidARIAHook":240,"./ReactDOMNullInputValuePropHook":241,"./ReactDOMUnknownPropertyHook":248,"./ReactDefaultInjection":251,"./ReactInstrumentation":263,"./ReactMount":266,"./ReactReconciler":273,"./ReactUpdates":278,"./ReactVersion":279,"./findDOMNode":304,"./getHostComponentFromComposite":311,"./renderSubtreeIntoContainer":322,_process:162,"fbjs/lib/ExecutionEnvironment":36,"fbjs/lib/warning":57}],232:[function(e,t,n){(function(n){"use strict";function r(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""}function o(e,t){t&&(Q[e._tag]&&(null!=t.children||null!=t.dangerouslySetInnerHTML?g("137",e._tag,e._currentElement._owner?" Check the render method of "+e._currentElement._owner.getName()+".":""):void 0),null!=t.dangerouslySetInnerHTML&&(null!=t.children?g("60"):void 0,"object"==typeof t.dangerouslySetInnerHTML&&q in t.dangerouslySetInnerHTML?void 0:g("61")),null!=t.style&&"object"!=typeof t.style?g("62",r(e)):void 0)}function a(e,t,n,r){if(!(r instanceof j)){var o=e._hostContainerInfo,a=o._node&&o._node.nodeType===z,s=a?o._node:o._ownerDocument;H(t,s),r.getReactMountReady().enqueue(i,{inst:e,registrationName:t,listener:n})}}function i(){var e=this;O.putListener(e.inst,e.registrationName,e.listener)}function s(){var e=this;k.postMountWrapper(e)}function u(){var e=this;R.postMountWrapper(e)}function c(){var e=this;P.postMountWrapper(e)}function l(){A.track(this)}function p(){var e=this;e._rootNodeID?void 0:g("63");var t=F(e);switch(t?void 0:g("64"),e._tag){case"iframe":case"object":e._wrapperState.listeners=[D.trapBubbledEvent("topLoad","load",t)];break;case"video":case"audio":e._wrapperState.listeners=[];for(var n in G)G.hasOwnProperty(n)&&e._wrapperState.listeners.push(D.trapBubbledEvent(n,G[n],t));break;case"source":e._wrapperState.listeners=[D.trapBubbledEvent("topError","error",t)];break;case"img":e._wrapperState.listeners=[D.trapBubbledEvent("topError","error",t),D.trapBubbledEvent("topLoad","load",t)];break;case"form":e._wrapperState.listeners=[D.trapBubbledEvent("topReset","reset",t),D.trapBubbledEvent("topSubmit","submit",t)];break;case"input":case"select":case"textarea":e._wrapperState.listeners=[D.trapBubbledEvent("topInvalid","invalid",t)]}}function f(){I.postUpdateWrapper(this)}function d(e){Z.call(J,e)||($.test(e)?void 0:g("65",e),J[e]=!0)}function h(e,t){return e.indexOf("-")>=0||null!=t.is}function v(e){var t=e.type;d(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}var g=e("./reactProdInvariant"),m=e("object-assign"),y=e("./AutoFocusUtils"),b=e("./CSSPropertyOperations"),_=e("./DOMLazyTree"),E=e("./DOMNamespaces"),C=e("./DOMProperty"),w=e("./DOMPropertyOperations"),O=e("./EventPluginHub"),T=e("./EventPluginRegistry"),D=e("./ReactBrowserEventEmitter"),S=e("./ReactDOMComponentFlags"),x=e("./ReactDOMComponentTree"),k=e("./ReactDOMInput"),P=e("./ReactDOMOption"),I=e("./ReactDOMSelect"),R=e("./ReactDOMTextarea"),M=(e("./ReactInstrumentation"),e("./ReactMultiChild")),j=e("./ReactServerRenderingTransaction"),N=(e("fbjs/lib/emptyFunction"),e("./escapeTextContentForBrowser")),A=(e("fbjs/lib/invariant"),e("./isEventSupported"),e("fbjs/lib/shallowEqual"),e("./inputValueTracking")),L=(e("./validateDOMNesting"),e("fbjs/lib/warning"),S),U=O.deleteListener,F=x.getNodeFromInstance,H=D.listenTo,B=T.registrationNameModules,V={string:!0,number:!0},W="style",q="__html",K={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},z=11,G={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"},Y={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},X={listing:!0,pre:!0,textarea:!0},Q=m({menuitem:!0},Y),$=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,J={},Z={}.hasOwnProperty,ee=1;v.displayName="ReactDOMComponent",v.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=ee++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var a=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(p,this);break;case"input":k.mountWrapper(this,a,t),a=k.getHostProps(this,a),e.getReactMountReady().enqueue(l,this),e.getReactMountReady().enqueue(p,this);break;case"option":P.mountWrapper(this,a,t),a=P.getHostProps(this,a);break;case"select":I.mountWrapper(this,a,t),a=I.getHostProps(this,a),e.getReactMountReady().enqueue(p,this);break;case"textarea":R.mountWrapper(this,a,t),a=R.getHostProps(this,a),e.getReactMountReady().enqueue(l,this),e.getReactMountReady().enqueue(p,this)}o(this,a);var i,f;null!=t?(i=t._namespaceURI,f=t._tag):n._tag&&(i=n._namespaceURI,f=n._tag),(null==i||i===E.svg&&"foreignobject"===f)&&(i=E.html),i===E.html&&("svg"===this._tag?i=E.svg:"math"===this._tag&&(i=E.mathml)),this._namespaceURI=i;var d;if(e.useCreateElement){var h,v=n._ownerDocument;if(i===E.html)if("script"===this._tag){var g=v.createElement("div"),m=this._currentElement.type;g.innerHTML="<"+m+"></"+m+">",h=g.removeChild(g.firstChild)}else h=a.is?v.createElement(this._currentElement.type,a.is):v.createElement(this._currentElement.type);else h=v.createElementNS(i,this._currentElement.type);x.precacheNode(this,h),this._flags|=L.hasCachedChildNodes,this._hostParent||w.setAttributeForRoot(h),this._updateDOMProperties(null,a,e);var b=_(h);this._createInitialChildren(e,a,r,b),d=b}else{var C=this._createOpenTagMarkupAndPutListeners(e,a),O=this._createContentMarkup(e,a,r);d=!O&&Y[this._tag]?C+"/>":C+">"+O+"</"+this._currentElement.type+">"}switch(this._tag){case"input":e.getReactMountReady().enqueue(s,this),a.autoFocus&&e.getReactMountReady().enqueue(y.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(u,this),a.autoFocus&&e.getReactMountReady().enqueue(y.focusDOMComponent,this);break;case"select":a.autoFocus&&e.getReactMountReady().enqueue(y.focusDOMComponent,this);break;case"button":a.autoFocus&&e.getReactMountReady().enqueue(y.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(c,this)}return d},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];if(null!=o)if(B.hasOwnProperty(r))o&&a(this,r,o,e);else{r===W&&(o&&(o=this._previousStyleCopy=m({},t.style)),o=b.createMarkupForStyles(o,this));var i=null;null!=this._tag&&h(this._tag,t)?K.hasOwnProperty(r)||(i=w.createMarkupForCustomAttribute(r,o)):i=w.createMarkupForProperty(r,o),i&&(n+=" "+i)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+w.createMarkupForRoot()),n+=" "+w.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var a=V[typeof t.children]?t.children:null,i=null!=a?null:t.children;if(null!=a)r=N(a);else if(null!=i){var s=this.mountChildren(i,e,n);r=s.join("")}}return X[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&&_.queueHTML(r,o.__html);else{var a=V[typeof t.children]?t.children:null,i=null!=a?null:t.children;if(null!=a)""!==a&&_.queueText(r,a);else if(null!=i)for(var s=this.mountChildren(i,e,n),u=0;u<s.length;u++)_.queueChild(r,s[u])}},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 a=t.props,i=this._currentElement.props;switch(this._tag){case"input":a=k.getHostProps(this,a),i=k.getHostProps(this,i);break;case"option":a=P.getHostProps(this,a),i=P.getHostProps(this,i);break;case"select":a=I.getHostProps(this,a),i=I.getHostProps(this,i);break;case"textarea":a=R.getHostProps(this,a),i=R.getHostProps(this,i)}switch(o(this,i),this._updateDOMProperties(a,i,e),this._updateDOMChildren(a,i,e,r),this._tag){case"input":k.updateWrapper(this),A.updateValueIfChanged(this);break;case"textarea":R.updateWrapper(this);break;case"select":e.getReactMountReady().enqueue(f,this)}},_updateDOMProperties:function(e,t,n){var r,o,i;for(r in e)if(!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&null!=e[r])if(r===W){var s=this._previousStyleCopy;for(o in s)s.hasOwnProperty(o)&&(i=i||{},i[o]="");this._previousStyleCopy=null}else B.hasOwnProperty(r)?e[r]&&U(this,r):h(this._tag,e)?K.hasOwnProperty(r)||w.deleteValueForAttribute(F(this),r):(C.properties[r]||C.isCustomAttribute(r))&&w.deleteValueForProperty(F(this),r);for(r in t){var u=t[r],c=r===W?this._previousStyleCopy:null!=e?e[r]:void 0;if(t.hasOwnProperty(r)&&u!==c&&(null!=u||null!=c))if(r===W)if(u?u=this._previousStyleCopy=m({},u):this._previousStyleCopy=null,c){for(o in c)!c.hasOwnProperty(o)||u&&u.hasOwnProperty(o)||(i=i||{},i[o]="");for(o in u)u.hasOwnProperty(o)&&c[o]!==u[o]&&(i=i||{},i[o]=u[o])}else i=u;else if(B.hasOwnProperty(r))u?a(this,r,u,n):c&&U(this,r);else if(h(this._tag,t))K.hasOwnProperty(r)||w.setValueForAttribute(F(this),r,u);else if(C.properties[r]||C.isCustomAttribute(r)){var l=F(this);null!=u?w.setValueForProperty(l,r,u):w.deleteValueForProperty(l,r)}}i&&b.setValueForStyles(F(this),i,this)},_updateDOMChildren:function(e,t,n,r){var o=V[typeof e.children]?e.children:null,a=V[typeof t.children]?t.children:null,i=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,s=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,u=null!=o?null:e.children,c=null!=a?null:t.children,l=null!=o||null!=i,p=null!=a||null!=s;null!=u&&null==c?this.updateChildren(null,n,r):l&&!p&&this.updateTextContent(""),null!=a?o!==a&&this.updateTextContent(""+a):null!=s?i!==s&&this.updateMarkup(""+s):null!=c&&this.updateChildren(c,n,r)},getHostNode:function(){return F(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":A.stopTracking(this);break;case"html":case"head":case"body":g("66",this._tag)}this.unmountChildren(e),x.uncacheNode(this),O.deleteAllListeners(this),this._rootNodeID=0,this._domID=0,this._wrapperState=null},getPublicInstance:function(){return F(this)}},m(v.prototype,v.Mixin,M.Mixin),t.exports=v}).call(this,e("_process"))},{"./AutoFocusUtils":203,"./CSSPropertyOperations":206,"./DOMLazyTree":210,"./DOMNamespaces":211,"./DOMProperty":212,"./DOMPropertyOperations":213,"./EventPluginHub":217,"./EventPluginRegistry":218,"./ReactBrowserEventEmitter":226,"./ReactDOMComponentFlags":233,"./ReactDOMComponentTree":234,"./ReactDOMInput":239,"./ReactDOMOption":242,"./ReactDOMSelect":243,"./ReactDOMTextarea":246,"./ReactInstrumentation":263,"./ReactMultiChild":267,"./ReactServerRenderingTransaction":275,"./escapeTextContentForBrowser":303,"./inputValueTracking":316,"./isEventSupported":318,"./reactProdInvariant":321,"./validateDOMNesting":327,_process:162,"fbjs/lib/emptyFunction":42,"fbjs/lib/invariant":50,"fbjs/lib/shallowEqual":56,"fbjs/lib/warning":57,"object-assign":161}],233:[function(e,t,n){"use strict";var r={hasCachedChildNodes:1};t.exports=r},{}],234:[function(e,t,n){(function(n){"use strict";function r(e,t){return 1===e.nodeType&&e.getAttribute(h)===String(t)||8===e.nodeType&&e.nodeValue===" react-text: "+t+" "||8===e.nodeType&&e.nodeValue===" react-empty: "+t+" "}function o(e){for(var t;t=e._renderedComponent;)e=t;return e}function a(e,t){var n=o(e);n._hostNode=t,t[g]=n}function i(e){var t=e._hostNode;t&&(delete t[g],e._hostNode=null)}function s(e,t){if(!(e._flags&v.hasCachedChildNodes)){var n=e._renderedChildren,i=t.firstChild;e:for(var s in n)if(n.hasOwnProperty(s)){var u=n[s],c=o(u)._domID;if(0!==c){for(;null!==i;i=i.nextSibling)if(r(i,c)){a(u,i);continue e}p("32",c)}}e._flags|=v.hasCachedChildNodes}}function u(e){if(e[g])return e[g];for(var t=[];!e[g];){if(t.push(e),!e.parentNode)return null;e=e.parentNode}for(var n,r;e&&(r=e[g]);e=t.pop())n=r,t.length&&s(r,e);return n}function c(e){var t=u(e);return null!=t&&t._hostNode===e?t:null}function l(e){if(void 0===e._hostNode?p("33"):void 0,e._hostNode)return e._hostNode;for(var t=[];!e._hostNode;)t.push(e),e._hostParent?void 0:p("34"),e=e._hostParent;for(;t.length;e=t.pop())s(e,e._hostNode);return e._hostNode}var p=e("./reactProdInvariant"),f=e("./DOMProperty"),d=e("./ReactDOMComponentFlags"),h=(e("fbjs/lib/invariant"),f.ID_ATTRIBUTE_NAME),v=d,g="__reactInternalInstance$"+Math.random().toString(36).slice(2),m={getClosestInstanceFromNode:u,getInstanceFromNode:c,getNodeFromInstance:l,precacheChildNodes:s,precacheNode:a,uncacheNode:i};t.exports=m}).call(this,e("_process"))},{"./DOMProperty":212,"./ReactDOMComponentFlags":233,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],235:[function(e,t,n){(function(n){"use strict";function r(e,t){var n={_topLevelWrapper:e,_idCounter:1,_ownerDocument:t?t.nodeType===o?t:t.ownerDocument:null,_node:t,_tag:t?t.nodeName.toLowerCase():null,_namespaceURI:t?t.namespaceURI:null};return n}var o=(e("./validateDOMNesting"),9);t.exports=r}).call(this,e("_process"))},{"./validateDOMNesting":327,_process:162}],236:[function(e,t,n){"use strict";var r=e("object-assign"),o=e("./DOMLazyTree"),a=e("./ReactDOMComponentTree"),i=function(e){this._currentElement=null,this._hostNode=null,this._hostParent=null,this._hostContainerInfo=null,this._domID=0};r(i.prototype,{mountComponent:function(e,t,n,r){var i=n._idCounter++;this._domID=i,this._hostParent=t,this._hostContainerInfo=n;var s=" react-empty: "+this._domID+" ";if(e.useCreateElement){var u=n._ownerDocument,c=u.createComment(s);return a.precacheNode(this,c),o(c)}return e.renderToStaticMarkup?"":"<!--"+s+"-->"},receiveComponent:function(){},getHostNode:function(){return a.getNodeFromInstance(this)},unmountComponent:function(){a.uncacheNode(this)}}),t.exports=i},{"./DOMLazyTree":210,"./ReactDOMComponentTree":234,"object-assign":161}],237:[function(e,t,n){"use strict";var r={useCreateElement:!0,useFiber:!1};t.exports=r},{}],238:[function(e,t,n){"use strict";var r=e("./DOMChildrenOperations"),o=e("./ReactDOMComponentTree"),a={dangerouslyProcessChildrenUpdates:function(e,t){var n=o.getNodeFromInstance(e);r.processUpdates(n,t)}};t.exports=a},{"./DOMChildrenOperations":209,"./ReactDOMComponentTree":234}],239:[function(e,t,n){(function(n){"use strict";function r(){this._rootNodeID&&f.updateWrapper(this)}function o(e){var t="checkbox"===e.type||"radio"===e.type;return t?null!=e.checked:null!=e.value}function a(e){var t=this._currentElement.props,n=c.executeOnChange(t,e);p.asap(r,this);var o=t.name;if("radio"===t.type&&null!=o){for(var a=l.getNodeFromInstance(this),s=a;s.parentNode;)s=s.parentNode;for(var u=s.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),f=0;f<u.length;f++){var d=u[f];if(d!==a&&d.form===a.form){var h=l.getInstanceFromNode(d);h?void 0:i("90"),p.asap(r,h)}}}return n}var i=e("./reactProdInvariant"),s=e("object-assign"),u=e("./DOMPropertyOperations"),c=e("./LinkedValueUtils"),l=e("./ReactDOMComponentTree"),p=e("./ReactUpdates"),f=(e("fbjs/lib/invariant"),e("fbjs/lib/warning"),{getHostProps:function(e,t){var n=c.getValue(t),r=c.getChecked(t),o=s({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});return o},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:a.bind(e),controlled:o(t)}},updateWrapper:function(e){var t=e._currentElement.props,n=t.checked;null!=n&&u.setValueForProperty(l.getNodeFromInstance(e),"checked",n||!1);var r=l.getNodeFromInstance(e),o=c.getValue(t);if(null!=o)if(0===o&&""===r.value)r.value="0";else if("number"===t.type){var a=parseFloat(r.value,10)||0;(o!=a||o==a&&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=l.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)}});t.exports=f}).call(this,e("_process"))},{"./DOMPropertyOperations":213,"./LinkedValueUtils":224,"./ReactDOMComponentTree":234,"./ReactUpdates":278,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,
8
- "object-assign":161}],240:[function(e,t,n){(function(n){"use strict";var r=e("./DOMProperty"),o=(e("react/lib/ReactComponentTreeHook"),e("fbjs/lib/warning"),new RegExp("^(aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$"),{onBeforeMountComponent:function(e,t){},onBeforeUpdateComponent:function(e,t){}});t.exports=o}).call(this,e("_process"))},{"./DOMProperty":212,_process:162,"fbjs/lib/warning":57,"react/lib/ReactComponentTreeHook":333}],241:[function(e,t,n){(function(n){"use strict";function r(e,t){null!=t&&("input"!==t.type&&"textarea"!==t.type&&"select"!==t.type||null==t.props||null!==t.props.value||o||(o=!0))}var o=(e("react/lib/ReactComponentTreeHook"),e("fbjs/lib/warning"),!1),a={onBeforeMountComponent:function(e,t){r(e,t)},onBeforeUpdateComponent:function(e,t){r(e,t)}};t.exports=a}).call(this,e("_process"))},{_process:162,"fbjs/lib/warning":57,"react/lib/ReactComponentTreeHook":333}],242:[function(e,t,n){(function(n){"use strict";function r(e){var t="";return a.Children.forEach(e,function(e){null!=e&&("string"==typeof e||"number"==typeof e?t+=e:u||(u=!0))}),t}var o=e("object-assign"),a=e("react/lib/React"),i=e("./ReactDOMComponentTree"),s=e("./ReactDOMSelect"),u=(e("fbjs/lib/warning"),!1),c={mountWrapper:function(e,t,n){var o=null;if(null!=n){var a=n;"optgroup"===a._tag&&(a=a._hostParent),null!=a&&"select"===a._tag&&(o=s.getSelectValueContext(a))}var i=null;if(null!=o){var u;if(u=null!=t.value?t.value+"":r(t.children),i=!1,Array.isArray(o)){for(var c=0;c<o.length;c++)if(""+o[c]===u){i=!0;break}}else i=""+o===u}e._wrapperState={selected:i}},postMountWrapper:function(e){var t=e._currentElement.props;if(null!=t.value){var n=i.getNodeFromInstance(e);n.setAttribute("value",t.value)}},getHostProps:function(e,t){var n=o({selected:void 0,children:void 0},t);null!=e._wrapperState.selected&&(n.selected=e._wrapperState.selected);var a=r(t.children);return a&&(n.children=a),n}};t.exports=c}).call(this,e("_process"))},{"./ReactDOMComponentTree":234,"./ReactDOMSelect":243,_process:162,"fbjs/lib/warning":57,"object-assign":161,"react/lib/React":330}],243:[function(e,t,n){(function(n){"use strict";function r(){if(this._rootNodeID&&this._wrapperState.pendingUpdate){this._wrapperState.pendingUpdate=!1;var e=this._currentElement.props,t=s.getValue(e);null!=t&&o(this,Boolean(e.multiple),t)}}function o(e,t,n){var r,o,a=u.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 i=r.hasOwnProperty(a[o].value);a[o].selected!==i&&(a[o].selected=i)}}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)}}function a(e){var t=this._currentElement.props,n=s.executeOnChange(t,e);return this._rootNodeID&&(this._wrapperState.pendingUpdate=!0),c.asap(r,this),n}var i=e("object-assign"),s=e("./LinkedValueUtils"),u=e("./ReactDOMComponentTree"),c=e("./ReactUpdates"),l=(e("fbjs/lib/warning"),!1),p={getHostProps:function(e,t){return i({},t,{onChange:e._wrapperState.onChange,value:void 0})},mountWrapper:function(e,t){var n=s.getValue(t);e._wrapperState={pendingUpdate:!1,initialValue:null!=n?n:t.defaultValue,listeners:null,onChange:a.bind(e),wasMultiple:Boolean(t.multiple)},void 0===t.value||void 0===t.defaultValue||l||(l=!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=s.getValue(t);null!=r?(e._wrapperState.pendingUpdate=!1,o(e,Boolean(t.multiple),r)):n!==Boolean(t.multiple)&&(null!=t.defaultValue?o(e,Boolean(t.multiple),t.defaultValue):o(e,Boolean(t.multiple),t.multiple?[]:""))}};t.exports=p}).call(this,e("_process"))},{"./LinkedValueUtils":224,"./ReactDOMComponentTree":234,"./ReactUpdates":278,_process:162,"fbjs/lib/warning":57,"object-assign":161}],244:[function(e,t,n){"use strict";function r(e,t,n,r){return e===n&&t===r}function o(e){var t=document.selection,n=t.createRange(),r=n.text.length,o=n.duplicate();o.moveToElementText(e),o.setEndPoint("EndToStart",n);var a=o.text.length,i=a+r;return{start:a,end:i}}function a(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var n=t.anchorNode,o=t.anchorOffset,a=t.focusNode,i=t.focusOffset,s=t.getRangeAt(0);try{s.startContainer.nodeType,s.endContainer.nodeType}catch(u){return null}var c=r(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),l=c?0:s.toString().length,p=s.cloneRange();p.selectNodeContents(e),p.setEnd(s.startContainer,s.startOffset);var f=r(p.startContainer,p.startOffset,p.endContainer,p.endOffset),d=f?0:p.toString().length,h=d+l,v=document.createRange();v.setStart(n,o),v.setEnd(a,i);var g=v.collapsed;return{start:g?h:d,end:g?d:h}}function i(e,t){var n,r,o=document.selection.createRange().duplicate();void 0===t.end?(n=t.start,r=n):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 s(e,t){if(window.getSelection){var n=window.getSelection(),r=e[l()].length,o=Math.min(t.start,r),a=void 0===t.end?o:Math.min(t.end,r);if(!n.extend&&o>a){var i=a;a=o,o=i}var s=c(e,o),u=c(e,a);if(s&&u){var p=document.createRange();p.setStart(s.node,s.offset),n.removeAllRanges(),o>a?(n.addRange(p),n.extend(u.node,u.offset)):(p.setEnd(u.node,u.offset),n.addRange(p))}}}var u=e("fbjs/lib/ExecutionEnvironment"),c=e("./getNodeForCharacterOffset"),l=e("./getTextContentAccessor"),p=u.canUseDOM&&"selection"in document&&!("getSelection"in window),f={getOffsets:p?o:a,setOffsets:p?i:s};t.exports=f},{"./getNodeForCharacterOffset":313,"./getTextContentAccessor":314,"fbjs/lib/ExecutionEnvironment":36}],245:[function(e,t,n){(function(n){"use strict";var r=e("./reactProdInvariant"),o=e("object-assign"),a=e("./DOMChildrenOperations"),i=e("./DOMLazyTree"),s=e("./ReactDOMComponentTree"),u=e("./escapeTextContentForBrowser"),c=(e("fbjs/lib/invariant"),e("./validateDOMNesting"),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(c.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,a=" react-text: "+o+" ",c=" /react-text ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var l=n._ownerDocument,p=l.createComment(a),f=l.createComment(c),d=i(l.createDocumentFragment());return i.queueChild(d,i(p)),this._stringText&&i.queueChild(d,i(l.createTextNode(this._stringText))),i.queueChild(d,i(f)),s.precacheNode(this,p),this._closingComment=f,d}var h=u(this._stringText);return e.renderToStaticMarkup?h:"<!--"+a+"-->"+h+"<!--"+c+"-->"},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();a.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),n=t.nextSibling;;){if(null==n?r("67",this._domID):void 0,8===n.nodeType&&" /react-text "===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,s.uncacheNode(this)}}),t.exports=c}).call(this,e("_process"))},{"./DOMChildrenOperations":209,"./DOMLazyTree":210,"./ReactDOMComponentTree":234,"./escapeTextContentForBrowser":303,"./reactProdInvariant":321,"./validateDOMNesting":327,_process:162,"fbjs/lib/invariant":50,"object-assign":161}],246:[function(e,t,n){(function(n){"use strict";function r(){this._rootNodeID&&l.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=s.executeOnChange(t,e);return c.asap(r,this),n}var a=e("./reactProdInvariant"),i=e("object-assign"),s=e("./LinkedValueUtils"),u=e("./ReactDOMComponentTree"),c=e("./ReactUpdates"),l=(e("fbjs/lib/invariant"),e("fbjs/lib/warning"),{getHostProps:function(e,t){null!=t.dangerouslySetInnerHTML?a("91"):void 0;var n=i({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange});return n},mountWrapper:function(e,t){var n=s.getValue(t),r=n;if(null==n){var i=t.defaultValue,u=t.children;null!=u&&(null!=i?a("92"):void 0,Array.isArray(u)&&(u.length<=1?void 0:a("93"),u=u[0]),i=""+u),null==i&&(i=""),r=i}e._wrapperState={initialValue:""+r,listeners:null,onChange:o.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=u.getNodeFromInstance(e),r=s.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=u.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)}});t.exports=l}).call(this,e("_process"))},{"./LinkedValueUtils":224,"./ReactDOMComponentTree":234,"./ReactUpdates":278,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"object-assign":161}],247:[function(e,t,n){(function(n){"use strict";function r(e,t){"_hostNode"in e?void 0:u("33"),"_hostNode"in t?void 0:u("33");for(var n=0,r=e;r;r=r._hostParent)n++;for(var o=0,a=t;a;a=a._hostParent)o++;for(;n-o>0;)e=e._hostParent,n--;for(;o-n>0;)t=t._hostParent,o--;for(var i=n;i--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}function o(e,t){"_hostNode"in e?void 0:u("35"),"_hostNode"in t?void 0:u("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1}function a(e){return"_hostNode"in e?void 0:u("36"),e._hostParent}function i(e,t,n){for(var r=[];e;)r.push(e),e=e._hostParent;var o;for(o=r.length;o-- >0;)t(r[o],"captured",n);for(o=0;o<r.length;o++)t(r[o],"bubbled",n)}function s(e,t,n,o,a){for(var i=e&&t?r(e,t):null,s=[];e&&e!==i;)s.push(e),e=e._hostParent;for(var u=[];t&&t!==i;)u.push(t),t=t._hostParent;var c;for(c=0;c<s.length;c++)n(s[c],"bubbled",o);for(c=u.length;c-- >0;)n(u[c],"captured",a)}var u=e("./reactProdInvariant");e("fbjs/lib/invariant");t.exports={isAncestor:o,getLowestCommonAncestor:r,getParentInstance:a,traverseTwoPhase:i,traverseEnterLeave:s}}).call(this,e("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],248:[function(e,t,n){(function(n){"use strict";function r(e,t){null!=t&&"string"==typeof t.type&&(t.type.indexOf("-")>=0||t.props.is||a(e,t))}var o,a=(e("./DOMProperty"),e("./EventPluginRegistry"),e("react/lib/ReactComponentTreeHook"),e("fbjs/lib/warning"),function(e,t){var n=[];for(var r in t.props){var a=o(t.type,r,e);a||n.push(r)}n.map(function(e){return"`"+e+"`"}).join(", ");1===n.length||n.length>1}),i={onBeforeMountComponent:function(e,t){r(e,t)},onBeforeUpdateComponent:function(e,t){r(e,t)}};t.exports=i}).call(this,e("_process"))},{"./DOMProperty":212,"./EventPluginRegistry":218,_process:162,"fbjs/lib/warning":57,"react/lib/ReactComponentTreeHook":333}],249:[function(e,t,n){(function(n){"use strict";function r(e,t,n,r,o,a,i,s){try{t.call(n,r,o,a,i,s)}catch(u){C[e]=!0}}function o(e,t,n,o,a,i){for(var s=0;s<E.length;s++){var u=E[s],c=u[e];c&&r(e,c,u,t,n,o,a,i)}}function a(){y.purgeUnmountedComponents(),m.clearHistory()}function i(e){return e.reduce(function(e,t){var n=y.getOwnerID(t),r=y.getParentID(t);return e[t]={displayName:y.getDisplayName(t),text:y.getText(t),updateCount:y.getUpdateCount(t),childIDs:y.getChildIDs(t),ownerID:n||r&&y.getOwnerID(r)||0,parentID:r},e},{})}function s(){var e=x,t=S,n=m.getHistory();if(0===D)return x=0,S=[],void a();if(t.length||n.length){var r=y.getRegisteredIDs();O.push({duration:_()-e,measurements:t||[],operations:n||[],treeSnapshot:i(r)})}a(),x=_(),S=[]}function u(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1]}function c(e,t){0!==D&&(R&&!M&&(M=!0),P=_(),I=0,k=e,R=t)}function l(e,t){0!==D&&(R===t||M||(M=!0),w&&S.push({timerType:t,instanceID:e,duration:_()-P-I}),P=0,I=0,k=null,R=null)}function p(){var e={startTime:P,nestedFlushStartTime:_(),debugID:k,timerType:R};T.push(e),P=0,I=0,k=null,R=null}function f(){var e=T.pop(),t=e.startTime,n=e.nestedFlushStartTime,r=e.debugID,o=e.timerType,a=_()-n;P=t,I+=a,k=r,R=o}function d(e){if(!w||!N)return!1;var t=y.getElement(e);if(null==t||"object"!=typeof t)return!1;var n="string"==typeof t.type;return!n}function h(e,t){if(d(e)){var n=e+"::"+t;j=_(),performance.mark(n)}}function v(e,t){if(d(e)){var n=e+"::"+t,r=y.getDisplayName(e)||"Unknown",o=_();if(o-j>.1){var a=r+" ["+t+"]";performance.measure(a,n)}performance.clearMarks(n),a&&performance.clearMeasures(a)}}var g=e("./ReactInvalidSetStateWarningHook"),m=e("./ReactHostOperationHistoryHook"),y=e("react/lib/ReactComponentTreeHook"),b=e("fbjs/lib/ExecutionEnvironment"),_=e("fbjs/lib/performanceNow"),E=(e("fbjs/lib/warning"),[]),C={},w=!1,O=[],T=[],D=0,S=[],x=0,k=null,P=0,I=0,R=null,M=!1,j=0,N="undefined"!=typeof performance&&"function"==typeof performance.mark&&"function"==typeof performance.clearMarks&&"function"==typeof performance.measure&&"function"==typeof performance.clearMeasures,A={addHook:function(e){E.push(e)},removeHook:function(e){for(var t=0;t<E.length;t++)E[t]===e&&(E.splice(t,1),t--)},isProfiling:function(){return w},beginProfiling:function(){w||(w=!0,O.length=0,s(),A.addHook(m))},endProfiling:function(){w&&(w=!1,s(),A.removeHook(m))},getFlushHistory:function(){return O},onBeginFlush:function(){D++,s(),p(),o("onBeginFlush")},onEndFlush:function(){s(),D--,f(),o("onEndFlush")},onBeginLifeCycleTimer:function(e,t){u(e),o("onBeginLifeCycleTimer",e,t),h(e,t),c(e,t)},onEndLifeCycleTimer:function(e,t){u(e),l(e,t),v(e,t),o("onEndLifeCycleTimer",e,t)},onBeginProcessingChildContext:function(){o("onBeginProcessingChildContext")},onEndProcessingChildContext:function(){o("onEndProcessingChildContext")},onHostOperation:function(e){u(e.instanceID),o("onHostOperation",e)},onSetState:function(){o("onSetState")},onSetChildren:function(e,t){u(e),t.forEach(u),o("onSetChildren",e,t)},onBeforeMountComponent:function(e,t,n){u(e),u(n,!0),o("onBeforeMountComponent",e,t,n),h(e,"mount")},onMountComponent:function(e){u(e),v(e,"mount"),o("onMountComponent",e)},onBeforeUpdateComponent:function(e,t){u(e),o("onBeforeUpdateComponent",e,t),h(e,"update")},onUpdateComponent:function(e){u(e),v(e,"update"),o("onUpdateComponent",e)},onBeforeUnmountComponent:function(e){u(e),o("onBeforeUnmountComponent",e),h(e,"unmount")},onUnmountComponent:function(e){u(e),v(e,"unmount"),o("onUnmountComponent",e)},onTestEvent:function(){o("onTestEvent")}};A.addDevtool=A.addHook,A.removeDevtool=A.removeHook,A.addHook(g),A.addHook(y);var L=b.canUseDOM&&window.location.href||"";/[?&]react_perf\b/.test(L)&&A.beginProfiling(),t.exports=A}).call(this,e("_process"))},{"./ReactHostOperationHistoryHook":259,"./ReactInvalidSetStateWarningHook":264,_process:162,"fbjs/lib/ExecutionEnvironment":36,"fbjs/lib/performanceNow":55,"fbjs/lib/warning":57,"react/lib/ReactComponentTreeHook":333}],250:[function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=e("object-assign"),a=e("./ReactUpdates"),i=e("./Transaction"),s=e("fbjs/lib/emptyFunction"),u={initialize:s,close:function(){f.isBatchingUpdates=!1}},c={initialize:s,close:a.flushBatchedUpdates.bind(a)},l=[c,u];o(r.prototype,i,{getTransactionWrappers:function(){return l}});var p=new r,f={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,a){var i=f.isBatchingUpdates;return f.isBatchingUpdates=!0,i?e(t,n,r,o,a):p.perform(e,null,t,n,r,o,a)}};t.exports=f},{"./ReactUpdates":278,"./Transaction":296,"fbjs/lib/emptyFunction":42,"object-assign":161}],251:[function(e,t,n){"use strict";function r(){w||(w=!0,y.EventEmitter.injectReactEventListener(m),y.EventPluginHub.injectEventPluginOrder(s),y.EventPluginUtils.injectComponentTree(f),y.EventPluginUtils.injectTreeTraversal(h),y.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:C,EnterLeaveEventPlugin:u,ChangeEventPlugin:i,SelectEventPlugin:E,BeforeInputEventPlugin:a}),y.HostComponent.injectGenericComponentClass(p),y.HostComponent.injectTextComponentClass(v),y.DOMProperty.injectDOMPropertyConfig(o),y.DOMProperty.injectDOMPropertyConfig(c),y.DOMProperty.injectDOMPropertyConfig(_),y.EmptyComponent.injectEmptyComponentFactory(function(e){return new d(e)}),y.Updates.injectReconcileTransaction(b),y.Updates.injectBatchingStrategy(g),y.Component.injectEnvironment(l))}var o=e("./ARIADOMPropertyConfig"),a=e("./BeforeInputEventPlugin"),i=e("./ChangeEventPlugin"),s=e("./DefaultEventPluginOrder"),u=e("./EnterLeaveEventPlugin"),c=e("./HTMLDOMPropertyConfig"),l=e("./ReactComponentBrowserEnvironment"),p=e("./ReactDOMComponent"),f=e("./ReactDOMComponentTree"),d=e("./ReactDOMEmptyComponent"),h=e("./ReactDOMTreeTraversal"),v=e("./ReactDOMTextComponent"),g=e("./ReactDefaultBatchingStrategy"),m=e("./ReactEventListener"),y=e("./ReactInjection"),b=e("./ReactReconcileTransaction"),_=e("./SVGDOMPropertyConfig"),E=e("./SelectEventPlugin"),C=e("./SimpleEventPlugin"),w=!1;t.exports={inject:r}},{"./ARIADOMPropertyConfig":202,"./BeforeInputEventPlugin":204,"./ChangeEventPlugin":208,"./DefaultEventPluginOrder":215,"./EnterLeaveEventPlugin":216,"./HTMLDOMPropertyConfig":222,"./ReactComponentBrowserEnvironment":228,"./ReactDOMComponent":232,"./ReactDOMComponentTree":234,"./ReactDOMEmptyComponent":236,"./ReactDOMTextComponent":245,"./ReactDOMTreeTraversal":247,"./ReactDefaultBatchingStrategy":250,"./ReactEventListener":256,"./ReactInjection":260,"./ReactReconcileTransaction":272,"./SVGDOMPropertyConfig":280,"./SelectEventPlugin":281,"./SimpleEventPlugin":282}],252:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol["for"]&&Symbol["for"]("react.element")||60103;t.exports=r},{}],253:[function(e,t,n){"use strict";var r,o={injectEmptyComponentFactory:function(e){r=e}},a={create:function(e){return r(e)}};a.injection=o,t.exports=a},{}],254:[function(e,t,n){(function(e){"use strict";function n(e,t,n){try{t(n)}catch(o){null===r&&(r=o)}}var r=null,o={invokeGuardedCallback:n,invokeGuardedCallbackWithCatch:n,rethrowCaughtError:function(){if(r){var e=r;throw r=null,e}}};t.exports=o}).call(this,e("_process"))},{_process:162}],255:[function(e,t,n){"use strict";function r(e){o.enqueueEvents(e),o.processEventQueue(!1)}var o=e("./EventPluginHub"),a={handleTopLevel:function(e,t,n,a){var i=o.extractEvents(e,t,n,a);r(i)}};t.exports=a},{"./EventPluginHub":217}],256:[function(e,t,n){"use strict";function r(e){for(;e._hostParent;)e=e._hostParent;var t=p.getNodeFromInstance(e),n=t.parentNode;return p.getClosestInstanceFromNode(n)}function o(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function a(e){var t=d(e.nativeEvent),n=p.getClosestInstanceFromNode(t),o=n;do e.ancestors.push(o),o=o&&r(o);while(o);for(var a=0;a<e.ancestors.length;a++)n=e.ancestors[a],v._handleTopLevel(e.topLevelType,n,e.nativeEvent,d(e.nativeEvent))}function i(e){var t=h(window);e(t)}var s=e("object-assign"),u=e("fbjs/lib/EventListener"),c=e("fbjs/lib/ExecutionEnvironment"),l=e("./PooledClass"),p=e("./ReactDOMComponentTree"),f=e("./ReactUpdates"),d=e("./getEventTarget"),h=e("fbjs/lib/getUnboundedScrollPosition");s(o.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),l.addPoolingTo(o,l.twoArgumentPooler);var v={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:c.canUseDOM?window:null,setHandleTopLevel:function(e){v._handleTopLevel=e},setEnabled:function(e){v._enabled=!!e},isEnabled:function(){return v._enabled},trapBubbledEvent:function(e,t,n){return n?u.listen(n,t,v.dispatchEvent.bind(null,e)):null},trapCapturedEvent:function(e,t,n){return n?u.capture(n,t,v.dispatchEvent.bind(null,e)):null},monitorScrollValue:function(e){var t=i.bind(null,e);u.listen(window,"scroll",t)},dispatchEvent:function(e,t){if(v._enabled){var n=o.getPooled(e,t);try{f.batchedUpdates(a,n)}finally{o.release(n)}}}};t.exports=v},{"./PooledClass":225,"./ReactDOMComponentTree":234,"./ReactUpdates":278,"./getEventTarget":310,"fbjs/lib/EventListener":35,"fbjs/lib/ExecutionEnvironment":36,"fbjs/lib/getUnboundedScrollPosition":47,"object-assign":161}],257:[function(e,t,n){"use strict";var r={logTopLevelRenders:!1};t.exports=r},{}],258:[function(e,t,n){(function(n){"use strict";function r(e){return s?void 0:i("111",e.type),new s(e)}function o(e){return new u(e)}function a(e){return e instanceof u}var i=e("./reactProdInvariant"),s=(e("fbjs/lib/invariant"),null),u=null,c={injectGenericComponentClass:function(e){s=e},injectTextComponentClass:function(e){u=e}},l={createInternalComponent:r,createInstanceForText:o,isTextComponent:a,injection:c};t.exports=l}).call(this,e("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],259:[function(e,t,n){"use strict";var r=[],o={onHostOperation:function(e){r.push(e)},clearHistory:function(){o._preventClearing||(r=[])},getHistory:function(){return r}};t.exports=o},{}],260:[function(e,t,n){"use strict";var r=e("./DOMProperty"),o=e("./EventPluginHub"),a=e("./EventPluginUtils"),i=e("./ReactComponentEnvironment"),s=e("./ReactEmptyComponent"),u=e("./ReactBrowserEventEmitter"),c=e("./ReactHostComponent"),l=e("./ReactUpdates"),p={Component:i.injection,DOMProperty:r.injection,EmptyComponent:s.injection,EventPluginHub:o.injection,EventPluginUtils:a.injection,EventEmitter:u.injection,HostComponent:c.injection,Updates:l.injection};t.exports=p},{"./DOMProperty":212,"./EventPluginHub":217,"./EventPluginUtils":219,"./ReactBrowserEventEmitter":226,"./ReactComponentEnvironment":229,"./ReactEmptyComponent":253,"./ReactHostComponent":258,"./ReactUpdates":278}],261:[function(e,t,n){"use strict";function r(e){return a(document.documentElement,e)}var o=e("./ReactDOMSelection"),a=e("fbjs/lib/containsNode"),i=e("fbjs/lib/focusNode"),s=e("fbjs/lib/getActiveElement"),u={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=s();return{focusedElem:e,selectionRange:u.hasSelectionCapabilities(e)?u.getSelection(e):null}},restoreSelection:function(e){var t=s(),n=e.focusedElem,o=e.selectionRange;t!==n&&r(n)&&(u.hasSelectionCapabilities(n)&&u.setSelection(n,o),i(n))},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=o.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,r=t.end;if(void 0===r&&(r=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(r,e.value.length);else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var a=e.createTextRange();a.collapse(!0),a.moveStart("character",n),a.moveEnd("character",r-n),a.select()}else o.setOffsets(e,t)}};t.exports=u},{"./ReactDOMSelection":244,"fbjs/lib/containsNode":39,"fbjs/lib/focusNode":44,"fbjs/lib/getActiveElement":45}],262:[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}};t.exports=r},{}],263:[function(e,t,n){(function(e){"use strict";var n=null;t.exports={debugTool:n}}).call(this,e("_process"))},{"./ReactDebugTool":249,_process:162}],264:[function(e,t,n){(function(n){"use strict";var r,o,a=(e("fbjs/lib/warning"),{onBeginProcessingChildContext:function(){r=!0},onEndProcessingChildContext:function(){r=!1},onSetState:function(){o()}});t.exports=a}).call(this,e("_process"))},{_process:162,"fbjs/lib/warning":57}],265:[function(e,t,n){"use strict";var r=e("./adler32"),o=/\/?>/,a=/^<\!\-\-/,i={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return a.test(e)?e:e.replace(o," "+i.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(i.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var o=r(e);return o===n}};t.exports=i},{"./adler32":299}],266:[function(e,t,n){(function(n){"use strict";function r(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}function o(e){return e?e.nodeType===j?e.documentElement:e.firstChild:null}function a(e){return e.getAttribute&&e.getAttribute(I)||""}function i(e,t,n,r,o){var a;if(E.logTopLevelRenders){var i=e._currentElement.props.child,s=i.type;a="React mount: "+("string"==typeof s?s:s.displayName||s.name),console.time(a)}var u=O.mountComponent(e,n,null,b(e,t),o,0);a&&console.timeEnd(a),e._renderedComponent._topLevelWrapper=e,F._mountImageIntoNode(u,t,e,r,n)}function s(e,t,n,r){var o=D.ReactReconcileTransaction.getPooled(!n&&_.useCreateElement);o.perform(i,null,e,t,o,n,r),D.ReactReconcileTransaction.release(o)}function u(e,t,n){for(O.unmountComponent(e,n),t.nodeType===j&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}function c(e){var t=o(e);if(t){var n=y.getInstanceFromNode(t);return!(!n||!n._hostParent)}}function l(e){return!(!e||e.nodeType!==M&&e.nodeType!==j&&e.nodeType!==N)}function p(e){var t=o(e),n=t&&y.getInstanceFromNode(t);return n&&!n._hostParent?n:null}function f(e){var t=p(e);return t?t._hostContainerInfo._topLevelWrapper:null}var d=e("./reactProdInvariant"),h=e("./DOMLazyTree"),v=e("./DOMProperty"),g=e("react/lib/React"),m=e("./ReactBrowserEventEmitter"),y=(e("react/lib/ReactCurrentOwner"),e("./ReactDOMComponentTree")),b=e("./ReactDOMContainerInfo"),_=e("./ReactDOMFeatureFlags"),E=e("./ReactFeatureFlags"),C=e("./ReactInstanceMap"),w=(e("./ReactInstrumentation"),e("./ReactMarkupChecksum")),O=e("./ReactReconciler"),T=e("./ReactUpdateQueue"),D=e("./ReactUpdates"),S=e("fbjs/lib/emptyObject"),x=e("./instantiateReactComponent"),k=(e("fbjs/lib/invariant"),e("./setInnerHTML")),P=e("./shouldUpdateReactComponent"),I=(e("fbjs/lib/warning"),v.ID_ATTRIBUTE_NAME),R=v.ROOT_ATTRIBUTE_NAME,M=1,j=9,N=11,A={},L=1,U=function(){this.rootID=L++};U.prototype.isReactComponent={},U.prototype.render=function(){return this.props.child},U.isReactTopLevelWrapper=!0;var F={TopLevelWrapper:U,_instancesByReactRootID:A,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r,o){return F.scrollMonitor(r,function(){T.enqueueElementInternal(e,t,n),o&&T.enqueueCallbackInternal(e,o)}),e},_renderNewRootComponent:function(e,t,n,r){l(t)?void 0:d("37"),m.ensureScrollValueMonitoring();var o=x(e,!1);D.batchedUpdates(s,o,t,n,r);var a=o._instance.rootID;return A[a]=o,o},renderSubtreeIntoContainer:function(e,t,n,r){return null!=e&&C.has(e)?void 0:d("38"),F._renderSubtreeIntoContainer(e,t,n,r)},_renderSubtreeIntoContainer:function(e,t,n,r){T.validateCallback(r,"ReactDOM.render"),g.isValidElement(t)?void 0:d("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=g.createElement(U,{child:t});if(e){var u=C.get(e);i=u._processChildContext(u._context)}else i=S;var l=f(n);if(l){var p=l._currentElement,h=p.props.child;if(P(h,t)){var v=l._renderedComponent.getPublicInstance(),m=r&&function(){r.call(v)};return F._updateRootComponent(l,s,i,n,m),v}F.unmountComponentAtNode(n)}var y=o(n),b=y&&!!a(y),_=c(n),E=b&&!l&&!_,w=F._renderNewRootComponent(s,n,E,i)._renderedComponent.getPublicInstance();return r&&r.call(w),w},render:function(e,t,n){return F._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){l(e)?void 0:d("40");var t=f(e);if(!t){c(e),1===e.nodeType&&e.hasAttribute(R);return!1}return delete A[t._instance.rootID],D.batchedUpdates(u,t,e,!1),!0},_mountImageIntoNode:function(e,t,n,a,i){if(l(t)?void 0:d("41"),a){var s=o(t);if(w.canReuseMarkup(e,s))return void y.precacheNode(n,s);var u=s.getAttribute(w.CHECKSUM_ATTR_NAME);s.removeAttribute(w.CHECKSUM_ATTR_NAME);var c=s.outerHTML;s.setAttribute(w.CHECKSUM_ATTR_NAME,u);var p=e,f=r(p,c),v=" (client) "+p.substring(f-20,f+20)+"\n (server) "+c.substring(f-20,f+20);t.nodeType===j?d("42",v):void 0}if(t.nodeType===j?d("43"):void 0,i.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);h.insertTreeBefore(t,e,null)}else k(t,e),y.precacheNode(n,t.firstChild)}};t.exports=F}).call(this,e("_process"))},{"./DOMLazyTree":210,"./DOMProperty":212,"./ReactBrowserEventEmitter":226,"./ReactDOMComponentTree":234,"./ReactDOMContainerInfo":235,"./ReactDOMFeatureFlags":237,"./ReactFeatureFlags":257,"./ReactInstanceMap":262,"./ReactInstrumentation":263,"./ReactMarkupChecksum":265,"./ReactReconciler":273,"./ReactUpdateQueue":277,"./ReactUpdates":278,"./instantiateReactComponent":317,"./reactProdInvariant":321,"./setInnerHTML":323,"./shouldUpdateReactComponent":325,_process:162,"fbjs/lib/emptyObject":43,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"react/lib/React":330,"react/lib/ReactCurrentOwner":334}],267:[function(e,t,n){(function(n){"use strict";function r(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}function o(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:f.getHostNode(e),toIndex:n,afterNode:t}}function a(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}function i(e){return{type:"SET_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function s(e){return{type:"TEXT_CONTENT",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function u(e,t){return t&&(e=e||[],e.push(t)),e}function c(e,t){p.processChildrenUpdates(e,t)}var l=e("./reactProdInvariant"),p=e("./ReactComponentEnvironment"),f=(e("./ReactInstanceMap"),e("./ReactInstrumentation"),e("react/lib/ReactCurrentOwner"),e("./ReactReconciler")),d=e("./ReactChildReconciler"),h=(e("fbjs/lib/emptyFunction"),e("./flattenChildren")),v=(e("fbjs/lib/invariant"),{Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return d.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,o,a){var i,s=0;return i=h(t,s),d.updateChildren(e,i,n,r,o,this,this._hostContainerInfo,a,s),i},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],a=0;for(var i in r)if(r.hasOwnProperty(i)){var s=r[i],u=0,c=f.mountComponent(s,t,this,this._hostContainerInfo,n,u);s._mountIndex=a++,o.push(c)}return o},updateTextContent:function(e){var t=this._renderedChildren;d.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&l("118");var r=[s(e)];c(this,r)},updateMarkup:function(e){var t=this._renderedChildren;d.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&l("118");var r=[i(e)];c(this,r)},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,o={},a=[],i=this._reconcilerUpdateChildren(r,e,a,o,t,n);if(i||r){var s,l=null,p=0,d=0,h=0,v=null;for(s in i)if(i.hasOwnProperty(s)){var g=r&&r[s],m=i[s];g===m?(l=u(l,this.moveChild(g,v,p,d)),d=Math.max(g._mountIndex,d),g._mountIndex=p):(g&&(d=Math.max(g._mountIndex,d)),l=u(l,this._mountChildAtIndex(m,a[h],v,p,t,n)),h++),p++,v=f.getHostNode(m)}for(s in o)o.hasOwnProperty(s)&&(l=u(l,this._unmountChild(r[s],o[s])));l&&c(this,l),this._renderedChildren=i}},unmountChildren:function(e){var t=this._renderedChildren;d.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex<r)return o(e,t,n)},createChild:function(e,t,n){return r(n,t,e._mountIndex)},removeChild:function(e,t){return a(e,t)},_mountChildAtIndex:function(e,t,n,r,o,a){return e._mountIndex=r,this.createChild(e,n,t)},_unmountChild:function(e,t){var n=this.removeChild(e,t);return e._mountIndex=null,n}}});t.exports=v;
9
- }).call(this,e("_process"))},{"./ReactChildReconciler":227,"./ReactComponentEnvironment":229,"./ReactInstanceMap":262,"./ReactInstrumentation":263,"./ReactReconciler":273,"./flattenChildren":305,"./reactProdInvariant":321,_process:162,"fbjs/lib/emptyFunction":42,"fbjs/lib/invariant":50,"react/lib/ReactCurrentOwner":334}],268:[function(e,t,n){(function(n){"use strict";var r=e("./reactProdInvariant"),o=e("react/lib/React"),a=(e("fbjs/lib/invariant"),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(e){return null===e||e===!1?a.EMPTY:o.isValidElement(e)?"function"==typeof e.type?a.COMPOSITE:a.HOST:void r("26",e)}});t.exports=a}).call(this,e("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"react/lib/React":330}],269:[function(e,t,n){(function(n){"use strict";function r(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)}var o=e("./reactProdInvariant"),a=(e("fbjs/lib/invariant"),{addComponentAsRefTo:function(e,t,n){r(n)?void 0:o("119"),n.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,n){r(n)?void 0:o("120");var a=n.getPublicInstance();a&&a.refs[t]===e.getPublicInstance()&&n.detachRef(t)}});t.exports=a}).call(this,e("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],270:[function(e,t,n){(function(e){"use strict";var n={};t.exports=n}).call(this,e("_process"))},{_process:162}],271:[function(e,t,n){"use strict";var r="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";t.exports=r},{}],272:[function(e,t,n){(function(n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=a.getPooled(null),this.useCreateElement=e}var o=e("object-assign"),a=e("./CallbackQueue"),i=e("./PooledClass"),s=e("./ReactBrowserEventEmitter"),u=e("./ReactInputSelection"),c=(e("./ReactInstrumentation"),e("./Transaction")),l=e("./ReactUpdateQueue"),p={initialize:u.getSelectionInformation,close:u.restoreSelection},f={initialize:function(){var e=s.isEnabled();return s.setEnabled(!1),e},close:function(e){s.setEnabled(e)}},d={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},h=[p,f,d],v={getTransactionWrappers:function(){return h},getReactMountReady:function(){return this.reactMountReady},getUpdateQueue:function(){return l},checkpoint:function(){return this.reactMountReady.checkpoint()},rollback:function(e){this.reactMountReady.rollback(e)},destructor:function(){a.release(this.reactMountReady),this.reactMountReady=null}};o(r.prototype,c,v),i.addPoolingTo(r),t.exports=r}).call(this,e("_process"))},{"./CallbackQueue":207,"./PooledClass":225,"./ReactBrowserEventEmitter":226,"./ReactInputSelection":261,"./ReactInstrumentation":263,"./ReactUpdateQueue":277,"./Transaction":296,_process:162,"object-assign":161}],273:[function(e,t,n){(function(n){"use strict";function r(){o.attachRefs(this,this._currentElement)}var o=e("./ReactRef"),a=(e("./ReactInstrumentation"),e("fbjs/lib/warning"),{mountComponent:function(e,t,n,o,a,i){var s=e.mountComponent(t,n,o,a,i);return e._currentElement&&null!=e._currentElement.ref&&t.getReactMountReady().enqueue(r,e),s},getHostNode:function(e){return e.getHostNode()},unmountComponent:function(e,t){o.detachRefs(e,e._currentElement),e.unmountComponent(t)},receiveComponent:function(e,t,n,a){var i=e._currentElement;if(t!==i||a!==e._context){var s=o.shouldUpdateRefs(i,t);s&&o.detachRefs(e,i),e.receiveComponent(t,n,a),s&&e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(r,e)}},performUpdateIfNecessary:function(e,t,n){e._updateBatchNumber===n&&e.performUpdateIfNecessary(t)}});t.exports=a}).call(this,e("_process"))},{"./ReactInstrumentation":263,"./ReactRef":274,_process:162,"fbjs/lib/warning":57}],274:[function(e,t,n){"use strict";function r(e,t,n){"function"==typeof e?e(t.getPublicInstance()):a.addComponentAsRefTo(t,e,n)}function o(e,t,n){"function"==typeof e?e(null):a.removeComponentAsRefFrom(t,e,n)}var a=e("./ReactOwner"),i={};i.attachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&r(n,e,t._owner)}},i.shouldUpdateRefs=function(e,t){var n=null,r=null;null!==e&&"object"==typeof e&&(n=e.ref,r=e._owner);var o=null,a=null;return null!==t&&"object"==typeof t&&(o=t.ref,a=t._owner),n!==o||"string"==typeof o&&a!==r},i.detachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&o(n,e,t._owner)}},t.exports=i},{"./ReactOwner":269}],275:[function(e,t,n){(function(n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.useCreateElement=!1,this.updateQueue=new s(this)}var o=e("object-assign"),a=e("./PooledClass"),i=e("./Transaction"),s=(e("./ReactInstrumentation"),e("./ReactServerUpdateQueue")),u=[],c={enqueue:function(){}},l={getTransactionWrappers:function(){return u},getReactMountReady:function(){return c},getUpdateQueue:function(){return this.updateQueue},destructor:function(){},checkpoint:function(){},rollback:function(){}};o(r.prototype,i,l),a.addPoolingTo(r),t.exports=r}).call(this,e("_process"))},{"./PooledClass":225,"./ReactInstrumentation":263,"./ReactServerUpdateQueue":276,"./Transaction":296,_process:162,"object-assign":161}],276:[function(e,t,n){(function(n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){}var a=e("./ReactUpdateQueue"),i=(e("fbjs/lib/warning"),function(){function e(t){r(this,e),this.transaction=t}return e.prototype.isMounted=function(e){return!1},e.prototype.enqueueCallback=function(e,t,n){this.transaction.isInTransaction()&&a.enqueueCallback(e,t,n)},e.prototype.enqueueForceUpdate=function(e){this.transaction.isInTransaction()?a.enqueueForceUpdate(e):o(e,"forceUpdate")},e.prototype.enqueueReplaceState=function(e,t){this.transaction.isInTransaction()?a.enqueueReplaceState(e,t):o(e,"replaceState")},e.prototype.enqueueSetState=function(e,t){this.transaction.isInTransaction()?a.enqueueSetState(e,t):o(e,"setState")},e}());t.exports=i}).call(this,e("_process"))},{"./ReactUpdateQueue":277,_process:162,"fbjs/lib/warning":57}],277:[function(e,t,n){(function(n){"use strict";function r(e){u.enqueueUpdate(e)}function o(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}function a(e,t){var n=s.get(e);if(!n){return null}return n}var i=e("./reactProdInvariant"),s=(e("react/lib/ReactCurrentOwner"),e("./ReactInstanceMap")),u=(e("./ReactInstrumentation"),e("./ReactUpdates")),c=(e("fbjs/lib/invariant"),e("fbjs/lib/warning"),{isMounted:function(e){var t=s.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){c.validateCallback(t,n);var o=a(e);return o?(o._pendingCallbacks?o._pendingCallbacks.push(t):o._pendingCallbacks=[t],void r(o)):null},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],r(e)},enqueueForceUpdate:function(e){var t=a(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t,n){var o=a(e,"replaceState");o&&(o._pendingStateQueue=[t],o._pendingReplaceState=!0,void 0!==n&&null!==n&&(c.validateCallback(n,"replaceState"),o._pendingCallbacks?o._pendingCallbacks.push(n):o._pendingCallbacks=[n]),r(o))},enqueueSetState:function(e,t){var n=a(e,"setState");if(n){var o=n._pendingStateQueue||(n._pendingStateQueue=[]);o.push(t),r(n)}},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,r(e)},validateCallback:function(e,t){e&&"function"!=typeof e?i("122",t,o(e)):void 0}});t.exports=c}).call(this,e("_process"))},{"./ReactInstanceMap":262,"./ReactInstrumentation":263,"./ReactUpdates":278,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"react/lib/ReactCurrentOwner":334}],278:[function(e,t,n){(function(n){"use strict";function r(){x.ReactReconcileTransaction&&C?void 0:l("123")}function o(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=f.getPooled(),this.reconcileTransaction=x.ReactReconcileTransaction.getPooled(!0)}function a(e,t,n,o,a,i){return r(),C.batchedUpdates(e,t,n,o,a,i)}function i(e,t){return e._mountOrder-t._mountOrder}function s(e){var t=e.dirtyComponentsLength;t!==y.length?l("124",t,y.length):void 0,y.sort(i),b++;for(var n=0;n<t;n++){var r=y[n],o=r._pendingCallbacks;r._pendingCallbacks=null;var a;if(h.logTopLevelRenders){var s=r;r._currentElement.type.isReactTopLevelWrapper&&(s=r._renderedComponent),a="React update: "+s.getName(),console.time(a)}if(v.performUpdateIfNecessary(r,e.reconcileTransaction,b),a&&console.timeEnd(a),o)for(var u=0;u<o.length;u++)e.callbackQueue.enqueue(o[u],r.getPublicInstance())}}function u(e){return r(),C.isBatchingUpdates?(y.push(e),void(null==e._updateBatchNumber&&(e._updateBatchNumber=b+1))):void C.batchedUpdates(u,e)}function c(e,t){m(C.isBatchingUpdates,"ReactUpdates.asap: Can't enqueue an asap callback in a context whereupdates are not being batched."),_.enqueue(e,t),E=!0}var l=e("./reactProdInvariant"),p=e("object-assign"),f=e("./CallbackQueue"),d=e("./PooledClass"),h=e("./ReactFeatureFlags"),v=e("./ReactReconciler"),g=e("./Transaction"),m=e("fbjs/lib/invariant"),y=[],b=0,_=f.getPooled(),E=!1,C=null,w={initialize:function(){this.dirtyComponentsLength=y.length},close:function(){this.dirtyComponentsLength!==y.length?(y.splice(0,this.dirtyComponentsLength),D()):y.length=0}},O={initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}},T=[w,O];p(o.prototype,g,{getTransactionWrappers:function(){return T},destructor:function(){this.dirtyComponentsLength=null,f.release(this.callbackQueue),this.callbackQueue=null,x.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return g.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),d.addPoolingTo(o);var D=function(){for(;y.length||E;){if(y.length){var e=o.getPooled();e.perform(s,null,e),o.release(e)}if(E){E=!1;var t=_;_=f.getPooled(),t.notifyAll(),f.release(t)}}},S={injectReconcileTransaction:function(e){e?void 0:l("126"),x.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){e?void 0:l("127"),"function"!=typeof e.batchedUpdates?l("128"):void 0,"boolean"!=typeof e.isBatchingUpdates?l("129"):void 0,C=e}},x={ReactReconcileTransaction:null,batchedUpdates:a,enqueueUpdate:u,flushBatchedUpdates:D,injection:S,asap:c};t.exports=x}).call(this,e("_process"))},{"./CallbackQueue":207,"./PooledClass":225,"./ReactFeatureFlags":257,"./ReactReconciler":273,"./Transaction":296,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"object-assign":161}],279:[function(e,t,n){"use strict";t.exports="15.6.2"},{}],280:[function(e,t,n){"use strict";var r={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},o={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.xlink,xlinkArcrole:r.xlink,xlinkHref:r.xlink,xlinkRole:r.xlink,xlinkShow:r.xlink,xlinkTitle:r.xlink,xlinkType:r.xlink,xmlBase:r.xml,xmlLang:r.xml,xmlSpace:r.xml},DOMAttributeNames:{}};Object.keys(o).forEach(function(e){a.Properties[e]=0,o[e]&&(a.DOMAttributeNames[e]=o[e])}),t.exports=a},{}],281:[function(e,t,n){"use strict";function r(e){if("selectionStart"in e&&u.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}}}function o(e,t){if(y||null==v||v!==l())return null;var n=r(v);if(!m||!f(m,n)){m=n;var o=c.getPooled(h.select,g,e,t);return o.type="select",o.target=v,a.accumulateTwoPhaseDispatches(o),o}return null}var a=e("./EventPropagators"),i=e("fbjs/lib/ExecutionEnvironment"),s=e("./ReactDOMComponentTree"),u=e("./ReactInputSelection"),c=e("./SyntheticEvent"),l=e("fbjs/lib/getActiveElement"),p=e("./isTextInputElement"),f=e("fbjs/lib/shallowEqual"),d=i.canUseDOM&&"documentMode"in document&&document.documentMode<=11,h={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:["topBlur","topContextMenu","topFocus","topKeyDown","topKeyUp","topMouseDown","topMouseUp","topSelectionChange"]}},v=null,g=null,m=null,y=!1,b=!1,_={eventTypes:h,extractEvents:function(e,t,n,r){if(!b)return null;var a=t?s.getNodeFromInstance(t):window;switch(e){case"topFocus":(p(a)||"true"===a.contentEditable)&&(v=a,g=t,m=null);break;case"topBlur":v=null,g=null,m=null;break;case"topMouseDown":y=!0;break;case"topContextMenu":case"topMouseUp":return y=!1,o(n,r);case"topSelectionChange":if(d)break;case"topKeyDown":case"topKeyUp":return o(n,r)}return null},didPutListener:function(e,t,n){"onSelect"===t&&(b=!0)}};t.exports=_},{"./EventPropagators":220,"./ReactDOMComponentTree":234,"./ReactInputSelection":261,"./SyntheticEvent":287,"./isTextInputElement":319,"fbjs/lib/ExecutionEnvironment":36,"fbjs/lib/getActiveElement":45,"fbjs/lib/shallowEqual":56}],282:[function(e,t,n){(function(n){"use strict";function r(e){return"."+e._rootNodeID}function o(e){return"button"===e||"input"===e||"select"===e||"textarea"===e}var a=e("./reactProdInvariant"),i=e("fbjs/lib/EventListener"),s=e("./EventPropagators"),u=e("./ReactDOMComponentTree"),c=e("./SyntheticAnimationEvent"),l=e("./SyntheticClipboardEvent"),p=e("./SyntheticEvent"),f=e("./SyntheticFocusEvent"),d=e("./SyntheticKeyboardEvent"),h=e("./SyntheticMouseEvent"),v=e("./SyntheticDragEvent"),g=e("./SyntheticTouchEvent"),m=e("./SyntheticTransitionEvent"),y=e("./SyntheticUIEvent"),b=e("./SyntheticWheelEvent"),_=e("fbjs/lib/emptyFunction"),E=e("./getEventCharCode"),C=(e("fbjs/lib/invariant"),{}),w={};["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]};C[e]=o,w[r]=o});var O={},T={eventTypes:C,extractEvents:function(e,t,n,r){var o=w[e];if(!o)return null;var i;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":i=p;break;case"topKeyPress":if(0===E(n))return null;case"topKeyDown":case"topKeyUp":i=d;break;case"topBlur":case"topFocus":i=f;break;case"topClick":if(2===n.button)return null;case"topDoubleClick":case"topMouseDown":case"topMouseMove":case"topMouseUp":case"topMouseOut":case"topMouseOver":case"topContextMenu":i=h;break;case"topDrag":case"topDragEnd":case"topDragEnter":case"topDragExit":case"topDragLeave":case"topDragOver":case"topDragStart":case"topDrop":i=v;break;case"topTouchCancel":case"topTouchEnd":case"topTouchMove":case"topTouchStart":i=g;break;case"topAnimationEnd":case"topAnimationIteration":case"topAnimationStart":i=c;break;case"topTransitionEnd":i=m;break;case"topScroll":i=y;break;case"topWheel":i=b;break;case"topCopy":case"topCut":case"topPaste":i=l}i?void 0:a("86",e);var u=i.getPooled(o,t,n,r);return s.accumulateTwoPhaseDispatches(u),u},didPutListener:function(e,t,n){if("onClick"===t&&!o(e._tag)){var a=r(e),s=u.getNodeFromInstance(e);O[a]||(O[a]=i.listen(s,"click",_))}},willDeleteListener:function(e,t){if("onClick"===t&&!o(e._tag)){var n=r(e);O[n].remove(),delete O[n]}}};t.exports=T}).call(this,e("_process"))},{"./EventPropagators":220,"./ReactDOMComponentTree":234,"./SyntheticAnimationEvent":283,"./SyntheticClipboardEvent":284,"./SyntheticDragEvent":286,"./SyntheticEvent":287,"./SyntheticFocusEvent":288,"./SyntheticKeyboardEvent":290,"./SyntheticMouseEvent":291,"./SyntheticTouchEvent":292,"./SyntheticTransitionEvent":293,"./SyntheticUIEvent":294,"./SyntheticWheelEvent":295,"./getEventCharCode":307,"./reactProdInvariant":321,_process:162,"fbjs/lib/EventListener":35,"fbjs/lib/emptyFunction":42,"fbjs/lib/invariant":50}],283:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e("./SyntheticEvent"),a={animationName:null,elapsedTime:null,pseudoElement:null};o.augmentClass(r,a),t.exports=r},{"./SyntheticEvent":287}],284:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e("./SyntheticEvent"),a={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};o.augmentClass(r,a),t.exports=r},{"./SyntheticEvent":287}],285:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e("./SyntheticEvent"),a={data:null};o.augmentClass(r,a),t.exports=r},{"./SyntheticEvent":287}],286:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e("./SyntheticMouseEvent"),a={dataTransfer:null};o.augmentClass(r,a),t.exports=r},{"./SyntheticMouseEvent":291}],287:[function(e,t,n){(function(n){"use strict";function r(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)){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:n.returnValue===!1;return u?this.isDefaultPrevented=i.thatReturnsTrue:this.isDefaultPrevented=i.thatReturnsFalse,this.isPropagationStopped=i.thatReturnsFalse,this}var o=e("object-assign"),a=e("./PooledClass"),i=e("fbjs/lib/emptyFunction"),s=(e("fbjs/lib/warning"),"function"==typeof Proxy,["dispatchConfig","_targetInst","nativeEvent","isDefaultPrevented","isPropagationStopped","_dispatchListeners","_dispatchInstances"]),u={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};o(r.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<s.length;n++)this[s[n]]=null}}),r.Interface=u,r.augmentClass=function(e,t){var n=this,r=function(){};r.prototype=n.prototype;var i=new r;o(i,e.prototype),e.prototype=i,e.prototype.constructor=e,e.Interface=o({},n.Interface,t),e.augmentClass=n.augmentClass,a.addPoolingTo(e,a.fourArgumentPooler)},a.addPoolingTo(r,a.fourArgumentPooler),t.exports=r}).call(this,e("_process"))},{"./PooledClass":225,_process:162,"fbjs/lib/emptyFunction":42,"fbjs/lib/warning":57,"object-assign":161}],288:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e("./SyntheticUIEvent"),a={relatedTarget:null};o.augmentClass(r,a),t.exports=r},{"./SyntheticUIEvent":294}],289:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e("./SyntheticEvent"),a={data:null};o.augmentClass(r,a),t.exports=r},{"./SyntheticEvent":287}],290:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e("./SyntheticUIEvent"),a=e("./getEventCharCode"),i=e("./getEventKey"),s=e("./getEventModifierState"),u={key:i,location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:s,charCode:function(e){return"keypress"===e.type?a(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?a(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};o.augmentClass(r,u),t.exports=r},{"./SyntheticUIEvent":294,"./getEventCharCode":307,"./getEventKey":308,"./getEventModifierState":309}],291:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e("./SyntheticUIEvent"),a=e("./ViewportMetrics"),i=e("./getEventModifierState"),s={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:i,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+a.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+a.currentScrollTop}};o.augmentClass(r,s),t.exports=r},{"./SyntheticUIEvent":294,"./ViewportMetrics":297,"./getEventModifierState":309}],292:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e("./SyntheticUIEvent"),a=e("./getEventModifierState"),i={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:a};o.augmentClass(r,i),t.exports=r},{"./SyntheticUIEvent":294,"./getEventModifierState":309}],293:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e("./SyntheticEvent"),a={propertyName:null,elapsedTime:null,pseudoElement:null};o.augmentClass(r,a),t.exports=r},{"./SyntheticEvent":287}],294:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e("./SyntheticEvent"),a=e("./getEventTarget"),i={view:function(e){if(e.view)return e.view;var t=a(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}};o.augmentClass(r,i),t.exports=r},{"./SyntheticEvent":287,"./getEventTarget":310}],295:[function(e,t,n){"use strict";function r(e,t,n,r){return o.call(this,e,t,n,r)}var o=e("./SyntheticMouseEvent"),a={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};o.augmentClass(r,a),t.exports=r},{"./SyntheticMouseEvent":291}],296:[function(e,t,n){(function(n){"use strict";var r=e("./reactProdInvariant"),o=(e("fbjs/lib/invariant"),{}),a={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,a,i,s,u){this.isInTransaction()?r("27"):void 0;var c,l;try{this._isInTransaction=!0,c=!0,this.initializeAll(0),l=e.call(t,n,o,a,i,s,u),c=!1}finally{try{if(c)try{this.closeAll(0)}catch(p){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return l},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(a){}}}},closeAll:function(e){this.isInTransaction()?void 0:r("28");for(var t=this.transactionWrappers,n=e;n<t.length;n++){var a,i=t[n],s=this.wrapperInitData[n];try{a=!0,s!==o&&i.close&&i.close.call(this,s),a=!1}finally{if(a)try{this.closeAll(n+1)}catch(u){}}}this.wrapperInitData.length=0}};t.exports=a}).call(this,e("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],297:[function(e,t,n){"use strict";var r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};t.exports=r},{}],298:[function(e,t,n){(function(n){"use strict";function r(e,t){return null==t?o("30"):void 0,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]}var o=e("./reactProdInvariant");e("fbjs/lib/invariant");t.exports=r}).call(this,e("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],299:[function(e,t,n){"use strict";function r(e){for(var t=1,n=0,r=0,a=e.length,i=a&-4;r<i;){for(var s=Math.min(r+4096,i);r<s;r+=4)n+=(t+=e.charCodeAt(r))+(t+=e.charCodeAt(r+1))+(t+=e.charCodeAt(r+2))+(t+=e.charCodeAt(r+3));t%=o,n%=o}for(;r<a;r++)n+=t+=e.charCodeAt(r);return t%=o,n%=o,t|n<<16}var o=65521;t.exports=r},{}],300:[function(e,t,n){(function(n){"use strict";function r(e,t,n,r,u,c){for(var l in e)if(e.hasOwnProperty(l)){var p;try{"function"!=typeof e[l]?o("84",r||"React class",a[n],l):void 0,p=e[l](t,l,r,n,null,i)}catch(f){p=f}if(p instanceof Error&&!(p.message in s)){s[p.message]=!0}}}var o=e("./reactProdInvariant"),a=e("./ReactPropTypeLocationNames"),i=e("./ReactPropTypesSecret");e("fbjs/lib/invariant"),e("fbjs/lib/warning");"undefined"!=typeof n&&n.env,1;var s={};t.exports=r}).call(this,e("_process"))},{"./ReactPropTypeLocationNames":270,"./ReactPropTypesSecret":271,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"react/lib/ReactComponentTreeHook":333}],301:[function(e,t,n){"use strict";var r=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e};t.exports=r},{}],302:[function(e,t,n){(function(n){"use strict";function r(e,t,n,r){var o=null==t||"boolean"==typeof t||""===t;if(o)return"";var i=isNaN(t);if(r||i||0===t||a.hasOwnProperty(e)&&a[e])return""+t;if("string"==typeof t){t=t.trim()}return t+"px"}var o=e("./CSSProperty"),a=(e("fbjs/lib/warning"),o.isUnitlessNumber);t.exports=r}).call(this,e("_process"))},{"./CSSProperty":205,_process:162,"fbjs/lib/warning":57}],303:[function(e,t,n){"use strict";function r(e){var t=""+e,n=a.exec(t);if(!n)return t;var r,o="",i=0,s=0;for(i=n.index;i<t.length;i++){switch(t.charCodeAt(i)){case 34:r="&quot;";break;case 38:r="&amp;";break;case 39:r="&#x27;";break;case 60:r="&lt;";break;case 62:r="&gt;";break;default:continue}s!==i&&(o+=t.substring(s,i)),s=i+1,o+=r}return s!==i?o+t.substring(s,i):o}function o(e){
10
- return"boolean"==typeof e||"number"==typeof e?""+e:r(e)}var a=/["'&<>]/;t.exports=o},{}],304:[function(e,t,n){(function(n){"use strict";function r(e){if(null==e)return null;if(1===e.nodeType)return e;var t=i.get(e);return t?(t=s(t),t?a.getNodeFromInstance(t):null):void("function"==typeof e.render?o("44"):o("45",Object.keys(e)))}var o=e("./reactProdInvariant"),a=(e("react/lib/ReactCurrentOwner"),e("./ReactDOMComponentTree")),i=e("./ReactInstanceMap"),s=e("./getHostComponentFromComposite");e("fbjs/lib/invariant"),e("fbjs/lib/warning");t.exports=r}).call(this,e("_process"))},{"./ReactDOMComponentTree":234,"./ReactInstanceMap":262,"./getHostComponentFromComposite":311,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"react/lib/ReactCurrentOwner":334}],305:[function(e,t,n){(function(n){"use strict";function r(e,t,n,r){if(e&&"object"==typeof e){var o=e,a=void 0===o[n];a&&null!=t&&(o[n]=t)}}function o(e,t){if(null==e)return e;var n={};return a(e,r,n),n}var a=(e("./KeyEscapeUtils"),e("./traverseAllChildren"));e("fbjs/lib/warning");"undefined"!=typeof n&&n.env,1,t.exports=o}).call(this,e("_process"))},{"./KeyEscapeUtils":223,"./traverseAllChildren":326,_process:162,"fbjs/lib/warning":57,"react/lib/ReactComponentTreeHook":333}],306:[function(e,t,n){"use strict";function r(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}t.exports=r},{}],307:[function(e,t,n){"use strict";function r(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}t.exports=r},{}],308:[function(e,t,n){"use strict";function r(e){if(e.key){var t=a[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=o(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?i[e.keyCode]||"Unidentified":""}var o=e("./getEventCharCode"),a={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"};t.exports=r},{"./getEventCharCode":307}],309:[function(e,t,n){"use strict";function r(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=a[e];return!!r&&!!n[r]}function o(e){return r}var a={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};t.exports=o},{}],310:[function(e,t,n){"use strict";function r(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}t.exports=r},{}],311:[function(e,t,n){"use strict";function r(e){for(var t;(t=e._renderedNodeType)===o.COMPOSITE;)e=e._renderedComponent;return t===o.HOST?e._renderedComponent:t===o.EMPTY?null:void 0}var o=e("./ReactNodeTypes");t.exports=r},{"./ReactNodeTypes":268}],312:[function(e,t,n){"use strict";function r(e){var t=e&&(o&&e[o]||e[a]);if("function"==typeof t)return t}var o="function"==typeof Symbol&&Symbol.iterator,a="@@iterator";t.exports=r},{}],313:[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}}function a(e,t){for(var n=r(e),a=0,i=0;n;){if(3===n.nodeType){if(i=a+n.textContent.length,a<=t&&i>=t)return{node:n,offset:t-a};a=i}n=r(o(n))}}t.exports=a},{}],314:[function(e,t,n){"use strict";function r(){return!a&&o.canUseDOM&&(a="textContent"in document.documentElement?"textContent":"innerText"),a}var o=e("fbjs/lib/ExecutionEnvironment"),a=null;t.exports=r},{"fbjs/lib/ExecutionEnvironment":36}],315:[function(e,t,n){"use strict";function r(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}function o(e){if(s[e])return s[e];if(!i[e])return e;var t=i[e];for(var n in t)if(t.hasOwnProperty(n)&&n in u)return s[e]=t[n];return""}var a=e("fbjs/lib/ExecutionEnvironment"),i={animationend:r("Animation","AnimationEnd"),animationiteration:r("Animation","AnimationIteration"),animationstart:r("Animation","AnimationStart"),transitionend:r("Transition","TransitionEnd")},s={},u={};a.canUseDOM&&(u=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),t.exports=o},{"fbjs/lib/ExecutionEnvironment":36}],316:[function(e,t,n){"use strict";function r(e){var t=e.type,n=e.nodeName;return n&&"input"===n.toLowerCase()&&("checkbox"===t||"radio"===t)}function o(e){return e._wrapperState.valueTracker}function a(e,t){e._wrapperState.valueTracker=t}function i(e){e._wrapperState.valueTracker=null}function s(e){var t;return e&&(t=r(e)?""+e.checked:e.value),t}var u=e("./ReactDOMComponentTree"),c={_getTrackerFromNode:function(e){return o(u.getInstanceFromNode(e))},track:function(e){if(!o(e)){var t=u.getNodeFromInstance(e),n=r(t)?"checked":"value",s=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),c=""+t[n];t.hasOwnProperty(n)||"function"!=typeof s.get||"function"!=typeof s.set||(Object.defineProperty(t,n,{enumerable:s.enumerable,configurable:!0,get:function(){return s.get.call(this)},set:function(e){c=""+e,s.set.call(this,e)}}),a(e,{getValue:function(){return c},setValue:function(e){c=""+e},stopTracking:function(){i(e),delete t[n]}}))}},updateValueIfChanged:function(e){if(!e)return!1;var t=o(e);if(!t)return c.track(e),!0;var n=t.getValue(),r=s(u.getNodeFromInstance(e));return r!==n&&(t.setValue(r),!0)},stopTracking:function(e){var t=o(e);t&&t.stopTracking()}};t.exports=c},{"./ReactDOMComponentTree":234}],317:[function(e,t,n){(function(n){"use strict";function r(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}function o(e){return"function"==typeof e&&"undefined"!=typeof e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function a(e,t){var n;if(null===e||e===!1)n=c.create(a);else if("object"==typeof e){var s=e,u=s.type;if("function"!=typeof u&&"string"!=typeof u){var f="";f+=r(s._owner),i("130",null==u?u:typeof u,f)}"string"==typeof s.type?n=l.createInternalComponent(s):o(s.type)?(n=new s.type(s),n.getHostNode||(n.getHostNode=n.getNativeNode)):n=new p(s)}else"string"==typeof e||"number"==typeof e?n=l.createInstanceForText(e):i("131",typeof e);return n._mountIndex=0,n._mountImage=null,n}var i=e("./reactProdInvariant"),s=e("object-assign"),u=e("./ReactCompositeComponent"),c=e("./ReactEmptyComponent"),l=e("./ReactHostComponent"),p=(e("react/lib/getNextDebugID"),e("fbjs/lib/invariant"),e("fbjs/lib/warning"),function(e){this.construct(e)});s(p.prototype,u,{_instantiateReactComponent:a}),t.exports=a}).call(this,e("_process"))},{"./ReactCompositeComponent":230,"./ReactEmptyComponent":253,"./ReactHostComponent":258,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"object-assign":161,"react/lib/getNextDebugID":348}],318:[function(e,t,n){"use strict";function r(e,t){if(!a.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var i=document.createElement("div");i.setAttribute(n,"return;"),r="function"==typeof i[n]}return!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var o,a=e("fbjs/lib/ExecutionEnvironment");a.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),t.exports=r},{"fbjs/lib/ExecutionEnvironment":36}],319:[function(e,t,n){"use strict";function r(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!o[e.type]:"textarea"===t}var o={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};t.exports=r},{}],320:[function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=e("./escapeTextContentForBrowser");t.exports=r},{"./escapeTextContentForBrowser":303}],321:[function(e,t,n){"use strict";function r(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}t.exports=r},{}],322:[function(e,t,n){"use strict";var r=e("./ReactMount");t.exports=r.renderSubtreeIntoContainer},{"./ReactMount":266}],323:[function(e,t,n){"use strict";var r,o=e("fbjs/lib/ExecutionEnvironment"),a=e("./DOMNamespaces"),i=/^[ \r\n\t\f]/,s=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,u=e("./createMicrosoftUnsafeLocalFunction"),c=u(function(e,t){if(e.namespaceURI!==a.svg||"innerHTML"in e)e.innerHTML=t;else{r=r||document.createElement("div"),r.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&&(c=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),i.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}t.exports=c},{"./DOMNamespaces":211,"./createMicrosoftUnsafeLocalFunction":301,"fbjs/lib/ExecutionEnvironment":36}],324:[function(e,t,n){"use strict";var r=e("fbjs/lib/ExecutionEnvironment"),o=e("./escapeTextContentForBrowser"),a=e("./setInnerHTML"),i=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||(i=function(e,t){return 3===e.nodeType?void(e.nodeValue=t):void a(e,o(t))})),t.exports=i},{"./escapeTextContentForBrowser":303,"./setInnerHTML":323,"fbjs/lib/ExecutionEnvironment":36}],325:[function(e,t,n){"use strict";function r(e,t){var n=null===e||e===!1,r=null===t||t===!1;if(n||r)return n===r;var o=typeof e,a=typeof t;return"string"===o||"number"===o?"string"===a||"number"===a:"object"===a&&e.type===t.type&&e.key===t.key}t.exports=r},{}],326:[function(e,t,n){(function(n){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?c.escape(e.key):t.toString(36)}function o(e,t,n,a){var f=typeof e;if("undefined"!==f&&"boolean"!==f||(e=null),null===e||"string"===f||"number"===f||"object"===f&&e.$$typeof===s)return n(a,e,""===t?l+r(e,0):t),1;var d,h,v=0,g=""===t?l:t+p;if(Array.isArray(e))for(var m=0;m<e.length;m++)d=e[m],h=g+r(d,m),v+=o(d,h,n,a);else{var y=u(e);if(y){var b,_=y.call(e);if(y!==e.entries)for(var E=0;!(b=_.next()).done;)d=b.value,h=g+r(d,E++),v+=o(d,h,n,a);else for(;!(b=_.next()).done;){var C=b.value;C&&(d=C[1],h=g+c.escape(C[0])+p+r(d,0),v+=o(d,h,n,a))}}else if("object"===f){var w="",O=String(e);i("31","[object Object]"===O?"object with keys {"+Object.keys(e).join(", ")+"}":O,w)}}return v}function a(e,t,n){return null==e?0:o(e,"",t,n)}var i=e("./reactProdInvariant"),s=(e("react/lib/ReactCurrentOwner"),e("./ReactElementSymbol")),u=e("./getIteratorFn"),c=(e("fbjs/lib/invariant"),e("./KeyEscapeUtils")),l=(e("fbjs/lib/warning"),"."),p=":";t.exports=a}).call(this,e("_process"))},{"./KeyEscapeUtils":223,"./ReactElementSymbol":252,"./getIteratorFn":312,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"react/lib/ReactCurrentOwner":334}],327:[function(e,t,n){(function(n){"use strict";var r=(e("object-assign"),e("fbjs/lib/emptyFunction")),o=(e("fbjs/lib/warning"),r);t.exports=o}).call(this,e("_process"))},{_process:162,"fbjs/lib/emptyFunction":42,"fbjs/lib/warning":57,"object-assign":161}],328:[function(e,t,n){arguments[4][223][0].apply(n,arguments)},{dup:223}],329:[function(e,t,n){(function(n){"use strict";var r=e("./reactProdInvariant"),o=(e("fbjs/lib/invariant"),function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)}),a=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},i=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},s=function(e,t,n,r){var o=this;if(o.instancePool.length){var a=o.instancePool.pop();return o.call(a,e,t,n,r),a}return new o(e,t,n,r)},u=function(e){var t=this;e instanceof t?void 0:r("25"),e.destructor(),t.instancePool.length<t.poolSize&&t.instancePool.push(e)},c=10,l=o,p=function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||l,n.poolSize||(n.poolSize=c),n.release=u,n},f={addPoolingTo:p,oneArgumentPooler:o,twoArgumentPooler:a,threeArgumentPooler:i,fourArgumentPooler:s};t.exports=f}).call(this,e("_process"))},{"./reactProdInvariant":351,_process:162,"fbjs/lib/invariant":50}],330:[function(e,t,n){(function(n){"use strict";var r=e("object-assign"),o=e("./ReactBaseClasses"),a=e("./ReactChildren"),i=e("./ReactDOMFactories"),s=e("./ReactElement"),u=e("./ReactPropTypes"),c=e("./ReactVersion"),l=e("./createClass"),p=e("./onlyChild"),f=s.createElement,d=s.createFactory,h=s.cloneElement,v=r,g=function(e){return e},m={Children:{map:a.map,forEach:a.forEach,count:a.count,toArray:a.toArray,only:p},Component:o.Component,PureComponent:o.PureComponent,createElement:f,cloneElement:h,isValidElement:s.isValidElement,PropTypes:u,createClass:l,createFactory:d,createMixin:g,DOM:i,version:c,__spread:v};t.exports=m}).call(this,e("_process"))},{"./ReactBaseClasses":331,"./ReactChildren":332,"./ReactDOMFactories":335,"./ReactElement":336,"./ReactElementValidator":338,"./ReactPropTypes":341,"./ReactVersion":343,"./canDefineProperty":344,"./createClass":346,"./lowPriorityWarning":349,"./onlyChild":350,_process:162,"object-assign":161}],331:[function(e,t,n){(function(n){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=c,this.updater=n||u}function o(e,t,n){this.props=e,this.context=t,this.refs=c,this.updater=n||u}function a(){}var i=e("./reactProdInvariant"),s=e("object-assign"),u=e("./ReactNoopUpdateQueue"),c=(e("./canDefineProperty"),e("fbjs/lib/emptyObject"));e("fbjs/lib/invariant"),e("./lowPriorityWarning");r.prototype.isReactComponent={},r.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e?i("85"):void 0,this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},r.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")};a.prototype=r.prototype,o.prototype=new a,o.prototype.constructor=o,s(o.prototype,r.prototype),o.prototype.isPureReactComponent=!0,t.exports={Component:r,PureComponent:o}}).call(this,e("_process"))},{"./ReactNoopUpdateQueue":339,"./canDefineProperty":344,"./lowPriorityWarning":349,"./reactProdInvariant":351,_process:162,"fbjs/lib/emptyObject":43,"fbjs/lib/invariant":50,"object-assign":161}],332:[function(e,t,n){"use strict";function r(e){return(""+e).replace(_,"$&/")}function o(e,t){this.func=e,this.context=t,this.count=0}function a(e,t,n){var r=e.func,o=e.context;r.call(o,t,e.count++)}function i(e,t,n){if(null==e)return e;var r=o.getPooled(t,n);m(e,a,r),o.release(r)}function s(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function u(e,t,n){var o=e.result,a=e.keyPrefix,i=e.func,s=e.context,u=i.call(s,t,e.count++);Array.isArray(u)?c(u,o,n,g.thatReturnsArgument):null!=u&&(v.isValidElement(u)&&(u=v.cloneAndReplaceKey(u,a+(!u.key||t&&t.key===u.key?"":r(u.key)+"/")+n)),o.push(u))}function c(e,t,n,o,a){var i="";null!=n&&(i=r(n)+"/");var c=s.getPooled(t,i,o,a);m(e,u,c),s.release(c)}function l(e,t,n){if(null==e)return e;var r=[];return c(e,r,null,t,n),r}function p(e,t,n){return null}function f(e,t){return m(e,p,null)}function d(e){var t=[];return c(e,t,null,g.thatReturnsArgument),t}var h=e("./PooledClass"),v=e("./ReactElement"),g=e("fbjs/lib/emptyFunction"),m=e("./traverseAllChildren"),y=h.twoArgumentPooler,b=h.fourArgumentPooler,_=/\/+/g;o.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},h.addPoolingTo(o,y),s.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},h.addPoolingTo(s,b);var E={forEach:i,map:l,mapIntoWithKeyPrefixInternal:c,count:f,toArray:d};t.exports=E},{"./PooledClass":329,"./ReactElement":336,"./traverseAllChildren":352,"fbjs/lib/emptyFunction":42}],333:[function(e,t,n){(function(n){"use strict";function r(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(a){return!1}}function o(e){var t=c(e);if(t){var n=t.childIDs;l(e),n.forEach(o)}}function a(e,t,n){return"\n in "+(e||"Unknown")+(t?" (at "+t.fileName.replace(/^.*[\\\/]/,"")+":"+t.lineNumber+")":n?" (created by "+n+")":"")}function i(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 s(e){var t,n=T.getDisplayName(e),r=T.getElement(e),o=T.getOwnerID(e);return o&&(t=T.getDisplayName(o)),a(n,r&&r._source,t)}var u,c,l,p,f,d,h,v=e("./reactProdInvariant"),g=e("./ReactCurrentOwner"),m=(e("fbjs/lib/invariant"),e("fbjs/lib/warning"),"function"==typeof Array.from&&"function"==typeof Map&&r(Map)&&null!=Map.prototype&&"function"==typeof Map.prototype.keys&&r(Map.prototype.keys)&&"function"==typeof Set&&r(Set)&&null!=Set.prototype&&"function"==typeof Set.prototype.keys&&r(Set.prototype.keys));if(m){var y=new Map,b=new Set;u=function(e,t){y.set(e,t)},c=function(e){return y.get(e)},l=function(e){y["delete"](e)},p=function(){return Array.from(y.keys())},f=function(e){b.add(e)},d=function(e){b["delete"](e)},h=function(){return Array.from(b.keys())}}else{var _={},E={},C=function(e){return"."+e},w=function(e){return parseInt(e.substr(1),10)};u=function(e,t){var n=C(e);_[n]=t},c=function(e){var t=C(e);return _[t]},l=function(e){var t=C(e);delete _[t]},p=function(){return Object.keys(_).map(w)},f=function(e){var t=C(e);E[t]=!0},d=function(e){var t=C(e);delete E[t]},h=function(){return Object.keys(E).map(w)}}var O=[],T={onSetChildren:function(e,t){var n=c(e);n?void 0:v("144"),n.childIDs=t;for(var r=0;r<t.length;r++){var o=t[r],a=c(o);a?void 0:v("140"),null==a.childIDs&&"object"==typeof a.element&&null!=a.element?v("141"):void 0,a.isMounted?void 0:v("71"),null==a.parentID&&(a.parentID=e),a.parentID!==e?v("142",o,a.parentID,e):void 0}},onBeforeMountComponent:function(e,t,n){var r={element:t,parentID:n,text:null,childIDs:[],isMounted:!1,updateCount:0};u(e,r)},onBeforeUpdateComponent:function(e,t){var n=c(e);n&&n.isMounted&&(n.element=t)},onMountComponent:function(e){var t=c(e);t?void 0:v("144"),t.isMounted=!0;var n=0===t.parentID;n&&f(e)},onUpdateComponent:function(e){var t=c(e);t&&t.isMounted&&t.updateCount++},onUnmountComponent:function(e){var t=c(e);if(t){t.isMounted=!1;var n=0===t.parentID;n&&d(e)}O.push(e)},purgeUnmountedComponents:function(){if(!T._preventPurging){for(var e=0;e<O.length;e++){var t=O[e];o(t)}O.length=0}},isMounted:function(e){var t=c(e);return!!t&&t.isMounted},getCurrentStackAddendum:function(e){var t="";if(e){var n=i(e),r=e._owner;t+=a(n,e._source,r&&r.getName())}var o=g.current,s=o&&o._debugID;return t+=T.getStackAddendumByID(s)},getStackAddendumByID:function(e){for(var t="";e;)t+=s(e),e=T.getParentID(e);return t},getChildIDs:function(e){var t=c(e);return t?t.childIDs:[]},getDisplayName:function(e){var t=T.getElement(e);return t?i(t):null},getElement:function(e){var t=c(e);return t?t.element:null},getOwnerID:function(e){var t=T.getElement(e);return t&&t._owner?t._owner._debugID:null},getParentID:function(e){var t=c(e);return t?t.parentID:null},getSource:function(e){var t=c(e),n=t?t.element:null,r=null!=n?n._source:null;return r},getText:function(e){var t=T.getElement(e);return"string"==typeof t?t:"number"==typeof t?""+t:null},getUpdateCount:function(e){var t=c(e);return t?t.updateCount:0},getRootIDs:h,getRegisteredIDs:p,pushNonStandardWarningStack:function(e,t){if("function"==typeof console.reactStack){var n=[],r=g.current,o=r&&r._debugID;try{for(e&&n.push({name:o?T.getDisplayName(o):null,fileName:t?t.fileName:null,lineNumber:t?t.lineNumber:null});o;){var a=T.getElement(o),i=T.getParentID(o),s=T.getOwnerID(o),u=s?T.getDisplayName(s):null,c=a&&a._source;n.push({name:u,fileName:c?c.fileName:null,lineNumber:c?c.lineNumber:null}),o=i}}catch(l){}console.reactStack(n)}},popNonStandardWarningStack:function(){"function"==typeof console.reactStackEnd&&console.reactStackEnd()}};t.exports=T}).call(this,e("_process"))},{"./ReactCurrentOwner":334,"./reactProdInvariant":351,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57}],334:[function(e,t,n){"use strict";var r={current:null};t.exports=r},{}],335:[function(e,t,n){(function(n){"use strict";var r=e("./ReactElement"),o=r.createFactory,a={a:o("a"),abbr:o("abbr"),address:o("address"),area:o("area"),article:o("article"),aside:o("aside"),audio:o("audio"),b:o("b"),base:o("base"),bdi:o("bdi"),bdo:o("bdo"),big:o("big"),blockquote:o("blockquote"),body:o("body"),br:o("br"),button:o("button"),canvas:o("canvas"),caption:o("caption"),cite:o("cite"),code:o("code"),col:o("col"),colgroup:o("colgroup"),data:o("data"),datalist:o("datalist"),dd:o("dd"),del:o("del"),details:o("details"),dfn:o("dfn"),dialog:o("dialog"),div:o("div"),dl:o("dl"),dt:o("dt"),em:o("em"),embed:o("embed"),fieldset:o("fieldset"),figcaption:o("figcaption"),figure:o("figure"),footer:o("footer"),form:o("form"),h1:o("h1"),h2:o("h2"),h3:o("h3"),h4:o("h4"),h5:o("h5"),h6:o("h6"),head:o("head"),header:o("header"),hgroup:o("hgroup"),hr:o("hr"),html:o("html"),i:o("i"),iframe:o("iframe"),img:o("img"),input:o("input"),ins:o("ins"),kbd:o("kbd"),keygen:o("keygen"),label:o("label"),legend:o("legend"),li:o("li"),link:o("link"),main:o("main"),map:o("map"),mark:o("mark"),menu:o("menu"),menuitem:o("menuitem"),meta:o("meta"),meter:o("meter"),nav:o("nav"),noscript:o("noscript"),object:o("object"),ol:o("ol"),optgroup:o("optgroup"),option:o("option"),output:o("output"),p:o("p"),param:o("param"),picture:o("picture"),pre:o("pre"),progress:o("progress"),q:o("q"),rp:o("rp"),rt:o("rt"),ruby:o("ruby"),s:o("s"),samp:o("samp"),script:o("script"),section:o("section"),select:o("select"),small:o("small"),source:o("source"),span:o("span"),strong:o("strong"),style:o("style"),sub:o("sub"),summary:o("summary"),sup:o("sup"),table:o("table"),tbody:o("tbody"),td:o("td"),textarea:o("textarea"),tfoot:o("tfoot"),th:o("th"),thead:o("thead"),time:o("time"),title:o("title"),tr:o("tr"),track:o("track"),u:o("u"),ul:o("ul"),"var":o("var"),video:o("video"),wbr:o("wbr"),circle:o("circle"),clipPath:o("clipPath"),defs:o("defs"),ellipse:o("ellipse"),g:o("g"),image:o("image"),line:o("line"),linearGradient:o("linearGradient"),mask:o("mask"),path:o("path"),pattern:o("pattern"),polygon:o("polygon"),polyline:o("polyline"),radialGradient:o("radialGradient"),rect:o("rect"),stop:o("stop"),svg:o("svg"),text:o("text"),tspan:o("tspan")};t.exports=a}).call(this,e("_process"))},{"./ReactElement":336,"./ReactElementValidator":338,_process:162}],336:[function(e,t,n){(function(n){"use strict";function r(e){return void 0!==e.ref}function o(e){return void 0!==e.key}var a=e("object-assign"),i=e("./ReactCurrentOwner"),s=(e("fbjs/lib/warning"),e("./canDefineProperty"),Object.prototype.hasOwnProperty),u=e("./ReactElementSymbol"),c={key:!0,ref:!0,__self:!0,__source:!0},l=function(e,t,n,r,o,a,i){var s={$$typeof:u,type:e,key:t,ref:n,props:i,_owner:a};return s};l.createElement=function(e,t,n){var a,u={},p=null,f=null,d=null,h=null;if(null!=t){r(t)&&(f=t.ref),o(t)&&(p=""+t.key),d=void 0===t.__self?null:t.__self,h=void 0===t.__source?null:t.__source;for(a in t)s.call(t,a)&&!c.hasOwnProperty(a)&&(u[a]=t[a])}var v=arguments.length-2;if(1===v)u.children=n;else if(v>1){for(var g=Array(v),m=0;m<v;m++)g[m]=arguments[m+2];u.children=g}if(e&&e.defaultProps){var y=e.defaultProps;for(a in y)void 0===u[a]&&(u[a]=y[a])}return l(e,p,f,d,h,i.current,u)},l.createFactory=function(e){var t=l.createElement.bind(null,e);return t.type=e,t},l.cloneAndReplaceKey=function(e,t){var n=l(e.type,t,e.ref,e._self,e._source,e._owner,e.props);return n},l.cloneElement=function(e,t,n){var u,p=a({},e.props),f=e.key,d=e.ref,h=e._self,v=e._source,g=e._owner;if(null!=t){r(t)&&(d=t.ref,g=i.current),o(t)&&(f=""+t.key);var m;e.type&&e.type.defaultProps&&(m=e.type.defaultProps);for(u in t)s.call(t,u)&&!c.hasOwnProperty(u)&&(void 0===t[u]&&void 0!==m?p[u]=m[u]:p[u]=t[u])}var y=arguments.length-2;if(1===y)p.children=n;else if(y>1){for(var b=Array(y),_=0;_<y;_++)b[_]=arguments[_+2];p.children=b}return l(e.type,f,d,h,v,g,p)},l.isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===u},t.exports=l}).call(this,e("_process"))},{"./ReactCurrentOwner":334,"./ReactElementSymbol":337,"./canDefineProperty":344,_process:162,"fbjs/lib/warning":57,"object-assign":161}],337:[function(e,t,n){arguments[4][252][0].apply(n,arguments)},{dup:252}],338:[function(e,t,n){(function(n){"use strict";function r(){if(c.current){var e=c.current.getName();if(e)return" Check the render method of `"+e+"`."}return""}function o(e){if(null!==e&&void 0!==e&&void 0!==e.__source){var t=e.__source,n=t.fileName.replace(/^.*[\\\/]/,""),r=t.lineNumber;return" Check your code at "+n+":"+r+"."}return""}function a(e){var t=r();if(!t){var n="string"==typeof e?e:e.displayName||e.name;n&&(t=" Check the top-level render call using <"+n+">.")}return t}function i(e,t){if(e._store&&!e._store.validated&&null==e.key){e._store.validated=!0;var n=h.uniqueKey||(h.uniqueKey={}),r=a(t);if(!n[r]){n[r]=!0;var o="";e&&e._owner&&e._owner!==c.current&&(o=" It was passed a child from "+e._owner.getName()+".")}}}function s(e,t){if("object"==typeof e)if(Array.isArray(e))for(var n=0;n<e.length;n++){var r=e[n];p.isValidElement(r)&&i(r,t)}else if(p.isValidElement(e))e._store&&(e._store.validated=!0);else if(e){var o=d(e);if(o&&o!==e.entries)for(var a,s=o.call(e);!(a=s.next()).done;)p.isValidElement(a.value)&&i(a.value,t)}}function u(e){var t=e.type;if("function"==typeof t){var n=t.displayName||t.name;t.propTypes&&f(t.propTypes,e.props,"prop",n,e,null),"function"==typeof t.getDefaultProps}}var c=e("./ReactCurrentOwner"),l=e("./ReactComponentTreeHook"),p=e("./ReactElement"),f=e("./checkReactTypeSpec"),d=(e("./canDefineProperty"),e("./getIteratorFn")),h=(e("fbjs/lib/warning"),e("./lowPriorityWarning"),{}),v={createElement:function(e,t,n){var a="string"==typeof e||"function"==typeof e;if(!a&&"function"!=typeof e&&"string"!=typeof e){var i="";(void 0===e||"object"==typeof e&&null!==e&&0===Object.keys(e).length)&&(i+=" You likely forgot to export your component from the file it's defined in.");var c=o(t);i+=c?c:r(),i+=l.getCurrentStackAddendum();var f=null!==t&&void 0!==t&&void 0!==t.__source?t.__source:null;l.pushNonStandardWarningStack(!0,f),l.popNonStandardWarningStack()}var d=p.createElement.apply(this,arguments);if(null==d)return d;if(a)for(var h=2;h<arguments.length;h++)s(arguments[h],e);return u(d),d},createFactory:function(e){var t=v.createElement.bind(null,e);return t.type=e,t},cloneElement:function(e,t,n){for(var r=p.cloneElement.apply(this,arguments),o=2;o<arguments.length;o++)s(arguments[o],r.type);return u(r),r}};t.exports=v}).call(this,e("_process"))},{"./ReactComponentTreeHook":333,"./ReactCurrentOwner":334,"./ReactElement":336,"./canDefineProperty":344,"./checkReactTypeSpec":345,"./getIteratorFn":347,"./lowPriorityWarning":349,_process:162,"fbjs/lib/warning":57}],339:[function(e,t,n){(function(n){"use strict";function r(e,t){}var o=(e("fbjs/lib/warning"),{isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){r(e,"forceUpdate")},enqueueReplaceState:function(e,t){r(e,"replaceState")},enqueueSetState:function(e,t){r(e,"setState")}});t.exports=o}).call(this,e("_process"))},{_process:162,"fbjs/lib/warning":57}],340:[function(e,t,n){(function(e){"use strict";var n={};t.exports=n}).call(this,e("_process"))},{_process:162}],341:[function(e,t,n){"use strict";var r=e("./ReactElement"),o=r.isValidElement,a=e("prop-types/factory");t.exports=a(o)},{"./ReactElement":336,"prop-types/factory":164}],342:[function(e,t,n){arguments[4][271][0].apply(n,arguments)},{dup:271}],343:[function(e,t,n){arguments[4][279][0].apply(n,arguments)},{dup:279}],344:[function(e,t,n){(function(e){"use strict";var n=!1;t.exports=n}).call(this,e("_process"))},{_process:162}],345:[function(e,t,n){(function(n){"use strict";function r(e,t,n,r,u,c){for(var l in e)if(e.hasOwnProperty(l)){var p;try{"function"!=typeof e[l]?o("84",r||"React class",a[n],l):void 0,p=e[l](t,l,r,n,null,i)}catch(f){p=f}if(p instanceof Error&&!(p.message in s)){s[p.message]=!0}}}var o=e("./reactProdInvariant"),a=e("./ReactPropTypeLocationNames"),i=e("./ReactPropTypesSecret");e("fbjs/lib/invariant"),e("fbjs/lib/warning");"undefined"!=typeof n&&n.env,1;var s={};t.exports=r}).call(this,e("_process"))},{"./ReactComponentTreeHook":333,"./ReactPropTypeLocationNames":340,"./ReactPropTypesSecret":342,"./reactProdInvariant":351,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57}],346:[function(e,t,n){"use strict";var r=e("./ReactBaseClasses"),o=r.Component,a=e("./ReactElement"),i=a.isValidElement,s=e("./ReactNoopUpdateQueue"),u=e("create-react-class/factory");t.exports=u(o,i,s)},{"./ReactBaseClasses":331,"./ReactElement":336,"./ReactNoopUpdateQueue":339,"create-react-class/factory":12}],347:[function(e,t,n){arguments[4][312][0].apply(n,arguments)},{dup:312}],348:[function(e,t,n){"use strict";function r(){return o++}var o=1;t.exports=r},{}],349:[function(e,t,n){(function(e){"use strict";var n=function(){};t.exports=n}).call(this,e("_process"))},{_process:162}],350:[function(e,t,n){(function(n){"use strict";function r(e){return a.isValidElement(e)?void 0:o("143"),e}var o=e("./reactProdInvariant"),a=e("./ReactElement");e("fbjs/lib/invariant");t.exports=r}).call(this,e("_process"))},{"./ReactElement":336,"./reactProdInvariant":351,_process:162,"fbjs/lib/invariant":50}],351:[function(e,t,n){arguments[4][321][0].apply(n,arguments)},{dup:321}],352:[function(e,t,n){(function(n){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?c.escape(e.key):t.toString(36)}function o(e,t,n,a){var f=typeof e;if("undefined"!==f&&"boolean"!==f||(e=null),null===e||"string"===f||"number"===f||"object"===f&&e.$$typeof===s)return n(a,e,""===t?l+r(e,0):t),1;var d,h,v=0,g=""===t?l:t+p;if(Array.isArray(e))for(var m=0;m<e.length;m++)d=e[m],h=g+r(d,m),v+=o(d,h,n,a);else{var y=u(e);if(y){var b,_=y.call(e);if(y!==e.entries)for(var E=0;!(b=_.next()).done;)d=b.value,h=g+r(d,E++),v+=o(d,h,n,a);else for(;!(b=_.next()).done;){var C=b.value;C&&(d=C[1],h=g+c.escape(C[0])+p+r(d,0),v+=o(d,h,n,a))}}else if("object"===f){var w="",O=String(e);i("31","[object Object]"===O?"object with keys {"+Object.keys(e).join(", ")+"}":O,w)}}return v}function a(e,t,n){return null==e?0:o(e,"",t,n)}var i=e("./reactProdInvariant"),s=(e("./ReactCurrentOwner"),e("./ReactElementSymbol")),u=e("./getIteratorFn"),c=(e("fbjs/lib/invariant"),e("./KeyEscapeUtils")),l=(e("fbjs/lib/warning"),"."),p=":";t.exports=a}).call(this,e("_process"))},{"./KeyEscapeUtils":328,"./ReactCurrentOwner":334,"./ReactElementSymbol":337,"./getIteratorFn":347,"./reactProdInvariant":351,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57}],353:[function(e,t,n){
11
- "use strict";t.exports=e("./lib/React")},{"./lib/React":330}],354:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){function r(){m===g&&(m=g.slice())}function a(){return v}function s(e){if("function"!=typeof e)throw new Error("Expected listener to be a function.");var t=!0;return r(),m.push(e),function(){if(t){t=!1,r();var n=m.indexOf(e);m.splice(n,1)}}}function l(e){if(!(0,i["default"])(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if("undefined"==typeof e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(y)throw new Error("Reducers may not dispatch actions.");try{y=!0,v=h(v,e)}finally{y=!1}for(var t=g=m,n=0;n<t.length;n++){var r=t[n];r()}return e}function p(e){if("function"!=typeof e)throw new Error("Expected the nextReducer to be a function.");h=e,l({type:c.INIT})}function f(){var e,t=s;return e={subscribe:function(e){function n(){e.next&&e.next(a())}if("object"!=typeof e)throw new TypeError("Expected the observer to be an object.");n();var r=t(n);return{unsubscribe:r}}},e[u["default"]]=function(){return this},e}var d;if("function"==typeof t&&"undefined"==typeof n&&(n=t,t=void 0),"undefined"!=typeof n){if("function"!=typeof n)throw new Error("Expected the enhancer to be a function.");return n(o)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var h=e,v=t,g=[],m=g,y=!1;return l({type:c.INIT}),d={dispatch:l,subscribe:s,getState:a,replaceReducer:p},d[u["default"]]=f,d}n.__esModule=!0,n.ActionTypes=void 0,n["default"]=o;var a=e("lodash/isPlainObject"),i=r(a),s=e("symbol-observable"),u=r(s),c=n.ActionTypes={INIT:"@@redux/INIT"}},{"lodash/isPlainObject":152,"symbol-observable":355}],355:[function(e,t,n){(function(r){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0});var a,i=e("./ponyfill.js"),s=o(i);a="undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof r?r:"undefined"!=typeof t?t:Function("return this")();var u=(0,s["default"])(a);n["default"]=u}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./ponyfill.js":356}],356:[function(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r},{}]},{},[9]);
1
+ !function r(o,a,i){function s(t,e){if(!a[t]){if(!o[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(u)return u(t,!0);throw(n=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",n}n=a[t]={exports:{}},o[t][0].call(n.exports,function(e){return s(o[t][1][e]||e)},n,n.exports,r,o,a,i)}return a[t].exports}for(var u="function"==typeof require&&require,e=0;e<i.length;e++)s(i[e]);return s}({1:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==f(e)&&"function"!=typeof e)return{default:e};var t=p();if(t&&t.has(e))return t.get(e);var n,r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(n in e){var a;Object.prototype.hasOwnProperty.call(e,n)&&((a=o?Object.getOwnPropertyDescriptor(e,n):null)&&(a.get||a.set)?Object.defineProperty(r,n,a):r[n]=e[n])}r.default=e,t&&t.set(e,r);return r}(e("react")),i=r(e("./components/Navbar")),s=r(e("./components/SelectEditor")),u=r(e("./components/VisualEditor")),c=r(e("./components/AdvancedEditor")),l=r(e("./components/ImportExportEditor"));function r(e){return e&&e.__esModule?e:{default:e}}function p(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return p=function(){return e},e}function f(e){return(f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(n){var r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}();return function(){var e,t=o(n);return e=r?(e=o(this).constructor,Reflect.construct(t,arguments,e)):t.apply(this,arguments),t=this,!(e=e)||"object"!==f(e)&&"function"!=typeof e?m(t):e}}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}e=function(){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(o,a.Component);var e,t,n,r=g(o);function o(){var e;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),(e=r.call(this)).state={config:null},e.renderTab=e.renderTab.bind(m(e)),e.renderSubmitButton=e.renderSubmitButton.bind(m(e)),e}return e=o,(t=[{key:"componentDidMount",value:function(){this.setState({config:window.jpibfi_settings})}},{key:"isCurrentTabIn",value:function(e){var t=this;return e.some(function(e){return t.state.config.currentTab===e})}},{key:"isCurrentTabEqualTo",value:function(e){return this.isCurrentTabIn([e])}},{key:"render",value:function(){if(!this.state.config)return null;var e=this.state.config,t={tabs:e.tabs,page:e.page,currentTab:e.currentTab,links:e.links};return a.default.createElement("div",{id:"foo"},a.default.createElement(i.default,t),a.default.createElement("form",{method:"POST",encType:"multipart/form-data",id:"jpibfi-form",action:e.save.post_url},a.default.createElement("input",{name:e.save.action,value:e.save.nonce,type:"hidden"}),a.default.createElement("input",{name:e.save.tab,value:e.currentTab,type:"hidden"}),this.renderTab(s.default,"select"),this.renderTab(u.default,"visual"),this.renderTab(c.default,"advanced"),this.renderTab(l.default,"import"),this.renderSubmitButton()))}},{key:"renderTab",value:function(e,t){if(!this.isCurrentTabEqualTo(t))return null;var n=this.state.config,t=n.settings,n=n.i18n;return a.default.createElement(e,{settings:t,i18n:n.editor})}},{key:"renderSubmitButton",value:function(){return this.isCurrentTabIn(["select","visual","advanced"])?a.default.createElement("input",{type:"submit",className:"button button-primary",value:this.state.config.save.submit}):null}}])&&d(e.prototype,t),n&&d(e,n),o}();n.default=e},{"./components/AdvancedEditor":2,"./components/ImportExportEditor":3,"./components/Navbar":4,"./components/SelectEditor":5,"./components/VisualEditor":7,react:353}],2:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==u(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n,r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(n in e){var a;Object.prototype.hasOwnProperty.call(e,n)&&((a=o?Object.getOwnPropertyDescriptor(e,n):null)&&(a.get||a.set)?Object.defineProperty(r,n,a):r[n]=e[n])}r.default=e,t&&t.set(e,r);return r}(e("react")),r=e("./helpers");function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(t,e){var n,r=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)),r}function c(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?o(Object(n),!0).forEach(function(e){l(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function f(e,t){return(f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function d(n){var r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}();return function(){var e,t=a(n);return e=r?(e=a(this).constructor,Reflect.construct(t,arguments,e)):t.apply(this,arguments),t=this,!(e=e)||"object"!==u(e)&&"function"!=typeof e?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t):e}}function a(e){return(a=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(e){var t=e.name,n=e.priority,e=e.template,n=[{tag:"%name%",editor:i.default.createElement(r.CheckboxEditor,{key:"name",args:t})},{tag:"%priority%",editor:i.default.createElement(r.LabeledNumberEditor,{key:"priority",args:n,step:"1"})}];return i.default.createElement(r.Templated,{items:n,template:e})}e=function(){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}(a,i.Component);var e,t,n,o=d(a);function a(e){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),(r=o.call(this,e)).changeValue=function(e,t){var n=r.props.settings[e],t=c(c({},r.state.settings),{},l({},e,c(c({},n),{},{value:t})));r.setState({settings:t})},r.renderProFeatureError=function(){return i.default.createElement("p",null,i.default.createElement("b",{dangerouslySetInnerHTML:{__html:r.props.i18n.pro_feature_error}}))},r.state={settings:c({},e.settings)},r}return e=a,(t=[{key:"render",value:function(){var e=this.props,t=e.settings,n=e.i18n;return i.default.createElement("div",null,i.default.createElement("h2",null,e.i18n.title),i.default.createElement("table",{className:"form-table"},i.default.createElement("tbody",null,this.renderSupportSrcsetSetting(),i.default.createElement("tr",null,i.default.createElement("th",null,n.filters_label),i.default.createElement("td",null,i.default.createElement(h,{name:t.filter_the_content_on,priority:t.filter_the_content_priority,template:n.filter_template}),i.default.createElement(h,{name:t.filter_the_excerpt_on,priority:t.filter_the_excerpt_priority,template:n.filter_template}),i.default.createElement(h,{name:t.filter_post_thumbnail_html_on,priority:t.filter_post_thumbnail_html_priority,template:n.filter_template}),i.default.createElement(r.Description,{text:n.filters_description}))),this.renderScrollSelectionSetting(),i.default.createElement(r.TableRow,{Editor:r.TextareaEditor,rows:5,setting:t.custom_css}))))}},{key:"renderSupportSrcsetSetting",value:function(){var t=this,e=this.state.settings.support_srcset,n=null;return!0===e.value&&(n=this.renderProFeatureError()),i.default.createElement("tr",null,i.default.createElement("th",null,i.default.createElement("label",{htmlFor:e.key},e.label)),i.default.createElement("td",null,i.default.createElement(r.CheckboxEditor,{args:e,onChange:function(e){return t.changeValue("support_srcset",e.target.checked)}}),i.default.createElement(r.Description,{text:e.desc}),n))}},{key:"renderScrollSelectionSetting",value:function(){this.props.settings;return null}}])&&p(e.prototype,t),n&&p(e,n),a}();n.default=e},{"./helpers":8,react:353}],3:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==s(e)&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var n,r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(n in e){var a;Object.prototype.hasOwnProperty.call(e,n)&&((a=o?Object.getOwnPropertyDescriptor(e,n):null)&&(a.get||a.set)?Object.defineProperty(r,n,a):r[n]=e[n])}r.default=e,t&&t.set(e,r);return r}(e("react"));e("./helpers");function i(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return i=function(){return e},e}function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e,t){return(c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function l(n){var r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}();return function(){var e,t=o(n);return e=r?(e=o(this).constructor,Reflect.construct(t,arguments,e)):t.apply(this,arguments),t=this,!(e=e)||"object"!==s(e)&&"function"!=typeof e?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t):e}}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}e=function(){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(o,a.Component);var e,t,n,r=l(o);function o(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),r.apply(this,arguments)}return e=o,(t=[{key:"onUpload",value:function(){document.getElementById("jpibfi-form").submit()}},{key:"render",value:function(){var e=this.props,e=(e.settings,e.i18n);return a.default.createElement("div",null,a.default.createElement("h2",null,e.title),a.default.createElement("table",{className:"form-table"},a.default.createElement("tbody",null,a.default.createElement("tr",null,a.default.createElement("th",null,a.default.createElement("label",null,e.export_title)),a.default.createElement("td",null,a.default.createElement("a",{href:e.export_url,className:"button button-default"},e.export_button_text))),a.default.createElement("tr",null,a.default.createElement("th",null,a.default.createElement("label",null,e.import_title)),a.default.createElement("td",null,a.default.createElement("input",{type:"file",name:"import",onChange:this.onUpload,accept:".json"}))))))}}])&&u(e.prototype,t),n&&u(e,n),o}();n.default=e},{"./helpers":8,react:353}],4:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(t){return o.default.createElement("h2",{className:"nav-tab-wrapper"},t.tabs.map(function(e){return o.default.createElement("a",{key:e.slug,href:"?page=".concat(t.page,"&tab=").concat(e.slug),className:"nav-tab ".concat(t.currentTab===e.slug&&"nav-tab-active")},e.name)}),t.links.map(function(e){return o.default.createElement("a",{key:e.url,target:"_blank",className:"nav-tab",href:e.url},e.label)}))};var r,o=(r=e("react"))&&r.__esModule?r:{default:r}},{react:353}],5:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==u(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n,r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(n in e){var a;Object.prototype.hasOwnProperty.call(e,n)&&((a=o?Object.getOwnPropertyDescriptor(e,n):null)&&(a.get||a.set)?Object.defineProperty(r,n,a):r[n]=e[n])}r.default=e,t&&t.set(e,r);return r}(e("react")),i=e("./helpers");function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function l(e,t){return(l=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(n){var r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}();return function(){var e,t=o(n);return e=r?(e=o(this).constructor,Reflect.construct(t,arguments,e)):t.apply(this,arguments),t=this,!(e=e)||"object"!==u(e)&&"function"!=typeof e?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t):e}}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function f(e){var t=e.height,n=e.width,e=e.template,n=[{tag:"%height%",editor:a.default.createElement(i.NumberEditor,{key:"height",args:t,step:"1",min:"0"})},{tag:"%width%",editor:a.default.createElement(i.NumberEditor,{key:"width",args:n,step:"1",min:"0"})}];return a.default.createElement(i.Templated,{items:n,template:e})}e=function(){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&l(e,t)}(o,a.Component);var e,t,n,r=p(o);function o(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),r.apply(this,arguments)}return e=o,(t=[{key:"render",value:function(){var e=this.props,t=e.settings,e=e.i18n;return a.default.createElement("div",null,a.default.createElement("h2",null,e.title),a.default.createElement("table",{className:"form-table"},a.default.createElement("tbody",null,a.default.createElement(i.TableRow,{Editor:i.TextareaEditor,setting:t.image_selector}),a.default.createElement(i.TableRow,{Editor:i.TextEditor,setting:t.disabled_classes}),a.default.createElement(i.TableRow,{Editor:i.TextEditor,setting:t.enabled_classes}),a.default.createElement("tr",null,a.default.createElement("th",null,e.image_resolution_label),a.default.createElement("td",null,a.default.createElement(f,{height:t.min_image_height_small,width:t.min_image_width_small,template:e.min_resolution_template_small}),a.default.createElement(f,{height:t.min_image_height,width:t.min_image_width,template:e.min_resolution_template}),a.default.createElement(i.Description,{text:e.image_resolution_desc}),a.default.createElement(i.Description,{text:e.image_resolution_desc_2}))),a.default.createElement("tr",null,a.default.createElement("th",null,e.show_on_field_label),a.default.createElement("td",null,a.default.createElement("p",null,a.default.createElement("label",{htmlFor:"show_on"},t.show_on.label,":"),a.default.createElement("br",null),a.default.createElement(i.TextareaEditor,{args:t.show_on})),a.default.createElement("p",null,a.default.createElement("label",{htmlFor:"disable_on"},t.disable_on.label,":"),a.default.createElement("br",null),a.default.createElement(i.TextareaEditor,{args:t.disable_on})),a.default.createElement(i.Description,{text:e.show_on_field_desc}))))))}}])&&c(e.prototype,t),n&&c(e,n),o}();n.default=e},{"./helpers":8,react:353}],6:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=n.SortableItem=void 0;var r,o,i=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=u();if(t&&t.has(e))return t.get(e);var n,r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(n in e){var a;Object.prototype.hasOwnProperty.call(e,n)&&((a=o?Object.getOwnPropertyDescriptor(e,n):null)&&(a.get||a.set)?Object.defineProperty(r,n,a):r[n]=e[n])}r.default=e,t&&t.set(e,r);return r}(e("react")),a=e("react-dnd"),s=(r=e("react-dnd-html5-backend"))&&r.__esModule?r:{default:r};function u(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return u=function(){return e},e}function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(e){return function(e){if(Array.isArray(e))return p(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n,r=arguments[t];for(n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function g(e,t,n){return t&&h(e.prototype,t),n&&h(e,n),e}function m(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function y(n){var r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}();return function(){var e,t=_(n);return e=r?(e=_(this).constructor,Reflect.construct(t,arguments,e)):t.apply(this,arguments),t=this,!(e=e)||"object"!==c(e)&&"function"!=typeof e?b(t):e}}function b(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _(e){return(_=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var E="ListItem",C=(0,a.DropTarget)(E,{canDrop:function(){return!1},hover:function(e,t){var n=e.item,r=e.findItem,e=e.moveItem,t=t.getItem().key,n=n.key;t!==n&&e(t,r(n).index)}},function(e){return{connectDropTarget:e.dropTarget()}})(o=(0,a.DragSource)(E,{beginDrag:function(e){var t=e.item.key;return{key:t,originalIndex:(0,e.findItem)(t).index}},endDrag:function(e,t){var n=t.getItem(),r=n.key,n=n.originalIndex;t.didDrop()||e.moveCard(r,n)}},function(e,t){return{connectDragSource:e.dragSource(),isDragging:t.isDragging()}})(o=function(){m(t,i.Component);var e=y(t);function t(){return d(this,t),e.apply(this,arguments)}return g(t,[{key:"render",value:function(){var e=this.props,t=e.item,n=e.isDragging,r=e.connectDragSource,o=e.connectDropTarget,a=e.changeSelected,n=n?0:1;return r(o(i.default.createElement("li",{style:{opacity:n}},i.default.createElement("input",{type:"checkbox",id:t.key,defaultChecked:t.selected,onChange:function(){return a(t.key)}}),i.default.createElement("label",{htmlFor:t.key},t.label))))}}]),t}())||o)||o;n.SortableItem=C;E=(0,a.DragDropContext)(s.default)(E=(0,a.DropTarget)(E,{drop:function(){}},function(e){return{connectDropTarget:e.dropTarget()}})(E=function(){m(o,i.Component);var r=y(o);function o(e){var t;d(this,o),(t=r.call(this,e)).changeSelected=t.changeSelected.bind(b(t)),t.moveItem=t.moveItem.bind(b(t)),t.findItem=t.findItem.bind(b(t));var n=e.args,e=n.value.slice().concat(Object.keys(n.options).filter(function(e){return-1===n.value.indexOf(e)}));return t.state={items:e.map(function(e){return{key:e,label:n.options[e],selected:-1!==n.value.indexOf(e)}})},t}return g(o,[{key:"changeSelected",value:function(t){this.setState({items:this.state.items.map(function(e){return e.key==t?f({},e,{selected:!e.selected}):e})})}},{key:"moveItem",value:function(e,t){var e=this.findItem(e),n=e.item,e=(e.index,this.state.items.filter(function(e){return e.key!=n.key})),e=[].concat(l(e.slice(0,t)),[n],l(e.slice(t)));this.setState({items:e})}},{key:"findItem",value:function(t){var e=this.state.items,n=e.filter(function(e){return e.key===t})[0];return{item:n,index:e.indexOf(n)}}},{key:"render",value:function(){var n=this,e=this.props,t=e.connectDropTarget,r=e.args,o=this.state.items,e=o.reduce(function(e,t){return t.selected?e.concat([t.key]):e},[]);return t(i.default.createElement("div",null,i.default.createElement("input",{type:"hidden",name:r.key,value:e}),i.default.createElement("ul",{className:"frizzly-sortable"},o.map(function(e,t){return i.default.createElement(C,{key:e.key,item:e,moveItem:n.moveItem,findItem:n.findItem,changeSelected:n.changeSelected})}))))}}]),o}())||E)||E;n.default=E},{react:353,"react-dnd":192,"react-dnd-html5-backend":177}],7:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r,i=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==l(e)&&"function"!=typeof e)return{default:e};var t=c();if(t&&t.has(e))return t.get(e);var n,r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(n in e){var a;Object.prototype.hasOwnProperty.call(e,n)&&((a=o?Object.getOwnPropertyDescriptor(e,n):null)&&(a.get||a.set)?Object.defineProperty(r,n,a):r[n]=e[n])}r.default=e,t&&t.set(e,r);return r}(e("react")),s=e("./helpers"),u=(r=e("./SortableEditor"))&&r.__esModule?r:{default:r};function c(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return c=function(){return e},e}function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(t,e){var n,r=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)),r}function p(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?o(Object(n),!0).forEach(function(e){f(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function f(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function g(n){var r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}();return function(){var e,t=a(n);return e=r?(e=a(this).constructor,Reflect.construct(t,arguments,e)):t.apply(this,arguments),t=this,!(e=e)||"object"!==l(e)&&"function"!=typeof e?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(t):e}}function a(e){return(a=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var m=function(){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(a,i.Component);var e,t,n,o=g(a);function a(e){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),(r=o.call(this,e)).buttonPositionChanged=function(e){r.setState({ui:{marginAvailability:{top:"top-left"===e||"top-right"===e,bottom:"bottom-left"===e||"bottom-right"===e,left:"top-left"===e||"bottom-left"===e,right:"top-right"===e||"bottom-right"===e}}}),r.changeValue("buttonPosition",e)},r.changeValue=function(e,t){var n=r.props.settings[e],t=p(p({},r.state.settings),{},f({},e,p(p({},n),{},{value:t})));r.setState({settings:t})},r.upload=function(){r.fileFrame||(r.fileFrame=wp.media.frames.file_frame=wp.media({title:r.props.i18n.custom_button_frame_title,button:{text:r.props.i18n.custom_button_frame_button_text},multiple:!1}).on("select",function(){var e=r.fileFrame.state().get("selection").first().toJSON();r.changeValue("custom_image_url",e.url),r.changeValue("custom_image_width",e.width),r.changeValue("custom_image_height",e.height)})),r.fileFrame.open()},r.renderCustomIconSettings=function(){var e=r.state.settings,t=r.props.i18n;return i.default.createElement("div",null,i.default.createElement("p",null,i.default.createElement("button",{type:"button",className:"button button-default",onClick:r.upload},t.custom_button_upload)),i.default.createElement("p",null,i.default.createElement("label",{htmlFor:"custom_image_url"},e.custom_image_url.label),i.default.createElement(s.TextEditor,{value:e.custom_image_url.value,args:e.custom_image_url,onChange:function(e){return r.changeValue("custom_image_url",e.target.value)}})),i.default.createElement("div",{style:{display:"inline-block",width:"49%"}},i.default.createElement("label",{htmlFor:"custom_image_height"},e.custom_image_height.label),i.default.createElement(s.NumberEditor,{args:e.custom_image_height,value:e.custom_image_height.value,onChange:function(e){return r.changeValue("custom_image_height",e.target.value)}})),i.default.createElement("div",{style:{display:"inline-block",width:"49%"}},i.default.createElement("label",{htmlFor:"custom_image_width"},e.custom_image_width.label),i.default.createElement(s.NumberEditor,{value:e.custom_image_width.value,args:e.custom_image_width,onChange:function(e){return r.changeValue("custom_image_width",e.target.value)}})),i.default.createElement("br",null),i.default.createElement(s.Description,{dangerouslySetInnerHTML:{__html:t.custom_button_desc}}))},r.state={settings:p({},e.settings),ui:{marginAvailability:{top:!0,bottom:!0,left:!0,right:!0}}},r.fileFrame=null,r}return e=a,(t=[{key:"componentDidMount",value:function(){this.buttonPositionChanged(this.props.settings.button_position.value)}},{key:"render",value:function(){var t=this,e=this.props.i18n,n=this.state,r=n.ui.marginAvailability,o=n.settings;return i.default.createElement("div",null,i.default.createElement("h2",null,e.title),i.default.createElement("table",{className:"form-table"},i.default.createElement("tbody",null,i.default.createElement("tr",null,i.default.createElement("th",null,i.default.createElement("label",{htmlFor:"show_button"},o.show_button.label)),i.default.createElement("td",null,i.default.createElement(s.SelectEditor,{args:o.show_button,onChange:function(e){return t.changeValue("show_button",e.target.value)}}),i.default.createElement(s.Description,{text:o.show_button.desc}),this.renderShowButtonError())),i.default.createElement("tr",null,i.default.createElement("th",null,i.default.createElement("label",null,o.description_option.label)),i.default.createElement("td",null,i.default.createElement(u.default,{args:o.description_option}),i.default.createElement(s.Description,{text:o.description_option.desc}))),i.default.createElement(s.TableRow,{Editor:s.NumberEditor,setting:o.transparency_value,min:"0",max:"1",step:"0.01"}),i.default.createElement("tr",null,i.default.createElement("th",null,i.default.createElement("label",null,o.pin_image.label)),i.default.createElement("td",null,i.default.createElement("table",{className:"jpibfi-inner-table"},i.default.createElement("tbody",null,i.default.createElement("tr",null,i.default.createElement("th",null,e.mode),"old_default"!==o.pin_image.value&&i.default.createElement("th",null,e.settings),i.default.createElement("th",null,e.preview)),i.default.createElement("tr",null,i.default.createElement("td",null,Object.keys(o.pin_image.options).map(function(e){return i.default.createElement("p",{key:e},i.default.createElement("label",null,i.default.createElement("input",{type:"radio",name:o.pin_image.key,value:e,checked:e===o.pin_image.value,onChange:function(e){return t.changeValue("pin_image",e.target.value)}}),o.pin_image.options[e]))})),i.default.createElement("td",null,"default"===o.pin_image.value&&this.renderDefaultIconSettings(),"custom"===o.pin_image.value&&this.renderCustomIconSettings()),this.renderIconPreview()))))),i.default.createElement(s.TableRow,{Editor:s.CheckboxEditor,setting:o.pin_linked_url}),this.renderScalePinImageSetting(),i.default.createElement(s.TableRow,{Editor:s.SelectEditor,setting:o.button_position,onChange:function(e){return t.buttonPositionChanged(e.target.value)}}),i.default.createElement("tr",null,i.default.createElement("th",null,i.default.createElement("label",null,e.margins_label)),i.default.createElement("td",null,i.default.createElement("p",null,i.default.createElement("label",{htmlFor:"button_margin_top"},o.button_margin_top.label),i.default.createElement(s.LabeledNumberEditor,{disabled:!r.top,args:o.button_margin_top})),i.default.createElement("p",null,i.default.createElement("label",{htmlFor:"button_margin_bottom"},o.button_margin_bottom.label),i.default.createElement(s.LabeledNumberEditor,{disabled:!r.bottom,args:o.button_margin_bottom})),i.default.createElement("p",null,i.default.createElement("label",{htmlFor:"button_margin_left"},o.button_margin_left.label),i.default.createElement(s.LabeledNumberEditor,{disabled:!r.left,args:o.button_margin_left})),i.default.createElement("p",null,i.default.createElement("label",{htmlFor:"button_margin_right"},o.button_margin_right.label),i.default.createElement(s.LabeledNumberEditor,{disabled:!r.right,args:o.button_margin_right})),i.default.createElement(s.Description,{text:e.margins_desc}))))),i.default.createElement("p",{dangerouslySetInnerHTML:{__html:e.attribution}}))}},{key:"renderDefaultIconSettings",value:function(){var t=this,e=this.state.settings,n=null;return"circle"!==e.pin_image_icon.value&&(n=this.renderProFeatureError()),i.default.createElement("div",null,i.default.createElement("p",null,i.default.createElement("label",{htmlFor:"pin_image_icon"},e.pin_image_icon.label),i.default.createElement(s.SelectEditor,{args:e.pin_image_icon,onChange:function(e){return t.changeValue("pin_image_icon",e.target.value)}}),n),i.default.createElement("p",null,i.default.createElement("label",{htmlFor:"pin_image_size"},e.pin_image_size.label),i.default.createElement(s.SelectEditor,{args:e.pin_image_size,onChange:function(e){return t.changeValue("pin_image_size",e.target.value)}})),i.default.createElement("p",null,i.default.createElement("label",{htmlFor:"pin_image_button"},e.pin_image_button.label),i.default.createElement(s.SelectEditor,{args:e.pin_image_button,onChange:function(e){return t.changeValue("pin_image_button",e.target.value)}})))}},{key:"renderIconPreview",value:function(){var e=this.props.i18n,t=this.state.settings,n=t.pin_image.value,r=t.pin_image_size.value,o=this.state.settings.custom_image_url.value;return i.default.createElement("td",null,"old_default"===n&&i.default.createElement("div",null,i.default.createElement("a",{className:"pinit-button old_default"},i.default.createElement("span",null))),"default"===n&&i.default.createElement("div",null,i.default.createElement("a",{className:"pinit-button default jpibfi-size-".concat(r," jpibfi-button-").concat(t.pin_image_button.value)},i.default.createElement("span",{className:"jpibfi-icon-".concat(t.pin_image_icon.value)}))),"custom"===n&&o&&i.default.createElement("div",null,i.default.createElement("div",{style:{width:"".concat(t.custom_image_width.value,"px"),height:"".concat(t.custom_image_height.value,"px"),backgroundImage:"url('".concat(o,"')")}})),"custom"===n&&!o&&i.default.createElement("div",{dangerouslySetInnerHTML:{__html:e.custom_button_no_image_to_preview}}))}},{key:"renderProFeatureError",value:function(){return i.default.createElement("p",null,i.default.createElement("b",{dangerouslySetInnerHTML:{__html:this.props.i18n.pro_feature_error}}))}},{key:"renderShowButtonError",value:function(){return"hover"!==this.state.settings.show_button.value?this.renderProFeatureError():null}},{key:"renderScalePinImageSetting",value:function(){var t=this,e=this.state.settings.scale_pin_image,n=null;return!0===e.value&&(n=this.renderProFeatureError()),i.default.createElement("tr",null,i.default.createElement("th",null,i.default.createElement("label",{htmlFor:e.key},e.label)),i.default.createElement("td",null,i.default.createElement(s.CheckboxEditor,{args:e,onChange:function(e){return t.changeValue("scale_pin_image",e.target.checked)}}),i.default.createElement(s.Description,{text:e.desc}),n))}}])&&d(e.prototype,t),n&&d(e,n),a}();n.default=m},{"./SortableEditor":6,"./helpers":8,react:353}],8:[function(e,t,n){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(n,"__esModule",{value:!0}),n.Description=u,n.TableRow=function(e){var t=e.Editor,n=e.setting,e=a(e,["Editor","setting"]);return o.default.createElement("tr",null,o.default.createElement("th",null,o.default.createElement("label",{htmlFor:n.key},n.label)),o.default.createElement("td",null,o.default.createElement(t,r({args:n},e)),o.default.createElement(u,{text:n.desc})))},n.Templated=function(e){var t=e.template,r=e.items,t=t.split(" ").reduce(function(e,t){if(r.every(function(e){return e.tag!==t}))return e.concat(["".concat(t," ")]);var n=r.filter(function(e){return e.tag===t})[0];return e.concat([n.editor," "])},[]).reduce(function(e,t){return 0===e.length?[t]:"string"==typeof t&&"string"==typeof e[e.length-1]?e.slice(0,e.length-1).concat([e[e.length-1]+t]):e.concat(t)},[]);return o.default.createElement("p",[],t)},n.TextEditor=function(e){var t=e.args,n=e.className,n=void 0===n?"regular-text":n,e=a(e,["args","className"]);e.hasOwnProperty("value")||(e.defaultValue=t.value);return o.default.createElement("input",r({type:"text",className:n},e,{placeholder:t.placeholder||"",name:t.key,id:t.key}))},n.TextareaEditor=function(e){var t=e.args,e=a(e,["args"]);return o.default.createElement("textarea",r({rows:"3",cols:"50",className:"large-text code",defaultValue:t.value},e,{id:t.key,name:t.key}))},n.NumberEditor=c,n.LabeledNumberEditor=function(e){var t=e.args,e=a(e,["args"]);return o.default.createElement("label",{htmlFor:t.key},t.text,o.default.createElement(c,r({args:t},e)),t.unit)},n.SelectEditor=function(e){var t=e.args,e=a(e,["args"]);return o.default.createElement("select",r({name:t.key,id:t.key},e,{defaultValue:t.value}),Object.keys(t.options).map(function(e){return o.default.createElement("option",{key:e,value:e},t.options[e])}))},n.CheckboxEditor=function(e){var t=e.args,e=a(e,["args"]);return o.default.createElement("span",null,o.default.createElement("input",r({type:"checkbox",name:t.key,id:t.key,defaultChecked:t.value},e)),o.default.createElement("label",{htmlFor:t.key},t.text),t.tooltip&&o.default.createElement("span",{tooltips:!0,"tooltip-template":t.tooltip,className:"dashicons dashicons-editor-help"}),t.addBr&&o.default.createElement("br",null))};var o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var n,r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(n in e){var a;Object.prototype.hasOwnProperty.call(e,n)&&((a=o?Object.getOwnPropertyDescriptor(e,n):null)&&(a.get||a.set)?Object.defineProperty(r,n,a):r[n]=e[n])}r.default=e,t&&t.set(e,r);return r}(e("react"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n,r=arguments[t];for(n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function a(e,t){if(null==e)return{};var n,r=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],0<=t.indexOf(n)||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols)for(var o=Object.getOwnPropertySymbols(e),a=0;a<o.length;a++)n=o[a],0<=t.indexOf(n)||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n]);return r}function u(e){e=e.text;return o.default.createElement("p",{className:"description",dangerouslySetInnerHTML:{__html:e}})}function c(e){var t=e.args,e=a(e,["args"]);return e.hasOwnProperty("value")||(e.defaultValue=t.value),o.default.createElement("input",r({type:"number",className:"small-text"},e,{id:t.key,name:t.key}))}},{react:353}],9:[function(e,t,n){"use strict";var r=i(e("react")),o=e("react-dom"),a=i(e("./app/app"));function i(e){return e&&e.__esModule?e:{default:e}}jQuery(document).ready(function(){(0,o.render)(r.default.createElement(a.default,null),document.getElementById("jpibfi-container"))})},{"./app/app":1,react:353,"react-dom":201}],10:[function(e,t,n){"use strict";var r=e("./raw"),o=[],a=[],i=r.makeRequestCallFromTimer(function(){if(a.length)throw a.shift()});function s(e){var t=o.length?o.pop():new u;t.task=e,r(t)}function u(){this.task=null}t.exports=s,u.prototype.call=function(){try{this.task.call()}catch(e){s.onerror?s.onerror(e):(a.push(e),i())}finally{this.task=null,o[o.length]=this}}},{"./raw":11}],11:[function(e,p,t){(function(e){"use strict";function t(e){r.length||(n(),0),r[r.length]=e}p.exports=t;var n,r=[],o=0;function a(){for(;o<r.length;){var e=o;if(o+=1,r[e].call(),1024<o){for(var t=0,n=r.length-o;t<n;t++)r[t]=r[t+o];r.length-=o,o=0}}r.length=0,o=0,0}var i,s,u,e=void 0!==e?e:self,c=e.MutationObserver||e.WebKitMutationObserver;function l(r){return function(){var e=setTimeout(n,0),t=setInterval(n,50);function n(){clearTimeout(e),clearInterval(t),r()}}}n="function"==typeof c?(s=1,i=new c(i=a),u=document.createTextNode(""),i.observe(u,{characterData:!0}),function(){s=-s,u.data=s}):l(a),t.requestFlush=n,t.makeRequestCallFromTimer=l}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],12:[function(t,n,e){(function(e){"use strict";var r=t("object-assign"),m=t("fbjs/lib/emptyObject"),v=t("fbjs/lib/invariant");n.exports=function(e,l,o){var n=[],p={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",UNSAFE_componentWillMount:"DEFINE_MANY",UNSAFE_componentWillReceiveProps:"DEFINE_MANY",UNSAFE_componentWillUpdate:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},a={getDerivedStateFromProps:"DEFINE_MANY_MERGED"},f={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)i(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=d(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)return;for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in f;if(v(!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),n in e){o=a.hasOwnProperty(n)?a[n]:null;return v("DEFINE_MANY_MERGED"===o,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),e[n]=d(e[n],r)}e[n]=r}}}(e,t)},autobind:function(){}};function i(e,t){if(t){v("function"!=typeof t,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),v(!l(t),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var n,r,o,a,i,s,u=e.prototype,c=u.__reactAutoBindPairs;for(n in t.hasOwnProperty("mixins")&&f.mixins(e,t.mixins),t){t.hasOwnProperty(n)&&"mixins"!==n&&(r=t[n],o=u.hasOwnProperty(n),a=o,i=n,s=void 0,s=p.hasOwnProperty(i)?p[i]:null,g.hasOwnProperty(i)&&v("OVERRIDE_BASE"===s,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",i),a&&v("DEFINE_MANY"===s||"DEFINE_MANY_MERGED"===s,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",i),f.hasOwnProperty(n)?f[n](e,r):(i=p.hasOwnProperty(n),"function"==typeof r&&!i&&!o&&!1!==t.autobind?(c.push(n,r),u[n]=r):o?(o=p[n],v(i&&("DEFINE_MANY_MERGED"===o||"DEFINE_MANY"===o),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",o,n),"DEFINE_MANY_MERGED"===o?u[n]=d(u[n],r):"DEFINE_MANY"===o&&(u[n]=function(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}(u[n],r))):u[n]=r))}}else;}function s(e,t){for(var n in v(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects."),t)t.hasOwnProperty(n)&&(v(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 d(r,o){return function(){var e=r.apply(this,arguments),t=o.apply(this,arguments);if(null==e)return t;if(null==t)return e;var n={};return s(n,e),s(n,t),n}}function u(){}var c={componentDidMount:function(){this.__isMounted=!0}},h={componentWillUnmount:function(){this.__isMounted=!1}},g={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}};return r(u.prototype,e.prototype,g),function(e){var t,r=function(e,t,n){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]=(r=e,r=o.bind(r))}}(this),this.props=e,this.context=t,this.refs=m,this.updater=n||o,this.state=null;n=this.getInitialState?this.getInitialState():null;v("object"==typeof n&&!Array.isArray(n),"%s.getInitialState(): must return an object or null",r.displayName||"ReactCompositeComponent"),this.state=n};for(t in r.prototype=new u,(r.prototype.constructor=r).prototype.__reactAutoBindPairs=[],n.forEach(i.bind(null,r)),i(r,c),i(r,e),i(r,h),r.getDefaultProps&&(r.defaultProps=r.getDefaultProps()),v(r.prototype.render,"createClass(...): Class specification must implement a `render` method."),p)r.prototype[t]||(r.prototype[t]=null);return r}}}).call(this,t("_process"))},{_process:162,"fbjs/lib/emptyObject":43,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"object-assign":161}],13:[function(e,t,n){"use strict";n.__esModule=!0;var r,o=e("./isDisposable"),a=(r=o)&&r.__esModule?r:{default:r},e=(i.prototype.add=function(e){this.isDisposed?e.dispose():this.disposables.push(e)},i.prototype.remove=function(e){if(this.isDisposed)return!1;var t=this.disposables.indexOf(e);return-1!==t&&(this.disposables.splice(t,1),e.dispose(),!0)},i.prototype.dispose=function(){if(!this.isDisposed){for(var e=this.disposables.length,t=new Array(e),n=0;n<e;n++)t[n]=this.disposables[n];this.isDisposed=!0,this.disposables=[];for(n=this.length=0;n<e;n++)t[n].dispose()}},i);function i(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),Array.isArray(t[0])&&1===t.length&&(t=t[0]);for(var r=0;r<t.length;r++)if(!a.default(t[r]))throw new Error("Expected a disposable");this.disposables=t,this.isDisposed=!1}n.default=e,t.exports=n.default},{"./isDisposable":17}],14:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}n.__esModule=!0;var o=function(){},a=(function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}(i,null,[{key:"empty",value:{dispose:o},enumerable:!0}]),i.prototype.dispose=function(){this.isDisposed||(this.action.call(null),this.isDisposed=!0)},i);function i(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),this.isDisposed=!1,this.action=e||o}n.default=a,t.exports=n.default},{}],15:[function(e,t,n){"use strict";n.__esModule=!0;var r,o=e("./isDisposable"),a=(r=o)&&r.__esModule?r:{default:r},e=(i.prototype.getDisposable=function(){return this.current},i.prototype.setDisposable=function(e){var t=arguments.length<=0||void 0===e?null:e;if(null!=t&&!a.default(t))throw new Error("Expected either an empty value or a valid disposable");var n=this.isDisposed,e=void 0;n||(e=this.current,this.current=t),e&&e.dispose(),n&&t&&t.dispose()},i.prototype.dispose=function(){var e;this.isDisposed||(this.isDisposed=!0,e=this.current,this.current=null,e&&e.dispose())},i);function i(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),this.isDisposed=!1,this.current=null}n.default=e,t.exports=n.default},{"./isDisposable":17}],16:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}n.__esModule=!0;var o=r(e("./isDisposable"));n.isDisposable=o.default;o=r(e("./Disposable"));n.Disposable=o.default;o=r(e("./CompositeDisposable"));n.CompositeDisposable=o.default;e=r(e("./SerialDisposable"));n.SerialDisposable=e.default},{"./CompositeDisposable":13,"./Disposable":14,"./SerialDisposable":15,"./isDisposable":17}],17:[function(e,t,n){"use strict";n.__esModule=!0,n.default=function(e){return Boolean(e&&"function"==typeof e.dispose)},t.exports=n.default},{}],18:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e};function o(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)}}var a=c(e("redux/lib/createStore")),i=c(e("./reducers")),s=function(e){{if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}}(e("./actions/dragDrop")),u=c(e("./DragDropMonitor"));function c(e){return e&&e.__esModule?e:{default:e}}r(l,[{key:"handleRefCountChange",value:function(){var e=0<this.store.getState().refCount;e&&!this.isSetUp?(this.backend.setup(),this.isSetUp=!0):!e&&this.isSetUp&&(this.backend.teardown(),this.isSetUp=!1)}},{key:"getContext",value:function(){return this.context}},{key:"getMonitor",value:function(){return this.monitor}},{key:"getBackend",value:function(){return this.backend}},{key:"getRegistry",value:function(){return this.registry}},{key:"getActions",value:function(){var a=this,i=this.store.dispatch;return Object.keys(s).filter(function(e){return"function"==typeof s[e]}).reduce(function(e,t){var o,n=s[t];return e[t]=(o=n,function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=o.apply(a,t);void 0!==r&&i(r)}),e},{})}}]),r=l;function l(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l);var n=(0,a.default)(i.default);this.context=t,this.store=n,this.monitor=new u.default(n),this.registry=this.monitor.registry,this.backend=e(this),n.subscribe(this.handleRefCountChange.bind(this))}n.default=r},{"./DragDropMonitor":19,"./actions/dragDrop":23,"./reducers":30,"redux/lib/createStore":354}],19:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e};function o(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)}}var i=p(e("invariant")),s=p(e("lodash/isArray")),a=p(e("./utils/matchesType")),u=p(e("./HandlerRegistry")),c=e("./reducers/dragOffset"),l=e("./reducers/dirtyHandlerIds");function p(e){return e&&e.__esModule?e:{default:e}}r(f,[{key:"subscribeToStateChange",value:function(n,e){var r=this,o=(1<arguments.length&&void 0!==e?e:{}).handlerIds;(0,i.default)("function"==typeof n,"listener must be a function."),(0,i.default)(void 0===o||(0,s.default)(o),"handlerIds, when specified, must be an array of strings.");var a=this.store.getState().stateId;return this.store.subscribe(function(){var e=r.store.getState(),t=e.stateId;try{t===a||t===a+1&&!(0,l.areDirty)(e.dirtyHandlerIds,o)||n()}finally{a=t}})}},{key:"subscribeToOffsetChange",value:function(t){var n=this;(0,i.default)("function"==typeof t,"listener must be a function.");var r=this.store.getState().dragOffset;return this.store.subscribe(function(){var e=n.store.getState().dragOffset;e!==r&&(r=e,t())})}},{key:"canDragSource",value:function(e){var t=this.registry.getSource(e);return(0,i.default)(t,"Expected to find a valid source."),!this.isDragging()&&t.canDrag(this,e)}},{key:"canDropOnTarget",value:function(e){var t=this.registry.getTarget(e);if((0,i.default)(t,"Expected to find a valid target."),!this.isDragging()||this.didDrop())return!1;var n=this.registry.getTargetType(e),r=this.getItemType();return(0,a.default)(n,r)&&t.canDrop(this,e)}},{key:"isDragging",value:function(){return Boolean(this.getItemType())}},{key:"isDraggingSource",value:function(e){var t=this.registry.getSource(e,!0);return(0,i.default)(t,"Expected to find a valid source."),!(!this.isDragging()||!this.isSourcePublic())&&(this.registry.getSourceType(e)===this.getItemType()&&t.isDragging(this,e))}},{key:"isOverTarget",value:function(e,t){var n=(1<arguments.length&&void 0!==t?t:{shallow:!1}).shallow;if(!this.isDragging())return!1;var r=this.registry.getTargetType(e),t=this.getItemType();if(!(0,a.default)(r,t))return!1;t=this.getTargetIds();if(!t.length)return!1;e=t.indexOf(e);return n?e===t.length-1:-1<e}},{key:"getItemType",value:function(){return this.store.getState().dragOperation.itemType}},{key:"getItem",value:function(){return this.store.getState().dragOperation.item}},{key:"getSourceId",value:function(){return this.store.getState().dragOperation.sourceId}},{key:"getTargetIds",value:function(){return this.store.getState().dragOperation.targetIds}},{key:"getDropResult",value:function(){return this.store.getState().dragOperation.dropResult}},{key:"didDrop",value:function(){return this.store.getState().dragOperation.didDrop}},{key:"isSourcePublic",value:function(){return this.store.getState().dragOperation.isSourcePublic}},{key:"getInitialClientOffset",value:function(){return this.store.getState().dragOffset.initialClientOffset}},{key:"getInitialSourceClientOffset",value:function(){return this.store.getState().dragOffset.initialSourceClientOffset}},{key:"getClientOffset",value:function(){return this.store.getState().dragOffset.clientOffset}},{key:"getSourceClientOffset",value:function(){return(0,c.getSourceClientOffset)(this.store.getState().dragOffset)}},{key:"getDifferenceFromInitialOffset",value:function(){return(0,c.getDifferenceFromInitialOffset)(this.store.getState().dragOffset)}}]),r=f;function f(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,f),this.store=e,this.registry=new u.default(e)}n.default=r},{"./HandlerRegistry":22,"./reducers/dirtyHandlerIds":27,"./reducers/dragOffset":28,"./utils/matchesType":34,invariant:59,"lodash/isArray":144}],20:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}Object.defineProperty(n,"__esModule",{value:!0});var o=(function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}(a,[{key:"canDrag",value:function(){return!0}},{key:"isDragging",value:function(e,t){return t===e.getSourceId()}},{key:"endDrag",value:function(){}}]),a);function a(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a)}n.default=o},{}],21:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}Object.defineProperty(n,"__esModule",{value:!0});var o=(function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}(a,[{key:"canDrop",value:function(){return!0}},{key:"hover",value:function(){}},{key:"drop",value:function(){}}]),a);function a(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a)}n.default=o},{}],22:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e};function o(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)}}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=p(e("invariant")),s=p(e("lodash/isArray")),u=p(e("asap")),c=e("./actions/registry"),l=p(e("./utils/getNextUniqueId"));function p(e){return e&&e.__esModule?e:{default:e}}var f="SOURCE",d="TARGET";function h(e,t){t&&(0,s.default)(e)?e.forEach(function(e){return h(e,!1)}):(0,i.default)("string"==typeof e||"symbol"===(void 0===e?"undefined":a(e)),t?"Type can only be a string, a symbol, or an array of either.":"Type can only be a string or a symbol.")}function g(e){switch(e[0]){case"S":return f;case"T":return d;default:(0,i.default)(!1,"Cannot parse handler ID: "+e)}}r(m,[{key:"addSource",value:function(e,t){var n;h(e),n=t,(0,i.default)("function"==typeof n.canDrag,"Expected canDrag to be a function."),(0,i.default)("function"==typeof n.beginDrag,"Expected beginDrag to be a function."),(0,i.default)("function"==typeof n.endDrag,"Expected endDrag to be a function.");t=this.addHandler(f,e,t);return this.store.dispatch((0,c.addSource)(t)),t}},{key:"addTarget",value:function(e,t){var n;h(e,!0),n=t,(0,i.default)("function"==typeof n.canDrop,"Expected canDrop to be a function."),(0,i.default)("function"==typeof n.hover,"Expected hover to be a function."),(0,i.default)("function"==typeof n.drop,"Expected beginDrag to be a function.");t=this.addHandler(d,e,t);return this.store.dispatch((0,c.addTarget)(t)),t}},{key:"addHandler",value:function(e,t,n){e=function(e){var t=(0,l.default)().toString();switch(e){case f:return"S"+t;case d:return"T"+t;default:(0,i.default)(!1,"Unknown role: "+e)}}(e);return this.types[e]=t,this.handlers[e]=n,e}},{key:"containsHandler",value:function(t){var n=this;return Object.keys(this.handlers).some(function(e){return n.handlers[e]===t})}},{key:"getSource",value:function(e,t){return(0,i.default)(this.isSourceId(e),"Expected a valid source ID."),t&&e===this.pinnedSourceId?this.pinnedSource:this.handlers[e]}},{key:"getTarget",value:function(e){return(0,i.default)(this.isTargetId(e),"Expected a valid target ID."),this.handlers[e]}},{key:"getSourceType",value:function(e){return(0,i.default)(this.isSourceId(e),"Expected a valid source ID."),this.types[e]}},{key:"getTargetType",value:function(e){return(0,i.default)(this.isTargetId(e),"Expected a valid target ID."),this.types[e]}},{key:"isSourceId",value:function(e){return g(e)===f}},{key:"isTargetId",value:function(e){return g(e)===d}},{key:"removeSource",value:function(e){var t=this;(0,i.default)(this.getSource(e),"Expected an existing source."),this.store.dispatch((0,c.removeSource)(e)),(0,u.default)(function(){delete t.handlers[e],delete t.types[e]})}},{key:"removeTarget",value:function(e){var t=this;(0,i.default)(this.getTarget(e),"Expected an existing target."),this.store.dispatch((0,c.removeTarget)(e)),(0,u.default)(function(){delete t.handlers[e],delete t.types[e]})}},{key:"pinSource",value:function(e){var t=this.getSource(e);(0,i.default)(t,"Expected an existing source."),this.pinnedSourceId=e,this.pinnedSource=t}},{key:"unpinSource",value:function(){(0,i.default)(this.pinnedSource,"No source is pinned at the time."),this.pinnedSourceId=null,this.pinnedSource=null}}]),r=m;function m(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,m),this.store=e,this.types={},this.handlers={},this.pinnedSourceId=null,this.pinnedSource=null}n.default=r},{"./actions/registry":24,"./utils/getNextUniqueId":33,asap:10,invariant:59,"lodash/isArray":144}],23:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.END_DRAG=n.DROP=n.HOVER=n.PUBLISH_DRAG_SOURCE=n.BEGIN_DRAG=void 0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n,r=arguments[t];for(n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};n.beginDrag=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{publishSource:!0,clientOffset:null},n=t.publishSource,r=t.clientOffset,o=t.getSourceClientOffset;(0,f.default)((0,d.default)(e),"Expected sourceIds to be an array.");var a=this.getMonitor(),i=this.getRegistry();(0,f.default)(!a.isDragging(),"Cannot call beginDrag while dragging.");for(var s=0;s<e.length;s++)(0,f.default)(i.getSource(e[s]),"Expected sourceIds to be registered.");for(var u=null,c=e.length-1;0<=c;c--)if(a.canDragSource(e[c])){u=e[c];break}if(null===u)return;var l=null;r&&((0,f.default)("function"==typeof o,"When clientOffset is provided, getSourceClientOffset must be a function."),l=o(u));t=i.getSource(u).beginDrag(a,u);(0,f.default)((0,p.default)(t),"Item must be an object."),i.pinSource(u);o=i.getSourceType(u);return{type:g,itemType:o,item:t,sourceId:u,clientOffset:r,sourceClientOffset:l,isSourcePublic:n}},n.publishDragSource=function(){return this.getMonitor().isDragging()?{type:o}:void 0},n.hover=function(e){var t=(1<arguments.length&&void 0!==arguments[1]?arguments[1]:{}).clientOffset,t=void 0===t?null:t;(0,f.default)((0,d.default)(e),"Expected targetIds to be an array.");var n=e.slice(0),r=this.getMonitor(),o=this.getRegistry();(0,f.default)(r.isDragging(),"Cannot call hover while not dragging."),(0,f.default)(!r.didDrop(),"Cannot call hover after drop.");for(var a=0;a<n.length;a++){var i=n[a];(0,f.default)(n.lastIndexOf(i)===a,"Expected targetIds to be unique in the passed array.");i=o.getTarget(i);(0,f.default)(i,"Expected targetIds to be registered.")}for(var s=r.getItemType(),u=n.length-1;0<=u;u--){var c=n[u],c=o.getTargetType(c);(0,h.default)(c,s)||n.splice(u,1)}for(var l=0;l<n.length;l++){var p=n[l];o.getTarget(p).hover(r,p)}return{type:m,targetIds:n,clientOffset:t}},n.drop=function(){var n=this,r=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},o=this.getMonitor(),a=this.getRegistry();(0,f.default)(o.isDragging(),"Cannot call drop while not dragging."),(0,f.default)(!o.didDrop(),"Cannot call drop twice during one drag operation.");var e=o.getTargetIds().filter(o.canDropOnTarget,o);e.reverse(),e.forEach(function(e,t){e=a.getTarget(e).drop(o,e);(0,f.default)(void 0===e||(0,p.default)(e),"Drop result must either be an object or undefined."),void 0===e&&(e=0===t?{}:o.getDropResult()),n.store.dispatch({type:s,dropResult:i({},r,e)})})},n.endDrag=function(){var e=this.getMonitor(),t=this.getRegistry();(0,f.default)(e.isDragging(),"Cannot call endDrag while not dragging.");var n=e.getSourceId();return t.getSource(n,true).endDrag(e,n),t.unpinSource(),{type:a}};var f=r(e("invariant")),d=r(e("lodash/isArray")),p=r(e("lodash/isObject")),h=r(e("../utils/matchesType"));function r(e){return e&&e.__esModule?e:{default:e}}var g=n.BEGIN_DRAG="dnd-core/BEGIN_DRAG",o=n.PUBLISH_DRAG_SOURCE="dnd-core/PUBLISH_DRAG_SOURCE",m=n.HOVER="dnd-core/HOVER",s=n.DROP="dnd-core/DROP",a=n.END_DRAG="dnd-core/END_DRAG"},{"../utils/matchesType":34,invariant:59,"lodash/isArray":144,"lodash/isObject":150}],24:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.addSource=function(e){return{type:r,sourceId:e}},n.addTarget=function(e){return{type:o,targetId:e}},n.removeSource=function(e){return{type:a,sourceId:e}},n.removeTarget=function(e){return{type:i,targetId:e}};var r=n.ADD_SOURCE="dnd-core/ADD_SOURCE",o=n.ADD_TARGET="dnd-core/ADD_TARGET",a=n.REMOVE_SOURCE="dnd-core/REMOVE_SOURCE",i=n.REMOVE_TARGET="dnd-core/REMOVE_TARGET"},{}],25:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e};function o(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)}}n.default=function(e){return new u(e)};var a,i=e("lodash/noop"),s=(a=i)&&a.__esModule?a:{default:a};var u=(r(c,[{key:"setup",value:function(){this.didCallSetup=!0}},{key:"teardown",value:function(){this.didCallTeardown=!0}},{key:"connectDragSource",value:function(){return s.default}},{key:"connectDragPreview",value:function(){return s.default}},{key:"connectDropTarget",value:function(){return s.default}},{key:"simulateBeginDrag",value:function(e,t){this.actions.beginDrag(e,t)}},{key:"simulatePublishDragSource",value:function(){this.actions.publishDragSource()}},{key:"simulateHover",value:function(e,t){this.actions.hover(e,t)}},{key:"simulateDrop",value:function(){this.actions.drop()}},{key:"simulateEndDrag",value:function(){this.actions.endDrag()}}]),c);function c(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,c),this.actions=e.getActions()}},{"lodash/noop":156}],26:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=e("./DragDropManager");Object.defineProperty(n,"DragDropManager",{enumerable:!0,get:function(){return s(r).default}});var o=e("./DragSource");Object.defineProperty(n,"DragSource",{enumerable:!0,get:function(){return s(o).default}});var a=e("./DropTarget");Object.defineProperty(n,"DropTarget",{enumerable:!0,get:function(){return s(a).default}});var i=e("./backends/createTestBackend");function s(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"createTestBackend",{enumerable:!0,get:function(){return s(i).default}})},{"./DragDropManager":18,"./DragSource":20,"./DropTarget":21,"./backends/createTestBackend":25}],27:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(){var e=arguments[1],t=arguments[2];switch(e.type){case u.HOVER:break;case c.ADD_SOURCE:case c.ADD_TARGET:case c.REMOVE_TARGET:case c.REMOVE_SOURCE:return l;case u.BEGIN_DRAG:case u.PUBLISH_DRAG_SOURCE:case u.END_DRAG:case u.DROP:default:return p}var n=e.targetIds,r=t.targetIds,o=(0,s.default)(n,r),a=!1;if(0===o.length){for(var i=0;i<n.length;i++)if(n[i]!==r[i]){a=!0;break}}else a=!0;if(!a)return l;e=r[r.length-1],t=n[n.length-1];e!==t&&(e&&o.push(e),t&&o.push(t));return o},n.areDirty=function(e,t){return e!==l&&(e===p||void 0===t||0<(0,r.default)(t,e).length)};var s=o(e("lodash/xor")),r=o(e("lodash/intersection")),u=e("../actions/dragDrop"),c=e("../actions/registry");function o(e){return e&&e.__esModule?e:{default:e}}var l=[],p=[]},{"../actions/dragDrop":23,"../actions/registry":24,"lodash/intersection":142,"lodash/xor":160}],28:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n,r=arguments[t];for(n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};n.default=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:a,t=arguments[1];switch(t.type){case o.BEGIN_DRAG:return{initialSourceClientOffset:t.sourceClientOffset,initialClientOffset:t.clientOffset,clientOffset:t.clientOffset};case o.HOVER:return function(e,t){return e===t||e&&t&&e.x===t.x&&e.y===t.y}(e.clientOffset,t.clientOffset)?e:r({},e,{clientOffset:t.clientOffset});case o.END_DRAG:case o.DROP:return a;default:return e}},n.getSourceClientOffset=function(e){var t=e.clientOffset,n=e.initialClientOffset,e=e.initialSourceClientOffset;return t&&n&&e?{x:t.x+e.x-n.x,y:t.y+e.y-n.y}:null},n.getDifferenceFromInitialOffset=function(e){var t=e.clientOffset,e=e.initialClientOffset;return t&&e?{x:t.x-e.x,y:t.y-e.y}:null};var o=e("../actions/dragDrop"),a={initialSourceClientOffset:null,initialClientOffset:null,clientOffset:null}},{"../actions/dragDrop":23}],29:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n,r=arguments[t];for(n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};n.default=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:c,t=arguments[1];switch(t.type){case s.BEGIN_DRAG:return r({},e,{itemType:t.itemType,item:t.item,sourceId:t.sourceId,isSourcePublic:t.isSourcePublic,dropResult:null,didDrop:!1});case s.PUBLISH_DRAG_SOURCE:return r({},e,{isSourcePublic:!0});case s.HOVER:return r({},e,{targetIds:t.targetIds});case u.REMOVE_TARGET:return-1===e.targetIds.indexOf(t.targetId)?e:r({},e,{targetIds:(0,i.default)(e.targetIds,t.targetId)});case s.DROP:return r({},e,{dropResult:t.dropResult,didDrop:!0,targetIds:[]});case s.END_DRAG:return r({},e,{itemType:null,item:null,sourceId:null,dropResult:null,didDrop:!1,isSourcePublic:null,targetIds:[]});default:return e}};var o,a=e("lodash/without"),i=(o=a)&&o.__esModule?o:{default:o},s=e("../actions/dragDrop"),u=e("../actions/registry");var c={itemType:null,item:null,sourceId:null,targetIds:[],dropResult:null,didDrop:!1,isSourcePublic:null}},{"../actions/dragDrop":23,"../actions/registry":24,"lodash/without":159}],30:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];return{dirtyHandlerIds:(0,i.default)(e.dirtyHandlerIds,t,e.dragOperation),dragOffset:(0,r.default)(e.dragOffset,t),refCount:(0,a.default)(e.refCount,t),dragOperation:(0,o.default)(e.dragOperation,t),stateId:(0,s.default)(e.stateId)}};var r=u(e("./dragOffset")),o=u(e("./dragOperation")),a=u(e("./refCount")),i=u(e("./dirtyHandlerIds")),s=u(e("./stateId"));function u(e){return e&&e.__esModule?e:{default:e}}},{"./dirtyHandlerIds":27,"./dragOffset":28,"./dragOperation":29,"./refCount":31,"./stateId":32}],31:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:0;switch(arguments[1].type){case r.ADD_SOURCE:case r.ADD_TARGET:return e+1;case r.REMOVE_SOURCE:case r.REMOVE_TARGET:return e-1;default:return e}};var r=e("../actions/registry")},{"../actions/registry":24}],32:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(){return(0<arguments.length&&void 0!==arguments[0]?arguments[0]:0)+1}},{}],33:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(){return r++};var r=0},{}],34:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e,t){return(0,a.default)(e)?e.some(function(e){return e===t}):e===t};var r,o=e("lodash/isArray"),a=(r=o)&&r.__esModule?r:{default:r}},{"lodash/isArray":144}],35:[function(n,o,e){(function(e){"use strict";var r=n("./emptyFunction"),t={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(){}};o.exports=t}).call(this,n("_process"))},{"./emptyFunction":42,_process:162}],36:[function(e,t,n){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),r={canUseDOM:r,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};t.exports=r},{}],37:[function(e,t,n){"use strict";var r=/-(.)/g;t.exports=function(e){return e.replace(r,function(e,t){return t.toUpperCase()})}},{}],38:[function(e,t,n){"use strict";var r=e("./camelize"),o=/^-ms-/;t.exports=function(e){return r(e.replace(o,"ms-"))}},{"./camelize":37}],39:[function(e,t,n){"use strict";var r=e("./isTextNode");t.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))))}},{"./isTextNode":52}],40:[function(t,n,e){(function(e){"use strict";var o=t("./invariant");n.exports=function(e){return!(t=e)||"object"!=typeof t&&"function"!=typeof t||!("length"in t)||"setInterval"in t||"number"==typeof t.nodeType||!(Array.isArray(t)||"callee"in t||"item"in t)?[e]:Array.isArray(e)?e.slice():function(e){var t=e.length;if((Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e)&&o(!1),"number"!=typeof t&&o(!1),0===t||t-1 in e||o(!1),"function"==typeof e.callee&&o(!1),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(e){}for(var n=Array(t),r=0;r<t;r++)n[r]=e[r];return n}(e);var t}}).call(this,t("_process"))},{"./invariant":50,_process:162}],41:[function(n,r,e){(function(e){"use strict";var t=n("./ExecutionEnvironment"),a=n("./createArrayFromMixed"),i=n("./getMarkupWrap"),s=n("./invariant"),u=t.canUseDOM?document.createElement("div"):null,c=/^\s*<(\w+)/;r.exports=function(e,t){var n=u;u||s(!1);var r=(r=(r=e).match(c))&&r[1].toLowerCase();if(r=r&&i(r)){n.innerHTML=r[1]+e+r[2];for(var o=r[0];o--;)n=n.lastChild}else n.innerHTML=e;for((e=n.getElementsByTagName("script")).length&&(t||s(!1),a(e).forEach(t)),t=Array.from(n.childNodes);n.lastChild;)n.removeChild(n.lastChild);return t}}).call(this,n("_process"))},{"./ExecutionEnvironment":36,"./createArrayFromMixed":40,"./getMarkupWrap":46,"./invariant":50,_process:162}],42:[function(e,t,n){"use strict";function r(e){return function(){return e}}function o(){}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},t.exports=o},{}],43:[function(e,n,t){(function(e){"use strict";var t={};n.exports=t}).call(this,e("_process"))},{_process:162}],44:[function(e,t,n){"use strict";t.exports=function(e){try{e.focus()}catch(e){}}},{}],45:[function(e,t,n){"use strict";t.exports=function(t){if(void 0===(t=t||("undefined"!=typeof document?document:void 0)))return null;try{return t.activeElement||t.body}catch(e){return t.body}}},{}],46:[function(c,l,e){(function(e){"use strict";var t=c("./ExecutionEnvironment"),n=c("./invariant"),r=t.canUseDOM?document.createElement("div"):null,o={},a=[1,'<select multiple="true">',"</select>"],i=[1,"<table>","</table>"],t=[3,"<table><tbody><tr>","</tr></tbody></table>"],s=[1,'<svg xmlns="http://www.w3.org/2000/svg">',"</svg>"],u={"*":[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:a,option:a,caption:i,colgroup:i,tbody:i,tfoot:i,thead:i,td:t,th:t};["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"].forEach(function(e){u[e]=s,o[e]=!0}),l.exports=function(e){return r||n(!1),u.hasOwnProperty(e)||(e="*"),o.hasOwnProperty(e)||(r.innerHTML="*"===e?"<link />":"<"+e+"></"+e+">",o[e]=!r.firstChild),o[e]?u[e]:null}}).call(this,c("_process"))},{"./ExecutionEnvironment":36,"./invariant":50,_process:162}],47:[function(e,t,n){"use strict";t.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}}},{}],48:[function(e,t,n){"use strict";var r=/([A-Z])/g;t.exports=function(e){return e.replace(r,"-$1").toLowerCase()}},{}],49:[function(e,t,n){"use strict";var r=e("./hyphenate"),o=/^ms-/;t.exports=function(e){return r(e).replace(o,"-ms-")}},{"./hyphenate":48}],50:[function(e,t,n){(function(e){"use strict";var p=function(){};t.exports=function(e,t,n,r,o,a,i,s){var u,c,l;if(p(t),!e)throw void 0===t?l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings."):(u=[n,r,o,a,i,s],c=0,(l=new Error(t.replace(/%s/g,function(){return u[c++]}))).name="Invariant Violation"),l.framesToPop=1,l}}).call(this,e("_process"))},{_process:162}],51:[function(e,t,n){"use strict";t.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))}},{}],52:[function(e,t,n){"use strict";var r=e("./isNode");t.exports=function(e){return r(e)&&3==e.nodeType}},{"./isNode":51}],53:[function(e,t,n){"use strict";t.exports=function(t){var n={};return function(e){return n.hasOwnProperty(e)||(n[e]=t.call(this,e)),n[e]}}},{}],54:[function(e,t,n){"use strict";var r;e("./ExecutionEnvironment").canUseDOM&&(r=window.performance||window.msPerformance||window.webkitPerformance),t.exports=r||{}},{"./ExecutionEnvironment":36}],55:[function(e,t,n){"use strict";var r=e("./performance"),e=r.now?function(){return r.now()}:function(){return Date.now()};t.exports=e},{"./performance":54}],56:[function(e,t,n){"use strict";var a=Object.prototype.hasOwnProperty;function i(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}t.exports=function(e,t){if(i(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var o=0;o<n.length;o++)if(!a.call(t,n[o])||!i(e[n[o]],t[n[o]]))return!1;return!0}},{}],57:[function(n,r,e){(function(e){"use strict";var t=n("./emptyFunction");r.exports=t}).call(this,n("_process"))},{"./emptyFunction":42,_process:162}],58:[function(e,t,n){"use strict";var c={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},l={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},p=Object.defineProperty,f=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,h=Object.getOwnPropertyDescriptor,g=Object.getPrototypeOf,m=g&&g(Object);t.exports=function e(t,n,r){if("string"==typeof n)return t;var o;!m||(o=g(n))&&o!==m&&e(t,o,r);var a=f(n);d&&(a=a.concat(d(n)));for(var i=0;i<a.length;++i){var s=a[i];if(!(c[s]||l[s]||r&&r[s])){var u=h(n,s);try{p(t,s,u)}catch(e){}}}return t}},{}],59:[function(e,t,n){(function(e){"use strict";t.exports=function(e,t,n,r,o,a,i,s){var u,c,l;if(!e)throw void 0===t?l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings."):(u=[n,r,o,a,i,s],c=0,(l=new Error(t.replace(/%s/g,function(){return u[c++]}))).name="Invariant Violation"),l.framesToPop=1,l}}).call(this,e("_process"))},{_process:162}],60:[function(e,t,n){var r=e("./_hashClear"),o=e("./_hashDelete"),a=e("./_hashGet"),i=e("./_hashHas"),e=e("./_hashSet");function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=o,s.prototype.get=a,s.prototype.has=i,s.prototype.set=e,t.exports=s},{"./_hashClear":103,"./_hashDelete":104,"./_hashGet":105,"./_hashHas":106,"./_hashSet":107}],61:[function(e,t,n){var r=e("./_listCacheClear"),o=e("./_listCacheDelete"),a=e("./_listCacheGet"),i=e("./_listCacheHas"),e=e("./_listCacheSet");function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=o,s.prototype.get=a,s.prototype.has=i,s.prototype.set=e,t.exports=s},{"./_listCacheClear":114,"./_listCacheDelete":115,"./_listCacheGet":116,"./_listCacheHas":117,"./_listCacheSet":118}],62:[function(e,t,n){e=e("./_getNative")(e("./_root"),"Map");t.exports=e},{"./_getNative":99,"./_root":130}],63:[function(e,t,n){var r=e("./_mapCacheClear"),o=e("./_mapCacheDelete"),a=e("./_mapCacheGet"),i=e("./_mapCacheHas"),e=e("./_mapCacheSet");function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=o,s.prototype.get=a,s.prototype.has=i,s.prototype.set=e,t.exports=s},{"./_mapCacheClear":119,"./_mapCacheDelete":120,"./_mapCacheGet":121,"./_mapCacheHas":122,"./_mapCacheSet":123}],64:[function(e,t,n){e=e("./_getNative")(e("./_root"),"Set");t.exports=e},{"./_getNative":99,"./_root":130}],65:[function(e,t,n){var r=e("./_MapCache"),o=e("./_setCacheAdd"),e=e("./_setCacheHas");function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=o,a.prototype.has=e,t.exports=a},{"./_MapCache":63,"./_setCacheAdd":131,"./_setCacheHas":132}],66:[function(e,t,n){e=e("./_root").Symbol;t.exports=e},{"./_root":130}],67:[function(e,t,n){t.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},{}],68:[function(e,t,n){t.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i,n,e)&&(a[o++]=i)}return a}},{}],69:[function(e,t,n){var r=e("./_baseIndexOf");t.exports=function(e,t){return!!(null==e?0:e.length)&&-1<r(e,t,0)}},{"./_baseIndexOf":79}],70:[function(e,t,n){t.exports=function(e,t,n){for(var r=-1,o=null==e?0:e.length;++r<o;)if(n(t,e[r]))return!0;return!1}},{}],71:[function(e,t,n){var l=e("./_baseTimes"),p=e("./isArguments"),f=e("./isArray"),d=e("./isBuffer"),h=e("./_isIndex"),g=e("./isTypedArray"),m=Object.prototype.hasOwnProperty;t.exports=function(e,t){var n,r=f(e),o=!r&&p(e),a=!r&&!o&&d(e),i=!r&&!o&&!a&&g(e),s=r||o||a||i,u=s?l(e.length,String):[],c=u.length;for(n in e)!t&&!m.call(e,n)||s&&("length"==n||a&&("offset"==n||"parent"==n)||i&&("buffer"==n||"byteLength"==n||"byteOffset"==n)||h(n,c))||u.push(n);return u}},{"./_baseTimes":88,"./_isIndex":109,"./isArguments":143,"./isArray":144,"./isBuffer":147,"./isTypedArray":153}],72:[function(e,t,n){t.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},{}],73:[function(e,t,n){t.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},{}],74:[function(e,t,n){var r=e("./eq");t.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},{"./eq":140}],75:[function(e,t,n){var d=e("./_SetCache"),h=e("./_arrayIncludes"),g=e("./_arrayIncludesWith"),m=e("./_arrayMap"),v=e("./_baseUnary"),y=e("./_cacheHas");t.exports=function(e,t,n,r){var o=-1,a=h,i=!0,s=e.length,u=[],c=t.length;if(!s)return u;n&&(t=m(t,v(n))),r?(a=g,i=!1):200<=t.length&&(a=y,i=!1,t=new d(t));e:for(;++o<s;){var l=e[o],p=null==n?l:n(l),l=r||0!==l?l:0;if(i&&p==p){for(var f=c;f--;)if(t[f]===p)continue e;u.push(l)}else a(t,p,r)||u.push(l)}return u}},{"./_SetCache":65,"./_arrayIncludes":69,"./_arrayIncludesWith":70,"./_arrayMap":72,"./_baseUnary":89,"./_cacheHas":92}],76:[function(e,t,n){t.exports=function(e,t,n,r){for(var o=e.length,a=n+(r?1:-1);r?a--:++a<o;)if(t(e[a],a,e))return a;return-1}},{}],77:[function(e,t,n){var c=e("./_arrayPush"),l=e("./_isFlattenable");t.exports=function e(t,n,r,o,a){var i=-1,s=t.length;for(r=r||l,a=a||[];++i<s;){var u=t[i];0<n&&r(u)?1<n?e(u,n-1,r,o,a):c(a,u):o||(a[a.length]=u)}return a}},{"./_arrayPush":73,"./_isFlattenable":108}],78:[function(e,t,n){var r=e("./_Symbol"),o=e("./_getRawTag"),a=e("./_objectToString"),i=r?r.toStringTag:void 0;t.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":(i&&i in Object(e)?o:a)(e)}},{"./_Symbol":66,"./_getRawTag":101,"./_objectToString":127}],79:[function(e,t,n){var r=e("./_baseFindIndex"),o=e("./_baseIsNaN"),a=e("./_strictIndexOf");t.exports=function(e,t,n){return t==t?a(e,t,n):r(e,o,n)}},{"./_baseFindIndex":76,"./_baseIsNaN":82,"./_strictIndexOf":136}],80:[function(e,t,n){var m=e("./_SetCache"),v=e("./_arrayIncludes"),y=e("./_arrayIncludesWith"),b=e("./_arrayMap"),_=e("./_baseUnary"),E=e("./_cacheHas"),C=Math.min;t.exports=function(e,t,n){for(var r=n?y:v,o=e[0].length,a=e.length,i=a,s=Array(a),u=1/0,c=[];i--;){var l=e[i];i&&t&&(l=b(l,_(t))),u=C(l.length,u),s[i]=!n&&(t||120<=o&&120<=l.length)?new m(i&&l):void 0}l=e[0];var p=-1,f=s[0];e:for(;++p<o&&c.length<u;){var d=l[p],h=t?t(d):d,d=n||0!==d?d:0;if(!(f?E(f,h):r(c,h,n))){for(i=a;--i;){var g=s[i];if(!(g?E(g,h):r(e[i],h,n)))continue e}f&&f.push(h),c.push(d)}}return c}},{"./_SetCache":65,"./_arrayIncludes":69,"./_arrayIncludesWith":70,"./_arrayMap":72,"./_baseUnary":89,"./_cacheHas":92}],81:[function(e,t,n){var r=e("./_baseGetTag"),o=e("./isObjectLike");t.exports=function(e){return o(e)&&"[object Arguments]"==r(e)}},{"./_baseGetTag":78,"./isObjectLike":151}],82:[function(e,t,n){t.exports=function(e){return e!=e}},{}],83:[function(e,t,n){var r=e("./isFunction"),o=e("./_isMasked"),a=e("./isObject"),i=e("./_toSource"),s=/^\[object .+?Constructor\]$/,u=Function.prototype,e=Object.prototype,u=u.toString,e=e.hasOwnProperty,c=RegExp("^"+u.call(e).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(e){return!(!a(e)||o(e))&&(r(e)?c:s).test(i(e))}},{"./_isMasked":112,"./_toSource":137,"./isFunction":148,"./isObject":150}],84:[function(e,t,n){var r=e("./_baseGetTag"),o=e("./isLength"),a=e("./isObjectLike"),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,t.exports=function(e){return a(e)&&o(e.length)&&!!i[r(e)]}},{"./_baseGetTag":78,"./isLength":149,"./isObjectLike":151}],85:[function(e,t,n){var o=e("./isObject"),a=e("./_isPrototype"),i=e("./_nativeKeysIn"),s=Object.prototype.hasOwnProperty;t.exports=function(e){if(!o(e))return i(e);var t,n=a(e),r=[];for(t in e)("constructor"!=t||!n&&s.call(e,t))&&r.push(t);return r}},{"./_isPrototype":113,"./_nativeKeysIn":125,"./isObject":150}],86:[function(e,t,n){var r=e("./identity"),o=e("./_overRest"),a=e("./_setToString");t.exports=function(e,t){return a(o(e,t,r),e+"")}},{"./_overRest":129,"./_setToString":134,"./identity":141}],87:[function(e,t,n){var r=e("./constant"),o=e("./_defineProperty"),e=e("./identity"),e=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:e;t.exports=e},{"./_defineProperty":96,"./constant":138,"./identity":141}],88:[function(e,t,n){t.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},{}],89:[function(e,t,n){t.exports=function(t){return function(e){return t(e)}}},{}],90:[function(e,t,n){var d=e("./_SetCache"),h=e("./_arrayIncludes"),g=e("./_arrayIncludesWith"),m=e("./_cacheHas"),v=e("./_createSet"),y=e("./_setToArray");t.exports=function(e,t,n){var r=-1,o=h,a=e.length,i=!0,s=[],u=s;if(n)i=!1,o=g;else if(200<=a){var c=t?null:v(e);if(c)return y(c);i=!1,o=m,u=new d}else u=t?[]:s;e:for(;++r<a;){var l=e[r],p=t?t(l):l,l=n||0!==l?l:0;if(i&&p==p){for(var f=u.length;f--;)if(u[f]===p)continue e;t&&u.push(p),s.push(l)}else o(u,p,n)||(u!==s&&u.push(p),s.push(l))}return s}},{"./_SetCache":65,"./_arrayIncludes":69,"./_arrayIncludesWith":70,"./_cacheHas":92,"./_createSet":95,"./_setToArray":133}],91:[function(e,t,n){var u=e("./_baseDifference"),c=e("./_baseFlatten"),l=e("./_baseUniq");t.exports=function(e,t,n){var r=e.length;if(r<2)return r?l(e[0]):[];for(var o=-1,a=Array(r);++o<r;)for(var i=e[o],s=-1;++s<r;)s!=o&&(a[o]=u(a[o]||i,e[s],t,n));return l(c(a,1),t,n)}},{"./_baseDifference":75,"./_baseFlatten":77,"./_baseUniq":90}],92:[function(e,t,n){t.exports=function(e,t){return e.has(t)}},{}],93:[function(e,t,n){var r=e("./isArrayLikeObject");t.exports=function(e){return r(e)?e:[]}},{"./isArrayLikeObject":146}],94:[function(e,t,n){e=e("./_root")["__core-js_shared__"];t.exports=e},{"./_root":130}],95:[function(e,t,n){var r=e("./_Set"),o=e("./noop"),e=e("./_setToArray"),o=r&&1/e(new r([,-0]))[1]==1/0?function(e){return new r(e)}:o;t.exports=o},{"./_Set":64,"./_setToArray":133,"./noop":156}],96:[function(e,t,n){var r=e("./_getNative"),e=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();t.exports=e},{"./_getNative":99}],97:[function(e,t,n){(function(e){e="object"==typeof e&&e&&e.Object===Object&&e;t.exports=e}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],98:[function(e,t,n){var r=e("./_isKeyable");t.exports=function(e,t){return e=e.__data__,r(t)?e["string"==typeof t?"string":"hash"]:e.map}},{"./_isKeyable":111}],99:[function(e,t,n){var r=e("./_baseIsNative"),o=e("./_getValue");t.exports=function(e,t){return t=o(e,t),r(t)?t:void 0}},{"./_baseIsNative":83,"./_getValue":102}],100:[function(e,t,n){e=e("./_overArg")(Object.getPrototypeOf,Object);t.exports=e},{"./_overArg":128}],101:[function(e,t,n){var r=e("./_Symbol"),e=Object.prototype,a=e.hasOwnProperty,i=e.toString,s=r?r.toStringTag:void 0;t.exports=function(e){var t=a.call(e,s),n=e[s];try{var r=!(e[s]=void 0)}catch(e){}var o=i.call(e);return r&&(t?e[s]=n:delete e[s]),o}},{"./_Symbol":66}],102:[function(e,t,n){t.exports=function(e,t){return null==e?void 0:e[t]}},{}],103:[function(e,t,n){var r=e("./_nativeCreate");t.exports=function(){this.__data__=r?r(null):{},this.size=0}},{"./_nativeCreate":124}],104:[function(e,t,n){t.exports=function(e){return e=this.has(e)&&delete this.__data__[e],this.size-=e?1:0,e}},{}],105:[function(e,t,n){var r=e("./_nativeCreate"),o=Object.prototype.hasOwnProperty;t.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return o.call(t,e)?t[e]:void 0}},{"./_nativeCreate":124}],106:[function(e,t,n){var r=e("./_nativeCreate"),o=Object.prototype.hasOwnProperty;t.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:o.call(t,e)}},{"./_nativeCreate":124}],107:[function(e,t,n){var r=e("./_nativeCreate");t.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},{"./_nativeCreate":124}],108:[function(e,t,n){var r=e("./_Symbol"),o=e("./isArguments"),a=e("./isArray"),i=r?r.isConcatSpreadable:void 0;t.exports=function(e){return a(e)||o(e)||!!(i&&e&&e[i])}},{"./_Symbol":66,"./isArguments":143,"./isArray":144}],109:[function(e,t,n){var r=/^(?:0|[1-9]\d*)$/;t.exports=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&r.test(e))&&-1<e&&e%1==0&&e<t}},{}],110:[function(e,t,n){var o=e("./eq"),a=e("./isArrayLike"),i=e("./_isIndex"),s=e("./isObject");t.exports=function(e,t,n){if(!s(n))return!1;var r=typeof t;return!!("number"==r?a(n)&&i(t,n.length):"string"==r&&t in n)&&o(n[t],e)}},{"./_isIndex":109,"./eq":140,"./isArrayLike":145,"./isObject":150}],111:[function(e,t,n){t.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},{}],112:[function(e,t,n){var e=e("./_coreJsData"),r=(e=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||""))?"Symbol(src)_1."+e:"";t.exports=function(e){return!!r&&r in e}},{"./_coreJsData":94}],113:[function(e,t,n){var r=Object.prototype;t.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||r)}},{}],114:[function(e,t,n){t.exports=function(){this.__data__=[],this.size=0}},{}],115:[function(e,t,n){var r=e("./_assocIndexOf"),o=Array.prototype.splice;t.exports=function(e){var t=this.__data__;return!((e=r(t,e))<0)&&(e==t.length-1?t.pop():o.call(t,e,1),--this.size,!0)}},{"./_assocIndexOf":74}],116:[function(e,t,n){var r=e("./_assocIndexOf");t.exports=function(e){var t=this.__data__;return(e=r(t,e))<0?void 0:t[e][1]}},{"./_assocIndexOf":74}],117:[function(e,t,n){var r=e("./_assocIndexOf");t.exports=function(e){return-1<r(this.__data__,e)}},{"./_assocIndexOf":74}],118:[function(e,t,n){var o=e("./_assocIndexOf");t.exports=function(e,t){var n=this.__data__,r=o(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}},{"./_assocIndexOf":74}],119:[function(e,t,n){var r=e("./_Hash"),o=e("./_ListCache"),a=e("./_Map");t.exports=function(){this.size=0,this.__data__={hash:new r,map:new(a||o),string:new r}}},{"./_Hash":60,"./_ListCache":61,"./_Map":62}],120:[function(e,t,n){var r=e("./_getMapData");t.exports=function(e){return e=r(this,e).delete(e),this.size-=e?1:0,e}},{"./_getMapData":98}],121:[function(e,t,n){var r=e("./_getMapData");t.exports=function(e){return r(this,e).get(e)}},{"./_getMapData":98}],122:[function(e,t,n){var r=e("./_getMapData");t.exports=function(e){return r(this,e).has(e)}},{"./_getMapData":98}],123:[function(e,t,n){var o=e("./_getMapData");t.exports=function(e,t){var n=o(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}},{"./_getMapData":98}],124:[function(e,t,n){e=e("./_getNative")(Object,"create");t.exports=e},{"./_getNative":99}],125:[function(e,t,n){t.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},{}],126:[function(e,t,n){var e=e("./_freeGlobal"),n="object"==typeof n&&n&&!n.nodeType&&n,r=n&&"object"==typeof t&&t&&!t.nodeType&&t,o=r&&r.exports===n&&e.process,e=function(){try{var e=r&&r.require&&r.require("util").types;return e?e:o&&o.binding&&o.binding("util")}catch(e){}}();t.exports=e},{"./_freeGlobal":97}],127:[function(e,t,n){var r=Object.prototype.toString;t.exports=function(e){return r.call(e)}},{}],128:[function(e,t,n){t.exports=function(t,n){return function(e){return t(n(e))}}},{}],129:[function(e,t,n){var u=e("./_apply"),c=Math.max;t.exports=function(a,i,s){return i=c(void 0===i?a.length-1:i,0),function(){for(var e=arguments,t=-1,n=c(e.length-i,0),r=Array(n);++t<n;)r[t]=e[i+t];t=-1;for(var o=Array(i+1);++t<i;)o[t]=e[t];return o[i]=s(r),u(a,this,o)}}},{"./_apply":67}],130:[function(e,t,n){var r=e("./_freeGlobal"),e="object"==typeof self&&self&&self.Object===Object&&self,e=r||e||Function("return this")();t.exports=e},{"./_freeGlobal":97}],131:[function(e,t,n){t.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},{}],132:[function(e,t,n){t.exports=function(e){return this.__data__.has(e)}},{}],133:[function(e,t,n){t.exports=function(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}},{}],134:[function(e,t,n){var r=e("./_baseSetToString"),r=e("./_shortOut")(r);t.exports=r},{"./_baseSetToString":87,"./_shortOut":135}],135:[function(e,t,n){var a=Date.now;t.exports=function(n){var r=0,o=0;return function(){var e=a(),t=16-(e-o);if(o=e,0<t){if(800<=++r)return arguments[0]}else r=0;return n.apply(void 0,arguments)}}},{}],136:[function(e,t,n){t.exports=function(e,t,n){for(var r=n-1,o=e.length;++r<o;)if(e[r]===t)return r;return-1}},{}],137:[function(e,t,n){var r=Function.prototype.toString;t.exports=function(e){if(null!=e){try{return r.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},{}],138:[function(e,t,n){t.exports=function(e){return function(){return e}}},{}],139:[function(e,t,n){var r=e("./_baseRest"),p=e("./eq"),f=e("./_isIterateeCall"),d=e("./keysIn"),h=Object.prototype,g=h.hasOwnProperty,r=r(function(e,t){e=Object(e);var n=-1,r=t.length,o=2<r?t[2]:void 0;for(o&&f(t[0],t[1],o)&&(r=1);++n<r;)for(var a=t[n],i=d(a),s=-1,u=i.length;++s<u;){var c=i[s],l=e[c];(void 0===l||p(l,h[c])&&!g.call(e,c))&&(e[c]=a[c])}return e});t.exports=r},{"./_baseRest":86,"./_isIterateeCall":110,"./eq":140,"./keysIn":154}],140:[function(e,t,n){t.exports=function(e,t){return e===t||e!=e&&t!=t}},{}],141:[function(e,t,n){t.exports=function(e){return e}},{}],142:[function(e,t,n){var r=e("./_arrayMap"),o=e("./_baseIntersection"),a=e("./_baseRest"),i=e("./_castArrayLikeObject"),a=a(function(e){var t=r(e,i);return t.length&&t[0]===e[0]?o(t):[]});t.exports=a},{"./_arrayMap":72,"./_baseIntersection":80,"./_baseRest":86,"./_castArrayLikeObject":93}],143:[function(e,t,n){var r=e("./_baseIsArguments"),o=e("./isObjectLike"),e=Object.prototype,a=e.hasOwnProperty,i=e.propertyIsEnumerable,r=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!i.call(e,"callee")};t.exports=r},{"./_baseIsArguments":81,"./isObjectLike":151}],144:[function(e,t,n){var r=Array.isArray;t.exports=r},{}],145:[function(e,t,n){var r=e("./isFunction"),o=e("./isLength");t.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},{"./isFunction":148,"./isLength":149}],146:[function(e,t,n){var r=e("./isArrayLike"),o=e("./isObjectLike");t.exports=function(e){return o(e)&&r(e)}},{"./isArrayLike":145,"./isObjectLike":151}],147:[function(e,t,n){var r=e("./_root"),o=e("./stubFalse"),e="object"==typeof n&&n&&!n.nodeType&&n,n=e&&"object"==typeof t&&t&&!t.nodeType&&t,r=n&&n.exports===e?r.Buffer:void 0,o=(r?r.isBuffer:void 0)||o;t.exports=o},{"./_root":130,"./stubFalse":157}],148:[function(e,t,n){var r=e("./_baseGetTag"),o=e("./isObject");t.exports=function(e){return!!o(e)&&("[object Function]"==(e=r(e))||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e)}},{"./_baseGetTag":78,"./isObject":150}],149:[function(e,t,n){t.exports=function(e){return"number"==typeof e&&-1<e&&e%1==0&&e<=9007199254740991}},{}],150:[function(e,t,n){t.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},{}],151:[function(e,t,n){t.exports=function(e){return null!=e&&"object"==typeof e}},{}],152:[function(e,t,n){var r=e("./_baseGetTag"),o=e("./_getPrototype"),a=e("./isObjectLike"),i=Function.prototype,e=Object.prototype,s=i.toString,u=e.hasOwnProperty,c=s.call(Object);t.exports=function(e){return!(!a(e)||"[object Object]"!=r(e))&&(null===(e=o(e))||"function"==typeof(e=u.call(e,"constructor")&&e.constructor)&&e instanceof e&&s.call(e)==c)}},{"./_baseGetTag":78,"./_getPrototype":100,"./isObjectLike":151}],153:[function(e,t,n){var r=e("./_baseIsTypedArray"),o=e("./_baseUnary"),e=e("./_nodeUtil"),e=e&&e.isTypedArray,r=e?o(e):r;t.exports=r},{"./_baseIsTypedArray":84,"./_baseUnary":89,"./_nodeUtil":126}],154:[function(e,t,n){var r=e("./_arrayLikeKeys"),o=e("./_baseKeysIn"),a=e("./isArrayLike");t.exports=function(e){return a(e)?r(e,!0):o(e)}},{"./_arrayLikeKeys":71,"./_baseKeysIn":85,"./isArrayLike":145}],155:[function(e,t,n){var i=e("./_MapCache"),s="Expected a function";function u(r,o){if("function"!=typeof r||null!=o&&"function"!=typeof o)throw new TypeError(s);var a=function(){var e=arguments,t=o?o.apply(this,e):e[0],n=a.cache;if(n.has(t))return n.get(t);e=r.apply(this,e);return a.cache=n.set(t,e)||n,e};return a.cache=new(u.Cache||i),a}u.Cache=i,t.exports=u},{"./_MapCache":63}],156:[function(e,t,n){t.exports=function(){}},{}],157:[function(e,t,n){t.exports=function(){return!1}},{}],158:[function(e,t,n){var r=e("./_baseFlatten"),o=e("./_baseRest"),a=e("./_baseUniq"),i=e("./isArrayLikeObject"),o=o(function(e){return a(r(e,1,i,!0))});t.exports=o},{"./_baseFlatten":77,"./_baseRest":86,"./_baseUniq":90,"./isArrayLikeObject":146}],159:[function(e,t,n){var r=e("./_baseDifference"),o=e("./_baseRest"),a=e("./isArrayLikeObject"),o=o(function(e,t){return a(e)?r(e,t):[]});t.exports=o},{"./_baseDifference":75,"./_baseRest":86,"./isArrayLikeObject":146}],160:[function(e,t,n){var r=e("./_arrayFilter"),o=e("./_baseRest"),a=e("./_baseXor"),i=e("./isArrayLikeObject"),o=o(function(e){return a(r(e,i))});t.exports=o},{"./_arrayFilter":68,"./_baseRest":86,"./_baseXor":91,"./isArrayLikeObject":146}],161:[function(e,t,n){"use strict";var u=Object.getOwnPropertySymbols,c=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return;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;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"!==Object.keys(Object.assign({},r)).join("")?void 0:1}catch(e){return}}()?Object.assign:function(e,t){for(var n,r,o=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),a=1;a<arguments.length;a++){for(var i in n=Object(arguments[a]))c.call(n,i)&&(o[i]=n[i]);if(u){r=u(n);for(var s=0;s<r.length;s++)l.call(n,r[s])&&(o[r[s]]=n[r[s]])}}return o}},{}],162:[function(e,t,n){var r,o,t=t.exports={};function a(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(t){if(r===setTimeout)return setTimeout(t,0);if((r===a||!r)&&setTimeout)return r=setTimeout,setTimeout(t,0);try{return r(t,0)}catch(e){try{return r.call(null,t,0)}catch(e){return r.call(this,t,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:a}catch(e){r=a}try{o="function"==typeof clearTimeout?clearTimeout:i}catch(e){o=i}}();var u,c=[],l=!1,p=-1;function f(){l&&u&&(l=!1,u.length?c=u.concat(c):p=-1,c.length&&d())}function d(){if(!l){var e=s(f);l=!0;for(var t=c.length;t;){for(u=c,c=[];++p<t;)u&&u[p].run();p=-1,t=c.length}u=null,l=!1,function(t){if(o===clearTimeout)return clearTimeout(t);if((o===i||!o)&&clearTimeout)return o=clearTimeout,clearTimeout(t);try{o(t)}catch(e){try{return o.call(null,t)}catch(e){return o.call(this,t)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function g(){}t.nextTick=function(e){var t=new Array(arguments.length-1);if(1<arguments.length)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new h(e,t)),1!==c.length||l||s(d)},h.prototype.run=function(){this.fun.apply(null,this.array)},t.title="browser",t.browser=!0,t.env={},t.argv=[],t.version="",t.versions={},t.on=g,t.addListener=g,t.once=g,t.off=g,t.removeListener=g,t.removeAllListeners=g,t.emit=g,t.prependListener=g,t.prependOnceListener=g,t.listeners=function(e){return[]},t.binding=function(e){throw new Error("process.binding is not supported")},t.cwd=function(){return"/"},t.chdir=function(e){throw new Error("process.chdir is not supported")},t.umask=function(){return 0}},{}],163:[function(e,t,n){(function(e){"use strict";t.exports=function(e,t,n,r,o){}}).call(this,e("_process"))},{"./lib/ReactPropTypesSecret":168,_process:162}],164:[function(e,t,n){"use strict";var r=e("./factoryWithTypeCheckers");t.exports=function(e){return r(e,!1)}},{"./factoryWithTypeCheckers":166}],165:[function(e,t,n){"use strict";var i=e("./lib/ReactPropTypesSecret");function r(){}t.exports=function(){function e(e,t,n,r,o,a){if(a!==i){a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}var n={array:e.isRequired=e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=r,n.PropTypes=n}},{"./lib/ReactPropTypesSecret":168}],166:[function(t,n,e){(function(e){"use strict";var h=t("object-assign"),g=t("./lib/ReactPropTypesSecret"),r=t("./checkPropTypes"),o=function(){};function m(){return null}n.exports=function(a,u){var i="function"==typeof Symbol&&Symbol.iterator,s="@@iterator";var c="<<anonymous>>",e={array:t("array"),bool:t("boolean"),func:t("function"),number:t("number"),object:t("object"),string:t("string"),symbol:t("symbol"),any:n(m),arrayOf:function(u){return n(function(e,t,n,r,o){if("function"!=typeof u)return new l("Property `"+o+"` of component `"+n+"` has invalid PropType notation inside arrayOf.");var a=e[t];if(!Array.isArray(a))return new l("Invalid "+r+" `"+o+"` of type `"+f(a)+"` supplied to `"+n+"`, expected an array.");for(var i=0;i<a.length;i++){var s=u(a,i,n,r,o+"["+i+"]",g);if(s instanceof Error)return s}return null})},element:n(function(e,t,n,r,o){return t=e[t],a(t)?null:new l("Invalid "+r+" `"+o+"` of type `"+f(t)+"` supplied to `"+n+"`, expected a single ReactElement.")}),instanceOf:function(i){return n(function(e,t,n,r,o){if(e[t]instanceof i)return null;var a=i.name||c;return new l("Invalid "+r+" `"+o+"` of type `"+((t=e[t]).constructor&&t.constructor.name?t.constructor.name:c)+"` supplied to `"+n+"`, expected instance of `"+a+"`.")})},node:n(function(e,t,n,r,o){return p(e[t])?null:new l("Invalid "+r+" `"+o+"` supplied to `"+n+"`, expected a ReactNode.")}),objectOf:function(u){return n(function(e,t,n,r,o){if("function"!=typeof u)return new l("Property `"+o+"` of component `"+n+"` has invalid PropType notation inside objectOf.");var a,i=e[t];if("object"!==(t=f(i)))return new l("Invalid "+r+" `"+o+"` of type `"+t+"` supplied to `"+n+"`, expected an object.");for(a in i)if(i.hasOwnProperty(a)){var s=u(i,a,n,r,o+"."+a,g);if(s instanceof Error)return s}return null})},oneOf:function(s){return Array.isArray(s)?n(function(e,t,n,r,o){for(var a=e[t],i=0;i<s.length;i++)if(function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}(a,s[i]))return null;t=JSON.stringify(s);return new l("Invalid "+r+" `"+o+"` of value `"+a+"` supplied to `"+n+"`, expected one of "+t+".")}):m},oneOfType:function(i){if(!Array.isArray(i))return m;for(var e=0;e<i.length;e++){var t=i[e];if("function"!=typeof t)return o("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+function(e){e=d(e);switch(e){case"array":case"object":return"an "+e;case"boolean":case"date":case"regexp":return"a "+e;default:return e}}(t)+" at index "+e+"."),m}return n(function(e,t,n,r,o){for(var a=0;a<i.length;a++){if(null==(0,i[a])(e,t,n,r,o,g))return null}return new l("Invalid "+r+" `"+o+"` supplied to `"+n+"`.")})},shape:function(u){return n(function(e,t,n,r,o){var a,i=e[t];if("object"!==(t=f(i)))return new l("Invalid "+r+" `"+o+"` of type `"+t+"` supplied to `"+n+"`, expected `object`.");for(a in u){var s=u[a];if(s){s=s(i,a,n,r,o+"."+a,g);if(s)return s}}return null})},exact:function(c){return n(function(e,t,n,r,o){var a,i=e[t],s=f(i);if("object"!==s)return new l("Invalid "+r+" `"+o+"` of type `"+s+"` supplied to `"+n+"`, expected `object`.");for(a in h({},e[t],c)){var u=c[a];if(!u)return new l("Invalid "+r+" `"+o+"` key `"+a+"` supplied to `"+n+"`.\nBad object: "+JSON.stringify(e[t],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(c),null," "));u=u(i,a,n,r,o+"."+a,g);if(u)return u}return null})}};function l(e){this.message=e,this.stack=""}function n(s){function e(e,t,n,r,o,a,i){if((r=r||c,a=a||n,i!==g)&&u){i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}return null==t[n]?e?null===t[n]?new l("The "+o+" `"+a+"` is marked as required in `"+r+"`, but its value is `null`."):new l("The "+o+" `"+a+"` is marked as required in `"+r+"`, but its value is `undefined`."):null:s(t,n,r,o,a)}var t=e.bind(null,!1);return t.isRequired=e.bind(null,!0),t}function t(i){return n(function(e,t,n,r,o,a){return f(t=e[t])===i?null:new l("Invalid "+r+" `"+o+"` of type `"+d(t)+"` supplied to `"+n+"`, expected `"+i+"`.")})}function p(e){switch(typeof e){case"number":case"string":case"undefined":return!0;case"boolean":return!e;case"object":if(Array.isArray(e))return e.every(p);if(null===e||a(e))return!0;var t=function(e){if("function"==typeof(e=e&&(i&&e[i]||e[s])))return e}(e);if(!t)return!1;var n,r=t.call(e);if(t!==e.entries){for(;!(n=r.next()).done;)if(!p(n.value))return!1}else for(;!(n=r.next()).done;){var o=n.value;if(o&&!p(o[1]))return!1}return!0;default:return!1}}function f(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":(e=e,"symbol"===t||("Symbol"===e["@@toStringTag"]||"function"==typeof Symbol&&e instanceof Symbol)?"symbol":t)}function d(e){if(null==e)return""+e;var t=f(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}return l.prototype=Error.prototype,e.checkPropTypes=r,e.PropTypes=e}}).call(this,t("_process"))},{"./checkPropTypes":163,"./lib/ReactPropTypesSecret":168,_process:162,"object-assign":161}],167:[function(t,n,e){(function(e){n.exports=t("./factoryWithThrowingShims")()}).call(this,t("_process"))},{"./factoryWithThrowingShims":165,"./factoryWithTypeCheckers":166,_process:162}],168:[function(e,t,n){"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},{}],169:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.isSafari=n.isFirefox=void 0;var r,o=e("lodash/memoize"),e=(r=o)&&r.__esModule?r:{default:r};n.isFirefox=(0,e.default)(function(){return/firefox/i.test(navigator.userAgent)}),n.isSafari=(0,e.default)(function(){return Boolean(window.safari)})},{"lodash/memoize":155}],170:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e};function o(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)}}var a=s(e("lodash/union")),i=s(e("lodash/without"));function s(e){return e&&e.__esModule?e:{default:e}}r(u,[{key:"enter",value:function(t){var e=this.entered.length;return this.entered=(0,a.default)(this.entered.filter(function(e){return document.documentElement.contains(e)&&(!e.contains||e.contains(t))}),[t]),0===e&&0<this.entered.length}},{key:"leave",value:function(e){var t=this.entered.length;return this.entered=(0,i.default)(this.entered.filter(function(e){return document.documentElement.contains(e)}),e),0<t&&0===this.entered.length}},{key:"reset",value:function(){this.entered=[]}}]),r=u;function u(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,u),this.entered=[]}n.default=r},{"lodash/union":158,"lodash/without":159}],171:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e};function o(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)}}var a=f(e("lodash/defaults")),i=f(e("./shallowEqual")),s=f(e("./EnterLeaveCounter")),u=e("./BrowserDetector"),c=e("./OffsetUtils"),l=e("./NativeDragSources"),p=function(e){{if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}}(e("./NativeTypes"));function f(e){return e&&e.__esModule?e:{default:e}}r(d,[{key:"setup",value:function(){if(void 0!==this.window){if(this.window.__isReactDndBackendSetUp)throw new Error("Cannot have two HTML5 backends at the same time.");this.window.__isReactDndBackendSetUp=!0,this.addEventListeners(this.window)}}},{key:"teardown",value:function(){void 0!==this.window&&(this.window.__isReactDndBackendSetUp=!1,this.removeEventListeners(this.window),this.clearCurrentDragSourceNode(),this.asyncEndDragFrameId&&this.window.cancelAnimationFrame(this.asyncEndDragFrameId))}},{key:"addEventListeners",value:function(e){e.addEventListener&&(e.addEventListener("dragstart",this.handleTopDragStart),e.addEventListener("dragstart",this.handleTopDragStartCapture,!0),e.addEventListener("dragend",this.handleTopDragEndCapture,!0),e.addEventListener("dragenter",this.handleTopDragEnter),e.addEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.addEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.addEventListener("dragover",this.handleTopDragOver),e.addEventListener("dragover",this.handleTopDragOverCapture,!0),e.addEventListener("drop",this.handleTopDrop),e.addEventListener("drop",this.handleTopDropCapture,!0))}},{key:"removeEventListeners",value:function(e){e.removeEventListener&&(e.removeEventListener("dragstart",this.handleTopDragStart),e.removeEventListener("dragstart",this.handleTopDragStartCapture,!0),e.removeEventListener("dragend",this.handleTopDragEndCapture,!0),e.removeEventListener("dragenter",this.handleTopDragEnter),e.removeEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.removeEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.removeEventListener("dragover",this.handleTopDragOver),e.removeEventListener("dragover",this.handleTopDragOverCapture,!0),e.removeEventListener("drop",this.handleTopDrop),e.removeEventListener("drop",this.handleTopDropCapture,!0))}},{key:"connectDragPreview",value:function(e,t,n){var r=this;return this.sourcePreviewNodeOptions[e]=n,this.sourcePreviewNodes[e]=t,function(){delete r.sourcePreviewNodes[e],delete r.sourcePreviewNodeOptions[e]}}},{key:"connectDragSource",value:function(t,e,n){var r=this;this.sourceNodes[t]=e,this.sourceNodeOptions[t]=n;function o(e){return r.handleDragStart(e,t)}function a(e){return r.handleSelectStart(e,t)}return e.setAttribute("draggable",!0),e.addEventListener("dragstart",o),e.addEventListener("selectstart",a),function(){delete r.sourceNodes[t],delete r.sourceNodeOptions[t],e.removeEventListener("dragstart",o),e.removeEventListener("selectstart",a),e.setAttribute("draggable",!1)}}},{key:"connectDropTarget",value:function(t,e){function n(e){return a.handleDragEnter(e,t)}function r(e){return a.handleDragOver(e,t)}function o(e){return a.handleDrop(e,t)}var a=this;return e.addEventListener("dragenter",n),e.addEventListener("dragover",r),e.addEventListener("drop",o),function(){e.removeEventListener("dragenter",n),e.removeEventListener("dragover",r),e.removeEventListener("drop",o)}}},{key:"getCurrentSourceNodeOptions",value:function(){var e=this.monitor.getSourceId(),e=this.sourceNodeOptions[e];return(0,a.default)(e||{},{dropEffect:this.altKeyPressed?"copy":"move"})}},{key:"getCurrentDropEffect",value:function(){return this.isDraggingNativeItem()?"copy":this.getCurrentSourceNodeOptions().dropEffect}},{key:"getCurrentSourcePreviewNodeOptions",value:function(){var e=this.monitor.getSourceId(),e=this.sourcePreviewNodeOptions[e];return(0,a.default)(e||{},{anchorX:.5,anchorY:.5,captureDraggingState:!1})}},{key:"getSourceClientOffset",value:function(e){return(0,c.getNodeClientOffset)(this.sourceNodes[e])}},{key:"isDraggingNativeItem",value:function(){var t=this.monitor.getItemType();return Object.keys(p).some(function(e){return p[e]===t})}},{key:"beginDragNativeItem",value:function(e){this.clearCurrentDragSourceNode();var t=(0,l.createNativeDragSource)(e);this.currentNativeSource=new t,this.currentNativeHandle=this.registry.addSource(e,this.currentNativeSource),this.actions.beginDrag([this.currentNativeHandle])}},{key:"asyncEndDragNativeItem",value:function(){this.asyncEndDragFrameId=this.window.requestAnimationFrame(this.endDragNativeItem)}},{key:"endDragNativeItem",value:function(){this.isDraggingNativeItem()&&(this.actions.endDrag(),this.registry.removeSource(this.currentNativeHandle),this.currentNativeHandle=null,this.currentNativeSource=null)}},{key:"isNodeInDocument",value:function(e){return!(!document.body.contains(e)&&!this.window)&&this.window.document.body.contains(e)}},{key:"endDragIfSourceWasRemovedFromDOM",value:function(){var e=this.currentDragSourceNode;this.isNodeInDocument(e)||this.clearCurrentDragSourceNode()&&this.actions.endDrag()}},{key:"setCurrentDragSourceNode",value:function(e){var t=this;this.clearCurrentDragSourceNode(),this.currentDragSourceNode=e,this.currentDragSourceNodeOffset=(0,c.getNodeClientOffset)(e),this.currentDragSourceNodeOffsetChanged=!1;this.mouseMoveTimeoutTimer=setTimeout(function(){return t.mouseMoveTimeoutId=null,t.window.addEventListener("mousemove",t.endDragIfSourceWasRemovedFromDOM,!0)},1e3)}},{key:"clearCurrentDragSourceNode",value:function(){return!!this.currentDragSourceNode&&(this.currentDragSourceNode=null,this.currentDragSourceNodeOffset=null,this.currentDragSourceNodeOffsetChanged=!1,this.window.clearTimeout(this.mouseMoveTimeoutTimer),this.window.removeEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0),!(this.mouseMoveTimeoutTimer=null))}},{key:"checkIfCurrentDragSourceRectChanged",value:function(){var e=this.currentDragSourceNode;return!!e&&(!!this.currentDragSourceNodeOffsetChanged||(this.currentDragSourceNodeOffsetChanged=!(0,i.default)((0,c.getNodeClientOffset)(e),this.currentDragSourceNodeOffset),this.currentDragSourceNodeOffsetChanged))}},{key:"handleTopDragStartCapture",value:function(){this.clearCurrentDragSourceNode(),this.dragStartSourceIds=[]}},{key:"handleDragStart",value:function(e,t){this.dragStartSourceIds.unshift(t)}},{key:"handleTopDragStart",value:function(e){var t=this,n=this.dragStartSourceIds,r=(this.dragStartSourceIds=null,c.getEventClientOffset)(e);this.monitor.isDragging()&&this.actions.endDrag(),this.actions.beginDrag(n,{publishSource:!1,getSourceClientOffset:this.getSourceClientOffset,clientOffset:r});var o,a,i,s=e.dataTransfer,u=(0,l.matchNativeItemType)(s);if(this.monitor.isDragging()){"function"==typeof s.setDragImage&&(i=this.monitor.getSourceId(),o=this.sourceNodes[i],a=this.sourcePreviewNodes[i]||o,i={anchorX:(n=this.getCurrentSourcePreviewNodeOptions()).anchorX,anchorY:n.anchorY},n={offsetX:n.offsetX,offsetY:n.offsetY},n=(0,c.getDragPreviewOffset)(o,a,r,i,n),s.setDragImage(a,n.x,n.y));try{s.setData("application/json",{})}catch(e){}this.setCurrentDragSourceNode(e.target),this.getCurrentSourcePreviewNodeOptions().captureDraggingState?this.actions.publishDragSource():setTimeout(function(){return t.actions.publishDragSource()})}else if(u)this.beginDragNativeItem(u);else{if(!(s.types||e.target.hasAttribute&&e.target.hasAttribute("draggable")))return;e.preventDefault()}}},{key:"handleTopDragEndCapture",value:function(){this.clearCurrentDragSourceNode()&&this.actions.endDrag()}},{key:"handleTopDragEnterCapture",value:function(e){this.dragEnterTargetIds=[],this.enterLeaveCounter.enter(e.target)&&!this.monitor.isDragging()&&(e=e.dataTransfer,(e=(0,l.matchNativeItemType)(e))&&this.beginDragNativeItem(e))}},{key:"handleDragEnter",value:function(e,t){this.dragEnterTargetIds.unshift(t)}},{key:"handleTopDragEnter",value:function(e){var t=this,n=this.dragEnterTargetIds;this.dragEnterTargetIds=[],this.monitor.isDragging()&&(this.altKeyPressed=e.altKey,(0,u.isFirefox)()||this.actions.hover(n,{clientOffset:(0,c.getEventClientOffset)(e)}),n.some(function(e){return t.monitor.canDropOnTarget(e)})&&(e.preventDefault(),e.dataTransfer.dropEffect=this.getCurrentDropEffect()))}},{key:"handleTopDragOverCapture",value:function(){this.dragOverTargetIds=[]}},{key:"handleDragOver",value:function(e,t){this.dragOverTargetIds.unshift(t)}},{key:"handleTopDragOver",value:function(e){var t=this,n=this.dragOverTargetIds;if(this.dragOverTargetIds=[],!this.monitor.isDragging())return e.preventDefault(),void(e.dataTransfer.dropEffect="none");this.altKeyPressed=e.altKey,this.actions.hover(n,{clientOffset:(0,c.getEventClientOffset)(e)}),n.some(function(e){return t.monitor.canDropOnTarget(e)})?(e.preventDefault(),e.dataTransfer.dropEffect=this.getCurrentDropEffect()):this.isDraggingNativeItem()?(e.preventDefault(),e.dataTransfer.dropEffect="none"):this.checkIfCurrentDragSourceRectChanged()&&(e.preventDefault(),e.dataTransfer.dropEffect="move")}},{key:"handleTopDragLeaveCapture",value:function(e){this.isDraggingNativeItem()&&e.preventDefault(),this.enterLeaveCounter.leave(e.target)&&this.isDraggingNativeItem()&&this.endDragNativeItem()}},{key:"handleTopDropCapture",value:function(e){this.dropTargetIds=[],e.preventDefault(),this.isDraggingNativeItem()&&this.currentNativeSource.mutateItemByReadingDataTransfer(e.dataTransfer),this.enterLeaveCounter.reset()}},{key:"handleDrop",value:function(e,t){this.dropTargetIds.unshift(t)}},{key:"handleTopDrop",value:function(e){var t=this.dropTargetIds;this.dropTargetIds=[],this.actions.hover(t,{clientOffset:(0,c.getEventClientOffset)(e)}),this.actions.drop({dropEffect:this.getCurrentDropEffect()}),this.isDraggingNativeItem()?this.endDragNativeItem():this.endDragIfSourceWasRemovedFromDOM()}},{key:"handleSelectStart",value:function(e){var t=e.target;"function"==typeof t.dragDrop&&("INPUT"===t.tagName||"SELECT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable||(e.preventDefault(),t.dragDrop()))}},{key:"window",get:function(){return this.context&&this.context.window?this.context.window:"undefined"!=typeof window?window:void 0}}]),r=d;function d(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,d),this.actions=e.getActions(),this.monitor=e.getMonitor(),this.registry=e.getRegistry(),this.context=e.getContext(),this.sourcePreviewNodes={},this.sourcePreviewNodeOptions={},this.sourceNodes={},this.sourceNodeOptions={},this.enterLeaveCounter=new s.default,this.dragStartSourceIds=[],this.dropTargetIds=[],this.dragEnterTargetIds=[],this.currentNativeSource=null,this.currentNativeHandle=null,this.currentDragSourceNode=null,this.currentDragSourceNodeOffset=null,this.currentDragSourceNodeOffsetChanged=!1,this.altKeyPressed=!1,this.mouseMoveTimeoutTimer=null,this.getSourceClientOffset=this.getSourceClientOffset.bind(this),this.handleTopDragStart=this.handleTopDragStart.bind(this),this.handleTopDragStartCapture=this.handleTopDragStartCapture.bind(this),this.handleTopDragEndCapture=this.handleTopDragEndCapture.bind(this),this.handleTopDragEnter=this.handleTopDragEnter.bind(this),this.handleTopDragEnterCapture=this.handleTopDragEnterCapture.bind(this),this.handleTopDragLeaveCapture=this.handleTopDragLeaveCapture.bind(this),this.handleTopDragOver=this.handleTopDragOver.bind(this),this.handleTopDragOverCapture=this.handleTopDragOverCapture.bind(this),this.handleTopDrop=this.handleTopDrop.bind(this),this.handleTopDropCapture=this.handleTopDropCapture.bind(this),this.handleSelectStart=this.handleSelectStart.bind(this),this.endDragIfSourceWasRemovedFromDOM=this.endDragIfSourceWasRemovedFromDOM.bind(this),this.endDragNativeItem=this.endDragNativeItem.bind(this),this.asyncEndDragNativeItem=this.asyncEndDragNativeItem.bind(this),this.isNodeInDocument=this.isNodeInDocument.bind(this)}n.default=r},{"./BrowserDetector":169,"./EnterLeaveCounter":170,"./NativeDragSources":173,"./NativeTypes":174,"./OffsetUtils":175,"./shallowEqual":178,"lodash/defaults":139}],172:[function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}Object.defineProperty(n,"__esModule",{value:!0});var o=(function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}(w,[{key:"interpolate",value:function(e){var t=this.xs,n=this.ys,r=this.c1s,o=this.c2s,a=this.c3s,i=t.length-1;if(e===t[i])return n[i];for(var s,u=0,c=a.length-1;u<=c;){var l=t[s=Math.floor(.5*(u+c))];if(l<e)u=s+1;else{if(!(e<l))return n[s];c=s-1}}var p=e-t[i=Math.max(0,c)],f=p*p;return n[i]+r[i]*p+o[i]*f+a[i]*p*f}}]),w);function w(n,e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,w);for(var t=n.length,r=[],o=0;o<t;o++)r.push(o);r.sort(function(e,t){return n[e]<n[t]?-1:1});for(var a,i=[],s=[],u=[],c=void 0,l=0;l<t-1;l++)c=n[l+1]-n[l],a=e[l+1]-e[l],s.push(c),i.push(a),u.push(a/c);for(var p=[u[0]],f=0;f<s.length-1;f++){var d,h,g=u[f],m=u[f+1];g*m<=0?p.push(0):(h=(c=s[f])+(d=s[f+1]),p.push(3*h/((h+d)/g+(h+c)/m)))}p.push(u[u.length-1]);for(var v,y=[],b=[],_=0;_<p.length-1;_++){v=u[_];var E=p[_],C=1/s[_],O=E+p[_+1]-v-v;y.push((v-E-O)*C),b.push(O*C*C)}this.xs=n,this.ys=e,this.c1s=p,this.c2s=y,this.c3s=b}n.default=o},{}],173:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var a=function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e};function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}n.createNativeDragSource=function(e){var e=s[e],r=e.exposeProperty,t=e.matchesTypes,o=e.getData;return function(){function n(){var e,t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),this.item=(e={},(t={})[r]=t[r]||{},t[r].get=function(){return console.warn("Browser doesn't allow reading \""+r+'" until the drop event.'),null},function(e,t){for(var n in t){var r=t[n];r.configurable=r.enumerable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,n,r)}}(e,t),e)}return a(n,[{key:"mutateItemByReadingDataTransfer",value:function(e){delete this.item[r],this.item[r]=o(e,t)}},{key:"canDrag",value:function(){return!0}},{key:"beginDrag",value:function(){return this.item}},{key:"isDragging",value:function(e,t){return t===e.getSourceId()}},{key:"endDrag",value:function(){}}]),n}()},n.matchNativeItemType=function(e){var t=Array.prototype.slice.call(e.types||[]);return Object.keys(s).filter(function(e){return s[e].matchesTypes.some(function(e){return-1<t.indexOf(e)})})[0]||null};n=function(e){{if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}}(e("./NativeTypes"));function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(n,e,t){e=e.reduce(function(e,t){return e||n.getData(t)},null);return null!=e?e:t}var s=(o(e={},n.FILE,{exposeProperty:"files",matchesTypes:["Files"],getData:function(e){return Array.prototype.slice.call(e.files)}}),o(e,n.URL,{exposeProperty:"urls",matchesTypes:["Url","text/uri-list"],getData:function(e,t){return i(e,t,"").split("\n")}}),o(e,n.TEXT,{exposeProperty:"text",matchesTypes:["Text","text/plain"],getData:function(e,t){return i(e,t,"")}}),e)},{"./NativeTypes":174}],174:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.FILE="__NATIVE_FILE__",n.URL="__NATIVE_URL__",n.TEXT="__NATIVE_TEXT__"},{}],175:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getNodeClientOffset=m,n.getEventClientOffset=function(e){return{x:e.clientX,y:e.clientY}},n.getDragPreviewOffset=function(e,t,n,r,o){var a=function(e){return"IMG"===e.nodeName&&((0,h.isFirefox)()||!document.documentElement.contains(e))}(t),i=m(a?e:t),s={x:n.x-i.x,y:n.y-i.y},u=e.offsetWidth,c=e.offsetHeight,l=r.anchorX,p=r.anchorY,r=function(e,t,n,r){n=e?t.width:n,r=e?t.height:r;(0,h.isSafari)()&&e&&(r/=window.devicePixelRatio,n/=window.devicePixelRatio);return{dragPreviewWidth:n,dragPreviewHeight:r}}(a,t,u,c),f=r.dragPreviewWidth,d=r.dragPreviewHeight,t=o.offsetX,r=o.offsetY,o=0===r||r;return{x:0===t||t?t:new g.default([0,.5,1],[s.x,s.x/u*f,s.x+f-u]).interpolate(l),y:o?r:function(){var e=new g.default([0,.5,1],[s.y,s.y/c*d,s.y+d-c]).interpolate(p);return(0,h.isSafari)()&&a&&(e+=(window.devicePixelRatio-1)*d),e}()}};var r,h=e("./BrowserDetector"),o=e("./MonotonicInterpolant"),g=(r=o)&&r.__esModule?r:{default:r};var a=1;function m(e){var t=e.nodeType===a?e:e.parentElement;if(!t)return null;e=t.getBoundingClientRect(),t=e.top;return{x:e.left,y:t}}},{"./BrowserDetector":169,"./MonotonicInterpolant":172}],176:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(){r||((r=new Image).src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==");return r};var r=void 0},{}],177:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getEmptyImage=n.NativeTypes=void 0,n.default=function(e){return new r.default(e)};var r=a(e("./HTML5Backend")),o=a(e("./getEmptyImage")),e=function(e){{if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}}(e("./NativeTypes"));function a(e){return e&&e.__esModule?e:{default:e}}n.NativeTypes=e,n.getEmptyImage=o.default},{"./HTML5Backend":171,"./NativeTypes":174,"./getEmptyImage":176}],178:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e,t){if(e===t)return!0;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var o=Object.prototype.hasOwnProperty,a=0;a<n.length;a+=1){if(!o.call(t,n[a])||e[n[a]]!==t[n[a]])return!1;var i=e[n[a]],s=t[n[a]];if(i!==s)return!1}return!0}},{}],179:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.unpackBackendForEs5Users=n.createChildContext=n.CHILD_CONTEXT_TYPES=void 0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n,r=arguments[t];for(n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s=function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e};function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};n.default=function(e){d.default.apply(void 0,["DragDropContext","backend"].concat(Array.prototype.slice.call(arguments)));var e=v(e),a=m(e);return function(e){var t,n=e.displayName||e.name||"Component",r=(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)}(o,u.Component),s(o,[{key:"getDecoratedComponentInstance",value:function(){return(0,p.default)(this.child,"In order to access an instance of the decorated component it can not be a stateless component."),this.child}},{key:"getManager",value:function(){return a.dragDropManager}},{key:"getChildContext",value:function(){return a}},{key:"render",value:function(){var t=this;return c.default.createElement(e,i({},this.props,{ref:function(e){t.child=e}}))}}]),r=t=o,t.DecoratedComponent=e,t.displayName="DragDropContext("+n+")",t.childContextTypes=g,r);function o(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),function(e,t){if(e)return!t||"object"!=typeof t&&"function"!=typeof t?e:t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(this,(o.__proto__||Object.getPrototypeOf(o)).apply(this,arguments))}return(0,f.default)(r,e)}};var u=e("react"),c=h(u),a=h(e("prop-types")),l=e("dnd-core"),p=h(e("invariant")),f=h(e("hoist-non-react-statics")),d=h(e("./utils/checkDecoratorArguments"));function h(e){return e&&e.__esModule?e:{default:e}}var g=n.CHILD_CONTEXT_TYPES={dragDropManager:a.default.object.isRequired},m=n.createChildContext=function(e,t){return{dragDropManager:new l.DragDropManager(e,t)}},v=n.unpackBackendForEs5Users=function(e){return"object"===(void 0===e?"undefined":o(e))&&"function"==typeof e.default&&(e=e.default),(0,p.default)("function"==typeof e,"Expected the backend to be a function or an ES6 module exporting a default function. Read more: http://react-dnd.github.io/react-dnd/docs-drag-drop-context.html"),e}},{"./utils/checkDecoratorArguments":195,"dnd-core":26,"hoist-non-react-statics":58,invariant:59,"prop-types":167,react:353}],180:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var r=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e};function o(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)}}var a,i=e("react"),s=e("prop-types"),u=(a=s)&&a.__esModule?a:{default:a},c=e("./DragDropContext");(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)})(l,i.Component),r(l,[{key:"componentWillReceiveProps",value:function(e){if(e.backend!==this.props.backend||e.window!==this.props.window)throw new Error("DragDropContextProvider backend and window props must not change.")}},{key:"getChildContext",value:function(){return this.childContext}},{key:"render",value:function(){return i.Children.only(this.props.children)}}]),r=e=l,e.propTypes={backend:u.default.oneOfType([u.default.func,u.default.object]).isRequired,children:u.default.element.isRequired,window:u.default.object},e.defaultProps={window:void 0},e.childContextTypes=c.CHILD_CONTEXT_TYPES,e.displayName="DragDropContextProvider",e.contextTypes={window:u.default.object};function l(e,t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l);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,(l.__proto__||Object.getPrototypeOf(l)).call(this,e,t));return n.backend=(0,c.unpackBackendForEs5Users)(e.backend),n.childContext=(0,c.createChildContext)(n.backend,{window:e&&e.window?e.window:t&&t.window?t.window:"undefined"!=typeof window?window:void 0}),n}n.default=r},{"./DragDropContext":179,"prop-types":167,react:353}],181:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n,r=arguments[t];for(n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l=function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e};function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}n.default=function(i){var s=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return a.default.apply(void 0,["DragLayer","collect[, options]"].concat(Array.prototype.slice.call(arguments))),(0,g.default)("function"==typeof i,'Expected "collect" provided as the first argument to DragLayer to be a function that collects props to inject into the component. ',"Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-layer.html",i),(0,g.default)((0,o.default)(s),'Expected "options" provided as the second argument to DragLayer to be a plain object when specified. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-layer.html',s),function(e){var t,n=s.arePropsEqual,r=void 0===n?v.default:n,o=e.displayName||e.name||"Component",n=(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)}(a,p.Component),l(a,[{key:"getDecoratedComponentInstance",value:function(){return(0,g.default)(this.child,"In order to access an instance of the decorated component it can not be a stateless component."),this.child}},{key:"shouldComponentUpdate",value:function(e,t){return!r(e,this.props)||!(0,m.default)(t,this.state)}}]),l(a,[{key:"componentDidMount",value:function(){this.isCurrentlyMounted=!0;var e=this.manager.getMonitor();this.unsubscribeFromOffsetChange=e.subscribeToOffsetChange(this.handleChange),this.unsubscribeFromStateChange=e.subscribeToStateChange(this.handleChange),this.handleChange()}},{key:"componentWillUnmount",value:function(){this.isCurrentlyMounted=!1,this.unsubscribeFromOffsetChange(),this.unsubscribeFromStateChange()}},{key:"handleChange",value:function(){var e;this.isCurrentlyMounted&&(e=this.getCurrentState(),(0,m.default)(e,this.state)||this.setState(e))}},{key:"getCurrentState",value:function(){var e=this.manager.getMonitor();return i(e,this.props)}},{key:"render",value:function(){var t=this;return f.default.createElement(e,u({},this.props,this.state,{ref:function(e){t.child=e}}))}}]),n=t=a,t.DecoratedComponent=e,t.displayName="DragLayer("+o+")",t.contextTypes={dragDropManager:d.default.object.isRequired},n);function a(e,t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a);e=function(e,t){if(e)return!t||"object"!=typeof t&&"function"!=typeof t?e:t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(this,(a.__proto__||Object.getPrototypeOf(a)).call(this,e));return e.handleChange=e.handleChange.bind(e),e.manager=t.dragDropManager,(0,g.default)("object"===c(e.manager),"Could not find the drag and drop manager in the context of %s. Make sure to wrap the top-level component of your app with DragDropContext. Read more: http://react-dnd.github.io/react-dnd/docs-troubleshooting.html#could-not-find-the-drag-and-drop-manager-in-the-context",o,o),e.state=e.getCurrentState(),e}return(0,h.default)(n,e)}};var p=e("react"),f=i(p),d=i(e("prop-types")),h=i(e("hoist-non-react-statics")),o=i(e("lodash/isPlainObject")),g=i(e("invariant")),m=i(e("./utils/shallowEqual")),v=i(e("./utils/shallowEqualScalar")),a=i(e("./utils/checkDecoratorArguments"));function i(e){return e&&e.__esModule?e:{default:e}}},{"./utils/checkDecoratorArguments":195,"./utils/shallowEqual":198,"./utils/shallowEqualScalar":199,"hoist-non-react-statics":58,invariant:59,"lodash/isPlainObject":152,"prop-types":167,react:353}],182:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{};u.default.apply(void 0,["DragSource","type, spec, collect[, options]"].concat(Array.prototype.slice.call(arguments)));var o=e;"function"!=typeof e&&((0,i.default)((0,h.default)(e),'Expected "type" provided as the first argument to DragSource to be a string, or a function that returns a string given the current props. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html',e),o=function(){return e});(0,i.default)((0,s.default)(t),'Expected "spec" provided as the second argument to DragSource to be a plain object. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html',t);var a=(0,p.default)(t);return(0,i.default)("function"==typeof n,'Expected "collect" provided as the third argument to DragSource to be a function that returns a plain object of props to inject. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html',n),(0,i.default)((0,s.default)(r),'Expected "options" provided as the fourth argument to DragSource to be a plain object when specified. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html',n),function(e){return(0,c.default)({connectBackend:function(e,t){return e.connectDragSource(t)},containerDisplayName:"DragSource",createHandler:a,registerHandler:l.default,createMonitor:f.default,createConnector:d.default,DecoratedComponent:e,getType:o,collect:n,options:r})}};var i=r(e("invariant")),s=r(e("lodash/isPlainObject")),u=r(e("./utils/checkDecoratorArguments")),c=r(e("./decorateHandler")),l=r(e("./registerSource")),p=r(e("./createSourceFactory")),f=r(e("./createSourceMonitor")),d=r(e("./createSourceConnector")),h=r(e("./utils/isValidType"));function r(e){return e&&e.__esModule?e:{default:e}}},{"./createSourceConnector":185,"./createSourceFactory":186,"./createSourceMonitor":187,"./decorateHandler":191,"./registerSource":193,"./utils/checkDecoratorArguments":195,"./utils/isValidType":197,invariant:59,"lodash/isPlainObject":152}],183:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{};u.default.apply(void 0,["DropTarget","type, spec, collect[, options]"].concat(Array.prototype.slice.call(arguments)));var o=e;"function"!=typeof e&&((0,i.default)((0,h.default)(e,!0),'Expected "type" provided as the first argument to DropTarget to be a string, an array of strings, or a function that returns either given the current props. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html',e),o=function(){return e});(0,i.default)((0,s.default)(t),'Expected "spec" provided as the second argument to DropTarget to be a plain object. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html',t);var a=(0,p.default)(t);return(0,i.default)("function"==typeof n,'Expected "collect" provided as the third argument to DropTarget to be a function that returns a plain object of props to inject. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html',n),(0,i.default)((0,s.default)(r),'Expected "options" provided as the fourth argument to DropTarget to be a plain object when specified. Instead, received %s. Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html',n),function(e){return(0,c.default)({connectBackend:function(e,t){return e.connectDropTarget(t)},containerDisplayName:"DropTarget",createHandler:a,registerHandler:l.default,createMonitor:f.default,createConnector:d.default,DecoratedComponent:e,getType:o,collect:n,options:r})}};var i=r(e("invariant")),s=r(e("lodash/isPlainObject")),u=r(e("./utils/checkDecoratorArguments")),c=r(e("./decorateHandler")),l=r(e("./registerTarget")),p=r(e("./createTargetFactory")),f=r(e("./createTargetMonitor")),d=r(e("./createTargetConnector")),h=r(e("./utils/isValidType"));function r(e){return e&&e.__esModule?e:{default:e}}},{"./createTargetConnector":188,"./createTargetFactory":189,"./createTargetMonitor":190,"./decorateHandler":191,"./registerTarget":194,"./utils/checkDecoratorArguments":195,"./utils/isValidType":197,invariant:59,"lodash/isPlainObject":152}],184:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e,t){return t===e||null!==t&&null!==e&&(0,a.default)(t,e)};var r,o=e("./utils/shallowEqual"),a=(r=o)&&r.__esModule?r:{default:r}},{"./utils/shallowEqual":198}],185:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){var t=void 0,n=void 0,r=void 0,o=void 0,a=void 0,i=void 0,s=void 0;function u(){o&&(o(),o=null),t&&n&&(o=e.connectDragSource(t,n,r))}function c(){s&&(s(),s=null),t&&a&&(s=e.connectDragPreview(t,a,i))}return{receiveHandlerId:function(e){e!==t&&(t=e,u(),c())},hooks:(0,l.default)({dragSource:function(e,t){e===n&&(0,p.default)(t,r)||(n=e,r=t,u())},dragPreview:function(e,t){e===a&&(0,p.default)(t,i)||(a=e,i=t,c())}})}};var l=r(e("./wrapConnectorHooks")),p=r(e("./areOptionsEqual"));function r(e){return e&&e.__esModule?e:{default:e}}},{"./areOptionsEqual":184,"./wrapConnectorHooks":200}],186:[function(n,e,u){(function(e){"use strict";Object.defineProperty(u,"__esModule",{value:!0});var r=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e};function o(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)}}u.default=function(n){Object.keys(n).forEach(function(e){(0,a.default)(-1<i.indexOf(e),'Expected the drag source specification to only have some of the following keys: %s. Instead received a specification with an unexpected "%s" key. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html',i.join(", "),e),(0,a.default)("function"==typeof n[e],"Expected %s in the drag source specification to be a function. Instead received a specification with %s: %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html",e,e,n[e])}),s.forEach(function(e){(0,a.default)("function"==typeof n[e],"Expected %s in the drag source specification to be a function. Instead received a specification with %s: %s. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source.html",e,e,n[e])});var t=function(){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.monitor=e,this.props=null,this.component=null}return r(t,[{key:"receiveProps",value:function(e){this.props=e}},{key:"receiveComponent",value:function(e){this.component=e}},{key:"canDrag",value:function(){return!n.canDrag||n.canDrag(this.props,this.monitor)}},{key:"isDragging",value:function(e,t){return n.isDragging?n.isDragging(this.props,this.monitor):t===e.getSourceId()}},{key:"beginDrag",value:function(){var e=n.beginDrag(this.props,this.monitor,this.component);return e}},{key:"endDrag",value:function(){n.endDrag&&n.endDrag(this.props,this.monitor,this.component)}}]),t}();return function(e){return new t(e)}};var a=t(n("invariant"));t(n("lodash/isPlainObject"));function t(e){return e&&e.__esModule?e:{default:e}}var i=["canDrag","beginDrag","isDragging","endDrag"],s=["beginDrag"]}).call(this,n("_process"))},{_process:162,invariant:59,"lodash/isPlainObject":152}],187:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e};function o(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)}}n.default=function(e){return new l(e)};var a,i=e("invariant"),s=(a=i)&&a.__esModule?a:{default:a};var u=!1,c=!1,l=(r(p,[{key:"receiveHandlerId",value:function(e){this.sourceId=e}},{key:"canDrag",value:function(){(0,s.default)(!u,"You may not call monitor.canDrag() inside your canDrag() implementation. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source-monitor.html");try{return u=!0,this.internalMonitor.canDragSource(this.sourceId)}finally{u=!1}}},{key:"isDragging",value:function(){(0,s.default)(!c,"You may not call monitor.isDragging() inside your isDragging() implementation. Read more: http://react-dnd.github.io/react-dnd/docs-drag-source-monitor.html");try{return c=!0,this.internalMonitor.isDraggingSource(this.sourceId)}finally{c=!1}}},{key:"getItemType",value:function(){return this.internalMonitor.getItemType()}},{key:"getItem",value:function(){return this.internalMonitor.getItem()}},{key:"getDropResult",value:function(){return this.internalMonitor.getDropResult()}},{key:"didDrop",value:function(){return this.internalMonitor.didDrop()}},{key:"getInitialClientOffset",value:function(){return this.internalMonitor.getInitialClientOffset()}},{key:"getInitialSourceClientOffset",value:function(){return this.internalMonitor.getInitialSourceClientOffset()}},{key:"getSourceClientOffset",value:function(){return this.internalMonitor.getSourceClientOffset()}},{key:"getClientOffset",value:function(){return this.internalMonitor.getClientOffset()}},{key:"getDifferenceFromInitialOffset",value:function(){return this.internalMonitor.getDifferenceFromInitialOffset()}}]),p);function p(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,p),this.internalMonitor=e.getMonitor()}},{invariant:59}],188:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){var t=void 0,n=void 0,r=void 0,o=void 0;function a(){o&&(o(),o=null),t&&n&&(o=e.connectDropTarget(t,n,r))}return{receiveHandlerId:function(e){e!==t&&(t=e,a())},hooks:(0,i.default)({dropTarget:function(e,t){e===n&&(0,s.default)(t,r)||(n=e,r=t,a())}})}};var i=r(e("./wrapConnectorHooks")),s=r(e("./areOptionsEqual"));function r(e){return e&&e.__esModule?e:{default:e}}},{"./areOptionsEqual":184,"./wrapConnectorHooks":200}],189:[function(n,e,s){(function(e){"use strict";Object.defineProperty(s,"__esModule",{value:!0});var r=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e};function o(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)}}s.default=function(n){Object.keys(n).forEach(function(e){(0,a.default)(-1<i.indexOf(e),'Expected the drop target specification to only have some of the following keys: %s. Instead received a specification with an unexpected "%s" key. Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html',i.join(", "),e),(0,a.default)("function"==typeof n[e],"Expected %s in the drop target specification to be a function. Instead received a specification with %s: %s. Read more: http://react-dnd.github.io/react-dnd/docs-drop-target.html",e,e,n[e])});var t=function(){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.monitor=e,this.props=null,this.component=null}return r(t,[{key:"receiveProps",value:function(e){this.props=e}},{key:"receiveMonitor",value:function(e){this.monitor=e}},{key:"receiveComponent",value:function(e){this.component=e}},{key:"canDrop",value:function(){return!n.canDrop||n.canDrop(this.props,this.monitor)}},{key:"hover",value:function(){n.hover&&n.hover(this.props,this.monitor,this.component)}},{key:"drop",value:function(){if(n.drop){var e=n.drop(this.props,this.monitor,this.component);return e}}}]),t}();return function(e){return new t(e)}};var a=t(n("invariant"));t(n("lodash/isPlainObject"));function t(e){return e&&e.__esModule?e:{default:e}}var i=["canDrop","hover","drop"]}).call(this,n("_process"))},{_process:162,invariant:59,"lodash/isPlainObject":152}],190:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e};function o(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)}}n.default=function(e){return new c(e)};var a,i=e("invariant"),s=(a=i)&&a.__esModule?a:{default:a};var u=!1,c=(r(l,[{key:"receiveHandlerId",value:function(e){this.targetId=e}},{key:"canDrop",value:function(){(0,s.default)(!u,"You may not call monitor.canDrop() inside your canDrop() implementation. Read more: http://react-dnd.github.io/react-dnd/docs-drop-target-monitor.html");try{return u=!0,this.internalMonitor.canDropOnTarget(this.targetId)}finally{u=!1}}},{key:"isOver",value:function(e){return this.internalMonitor.isOverTarget(this.targetId,e)}},{key:"getItemType",value:function(){return this.internalMonitor.getItemType()}},{key:"getItem",value:function(){return this.internalMonitor.getItem()}},{key:"getDropResult",value:function(){return this.internalMonitor.getDropResult()}},{key:"didDrop",value:function(){return this.internalMonitor.didDrop()}},{key:"getInitialClientOffset",value:function(){return this.internalMonitor.getInitialClientOffset()}},{key:"getInitialSourceClientOffset",value:function(){return this.internalMonitor.getInitialSourceClientOffset()}},{key:"getSourceClientOffset",value:function(){return this.internalMonitor.getSourceClientOffset()}},{key:"getClientOffset",value:function(){return this.internalMonitor.getClientOffset()}},{key:"getDifferenceFromInitialOffset",value:function(){return this.internalMonitor.getDifferenceFromInitialOffset()}}]),l);function l(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,l),this.internalMonitor=e.getMonitor()}},{invariant:59}],191:[function(n,e,o){(function(e){"use strict";Object.defineProperty(o,"__esModule",{value:!0});var f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n,r=arguments[t];for(n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h=function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e};function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}o.default=function(e){var t=e.DecoratedComponent,r=e.createHandler,o=e.createMonitor,a=e.createConnector,i=e.registerHandler,n=e.containerDisplayName,s=e.getType,u=e.collect,c=e.options.arePropsEqual,l=void 0===c?C.default:c,p=t.displayName||t.name||"Component",c=(c=e=function(){function n(e,t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n);t=function(e,t){if(e)return!t||"object"!=typeof t&&"function"!=typeof t?e:t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,e,t));return t.handleChange=t.handleChange.bind(t),t.handleChildRef=t.handleChildRef.bind(t),(0,b.default)("object"===d(t.context.dragDropManager),"Could not find the drag and drop manager in the context of %s. Make sure to wrap the top-level component of your app with DragDropContext. Read more: http://react-dnd.github.io/react-dnd/docs-troubleshooting.html#could-not-find-the-drag-and-drop-manager-in-the-context",p,p),t.manager=t.context.dragDropManager,t.handlerMonitor=o(t.manager),t.handlerConnector=a(t.manager.getBackend()),t.handler=r(t.handlerMonitor),t.disposable=new y.SerialDisposable,t.receiveProps(e),t.state=t.getCurrentState(),t.dispose(),t}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(n,g.Component),h(n,[{key:"getHandlerId",value:function(){return this.handlerId}},{key:"getDecoratedComponentInstance",value:function(){return this.decoratedComponentInstance}},{key:"shouldComponentUpdate",value:function(e,t){return!l(e,this.props)||!(0,E.default)(t,this.state)}}]),h(n,[{key:"componentDidMount",value:function(){this.isCurrentlyMounted=!0,this.disposable=new y.SerialDisposable,this.currentType=null,this.receiveProps(this.props),this.handleChange()}},{key:"componentWillReceiveProps",value:function(e){l(e,this.props)||(this.receiveProps(e),this.handleChange())}},{key:"componentWillUnmount",value:function(){this.dispose(),this.isCurrentlyMounted=!1}},{key:"receiveProps",value:function(e){this.handler.receiveProps(e),this.receiveType(s(e))}},{key:"receiveType",value:function(e){var t;e!==this.currentType&&(this.currentType=e,e=(t=i(e,this.handler,this.manager)).handlerId,t=t.unregister,this.handlerId=e,this.handlerMonitor.receiveHandlerId(e),this.handlerConnector.receiveHandlerId(e),e=this.manager.getMonitor().subscribeToStateChange(this.handleChange,{handlerIds:[e]}),this.disposable.setDisposable(new y.CompositeDisposable(new y.Disposable(e),new y.Disposable(t))))}},{key:"handleChange",value:function(){var e;this.isCurrentlyMounted&&(e=this.getCurrentState(),(0,E.default)(e,this.state)||this.setState(e))}},{key:"dispose",value:function(){this.disposable.dispose(),this.handlerConnector.receiveHandlerId(null)}},{key:"handleChildRef",value:function(e){this.decoratedComponentInstance=e,this.handler.receiveComponent(e)}},{key:"getCurrentState",value:function(){var e=u(this.handlerConnector.hooks,this.handlerMonitor);return e}},{key:"render",value:function(){return m.default.createElement(t,f({},this.props,this.state,{ref:O(t)?this.handleChildRef:null}))}}]),n}(),e.DecoratedComponent=t,e.displayName=n+"("+p+")",e.contextTypes={dragDropManager:v.default.object.isRequired},c);return(0,_.default)(c,t)};var g=n("react"),m=t(g),v=t(n("prop-types")),y=n("disposables"),b=(t(n("lodash/isPlainObject")),t(n("invariant"))),_=t(n("hoist-non-react-statics")),E=t(n("./utils/shallowEqual")),C=t(n("./utils/shallowEqualScalar"));function t(e){return e&&e.__esModule?e:{default:e}}var O=function(e){return Boolean(e&&e.prototype&&"function"==typeof e.prototype.render)}}).call(this,n("_process"))},{"./utils/shallowEqual":198,"./utils/shallowEqualScalar":199,_process:162,disposables:16,"hoist-non-react-statics":58,invariant:59,"lodash/isPlainObject":152,"prop-types":167,react:353}],192:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r=e("./DragDropContext");Object.defineProperty(n,"DragDropContext",{enumerable:!0,get:function(){return u(r).default}});var o=e("./DragDropContextProvider");Object.defineProperty(n,"DragDropContextProvider",{enumerable:!0,get:function(){return u(o).default}});var a=e("./DragLayer");Object.defineProperty(n,"DragLayer",{enumerable:!0,get:function(){return u(a).default}});var i=e("./DragSource");Object.defineProperty(n,"DragSource",{enumerable:!0,get:function(){return u(i).default}});var s=e("./DropTarget");function u(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"DropTarget",{enumerable:!0,get:function(){return u(s).default}})},{"./DragDropContext":179,"./DragDropContextProvider":180,"./DragLayer":181,"./DragSource":182,"./DropTarget":183}],193:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e,t,n){var r=n.getRegistry(),o=r.addSource(e,t);return{handlerId:o,unregister:function(){r.removeSource(o)}}}},{}],194:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e,t,n){var r=n.getRegistry(),o=r.addTarget(e,t);return{handlerId:o,unregister:function(){r.removeTarget(o)}}}},{}],195:[function(e,t,n){(function(e){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e,t){{}}}).call(this,e("_process"))},{_process:162}],196:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e,t){var n=e.ref;return(0,a.default)("string"!=typeof n,"Cannot connect React DnD to an element with an existing string ref. Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute"),n?(0,i.cloneElement)(e,{ref:function(e){t(e),n&&n(e)}}):(0,i.cloneElement)(e,{ref:t})};var r,o=e("invariant"),a=(r=o)&&r.__esModule?r:{default:r},i=e("react")},{invariant:59,react:353}],197:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};n.default=function t(e,n){return"string"==typeof e||"symbol"===(void 0===e?"undefined":r(e))||n&&(0,i.default)(e)&&e.every(function(e){return t(e,!1)})};var o,a=e("lodash/isArray"),i=(o=a)&&o.__esModule?o:{default:o}},{"lodash/isArray":144}],198:[function(e,t,n){arguments[4][178][0].apply(n,arguments)},{dup:178}],199:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};n.default=function(e,t){if(e===t)return!0;if("object"!==(void 0===e?"undefined":u(e))||null===e||"object"!==(void 0===t?"undefined":u(t))||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var o=Object.prototype.hasOwnProperty,a=0;a<n.length;a+=1){if(!o.call(t,n[a]))return!1;var i=e[n[a]],s=t[n[a]];if(i!==s||"object"===(void 0===i?"undefined":u(i))||"object"===(void 0===s?"undefined":u(s)))return!1}return!0}},{}],200:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(r){var a={};return Object.keys(r).forEach(function(e){var o,t=r[e],n=(o=t,function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null,t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:null;if((0,i.isValidElement)(e)){var n=e;!function(e){if("string"==typeof e.type)return;e=e.type.displayName||e.type.name||"the component";throw new Error("Only native element nodes can now be passed to React DnD connectors.You can either wrap "+e+" into a <div>, or turn it into a drag source or a drop target itself.")}(n);var r=t?function(e){return o(e,t)}:o;return(0,s.default)(n,r)}o(e,t)});a[e]=function(){return n}}),a};var r,i=e("react"),o=e("./utils/cloneWithRef"),s=(r=o)&&r.__esModule?r:{default:r}},{"./utils/cloneWithRef":196,react:353}],201:[function(e,t,n){"use strict";t.exports=e("./lib/ReactDOM")},{"./lib/ReactDOM":231}],202:[function(e,t,n){"use strict";t.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:{}}},{}],203:[function(e,t,n){"use strict";var r=e("./ReactDOMComponentTree"),o=e("fbjs/lib/focusNode"),e={focusDOMComponent:function(){o(r.getNodeFromInstance(this))}};t.exports=e},{"./ReactDOMComponentTree":234,"fbjs/lib/focusNode":44}],204:[function(e,t,n){"use strict";var s=e("./EventPropagators"),r=e("fbjs/lib/ExecutionEnvironment"),u=e("./FallbackCompositionState"),c=e("./SyntheticCompositionEvent"),o=e("./SyntheticInputEvent"),a=[9,13,27,32],l=229,p=r.canUseDOM&&"CompositionEvent"in window,e=null;r.canUseDOM&&"documentMode"in document&&(e=document.documentMode);var i,f=r.canUseDOM&&"TextEvent"in window&&!e&&!("object"==typeof(i=window.opera)&&"function"==typeof i.version&&parseInt(i.version(),10)<=12),d=r.canUseDOM&&(!p||e&&8<e&&e<=11);var h=32,g=String.fromCharCode(h),m={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"]}},v=!1;function y(e,t){switch(e){case"topKeyUp":return-1!==a.indexOf(t.keyCode);case"topKeyDown":return t.keyCode!==l;case"topKeyPress":case"topMouseDown":case"topBlur":return 1;default:return}}function b(e){e=e.detail;return"object"==typeof e&&"data"in e?e.data:null}var _=null;function E(e,t,n,r){var o,a,i;if(p?o=function(e){switch(e){case"topCompositionStart":return m.compositionStart;case"topCompositionEnd":return m.compositionEnd;case"topCompositionUpdate":return m.compositionUpdate}}(e):_?y(e,n)&&(o=m.compositionEnd):(i=n,"topKeyDown"===e&&i.keyCode===l&&(o=m.compositionStart)),!o)return null;d&&(_||o!==m.compositionStart?o===m.compositionEnd&&_&&(a=_.getData()):_=u.getPooled(r));r=c.getPooled(o,t,n,r);return a?r.data=a:null!==(n=b(n))&&(r.data=n),s.accumulateTwoPhaseDispatches(r),r}function C(e,t,n,r){e=(f?function(e,t){switch(e){case"topCompositionEnd":return b(t);case"topKeyPress":return t.which!==h?null:(v=!0,g);case"topTextInput":t=t.data;return t===g&&v?null:t;default:return null}}:function(e,t){if(_){if("topCompositionEnd"===e||!p&&y(e,t)){var n=_.getData();return u.release(_),_=null,n}return null}switch(e){case"topPaste":return null;case"topKeyPress":return t.which&&(!((e=t).ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey)?String.fromCharCode(t.which):null;case"topCompositionEnd":return d?null:t.data;default:return null}})(e,n);if(!e)return null;r=o.getPooled(m.beforeInput,t,n,r);return r.data=e,s.accumulateTwoPhaseDispatches(r),r}e={eventTypes:m,extractEvents:function(e,t,n,r){return[E(e,t,n,r),C(e,t,n,r)]}};t.exports=e},{"./EventPropagators":220,"./FallbackCompositionState":221,"./SyntheticCompositionEvent":285,"./SyntheticInputEvent":289,"fbjs/lib/ExecutionEnvironment":36}],205:[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(t){o.forEach(function(e){r[e+(e=t).charAt(0).toUpperCase()+e.substring(1)]=r[t]})});var a={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}}};t.exports=a},{}],206:[function(a,s,e){(function(e){"use strict";var u=a("./CSSProperty"),t=a("fbjs/lib/ExecutionEnvironment"),c=(a("./ReactInstrumentation"),a("fbjs/lib/camelizeStyleName"),a("./dangerousStyleValue")),n=a("fbjs/lib/hyphenateStyleName"),r=a("fbjs/lib/memoizeStringOnly"),i=(a("fbjs/lib/warning"),r(function(e){return n(e)})),l=!1,p="cssFloat";if(t.canUseDOM){var o=document.createElement("div").style;try{o.font=""}catch(e){l=!0}void 0===document.documentElement.style.cssFloat&&(p="styleFloat")}t={createMarkupForStyles:function(e,t){var n,r,o,a="";for(n in e){e.hasOwnProperty(n)&&(r=0===n.indexOf("--"),null!=(o=e[n])&&(a+=i(n)+":",a+=c(n,o,t,r)+";"))}return a||null},setValueForStyles:function(e,t,n){var r,o=e.style;for(r in t)if(t.hasOwnProperty(r)){var a=0===r.indexOf("--");0;var i=c(r,t[r],n,a);if("float"!==r&&"cssFloat"!==r||(r=p),a)o.setProperty(r,i);else if(i)o[r]=i;else{i=l&&u.shorthandPropertyExpansions[r];if(i)for(var s in i)o[s]="";else o[r]=""}}}};s.exports=t}).call(this,a("_process"))},{"./CSSProperty":205,"./ReactInstrumentation":263,"./dangerousStyleValue":302,_process:162,"fbjs/lib/ExecutionEnvironment":36,"fbjs/lib/camelizeStyleName":38,"fbjs/lib/hyphenateStyleName":49,"fbjs/lib/memoizeStringOnly":53,"fbjs/lib/warning":57}],207:[function(a,i,e){(function(e){"use strict";var o=a("./reactProdInvariant");var t=a("./PooledClass"),n=(a("fbjs/lib/invariant"),r.prototype.enqueue=function(e,t){this._callbacks=this._callbacks||[],this._callbacks.push(e),this._contexts=this._contexts||[],this._contexts.push(t)},r.prototype.notifyAll=function(){var e=this._callbacks,t=this._contexts,n=this._arg;if(e&&t){e.length!==t.length&&o("24"),this._callbacks=null,this._contexts=null;for(var r=0;r<e.length;r++)e[r].call(t[r],n);e.length=0,t.length=0}},r.prototype.checkpoint=function(){return this._callbacks?this._callbacks.length:0},r.prototype.rollback=function(e){this._callbacks&&this._contexts&&(this._callbacks.length=e,this._contexts.length=e)},r.prototype.reset=function(){this._callbacks=null,this._contexts=null},r.prototype.destructor=function(){this.reset()},r);function r(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,r),this._callbacks=null,this._contexts=null,this._arg=e}i.exports=t.addPoolingTo(n)}).call(this,a("_process"))},{"./PooledClass":225,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],208:[function(e,t,n){"use strict";var r=e("./EventPluginHub"),o=e("./EventPropagators"),a=e("fbjs/lib/ExecutionEnvironment"),c=e("./ReactDOMComponentTree"),i=e("./ReactUpdates"),s=e("./SyntheticEvent"),u=e("./inputValueTracking"),l=e("./getEventTarget"),p=e("./isEventSupported"),f=e("./isTextInputElement"),d={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}};function h(e,t,n){n=s.getPooled(d.change,e,t,n);return n.type="change",o.accumulateTwoPhaseDispatches(n),n}var g=null,m=null;var v=!1;function y(e){e=h(m,e,l(e));i.batchedUpdates(b,e)}function b(e){r.enqueueEvents(e),r.processEventQueue(!1)}function _(){g&&(g.detachEvent("onchange",y),m=g=null)}function E(e,t){var n=u.updateValueIfChanged(e),t=!0===t.simulated&&R._allowSimulatedPassThrough;if(n||t)return e}function C(e,t){if("topChange"===e)return t}function O(e,t,n){"topFocus"===e?(_(),m=n,(g=t).attachEvent("onchange",y)):"topBlur"===e&&_()}a.canUseDOM&&(v=p("change")&&(!document.documentMode||8<document.documentMode));var w=!1;function D(){g&&(g.detachEvent("onpropertychange",T),m=g=null)}function T(e){"value"===e.propertyName&&E(m,e)&&y(e)}function S(e,t,n){"topFocus"===e?(D(),m=n,(g=t).attachEvent("onpropertychange",T)):"topBlur"===e&&D()}function P(e,t,n){if("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)return E(m,n)}function x(e,t,n){if("topClick"===e)return E(t,n)}function k(e,t,n){if("topInput"===e||"topChange"===e)return E(t,n)}a.canUseDOM&&(w=p("input")&&(!document.documentMode||9<document.documentMode));var R={eventTypes:d,_allowSimulatedPassThrough:!0,_isInputEventSupported:w,extractEvents:function(e,t,n,r){var o,a,i,s=t?c.getNodeFromInstance(t):window;if("select"===(i=(a=s).nodeName&&a.nodeName.toLowerCase())||"input"===i&&"file"===a.type?v?u=C:o=O:f(s)?w?u=k:(u=P,o=S):!(a=(i=s).nodeName)||"input"!==a.toLowerCase()||"checkbox"!==i.type&&"radio"!==i.type||(u=x),u){var u=u(e,t,n);if(u)return h(u,n,r)}o&&o(e,s,t),"topBlur"===e&&(s=s,null==(t=t)||(t=t._wrapperState||s._wrapperState)&&t.controlled&&"number"===s.type&&(t=""+s.value,s.getAttribute("value")!==t&&s.setAttribute("value",t)))}};t.exports=R},{"./EventPluginHub":217,"./EventPropagators":220,"./ReactDOMComponentTree":234,"./ReactUpdates":278,"./SyntheticEvent":287,"./getEventTarget":310,"./inputValueTracking":316,"./isEventSupported":318,"./isTextInputElement":319,"fbjs/lib/ExecutionEnvironment":36}],209:[function(r,o,e){(function(e){"use strict";var s=r("./DOMLazyTree"),t=r("./Danger"),n=(r("./ReactDOMComponentTree"),r("./ReactInstrumentation"),r("./createMicrosoftUnsafeLocalFunction")),u=r("./setInnerHTML"),c=r("./setTextContent");function l(e,t){return Array.isArray(t)&&(t=t[1]),t?t.nextSibling:e.firstChild}var i=n(function(e,t,n){e.insertBefore(t,n)});function p(e,t,n){Array.isArray(t)?function(e,t,n,r){var o=t;for(;;){var a=o.nextSibling;if(i(e,o,r),o===n)break;o=a}}(e,t[0],t[1],n):i(e,t,n)}function f(e,t,n){for(;;){var r=t.nextSibling;if(r===n)break;e.removeChild(r)}}t=t.dangerouslyReplaceNodeWithMarkup;t={dangerouslyReplaceNodeWithMarkup:t,replaceDelimitedText:function(e,t,n){var r=e.parentNode,o=e.nextSibling;o===t?n&&i(r,document.createTextNode(n),o):n?(c(o,n),f(r,o,t)):f(r,e,t)},processUpdates:function(e,t){for(var n,r,o,a=0;a<t.length;a++){var i=t[a];switch(i.type){case"INSERT_MARKUP":n=e,r=i.content,o=l(e,i.afterNode),s.insertTreeBefore(n,r,o);break;case"MOVE_EXISTING":p(e,i.fromNode,l(e,i.afterNode));break;case"SET_MARKUP":u(e,i.content);break;case"TEXT_CONTENT":c(e,i.content);break;case"REMOVE_NODE":r=e,o=i.fromNode,i=void 0,Array.isArray(o)&&(i=o[1],f(r,o=o[0],i),r.removeChild(i)),r.removeChild(o)}}}};o.exports=t}).call(this,r("_process"))},{"./DOMLazyTree":210,"./Danger":214,"./ReactDOMComponentTree":234,"./ReactInstrumentation":263,"./createMicrosoftUnsafeLocalFunction":301,"./setInnerHTML":323,"./setTextContent":324,_process:162}],210:[function(e,t,n){"use strict";var r=e("./DOMNamespaces"),o=e("./setInnerHTML"),a=e("./createMicrosoftUnsafeLocalFunction"),i=e("./setTextContent"),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++)c(t,n[r],null);else null!=e.html?o(t,e.html):null!=e.text&&i(t,e.text)}}var c=a(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 l(){return this.node.nodeName}function p(e){return{node:e,children:[],html:null,text:null,toString:l}}p.insertTreeBefore=c,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:i(e.node,t)},t.exports=p},{"./DOMNamespaces":211,"./createMicrosoftUnsafeLocalFunction":301,"./setInnerHTML":323,"./setTextContent":324}],211:[function(e,t,n){"use strict";t.exports={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"}},{}],212:[function(n,r,e){(function(e){"use strict";var l=n("./reactProdInvariant");n("fbjs/lib/invariant");function p(e,t){return(e&t)===t}var f={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,n=f,r=e.Properties||{},o=e.DOMAttributeNamespaces||{},a=e.DOMAttributeNames||{},i=e.DOMPropertyNames||{},s=e.DOMMutationMethods||{};for(t in e.isCustomAttribute&&d._isCustomAttributeFunctions.push(e.isCustomAttribute),r){d.properties.hasOwnProperty(t)&&l("48",t);var u=t.toLowerCase(),c=r[t],u={attributeName:u,attributeNamespace:null,propertyName:t,mutationMethod:null,mustUseProperty:p(c,n.MUST_USE_PROPERTY),hasBooleanValue:p(c,n.HAS_BOOLEAN_VALUE),hasNumericValue:p(c,n.HAS_NUMERIC_VALUE),hasPositiveNumericValue:p(c,n.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:p(c,n.HAS_OVERLOADED_BOOLEAN_VALUE)};u.hasBooleanValue+u.hasNumericValue+u.hasOverloadedBooleanValue<=1||l("50",t),a.hasOwnProperty(t)&&(c=a[t],u.attributeName=c),o.hasOwnProperty(t)&&(u.attributeNamespace=o[t]),i.hasOwnProperty(t)&&(u.propertyName=i[t]),s.hasOwnProperty(t)&&(u.mutationMethod=s[t]),d.properties[t]=u}}},t=":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",d={ID_ATTRIBUTE_NAME:"data-reactid",ROOT_ATTRIBUTE_NAME:"data-reactroot",ATTRIBUTE_NAME_START_CHAR:t,ATTRIBUTE_NAME_CHAR:t+"\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",properties:{},getPossibleStandardName:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<d._isCustomAttributeFunctions.length;t++){if((0,d._isCustomAttributeFunctions[t])(e))return!0}return!1},injection:f};r.exports=d}).call(this,n("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],213:[function(c,l,e){(function(e){"use strict";var i=c("./DOMProperty"),o=(c("./ReactDOMComponentTree"),c("./ReactInstrumentation"),c("./quoteAttributeValueForBrowser")),t=(c("fbjs/lib/warning"),new RegExp("^["+i.ATTRIBUTE_NAME_START_CHAR+"]["+i.ATTRIBUTE_NAME_CHAR+"]*$")),n={},r={};function a(e){return r.hasOwnProperty(e)||!n.hasOwnProperty(e)&&(t.test(e)?r[e]=!0:void(n[e]=!0))}function s(e,t){return null==t||e.hasBooleanValue&&!t||e.hasNumericValue&&isNaN(t)||e.hasPositiveNumericValue&&t<1||e.hasOverloadedBooleanValue&&!1===t}var u={createMarkupForID:function(e){return i.ID_ATTRIBUTE_NAME+"="+o(e)},setAttributeForID:function(e,t){e.setAttribute(i.ID_ATTRIBUTE_NAME,t)},createMarkupForRoot:function(){return i.ROOT_ATTRIBUTE_NAME+'=""'},setAttributeForRoot:function(e){e.setAttribute(i.ROOT_ATTRIBUTE_NAME,"")},createMarkupForProperty:function(e,t){var n=i.properties.hasOwnProperty(e)?i.properties[e]:null;if(n){if(s(n,t))return"";var r=n.attributeName;return n.hasBooleanValue||n.hasOverloadedBooleanValue&&!0===t?r+'=""':r+"="+o(t)}return i.isCustomAttribute(e)?null==t?"":e+"="+o(t):null},createMarkupForCustomAttribute:function(e,t){return a(e)&&null!=t?e+"="+o(t):""},setValueForProperty:function(e,t,n){var r=i.properties.hasOwnProperty(t)?i.properties[t]:null;if(r){var o,a=r.mutationMethod;if(a)a(e,n);else{if(s(r,n))return void this.deleteValueForProperty(e,t);r.mustUseProperty?e[r.propertyName]=n:(o=r.attributeName,(a=r.attributeNamespace)?e.setAttributeNS(a,o,""+n):r.hasBooleanValue||r.hasOverloadedBooleanValue&&!0===n?e.setAttribute(o,""):e.setAttribute(o,""+n))}}else if(i.isCustomAttribute(t))return void u.setValueForAttribute(e,t,n)},setValueForAttribute:function(e,t,n){a(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))},deleteValueForAttribute:function(e,t){e.removeAttribute(t)},deleteValueForProperty:function(e,t){var n,r=i.properties.hasOwnProperty(t)?i.properties[t]:null;r?(n=r.mutationMethod)?n(e,void 0):r.mustUseProperty?(n=r.propertyName,r.hasBooleanValue?e[n]=!1:e[n]=""):e.removeAttribute(r.attributeName):i.isCustomAttribute(t)&&e.removeAttribute(t)}};l.exports=u}).call(this,c("_process"))},{"./DOMProperty":212,"./ReactDOMComponentTree":234,"./ReactInstrumentation":263,"./quoteAttributeValueForBrowser":320,_process:162,"fbjs/lib/warning":57}],214:[function(n,u,e){(function(e){"use strict";var r=n("./reactProdInvariant"),o=n("./DOMLazyTree"),a=n("fbjs/lib/ExecutionEnvironment"),i=n("fbjs/lib/createNodesFromMarkup"),s=n("fbjs/lib/emptyFunction"),t=(n("fbjs/lib/invariant"),{dangerouslyReplaceNodeWithMarkup:function(e,t){var n;a.canUseDOM||r("56"),t||r("57"),"HTML"===e.nodeName&&r("58"),"string"==typeof t?(n=i(t,s)[0],e.parentNode.replaceChild(n,e)):o.replaceChildWithTree(e,t)}});u.exports=t}).call(this,n("_process"))},{"./DOMLazyTree":210,"./reactProdInvariant":321,_process:162,"fbjs/lib/ExecutionEnvironment":36,"fbjs/lib/createNodesFromMarkup":41,"fbjs/lib/emptyFunction":42,"fbjs/lib/invariant":50}],215:[function(e,t,n){"use strict";t.exports=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"]},{}],216:[function(e,t,n){"use strict";var s=e("./EventPropagators"),u=e("./ReactDOMComponentTree"),c=e("./SyntheticMouseEvent"),l={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},e={eventTypes:l,extractEvents:function(e,t,n,r){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var o;if(i=r.window===r?r:(i=r.ownerDocument)?i.defaultView||i.parentWindow:window,e="topMouseOut"===e?(o=t,(a=n.relatedTarget||n.toElement)?u.getClosestInstanceFromNode(a):null):(o=null,t),o===e)return null;var a=null==o?i:u.getNodeFromInstance(o),t=null==e?i:u.getNodeFromInstance(e),i=c.getPooled(l.mouseLeave,o,n,r);i.type="mouseleave",i.target=a,i.relatedTarget=t;r=c.getPooled(l.mouseEnter,e,n,r);return r.type="mouseenter",r.target=t,r.relatedTarget=a,s.accumulateEnterLeaveDispatches(i,r,o,e),[i,r]}};t.exports=e},{"./EventPropagators":220,"./ReactDOMComponentTree":234,"./SyntheticMouseEvent":291}],217:[function(h,g,e){(function(e){"use strict";function t(e,t){e&&(i.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e))}function n(e){return t(e,!0)}function r(e){return t(e,!1)}function o(e){return"."+e._rootNodeID}var a=h("./reactProdInvariant"),u=h("./EventPluginRegistry"),i=h("./EventPluginUtils"),s=h("./ReactErrorUtils"),c=h("./accumulateInto"),l=h("./forEachAccumulated"),p=(h("fbjs/lib/invariant"),{}),f=null;var d={injection:{injectEventPluginOrder:u.injectEventPluginOrder,injectEventPluginsByName:u.injectEventPluginsByName},putListener:function(e,t,n){"function"!=typeof n&&a("94",t,typeof n);var r=o(e);(p[t]||(p[t]={}))[r]=n;r=u.registrationNameModules[t];r&&r.didPutListener&&r.didPutListener(e,t,n)},getListener:function(e,t){var n=p[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&&("button"===(t=t)||"input"===t||"select"===t||"textarea"===t);default:return}}(t,e._currentElement.type,e._currentElement.props))return null;e=o(e);return n&&n[e]},deleteListener:function(e,t){var n=u.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t);t=p[t];t&&delete t[o(e)]},deleteAllListeners:function(e){var t,n,r=o(e);for(t in p){p.hasOwnProperty(t)&&p[t][r]&&((n=u.registrationNameModules[t])&&n.willDeleteListener&&n.willDeleteListener(e,t),delete p[t][r])}},extractEvents:function(e,t,n,r){for(var o,a=u.plugins,i=0;i<a.length;i++){var s=a[i];!s||(s=s.extractEvents(e,t,n,r))&&(o=c(o,s))}return o},enqueueEvents:function(e){e&&(f=c(f,e))},processEventQueue:function(e){var t=f;f=null,l(t,e?n:r),f&&a("95"),s.rethrowCaughtError()},__purge:function(){p={}},__getListenerBank:function(){return p}};g.exports=d}).call(this,h("_process"))},{"./EventPluginRegistry":218,"./EventPluginUtils":219,"./ReactErrorUtils":254,"./accumulateInto":298,"./forEachAccumulated":306,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],218:[function(t,n,e){(function(e){"use strict";var a=t("./reactProdInvariant"),i=(t("fbjs/lib/invariant"),null),s={};function o(){if(i)for(var e in s){var t=s[e],n=i.indexOf(e);if(-1<n||a("96",e),!c.plugins[n]){t.extractEvents||a("97",e);var r,o=(c.plugins[n]=t).eventTypes;for(r in o)!function(e,t,n){c.eventNameDispatchConfigs.hasOwnProperty(n)&&a("99",n);var r=(c.eventNameDispatchConfigs[n]=e).phasedRegistrationNames;{if(r){for(var o in r){r.hasOwnProperty(o)&&u(r[o],t,n)}return!0}if(e.registrationName)return u(e.registrationName,t,n),!0}return!1}(o[r],t,r)&&a("98",r,e)}}}function u(e,t,n){c.registrationNameModules[e]&&a("100",e),c.registrationNameModules[e]=t,c.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var c={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){i&&a("101"),i=Array.prototype.slice.call(e),o()},injectEventPluginsByName:function(e){var t,n,r=!1;for(t in e){e.hasOwnProperty(t)&&(n=e[t],s.hasOwnProperty(t)&&s[t]===n||(s[t]&&a("102",t),s[t]=n,r=!0))}r&&o()},getPluginModuleForEvent:function(e){e=e.dispatchConfig;if(e.registrationName)return c.registrationNameModules[e.registrationName]||null;if(void 0!==e.phasedRegistrationNames){var t,n=e.phasedRegistrationNames;for(t in n)if(n.hasOwnProperty(t)){var r=c.registrationNameModules[n[t]];if(r)return r}}return null},_resetEventPlugins:function(){for(var e in i=null,s)s.hasOwnProperty(e)&&delete s[e];c.plugins.length=0;var t,n=c.eventNameDispatchConfigs;for(t in n)n.hasOwnProperty(t)&&delete n[t];var r,o=c.registrationNameModules;for(r in o)o.hasOwnProperty(r)&&delete o[r]}};n.exports=c}).call(this,t("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],219:[function(n,o,e){(function(e){"use strict";var t,a,r=n("./reactProdInvariant"),i=n("./ReactErrorUtils");n("fbjs/lib/invariant"),n("fbjs/lib/warning");function s(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=u.getNodeFromInstance(r),t?i.invokeGuardedCallbackWithCatch(o,n,e):i.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;return Array.isArray(t)&&r("103"),e.currentTarget=t?u.getNodeFromInstance(n):null,t=t?t(e):null,e.currentTarget=null,e._dispatchListeners=null,e._dispatchInstances=null,t},executeDispatchesInOrder:function(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(0,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(0,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 t.getInstanceFromNode(e)},getNodeFromInstance:function(e){return t.getNodeFromInstance(e)},isAncestor:function(e,t){return a.isAncestor(e,t)},getLowestCommonAncestor:function(e,t){return a.getLowestCommonAncestor(e,t)},getParentInstance:function(e){return a.getParentInstance(e)},traverseTwoPhase:function(e,t,n){return a.traverseTwoPhase(e,t,n)},traverseEnterLeave:function(e,t,n,r,o){return a.traverseEnterLeave(e,t,n,r,o)},injection:{injectComponentTree:function(e){t=e},injectTreeTraversal:function(e){a=e}}};o.exports=u}).call(this,n("_process"))},{"./ReactErrorUtils":254,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57}],220:[function(p,f,e){(function(e){"use strict";var t=p("./EventPluginHub"),o=p("./EventPluginUtils"),a=p("./accumulateInto"),n=p("./forEachAccumulated"),i=(p("fbjs/lib/warning"),t.getListener);function r(e,t,n){var r,t=(r=e,t=t,t=n.dispatchConfig.phasedRegistrationNames[t],i(r,t));t&&(n._dispatchListeners=a(n._dispatchListeners,t),n._dispatchInstances=a(n._dispatchInstances,e))}function s(e){e&&e.dispatchConfig.phasedRegistrationNames&&o.traverseTwoPhase(e._targetInst,r,e)}function u(e){var t;e&&e.dispatchConfig.phasedRegistrationNames&&(t=(t=e._targetInst)?o.getParentInstance(t):null,o.traverseTwoPhase(t,r,e))}function c(e,t,n){var r;n&&n.dispatchConfig.registrationName&&(r=n.dispatchConfig.registrationName,(r=i(e,r))&&(n._dispatchListeners=a(n._dispatchListeners,r),n._dispatchInstances=a(n._dispatchInstances,e)))}function l(e){e&&e.dispatchConfig.registrationName&&c(e._targetInst,0,e)}t={accumulateTwoPhaseDispatches:function(e){n(e,s)},accumulateTwoPhaseDispatchesSkipTarget:function(e){n(e,u)},accumulateDirectDispatches:function(e){n(e,l)},accumulateEnterLeaveDispatches:function(e,t,n,r){o.traverseEnterLeave(n,r,c,e,t)}};f.exports=t}).call(this,p("_process"))},{"./EventPluginHub":217,"./EventPluginUtils":219,"./accumulateInto":298,"./forEachAccumulated":306,_process:162,"fbjs/lib/warning":57}],221:[function(e,t,n){"use strict";var r=e("object-assign"),o=e("./PooledClass"),a=e("./getTextContentAccessor");function i(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}r(i.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;for(var e=this._startText,t=e.length,n=this.getText(),r=n.length,o=0;o<t&&e[o]===n[o];o++);for(var a=t-o,i=1;i<=a&&e[t-i]===n[r-i];i++);var s=1<i?1-i:void 0;return this._fallbackText=n.slice(o,s),this._fallbackText}}),o.addPoolingTo(i),t.exports=i},{"./PooledClass":225,"./getTextContentAccessor":314,"object-assign":161}],222:[function(e,t,n){"use strict";var r=e("./DOMProperty"),o=r.injection.MUST_USE_PROPERTY,a=r.injection.HAS_BOOLEAN_VALUE,i=r.injection.HAS_NUMERIC_VALUE,s=r.injection.HAS_POSITIVE_NUMERIC_VALUE,e=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,a={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:a,allowTransparency:0,alt:0,as:0,async:a,autoComplete:0,autoPlay:a,capture:a,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|a,cite:0,classID:0,className:0,cols:s,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:a,controlsList:0,coords:0,crossOrigin:0,data:0,dateTime:0,default:a,defer:a,dir:0,disabled:a,download:e,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:a,formTarget:0,frameBorder:0,headers:0,height:0,hidden:a,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:a,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|a,muted:o|a,name:0,nonce:0,noValidate:a,open:a,optimum:0,pattern:0,placeholder:0,playsInline:a,poster:0,preload:0,profile:0,radioGroup:0,readOnly:a,referrerPolicy:0,rel:0,required:a,reversed:a,role:0,rows:s,rowSpan:i,sandbox:0,scope:0,scoped:a,scrolling:0,seamless:a,selected:o|a,shape:0,size:s,sizes:0,span:s,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:i,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:a,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.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e)&&e.setAttribute("value",""+t)}}};t.exports=a},{"./DOMProperty":212}],223:[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]})}};t.exports=r},{}],224:[function(l,p,e){(function(e){"use strict";var t=l("./reactProdInvariant"),a=l("./ReactPropTypesSecret"),n=l("prop-types/factory")(l("react/lib/React").isValidElement),r=(l("fbjs/lib/invariant"),l("fbjs/lib/warning"),{button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0});function o(e){null!=e.checkedLink&&null!=e.valueLink&&t("87")}function i(e){o(e),null==e.value&&null==e.onChange||t("88")}function s(e){o(e),null==e.checked&&null==e.onChange||t("89")}var u={value:function(e,t,n){return!e[t]||r[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:n.func},c={};n={checkPropTypes:function(e,t,n){for(var r in u){var o;u.hasOwnProperty(r)&&(o=u[r](t,r,e,"prop",null,a)),o instanceof Error&&!(o.message in c)&&(c[o.message]=!0,function(e){if(e){e=e.getName();if(e)return}}(n))}},getValue:function(e){return e.valueLink?(i(e),e.valueLink.value):e.value},getChecked:function(e){return e.checkedLink?(s(e),e.checkedLink.value):e.checked},executeOnChange:function(e,t){return e.valueLink?(i(e),e.valueLink.requestChange(t.target.value)):e.checkedLink?(s(e),e.checkedLink.requestChange(t.target.checked)):e.onChange?e.onChange.call(void 0,t):void 0}};p.exports=n}).call(this,l("_process"))},{"./ReactPropTypesSecret":271,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"prop-types/factory":164,"react/lib/React":330}],225:[function(a,i,e){(function(e){"use strict";function n(e){e instanceof this||t("25"),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)}var t=a("./reactProdInvariant"),r=(a("fbjs/lib/invariant"),function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)}),o=r,r={addPoolingTo:function(e,t){return e.instancePool=[],e.getPooled=t||o,e.poolSize||(e.poolSize=10),e.release=n,e},oneArgumentPooler:r,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)}};i.exports=r}).call(this,a("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],226:[function(e,t,n){"use strict";var r,o=e("object-assign"),s=e("./EventPluginRegistry"),a=e("./ReactEventEmitterMixin"),i=e("./ViewportMetrics"),u=e("./getVendorPrefixedEventName"),c=e("./isEventSupported"),l={},p=!1,f=0,d={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 g=o({},a,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(g.handleTopLevel),g.ReactEventListener=e}},setEnabled:function(e){g.ReactEventListener&&g.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!g.ReactEventListener||!g.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,r=(t=n,Object.prototype.hasOwnProperty.call(t,h)||(t[h]=f++,l[t[h]]={}),l[t[h]]),o=s.registrationNameDependencies[e],a=0;a<o.length;a++){var i=o[a];r.hasOwnProperty(i)&&r[i]||("topWheel"===i?c("wheel")?g.ReactEventListener.trapBubbledEvent("topWheel","wheel",n):c("mousewheel")?g.ReactEventListener.trapBubbledEvent("topWheel","mousewheel",n):g.ReactEventListener.trapBubbledEvent("topWheel","DOMMouseScroll",n):"topScroll"===i?c("scroll",!0)?g.ReactEventListener.trapCapturedEvent("topScroll","scroll",n):g.ReactEventListener.trapBubbledEvent("topScroll","scroll",g.ReactEventListener.WINDOW_HANDLE):"topFocus"===i||"topBlur"===i?(c("focus",!0)?(g.ReactEventListener.trapCapturedEvent("topFocus","focus",n),g.ReactEventListener.trapCapturedEvent("topBlur","blur",n)):c("focusin")&&(g.ReactEventListener.trapBubbledEvent("topFocus","focusin",n),g.ReactEventListener.trapBubbledEvent("topBlur","focusout",n)),r.topBlur=!0,r.topFocus=!0):d.hasOwnProperty(i)&&g.ReactEventListener.trapBubbledEvent(i,d[i],n),r[i]=!0)}},trapBubbledEvent:function(e,t,n){return g.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return g.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(){var e;void 0===r&&(r=g.supportsEventPageXY()),r||p||(e=i.refreshScrollValues,g.ReactEventListener.monitorScrollValue(e),p=!0)}});t.exports=g},{"./EventPluginRegistry":218,"./ReactEventEmitterMixin":255,"./ViewportMetrics":297,"./getVendorPrefixedEventName":315,"./isEventSupported":318,"object-assign":161}],227:[function(t,n,e){(function(e){"use strict";var d=t("./ReactReconciler"),h=t("./instantiateReactComponent"),g=(t("./KeyEscapeUtils"),t("./shouldUpdateReactComponent")),a=t("./traverseAllChildren");t("fbjs/lib/warning");function i(e,t,n,r){var o=void 0===e[n];null!=t&&o&&(e[n]=h(t,!0))}void 0!==e&&e.env;e={instantiateChildren:function(e,t,n,r){if(null==e)return null;var o={};return a(e,i,o),o},updateChildren:function(e,t,n,r,o,a,i,s,u){if(t||e){var c,l,p,f;for(c in t){t.hasOwnProperty(c)&&(p=(l=e&&e[c])&&l._currentElement,f=t[c],null!=l&&g(p,f)?(d.receiveComponent(l,f,o,s),t[c]=l):(l&&(r[c]=d.getHostNode(l),d.unmountComponent(l,!1)),f=h(f,!0),t[c]=f,f=d.mountComponent(f,o,a,i,s,u),n.push(f)))}for(c in e)!e.hasOwnProperty(c)||t&&t.hasOwnProperty(c)||(l=e[c],r[c]=d.getHostNode(l),d.unmountComponent(l,!1))}},unmountChildren:function(e,t){for(var n in e){var r;e.hasOwnProperty(n)&&(r=e[n],d.unmountComponent(r,t))}}};n.exports=e}).call(this,t("_process"))},{"./KeyEscapeUtils":223,"./ReactReconciler":273,"./instantiateReactComponent":317,"./shouldUpdateReactComponent":325,"./traverseAllChildren":326,_process:162,"fbjs/lib/warning":57,"react/lib/ReactComponentTreeHook":333}],228:[function(e,t,n){"use strict";var r=e("./DOMChildrenOperations"),r={processChildrenUpdates:e("./ReactDOMIDOperations").dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};t.exports=r},{"./DOMChildrenOperations":209,"./ReactDOMIDOperations":238}],229:[function(o,a,e){(function(e){"use strict";var t=o("./reactProdInvariant"),n=(o("fbjs/lib/invariant"),!1),r={replaceNodeWithMarkup:null,processChildrenUpdates:null,injection:{injectEnvironment:function(e){n&&t("104"),r.replaceNodeWithMarkup=e.replaceNodeWithMarkup,r.processChildrenUpdates=e.processChildrenUpdates,n=!0}}};a.exports=r}).call(this,o("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],230:[function(a,i,e){(function(e){"use strict";var p=a("./reactProdInvariant"),u=a("object-assign"),f=a("react/lib/React"),r=a("./ReactComponentEnvironment"),t=a("react/lib/ReactCurrentOwner"),o=a("./ReactErrorUtils"),d=a("./ReactInstanceMap"),s=(a("./ReactInstrumentation"),a("./ReactNodeTypes")),c=a("./ReactReconciler"),h=a("fbjs/lib/emptyObject"),l=(a("fbjs/lib/invariant"),a("fbjs/lib/shallowEqual")),g=a("./shouldUpdateReactComponent"),m=(a("fbjs/lib/warning"),0),v=1,y=2;function b(e){}function _(){0}b.prototype.render=function(){var e=d.get(this)._currentElement.type,t=e(this.props,this.context,this.updater);return _(),t};var E=1,n={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,r){this._context=r,this._mountOrder=E++,this._hostParent=t,this._hostContainerInfo=n;var o,a=this._currentElement.props,i=this._processContext(r),s=this._currentElement.type,u=e.getUpdateQueue(),c=!(!(l=s).prototype||!l.prototype.isReactComponent),l=this._constructComponent(c,a,i,u);c||null!=l&&null!=l.render?(c=s).prototype&&c.prototype.isPureReactComponent?this._compositeType=v:this._compositeType=m:(_(),null===(o=l)||!1===l||f.isValidElement(l)||p("105",s.displayName||s.name||"Component"),l=new b,this._compositeType=y),l.props=a,l.context=i,l.refs=h,l.updater=u,this._instance=l,d.set(l,this);u=l.state;return void 0===u&&(l.state=u=null),"object"==typeof u&&!Array.isArray(u)||p("106",this.getName()||"ReactCompositeComponent"),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,r=l.unstable_handleError?this.performInitialMountWithErrorHandling(o,t,n,e,r):this.performInitialMount(o,t,n,e,r),l.componentDidMount&&e.getReactMountReady().enqueue(l.componentDidMount,l),r},_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(t,n,r,o,a){var i,s=o.checkpoint();try{i=this.performInitialMount(t,n,r,o,a)}catch(e){o.rollback(s),this._instance.unstable_handleError(e),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),s=o.checkpoint(),this._renderedComponent.unmountComponent(!0),o.rollback(s),i=this.performInitialMount(t,n,r,o,a)}return i},performInitialMount:function(e,t,n,r,o){var a=this._instance,i=0;a.componentWillMount&&(a.componentWillMount(),this._pendingStateQueue&&(a.state=this._processPendingState(a.props,a.context))),void 0===e&&(e=this._renderValidatedComponent());a=s.getType(e);this._renderedNodeType=a;a=this._instantiateReactComponent(e,a!==s.EMPTY);return this._renderedComponent=a,c.mountComponent(a,r,t,n,this._processChildContext(o),i)},getHostNode:function(){return c.getHostNode(this._renderedComponent)},unmountComponent:function(e){var t,n;this._renderedComponent&&((t=this._instance).componentWillUnmount&&!t._calledComponentWillUnmount&&(t._calledComponentWillUnmount=!0,e?(n=this.getName()+".componentWillUnmount()",o.invokeGuardedCallback(n,t.componentWillUnmount.bind(t))):t.componentWillUnmount()),this._renderedComponent&&(c.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,d.remove(t))},_maskContext:function(e){var t=this._currentElement.type.contextTypes;if(!t)return h;var n,r={};for(n in t)r[n]=e[n];return r},_processContext:function(e){e=this._maskContext(e);return e},_processChildContext:function(e){var t,n=this._currentElement.type,r=this._instance;if(r.getChildContext&&(t=r.getChildContext()),t){for(var o in"object"!=typeof n.childContextTypes&&p("107",this.getName()||"ReactCompositeComponent"),t)o in n.childContextTypes||p("108",this.getName()||"ReactCompositeComponent",o);return u({},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?c.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,r,o){var a=this._instance;null==a&&p("136",this.getName()||"ReactCompositeComponent");var i,s=!1;this._context===o?i=a.context:(i=this._processContext(o),s=!0);var u=t.props,c=n.props;t!==n&&(s=!0),s&&a.componentWillReceiveProps&&a.componentWillReceiveProps(c,i);t=this._processPendingState(c,i),s=!0;this._pendingForceUpdate||(a.shouldComponentUpdate?s=a.shouldComponentUpdate(c,t,i):this._compositeType===v&&(s=!l(u,c)||!l(a.state,t))),this._updateBatchNumber=null,s?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,c,t,i,e,o)):(this._currentElement=n,this._context=o,a.props=c,a.state=t,a.context=i)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,o=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(o&&1===r.length)return r[0];for(var a=u({},o?r[0]:n.state),i=o?1:0;i<r.length;i++){var s=r[i];u(a,"function"==typeof s?s.call(n,a,e,t):s)}return a},_performComponentUpdate:function(e,t,n,r,o,a){var i,s,u,c=this._instance,l=Boolean(c.componentDidUpdate);l&&(i=c.props,s=c.state,u=c.context),c.componentWillUpdate&&c.componentWillUpdate(t,n,r),this._currentElement=e,this._context=a,c.props=t,c.state=n,c.context=r,this._updateRenderedComponent(o,a),l&&o.getReactMountReady().enqueue(c.componentDidUpdate.bind(c,i,s,u),c)},_updateRenderedComponent:function(e,t){var n,r=this._renderedComponent,o=r._currentElement,a=this._renderValidatedComponent(),i=0;g(o,a)?c.receiveComponent(r,a,e,this._processChildContext(t)):(n=c.getHostNode(r),c.unmountComponent(r,!1),o=s.getType(a),this._renderedNodeType=o,o=this._instantiateReactComponent(a,o!==s.EMPTY),this._renderedComponent=o,i=c.mountComponent(o,e,this._hostParent,this._hostContainerInfo,this._processChildContext(t),i),this._replaceNodeWithMarkup(n,i,r))},_replaceNodeWithMarkup:function(e,t,n){r.replaceNodeWithMarkup(e,t,n)},_renderValidatedComponentWithoutOwnerOrContext:function(){var e=this._instance,e=e.render();return e},_renderValidatedComponent:function(){var e;if(this._compositeType!==y){t.current=this;try{e=this._renderValidatedComponentWithoutOwnerOrContext()}finally{t.current=null}}else e=this._renderValidatedComponentWithoutOwnerOrContext();return null===e||!1===e||f.isValidElement(e)||p("109",this.getName()||"ReactCompositeComponent"),e},attachRef:function(e,t){var n=this.getPublicInstance();null==n&&p("110");t=t.getPublicInstance();(n.refs===h?n.refs={}:n.refs)[e]=t},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===y?null:e},_instantiateReactComponent:null};i.exports=n}).call(this,a("_process"))},{"./ReactComponentEnvironment":229,"./ReactErrorUtils":254,"./ReactInstanceMap":262,"./ReactInstrumentation":263,"./ReactNodeTypes":268,"./ReactReconciler":273,"./checkReactTypeSpec":300,"./reactProdInvariant":321,"./shouldUpdateReactComponent":325,_process:162,"fbjs/lib/emptyObject":43,"fbjs/lib/invariant":50,"fbjs/lib/shallowEqual":56,"fbjs/lib/warning":57,"object-assign":161,"react/lib/React":330,"react/lib/ReactCurrentOwner":334}],231:[function(l,p,e){(function(e){"use strict";var t=l("./ReactDOMComponentTree"),n=l("./ReactDefaultInjection"),r=l("./ReactMount"),o=l("./ReactReconciler"),a=l("./ReactUpdates"),i=l("./ReactVersion"),s=l("./findDOMNode"),u=l("./getHostComponentFromComposite"),c=l("./renderSubtreeIntoContainer");l("fbjs/lib/warning");n.inject();c={findDOMNode:s,render:r.render,unmountComponentAtNode:r.unmountComponentAtNode,version:i,unstable_batchedUpdates:a.batchedUpdates,unstable_renderSubtreeIntoContainer:c};"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ComponentTree:{getClosestInstanceFromNode:t.getClosestInstanceFromNode,getNodeFromInstance:function(e){return e._renderedComponent&&(e=u(e)),e?t.getNodeFromInstance(e):null}},Mount:r,Reconciler:o}),p.exports=c}).call(this,l("_process"))},{"./ReactDOMComponentTree":234,"./ReactDOMInvalidARIAHook":240,"./ReactDOMNullInputValuePropHook":241,"./ReactDOMUnknownPropertyHook":248,"./ReactDefaultInjection":251,"./ReactInstrumentation":263,"./ReactMount":266,"./ReactReconciler":273,"./ReactUpdates":278,"./ReactVersion":279,"./findDOMNode":304,"./getHostComponentFromComposite":311,"./renderSubtreeIntoContainer":322,_process:162,"fbjs/lib/ExecutionEnvironment":36,"fbjs/lib/warning":57}],232:[function($,J,e){(function(e){"use strict";var r=$("./reactProdInvariant"),l=$("object-assign"),c=$("./AutoFocusUtils"),p=$("./CSSPropertyOperations"),f=$("./DOMLazyTree"),d=$("./DOMNamespaces"),h=$("./DOMProperty"),g=$("./DOMPropertyOperations"),o=$("./EventPluginHub"),t=$("./EventPluginRegistry"),a=$("./ReactBrowserEventEmitter"),n=$("./ReactDOMComponentFlags"),m=$("./ReactDOMComponentTree"),v=$("./ReactDOMInput"),y=$("./ReactDOMOption"),b=$("./ReactDOMSelect"),_=$("./ReactDOMTextarea"),i=($("./ReactInstrumentation"),$("./ReactMultiChild")),s=$("./ReactServerRenderingTransaction"),u=($("fbjs/lib/emptyFunction"),$("./escapeTextContentForBrowser")),E=($("fbjs/lib/invariant"),$("./isEventSupported"),$("fbjs/lib/shallowEqual"),$("./inputValueTracking")),C=($("./validateDOMNesting"),$("fbjs/lib/warning"),n),O=o.deleteListener,w=m.getNodeFromInstance,D=a.listenTo,T=t.registrationNameModules,S={string:!0,number:!0},P="style",x={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},k=11;function R(e){if(e){e=e._currentElement._owner||null;if(e){e=e.getName();if(e)return" This DOM node was rendered by `"+e+"`."}}return""}function I(e,t){t&&(q[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&&"__html"in t.dangerouslySetInnerHTML||r("61")),null!=t.style&&"object"!=typeof t.style&&r("62",R(e)))}function M(e,t,n,r){var o;r instanceof s||(o=(o=e._hostContainerInfo)._node&&o._node.nodeType===k?o._node:o._ownerDocument,D(t,o),r.getReactMountReady().enqueue(j,{inst:e,registrationName:t,listener:n}))}function j(){o.putListener(this.inst,this.registrationName,this.listener)}function N(){v.postMountWrapper(this)}function A(){_.postMountWrapper(this)}function L(){y.postMountWrapper(this)}var U={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 F(){E.track(this)}function H(){var e=this;e._rootNodeID||r("63");var t=w(e);switch(t||r("64"),e._tag){case"iframe":case"object":e._wrapperState.listeners=[a.trapBubbledEvent("topLoad","load",t)];break;case"video":case"audio":for(var n in e._wrapperState.listeners=[],U)U.hasOwnProperty(n)&&e._wrapperState.listeners.push(a.trapBubbledEvent(n,U[n],t));break;case"source":e._wrapperState.listeners=[a.trapBubbledEvent("topError","error",t)];break;case"img":e._wrapperState.listeners=[a.trapBubbledEvent("topError","error",t),a.trapBubbledEvent("topLoad","load",t)];break;case"form":e._wrapperState.listeners=[a.trapBubbledEvent("topReset","reset",t),a.trapBubbledEvent("topSubmit","submit",t)];break;case"input":case"select":case"textarea":e._wrapperState.listeners=[a.trapBubbledEvent("topInvalid","invalid",t)]}}function B(){b.postUpdateWrapper(this)}var V={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},W={listing:!0,pre:!0,textarea:!0},q=l({menuitem:!0},V),K=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,z={},G={}.hasOwnProperty;function Y(e,t){return 0<=e.indexOf("-")||null!=t.is}var X=1;function Q(e){var t,n=e.type;t=n,G.call(z,t)||(K.test(t)||r("65",t),z[t]=!0),this._currentElement=e,this._tag=n.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}Q.displayName="ReactDOMComponent",Q.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=X++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var o,a,i,s,u=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(H,this);break;case"input":v.mountWrapper(this,u,t),u=v.getHostProps(this,u),e.getReactMountReady().enqueue(F,this),e.getReactMountReady().enqueue(H,this);break;case"option":y.mountWrapper(this,u,t),u=y.getHostProps(this,u);break;case"select":b.mountWrapper(this,u,t),u=b.getHostProps(this,u),e.getReactMountReady().enqueue(H,this);break;case"textarea":_.mountWrapper(this,u,t),u=_.getHostProps(this,u),e.getReactMountReady().enqueue(F,this),e.getReactMountReady().enqueue(H,this)}switch(I(this,u),null!=t?(o=t._namespaceURI,a=t._tag):n._tag&&(o=n._namespaceURI,a=n._tag),(null==o||o===d.svg&&"foreignobject"===a)&&(o=d.html),o===d.html&&("svg"===this._tag?o=d.svg:"math"===this._tag&&(o=d.mathml)),this._namespaceURI=o,s=e.useCreateElement?(i=n._ownerDocument,i=o===d.html?"script"===this._tag?(a=i.createElement("div"),n=this._currentElement.type,a.innerHTML="<"+n+"></"+n+">",a.removeChild(a.firstChild)):u.is?i.createElement(this._currentElement.type,u.is):i.createElement(this._currentElement.type):i.createElementNS(o,this._currentElement.type),m.precacheNode(this,i),this._flags|=C.hasCachedChildNodes,this._hostParent||g.setAttributeForRoot(i),this._updateDOMProperties(null,u,e),i=f(i),this._createInitialChildren(e,u,r,i),i):(i=this._createOpenTagMarkupAndPutListeners(e,u),!(s=this._createContentMarkup(e,u,r))&&V[this._tag]?i+"/>":i+">"+s+"</"+this._currentElement.type+">"),this._tag){case"input":e.getReactMountReady().enqueue(N,this),u.autoFocus&&e.getReactMountReady().enqueue(c.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(A,this),u.autoFocus&&e.getReactMountReady().enqueue(c.focusDOMComponent,this);break;case"select":case"button":u.autoFocus&&e.getReactMountReady().enqueue(c.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(L,this)}return s},_createOpenTagMarkupAndPutListeners:function(e,t){var n,r,o,a="<"+this._currentElement.type;for(n in t){t.hasOwnProperty(n)&&(null!=(r=t[n])&&(T.hasOwnProperty(n)?r&&M(this,n,r,e):(n===P&&(r=r&&(this._previousStyleCopy=l({},t.style)),r=p.createMarkupForStyles(r,this)),(o=null)!=this._tag&&Y(this._tag,t)?x.hasOwnProperty(n)||(o=g.createMarkupForCustomAttribute(n,r)):o=g.createMarkupForProperty(n,r),o&&(a+=" "+o))))}return e.renderToStaticMarkup?a:(this._hostParent||(a+=" "+g.createMarkupForRoot()),a+=" "+g.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;return null!=o?null!=o.__html&&(r=o.__html):(t=null!=(o=S[typeof t.children]?t.children:null)?null:t.children,null!=o?r=u(o):null!=t&&(r=this.mountChildren(t,e,n).join(""))),W[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&&f.queueHTML(r,o.__html);else{o=S[typeof t.children]?t.children:null,t=null!=o?null:t.children;if(null!=o)""!==o&&f.queueText(r,o);else if(null!=t)for(var a=this.mountChildren(t,e,n),i=0;i<a.length;i++)f.queueChild(r,a[i])}},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,t=this._currentElement.props;switch(this._tag){case"input":o=v.getHostProps(this,o),t=v.getHostProps(this,t);break;case"option":o=y.getHostProps(this,o),t=y.getHostProps(this,t);break;case"select":o=b.getHostProps(this,o),t=b.getHostProps(this,t);break;case"textarea":o=_.getHostProps(this,o),t=_.getHostProps(this,t)}switch(I(this,t),this._updateDOMProperties(o,t,e),this._updateDOMChildren(o,t,e,r),this._tag){case"input":v.updateWrapper(this),E.updateValueIfChanged(this);break;case"textarea":_.updateWrapper(this);break;case"select":e.getReactMountReady().enqueue(B,this)}},_updateDOMProperties:function(e,t,n){var r,o,a;for(r in e)if(!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&null!=e[r])if(r===P){var i=this._previousStyleCopy;for(o in i)i.hasOwnProperty(o)&&((a=a||{})[o]="");this._previousStyleCopy=null}else T.hasOwnProperty(r)?e[r]&&O(this,r):Y(this._tag,e)?x.hasOwnProperty(r)||g.deleteValueForAttribute(w(this),r):(h.properties[r]||h.isCustomAttribute(r))&&g.deleteValueForProperty(w(this),r);for(r in t){var s,u=t[r],c=r===P?this._previousStyleCopy:null!=e?e[r]:void 0;if(t.hasOwnProperty(r)&&u!==c&&(null!=u||null!=c))if(r===P)if(u?u=this._previousStyleCopy=l({},u):this._previousStyleCopy=null,c){for(o in c)!c.hasOwnProperty(o)||u&&u.hasOwnProperty(o)||((a=a||{})[o]="");for(o in u)u.hasOwnProperty(o)&&c[o]!==u[o]&&((a=a||{})[o]=u[o])}else a=u;else T.hasOwnProperty(r)?u?M(this,r,u,n):c&&O(this,r):Y(this._tag,t)?x.hasOwnProperty(r)||g.setValueForAttribute(w(this),r,u):(h.properties[r]||h.isCustomAttribute(r))&&(s=w(this),null!=u?g.setValueForProperty(s,r,u):g.deleteValueForProperty(s,r))}a&&p.setValueForStyles(w(this),a,this)},_updateDOMChildren:function(e,t,n,r){var o=S[typeof e.children]?e.children:null,a=S[typeof t.children]?t.children:null,i=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,s=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,u=null!=o?null:e.children,c=null!=a?null:t.children,e=null!=o||null!=i,t=null!=a||null!=s;null!=u&&null==c?this.updateChildren(null,n,r):e&&!t&&this.updateTextContent(""),null!=a?o!==a&&this.updateTextContent(""+a):null!=s?i!==s&&this.updateMarkup(""+s):null!=c&&this.updateChildren(c,n,r)},getHostNode:function(){return w(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":E.stopTracking(this);break;case"html":case"head":case"body":r("66",this._tag)}this.unmountChildren(e),m.uncacheNode(this),o.deleteAllListeners(this),this._rootNodeID=0,this._domID=0,this._wrapperState=null},getPublicInstance:function(){return w(this)}},l(Q.prototype,Q.Mixin,i.Mixin),J.exports=Q}).call(this,$("_process"))},{"./AutoFocusUtils":203,"./CSSPropertyOperations":206,"./DOMLazyTree":210,"./DOMNamespaces":211,"./DOMProperty":212,"./DOMPropertyOperations":213,"./EventPluginHub":217,"./EventPluginRegistry":218,"./ReactBrowserEventEmitter":226,"./ReactDOMComponentFlags":233,"./ReactDOMComponentTree":234,"./ReactDOMInput":239,"./ReactDOMOption":242,"./ReactDOMSelect":243,"./ReactDOMTextarea":246,"./ReactInstrumentation":263,"./ReactMultiChild":267,"./ReactServerRenderingTransaction":275,"./escapeTextContentForBrowser":303,"./inputValueTracking":316,"./isEventSupported":318,"./reactProdInvariant":321,"./validateDOMNesting":327,_process:162,"fbjs/lib/emptyFunction":42,"fbjs/lib/invariant":50,"fbjs/lib/shallowEqual":56,"fbjs/lib/warning":57,"object-assign":161}],233:[function(e,t,n){"use strict";t.exports={hasCachedChildNodes:1}},{}],234:[function(i,s,e){(function(e){"use strict";var c=i("./reactProdInvariant"),t=i("./DOMProperty"),n=i("./ReactDOMComponentFlags"),l=(i("fbjs/lib/invariant"),t.ID_ATTRIBUTE_NAME),p=n,o="__reactInternalInstance$"+Math.random().toString(36).slice(2);function f(e){for(var t;t=e._renderedComponent;)e=t;return e}function d(e,t){e=f(e);(e._hostNode=t)[o]=e}function a(e,t){if(!(e._flags&p.hasCachedChildNodes)){var n,r,o=e._renderedChildren,a=t.firstChild;e:for(var i in o)if(o.hasOwnProperty(i)){var s=o[i],u=f(s)._domID;if(0!==u){for(;null!==a;a=a.nextSibling)if(r=u,1===(n=a).nodeType&&n.getAttribute(l)===String(r)||8===n.nodeType&&n.nodeValue===" react-text: "+r+" "||8===n.nodeType&&n.nodeValue===" react-empty: "+r+" "){d(s,a);continue e}c("32",u)}}e._flags|=p.hasCachedChildNodes}}function r(e){if(e[o])return e[o];for(var t,n,r=[];!e[o];){if(r.push(e),!e.parentNode)return null;e=e.parentNode}for(;e&&(n=e[o]);e=r.pop())t=n,r.length&&a(n,e);return t}n={getClosestInstanceFromNode:r,getInstanceFromNode:function(e){var t=r(e);return null!=t&&t._hostNode===e?t:null},getNodeFromInstance:function(e){if(void 0===e._hostNode&&c("33"),e._hostNode)return e._hostNode;for(var t=[];!e._hostNode;)t.push(e),e._hostParent||c("34"),e=e._hostParent;for(;t.length;e=t.pop())a(e,e._hostNode);return e._hostNode},precacheChildNodes:a,precacheNode:d,uncacheNode:function(e){var t=e._hostNode;t&&(delete t[o],e._hostNode=null)}};s.exports=n}).call(this,i("_process"))},{"./DOMProperty":212,"./ReactDOMComponentFlags":233,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],235:[function(t,n,e){(function(e){"use strict";t("./validateDOMNesting");n.exports=function(e,t){return t={_topLevelWrapper:e,_idCounter:1,_ownerDocument:t?9===t.nodeType?t:t.ownerDocument:null,_node:t,_tag:t?t.nodeName.toLowerCase():null,_namespaceURI:t?t.namespaceURI:null}}}).call(this,t("_process"))},{"./validateDOMNesting":327,_process:162}],236:[function(e,t,n){"use strict";var r=e("object-assign"),a=e("./DOMLazyTree"),i=e("./ReactDOMComponentTree"),e=function(e){this._currentElement=null,this._hostNode=null,this._hostParent=null,this._hostContainerInfo=null,this._domID=0};r(e.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++;this._domID=o,this._hostParent=t,this._hostContainerInfo=n;t=" react-empty: "+this._domID+" ";if(e.useCreateElement){n=n._ownerDocument.createComment(t);return i.precacheNode(this,n),a(n)}return e.renderToStaticMarkup?"":"\x3c!--"+t+"--\x3e"},receiveComponent:function(){},getHostNode:function(){return i.getNodeFromInstance(this)},unmountComponent:function(){i.uncacheNode(this)}}),t.exports=e},{"./DOMLazyTree":210,"./ReactDOMComponentTree":234,"object-assign":161}],237:[function(e,t,n){"use strict";t.exports={useCreateElement:!0,useFiber:!1}},{}],238:[function(e,t,n){"use strict";var r=e("./DOMChildrenOperations"),o=e("./ReactDOMComponentTree"),e={dangerouslyProcessChildrenUpdates:function(e,t){e=o.getNodeFromInstance(e);r.processUpdates(e,t)}};t.exports=e},{"./DOMChildrenOperations":209,"./ReactDOMComponentTree":234}],239:[function(n,i,e){(function(e){"use strict";var u=n("./reactProdInvariant"),o=n("object-assign"),a=n("./DOMPropertyOperations"),c=n("./LinkedValueUtils"),l=n("./ReactDOMComponentTree"),p=n("./ReactUpdates");n("fbjs/lib/invariant"),n("fbjs/lib/warning");function f(){this._rootNodeID&&t.updateWrapper(this)}function r(e){return"checkbox"===e.type||"radio"===e.type?null!=e.checked:null!=e.value}var t={getHostProps:function(e,t){var n=c.getValue(t),r=c.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:function(e){var t=this._currentElement.props,n=c.executeOnChange(t,e);p.asap(f,this);e=t.name;if("radio"===t.type&&null!=e){for(var r=l.getNodeFromInstance(this),o=r;o.parentNode;)o=o.parentNode;for(var a=o.querySelectorAll("input[name="+JSON.stringify(""+e)+'][type="radio"]'),i=0;i<a.length;i++){var s=a[i];s!==r&&s.form===r.form&&((s=l.getInstanceFromNode(s))||u("90"),p.asap(f,s))}}return n}.bind(e),controlled:r(t)}},updateWrapper:function(e){var t=e._currentElement.props,n=t.checked;null!=n&&a.setValueForProperty(l.getNodeFromInstance(e),"checked",n||!1);var r=l.getNodeFromInstance(e),n=c.getValue(t);null!=n?0===n&&""===r.value?r.value="0":"number"===t.type?(n!=(e=parseFloat(r.value,10)||0)||n==e&&r.value!=n)&&(r.value=""+n):r.value!==""+n&&(r.value=""+n):(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,e=l.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":e.value="",e.value=e.defaultValue;break;default:e.value=e.value}t=e.name;""!==t&&(e.name=""),e.defaultChecked=!e.defaultChecked,e.defaultChecked=!e.defaultChecked,""!==t&&(e.name=t)}};i.exports=t}).call(this,n("_process"))},{"./DOMPropertyOperations":213,"./LinkedValueUtils":224,"./ReactDOMComponentTree":234,"./ReactUpdates":278,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"object-assign":161}],240:[function(r,o,e){(function(e){"use strict";var t=r("./DOMProperty");r("react/lib/ReactComponentTreeHook"),r("fbjs/lib/warning"),new RegExp("^(aria)-["+t.ATTRIBUTE_NAME_CHAR+"]*$");var n={onBeforeMountComponent:function(e,t){0},onBeforeUpdateComponent:function(e,t){0}};o.exports=n}).call(this,r("_process"))},{"./DOMProperty":212,_process:162,"fbjs/lib/warning":57,"react/lib/ReactComponentTreeHook":333}],241:[function(o,a,e){(function(e){"use strict";o("react/lib/ReactComponentTreeHook"),o("fbjs/lib/warning");var n=!1;function r(e,t){null!=t&&("input"!==t.type&&"textarea"!==t.type&&"select"!==t.type||null==t.props||null!==t.props.value||n||(n=!0))}var t={onBeforeMountComponent:function(e,t){r(0,t)},onBeforeUpdateComponent:function(e,t){r(0,t)}};a.exports=t}).call(this,o("_process"))},{_process:162,"fbjs/lib/warning":57,"react/lib/ReactComponentTreeHook":333}],242:[function(a,i,e){(function(e){"use strict";var r=a("object-assign"),n=a("react/lib/React"),o=a("./ReactDOMComponentTree"),s=a("./ReactDOMSelect");a("fbjs/lib/warning");function u(e){var t="";return n.Children.forEach(e,function(e){null!=e&&("string"==typeof e||"number"==typeof e?t+=e:0)}),t}var t={mountWrapper:function(e,t,n){var r=null;null!=n&&("optgroup"===(n=n)._tag&&(n=n._hostParent),null!=n&&"select"===n._tag&&(r=s.getSelectValueContext(n)));var o=null;if(null!=r){var a=null!=t.value?t.value+"":u(t.children),o=!1;if(Array.isArray(r)){for(var i=0;i<r.length;i++)if(""+r[i]===a){o=!0;break}}else o=""+r===a}e._wrapperState={selected:o}},postMountWrapper:function(e){var t=e._currentElement.props;null!=t.value&&o.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);t=u(t.children);return t&&(n.children=t),n}};i.exports=t}).call(this,a("_process"))},{"./ReactDOMComponentTree":234,"./ReactDOMSelect":243,_process:162,"fbjs/lib/warning":57,"object-assign":161,"react/lib/React":330}],243:[function(c,l,e){(function(e){"use strict";var n=c("object-assign"),o=c("./LinkedValueUtils"),s=c("./ReactDOMComponentTree"),r=c("./ReactUpdates"),a=(c("fbjs/lib/warning"),!1);function i(){var e,t;this._rootNodeID&&this._wrapperState.pendingUpdate&&(this._wrapperState.pendingUpdate=!1,e=this._currentElement.props,null!=(t=o.getValue(e))&&u(this,Boolean(e.multiple),t))}function u(e,t,n){var r,o,a=s.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 i=r.hasOwnProperty(a[o].value);a[o].selected!==i&&(a[o].selected=i)}}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 t={getHostProps:function(e,t){return n({},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:function(e){var t=this._currentElement.props,e=o.executeOnChange(t,e);this._rootNodeID&&(this._wrapperState.pendingUpdate=!0);return r.asap(i,this),e}.bind(e),wasMultiple:Boolean(t.multiple)},void 0===t.value||void 0===t.defaultValue||a||(a=!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,u(e,Boolean(t.multiple),r)):n!==Boolean(t.multiple)&&(null!=t.defaultValue?u(e,Boolean(t.multiple),t.defaultValue):u(e,Boolean(t.multiple),t.multiple?[]:""))}};l.exports=t}).call(this,c("_process"))},{"./LinkedValueUtils":224,"./ReactDOMComponentTree":234,"./ReactUpdates":278,_process:162,"fbjs/lib/warning":57,"object-assign":161}],244:[function(e,t,n){"use strict";var r=e("fbjs/lib/ExecutionEnvironment"),i=e("./getNodeForCharacterOffset"),s=e("./getTextContentAccessor");function u(e,t,n,r){return e===n&&t===r}r=r.canUseDOM&&"selection"in document&&!("getSelection"in window),r={getOffsets:r?function(e){var t=document.selection.createRange(),n=t.text.length,r=t.duplicate();return r.moveToElementText(e),r.setEndPoint("EndToStart",t),{start:r=r.text.length,end:r+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,a=t.focusOffset,i=t.getRangeAt(0);try{i.startContainer.nodeType,i.endContainer.nodeType}catch(e){return null}var s=u(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset)?0:i.toString().length;return(t=i.cloneRange()).selectNodeContents(e),t.setEnd(i.startContainer,i.startOffset),t=(e=u(t.startContainer,t.startOffset,t.endContainer,t.endOffset)?0:t.toString().length)+s,(s=document.createRange()).setStart(n,r),s.setEnd(o,a),{start:(s=s.collapsed)?t:e,end:s?e:t}},setOffsets:r?function(e,t){var n,r=document.selection.createRange().duplicate(),t=void 0===t.end?n=t.start:t.start>t.end?(n=t.end,t.start):(n=t.start,t.end);r.moveToElementText(e),r.moveStart("character",n),r.setEndPoint("EndToStart",r),r.moveEnd("character",t-n),r.select()}:function(e,t){var n,r,o,a;window.getSelection&&(n=window.getSelection(),o=e[s()].length,r=Math.min(t.start,o),t=void 0===t.end?r:Math.min(t.end,o),!n.extend&&t<r&&(a=t,t=r,r=a),o=i(e,r),a=i(e,t),o&&a&&((e=document.createRange()).setStart(o.node,o.offset),n.removeAllRanges(),t<r?(n.addRange(e),n.extend(a.node,a.offset)):(e.setEnd(a.node,a.offset),n.addRange(e))))}};t.exports=r},{"./getNodeForCharacterOffset":313,"./getTextContentAccessor":314,"fbjs/lib/ExecutionEnvironment":36}],245:[function(a,i,e){(function(e){"use strict";function t(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}var n=a("./reactProdInvariant"),r=a("object-assign"),o=a("./DOMChildrenOperations"),u=a("./DOMLazyTree"),c=a("./ReactDOMComponentTree"),l=a("./escapeTextContentForBrowser");a("fbjs/lib/invariant"),a("./validateDOMNesting");r(t.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,a=" react-text: "+o+" ",i=" /react-text ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var o=n._ownerDocument,t=o.createComment(a),n=o.createComment(i),s=u(o.createDocumentFragment());return u.queueChild(s,u(t)),this._stringText&&u.queueChild(s,u(o.createTextNode(this._stringText))),u.queueChild(s,u(n)),c.precacheNode(this,t),this._closingComment=n,s}s=l(this._stringText);return e.renderToStaticMarkup?s:"\x3c!--"+a+"--\x3e"+s+"\x3c!--"+i+"--\x3e"},receiveComponent:function(e,t){var n;e===this._currentElement||(n=""+(this._currentElement=e))!==this._stringText&&(this._stringText=n,e=this.getHostNode(),o.replaceDelimitedText(e[0],e[1],n))},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=c.getNodeFromInstance(this).nextSibling;;){if(null==t&&n("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},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,c.uncacheNode(this)}}),i.exports=t}).call(this,a("_process"))},{"./DOMChildrenOperations":209,"./DOMLazyTree":210,"./ReactDOMComponentTree":234,"./escapeTextContentForBrowser":303,"./reactProdInvariant":321,"./validateDOMNesting":327,_process:162,"fbjs/lib/invariant":50,"object-assign":161}],246:[function(u,c,e){(function(e){"use strict";var o=u("./reactProdInvariant"),n=u("object-assign"),a=u("./LinkedValueUtils"),r=u("./ReactDOMComponentTree"),i=u("./ReactUpdates");u("fbjs/lib/invariant"),u("fbjs/lib/warning");function s(){this._rootNodeID&&t.updateWrapper(this)}var t={getHostProps:function(e,t){return null!=t.dangerouslySetInnerHTML&&o("91"),n({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange})},mountWrapper:function(e,t){var n=a.getValue(t),r=n;null==n&&(n=t.defaultValue,null!=(t=t.children)&&(null!=n&&o("92"),Array.isArray(t)&&(t.length<=1||o("93"),t=t[0]),n=""+t),null==n&&(n=""),r=n),e._wrapperState={initialValue:""+r,listeners:null,onChange:function(e){var t=this._currentElement.props,e=a.executeOnChange(t,e);return i.asap(s,this),e}.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=r.getNodeFromInstance(e),e=a.getValue(t);null!=e&&((e=""+e)!==n.value&&(n.value=e),null==t.defaultValue&&(n.defaultValue=e)),null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=r.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)}};c.exports=t}).call(this,u("_process"))},{"./LinkedValueUtils":224,"./ReactDOMComponentTree":234,"./ReactUpdates":278,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"object-assign":161}],247:[function(t,n,e){(function(e){"use strict";var s=t("./reactProdInvariant");t("fbjs/lib/invariant");function c(e,t){"_hostNode"in e||s("33"),"_hostNode"in t||s("33");for(var n=0,r=e;r;r=r._hostParent)n++;for(var o=0,a=t;a;a=a._hostParent)o++;for(;0<n-o;)e=e._hostParent,n--;for(;0<o-n;)t=t._hostParent,o--;for(var i=n;i--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}n.exports={isAncestor:function(e,t){"_hostNode"in e||s("35"),"_hostNode"in t||s("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1},getLowestCommonAncestor:c,getParentInstance:function(e){return"_hostNode"in e||s("36"),e._hostParent},traverseTwoPhase:function(e,t,n){for(var r,o=[];e;)o.push(e),e=e._hostParent;for(r=o.length;0<r--;)t(o[r],"captured",n);for(r=0;r<o.length;r++)t(o[r],"bubbled",n)},traverseEnterLeave:function(e,t,n,r,o){for(var a=e&&t?c(e,t):null,i=[];e&&e!==a;)i.push(e),e=e._hostParent;for(var s,u=[];t&&t!==a;)u.push(t),t=t._hostParent;for(s=0;s<i.length;s++)n(i[s],"bubbled",r);for(s=u.length;0<s--;)n(u[s],"captured",o)}}}).call(this,t("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],248:[function(r,a,e){(function(e){"use strict";var o;r("./DOMProperty"),r("./EventPluginRegistry"),r("react/lib/ReactComponentTreeHook"),r("fbjs/lib/warning");function n(e,t){null!=t&&"string"==typeof t.type&&(0<=t.type.indexOf("-")||t.props.is||function(e,t){var n,r=[];for(n in t.props){o(t.type,n,e)||r.push(n)}r.map(function(e){return"`"+e+"`"}).join(", ");1===r.length||r.length}(e,t))}var t={onBeforeMountComponent:function(e,t){n(e,t)},onBeforeUpdateComponent:function(e,t){n(e,t)}};a.exports=t}).call(this,r("_process"))},{"./DOMProperty":212,"./EventPluginRegistry":218,_process:162,"fbjs/lib/warning":57,"react/lib/ReactComponentTreeHook":333}],249:[function(x,k,e){(function(e){"use strict";var t=x("./ReactInvalidSetStateWarningHook"),o=x("./ReactHostOperationHistoryHook"),a=x("react/lib/ReactComponentTreeHook"),n=x("fbjs/lib/ExecutionEnvironment"),i=x("fbjs/lib/performanceNow"),c=(x("fbjs/lib/warning"),[]),l={};function s(e,t,n,r,o,a){for(var i=0;i<c.length;i++){var s=c[i],u=s[e];u&&function(t,e,n,r,o,a,i,s){try{e.call(n,r,o,a,i,s)}catch(e){l[t]=!0}}(e,u,s,t,n,r,o,a)}}var u=!1,p=[],f=[],d=0,h=[],g=0,m=null,v=0,y=0,b=null,_=!1;function E(){a.purgeUnmountedComponents(),o.clearHistory()}function C(){var e,t=g,n=h,r=o.getHistory();if(0===d)return g=0,h=[],void E();(n.length||r.length)&&(e=a.getRegisteredIDs(),p.push({duration:i()-t,measurements:n||[],operations:r||[],treeSnapshot:e.reduce(function(e,t){var n=a.getOwnerID(t),r=a.getParentID(t);return e[t]={displayName:a.getDisplayName(t),text:a.getText(t),updateCount:a.getUpdateCount(t),childIDs:a.getChildIDs(t),ownerID:n||r&&a.getOwnerID(r)||0,parentID:r},e},{})})),E(),g=i(),h=[]}function r(e){}var O=0,w="undefined"!=typeof performance&&"function"==typeof performance.mark&&"function"==typeof performance.clearMarks&&"function"==typeof performance.measure&&"function"==typeof performance.clearMeasures;function D(e){if(u&&w){e=a.getElement(e);if(null!=e&&"object"==typeof e)if(!("string"==typeof e.type))return 1}}function T(e,t){D(e)&&(t=e+"::"+t,O=i(),performance.mark(t))}function S(e,t){var n,r;D(e)&&(n=e+"::"+t,e=a.getDisplayName(e)||"Unknown",.1<i()-O&&(r=e+" ["+t+"]",performance.measure(r,n)),performance.clearMarks(n),r&&performance.clearMeasures(r))}var P={addHook:function(e){c.push(e)},removeHook:function(e){for(var t=0;t<c.length;t++)c[t]===e&&(c.splice(t,1),t--)},isProfiling:function(){return u},beginProfiling:function(){u||(u=!0,p.length=0,C(),P.addHook(o))},endProfiling:function(){u&&(u=!1,C(),P.removeHook(o))},getFlushHistory:function(){return p},onBeginFlush:function(){var e;d++,C(),e={startTime:v,nestedFlushStartTime:i(),debugID:m,timerType:b},f.push(e),y=v=0,b=m=null,s("onBeginFlush")},onEndFlush:function(){var e,t,n,r;C(),d--,e=(r=f.pop()).startTime,t=r.nestedFlushStartTime,n=r.debugID,r=r.timerType,t=i()-t,v=e,y+=t,m=n,b=r,s("onEndFlush")},onBeginLifeCycleTimer:function(e,t){s("onBeginLifeCycleTimer",e,t),T(e,t),e=e,t=t,0!==d&&(b&&!_&&(_=!0),v=i(),y=0,m=e,b=t)},onEndLifeCycleTimer:function(e,t){var n,r;n=e,r=t,0!==d&&(b===r||_||(_=!0),u&&h.push({timerType:r,instanceID:n,duration:i()-v-y}),y=v=0,b=m=null),S(e,t),s("onEndLifeCycleTimer",e,t)},onBeginProcessingChildContext:function(){s("onBeginProcessingChildContext")},onEndProcessingChildContext:function(){s("onEndProcessingChildContext")},onHostOperation:function(e){e.instanceID,s("onHostOperation",e)},onSetState:function(){s("onSetState")},onSetChildren:function(e,t){t.forEach(r),s("onSetChildren",e,t)},onBeforeMountComponent:function(e,t,n){s("onBeforeMountComponent",e,t,n),T(e,"mount")},onMountComponent:function(e){S(e,"mount"),s("onMountComponent",e)},onBeforeUpdateComponent:function(e,t){s("onBeforeUpdateComponent",e,t),T(e,"update")},onUpdateComponent:function(e){S(e,"update"),s("onUpdateComponent",e)},onBeforeUnmountComponent:function(e){s("onBeforeUnmountComponent",e),T(e,"unmount")},onUnmountComponent:function(e){S(e,"unmount"),s("onUnmountComponent",e)},onTestEvent:function(){s("onTestEvent")}};P.addDevtool=P.addHook,P.removeDevtool=P.removeHook,P.addHook(t),P.addHook(a);n=n.canUseDOM&&window.location.href||"";/[?&]react_perf\b/.test(n)&&P.beginProfiling(),k.exports=P}).call(this,x("_process"))},{"./ReactHostOperationHistoryHook":259,"./ReactInvalidSetStateWarningHook":264,_process:162,"fbjs/lib/ExecutionEnvironment":36,"fbjs/lib/performanceNow":55,"fbjs/lib/warning":57,"react/lib/ReactComponentTreeHook":333}],250:[function(e,t,n){"use strict";var r=e("object-assign"),o=e("./ReactUpdates"),a=e("./Transaction"),i=e("fbjs/lib/emptyFunction"),e={initialize:i,close:function(){l.isBatchingUpdates=!1}},s=[{initialize:i,close:o.flushBatchedUpdates.bind(o)},e];function u(){this.reinitializeTransaction()}r(u.prototype,a,{getTransactionWrappers:function(){return s}});var c=new u,l={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,a){var i=l.isBatchingUpdates;return l.isBatchingUpdates=!0,i?e(t,n,r,o,a):c.perform(e,null,t,n,r,o,a)}};t.exports=l},{"./ReactUpdates":278,"./Transaction":296,"fbjs/lib/emptyFunction":42,"object-assign":161}],251:[function(e,t,n){"use strict";var r=e("./ARIADOMPropertyConfig"),o=e("./BeforeInputEventPlugin"),a=e("./ChangeEventPlugin"),i=e("./DefaultEventPluginOrder"),s=e("./EnterLeaveEventPlugin"),u=e("./HTMLDOMPropertyConfig"),c=e("./ReactComponentBrowserEnvironment"),l=e("./ReactDOMComponent"),p=e("./ReactDOMComponentTree"),f=e("./ReactDOMEmptyComponent"),d=e("./ReactDOMTreeTraversal"),h=e("./ReactDOMTextComponent"),g=e("./ReactDefaultBatchingStrategy"),m=e("./ReactEventListener"),v=e("./ReactInjection"),y=e("./ReactReconcileTransaction"),b=e("./SVGDOMPropertyConfig"),_=e("./SelectEventPlugin"),E=e("./SimpleEventPlugin"),C=!1;t.exports={inject:function(){C||(C=!0,v.EventEmitter.injectReactEventListener(m),v.EventPluginHub.injectEventPluginOrder(i),v.EventPluginUtils.injectComponentTree(p),v.EventPluginUtils.injectTreeTraversal(d),v.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:E,EnterLeaveEventPlugin:s,ChangeEventPlugin:a,SelectEventPlugin:_,BeforeInputEventPlugin:o}),v.HostComponent.injectGenericComponentClass(l),v.HostComponent.injectTextComponentClass(h),v.DOMProperty.injectDOMPropertyConfig(r),v.DOMProperty.injectDOMPropertyConfig(u),v.DOMProperty.injectDOMPropertyConfig(b),v.EmptyComponent.injectEmptyComponentFactory(function(e){return new f(e)}),v.Updates.injectReconcileTransaction(y),v.Updates.injectBatchingStrategy(g),v.Component.injectEnvironment(c))}}},{"./ARIADOMPropertyConfig":202,"./BeforeInputEventPlugin":204,"./ChangeEventPlugin":208,"./DefaultEventPluginOrder":215,"./EnterLeaveEventPlugin":216,"./HTMLDOMPropertyConfig":222,"./ReactComponentBrowserEnvironment":228,"./ReactDOMComponent":232,"./ReactDOMComponentTree":234,"./ReactDOMEmptyComponent":236,"./ReactDOMTextComponent":245,"./ReactDOMTreeTraversal":247,"./ReactDefaultBatchingStrategy":250,"./ReactEventListener":256,"./ReactInjection":260,"./ReactReconcileTransaction":272,"./SVGDOMPropertyConfig":280,"./SelectEventPlugin":281,"./SimpleEventPlugin":282}],252:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;t.exports=r},{}],253:[function(e,t,n){"use strict";var r,o={injectEmptyComponentFactory:function(e){r=e}},a={create:function(e){return r(e)}};a.injection=o,t.exports=a},{}],254:[function(e,o,t){(function(e){"use strict";var r=null;function t(e,t,n){try{t(n)}catch(e){null===r&&(r=e)}}var n={invokeGuardedCallback:t,invokeGuardedCallbackWithCatch:t,rethrowCaughtError:function(){if(r){var e=r;throw r=null,e}}};o.exports=n}).call(this,e("_process"))},{_process:162}],255:[function(e,t,n){"use strict";var o=e("./EventPluginHub");e={handleTopLevel:function(e,t,n,r){r=o.extractEvents(e,t,n,r);r=r,o.enqueueEvents(r),o.processEventQueue(!1)}};t.exports=e},{"./EventPluginHub":217}],256:[function(e,t,n){"use strict";var r=e("object-assign"),o=e("fbjs/lib/EventListener"),a=e("fbjs/lib/ExecutionEnvironment"),i=e("./PooledClass"),s=e("./ReactDOMComponentTree"),u=e("./ReactUpdates"),c=e("./getEventTarget"),l=e("fbjs/lib/getUnboundedScrollPosition");function p(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function f(e){for(var t=c(e.nativeEvent),n=s.getClosestInstanceFromNode(t),r=n;e.ancestors.push(r),r=r&&function(e){for(;e._hostParent;)e=e._hostParent;var t=s.getNodeFromInstance(e).parentNode;return s.getClosestInstanceFromNode(t)}(r););for(var o=0;o<e.ancestors.length;o++)n=e.ancestors[o],d._handleTopLevel(e.topLevelType,n,e.nativeEvent,c(e.nativeEvent))}r(p.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),i.addPoolingTo(p,i.twoArgumentPooler);var d={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:a.canUseDOM?window:null,setHandleTopLevel:function(e){d._handleTopLevel=e},setEnabled:function(e){d._enabled=!!e},isEnabled:function(){return d._enabled},trapBubbledEvent:function(e,t,n){return n?o.listen(n,t,d.dispatchEvent.bind(null,e)):null},trapCapturedEvent:function(e,t,n){return n?o.capture(n,t,d.dispatchEvent.bind(null,e)):null},monitorScrollValue:function(e){e=function(e){e(l(window))}.bind(null,e);o.listen(window,"scroll",e)},dispatchEvent:function(e,t){if(d._enabled){var n=p.getPooled(e,t);try{u.batchedUpdates(f,n)}finally{p.release(n)}}}};t.exports=d},{"./PooledClass":225,"./ReactDOMComponentTree":234,"./ReactUpdates":278,"./getEventTarget":310,"fbjs/lib/EventListener":35,"fbjs/lib/ExecutionEnvironment":36,"fbjs/lib/getUnboundedScrollPosition":47,"object-assign":161}],257:[function(e,t,n){"use strict";t.exports={logTopLevelRenders:!1}},{}],258:[function(a,i,e){(function(e){"use strict";var t=a("./reactProdInvariant"),n=(a("fbjs/lib/invariant"),null),r=null;var o={createInternalComponent:function(e){return n||t("111",e.type),new n(e)},createInstanceForText:function(e){return new r(e)},isTextComponent:function(e){return e instanceof r},injection:{injectGenericComponentClass:function(e){n=e},injectTextComponentClass:function(e){r=e}}};i.exports=o}).call(this,a("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],259:[function(e,t,n){"use strict";var r=[],o={onHostOperation:function(e){r.push(e)},clearHistory:function(){o._preventClearing||(r=[])},getHistory:function(){return r}};t.exports=o},{}],260:[function(e,t,n){"use strict";var r=e("./DOMProperty"),o=e("./EventPluginHub"),a=e("./EventPluginUtils"),i=e("./ReactComponentEnvironment"),s=e("./ReactEmptyComponent"),u=e("./ReactBrowserEventEmitter"),c=e("./ReactHostComponent"),e=e("./ReactUpdates"),e={Component:i.injection,DOMProperty:r.injection,EmptyComponent:s.injection,EventPluginHub:o.injection,EventPluginUtils:a.injection,EventEmitter:u.injection,HostComponent:c.injection,Updates:e.injection};t.exports=e},{"./DOMProperty":212,"./EventPluginHub":217,"./EventPluginUtils":219,"./ReactBrowserEventEmitter":226,"./ReactComponentEnvironment":229,"./ReactEmptyComponent":253,"./ReactHostComponent":258,"./ReactUpdates":278}],261:[function(e,t,n){"use strict";var a=e("./ReactDOMSelection"),r=e("fbjs/lib/containsNode"),o=e("fbjs/lib/focusNode"),i=e("fbjs/lib/getActiveElement");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=i();return{focusedElem:e,selectionRange:s.hasSelectionCapabilities(e)?s.getSelection(e):null}},restoreSelection:function(e){var t=i(),n=e.focusedElem,e=e.selectionRange;t!==n&&(t=n,r(document.documentElement,t))&&(s.hasSelectionCapabilities(n)&&s.setSelection(n,e),o(n))},getSelection:function(e){var t,n;return"selectionStart"in e?t={start:e.selectionStart,end:e.selectionEnd}:document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()?(n=document.selection.createRange()).parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)}):t=a.getOffsets(e),t||{start:0,end:0}},setSelection:function(e,t){var n,r=t.start,o=t.end;void 0===o&&(o=r),"selectionStart"in e?(e.selectionStart=r,e.selectionEnd=Math.min(o,e.value.length)):document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()?((n=e.createTextRange()).collapse(!0),n.moveStart("character",r),n.moveEnd("character",o-r),n.select()):a.setOffsets(e,t)}};t.exports=s},{"./ReactDOMSelection":244,"fbjs/lib/containsNode":39,"fbjs/lib/focusNode":44,"fbjs/lib/getActiveElement":45}],262:[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}};t.exports=r},{}],263:[function(e,n,t){(function(e){"use strict";var t=null;n.exports={debugTool:t}}).call(this,e("_process"))},{"./ReactDebugTool":249,_process:162}],264:[function(r,o,e){(function(e){"use strict";r("fbjs/lib/warning");var t,n={onBeginProcessingChildContext:function(){0},onEndProcessingChildContext:function(){0},onSetState:function(){t()}};o.exports=n}).call(this,r("_process"))},{_process:162,"fbjs/lib/warning":57}],265:[function(e,t,n){"use strict";var r=e("./adler32"),o=/\/?>/,a=/^<\!\-\-/,i={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return a.test(e)?e:e.replace(o," "+i.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){t=(t=t.getAttribute(i.CHECKSUM_ATTR_NAME))&&parseInt(t,10);return r(e)===t}};t.exports=i},{"./adler32":299}],266:[function(A,L,e){(function(e){"use strict";var c=A("./reactProdInvariant"),s=A("./DOMLazyTree"),t=A("./DOMProperty"),l=A("react/lib/React"),o=A("./ReactBrowserEventEmitter"),u=(A("react/lib/ReactCurrentOwner"),A("./ReactDOMComponentTree")),i=A("./ReactDOMContainerInfo"),a=A("./ReactDOMFeatureFlags"),p=A("./ReactFeatureFlags"),f=A("./ReactInstanceMap"),d=(A("./ReactInstrumentation"),A("./ReactMarkupChecksum")),h=A("./ReactReconciler"),g=A("./ReactUpdateQueue"),m=A("./ReactUpdates"),v=A("fbjs/lib/emptyObject"),y=A("./instantiateReactComponent"),b=(A("fbjs/lib/invariant"),A("./setInnerHTML")),_=A("./shouldUpdateReactComponent"),n=(A("fbjs/lib/warning"),t.ID_ATTRIBUTE_NAME),r=t.ROOT_ATTRIBUTE_NAME,E=1,C=9,O=11,w={};function D(e){return e?e.nodeType===C?e.documentElement:e.firstChild:null}function T(e){return e.getAttribute&&e.getAttribute(n)}function S(e,t,n,r,o){var a;p.logTopLevelRenders&&(a="React mount: "+("string"==typeof(a=e._currentElement.props.child.type)?a:a.displayName||a.name),console.time(a));o=h.mountComponent(e,n,null,i(e,t),o,0);a&&console.timeEnd(a),e._renderedComponent._topLevelWrapper=e,N._mountImageIntoNode(o,t,e,r,n)}function P(e,t,n,r){var o=m.ReactReconcileTransaction.getPooled(!n&&a.useCreateElement);o.perform(S,null,e,t,o,n,r),m.ReactReconcileTransaction.release(o)}function x(e,t,n){for(0,h.unmountComponent(e,n),t.nodeType===C&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}function k(e){e=D(e);if(e){e=u.getInstanceFromNode(e);return!(!e||!e._hostParent)}}function R(e){return!(!e||e.nodeType!==E&&e.nodeType!==C&&e.nodeType!==O)}function I(e){e=(e=(e=D(e=e))&&u.getInstanceFromNode(e))&&!e._hostParent?e:null;return e?e._hostContainerInfo._topLevelWrapper:null}function M(){this.rootID=j++}var j=1;M.prototype.isReactComponent={},M.prototype.render=function(){return this.props.child},M.isReactTopLevelWrapper=!0;var N={TopLevelWrapper:M,_instancesByReactRootID:w,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r,o){return N.scrollMonitor(r,function(){g.enqueueElementInternal(e,t,n),o&&g.enqueueCallbackInternal(e,o)}),e},_renderNewRootComponent:function(e,t,n,r){R(t)||c("37"),o.ensureScrollValueMonitoring();e=y(e,!1);m.batchedUpdates(P,e,t,n,r);r=e._instance.rootID;return w[r]=e},renderSubtreeIntoContainer:function(e,t,n,r){return null!=e&&f.has(e)||c("38"),N._renderSubtreeIntoContainer(e,t,n,r)},_renderSubtreeIntoContainer:function(e,t,n,r){g.validateCallback(r,"ReactDOM.render"),l.isValidElement(t)||c("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 o=l.createElement(M,{child:t});u=e?(a=f.get(e))._processChildContext(a._context):v;e=I(n);if(e){var a=e._currentElement.props.child;if(_(a,t)){var i=e._renderedComponent.getPublicInstance(),s=r&&function(){r.call(i)};return N._updateRootComponent(e,o,u,n,s),i}N.unmountComponentAtNode(n)}var t=D(n),s=t&&!!T(t),t=k(n),t=s&&!e&&!t,u=N._renderNewRootComponent(o,n,t,u)._renderedComponent.getPublicInstance();return r&&r.call(u),u},render:function(e,t,n){return N._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){R(e)||c("40");var t=I(e);if(t)return delete w[t._instance.rootID],m.batchedUpdates(x,t,e,!1),!0;k(e),1===e.nodeType&&e.hasAttribute(r);return!1},_mountImageIntoNode:function(e,t,n,r,o){if(R(t)||c("41"),r){var a=D(t);if(d.canReuseMarkup(e,a))return void u.precacheNode(n,a);var i=a.getAttribute(d.CHECKSUM_ATTR_NAME);a.removeAttribute(d.CHECKSUM_ATTR_NAME);r=a.outerHTML;a.setAttribute(d.CHECKSUM_ATTR_NAME,i);a=e,i=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}(a,r),i=" (client) "+a.substring(i-20,i+20)+"\n (server) "+r.substring(i-20,i+20);t.nodeType===C&&c("42",i)}if(t.nodeType===C&&c("43"),o.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);s.insertTreeBefore(t,e,null)}else b(t,e),u.precacheNode(n,t.firstChild)}};L.exports=N}).call(this,A("_process"))},{"./DOMLazyTree":210,"./DOMProperty":212,"./ReactBrowserEventEmitter":226,"./ReactDOMComponentTree":234,"./ReactDOMContainerInfo":235,"./ReactDOMFeatureFlags":237,"./ReactFeatureFlags":257,"./ReactInstanceMap":262,"./ReactInstrumentation":263,"./ReactMarkupChecksum":265,"./ReactReconciler":273,"./ReactUpdateQueue":277,"./ReactUpdates":278,"./instantiateReactComponent":317,"./reactProdInvariant":321,"./setInnerHTML":323,"./shouldUpdateReactComponent":325,_process:162,"fbjs/lib/emptyObject":43,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"react/lib/React":330,"react/lib/ReactCurrentOwner":334}],267:[function(o,a,e){(function(e){"use strict";var r=o("./reactProdInvariant"),n=o("./ReactComponentEnvironment"),g=(o("./ReactInstanceMap"),o("./ReactInstrumentation"),o("react/lib/ReactCurrentOwner"),o("./ReactReconciler")),s=o("./ReactChildReconciler"),t=o("fbjs/lib/emptyFunction"),u=o("./flattenChildren");o("fbjs/lib/invariant");function m(e,t){return t&&(e=e||[]).push(t),e}function v(e,t){n.processChildrenUpdates(e,t)}t={Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return s.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,o,a){var i=0,t=u(t,i);return s.updateChildren(e,t,n,r,o,this,this._hostContainerInfo,a,i),t},mountChildren:function(e,t,n){var r,o,a,i=this._reconcilerInstantiateChildren(e,t,n),s=[],u=0;for(r in this._renderedChildren=i){i.hasOwnProperty(r)&&(o=i[r],a=0,a=g.mountComponent(o,t,this,this._hostContainerInfo,n,a),o._mountIndex=u++,s.push(a))}return s},updateTextContent:function(e){var t,n=this._renderedChildren;for(t in s.unmountChildren(n,!1),n)n.hasOwnProperty(t)&&r("118");v(this,[{type:"TEXT_CONTENT",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}])},updateMarkup:function(e){var t,n=this._renderedChildren;for(t in s.unmountChildren(n,!1),n)n.hasOwnProperty(t)&&r("118");v(this,[{type:"SET_MARKUP",content:e,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=[],i=this._reconcilerUpdateChildren(r,e,a,o,t,n);if(i||r){var s,u,c,l=null,p=0,f=0,d=0,h=null;for(s in i){i.hasOwnProperty(s)&&((u=r&&r[s])===(c=i[s])?(l=m(l,this.moveChild(u,h,p,f)),f=Math.max(u._mountIndex,f),u._mountIndex=p):(u&&(f=Math.max(u._mountIndex,f)),l=m(l,this._mountChildAtIndex(c,a[d],h,p,t,n)),d++),p++,h=g.getHostNode(c))}for(s in o)o.hasOwnProperty(s)&&(l=m(l,this._unmountChild(r[s],o[s])));l&&v(this,l),this._renderedChildren=i}},unmountChildren:function(e){var t=this._renderedChildren;s.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex<r)return t=t,n=n,{type:"MOVE_EXISTING",content:null,fromIndex:(e=e)._mountIndex,fromNode:g.getHostNode(e),toIndex:n,afterNode:t}},createChild:function(e,t,n){return n=n,t=t,e=e._mountIndex,{type:"INSERT_MARKUP",content:n,fromIndex:null,fromNode:null,toIndex:e,afterNode:t}},removeChild:function(e,t){return t=t,{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}},_mountChildAtIndex:function(e,t,n,r,o,a){return e._mountIndex=r,this.createChild(e,n,t)},_unmountChild:function(e,t){t=this.removeChild(e,t);return e._mountIndex=null,t}}};a.exports=t}).call(this,o("_process"))},{"./ReactChildReconciler":227,"./ReactComponentEnvironment":229,"./ReactInstanceMap":262,"./ReactInstrumentation":263,"./ReactReconciler":273,"./flattenChildren":305,"./reactProdInvariant":321,_process:162,"fbjs/lib/emptyFunction":42,"fbjs/lib/invariant":50,"react/lib/ReactCurrentOwner":334}],268:[function(o,a,e){(function(e){"use strict";var t=o("./reactProdInvariant"),n=o("react/lib/React"),r=(o("fbjs/lib/invariant"),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(e){return null===e||!1===e?r.EMPTY:n.isValidElement(e)?"function"==typeof e.type?r.COMPOSITE:r.HOST:void t("26",e)}});a.exports=r}).call(this,o("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"react/lib/React":330}],269:[function(n,r,e){(function(e){"use strict";var o=n("./reactProdInvariant");n("fbjs/lib/invariant");function a(e){return e&&"function"==typeof e.attachRef&&"function"==typeof e.detachRef}var t={addComponentAsRefTo:function(e,t,n){a(n)||o("119"),n.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,n){a(n)||o("120");var r=n.getPublicInstance();r&&r.refs[t]===e.getPublicInstance()&&n.detachRef(t)}};r.exports=t}).call(this,n("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],270:[function(e,n,t){(function(e){"use strict";var t={};n.exports=t}).call(this,e("_process"))},{_process:162}],271:[function(e,t,n){"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},{}],272:[function(l,p,e){(function(e){"use strict";var t=l("object-assign"),n=l("./CallbackQueue"),r=l("./PooledClass"),o=l("./ReactBrowserEventEmitter"),a=l("./ReactInputSelection"),i=(l("./ReactInstrumentation"),l("./Transaction")),s=l("./ReactUpdateQueue"),u=[{initialize:a.getSelectionInformation,close:a.restoreSelection},{initialize:function(){var e=o.isEnabled();return o.setEnabled(!1),e},close:function(e){o.setEnabled(e)}},{initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}}];function c(e){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=n.getPooled(null),this.useCreateElement=e}t(c.prototype,i,{getTransactionWrappers:function(){return u},getReactMountReady:function(){return this.reactMountReady},getUpdateQueue:function(){return s},checkpoint:function(){return this.reactMountReady.checkpoint()},rollback:function(e){this.reactMountReady.rollback(e)},destructor:function(){n.release(this.reactMountReady),this.reactMountReady=null}}),r.addPoolingTo(c),p.exports=c}).call(this,l("_process"))},{"./CallbackQueue":207,"./PooledClass":225,"./ReactBrowserEventEmitter":226,"./ReactInputSelection":261,"./ReactInstrumentation":263,"./ReactUpdateQueue":277,"./Transaction":296,_process:162,"object-assign":161}],273:[function(n,r,e){(function(e){"use strict";var i=n("./ReactRef");n("./ReactInstrumentation"),n("fbjs/lib/warning");function s(){i.attachRefs(this,this._currentElement)}var t={mountComponent:function(e,t,n,r,o,a){a=e.mountComponent(t,n,r,o,a);return e._currentElement&&null!=e._currentElement.ref&&t.getReactMountReady().enqueue(s,e),a},getHostNode:function(e){return e.getHostNode()},unmountComponent:function(e,t){i.detachRefs(e,e._currentElement),e.unmountComponent(t)},receiveComponent:function(e,t,n,r){var o,a=e._currentElement;t===a&&r===e._context||((o=i.shouldUpdateRefs(a,t))&&i.detachRefs(e,a),e.receiveComponent(t,n,r),o&&e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(s,e))},performUpdateIfNecessary:function(e,t,n){e._updateBatchNumber===n&&e.performUpdateIfNecessary(t)}};r.exports=t}).call(this,n("_process"))},{"./ReactInstrumentation":263,"./ReactRef":274,_process:162,"fbjs/lib/warning":57}],274:[function(e,t,n){"use strict";var r=e("./ReactOwner"),e={};e.attachRefs=function(e,t){var n;null===t||"object"!=typeof t||null!=(n=t.ref)&&(n=n,e=e,t=t._owner,"function"==typeof n?n(e.getPublicInstance()):r.addComponentAsRefTo(e,n,t))},e.shouldUpdateRefs=function(e,t){var n=null,r=null;null!==e&&"object"==typeof e&&(n=e.ref,r=e._owner);var o=null,e=null;return null!==t&&"object"==typeof t&&(o=t.ref,e=t._owner),n!==o||"string"==typeof o&&e!==r},e.detachRefs=function(e,t){var n;null===t||"object"!=typeof t||null!=(n=t.ref)&&(n=n,e=e,t=t._owner,"function"==typeof n?n(null):r.removeComponentAsRefFrom(e,n,t))},t.exports=e},{"./ReactOwner":269}],275:[function(u,c,e){(function(e){"use strict";var t=u("object-assign"),n=u("./PooledClass"),r=u("./Transaction"),o=(u("./ReactInstrumentation"),u("./ReactServerUpdateQueue")),a=[];var i={enqueue:function(){}};function s(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.useCreateElement=!1,this.updateQueue=new o(this)}t(s.prototype,r,{getTransactionWrappers:function(){return a},getReactMountReady:function(){return i},getUpdateQueue:function(){return this.updateQueue},destructor:function(){},checkpoint:function(){},rollback:function(){}}),n.addPoolingTo(s),c.exports=s}).call(this,u("_process"))},{"./PooledClass":225,"./ReactInstrumentation":263,"./ReactServerUpdateQueue":276,"./Transaction":296,_process:162,"object-assign":161}],276:[function(o,a,e){(function(e){"use strict";var r=o("./ReactUpdateQueue");o("fbjs/lib/warning");var t=(n.prototype.isMounted=function(){return!1},n.prototype.enqueueCallback=function(e,t,n){this.transaction.isInTransaction()&&r.enqueueCallback(e,t,n)},n.prototype.enqueueForceUpdate=function(e){this.transaction.isInTransaction()&&r.enqueueForceUpdate(e)},n.prototype.enqueueReplaceState=function(e,t){this.transaction.isInTransaction()&&r.enqueueReplaceState(e,t)},n.prototype.enqueueSetState=function(e,t){this.transaction.isInTransaction()&&r.enqueueSetState(e,t)},n);function n(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),this.transaction=e}a.exports=t}).call(this,o("_process"))},{"./ReactUpdateQueue":277,_process:162,"fbjs/lib/warning":57}],277:[function(u,c,e){(function(e){"use strict";var n=u("./reactProdInvariant"),t=(u("react/lib/ReactCurrentOwner"),u("./ReactInstanceMap")),r=(u("./ReactInstrumentation"),u("./ReactUpdates"));u("fbjs/lib/invariant"),u("fbjs/lib/warning");function o(e){r.enqueueUpdate(e)}function a(e){var t=typeof e;if("object"!=t)return t;t=e.constructor&&e.constructor.name||t,e=Object.keys(e);return 0<e.length&&e.length<20?t+" (keys: "+e.join(", ")+")":t}function i(e){e=t.get(e);return e||null}var s={isMounted:function(e){e=t.get(e);return!!e&&!!e._renderedComponent},enqueueCallback:function(e,t,n){s.validateCallback(t,n);e=i(e);if(!e)return null;e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],o(e)},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],o(e)},enqueueForceUpdate:function(e){e=i(e);e&&(e._pendingForceUpdate=!0,o(e))},enqueueReplaceState:function(e,t,n){e=i(e);e&&(e._pendingStateQueue=[t],e._pendingReplaceState=!0,null!=n&&(s.validateCallback(n,"replaceState"),e._pendingCallbacks?e._pendingCallbacks.push(n):e._pendingCallbacks=[n]),o(e))},enqueueSetState:function(e,t){e=i(e);e&&((e._pendingStateQueue||(e._pendingStateQueue=[])).push(t),o(e))},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,o(e)},validateCallback:function(e,t){e&&"function"!=typeof e&&n("122",t,a(e))}};c.exports=s}).call(this,u("_process"))},{"./ReactInstanceMap":262,"./ReactInstrumentation":263,"./ReactUpdates":278,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"react/lib/ReactCurrentOwner":334}],278:[function(E,C,e){(function(e){"use strict";var s=E("./reactProdInvariant"),t=E("object-assign"),n=E("./CallbackQueue"),r=E("./PooledClass"),u=E("./ReactFeatureFlags"),c=E("./ReactReconciler"),o=E("./Transaction"),a=E("fbjs/lib/invariant"),l=[],p=0,i=n.getPooled(),f=!1,d=null;function h(){_.ReactReconcileTransaction&&d||s("123")}var g=[{initialize:function(){this.dirtyComponentsLength=l.length},close:function(){this.dirtyComponentsLength!==l.length?(l.splice(0,this.dirtyComponentsLength),b()):l.length=0}},{initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}}];function m(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=n.getPooled(),this.reconcileTransaction=_.ReactReconcileTransaction.getPooled(!0)}function v(e,t){return e._mountOrder-t._mountOrder}function y(e){var t=e.dirtyComponentsLength;t!==l.length&&s("124",t,l.length),l.sort(v),p++;for(var n=0;n<t;n++){var r,o=l[n],a=o._pendingCallbacks;if(o._pendingCallbacks=null,u.logTopLevelRenders&&((r=o)._currentElement.type.isReactTopLevelWrapper&&(r=o._renderedComponent),r="React update: "+r.getName(),console.time(r)),c.performUpdateIfNecessary(o,e.reconcileTransaction,p),r&&console.timeEnd(r),a)for(var i=0;i<a.length;i++)e.callbackQueue.enqueue(a[i],o.getPublicInstance())}}t(m.prototype,o,{getTransactionWrappers:function(){return g},destructor:function(){this.dirtyComponentsLength=null,n.release(this.callbackQueue),this.callbackQueue=null,_.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return o.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),r.addPoolingTo(m);var b=function(){for(;l.length||f;){var e;l.length&&((e=m.getPooled()).perform(y,null,e),m.release(e)),f&&(f=!1,e=i,i=n.getPooled(),e.notifyAll(),n.release(e))}};var _={ReactReconcileTransaction:null,batchedUpdates:function(e,t,n,r,o,a){return h(),d.batchedUpdates(e,t,n,r,o,a)},enqueueUpdate:function e(t){h(),d.isBatchingUpdates?(l.push(t),null==t._updateBatchNumber&&(t._updateBatchNumber=p+1)):d.batchedUpdates(e,t)},flushBatchedUpdates:b,injection:{injectReconcileTransaction:function(e){e||s("126"),_.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){e||s("127"),"function"!=typeof e.batchedUpdates&&s("128"),"boolean"!=typeof e.isBatchingUpdates&&s("129"),d=e}},asap:function(e,t){a(d.isBatchingUpdates,"ReactUpdates.asap: Can't enqueue an asap callback in a context whereupdates are not being batched."),i.enqueue(e,t),f=!0}};C.exports=_}).call(this,E("_process"))},{"./CallbackQueue":207,"./PooledClass":225,"./ReactFeatureFlags":257,"./ReactReconciler":273,"./Transaction":296,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"object-assign":161}],279:[function(e,t,n){"use strict";t.exports="15.6.2"},{}],280:[function(e,t,n){"use strict";var r="http://www.w3.org/1999/xlink",o="http://www.w3.org/XML/1998/namespace",a={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"},i={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(a).forEach(function(e){i.Properties[e]=0,a[e]&&(i.DOMAttributeNames[e]=a[e])}),t.exports=i},{}],281:[function(e,t,n){"use strict";var r=e("./EventPropagators"),o=e("fbjs/lib/ExecutionEnvironment"),a=e("./ReactDOMComponentTree"),i=e("./ReactInputSelection"),s=e("./SyntheticEvent"),u=e("fbjs/lib/getActiveElement"),c=e("./isTextInputElement"),l=e("fbjs/lib/shallowEqual"),p=o.canUseDOM&&"documentMode"in document&&document.documentMode<=11,f={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:["topBlur","topContextMenu","topFocus","topKeyDown","topKeyUp","topMouseDown","topMouseUp","topSelectionChange"]}},d=null,h=null,g=null,m=!1,v=!1;function y(e,t){if(m||null==d||d!==u())return null;var n=function(e){if("selectionStart"in e&&i.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){t=document.selection.createRange();return{parentElement:t.parentElement(),text:t.text,top:t.boundingTop,left:t.boundingLeft}}}(d);if(g&&l(g,n))return null;g=n;t=s.getPooled(f.select,h,e,t);return t.type="select",t.target=d,r.accumulateTwoPhaseDispatches(t),t}o={eventTypes:f,extractEvents:function(e,t,n,r){if(!v)return null;var o=t?a.getNodeFromInstance(t):window;switch(e){case"topFocus":!c(o)&&"true"!==o.contentEditable||(d=o,h=t,g=null);break;case"topBlur":g=h=d=null;break;case"topMouseDown":m=!0;break;case"topContextMenu":case"topMouseUp":return m=!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&&(v=!0)}};t.exports=o},{"./EventPropagators":220,"./ReactDOMComponentTree":234,"./ReactInputSelection":261,"./SyntheticEvent":287,"./isTextInputElement":319,"fbjs/lib/ExecutionEnvironment":36,"fbjs/lib/getActiveElement":45,"fbjs/lib/shallowEqual":56}],282:[function(n,D,e){(function(e){"use strict";var i=n("./reactProdInvariant"),r=n("fbjs/lib/EventListener"),s=n("./EventPropagators"),o=n("./ReactDOMComponentTree"),u=n("./SyntheticAnimationEvent"),c=n("./SyntheticClipboardEvent"),l=n("./SyntheticEvent"),p=n("./SyntheticFocusEvent"),f=n("./SyntheticKeyboardEvent"),d=n("./SyntheticMouseEvent"),h=n("./SyntheticDragEvent"),g=n("./SyntheticTouchEvent"),m=n("./SyntheticTransitionEvent"),v=n("./SyntheticUIEvent"),y=n("./SyntheticWheelEvent"),a=n("fbjs/lib/emptyFunction"),b=n("./getEventCharCode"),_=(n("fbjs/lib/invariant"),{}),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,t="top"+t,n={phasedRegistrationNames:{bubbled:n,captured:n+"Capture"},dependencies:[t]};_[e]=n,E[t]=n});var C={};function O(e){return"."+e._rootNodeID}function w(e){return"button"===e||"input"===e||"select"===e||"textarea"===e}var t={eventTypes:_,extractEvents:function(e,t,n,r){var o,a=E[e];if(!a)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":o=l;break;case"topKeyPress":if(0===b(n))return null;case"topKeyDown":case"topKeyUp":o=f;break;case"topBlur":case"topFocus":o=p;break;case"topClick":if(2===n.button)return null;case"topDoubleClick":case"topMouseDown":case"topMouseMove":case"topMouseUp":case"topMouseOut":case"topMouseOver":case"topContextMenu":o=d;break;case"topDrag":case"topDragEnd":case"topDragEnter":case"topDragExit":case"topDragLeave":case"topDragOver":case"topDragStart":case"topDrop":o=h;break;case"topTouchCancel":case"topTouchEnd":case"topTouchMove":case"topTouchStart":o=g;break;case"topAnimationEnd":case"topAnimationIteration":case"topAnimationStart":o=u;break;case"topTransitionEnd":o=m;break;case"topScroll":o=v;break;case"topWheel":o=y;break;case"topCopy":case"topCut":case"topPaste":o=c}o||i("86",e);r=o.getPooled(a,t,n,r);return s.accumulateTwoPhaseDispatches(r),r},didPutListener:function(e,t,n){"onClick"!==t||w(e._tag)||(t=O(e),e=o.getNodeFromInstance(e),C[t]||(C[t]=r.listen(e,"click",a)))},willDeleteListener:function(e,t){"onClick"!==t||w(e._tag)||(e=O(e),C[e].remove(),delete C[e])}};D.exports=t}).call(this,n("_process"))},{"./EventPropagators":220,"./ReactDOMComponentTree":234,"./SyntheticAnimationEvent":283,"./SyntheticClipboardEvent":284,"./SyntheticDragEvent":286,"./SyntheticEvent":287,"./SyntheticFocusEvent":288,"./SyntheticKeyboardEvent":290,"./SyntheticMouseEvent":291,"./SyntheticTouchEvent":292,"./SyntheticTransitionEvent":293,"./SyntheticUIEvent":294,"./SyntheticWheelEvent":295,"./getEventCharCode":307,"./reactProdInvariant":321,_process:162,"fbjs/lib/EventListener":35,"fbjs/lib/emptyFunction":42,"fbjs/lib/invariant":50}],283:[function(e,t,n){"use strict";var o=e("./SyntheticEvent");function r(e,t,n,r){return o.call(this,e,t,n,r)}o.augmentClass(r,{animationName:null,elapsedTime:null,pseudoElement:null}),t.exports=r},{"./SyntheticEvent":287}],284:[function(e,t,n){"use strict";var o=e("./SyntheticEvent"),e={clipboardData:function(e){return("clipboardData"in e?e:window).clipboardData}};function r(e,t,n,r){return o.call(this,e,t,n,r)}o.augmentClass(r,e),t.exports=r},{"./SyntheticEvent":287}],285:[function(e,t,n){"use strict";var o=e("./SyntheticEvent");function r(e,t,n,r){return o.call(this,e,t,n,r)}o.augmentClass(r,{data:null}),t.exports=r},{"./SyntheticEvent":287}],286:[function(e,t,n){"use strict";var o=e("./SyntheticMouseEvent");function r(e,t,n,r){return o.call(this,e,t,n,r)}o.augmentClass(r,{dataTransfer:null}),t.exports=r},{"./SyntheticMouseEvent":291}],287:[function(i,u,e){(function(e){"use strict";var r=i("object-assign"),o=i("./PooledClass"),s=i("fbjs/lib/emptyFunction"),a=(i("fbjs/lib/warning"),["dispatchConfig","_targetInst","nativeEvent","isDefaultPrevented","isPropagationStopped","_dispatchListeners","_dispatchInstances"]),t={type:null,target:null,currentTarget:s.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};function n(e,t,n,r){this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n;var o,a,i=this.constructor.Interface;for(o in i){i.hasOwnProperty(o)&&((a=i[o])?this[o]=a(n):"target"===o?this.target=r:this[o]=n[o])}t=null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue;return this.isDefaultPrevented=t?s.thatReturnsTrue:s.thatReturnsFalse,this.isPropagationStopped=s.thatReturnsFalse,this}r(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=s.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=s.thatReturnsTrue)},persist:function(){this.isPersistent=s.thatReturnsTrue},isPersistent:s.thatReturnsFalse,destructor:function(){var e,t=this.constructor.Interface;for(e in t)this[e]=null;for(var n=0;n<a.length;n++)this[a[n]]=null}}),n.Interface=t,n.augmentClass=function(e,t){var n=function(){};n.prototype=this.prototype;n=new n;r(n,e.prototype),e.prototype=n,(e.prototype.constructor=e).Interface=r({},this.Interface,t),e.augmentClass=this.augmentClass,o.addPoolingTo(e,o.fourArgumentPooler)},o.addPoolingTo(n,o.fourArgumentPooler),u.exports=n}).call(this,i("_process"))},{"./PooledClass":225,_process:162,"fbjs/lib/emptyFunction":42,"fbjs/lib/warning":57,"object-assign":161}],288:[function(e,t,n){"use strict";var o=e("./SyntheticUIEvent");function r(e,t,n,r){return o.call(this,e,t,n,r)}o.augmentClass(r,{relatedTarget:null}),t.exports=r},{"./SyntheticUIEvent":294}],289:[function(e,t,n){"use strict";var o=e("./SyntheticEvent");function r(e,t,n,r){return o.call(this,e,t,n,r)}o.augmentClass(r,{data:null}),t.exports=r},{"./SyntheticEvent":287}],290:[function(e,t,n){"use strict";var o=e("./SyntheticUIEvent"),r=e("./getEventCharCode"),e={key:e("./getEventKey"),location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:e("./getEventModifierState"),charCode:function(e){return"keypress"===e.type?r(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?r(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};function a(e,t,n,r){return o.call(this,e,t,n,r)}o.augmentClass(a,e),t.exports=a},{"./SyntheticUIEvent":294,"./getEventCharCode":307,"./getEventKey":308,"./getEventModifierState":309}],291:[function(e,t,n){"use strict";var o=e("./SyntheticUIEvent"),r=e("./ViewportMetrics"),e={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:e("./getEventModifierState"),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+r.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+r.currentScrollTop}};function a(e,t,n,r){return o.call(this,e,t,n,r)}o.augmentClass(a,e),t.exports=a},{"./SyntheticUIEvent":294,"./ViewportMetrics":297,"./getEventModifierState":309}],292:[function(e,t,n){"use strict";var o=e("./SyntheticUIEvent"),e={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:e("./getEventModifierState")};function r(e,t,n,r){return o.call(this,e,t,n,r)}o.augmentClass(r,e),t.exports=r},{"./SyntheticUIEvent":294,"./getEventModifierState":309}],293:[function(e,t,n){"use strict";var o=e("./SyntheticEvent");function r(e,t,n,r){return o.call(this,e,t,n,r)}o.augmentClass(r,{propertyName:null,elapsedTime:null,pseudoElement:null}),t.exports=r},{"./SyntheticEvent":287}],294:[function(e,t,n){"use strict";var o=e("./SyntheticEvent"),r=e("./getEventTarget"),e={view:function(e){if(e.view)return e.view;e=r(e);if(e.window===e)return e;e=e.ownerDocument;return e?e.defaultView||e.parentWindow:window},detail:function(e){return e.detail||0}};function a(e,t,n,r){return o.call(this,e,t,n,r)}o.augmentClass(a,e),t.exports=a},{"./SyntheticEvent":287,"./getEventTarget":310}],295:[function(e,t,n){"use strict";var o=e("./SyntheticMouseEvent");function r(e,t,n,r){return o.call(this,e,t,n,r)}o.augmentClass(r,{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}),t.exports=r},{"./SyntheticMouseEvent":291}],296:[function(n,r,e){(function(e){"use strict";var l=n("./reactProdInvariant"),i=(n("fbjs/lib/invariant"),{}),t={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,r,o,a,i,s){var u,c;this.isInTransaction()&&l("27");try{u=this._isInTransaction=!0,this.initializeAll(0),c=e.call(t,n,r,o,a,i,s),u=!1}finally{try{if(u)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]=i,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===i)try{this.initializeAll(n+1)}catch(e){}}}},closeAll:function(e){this.isInTransaction()||l("28");for(var t=this.transactionWrappers,n=e;n<t.length;n++){var r,o=t[n],a=this.wrapperInitData[n];try{r=!0,a!==i&&o.close&&o.close.call(this,a),r=!1}finally{if(r)try{this.closeAll(n+1)}catch(e){}}}this.wrapperInitData.length=0}};r.exports=t}).call(this,n("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],297:[function(e,t,n){"use strict";var r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};t.exports=r},{}],298:[function(t,r,e){(function(e){"use strict";var n=t("./reactProdInvariant");t("fbjs/lib/invariant");r.exports=function(e,t){return null==t&&n("30"),null==e?t:Array.isArray(e)?(Array.isArray(t)?e.push.apply(e,t):e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}}).call(this,t("_process"))},{"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50}],299:[function(e,t,n){"use strict";t.exports=function(e){for(var t=1,n=0,r=0,o=e.length,a=-4&o;r<a;){for(var i=Math.min(r+4096,a);r<i;r+=4)n+=(t+=e.charCodeAt(r))+(t+=e.charCodeAt(r+1))+(t+=e.charCodeAt(r+2))+(t+=e.charCodeAt(r+3));t%=65521,n%=65521}for(;r<o;r++)n+=t+=e.charCodeAt(r);return(t%=65521)|(n%=65521)<<16}},{}],300:[function(t,n,e){(function(e){"use strict";var u=t("./reactProdInvariant"),c=t("./ReactPropTypeLocationNames"),l=t("./ReactPropTypesSecret");t("fbjs/lib/invariant"),t("fbjs/lib/warning");void 0!==e&&e.env;var p={};n.exports=function(e,t,n,r,o,a){for(var i in e)if(e.hasOwnProperty(i)){var s;try{"function"!=typeof e[i]&&u("84",r||"React class",c[n],i),s=e[i](t,i,r,n,null,l)}catch(e){s=e}s instanceof Error&&!(s.message in p)&&(p[s.message]=!0,0)}}}).call(this,t("_process"))},{"./ReactPropTypeLocationNames":270,"./ReactPropTypesSecret":271,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"react/lib/ReactComponentTreeHook":333}],301:[function(e,t,n){"use strict";t.exports=function(o){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction(function(){return o(e,t,n,r)})}:o}},{}],302:[function(n,r,e){(function(e){"use strict";var t=n("./CSSProperty"),a=(n("fbjs/lib/warning"),t.isUnitlessNumber);r.exports=function(e,t,n,r){if(null==t||"boolean"==typeof t||""===t)return"";var o=isNaN(t);return r||o||0===t||a.hasOwnProperty(e)&&a[e]?""+t:("string"==typeof t&&(t=t.trim()),t+"px")}}).call(this,n("_process"))},{"./CSSProperty":205,_process:162,"fbjs/lib/warning":57}],303:[function(e,t,n){"use strict";var i=/["'&<>]/;t.exports=function(e){return"boolean"==typeof e||"number"==typeof e?""+e:function(e){var t,n=""+e;if(!(e=i.exec(n)))return n;for(var r="",o=0,a=0,o=e.index;o<n.length;o++){switch(n.charCodeAt(o)){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}a!==o&&(r+=n.substring(a,o)),a=o+1,r+=t}return a!==o?r+n.substring(a,o):r}(e)}},{}],304:[function(t,i,e){(function(e){"use strict";var n=t("./reactProdInvariant"),r=(t("react/lib/ReactCurrentOwner"),t("./ReactDOMComponentTree")),o=t("./ReactInstanceMap"),a=t("./getHostComponentFromComposite");t("fbjs/lib/invariant"),t("fbjs/lib/warning");i.exports=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=o.get(e);if(t)return(t=a(t))?r.getNodeFromInstance(t):null;"function"==typeof e.render?n("44"):n("45",Object.keys(e))}}).call(this,t("_process"))},{"./ReactDOMComponentTree":234,"./ReactInstanceMap":262,"./getHostComponentFromComposite":311,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"react/lib/ReactCurrentOwner":334}],305:[function(t,n,e){(function(e){"use strict";t("./KeyEscapeUtils");var r=t("./traverseAllChildren");t("fbjs/lib/warning");function o(e,t,n,r){!e||"object"!=typeof e||void 0===e[n]&&null!=t&&(e[n]=t)}void 0!==e&&e.env,n.exports=function(e,t){if(null==e)return e;var n={};return r(e,o,n),n}}).call(this,t("_process"))},{"./KeyEscapeUtils":223,"./traverseAllChildren":326,_process:162,"fbjs/lib/warning":57,"react/lib/ReactComponentTreeHook":333}],306:[function(e,t,n){"use strict";t.exports=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}},{}],307:[function(e,t,n){"use strict";t.exports=function(e){var t,n=e.keyCode;return"charCode"in e?0===(t=e.charCode)&&13===n&&(t=13):t=n,32<=t||13===t?t:0}},{}],308:[function(e,t,n){"use strict";var r=e("./getEventCharCode"),o={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},a={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"};t.exports=function(e){if(e.key){var t=o[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"!==e.type?"keydown"===e.type||"keyup"===e.type?a[e.keyCode]||"Unidentified":"":13===(e=r(e))?"Enter":String.fromCharCode(e)}},{"./getEventCharCode":307}],309:[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);e=r[e];return!!e&&!!t[e]}t.exports=function(e){return o}},{}],310:[function(e,t,n){"use strict";t.exports=function(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}},{}],311:[function(e,t,n){"use strict";var r=e("./ReactNodeTypes");t.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}},{"./ReactNodeTypes":268}],312:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.iterator;t.exports=function(e){if("function"==typeof(e=e&&(r&&e[r]||e["@@iterator"])))return e}},{}],313:[function(e,t,n){"use strict";function a(e){for(;e&&e.firstChild;)e=e.firstChild;return e}t.exports=function(e,t){for(var n,r=a(e),o=0;r;){if(3===r.nodeType){if(n=o+r.textContent.length,o<=t&&t<=n)return{node:r,offset:t-o};o=n}r=a(function(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}(r))}}},{}],314:[function(e,t,n){"use strict";var r=e("fbjs/lib/ExecutionEnvironment"),o=null;t.exports=function(){return!o&&r.canUseDOM&&(o="textContent"in document.documentElement?"textContent":"innerText"),o}},{"fbjs/lib/ExecutionEnvironment":36}],315:[function(e,t,n){"use strict";e=e("fbjs/lib/ExecutionEnvironment");function r(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 o={animationend:r("Animation","AnimationEnd"),animationiteration:r("Animation","AnimationIteration"),animationstart:r("Animation","AnimationStart"),transitionend:r("Transition","TransitionEnd")},a={},i={};e.canUseDOM&&(i=document.createElement("div").style,"AnimationEvent"in window||(delete o.animationend.animation,delete o.animationiteration.animation,delete o.animationstart.animation),"TransitionEvent"in window||delete o.transitionend.transition),t.exports=function(e){if(a[e])return a[e];if(!o[e])return e;var t,n=o[e];for(t in n)if(n.hasOwnProperty(t)&&t in i)return a[e]=n[t];return""}},{"fbjs/lib/ExecutionEnvironment":36}],316:[function(e,t,n){"use strict";var i=e("./ReactDOMComponentTree");function s(e){var t=e.type,e=e.nodeName;return e&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function u(e){return e._wrapperState.valueTracker}var o={_getTrackerFromNode:function(e){return u(i.getInstanceFromNode(e))},track:function(e){var t,n,r,o,a;u(e)||(t=i.getNodeFromInstance(e),n=s(t)?"checked":"value",r=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),o=""+t[n],t.hasOwnProperty(n)||"function"!=typeof r.get||"function"!=typeof r.set||(Object.defineProperty(t,n,{enumerable:r.enumerable,configurable:!0,get:function(){return r.get.call(this)},set:function(e){o=""+e,r.set.call(this,e)}}),a={getValue:function(){return o},setValue:function(e){o=""+e},stopTracking:function(){e._wrapperState.valueTracker=null,delete t[n]}},e._wrapperState.valueTracker=a))},updateValueIfChanged:function(e){if(!e)return!1;var t=u(e);if(!t)return o.track(e),!0;var n,r=t.getValue(),n=((e=i.getNodeFromInstance(e))&&(n=s(e)?""+e.checked:e.value),n);return n!==r&&(t.setValue(n),!0)},stopTracking:function(e){e=u(e);e&&e.stopTracking()}};t.exports=o},{"./ReactDOMComponentTree":234}],317:[function(r,o,e){(function(e){"use strict";var i=r("./reactProdInvariant"),t=r("object-assign"),n=r("./ReactCompositeComponent"),s=r("./ReactEmptyComponent"),u=r("./ReactHostComponent"),c=(r("react/lib/getNextDebugID"),r("fbjs/lib/invariant"),r("fbjs/lib/warning"),function(e){this.construct(e)});function l(e,t){var n,r,o,a;return null===e||!1===e?n=s.create(l):"object"==typeof e?("function"!=typeof(o=(r=e).type)&&"string"!=typeof o&&(a="",a+=function(e){if(e){e=e.getName();if(e)return" Check the render method of `"+e+"`."}return""}(r._owner),i("130",null==o?o:typeof o,a)),"string"==typeof r.type?n=u.createInternalComponent(r):"function"==typeof(a=r.type)&&void 0!==a.prototype&&"function"==typeof a.prototype.mountComponent&&"function"==typeof a.prototype.receiveComponent?(n=new r.type(r)).getHostNode||(n.getHostNode=n.getNativeNode):n=new c(r)):"string"==typeof e||"number"==typeof e?n=u.createInstanceForText(e):i("131",typeof e),n._mountIndex=0,n._mountImage=null,n}t(c.prototype,n,{_instantiateReactComponent:l}),o.exports=l}).call(this,r("_process"))},{"./ReactCompositeComponent":230,"./ReactEmptyComponent":253,"./ReactHostComponent":258,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"object-assign":161,"react/lib/getNextDebugID":348}],318:[function(e,t,n){"use strict";var o,a=e("fbjs/lib/ExecutionEnvironment");a.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("","")),t.exports=function(e,t){if(!a.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;return r||((t=document.createElement("div")).setAttribute(n,"return;"),r="function"==typeof t[n]),!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}},{"fbjs/lib/ExecutionEnvironment":36}],319:[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};t.exports=function(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!r[e.type]:"textarea"===t}},{}],320:[function(e,t,n){"use strict";var r=e("./escapeTextContentForBrowser");t.exports=function(e){return'"'+r(e)+'"'}},{"./escapeTextContentForBrowser":303}],321:[function(e,t,n){"use strict";t.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]);throw n+=" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.",(e=new Error(n)).name="Invariant Violation",e.framesToPop=1,e}},{}],322:[function(e,t,n){"use strict";e=e("./ReactMount");t.exports=e.renderSubtreeIntoContainer},{"./ReactMount":266}],323:[function(e,t,n){"use strict";var r,o=e("fbjs/lib/ExecutionEnvironment"),a=e("./DOMNamespaces"),i=/^[ \r\n\t\f]/,s=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,e=e("./createMicrosoftUnsafeLocalFunction")(function(e,t){if(e.namespaceURI!==a.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)}});o.canUseDOM&&((o=document.createElement("div")).innerHTML=" ",""===o.innerHTML&&(e=function(e,t){var n;e.parentNode&&e.parentNode.replaceChild(e,e),i.test(t)||"<"===t[0]&&s.test(t)?(e.innerHTML=String.fromCharCode(65279)+t,1===(n=e.firstChild).data.length?e.removeChild(n):n.deleteData(0,1)):e.innerHTML=t}),o=null),t.exports=e},{"./DOMNamespaces":211,"./createMicrosoftUnsafeLocalFunction":301,"fbjs/lib/ExecutionEnvironment":36}],324:[function(e,t,n){"use strict";var r=e("fbjs/lib/ExecutionEnvironment"),o=e("./escapeTextContentForBrowser"),a=e("./setInnerHTML"),e=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||(e=function(e,t){3!==e.nodeType?a(e,o(t)):e.nodeValue=t})),t.exports=e},{"./escapeTextContentForBrowser":303,"./setInnerHTML":323,"fbjs/lib/ExecutionEnvironment":36}],325:[function(e,t,n){"use strict";t.exports=function(e,t){var n=null===e||!1===e,r=null===t||!1===t;return n||r?n==r:(r=typeof t,"string"==(n=typeof e)||"number"==n?"string"==r||"number"==r:"object"==r&&e.type===t.type&&e.key===t.key)}},{}],326:[function(t,n,e){(function(e){"use strict";var h=t("./reactProdInvariant"),g=(t("react/lib/ReactCurrentOwner"),t("./ReactElementSymbol")),m=t("./getIteratorFn"),v=(t("fbjs/lib/invariant"),t("./KeyEscapeUtils")),y=(t("fbjs/lib/warning"),"."),b=":";function _(e,t){return e&&"object"==typeof e&&null!=e.key?v.escape(e.key):t.toString(36)}n.exports=function(e,t,n){return null==e?0:function e(t,n,r,o){var a,i=typeof t;if("undefined"!=i&&"boolean"!=i||(t=null),null===t||"string"==i||"number"==i||"object"==i&&t.$$typeof===g)return r(o,t,""===n?y+_(t,0):n),1;var s=0,u=""===n?y:n+b;if(Array.isArray(t))for(var c=0;c<t.length;c++)s+=e(a=t[c],u+_(a,c),r,o);else if(n=m(t)){var l,p=n.call(t);if(n!==t.entries)for(var f=0;!(l=p.next()).done;)s+=e(a=l.value,u+_(a,f++),r,o);else for(;!(l=p.next()).done;){var d=l.value;d&&(s+=e(a=d[1],u+v.escape(d[0])+b+_(a,0),r,o))}}else"object"==i&&(n="",i=String(t),h("31","[object Object]"===i?"object with keys {"+Object.keys(t).join(", ")+"}":i,n));return s}(e,"",t,n)}}).call(this,t("_process"))},{"./KeyEscapeUtils":223,"./ReactElementSymbol":252,"./getIteratorFn":312,"./reactProdInvariant":321,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57,"react/lib/ReactCurrentOwner":334}],327:[function(n,r,e){(function(e){"use strict";n("object-assign");var t=n("fbjs/lib/emptyFunction"),t=(n("fbjs/lib/warning"),t);r.exports=t}).call(this,n("_process"))},{_process:162,"fbjs/lib/emptyFunction":42,"fbjs/lib/warning":57,"object-assign":161}],328:[function(e,t,n){arguments[4][223][0].apply(n,arguments)},{dup:223}],329:[function(a,i,e){(function(e){"use strict";function n(e){e instanceof this||t("25"),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)}var t=a("./reactProdInvariant"),r=(a("fbjs/lib/invariant"),function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)}),o=r,r={addPoolingTo:function(e,t){return e.instancePool=[],e.getPooled=t||o,e.poolSize||(e.poolSize=10),e.release=n,e},oneArgumentPooler:r,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)}};i.exports=r}).call(this,a("_process"))},{"./reactProdInvariant":351,_process:162,"fbjs/lib/invariant":50}],330:[function(h,g,e){(function(e){"use strict";var t=h("object-assign"),n=h("./ReactBaseClasses"),r=h("./ReactChildren"),o=h("./ReactDOMFactories"),a=h("./ReactElement"),i=h("./ReactPropTypes"),s=h("./ReactVersion"),u=h("./createClass"),c=h("./onlyChild"),l=a.createElement,p=a.createFactory,f=a.cloneElement,d=function(e){return e},t={Children:{map:r.map,forEach:r.forEach,count:r.count,toArray:r.toArray,only:c},Component:n.Component,PureComponent:n.PureComponent,createElement:l,cloneElement:f,isValidElement:a.isValidElement,PropTypes:i,createClass:u,createFactory:p,createMixin:d,DOM:o,version:s,__spread:t};g.exports=t}).call(this,h("_process"))},{"./ReactBaseClasses":331,"./ReactChildren":332,"./ReactDOMFactories":335,"./ReactElement":336,"./ReactElementValidator":338,"./ReactPropTypes":341,"./ReactVersion":343,"./canDefineProperty":344,"./createClass":346,"./lowPriorityWarning":349,"./onlyChild":350,_process:162,"object-assign":161}],331:[function(u,c,e){(function(e){"use strict";var n=u("./reactProdInvariant"),t=u("object-assign"),r=u("./ReactNoopUpdateQueue"),o=(u("./canDefineProperty"),u("fbjs/lib/emptyObject"));u("fbjs/lib/invariant"),u("./lowPriorityWarning");function a(e,t,n){this.props=e,this.context=t,this.refs=o,this.updater=n||r}function i(e,t,n){this.props=e,this.context=t,this.refs=o,this.updater=n||r}function s(){}a.prototype.isReactComponent={},a.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e&&n("85"),this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},a.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")},s.prototype=a.prototype,t(((i.prototype=new s).constructor=i).prototype,a.prototype),i.prototype.isPureReactComponent=!0,c.exports={Component:a,PureComponent:i}}).call(this,u("_process"))},{"./ReactNoopUpdateQueue":339,"./canDefineProperty":344,"./lowPriorityWarning":349,"./reactProdInvariant":351,_process:162,"fbjs/lib/emptyObject":43,"fbjs/lib/invariant":50,"object-assign":161}],332:[function(e,t,n){"use strict";var r=e("./PooledClass"),s=e("./ReactElement"),u=e("fbjs/lib/emptyFunction"),i=e("./traverseAllChildren"),o=r.twoArgumentPooler,e=r.fourArgumentPooler,a=/\/+/g;function c(e){return(""+e).replace(a,"$&/")}function l(e,t){this.func=e,this.context=t,this.count=0}function p(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 d(e,t,n){var r=e.result,o=e.keyPrefix,a=e.func,i=e.context,e=a.call(i,t,e.count++);Array.isArray(e)?h(e,r,n,u.thatReturnsArgument):null!=e&&(s.isValidElement(e)&&(e=s.cloneAndReplaceKey(e,o+(!e.key||t&&t.key===e.key?"":c(e.key)+"/")+n)),r.push(e))}function h(e,t,n,r,o){var a="";null!=n&&(a=c(n)+"/");o=f.getPooled(t,a,r,o);i(e,d,o),f.release(o)}function g(e,t,n){return null}l.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},r.addPoolingTo(l,o),f.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},r.addPoolingTo(f,e);e={forEach:function(e,t,n){if(null==e)return e;n=l.getPooled(t,n),i(e,p,n),l.release(n)},map:function(e,t,n){if(null==e)return e;var r=[];return h(e,r,null,t,n),r},mapIntoWithKeyPrefixInternal:h,count:function(e,t){return i(e,g,null)},toArray:function(e){var t=[];return h(e,t,null,u.thatReturnsArgument),t}};t.exports=e},{"./PooledClass":329,"./ReactElement":336,"./traverseAllChildren":352,"fbjs/lib/emptyFunction":42}],333:[function(E,C,e){(function(e){"use strict";var n,t,r,i,o,a,s,u,c,l,p,f,d=E("./reactProdInvariant"),h=E("./ReactCurrentOwner");E("fbjs/lib/invariant"),E("fbjs/lib/warning");function g(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}}c="function"==typeof Array.from&&"function"==typeof Map&&g(Map)&&null!=Map.prototype&&"function"==typeof Map.prototype.keys&&g(Map.prototype.keys)&&"function"==typeof Set&&g(Set)&&null!=Set.prototype&&"function"==typeof Set.prototype.keys&&g(Set.prototype.keys)?(n=new Map,t=new Set,r=function(e,t){n.set(e,t)},i=function(e){return n.get(e)},o=function(e){n.delete(e)},a=function(){return Array.from(n.keys())},s=function(e){t.add(e)},u=function(e){t.delete(e)},function(){return Array.from(t.keys())}):(l={},p={},f=function(e){return parseInt(e.substr(1),10)},r=function(e,t){l["."+e]=t},i=function(e){return l["."+e]},o=function(e){delete l["."+e]},a=function(){return Object.keys(l).map(f)},s=function(e){p["."+e]=!0},u=function(e){delete p["."+e]},function(){return Object.keys(p).map(f)});var m=[];function v(e){var t=i(e);t&&(t=t.childIDs,o(e),t.forEach(v))}function y(e,t,n){return"\n in "+(e||"Unknown")+(t?" (at "+t.fileName.replace(/^.*[\\\/]/,"")+":"+t.lineNumber+")":n?" (created by "+n+")":"")}function b(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"}var _={onSetChildren:function(e,t){var n=i(e);n||d("144"),n.childIDs=t;for(var r=0;r<t.length;r++){var o=t[r],a=i(o);a||d("140"),null==a.childIDs&&"object"==typeof a.element&&null!=a.element&&d("141"),a.isMounted||d("71"),null==a.parentID&&(a.parentID=e),a.parentID!==e&&d("142",o,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){e=i(e);e&&e.isMounted&&(e.element=t)},onMountComponent:function(e){var t=i(e);t||d("144"),t.isMounted=!0,0===t.parentID&&s(e)},onUpdateComponent:function(e){e=i(e);e&&e.isMounted&&e.updateCount++},onUnmountComponent:function(e){var t=i(e);t&&(t.isMounted=!1,0===t.parentID&&u(e)),m.push(e)},purgeUnmountedComponents:function(){if(!_._preventPurging){for(var e=0;e<m.length;e++){v(m[e])}m.length=0}},isMounted:function(e){e=i(e);return!!e&&e.isMounted},getCurrentStackAddendum:function(e){var t,n="";e&&(t=b(e),r=e._owner,n+=y(t,e._source,r&&r.getName()));var r=h.current,r=r&&r._debugID;return n+=_.getStackAddendumByID(r)},getStackAddendumByID:function(e){for(var t,n,r,o,a="";e;)a+=(t=e,o=r=n=void 0,r=_.getDisplayName(t),o=_.getElement(t),(t=_.getOwnerID(t))&&(n=_.getDisplayName(t)),y(r,o&&o._source,n)),e=_.getParentID(e);return a},getChildIDs:function(e){e=i(e);return e?e.childIDs:[]},getDisplayName:function(e){e=_.getElement(e);return e?b(e):null},getElement:function(e){e=i(e);return e?e.element:null},getOwnerID:function(e){e=_.getElement(e);return e&&e._owner?e._owner._debugID:null},getParentID:function(e){e=i(e);return e?e.parentID:null},getSource:function(e){e=i(e),e=e?e.element:null;return null!=e?e._source:null},getText:function(e){e=_.getElement(e);return"string"==typeof e?e:"number"==typeof e?""+e:null},getUpdateCount:function(e){e=i(e);return e?e.updateCount:0},getRootIDs:c,getRegisteredIDs:a,pushNonStandardWarningStack:function(e,t){if("function"==typeof console.reactStack){var n=[],r=h.current,o=r&&r._debugID;try{for(e&&n.push({name:o?_.getDisplayName(o):null,fileName:t?t.fileName:null,lineNumber:t?t.lineNumber:null});o;){var a=_.getElement(o),i=_.getParentID(o),s=_.getOwnerID(o),s=s?_.getDisplayName(s):null,a=a&&a._source;n.push({name:s,fileName:a?a.fileName:null,lineNumber:a?a.lineNumber:null}),o=i}}catch(e){}console.reactStack(n)}},popNonStandardWarningStack:function(){"function"==typeof console.reactStackEnd&&console.reactStackEnd()}};C.exports=_}).call(this,E("_process"))},{"./ReactCurrentOwner":334,"./reactProdInvariant":351,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57}],334:[function(e,t,n){"use strict";t.exports={current:null}},{}],335:[function(n,r,e){(function(e){"use strict";var t=n("./ReactElement").createFactory,t={a:t("a"),abbr:t("abbr"),address:t("address"),area:t("area"),article:t("article"),aside:t("aside"),audio:t("audio"),b:t("b"),base:t("base"),bdi:t("bdi"),bdo:t("bdo"),big:t("big"),blockquote:t("blockquote"),body:t("body"),br:t("br"),button:t("button"),canvas:t("canvas"),caption:t("caption"),cite:t("cite"),code:t("code"),col:t("col"),colgroup:t("colgroup"),data:t("data"),datalist:t("datalist"),dd:t("dd"),del:t("del"),details:t("details"),dfn:t("dfn"),dialog:t("dialog"),div:t("div"),dl:t("dl"),dt:t("dt"),em:t("em"),embed:t("embed"),fieldset:t("fieldset"),figcaption:t("figcaption"),figure:t("figure"),footer:t("footer"),form:t("form"),h1:t("h1"),h2:t("h2"),h3:t("h3"),h4:t("h4"),h5:t("h5"),h6:t("h6"),head:t("head"),header:t("header"),hgroup:t("hgroup"),hr:t("hr"),html:t("html"),i:t("i"),iframe:t("iframe"),img:t("img"),input:t("input"),ins:t("ins"),kbd:t("kbd"),keygen:t("keygen"),label:t("label"),legend:t("legend"),li:t("li"),link:t("link"),main:t("main"),map:t("map"),mark:t("mark"),menu:t("menu"),menuitem:t("menuitem"),meta:t("meta"),meter:t("meter"),nav:t("nav"),noscript:t("noscript"),object:t("object"),ol:t("ol"),optgroup:t("optgroup"),option:t("option"),output:t("output"),p:t("p"),param:t("param"),picture:t("picture"),pre:t("pre"),progress:t("progress"),q:t("q"),rp:t("rp"),rt:t("rt"),ruby:t("ruby"),s:t("s"),samp:t("samp"),script:t("script"),section:t("section"),select:t("select"),small:t("small"),source:t("source"),span:t("span"),strong:t("strong"),style:t("style"),sub:t("sub"),summary:t("summary"),sup:t("sup"),table:t("table"),tbody:t("tbody"),td:t("td"),textarea:t("textarea"),tfoot:t("tfoot"),th:t("th"),thead:t("thead"),time:t("time"),title:t("title"),tr:t("tr"),track:t("track"),u:t("u"),ul:t("ul"),var:t("var"),video:t("video"),wbr:t("wbr"),circle:t("circle"),clipPath:t("clipPath"),defs:t("defs"),ellipse:t("ellipse"),g:t("g"),image:t("image"),line:t("line"),linearGradient:t("linearGradient"),mask:t("mask"),path:t("path"),pattern:t("pattern"),polygon:t("polygon"),polyline:t("polyline"),radialGradient:t("radialGradient"),rect:t("rect"),stop:t("stop"),svg:t("svg"),text:t("text"),tspan:t("tspan")};r.exports=t}).call(this,n("_process"))},{"./ReactElement":336,"./ReactElementValidator":338,_process:162}],336:[function(t,n,e){(function(e){"use strict";var f=t("object-assign"),d=t("./ReactCurrentOwner"),h=(t("fbjs/lib/warning"),t("./canDefineProperty"),Object.prototype.hasOwnProperty),s=t("./ReactElementSymbol"),g={key:!0,ref:!0,__self:!0,__source:!0};function m(e){return void 0!==e.ref}function v(e){return void 0!==e.key}function y(e,t,n,r,o,a,i){return a={$$typeof:s,type:e,key:t,ref:n,props:i,_owner:a}}y.createElement=function(e,t,n){var r,o={},a=null,i=null;if(null!=t)for(r in m(t)&&(i=t.ref),v(t)&&(a=""+t.key),void 0===t.__self||t.__self,void 0===t.__source||t.__source,t)h.call(t,r)&&!g.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1==s)o.children=n;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];0,o.children=u}if(e&&e.defaultProps){var l=e.defaultProps;for(r in l)void 0===o[r]&&(o[r]=l[r])}return y(e,a,i,0,0,d.current,o)},y.createFactory=function(e){var t=y.createElement.bind(null,e);return t.type=e,t},y.cloneAndReplaceKey=function(e,t){return y(e.type,t,e.ref,e._self,e._source,e._owner,e.props)},y.cloneElement=function(e,t,n){var r,o,a=f({},e.props),i=e.key,s=e.ref,u=(e._self,e._source,e._owner);if(null!=t)for(r in m(t)&&(s=t.ref,u=d.current),v(t)&&(i=""+t.key),e.type&&e.type.defaultProps&&(o=e.type.defaultProps),t)h.call(t,r)&&!g.hasOwnProperty(r)&&(void 0===t[r]&&void 0!==o?a[r]=o[r]:a[r]=t[r]);var c=arguments.length-2;if(1==c)a.children=n;else if(1<c){for(var l=Array(c),p=0;p<c;p++)l[p]=arguments[p+2];a.children=l}return y(e.type,i,s,0,0,u,a)},y.isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===s},n.exports=y}).call(this,t("_process"))},{"./ReactCurrentOwner":334,"./ReactElementSymbol":337,"./canDefineProperty":344,_process:162,"fbjs/lib/warning":57,"object-assign":161}],337:[function(e,t,n){arguments[4][252][0].apply(n,arguments)},{dup:252}],338:[function(t,i,e){(function(e){"use strict";var o=t("./ReactCurrentOwner"),s=t("./ReactComponentTreeHook"),u=t("./ReactElement"),r=t("./checkReactTypeSpec"),c=(t("./canDefineProperty"),t("./getIteratorFn"));t("fbjs/lib/warning"),t("./lowPriorityWarning");function l(){if(o.current){var e=o.current.getName();if(e)return" Check the render method of `"+e+"`."}return""}var a={};function p(e,t){var n,r;e._store&&!e._store.validated&&null==e.key&&(e._store.validated=!0,n=a.uniqueKey||(a.uniqueKey={}),r=t,(t=l())||(r="string"==typeof r?r:r.displayName||r.name)&&(t=" Check the top-level render call using <"+r+">."),n[t=t]||(n[t]=!0,e&&e._owner&&e._owner!==o.current&&e._owner.getName()))}function f(e,t){if("object"==typeof e)if(Array.isArray(e))for(var n=0;n<e.length;n++){var r=e[n];u.isValidElement(r)&&p(r,t)}else if(u.isValidElement(e))e._store&&(e._store.validated=!0);else if(e){var o=c(e);if(o&&o!==e.entries)for(var a,i=o.call(e);!(a=i.next()).done;)u.isValidElement(a.value)&&p(a.value,t)}}function d(e){var t,n=e.type;"function"==typeof n&&(t=n.displayName||n.name,n.propTypes&&r(n.propTypes,e.props,"prop",t,e,null),n.getDefaultProps)}var n={createElement:function(e,t,n){var r,o="string"==typeof e||"function"==typeof e;o||"function"!=typeof e&&"string"!=typeof e&&(a="",(void 0===e||"object"==typeof e&&null!==e&&0===Object.keys(e).length)&&(a+=" You likely forgot to export your component from the file it's defined in."),a+=(null==(r=t)||void 0===r.__source?"":" Check your code at "+(r=r.__source).fileName.replace(/^.*[\\\/]/,"")+":"+r.lineNumber+".")||l(),a+=s.getCurrentStackAddendum(),a=null!=t&&void 0!==t.__source?t.__source:null,s.pushNonStandardWarningStack(!0,a),s.popNonStandardWarningStack());var a=u.createElement.apply(this,arguments);if(null==a)return a;if(o)for(var i=2;i<arguments.length;i++)f(arguments[i],e);return d(a),a},createFactory:function(e){var t=n.createElement.bind(null,e);return t.type=e,t},cloneElement:function(e,t,n){for(var r=u.cloneElement.apply(this,arguments),o=2;o<arguments.length;o++)f(arguments[o],r.type);return d(r),r}};i.exports=n}).call(this,t("_process"))},{"./ReactComponentTreeHook":333,"./ReactCurrentOwner":334,"./ReactElement":336,"./canDefineProperty":344,"./checkReactTypeSpec":345,"./getIteratorFn":347,"./lowPriorityWarning":349,_process:162,"fbjs/lib/warning":57}],339:[function(n,r,e){(function(e){"use strict";n("fbjs/lib/warning");var t={isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){},enqueueReplaceState:function(e,t){},enqueueSetState:function(e,t){}};r.exports=t}).call(this,n("_process"))},{_process:162,"fbjs/lib/warning":57}],340:[function(e,n,t){(function(e){"use strict";var t={};n.exports=t}).call(this,e("_process"))},{_process:162}],341:[function(e,t,n){"use strict";var r=e("./ReactElement").isValidElement,e=e("prop-types/factory");t.exports=e(r)},{"./ReactElement":336,"prop-types/factory":164}],342:[function(e,t,n){arguments[4][271][0].apply(n,arguments)},{dup:271}],343:[function(e,t,n){arguments[4][279][0].apply(n,arguments)},{dup:279}],344:[function(e,n,t){(function(e){"use strict";var t=!1;n.exports=t}).call(this,e("_process"))},{_process:162}],345:[function(t,n,e){(function(e){"use strict";var u=t("./reactProdInvariant"),c=t("./ReactPropTypeLocationNames"),l=t("./ReactPropTypesSecret");t("fbjs/lib/invariant"),t("fbjs/lib/warning");void 0!==e&&e.env;var p={};n.exports=function(e,t,n,r,o,a){for(var i in e)if(e.hasOwnProperty(i)){var s;try{"function"!=typeof e[i]&&u("84",r||"React class",c[n],i),s=e[i](t,i,r,n,null,l)}catch(e){s=e}s instanceof Error&&!(s.message in p)&&(p[s.message]=!0,0)}}}).call(this,t("_process"))},{"./ReactComponentTreeHook":333,"./ReactPropTypeLocationNames":340,"./ReactPropTypesSecret":342,"./reactProdInvariant":351,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57}],346:[function(e,t,n){"use strict";var r=e("./ReactBaseClasses").Component,o=e("./ReactElement").isValidElement,a=e("./ReactNoopUpdateQueue"),e=e("create-react-class/factory");t.exports=e(r,o,a)},{"./ReactBaseClasses":331,"./ReactElement":336,"./ReactNoopUpdateQueue":339,"create-react-class/factory":12}],347:[function(e,t,n){arguments[4][312][0].apply(n,arguments)},{dup:312}],348:[function(e,t,n){"use strict";var r=1;t.exports=function(){return r++}},{}],349:[function(e,n,t){(function(e){"use strict";var t=function(){};n.exports=t}).call(this,e("_process"))},{_process:162}],350:[function(r,o,e){(function(e){"use strict";var t=r("./reactProdInvariant"),n=r("./ReactElement");r("fbjs/lib/invariant");o.exports=function(e){return n.isValidElement(e)||t("143"),e}}).call(this,r("_process"))},{"./ReactElement":336,"./reactProdInvariant":351,_process:162,"fbjs/lib/invariant":50}],351:[function(e,t,n){arguments[4][321][0].apply(n,arguments)},{dup:321}],352:[function(t,n,e){(function(e){"use strict";var h=t("./reactProdInvariant"),g=(t("./ReactCurrentOwner"),t("./ReactElementSymbol")),m=t("./getIteratorFn"),v=(t("fbjs/lib/invariant"),t("./KeyEscapeUtils")),y=(t("fbjs/lib/warning"),"."),b=":";function _(e,t){return e&&"object"==typeof e&&null!=e.key?v.escape(e.key):t.toString(36)}n.exports=function(e,t,n){return null==e?0:function e(t,n,r,o){var a,i=typeof t;if("undefined"!=i&&"boolean"!=i||(t=null),null===t||"string"==i||"number"==i||"object"==i&&t.$$typeof===g)return r(o,t,""===n?y+_(t,0):n),1;var s=0,u=""===n?y:n+b;if(Array.isArray(t))for(var c=0;c<t.length;c++)s+=e(a=t[c],u+_(a,c),r,o);else if(n=m(t)){var l,p=n.call(t);if(n!==t.entries)for(var f=0;!(l=p.next()).done;)s+=e(a=l.value,u+_(a,f++),r,o);else for(;!(l=p.next()).done;){var d=l.value;d&&(s+=e(a=d[1],u+v.escape(d[0])+b+_(a,0),r,o))}}else"object"==i&&(n="",i=String(t),h("31","[object Object]"===i?"object with keys {"+Object.keys(t).join(", ")+"}":i,n));return s}(e,"",t,n)}}).call(this,t("_process"))},{"./KeyEscapeUtils":328,"./ReactCurrentOwner":334,"./ReactElementSymbol":337,"./getIteratorFn":347,"./reactProdInvariant":351,_process:162,"fbjs/lib/invariant":50,"fbjs/lib/warning":57}],353:[function(e,t,n){"use strict";t.exports=e("./lib/React")},{"./lib/React":330}],354:[function(e,t,n){"use strict";n.__esModule=!0,n.ActionTypes=void 0,n.default=function e(t,n,r){"function"==typeof n&&void 0===r&&(r=n,n=void 0);if(void 0!==r){if("function"!=typeof r)throw new Error("Expected the enhancer to be a function.");return r(e)(t,n)}if("function"!=typeof t)throw new Error("Expected the reducer to be a function.");var o=t;var a=n;var i=[];var s=i;var u=!1;function c(){s===i&&(s=i.slice())}function l(){return a}function p(t){if("function"!=typeof t)throw new Error("Expected listener to be a function.");var n=!0;return c(),s.push(t),function(){var e;n&&(n=!1,c(),e=s.indexOf(t),s.splice(e,1))}}function f(e){if(!(0,g.default)(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(u)throw new Error("Reducers may not dispatch actions.");try{u=!0,a=o(a,e)}finally{u=!1}for(var t=i=s,n=0;n<t.length;n++){var r=t[n];r()}return e}function d(e){if("function"!=typeof e)throw new Error("Expected the nextReducer to be a function.");o=e,f({type:v.INIT})}function h(){var e,r=p;return(e={subscribe:function(e){if("object"!=typeof e)throw new TypeError("Expected the observer to be an object.");function t(){e.next&&e.next(a)}t();var n=r(t);return{unsubscribe:n}}})[m.default]=function(){return this},e}f({type:v.INIT});return n={dispatch:f,subscribe:p,getState:l,replaceReducer:d},n[m.default]=h,n};var g=r(e("lodash/isPlainObject")),m=r(e("symbol-observable"));function r(e){return e&&e.__esModule?e:{default:e}}var v=n.ActionTypes={INIT:"@@redux/INIT"}},{"lodash/isPlainObject":152,"symbol-observable":355}],355:[function(o,a,i){(function(e){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var t,n=o("./ponyfill.js"),r=(t=n)&&t.__esModule?t:{default:t};e="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==e?e:void 0!==a?a:Function("return this")();e=(0,r.default)(e);i.default=e}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./ponyfill.js":356}],356:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.default=function(e){var t,e=e.Symbol;"function"==typeof e?e.observable?t=e.observable:(t=e("observable"),e.observable=t):t="@@observable";return t}},{}]},{},[9]);
 
 
 
 
 
 
 
 
 
 
js/jpibfi.client.js CHANGED
@@ -1 +1 @@
1
- !function(){function t(e,i,n){function r(s,a){if(!i[s]){if(!e[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(o)return o(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var l=i[s]={exports:{}};e[s][0].call(l.exports,function(t){var i=e[s][1][t];return r(i||t)},l,l.exports,t,e,i,n)}return i[s].exports}for(var o="function"==typeof require&&require,s=0;s<n.length;s++)r(n[s]);return r}return t}()({1:[function(t,e,i){"use strict";var n=function(){return n=Object.assign||function(t){for(var e,i=1,n=arguments.length;i<n;i++){e=arguments[i];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])}return t},n.apply(this,arguments)};i.__esModule=!0;var r=t("./css-helper"),o=55/64,s=51/73,a=41/64,u=36/54,c=.7,l=.7,p=function(t,e){var i=t*u;switch(e){case"pushpin":return i*l;case"thumb-tack":return i*c;default:return i}},f=function(t,e){switch(e){case"circle":return{"margin-top":-.5*t+"px","margin-left":-.5*t*o+"px"};case"plain":return{"margin-top":-.46875*t+"px","margin-left":-.5*t*s+"px"};case"thumb-tack":return{"margin-top":-29.5/64*t+"px","margin-left":-.5*t*a+"px"};case"pushpin":case"pinterest2":return{"margin-top":-.5*t+"px","margin-left":-.5*t+"px"}}},h=function(t,e,i){var o=p(t.height,e),s={height:t.height+"px !important",width:t.width+"px !important"},a=n({},s,{"font-size":o+"px"}),u=f(o,e);r.addMediaQueryRule("a.pinit-button",i,s),r.addMediaQueryRule("a.pinit-button span",i,a),r.addMediaQueryRule("a.pinit-button span:before",i,u)};i.createCssRulesForDefaultButton=function(t,e){h(t,e,0)};var d=function(t,e){var i={height:t.height+"px !important",width:t.width+"px !important"},o=n({},i,{"background-size":t.width+"px "+t.height+"px !important"});r.addMediaQueryRule("a.pinit-button",e,i),r.addMediaQueryRule("a.pinit-button span",e,o)};i.createCssRulesForCustomButton=function(t){d(t,0)}},{"./css-helper":2}],2:[function(t,e,i){"use strict";i.__esModule=!0;var n,r;!function(t){t[t.xsm=0]="xsm",t[t.sm=576]="sm",t[t.md=768]="md",t[t.lg=992]="lg",t[t.xlg=1200]="xlg"}(r=i.Breakpoints||(i.Breakpoints={})),i.BreakpointsList=Object.keys(r).filter(function(t){return"number"==typeof r[t]}).map(function(t){return Number(r[t])}),i.getCurrentBreakpoint=function(){for(var t=window.innerWidth,e=i.BreakpointsList.length-1;e>=0;e--)if(t>=i.BreakpointsList[e])return i.BreakpointsList[e];return r.xsm};var o=(n={},n[r.xsm]={width:50,height:50},n[r.sm]={width:60,height:60},n[r.md]={width:80,height:80},n[r.lg]={width:110,height:110},n[r.xlg]={width:1e3,height:1e3},n),s=function(t,e){var i="string"==typeof e?e:Object.keys(e).map(function(t){return t+":"+("content"===t?"'"+e[t]+"'":e[t])}).join(";");return t+" {"+i+"}"},a=function(t,e){return"@media (min-width: "+t+"px){ "+e+" }"},u=function(t){var e=document.createElement("style"),i=document.head.appendChild(e).sheet;i.insertRule(t,i.cssRules.length)};i.addCssRule=function(t,e){u(s(t,e))},i.addMediaQueryRule=function(t,e,i){var n=s(t,i),r=e>0?a(e,n):n;u(r)};var c=function(t,e){var i=Math.min(1,e.width/t.width),n=Math.min(1,e.height/t.height);return Math.min(i,n)};i.calculateSizeForBreakpoint=function(t,e){var i=o[e],n=c(t,i);return{height:t.height*n,width:t.width*n}}},{}],3:[function(t,e,i){"use strict";i.__esModule=!0;var n=function(){function t(t){var e=(void 0===t?{}:t).siteTitle,i=void 0===e?"":e;this.desc_funcs={img_title:function(t){return t.attr("title")||t.attr("data-jpibfi-title")},img_alt:function(t){return t.attr("alt")||t.attr("data-jpibfi-alt")},post_title:function(t){return t.attr("data-jpibfi-post-title")},post_excerpt:function(t){return t.attr("data-jpibfi-post-excerpt")},img_description:function(t){return t.attr("data-jpibfi-description")},img_caption:function(t){return t.attr("data-jpibfi-caption")},site_title:function(){return i},data_pin_description:function(t){return t.attr("data-pin-description")}}}return t.prototype.getDescription=function(t,e){for(var i="",n=0;n<e.length&&!i;n++)i=this.desc_funcs[e[n]](t);return i||""},t}();i["default"]=n},{}],4:[function(t,e,i){"use strict";i.__esModule=!0;var n;!function(t){t[t.Width=0]="Width",t[t.PixelDensity=1]="PixelDensity"}(n||(n={}));var r=/(.+)\s+(\d{1,4})w\s*/i,o=/(.*)\s+(\d{1,3}(\.\d{0,2})?)x\s*/i,s={Url:1,WidthDescriptor:2},a=function(t){if(0!==t.length)return t.some(function(t){return null!==r.exec(t)})?n.Width:t.some(function(t){return null!==o.exec(t)})?n.PixelDensity:void 0},u=function(t,e){if(e!==n.PixelDensity){var i=t.map(function(t){return r.exec(t)}).filter(function(t){return!!t}).map(function(t){return{url:t[s.Url].trim(),width:Number(t[s.WidthDescriptor])}});if(0!==i.length)return i.reduce(function(t,e){return t.width>e.width?t:e},i[0])}};i.getWidestImageUrlFromSrcset=function(t){var e=t.prop?t.prop("srcset"):t.attr("srcset");if(e&&0!==e.length)try{var i=e.split(","),n=a(i),r=u(i,n);return void 0!==r?r.url:void 0}catch(o){return void(console&&console.error&&console.error(o))}}},{}],5:[function(t,e,i){"use strict";i.__esModule=!0;var n=function(){function t(t){var e=this;this.flags={},this.pluginName=t;var i="undefined"!=typeof console&&"undefined"!=typeof console.log,n="undefined"!=typeof JSON&&"function"==typeof JSON.stringify;i?(this.logString=function(t){e.log(t)},this.logObject=n?function(t){e.log(JSON.stringify(t,null,4))}:function(t){return e.simplelogObject(t)}):(this.logString=function(){},this.logObject=function(){});var r=this.getQueryParams(document.location.search);Object.keys(r).forEach(function(i){var n=i.replace(t+"_","");e.setFlag(n,r[i])})}return t.prototype.getFlag=function(t){return void 0!==this.flags[t]&&this.flags[t]},t.prototype.getQueryParams=function(t){t=t.split("+").join(" ");for(var e,i={},n=/[?&]?([^=]+)=([^&]*)/g;e=n.exec(t);)i[decodeURIComponent(e[1])]=decodeURIComponent(e[2]);return i},t.prototype.log=function(t){this.getFlag("print")&&console.log(this.pluginName+" debug: "+t)},t.prototype.setFlag=function(t,e){void 0===e&&(e=!0),this.flags[t]=e},t.prototype.simplelogObject=function(t){if(this.getFlag("print")){var e=Object.keys(t).filter(function(e){return t.hasOwnPrototype(e)}).map(function(e){return e+": "+t[e]+"\n"}).join();this.log(e)}},t}();i["default"]=n},{}],6:[function(t,e,i){"use strict";i.__esModule=!0;var n=t("./link-generator"),r=function(){function t(t,e){this.$=t,this.settings=e,this.linkGenerator=new n["default"](e),this.$element=this.$("<a />",{target:"_blank","class":"pinit-button "+e.pin_image});var i="default"===e.pin_image?"jpibfi-icon-"+e.pin_image_icon:"";this.$element.html('<span class="'+i+'"></span>'),"default"===e.pin_image&&this.$element.addClass("jpibfi-button-"+e.pin_image_button)}return t.prototype.createButton=function(t){var e=this.linkGenerator.generate(t);if(e)return this.$element.clone(!1).attr("href",e).click(function(t){t.preventDefault(),t.stopPropagation(),"#"!==t.currentTarget.href.slice(-1)&&window.open(t.currentTarget.href,"mw"+t.timeStamp,"left=20,top=20,width=600,height=500,toolbar=1,resizable=0")})},t.prototype.getSize=function(){var t={height:this.settings.pinImageHeight,width:this.settings.pinImageWidth};return t},t}();i["default"]=r},{"./link-generator":9}],7:[function(t,e,i){"use strict";i.__esModule=!0;var n=function(){function t(t){var e=this;this.settings=t,this.disabledClasses=this.createClassList(t.disabled_classes),this.enabledClasses=this.createClassList(t.enabled_classes),this.updateSizeConstraints(),window.addEventListener("resize",function(){return e.updateSizeConstraints()},!1)}return t.prototype.createClassList=function(t){return void 0===t&&(t=""),t.split(";").filter(function(t){return!!t})},t.prototype.imageEligible=function(t){return this.imageSizeIsOk(t)&&(0===this.enabledClasses.length||this.enabledClasses.some(function(e){return t.hasClass(e)||t.parents("."+e).length>0}))&&!this.disabledClasses.some(function(e){return t.hasClass(e)||t.parents("."+e).length>0})},t.prototype.imageSizeIsOk=function(t){var e=t[0].clientWidth,i=t[0].clientHeight;return e>=this.minWidth&&i>=this.minHeight},t.prototype.updateSizeConstraints=function(){this.minWidth=window.outerWidth<768?this.settings.min_image_width_small:this.settings.min_image_width,this.minHeight=window.outerWidth<768?this.settings.min_image_height_small:this.settings.min_image_height},t}();i["default"]=n},{}],8:[function(t,e,i){"use strict";i.__esModule=!0;var n=t("./show-on-hover-strategy"),r=function(){function t(t,e,i){this.settings=e,this.$=t,this.logger=i}return t.prototype.init=function(){this.showStrategy=this.getStrategy(),this.showStrategy.start()},t.prototype.getStrategy=function(){var t=null;return new(t=n["default"])(this.$,this.settings,this.logger)},t}();i["default"]=r},{"./show-on-hover-strategy":11}],9:[function(t,e,i){"use strict";i.__esModule=!0;var n=t("../common/description-helper");t("../common/srcset-helper");i.getExtension=function(t){void 0===t&&(t="");var e=t.replace(/^https?\:\/\/[^\/?#]+(?:[\/?#]|$)/i,""),i=e.split(".");if(1===i.length)return"";var n=i[i.length-1],r=n.replace(/\?.*/i,"").toLowerCase();return r};var r=function(t){return["","html","php"].indexOf(t)!==-1},o=function(t){var e=window.location&&window.location.hostname||"",i=e.replace("www.","");return t.indexOf(i)>=0},s=function(){function t(t){this.descriptionHelper=new n["default"]({siteTitle:t.siteTitle}),this.description_option=t.description_option,this.supportSrcset=t.support_srcset,this.pinLinkedUrl=t.pin_linked_url}return t.prototype.getDescription=function(t){return this.descriptionHelper.getDescription(t,this.description_option)},t.prototype.getImage=function(t,e){var n=t.attr("data-pin-media")||t.attr("data-jpibfi-src")||t.prop("src");if(n){if(!e)return n;var r=i.getExtension(n);return e.extension===r?e.href:n}},t.prototype.getUrl=function(t,e){return t.attr("data-pin-url")?t.attr("data-pin-url"):this.pinLinkedUrl&&e&&o(e.href)&&r(e.extension)?e.href:t.attr("data-jpibfi-post-url")||window.location.href},t.prototype.generate=function(t){var e=t.closest("a[href]"),n=void 0;1===e.length&&(n={extension:i.getExtension(e.prop("href")),href:e.prop("href")});var r=this.getImage(t,n);if(void 0!==r){var o=encodeURIComponent(r),s=encodeURIComponent(this.getDescription(t)),a=encodeURIComponent(this.getUrl(t,n));return"https://pinterest.com/pin/create/bookmarklet/?is_video=false&url="+a+"&media="+o+"&description="+s}},t}();i["default"]=s},{"../common/description-helper":3,"../common/srcset-helper":4}],10:[function(t,e,i){"use strict";i.__esModule=!0;var n=function(t,e,i,n){return t.top+n.top},r=function(t,e,i,n){return t.left+n.left},o=function(t,e,i,n){return e.top-i.height-n.bottom},s=function(t,e,i,n){return e.left-n.right-i.width},a=function(t,e,i){return t.top+((e.top-t.top)/2-i.height/2)},u=function(t,e,i){return t.left+((e.left-t.left)/2-i.width/2)},c=function(){function t(t,e){this.topF=t,this.leftF=e}return t.prototype.calculate=function(t,e,i,n){return{top:this.topF(t,e,i,n),left:this.leftF(t,e,i,n)}},t}(),l=function(t){switch(t){case"top-left":return new c(n,r);case"top-right":return new c(n,s);case"bottom-left":return new c(o,r);case"bottom-right":return new c(o,s);default:return new c(a,u)}},p=function(){function t(t,e){this.margins=e,this.positionCalculator=l(t)}return t.prototype.calculatePosition=function(t,e,i){return this.positionCalculator.calculate(t,e,i,this.margins)},t}();i["default"]=p},{}],11:[function(t,e,i){"use strict";var n=function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();i.__esModule=!0;var r=t("./show-strategy"),o=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(){this.addContainers()},e.prototype.start=function(){var t=this;this.init();var e="data-jpibfi-timeout",i=0,n=function(e){return t.$("a.pinit-button["+t.indexerAttr+'="'+e+'"]')},r=this;r.$(document).delegate(this.settings.image_selector,"mouseenter",function(){var t=r.$(this);if(r.imageFilter.imageEligible(t)){var o=t.attr(r.indexerAttr);o||(o=i++,t.attr(r.indexerAttr,o));var s=n(o);if(0===s.length){var a=r.buttonGenerator.createButton(t);if(!a)return;t.addClass("pinit-hover");var u=r.buttonGenerator.getSize(),c=t.offset(),l={top:c.top+t[0].clientHeight,left:c.left+t[0].clientWidth},p=r.positioner.calculatePosition(c,l,u);t.after(a),a.attr(r.indexerAttr,o).css("visibility","hidden").show().offset(p).css("visibility","visible").hover(function(){return clearTimeout(a.attr(e))},function(){return a.attr(e,setTimeout(function(){t.removeClass("pinit-hover"),a.remove()},100))})}else clearTimeout(s.attr(e))}}),r.$(document).delegate(this.settings.image_selector,"mouseleave",function(){if(!r.logger.getFlag("prevent_hide")){var t=r.$(this),i=t.attr(r.indexerAttr);if(i){var o=n(i);o.attr(e,setTimeout(function(){t.removeClass("pinit-hover"),o.remove()},100))}}})},e}(r["default"]);i["default"]=o},{"./show-strategy":12}],12:[function(t,e,i){"use strict";i.__esModule=!0;var n=t("./image-filter"),r=t("./button-generator"),o=t("./positioner"),s=t("../common/css-generator"),a=function(){function t(t,e,i){this.$=t,this.settings=e,this.logger=i,this.imageFilter=new n["default"](e),this.buttonGenerator=new r["default"](t,e);var a={left:e.button_margin_left,top:e.button_margin_top,right:e.button_margin_right,bottom:e.button_margin_bottom};this.positioner=new o["default"](e.button_position,a),this.indexerAttr="data-jpibfi-indexer";var u=this.settings,c=u.pin_image,l=u.pin_image_icon,p=u.pinImageHeight,f=u.pinImageWidth,h=(u.scale_pin_image,{width:f,height:p});switch(c){case"custom":case"old_default":var d=s.createCssRulesForCustomButton;d(h);break;case"default":var d=s.createCssRulesForDefaultButton;d(h,l)}}return t.prototype.addContainers=function(){var t=this.$(".jpibfi"),e=t.closest("div, article");e=e.length?e:t.parent(),e.addClass("jpibfi_container")},t}();i["default"]=a},{"../common/css-generator":1,"./button-generator":6,"./image-filter":7,"./positioner":10}],13:[function(t,e,i){"use strict";i.__esModule=!0;var n=t("./settings"),r=t("./debugger"),o=t("./hover");!function(t){var e=function(){var e=window.jpibfi_options,i=new n["default"](t.extend({pageUrl:document.URL,pageTitle:document.title,pageDescription:t('meta[name="description"]').attr("content")||""},e.hover)),s=new r["default"]("jpibfi");window.jpibfi_debugger=s;var a=new o["default"](t,i,s);a.init()};t(document).ready(e)}(window.jQuery)},{"./debugger":5,"./hover":8,"./settings":14}],14:[function(t,e,i){"use strict";i.__esModule=!0;var n=function(){function t(t){var e=this;Object.keys(t).forEach(function(i){e[i]=t[i]}),this.isTouchDevice="ontouchstart"in window||{}.hasOwnProperty.call(navigator,"maxTouchPoints")}return t}();i["default"]=n},{}]},{},[13]);
1
+ !function n(r,o,s){function a(e,t){if(!o[e]){if(!r[e]){var i="function"==typeof require&&require;if(!t&&i)return i(e,!0);if(u)return u(e,!0);throw(i=new Error("Cannot find module '"+e+"'")).code="MODULE_NOT_FOUND",i}i=o[e]={exports:{}},r[e][0].call(i.exports,function(t){return a(r[e][1][t]||t)},i,i.exports,n,r,o,s)}return o[e].exports}for(var u="function"==typeof require&&require,t=0;t<s.length;t++)a(s[t]);return a}({1:[function(t,e,i){"use strict";var o=function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i<n;i++)for(var r in e=arguments[i])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};i.__esModule=!0,i.createMediaQueriesForCustomButton=i.createMediaQueriesForDefaultButton=i.createCssRulesForCustomButton=i.createCssRulesForDefaultButton=void 0;var s=t("./css-helper");i.createCssRulesForDefaultButton=function(t,e){var i,n,r;n=e,r=0,e=function(t,e){t*=36/54;switch(e){case"pushpin":case"thumb-tack":return.7*t;default:return t}}((i=t).height,n),t={height:i.height+"px !important",width:i.width+"px !important"},i=o(o({},t),{"font-size":e+"px"}),n=function(t,e){switch(e){case"circle":return{"margin-top":-.5*t+"px","margin-left":-.5*t*(55/64)+"px"};case"plain":return{"margin-top":-.46875*t+"px","margin-left":-.5*t*(51/73)+"px"};case"thumb-tack":return{"margin-top":-29.5/64*t+"px","margin-left":-.5*t*(41/64)+"px"};case"pushpin":case"pinterest2":return{"margin-top":-.5*t+"px","margin-left":-.5*t+"px"}}}(e,n),s.addMediaQueryRule("a.pinit-button",r,t),s.addMediaQueryRule("a.pinit-button span",r,i),s.addMediaQueryRule("a.pinit-button span:before",r,n)};i.createCssRulesForCustomButton=function(t){var e,i;i=0,t={height:(e=t).height+"px !important",width:e.width+"px !important"},e=o(o({},t),{"background-size":e.width+"px "+e.height+"px !important"}),s.addMediaQueryRule("a.pinit-button",i,t),s.addMediaQueryRule("a.pinit-button span",i,e)}},{"./css-helper":2}],2:[function(t,e,i){"use strict";var n,r;i.__esModule=!0,i.calculateSizeForBreakpoint=i.addMediaQueryRule=i.addCssRule=i.getCurrentBreakpoint=i.BreakpointsList=i.Breakpoints=void 0,(r=n=i.Breakpoints||(i.Breakpoints={}))[r.xsm=0]="xsm",r[r.sm=576]="sm",r[r.md=768]="md",r[r.lg=992]="lg",r[r.xlg=1200]="xlg",i.BreakpointsList=Object.keys(n).filter(function(t){return"number"==typeof n[t]}).map(function(t){return Number(n[t])}),i.getCurrentBreakpoint=function(){for(var t=window.innerWidth,e=i.BreakpointsList.length-1;0<=e;e--)if(t>=i.BreakpointsList[e])return i.BreakpointsList[e];return n.xsm};function o(t,e){return t+" {"+("string"==typeof e?e:Object.keys(e).map(function(t){return t+":"+("content"===t?"'"+e[t]+"'":e[t])}).join(";"))+"}"}function s(t){var e=document.createElement("style");(e=document.head.appendChild(e).sheet).insertRule(t,e.cssRules.length)}var a=((r={})[n.xsm]={width:50,height:50},r[n.sm]={width:60,height:60},r[n.md]={width:80,height:80},r[n.lg]={width:110,height:110},r[n.xlg]={width:1e3,height:1e3},r);i.addCssRule=function(t,e){s(o(t,e))},i.addMediaQueryRule=function(t,e,i){i=o(t,i),i=0<e?"@media (min-width: "+e+"px){ "+i+" }":i;s(i)};i.calculateSizeForBreakpoint=function(t,e){var i,n=a[e],i=(i=t,e=n,n=Math.min(1,e.width/i.width),i=Math.min(1,e.height/i.height),Math.min(n,i));return{height:t.height*i,width:t.width*i}}},{}],3:[function(t,e,i){"use strict";i.__esModule=!0;var n=(r.prototype.getDescription=function(t,e){for(var i="",n=0;n<e.length&&!i;n++)i=this.desc_funcs[e[n]](t);return i||""},r);function r(t){var t=(void 0===t?{}:t).siteTitle,e=void 0===t?"":t;this.desc_funcs={img_title:function(t){return t.attr("title")||t.attr("data-jpibfi-title")},img_alt:function(t){return t.attr("alt")||t.attr("data-jpibfi-alt")},post_title:function(t){return t.attr("data-jpibfi-post-title")},post_excerpt:function(t){return t.attr("data-jpibfi-post-excerpt")},img_description:function(t){return t.attr("data-jpibfi-description")},img_caption:function(t){return t.attr("data-jpibfi-caption")},site_title:function(){return e},data_pin_description:function(t){return t.attr("data-pin-description")}}}i.default=n},{}],4:[function(t,e,i){"use strict";var n,r;i.__esModule=!0,i.getWidestImageUrlFromSrcset=void 0,(r=n=n||{})[r.Width=0]="Width",r[r.PixelDensity=1]="PixelDensity";var o=/(.+)\s+(\d{1,4})w\s*/i,s=/(.*)\s+(\d{1,3}(\.\d{0,2})?)x\s*/i,a=1,u=2;i.getWidestImageUrlFromSrcset=function(t){var e=t.prop?t.prop("srcset"):t.attr("srcset");if(e&&0!==e.length)try{var i=e.split(","),i=function(t,e){if(e!==n.PixelDensity){t=t.map(function(t){return o.exec(t)}).filter(function(t){return!!t}).map(function(t){return{url:t[a].trim(),width:Number(t[u])}});if(0!==t.length)return t.reduce(function(t,e){return t.width>e.width?t:e},t[0])}}(i,function(t){if(0!==t.length)return t.some(function(t){return null!==o.exec(t)})?n.Width:t.some(function(t){return null!==s.exec(t)})?n.PixelDensity:void 0}(i));return void 0!==i?i.url:void 0}catch(t){return void(console&&console.error&&console.error(t))}}},{}],5:[function(t,e,i){"use strict";i.__esModule=!0;var n=(r.prototype.getFlag=function(t){return void 0!==this.flags[t]&&this.flags[t]},r.prototype.getQueryParams=function(t){t=t.split("+").join(" ");for(var e,i={},n=/[?&]?([^=]+)=([^&]*)/g;e=n.exec(t);)i[decodeURIComponent(e[1])]=decodeURIComponent(e[2]);return i},r.prototype.log=function(t){this.getFlag("print")&&console.log(this.pluginName+" debug: "+t)},r.prototype.setFlag=function(t,e){void 0===e&&(e=!0),this.flags[t]=e},r.prototype.simplelogObject=function(e){var t;this.getFlag("print")&&(t=Object.keys(e).filter(function(t){return e.hasOwnPrototype(t)}).map(function(t){return t+": "+e[t]+"\n"}).join(),this.log(t))},r);function r(i){var n=this;this.flags={},this.pluginName=i;var t="undefined"!=typeof console&&void 0!==console.log,e="undefined"!=typeof JSON&&"function"==typeof JSON.stringify;t?(this.logString=function(t){n.log(t)},this.logObject=e?function(t){n.log(JSON.stringify(t,null,4))}:function(t){return n.simplelogObject(t)}):(this.logString=function(){},this.logObject=function(){});var r=this.getQueryParams(document.location.search);Object.keys(r).forEach(function(t){var e=t.replace(i+"_","");n.setFlag(e,r[t])})}i.default=n},{}],6:[function(t,e,i){"use strict";i.__esModule=!0;var n=t("./link-generator"),t=(r.prototype.createButton=function(t){t=this.linkGenerator.generate(t);if(t)return this.$element.clone(!1).attr("href",t).click(function(t){t.preventDefault(),t.stopPropagation(),"#"!==t.currentTarget.href.slice(-1)&&window.open(t.currentTarget.href,"mw"+t.timeStamp,"left=20,top=20,width=600,height=500,toolbar=1,resizable=0")})},r.prototype.getSize=function(){return{height:this.settings.pinImageHeight,width:this.settings.pinImageWidth}},r);function r(t,e){this.$=t,this.settings=e,this.linkGenerator=new n.default(e),this.$element=this.$("<a />",{target:"_blank",class:"pinit-button "+e.pin_image});t="default"===e.pin_image?"jpibfi-icon-"+e.pin_image_icon:"";this.$element.html('<span class="'+t+'"></span>'),"default"===e.pin_image&&this.$element.addClass("jpibfi-button-"+e.pin_image_button)}i.default=t},{"./link-generator":9}],7:[function(t,e,i){"use strict";i.__esModule=!0;var n=(r.prototype.createClassList=function(t){return void 0===t&&(t=""),t.split(";").filter(function(t){return!!t})},r.prototype.imageEligible=function(e){return this.imageSizeIsOk(e)&&(0===this.enabledClasses.length||this.enabledClasses.some(function(t){return e.hasClass(t)||0<e.parents("."+t).length}))&&!this.disabledClasses.some(function(t){return e.hasClass(t)||0<e.parents("."+t).length})},r.prototype.imageSizeIsOk=function(t){var e=t[0].clientWidth,t=t[0].clientHeight;return e>=this.minWidth&&t>=this.minHeight},r.prototype.updateSizeConstraints=function(){this.minWidth=window.outerWidth<768?this.settings.min_image_width_small:this.settings.min_image_width,this.minHeight=window.outerWidth<768?this.settings.min_image_height_small:this.settings.min_image_height},r);function r(t){var e=this;this.settings=t,this.disabledClasses=this.createClassList(t.disabled_classes),this.enabledClasses=this.createClassList(t.enabled_classes),this.updateSizeConstraints(),window.addEventListener("resize",function(){return e.updateSizeConstraints()},!1)}i.default=n},{}],8:[function(t,e,i){"use strict";i.__esModule=!0;var n=t("./show-on-hover-strategy"),t=(r.prototype.init=function(){this.showStrategy=this.getStrategy(),this.showStrategy.start()},r.prototype.getStrategy=function(){return new n.default(this.$,this.settings,this.logger)},r);function r(t,e,i){this.settings=e,this.$=t,this.logger=i}i.default=t},{"./show-on-hover-strategy":11}],9:[function(t,e,r){"use strict";r.__esModule=!0,r.getExtension=void 0;var i=t("../common/description-helper");t("../common/srcset-helper");r.getExtension=function(t){void 0===t&&(t="");t=t.replace(/^https?\:\/\/[^\/?#]+(?:[\/?#]|$)/i,"").split(".");return 1===t.length?"":t[t.length-1].replace(/\?.*/i,"").toLowerCase()};n.prototype.getDescription=function(t){return this.descriptionHelper.getDescription(t,this.description_option)},n.prototype.getImage=function(t,e){var i=t.attr("data-pin-media")||t.attr("data-jpibfi-src")||t.prop("src");if(i){if(!e)return i;t=r.getExtension(i);return e.extension===t?e.href:i}},n.prototype.getUrl=function(t,e){return t.attr("data-pin-url")?t.attr("data-pin-url"):this.pinLinkedUrl&&e&&(i=e.href,n=(window.location&&window.location.hostname||"").replace("www.",""),0<=i.indexOf(n))&&(n=e.extension,-1!==["","html","php"].indexOf(n))?e.href:t.attr("data-jpibfi-post-url")||window.location.href;var i,n},n.prototype.generate=function(t){var e=t.closest("a[href]"),i=void 0;1===e.length&&(i={extension:r.getExtension(e.prop("href")),href:e.prop("href")});var n=this.getImage(t,i);if(void 0!==n){e=encodeURIComponent(n),n=encodeURIComponent(this.getDescription(t));return"https://pinterest.com/pin/create/bookmarklet/?is_video=false&url="+encodeURIComponent(this.getUrl(t,i))+"&media="+e+"&description="+n}},t=n;function n(t){this.descriptionHelper=new i.default({siteTitle:t.siteTitle}),this.description_option=t.description_option,this.supportSrcset=t.support_srcset,this.pinLinkedUrl=t.pin_linked_url}r.default=t},{"../common/description-helper":3,"../common/srcset-helper":4}],10:[function(t,e,i){"use strict";i.__esModule=!0;function n(t,e,i,n){return t.top+n.top}function r(t,e,i,n){return t.left+n.left}function o(t,e,i,n){return e.top-i.height-n.bottom}function s(t,e,i,n){return e.left-n.right-i.width}function a(t,e,i){return t.top+((e.top-t.top)/2-i.height/2)}function u(t,e,i){return t.left+((e.left-t.left)/2-i.width/2)}var c=(l.prototype.calculate=function(t,e,i,n){return{top:this.topF(t,e,i,n),left:this.leftF(t,e,i,n)}},l);function l(t,e){this.topF=t,this.leftF=e}var p=(h.prototype.calculatePosition=function(t,e,i){return this.positionCalculator.calculate(t,e,i,this.margins)},h);function h(t,e){this.margins=e,this.positionCalculator=function(t){switch(t){case"top-left":return new c(n,r);case"top-right":return new c(n,s);case"bottom-left":return new c(o,r);case"bottom-right":return new c(o,s);default:return new c(a,u)}}(t)}i.default=p},{}],11:[function(t,e,i){"use strict";var n,r=(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)});i.__esModule=!0;var o,t=t("./show-strategy"),r=(o=t.default,r(s,o),s.prototype.init=function(){this.addContainers()},s.prototype.start=function(){var e=this;this.init();function a(t){return e.$("a.pinit-button["+e.indexerAttr+'="'+t+'"]')}var u="data-jpibfi-timeout",c=0,l=this;l.$(document).delegate(this.settings.image_selector,"mouseenter",function(){var t=l.$(this);if(l.imageFilter.imageEligible(t)){var e=t.attr(l.indexerAttr);e||(e=c++,t.attr(l.indexerAttr,e));var i=a(e);if(0===i.length){var n=l.buttonGenerator.createButton(t);if(!n)return;t.addClass("pinit-hover");var r=l.buttonGenerator.getSize(),o=t.offset(),s={top:o.top+t[0].clientHeight,left:o.left+t[0].clientWidth},r=l.positioner.calculatePosition(o,s,r);t.after(n),n.attr(l.indexerAttr,e).css("visibility","hidden").show().offset(r).css("visibility","visible").hover(function(){return clearTimeout(n.attr(u))},function(){return n.attr(u,setTimeout(function(){t.removeClass("pinit-hover"),n.remove()},100))})}else clearTimeout(i.attr(u))}}),l.$(document).delegate(this.settings.image_selector,"mouseleave",function(){var t,e,i;l.logger.getFlag("prevent_hide")||(e=(t=l.$(this)).attr(l.indexerAttr))&&(i=a(e)).attr(u,setTimeout(function(){t.removeClass("pinit-hover"),i.remove()},100))})},s);function s(){return null!==o&&o.apply(this,arguments)||this}i.default=r},{"./show-strategy":12}],12:[function(t,e,i){"use strict";i.__esModule=!0;var o=t("./image-filter"),s=t("./button-generator"),a=t("./positioner"),u=t("../common/css-generator"),t=(n.prototype.addContainers=function(){var t=this.$(".jpibfi"),e=t.closest("div, article");(e=e.length?e:t.parent()).addClass("jpibfi_container")},n);function n(t,e,i){this.$=t,this.settings=e,this.logger=i,this.imageFilter=new o.default(e),this.buttonGenerator=new s.default(t,e);var n={left:e.button_margin_left,top:e.button_margin_top,right:e.button_margin_right,bottom:e.button_margin_bottom};this.positioner=new a.default(e.button_position,n),this.indexerAttr="data-jpibfi-indexer";var r=this.settings,i=r.pin_image,t=r.pin_image_icon,e=r.pinImageHeight,n=r.pinImageWidth,e=(r.scale_pin_image,{width:n,height:e});switch(i){case"custom":case"old_default":(0,u.createCssRulesForCustomButton)(e);break;case"default":(0,u.createCssRulesForDefaultButton)(e,t)}}i.default=t},{"../common/css-generator":1,"./button-generator":6,"./image-filter":7,"./positioner":10}],13:[function(t,e,i){"use strict";i.__esModule=!0;var n,r=t("./settings"),o=t("./debugger"),s=t("./hover");(n=window.jQuery)(document).ready(function(){var t=window.jpibfi_options,e=new r.default(n.extend({pageUrl:document.URL,pageTitle:document.title,pageDescription:n('meta[name="description"]').attr("content")||""},t.hover)),t=new o.default("jpibfi");window.jpibfi_debugger=t,new s.default(n,e,t).init()})},{"./debugger":5,"./hover":8,"./settings":14}],14:[function(t,e,i){"use strict";i.__esModule=!0;function n(e){var i=this;Object.keys(e).forEach(function(t){i[t]=e[t]}),this.isTouchDevice="ontouchstart"in window||{}.hasOwnProperty.call(navigator,"maxTouchPoints")}i.default=n},{}]},{},[13]);
languages/index.php CHANGED
@@ -1,2 +1,2 @@
1
- <?php
2
  /* Let The Force Be With You */
1
+ <?php
2
  /* Let The Force Be With You */
languages/jquery-pin-it-button-for-images-es_ES.pot CHANGED
@@ -1,499 +1,499 @@
1
- # Copyright (C) 2013 jQuery Pin It Button For Images
2
- # This file is distributed under the same license as the jQuery Pin It Button For Images package.
3
- msgid ""
4
- msgstr ""
5
- "Project-Id-Version: jQuery Pin It Button For Images 1.14\n"
6
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/jquery-pin-it-button-for-"
7
- "images\n"
8
- "POT-Creation-Date: 2013-10-29 07:52:19+00:00\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=UTF-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "PO-Revision-Date: 2013-12-03 15:02+0100\n"
13
- "Last-Translator: jelena kovacevic <jecajeca260@gmail.com>\n"
14
- "Language-Team: LANGUAGE <LL@li.org>\n"
15
- "X-Generator: Poedit 1.5.5\n"
16
-
17
- #: jquery-pin-it-button-for-images.php:230
18
- #: jquery-pin-it-button-for-images.php:240
19
- #: jquery-pin-it-button-for-images.php:455
20
- msgid "Settings"
21
- msgstr "Ajustes"
22
-
23
- #: jquery-pin-it-button-for-images.php:259
24
- msgid ""
25
- "Disable \"Pin it\" button for this post (works only on single pages/posts)"
26
- msgstr ""
27
- "Desactivar el botón \"Fíjelo\" para este post (funciona sólo en páginas/"
28
- "mensajes individuales)"
29
-
30
- #: jquery-pin-it-button-for-images.php:468
31
- msgid "jQuery Pin It Button For Images Options"
32
- msgstr "Botón Fíjelo de jQuery para Opciones de Imágenes"
33
-
34
- #: jquery-pin-it-button-for-images.php:477
35
- msgid "Selection Settings"
36
- msgstr "Ajustes de Selección"
37
-
38
- #: jquery-pin-it-button-for-images.php:478
39
- msgid "Visual Settings"
40
- msgstr "Ajustes Visuales"
41
-
42
- #: jquery-pin-it-button-for-images.php:479
43
- #: jquery-pin-it-button-for-images.php:1193
44
- msgid "Advanced Settings"
45
- msgstr "Ajustes Avanzados"
46
-
47
- #: jquery-pin-it-button-for-images.php:484
48
- msgid ""
49
- "If you would like to support development of the plugin, please %sdonate%s."
50
- msgstr "Si usted desea apoyar el desarrollo del plugin, por favor %sdone%s."
51
-
52
- #: jquery-pin-it-button-for-images.php:485
53
- msgid ""
54
- "If you experience issues with the plugin, check out the %ssupport forum%s."
55
- msgstr ""
56
- "Si experimenta problemas con el plugin, eche un vistazo al %sforo de soporte"
57
- "%s."
58
-
59
- #: jquery-pin-it-button-for-images.php:486
60
- msgid "To help promote the plugin, %sleave a review%s."
61
- msgstr "Para ayudar a promover el plugin, %sdeje un comentario%s."
62
-
63
- #: jquery-pin-it-button-for-images.php:487
64
- msgid ""
65
- "If you have any suggestions for improvements, %suse the feedback form%s."
66
- msgstr ""
67
- "Si usted tiene alguna sugerencia de mejora, %sutilice el formulario de "
68
- "comentarios%s."
69
-
70
- #: jquery-pin-it-button-for-images.php:552
71
- msgid "Selection"
72
- msgstr "Selección"
73
-
74
- #: jquery-pin-it-button-for-images.php:560
75
- msgid "Image selector"
76
- msgstr "Selector de imagen"
77
-
78
- #: jquery-pin-it-button-for-images.php:565
79
- msgid ""
80
- "jQuery selector for all the images that should have the \"Pin it\" button. "
81
- "Set the value to %s if you want the \"Pin it\" button to appear only on "
82
- "images in content or %s to appear on all images on site (including sidebar, "
83
- "header and footer). If you know a thing or two about jQuery, you might use "
84
- "your own selector. %sClick here%s to read about jQuery selectors."
85
- msgstr ""
86
- "El selector jQuery para todas las imágenes que deben tener el botón \"Fíjelo"
87
- "\". Establecer el valor a %s si usted quiere que el botón \"Fíjelo\" "
88
- "aparezca solamente en las imágenes en el contenido o %s que aparezca en "
89
- "todas las imágenes en el sitio (incluyendo sidebar, header y footer). Si "
90
- "usted conoce una cosa o dos acerca de jQuery, usted puede usar su propio "
91
- "selector. %sHaga clic aquí%s para leer acerca de los selectores de jQuery."
92
-
93
- #: jquery-pin-it-button-for-images.php:576
94
- #: jquery-pin-it-button-for-images.php:760
95
- msgid "Disabled classes"
96
- msgstr "Deshabilitar clases"
97
-
98
- #: jquery-pin-it-button-for-images.php:581
99
- msgid ""
100
- "Pictures with these CSS classes won't show the \"Pin it\" button. Please "
101
- "separate multiple classes with semicolons. Spaces are not accepted."
102
- msgstr ""
103
- "Las imágenes con estas clases CSS no mostrarán el botón \"Fíjelo\". Por "
104
- "favor separe clases múltiples con puntos y comas. Los espacios no están "
105
- "permitidos."
106
-
107
- #: jquery-pin-it-button-for-images.php:587
108
- #: jquery-pin-it-button-for-images.php:762
109
- msgid "Enabled classes"
110
- msgstr "Clases habilitadas"
111
-
112
- #: jquery-pin-it-button-for-images.php:592
113
- msgid ""
114
- "Only pictures with these CSS classes will show the \"Pin it\" button. Please "
115
- "separate multiple classes with semicolons. If this field is empty, images "
116
- "with any (besides disabled ones) classes will show the Pin It button."
117
- msgstr ""
118
- "Solamente las imágenes con estas clases CSS se mostrarán en el botón \"Fíjelo"
119
- "\". Por favor separe clases múltiples con puntos y comas. Si este campo está "
120
- "vacío, las imágenes con cualquier clase (excepto las deshabilitadas) "
121
- "mostrarán el botón Fíjelo."
122
-
123
- #: jquery-pin-it-button-for-images.php:598
124
- msgid "On which pages the \"Pin it\" button should be shown"
125
- msgstr "En cuáles páginas el botón \"Fíjelo\" debería mostrarse"
126
-
127
- #: jquery-pin-it-button-for-images.php:603
128
- msgid "Check on which pages you want the Pinterest button to show up."
129
- msgstr ""
130
- "Chequee en cuáles páginas usted desea que el botón \"Fíjelo\" se muestre."
131
-
132
- #: jquery-pin-it-button-for-images.php:609
133
- msgid "Minimum resolution that should trigger the \"Pin it\" button to show up"
134
- msgstr ""
135
- "La resolución mínima que debería provocar que el botón \"Fíjelo\" se muestre"
136
-
137
- #: jquery-pin-it-button-for-images.php:614
138
- msgid ""
139
- "If you'd like the \"Pin it\" button to not show up on small images (e.g. "
140
- "social media icons), just set the appropriate values above. The default "
141
- "values cause the \"Pin it\" button to show on every eligible image."
142
- msgstr ""
143
- "Si usted desea que el botón \"Fíjelo\" no se muestre en imágenes pequeñas (e."
144
- "j. iconos de social media), solamente asigne los valores apropiados "
145
- "anteriores. Los valores por defecto causan al botón \"Fíjelo\" que se "
146
- "muestre en cualquier imagen elegible."
147
-
148
- #: jquery-pin-it-button-for-images.php:628
149
- msgid "Which images can be pinned"
150
- msgstr "Cuáles imágenes pueden ser fijadas"
151
-
152
- #: jquery-pin-it-button-for-images.php:649
153
- #: jquery-pin-it-button-for-images.php:678
154
- msgid "No classes added."
155
- msgstr "No se añadieron clases."
156
-
157
- #: jquery-pin-it-button-for-images.php:658
158
- #: jquery-pin-it-button-for-images.php:687
159
- msgid "Class name"
160
- msgstr "Nombre de la clase"
161
-
162
- #: jquery-pin-it-button-for-images.php:660
163
- #: jquery-pin-it-button-for-images.php:689
164
- msgid "Add to list"
165
- msgstr "Adicionar a la lista"
166
-
167
- #: jquery-pin-it-button-for-images.php:710
168
- msgid "Home page"
169
- msgstr "Página de Inicio"
170
-
171
- #: jquery-pin-it-button-for-images.php:712
172
- msgid "Pages"
173
- msgstr "Páginas"
174
-
175
- #: jquery-pin-it-button-for-images.php:714
176
- msgid "Single posts"
177
- msgstr "Post simples"
178
-
179
- #: jquery-pin-it-button-for-images.php:716
180
- msgid "Category and archive pages"
181
- msgstr "Páginas de categorías y archivos"
182
-
183
- #: jquery-pin-it-button-for-images.php:718
184
- msgid "Blog pages"
185
- msgstr "Páginas de blog"
186
-
187
- #: jquery-pin-it-button-for-images.php:732
188
- #: jquery-pin-it-button-for-images.php:1041
189
- msgid "Height"
190
- msgstr "Largo"
191
-
192
- #: jquery-pin-it-button-for-images.php:739
193
- #: jquery-pin-it-button-for-images.php:1048
194
- msgid "Width"
195
- msgstr "Ancho"
196
-
197
- #: jquery-pin-it-button-for-images.php:767
198
- msgid ""
199
- "the given value doesn't meet the requirements. Please correct it and try "
200
- "again."
201
- msgstr ""
202
- "los valores dados no cumplen los requerimientos. Por favor arréglelos y "
203
- "pruebe nuevamente."
204
-
205
- #: jquery-pin-it-button-for-images.php:777
206
- msgid "Minimum image height"
207
- msgstr "Largo mínimo de imagen"
208
-
209
- #: jquery-pin-it-button-for-images.php:779
210
- msgid "Minimum image width"
211
- msgstr "Ancho mínimo de imagen"
212
-
213
- #: jquery-pin-it-button-for-images.php:784
214
- #: jquery-pin-it-button-for-images.php:1146
215
- msgid "value must be a number greater or equal to %d."
216
- msgstr "el valor debe ser un número mayor o igual a %d."
217
-
218
- #: jquery-pin-it-button-for-images.php:850
219
- msgid "Visual"
220
- msgstr "Visual"
221
-
222
- #: jquery-pin-it-button-for-images.php:858
223
- msgid "Mode"
224
- msgstr "Modo"
225
-
226
- #: jquery-pin-it-button-for-images.php:863
227
- msgid ""
228
- "Static mode adds a layer on the top of the image that restricts image "
229
- "download, but works on websites that protect images download. Dynamic mode "
230
- "doesn't add that layer and allows image download. If you're experiencing "
231
- "issues with static mode, try using dynamic mode."
232
- msgstr ""
233
- "El modo estático adiciona una capa en la cima de la imagen que restringe el "
234
- "download de la imagen, pero funciona en sitios web que protegen el download "
235
- "de las imágenes. El modo dinámico no adiciona esa capa y permite el download "
236
- "de imágenes. Si usted está experimentando problemas con el modo estático, "
237
- "trate de usar el dinámico."
238
-
239
- #: jquery-pin-it-button-for-images.php:869
240
- msgid "Description source"
241
- msgstr "Origen de la descripción"
242
-
243
- #: jquery-pin-it-button-for-images.php:874
244
- msgid ""
245
- "From where the Pinterest message should be taken. Please note that \"Image "
246
- "description\" works properly only for images that were added to your Media "
247
- "Library."
248
- msgstr ""
249
- "De dónde el mensaje Fíjelo debería ser tomado. Por favor note que "
250
- "\"Descripción de Imagen\" funciona correctamente solamente para imágenes que "
251
- "fueron adicionadas a su Librería de Media. "
252
-
253
- #: jquery-pin-it-button-for-images.php:880
254
- msgid "Linked page"
255
- msgstr "Página enlazada"
256
-
257
- #: jquery-pin-it-button-for-images.php:885
258
- msgid ""
259
- "When checked, the link on Pinterest will always point to the individual page "
260
- "with the image and title of this individual page will be used if you've "
261
- "selected Title as the description source, even when the image was pinned on "
262
- "an archive page, category page or homepage. If false, the link will point to "
263
- "the URL the user is currently on."
264
- msgstr ""
265
- "Cuando está chequeada, el enlace a Fíjelo aparecerá apuntando a la página "
266
- "individual con la imagen y el título de esta página individual será usado si "
267
- "usted ha seleccionado Título como el origen de descripción, aún cuando la "
268
- "imagen fue fijada en una página archivada, una página de categoría o una "
269
- "página de inicio. Si está en falso, el enlace apuntará a la URL en la que el "
270
- "usuario está."
271
-
272
- #: jquery-pin-it-button-for-images.php:891
273
- msgid "Transparency value"
274
- msgstr "Valor de transparencia"
275
-
276
- #: jquery-pin-it-button-for-images.php:896
277
- msgid "This setting sets the transparency of the image."
278
- msgstr "Este ajuste asigna la transparencia de la imagen."
279
-
280
- #: jquery-pin-it-button-for-images.php:902
281
- msgid "Custom \"Pin It\" button"
282
- msgstr "Botón \"Fíjelo\" personalizado."
283
-
284
- #: jquery-pin-it-button-for-images.php:907
285
- msgid ""
286
- "Check the <b>Use custom image</b> checkbox, specify image's URL, height and "
287
- "width to use your own Pinterest button design. You can just upload an image "
288
- "using Wordpress media library if you wish."
289
- msgstr ""
290
- "Seleccione el checkbox <b>Usar imagen personalizada</b>, especifique la URL "
291
- "de la imagen, el largo y el ancho para usar su propio diseño de botón "
292
- "\"Fíjelo\". Usted puede subir la imagen usando la librería de media de "
293
- "Wordpress si usted lo desea."
294
-
295
- #: jquery-pin-it-button-for-images.php:913
296
- msgid "\"Pin it\" button position"
297
- msgstr "Posición del botón \"Fíjelo\"."
298
-
299
- #: jquery-pin-it-button-for-images.php:918
300
- msgid "Where the \"Pin it\" button should appear on the image."
301
- msgstr "Cuándo el botón \"Fíjelo\" debería aparecer en la imagen."
302
-
303
- #: jquery-pin-it-button-for-images.php:924
304
- msgid "\"Pin it\" button margins"
305
- msgstr "Márgenes del botón \"Fíjelo\""
306
-
307
- #: jquery-pin-it-button-for-images.php:929
308
- msgid ""
309
- "Margins are used to adjust the position of the \"Pin it\" button, but not "
310
- "all margins are used on all button positions. Here is an example. If you're "
311
- "using the \"%s\" position, the button's position will be affected only by "
312
- "top and left margins. Bottom and right margins affect \"%s\" position, etc. "
313
- "The \"%s\" position does not use any margins at all."
314
- msgstr ""
315
- "Los márgenes son usados para ajustar la posición del botón \"Fíjelo\", pero "
316
- "no todos los márgenes son usados para todas las posiciones de botones. Aquí "
317
- "va un ejemplo. Si usted está usando la posición \"%s\", la posición del "
318
- "botón será afectada solamente por los márgenes top y left. Los márgenes "
319
- "bottom y right afectan la posición \"%s\", etc. La posición no utiliza "
320
- "ningún margen. "
321
-
322
- #: jquery-pin-it-button-for-images.php:930
323
- #: jquery-pin-it-button-for-images.php:1071
324
- msgid "Top left"
325
- msgstr "Arriba a la izquierda"
326
-
327
- #: jquery-pin-it-button-for-images.php:931
328
- #: jquery-pin-it-button-for-images.php:1074
329
- msgid "Bottom right"
330
- msgstr "Abajo a la derecha"
331
-
332
- #: jquery-pin-it-button-for-images.php:932
333
- #: jquery-pin-it-button-for-images.php:1075
334
- msgid "Middle"
335
- msgstr "Centro"
336
-
337
- #: jquery-pin-it-button-for-images.php:939
338
- msgid "Retina friendly"
339
- msgstr "Amigable a la retina"
340
-
341
- #: jquery-pin-it-button-for-images.php:944
342
- msgid ""
343
- "Please note that checking this option will result in rendering the \"Pin it"
344
- "\" button half of its normal size (if you use a 80x60 image, the button will "
345
- "be 40x30). When uploading a custom \"Pin it\" button (the default one is too "
346
- "small), please make sure both width and height are even numbers (i.e. "
347
- "divisible by two) when using this option."
348
- msgstr ""
349
- "Por favor note que seleccionando esta opción resultará en renderizar el "
350
- "botón \"Fíjelo\" a la mitad de su tamaño normal (si usted utiliza una imagen "
351
- "de 80x60, el botón será de 40x30). Cuando se sube un botón \"Fíjelo\" "
352
- "personalizado (el de por defecto es muy pequeño), por favor asegúrese que "
353
- "ambos el ancho y el largo son números pares (e.j divisible por dos) cuando "
354
- "se usa esta opción."
355
-
356
- #: jquery-pin-it-button-for-images.php:959
357
- msgid "How it should look like"
358
- msgstr "Cómo debería lucir"
359
-
360
- #: jquery-pin-it-button-for-images.php:969
361
- msgid "Static"
362
- msgstr "Estático"
363
-
364
- #: jquery-pin-it-button-for-images.php:970
365
- msgid "Dynamic"
366
- msgstr "Dinámico"
367
-
368
- #: jquery-pin-it-button-for-images.php:985
369
- msgid "Page title"
370
- msgstr "Título de la página"
371
-
372
- #: jquery-pin-it-button-for-images.php:986
373
- msgid "Page description"
374
- msgstr "Descripción de la página"
375
-
376
- #: jquery-pin-it-button-for-images.php:987
377
- msgid "Picture title or (if title not available) alt attribute"
378
- msgstr ""
379
- "Título de la imagen o (si el título no está disponible) del atributo alt"
380
-
381
- #: jquery-pin-it-button-for-images.php:988
382
- msgid "Site title (Settings->General)"
383
- msgstr "Título del sitio (Ajustes->General)"
384
-
385
- #: jquery-pin-it-button-for-images.php:989
386
- msgid "Image description"
387
- msgstr "Descripción de la imagen"
388
-
389
- #: jquery-pin-it-button-for-images.php:1002
390
- msgid "Always link to individual post page"
391
- msgstr "Siempre enlazar a la página del post individual"
392
-
393
- #: jquery-pin-it-button-for-images.php:1012
394
- msgid "Choose transparency (between %.02f and %.02f)"
395
- msgstr "Escoger transparencia (entre %.02f and %.02f)"
396
-
397
- #: jquery-pin-it-button-for-images.php:1030
398
- msgid "Use custom image"
399
- msgstr "Usar imagen personalizada"
400
-
401
- #: jquery-pin-it-button-for-images.php:1033
402
- msgid "Upload an image using media library"
403
- msgstr "Subir una imagen usando librería de media"
404
-
405
- #: jquery-pin-it-button-for-images.php:1036
406
- msgid "URL address of the image"
407
- msgstr "Dirección URL de la imagen"
408
-
409
- #: jquery-pin-it-button-for-images.php:1055
410
- msgid "Custom Pin It button preview"
411
- msgstr "Vista previa del botón Fíjelo personalizado"
412
-
413
- #: jquery-pin-it-button-for-images.php:1059
414
- msgid "Refresh preview"
415
- msgstr "Vista previa de refrescado"
416
-
417
- #: jquery-pin-it-button-for-images.php:1072
418
- msgid "Top right"
419
- msgstr "Arriba a la derecha"
420
-
421
- #: jquery-pin-it-button-for-images.php:1073
422
- msgid "Bottom left"
423
- msgstr "Abajo a la izquierda"
424
-
425
- #: jquery-pin-it-button-for-images.php:1095
426
- msgid "Top"
427
- msgstr "Arriba"
428
-
429
- #: jquery-pin-it-button-for-images.php:1097
430
- msgid "Bottom"
431
- msgstr "Abajo"
432
-
433
- #: jquery-pin-it-button-for-images.php:1099
434
- msgid "Left"
435
- msgstr "Izquierda"
436
-
437
- #: jquery-pin-it-button-for-images.php:1101
438
- msgid "Right"
439
- msgstr "Derecha"
440
-
441
- #: jquery-pin-it-button-for-images.php:1114
442
- msgid "Optimize for high pixel density displays"
443
- msgstr "Optimizar para mostrados de densidad de pixeles altos"
444
-
445
- #: jquery-pin-it-button-for-images.php:1130
446
- msgid "Transparency value must be a number between %.02d and %.02f."
447
- msgstr "El valor de transparencia debe ser un número entre %.02d y %.02f."
448
-
449
- #: jquery-pin-it-button-for-images.php:1138
450
- msgid "Custom image height"
451
- msgstr "Largo personalizado de la imagen "
452
-
453
- #: jquery-pin-it-button-for-images.php:1140
454
- msgid "Custom image width"
455
- msgstr "Ancho personalizado de la imagen "
456
-
457
- #: jquery-pin-it-button-for-images.php:1201
458
- msgid "Debug"
459
- msgstr "Debuguear"
460
-
461
- #: jquery-pin-it-button-for-images.php:1206
462
- msgid ""
463
- "Use debug mode only if you are experiencing some issues with the plugin and "
464
- "you are reporting them to the developer of the plugin"
465
- msgstr ""
466
- "Usar modo debug solamente si usted está experimentando algunos problemas con "
467
- "el plugin y esta reportándolos al desarrollador del plugin"
468
-
469
- #: jquery-pin-it-button-for-images.php:1219
470
- msgid "Advanced settings"
471
- msgstr "Ajustes avanzados"
472
-
473
- #: jquery-pin-it-button-for-images.php:1231
474
- msgid "Enable debug mode"
475
- msgstr "Habilitar modo debug"
476
-
477
- #. Plugin Name of the plugin/theme
478
- msgid "jQuery Pin It Button For Images"
479
- msgstr "Botón \"Fíjelo\" de jQuery Para Imágenes"
480
-
481
- #. Plugin URI of the plugin/theme
482
- msgid "http://mrsztuczkens.me/jpibfi/"
483
- msgstr "http://mrsztuczkens.me/jpibfi/"
484
-
485
- #. Description of the plugin/theme
486
- msgid ""
487
- "Highlights images on hover and adds a \"Pin It\" button over them for easy "
488
- "pinning."
489
- msgstr ""
490
- "Resalta imágenes en hover y adiciona un botón \"Fíjelo\" sobre ellas para el "
491
- "fijado fácil."
492
-
493
- #. Author of the plugin/theme
494
- msgid "Marcin Skrzypiec"
495
- msgstr "Marcin Skrzypiec"
496
-
497
- #. Author URI of the plugin/theme
498
- msgid "http://mrsztuczkens.me/"
499
- msgstr "http://mrsztuczkens.me/"
1
+ # Copyright (C) 2013 jQuery Pin It Button For Images
2
+ # This file is distributed under the same license as the jQuery Pin It Button For Images package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: jQuery Pin It Button For Images 1.14\n"
6
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/jquery-pin-it-button-for-"
7
+ "images\n"
8
+ "POT-Creation-Date: 2013-10-29 07:52:19+00:00\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=UTF-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "PO-Revision-Date: 2013-12-03 15:02+0100\n"
13
+ "Last-Translator: jelena kovacevic <jecajeca260@gmail.com>\n"
14
+ "Language-Team: LANGUAGE <LL@li.org>\n"
15
+ "X-Generator: Poedit 1.5.5\n"
16
+
17
+ #: jquery-pin-it-button-for-images.php:230
18
+ #: jquery-pin-it-button-for-images.php:240
19
+ #: jquery-pin-it-button-for-images.php:455
20
+ msgid "Settings"
21
+ msgstr "Ajustes"
22
+
23
+ #: jquery-pin-it-button-for-images.php:259
24
+ msgid ""
25
+ "Disable \"Pin it\" button for this post (works only on single pages/posts)"
26
+ msgstr ""
27
+ "Desactivar el botón \"Fíjelo\" para este post (funciona sólo en páginas/"
28
+ "mensajes individuales)"
29
+
30
+ #: jquery-pin-it-button-for-images.php:468
31
+ msgid "jQuery Pin It Button For Images Options"
32
+ msgstr "Botón Fíjelo de jQuery para Opciones de Imágenes"
33
+
34
+ #: jquery-pin-it-button-for-images.php:477
35
+ msgid "Selection Settings"
36
+ msgstr "Ajustes de Selección"
37
+
38
+ #: jquery-pin-it-button-for-images.php:478
39
+ msgid "Visual Settings"
40
+ msgstr "Ajustes Visuales"
41
+
42
+ #: jquery-pin-it-button-for-images.php:479
43
+ #: jquery-pin-it-button-for-images.php:1193
44
+ msgid "Advanced Settings"
45
+ msgstr "Ajustes Avanzados"
46
+
47
+ #: jquery-pin-it-button-for-images.php:484
48
+ msgid ""
49
+ "If you would like to support development of the plugin, please %sdonate%s."
50
+ msgstr "Si usted desea apoyar el desarrollo del plugin, por favor %sdone%s."
51
+
52
+ #: jquery-pin-it-button-for-images.php:485
53
+ msgid ""
54
+ "If you experience issues with the plugin, check out the %ssupport forum%s."
55
+ msgstr ""
56
+ "Si experimenta problemas con el plugin, eche un vistazo al %sforo de soporte"
57
+ "%s."
58
+
59
+ #: jquery-pin-it-button-for-images.php:486
60
+ msgid "To help promote the plugin, %sleave a review%s."
61
+ msgstr "Para ayudar a promover el plugin, %sdeje un comentario%s."
62
+
63
+ #: jquery-pin-it-button-for-images.php:487
64
+ msgid ""
65
+ "If you have any suggestions for improvements, %suse the feedback form%s."
66
+ msgstr ""
67
+ "Si usted tiene alguna sugerencia de mejora, %sutilice el formulario de "
68
+ "comentarios%s."
69
+
70
+ #: jquery-pin-it-button-for-images.php:552
71
+ msgid "Selection"
72
+ msgstr "Selección"
73
+
74
+ #: jquery-pin-it-button-for-images.php:560
75
+ msgid "Image selector"
76
+ msgstr "Selector de imagen"
77
+
78
+ #: jquery-pin-it-button-for-images.php:565
79
+ msgid ""
80
+ "jQuery selector for all the images that should have the \"Pin it\" button. "
81
+ "Set the value to %s if you want the \"Pin it\" button to appear only on "
82
+ "images in content or %s to appear on all images on site (including sidebar, "
83
+ "header and footer). If you know a thing or two about jQuery, you might use "
84
+ "your own selector. %sClick here%s to read about jQuery selectors."
85
+ msgstr ""
86
+ "El selector jQuery para todas las imágenes que deben tener el botón \"Fíjelo"
87
+ "\". Establecer el valor a %s si usted quiere que el botón \"Fíjelo\" "
88
+ "aparezca solamente en las imágenes en el contenido o %s que aparezca en "
89
+ "todas las imágenes en el sitio (incluyendo sidebar, header y footer). Si "
90
+ "usted conoce una cosa o dos acerca de jQuery, usted puede usar su propio "
91
+ "selector. %sHaga clic aquí%s para leer acerca de los selectores de jQuery."
92
+
93
+ #: jquery-pin-it-button-for-images.php:576
94
+ #: jquery-pin-it-button-for-images.php:760
95
+ msgid "Disabled classes"
96
+ msgstr "Deshabilitar clases"
97
+
98
+ #: jquery-pin-it-button-for-images.php:581
99
+ msgid ""
100
+ "Pictures with these CSS classes won't show the \"Pin it\" button. Please "
101
+ "separate multiple classes with semicolons. Spaces are not accepted."
102
+ msgstr ""
103
+ "Las imágenes con estas clases CSS no mostrarán el botón \"Fíjelo\". Por "
104
+ "favor separe clases múltiples con puntos y comas. Los espacios no están "
105
+ "permitidos."
106
+
107
+ #: jquery-pin-it-button-for-images.php:587
108
+ #: jquery-pin-it-button-for-images.php:762
109
+ msgid "Enabled classes"
110
+ msgstr "Clases habilitadas"
111
+
112
+ #: jquery-pin-it-button-for-images.php:592
113
+ msgid ""
114
+ "Only pictures with these CSS classes will show the \"Pin it\" button. Please "
115
+ "separate multiple classes with semicolons. If this field is empty, images "
116
+ "with any (besides disabled ones) classes will show the Pin It button."
117
+ msgstr ""
118
+ "Solamente las imágenes con estas clases CSS se mostrarán en el botón \"Fíjelo"
119
+ "\". Por favor separe clases múltiples con puntos y comas. Si este campo está "
120
+ "vacío, las imágenes con cualquier clase (excepto las deshabilitadas) "
121
+ "mostrarán el botón Fíjelo."
122
+
123
+ #: jquery-pin-it-button-for-images.php:598
124
+ msgid "On which pages the \"Pin it\" button should be shown"
125
+ msgstr "En cuáles páginas el botón \"Fíjelo\" debería mostrarse"
126
+
127
+ #: jquery-pin-it-button-for-images.php:603
128
+ msgid "Check on which pages you want the Pinterest button to show up."
129
+ msgstr ""
130
+ "Chequee en cuáles páginas usted desea que el botón \"Fíjelo\" se muestre."
131
+
132
+ #: jquery-pin-it-button-for-images.php:609
133
+ msgid "Minimum resolution that should trigger the \"Pin it\" button to show up"
134
+ msgstr ""
135
+ "La resolución mínima que debería provocar que el botón \"Fíjelo\" se muestre"
136
+
137
+ #: jquery-pin-it-button-for-images.php:614
138
+ msgid ""
139
+ "If you'd like the \"Pin it\" button to not show up on small images (e.g. "
140
+ "social media icons), just set the appropriate values above. The default "
141
+ "values cause the \"Pin it\" button to show on every eligible image."
142
+ msgstr ""
143
+ "Si usted desea que el botón \"Fíjelo\" no se muestre en imágenes pequeñas (e."
144
+ "j. iconos de social media), solamente asigne los valores apropiados "
145
+ "anteriores. Los valores por defecto causan al botón \"Fíjelo\" que se "
146
+ "muestre en cualquier imagen elegible."
147
+
148
+ #: jquery-pin-it-button-for-images.php:628
149
+ msgid "Which images can be pinned"
150
+ msgstr "Cuáles imágenes pueden ser fijadas"
151
+
152
+ #: jquery-pin-it-button-for-images.php:649
153
+ #: jquery-pin-it-button-for-images.php:678
154
+ msgid "No classes added."
155
+ msgstr "No se añadieron clases."
156
+
157
+ #: jquery-pin-it-button-for-images.php:658
158
+ #: jquery-pin-it-button-for-images.php:687
159
+ msgid "Class name"
160
+ msgstr "Nombre de la clase"
161
+
162
+ #: jquery-pin-it-button-for-images.php:660
163
+ #: jquery-pin-it-button-for-images.php:689
164
+ msgid "Add to list"
165
+ msgstr "Adicionar a la lista"
166
+
167
+ #: jquery-pin-it-button-for-images.php:710
168
+ msgid "Home page"
169
+ msgstr "Página de Inicio"
170
+
171
+ #: jquery-pin-it-button-for-images.php:712
172
+ msgid "Pages"
173
+ msgstr "Páginas"
174
+
175
+ #: jquery-pin-it-button-for-images.php:714
176
+ msgid "Single posts"
177
+ msgstr "Post simples"
178
+
179
+ #: jquery-pin-it-button-for-images.php:716
180
+ msgid "Category and archive pages"
181
+ msgstr "Páginas de categorías y archivos"
182
+
183
+ #: jquery-pin-it-button-for-images.php:718
184
+ msgid "Blog pages"
185
+ msgstr "Páginas de blog"
186
+
187
+ #: jquery-pin-it-button-for-images.php:732
188
+ #: jquery-pin-it-button-for-images.php:1041
189
+ msgid "Height"
190
+ msgstr "Largo"
191
+
192
+ #: jquery-pin-it-button-for-images.php:739
193
+ #: jquery-pin-it-button-for-images.php:1048
194
+ msgid "Width"
195
+ msgstr "Ancho"
196
+
197
+ #: jquery-pin-it-button-for-images.php:767
198
+ msgid ""
199
+ "the given value doesn't meet the requirements. Please correct it and try "
200
+ "again."
201
+ msgstr ""
202
+ "los valores dados no cumplen los requerimientos. Por favor arréglelos y "
203
+ "pruebe nuevamente."
204
+
205
+ #: jquery-pin-it-button-for-images.php:777
206
+ msgid "Minimum image height"
207
+ msgstr "Largo mínimo de imagen"
208
+
209
+ #: jquery-pin-it-button-for-images.php:779
210
+ msgid "Minimum image width"
211
+ msgstr "Ancho mínimo de imagen"
212
+
213
+ #: jquery-pin-it-button-for-images.php:784
214
+ #: jquery-pin-it-button-for-images.php:1146
215
+ msgid "value must be a number greater or equal to %d."
216
+ msgstr "el valor debe ser un número mayor o igual a %d."
217
+
218
+ #: jquery-pin-it-button-for-images.php:850
219
+ msgid "Visual"
220
+ msgstr "Visual"
221
+
222
+ #: jquery-pin-it-button-for-images.php:858
223
+ msgid "Mode"
224
+ msgstr "Modo"
225
+
226
+ #: jquery-pin-it-button-for-images.php:863
227
+ msgid ""
228
+ "Static mode adds a layer on the top of the image that restricts image "
229
+ "download, but works on websites that protect images download. Dynamic mode "
230
+ "doesn't add that layer and allows image download. If you're experiencing "
231
+ "issues with static mode, try using dynamic mode."
232
+ msgstr ""
233
+ "El modo estático adiciona una capa en la cima de la imagen que restringe el "
234
+ "download de la imagen, pero funciona en sitios web que protegen el download "
235
+ "de las imágenes. El modo dinámico no adiciona esa capa y permite el download "
236
+ "de imágenes. Si usted está experimentando problemas con el modo estático, "
237
+ "trate de usar el dinámico."
238
+
239
+ #: jquery-pin-it-button-for-images.php:869
240
+ msgid "Description source"
241
+ msgstr "Origen de la descripción"
242
+
243
+ #: jquery-pin-it-button-for-images.php:874
244
+ msgid ""
245
+ "From where the Pinterest message should be taken. Please note that \"Image "
246
+ "description\" works properly only for images that were added to your Media "
247
+ "Library."
248
+ msgstr ""
249
+ "De dónde el mensaje Fíjelo debería ser tomado. Por favor note que "
250
+ "\"Descripción de Imagen\" funciona correctamente solamente para imágenes que "
251
+ "fueron adicionadas a su Librería de Media. "
252
+
253
+ #: jquery-pin-it-button-for-images.php:880
254
+ msgid "Linked page"
255
+ msgstr "Página enlazada"
256
+
257
+ #: jquery-pin-it-button-for-images.php:885
258
+ msgid ""
259
+ "When checked, the link on Pinterest will always point to the individual page "
260
+ "with the image and title of this individual page will be used if you've "
261
+ "selected Title as the description source, even when the image was pinned on "
262
+ "an archive page, category page or homepage. If false, the link will point to "
263
+ "the URL the user is currently on."
264
+ msgstr ""
265
+ "Cuando está chequeada, el enlace a Fíjelo aparecerá apuntando a la página "
266
+ "individual con la imagen y el título de esta página individual será usado si "
267
+ "usted ha seleccionado Título como el origen de descripción, aún cuando la "
268
+ "imagen fue fijada en una página archivada, una página de categoría o una "
269
+ "página de inicio. Si está en falso, el enlace apuntará a la URL en la que el "
270
+ "usuario está."
271
+
272
+ #: jquery-pin-it-button-for-images.php:891
273
+ msgid "Transparency value"
274
+ msgstr "Valor de transparencia"
275
+
276
+ #: jquery-pin-it-button-for-images.php:896
277
+ msgid "This setting sets the transparency of the image."
278
+ msgstr "Este ajuste asigna la transparencia de la imagen."
279
+
280
+ #: jquery-pin-it-button-for-images.php:902
281
+ msgid "Custom \"Pin It\" button"
282
+ msgstr "Botón \"Fíjelo\" personalizado."
283
+
284
+ #: jquery-pin-it-button-for-images.php:907
285
+ msgid ""
286
+ "Check the <b>Use custom image</b> checkbox, specify image's URL, height and "
287
+ "width to use your own Pinterest button design. You can just upload an image "
288
+ "using Wordpress media library if you wish."
289
+ msgstr ""
290
+ "Seleccione el checkbox <b>Usar imagen personalizada</b>, especifique la URL "
291
+ "de la imagen, el largo y el ancho para usar su propio diseño de botón "
292
+ "\"Fíjelo\". Usted puede subir la imagen usando la librería de media de "
293
+ "Wordpress si usted lo desea."
294
+
295
+ #: jquery-pin-it-button-for-images.php:913
296
+ msgid "\"Pin it\" button position"
297
+ msgstr "Posición del botón \"Fíjelo\"."
298
+
299
+ #: jquery-pin-it-button-for-images.php:918
300
+ msgid "Where the \"Pin it\" button should appear on the image."
301
+ msgstr "Cuándo el botón \"Fíjelo\" debería aparecer en la imagen."
302
+
303
+ #: jquery-pin-it-button-for-images.php:924
304
+ msgid "\"Pin it\" button margins"
305
+ msgstr "Márgenes del botón \"Fíjelo\""
306
+
307
+ #: jquery-pin-it-button-for-images.php:929
308
+ msgid ""
309
+ "Margins are used to adjust the position of the \"Pin it\" button, but not "
310
+ "all margins are used on all button positions. Here is an example. If you're "
311
+ "using the \"%s\" position, the button's position will be affected only by "
312
+ "top and left margins. Bottom and right margins affect \"%s\" position, etc. "
313
+ "The \"%s\" position does not use any margins at all."
314
+ msgstr ""
315
+ "Los márgenes son usados para ajustar la posición del botón \"Fíjelo\", pero "
316
+ "no todos los márgenes son usados para todas las posiciones de botones. Aquí "
317
+ "va un ejemplo. Si usted está usando la posición \"%s\", la posición del "
318
+ "botón será afectada solamente por los márgenes top y left. Los márgenes "
319
+ "bottom y right afectan la posición \"%s\", etc. La posición no utiliza "
320
+ "ningún margen. "
321
+
322
+ #: jquery-pin-it-button-for-images.php:930
323
+ #: jquery-pin-it-button-for-images.php:1071
324
+ msgid "Top left"
325
+ msgstr "Arriba a la izquierda"
326
+
327
+ #: jquery-pin-it-button-for-images.php:931
328
+ #: jquery-pin-it-button-for-images.php:1074
329
+ msgid "Bottom right"
330
+ msgstr "Abajo a la derecha"
331
+
332
+ #: jquery-pin-it-button-for-images.php:932
333
+ #: jquery-pin-it-button-for-images.php:1075
334
+ msgid "Middle"
335
+ msgstr "Centro"
336
+
337
+ #: jquery-pin-it-button-for-images.php:939
338
+ msgid "Retina friendly"
339
+ msgstr "Amigable a la retina"
340
+
341
+ #: jquery-pin-it-button-for-images.php:944
342
+ msgid ""
343
+ "Please note that checking this option will result in rendering the \"Pin it"
344
+ "\" button half of its normal size (if you use a 80x60 image, the button will "
345
+ "be 40x30). When uploading a custom \"Pin it\" button (the default one is too "
346
+ "small), please make sure both width and height are even numbers (i.e. "
347
+ "divisible by two) when using this option."
348
+ msgstr ""
349
+ "Por favor note que seleccionando esta opción resultará en renderizar el "
350
+ "botón \"Fíjelo\" a la mitad de su tamaño normal (si usted utiliza una imagen "
351
+ "de 80x60, el botón será de 40x30). Cuando se sube un botón \"Fíjelo\" "
352
+ "personalizado (el de por defecto es muy pequeño), por favor asegúrese que "
353
+ "ambos el ancho y el largo son números pares (e.j divisible por dos) cuando "
354
+ "se usa esta opción."
355
+
356
+ #: jquery-pin-it-button-for-images.php:959
357
+ msgid "How it should look like"
358
+ msgstr "Cómo debería lucir"
359
+
360
+ #: jquery-pin-it-button-for-images.php:969
361
+ msgid "Static"
362
+ msgstr "Estático"
363
+
364
+ #: jquery-pin-it-button-for-images.php:970
365
+ msgid "Dynamic"
366
+ msgstr "Dinámico"
367
+
368
+ #: jquery-pin-it-button-for-images.php:985
369
+ msgid "Page title"
370
+ msgstr "Título de la página"
371
+
372
+ #: jquery-pin-it-button-for-images.php:986
373
+ msgid "Page description"
374
+ msgstr "Descripción de la página"
375
+
376
+ #: jquery-pin-it-button-for-images.php:987
377
+ msgid "Picture title or (if title not available) alt attribute"
378
+ msgstr ""
379
+ "Título de la imagen o (si el título no está disponible) del atributo alt"
380
+
381
+ #: jquery-pin-it-button-for-images.php:988
382
+ msgid "Site title (Settings->General)"
383
+ msgstr "Título del sitio (Ajustes->General)"
384
+
385
+ #: jquery-pin-it-button-for-images.php:989
386
+ msgid "Image description"
387
+ msgstr "Descripción de la imagen"
388
+
389
+ #: jquery-pin-it-button-for-images.php:1002
390
+ msgid "Always link to individual post page"
391
+ msgstr "Siempre enlazar a la página del post individual"
392
+
393
+ #: jquery-pin-it-button-for-images.php:1012
394
+ msgid "Choose transparency (between %.02f and %.02f)"
395
+ msgstr "Escoger transparencia (entre %.02f and %.02f)"
396
+
397
+ #: jquery-pin-it-button-for-images.php:1030
398
+ msgid "Use custom image"
399
+ msgstr "Usar imagen personalizada"
400
+
401
+ #: jquery-pin-it-button-for-images.php:1033
402
+ msgid "Upload an image using media library"
403
+ msgstr "Subir una imagen usando librería de media"
404
+
405
+ #: jquery-pin-it-button-for-images.php:1036
406
+ msgid "URL address of the image"
407
+ msgstr "Dirección URL de la imagen"
408
+
409
+ #: jquery-pin-it-button-for-images.php:1055
410
+ msgid "Custom Pin It button preview"
411
+ msgstr "Vista previa del botón Fíjelo personalizado"
412
+
413
+ #: jquery-pin-it-button-for-images.php:1059
414
+ msgid "Refresh preview"
415
+ msgstr "Vista previa de refrescado"
416
+
417
+ #: jquery-pin-it-button-for-images.php:1072
418
+ msgid "Top right"
419
+ msgstr "Arriba a la derecha"
420
+
421
+ #: jquery-pin-it-button-for-images.php:1073
422
+ msgid "Bottom left"
423
+ msgstr "Abajo a la izquierda"
424
+
425
+ #: jquery-pin-it-button-for-images.php:1095
426
+ msgid "Top"
427
+ msgstr "Arriba"
428
+
429
+ #: jquery-pin-it-button-for-images.php:1097
430
+ msgid "Bottom"
431
+ msgstr "Abajo"
432
+
433
+ #: jquery-pin-it-button-for-images.php:1099
434
+ msgid "Left"
435
+ msgstr "Izquierda"
436
+
437
+ #: jquery-pin-it-button-for-images.php:1101
438
+ msgid "Right"
439
+ msgstr "Derecha"
440
+
441
+ #: jquery-pin-it-button-for-images.php:1114
442
+ msgid "Optimize for high pixel density displays"
443
+ msgstr "Optimizar para mostrados de densidad de pixeles altos"
444
+
445
+ #: jquery-pin-it-button-for-images.php:1130
446
+ msgid "Transparency value must be a number between %.02d and %.02f."
447
+ msgstr "El valor de transparencia debe ser un número entre %.02d y %.02f."
448
+
449
+ #: jquery-pin-it-button-for-images.php:1138
450
+ msgid "Custom image height"
451
+ msgstr "Largo personalizado de la imagen "
452
+
453
+ #: jquery-pin-it-button-for-images.php:1140
454
+ msgid "Custom image width"
455
+ msgstr "Ancho personalizado de la imagen "
456
+
457
+ #: jquery-pin-it-button-for-images.php:1201
458
+ msgid "Debug"
459
+ msgstr "Debuguear"
460
+
461
+ #: jquery-pin-it-button-for-images.php:1206
462
+ msgid ""
463
+ "Use debug mode only if you are experiencing some issues with the plugin and "
464
+ "you are reporting them to the developer of the plugin"
465
+ msgstr ""
466
+ "Usar modo debug solamente si usted está experimentando algunos problemas con "
467
+ "el plugin y esta reportándolos al desarrollador del plugin"
468
+
469
+ #: jquery-pin-it-button-for-images.php:1219
470
+ msgid "Advanced settings"
471
+ msgstr "Ajustes avanzados"
472
+
473
+ #: jquery-pin-it-button-for-images.php:1231
474
+ msgid "Enable debug mode"
475
+ msgstr "Habilitar modo debug"
476
+
477
+ #. Plugin Name of the plugin/theme
478
+ msgid "jQuery Pin It Button For Images"
479
+ msgstr "Botón \"Fíjelo\" de jQuery Para Imágenes"
480
+
481
+ #. Plugin URI of the plugin/theme
482
+ msgid "http://mrsztuczkens.me/jpibfi/"
483
+ msgstr "http://mrsztuczkens.me/jpibfi/"
484
+
485
+ #. Description of the plugin/theme
486
+ msgid ""
487
+ "Highlights images on hover and adds a \"Pin It\" button over them for easy "
488
+ "pinning."
489
+ msgstr ""
490
+ "Resalta imágenes en hover y adiciona un botón \"Fíjelo\" sobre ellas para el "
491
+ "fijado fácil."
492
+
493
+ #. Author of the plugin/theme
494
+ msgid "Marcin Skrzypiec"
495
+ msgstr "Marcin Skrzypiec"
496
+
497
+ #. Author URI of the plugin/theme
498
+ msgid "http://mrsztuczkens.me/"
499
+ msgstr "http://mrsztuczkens.me/"
languages/jquery-pin-it-button-for-images.pot CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2019 jquery-pin-it-button-for-images
2
  # This file is distributed under the same license as the jquery-pin-it-button-for-images package.
3
  msgid ""
4
  msgstr ""
@@ -6,7 +6,7 @@ msgstr ""
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
9
- "PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
10
  "Language-Team: Marcin Skrzypiec\n"
11
  "X-Poedit-Basepath: ..\n"
12
  "X-Poedit-SourceCharset: UTF-8\n"
@@ -15,611 +15,603 @@ msgstr ""
15
  "X-Poedit-SearchPathExcluded-0: *.js\n"
16
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
 
18
- #: includes/admin/includes/JPIBFI_License_Nag.php:99
19
- msgid "You have invalid or expired license key for jQuery Pin It Button for Images Pro. Please go to the <a href=\"%s\">License tab</a> to correct this issue or <a href=\"%s\">click here</a> if you renewed the license."
20
- msgstr ""
21
-
22
- #: includes/admin/JPIBFI_Welcome_Screen.php:49, includes/admin/JPIBFI_Welcome_Screen.php:51
23
  msgid "Welcome to jQuery Pin It Button for Images"
24
  msgstr ""
25
 
26
- #: includes/admin/JPIBFI_Welcome_Screen.php:77
27
  msgid "Welcome to %s&nbsp;%s"
28
  msgstr ""
29
 
30
- #: includes/admin/JPIBFI_Welcome_Screen.php:81
31
  msgid "Thank you for updating to the latest version! %s helps your readers share your images using Pinterest."
32
  msgstr ""
33
 
34
- #: includes/admin/JPIBFI_Welcome_Screen.php:91, includes/admin/jpibfi-admin.php:79, includes/admin/settings/jpibfi-visual-settings.php:39
35
  msgid "Settings"
36
  msgstr ""
37
 
38
- #: includes/admin/JPIBFI_Welcome_Screen.php:93
39
  msgid "The most important part of the plugin is the settings panel."
40
  msgstr ""
41
 
42
- #: includes/admin/JPIBFI_Welcome_Screen.php:103
43
  msgid "Finding the settings panel"
44
  msgstr ""
45
 
46
- #: includes/admin/JPIBFI_Welcome_Screen.php:105
47
  msgid "You can find the plugin's settings panel in the <b>Settings</b> submenu under the name <b>%s</b>. There you can find all the settings the plugin allows you to adjust. All settings are divided into several tabs so you can find what you're looking for easily."
48
  msgstr ""
49
 
50
- #: includes/admin/JPIBFI_Welcome_Screen.php:119
51
  msgid "Settings link"
52
  msgstr ""
53
 
54
- #: includes/admin/JPIBFI_Welcome_Screen.php:127
55
  msgid "Everything at hand"
56
  msgstr ""
57
 
58
- #: includes/admin/JPIBFI_Welcome_Screen.php:129
59
  msgid "You can find all the links mentioned below in the settings panel."
60
  msgstr ""
61
 
62
- #: includes/admin/JPIBFI_Welcome_Screen.php:135
63
  msgid "Settings tabs"
64
  msgstr ""
65
 
66
- #: includes/admin/JPIBFI_Welcome_Screen.php:145, includes/admin/settings/jpibfi-selection-settings.php:51
67
  msgid "Selection settings"
68
  msgstr ""
69
 
70
- #: includes/admin/JPIBFI_Welcome_Screen.php:147
71
  msgid "In this tab you choose which images should feature the \"Pin it\" button. You can choose images with specific classes or set up a minimum image resolution to prevent the button from showing up on small images. You can also choose on which pages the \"Pin it\" button should show up."
72
  msgstr ""
73
 
74
- #: includes/admin/JPIBFI_Welcome_Screen.php:149
75
  msgid "<a href=\"%s\" class=\"button button-primary\">Go to Selection settings</a>"
76
  msgstr ""
77
 
78
- #: includes/admin/JPIBFI_Welcome_Screen.php:155
79
  msgid "Visual settings"
80
  msgstr ""
81
 
82
- #: includes/admin/JPIBFI_Welcome_Screen.php:157
83
  msgid "This tab helps you configure how the \"Pin it\" button looks like and where it appears. If you want to use your own \"Pin it\" icon or make the button show up in the upper right corner of the image, this is the tab you are looking for."
84
  msgstr ""
85
 
86
- #: includes/admin/JPIBFI_Welcome_Screen.php:159
87
  msgid "<a href=\"%s\" class=\"button button-primary\">Go to Visual settings</a>"
88
  msgstr ""
89
 
90
- #: includes/admin/JPIBFI_Welcome_Screen.php:169, includes/admin/settings/jpibfi-advanced-settings.php:23
91
  msgid "Advanced settings"
92
  msgstr ""
93
 
94
- #: includes/admin/JPIBFI_Welcome_Screen.php:171
95
  msgid "In most cases you won't have to visit this tab ever. It features a few advanced settings used in most cases to resolve conflicts with other plugins."
96
  msgstr ""
97
 
98
- #: includes/admin/JPIBFI_Welcome_Screen.php:173
99
  msgid "<a href=\"%s\" class=\"button button-primary\">Go to Advanced settings</a>"
100
  msgstr ""
101
 
102
- #: includes/admin/JPIBFI_Welcome_Screen.php:179, includes/admin/settings/jpibfi-import-export-settings.php:175
103
  msgid "Import/Export"
104
  msgstr ""
105
 
106
- #: includes/admin/JPIBFI_Welcome_Screen.php:181
107
  msgid "If you would like to quickly copy the plugin's settings to another instance of WordPress, that's the place for you. You can download a file with your current settings and import it to another instance easily."
108
  msgstr ""
109
 
110
- #: includes/admin/JPIBFI_Welcome_Screen.php:183
111
  msgid "<a href=\"%s\" class=\"button button-primary\">Go to Import/Export</a>"
112
  msgstr ""
113
 
114
- #: includes/admin/JPIBFI_Welcome_Screen.php:197
115
  msgid "Finding help"
116
  msgstr ""
117
 
118
- #: includes/admin/JPIBFI_Welcome_Screen.php:199
119
  msgid "If you're stuck and can't get the plugin to work the way you want it to, get help!"
120
  msgstr ""
121
 
122
- #: includes/admin/JPIBFI_Welcome_Screen.php:209, includes/admin/jpibfi-admin.php:211
123
  msgid "Documentation"
124
  msgstr ""
125
 
126
- #: includes/admin/JPIBFI_Welcome_Screen.php:211
127
  msgid "If you are having difficulties with some aspects of the plugin, the first place to look for help is <a href=\"%s\" target=\"_blank\">the documentation</a> of the plugin. Chances are you will find what you are looking for there."
128
  msgstr ""
129
 
130
- #: includes/admin/JPIBFI_Welcome_Screen.php:217, includes/admin/jpibfi-admin.php:219
131
  msgid "Support"
132
  msgstr ""
133
 
134
- #: includes/admin/JPIBFI_Welcome_Screen.php:221
135
  msgid "Users of the free version of the plugin can find support <a href=\"%s\" target=\"_blank\">in the support forum</a>. When posting to the support forum, make sure you include the URL of your website."
136
  msgstr ""
137
 
138
- #: includes/admin/JPIBFI_Welcome_Screen.php:233
139
  msgid "Next steps"
140
  msgstr ""
141
 
142
- #: includes/admin/JPIBFI_Welcome_Screen.php:237
143
  msgid "In most cases, the plugin is ready to go without any configuration. If there is anything you would like to change, go to the <a href=\"%s\">Settings panel</a>."
144
  msgstr ""
145
 
146
- #: includes/admin/jpibfi-admin.php:255, includes/admin/settings/jpibfi-settings-base.php:59
147
  msgid "Save Changes"
148
  msgstr ""
149
 
150
- #: includes/admin/jpibfi-admin.php:267
151
  msgid "Saving changes ..."
152
  msgstr ""
153
 
154
- #: includes/admin/jpibfi-admin.php:327
155
  msgid "jQuery Pin It Button For Images Options"
156
  msgstr ""
157
 
158
- #: includes/admin/jpibfi-admin.php:333
159
  msgid "If you cannot see the settings page, <a href=\"%s\" target=\"_blank\">click here</a>"
160
  msgstr ""
161
 
162
- #: includes/admin/jpibfi-admin.php:403
163
- msgid "<strong>jQuery Pin It Button for Images Pro</strong> is available. <a class=\"button button-primary\" href=\"%1$s\" target=\"_blank\">Check it out &rarr;</a>"
164
- msgstr ""
165
-
166
- #: includes/admin/settings/jpibfi-advanced-settings.php:25
167
  msgid "Filters"
168
  msgstr ""
169
 
170
- #: includes/admin/settings/jpibfi-advanced-settings.php:31
171
  msgid "You can enabled or disable if the plugin should use a certain filter and change the priority setting. Read more about filters <a href=\"%s\" target=\"_blank\">here</a>. By default all 3 filters are active with the priority of 10."
172
  msgstr ""
173
 
174
- #: includes/admin/settings/jpibfi-advanced-settings.php:37
175
  msgid "%name% with priority of %priority%"
176
  msgstr ""
177
 
178
- #: includes/admin/settings/jpibfi-advanced-settings.php:53
179
  msgid "Advanced"
180
  msgstr ""
181
 
182
- #: includes/admin/settings/jpibfi-advanced-settings.php:89
183
  msgid "the_content priority"
184
  msgstr ""
185
 
186
- #: includes/admin/settings/jpibfi-advanced-settings.php:113
187
  msgid "the_excerpt priority"
188
  msgstr ""
189
 
190
- #: includes/admin/settings/jpibfi-advanced-settings.php:137
191
  msgid "post_thumbnail_html priority"
192
  msgstr ""
193
 
194
- #: includes/admin/settings/jpibfi-advanced-settings.php:149
195
  msgid "Scroll selector"
196
  msgstr ""
197
 
198
- #: includes/admin/settings/jpibfi-advanced-settings.php:151
199
  msgid "Additional scroll selector for \"Always\" and \"Always on touch devices\" Show Button settings."
200
  msgstr ""
201
 
202
- #: includes/admin/settings/jpibfi-advanced-settings.php:163
203
  msgid "Custom CSS"
204
  msgstr ""
205
 
206
- #: includes/admin/settings/jpibfi-advanced-settings.php:165
207
  msgid "Additional CSS that prevents the \"Pin it\" button from rendering incorrectly on some themes."
208
  msgstr ""
209
 
210
- #: includes/admin/settings/jpibfi-advanced-settings.php:175
211
  msgid "Support Srcset Attribute"
212
  msgstr ""
213
 
214
- #: includes/admin/settings/jpibfi-advanced-settings.php:177, includes/admin/settings/jpibfi-visual-settings.php:399, includes/admin/settings/jpibfi-visual-settings.php:415
215
  msgid "Active"
216
  msgstr ""
217
 
218
- #: includes/admin/settings/jpibfi-advanced-settings.php:179
219
  msgid "When checked, the plugin will try to find the best quality image to pin using the srcset attribute generated by WordPress. Useful when you want people to pin bigger version of the image than you embed on the page."
220
  msgstr ""
221
 
222
- #: includes/admin/settings/jpibfi-import-export-settings.php:63
223
  msgid "The file did not upload properly. Please try again."
224
  msgstr ""
225
 
226
- #: includes/admin/settings/jpibfi-import-export-settings.php:79
227
  msgid "The export file could not be found at <code>%s</code>. It is likely that this was caused by a permissions problem."
228
  msgstr ""
229
 
230
- #: includes/admin/settings/jpibfi-import-export-settings.php:93
231
  msgid "The path is not a file, please try again."
232
  msgstr ""
233
 
234
- #: includes/admin/settings/jpibfi-import-export-settings.php:147
235
  msgid "Export"
236
  msgstr ""
237
 
238
- #: includes/admin/settings/jpibfi-import-export-settings.php:151
239
  msgid "Download Export File"
240
  msgstr ""
241
 
242
- #: includes/admin/settings/jpibfi-import-export-settings.php:155
243
  msgid "Import"
244
  msgstr ""
245
 
246
- #: includes/admin/settings/jpibfi-import-export-settings.php:157
247
  msgid "Import Settings"
248
  msgstr ""
249
 
250
- #: includes/admin/settings/jpibfi-selection-settings.php:27
251
  msgid "jQuery Pin It Button for Images Settings"
252
  msgstr ""
253
 
254
- #: includes/admin/settings/jpibfi-selection-settings.php:53
255
  msgid "Minimum image resolution"
256
  msgstr ""
257
 
258
- #: includes/admin/settings/jpibfi-selection-settings.php:55
259
  msgid "Use this settings to hide the \"Pin it\" button on small images (e.g. social media icons)."
260
  msgstr ""
261
 
262
- #: includes/admin/settings/jpibfi-selection-settings.php:57
263
  msgid "* - screen that is less than 768 pixels wide"
264
  msgstr ""
265
 
266
- #: includes/admin/settings/jpibfi-selection-settings.php:59
267
  msgid "For small screens* the \"Pin it\" button will show up if the image is at least %height% pixels high and %width% pixels wide."
268
  msgstr ""
269
 
270
- #: includes/admin/settings/jpibfi-selection-settings.php:61
271
  msgid "Otherwise, the \"Pin it\" button will show up if the image is at least %height% pixels high and %width% pixels wide."
272
  msgstr ""
273
 
274
- #: includes/admin/settings/jpibfi-selection-settings.php:65
275
  msgid "On which pages the \"Pin it\" button should be shown"
276
  msgstr ""
277
 
278
- #: includes/admin/settings/jpibfi-selection-settings.php:105
279
  msgid "Selection"
280
  msgstr ""
281
 
282
- #: includes/admin/settings/jpibfi-selection-settings.php:127
283
  msgid "Image selector"
284
  msgstr ""
285
 
286
- #: includes/admin/settings/jpibfi-selection-settings.php:129
287
  msgid "jQuery selector for all the images that should have the \"Pin it\" button. Set the value to %s if you want the \"Pin it\" button to appear only on images in content or %s to appear on all images on site (including sidebar, header and footer). If you know a thing or two about jQuery, you might use your own selector. %sClick here%s to read about jQuery selectors."
288
  msgstr ""
289
 
290
- #: includes/admin/settings/jpibfi-selection-settings.php:153
291
  msgid "Disabled classes"
292
  msgstr ""
293
 
294
- #: includes/admin/settings/jpibfi-selection-settings.php:155
295
  msgid "Images with these CSS classes won't show the \"Pin it\" button. Please separate multiple classes with semicolons. Spaces are not accepted."
296
  msgstr ""
297
 
298
- #: includes/admin/settings/jpibfi-selection-settings.php:167
299
  msgid "Enabled classes"
300
  msgstr ""
301
 
302
- #: includes/admin/settings/jpibfi-selection-settings.php:169
303
  msgid "Only images with these CSS classes will show the \"Pin it\" button. Please separate multiple classes with semicolons. If this field is empty, images with any (besides disabled ones) classes will show the Pin It button."
304
  msgstr ""
305
 
306
- #: includes/admin/settings/jpibfi-selection-settings.php:191, includes/admin/settings/jpibfi-selection-settings.php:213, includes/admin/settings/jpibfi-visual-settings.php:375
307
  msgid "Height"
308
  msgstr ""
309
 
310
- #: includes/admin/settings/jpibfi-selection-settings.php:193
311
  msgid "Minimum image height"
312
  msgstr ""
313
 
314
- #: includes/admin/settings/jpibfi-selection-settings.php:201, includes/admin/settings/jpibfi-selection-settings.php:223, includes/admin/settings/jpibfi-visual-settings.php:385
315
  msgid "Width"
316
  msgstr ""
317
 
318
- #: includes/admin/settings/jpibfi-selection-settings.php:203
319
  msgid "Minimum image width"
320
  msgstr ""
321
 
322
- #: includes/admin/settings/jpibfi-selection-settings.php:215
323
  msgid "Minimum image height for mobile"
324
  msgstr ""
325
 
326
- #: includes/admin/settings/jpibfi-selection-settings.php:225
327
  msgid "Minimum image width for mobile"
328
  msgstr ""
329
 
330
- #: includes/admin/settings/jpibfi-selection-settings.php:235
331
  msgid "Show on"
332
  msgstr ""
333
 
334
- #: includes/admin/settings/jpibfi-selection-settings.php:247
335
  msgid "Disable on"
336
  msgstr ""
337
 
338
- #: includes/admin/settings/jpibfi-selection-settings.php:293
339
  msgid "Disable plugin on this post"
340
  msgstr ""
341
 
342
- #: includes/admin/settings/jpibfi-settings-base.php:63
343
- msgid "This feature is available in <a target=\"_blank\" href=\"%s\">the PRO version</a>."
344
  msgstr ""
345
 
346
- #: includes/admin/settings/jpibfi-visual-settings.php:23
347
  msgid "\"Pin it\" button margins"
348
  msgstr ""
349
 
350
- #: includes/admin/settings/jpibfi-visual-settings.php:25
351
  msgid "Margins are used to adjust the position of the \"Pin it\" button, but not all margins are used on all button positions. Here is an example. If you're using the \"%s\" position, the button's position will be affected only by top and left margins. Bottom and right margins affect \"%s\" position, etc. The \"%s\" position does not use any margins at all."
352
  msgstr ""
353
 
354
- #: includes/admin/settings/jpibfi-visual-settings.php:27, includes/admin/settings/jpibfi-visual-settings.php:187
355
  msgid "Top left"
356
  msgstr ""
357
 
358
- #: includes/admin/settings/jpibfi-visual-settings.php:29, includes/admin/settings/jpibfi-visual-settings.php:193
359
  msgid "Bottom right"
360
  msgstr ""
361
 
362
- #: includes/admin/settings/jpibfi-visual-settings.php:31, includes/admin/settings/jpibfi-visual-settings.php:195
363
  msgid "Middle"
364
  msgstr ""
365
 
366
- #: includes/admin/settings/jpibfi-visual-settings.php:35
367
  msgid "Preview"
368
  msgstr ""
369
 
370
- #: includes/admin/settings/jpibfi-visual-settings.php:37
371
  msgid "Mode"
372
  msgstr ""
373
 
374
- #: includes/admin/settings/jpibfi-visual-settings.php:41
375
  msgid "Click the button to choose an image from your WordPress media library. Height and width should fill automatically."
376
  msgstr ""
377
 
378
- #: includes/admin/settings/jpibfi-visual-settings.php:43
379
  msgid "No image to preview"
380
  msgstr ""
381
 
382
- #: includes/admin/settings/jpibfi-visual-settings.php:45
383
  msgid "Upload an image using media library"
384
  msgstr ""
385
 
386
- #: includes/admin/settings/jpibfi-visual-settings.php:47
387
  msgid "Select your custom \"Pin It\" button"
388
  msgstr ""
389
 
390
- #: includes/admin/settings/jpibfi-visual-settings.php:49
391
  msgid "Use as \"Pin It\" button"
392
  msgstr ""
393
 
394
- #: includes/admin/settings/jpibfi-visual-settings.php:53
395
  msgid "Available icons come from the following icon packs: %s and %s."
396
  msgstr ""
397
 
398
- #: includes/admin/settings/jpibfi-visual-settings.php:75
399
  msgid "Visual"
400
  msgstr ""
401
 
402
- #: includes/admin/settings/jpibfi-visual-settings.php:97
403
  msgid "Show button"
404
  msgstr ""
405
 
406
- #: includes/admin/settings/jpibfi-visual-settings.php:101
407
  msgid "On hover"
408
  msgstr ""
409
 
410
- #: includes/admin/settings/jpibfi-visual-settings.php:103
411
  msgid "Always on touch devices"
412
  msgstr ""
413
 
414
- #: includes/admin/settings/jpibfi-visual-settings.php:105
415
  msgid "Always"
416
  msgstr ""
417
 
418
- #: includes/admin/settings/jpibfi-visual-settings.php:109
419
  msgid "When the \"Pin it\" button should be visible."
420
  msgstr ""
421
 
422
- #: includes/admin/settings/jpibfi-visual-settings.php:135
423
  msgid "Bottom"
424
  msgstr ""
425
 
426
- #: includes/admin/settings/jpibfi-visual-settings.php:137
427
  msgid "Button bottom margin"
428
  msgstr ""
429
 
430
- #: includes/admin/settings/jpibfi-visual-settings.php:147
431
  msgid "Top"
432
  msgstr ""
433
 
434
- #: includes/admin/settings/jpibfi-visual-settings.php:149
435
  msgid "Button top margin"
436
  msgstr ""
437
 
438
- #: includes/admin/settings/jpibfi-visual-settings.php:159
439
  msgid "Left"
440
  msgstr ""
441
 
442
- #: includes/admin/settings/jpibfi-visual-settings.php:161
443
  msgid "Button left margin"
444
  msgstr ""
445
 
446
- #: includes/admin/settings/jpibfi-visual-settings.php:171
447
  msgid "Right"
448
  msgstr ""
449
 
450
- #: includes/admin/settings/jpibfi-visual-settings.php:173
451
  msgid "Button right margin"
452
  msgstr ""
453
 
454
- #: includes/admin/settings/jpibfi-visual-settings.php:183
455
  msgid "\"Pin it\" button position"
456
  msgstr ""
457
 
458
- #: includes/admin/settings/jpibfi-visual-settings.php:189
459
  msgid "Top right"
460
  msgstr ""
461
 
462
- #: includes/admin/settings/jpibfi-visual-settings.php:191
463
  msgid "Bottom left"
464
  msgstr ""
465
 
466
- #: includes/admin/settings/jpibfi-visual-settings.php:199
467
  msgid "Where the \"Pin it\" button should appear on the image."
468
  msgstr ""
469
 
470
- #: includes/admin/settings/jpibfi-visual-settings.php:211
471
  msgid "Description source"
472
  msgstr ""
473
 
474
- #: includes/admin/settings/jpibfi-visual-settings.php:215
475
  msgid "Post title"
476
  msgstr ""
477
 
478
- #: includes/admin/settings/jpibfi-visual-settings.php:217
479
  msgid "Post description (excerpt)"
480
  msgstr ""
481
 
482
- #: includes/admin/settings/jpibfi-visual-settings.php:219
483
  msgid "Image title attribute"
484
  msgstr ""
485
 
486
- #: includes/admin/settings/jpibfi-visual-settings.php:221
487
  msgid "Site title (Settings->General)"
488
  msgstr ""
489
 
490
- #: includes/admin/settings/jpibfi-visual-settings.php:223
491
  msgid "Image description"
492
  msgstr ""
493
 
494
- #: includes/admin/settings/jpibfi-visual-settings.php:225
495
  msgid "Image caption"
496
  msgstr ""
497
 
498
- #: includes/admin/settings/jpibfi-visual-settings.php:227
499
  msgid "Image alt attribute"
500
  msgstr ""
501
 
502
- #: includes/admin/settings/jpibfi-visual-settings.php:229
503
  msgid "data-pin-description (Pinterest's custom attribute)"
504
  msgstr ""
505
 
506
- #: includes/admin/settings/jpibfi-visual-settings.php:233
507
  msgid "From where the Pinterest message should be taken. Check which sources should be considered and prioritize them by dragging and dropping. The description will come from the top source that has data. Please note that \"Image description\" and \"Image caption\" work properly only for images that were added to your Media Library."
508
  msgstr ""
509
 
510
- #: includes/admin/settings/jpibfi-visual-settings.php:245
511
  msgid "Transparency"
512
  msgstr ""
513
 
514
- #: includes/admin/settings/jpibfi-visual-settings.php:247
515
  msgid "Choose transparency (between %.02f and %.02f)"
516
  msgstr ""
517
 
518
- #: includes/admin/settings/jpibfi-visual-settings.php:265
519
  msgid "Pin image"
520
  msgstr ""
521
 
522
- #: includes/admin/settings/jpibfi-visual-settings.php:269
523
  msgid "Old default"
524
  msgstr ""
525
 
526
- #: includes/admin/settings/jpibfi-visual-settings.php:271
527
  msgid "Default"
528
  msgstr ""
529
 
530
- #: includes/admin/settings/jpibfi-visual-settings.php:273
531
  msgid "Custom"
532
  msgstr ""
533
 
534
- #: includes/admin/settings/jpibfi-visual-settings.php:287
535
  msgid "Button"
536
  msgstr ""
537
 
538
- #: includes/admin/settings/jpibfi-visual-settings.php:291
539
  msgid "Square"
540
  msgstr ""
541
 
542
- #: includes/admin/settings/jpibfi-visual-settings.php:293
543
  msgid "Rounded square"
544
  msgstr ""
545
 
546
- #: includes/admin/settings/jpibfi-visual-settings.php:295
547
  msgid "Round"
548
  msgstr ""
549
 
550
- #: includes/admin/settings/jpibfi-visual-settings.php:297
551
  msgid "Rectangle"
552
  msgstr ""
553
 
554
- #: includes/admin/settings/jpibfi-visual-settings.php:299
555
  msgid "Rounded rectangle"
556
  msgstr ""
557
 
558
- #: includes/admin/settings/jpibfi-visual-settings.php:313
559
  msgid "Icon"
560
  msgstr ""
561
 
562
- #: includes/admin/settings/jpibfi-visual-settings.php:317
563
  msgid "Circle"
564
  msgstr ""
565
 
566
- #: includes/admin/settings/jpibfi-visual-settings.php:319
567
  msgid "Plain"
568
  msgstr ""
569
 
570
- #: includes/admin/settings/jpibfi-visual-settings.php:321
571
  msgid "Thumbtack"
572
  msgstr ""
573
 
574
- #: includes/admin/settings/jpibfi-visual-settings.php:323
575
  msgid "Thumbtack #2"
576
  msgstr ""
577
 
578
- #: includes/admin/settings/jpibfi-visual-settings.php:325
579
  msgid "Classic"
580
  msgstr ""
581
 
582
- #: includes/admin/settings/jpibfi-visual-settings.php:339
583
  msgid "Size"
584
  msgstr ""
585
 
586
- #: includes/admin/settings/jpibfi-visual-settings.php:343
587
  msgid "Small"
588
  msgstr ""
589
 
590
- #: includes/admin/settings/jpibfi-visual-settings.php:345
591
  msgid "Normal"
592
  msgstr ""
593
 
594
- #: includes/admin/settings/jpibfi-visual-settings.php:347
595
  msgid "Large"
596
  msgstr ""
597
 
598
- #: includes/admin/settings/jpibfi-visual-settings.php:361
599
  msgid "URL address of the image"
600
  msgstr ""
601
 
602
- #: includes/admin/settings/jpibfi-visual-settings.php:377
603
  msgid "Custom image height"
604
  msgstr ""
605
 
606
- #: includes/admin/settings/jpibfi-visual-settings.php:387
607
  msgid "Custom image width"
608
  msgstr ""
609
 
610
- #: includes/admin/settings/jpibfi-visual-settings.php:397
611
  msgid "Scale Pin Image"
612
  msgstr ""
613
 
614
- #: includes/admin/settings/jpibfi-visual-settings.php:401
615
  msgid "When checked, the \"Pin it\" button will scale down in size for smaller screens, ensuring best user experience. Left unchecked, the \"Pin it\" button will show up in full size no matter the screen size."
616
  msgstr ""
617
 
618
- #: includes/admin/settings/jpibfi-visual-settings.php:413
619
  msgid "Pin linked URL"
620
  msgstr ""
621
 
622
- #: includes/admin/settings/jpibfi-visual-settings.php:417
623
  msgid "When checked, if the image links to another URL in your domain, that URL goes to Pinterest instead of the current one."
624
  msgstr ""
625
 
1
+ # Copyright (C) 2020 jquery-pin-it-button-for-images
2
  # This file is distributed under the same license as the jquery-pin-it-button-for-images package.
3
  msgid ""
4
  msgstr ""
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
9
+ "PO-Revision-Date: 2020-MO-DA HO:MI+ZONE\n"
10
  "Language-Team: Marcin Skrzypiec\n"
11
  "X-Poedit-Basepath: ..\n"
12
  "X-Poedit-SourceCharset: UTF-8\n"
15
  "X-Poedit-SearchPathExcluded-0: *.js\n"
16
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
17
 
18
+ #: includes/admin/JPIBFI_Welcome_Screen.php:25, includes/admin/JPIBFI_Welcome_Screen.php:26
 
 
 
 
19
  msgid "Welcome to jQuery Pin It Button for Images"
20
  msgstr ""
21
 
22
+ #: includes/admin/JPIBFI_Welcome_Screen.php:39
23
  msgid "Welcome to %s&nbsp;%s"
24
  msgstr ""
25
 
26
+ #: includes/admin/JPIBFI_Welcome_Screen.php:41
27
  msgid "Thank you for updating to the latest version! %s helps your readers share your images using Pinterest."
28
  msgstr ""
29
 
30
+ #: includes/admin/JPIBFI_Welcome_Screen.php:46, includes/admin/jpibfi-admin.php:37, includes/admin/settings/jpibfi-visual-settings.php:20
31
  msgid "Settings"
32
  msgstr ""
33
 
34
+ #: includes/admin/JPIBFI_Welcome_Screen.php:47
35
  msgid "The most important part of the plugin is the settings panel."
36
  msgstr ""
37
 
38
+ #: includes/admin/JPIBFI_Welcome_Screen.php:52
39
  msgid "Finding the settings panel"
40
  msgstr ""
41
 
42
+ #: includes/admin/JPIBFI_Welcome_Screen.php:53
43
  msgid "You can find the plugin's settings panel in the <b>Settings</b> submenu under the name <b>%s</b>. There you can find all the settings the plugin allows you to adjust. All settings are divided into several tabs so you can find what you're looking for easily."
44
  msgstr ""
45
 
46
+ #: includes/admin/JPIBFI_Welcome_Screen.php:60
47
  msgid "Settings link"
48
  msgstr ""
49
 
50
+ #: includes/admin/JPIBFI_Welcome_Screen.php:64
51
  msgid "Everything at hand"
52
  msgstr ""
53
 
54
+ #: includes/admin/JPIBFI_Welcome_Screen.php:65
55
  msgid "You can find all the links mentioned below in the settings panel."
56
  msgstr ""
57
 
58
+ #: includes/admin/JPIBFI_Welcome_Screen.php:68
59
  msgid "Settings tabs"
60
  msgstr ""
61
 
62
+ #: includes/admin/JPIBFI_Welcome_Screen.php:73, includes/admin/settings/jpibfi-selection-settings.php:26
63
  msgid "Selection settings"
64
  msgstr ""
65
 
66
+ #: includes/admin/JPIBFI_Welcome_Screen.php:74
67
  msgid "In this tab you choose which images should feature the \"Pin it\" button. You can choose images with specific classes or set up a minimum image resolution to prevent the button from showing up on small images. You can also choose on which pages the \"Pin it\" button should show up."
68
  msgstr ""
69
 
70
+ #: includes/admin/JPIBFI_Welcome_Screen.php:75
71
  msgid "<a href=\"%s\" class=\"button button-primary\">Go to Selection settings</a>"
72
  msgstr ""
73
 
74
+ #: includes/admin/JPIBFI_Welcome_Screen.php:78
75
  msgid "Visual settings"
76
  msgstr ""
77
 
78
+ #: includes/admin/JPIBFI_Welcome_Screen.php:79
79
  msgid "This tab helps you configure how the \"Pin it\" button looks like and where it appears. If you want to use your own \"Pin it\" icon or make the button show up in the upper right corner of the image, this is the tab you are looking for."
80
  msgstr ""
81
 
82
+ #: includes/admin/JPIBFI_Welcome_Screen.php:80
83
  msgid "<a href=\"%s\" class=\"button button-primary\">Go to Visual settings</a>"
84
  msgstr ""
85
 
86
+ #: includes/admin/JPIBFI_Welcome_Screen.php:85, includes/admin/settings/jpibfi-advanced-settings.php:12
87
  msgid "Advanced settings"
88
  msgstr ""
89
 
90
+ #: includes/admin/JPIBFI_Welcome_Screen.php:86
91
  msgid "In most cases you won't have to visit this tab ever. It features a few advanced settings used in most cases to resolve conflicts with other plugins."
92
  msgstr ""
93
 
94
+ #: includes/admin/JPIBFI_Welcome_Screen.php:87
95
  msgid "<a href=\"%s\" class=\"button button-primary\">Go to Advanced settings</a>"
96
  msgstr ""
97
 
98
+ #: includes/admin/JPIBFI_Welcome_Screen.php:90, includes/admin/settings/jpibfi-import-export-settings.php:88
99
  msgid "Import/Export"
100
  msgstr ""
101
 
102
+ #: includes/admin/JPIBFI_Welcome_Screen.php:91
103
  msgid "If you would like to quickly copy the plugin's settings to another instance of WordPress, that's the place for you. You can download a file with your current settings and import it to another instance easily."
104
  msgstr ""
105
 
106
+ #: includes/admin/JPIBFI_Welcome_Screen.php:92
107
  msgid "<a href=\"%s\" class=\"button button-primary\">Go to Import/Export</a>"
108
  msgstr ""
109
 
110
+ #: includes/admin/JPIBFI_Welcome_Screen.php:99
111
  msgid "Finding help"
112
  msgstr ""
113
 
114
+ #: includes/admin/JPIBFI_Welcome_Screen.php:100
115
  msgid "If you're stuck and can't get the plugin to work the way you want it to, get help!"
116
  msgstr ""
117
 
118
+ #: includes/admin/JPIBFI_Welcome_Screen.php:105, includes/admin/jpibfi-admin.php:103
119
  msgid "Documentation"
120
  msgstr ""
121
 
122
+ #: includes/admin/JPIBFI_Welcome_Screen.php:106
123
  msgid "If you are having difficulties with some aspects of the plugin, the first place to look for help is <a href=\"%s\" target=\"_blank\">the documentation</a> of the plugin. Chances are you will find what you are looking for there."
124
  msgstr ""
125
 
126
+ #: includes/admin/JPIBFI_Welcome_Screen.php:109, includes/admin/jpibfi-admin.php:107
127
  msgid "Support"
128
  msgstr ""
129
 
130
+ #: includes/admin/JPIBFI_Welcome_Screen.php:111
131
  msgid "Users of the free version of the plugin can find support <a href=\"%s\" target=\"_blank\">in the support forum</a>. When posting to the support forum, make sure you include the URL of your website."
132
  msgstr ""
133
 
134
+ #: includes/admin/JPIBFI_Welcome_Screen.php:117
135
  msgid "Next steps"
136
  msgstr ""
137
 
138
+ #: includes/admin/JPIBFI_Welcome_Screen.php:119
139
  msgid "In most cases, the plugin is ready to go without any configuration. If there is anything you would like to change, go to the <a href=\"%s\">Settings panel</a>."
140
  msgstr ""
141
 
142
+ #: includes/admin/jpibfi-admin.php:124, includes/admin/settings/jpibfi-settings-base.php:30
143
  msgid "Save Changes"
144
  msgstr ""
145
 
146
+ #: includes/admin/jpibfi-admin.php:130
147
  msgid "Saving changes ..."
148
  msgstr ""
149
 
150
+ #: includes/admin/jpibfi-admin.php:160
151
  msgid "jQuery Pin It Button For Images Options"
152
  msgstr ""
153
 
154
+ #: includes/admin/jpibfi-admin.php:163
155
  msgid "If you cannot see the settings page, <a href=\"%s\" target=\"_blank\">click here</a>"
156
  msgstr ""
157
 
158
+ #: includes/admin/settings/jpibfi-advanced-settings.php:13
 
 
 
 
159
  msgid "Filters"
160
  msgstr ""
161
 
162
+ #: includes/admin/settings/jpibfi-advanced-settings.php:16
163
  msgid "You can enabled or disable if the plugin should use a certain filter and change the priority setting. Read more about filters <a href=\"%s\" target=\"_blank\">here</a>. By default all 3 filters are active with the priority of 10."
164
  msgstr ""
165
 
166
+ #: includes/admin/settings/jpibfi-advanced-settings.php:19
167
  msgid "%name% with priority of %priority%"
168
  msgstr ""
169
 
170
+ #: includes/admin/settings/jpibfi-advanced-settings.php:27
171
  msgid "Advanced"
172
  msgstr ""
173
 
174
+ #: includes/admin/settings/jpibfi-advanced-settings.php:45
175
  msgid "the_content priority"
176
  msgstr ""
177
 
178
+ #: includes/admin/settings/jpibfi-advanced-settings.php:57
179
  msgid "the_excerpt priority"
180
  msgstr ""
181
 
182
+ #: includes/admin/settings/jpibfi-advanced-settings.php:69
183
  msgid "post_thumbnail_html priority"
184
  msgstr ""
185
 
186
+ #: includes/admin/settings/jpibfi-advanced-settings.php:75
187
  msgid "Scroll selector"
188
  msgstr ""
189
 
190
+ #: includes/admin/settings/jpibfi-advanced-settings.php:76
191
  msgid "Additional scroll selector for \"Always\" and \"Always on touch devices\" Show Button settings."
192
  msgstr ""
193
 
194
+ #: includes/admin/settings/jpibfi-advanced-settings.php:82
195
  msgid "Custom CSS"
196
  msgstr ""
197
 
198
+ #: includes/admin/settings/jpibfi-advanced-settings.php:83
199
  msgid "Additional CSS that prevents the \"Pin it\" button from rendering incorrectly on some themes."
200
  msgstr ""
201
 
202
+ #: includes/admin/settings/jpibfi-advanced-settings.php:88
203
  msgid "Support Srcset Attribute"
204
  msgstr ""
205
 
206
+ #: includes/admin/settings/jpibfi-advanced-settings.php:89, includes/admin/settings/jpibfi-visual-settings.php:200, includes/admin/settings/jpibfi-visual-settings.php:208
207
  msgid "Active"
208
  msgstr ""
209
 
210
+ #: includes/admin/settings/jpibfi-advanced-settings.php:90
211
  msgid "When checked, the plugin will try to find the best quality image to pin using the srcset attribute generated by WordPress. Useful when you want people to pin bigger version of the image than you embed on the page."
212
  msgstr ""
213
 
214
+ #: includes/admin/settings/jpibfi-import-export-settings.php:32
215
  msgid "The file did not upload properly. Please try again."
216
  msgstr ""
217
 
218
+ #: includes/admin/settings/jpibfi-import-export-settings.php:40
219
  msgid "The export file could not be found at <code>%s</code>. It is likely that this was caused by a permissions problem."
220
  msgstr ""
221
 
222
+ #: includes/admin/settings/jpibfi-import-export-settings.php:47
223
  msgid "The path is not a file, please try again."
224
  msgstr ""
225
 
226
+ #: includes/admin/settings/jpibfi-import-export-settings.php:74
227
  msgid "Export"
228
  msgstr ""
229
 
230
+ #: includes/admin/settings/jpibfi-import-export-settings.php:76
231
  msgid "Download Export File"
232
  msgstr ""
233
 
234
+ #: includes/admin/settings/jpibfi-import-export-settings.php:78
235
  msgid "Import"
236
  msgstr ""
237
 
238
+ #: includes/admin/settings/jpibfi-import-export-settings.php:79
239
  msgid "Import Settings"
240
  msgstr ""
241
 
242
+ #: includes/admin/settings/jpibfi-selection-settings.php:14
243
  msgid "jQuery Pin It Button for Images Settings"
244
  msgstr ""
245
 
246
+ #: includes/admin/settings/jpibfi-selection-settings.php:27
247
  msgid "Minimum image resolution"
248
  msgstr ""
249
 
250
+ #: includes/admin/settings/jpibfi-selection-settings.php:28
251
  msgid "Use this settings to hide the \"Pin it\" button on small images (e.g. social media icons)."
252
  msgstr ""
253
 
254
+ #: includes/admin/settings/jpibfi-selection-settings.php:29
255
  msgid "* - screen that is less than 768 pixels wide"
256
  msgstr ""
257
 
258
+ #: includes/admin/settings/jpibfi-selection-settings.php:30
259
  msgid "For small screens* the \"Pin it\" button will show up if the image is at least %height% pixels high and %width% pixels wide."
260
  msgstr ""
261
 
262
+ #: includes/admin/settings/jpibfi-selection-settings.php:31
263
  msgid "Otherwise, the \"Pin it\" button will show up if the image is at least %height% pixels high and %width% pixels wide."
264
  msgstr ""
265
 
266
+ #: includes/admin/settings/jpibfi-selection-settings.php:33
267
  msgid "On which pages the \"Pin it\" button should be shown"
268
  msgstr ""
269
 
270
+ #: includes/admin/settings/jpibfi-selection-settings.php:53
271
  msgid "Selection"
272
  msgstr ""
273
 
274
+ #: includes/admin/settings/jpibfi-selection-settings.php:64
275
  msgid "Image selector"
276
  msgstr ""
277
 
278
+ #: includes/admin/settings/jpibfi-selection-settings.php:65
279
  msgid "jQuery selector for all the images that should have the \"Pin it\" button. Set the value to %s if you want the \"Pin it\" button to appear only on images in content or %s to appear on all images on site (including sidebar, header and footer). If you know a thing or two about jQuery, you might use your own selector. %sClick here%s to read about jQuery selectors."
280
  msgstr ""
281
 
282
+ #: includes/admin/settings/jpibfi-selection-settings.php:77
283
  msgid "Disabled classes"
284
  msgstr ""
285
 
286
+ #: includes/admin/settings/jpibfi-selection-settings.php:78
287
  msgid "Images with these CSS classes won't show the \"Pin it\" button. Please separate multiple classes with semicolons. Spaces are not accepted."
288
  msgstr ""
289
 
290
+ #: includes/admin/settings/jpibfi-selection-settings.php:84
291
  msgid "Enabled classes"
292
  msgstr ""
293
 
294
+ #: includes/admin/settings/jpibfi-selection-settings.php:85
295
  msgid "Only images with these CSS classes will show the \"Pin it\" button. Please separate multiple classes with semicolons. If this field is empty, images with any (besides disabled ones) classes will show the Pin It button."
296
  msgstr ""
297
 
298
+ #: includes/admin/settings/jpibfi-selection-settings.php:96, includes/admin/settings/jpibfi-selection-settings.php:107, includes/admin/settings/jpibfi-visual-settings.php:188
299
  msgid "Height"
300
  msgstr ""
301
 
302
+ #: includes/admin/settings/jpibfi-selection-settings.php:97
303
  msgid "Minimum image height"
304
  msgstr ""
305
 
306
+ #: includes/admin/settings/jpibfi-selection-settings.php:101, includes/admin/settings/jpibfi-selection-settings.php:112, includes/admin/settings/jpibfi-visual-settings.php:193
307
  msgid "Width"
308
  msgstr ""
309
 
310
+ #: includes/admin/settings/jpibfi-selection-settings.php:102
311
  msgid "Minimum image width"
312
  msgstr ""
313
 
314
+ #: includes/admin/settings/jpibfi-selection-settings.php:108
315
  msgid "Minimum image height for mobile"
316
  msgstr ""
317
 
318
+ #: includes/admin/settings/jpibfi-selection-settings.php:113
319
  msgid "Minimum image width for mobile"
320
  msgstr ""
321
 
322
+ #: includes/admin/settings/jpibfi-selection-settings.php:118
323
  msgid "Show on"
324
  msgstr ""
325
 
326
+ #: includes/admin/settings/jpibfi-selection-settings.php:124
327
  msgid "Disable on"
328
  msgstr ""
329
 
330
+ #: includes/admin/settings/jpibfi-selection-settings.php:147
331
  msgid "Disable plugin on this post"
332
  msgstr ""
333
 
334
+ #: includes/admin/settings/jpibfi-settings-base.php:31
335
+ msgid "This feature is not available in the free version."
336
  msgstr ""
337
 
338
+ #: includes/admin/settings/jpibfi-visual-settings.php:12
339
  msgid "\"Pin it\" button margins"
340
  msgstr ""
341
 
342
+ #: includes/admin/settings/jpibfi-visual-settings.php:13
343
  msgid "Margins are used to adjust the position of the \"Pin it\" button, but not all margins are used on all button positions. Here is an example. If you're using the \"%s\" position, the button's position will be affected only by top and left margins. Bottom and right margins affect \"%s\" position, etc. The \"%s\" position does not use any margins at all."
344
  msgstr ""
345
 
346
+ #: includes/admin/settings/jpibfi-visual-settings.php:14, includes/admin/settings/jpibfi-visual-settings.php:94
347
  msgid "Top left"
348
  msgstr ""
349
 
350
+ #: includes/admin/settings/jpibfi-visual-settings.php:15, includes/admin/settings/jpibfi-visual-settings.php:97
351
  msgid "Bottom right"
352
  msgstr ""
353
 
354
+ #: includes/admin/settings/jpibfi-visual-settings.php:16, includes/admin/settings/jpibfi-visual-settings.php:98
355
  msgid "Middle"
356
  msgstr ""
357
 
358
+ #: includes/admin/settings/jpibfi-visual-settings.php:18
359
  msgid "Preview"
360
  msgstr ""
361
 
362
+ #: includes/admin/settings/jpibfi-visual-settings.php:19
363
  msgid "Mode"
364
  msgstr ""
365
 
366
+ #: includes/admin/settings/jpibfi-visual-settings.php:21
367
  msgid "Click the button to choose an image from your WordPress media library. Height and width should fill automatically."
368
  msgstr ""
369
 
370
+ #: includes/admin/settings/jpibfi-visual-settings.php:22
371
  msgid "No image to preview"
372
  msgstr ""
373
 
374
+ #: includes/admin/settings/jpibfi-visual-settings.php:23
375
  msgid "Upload an image using media library"
376
  msgstr ""
377
 
378
+ #: includes/admin/settings/jpibfi-visual-settings.php:24
379
  msgid "Select your custom \"Pin It\" button"
380
  msgstr ""
381
 
382
+ #: includes/admin/settings/jpibfi-visual-settings.php:25
383
  msgid "Use as \"Pin It\" button"
384
  msgstr ""
385
 
386
+ #: includes/admin/settings/jpibfi-visual-settings.php:27
387
  msgid "Available icons come from the following icon packs: %s and %s."
388
  msgstr ""
389
 
390
+ #: includes/admin/settings/jpibfi-visual-settings.php:38
391
  msgid "Visual"
392
  msgstr ""
393
 
394
+ #: includes/admin/settings/jpibfi-visual-settings.php:49
395
  msgid "Show button"
396
  msgstr ""
397
 
398
+ #: includes/admin/settings/jpibfi-visual-settings.php:51
399
  msgid "On hover"
400
  msgstr ""
401
 
402
+ #: includes/admin/settings/jpibfi-visual-settings.php:52
403
  msgid "Always on touch devices"
404
  msgstr ""
405
 
406
+ #: includes/admin/settings/jpibfi-visual-settings.php:53
407
  msgid "Always"
408
  msgstr ""
409
 
410
+ #: includes/admin/settings/jpibfi-visual-settings.php:55
411
  msgid "When the \"Pin it\" button should be visible."
412
  msgstr ""
413
 
414
+ #: includes/admin/settings/jpibfi-visual-settings.php:68
415
  msgid "Bottom"
416
  msgstr ""
417
 
418
+ #: includes/admin/settings/jpibfi-visual-settings.php:69
419
  msgid "Button bottom margin"
420
  msgstr ""
421
 
422
+ #: includes/admin/settings/jpibfi-visual-settings.php:74
423
  msgid "Top"
424
  msgstr ""
425
 
426
+ #: includes/admin/settings/jpibfi-visual-settings.php:75
427
  msgid "Button top margin"
428
  msgstr ""
429
 
430
+ #: includes/admin/settings/jpibfi-visual-settings.php:80
431
  msgid "Left"
432
  msgstr ""
433
 
434
+ #: includes/admin/settings/jpibfi-visual-settings.php:81
435
  msgid "Button left margin"
436
  msgstr ""
437
 
438
+ #: includes/admin/settings/jpibfi-visual-settings.php:86
439
  msgid "Right"
440
  msgstr ""
441
 
442
+ #: includes/admin/settings/jpibfi-visual-settings.php:87
443
  msgid "Button right margin"
444
  msgstr ""
445
 
446
+ #: includes/admin/settings/jpibfi-visual-settings.php:92
447
  msgid "\"Pin it\" button position"
448
  msgstr ""
449
 
450
+ #: includes/admin/settings/jpibfi-visual-settings.php:95
451
  msgid "Top right"
452
  msgstr ""
453
 
454
+ #: includes/admin/settings/jpibfi-visual-settings.php:96
455
  msgid "Bottom left"
456
  msgstr ""
457
 
458
+ #: includes/admin/settings/jpibfi-visual-settings.php:100
459
  msgid "Where the \"Pin it\" button should appear on the image."
460
  msgstr ""
461
 
462
+ #: includes/admin/settings/jpibfi-visual-settings.php:106
463
  msgid "Description source"
464
  msgstr ""
465
 
466
+ #: includes/admin/settings/jpibfi-visual-settings.php:108
467
  msgid "Post title"
468
  msgstr ""
469
 
470
+ #: includes/admin/settings/jpibfi-visual-settings.php:109
471
  msgid "Post description (excerpt)"
472
  msgstr ""
473
 
474
+ #: includes/admin/settings/jpibfi-visual-settings.php:110
475
  msgid "Image title attribute"
476
  msgstr ""
477
 
478
+ #: includes/admin/settings/jpibfi-visual-settings.php:111
479
  msgid "Site title (Settings->General)"
480
  msgstr ""
481
 
482
+ #: includes/admin/settings/jpibfi-visual-settings.php:112
483
  msgid "Image description"
484
  msgstr ""
485
 
486
+ #: includes/admin/settings/jpibfi-visual-settings.php:113
487
  msgid "Image caption"
488
  msgstr ""
489
 
490
+ #: includes/admin/settings/jpibfi-visual-settings.php:114
491
  msgid "Image alt attribute"
492
  msgstr ""
493
 
494
+ #: includes/admin/settings/jpibfi-visual-settings.php:115
495
  msgid "data-pin-description (Pinterest's custom attribute)"
496
  msgstr ""
497
 
498
+ #: includes/admin/settings/jpibfi-visual-settings.php:117
499
  msgid "From where the Pinterest message should be taken. Check which sources should be considered and prioritize them by dragging and dropping. The description will come from the top source that has data. Please note that \"Image description\" and \"Image caption\" work properly only for images that were added to your Media Library."
500
  msgstr ""
501
 
502
+ #: includes/admin/settings/jpibfi-visual-settings.php:123
503
  msgid "Transparency"
504
  msgstr ""
505
 
506
+ #: includes/admin/settings/jpibfi-visual-settings.php:124
507
  msgid "Choose transparency (between %.02f and %.02f)"
508
  msgstr ""
509
 
510
+ #: includes/admin/settings/jpibfi-visual-settings.php:133
511
  msgid "Pin image"
512
  msgstr ""
513
 
514
+ #: includes/admin/settings/jpibfi-visual-settings.php:135
515
  msgid "Old default"
516
  msgstr ""
517
 
518
+ #: includes/admin/settings/jpibfi-visual-settings.php:136
519
  msgid "Default"
520
  msgstr ""
521
 
522
+ #: includes/admin/settings/jpibfi-visual-settings.php:137
523
  msgid "Custom"
524
  msgstr ""
525
 
526
+ #: includes/admin/settings/jpibfi-visual-settings.php:144
527
  msgid "Button"
528
  msgstr ""
529
 
530
+ #: includes/admin/settings/jpibfi-visual-settings.php:146
531
  msgid "Square"
532
  msgstr ""
533
 
534
+ #: includes/admin/settings/jpibfi-visual-settings.php:147
535
  msgid "Rounded square"
536
  msgstr ""
537
 
538
+ #: includes/admin/settings/jpibfi-visual-settings.php:148
539
  msgid "Round"
540
  msgstr ""
541
 
542
+ #: includes/admin/settings/jpibfi-visual-settings.php:149
543
  msgid "Rectangle"
544
  msgstr ""
545
 
546
+ #: includes/admin/settings/jpibfi-visual-settings.php:150
547
  msgid "Rounded rectangle"
548
  msgstr ""
549
 
550
+ #: includes/admin/settings/jpibfi-visual-settings.php:157
551
  msgid "Icon"
552
  msgstr ""
553
 
554
+ #: includes/admin/settings/jpibfi-visual-settings.php:159
555
  msgid "Circle"
556
  msgstr ""
557
 
558
+ #: includes/admin/settings/jpibfi-visual-settings.php:160
559
  msgid "Plain"
560
  msgstr ""
561
 
562
+ #: includes/admin/settings/jpibfi-visual-settings.php:161
563
  msgid "Thumbtack"
564
  msgstr ""
565
 
566
+ #: includes/admin/settings/jpibfi-visual-settings.php:162
567
  msgid "Thumbtack #2"
568
  msgstr ""
569
 
570
+ #: includes/admin/settings/jpibfi-visual-settings.php:163
571
  msgid "Classic"
572
  msgstr ""
573
 
574
+ #: includes/admin/settings/jpibfi-visual-settings.php:170
575
  msgid "Size"
576
  msgstr ""
577
 
578
+ #: includes/admin/settings/jpibfi-visual-settings.php:172
579
  msgid "Small"
580
  msgstr ""
581
 
582
+ #: includes/admin/settings/jpibfi-visual-settings.php:173
583
  msgid "Normal"
584
  msgstr ""
585
 
586
+ #: includes/admin/settings/jpibfi-visual-settings.php:174
587
  msgid "Large"
588
  msgstr ""
589
 
590
+ #: includes/admin/settings/jpibfi-visual-settings.php:181
591
  msgid "URL address of the image"
592
  msgstr ""
593
 
594
+ #: includes/admin/settings/jpibfi-visual-settings.php:189
595
  msgid "Custom image height"
596
  msgstr ""
597
 
598
+ #: includes/admin/settings/jpibfi-visual-settings.php:194
599
  msgid "Custom image width"
600
  msgstr ""
601
 
602
+ #: includes/admin/settings/jpibfi-visual-settings.php:199
603
  msgid "Scale Pin Image"
604
  msgstr ""
605
 
606
+ #: includes/admin/settings/jpibfi-visual-settings.php:201
607
  msgid "When checked, the \"Pin it\" button will scale down in size for smaller screens, ensuring best user experience. Left unchecked, the \"Pin it\" button will show up in full size no matter the screen size."
608
  msgstr ""
609
 
610
+ #: includes/admin/settings/jpibfi-visual-settings.php:207
611
  msgid "Pin linked URL"
612
  msgstr ""
613
 
614
+ #: includes/admin/settings/jpibfi-visual-settings.php:209
615
  msgid "When checked, if the image links to another URL in your domain, that URL goes to Pinterest instead of the current one."
616
  msgstr ""
617
 
readme.txt CHANGED
@@ -1,603 +1,607 @@
1
- === jQuery Pin It Button for Images ===
2
- Contributors: mrsztuczkens, redearthdesign, brocheafoin, robertark
3
- Tags: pinterest, pin it, button, image, images, pinit, social media, hover, click, photo, photos
4
- Requires at least: 3.3.0
5
- Tested up to: 5.2.3
6
- Stable tag: 3.0.5
7
- License: GPLv2 or later
8
-
9
- Highlights images on hover and adds a Pinterest "Pin It" button over them for easy pinning.
10
-
11
- == Description ==
12
- If you're looking for an easy way to pin images in your blog posts and pages, this plugin will help you with that. It highlights images and adds a "Pin it" button over them once the user hovers his mouse over an image. Once the user clicks the "Pin it" button, the plugin shows a pop-up window with the image and a description. Everything is ready for pinning, although the user can alter the description.
13
-
14
- The plugin allows you to:
15
-
16
- * choose from where the pin description should be taken
17
- * choose which pictures shouldn't show the "Pin it" button (using classes)
18
- * choose which pictures should show the "Pin it" button (all images, post images, images with certain class(es))
19
- * choose if you want to show the "Pin it" button on home page, single posts, single pages or category pages
20
- * disable showing the button on certain posts and pages
21
- * choose transparency level depending on your needs
22
- * use your own Pinterest button design
23
-
24
- Once you activate the plugin, it's ready to go with the default settings - button appears on all images within the body of your posts/pages that aren't marked with "nopin" or "wp-smiley" classes.
25
-
26
- > <strong>jQuery Pin It Button For Images Pro</strong><br>
27
- > jQuery Pin It Button For Images Pro is available with full support for touch devices. Check it out: https://highfiveplugins.com/downloads/jquery-pin-it-button-for-images-pro/
28
-
29
- **Translators**
30
- - Spanish (es_ES) - Andrew Kurtis [WebHostingHub](http://www.webhostinghub.com/)
31
-
32
- If you want to learn more about the plugin, visit its website: https://highfiveplugins.com/jpibfi/jquery-pin-it-button-for-images-documentation/
33
-
34
- (This plugin is not related to or endorsed by Pinterest or its affiliates)
35
-
36
- == Installation ==
37
-
38
- 1. Upload the folder to the `/wp-content/plugins/` directory
39
- 1. Activate the plugin through the 'Plugins' menu in WordPress
40
- 1. Configuration interface can be found under `Settings - jQuery Pin It Button For Images`. There's also a link to the plugin settings in the "Installed plugins" menu.
41
-
42
- == Frequently Asked Questions ==
43
-
44
- = Where can I change the plugins settings? =
45
-
46
- Configuration interface can be found under `Settings - jQuery Pin It Button For Images`. There's also a link to the plugin settings in the "Installed plugins" menu.
47
-
48
- = How do I add the button only to specific images? =
49
- On the plugin settings page, there is a "Enabled classes" setting. Please enter there a class (or classes) that should show the "Pin it" button. Please note that images that don't contain any of the classes added in this setting won't show the "Pin it" button.
50
-
51
- = How do I disable the button on specific images? =
52
- Use the "Disabled classes" setting on the settings page - add there specific classes or use the "nopin" class.
53
-
54
- = Can I use my own "Pin it" button design? =
55
- Yes. On the settings page, there's a section named "Custom Pit It button". You need to check the Use custom image checkbox and provide a URL address of the image, image's width and height.
56
-
57
- To upload you own image, you can use **Media Library** on your Wordpress installation or an image hosting service like **Photobucket**. Make sure you provide the proper address, width and height of the image. Otherwise, the button won't be displayed properly or won't be displayed at all.
58
-
59
- = Where do I report bugs, improvements and suggestions? =
60
- Please report them in the plugin's support forum on Wordpress.org.
61
-
62
- == Screenshots ==
63
-
64
- 1. Base image in a blog post
65
- 2. Highlighted image and "Pin it" button on hover
66
- 3. Settings panel
67
- 4. Pinterest pop-up window
68
-
69
- == Changelog ==
70
-
71
- = 3.0.5 =
72
- * Released 2019-09-15
73
- * Improvements to how enabled and disabled classes work
74
- * Fixed button sizing for Gutenberg galleries
75
-
76
- = 3.0.4 =
77
- * Released 2019-02-25
78
- * Removed advertisement link
79
-
80
- = 3.0.3 =
81
- * Released 2018-11-25
82
- * Fixed an issue with srcset attribute
83
-
84
- = 3.0.2 =
85
- * Released 2018-10-28
86
- * Added support for data-pin-media and data-pin-url attributes.
87
-
88
- = 3.0.1 =
89
- * Released 2018-10-07
90
- * Added the option to turn off pinning linked URLs.
91
-
92
- = 3.0.0 =
93
- * Released 2018-09-30
94
- * Removed "Pin linked images" setting. It now automatically picks up linked images as the full-sized version of the image.
95
- * If the image links to another URL, that URL goes to Pinterest instead of the current one.
96
- * Reworked "Pin it" button sizing and cut the amount of CSS significantly
97
- * [Pro] Added support for repinning images
98
- * [Pro] Added support for scaling down the size of "Pin it" button for smaller screens
99
- * [Pro] Added support for srcset attribute.
100
-
101
- = 2.4.3 =
102
- * Released 2018-05-13
103
- * Added additional CSS clauses to prevent rendering errors on some themes
104
-
105
- = 2.4.2 =
106
- * Released 2018-03-16
107
- * Added support for data-pin-description attribute
108
- * Fixed pro version nag interval
109
-
110
- = 2.4.0 =
111
- * Released 2018-02-26
112
- * Added support for custom showing and disabling the plugin on custom post types
113
-
114
- = 2.3.4 =
115
- * Released 2017-12-13
116
- * Minor bug fix related to getting image source
117
-
118
- = 2.3.3 =
119
- * Released 2017-07-18
120
- * Another Visual Tab Bug Fix
121
-
122
- = 2.3.2 =
123
- * Released 2017-07-12
124
- * Visual Tab Bug Fix
125
-
126
- = 2.3.1 =
127
- * Released 2017-07-09
128
- * Settings panel code rework
129
- * Fixed issue with disabling review nag
130
-
131
- = 2.3.0 =
132
- * Released 2017-06-03
133
- * Moved client script to footer
134
- * Added warning if settings page does not work
135
-
136
- = 2.2.10 =
137
- * Released 2017-04-21
138
- * Minor JavaScript improvements
139
-
140
- = 2.2.9 =
141
- * Released 2017-03-27
142
- * Fixed one major JS bug
143
-
144
- = 2.2.8 =
145
- * Released 2017-03-26
146
- * Fixed issue with JS error on client
147
- * Fixed issue with using multiple enabled classes
148
-
149
- = 2.2.7 =
150
- * Released 2017-03-06
151
- * Turned off minification of JS admin file to fix Cloudflare issues
152
-
153
- = 2.2.6 =
154
- * Released 2017-02-16
155
- * Fixed conflict with other plugins that use angular
156
-
157
- = 2.2.5 =
158
- * Released 2017-01-31
159
- * Fixed issue with updating the settings
160
-
161
- = 2.2.4 =
162
- * Released 2017-01-30
163
- * Fix to support old versions of PHP
164
-
165
- = 2.2.3 =
166
- * Released 2017-01-29
167
- * Minor cleanup
168
- * Enhanced type checking to reduce errors caused by type mismatch even further
169
-
170
- = 2.2.1 =
171
- * Released 2017-01-22
172
- * Fixed issue with saving custom images
173
-
174
- = 2.2.0 =
175
- * Released 2017-01-21
176
- * Settings panel switched to saving via form submit instead of an Ajax request to avoid conflicts with security plugins
177
- * Settings panel cleanup
178
-
179
- = 2.1.3 =
180
- * Released 2017-01-12
181
- * Added ability to disable the plugin on certain filters and changing filters priority
182
- * Added strong type checking in settings to reduce errors caused by type mismatch
183
-
184
- = 2.1.2 =
185
- * Released 2016-12-07
186
- * Minor bug fixes
187
-
188
- = 2.1.1 =
189
- * Released 2016-11-11
190
- * Fixed issue with double icons
191
- * Disabled on and Enabled on settings now are not space-sensitive
192
-
193
- = 2.1.0 =
194
- * Released 2016-11-06
195
- * Meta box to disable plugin on certain posts/pages added
196
- * Added new icons
197
-
198
- = 2.0.3 =
199
- * Released 2016-10-08
200
- * Fixed bug with removing image attributes
201
- * Fixed issue with getting image description by URL
202
-
203
- = 2.0.2 =
204
- * Release 2016-10-05
205
- * Another set of fixes for version 2.0.0
206
-
207
- = 2.0.1 =
208
- * Release 2016-10-04
209
- * Fixes for version 2.0.0
210
-
211
- = 2.00 =
212
- * Release 2016-10-02
213
- * Complete code rewrite
214
- * Added support for featured image
215
- * Plugin settings clean up
216
-
217
- = 1.60 =
218
- * Release 2016-07-04
219
- * Added lightbox feature
220
-
221
- = 1.52 =
222
- * Release 2016-05-05
223
- * Added import/export settings feature
224
-
225
- = 1.51 =
226
- * Release 2016-03-15
227
- * Few minor fixes
228
-
229
- = 1.50 =
230
- * Release 2016-03-13
231
- * Feature: Support for infinite scroll-like plugins
232
- * Feature: Moved Pin Full Images from a separate plugin into jQuery Pin It Button For Images
233
-
234
- = 1.42 =
235
- * Release 2016-03-08
236
- * Lots of backend enhancements
237
-
238
- = 1.41 =
239
- * Release 2016-02-12
240
- * Syntax error for older versions of PHP fixed
241
-
242
- = 1.40 =
243
- * Release 2016-02-11
244
- * Backend and frontend JavaScript rewritten
245
-
246
- = 1.38 =
247
- * Release 2014-09-16
248
- * Fixed issue with positioning the button when Retina display active
249
-
250
- = 1.37 =
251
- * Release 2014-08-05
252
- * Additional option in the description source setting
253
- * Issue with saving checkboxes fixed
254
-
255
- = 1.35 =
256
- * Release 2014-06-20
257
- * Static mode is now disabled
258
-
259
- = 1.34 =
260
- * Release 2014-06-16
261
- * Added support for plugins lazy loading images
262
-
263
- = 1.33 =
264
- * Release 2014-05-18
265
- * Minor changes
266
-
267
- = 1.32 =
268
- * Release 2014-05-04
269
- * Minor fix
270
-
271
- = 1.31 =
272
- * Release 2014-03-13
273
- * Important fix
274
-
275
- = 1.30 =
276
- * Release 2014-03-13
277
- * PHP code redesign - plugin is much more extension friendly
278
- * Deleted some of the compatibility-with-older-versions code
279
-
280
- = 1.21 =
281
- * Released 2014-02-22
282
- * Fixed one issue from the previous release
283
-
284
- = 1.20 =
285
- * Released 2014-02-16
286
- * Major JavaScript code redesign
287
-
288
- = 1.17 =
289
- * Released 2013-12-10
290
- * Minor bug fix
291
- * Added Spanish translation
292
-
293
- = 1.16 =
294
- * Released 2013-11-21
295
- * Minor bug fix
296
-
297
- = 1.15 =
298
- * Released 2013-11-06
299
- * Added 'Image description' option to 'Description source' option
300
-
301
- = 1.14 =
302
- * Released 2013-10-17
303
- * Minor bug with linking images to posts fixed
304
- * Plugin now supports Retina displays
305
-
306
- = 1.13 =
307
- * Released 2013-10-11
308
- * Few minor code changes
309
- * Plugin is translation-ready
310
-
311
- = 1.12 =
312
- * Released 2013-10-01
313
- * One minor bug fixed
314
-
315
- = 1.11 =
316
- * Released 2013-08-25
317
- * Two minor bugs fixed
318
-
319
- = 1.10 =
320
- * Released 2013-08-21
321
- * Added dynamic mode that allows users to download the image and fixes many issues with the transparency layer
322
- * Removed the ability to add custom css to the Pin It button, but added the ability to change margins
323
-
324
- = 1.00 =
325
- * Released 2013-08-09
326
- * Major source code redesign
327
- * Small changes in how the plugin works on client side
328
- * WordPress-style settings panel
329
- * Fixed a little glitch from previous version
330
-
331
- = 0.0.99 =
332
- * Released 2013-07-18
333
- * Major changes in source code (mostly JavaScript), but little changes in features (few minor bugs/issues should be fixed)
334
-
335
- = 0.9.95 =
336
- * Released 2013-04-28
337
- * Bug fixed: issue with pinning images with hashtags in their title/alt
338
- * New feature: possibility to change the position of the "Pin it" button
339
-
340
- = 0.9.9 =
341
- * Released 2013-04-04
342
- * Bug fixed: showing "Pin it" button on categories and archives even though they are unchecked in the settings
343
- * New feature: possibility to set minimum image size that triggers the "Pin it" button to show up
344
- * New feature: option to always link the image to its post/page url, instead of linking to the url the user is currently visiting
345
- * Improvement: you now can set "Site title" as the default description of the pin
346
-
347
- = 0.9.5 =
348
- * Released 2013-03-04
349
- * Fixed some issues with image sizing and responsive themes
350
- * Code refactoring
351
- * Added preview in the settings panel
352
- * New feature: adding images using media library
353
-
354
- = 0.9.2 =
355
- * Released 2013-02-12
356
- * It now works with jQuery versions older than 1.7
357
-
358
- = 0.9.1 =
359
- * Released 2013-02-12
360
- * Bug fixed: resizing images when their dimensions are larger than the container they're in
361
- * Bug fixed: plugin not working when jQuery added multiple times
362
- * Bug fixed: wrong image url when images are lazy-loaded
363
-
364
- = 0.9 =
365
- * Released 2013-01-28
366
- * Feature: Ability to use custom Pinterest button design
367
-
368
- = 0.8 =
369
- * Released 2013-01-12
370
- * Feature: Ability to choose transparency level depending on one's needs
371
- * Added support for default Wordpress align classes, so the plugin doesn't mess up the positioning of the images on screen (in typical cases)
372
-
373
- = 0.7.1 =
374
- * Released 2012-12-20
375
- * Bug related to deleting and quick-editing posts fixed
376
-
377
- = 0.7 =
378
- * Released 2012-12-18
379
- * Feature: Ability to show or hide the "Pin it" button on home page, single page, single post and categories (with archives)
380
- * Feature: Ability to disable the "Pin it" button on certain post or page, works only on single post/page view
381
- * Added security checks using Nonces
382
-
383
- = 0.5 =
384
- * Released 2012-12-9
385
- * Feature: Pinterest window opens as a pop-up
386
- * Feature: Ability to exclude certain classes from showing the "Pin it" button
387
- * Feature: Ability to include only certain classes that will show the "Pin it" button
388
- * Feature: Image is highlighted once hovered
389
- * Feature: IE7 image highlight fix: using a transparent png instead of background-color
390
-
391
- == Upgrade Notice ==
392
-
393
- = 3.0.5 =
394
- * Improvements to how enabled and disabled classes work and fFixed button sizing for Gutenberg galleries
395
-
396
- = 3.0.4 =
397
- * Remove advertisement link
398
-
399
- = 3.0.3 =
400
- * Fixed an issue with srcset attribute
401
-
402
- = 3.0.2 =
403
- * Added support for data-pin-media and data-pin-url attributes.
404
-
405
- = 3.0.1 =
406
- * Added the option to turn off pinning linked URLs.
407
-
408
- = 3.0.0 =
409
- Major code rework. Faster loading after cutting most of unneeded CSS. Images that link to an URL now create Pins with that URL too.
410
-
411
- = 2.4.3 =
412
- * Added additional CSS clauses to prevent rendering errors on some themes
413
-
414
- = 2.4.2 =
415
- * Support for data-pin-description and one more minor fix
416
-
417
- = 2.4.0 =
418
- * Added support for custom showing and disabling the plugin on custom post types
419
-
420
- = 2.3.4 =
421
- * Minor bug fix related to getting image source
422
-
423
- = 2.3.3 =
424
- * Another Visual Tab Bug Fix
425
-
426
- = 2.3.2 =
427
- * Visual Tab Bug Fix
428
-
429
- = 2.3.1 =
430
- * Minor code improvements, fixed bug with disabling review nag
431
-
432
- = 2.3.0 =
433
- * Moved client script to footer, added warning for settings page error
434
-
435
- = 2.2.10 =
436
- * Minor JavaScript improvements
437
-
438
- = 2.2.9 =
439
- * Fixed one major JS bug
440
-
441
- = 2.2.8 =
442
- * Two minor bug fixes
443
-
444
- = 2.2.7 =
445
- * Turned off minification of JS admin file to fix Cloudflare issues
446
-
447
- = 2.2.6 =
448
- * Fixed conflict with other plugins that use angular
449
-
450
- = 2.2.5 =
451
- * Fixed issue with updating the settings
452
-
453
- = 2.2.4 =
454
- * Fix to support old versions of PHP
455
-
456
- = 2.2.3 =
457
- * Code cleanup * enhancements to using settings
458
-
459
- = 2.2.1 =
460
- * Fixed issue with saving custom images
461
-
462
- = 2.2.0 =
463
- * Changed how settings are saved to avoid conflicts with security plugins
464
-
465
- = 2.1.3 =
466
- * Added ability to manipulate filters the plugin uses and added additional validation to settings.
467
-
468
- = 2.1.2 =
469
- * Minor bug fixes
470
-
471
- = 2.1.1 =
472
- * Minor bug fixes
473
-
474
- = 2.1.0 =
475
- * Meta box to disable plugin on certain posts/pages added
476
- * New icons available
477
-
478
- = 2.0.3 =
479
- * Fixed bug with removing image attributes
480
- * Fixed issue with getting image description by URL
481
-
482
- = 2.0.2 =
483
- * Another set of fixes for version 2.0.0
484
-
485
- = 2.0.1 =
486
- * Fixes for version 2.0.0
487
-
488
- = 2.00 =
489
- * Complete rewrite plus some changes in settings.
490
-
491
- = 1.60 =
492
- * Added lightbox feature
493
-
494
- = 1.52 =
495
- * Added import/export settings feature
496
-
497
- = 1.51 =
498
- * Few minor fixes
499
-
500
- = 1.50 =
501
- Added support for infinite scroll-like plugins and merged Pin Full Images into the plugin.
502
-
503
- = 1.42 =
504
- Minor code improvements.
505
-
506
- = 1.41 =
507
- Syntax error for older versions of PHP fixed.
508
-
509
- = 1.40 =
510
- Minor code improvements.
511
-
512
- = 1.38 =
513
- Fixed issue with positioning the button when Retina display active.
514
-
515
- = 1.37 =
516
- Additional setting in the description source setting. Small bug fix.
517
-
518
- = 1.35 =
519
- Static mode is now disabled.
520
-
521
- = 1.34 =
522
- Minor update.
523
-
524
- = 1.33 =
525
- Minor addition.
526
-
527
- = 1.32 =
528
- Minor fix.
529
-
530
- = 1.31 =
531
- Important fix.
532
-
533
- = 1.30 =
534
- PHP code redesign.
535
-
536
- = 1.21 =
537
- Fixed one issue from the previous release.
538
-
539
- = 1.20 =
540
- Just code redesign.
541
-
542
- = 1.17 =
543
- Minor bug fix and Spanish translation added.
544
-
545
- = 1.16 =
546
- Minor bug fix.
547
-
548
- = 1.15 =
549
- Adds 'Image description' option to 'Description source' option.
550
-
551
- = 1.14 =
552
- Minor bug fix plus support for Retina displays added.
553
-
554
- = 1.13 =
555
- Minor code changes, plus plugin is now translation-ready.
556
-
557
- = 1.12 =
558
- One minor bug fix.
559
-
560
- = 1.11 =
561
- Two minor bug fixes, that's all.
562
-
563
- = 1.10 =
564
- This update is recommended for people who had issues with version 1.00 but version 0.99 worked flawlessly. It adds a new mode that allows users to download images and fixes those issues related to version 1.00.
565
-
566
- = 1.00 =
567
- Major source code redesign, new settings panel and fix to a little glitch from previous version of the plugin.
568
-
569
- = 0.9.99 =
570
- Major source code changes with almost no changes in terms of features. This version can be considered a "test" one. After fixing bugs (if there are any - please report) version 1.0.0 will be published.
571
-
572
- = 0.9.95 =
573
- Minor bug fixed and one new feature (setting the position of the "Pin it" button) added.
574
-
575
- = 0.9.9 =
576
- A minor bug fixed and two new features (minimum image size among them) added.
577
-
578
- = 0.9.5 =
579
- Few minor bug fixes and tweaks
580
-
581
- = 0.9.3 =
582
- Fixed bugs with image sizing and responsive themes
583
-
584
- = 0.9.2 =
585
- Small update - plugin now works with jQuery versions older than 1.7.
586
-
587
- = 0.9.1 =
588
- Few bugs reported by users got fixed.
589
-
590
- = 0.9 =
591
- New feature: using custom Pinterest button design
592
-
593
- = 0.8 =
594
- Additional feature and added support for basic image positioning.
595
-
596
- = 0.7.1 =
597
- Critical bug fix, please update.
598
-
599
- = 0.7 =
600
- Additional features and some security enhancements.
601
-
602
- = 0.5 =
 
 
 
 
603
  First version of the plugin.
1
+ === jQuery Pin It Button for Images ===
2
+ Contributors: mrsztuczkens, redearthdesign, brocheafoin, robertark
3
+ Tags: pinterest, pin it, button, image, images, pinit, social media, hover, click, photo, photos
4
+ Requires at least: 3.3.0
5
+ Tested up to: 5.5.1
6
+ Stable tag: 3.0.6
7
+ License: GPLv2 or later
8
+
9
+ Highlights images on hover and adds a Pinterest "Pin It" button over them for easy pinning.
10
+
11
+ == Description ==
12
+ If you're looking for an easy way to pin images in your blog posts and pages, this plugin will help you with that. It highlights images and adds a "Pin it" button over them once the user hovers his mouse over an image. Once the user clicks the "Pin it" button, the plugin shows a pop-up window with the image and a description. Everything is ready for pinning, although the user can alter the description.
13
+
14
+ The plugin allows you to:
15
+
16
+ * choose from where the pin description should be taken
17
+ * choose which pictures shouldn't show the "Pin it" button (using classes)
18
+ * choose which pictures should show the "Pin it" button (all images, post images, images with certain class(es))
19
+ * choose if you want to show the "Pin it" button on home page, single posts, single pages or category pages
20
+ * disable showing the button on certain posts and pages
21
+ * choose transparency level depending on your needs
22
+ * use your own Pinterest button design
23
+
24
+ Once you activate the plugin, it's ready to go with the default settings - button appears on all images within the body of your posts/pages that aren't marked with "nopin" or "wp-smiley" classes.
25
+
26
+ **Translators**
27
+ - Spanish (es_ES) - Andrew Kurtis [WebHostingHub](http://www.webhostinghub.com/)
28
+
29
+ If you want to learn more about the plugin, visit its website: https://highfiveplugins.com/jpibfi/jquery-pin-it-button-for-images-documentation/
30
+
31
+ (This plugin is not related to or endorsed by Pinterest or its affiliates)
32
+
33
+ == Installation ==
34
+
35
+ 1. Upload the folder to the `/wp-content/plugins/` directory
36
+ 1. Activate the plugin through the 'Plugins' menu in WordPress
37
+ 1. Configuration interface can be found under `Settings - jQuery Pin It Button For Images`. There's also a link to the plugin settings in the "Installed plugins" menu.
38
+
39
+ == Frequently Asked Questions ==
40
+
41
+ = Where can I change the plugins settings? =
42
+
43
+ Configuration interface can be found under `Settings - jQuery Pin It Button For Images`. There's also a link to the plugin settings in the "Installed plugins" menu.
44
+
45
+ = How do I add the button only to specific images? =
46
+ On the plugin settings page, there is a "Enabled classes" setting. Please enter there a class (or classes) that should show the "Pin it" button. Please note that images that don't contain any of the classes added in this setting won't show the "Pin it" button.
47
+
48
+ = How do I disable the button on specific images? =
49
+ Use the "Disabled classes" setting on the settings page - add there specific classes or use the "nopin" class.
50
+
51
+ = Can I use my own "Pin it" button design? =
52
+ Yes. On the settings page, there's a section named "Custom Pit It button". You need to check the Use custom image checkbox and provide a URL address of the image, image's width and height.
53
+
54
+ To upload you own image, you can use **Media Library** on your Wordpress installation or an image hosting service like **Photobucket**. Make sure you provide the proper address, width and height of the image. Otherwise, the button won't be displayed properly or won't be displayed at all.
55
+
56
+ = Where do I report bugs, improvements and suggestions? =
57
+ Please report them in the plugin's support forum on Wordpress.org.
58
+
59
+ == Screenshots ==
60
+
61
+ 1. Base image in a blog post
62
+ 2. Highlighted image and "Pin it" button on hover
63
+ 3. Settings panel
64
+ 4. Pinterest pop-up window
65
+
66
+ == Changelog ==
67
+
68
+ = 3.0.6 =
69
+ * Released 2020-09-30
70
+ * Removed nags for review and pro version
71
+
72
+ = 3.0.5 =
73
+ * Released 2019-09-15
74
+ * Improvements to how enabled and disabled classes work
75
+ * Fixed button sizing for Gutenberg galleries
76
+
77
+ = 3.0.4 =
78
+ * Released 2019-02-25
79
+ * Removed advertisement link
80
+
81
+ = 3.0.3 =
82
+ * Released 2018-11-25
83
+ * Fixed an issue with srcset attribute
84
+
85
+ = 3.0.2 =
86
+ * Released 2018-10-28
87
+ * Added support for data-pin-media and data-pin-url attributes.
88
+
89
+ = 3.0.1 =
90
+ * Released 2018-10-07
91
+ * Added the option to turn off pinning linked URLs.
92
+
93
+ = 3.0.0 =
94
+ * Released 2018-09-30
95
+ * Removed "Pin linked images" setting. It now automatically picks up linked images as the full-sized version of the image.
96
+ * If the image links to another URL, that URL goes to Pinterest instead of the current one.
97
+ * Reworked "Pin it" button sizing and cut the amount of CSS significantly
98
+ * [Pro] Added support for repinning images
99
+ * [Pro] Added support for scaling down the size of "Pin it" button for smaller screens
100
+ * [Pro] Added support for srcset attribute.
101
+
102
+ = 2.4.3 =
103
+ * Released 2018-05-13
104
+ * Added additional CSS clauses to prevent rendering errors on some themes
105
+
106
+ = 2.4.2 =
107
+ * Released 2018-03-16
108
+ * Added support for data-pin-description attribute
109
+ * Fixed pro version nag interval
110
+
111
+ = 2.4.0 =
112
+ * Released 2018-02-26
113
+ * Added support for custom showing and disabling the plugin on custom post types
114
+
115
+ = 2.3.4 =
116
+ * Released 2017-12-13
117
+ * Minor bug fix related to getting image source
118
+
119
+ = 2.3.3 =
120
+ * Released 2017-07-18
121
+ * Another Visual Tab Bug Fix
122
+
123
+ = 2.3.2 =
124
+ * Released 2017-07-12
125
+ * Visual Tab Bug Fix
126
+
127
+ = 2.3.1 =
128
+ * Released 2017-07-09
129
+ * Settings panel code rework
130
+ * Fixed issue with disabling review nag
131
+
132
+ = 2.3.0 =
133
+ * Released 2017-06-03
134
+ * Moved client script to footer
135
+ * Added warning if settings page does not work
136
+
137
+ = 2.2.10 =
138
+ * Released 2017-04-21
139
+ * Minor JavaScript improvements
140
+
141
+ = 2.2.9 =
142
+ * Released 2017-03-27
143
+ * Fixed one major JS bug
144
+
145
+ = 2.2.8 =
146
+ * Released 2017-03-26
147
+ * Fixed issue with JS error on client
148
+ * Fixed issue with using multiple enabled classes
149
+
150
+ = 2.2.7 =
151
+ * Released 2017-03-06
152
+ * Turned off minification of JS admin file to fix Cloudflare issues
153
+
154
+ = 2.2.6 =
155
+ * Released 2017-02-16
156
+ * Fixed conflict with other plugins that use angular
157
+
158
+ = 2.2.5 =
159
+ * Released 2017-01-31
160
+ * Fixed issue with updating the settings
161
+
162
+ = 2.2.4 =
163
+ * Released 2017-01-30
164
+ * Fix to support old versions of PHP
165
+
166
+ = 2.2.3 =
167
+ * Released 2017-01-29
168
+ * Minor cleanup
169
+ * Enhanced type checking to reduce errors caused by type mismatch even further
170
+
171
+ = 2.2.1 =
172
+ * Released 2017-01-22
173
+ * Fixed issue with saving custom images
174
+
175
+ = 2.2.0 =
176
+ * Released 2017-01-21
177
+ * Settings panel switched to saving via form submit instead of an Ajax request to avoid conflicts with security plugins
178
+ * Settings panel cleanup
179
+
180
+ = 2.1.3 =
181
+ * Released 2017-01-12
182
+ * Added ability to disable the plugin on certain filters and changing filters priority
183
+ * Added strong type checking in settings to reduce errors caused by type mismatch
184
+
185
+ = 2.1.2 =
186
+ * Released 2016-12-07
187
+ * Minor bug fixes
188
+
189
+ = 2.1.1 =
190
+ * Released 2016-11-11
191
+ * Fixed issue with double icons
192
+ * Disabled on and Enabled on settings now are not space-sensitive
193
+
194
+ = 2.1.0 =
195
+ * Released 2016-11-06
196
+ * Meta box to disable plugin on certain posts/pages added
197
+ * Added new icons
198
+
199
+ = 2.0.3 =
200
+ * Released 2016-10-08
201
+ * Fixed bug with removing image attributes
202
+ * Fixed issue with getting image description by URL
203
+
204
+ = 2.0.2 =
205
+ * Release 2016-10-05
206
+ * Another set of fixes for version 2.0.0
207
+
208
+ = 2.0.1 =
209
+ * Release 2016-10-04
210
+ * Fixes for version 2.0.0
211
+
212
+ = 2.00 =
213
+ * Release 2016-10-02
214
+ * Complete code rewrite
215
+ * Added support for featured image
216
+ * Plugin settings clean up
217
+
218
+ = 1.60 =
219
+ * Release 2016-07-04
220
+ * Added lightbox feature
221
+
222
+ = 1.52 =
223
+ * Release 2016-05-05
224
+ * Added import/export settings feature
225
+
226
+ = 1.51 =
227
+ * Release 2016-03-15
228
+ * Few minor fixes
229
+
230
+ = 1.50 =
231
+ * Release 2016-03-13
232
+ * Feature: Support for infinite scroll-like plugins
233
+ * Feature: Moved Pin Full Images from a separate plugin into jQuery Pin It Button For Images
234
+
235
+ = 1.42 =
236
+ * Release 2016-03-08
237
+ * Lots of backend enhancements
238
+
239
+ = 1.41 =
240
+ * Release 2016-02-12
241
+ * Syntax error for older versions of PHP fixed
242
+
243
+ = 1.40 =
244
+ * Release 2016-02-11
245
+ * Backend and frontend JavaScript rewritten
246
+
247
+ = 1.38 =
248
+ * Release 2014-09-16
249
+ * Fixed issue with positioning the button when Retina display active
250
+
251
+ = 1.37 =
252
+ * Release 2014-08-05
253
+ * Additional option in the description source setting
254
+ * Issue with saving checkboxes fixed
255
+
256
+ = 1.35 =
257
+ * Release 2014-06-20
258
+ * Static mode is now disabled
259
+
260
+ = 1.34 =
261
+ * Release 2014-06-16
262
+ * Added support for plugins lazy loading images
263
+
264
+ = 1.33 =
265
+ * Release 2014-05-18
266
+ * Minor changes
267
+
268
+ = 1.32 =
269
+ * Release 2014-05-04
270
+ * Minor fix
271
+
272
+ = 1.31 =
273
+ * Release 2014-03-13
274
+ * Important fix
275
+
276
+ = 1.30 =
277
+ * Release 2014-03-13
278
+ * PHP code redesign - plugin is much more extension friendly
279
+ * Deleted some of the compatibility-with-older-versions code
280
+
281
+ = 1.21 =
282
+ * Released 2014-02-22
283
+ * Fixed one issue from the previous release
284
+
285
+ = 1.20 =
286
+ * Released 2014-02-16
287
+ * Major JavaScript code redesign
288
+
289
+ = 1.17 =
290
+ * Released 2013-12-10
291
+ * Minor bug fix
292
+ * Added Spanish translation
293
+
294
+ = 1.16 =
295
+ * Released 2013-11-21
296
+ * Minor bug fix
297
+
298
+ = 1.15 =
299
+ * Released 2013-11-06
300
+ * Added 'Image description' option to 'Description source' option
301
+
302
+ = 1.14 =
303
+ * Released 2013-10-17
304
+ * Minor bug with linking images to posts fixed
305
+ * Plugin now supports Retina displays
306
+
307
+ = 1.13 =
308
+ * Released 2013-10-11
309
+ * Few minor code changes
310
+ * Plugin is translation-ready
311
+
312
+ = 1.12 =
313
+ * Released 2013-10-01
314
+ * One minor bug fixed
315
+
316
+ = 1.11 =
317
+ * Released 2013-08-25
318
+ * Two minor bugs fixed
319
+
320
+ = 1.10 =
321
+ * Released 2013-08-21
322
+ * Added dynamic mode that allows users to download the image and fixes many issues with the transparency layer
323
+ * Removed the ability to add custom css to the Pin It button, but added the ability to change margins
324
+
325
+ = 1.00 =
326
+ * Released 2013-08-09
327
+ * Major source code redesign
328
+ * Small changes in how the plugin works on client side
329
+ * WordPress-style settings panel
330
+ * Fixed a little glitch from previous version
331
+
332
+ = 0.0.99 =
333
+ * Released 2013-07-18
334
+ * Major changes in source code (mostly JavaScript), but little changes in features (few minor bugs/issues should be fixed)
335
+
336
+ = 0.9.95 =
337
+ * Released 2013-04-28
338
+ * Bug fixed: issue with pinning images with hashtags in their title/alt
339
+ * New feature: possibility to change the position of the "Pin it" button
340
+
341
+ = 0.9.9 =
342
+ * Released 2013-04-04
343
+ * Bug fixed: showing "Pin it" button on categories and archives even though they are unchecked in the settings
344
+ * New feature: possibility to set minimum image size that triggers the "Pin it" button to show up
345
+ * New feature: option to always link the image to its post/page url, instead of linking to the url the user is currently visiting
346
+ * Improvement: you now can set "Site title" as the default description of the pin
347
+
348
+ = 0.9.5 =
349
+ * Released 2013-03-04
350
+ * Fixed some issues with image sizing and responsive themes
351
+ * Code refactoring
352
+ * Added preview in the settings panel
353
+ * New feature: adding images using media library
354
+
355
+ = 0.9.2 =
356
+ * Released 2013-02-12
357
+ * It now works with jQuery versions older than 1.7
358
+
359
+ = 0.9.1 =
360
+ * Released 2013-02-12
361
+ * Bug fixed: resizing images when their dimensions are larger than the container they're in
362
+ * Bug fixed: plugin not working when jQuery added multiple times
363
+ * Bug fixed: wrong image url when images are lazy-loaded
364
+
365
+ = 0.9 =
366
+ * Released 2013-01-28
367
+ * Feature: Ability to use custom Pinterest button design
368
+
369
+ = 0.8 =
370
+ * Released 2013-01-12
371
+ * Feature: Ability to choose transparency level depending on one's needs
372
+ * Added support for default Wordpress align classes, so the plugin doesn't mess up the positioning of the images on screen (in typical cases)
373
+
374
+ = 0.7.1 =
375
+ * Released 2012-12-20
376
+ * Bug related to deleting and quick-editing posts fixed
377
+
378
+ = 0.7 =
379
+ * Released 2012-12-18
380
+ * Feature: Ability to show or hide the "Pin it" button on home page, single page, single post and categories (with archives)
381
+ * Feature: Ability to disable the "Pin it" button on certain post or page, works only on single post/page view
382
+ * Added security checks using Nonces
383
+
384
+ = 0.5 =
385
+ * Released 2012-12-9
386
+ * Feature: Pinterest window opens as a pop-up
387
+ * Feature: Ability to exclude certain classes from showing the "Pin it" button
388
+ * Feature: Ability to include only certain classes that will show the "Pin it" button
389
+ * Feature: Image is highlighted once hovered
390
+ * Feature: IE7 image highlight fix: using a transparent png instead of background-color
391
+
392
+ == Upgrade Notice ==
393
+
394
+ = 3.0.6 =
395
+ * Removed nags for review and pro version
396
+
397
+ = 3.0.5 =
398
+ * Improvements to how enabled and disabled classes work and fFixed button sizing for Gutenberg galleries
399
+
400
+ = 3.0.4 =
401
+ * Remove advertisement link
402
+
403
+ = 3.0.3 =
404
+ * Fixed an issue with srcset attribute
405
+
406
+ = 3.0.2 =
407
+ * Added support for data-pin-media and data-pin-url attributes.
408
+
409
+ = 3.0.1 =
410
+ * Added the option to turn off pinning linked URLs.
411
+
412
+ = 3.0.0 =
413
+ Major code rework. Faster loading after cutting most of unneeded CSS. Images that link to an URL now create Pins with that URL too.
414
+
415
+ = 2.4.3 =
416
+ * Added additional CSS clauses to prevent rendering errors on some themes
417
+
418
+ = 2.4.2 =
419
+ * Support for data-pin-description and one more minor fix
420
+
421
+ = 2.4.0 =
422
+ * Added support for custom showing and disabling the plugin on custom post types
423
+
424
+ = 2.3.4 =
425
+ * Minor bug fix related to getting image source
426
+
427
+ = 2.3.3 =
428
+ * Another Visual Tab Bug Fix
429
+
430
+ = 2.3.2 =
431
+ * Visual Tab Bug Fix
432
+
433
+ = 2.3.1 =
434
+ * Minor code improvements, fixed bug with disabling review nag
435
+
436
+ = 2.3.0 =
437
+ * Moved client script to footer, added warning for settings page error
438
+
439
+ = 2.2.10 =
440
+ * Minor JavaScript improvements
441
+
442
+ = 2.2.9 =
443
+ * Fixed one major JS bug
444
+
445
+ = 2.2.8 =
446
+ * Two minor bug fixes
447
+
448
+ = 2.2.7 =
449
+ * Turned off minification of JS admin file to fix Cloudflare issues
450
+
451
+ = 2.2.6 =
452
+ * Fixed conflict with other plugins that use angular
453
+
454
+ = 2.2.5 =
455
+ * Fixed issue with updating the settings
456
+
457
+ = 2.2.4 =
458
+ * Fix to support old versions of PHP
459
+
460
+ = 2.2.3 =
461
+ * Code cleanup * enhancements to using settings
462
+
463
+ = 2.2.1 =
464
+ * Fixed issue with saving custom images
465
+
466
+ = 2.2.0 =
467
+ * Changed how settings are saved to avoid conflicts with security plugins
468
+
469
+ = 2.1.3 =
470
+ * Added ability to manipulate filters the plugin uses and added additional validation to settings.
471
+
472
+ = 2.1.2 =
473
+ * Minor bug fixes
474
+
475
+ = 2.1.1 =
476
+ * Minor bug fixes
477
+
478
+ = 2.1.0 =
479
+ * Meta box to disable plugin on certain posts/pages added
480
+ * New icons available
481
+
482
+ = 2.0.3 =
483
+ * Fixed bug with removing image attributes
484
+ * Fixed issue with getting image description by URL
485
+
486
+ = 2.0.2 =
487
+ * Another set of fixes for version 2.0.0
488
+
489
+ = 2.0.1 =
490
+ * Fixes for version 2.0.0
491
+
492
+ = 2.00 =
493
+ * Complete rewrite plus some changes in settings.
494
+
495
+ = 1.60 =
496
+ * Added lightbox feature
497
+
498
+ = 1.52 =
499
+ * Added import/export settings feature
500
+
501
+ = 1.51 =
502
+ * Few minor fixes
503
+
504
+ = 1.50 =
505
+ Added support for infinite scroll-like plugins and merged Pin Full Images into the plugin.
506
+
507
+ = 1.42 =
508
+ Minor code improvements.
509
+
510
+ = 1.41 =
511
+ Syntax error for older versions of PHP fixed.
512
+
513
+ = 1.40 =
514
+ Minor code improvements.
515
+
516
+ = 1.38 =
517
+ Fixed issue with positioning the button when Retina display active.
518
+
519
+ = 1.37 =
520
+ Additional setting in the description source setting. Small bug fix.
521
+
522
+ = 1.35 =
523
+ Static mode is now disabled.
524
+
525
+ = 1.34 =
526
+ Minor update.
527
+
528
+ = 1.33 =
529
+ Minor addition.
530
+
531
+ = 1.32 =
532
+ Minor fix.
533
+
534
+ = 1.31 =
535
+ Important fix.
536
+
537
+ = 1.30 =
538
+ PHP code redesign.
539
+
540
+ = 1.21 =
541
+ Fixed one issue from the previous release.
542
+
543
+ = 1.20 =
544
+ Just code redesign.
545
+
546
+ = 1.17 =
547
+ Minor bug fix and Spanish translation added.
548
+
549
+ = 1.16 =
550
+ Minor bug fix.
551
+
552
+ = 1.15 =
553
+ Adds 'Image description' option to 'Description source' option.
554
+
555
+ = 1.14 =
556
+ Minor bug fix plus support for Retina displays added.
557
+
558
+ = 1.13 =
559
+ Minor code changes, plus plugin is now translation-ready.
560
+
561
+ = 1.12 =
562
+ One minor bug fix.
563
+
564
+ = 1.11 =
565
+ Two minor bug fixes, that's all.
566
+
567
+ = 1.10 =
568
+ This update is recommended for people who had issues with version 1.00 but version 0.99 worked flawlessly. It adds a new mode that allows users to download images and fixes those issues related to version 1.00.
569
+
570
+ = 1.00 =
571
+ Major source code redesign, new settings panel and fix to a little glitch from previous version of the plugin.
572
+
573
+ = 0.9.99 =
574
+ Major source code changes with almost no changes in terms of features. This version can be considered a "test" one. After fixing bugs (if there are any - please report) version 1.0.0 will be published.
575
+
576
+ = 0.9.95 =
577
+ Minor bug fixed and one new feature (setting the position of the "Pin it" button) added.
578
+
579
+ = 0.9.9 =
580
+ A minor bug fixed and two new features (minimum image size among them) added.
581
+
582
+ = 0.9.5 =
583
+ Few minor bug fixes and tweaks
584
+
585
+ = 0.9.3 =
586
+ Fixed bugs with image sizing and responsive themes
587
+
588
+ = 0.9.2 =
589
+ Small update - plugin now works with jQuery versions older than 1.7.
590
+
591
+ = 0.9.1 =
592
+ Few bugs reported by users got fixed.
593
+
594
+ = 0.9 =
595
+ New feature: using custom Pinterest button design
596
+
597
+ = 0.8 =
598
+ Additional feature and added support for basic image positioning.
599
+
600
+ = 0.7.1 =
601
+ Critical bug fix, please update.
602
+
603
+ = 0.7 =
604
+ Additional features and some security enhancements.
605
+
606
+ = 0.5 =
607
  First version of the plugin.
uninstall.php CHANGED
@@ -1,14 +1,14 @@
1
- <?php
2
-
3
-
4
- //if uninstall not called from WordPress exit
5
- if ( !defined( 'WP_UNINSTALL_PLUGIN' ) )
6
- exit();
7
-
8
- //delete all added options
9
- delete_option( 'jpibfi_selection_options' );
10
- delete_option( 'jpibfi_visual_options' );
11
- delete_option( 'jpibfi_version' );
12
- delete_option( 'jpibfi_options_version' );
13
- delete_option( 'jpibfi_pro_ad' );
14
  delete_option( 'jpibfi_license' );
1
+ <?php
2
+
3
+
4
+ //if uninstall not called from WordPress exit
5
+ if ( !defined( 'WP_UNINSTALL_PLUGIN' ) )
6
+ exit();
7
+
8
+ //delete all added options
9
+ delete_option( 'jpibfi_selection_options' );
10
+ delete_option( 'jpibfi_visual_options' );
11
+ delete_option( 'jpibfi_version' );
12
+ delete_option( 'jpibfi_options_version' );
13
+ delete_option( 'jpibfi_pro_ad' );
14
  delete_option( 'jpibfi_license' );